home *** CD-ROM | disk | FTP | other *** search
/ HAM Radio 1 / HamRadio.cdr / tech / palsum3 / 128lram.pds < prev    next >
Text File  |  1987-08-26  |  5KB  |  153 lines

  1.  
  2. TITLE        LIFO RAM CONTROLLER.
  3. PATTERN        01A.
  4. REVISION    01.
  5. AUTHOR        CHRIS JAY.
  6. COMPANY        MMI SANTA CLARA, CA.
  7. DATE        23 SEPTEMBER 1986.
  8. ;
  9. ;THE  ESSENTIAL  CONTROL  SIGNALS  FOR  CONTROLLING
  10. ;A  CMOS  STATIC  RAM  AS  A  HARDWARE  STACK  OR
  11. ;LAST  IN  FIRST  OUT  MEMORY  ARE  GENERATED  BY
  12. ;THE  PAL32VX10.  WHEN  A  HIGH  PUSH  INPUT  IS
  13. ;RECIEVED  THE  /WR  OUTPUT  GOES  FROM  INACTIVE
  14. ;HIGH  TO  ACTIVE  LOW  FOLLOWED  BY  AN  ACTIVE
  15. ;LOW  CHIP  SELECT, /CS.  PRIOR  TO  THE  ACTIVE  WRITE
  16. ;CYCLE  THE  ADDRESS  COUNT  IS  INCREMENTED.  SO
  17. ;A  PUSH  CYCLE  WILL CONSIST  OF  ADDRESS  INCREMENT
  18. ;FOLLOWED  BY  A  WRITE.  A  POP  CYCLE  WILL
  19. ;DECREMENT  THE  ADDRESS  COUNTER  AFTER  AN  ACTIVE
  20. ;READ.  THE  /CS  OUTPUT  WILL  GO  LOW  WITH  /WR
  21. ;INACTIVE  HIGH.  AS  A  'STAND  ALONE'  DESIGN  THIS
  22. ;PAL  CAN  CONTROL  THE  DATA  FLOW  INTO  A  STACK
  23. ;128  LOCATIONS  DEEP.  FOR  THE  CONTROL  OF  LARGER
  24. ;RAM  ARRAYS  IT  IS  POSSIBLE  TO  CASCADE  TWO  PAL
  25. ;DEVICES.  THE  MOST  SIGNIFICANT  ADDRESS  BIT  WILL
  26. ;BECOME  A  CARRY  OUT  SIGNAL  FOR  A  SECOND  PAL
  27. ;DEVICE  THE  CARRY  SIGNAL  PROPAGATES
  28. ;AN  UP/DOWN  COUNT  ENABLE  TO  THE  SECOND  PAL
  29. ;ALLOWING  ADDRESSING  OF  8K X 8 DEEP  STATIC RAMS.
  30. ;THESE  MAY  BE  EXPANDED  IN  WIDTH,  AND  CONTROLLED
  31. ;BY  THE  SAME  PAL  DEVICES TO  CREATE  STACK
  32. ;MEMORY  ARRAYS  OF  16  AND  24  AND  32  BITS
  33. ;WIDE.
  34. ;
  35. CHIP LIFOCONT PAL32VX10
  36. ;
  37. ;PIN    1    2    3    4    5    6
  38.     CLK     /RST     PUSH    POP    NC    NC 
  39.  
  40. ;PIN    7    8    9    10    11    12
  41.     NC    NC     NC     NC     NC     GND
  42.  
  43. ;PIN    13    14    15    16    17    18
  44.     NC     /WR     /CSX     XO     /Q6     /Q5 
  45.  
  46. ;PIN    19    20    21    22    23    23
  47.     /Q4    /Q3    /Q2    /Q1    /Q0    VCC
  48.  
  49. GLOBAL  BWR BCSX X Q6B Q5B Q4B Q3B Q2B Q1B Q0B
  50.  
  51. STRING CKUEN '/BWR*/BCSX*/X*PUSH'    ;CLOCK UP ENABLE
  52. STRING CKDEN '/BCSX*X*POP'        ;CLOCK DOWN ENABLE
  53.  
  54. EQUATIONS
  55.  
  56. GLOBAL.SETF = RST            ;ASYNCHRONOUS
  57.                     ;RESET.
  58. /Q0B      :=   /Q0B            ;LEAST  SIGNIFICANT
  59.      :+:  CKUEN            ;BIT  OF  THE
  60.       +   CKDEN            ;LIFO  ADDRESS
  61. /Q0      =   /Q0B            ;COUNTER
  62. /Q0.CMBF  =   GND            ;ENABLE  REGISTER
  63.                     ;TO  A0  OF  RAM
  64. /Q1B      :=  /Q1B            ;HOLD  COUNT
  65.          :+: /Q0B*CKDEN            ;ENABLE  DOWN COUNT
  66.       +  Q0B*CKUEN            ;ENABLE  UP  COUNT
  67. /Q1      =  /Q1B            ;ENABLE  REGISTER
  68. /Q1.CMBF  =  GND            ;TO  A1  OF  RAM
  69.                     ;
  70. /Q2B      :=  /Q2B            ;HOLD
  71.           :+: /Q0B*/Q1B*CKDEN        ;ENABLE  DOWN  COUNT
  72.            +  Q0B*Q1B*CKUEN        ;ENABLE  UP  COUNT
  73. /Q2      =  /Q2B            ;ENABLE  REGISTER
  74. /Q2.CMBF  =  GND            ;TO  A2  OF  RAM
  75.                     ;
  76. /Q3B      :=  /Q3B            ;HOLD
  77.           :+: /Q0B*/Q1B*/Q2B*CKDEN    ;ENABLE  DOWN  COUNT
  78.           +   Q0B*Q1B*Q2B*CKUEN        ;ENABLE  UP  COUNT
  79. /Q3      =  /Q3B            ;ENABLE  REGISTER
  80. /Q3.CMBF  =  GND            ;TO  A3  OF  RAM
  81.                     ;
  82. /Q4B      :=  /Q4B            ;HOLD
  83.           :+: /Q0B*/Q1B*/Q2B*/Q3B*CKDEN    ;ENABLE  DOWN  COUNT
  84.           +  Q0B*Q1B*Q2B*Q3B*CKUEN    ;ENABLE  UP  COUNT
  85. /Q4      =  /Q4B            ;ENABLE  REGISTER
  86. /Q4.CMBF  =  GND            ;TO  A4  OF  RAM
  87.                     ;
  88. /Q5B     :=  /Q5B            ;HOLD
  89.      :+: /Q0B*/Q1B*/Q2B*/Q3B*/Q4B    ;
  90.       *CKDEN            ;ENABLE  DOWN  COUNT
  91.       +  Q0B*Q1B*Q2B*Q3B*Q4B*CKUEN    ;ENABLE  UP  COUNT
  92. /Q5     :=  /Q5B            ;ENABLE  REGISTER
  93. /Q5.CMBF  =  GND            ;TO  A5  OF  RAM
  94.                     ;
  95. BCSX     :=  /BCSX*BWR*/X*PUSH        ;CHIP  SELECT  TO
  96.       +  POP*/X*/BCSX*/BWR        ;RAM  ACTIVE  LOW
  97. /CSX      =  /BCSX            ;FOR  READ  AND
  98. /CSX.CMBF =  GND            ;WRITE
  99.                     ;
  100. BWR     :=  BWR*/X*PUSH        ;RD/WR  CONTROL TO
  101.       +  /BCSX*/X*PUSH        ;RAM,  ACTIVE  LOW
  102.       +  /BCSX*X*POP        ;TO  WRITE,  HIGH
  103.       +  BWR*POP            ;TO  READ
  104. /WR      =  /BWR            ;
  105. /WR.CMBF  =  GND            ;
  106.                     ;
  107. X     :=  BWR*BCSX*/X        ;CONTROL  SIGNAL
  108.       +  X*PUSH*/BCSX        ;X,  TO  ENABLE
  109.       +  BCSX*/X            ;SEQUENCING  OF
  110. XO     :=  X                ;CS,WR  AND  THE
  111. XO.CMBF   =  GND            ;CONTROLLING  OF
  112.                     ;ADDRESS  LINES
  113. /Q6B     :=  /Q6B            ;HOLD 
  114.          :+:  Q0B*Q1B*Q2B*Q3B*Q4B*Q5B    ;
  115.       *CKUEN            ;ENABLE UP COUNT
  116.       +  /Q0B*/Q1B*/Q2B*/Q3B*/Q4B    ;
  117.       */Q5B*CKDEN;ENABLE DOWN COUNT    ;
  118. /Q6      =  /Q6B            ;
  119. /Q6.CMBF  = GND                ;
  120.                     ;
  121. SIMULATION
  122.  
  123. TRACE_ON  /WR /CSX XO CLK PUSH POP     ;
  124.       Q0 Q1 Q2 Q3 Q4 Q5 Q6        ;
  125. SETF RST /PUSH /POP /CLK        ;SET  INITIAL  CONDITIONS
  126. SETF /RST                ;REMOVE  ACTIVE  RESET
  127. CLOCKF CLK                ;
  128. FOR K := 1 TO 3 DO            ;GENERATE  THREE  PUSH
  129. BEGIN                    ;CYCLES  INTO  THE  RAM
  130. SETF PUSH                ;SET  PUSH  INSTRUCTION
  131. FOR I := 1 TO 5 DO            ;HIGH
  132. BEGIN CLOCKF CLK            ;CLOCK  FOR  FIVE  CYCLES
  133. END                    ;ONE  WRITE  CYCLE  IS
  134. SETF /PUSH                ;GENERATED.
  135. FOR J := 1 TO 3 DO            ;REMOVE  PUSH  INSTRUCTION
  136. BEGIN CLOCKF CLK            ;
  137. END                    ;
  138. END                    ;
  139. SETF /POP                ;SET  POP  INACTIVE
  140. CLOCKF CLK                ;GENERATE  FOUR  POP
  141. FOR L := 1 TO 4 DO            ;CYCLES
  142. BEGIN                    ;GENERATE  AN  ACTIVE
  143. SETF POP                ;POP,  CLOCK  ONE  POP
  144. FOR M := 1 TO 5 DO            ;CYCLE  OVER  FIVE
  145. BEGIN CLOCKF CLK            ;CLOCKS.
  146. END                    ;
  147. SETF /POP                ;SET  POP  INACTVE
  148. FOR N := 1 TO 3 DO            ;OVER  THREE  CLOCK
  149. BEGIN CLOCKF CLK            ;CYCLES.
  150. END                    ;
  151. END                     ;
  152. TRACE_OFF
  153.