3 `define STRINGIFY(x) `"x`"
4 `include `STRINGIFY(`VSRC_CONSTS)
17 // RGB LEDs, 3 pins each
28 // Sliding switches, 3 used as GPIOs
29 // sw_3 selects input to UART0
35 // Buttons. First 3 used as GPIOs, the last is used as wakeup
41 // Dedicated QSPI interface
44 inout wire [3:0] qspi_dq,
47 output wire uart_rxd_out,
48 input wire uart_txd_in,
50 // UART1 (GPIO 24,25) (not present on 48-pin)
54 // Arduino (aka chipkit) shield digital IO pins, 14 is not connected to the
55 // chip, used for debug.
56 inout wire [19:0] ck_io,
58 // Dedicated SPI pins on 6 pin header standard on later arduino models
59 // connected to SPI2 (on FPGA)
65 // JD (used for JTAG connection)
66 inout wire jd_0, // TDO
67 inout wire jd_1, // TRST_n
68 inout wire jd_2, // TCK
69 inout wire jd_4, // TDI
70 inout wire jd_5, // TMS
71 input wire jd_6 // SRST_n
84 // All wires connected to the chip top
87 wire dut_io_pads_jtag_TCK_i_ival;
88 wire dut_io_pads_jtag_TCK_o_oval;
89 wire dut_io_pads_jtag_TCK_o_oe;
90 wire dut_io_pads_jtag_TCK_o_ie;
91 wire dut_io_pads_jtag_TCK_o_pue;
92 wire dut_io_pads_jtag_TCK_o_ds;
93 wire dut_io_pads_jtag_TMS_i_ival;
94 wire dut_io_pads_jtag_TMS_o_oval;
95 wire dut_io_pads_jtag_TMS_o_oe;
96 wire dut_io_pads_jtag_TMS_o_ie;
97 wire dut_io_pads_jtag_TMS_o_pue;
98 wire dut_io_pads_jtag_TMS_o_ds;
99 wire dut_io_pads_jtag_TDI_i_ival;
100 wire dut_io_pads_jtag_TDI_o_oval;
101 wire dut_io_pads_jtag_TDI_o_oe;
102 wire dut_io_pads_jtag_TDI_o_ie;
103 wire dut_io_pads_jtag_TDI_o_pue;
104 wire dut_io_pads_jtag_TDI_o_ds;
105 wire dut_io_pads_jtag_TDO_i_ival;
106 wire dut_io_pads_jtag_TDO_o_oval;
107 wire dut_io_pads_jtag_TDO_o_oe;
108 wire dut_io_pads_jtag_TDO_o_ie;
109 wire dut_io_pads_jtag_TDO_o_pue;
110 wire dut_io_pads_jtag_TDO_o_ds;
111 wire dut_io_pads_jtag_TRST_n_i_ival;
112 wire dut_io_pads_jtag_TRST_n_o_oval;
113 wire dut_io_pads_jtag_TRST_n_o_oe;
114 wire dut_io_pads_jtag_TRST_n_o_ie;
115 wire dut_io_pads_jtag_TRST_n_o_pue;
116 wire dut_io_pads_jtag_TRST_n_o_ds;
117 wire dut_io_pads_gpio_0_i_ival;
118 wire dut_io_pads_gpio_0_o_oval;
119 wire dut_io_pads_gpio_0_o_oe;
120 wire dut_io_pads_gpio_0_o_ie;
121 wire dut_io_pads_gpio_0_o_pue;
122 wire dut_io_pads_gpio_0_o_ds;
123 wire dut_io_pads_gpio_1_i_ival;
124 wire dut_io_pads_gpio_1_o_oval;
125 wire dut_io_pads_gpio_1_o_oe;
126 wire dut_io_pads_gpio_1_o_ie;
127 wire dut_io_pads_gpio_1_o_pue;
128 wire dut_io_pads_gpio_1_o_ds;
129 wire dut_io_pads_gpio_2_i_ival;
130 wire dut_io_pads_gpio_2_o_oval;
131 wire dut_io_pads_gpio_2_o_oe;
132 wire dut_io_pads_gpio_2_o_ie;
133 wire dut_io_pads_gpio_2_o_pue;
134 wire dut_io_pads_gpio_2_o_ds;
135 wire dut_io_pads_gpio_3_i_ival;
136 wire dut_io_pads_gpio_3_o_oval;
137 wire dut_io_pads_gpio_3_o_oe;
138 wire dut_io_pads_gpio_3_o_ie;
139 wire dut_io_pads_gpio_3_o_pue;
140 wire dut_io_pads_gpio_3_o_ds;
141 wire dut_io_pads_gpio_4_i_ival;
142 wire dut_io_pads_gpio_4_o_oval;
143 wire dut_io_pads_gpio_4_o_oe;
144 wire dut_io_pads_gpio_4_o_ie;
145 wire dut_io_pads_gpio_4_o_pue;
146 wire dut_io_pads_gpio_4_o_ds;
147 wire dut_io_pads_gpio_5_i_ival;
148 wire dut_io_pads_gpio_5_o_oval;
149 wire dut_io_pads_gpio_5_o_oe;
150 wire dut_io_pads_gpio_5_o_ie;
151 wire dut_io_pads_gpio_5_o_pue;
152 wire dut_io_pads_gpio_5_o_ds;
153 wire dut_io_pads_gpio_6_i_ival;
154 wire dut_io_pads_gpio_6_o_oval;
155 wire dut_io_pads_gpio_6_o_oe;
156 wire dut_io_pads_gpio_6_o_ie;
157 wire dut_io_pads_gpio_6_o_pue;
158 wire dut_io_pads_gpio_6_o_ds;
159 wire dut_io_pads_gpio_7_i_ival;
160 wire dut_io_pads_gpio_7_o_oval;
161 wire dut_io_pads_gpio_7_o_oe;
162 wire dut_io_pads_gpio_7_o_ie;
163 wire dut_io_pads_gpio_7_o_pue;
164 wire dut_io_pads_gpio_7_o_ds;
165 wire dut_io_pads_gpio_8_i_ival;
166 wire dut_io_pads_gpio_8_o_oval;
167 wire dut_io_pads_gpio_8_o_oe;
168 wire dut_io_pads_gpio_8_o_ie;
169 wire dut_io_pads_gpio_8_o_pue;
170 wire dut_io_pads_gpio_8_o_ds;
171 wire dut_io_pads_gpio_9_i_ival;
172 wire dut_io_pads_gpio_9_o_oval;
173 wire dut_io_pads_gpio_9_o_oe;
174 wire dut_io_pads_gpio_9_o_ie;
175 wire dut_io_pads_gpio_9_o_pue;
176 wire dut_io_pads_gpio_9_o_ds;
177 wire dut_io_pads_gpio_10_i_ival;
178 wire dut_io_pads_gpio_10_o_oval;
179 wire dut_io_pads_gpio_10_o_oe;
180 wire dut_io_pads_gpio_10_o_ie;
181 wire dut_io_pads_gpio_10_o_pue;
182 wire dut_io_pads_gpio_10_o_ds;
183 wire dut_io_pads_gpio_11_i_ival;
184 wire dut_io_pads_gpio_11_o_oval;
185 wire dut_io_pads_gpio_11_o_oe;
186 wire dut_io_pads_gpio_11_o_ie;
187 wire dut_io_pads_gpio_11_o_pue;
188 wire dut_io_pads_gpio_11_o_ds;
189 wire dut_io_pads_gpio_12_i_ival;
190 wire dut_io_pads_gpio_12_o_oval;
191 wire dut_io_pads_gpio_12_o_oe;
192 wire dut_io_pads_gpio_12_o_ie;
193 wire dut_io_pads_gpio_12_o_pue;
194 wire dut_io_pads_gpio_12_o_ds;
195 wire dut_io_pads_gpio_13_i_ival;
196 wire dut_io_pads_gpio_13_o_oval;
197 wire dut_io_pads_gpio_13_o_oe;
198 wire dut_io_pads_gpio_13_o_ie;
199 wire dut_io_pads_gpio_13_o_pue;
200 wire dut_io_pads_gpio_13_o_ds;
201 wire dut_io_pads_gpio_14_i_ival;
202 wire dut_io_pads_gpio_14_o_oval;
203 wire dut_io_pads_gpio_14_o_oe;
204 wire dut_io_pads_gpio_14_o_ie;
205 wire dut_io_pads_gpio_14_o_pue;
206 wire dut_io_pads_gpio_14_o_ds;
207 wire dut_io_pads_gpio_15_i_ival;
208 wire dut_io_pads_gpio_15_o_oval;
209 wire dut_io_pads_gpio_15_o_oe;
210 wire dut_io_pads_gpio_15_o_ie;
211 wire dut_io_pads_gpio_15_o_pue;
212 wire dut_io_pads_gpio_15_o_ds;
213 wire dut_io_pads_gpio_16_i_ival;
214 wire dut_io_pads_gpio_16_o_oval;
215 wire dut_io_pads_gpio_16_o_oe;
216 wire dut_io_pads_gpio_16_o_ie;
217 wire dut_io_pads_gpio_16_o_pue;
218 wire dut_io_pads_gpio_16_o_ds;
219 wire dut_io_pads_gpio_17_i_ival;
220 wire dut_io_pads_gpio_17_o_oval;
221 wire dut_io_pads_gpio_17_o_oe;
222 wire dut_io_pads_gpio_17_o_ie;
223 wire dut_io_pads_gpio_17_o_pue;
224 wire dut_io_pads_gpio_17_o_ds;
225 wire dut_io_pads_gpio_18_i_ival;
226 wire dut_io_pads_gpio_18_o_oval;
227 wire dut_io_pads_gpio_18_o_oe;
228 wire dut_io_pads_gpio_18_o_ie;
229 wire dut_io_pads_gpio_18_o_pue;
230 wire dut_io_pads_gpio_18_o_ds;
231 wire dut_io_pads_gpio_19_i_ival;
232 wire dut_io_pads_gpio_19_o_oval;
233 wire dut_io_pads_gpio_19_o_oe;
234 wire dut_io_pads_gpio_19_o_ie;
235 wire dut_io_pads_gpio_19_o_pue;
236 wire dut_io_pads_gpio_19_o_ds;
237 wire dut_io_pads_gpio_20_i_ival;
238 wire dut_io_pads_gpio_20_o_oval;
239 wire dut_io_pads_gpio_20_o_oe;
240 wire dut_io_pads_gpio_20_o_ie;
241 wire dut_io_pads_gpio_20_o_pue;
242 wire dut_io_pads_gpio_20_o_ds;
243 wire dut_io_pads_gpio_21_i_ival;
244 wire dut_io_pads_gpio_21_o_oval;
245 wire dut_io_pads_gpio_21_o_oe;
246 wire dut_io_pads_gpio_21_o_ie;
247 wire dut_io_pads_gpio_21_o_pue;
248 wire dut_io_pads_gpio_21_o_ds;
249 wire dut_io_pads_gpio_22_i_ival;
250 wire dut_io_pads_gpio_22_o_oval;
251 wire dut_io_pads_gpio_22_o_oe;
252 wire dut_io_pads_gpio_22_o_ie;
253 wire dut_io_pads_gpio_22_o_pue;
254 wire dut_io_pads_gpio_22_o_ds;
255 wire dut_io_pads_gpio_23_i_ival;
256 wire dut_io_pads_gpio_23_o_oval;
257 wire dut_io_pads_gpio_23_o_oe;
258 wire dut_io_pads_gpio_23_o_ie;
259 wire dut_io_pads_gpio_23_o_pue;
260 wire dut_io_pads_gpio_23_o_ds;
261 wire dut_io_pads_gpio_24_i_ival;
262 wire dut_io_pads_gpio_24_o_oval;
263 wire dut_io_pads_gpio_24_o_oe;
264 wire dut_io_pads_gpio_24_o_ie;
265 wire dut_io_pads_gpio_24_o_pue;
266 wire dut_io_pads_gpio_24_o_ds;
267 wire dut_io_pads_gpio_25_i_ival;
268 wire dut_io_pads_gpio_25_o_oval;
269 wire dut_io_pads_gpio_25_o_oe;
270 wire dut_io_pads_gpio_25_o_ie;
271 wire dut_io_pads_gpio_25_o_pue;
272 wire dut_io_pads_gpio_25_o_ds;
273 wire dut_io_pads_gpio_26_i_ival;
274 wire dut_io_pads_gpio_26_o_oval;
275 wire dut_io_pads_gpio_26_o_oe;
276 wire dut_io_pads_gpio_26_o_ie;
277 wire dut_io_pads_gpio_26_o_pue;
278 wire dut_io_pads_gpio_26_o_ds;
279 wire dut_io_pads_gpio_27_i_ival;
280 wire dut_io_pads_gpio_27_o_oval;
281 wire dut_io_pads_gpio_27_o_oe;
282 wire dut_io_pads_gpio_27_o_ie;
283 wire dut_io_pads_gpio_27_o_pue;
284 wire dut_io_pads_gpio_27_o_ds;
285 wire dut_io_pads_gpio_28_i_ival;
286 wire dut_io_pads_gpio_28_o_oval;
287 wire dut_io_pads_gpio_28_o_oe;
288 wire dut_io_pads_gpio_28_o_ie;
289 wire dut_io_pads_gpio_28_o_pue;
290 wire dut_io_pads_gpio_28_o_ds;
291 wire dut_io_pads_gpio_29_i_ival;
292 wire dut_io_pads_gpio_29_o_oval;
293 wire dut_io_pads_gpio_29_o_oe;
294 wire dut_io_pads_gpio_29_o_ie;
295 wire dut_io_pads_gpio_29_o_pue;
296 wire dut_io_pads_gpio_29_o_ds;
297 wire dut_io_pads_gpio_30_i_ival;
298 wire dut_io_pads_gpio_30_o_oval;
299 wire dut_io_pads_gpio_30_o_oe;
300 wire dut_io_pads_gpio_30_o_ie;
301 wire dut_io_pads_gpio_30_o_pue;
302 wire dut_io_pads_gpio_30_o_ds;
303 wire dut_io_pads_gpio_31_i_ival;
304 wire dut_io_pads_gpio_31_o_oval;
305 wire dut_io_pads_gpio_31_o_oe;
306 wire dut_io_pads_gpio_31_o_ie;
307 wire dut_io_pads_gpio_31_o_pue;
308 wire dut_io_pads_gpio_31_o_ds;
309 wire dut_io_pads_qspi_sck_i_ival;
310 wire dut_io_pads_qspi_sck_o_oval;
311 wire dut_io_pads_qspi_sck_o_oe;
312 wire dut_io_pads_qspi_sck_o_ie;
313 wire dut_io_pads_qspi_sck_o_pue;
314 wire dut_io_pads_qspi_sck_o_ds;
315 wire dut_io_pads_qspi_dq_0_i_ival;
316 wire dut_io_pads_qspi_dq_0_o_oval;
317 wire dut_io_pads_qspi_dq_0_o_oe;
318 wire dut_io_pads_qspi_dq_0_o_ie;
319 wire dut_io_pads_qspi_dq_0_o_pue;
320 wire dut_io_pads_qspi_dq_0_o_ds;
321 wire dut_io_pads_qspi_dq_1_i_ival;
322 wire dut_io_pads_qspi_dq_1_o_oval;
323 wire dut_io_pads_qspi_dq_1_o_oe;
324 wire dut_io_pads_qspi_dq_1_o_ie;
325 wire dut_io_pads_qspi_dq_1_o_pue;
326 wire dut_io_pads_qspi_dq_1_o_ds;
327 wire dut_io_pads_qspi_dq_2_i_ival;
328 wire dut_io_pads_qspi_dq_2_o_oval;
329 wire dut_io_pads_qspi_dq_2_o_oe;
330 wire dut_io_pads_qspi_dq_2_o_ie;
331 wire dut_io_pads_qspi_dq_2_o_pue;
332 wire dut_io_pads_qspi_dq_2_o_ds;
333 wire dut_io_pads_qspi_dq_3_i_ival;
334 wire dut_io_pads_qspi_dq_3_o_oval;
335 wire dut_io_pads_qspi_dq_3_o_oe;
336 wire dut_io_pads_qspi_dq_3_o_ie;
337 wire dut_io_pads_qspi_dq_3_o_pue;
338 wire dut_io_pads_qspi_dq_3_o_ds;
339 wire dut_io_pads_qspi_cs_0_i_ival;
340 wire dut_io_pads_qspi_cs_0_o_oval;
341 wire dut_io_pads_qspi_cs_0_o_oe;
342 wire dut_io_pads_qspi_cs_0_o_ie;
343 wire dut_io_pads_qspi_cs_0_o_pue;
344 wire dut_io_pads_qspi_cs_0_o_ds;
345 wire dut_io_pads_aon_erst_n_i_ival;
346 wire dut_io_pads_aon_erst_n_o_oval;
347 wire dut_io_pads_aon_erst_n_o_oe;
348 wire dut_io_pads_aon_erst_n_o_ie;
349 wire dut_io_pads_aon_erst_n_o_pue;
350 wire dut_io_pads_aon_erst_n_o_ds;
351 wire dut_io_pads_aon_lfextclk_i_ival;
352 wire dut_io_pads_aon_lfextclk_o_oval;
353 wire dut_io_pads_aon_lfextclk_o_oe;
354 wire dut_io_pads_aon_lfextclk_o_ie;
355 wire dut_io_pads_aon_lfextclk_o_pue;
356 wire dut_io_pads_aon_lfextclk_o_ds;
357 wire dut_io_pads_aon_pmu_dwakeup_n_i_ival;
358 wire dut_io_pads_aon_pmu_dwakeup_n_o_oval;
359 wire dut_io_pads_aon_pmu_dwakeup_n_o_oe;
360 wire dut_io_pads_aon_pmu_dwakeup_n_o_ie;
361 wire dut_io_pads_aon_pmu_dwakeup_n_o_pue;
362 wire dut_io_pads_aon_pmu_dwakeup_n_o_ds;
363 wire dut_io_pads_aon_pmu_vddpaden_i_ival;
364 wire dut_io_pads_aon_pmu_vddpaden_o_oval;
365 wire dut_io_pads_aon_pmu_vddpaden_o_oe;
366 wire dut_io_pads_aon_pmu_vddpaden_o_ie;
367 wire dut_io_pads_aon_pmu_vddpaden_o_pue;
368 wire dut_io_pads_aon_pmu_vddpaden_o_ds;
370 //=================================================
373 wire SRST_n; // From FTDI Chip
378 .clk_out1(clk_out1), // 8.388 MHz = 32.768 kHz * 256
379 .clk_out2(hfclk), // 65 MHz
385 clkdivider slowclkgen
388 .reset(~mmcm_locked),
392 reset_sys ip_reset_sys
394 .slowest_sync_clk(clk_out1),
395 .ext_reset_in(ck_rst & SRST_n), // Active-low
397 .mb_debug_sys_rst(1'b0),
398 .dcm_locked(mmcm_locked),
399 .mb_reset(reset_core),
400 .bus_struct_reset(reset_bus),
401 .peripheral_reset(reset_periph),
402 .interconnect_aresetn(reset_intcon_n),
403 .peripheral_aresetn(reset_periph_n)
406 //=================================================
409 wire [3:0] qspi_ui_dq_o, qspi_ui_dq_oe;
410 wire [3:0] qspi_ui_dq_i;
412 PULLUP qspi_pullup[3:0]
417 IOBUF qspi_iobuf[3:0]
425 //=================================================
426 // IOBUF instantiation for GPIOs
465 .IBUF_LOW_PWR("TRUE"),
466 .IOSTANDARD("DEFAULT"),
473 .I(dut_io_pads_gpio_0_o_oval),
474 .T(~dut_io_pads_gpio_0_o_oe)
476 assign dut_io_pads_gpio_0_i_ival = iobuf_gpio_0_o & dut_io_pads_gpio_0_o_ie;
482 .IBUF_LOW_PWR("TRUE"),
483 .IOSTANDARD("DEFAULT"),
490 .I(dut_io_pads_gpio_1_o_oval),
491 .T(~dut_io_pads_gpio_1_o_oe)
493 assign dut_io_pads_gpio_1_i_ival = iobuf_gpio_1_o & dut_io_pads_gpio_1_o_ie;
499 .IBUF_LOW_PWR("TRUE"),
500 .IOSTANDARD("DEFAULT"),
507 .I(dut_io_pads_gpio_2_o_oval),
508 .T(~dut_io_pads_gpio_2_o_oe)
510 assign dut_io_pads_gpio_2_i_ival = iobuf_gpio_2_o & dut_io_pads_gpio_2_o_ie;
516 .IBUF_LOW_PWR("TRUE"),
517 .IOSTANDARD("DEFAULT"),
524 .I(dut_io_pads_gpio_3_o_oval),
525 .T(~dut_io_pads_gpio_3_o_oe)
527 assign dut_io_pads_gpio_3_i_ival = iobuf_gpio_3_o & dut_io_pads_gpio_3_o_ie;
533 .IBUF_LOW_PWR("TRUE"),
534 .IOSTANDARD("DEFAULT"),
541 .I(dut_io_pads_gpio_4_o_oval),
542 .T(~dut_io_pads_gpio_4_o_oe)
544 assign dut_io_pads_gpio_4_i_ival = iobuf_gpio_4_o & dut_io_pads_gpio_4_o_ie;
550 .IBUF_LOW_PWR("TRUE"),
551 .IOSTANDARD("DEFAULT"),
558 .I(dut_io_pads_gpio_5_o_oval),
559 .T(~dut_io_pads_gpio_5_o_oe)
561 assign dut_io_pads_gpio_5_i_ival = iobuf_gpio_5_o & dut_io_pads_gpio_5_o_ie;
563 assign dut_io_pads_gpio_6_i_ival = 1'b0;
565 assign dut_io_pads_gpio_7_i_ival = 1'b0;
567 assign dut_io_pads_gpio_8_i_ival = 1'b0;
573 .IBUF_LOW_PWR("TRUE"),
574 .IOSTANDARD("DEFAULT"),
581 .I(dut_io_pads_gpio_9_o_oval),
582 .T(~dut_io_pads_gpio_9_o_oe)
584 assign dut_io_pads_gpio_9_i_ival = iobuf_gpio_9_o & dut_io_pads_gpio_9_o_ie;
586 wire iobuf_gpio_10_o;
590 .IBUF_LOW_PWR("TRUE"),
591 .IOSTANDARD("DEFAULT"),
598 .I(dut_io_pads_gpio_10_o_oval),
599 .T(~dut_io_pads_gpio_10_o_oe)
601 assign dut_io_pads_gpio_10_i_ival = iobuf_gpio_10_o & dut_io_pads_gpio_10_o_ie;
603 wire iobuf_gpio_11_o;
607 .IBUF_LOW_PWR("TRUE"),
608 .IOSTANDARD("DEFAULT"),
615 .I(dut_io_pads_gpio_11_o_oval),
616 .T(~dut_io_pads_gpio_11_o_oe)
618 assign dut_io_pads_gpio_11_i_ival = iobuf_gpio_11_o & dut_io_pads_gpio_11_o_ie;
620 wire iobuf_gpio_12_o;
624 .IBUF_LOW_PWR("TRUE"),
625 .IOSTANDARD("DEFAULT"),
632 .I(dut_io_pads_gpio_12_o_oval),
633 .T(~dut_io_pads_gpio_12_o_oe)
635 assign dut_io_pads_gpio_12_i_ival = iobuf_gpio_12_o & dut_io_pads_gpio_12_o_ie;
637 wire iobuf_gpio_13_o;
641 .IBUF_LOW_PWR("TRUE"),
642 .IOSTANDARD("DEFAULT"),
649 .I(dut_io_pads_gpio_13_o_oval),
650 .T(~dut_io_pads_gpio_13_o_oe)
652 assign dut_io_pads_gpio_13_i_ival = iobuf_gpio_13_o & dut_io_pads_gpio_13_o_ie;
654 wire iobuf_gpio_14_o;
658 .IBUF_LOW_PWR("TRUE"),
659 .IOSTANDARD("DEFAULT"),
666 .I(dut_io_pads_gpio_14_o_oval),
667 .T(~dut_io_pads_gpio_14_o_oe)
669 assign dut_io_pads_gpio_14_i_ival = iobuf_gpio_14_o & dut_io_pads_gpio_14_o_ie;
671 wire iobuf_gpio_15_o;
675 .IBUF_LOW_PWR("TRUE"),
676 .IOSTANDARD("DEFAULT"),
683 .I(dut_io_pads_gpio_15_o_oval),
684 .T(~dut_io_pads_gpio_15_o_oe)
686 assign dut_io_pads_gpio_15_i_ival = iobuf_gpio_15_o & dut_io_pads_gpio_15_o_ie;
688 wire iobuf_gpio_16_o;
692 .IBUF_LOW_PWR("TRUE"),
693 .IOSTANDARD("DEFAULT"),
700 .I(dut_io_pads_gpio_16_o_oval),
701 .T(~dut_io_pads_gpio_16_o_oe)
703 // This GPIO input is shared between FTDI TX pin and Arduino shield pin using SW[3]
704 // see below for details
705 assign dut_io_pads_gpio_16_i_ival = sw_3 ? (iobuf_gpio_16_o & dut_io_pads_gpio_16_o_ie) : (uart_txd_in & dut_io_pads_gpio_16_o_ie);
707 wire iobuf_gpio_17_o;
711 .IBUF_LOW_PWR("TRUE"),
712 .IOSTANDARD("DEFAULT"),
719 .I(dut_io_pads_gpio_17_o_oval),
720 .T(~dut_io_pads_gpio_17_o_oe)
722 assign dut_io_pads_gpio_17_i_ival = iobuf_gpio_17_o & dut_io_pads_gpio_17_o_ie;
723 assign uart_rxd_out = (dut_io_pads_gpio_17_o_oval & dut_io_pads_gpio_17_o_oe);
725 wire iobuf_gpio_18_o;
729 .IBUF_LOW_PWR("TRUE"),
730 .IOSTANDARD("DEFAULT"),
737 .I(dut_io_pads_gpio_18_o_oval),
738 .T(~dut_io_pads_gpio_18_o_oe)
740 assign dut_io_pads_gpio_18_i_ival = iobuf_gpio_18_o & dut_io_pads_gpio_18_o_ie;
742 wire iobuf_gpio_19_o;
746 .IBUF_LOW_PWR("TRUE"),
747 .IOSTANDARD("DEFAULT"),
754 .I(dut_io_pads_gpio_19_o_oval),
755 .T(~dut_io_pads_gpio_19_o_oe)
757 assign dut_io_pads_gpio_19_i_ival = iobuf_gpio_19_o & dut_io_pads_gpio_19_o_ie;
759 wire iobuf_gpio_20_o;
763 .IBUF_LOW_PWR("TRUE"),
764 .IOSTANDARD("DEFAULT"),
771 .I(dut_io_pads_gpio_20_o_oval),
772 .T(~dut_io_pads_gpio_20_o_oe)
774 assign dut_io_pads_gpio_20_i_ival = iobuf_gpio_20_o & dut_io_pads_gpio_20_o_ie;
776 wire iobuf_gpio_21_o;
780 .IBUF_LOW_PWR("TRUE"),
781 .IOSTANDARD("DEFAULT"),
788 .I(dut_io_pads_gpio_21_o_oval),
789 .T(~dut_io_pads_gpio_21_o_oe)
791 assign dut_io_pads_gpio_21_i_ival = iobuf_gpio_21_o & dut_io_pads_gpio_21_o_ie;
793 wire iobuf_gpio_22_o;
797 .IBUF_LOW_PWR("TRUE"),
798 .IOSTANDARD("DEFAULT"),
805 .I(dut_io_pads_gpio_22_o_oval),
806 .T(~dut_io_pads_gpio_22_o_oe)
808 assign dut_io_pads_gpio_22_i_ival = iobuf_gpio_22_o & dut_io_pads_gpio_22_o_ie;
810 wire iobuf_gpio_23_o;
814 .IBUF_LOW_PWR("TRUE"),
815 .IOSTANDARD("DEFAULT"),
822 .I(dut_io_pads_gpio_23_o_oval),
823 .T(~dut_io_pads_gpio_23_o_oe)
825 assign dut_io_pads_gpio_23_i_ival = iobuf_gpio_23_o & dut_io_pads_gpio_23_o_ie;
827 wire iobuf_gpio_24_o;
831 .IBUF_LOW_PWR("TRUE"),
832 .IOSTANDARD("DEFAULT"),
839 .I(dut_io_pads_gpio_24_o_oval),
840 .T(~dut_io_pads_gpio_24_o_oe)
842 assign dut_io_pads_gpio_24_i_ival = iobuf_gpio_24_o & dut_io_pads_gpio_24_o_ie;
844 wire iobuf_gpio_25_o;
848 .IBUF_LOW_PWR("TRUE"),
849 .IOSTANDARD("DEFAULT"),
856 .I(dut_io_pads_gpio_25_o_oval),
857 .T(~dut_io_pads_gpio_25_o_oe)
859 assign dut_io_pads_gpio_25_i_ival = iobuf_gpio_25_o & dut_io_pads_gpio_25_o_ie;
861 wire iobuf_gpio_26_o;
865 .IBUF_LOW_PWR("TRUE"),
866 .IOSTANDARD("DEFAULT"),
873 .I(dut_io_pads_gpio_26_o_oval),
874 .T(~dut_io_pads_gpio_26_o_oe)
876 assign dut_io_pads_gpio_26_i_ival = iobuf_gpio_26_o & dut_io_pads_gpio_26_o_ie;
878 wire iobuf_gpio_27_o;
882 .IBUF_LOW_PWR("TRUE"),
883 .IOSTANDARD("DEFAULT"),
890 .I(dut_io_pads_gpio_27_o_oval),
891 .T(~dut_io_pads_gpio_27_o_oe)
893 assign dut_io_pads_gpio_27_i_ival = iobuf_gpio_27_o & dut_io_pads_gpio_27_o_ie;
895 wire iobuf_gpio_28_o;
899 .IBUF_LOW_PWR("TRUE"),
900 .IOSTANDARD("DEFAULT"),
907 .I(dut_io_pads_gpio_28_o_oval),
908 .T(~dut_io_pads_gpio_28_o_oe)
910 assign dut_io_pads_gpio_28_i_ival = iobuf_gpio_28_o & dut_io_pads_gpio_28_o_ie;
912 wire iobuf_gpio_29_o;
916 .IBUF_LOW_PWR("TRUE"),
917 .IOSTANDARD("DEFAULT"),
924 .I(dut_io_pads_gpio_29_o_oval),
925 .T(~dut_io_pads_gpio_29_o_oe)
927 assign dut_io_pads_gpio_29_i_ival = iobuf_gpio_29_o & dut_io_pads_gpio_29_o_ie;
929 wire iobuf_gpio_30_o;
933 .IBUF_LOW_PWR("TRUE"),
934 .IOSTANDARD("DEFAULT"),
941 .I(dut_io_pads_gpio_30_o_oval),
942 .T(~dut_io_pads_gpio_30_o_oe)
944 assign dut_io_pads_gpio_30_i_ival = iobuf_gpio_30_o & dut_io_pads_gpio_30_o_ie;
946 wire iobuf_gpio_31_o;
950 .IBUF_LOW_PWR("TRUE"),
951 .IOSTANDARD("DEFAULT"),
958 .I(dut_io_pads_gpio_31_o_oval),
959 .T(~dut_io_pads_gpio_31_o_oe)
961 assign dut_io_pads_gpio_31_i_ival = iobuf_gpio_31_o & dut_io_pads_gpio_31_o_ie;
963 //=================================================
966 wire iobuf_jtag_TCK_o;
970 .IBUF_LOW_PWR("TRUE"),
971 .IOSTANDARD("DEFAULT"),
976 .O(iobuf_jtag_TCK_o),
978 .I(dut_io_pads_jtag_TCK_o_oval),
979 .T(~dut_io_pads_jtag_TCK_o_oe)
981 assign dut_io_pads_jtag_TCK_i_ival = iobuf_jtag_TCK_o & dut_io_pads_jtag_TCK_o_ie;
982 PULLUP pullup_TCK (.O(jd_2));
984 wire iobuf_jtag_TMS_o;
988 .IBUF_LOW_PWR("TRUE"),
989 .IOSTANDARD("DEFAULT"),
994 .O(iobuf_jtag_TMS_o),
996 .I(dut_io_pads_jtag_TMS_o_oval),
997 .T(~dut_io_pads_jtag_TMS_o_oe)
999 assign dut_io_pads_jtag_TMS_i_ival = iobuf_jtag_TMS_o & dut_io_pads_jtag_TMS_o_ie;
1000 PULLUP pullup_TMS (.O(jd_5));
1002 wire iobuf_jtag_TDI_o;
1006 .IBUF_LOW_PWR("TRUE"),
1007 .IOSTANDARD("DEFAULT"),
1012 .O(iobuf_jtag_TDI_o),
1014 .I(dut_io_pads_jtag_TDI_o_oval),
1015 .T(~dut_io_pads_jtag_TDI_o_oe)
1017 assign dut_io_pads_jtag_TDI_i_ival = iobuf_jtag_TDI_o & dut_io_pads_jtag_TDI_o_ie;
1018 PULLUP pullup_TDI (.O(jd_4));
1020 wire iobuf_jtag_TDO_o;
1024 .IBUF_LOW_PWR("TRUE"),
1025 .IOSTANDARD("DEFAULT"),
1030 .O(iobuf_jtag_TDO_o),
1032 .I(dut_io_pads_jtag_TDO_o_oval),
1033 .T(~dut_io_pads_jtag_TDO_o_oe)
1035 assign dut_io_pads_jtag_TDO_i_ival = iobuf_jtag_TDO_o & dut_io_pads_jtag_TDO_o_ie;
1037 wire iobuf_jtag_TRST_n_o;
1041 .IBUF_LOW_PWR("TRUE"),
1042 .IOSTANDARD("DEFAULT"),
1047 .O(iobuf_jtag_TRST_n_o),
1049 .I(dut_io_pads_jtag_TRST_n_o_oval),
1050 .T(~dut_io_pads_jtag_TRST_n_o_oe)
1052 assign dut_io_pads_jtag_TRST_n_i_ival = iobuf_jtag_TRST_n_o & dut_io_pads_jtag_TRST_n_o_ie;
1053 PULLUP pullup_TRST_n(.O(jd_1));
1055 // Mimic putting a pullup on this line (part of reset vote).
1056 assign SRST_n = jd_6;
1057 PULLUP pullup_SRST_n(.O(SRST_n));
1059 //=================================================
1060 // Assignment of IOBUF "IO" pins to package pins
1063 // Shield header row 0: PD0-PD7
1065 // FTDI UART TX/RX are not connected to ck_io[1,2]
1066 // the way they are on Arduino boards. We copy outgoing
1067 // data to both places, switch 3 (sw[3]) determines whether
1068 // input to UART comes from FTDI chip or gpio_16 (shield pin PD0)
1070 assign ck_io[0] = gpio_16; // UART0 RX
1071 assign ck_io[1] = gpio_17; // UART0 TX
1072 assign ck_io[2] = gpio_18;
1073 assign ck_io[3] = gpio_19; // PWM1(1)
1074 assign ck_io[4] = gpio_20; // PWM1(0)
1075 assign ck_io[5] = gpio_21; // PWM1(2)
1076 assign ck_io[6] = gpio_22; // PWM1(3)
1077 assign ck_io[7] = gpio_23;
1078 // Header row 1: PB0-PB5
1079 assign ck_io[8] = gpio_0; // PWM0(0)
1080 assign ck_io[9] = gpio_1; // PWM0(1)
1081 assign ck_io[10] = gpio_2; // SPI1 CS(0) / PWM0(2)
1082 assign ck_io[11] = gpio_3; // SPI1 MOSI / PWM0(3)
1083 assign ck_io[12] = gpio_4; // SPI1 MISO
1084 assign ck_io[13] = gpio_5; // SPI1 SCK
1086 // Header row 3: A0-A5 (we don't support using them as analog inputs)
1087 // just treat them as regular digital GPIOs
1088 assign ck_io[14] = uart_txd_in; //gpio_9; // A0 = <unconnected> CS(1)
1089 assign ck_io[15] = gpio_9; // A1 = CS(2)
1090 assign ck_io[16] = gpio_10; // A2 = CS(3) / PWM2(0)
1091 assign ck_io[17] = gpio_11; // A3 = PWM2(1)
1092 assign ck_io[18] = gpio_12; // A4 = PWM2(2) / SDA
1093 assign ck_io[19] = gpio_13; // A5 = PWM2(3) / SCL
1095 // Mirror outputs of GPIOs with PWM peripherals to RGB LEDs on Arty
1096 // assign RGB LED0 R,G,B inputs = PWM0(1,2,3) when iof_1 is active
1097 assign led0_r = dut_io_pads_gpio_1_o_oval & dut_io_pads_gpio_1_o_oe;
1098 assign led0_g = dut_io_pads_gpio_2_o_oval & dut_io_pads_gpio_2_o_oe;
1099 assign led0_b = dut_io_pads_gpio_3_o_oval & dut_io_pads_gpio_2_o_oe;
1100 // Note that this is the one which is actually connected on the HiFive/Crazy88
1101 // Board. Same with RGB LED1 R,G,B inputs = PWM1(1,2,3) when iof_1 is active
1102 assign led1_r = dut_io_pads_gpio_19_o_oval & dut_io_pads_gpio_19_o_oe;
1103 assign led1_g = dut_io_pads_gpio_21_o_oval & dut_io_pads_gpio_21_o_oe;
1104 assign led1_b = dut_io_pads_gpio_22_o_oval & dut_io_pads_gpio_22_o_oe;
1105 // and RGB LED2 R,G,B inputs = PWM2(1,2,3) when iof_1 is active
1106 assign led2_r = dut_io_pads_gpio_11_o_oval & dut_io_pads_gpio_11_o_oe;
1107 assign led2_g = dut_io_pads_gpio_12_o_oval & dut_io_pads_gpio_12_o_oe;
1108 assign led2_b = dut_io_pads_gpio_13_o_oval & dut_io_pads_gpio_13_o_oe;
1110 // Only 19 out of 20 shield pins connected to GPIO pads
1111 // Shield pin A5 (pin 14) left unconnected
1112 // The buttons are connected to some extra GPIO pads not connected on the
1115 assign btn_0 = gpio_15;
1116 assign btn_1 = gpio_30;
1117 assign btn_2 = gpio_31;
1119 // UART1 RX/TX pins are assigned to PMOD_D connector pins 0/1
1120 assign ja_0 = gpio_25; // UART1 TX
1121 assign ja_1 = gpio_24; // UART1 RX
1123 // SPI2 pins mapped to 6 pin ICSP connector (standard on later arduinos)
1124 // These are connected to some extra GPIO pads not connected on the HiFive1
1126 assign ck_ss = gpio_26;
1127 assign ck_mosi = gpio_27;
1128 assign ck_miso = gpio_28;
1129 assign ck_sck = gpio_29;
1131 // Use the LEDs for some more useful debugging things.
1132 assign led_0 = ck_rst;
1133 assign led_1 = SRST_n;
1134 assign led_2 = dut_io_pads_aon_pmu_dwakeup_n_i_ival;
1135 assign led_3 = gpio_14;
1137 E300ArtyDevKitTop dut
1141 .io_pads_jtag_TCK_i_ival(dut_io_pads_jtag_TCK_i_ival),
1142 .io_pads_jtag_TCK_o_oval(dut_io_pads_jtag_TCK_o_oval),
1143 .io_pads_jtag_TCK_o_oe(dut_io_pads_jtag_TCK_o_oe),
1144 .io_pads_jtag_TCK_o_ie(dut_io_pads_jtag_TCK_o_ie),
1145 .io_pads_jtag_TCK_o_pue(dut_io_pads_jtag_TCK_o_pue),
1146 .io_pads_jtag_TCK_o_ds(dut_io_pads_jtag_TCK_o_ds),
1147 .io_pads_jtag_TMS_i_ival(dut_io_pads_jtag_TMS_i_ival),
1148 .io_pads_jtag_TMS_o_oval(dut_io_pads_jtag_TMS_o_oval),
1149 .io_pads_jtag_TMS_o_oe(dut_io_pads_jtag_TMS_o_oe),
1150 .io_pads_jtag_TMS_o_ie(dut_io_pads_jtag_TMS_o_ie),
1151 .io_pads_jtag_TMS_o_pue(dut_io_pads_jtag_TMS_o_pue),
1152 .io_pads_jtag_TMS_o_ds(dut_io_pads_jtag_TMS_o_ds),
1153 .io_pads_jtag_TDI_i_ival(dut_io_pads_jtag_TDI_i_ival),
1154 .io_pads_jtag_TDI_o_oval(dut_io_pads_jtag_TDI_o_oval),
1155 .io_pads_jtag_TDI_o_oe(dut_io_pads_jtag_TDI_o_oe),
1156 .io_pads_jtag_TDI_o_ie(dut_io_pads_jtag_TDI_o_ie),
1157 .io_pads_jtag_TDI_o_pue(dut_io_pads_jtag_TDI_o_pue),
1158 .io_pads_jtag_TDI_o_ds(dut_io_pads_jtag_TDI_o_ds),
1159 .io_pads_jtag_TDO_i_ival(dut_io_pads_jtag_TDO_i_ival),
1160 .io_pads_jtag_TDO_o_oval(dut_io_pads_jtag_TDO_o_oval),
1161 .io_pads_jtag_TDO_o_oe(dut_io_pads_jtag_TDO_o_oe),
1162 .io_pads_jtag_TDO_o_ie(dut_io_pads_jtag_TDO_o_ie),
1163 .io_pads_jtag_TDO_o_pue(dut_io_pads_jtag_TDO_o_pue),
1164 .io_pads_jtag_TDO_o_ds(dut_io_pads_jtag_TDO_o_ds),
1165 .io_pads_jtag_TRST_n_i_ival(dut_io_pads_jtag_TRST_n_i_ival),
1166 .io_pads_jtag_TRST_n_o_oval(dut_io_pads_jtag_TRST_n_o_oval),
1167 .io_pads_jtag_TRST_n_o_oe(dut_io_pads_jtag_TRST_n_o_oe),
1168 .io_pads_jtag_TRST_n_o_ie(dut_io_pads_jtag_TRST_n_o_ie),
1169 .io_pads_jtag_TRST_n_o_pue(dut_io_pads_jtag_TRST_n_o_pue),
1170 .io_pads_jtag_TRST_n_o_ds(dut_io_pads_jtag_TRST_n_o_ds),
1171 .io_pads_gpio_0_i_ival(dut_io_pads_gpio_0_i_ival),
1172 .io_pads_gpio_0_o_oval(dut_io_pads_gpio_0_o_oval),
1173 .io_pads_gpio_0_o_oe(dut_io_pads_gpio_0_o_oe),
1174 .io_pads_gpio_0_o_ie(dut_io_pads_gpio_0_o_ie),
1175 .io_pads_gpio_0_o_pue(dut_io_pads_gpio_0_o_pue),
1176 .io_pads_gpio_0_o_ds(dut_io_pads_gpio_0_o_ds),
1177 .io_pads_gpio_1_i_ival(dut_io_pads_gpio_1_i_ival),
1178 .io_pads_gpio_1_o_oval(dut_io_pads_gpio_1_o_oval),
1179 .io_pads_gpio_1_o_oe(dut_io_pads_gpio_1_o_oe),
1180 .io_pads_gpio_1_o_ie(dut_io_pads_gpio_1_o_ie),
1181 .io_pads_gpio_1_o_pue(dut_io_pads_gpio_1_o_pue),
1182 .io_pads_gpio_1_o_ds(dut_io_pads_gpio_1_o_ds),
1183 .io_pads_gpio_2_i_ival(dut_io_pads_gpio_2_i_ival),
1184 .io_pads_gpio_2_o_oval(dut_io_pads_gpio_2_o_oval),
1185 .io_pads_gpio_2_o_oe(dut_io_pads_gpio_2_o_oe),
1186 .io_pads_gpio_2_o_ie(dut_io_pads_gpio_2_o_ie),
1187 .io_pads_gpio_2_o_pue(dut_io_pads_gpio_2_o_pue),
1188 .io_pads_gpio_2_o_ds(dut_io_pads_gpio_2_o_ds),
1189 .io_pads_gpio_3_i_ival(dut_io_pads_gpio_3_i_ival),
1190 .io_pads_gpio_3_o_oval(dut_io_pads_gpio_3_o_oval),
1191 .io_pads_gpio_3_o_oe(dut_io_pads_gpio_3_o_oe),
1192 .io_pads_gpio_3_o_ie(dut_io_pads_gpio_3_o_ie),
1193 .io_pads_gpio_3_o_pue(dut_io_pads_gpio_3_o_pue),
1194 .io_pads_gpio_3_o_ds(dut_io_pads_gpio_3_o_ds),
1195 .io_pads_gpio_4_i_ival(dut_io_pads_gpio_4_i_ival),
1196 .io_pads_gpio_4_o_oval(dut_io_pads_gpio_4_o_oval),
1197 .io_pads_gpio_4_o_oe(dut_io_pads_gpio_4_o_oe),
1198 .io_pads_gpio_4_o_ie(dut_io_pads_gpio_4_o_ie),
1199 .io_pads_gpio_4_o_pue(dut_io_pads_gpio_4_o_pue),
1200 .io_pads_gpio_4_o_ds(dut_io_pads_gpio_4_o_ds),
1201 .io_pads_gpio_5_i_ival(dut_io_pads_gpio_5_i_ival),
1202 .io_pads_gpio_5_o_oval(dut_io_pads_gpio_5_o_oval),
1203 .io_pads_gpio_5_o_oe(dut_io_pads_gpio_5_o_oe),
1204 .io_pads_gpio_5_o_ie(dut_io_pads_gpio_5_o_ie),
1205 .io_pads_gpio_5_o_pue(dut_io_pads_gpio_5_o_pue),
1206 .io_pads_gpio_5_o_ds(dut_io_pads_gpio_5_o_ds),
1207 .io_pads_gpio_6_i_ival(dut_io_pads_gpio_6_i_ival),
1208 .io_pads_gpio_6_o_oval(dut_io_pads_gpio_6_o_oval),
1209 .io_pads_gpio_6_o_oe(dut_io_pads_gpio_6_o_oe),
1210 .io_pads_gpio_6_o_ie(dut_io_pads_gpio_6_o_ie),
1211 .io_pads_gpio_6_o_pue(dut_io_pads_gpio_6_o_pue),
1212 .io_pads_gpio_6_o_ds(dut_io_pads_gpio_6_o_ds),
1213 .io_pads_gpio_7_i_ival(dut_io_pads_gpio_7_i_ival),
1214 .io_pads_gpio_7_o_oval(dut_io_pads_gpio_7_o_oval),
1215 .io_pads_gpio_7_o_oe(dut_io_pads_gpio_7_o_oe),
1216 .io_pads_gpio_7_o_ie(dut_io_pads_gpio_7_o_ie),
1217 .io_pads_gpio_7_o_pue(dut_io_pads_gpio_7_o_pue),
1218 .io_pads_gpio_7_o_ds(dut_io_pads_gpio_7_o_ds),
1219 .io_pads_gpio_8_i_ival(dut_io_pads_gpio_8_i_ival),
1220 .io_pads_gpio_8_o_oval(dut_io_pads_gpio_8_o_oval),
1221 .io_pads_gpio_8_o_oe(dut_io_pads_gpio_8_o_oe),
1222 .io_pads_gpio_8_o_ie(dut_io_pads_gpio_8_o_ie),
1223 .io_pads_gpio_8_o_pue(dut_io_pads_gpio_8_o_pue),
1224 .io_pads_gpio_8_o_ds(dut_io_pads_gpio_8_o_ds),
1225 .io_pads_gpio_9_i_ival(dut_io_pads_gpio_9_i_ival),
1226 .io_pads_gpio_9_o_oval(dut_io_pads_gpio_9_o_oval),
1227 .io_pads_gpio_9_o_oe(dut_io_pads_gpio_9_o_oe),
1228 .io_pads_gpio_9_o_ie(dut_io_pads_gpio_9_o_ie),
1229 .io_pads_gpio_9_o_pue(dut_io_pads_gpio_9_o_pue),
1230 .io_pads_gpio_9_o_ds(dut_io_pads_gpio_9_o_ds),
1231 .io_pads_gpio_10_i_ival(dut_io_pads_gpio_10_i_ival),
1232 .io_pads_gpio_10_o_oval(dut_io_pads_gpio_10_o_oval),
1233 .io_pads_gpio_10_o_oe(dut_io_pads_gpio_10_o_oe),
1234 .io_pads_gpio_10_o_ie(dut_io_pads_gpio_10_o_ie),
1235 .io_pads_gpio_10_o_pue(dut_io_pads_gpio_10_o_pue),
1236 .io_pads_gpio_10_o_ds(dut_io_pads_gpio_10_o_ds),
1237 .io_pads_gpio_11_i_ival(dut_io_pads_gpio_11_i_ival),
1238 .io_pads_gpio_11_o_oval(dut_io_pads_gpio_11_o_oval),
1239 .io_pads_gpio_11_o_oe(dut_io_pads_gpio_11_o_oe),
1240 .io_pads_gpio_11_o_ie(dut_io_pads_gpio_11_o_ie),
1241 .io_pads_gpio_11_o_pue(dut_io_pads_gpio_11_o_pue),
1242 .io_pads_gpio_11_o_ds(dut_io_pads_gpio_11_o_ds),
1243 .io_pads_gpio_12_i_ival(dut_io_pads_gpio_12_i_ival),
1244 .io_pads_gpio_12_o_oval(dut_io_pads_gpio_12_o_oval),
1245 .io_pads_gpio_12_o_oe(dut_io_pads_gpio_12_o_oe),
1246 .io_pads_gpio_12_o_ie(dut_io_pads_gpio_12_o_ie),
1247 .io_pads_gpio_12_o_pue(dut_io_pads_gpio_12_o_pue),
1248 .io_pads_gpio_12_o_ds(dut_io_pads_gpio_12_o_ds),
1249 .io_pads_gpio_13_i_ival(dut_io_pads_gpio_13_i_ival),
1250 .io_pads_gpio_13_o_oval(dut_io_pads_gpio_13_o_oval),
1251 .io_pads_gpio_13_o_oe(dut_io_pads_gpio_13_o_oe),
1252 .io_pads_gpio_13_o_ie(dut_io_pads_gpio_13_o_ie),
1253 .io_pads_gpio_13_o_pue(dut_io_pads_gpio_13_o_pue),
1254 .io_pads_gpio_13_o_ds(dut_io_pads_gpio_13_o_ds),
1255 .io_pads_gpio_14_i_ival(dut_io_pads_gpio_14_i_ival),
1256 .io_pads_gpio_14_o_oval(dut_io_pads_gpio_14_o_oval),
1257 .io_pads_gpio_14_o_oe(dut_io_pads_gpio_14_o_oe),
1258 .io_pads_gpio_14_o_ie(dut_io_pads_gpio_14_o_ie),
1259 .io_pads_gpio_14_o_pue(dut_io_pads_gpio_14_o_pue),
1260 .io_pads_gpio_14_o_ds(dut_io_pads_gpio_14_o_ds),
1261 .io_pads_gpio_15_i_ival(dut_io_pads_gpio_15_i_ival),
1262 .io_pads_gpio_15_o_oval(dut_io_pads_gpio_15_o_oval),
1263 .io_pads_gpio_15_o_oe(dut_io_pads_gpio_15_o_oe),
1264 .io_pads_gpio_15_o_ie(dut_io_pads_gpio_15_o_ie),
1265 .io_pads_gpio_15_o_pue(dut_io_pads_gpio_15_o_pue),
1266 .io_pads_gpio_15_o_ds(dut_io_pads_gpio_15_o_ds),
1267 .io_pads_gpio_16_i_ival(dut_io_pads_gpio_16_i_ival),
1268 .io_pads_gpio_16_o_oval(dut_io_pads_gpio_16_o_oval),
1269 .io_pads_gpio_16_o_oe(dut_io_pads_gpio_16_o_oe),
1270 .io_pads_gpio_16_o_ie(dut_io_pads_gpio_16_o_ie),
1271 .io_pads_gpio_16_o_pue(dut_io_pads_gpio_16_o_pue),
1272 .io_pads_gpio_16_o_ds(dut_io_pads_gpio_16_o_ds),
1273 .io_pads_gpio_17_i_ival(dut_io_pads_gpio_17_i_ival),
1274 .io_pads_gpio_17_o_oval(dut_io_pads_gpio_17_o_oval),
1275 .io_pads_gpio_17_o_oe(dut_io_pads_gpio_17_o_oe),
1276 .io_pads_gpio_17_o_ie(dut_io_pads_gpio_17_o_ie),
1277 .io_pads_gpio_17_o_pue(dut_io_pads_gpio_17_o_pue),
1278 .io_pads_gpio_17_o_ds(dut_io_pads_gpio_17_o_ds),
1279 .io_pads_gpio_18_i_ival(dut_io_pads_gpio_18_i_ival),
1280 .io_pads_gpio_18_o_oval(dut_io_pads_gpio_18_o_oval),
1281 .io_pads_gpio_18_o_oe(dut_io_pads_gpio_18_o_oe),
1282 .io_pads_gpio_18_o_ie(dut_io_pads_gpio_18_o_ie),
1283 .io_pads_gpio_18_o_pue(dut_io_pads_gpio_18_o_pue),
1284 .io_pads_gpio_18_o_ds(dut_io_pads_gpio_18_o_ds),
1285 .io_pads_gpio_19_i_ival(dut_io_pads_gpio_19_i_ival),
1286 .io_pads_gpio_19_o_oval(dut_io_pads_gpio_19_o_oval),
1287 .io_pads_gpio_19_o_oe(dut_io_pads_gpio_19_o_oe),
1288 .io_pads_gpio_19_o_ie(dut_io_pads_gpio_19_o_ie),
1289 .io_pads_gpio_19_o_pue(dut_io_pads_gpio_19_o_pue),
1290 .io_pads_gpio_19_o_ds(dut_io_pads_gpio_19_o_ds),
1291 .io_pads_gpio_20_i_ival(dut_io_pads_gpio_20_i_ival),
1292 .io_pads_gpio_20_o_oval(dut_io_pads_gpio_20_o_oval),
1293 .io_pads_gpio_20_o_oe(dut_io_pads_gpio_20_o_oe),
1294 .io_pads_gpio_20_o_ie(dut_io_pads_gpio_20_o_ie),
1295 .io_pads_gpio_20_o_pue(dut_io_pads_gpio_20_o_pue),
1296 .io_pads_gpio_20_o_ds(dut_io_pads_gpio_20_o_ds),
1297 .io_pads_gpio_21_i_ival(dut_io_pads_gpio_21_i_ival),
1298 .io_pads_gpio_21_o_oval(dut_io_pads_gpio_21_o_oval),
1299 .io_pads_gpio_21_o_oe(dut_io_pads_gpio_21_o_oe),
1300 .io_pads_gpio_21_o_ie(dut_io_pads_gpio_21_o_ie),
1301 .io_pads_gpio_21_o_pue(dut_io_pads_gpio_21_o_pue),
1302 .io_pads_gpio_21_o_ds(dut_io_pads_gpio_21_o_ds),
1303 .io_pads_gpio_22_i_ival(dut_io_pads_gpio_22_i_ival),
1304 .io_pads_gpio_22_o_oval(dut_io_pads_gpio_22_o_oval),
1305 .io_pads_gpio_22_o_oe(dut_io_pads_gpio_22_o_oe),
1306 .io_pads_gpio_22_o_ie(dut_io_pads_gpio_22_o_ie),
1307 .io_pads_gpio_22_o_pue(dut_io_pads_gpio_22_o_pue),
1308 .io_pads_gpio_22_o_ds(dut_io_pads_gpio_22_o_ds),
1309 .io_pads_gpio_23_i_ival(dut_io_pads_gpio_23_i_ival),
1310 .io_pads_gpio_23_o_oval(dut_io_pads_gpio_23_o_oval),
1311 .io_pads_gpio_23_o_oe(dut_io_pads_gpio_23_o_oe),
1312 .io_pads_gpio_23_o_ie(dut_io_pads_gpio_23_o_ie),
1313 .io_pads_gpio_23_o_pue(dut_io_pads_gpio_23_o_pue),
1314 .io_pads_gpio_23_o_ds(dut_io_pads_gpio_23_o_ds),
1315 .io_pads_gpio_24_i_ival(dut_io_pads_gpio_24_i_ival),
1316 .io_pads_gpio_24_o_oval(dut_io_pads_gpio_24_o_oval),
1317 .io_pads_gpio_24_o_oe(dut_io_pads_gpio_24_o_oe),
1318 .io_pads_gpio_24_o_ie(dut_io_pads_gpio_24_o_ie),
1319 .io_pads_gpio_24_o_pue(dut_io_pads_gpio_24_o_pue),
1320 .io_pads_gpio_24_o_ds(dut_io_pads_gpio_24_o_ds),
1321 .io_pads_gpio_25_i_ival(dut_io_pads_gpio_25_i_ival),
1322 .io_pads_gpio_25_o_oval(dut_io_pads_gpio_25_o_oval),
1323 .io_pads_gpio_25_o_oe(dut_io_pads_gpio_25_o_oe),
1324 .io_pads_gpio_25_o_ie(dut_io_pads_gpio_25_o_ie),
1325 .io_pads_gpio_25_o_pue(dut_io_pads_gpio_25_o_pue),
1326 .io_pads_gpio_25_o_ds(dut_io_pads_gpio_25_o_ds),
1327 .io_pads_gpio_26_i_ival(dut_io_pads_gpio_26_i_ival),
1328 .io_pads_gpio_26_o_oval(dut_io_pads_gpio_26_o_oval),
1329 .io_pads_gpio_26_o_oe(dut_io_pads_gpio_26_o_oe),
1330 .io_pads_gpio_26_o_ie(dut_io_pads_gpio_26_o_ie),
1331 .io_pads_gpio_26_o_pue(dut_io_pads_gpio_26_o_pue),
1332 .io_pads_gpio_26_o_ds(dut_io_pads_gpio_26_o_ds),
1333 .io_pads_gpio_27_i_ival(dut_io_pads_gpio_27_i_ival),
1334 .io_pads_gpio_27_o_oval(dut_io_pads_gpio_27_o_oval),
1335 .io_pads_gpio_27_o_oe(dut_io_pads_gpio_27_o_oe),
1336 .io_pads_gpio_27_o_ie(dut_io_pads_gpio_27_o_ie),
1337 .io_pads_gpio_27_o_pue(dut_io_pads_gpio_27_o_pue),
1338 .io_pads_gpio_27_o_ds(dut_io_pads_gpio_27_o_ds),
1339 .io_pads_gpio_28_i_ival(dut_io_pads_gpio_28_i_ival),
1340 .io_pads_gpio_28_o_oval(dut_io_pads_gpio_28_o_oval),
1341 .io_pads_gpio_28_o_oe(dut_io_pads_gpio_28_o_oe),
1342 .io_pads_gpio_28_o_ie(dut_io_pads_gpio_28_o_ie),
1343 .io_pads_gpio_28_o_pue(dut_io_pads_gpio_28_o_pue),
1344 .io_pads_gpio_28_o_ds(dut_io_pads_gpio_28_o_ds),
1345 .io_pads_gpio_29_i_ival(dut_io_pads_gpio_29_i_ival),
1346 .io_pads_gpio_29_o_oval(dut_io_pads_gpio_29_o_oval),
1347 .io_pads_gpio_29_o_oe(dut_io_pads_gpio_29_o_oe),
1348 .io_pads_gpio_29_o_ie(dut_io_pads_gpio_29_o_ie),
1349 .io_pads_gpio_29_o_pue(dut_io_pads_gpio_29_o_pue),
1350 .io_pads_gpio_29_o_ds(dut_io_pads_gpio_29_o_ds),
1351 .io_pads_gpio_30_i_ival(dut_io_pads_gpio_30_i_ival),
1352 .io_pads_gpio_30_o_oval(dut_io_pads_gpio_30_o_oval),
1353 .io_pads_gpio_30_o_oe(dut_io_pads_gpio_30_o_oe),
1354 .io_pads_gpio_30_o_ie(dut_io_pads_gpio_30_o_ie),
1355 .io_pads_gpio_30_o_pue(dut_io_pads_gpio_30_o_pue),
1356 .io_pads_gpio_30_o_ds(dut_io_pads_gpio_30_o_ds),
1357 .io_pads_gpio_31_i_ival(dut_io_pads_gpio_31_i_ival),
1358 .io_pads_gpio_31_o_oval(dut_io_pads_gpio_31_o_oval),
1359 .io_pads_gpio_31_o_oe(dut_io_pads_gpio_31_o_oe),
1360 .io_pads_gpio_31_o_ie(dut_io_pads_gpio_31_o_ie),
1361 .io_pads_gpio_31_o_pue(dut_io_pads_gpio_31_o_pue),
1362 .io_pads_gpio_31_o_ds(dut_io_pads_gpio_31_o_ds),
1363 .io_pads_qspi_sck_i_ival(dut_io_pads_qspi_sck_i_ival),
1364 .io_pads_qspi_sck_o_oval(dut_io_pads_qspi_sck_o_oval),
1365 .io_pads_qspi_sck_o_oe(dut_io_pads_qspi_sck_o_oe),
1366 .io_pads_qspi_sck_o_ie(dut_io_pads_qspi_sck_o_ie),
1367 .io_pads_qspi_sck_o_pue(dut_io_pads_qspi_sck_o_pue),
1368 .io_pads_qspi_sck_o_ds(dut_io_pads_qspi_sck_o_ds),
1369 .io_pads_qspi_dq_0_i_ival(dut_io_pads_qspi_dq_0_i_ival),
1370 .io_pads_qspi_dq_0_o_oval(dut_io_pads_qspi_dq_0_o_oval),
1371 .io_pads_qspi_dq_0_o_oe(dut_io_pads_qspi_dq_0_o_oe),
1372 .io_pads_qspi_dq_0_o_ie(dut_io_pads_qspi_dq_0_o_ie),
1373 .io_pads_qspi_dq_0_o_pue(dut_io_pads_qspi_dq_0_o_pue),
1374 .io_pads_qspi_dq_0_o_ds(dut_io_pads_qspi_dq_0_o_ds),
1375 .io_pads_qspi_dq_1_i_ival(dut_io_pads_qspi_dq_1_i_ival),
1376 .io_pads_qspi_dq_1_o_oval(dut_io_pads_qspi_dq_1_o_oval),
1377 .io_pads_qspi_dq_1_o_oe(dut_io_pads_qspi_dq_1_o_oe),
1378 .io_pads_qspi_dq_1_o_ie(dut_io_pads_qspi_dq_1_o_ie),
1379 .io_pads_qspi_dq_1_o_pue(dut_io_pads_qspi_dq_1_o_pue),
1380 .io_pads_qspi_dq_1_o_ds(dut_io_pads_qspi_dq_1_o_ds),
1381 .io_pads_qspi_dq_2_i_ival(dut_io_pads_qspi_dq_2_i_ival),
1382 .io_pads_qspi_dq_2_o_oval(dut_io_pads_qspi_dq_2_o_oval),
1383 .io_pads_qspi_dq_2_o_oe(dut_io_pads_qspi_dq_2_o_oe),
1384 .io_pads_qspi_dq_2_o_ie(dut_io_pads_qspi_dq_2_o_ie),
1385 .io_pads_qspi_dq_2_o_pue(dut_io_pads_qspi_dq_2_o_pue),
1386 .io_pads_qspi_dq_2_o_ds(dut_io_pads_qspi_dq_2_o_ds),
1387 .io_pads_qspi_dq_3_i_ival(dut_io_pads_qspi_dq_3_i_ival),
1388 .io_pads_qspi_dq_3_o_oval(dut_io_pads_qspi_dq_3_o_oval),
1389 .io_pads_qspi_dq_3_o_oe(dut_io_pads_qspi_dq_3_o_oe),
1390 .io_pads_qspi_dq_3_o_ie(dut_io_pads_qspi_dq_3_o_ie),
1391 .io_pads_qspi_dq_3_o_pue(dut_io_pads_qspi_dq_3_o_pue),
1392 .io_pads_qspi_dq_3_o_ds(dut_io_pads_qspi_dq_3_o_ds),
1393 .io_pads_qspi_cs_0_i_ival(dut_io_pads_qspi_cs_0_i_ival),
1394 .io_pads_qspi_cs_0_o_oval(dut_io_pads_qspi_cs_0_o_oval),
1395 .io_pads_qspi_cs_0_o_oe(dut_io_pads_qspi_cs_0_o_oe),
1396 .io_pads_qspi_cs_0_o_ie(dut_io_pads_qspi_cs_0_o_ie),
1397 .io_pads_qspi_cs_0_o_pue(dut_io_pads_qspi_cs_0_o_pue),
1398 .io_pads_qspi_cs_0_o_ds(dut_io_pads_qspi_cs_0_o_ds),
1399 .io_pads_aon_erst_n_i_ival(dut_io_pads_aon_erst_n_i_ival),
1400 .io_pads_aon_erst_n_o_oval(dut_io_pads_aon_erst_n_o_oval),
1401 .io_pads_aon_erst_n_o_oe(dut_io_pads_aon_erst_n_o_oe),
1402 .io_pads_aon_erst_n_o_ie(dut_io_pads_aon_erst_n_o_ie),
1403 .io_pads_aon_erst_n_o_pue(dut_io_pads_aon_erst_n_o_pue),
1404 .io_pads_aon_erst_n_o_ds(dut_io_pads_aon_erst_n_o_ds),
1405 .io_pads_aon_lfextclk_i_ival(dut_io_pads_aon_lfextclk_i_ival),
1406 .io_pads_aon_lfextclk_o_oval(dut_io_pads_aon_lfextclk_o_oval),
1407 .io_pads_aon_lfextclk_o_oe(dut_io_pads_aon_lfextclk_o_oe),
1408 .io_pads_aon_lfextclk_o_ie(dut_io_pads_aon_lfextclk_o_ie),
1409 .io_pads_aon_lfextclk_o_pue(dut_io_pads_aon_lfextclk_o_pue),
1410 .io_pads_aon_lfextclk_o_ds(dut_io_pads_aon_lfextclk_o_ds),
1411 .io_pads_aon_pmu_dwakeup_n_i_ival(dut_io_pads_aon_pmu_dwakeup_n_i_ival),
1412 .io_pads_aon_pmu_dwakeup_n_o_oval(dut_io_pads_aon_pmu_dwakeup_n_o_oval),
1413 .io_pads_aon_pmu_dwakeup_n_o_oe(dut_io_pads_aon_pmu_dwakeup_n_o_oe),
1414 .io_pads_aon_pmu_dwakeup_n_o_ie(dut_io_pads_aon_pmu_dwakeup_n_o_ie),
1415 .io_pads_aon_pmu_dwakeup_n_o_pue(dut_io_pads_aon_pmu_dwakeup_n_o_pue),
1416 .io_pads_aon_pmu_dwakeup_n_o_ds(dut_io_pads_aon_pmu_dwakeup_n_o_ds),
1417 .io_pads_aon_pmu_vddpaden_i_ival(dut_io_pads_aon_pmu_vddpaden_i_ival),
1418 .io_pads_aon_pmu_vddpaden_o_oval(dut_io_pads_aon_pmu_vddpaden_o_oval),
1419 .io_pads_aon_pmu_vddpaden_o_oe(dut_io_pads_aon_pmu_vddpaden_o_oe),
1420 .io_pads_aon_pmu_vddpaden_o_ie(dut_io_pads_aon_pmu_vddpaden_o_ie),
1421 .io_pads_aon_pmu_vddpaden_o_pue(dut_io_pads_aon_pmu_vddpaden_o_pue),
1422 .io_pads_aon_pmu_vddpaden_o_ds(dut_io_pads_aon_pmu_vddpaden_o_ds)
1425 // Assign reasonable values to otherwise unconnected inputs to chip top
1427 wire iobuf_dwakeup_o;
1431 .IBUF_LOW_PWR("TRUE"),
1432 .IOSTANDARD("DEFAULT"),
1437 .O(iobuf_dwakeup_o),
1439 .I(~dut_io_pads_aon_pmu_dwakeup_n_o_oval),
1440 .T(~dut_io_pads_aon_pmu_dwakeup_n_o_oe)
1442 assign dut_io_pads_aon_pmu_dwakeup_n_i_ival = (~iobuf_dwakeup_o) & dut_io_pads_aon_pmu_dwakeup_n_o_ie;
1444 assign dut_io_pads_aon_erst_n_i_ival = ~reset_periph;
1445 assign dut_io_pads_aon_lfextclk_i_ival = slowclk;
1447 assign dut_io_pads_aon_pmu_vddpaden_i_ival = 1'b1;
1449 assign qspi_cs = dut_io_pads_qspi_cs_0_o_oval;
1450 assign qspi_ui_dq_o = {
1451 dut_io_pads_qspi_dq_3_o_oval,
1452 dut_io_pads_qspi_dq_2_o_oval,
1453 dut_io_pads_qspi_dq_1_o_oval,
1454 dut_io_pads_qspi_dq_0_o_oval
1456 assign qspi_ui_dq_oe = {
1457 dut_io_pads_qspi_dq_3_o_oe,
1458 dut_io_pads_qspi_dq_2_o_oe,
1459 dut_io_pads_qspi_dq_1_o_oe,
1460 dut_io_pads_qspi_dq_0_o_oe
1462 assign dut_io_pads_qspi_dq_0_i_ival = qspi_ui_dq_i[0];
1463 assign dut_io_pads_qspi_dq_1_i_ival = qspi_ui_dq_i[1];
1464 assign dut_io_pads_qspi_dq_2_i_ival = qspi_ui_dq_i[2];
1465 assign dut_io_pads_qspi_dq_3_i_ival = qspi_ui_dq_i[3];
1466 assign qspi_sck = dut_io_pads_qspi_sck_o_oval;
1469 // Divide clock by 256, used to generate 32.768 kHz clock for AON block
1479 always @(posedge clk)
1486 else if (counter == 8'hff)
1489 clk_out <= ~clk_out;
1493 counter <= counter+1;