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

  1. TITLE    UNIVERSAL PORT INTERFACE ADAPTOR
  2. ;     FOR THE  MC68020 32-Bit MICROPROCESSOR
  3. PATTERN  PORT INTERFACE.
  4. REVISION 06.
  5. AUTHOR   VINCENT J. COLI.
  6. COMPANY  MONOLITHIC MEMORIES INC, SANTA CLARA, CA.
  7. DATE     23 NOVEMBER 1985.
  8.  
  9. CHIP     PORT_INTERFACE PAL20RA10
  10.  
  11. ;PIN    1    2    3    4    5    6
  12.     /PL    /CS    CLK    /ECS    /AS    SIZ1
  13. ;PIN    7    8    9    10    11    12
  14.     SIZ0    PS1    PS0    WS0    WS1    GND
  15. ;PIN    13    14    15    16    17    18
  16.     /OE    /DSACK0    /DSACK1    /LLD    /LMD    /UMD
  17. ;PIN    19    20    21    22    23    24
  18.     /UUD    Q0    Q1    A0    A1    VCC
  19. ;
  20. ;PIN DESCRIPTION
  21. ;PIN 1        : /PL..PRELOAD INPUT. /PL IS TAKEN INACTIVE HIGH
  22. ;        : FOR NORMAL OPERATION. TO EFFECT A PRELOAD THE
  23. ;        : THE OUTPUT BUFFERS ARE PUT INTO A 3 - STATE
  24. ;        : CONDITION. DATA IS PLACED ON THE OUTPUT PINS
  25. ;        : AND /PL IS TAKEN ACTIVE LOW. THE PRELOAD DATA
  26. ;        : FALLS THROUGH INTO THE REGISTER ARRAY. THIS
  27. ;        : PIN IS PULLED HIGH FOR NORMAL OPERATION.
  28. ;PIN 2        :/CS..EXTERNAL INPUT THAT IS DECODED FROM THE
  29. ;        : MICROPROCESSORS HIGHER ORDER ADDRESS LINES WHICH
  30. ;        : GOES ACTIVE LOW TO SELECT THE UNIVERSAL PORT
  31. ;        : ADAPTOR. THIS IS AN ACTIVE LOW INPUT AND COULD
  32. ;        : BE THE OUTPUT OF ANOTHER PAL DEVICE.
  33. ;PIN 3        : CLK..THE MICROPROCESSOR'S SYSTEM CLOCK DRIVES
  34. ;        : THIS INPUT PIN TO SYNCHRONIZE EVENTS BETWEEN
  35. ;        : THE 68020 AND THE PAL20RA10.
  36. ;PIN 4        : /ECS..INPUT FROM THE 68020 MICROPROCESSOR THAT
  37. ;        : GOES LOW FOR ONE HALF OF A CLOCK CYCLE TO 
  38. ;        : INDICATE THAT THE MPU IS STARTING A BUS CYCLE.
  39. ;PIN 5        : /AS..ADDRESS STROBE FROM THE 68020 TO VALIDATE
  40. ;        : THE MPU'S FUNCTION CODES, ADDRESS LINES, SIZE
  41. ;        : OUTPUTS AND R/W CONTROL LINES.
  42. ;PIN 6        : SIZ1..SIZE OUTPUT USED WITH SIZ0 TO INDICATE
  43. ;        : HOW MANY TRANSFERS REMAIN IN A GIVEN BUS CYCLE.
  44. ;PIN 7        : SIZ0..SIZE OUTPUT USED WITH SIZ1.
  45. ;
  46. ;PIN 8 - 9    : PS1,PS0..THESE TWO RESPECTIVE INPUTS TO
  47. ;          : THE PAL20RA10 MAY BE HARDWIRED TO A ONE
  48. ;          : OF FOUR DIGITAL CODE. THIS INDICATES WHETHER
  49. ;          : THE PORT IS NOT PRESENT, BYTE WIDE, WORD WIDE
  50. ;          : OR LONG WORD WIDE. SEE TRUTH TABLE FOR PORT
  51. ;          : SIZE SELECTION.
  52. ;
  53. ;PIN 10 - 11    : WS1 AND WS0 RESPECTIVELY. THE ONE OF FOUR
  54. ;        : CODES HARDWIRED TO THIS INPUT INDICATE
  55. ;        : WHETHER ZERO, ONE, TWO OR THREE WAIT
  56. ;        : STATES SHOULD BE INSERTED IN A GIVEN
  57. ;        : CYCLE. SEE TRUTH TABLE FOR WAIT STATES.
  58. ;PIN 13        : ACTIVE LOW OUTPUT ENABLE FOR THE PAL20RA10.
  59. ;PIN 14        : /DSACK0..OUTPUT TO THE 68020, PART OF THE
  60. ;              : ASYNCHRONOUS HANDSHAKE INDICATING, WITH /DSACK1
  61. ;              : THE SIZE OF THE PORT, WHEN THE PORT IS READY FOR
  62. ;              : ACCESS.
  63. ;PIN 15        : /DSACK1..OUTPUT TO THE 68020 USED WITH /DSACK0.
  64. ;PIN 16        : /LLD..A COMBINATIONAL ADDRESS DECODE OUTPUT TO
  65. ;              : SELECT DATA BUS D0 - D7. ACTIVE LOW.
  66. ;PIN 17        : /LMD..A COMBINATIONSL ADDRESS DECODE OUTPUT TO
  67. ;              : SELECT DATA BUS D8 - D15. ACTIVE LOW.
  68. ;PIN 18        : /UMD..A COMBINATIONAL ADDRESS DECODE OUTPUT TO
  69. ;              : SELECT DATA BUS D16 - D23, FOR LONG WORD
  70. ;              : TRANSFERS AND /LD FOR WORD TRANSFERS. ACTIVE LOW.
  71. ;PIN 19        : /UUD..A COMBINATIONAL ADDRESS DECODE OUTPUT TO
  72. ;              : SELECT DATA BUS D24 - D31, FOR LONG WORD
  73. ;              : TRANSFERS AND /UD FOR WORD TRANSFERS. AND /CS
  74. ;              : BYTE TRANSFERS. ACTIVE LOW.
  75. ;PIN 20        : Q0..LEAST SIGNIFICANT BIT OUTPUT FROM A TWO
  76. ;              : BIT COUNTER WHICH INCREMENTS ON EACH WAIT STATE
  77. ;              : SAMPLE UNTIL THE COUNT IS EQUAL TO THE WS0, WS1
  78. ;              : BINARY CODED INPUT.
  79. ;PIN 21        : Q1..MOST SIGNIFICANT BIT OUTPUT OF STATE COUNTER
  80. ;              : USED WITH Q0.
  81. ;PIN 22        : A0..LEAST SIGNIFICANT ADDRESS INPUT FROM 68020.
  82. ;PIN 23        : A1..NEXT LEAST SIGNIFICANT ADDRESS INPUT FROM
  83. ;              : 68020.
  84. ;
  85. EQUATIONS
  86.  
  87. UUD  =  PS1*PS0*CS*AS*/A1*/A0        ;UPPER UPPER DATA BUS (D31-D24)
  88.      +  PS1*/PS0*CS*AS*/A0        ;UD FOR 16-BIT PORT
  89.      + /PS1* PS0* CS*AS            ;CS FOR 8 BIT PORT
  90.                     ;
  91. /UMD =  PS0*A1                ;UPPER MIDDLE DATA BUS (D23-D16)
  92.      + /SIZ1*SIZ0*/A0            ;LD FOR 16-BIT PORT
  93.      + /CS                ;
  94.      + /AS                ;
  95.                     ;
  96. LMD  =  PS1*PS0*CS*AS*A1*/A0        ;LOWER MIDDLE DATA BUS (D15-D8)
  97.      +  PS1*PS0*CS*AS*/SIZ1*/SIZ0*/A1    ;
  98.      +  PS1*PS0*CS*AS*SIZ1* SIZ0*/A1    ;
  99.      +  PS1*PS0*CS*AS*/SIZ0*/A1*A0    ;
  100.                     ;
  101. LLD  =  PS1*PS0*CS*AS*SIZ1*SIZ0*A0    ;LOWER LOWER DATA BUS (D7-D0)
  102.      +  PS1*PS0*CS*AS*/SIZ1*/SIZ0    ;
  103.      +  PS1*PS0*CS*AS*A1*A0        ;
  104.      +  PS1*PS0*CS*AS*SIZ1*A1        ;
  105.                     ;
  106. DSACK0      :=  PS0*/WS1*/WS0*/Q1*/Q0    ;NO WAIT STATES
  107.              +  PS0*/WS1* WS0*/Q1*Q0    ;ONE WAIT STATE
  108.              +  PS0* WS1*/WS0*Q1*/Q0    ;TWO WAIT STATES
  109.              +  PS0* WS1* WS0*Q1*Q0    ;THREE WAIT STATES
  110. DSACK0.CLKF  = CLK*/DSACK1*/DSACK0    ;CLOCK WHEN DSACK IS UNASSERTED
  111. DSACK0.RSTF  = /AS                      ;UNASSERTED ADDRESS STROBE RESETS
  112. DSACK0.TRST  =  CS                      ;3-STATE WHEN PORT IS NOT SELECTED
  113.                     ;
  114. DSACK1      :=  PS1*/WS1*/WS0*/Q1*/Q0   ;NO WAIT STATES
  115.              +  PS1*/WS1* WS0*/Q1*Q0    ;ONE WAIT STATE
  116.              +  PS1* WS1*/WS0* Q1*/Q0   ;TWO WAIT STATES
  117.              +  PS1* WS1* WS0*Q1*Q0       ;THREE WAIT STATES
  118. DSACK1.CLKF  = CLK*/DSACK1*/DSACK0    ;CLOCK WHEN DSACK IS UNASSERTED
  119. DSACK1.RSTF  = /AS            ;
  120.                     ;
  121. DSACK1.TRST  =  CS            ;3-STATE WHEN PORT IS NOT SELECTED
  122.                     ;INTERNAL STATE COUNTER IS
  123. Q0    := /Q0 + Q0*Q1            ;RESET FOR THE START OF EACH
  124. Q0.CLKF  =  CLK                ;MEMORY CYCLE. AND IS INCREMENTED
  125. Q0.SETF  = /AS                ;BY THE SYSTEM CLOCK. THE COUNT
  126.                     ;SEQUENCE IS COMPARED WITH THE
  127. Q1    :=  Q0*/Q1 + /Q0*Q1 + Q0*Q1     ;WAIT STATE INPUT. WHEN THE COUNT
  128.                                      ;IS EQUAL TO NO OF WAIT STATES
  129. Q1.CLKF  =  CLK                         ;DSACK IS ASSERTED. AT THE END
  130. Q1.SETF  =  /AS                ;EACH CYCLE THE COUNTER RESETS.
  131.  
  132. SIMULATION                ;SIMULATION SECTION
  133.                     ;
  134. TRACE_ON  CLK /ECS /AS PS1 PS0 WS0 WS1    ;SET ZERO WAIT STATES FOR
  135.          /DSACK0 /DSACK1 Q0  Q1        ;FOR A 32 BIT PORT. SET
  136. SETF     /PL OE /CLK CS /AS        ;INITIAL CONDITIONS. TO MARK
  137.      /ECS PS1 PS0 /WS1 /WS0        ;END OF PREVIOUS CYCLE.
  138. FOR J := 0 TO 3 DO            ;APPLY FOUR LOOPS TO TEST
  139. BEGIN                    ;WAIT STATE GENERATION FIRST
  140. IF J = 1 THEN                 ;FOR A 32 BIT PORT. PS0 AND
  141. BEGIN SETF /PS0 PS1 /WS1 /WS0        ;PS1 HIGH. WITH PS0 LOW AND 
  142. END                    ;PS1 HIGH THE PORT IS 16
  143. IF J = 2 THEN                ;BITS WIDE. AND THE LOOP IS
  144. BEGIN SETF PS0 /PS1 /WS1 /WS0        ;RE-RUN. WITH PS0 HIGH AND
  145. END                    ;PS1 LOW THE PORT IS BYTE
  146. IF J = 3 THEN                ;WIDE. NO PORT IS PRESENT
  147. BEGIN SETF /PS0 /PS1 /WS1 /WS0        ;WHEN PS0 AND PS1 ARE BOTH
  148. END                    ;SET LOW.
  149. SETF CLK ECS                ;ECS GO INACTIVE. AT START
  150. SETF /CLK /ECS                ;OF CYCLE /ECS GOES ACTIVE
  151. SETF AS                    ;FOLLOWD BY AS.
  152. FOR I := 1 TO 2 DO            ;SYSTEM CLOCK GENERATES
  153. BEGIN                    ;TWO CLOCKS BEFOR THE
  154. SETF CLK SETF /CLK            ;END OF A CYCLE WITH
  155. END                    ;ZERO WAIT STATES.
  156. SETF /AS                ;AT END OF CYCLE SET AS
  157. SETF CLK                ;INACTIVE THEN SET /ECS
  158. SETF /CLK /AS /ECS /WS1 WS0        ;INACTIVE. SET WAIT STATE
  159. SETF CLK ECS                ;INPUT FOR ONE WAIT STATE
  160. SETF /CLK /ECS                ;/ECS GOES ACTIVE THEN
  161. SETF AS                    ;INACTIVE TO MARK START
  162. FOR I := 1 TO 3 DO            ;OF CYCLE. FOLLOWED BY
  163. BEGIN                    ;AS GOING ACTIVE. THREE
  164. SETF CLK SETF /CLK            ;SYSTEM CLOCKS ARE REQUIRED
  165. END                    ;ON THE APPLICATION OF ONE
  166. SETF /AS                ;WAIT STATE. SET /AS INACTIVE
  167. SETF CLK                ;AT THE END OF CYCLE. SET
  168. SETF /CLK /AS /ECS WS1 /WS0        ;ECS INACTIVE, AND APPLY 
  169. SETF CLK ECS                ;A TWO WAIT STATE INPUT. AT
  170. SETF /CLK /ECS                ;START OF THE CYCLE ECS GOES
  171. SETF AS                    ;ACTIVE THEN INACTIVE FOLLOWED
  172. FOR I := 1 TO 4 DO            ;BY THE ADDRESS STROBE. FOUR
  173. BEGIN                    ;SYSTEM CLOCKS ARE REQUIRED
  174. SETF CLK SETF /CLK            ;WITH TWO WAIT STATES APPLIED.
  175. END                    ;
  176. SETF /CLK                 ;AT THE END OF THE CYCLE
  177. SETF /AS                ;AS GOES INACTIVE FOLLOWED
  178. SETF CLK                ;BY ECS. THE WAIT STATE
  179. SETF /CLK /AS /ECS WS1 WS0        ;INPUT IS SET FOR THREE.
  180. SETF CLK ECS                ;AT START OF CYCLE ECS IS
  181. SETF /CLK /ECS                ;DRIVEN ACTIVE THEN INACTIVE
  182. SETF AS                    ;AS GOES ACTIVE. WITH THE
  183. FOR I := 1 TO 5 DO            ;APPLICATION OF THREE WAIT
  184. BEGIN                    ;STATES FIVE SYSTEM CLOCKS
  185. SETF CLK SETF /CLK            ;ARE REQUIRED.
  186. END                    ;AT THE END OF THE THREE
  187. SETF /AS                ;WAIT STATE CYCLE /AS IS
  188. SETF CLK                ;DRIVEN INACTIVE.
  189. SETF /CLK                ;
  190. END                    ;
  191. TRACE_OFF                ;
  192.  
  193.