home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 15 / 15.iso / s / s079 / 1.img / V10CNT8.APL < prev    next >
Encoding:
Text File  |  1992-11-17  |  8.8 KB  |  223 lines

  1. TITLE 'APEEL FILE: PEEL22CV10 8-Bit Up/Down Loadable Counter with
  2.        Carry-Out or Borrow-In.
  3. DESIGNER: James Khong              DATE: 6/9/88'
  4.  
  5. Peel22CV10
  6.  
  7. "DESCRIPTION"
  8.  
  9. "                     PEEL22CV10
  10. "                     ____  ____
  11. "                    |    \/    |
  12. "               CLK  { 1     24 }  Vcc
  13. " (synchronous) CLR  { 2     23 }  LOAD  (This I/O is used as an input)
  14. "                UP  { 3     22 }  CO_BI (Carry-Out/Borrow-In)
  15. "                D4  { 4     21 }  Q4
  16. "                D5  { 5     20 }  Q5
  17. "                D6  { 6     19 }  Q6
  18. "                D7  { 7     18 }  Q7
  19. "                D3  { 8     17 }  Q3
  20. "                D2  { 9     16 }  Q2
  21. "                D1  {10     15 }  Q1
  22. "                D0  {11     14 }  Q0
  23. "               Gnd  {12     13 }  !OE
  24. "                    |__________|
  25.  
  26.  
  27. " This application uses the PEEL22CV10 as an 8-bit Up/Down Loadable counter.
  28. " The four controls are:
  29. "     CLR (Synchronous Clear) - When CLR is set to High, all outputs (Q7-Q0
  30. "                               and CO_BI) will be set to Low on next clock.
  31. "     UP (Up/Down control)    - When UP is set to High, outputs Q7-Q0 will
  32. "                               count up on each clock. When UP is set
  33. "                               to Low, outputs Q7-Q0 will count down.
  34. "     LOAD (Load data)        - When LOAD is set High, outputs Q7-Q0 will
  35. "                               follow the data of D7-D0 on next clock and
  36. "                               the output CO_BI will be set to Low.
  37. "     !OE (Output Enable)     - When OE is set to High, all outputs (Q7-Q0
  38. "                               and CO_BI) will be High Impedance. When OE
  39. "                               is set Low, all outputs will be enabled.
  40. "
  41. " Note: After counting up 255, the count will go to 0 and the CO_BI will be
  42. "       set High on next clock. The High will remain on the CO_BI pin until
  43. "       LOAD or CLR goes High.
  44. "
  45. " The table below describes the operation:
  46. "
  47. " OPERATION TABLE
  48. "  -----------------------------------------------------------------
  49. " | CLK | CLR | UP | LOAD | !OE |  D7 - D0  |   Q7 - Q0   |  CO_BI  |
  50. "  -----------------------------------------------------------------
  51. " |  C  |  1  |  X |   X  |  0  |     X     |     LOW     |    0    |
  52. " |  C  |  0  |  1 |   0  |  0  |     X     |   COUNT UP  |    0    |
  53. " |  C  |  0  |  1 |   0  |  0  |     X     |   255 -> 0  |    1    | Carry-Out
  54. " |  C  |  0  |  0 |   0  |  0  |     X     |  COUNT DOWN |    0    |
  55. " |  C  |  0  |  0 |   0  |  0  |     X     |   0 -> 255  |    1    | Borrow-In
  56. " |  C  |  0  |  X |   1  |  0  |  DATA IN  |   DATA IN   |    0    |
  57. " |  X  |  X  |  X |   X  |  1  |     X     |   3-STATE   |    0    |
  58. "  -----------------------------------------------------------------
  59. "  C = CLOCK PULSE (0 -> 1)
  60. "  X = DON'T CARE
  61.  
  62.  
  63. "PIN ASSIGNMENTS
  64.  
  65. CLK      pin 1
  66. CLR      pin 2
  67. D0       pin 3
  68. D1       pin 4
  69. D2       pin 5
  70. D3       pin 6
  71. D4       pin 7
  72. D5       pin 8
  73. D6       pin 9
  74. D7       pin 10
  75. UP       pin 11
  76. OE       pin 13
  77. LOAD     pin 23             "Used as input only. Default macro configuration
  78.                             "is defaulted to 'pos com feed_pin'.
  79.  
  80. Q0       pin 14 = pos reg   "All positive registered outputs.
  81. Q1       pin 15 = pos reg
  82. Q2       pin 16 = pos reg
  83. Q3       pin 17 = pos reg
  84. Q7       pin 18 = pos reg
  85. Q6       pin 19 = pos reg
  86. Q5       pin 20 = pos reg
  87. Q4       pin 21 = pos reg
  88. CO_BI    pin 22 = pos reg   "Carry-Out / Borrow-In.
  89.  
  90. AC        node 25           "Asynchronous Clear node - not used.
  91. SP        node 26           "Synchronous Preset node.
  92.  
  93.  
  94. Equations
  95.  
  96. Enable Q7    = !OE
  97. Enable Q6    = !OE
  98. Enable Q5    = !OE
  99. Enable Q4    = !OE
  100. Enable Q3    = !OE
  101. Enable Q2    = !OE
  102. Enable Q1    = !OE
  103. Enable Q0    = !OE
  104. Enable CO_BI = !OE
  105. Enable LOAD  = 0          "Disables output (unconditionally).
  106.  
  107. SP = !CLR & !Q0 & !Q1 & !Q2 & !Q3 & !Q4 & !Q5 & !Q6 & !Q7 & !UP & !LOAD;
  108.  
  109. Q7 = !CLR &  Q0 & Q7 & !UP & !LOAD #  "Count Down.
  110.      !CLR &  Q1 & Q7 & !UP & !LOAD #
  111.      !CLR &  Q2 & Q7 & !UP & !LOAD #
  112.      !CLR &  Q3 & Q7 & !UP & !LOAD #
  113.      !CLR &  Q4 & Q7 & !UP & !LOAD #
  114.      !CLR &  Q5 & Q7 & !UP & !LOAD #
  115.      !CLR &  Q6 & Q7 & !UP & !LOAD #
  116.      !CLR & !Q0 & Q7 &  UP & !LOAD #  "Count Up.
  117.      !CLR & !Q1 & Q7 &  UP & !LOAD #
  118.      !CLR & !Q2 & Q7 &  UP & !LOAD #
  119.      !CLR & !Q3 & Q7 &  UP & !LOAD #
  120.      !CLR & !Q4 & Q7 &  UP & !LOAD #
  121.      !CLR & !Q5 & Q7 &  UP & !LOAD #
  122.      !CLR & !Q6 & Q7 &  UP & !LOAD #
  123.      !CLR &  Q0 & Q1 &  Q2 & Q3 & Q4 & Q5 & Q6 & !Q7 & UP & !LOAD #
  124.      !CLR &  D7 & LOAD                "Load Data.
  125.  
  126. Q6 = !CLR & !Q0 & !Q1 & !Q2 & !Q3 & !Q4 & !Q5 & !Q6 & !UP & !LOAD #
  127.      !CLR &  Q0 & Q6 & !UP & !LOAD #
  128.      !CLR &  Q1 & Q6 & !UP & !LOAD #
  129.      !CLR &  Q2 & Q6 & !UP & !LOAD #
  130.      !CLR &  Q3 & Q6 & !UP & !LOAD #
  131.      !CLR &  Q4 & Q6 & !UP & !LOAD #
  132.      !CLR &  Q5 & Q6 & !UP & !LOAD #
  133.      !CLR & !Q0 & Q6 &  UP & !LOAD #
  134.      !CLR & !Q1 & Q6 &  UP & !LOAD #
  135.      !CLR & !Q2 & Q6 &  UP & !LOAD #
  136.      !CLR & !Q3 & Q6 &  UP & !LOAD #
  137.      !CLR & !Q4 & Q6 &  UP & !LOAD #
  138.      !CLR & !Q5 & Q6 &  UP & !LOAD #
  139.      !CLR &  Q0 & Q1 & Q2 & Q3 & Q4 & Q5 & !Q6 & UP & !LOAD #
  140.      !CLR &  D6 & LOAD
  141.  
  142. Q5 = !CLR & !Q0 & !Q1 & !Q2 & !Q3 & !Q4 & !Q5 & !UP & !LOAD #
  143.      !CLR &  Q0 & Q5 & !UP & !LOAD #
  144.      !CLR &  Q1 & Q5 & !UP & !LOAD #
  145.      !CLR &  Q2 & Q5 & !UP & !LOAD #
  146.      !CLR &  Q3 & Q5 & !UP & !LOAD #
  147.      !CLR &  Q4 & Q5 & !UP & !LOAD #
  148.      !CLR & !Q0 & Q5 &  UP & !LOAD #
  149.      !CLR & !Q1 & Q5 &  UP & !LOAD #
  150.      !CLR & !Q2 & Q5 &  UP & !LOAD #
  151.      !CLR & !Q3 & Q5 &  UP & !LOAD #
  152.      !CLR & !Q4 & Q5 &  UP & !LOAD #
  153.      !CLR &  Q0 & Q1 &  Q2 & Q3 & Q4 & !Q5 & UP & !LOAD #
  154.      !CLR & D5 & LOAD
  155.  
  156. Q4 = !CLR & !Q0 & !Q1 & !Q2 & !Q3 & !Q4 & !UP & !LOAD #
  157.      !CLR &  Q0 & Q4 & !UP & !LOAD #
  158.      !CLR &  Q1 & Q4 & !UP & !LOAD #
  159.      !CLR &  Q2 & Q4 & !UP & !LOAD #
  160.      !CLR &  Q3 & Q4 & !UP & !LOAD #
  161.      !CLR & !Q0 & Q4 &  UP & !LOAD #
  162.      !CLR & !Q1 & Q4 &  UP & !LOAD #
  163.      !CLR & !Q2 & Q4 &  UP & !LOAD #
  164.      !CLR & !Q3 & Q4 &  UP & !LOAD #
  165.      !CLR &  Q0 & Q1 & Q2 & Q3 & !Q4 & UP & !LOAD #
  166.      !CLR & D4 & LOAD
  167.  
  168. Q3 = !CLR & !Q0 & !Q1 & !Q2 & !Q3 & !UP & !LOAD #
  169.      !CLR &  Q0 & Q3 & !UP & !LOAD #
  170.      !CLR &  Q1 & Q3 & !UP & !LOAD #
  171.      !CLR &  Q2 & Q3 & !UP & !LOAD #
  172.      !CLR & !Q0 & Q3 &  UP & !LOAD #
  173.      !CLR & !Q1 & Q3 &  UP & !LOAD #
  174.      !CLR & !Q2 & Q3 &  UP & !LOAD #
  175.      !CLR &  Q0 & Q1 &  Q2 & !Q3 & UP & !LOAD #
  176.      !CLR &  D3 & LOAD
  177.  
  178. Q2 = !CLR & !Q0 & !Q1 & !Q2 & !UP & !LOAD #
  179.      !CLR &  Q0 & Q2 & !UP & !LOAD #
  180.      !CLR &  Q1 & Q2 & !UP & !LOAD #
  181.      !CLR & !Q0 & Q2 &  UP & !LOAD #
  182.      !CLR & !Q1 & Q2 &  UP & !LOAD #
  183.      !CLR &  Q0 & Q1 & !Q2 & UP & !LOAD #
  184.      !CLR &  D2 & LOAD
  185.  
  186. Q1 = !CLR & !Q0 & !Q1 & !UP & !LOAD #
  187.      !CLR &  Q0 &  Q1 & !UP & !LOAD #
  188.      !CLR & !Q0 &  Q1 &  UP & !LOAD #
  189.      !CLR &  Q0 & !Q1 &  UP & !LOAD #
  190.      !CLR &  D1 & LOAD
  191.  
  192. Q0 = !CLR & !Q0 & !LOAD #
  193.      !CLR &  D0 &  LOAD
  194.  
  195. CO_BI = !CLR & !Q0   & !Q1 & !Q2 & !Q3 & !Q4 & !Q5 & !Q6 & !Q7 & !UP & !LOAD #
  196.         !CLR &  Q0   &  Q1 &  Q2 &  Q3 &  Q4 &  Q5 &  Q6 &  Q7 &  UP & !LOAD #
  197.         !CLR & CO_BI & !LOAD  "Latch in the previous CO_BI.
  198.  
  199.  
  200. Test_vectors
  201.  
  202. (CLK CLR UP LOAD D7 D6 D5 D4 D3 D2 D1 D0 OE -> Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0 CO_BI)
  203.   C   1   X   X   X  X  X  X  X  X  X  X  0 ->  L  L  L  L  L  L  L  L   L
  204.   C   0   1   0   X  X  X  X  X  X  X  X  0 ->  L  L  L  L  L  L  L  H   L
  205.   C   0   1   0   X  X  X  X  X  X  X  X  0 ->  L  L  L  L  L  L  H  L   L
  206.   C   0   1   0   X  X  X  X  X  X  X  X  0 ->  L  L  L  L  L  L  H  H   L
  207.   C   0   1   1   1  1  1  1  1  1  0  1  0 ->  H  H  H  H  H  H  L  H   L
  208.   C   0   1   0   X  X  X  X  X  X  X  X  0 ->  H  H  H  H  H  H  H  L   L
  209.   C   0   1   0   X  X  X  X  X  X  X  X  0 ->  H  H  H  H  H  H  H  H   L
  210.   C   0   1   0   X  X  X  X  X  X  X  X  0 ->  L  L  L  L  L  L  L  L   H
  211.   C   0   1   0   X  X  X  X  X  X  X  X  0 ->  L  L  L  L  L  L  L  H   H
  212.   C   0   0   1   0  1  0  1  0  1  0  1  0 ->  L  H  L  H  L  H  L  H   L
  213.   C   0   1   0   X  X  X  X  X  X  X  X  0 ->  L  H  L  H  L  H  H  L   L
  214.   C   0   0   0   X  X  X  X  X  X  X  X  0 ->  L  H  L  H  L  H  L  H   L
  215.   C   0   0   0   X  X  X  X  X  X  X  X  0 ->  L  H  L  H  L  H  L  L   L
  216.   C   0   0   1   0  0  0  0  0  0  1  0  0 ->  L  L  L  L  L  L  H  L   L
  217.   C   0   0   0   X  X  X  X  X  X  X  X  0 ->  L  L  L  L  L  L  L  H   L
  218.   C   0   0   0   X  X  X  X  X  X  X  X  0 ->  L  L  L  L  L  L  L  L   L
  219.   C   0   0   0   X  X  X  X  X  X  X  X  0 ->  H  H  H  H  H  H  H  H   H
  220.   C   0   0   0   X  X  X  X  X  X  X  X  0 ->  H  H  H  H  H  H  H  L   H
  221.   C   0   0   0   X  X  X  X  X  X  X  X  0 ->  H  H  H  H  H  H  L  H   H
  222.   C   1   1   1   X  X  X  X  X  X  X  X  0 ->  L  L  L  L  L  L  L  L   L
  223.