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

  1. TITLE        PIPELINE CONTROLLER.
  2. PATTERN        01.
  3. REVISION    01.
  4. AUTHOR        CHRIS JAY.
  5. COMPANY        MMI SANTA CLARA, CA.
  6. DATE        20TH AUGUST 1986.
  7. ;
  8. ;THE  PAL16R8D  HAS  BEEN  DESIGNED  AS  A  VERY  HIGH
  9. ;SPEED  CONTROLLER  FOR  AN  INSTRUCTION  PIPELINE
  10. ;IN  A  HIGH  SPEED  PROCESSOR  SYSTEM.  THE  PAL  WILL
  11. ;CONTROL  THE  FLOW  OF  INSTRUCTIONS  IN  A  FOUR  DEEP
  12. ;PIPELINE.  THE  REGISTERS  MAY  BE  EXPANDED  TO  ANY
  13. ;REALISTC  WIDTH; 8  BITS,  16  BITS,  32  BITS  ETC.
  14. ;TO  RESET  THE  DEVICE, THE  /RST  LINE  IS  HELD  LOW
  15. ;FOR  TWO  CLOCK  PERIODS,  THE  EMPTY  AND  RDY  REGISTERS
  16. ;WILL  WILL  INDICATE  THAT  THE  PIPELINE  IS  EMPTY
  17. ;AND  READY  FOR  THE  FIRST  WRITE  SEQUENCE.  
  18. ;THE  INSTRUCTIONS  MAY  BE  WRITTEN  INTO  THE  PIPELINE
  19. ;IN A SEQUENCE  OF  FOUR.  THE  REQUEST  TO  WRITE  LINE  IS
  20. ;ASSERTED  HIGH  WHEN  THE  FIRST  INSTRUCTION  IS
  21. ;VALID,  AND  IS  CLOCKED  INTO  THE  PAL  AS  THE  ENABLE
  22. ;WRITE  SIGNAL.  THE  ENABLE  LOAD  GOES  HIGH  TO
  23. ;ENABLE  THE  FIRST  SYNCHRONOUS  LOAD,  AND  THE  RDY
  24. ;OUTPUT  GOES  INACTIVE   LOW.  QA  AND  QB  REPRESENT  AN
  25. ;ON  CHIP  UP/DOWN  COUNTER  WHICH  IS  INCREMENTED  AFTER
  26. ;THE  FIRST  LOAD.  THE  RDY  LINE  GOES  ACTIVE  AGAIN
  27. ;TO  INDICATE  THAT  THE  PIPELINE  IS  READY  TO 
  28. ;RECIEVE  THE  SECOND  INSTRUCTION,  THE  ENABLE  LOAD
  29. ;OUTPUT  GOES  INACTIVE  LOW.  SUCCESSIVE  LOADS  MAY  TAKE
  30. ;PLACE  ON  THIS  `HANDSHAKE'  BASIS  UNTIL  ALL  FOUR
  31. ;PIPELINE  REGISTERS  ARE  LOADED,  THEN  THE  FULL
  32. ;REGISTER  GOES  HIGH  THE  PIPLINE  IS  FULL  AND  READY
  33. ;TO  BE  EMPTIED.  TO  READ  DATA  THE  RD  INPUT
  34. ;IS  ASSERTED  AND  REGISTERED  IN  THE  ERD,  ENABLE
  35. ;READ  REGISTER.  THE  FIRST  INSTRUCTION  IS  TAKEN
  36. ;OUT  OF  THE  PIPELINE,  THE  FULL  FLAG  GOES  INACTIVE
  37. ;LOW  AND  THE  INTERNAL  COUNTER  IS  DECREMENTED  AS
  38. ;EACH  INSTRUCTION  TAKEN  OUT  OF  THE  PIPELINE.  WHEN
  39. ;FOUR  READS  HAVE  ZERO'D  THE  COUNTER  AND  SET  THE
  40. ;EMPTY  FLAG  REGISTER  ACTIVE,  THE  PIPELINE  IS  EMPTY
  41. ;AND  READY  FOR  A  NEW  WRITE  CYCLE.
  42. ;
  43. ;        PIN   DESCRIPTION
  44. ;
  45. ;PIN 1...CK.....SYNCHRONISING  CLOCK.
  46. ;PIN 2.../RST...ACTIVE  LOW  FOR  SYNCHRONOUS  RESET.
  47. ;PIN 3...WRT....WRITE  HANDSHAKE  INPUT.  HIGH  FOR  REQUEST
  48. ;               TO  WRITE.
  49. ;PIN 9...RD.....HAND  SHAKE  ACTIVE  HIGH  TO  READ.
  50. ;PIN 10..GND.
  51. ;PIN 11../OE....ACTIVE  LOW  OUTPUT  ENABLE.
  52. ;PIN 12..FULL...ACTIVE  HIGH  FULL  FLAG.
  53. ;PIN 13..QA.....COUNTER  REGISTER LSB.
  54. ;PIN 14..QB.....COUNTER  REGISTER MSB.
  55. ;PIN 15..EWT....ENABLE  WRITE  FLAG  HIGH  IN  ACTIVE  REQUEST
  56. ;            TO  THE  WRITE  INPUT.
  57. ;PIN 16..ENLD...ENABLE  LOAD  ACTIVE  HIGH  OUTPUT  TO  ENABLE
  58. ;            THE  PIPELINE  REGISTER  LOAD.
  59. ;PIN 17..ERD....ENABLE  READ  ACTIVE  RESPONSE  TO  A  READ
  60. ;               REQUEST.
  61. ;PIN 18..EMPTY..ACTIVE  HIGH  WHEN  THE  REGISTER  PIPELINE
  62. ;             IS  EMPTY.
  63. ;PIN 19..RDY....HANDSHAKE  OUTPUT,  GOES  ACTIVE  HIGH  WHEN
  64. ;            THE  PIPELINE  REGISTER  INPUT  IS  READY  FOR
  65. ;            THE  NEXT  INSTRUCTION.
  66. ;PIN 20..VCC.
  67. ;
  68. ;
  69. CHIP PIPECNTRL PAL16R8
  70. ;
  71. ;PINS    1          2          3          4          5
  72.     CK    /RST    WRT    NC    NC
  73. ;PINS   6          7          8          9         10
  74.     NC    NC    NC    RD    GND
  75. ;PINS    11    12    13    14    15
  76.         /OE    FULL    QA    QB    EWT
  77. ;PINS    16    17    18    19    20
  78.         ENLD    ERD     EMPTY    RDY    VCC
  79.  
  80. EQUATIONS
  81.  
  82. /ENLD     :=  ENLD*EWT            ;ENABLE INSTRUCTION
  83.      +  ENLD*ERD            ;REGISTER LOAD DURING
  84.      +  RST                ;ACTIVE READ AND WRITE
  85.      + /ERD*/EWT            ;DISABLE WHEN READ AND
  86.      +  EMPTY*ERD            ;WRITE ARE INACTIVE.
  87.                     ;RESET AT POWER UP.
  88. /RDY      := /ENLD*EWT*/RST        ;THE RDY INPUT FORMS
  89.      +  ERD*/RST            ;PART OF THE HANDSHAKE.
  90.      +  FULL*/RST            ;WHEN ACTIVE HIGH THE
  91.                      ;INSTRUCTION REGISTER
  92.                     ;FILE IS READY FOR THE
  93.                     ;NEXT INSTRUCTION.
  94. /QA       :=  QA*ENLD*EWT*/FULL        ;INTERNAL UP DOWN
  95.      + /QA*/ENLD*EWT*/FULL        ;COUNTER LSB. UP
  96.      +  EMPTY            ;COUNT FOR WRITE
  97.      +  QA*/ENLD*ERD*/FULL        ;ACTIVE, DOWN COUNT
  98.      + /QA*ENLD*ERD*/FULL        ;FOR ACTIVE READ
  99.      + /QA*/ERD*/EWT*FULL        ;HOLD FOR FULL OR
  100.                     ;EMPTY.
  101. /QB       :=  QB*QA*ENLD*EWT*/FULL    ;QB IS MSB OF INTERNAL
  102.      + /QB*/ENLD*EWT*/FULL        ;REGISTER COUNTER
  103.      + /QB*/QA*EWT*/FULL        ;BOTH REGISTERS QA
  104.      +  EMPTY            ;AND QB REQUIRE TWO
  105.      +  QB*/QA*/ENLD*ERD*/FULL    ;CLOCK PULSES DURING
  106.      + /QB*QA*ERD*/FULL        ;A SYNCHRONOUS RESET.
  107.      + /QB*ENLD*ERD*/FULL        ;
  108.      + /QB*/ERD*/EWT*FULL        ;
  109.                     ;
  110. /FULL    :=  /QB                ;FULL FLAG GOES HIGH
  111.      +  /QA                ;WHEN COUNT IS MAX
  112.      +  RST                ;TO INDICATE ALL
  113.      +  ERD                ;PIPELINE REGISTERS
  114.                     ;ARE FULL.
  115. /EMPTY    :=  QA*/RST            ;WHEN PIPLINE HAS BEEN
  116.      +  QB*/RST            ;FLUSHED INTERNAL
  117.      +  EWT*/RST            ;COUNTER IS ZERO AND
  118.                     ;EMPTY FLAG IS SET.
  119. /EWT    :=  /WRT            ;ENABLE WRITE ONLY IF
  120.      +  ERD                ;READ IS INACTIVE AND
  121.      +  FULL            ;PIPELINE IS NOT FULL.
  122.      +  RST                ;
  123.                     ;
  124. /ERD    :=  /RD                ;ENABLE READ FLAG ONLY
  125.      +  EWT                ;IF WRITE NOT ACTIVE
  126.      +  EMPTY            ;AND PIPELINE IS NOT
  127.      +  RST                ;EMPTY.
  128.  
  129. SIMULATION
  130. TRACE_ON CK WRT RD RST RDY        ;TRACE ALL SIGNALS.
  131.      ENLD QA QB FULL EMPTY        ;
  132.      EWT ERD            ;
  133. SETF     /CK RST OE            ;SET INITAL CONDITIONS.
  134. CLOCKF      CK                ;PERFORM RESET, TWO
  135. CLOCKF      CK                ;CLOCKS REQUIRED.
  136. SETF     /RST /WRT /RD            ;IDLE SYSTEM FOR
  137. FOR I := 0 TO 1 DO            ;THREE CLOCK CYCLES.
  138. BEGIN CLOCKF CK                ;
  139. END                    ;
  140. SETF     WRT /RD            ;REQUEST TO 'WRITE TO
  141. CLOCKF   CK                ;PIPELINE', RESPONSE
  142. FOR I := 0 TO 8 DO            ;TO RDY = HIGH. CLOCK
  143. BEGIN CLOCKF CK                ;9 CYCLES, TO LOAD
  144. END                    ;FOUR REGISTERS THEN
  145. SETF RD /WRT                ;IDLE.
  146. FOR I := 0 TO 8 DO            ;RESPOND TO FULL FLAG
  147. BEGIN CLOCKF CK                ;READ FROM THE PIPELINE.
  148. END                    ;9 CYCLES.
  149. SETF /WRT /RD                ;CHECK INACTIVE STATE.
  150. FOR I := 0 TO 1 DO            ;TWO CYCLES OF EMPTY
  151. BEGIN CLOCKF CK                ;PIPELINE, NO WRITE OR
  152. END                    ;READ.
  153. TRACE_OFF                ;END OF SIMULATION.
  154.