home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 15 / 15.iso / s / s205 / 1.ddi / BACKUP.001 / EXAMPLES_CB_SAMPLES_LA_COMB1.PDS < prev    next >
Encoding:
PALASM Design Description  |  1991-02-27  |  9.7 KB  |  310 lines

  1. ;PALASM Design Description
  2.  
  3. ;---------------------------------- Declaration Segment ------------
  4. TITLE    Logic Analyzer States
  5. PATTERN  
  6. REVISION 
  7. AUTHOR   john davis
  8. COMPANY  SIVAD for AMD
  9. DATE     10/15/90
  10.  
  11. CHIP  _la_comb  MACH210
  12. ;---------------------------------- PIN Declarations ---------------
  13. PIN  ?  /POR    COMBINATORIAL            ; Power On Reset
  14. PIN  35 CLK1                            ; Default Clock on pin 35
  15. PIN  ?  K_CLK COMBINATORIAL             ; 
  16.  
  17. PIN  ?  MSW[1] REGISTERED                 ; 
  18. PIN  ?  MSW[2] REGISTERED                 ; 
  19. PIN  ?  MSW[3] REGISTERED                 ; 
  20. PIN  ?  MSW[4] REGISTERED                 ; 
  21. PIN  ?  MSW[5] REGISTERED                 ; 
  22. PIN  ?  MSW[15] REGISTERED                ; 
  23. PIN  ?  REQ        REGISTERED                ; 
  24. PIN  ?  RPL        REGISTERED                ; 
  25. PIN  ?  GO     COMBINATORIAL             ; 
  26. PIN  ?  DONE COMBINATORIAL           ; 
  27. PIN  ?  ALL_HIT COMBINATORIAL             ; 
  28. PIN  ?  TC    COMBINATORIAL               ; 
  29. PIN  ?  AM_G_ADDR_CK COMBINATORIAL        ; 
  30. PIN  ? /AM_G_CS COMBINATORIAL             ; 
  31. PIN  ? /AM_G_OE COMBINATORIAL             ; 
  32. PIN  ? /AM_G_WE COMBINATORIAL             ; 
  33. PIN  ?  PM_G_ADDR_CK COMBINATORIAL        ; 
  34. PIN  ? /PM_G_CS COMBINATORIAL             ; 
  35. PIN  ? /PM_G_OE COMBINATORIAL             ; 
  36. PIN  ? /PM_G_WE COMBINATORIAL             ; 
  37. PIN  ?  LOAD
  38. PIN  ?  /CLR_SR
  39. PIN  ?  /HOLD
  40. PIN  ?  INP_HIT
  41. PIN ?  K_C4 REGISTERED                   ; 
  42.  
  43. PIN  ?  AM_LOAD                           ; 
  44. PIN  ?  CLK_PIPE COMBINATORIAL            ; 
  45.  
  46. ;************ BURIED REGISTERS ********************
  47. NODE 1 POR_INIT
  48. NODE ?  ON    COMBINATORIAL               ; 
  49. NODE ?  K0 REGISTERED                     ; 
  50. NODE ?  K1 REGISTERED                     ; 
  51. NODE ?  K2 REGISTERED                     ; 
  52. NODE ?  K3 REGISTERED                     ; 
  53. NODE ?  K_C0_0 REGISTERED                 ; 
  54. NODE ?  K_C0_1 REGISTERED                 ; 
  55. NODE ?  K_C1 REGISTERED                   ; 
  56. NODE ?  K_C2_0 REGISTERED                 ; 
  57. NODE ?  K_C2_1 REGISTERED                 ; 
  58. NODE ?  K_C3 REGISTERED                   ; 
  59.  
  60. NODE ?  SR0 REGISTERED                    ;Internal timing shift register
  61. NODE ?  SR1 REGISTERED                    ;Internal timing shift register
  62. NODE ?  SR2 REGISTERED                    ;Internal timing shift register
  63. NODE ?  SR3 REGISTERED                    ;Internal timing shift register
  64. NODE ?  SR4 REGISTERED                    ;Internal timing shift register
  65. NODE ?  SR5 REGISTERED                    ;Internal timing shift register
  66. NODE ?  SR6 REGISTERED                    ;Internal timing shift register
  67. NODE ?  SR7 REGISTERED                    ;Internal timing shift register
  68. NODE ?  SR8 REGISTERED                    ;Internal timing shift register
  69. ;       
  70. NODE ?  AK0 REGISTERED                    ; 
  71. NODE ?  AK1 REGISTERED                    ; 
  72. NODE ?  AK2 REGISTERED                    ; 
  73. NODE ?  AK3 REGISTERED                    ; 
  74.  
  75. ;       
  76. ;STRING DECLARATIONS.
  77. STRING GL 'MSW[0]'
  78. STRING DL 'MSW[1]'
  79. STRING BF 'MSW[2]'
  80. STRING TR0 'MSW[3]'
  81. STRING TR1 'MSW[4]'
  82. STRING TR2 'MSW[5]'
  83. STRING ST 'MSW[6]'
  84. STRING XCK 'MSW[7]'
  85. STRING TG 'MSW[8]'
  86. STRING SM 'MSW[9]'
  87. STRING XS 'MSW[10]'                ;External Sync Input
  88. STRING CS 'MSW[11]'
  89. STRING EQ 'MSW[12]'
  90. STRING TA 'MSW[13]'
  91. STRING TD 'MSW[14]'
  92. STRING RUN 'MSW[15]'
  93.  
  94. STRING S_K0  '/POR*RUN*/K3*/K2*/K1*/K0'        ;Main Control State Bits
  95. STRING S_K1  '/POR*RUN*/K3*/K2*/K1* K0'
  96. STRING S_K2  '/POR*RUN*/K3*/K2* K1*/K0'
  97. STRING S_K3  '/POR*RUN*/K3*/K2* K1* K0'
  98. STRING S_K4  '/POR*RUN*/K3* K2*/K1*/K0'
  99. STRING S_K5  '/POR*RUN*/K3* K2*/K1* K0'
  100. STRING S_K6  '/POR*RUN*/K3* K2* K1*/K0'
  101. STRING S_K7  '/POR*RUN*/K3* K2* K1* K0'
  102. STRING S_K8  '/POR*RUN* K3*/K2*/K1*/K0'
  103.  
  104. STRING S_LOAD '/POR*LOAD'
  105. STRING SHIFT 'HOLD'
  106. STRING S_R0  'SR0'
  107. STRING S_K_C4  ' K_C4'
  108. STRING S_TDD    '/TR2*/TR1*/TR0'        ;Operational Mode Bits
  109. STRING S_TTD    '/TR2*/TR1* TR0'
  110. STRING S_TAD    '/TR2* TR1*/TR0'
  111. STRING S_TBD     '/TR2* TR1* TR0'
  112. STRING S_LD_RG     ' TR2*/TR1*/TR0'
  113. STRING S_LD_AT     ' TR2*/TR1* TR0'
  114. STRING S_LSA     '(S_TDD+S_TTD+S_TAD+S_TBD)'
  115. STRING S_SET     '(S_LD_RG+S_LD_AT)'
  116.  
  117. ;------------------- Boolean Equation Segment ------
  118. EQUATIONS
  119. ;------------ Initialization ---------------
  120. POR_INIT.RSTF=POR
  121. ;------------ Outputs -------------------- 
  122. AM_G_CS = /K_C0_1 * K_C0_0
  123.     + K_C0_1 * /K_C0_0
  124.      + AK3
  125. AM_G_OE = /K_C0_1 * K_C0_0
  126.     + K_C0_1 * /K_C0_0
  127.       +  AK3*/AK2*/AK1* AK0
  128. AM_G_WE = /K_C0_1 * K_C0_0
  129.     + K_C0_1 * /K_C0_0
  130.     + AK3
  131. AM_G_ADDR_CK = /K_C0_1 * K_C0_0
  132.     + AK3
  133. PM_G_CS = /K_C0_1 * K_C0_0
  134.     + K_C0_1 * /K_C0_0
  135. PM_G_OE = /K_C0_1 * K_C0_0
  136.     + K_C0_1 * /K_C0_0
  137. PM_G_WE = /K_C0_1 * K_C0_0
  138.     + K_C0_1 * /K_C0_0
  139. PM_G_ADDR_CK = /K_C0_1 * K_C0_0
  140. ;-----------------------Operation--------------------------
  141.  
  142. K_C0_0 := /POR*MSW[15]*/MSW[5]*MSW[4]*MSW[3]*/K3*K2*/K1*K0*/K_C0_0
  143.     + /POR*MSW[15]*/MSW[5]*/MSW[4]*/MSW[3]*/K3*/K2*K1*/K0*/K_C0_0
  144.     + /POR*/MSW[5]*K_C0_1*/K_C0_0
  145. K_C0_1 := /POR*MSW[15]*/MSW[5]*/MSW[4]*/MSW[3]*/K3*/K2*K1*/K0*/K_C0_1*K_C0_0
  146.     + /POR*MSW[15]*/MSW[5]*MSW[4]*MSW[3]*/K3*K2*/K1*K0*/K_C0_1*K_C0_0
  147.     + /POR*/MSW[5]*K_C0_1*/K_C0_0*/ALL_HIT
  148.  
  149. K_C1 := ALL_HIT * /MSW[5] * /MSW[3] * /K3 * /K2 * K1 * /K0 * /K_C1
  150.     + ALL_HIT * /MSW[5] * /MSW[4] * MSW[3] * /K3 * /K2 * K1 * K0 * /K_C1
  151.     + ALL_HIT * /MSW[5] * MSW[4] * MSW[3] * /K3 * K2 * /K1 * K0 * /K_C1
  152.     + ALL_HIT * /MSW[5] * MSW[4] * /K3 * /K2 * K1 * /K0 * /K_C1
  153.  
  154. K_C2_0 := /MSW[5] * /K3 * K2 * /K1 * /K0 * /K_C2_1 * /K_C2_0 * /MSW[3]
  155.     + /MSW[5] * /MSW[4] * /K3 * /K2 * K1 * K0 * /K_C2_1 * /K_C2_0 * MSW[3]
  156.     + /MSW[5] * MSW[4] * /K3 * K2 * /K1 * /K0 * /K_C2_1 * /K_C2_0
  157. K_C2_1 := /MSW[5] * /K3 * K2 * /K1 * /K0 * K_C2_0 * /MSW[3]
  158.     + /MSW[5] * /MSW[4] * /K3 * /K2 * K1 * K0 * K_C2_0 * MSW[3]
  159.     + /MSW[5] * MSW[4] * /K3 * K2 * /K1 * /K0 * K_C2_0
  160.  
  161. K_C3 := MSW[5] * K_C3
  162.     + /MSW[5] * /MSW[4] * /MSW[3] * /K3 * K2 * /K1 * /K0 * /K_C3
  163.     + /MSW[5] * MSW[4] * /MSW[3] * /K3 * /K2 * K1 * K0 * /K_C3
  164.     + K_C3 * /TC
  165.  
  166. K_C4 := /MSW[5] * MSW[3] * /POR * MSW[15] * /K3 * K2 * K1 * /K0 * /K_C4 * MSW[4]
  167.     + /MSW[5] * MSW[3] * /POR * MSW[15] * /K3 * K2 * /K1 * /K0 * /K_C4 * /MSW[4]
  168.     + /MSW[5] * /MSW[3] * /POR * MSW[15] * /K3 * K2 * /K1 * K0 * /K_C4
  169.  
  170. ON = /POR * MSW[15]
  171.  
  172. REQ.CLKF = K_CLK
  173. REQ := /POR * /MSW[5] * /K1 * /REQ
  174.     + /POR * /MSW[5] * REQ * /RPL * ON
  175.     + /POR * /MSW[5] * /REQ * K3
  176.     + /POR * /MSW[5] * /REQ * /K0 * MSW[4]
  177.     + /POR * /MSW[5] * /REQ * MSW[3] * K0 * /MSW[4]
  178.     + /POR * /MSW[5] * /REQ * /MSW[3] * /K0
  179.     + /POR * /MSW[5] * /REQ * K2
  180.  
  181. RPL := /POR * /MSW[5] * /RPL * K_C1 * ALL_HIT
  182.     + /POR * /MSW[5] * K_C0_1 * K_C0_0 * /RPL
  183.     + /POR * /MSW[5] * /RPL * K_C3 * TC
  184.  
  185. SR8 =  /CLR_SR*SHIFT*SR7+/CLR_SR*/HOLD*SR8
  186. SR7 =  /CLR_SR*SHIFT*SR6+/CLR_SR*/HOLD*SR7
  187. SR6 =  /CLR_SR*SHIFT*SR5+/CLR_SR*/HOLD*SR6
  188. SR5 =  /CLR_SR*SHIFT*SR4+/CLR_SR*/HOLD*SR5
  189. SR4 =  /CLR_SR*SHIFT*SR3+/CLR_SR*/HOLD*SR4
  190. SR3 =  /CLR_SR*SHIFT*SR2+/CLR_SR*/HOLD*SR3
  191. SR2 =  /CLR_SR*SHIFT*SR1+/CLR_SR*/HOLD*SR3
  192. SR1 =  /CLR_SR*SHIFT*SR0+/CLR_SR*/HOLD*SR1
  193. SR0 =  /CLR_SR*LOAD*SHIFT*(S_K3+S_K4)
  194.  
  195. CLK_PIPE = K_CLK * /POR * /AK3 * AK2 * /AK1
  196.     + K_CLK * /POR * /AK3 * /AK2 * AK1
  197.     + K_CLK * /POR * /AK3 * AK2 * /AK0
  198.  
  199. AK0 := AK2 * /AK0
  200.     + /POR * /MSW[5] * /MSW[4] * MSW[3] * AK3 * /AK0
  201.     + /POR * GO * MSW[5] * /MSW[4] * MSW[3] * /AK3 * /AK0
  202.     + AK1 * /AK0
  203. AK1 := /AK3 * /AK1 * AK0
  204.     + AK3 * /AK0 * /POR * MSW[5] * /MSW[4] * MSW[3]
  205.     + AK1 * /AK0
  206. AK2 := AK2 * /AK0
  207.     + /AK2 * AK1 * AK0
  208.     + AK2 * /AK1
  209. AK3 := AK3 * /AK0 * /POR * /MSW[5] * /MSW[4] * MSW[3]
  210.     + AK2 * AK1 * AK0
  211.  
  212. STATE
  213.  
  214. M_K0  = /K3*/K2*/K1*/K0         ;Main Control State Definition
  215. M_K1  = /K3*/K2*/K1* K0 
  216. M_K2  = /K3*/K2* K1*/K0 
  217. M_K3  = /K3*/K2* K1* K0 
  218. M_K4  = /K3* K2*/K1*/K0 
  219. M_K5  = /K3* K2*/K1* K0 
  220. M_K6  = /K3* K2* K1*/K0 
  221. M_K7  = /K3* K2* K1* K0 
  222. M_K8  =  K3*/K2*/K1*/K0
  223.  
  224.  
  225. MEALY_MACHINE            ;Main  Trace Control State Machine
  226.  
  227. M_K0 :=   T_START -> M_K1
  228.         + L_START -> M_K1
  229.         +-> M_K0;
  230.  
  231. M_K1 :=   N_ACK -> M_K2
  232.         + T_ACK -> M_K1
  233.         + CLR_X -> M_K0
  234.         +-> M_K2;
  235.  
  236. M_K2 :=   C_TRACE2 -> M_K3                ;TRACE MODE TRANSITIONS
  237.         + CLR_2 -> M_K0
  238.  
  239.         + T_LOAD -> M_K3                ;TRIGGER REGISTER LOAD TRANSISIONS
  240.         +-> M_K2;
  241.  
  242. M_K3 :=    CLR_3 -> M_K0                ;TRACE MODE TRANSITIONS
  243.         + C_TRACE3 -> M_K4
  244.  
  245.         + T_ZERO -> M_K7                ;TRIGGER REGISTER LOAD TRANSISIONS
  246.         + N_ZERO ->M_K4
  247.                 +-> M_K0;
  248.  
  249. M_K4 :=   N_ACK -> M_K5                ;TRACE MODE TRANSITIONS
  250.         + T_ACK -> M_K4
  251.         + CLR_X -> M_K0
  252.  
  253.         + T_SR8 -> M_K5                ;TRIGGER REGISTER LOAD TRANSISIONS
  254.         + N_SR8 -> M_K3
  255.                 +-> M_K0;
  256.  
  257. M_K5 :=   N_ACK -> M_K6                ;TRACE MODE TRANSITIONS
  258.         + T_ACK -> M_K5
  259.         + CLR_X -> M_K0
  260.  
  261.         + C_SET -> M_K6                ;TRIGGER REGISTER LOAD TRANSISIONS
  262.                 +-> M_K0;
  263.  
  264. M_K6 :=   N_ACK -> M_K7                ;TRACE MODE TRANSITIONS
  265.         + T_ACK -> M_K6
  266.         + CLR_X -> M_K0
  267.  
  268.         + C_SET -> M_K0                ;TRIGGER REGISTER LOAD TRANSISIONS
  269.                 +-> M_K0;
  270.  
  271. M_K7 :=   N_ACK -> M_K8                ;TRACE MODE TRANSITIONS
  272.         + T_ACK -> M_K7
  273.         + CLR_X -> M_K0
  274.  
  275.         + C_SET -> M_K8                ;TRIGGER REGISTER LOAD TRANSISIONS
  276.                 +-> M_K0;
  277.  
  278. M_K8 :=   N_ACK -> M_K0                ;TRACE MODE TRANSITIONS
  279.         + T_ACK -> M_K8
  280.         + CLR_X -> M_K0
  281.  
  282.         + N_SR8 -> M_K7                ;TRIGGER REGISTER LOAD TRANSISIONS
  283.         + T_SR8 -> M_K0
  284.                 +-> M_K0;
  285.  
  286.  
  287. ;-----------------------Outputs--------------------------
  288. CONDITIONS
  289. T_START = /POR*GO*/DONE*S_LSA
  290.  
  291. T_ACK= /POR*GO*/K_C4*REQ*/RPL*S_LSA
  292. N_ACK= /POR*GO*/K_C4*RPL*S_LSA
  293. CLR_X = /POR* K_C4*S_LSA
  294. CLR_2 =  POR
  295. CLR_3 =  POR
  296. C_TRACE2 = /POR*GO*S_TTD + /POR*GO*/K_C4*RPL*(S_TDD+S_TAD+S_TBD)
  297. C_TRACE3 = /POR*GO*(S_TDD+S_TAD+S_TBD)+ /POR*GO*/K_C4*RPL*S_TTD
  298. C_SET = S_SET
  299.  
  300. L_START = /POR*GO*S_LD_RG
  301. T_LOAD = /POR*LOAD*S_LD_RG
  302. T_ZERO = /POR* /INP_HIT*S_LD_RG
  303. N_ZERO = /POR*( INP_HIT)*S_LD_RG
  304.  
  305. T_SR8 = /POR*LOAD* SR8*S_LD_RG
  306. N_SR8 = /POR*LOAD*/SR8*S_LD_RG
  307. ;----------------------------------- Simulation Segment ------------
  308.  
  309.  
  310.