home *** CD-ROM | disk | FTP | other *** search
/ HAM Radio 1 / HamRadio.cdr / tech / palsum5 / udcount.pds < prev    next >
Text File  |  1987-08-26  |  4KB  |  132 lines

  1. TITLE        TEN BIT COUNT 
  2. ;        HIGH SPEED.
  3. PATTERN        01.
  4. REVISION    01.
  5. AUTHOR        CHRIS JAY.
  6. COMPANY        MMI SANTA CLARA, CA.
  7. DATE        4 JUNE 1986.
  8.  
  9. CHIP 10COUNT PAL20X10
  10.  
  11. ;PINS    1    2    3    4    5    6
  12.     CLK    /LD    D1    D2    D3    D4
  13. ;PINS    7    8    9    10    11    12
  14.     D5    D6    D7    D8    UP    GND
  15. ;PINS    13    14    15    16    17    18
  16.     /OE    Q9    Q8    Q7    Q6    Q5
  17. ;PINS    19    20    21    22    23    24
  18.     Q4    Q3    Q2    Q1    Q0    VCC
  19.  
  20.  
  21. ;
  22. ;THE PAL20X10 HAS BEEN DESIGNED AS A 10 BIT LOADABLE UP/DOWN COUNTER
  23. ;FOR HIGH SPEED WIDE COUNT APPLICATIONS. THE COUNTER IS NON CASCADABLE,
  24. ;HAVING COUNTER OUTPUTS Q0 TO Q9, THERE IS A LOAD INPUT /LD AND AN UP/
  25. ;DOWN CONTROL. DATA INPUTS ARE D1 TO D8, BOTH LOAD AND COUNT OPERATIONS 
  26. ;ARE SYNCHRONISED TO THE RISING EDGE OF A CLOCK INPUT APPLIED TO PIN 1
  27. ;OF THE PAL.THE Q OUTPUT CONDITION CAN BE CONTROLLED BY /OE, AT PIN 13.
  28. ;REGISTERS Q1 TO Q8 ARE LOADED THROUGH THE D1 TO D8 INPUTS, Q0 IS ALWAYS
  29. ;LOADED WITH A LOGIC LOW AND THE UP/DOWN CONTROL (UP) IS USED TO LOAD Q9
  30. ;WHEN THE COUNTER IS IN THE LOAD MODE.
  31. ;
  32. ;               TRUTH TABLE
  33. ;
  34. ;              /LD       UP
  35. ;             _______ _______
  36. ;            |    |    |
  37. ;    COUNT DOWN    |   H    |   L    | QN := QN - 1
  38. ;            |-------|-------|
  39. ;    COUNT UP    |   H    |   H    | QN := QN + 1
  40. ;            |-------|-------|
  41. ;    LOAD        |   L    |   D9     | Q0 := 0, Q9 := UP, QN := DN
  42. ;            |_______|_______|
  43. ;
  44.                     
  45. EQUATIONS
  46.  
  47. /Q0 :=     Q0*/LD                        ;COUNT
  48.      +      LD                        ;LOAD
  49.     :+:  GND + GND                    ;
  50.  
  51. /Q1 :=    /Q1*/LD                        ;HOLD
  52.      +  /D1*LD                        ;LOAD
  53.     :+:  Q0*/LD*UP                    ;COUNT UP
  54.      +  /Q0*/LD*/UP                    ;COUNT DOWN
  55.  
  56. /Q2 :=    /Q2*/LD                        ;HOLD
  57.      +  /D2*LD                        ;LOAD
  58.     :+:  Q0*Q1*/LD*UP                    ;COUNT UP
  59.      +  /Q0*/Q1*/LD*/UP                    ;COUNT DOWN
  60.  
  61. /Q3 :=  /Q3*/LD                        ;HOLD
  62.      +  /D3*LD                        ;LOAD
  63.     :+:  Q0*Q1*Q2*/LD*UP                ;COUNT UP
  64.      +  /Q0*/Q1*/Q2*/LD*/UP                ;COUNT DOWN
  65.  
  66. /Q4 :=    /Q4*/LD                        ;HOLD
  67.      +  /D4*LD                        ;LOAD
  68.     :+:  Q0*Q1*Q2*Q3*/LD*UP                ;COUNT UP
  69.      +  /Q0*/Q1*/Q2*/Q3*/LD*/UP                ;COUNT DOWN
  70.  
  71. /Q5 :=  /Q5*/LD                        ;HOLD
  72.      +  /D5*LD                        ;LOAD
  73.     :+:  Q0*Q1*Q2*Q3*Q4*/LD*UP                ;COUNT UP
  74.      +  /Q0*/Q1*/Q2*/Q3*/Q4*/LD*/UP            ;COUNT DOWN
  75.  
  76. /Q6 :=  /Q6*/LD                        ;HOLD
  77.      +  /D6*LD                        ;LOAD
  78.     :+:  Q0*Q1*Q2*Q3*Q4*Q5*/LD*UP            ;COUNT UP
  79.      +  /Q0*/Q1*/Q2*/Q3*/Q4*/Q5*/LD*/UP            ;COUNT DOWN
  80.  
  81.  
  82. /Q7 :=  /Q7*/LD                        ;HOLD
  83.      +  /D7*LD                        ;LOAD
  84.     :+:  Q0*Q1*Q2*Q3*Q4*Q5*Q6*/LD*UP            ;COUNT UP
  85.      +  /Q0*/Q1*/Q2*/Q3*/Q4*/Q5*/Q6*/LD*/UP        ;COUNT DOWN
  86.  
  87. /Q8 :=    /Q8*/LD                        ;HOLD
  88.      +  /D8*LD                        ;LOAD
  89.     :+:  Q0*Q1*Q2*Q3*Q4*Q5*Q6*Q7*/LD*UP            ;COUNT UP
  90.      +  /Q0*/Q1*/Q2*/Q3*/Q4*/Q5*/Q6*/Q7*/LD*/UP        ;COUNT DOWN
  91.  
  92. /Q9 :=    /Q9*/LD                        ;HOLD
  93.      +  /UP*LD                        ;LOAD
  94.     :+:  Q0*Q1*Q2*Q3*Q4*Q5*Q6*Q7*Q8*/LD*UP        ;COUNT UP
  95.      +  /Q0*/Q1*/Q2*/Q3*/Q4*/Q5*/Q6*/Q7*/Q8*/LD*/UP    ;COUNT DOWN
  96.  
  97. SIMULATION
  98. TRACE_ON D1 D2 D3 D4 D5 D6 D7 D8 UP            ;ENABLE TRACE
  99.      CLK /LD Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9        ;ON ALL PINS
  100. SETF OE    /CLK                        ;ENABLE O/P
  101. SETF LD D1 D2 D3 D4 D5 D6 D7 D8 UP            ;TEST FOR
  102. CLOCKF                            ;LOAD ALL HIGH
  103. SETF /D1 /D2 /D3 /D4 /D5 /D6 /D7 /D8 /UP        ;TEST FOR LOAD
  104. CLOCKF                            ;ALL LOW
  105. SETF /LD /UP                        ;TEST DOWN
  106. CLOCKF                            ;COUNT AND
  107. SETF UP                            ;ROLL UNDER
  108. FOR I := 0 TO 17 DO                    ;CLOCK THROUGH
  109. BEGIN                            ;ZERO TO 0FHEX
  110. CLOCKF                            ;
  111. END                            ;
  112. SETF LD D1 D2 D3 D4 D5 /UP                ;LOAD 1E HEX 
  113. CLOCKF                            ;
  114. SETF /LD UP                        ;CHECK FOR
  115. CLOCKF CLOCKF                        ;INCREMENT TO
  116. SETF LD /UP D6                        ;20HEX.
  117. CLOCKF                            ;LOAD 3EHEX
  118. SETF /LD UP                        ;CHECK FOR 
  119. CLOCKF CLOCKF                        ;INCREMENT TO
  120. SETF LD /UP D7                        ;40HEX. LOAD
  121. CLOCKF                            ;FEHEX CHECK
  122. SETF /LD UP                        ;FOR INCREMENT
  123. CLOCKF CLOCKF                        ;TO 100HEX 
  124. SETF LD /UP D8                        ;LOAD 1FE HEX
  125. CLOCKF                            ;CHECK FOR
  126. SETF LD UP                        ;INCREMENT TO
  127. CLOCKF CLOCKF                        ;200HEX
  128. SETF /LD UP                        ;3FEHEX
  129. CLOCKF CLOCKF                        ;TEST FOR WRAP
  130. TRACE_OFF                        ;AROUND TO ZERO.
  131.  
  132.