(RA) [ (*RA0) (*RA1) (*RA2) (*RA3) (*RA4) (*RA5) (*RA6) (*RA7) (*RA8) ] .def (RAS) [ (*RAS0') (*RAS1') (*RAS2') (*RAS3') ] .def (Rctl) [ (SELRAS) (SELCAS) (RASOK) (RPADENB) (DPADENB) (*RAS0') (*RAS1') (*RAS2') (*RAS3') (*CAS') (*WE') ] .def (RD) [ (*RD00) (*RD01) (*RD02) (*RD03) (*RD04) (*RD05) (*RD06) (*RD07) (*RD08) (*RD09) (*RD10) (*RD11) (*RD12) (*RD13) (*RD14) (*RD15) (*RD16) (*RD17) (*RD18) (*RD19) (*RD20) (*RD21) (*RD22) (*RD23) (*RD24) (*RD25) (*RD26) (*RD27) (*RD28) (*RD29) (*RD30) (*RD31) (*RD32) (*RD33) (*RD34) (*RD35) (*RD36) (*RD37) (*RD38) (*RD39) ] .def (AD) [ (*AD7) (*AD6) (*AD5) (*AD4) (*AD3) (*AD2) (*AD1) (*AD0) ] .def (A) [ (*A15) (*A14) (*A13) (*A12) (*A11) (*A10) (*A9) (*A8) ] .def (Uctl) [ (*RD') (*WR') (*CE-M) (*CE-IO) (*CLK) (*IO/M') (*DONE) (*RDY) ] .def (arb) [ (*arbrq) (*arbout') (*arbin) (*arback) (*anyarbrq) (arbrq*) (arback**) ] .def (tim) [ (t0) (t20) (t40) (t50) (t100) (t180) (t200) (t210) (t240) ] .def (Lctl) [ (ALE) (ILATCH) (REGL) (ADPADENB) ] .def (ISEL) [ (ISEL0) (ISEL1) (ISEL2) (ISEL3) (ISEL4) ] .def (OSEL) [ (OSEL0) (OSEL1) (OSEL2) (OSEL3) (OSEL4) ] .def (IAD) [ (IAD7) (IAD6) (IAD5) (IAD4) (IAD3) (IAD2) (IAD1) (IAD0) ] .def (OAD) [ (OAD7) (OAD6) (OAD5) (OAD4) (OAD3) (OAD2) (OAD1) (OAD0) ] .def (InitUctl) ( (*CE-IO) lo (*CE-M) lo (*IO/M') hi (*RD') hi (*WR') hi (*ALE) lo (*CLK) lo A loarray AD loarray simstep) .cvx .def (PulseALE) ( (*ALE) hi simstep (*ALE) lo simstep) .cvx .def (SetADDR) (setAD setA (*ALE) hi simstep (*ALE) lo simstep AD xarray simstep) .cvx .def (SetRAS) (2 .index SetREGL SetADDR .pop) .cvx .def (PulseREGL) ( (*IO/M') hi (*CE-IO) hi (*ALE) hi simstep (*ALE) lo simstep (*WR') lo simstep (*WR') hi simstep (*IO/M') lo (*CE-IO) lo simstep) .cvx .def (SetREGL) (setAD (*IO/M') hi (*CE-IO) hi (*ALE) hi simstep (*ALE) lo simstep (*WR') lo simstep (*WR') hi simstep (*IO/M') lo (*CE-IO) lo simstep AD xarray simstep) .cvx .def (PulseBits) (0 setAD (*AD0) hi simstep RD g1array (*AD0) lo (*AD1) hi simstep RD g1array (*AD1) lo (*AD2) hi simstep RD g1array (*AD2) lo (*AD3) hi simstep RD g1array (*AD3) lo (*AD4) hi simstep RD g1array (*AD4) lo (*AD5) hi simstep RD g1array (*AD5) lo (*AD6) hi simstep RD g1array (*AD6) lo (*AD7) hi simstep RD g1array (*AD7) lo simstep RD g1array) .cvx .def (PulseADRD) ( 0 0 0 SetRAS PulseBits () /print 0 0 1 SetRAS PulseBits () /print 0 0 2 SetRAS PulseBits () /print 0 0 3 SetRAS PulseBits () /print 128 0 0 SetRAS PulseBits () /print 128 0 1 SetRAS PulseBits () /print 128 0 2 SetRAS PulseBits () /print 128 0 3 SetRAS PulseBits () /print) .cvx .def (PulseRD) (123 setAD AD xarray (ADPADENB) hi RD loarray (*RD00) hi simstep AD g1array (*RD00) lo (*RD01) hi simstep AD g1array (*RD01) lo (*RD02) hi simstep AD g1array (*RD02) lo (*RD03) hi simstep AD g1array (*RD03) lo (*RD04) hi simstep AD g1array (*RD04) lo (*RD05) hi simstep AD g1array (*RD05) lo (*RD06) hi simstep AD g1array (*RD06) lo (*RD07) hi simstep AD g1array (*RD07) lo (*RD08) hi simstep AD g1array () /print (*RD08) lo (*RD09) hi simstep AD g1array (*RD09) lo (*RD10) hi simstep AD g1array (*RD10) lo (*RD11) hi simstep AD g1array (*RD11) lo (*RD12) hi simstep AD g1array (*RD12) lo (*RD13) hi simstep AD g1array (*RD13) lo (*RD14) hi simstep AD g1array (*RD14) lo (*RD15) hi simstep AD g1array (*RD15) lo (*RD16) hi simstep AD g1array () /print (*RD16) lo (*RD17) hi simstep AD g1array (*RD17) lo (*RD18) hi simstep AD g1array (*RD18) lo (*RD19) hi simstep AD g1array (*RD19) lo (*RD20) hi simstep AD g1array (*RD20) lo (*RD21) hi simstep AD g1array (*RD21) lo (*RD22) hi simstep AD g1array (*RD22) lo (*RD23) hi simstep AD g1array (*RD23) lo (*RD24) hi simstep AD g1array () /print (*RD24) lo (*RD25) hi simstep AD g1array (*RD25) lo (*RD26) hi simstep AD g1array (*RD26) lo (*RD27) hi simstep AD g1array (*RD27) lo (*RD28) hi simstep AD g1array (*RD28) lo (*RD29) hi simstep AD g1array (*RD29) lo (*RD30) hi simstep AD g1array (*RD30) lo (*RD31) hi simstep AD g1array (*RD31) lo (*RD32) hi simstep AD g1array () /print (*RD32) lo (*RD33) hi simstep AD g1array (*RD33) lo (*RD34) hi simstep AD g1array (*RD34) lo (*RD35) hi simstep AD g1array (*RD35) lo (*RD36) hi simstep AD g1array (*RD36) lo (*RD37) hi simstep AD g1array (*RD37) lo (*RD38) hi simstep AD g1array (*RD38) lo (*RD39) hi simstep AD g1array (*RD39) lo (ADPADENB) x simstep) .cvx .def (PulseRDx) (123 setAD AD xarray (ADPADENB) hi RD hiarray (*RD00) lo simstep AD g1array (*RD00) hi (*RD01) lo simstep AD g1array (*RD01) hi (*RD02) lo simstep AD g1array (*RD02) hi (*RD03) lo simstep AD g1array (*RD03) hi (*RD04) lo simstep AD g1array (*RD04) hi (*RD05) lo simstep AD g1array (*RD05) hi (*RD06) lo simstep AD g1array (*RD06) hi (*RD07) lo simstep AD g1array (*RD07) hi (*RD08) lo simstep AD g1array () /print (*RD08) hi (*RD09) lo simstep AD g1array (*RD09) hi (*RD10) lo simstep AD g1array (*RD10) hi (*RD11) lo simstep AD g1array (*RD11) hi (*RD12) lo simstep AD g1array (*RD12) hi (*RD13) lo simstep AD g1array (*RD13) hi (*RD14) lo simstep AD g1array (*RD14) hi (*RD15) lo simstep AD g1array (*RD15) hi (*RD16) lo simstep AD g1array () /print (*RD16) hi (*RD17) lo simstep AD g1array (*RD17) hi (*RD18) lo simstep AD g1array (*RD18) hi (*RD19) lo simstep AD g1array (*RD19) hi (*RD20) lo simstep AD g1array (*RD20) hi (*RD21) lo simstep AD g1array (*RD21) hi (*RD22) lo simstep AD g1array (*RD22) hi (*RD23) lo simstep AD g1array (*RD23) hi (*RD24) lo simstep AD g1array () /print (*RD24) hi (*RD25) lo simstep AD g1array (*RD25) hi (*RD26) lo simstep AD g1array (*RD26) hi (*RD27) lo simstep AD g1array (*RD27) hi (*RD28) lo simstep AD g1array (*RD28) hi (*RD29) lo simstep AD g1array (*RD29) hi (*RD30) lo simstep AD g1array (*RD30) hi (*RD31) lo simstep AD g1array (*RD31) hi (*RD32) lo simstep AD g1array () /print (*RD32) hi (*RD33) lo simstep AD g1array (*RD33) hi (*RD34) lo simstep AD g1array (*RD34) hi (*RD35) lo simstep AD g1array (*RD35) hi (*RD36) lo simstep AD g1array (*RD36) hi (*RD37) lo simstep AD g1array (*RD37) hi (*RD38) lo simstep AD g1array (*RD38) hi (*RD39) lo simstep AD g1array (*RD39) hi (ADPADENB) x simstep) .cvx .def (printout) () .cvx .def (g) (getnodevalue ( ) .cvis .print ( ) .print) .cvx .def (g1) (getnodevalue ( ) .cvis .print ( ) .print) .cvx .def (gn)(.dup .print (=) .print g) .cvx .def (garray) ((gn) .cvx .arrayforall () /print) .cvx .def (g1array) ((g1) .cvx .arrayforall () /print) .cvx .def (xarray) ((x) .cvx .arrayforall ) .cvx .def (loarray) ((lo) .cvx .arrayforall ) .cvx .def (hiarray) ((hi) .cvx .arrayforall ) .cvx .def (cycle) ((PHI1) hi simsolve .pop (PHI1) lo simsolve .pop (PHI2) hi simsolve .pop (PHI2) lo simsolve .pop printout) .cvx .def (cycle8) (cycle cycle cycle cycle cycle cycle cycle cycle) .cvx .def (cycle32) (cycle8 cycle8 cycle8 cycle8) .cvx .def (cycle128) (cycle32 cycle32 cycle32 cycle32) .cvx .def (cyclego) ((RADLOK) hi cycle cycle cycle cycle (RASDLOK) lo cycle32 cycle8 cycle8 cycle8) .cvx .def (try) ((start) hi cycle (arbin) lo cycle32 cycle32 cycle32 (start) lo (arbin) hi cycle) .cvx .def (setBit) (1 .index 1 .bitand 1 .eq (hi) (lo) /ifelse) .cvx .def (setAD) ((*AD0) setBit -1 .bitshift (*AD1) setBit -1 .bitshift (*AD2) setBit -1 .bitshift (*AD3) setBit -1 .bitshift (*AD4) setBit -1 .bitshift (*AD5) setBit -1 .bitshift (*AD6) setBit -1 .bitshift (*AD7) setBit .pop) .cvx .def (setA) ((*A8) setBit -1 .bitshift (*A9) setBit -1 .bitshift (*A10) setBit -1 .bitshift (*A11) setBit -1 .bitshift (*A12) setBit -1 .bitshift (*A13) setBit -1 .bitshift (*A14) setBit -1 .bitshift (*A15) setBit .pop) .cvx .def (ShowRAS) (RAS g1array (SELRAS) hi (SELCAS) lo simstep RA g1array (SELRAS) lo (SELCAS) hi simstep RA g1array) .cvx .def (z) (SetRAS ShowRAS () /print) .cvx .def (PulseRAS) ( 0 0 1 z 0 0 2 z 0 0 4 z 0 0 8 z 0 0 16 z 0 0 32 z 0 0 64 z 0 0 128 z 0 1 0 z 0 2 0 z 0 4 0 z 0 8 0 z 0 16 0 z 0 32 0 z 0 64 0 z 0 128 0 z 1 0 0 z 2 0 0 z 4 0 0 z 8 0 0 z 16 0 0 z 32 0 0 z 64 0 0 z 96 0 0 z ) .cvx .def (pulseT) ( 123 setAD simstep AD xarray simstep RD hiarray (*RD37) lo simstep RD xarray simstep (T0) hi simstep (0↑ ) .print pto (T0) lo simstep (0\ ) .print pto (T20) hi simstep (20↑ ) .print pto (T20) lo simstep (20\ ) .print pto (T40) hi simstep (40↑ ) .print pto (T40) lo simstep (40\ ) .print pto (T50) hi simstep (50↑ ) .print pto (T50) lo simstep (50\ ) .print pto (T100) hi simstep (100↑ ) .print pto (T100) lo simstep (100\ ) .print pto (T180) hi simstep (180↑ ) .print pto (T180) lo simstep (180\ ) .print pto (T200) hi simstep (200↑ ) .print pto (T200) lo simstep (200\ ) .print pto OSEL g1array ISEL g1array RD g1array AD g1array IAD g1array OAD g1array (T210) hi simstep (210↑ ) .print pto (T210) lo simstep (210\ ) .print pto (T240) hi simstep (240↑ ) .print pto (T240) lo simstep (240\ ) .print pto) .cvx .def (pto) (mon garray) .cvx .def (mon) [ (SELRAS) (SELCAS) (ILATCH) (RPADENB) (DPADENB) (*RAS0') (*CAS') (*WE') (ADPADENB) ] .def (Init) (InitUctl init = init = init = init = 0 0 0 SetRAS) .cvx .def (DoRead) ((*CE-M) hi (*IO/M') lo setAD setA (*ALE) hi simstep (*ALE) lo simstep (*RD') lo cycle [ (START) (ADPADENB) (RDY) (RDYENB) ] garray (*arbin) lo cycle32 cycle32 cycle32 RD g1array AD g1array IAD g1array OAD g1array (*RD') hi (*arbin) hi cycle) .cvx .def (StartRead) ((*CE-M) hi (*IO/M') lo setAD setA (*ALE) hi simstep (*ALE) lo simstep (*RD') lo cycle [ (START) (ADPADENB) (RDY) (RDYENB) ] garray (*arbin) lo) .cvx .def (FinishRead) (cycle32 cycle32 cycle32 RD g1array AD g1array IAD g1array OAD g1array (*RD') hi (*arbin) hi cycle) .cvx .def (DoWrite) ((*CE-M) hi (*IO/M') lo setAD setA (*ALE) hi simstep (*ALE) lo simstep setAD (*WR') lo cycle [ (START) (ADPADENB) (RDY) (RDYENB) ] garray (*arbin) lo cycle32 cycle32 cycle32 RD g1array AD g1array IAD g1array OAD g1array [ (START) (ADPADENB) (RDY) (RDYENB) ] garray ) .cvx .def (WR2) ((*arbin) hi cycle (*arbin) lo arb garray cycle32 cycle32 cycle32 arb garray RD g1array AD g1array IAD g1array OAD g1array (*WR') hi (*arbin) hi cycle) .cvx .def (printout) (mon1 garray) .cvx .def (mon1) [ (B) (C) (*RAS0') (*CAS') (*WE') (STATE) (T0) (SELRAS) (ADPADENB) (done) ] .def