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