comparison venus/src/core/dbb_block.v @ 9:3ed0f7a9c489

Venus: first version of Verilog for the Calypso core
author Mychaela Falconia <falcon@freecalypso.org>
date Fri, 19 Nov 2021 05:58:21 +0000
parents
children 5ee03a306da3
comparison
equal deleted inserted replaced
8:d23dae52cd7b 9:3ed0f7a9c489
1 /*
2 * This module encapsulates the Calypso DBB chip plus the following:
3 *
4 * - star points and bypass capacitors for the powering arrangement;
5 * - the 32 kHz xtal circuit with its special ground;
6 * - nIBOOT, IDDQ, SIM_CD and SIM_PWCTRL tie-offs;
7 * - nBSCAN and nEMU[1:0] no-connects.
8 *
9 * All other Calypso signals are passed through untouched.
10 */
11
12 module dbb_block (GND, Vdbb, Vio, Vflash, Vrtc,
13 TSPCLKX, TSPDO, TSPDI_IO4, TSPEN, TSPACT,
14 DATA, ADD, RnW, nFWE, nFOE, FDP, nBLE, nBHE, nCS,
15 SCLK, SDO, SDI_SDA, nSCS0_SCL, nSCS1,
16 TX_IRDA, RX_IRDA, TXIR_IRDA, RXIR_IRDA, SD_IRDA,
17 TX_MODEM, RX_MODEM, RTS_MODEM, CTS_MODEM, DSR_LPG,
18 MCSI_TXD, MCSI_RXD, MCSI_CLK, MCSI_FSYNCH,
19 KBC, KBR, BU_PWT, LT_PWL, GPIO,
20 nRESET_OUT_IO7, CLKTCXO,
21 CLK32K_OUT, CLK13M_OUT, nRESPWON, EXT_FIQ, EXT_IRQ,
22 TCXOEN, RFEN, ON_OFF, IT_WAKEUP,
23 TDI, TDO, TCK, TMS,
24 BFSR, BDR, BFSX, BDX, BCLKX_IO6, BCLKR_ARMCLK,
25 VDX, VDR, VFSRX, VCLKRX,
26 MCUDI, MCUDO, MCUEN0, MCUEN1_IO8, MCUEN2_IO13,
27 SIM_IO, SIM_CLK, SIM_RST);
28
29 input GND, Vdbb, Vio, Vflash, Vrtc;
30
31 output TSPCLKX, TSPDO;
32 inout TSPDI_IO4;
33 output [3:0] TSPEN;
34 output [11:0] TSPACT;
35
36 inout [15:0] DATA;
37 output [22:0] ADD;
38 output RnW, nFWE, nFOE, FDP, nBLE, nBHE;
39 output [4:0] nCS;
40
41 output SCLK, SDO, nSCS1;
42 inout SDI_SDA, nSCS0_SCL;
43
44 output TX_IRDA, TXIR_IRDA, SD_IRDA, TX_MODEM, RTS_MODEM;
45 input RX_IRDA, RXIR_IRDA, RX_MODEM, CTS_MODEM;
46 inout DSR_LPG;
47
48 output MCSI_TXD;
49 input MCSI_RXD;
50 inout MCSI_CLK, MCSI_FSYNCH;
51
52 output [4:0] KBC;
53 input [4:0] KBR;
54 output BU_PWT, LT_PWL;
55 inout [3:0] GPIO;
56
57 output nRESET_OUT_IO7;
58 input CLKTCXO;
59 output CLK32K_OUT, CLK13M_OUT;
60 input nRESPWON, EXT_FIQ, EXT_IRQ;
61
62 output TCXOEN, RFEN, IT_WAKEUP;
63 input ON_OFF;
64
65 input TDI, TCK, TMS;
66 output TDO;
67
68 input BFSR, BDR;
69 output BFSX, BDX;
70 inout BCLKX_IO6;
71 input BCLKR_ARMCLK;
72
73 output VDX;
74 input VDR, VFSRX, VCLKRX;
75
76 input MCUDI;
77 output MCUDO, MCUEN0, MCUEN1_IO8, MCUEN2_IO13;
78
79 inout SIM_IO;
80 output SIM_CLK, SIM_RST;
81
82 /* nets inside this module */
83 wire SIM_PWCTRL;
84 wire GND_32khz, OSC32K_IN, OSC32K_OUT, OSC32K_OUT_2;
85 wire VDD_PLL, VDD_CORE;
86
87 starpoint HST201 (Vdbb, VDD_PLL);
88 starpoint HST202 (Vdbb, VDD_CORE);
89
90 /* instantiate the Calypso! */
91
92 calypso_179ghh calypso (.TSPCLKX(TSPCLKX),
93 .TSPDO(TSPDO),
94 .TSPDI_IO4(TSPDI_IO4),
95 .TSPEN(TSPEN),
96 .TSPACT(TSPACT),
97 .DATA(DATA),
98 .ADD(ADD),
99 .RnW(RnW),
100 .nFWE(nFWE),
101 .nFOE(nFOE),
102 .FDP(FDP),
103 .nBLE(nBLE),
104 .nBHE(nBHE),
105 .nCS(nCS),
106 .VDDS_MIF(Vflash),
107 .VDDS_1(Vio),
108 .VDDS_2(Vio),
109 .VDD(VDD_CORE),
110 .VSS(GND),
111 .VDDS_RTC(Vrtc),
112 .VDD_RTC(Vrtc),
113 .VSS_RTC(GND),
114 .VDD_ANG(Vio),
115 .VSS_ANG(GND),
116 .VDD_PLL(VDD_PLL),
117 .VSS_PLL(GND),
118 .SCLK(SCLK),
119 .SDO(SDO),
120 .SDI_SDA(SDI_SDA),
121 .nSCS0_SCL(nSCS0_SCL),
122 .nSCS1(nSCS1),
123 .TX_IRDA(TX_IRDA),
124 .RX_IRDA(RX_IRDA),
125 .TXIR_IRDA(TXIR_IRDA),
126 .RXIR_IRDA(RXIR_IRDA),
127 .SD_IRDA(SD_IRDA),
128 .TX_MODEM(TX_MODEM),
129 .RX_MODEM(RX_MODEM),
130 .RTS_MODEM(RTS_MODEM),
131 .CTS_MODEM(CTS_MODEM),
132 .DSR_LPG(DSR_LPG),
133 .MCSI_TXD(MCSI_TXD),
134 .MCSI_RXD(MCSI_RXD),
135 .MCSI_CLK(MCSI_CLK),
136 .MCSI_FSYNCH(MCSI_FSYNCH),
137 .KBC(KBC),
138 .KBR(KBR),
139 .BU_PWT(BU_PWT),
140 .LT_PWL(LT_PWL),
141 .GPIO(GPIO),
142 .nRESET_OUT_IO7(nRESET_OUT_IO7),
143 .nIBOOT(GND),
144 .IDDQ(GND),
145 .CLKTCXO(CLKTCXO),
146 .VSSO(GND_32khz),
147 .OSC32K_IN(OSC32K_IN),
148 .OSC32K_OUT(OSC32K_OUT),
149 .CLK32K_OUT(CLK32K_OUT),
150 .CLK13M_OUT(CLK13M_OUT),
151 .nRESPWON(nRESPWON),
152 .EXT_FIQ(EXT_FIQ),
153 .EXT_IRQ(EXT_IRQ),
154 .TCXOEN(TCXOEN),
155 .RFEN(RFEN),
156 .ON_OFF(ON_OFF),
157 .IT_WAKEUP(IT_WAKEUP),
158 .nEMU(), /* no connect */
159 .nBSCAN(), /* ditto */
160 .TDI(TDI),
161 .TDO(TDO),
162 .TCK(TCK),
163 .TMS(TMS),
164 .BFSR(BFSR),
165 .BDR(BDR),
166 .BFSX(BFSX),
167 .BDX(BDX),
168 .BCLKX_IO6(BCLKX_IO6),
169 .BCLKR_ARMCLK(BCLKR_ARMCLK),
170 .VDX(VDX),
171 .VDR(VDR),
172 .VFSRX(VFSRX),
173 .VCLKRX(VCLKRX),
174 .MCUDI(MCUDI),
175 .MCUDO(MCUDO),
176 .MCUEN0(MCUEN0),
177 .MCUEN1_IO8(MCUEN1_IO8),
178 .MCUEN2_IO13(MCUEN2_IO13),
179 .SIM_IO(SIM_IO),
180 .SIM_CLK(SIM_CLK),
181 .SIM_RST(SIM_RST),
182 .SIM_CD(Vio),
183 .SIM_PWCTRL_IO5(SIM_PWCTRL));
184
185 /* power bypass caps, absolutely unchanged from Leonardo */
186
187 capacitor C209 (Vflash, GND);
188 capacitor C210 (Vio, GND);
189 capacitor C211 (VDD_CORE, GND);
190 capacitor C212 (VDD_PLL, GND);
191
192 /* 32.768 kHz xtal circuit, following Leonardo schematics */
193
194 /* special ground */
195 starpoint HST203 (GND, GND_32khz);
196
197 /* resistor and extra cap on OSC32K_OUT */
198 resistor R215 (OSC32K_OUT, OSC32K_OUT_2);
199 capacitor C223 (OSC32K_OUT, GND); /* regular GND per Leonardo schem */
200
201 /* actual xtal and caps */
202 xtal_32khz_wrap xtal (OSC32K_IN, OSC32K_OUT_2, GND); /* pkg case GND */
203 capacitor C202 (OSC32K_IN, GND_32khz);
204 capacitor C203 (OSC32K_OUT_2, GND_32khz);
205
206 /* Vrtc bypass cap */
207 capacitor C201 (Vrtc, GND_32khz);
208
209 /* SIM_PWCTRL resistor like on Leonardo schematics */
210 resistor R207 (SIM_PWCTRL, SIM_IO);
211
212 endmodule