
Applied Micro Circuits Corporation
6195 Lusk Blvd., San Diego, CA 92121 (619) 450-9333
15-43
ADD-ON DMA CONTROLLER DESIGN FOR THE S5933
CNT = !nRDY_IN & !STOP & HLDA & nRESET &
(MASTER3 # MASTER4 # MASTER5 # MASTER6);
LOADA =
W_nR.IO & SLAVE1;
/* Load Address Register
*/
LOADC =
W_nR.IO & SLAVE2;
/* Load Transfer Count Register
*/
/**
Logic Equations
**/
nREADY.D = nRDY_IN;
/* Used for RDFIFO#/WRFIFO# Timing
*/
[BE3..0] = ‘b’0000;
/* All Add-on accesses are 32-bits
*/
[A31..25] = ‘b’0000000;
/* A31..22, A1..0 Driven to zero
*/
A24 = A24.IO & !HLDA;
[A23..22] = ‘b’00;
[A1..0] = ‘b’00;
/* Toggle output when CNT is asserted and all previous bits are
*/
/*’1' or when a LOAD is performed and the load value (.IO)
*/
/* is different from the existing value.
*/
Field ADDR_COUNTA = [A7..2];
A2.T = CNT # LOADA & (A2 $ A2.IO);
A3.T = CNT & A2 # LOADA & (A3 $ A3.IO);
A4.T = CNT & A2 & A3 # LOADA & (A4 $ A4.IO);
A5.T = CNT & A2 & A3 & A4 # LOADA & (A5 $ A5.IO);
A6.T = CNT & A2 & A3 & A4 & A5 # LOADA & (A6 $ A6.IO);
A7.T = CNT & A2 & A3 & A4 & A5 & A6 # LOADA & (A7 $ A7.IO);
Field ADDR_COUNTB = [A15..8];
A8.T = CNTB2 # LOADA & (A8 $ A8.IO);
A9.T = CNTB2 & A8 # LOADA & (A9 $ A9.IO);
A10.T = CNTB2 & A8 & A9 # LOADA & (A10 $ A10.IO);
A11.T = CNTB2 & A8 & A9 & A10 # LOADA & (A11 $ A11.IO);
A12.T = CNTB2 & A8 & A9 & A10 & A11 # LOADA & (A12 $ A12.IO);
A13.T = CNTB2 & A8 & A9 & A10 & A11 & A12 # LOADA & (A13 $ A13.IO);
A14.T = CNTB2 & A8 & A9 & A10 & A11 & A12 & A13 # LOADA & (A14 $ A14.IO);
A15.T = CNTB2 & A8 & A9 & A10 & A11 & A12 & A13 & A14 # LOADA & (A15 $ A15.IO);
/* Assert CNTB2 when CNT is asserted and A2-7 are set */
CNTB2 = CNT & (A2 & A3 & A4 & A5 & A6 & A7);
Field ADDR_COUNTC = [A21..16];
A16.T = CNTC2 # LOADA & (A16 $ A16.IO);
A17.T = CNTC2 & A16 # LOADA & (A17 $ A17.IO);
A18.T = CNTC2 & A16 & A17 # LOADA & (A18 $ A18.IO);
A19.T = CNTC2 & A16 & A17 & A18 # LOADA & (A19 $ A19.IO);
A20.T = CNTC2 & A16 & A17 & A18 & A19 # LOADA & (A20 $ A20.IO);
A21.T = CNTC2 & A16 & A17 & A18 & A19 & A20 # LOADA & (A21 $ A21.IO);