home *** CD-ROM | disk | FTP | other *** search
PALASM Design Description | 1991-02-27 | 9.7 KB | 310 lines |
- ;PALASM Design Description
-
- ;---------------------------------- Declaration Segment ------------
- TITLE Logic Analyzer States
- PATTERN
- REVISION
- AUTHOR john davis
- COMPANY SIVAD for AMD
- DATE 10/15/90
-
- CHIP _la_comb MACH210
- ;---------------------------------- PIN Declarations ---------------
- PIN ? /POR COMBINATORIAL ; Power On Reset
- PIN 35 CLK1 ; Default Clock on pin 35
- PIN ? K_CLK COMBINATORIAL ;
-
- PIN ? MSW[1] REGISTERED ;
- PIN ? MSW[2] REGISTERED ;
- PIN ? MSW[3] REGISTERED ;
- PIN ? MSW[4] REGISTERED ;
- PIN ? MSW[5] REGISTERED ;
- PIN ? MSW[15] REGISTERED ;
- PIN ? REQ REGISTERED ;
- PIN ? RPL REGISTERED ;
- PIN ? GO COMBINATORIAL ;
- PIN ? DONE COMBINATORIAL ;
- PIN ? ALL_HIT COMBINATORIAL ;
- PIN ? TC COMBINATORIAL ;
- PIN ? AM_G_ADDR_CK COMBINATORIAL ;
- PIN ? /AM_G_CS COMBINATORIAL ;
- PIN ? /AM_G_OE COMBINATORIAL ;
- PIN ? /AM_G_WE COMBINATORIAL ;
- PIN ? PM_G_ADDR_CK COMBINATORIAL ;
- PIN ? /PM_G_CS COMBINATORIAL ;
- PIN ? /PM_G_OE COMBINATORIAL ;
- PIN ? /PM_G_WE COMBINATORIAL ;
- PIN ? LOAD
- PIN ? /CLR_SR
- PIN ? /HOLD
- PIN ? INP_HIT
- PIN ? K_C4 REGISTERED ;
-
- PIN ? AM_LOAD ;
- PIN ? CLK_PIPE COMBINATORIAL ;
-
- ;************ BURIED REGISTERS ********************
- NODE 1 POR_INIT
- NODE ? ON COMBINATORIAL ;
- NODE ? K0 REGISTERED ;
- NODE ? K1 REGISTERED ;
- NODE ? K2 REGISTERED ;
- NODE ? K3 REGISTERED ;
- NODE ? K_C0_0 REGISTERED ;
- NODE ? K_C0_1 REGISTERED ;
- NODE ? K_C1 REGISTERED ;
- NODE ? K_C2_0 REGISTERED ;
- NODE ? K_C2_1 REGISTERED ;
- NODE ? K_C3 REGISTERED ;
-
- NODE ? SR0 REGISTERED ;Internal timing shift register
- NODE ? SR1 REGISTERED ;Internal timing shift register
- NODE ? SR2 REGISTERED ;Internal timing shift register
- NODE ? SR3 REGISTERED ;Internal timing shift register
- NODE ? SR4 REGISTERED ;Internal timing shift register
- NODE ? SR5 REGISTERED ;Internal timing shift register
- NODE ? SR6 REGISTERED ;Internal timing shift register
- NODE ? SR7 REGISTERED ;Internal timing shift register
- NODE ? SR8 REGISTERED ;Internal timing shift register
- ;
- NODE ? AK0 REGISTERED ;
- NODE ? AK1 REGISTERED ;
- NODE ? AK2 REGISTERED ;
- NODE ? AK3 REGISTERED ;
-
- ;
- ;STRING DECLARATIONS.
- STRING GL 'MSW[0]'
- STRING DL 'MSW[1]'
- STRING BF 'MSW[2]'
- STRING TR0 'MSW[3]'
- STRING TR1 'MSW[4]'
- STRING TR2 'MSW[5]'
- STRING ST 'MSW[6]'
- STRING XCK 'MSW[7]'
- STRING TG 'MSW[8]'
- STRING SM 'MSW[9]'
- STRING XS 'MSW[10]' ;External Sync Input
- STRING CS 'MSW[11]'
- STRING EQ 'MSW[12]'
- STRING TA 'MSW[13]'
- STRING TD 'MSW[14]'
- STRING RUN 'MSW[15]'
-
- STRING S_K0 '/POR*RUN*/K3*/K2*/K1*/K0' ;Main Control State Bits
- STRING S_K1 '/POR*RUN*/K3*/K2*/K1* K0'
- STRING S_K2 '/POR*RUN*/K3*/K2* K1*/K0'
- STRING S_K3 '/POR*RUN*/K3*/K2* K1* K0'
- STRING S_K4 '/POR*RUN*/K3* K2*/K1*/K0'
- STRING S_K5 '/POR*RUN*/K3* K2*/K1* K0'
- STRING S_K6 '/POR*RUN*/K3* K2* K1*/K0'
- STRING S_K7 '/POR*RUN*/K3* K2* K1* K0'
- STRING S_K8 '/POR*RUN* K3*/K2*/K1*/K0'
-
- STRING S_LOAD '/POR*LOAD'
- STRING SHIFT 'HOLD'
- STRING S_R0 'SR0'
- STRING S_K_C4 ' K_C4'
- STRING S_TDD '/TR2*/TR1*/TR0' ;Operational Mode Bits
- STRING S_TTD '/TR2*/TR1* TR0'
- STRING S_TAD '/TR2* TR1*/TR0'
- STRING S_TBD '/TR2* TR1* TR0'
- STRING S_LD_RG ' TR2*/TR1*/TR0'
- STRING S_LD_AT ' TR2*/TR1* TR0'
- STRING S_LSA '(S_TDD+S_TTD+S_TAD+S_TBD)'
- STRING S_SET '(S_LD_RG+S_LD_AT)'
-
- ;------------------- Boolean Equation Segment ------
- EQUATIONS
- ;------------ Initialization ---------------
- POR_INIT.RSTF=POR
- ;------------ Outputs --------------------
- AM_G_CS = /K_C0_1 * K_C0_0
- + K_C0_1 * /K_C0_0
- + AK3
- AM_G_OE = /K_C0_1 * K_C0_0
- + K_C0_1 * /K_C0_0
- + AK3*/AK2*/AK1* AK0
- AM_G_WE = /K_C0_1 * K_C0_0
- + K_C0_1 * /K_C0_0
- + AK3
- AM_G_ADDR_CK = /K_C0_1 * K_C0_0
- + AK3
- PM_G_CS = /K_C0_1 * K_C0_0
- + K_C0_1 * /K_C0_0
- PM_G_OE = /K_C0_1 * K_C0_0
- + K_C0_1 * /K_C0_0
- PM_G_WE = /K_C0_1 * K_C0_0
- + K_C0_1 * /K_C0_0
- PM_G_ADDR_CK = /K_C0_1 * K_C0_0
- ;-----------------------Operation--------------------------
-
- K_C0_0 := /POR*MSW[15]*/MSW[5]*MSW[4]*MSW[3]*/K3*K2*/K1*K0*/K_C0_0
- + /POR*MSW[15]*/MSW[5]*/MSW[4]*/MSW[3]*/K3*/K2*K1*/K0*/K_C0_0
- + /POR*/MSW[5]*K_C0_1*/K_C0_0
- K_C0_1 := /POR*MSW[15]*/MSW[5]*/MSW[4]*/MSW[3]*/K3*/K2*K1*/K0*/K_C0_1*K_C0_0
- + /POR*MSW[15]*/MSW[5]*MSW[4]*MSW[3]*/K3*K2*/K1*K0*/K_C0_1*K_C0_0
- + /POR*/MSW[5]*K_C0_1*/K_C0_0*/ALL_HIT
-
- K_C1 := ALL_HIT * /MSW[5] * /MSW[3] * /K3 * /K2 * K1 * /K0 * /K_C1
- + ALL_HIT * /MSW[5] * /MSW[4] * MSW[3] * /K3 * /K2 * K1 * K0 * /K_C1
- + ALL_HIT * /MSW[5] * MSW[4] * MSW[3] * /K3 * K2 * /K1 * K0 * /K_C1
- + ALL_HIT * /MSW[5] * MSW[4] * /K3 * /K2 * K1 * /K0 * /K_C1
-
- K_C2_0 := /MSW[5] * /K3 * K2 * /K1 * /K0 * /K_C2_1 * /K_C2_0 * /MSW[3]
- + /MSW[5] * /MSW[4] * /K3 * /K2 * K1 * K0 * /K_C2_1 * /K_C2_0 * MSW[3]
- + /MSW[5] * MSW[4] * /K3 * K2 * /K1 * /K0 * /K_C2_1 * /K_C2_0
- K_C2_1 := /MSW[5] * /K3 * K2 * /K1 * /K0 * K_C2_0 * /MSW[3]
- + /MSW[5] * /MSW[4] * /K3 * /K2 * K1 * K0 * K_C2_0 * MSW[3]
- + /MSW[5] * MSW[4] * /K3 * K2 * /K1 * /K0 * K_C2_0
-
- K_C3 := MSW[5] * K_C3
- + /MSW[5] * /MSW[4] * /MSW[3] * /K3 * K2 * /K1 * /K0 * /K_C3
- + /MSW[5] * MSW[4] * /MSW[3] * /K3 * /K2 * K1 * K0 * /K_C3
- + K_C3 * /TC
-
- K_C4 := /MSW[5] * MSW[3] * /POR * MSW[15] * /K3 * K2 * K1 * /K0 * /K_C4 * MSW[4]
- + /MSW[5] * MSW[3] * /POR * MSW[15] * /K3 * K2 * /K1 * /K0 * /K_C4 * /MSW[4]
- + /MSW[5] * /MSW[3] * /POR * MSW[15] * /K3 * K2 * /K1 * K0 * /K_C4
-
- ON = /POR * MSW[15]
-
- REQ.CLKF = K_CLK
- REQ := /POR * /MSW[5] * /K1 * /REQ
- + /POR * /MSW[5] * REQ * /RPL * ON
- + /POR * /MSW[5] * /REQ * K3
- + /POR * /MSW[5] * /REQ * /K0 * MSW[4]
- + /POR * /MSW[5] * /REQ * MSW[3] * K0 * /MSW[4]
- + /POR * /MSW[5] * /REQ * /MSW[3] * /K0
- + /POR * /MSW[5] * /REQ * K2
-
- RPL := /POR * /MSW[5] * /RPL * K_C1 * ALL_HIT
- + /POR * /MSW[5] * K_C0_1 * K_C0_0 * /RPL
- + /POR * /MSW[5] * /RPL * K_C3 * TC
-
- SR8 = /CLR_SR*SHIFT*SR7+/CLR_SR*/HOLD*SR8
- SR7 = /CLR_SR*SHIFT*SR6+/CLR_SR*/HOLD*SR7
- SR6 = /CLR_SR*SHIFT*SR5+/CLR_SR*/HOLD*SR6
- SR5 = /CLR_SR*SHIFT*SR4+/CLR_SR*/HOLD*SR5
- SR4 = /CLR_SR*SHIFT*SR3+/CLR_SR*/HOLD*SR4
- SR3 = /CLR_SR*SHIFT*SR2+/CLR_SR*/HOLD*SR3
- SR2 = /CLR_SR*SHIFT*SR1+/CLR_SR*/HOLD*SR3
- SR1 = /CLR_SR*SHIFT*SR0+/CLR_SR*/HOLD*SR1
- SR0 = /CLR_SR*LOAD*SHIFT*(S_K3+S_K4)
-
- CLK_PIPE = K_CLK * /POR * /AK3 * AK2 * /AK1
- + K_CLK * /POR * /AK3 * /AK2 * AK1
- + K_CLK * /POR * /AK3 * AK2 * /AK0
-
- AK0 := AK2 * /AK0
- + /POR * /MSW[5] * /MSW[4] * MSW[3] * AK3 * /AK0
- + /POR * GO * MSW[5] * /MSW[4] * MSW[3] * /AK3 * /AK0
- + AK1 * /AK0
- AK1 := /AK3 * /AK1 * AK0
- + AK3 * /AK0 * /POR * MSW[5] * /MSW[4] * MSW[3]
- + AK1 * /AK0
- AK2 := AK2 * /AK0
- + /AK2 * AK1 * AK0
- + AK2 * /AK1
- AK3 := AK3 * /AK0 * /POR * /MSW[5] * /MSW[4] * MSW[3]
- + AK2 * AK1 * AK0
-
- STATE
-
- M_K0 = /K3*/K2*/K1*/K0 ;Main Control State Definition
- M_K1 = /K3*/K2*/K1* K0
- M_K2 = /K3*/K2* K1*/K0
- M_K3 = /K3*/K2* K1* K0
- M_K4 = /K3* K2*/K1*/K0
- M_K5 = /K3* K2*/K1* K0
- M_K6 = /K3* K2* K1*/K0
- M_K7 = /K3* K2* K1* K0
- M_K8 = K3*/K2*/K1*/K0
-
-
- MEALY_MACHINE ;Main Trace Control State Machine
-
- M_K0 := T_START -> M_K1
- + L_START -> M_K1
- +-> M_K0;
-
- M_K1 := N_ACK -> M_K2
- + T_ACK -> M_K1
- + CLR_X -> M_K0
- +-> M_K2;
-
- M_K2 := C_TRACE2 -> M_K3 ;TRACE MODE TRANSITIONS
- + CLR_2 -> M_K0
-
- + T_LOAD -> M_K3 ;TRIGGER REGISTER LOAD TRANSISIONS
- +-> M_K2;
-
- M_K3 := CLR_3 -> M_K0 ;TRACE MODE TRANSITIONS
- + C_TRACE3 -> M_K4
-
- + T_ZERO -> M_K7 ;TRIGGER REGISTER LOAD TRANSISIONS
- + N_ZERO ->M_K4
- +-> M_K0;
-
- M_K4 := N_ACK -> M_K5 ;TRACE MODE TRANSITIONS
- + T_ACK -> M_K4
- + CLR_X -> M_K0
-
- + T_SR8 -> M_K5 ;TRIGGER REGISTER LOAD TRANSISIONS
- + N_SR8 -> M_K3
- +-> M_K0;
-
- M_K5 := N_ACK -> M_K6 ;TRACE MODE TRANSITIONS
- + T_ACK -> M_K5
- + CLR_X -> M_K0
-
- + C_SET -> M_K6 ;TRIGGER REGISTER LOAD TRANSISIONS
- +-> M_K0;
-
- M_K6 := N_ACK -> M_K7 ;TRACE MODE TRANSITIONS
- + T_ACK -> M_K6
- + CLR_X -> M_K0
-
- + C_SET -> M_K0 ;TRIGGER REGISTER LOAD TRANSISIONS
- +-> M_K0;
-
- M_K7 := N_ACK -> M_K8 ;TRACE MODE TRANSITIONS
- + T_ACK -> M_K7
- + CLR_X -> M_K0
-
- + C_SET -> M_K8 ;TRIGGER REGISTER LOAD TRANSISIONS
- +-> M_K0;
-
- M_K8 := N_ACK -> M_K0 ;TRACE MODE TRANSITIONS
- + T_ACK -> M_K8
- + CLR_X -> M_K0
-
- + N_SR8 -> M_K7 ;TRIGGER REGISTER LOAD TRANSISIONS
- + T_SR8 -> M_K0
- +-> M_K0;
-
-
- ;-----------------------Outputs--------------------------
- CONDITIONS
- T_START = /POR*GO*/DONE*S_LSA
-
- T_ACK= /POR*GO*/K_C4*REQ*/RPL*S_LSA
- N_ACK= /POR*GO*/K_C4*RPL*S_LSA
- CLR_X = /POR* K_C4*S_LSA
- CLR_2 = POR
- CLR_3 = POR
- C_TRACE2 = /POR*GO*S_TTD + /POR*GO*/K_C4*RPL*(S_TDD+S_TAD+S_TBD)
- C_TRACE3 = /POR*GO*(S_TDD+S_TAD+S_TBD)+ /POR*GO*/K_C4*RPL*S_TTD
- C_SET = S_SET
-
- L_START = /POR*GO*S_LD_RG
- T_LOAD = /POR*LOAD*S_LD_RG
- T_ZERO = /POR* /INP_HIT*S_LD_RG
- N_ZERO = /POR*( INP_HIT)*S_LD_RG
-
- T_SR8 = /POR*LOAD* SR8*S_LD_RG
- N_SR8 = /POR*LOAD*/SR8*S_LD_RG
- ;----------------------------------- Simulation Segment ------------
-
-
-