14 // RGB LEDs, 3 pins each
25 // Sliding switches, 3 used as GPIOs
26 // sw_3 selects input to UART0
32 // Buttons. First 3 used as GPIOs, the last is used as wakeup
38 // Dedicated QSPI interface
41 inout wire [3:0] qspi_dq,
44 output wire uart_rxd_out,
45 input wire uart_txd_in,
47 // UART1 (GPIO 24,25) (not present on 48-pin)
51 // Arduino (aka chipkit) shield digital IO pins, 14 is not connected to the
52 // chip, used for debug.
53 inout wire [19:0] ck_io,
55 // Dedicated SPI pins on 6 pin header standard on later arduino models
56 // connected to SPI2 (on FPGA)
62 // JD (used for JTAG connection)
63 inout wire jd_0, // TDO
64 inout wire jd_1, // TRST_n
65 inout wire jd_2, // TCK
66 inout wire jd_4, // TDI
67 inout wire jd_5, // TMS
68 input wire jd_6 // SRST_n
81 // All wires connected to the chip top
84 wire dut_io_pads_jtag_TCK_i_ival;
85 wire dut_io_pads_jtag_TCK_o_oval;
86 wire dut_io_pads_jtag_TCK_o_oe;
87 wire dut_io_pads_jtag_TCK_o_ie;
88 wire dut_io_pads_jtag_TCK_o_pue;
89 wire dut_io_pads_jtag_TCK_o_ds;
90 wire dut_io_pads_jtag_TMS_i_ival;
91 wire dut_io_pads_jtag_TMS_o_oval;
92 wire dut_io_pads_jtag_TMS_o_oe;
93 wire dut_io_pads_jtag_TMS_o_ie;
94 wire dut_io_pads_jtag_TMS_o_pue;
95 wire dut_io_pads_jtag_TMS_o_ds;
96 wire dut_io_pads_jtag_TDI_i_ival;
97 wire dut_io_pads_jtag_TDI_o_oval;
98 wire dut_io_pads_jtag_TDI_o_oe;
99 wire dut_io_pads_jtag_TDI_o_ie;
100 wire dut_io_pads_jtag_TDI_o_pue;
101 wire dut_io_pads_jtag_TDI_o_ds;
102 wire dut_io_pads_jtag_TDO_i_ival;
103 wire dut_io_pads_jtag_TDO_o_oval;
104 wire dut_io_pads_jtag_TDO_o_oe;
105 wire dut_io_pads_jtag_TDO_o_ie;
106 wire dut_io_pads_jtag_TDO_o_pue;
107 wire dut_io_pads_jtag_TDO_o_ds;
108 wire dut_io_pads_jtag_TRST_n_i_ival;
109 wire dut_io_pads_jtag_TRST_n_o_oval;
110 wire dut_io_pads_jtag_TRST_n_o_oe;
111 wire dut_io_pads_jtag_TRST_n_o_ie;
112 wire dut_io_pads_jtag_TRST_n_o_pue;
113 wire dut_io_pads_jtag_TRST_n_o_ds;
114 wire dut_io_pads_gpio_0_i_ival;
115 wire dut_io_pads_gpio_0_o_oval;
116 wire dut_io_pads_gpio_0_o_oe;
117 wire dut_io_pads_gpio_0_o_ie;
118 wire dut_io_pads_gpio_0_o_pue;
119 wire dut_io_pads_gpio_0_o_ds;
120 wire dut_io_pads_gpio_1_i_ival;
121 wire dut_io_pads_gpio_1_o_oval;
122 wire dut_io_pads_gpio_1_o_oe;
123 wire dut_io_pads_gpio_1_o_ie;
124 wire dut_io_pads_gpio_1_o_pue;
125 wire dut_io_pads_gpio_1_o_ds;
126 wire dut_io_pads_gpio_2_i_ival;
127 wire dut_io_pads_gpio_2_o_oval;
128 wire dut_io_pads_gpio_2_o_oe;
129 wire dut_io_pads_gpio_2_o_ie;
130 wire dut_io_pads_gpio_2_o_pue;
131 wire dut_io_pads_gpio_2_o_ds;
132 wire dut_io_pads_gpio_3_i_ival;
133 wire dut_io_pads_gpio_3_o_oval;
134 wire dut_io_pads_gpio_3_o_oe;
135 wire dut_io_pads_gpio_3_o_ie;
136 wire dut_io_pads_gpio_3_o_pue;
137 wire dut_io_pads_gpio_3_o_ds;
138 wire dut_io_pads_gpio_4_i_ival;
139 wire dut_io_pads_gpio_4_o_oval;
140 wire dut_io_pads_gpio_4_o_oe;
141 wire dut_io_pads_gpio_4_o_ie;
142 wire dut_io_pads_gpio_4_o_pue;
143 wire dut_io_pads_gpio_4_o_ds;
144 wire dut_io_pads_gpio_5_i_ival;
145 wire dut_io_pads_gpio_5_o_oval;
146 wire dut_io_pads_gpio_5_o_oe;
147 wire dut_io_pads_gpio_5_o_ie;
148 wire dut_io_pads_gpio_5_o_pue;
149 wire dut_io_pads_gpio_5_o_ds;
150 wire dut_io_pads_gpio_6_i_ival;
151 wire dut_io_pads_gpio_6_o_oval;
152 wire dut_io_pads_gpio_6_o_oe;
153 wire dut_io_pads_gpio_6_o_ie;
154 wire dut_io_pads_gpio_6_o_pue;
155 wire dut_io_pads_gpio_6_o_ds;
156 wire dut_io_pads_gpio_7_i_ival;
157 wire dut_io_pads_gpio_7_o_oval;
158 wire dut_io_pads_gpio_7_o_oe;
159 wire dut_io_pads_gpio_7_o_ie;
160 wire dut_io_pads_gpio_7_o_pue;
161 wire dut_io_pads_gpio_7_o_ds;
162 wire dut_io_pads_gpio_8_i_ival;
163 wire dut_io_pads_gpio_8_o_oval;
164 wire dut_io_pads_gpio_8_o_oe;
165 wire dut_io_pads_gpio_8_o_ie;
166 wire dut_io_pads_gpio_8_o_pue;
167 wire dut_io_pads_gpio_8_o_ds;
168 wire dut_io_pads_gpio_9_i_ival;
169 wire dut_io_pads_gpio_9_o_oval;
170 wire dut_io_pads_gpio_9_o_oe;
171 wire dut_io_pads_gpio_9_o_ie;
172 wire dut_io_pads_gpio_9_o_pue;
173 wire dut_io_pads_gpio_9_o_ds;
174 wire dut_io_pads_gpio_10_i_ival;
175 wire dut_io_pads_gpio_10_o_oval;
176 wire dut_io_pads_gpio_10_o_oe;
177 wire dut_io_pads_gpio_10_o_ie;
178 wire dut_io_pads_gpio_10_o_pue;
179 wire dut_io_pads_gpio_10_o_ds;
180 wire dut_io_pads_gpio_11_i_ival;
181 wire dut_io_pads_gpio_11_o_oval;
182 wire dut_io_pads_gpio_11_o_oe;
183 wire dut_io_pads_gpio_11_o_ie;
184 wire dut_io_pads_gpio_11_o_pue;
185 wire dut_io_pads_gpio_11_o_ds;
186 wire dut_io_pads_gpio_12_i_ival;
187 wire dut_io_pads_gpio_12_o_oval;
188 wire dut_io_pads_gpio_12_o_oe;
189 wire dut_io_pads_gpio_12_o_ie;
190 wire dut_io_pads_gpio_12_o_pue;
191 wire dut_io_pads_gpio_12_o_ds;
192 wire dut_io_pads_gpio_13_i_ival;
193 wire dut_io_pads_gpio_13_o_oval;
194 wire dut_io_pads_gpio_13_o_oe;
195 wire dut_io_pads_gpio_13_o_ie;
196 wire dut_io_pads_gpio_13_o_pue;
197 wire dut_io_pads_gpio_13_o_ds;
198 wire dut_io_pads_gpio_14_i_ival;
199 wire dut_io_pads_gpio_14_o_oval;
200 wire dut_io_pads_gpio_14_o_oe;
201 wire dut_io_pads_gpio_14_o_ie;
202 wire dut_io_pads_gpio_14_o_pue;
203 wire dut_io_pads_gpio_14_o_ds;
204 wire dut_io_pads_gpio_15_i_ival;
205 wire dut_io_pads_gpio_15_o_oval;
206 wire dut_io_pads_gpio_15_o_oe;
207 wire dut_io_pads_gpio_15_o_ie;
208 wire dut_io_pads_gpio_15_o_pue;
209 wire dut_io_pads_gpio_15_o_ds;
210 wire dut_io_pads_gpio_16_i_ival;
211 wire dut_io_pads_gpio_16_o_oval;
212 wire dut_io_pads_gpio_16_o_oe;
213 wire dut_io_pads_gpio_16_o_ie;
214 wire dut_io_pads_gpio_16_o_pue;
215 wire dut_io_pads_gpio_16_o_ds;
216 wire dut_io_pads_gpio_17_i_ival;
217 wire dut_io_pads_gpio_17_o_oval;
218 wire dut_io_pads_gpio_17_o_oe;
219 wire dut_io_pads_gpio_17_o_ie;
220 wire dut_io_pads_gpio_17_o_pue;
221 wire dut_io_pads_gpio_17_o_ds;
222 wire dut_io_pads_gpio_18_i_ival;
223 wire dut_io_pads_gpio_18_o_oval;
224 wire dut_io_pads_gpio_18_o_oe;
225 wire dut_io_pads_gpio_18_o_ie;
226 wire dut_io_pads_gpio_18_o_pue;
227 wire dut_io_pads_gpio_18_o_ds;
228 wire dut_io_pads_gpio_19_i_ival;
229 wire dut_io_pads_gpio_19_o_oval;
230 wire dut_io_pads_gpio_19_o_oe;
231 wire dut_io_pads_gpio_19_o_ie;
232 wire dut_io_pads_gpio_19_o_pue;
233 wire dut_io_pads_gpio_19_o_ds;
234 wire dut_io_pads_gpio_20_i_ival;
235 wire dut_io_pads_gpio_20_o_oval;
236 wire dut_io_pads_gpio_20_o_oe;
237 wire dut_io_pads_gpio_20_o_ie;
238 wire dut_io_pads_gpio_20_o_pue;
239 wire dut_io_pads_gpio_20_o_ds;
240 wire dut_io_pads_gpio_21_i_ival;
241 wire dut_io_pads_gpio_21_o_oval;
242 wire dut_io_pads_gpio_21_o_oe;
243 wire dut_io_pads_gpio_21_o_ie;
244 wire dut_io_pads_gpio_21_o_pue;
245 wire dut_io_pads_gpio_21_o_ds;
246 wire dut_io_pads_gpio_22_i_ival;
247 wire dut_io_pads_gpio_22_o_oval;
248 wire dut_io_pads_gpio_22_o_oe;
249 wire dut_io_pads_gpio_22_o_ie;
250 wire dut_io_pads_gpio_22_o_pue;
251 wire dut_io_pads_gpio_22_o_ds;
252 wire dut_io_pads_gpio_23_i_ival;
253 wire dut_io_pads_gpio_23_o_oval;
254 wire dut_io_pads_gpio_23_o_oe;
255 wire dut_io_pads_gpio_23_o_ie;
256 wire dut_io_pads_gpio_23_o_pue;
257 wire dut_io_pads_gpio_23_o_ds;
258 wire dut_io_pads_gpio_24_i_ival;
259 wire dut_io_pads_gpio_24_o_oval;
260 wire dut_io_pads_gpio_24_o_oe;
261 wire dut_io_pads_gpio_24_o_ie;
262 wire dut_io_pads_gpio_24_o_pue;
263 wire dut_io_pads_gpio_24_o_ds;
264 wire dut_io_pads_gpio_25_i_ival;
265 wire dut_io_pads_gpio_25_o_oval;
266 wire dut_io_pads_gpio_25_o_oe;
267 wire dut_io_pads_gpio_25_o_ie;
268 wire dut_io_pads_gpio_25_o_pue;
269 wire dut_io_pads_gpio_25_o_ds;
270 wire dut_io_pads_gpio_26_i_ival;
271 wire dut_io_pads_gpio_26_o_oval;
272 wire dut_io_pads_gpio_26_o_oe;
273 wire dut_io_pads_gpio_26_o_ie;
274 wire dut_io_pads_gpio_26_o_pue;
275 wire dut_io_pads_gpio_26_o_ds;
276 wire dut_io_pads_gpio_27_i_ival;
277 wire dut_io_pads_gpio_27_o_oval;
278 wire dut_io_pads_gpio_27_o_oe;
279 wire dut_io_pads_gpio_27_o_ie;
280 wire dut_io_pads_gpio_27_o_pue;
281 wire dut_io_pads_gpio_27_o_ds;
282 wire dut_io_pads_gpio_28_i_ival;
283 wire dut_io_pads_gpio_28_o_oval;
284 wire dut_io_pads_gpio_28_o_oe;
285 wire dut_io_pads_gpio_28_o_ie;
286 wire dut_io_pads_gpio_28_o_pue;
287 wire dut_io_pads_gpio_28_o_ds;
288 wire dut_io_pads_gpio_29_i_ival;
289 wire dut_io_pads_gpio_29_o_oval;
290 wire dut_io_pads_gpio_29_o_oe;
291 wire dut_io_pads_gpio_29_o_ie;
292 wire dut_io_pads_gpio_29_o_pue;
293 wire dut_io_pads_gpio_29_o_ds;
294 wire dut_io_pads_gpio_30_i_ival;
295 wire dut_io_pads_gpio_30_o_oval;
296 wire dut_io_pads_gpio_30_o_oe;
297 wire dut_io_pads_gpio_30_o_ie;
298 wire dut_io_pads_gpio_30_o_pue;
299 wire dut_io_pads_gpio_30_o_ds;
300 wire dut_io_pads_gpio_31_i_ival;
301 wire dut_io_pads_gpio_31_o_oval;
302 wire dut_io_pads_gpio_31_o_oe;
303 wire dut_io_pads_gpio_31_o_ie;
304 wire dut_io_pads_gpio_31_o_pue;
305 wire dut_io_pads_gpio_31_o_ds;
306 wire dut_io_pads_qspi_sck_i_ival;
307 wire dut_io_pads_qspi_sck_o_oval;
308 wire dut_io_pads_qspi_sck_o_oe;
309 wire dut_io_pads_qspi_sck_o_ie;
310 wire dut_io_pads_qspi_sck_o_pue;
311 wire dut_io_pads_qspi_sck_o_ds;
312 wire dut_io_pads_qspi_dq_0_i_ival;
313 wire dut_io_pads_qspi_dq_0_o_oval;
314 wire dut_io_pads_qspi_dq_0_o_oe;
315 wire dut_io_pads_qspi_dq_0_o_ie;
316 wire dut_io_pads_qspi_dq_0_o_pue;
317 wire dut_io_pads_qspi_dq_0_o_ds;
318 wire dut_io_pads_qspi_dq_1_i_ival;
319 wire dut_io_pads_qspi_dq_1_o_oval;
320 wire dut_io_pads_qspi_dq_1_o_oe;
321 wire dut_io_pads_qspi_dq_1_o_ie;
322 wire dut_io_pads_qspi_dq_1_o_pue;
323 wire dut_io_pads_qspi_dq_1_o_ds;
324 wire dut_io_pads_qspi_dq_2_i_ival;
325 wire dut_io_pads_qspi_dq_2_o_oval;
326 wire dut_io_pads_qspi_dq_2_o_oe;
327 wire dut_io_pads_qspi_dq_2_o_ie;
328 wire dut_io_pads_qspi_dq_2_o_pue;
329 wire dut_io_pads_qspi_dq_2_o_ds;
330 wire dut_io_pads_qspi_dq_3_i_ival;
331 wire dut_io_pads_qspi_dq_3_o_oval;
332 wire dut_io_pads_qspi_dq_3_o_oe;
333 wire dut_io_pads_qspi_dq_3_o_ie;
334 wire dut_io_pads_qspi_dq_3_o_pue;
335 wire dut_io_pads_qspi_dq_3_o_ds;
336 wire dut_io_pads_qspi_cs_0_i_ival;
337 wire dut_io_pads_qspi_cs_0_o_oval;
338 wire dut_io_pads_qspi_cs_0_o_oe;
339 wire dut_io_pads_qspi_cs_0_o_ie;
340 wire dut_io_pads_qspi_cs_0_o_pue;
341 wire dut_io_pads_qspi_cs_0_o_ds;
342 wire dut_io_pads_aon_erst_n_i_ival;
343 wire dut_io_pads_aon_erst_n_o_oval;
344 wire dut_io_pads_aon_erst_n_o_oe;
345 wire dut_io_pads_aon_erst_n_o_ie;
346 wire dut_io_pads_aon_erst_n_o_pue;
347 wire dut_io_pads_aon_erst_n_o_ds;
348 wire dut_io_pads_aon_lfextclk_i_ival;
349 wire dut_io_pads_aon_lfextclk_o_oval;
350 wire dut_io_pads_aon_lfextclk_o_oe;
351 wire dut_io_pads_aon_lfextclk_o_ie;
352 wire dut_io_pads_aon_lfextclk_o_pue;
353 wire dut_io_pads_aon_lfextclk_o_ds;
354 wire dut_io_pads_aon_pmu_dwakeup_n_i_ival;
355 wire dut_io_pads_aon_pmu_dwakeup_n_o_oval;
356 wire dut_io_pads_aon_pmu_dwakeup_n_o_oe;
357 wire dut_io_pads_aon_pmu_dwakeup_n_o_ie;
358 wire dut_io_pads_aon_pmu_dwakeup_n_o_pue;
359 wire dut_io_pads_aon_pmu_dwakeup_n_o_ds;
360 wire dut_io_pads_aon_pmu_vddpaden_i_ival;
361 wire dut_io_pads_aon_pmu_vddpaden_o_oval;
362 wire dut_io_pads_aon_pmu_vddpaden_o_oe;
363 wire dut_io_pads_aon_pmu_vddpaden_o_ie;
364 wire dut_io_pads_aon_pmu_vddpaden_o_pue;
365 wire dut_io_pads_aon_pmu_vddpaden_o_ds;
367 //=================================================
370 wire SRST_n; // From FTDI Chip
375 .clk_out1(clk_out1), // 8.388 MHz = 32.768 kHz * 256
376 .clk_out2(hfclk), // 65 MHz
382 clkdivider slowclkgen
385 .reset(~mmcm_locked),
389 reset_sys ip_reset_sys
391 .slowest_sync_clk(clk_out1),
392 .ext_reset_in(ck_rst & SRST_n), // Active-low
394 .mb_debug_sys_rst(1'b0),
395 .dcm_locked(mmcm_locked),
396 .mb_reset(reset_core),
397 .bus_struct_reset(reset_bus),
398 .peripheral_reset(reset_periph),
399 .interconnect_aresetn(reset_intcon_n),
400 .peripheral_aresetn(reset_periph_n)
403 //=================================================
406 wire [3:0] qspi_ui_dq_o, qspi_ui_dq_oe;
407 wire [3:0] qspi_ui_dq_i;
409 PULLUP qspi_pullup[3:0]
414 IOBUF qspi_iobuf[3:0]
422 //=================================================
423 // IOBUF instantiation for GPIOs
462 .IBUF_LOW_PWR("TRUE"),
463 .IOSTANDARD("DEFAULT"),
470 .I(dut_io_pads_gpio_0_o_oval),
471 .T(~dut_io_pads_gpio_0_o_oe)
473 assign dut_io_pads_gpio_0_i_ival = iobuf_gpio_0_o & dut_io_pads_gpio_0_o_ie;
479 .IBUF_LOW_PWR("TRUE"),
480 .IOSTANDARD("DEFAULT"),
487 .I(dut_io_pads_gpio_1_o_oval),
488 .T(~dut_io_pads_gpio_1_o_oe)
490 assign dut_io_pads_gpio_1_i_ival = iobuf_gpio_1_o & dut_io_pads_gpio_1_o_ie;
496 .IBUF_LOW_PWR("TRUE"),
497 .IOSTANDARD("DEFAULT"),
504 .I(dut_io_pads_gpio_2_o_oval),
505 .T(~dut_io_pads_gpio_2_o_oe)
507 assign dut_io_pads_gpio_2_i_ival = iobuf_gpio_2_o & dut_io_pads_gpio_2_o_ie;
513 .IBUF_LOW_PWR("TRUE"),
514 .IOSTANDARD("DEFAULT"),
521 .I(dut_io_pads_gpio_3_o_oval),
522 .T(~dut_io_pads_gpio_3_o_oe)
524 assign dut_io_pads_gpio_3_i_ival = iobuf_gpio_3_o & dut_io_pads_gpio_3_o_ie;
530 .IBUF_LOW_PWR("TRUE"),
531 .IOSTANDARD("DEFAULT"),
538 .I(dut_io_pads_gpio_4_o_oval),
539 .T(~dut_io_pads_gpio_4_o_oe)
541 assign dut_io_pads_gpio_4_i_ival = iobuf_gpio_4_o & dut_io_pads_gpio_4_o_ie;
547 .IBUF_LOW_PWR("TRUE"),
548 .IOSTANDARD("DEFAULT"),
555 .I(dut_io_pads_gpio_5_o_oval),
556 .T(~dut_io_pads_gpio_5_o_oe)
558 assign dut_io_pads_gpio_5_i_ival = iobuf_gpio_5_o & dut_io_pads_gpio_5_o_ie;
560 assign dut_io_pads_gpio_6_i_ival = 1'b0;
562 assign dut_io_pads_gpio_7_i_ival = 1'b0;
564 assign dut_io_pads_gpio_8_i_ival = 1'b0;
570 .IBUF_LOW_PWR("TRUE"),
571 .IOSTANDARD("DEFAULT"),
578 .I(dut_io_pads_gpio_9_o_oval),
579 .T(~dut_io_pads_gpio_9_o_oe)
581 assign dut_io_pads_gpio_9_i_ival = iobuf_gpio_9_o & dut_io_pads_gpio_9_o_ie;
583 wire iobuf_gpio_10_o;
587 .IBUF_LOW_PWR("TRUE"),
588 .IOSTANDARD("DEFAULT"),
595 .I(dut_io_pads_gpio_10_o_oval),
596 .T(~dut_io_pads_gpio_10_o_oe)
598 assign dut_io_pads_gpio_10_i_ival = iobuf_gpio_10_o & dut_io_pads_gpio_10_o_ie;
600 wire iobuf_gpio_11_o;
604 .IBUF_LOW_PWR("TRUE"),
605 .IOSTANDARD("DEFAULT"),
612 .I(dut_io_pads_gpio_11_o_oval),
613 .T(~dut_io_pads_gpio_11_o_oe)
615 assign dut_io_pads_gpio_11_i_ival = iobuf_gpio_11_o & dut_io_pads_gpio_11_o_ie;
617 wire iobuf_gpio_12_o;
621 .IBUF_LOW_PWR("TRUE"),
622 .IOSTANDARD("DEFAULT"),
629 .I(dut_io_pads_gpio_12_o_oval),
630 .T(~dut_io_pads_gpio_12_o_oe)
632 assign dut_io_pads_gpio_12_i_ival = iobuf_gpio_12_o & dut_io_pads_gpio_12_o_ie;
634 wire iobuf_gpio_13_o;
638 .IBUF_LOW_PWR("TRUE"),
639 .IOSTANDARD("DEFAULT"),
646 .I(dut_io_pads_gpio_13_o_oval),
647 .T(~dut_io_pads_gpio_13_o_oe)
649 assign dut_io_pads_gpio_13_i_ival = iobuf_gpio_13_o & dut_io_pads_gpio_13_o_ie;
651 wire iobuf_gpio_14_o;
655 .IBUF_LOW_PWR("TRUE"),
656 .IOSTANDARD("DEFAULT"),
663 .I(dut_io_pads_gpio_14_o_oval),
664 .T(~dut_io_pads_gpio_14_o_oe)
666 assign dut_io_pads_gpio_14_i_ival = iobuf_gpio_14_o & dut_io_pads_gpio_14_o_ie;
668 wire iobuf_gpio_15_o;
672 .IBUF_LOW_PWR("TRUE"),
673 .IOSTANDARD("DEFAULT"),
680 .I(dut_io_pads_gpio_15_o_oval),
681 .T(~dut_io_pads_gpio_15_o_oe)
683 assign dut_io_pads_gpio_15_i_ival = iobuf_gpio_15_o & dut_io_pads_gpio_15_o_ie;
685 wire iobuf_gpio_16_o;
689 .IBUF_LOW_PWR("TRUE"),
690 .IOSTANDARD("DEFAULT"),
697 .I(dut_io_pads_gpio_16_o_oval),
698 .T(~dut_io_pads_gpio_16_o_oe)
700 // This GPIO input is shared between FTDI TX pin and Arduino shield pin using SW[3]
701 // see below for details
702 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);
704 wire iobuf_gpio_17_o;
708 .IBUF_LOW_PWR("TRUE"),
709 .IOSTANDARD("DEFAULT"),
716 .I(dut_io_pads_gpio_17_o_oval),
717 .T(~dut_io_pads_gpio_17_o_oe)
719 assign dut_io_pads_gpio_17_i_ival = iobuf_gpio_17_o & dut_io_pads_gpio_17_o_ie;
720 assign uart_rxd_out = (dut_io_pads_gpio_17_o_oval & dut_io_pads_gpio_17_o_oe);
722 wire iobuf_gpio_18_o;
726 .IBUF_LOW_PWR("TRUE"),
727 .IOSTANDARD("DEFAULT"),
734 .I(dut_io_pads_gpio_18_o_oval),
735 .T(~dut_io_pads_gpio_18_o_oe)
737 assign dut_io_pads_gpio_18_i_ival = iobuf_gpio_18_o & dut_io_pads_gpio_18_o_ie;
739 wire iobuf_gpio_19_o;
743 .IBUF_LOW_PWR("TRUE"),
744 .IOSTANDARD("DEFAULT"),
751 .I(dut_io_pads_gpio_19_o_oval),
752 .T(~dut_io_pads_gpio_19_o_oe)
754 assign dut_io_pads_gpio_19_i_ival = iobuf_gpio_19_o & dut_io_pads_gpio_19_o_ie;
756 wire iobuf_gpio_20_o;
760 .IBUF_LOW_PWR("TRUE"),
761 .IOSTANDARD("DEFAULT"),
768 .I(dut_io_pads_gpio_20_o_oval),
769 .T(~dut_io_pads_gpio_20_o_oe)
771 assign dut_io_pads_gpio_20_i_ival = iobuf_gpio_20_o & dut_io_pads_gpio_20_o_ie;
773 wire iobuf_gpio_21_o;
777 .IBUF_LOW_PWR("TRUE"),
778 .IOSTANDARD("DEFAULT"),
785 .I(dut_io_pads_gpio_21_o_oval),
786 .T(~dut_io_pads_gpio_21_o_oe)
788 assign dut_io_pads_gpio_21_i_ival = iobuf_gpio_21_o & dut_io_pads_gpio_21_o_ie;
790 wire iobuf_gpio_22_o;
794 .IBUF_LOW_PWR("TRUE"),
795 .IOSTANDARD("DEFAULT"),
802 .I(dut_io_pads_gpio_22_o_oval),
803 .T(~dut_io_pads_gpio_22_o_oe)
805 assign dut_io_pads_gpio_22_i_ival = iobuf_gpio_22_o & dut_io_pads_gpio_22_o_ie;
807 wire iobuf_gpio_23_o;
811 .IBUF_LOW_PWR("TRUE"),
812 .IOSTANDARD("DEFAULT"),
819 .I(dut_io_pads_gpio_23_o_oval),
820 .T(~dut_io_pads_gpio_23_o_oe)
822 assign dut_io_pads_gpio_23_i_ival = iobuf_gpio_23_o & dut_io_pads_gpio_23_o_ie;
824 wire iobuf_gpio_24_o;
828 .IBUF_LOW_PWR("TRUE"),
829 .IOSTANDARD("DEFAULT"),
836 .I(dut_io_pads_gpio_24_o_oval),
837 .T(~dut_io_pads_gpio_24_o_oe)
839 assign dut_io_pads_gpio_24_i_ival = iobuf_gpio_24_o & dut_io_pads_gpio_24_o_ie;
841 wire iobuf_gpio_25_o;
845 .IBUF_LOW_PWR("TRUE"),
846 .IOSTANDARD("DEFAULT"),
853 .I(dut_io_pads_gpio_25_o_oval),
854 .T(~dut_io_pads_gpio_25_o_oe)
856 assign dut_io_pads_gpio_25_i_ival = iobuf_gpio_25_o & dut_io_pads_gpio_25_o_ie;
858 wire iobuf_gpio_26_o;
862 .IBUF_LOW_PWR("TRUE"),
863 .IOSTANDARD("DEFAULT"),
870 .I(dut_io_pads_gpio_26_o_oval),
871 .T(~dut_io_pads_gpio_26_o_oe)
873 assign dut_io_pads_gpio_26_i_ival = iobuf_gpio_26_o & dut_io_pads_gpio_26_o_ie;
875 wire iobuf_gpio_27_o;
879 .IBUF_LOW_PWR("TRUE"),
880 .IOSTANDARD("DEFAULT"),
887 .I(dut_io_pads_gpio_27_o_oval),
888 .T(~dut_io_pads_gpio_27_o_oe)
890 assign dut_io_pads_gpio_27_i_ival = iobuf_gpio_27_o & dut_io_pads_gpio_27_o_ie;
892 wire iobuf_gpio_28_o;
896 .IBUF_LOW_PWR("TRUE"),
897 .IOSTANDARD("DEFAULT"),
904 .I(dut_io_pads_gpio_28_o_oval),
905 .T(~dut_io_pads_gpio_28_o_oe)
907 assign dut_io_pads_gpio_28_i_ival = iobuf_gpio_28_o & dut_io_pads_gpio_28_o_ie;
909 wire iobuf_gpio_29_o;
913 .IBUF_LOW_PWR("TRUE"),
914 .IOSTANDARD("DEFAULT"),
921 .I(dut_io_pads_gpio_29_o_oval),
922 .T(~dut_io_pads_gpio_29_o_oe)
924 assign dut_io_pads_gpio_29_i_ival = iobuf_gpio_29_o & dut_io_pads_gpio_29_o_ie;
926 wire iobuf_gpio_30_o;
930 .IBUF_LOW_PWR("TRUE"),
931 .IOSTANDARD("DEFAULT"),
938 .I(dut_io_pads_gpio_30_o_oval),
939 .T(~dut_io_pads_gpio_30_o_oe)
941 assign dut_io_pads_gpio_30_i_ival = iobuf_gpio_30_o & dut_io_pads_gpio_30_o_ie;
943 wire iobuf_gpio_31_o;
947 .IBUF_LOW_PWR("TRUE"),
948 .IOSTANDARD("DEFAULT"),
955 .I(dut_io_pads_gpio_31_o_oval),
956 .T(~dut_io_pads_gpio_31_o_oe)
958 assign dut_io_pads_gpio_31_i_ival = iobuf_gpio_31_o & dut_io_pads_gpio_31_o_ie;
960 //=================================================
963 wire iobuf_jtag_TCK_o;
967 .IBUF_LOW_PWR("TRUE"),
968 .IOSTANDARD("DEFAULT"),
973 .O(iobuf_jtag_TCK_o),
975 .I(dut_io_pads_jtag_TCK_o_oval),
976 .T(~dut_io_pads_jtag_TCK_o_oe)
978 assign dut_io_pads_jtag_TCK_i_ival = iobuf_jtag_TCK_o & dut_io_pads_jtag_TCK_o_ie;
979 PULLUP pullup_TCK (.O(jd_2));
981 wire iobuf_jtag_TMS_o;
985 .IBUF_LOW_PWR("TRUE"),
986 .IOSTANDARD("DEFAULT"),
991 .O(iobuf_jtag_TMS_o),
993 .I(dut_io_pads_jtag_TMS_o_oval),
994 .T(~dut_io_pads_jtag_TMS_o_oe)
996 assign dut_io_pads_jtag_TMS_i_ival = iobuf_jtag_TMS_o & dut_io_pads_jtag_TMS_o_ie;
997 PULLUP pullup_TMS (.O(jd_5));
999 wire iobuf_jtag_TDI_o;
1003 .IBUF_LOW_PWR("TRUE"),
1004 .IOSTANDARD("DEFAULT"),
1009 .O(iobuf_jtag_TDI_o),
1011 .I(dut_io_pads_jtag_TDI_o_oval),
1012 .T(~dut_io_pads_jtag_TDI_o_oe)
1014 assign dut_io_pads_jtag_TDI_i_ival = iobuf_jtag_TDI_o & dut_io_pads_jtag_TDI_o_ie;
1015 PULLUP pullup_TDI (.O(jd_4));
1017 wire iobuf_jtag_TDO_o;
1021 .IBUF_LOW_PWR("TRUE"),
1022 .IOSTANDARD("DEFAULT"),
1027 .O(iobuf_jtag_TDO_o),
1029 .I(dut_io_pads_jtag_TDO_o_oval),
1030 .T(~dut_io_pads_jtag_TDO_o_oe)
1032 assign dut_io_pads_jtag_TDO_i_ival = iobuf_jtag_TDO_o & dut_io_pads_jtag_TDO_o_ie;
1034 wire iobuf_jtag_TRST_n_o;
1038 .IBUF_LOW_PWR("TRUE"),
1039 .IOSTANDARD("DEFAULT"),
1044 .O(iobuf_jtag_TRST_n_o),
1046 .I(dut_io_pads_jtag_TRST_n_o_oval),
1047 .T(~dut_io_pads_jtag_TRST_n_o_oe)
1049 assign dut_io_pads_jtag_TRST_n_i_ival = iobuf_jtag_TRST_n_o & dut_io_pads_jtag_TRST_n_o_ie;
1050 PULLUP pullup_TRST_n(.O(jd_1));
1052 // Mimic putting a pullup on this line (part of reset vote).
1053 assign SRST_n = jd_6;
1054 PULLUP pullup_SRST_n(.O(SRST_n));
1056 //=================================================
1057 // Assignment of IOBUF "IO" pins to package pins
1060 // Shield header row 0: PD0-PD7
1062 // FTDI UART TX/RX are not connected to ck_io[1,2]
1063 // the way they are on Arduino boards. We copy outgoing
1064 // data to both places, switch 3 (sw[3]) determines whether
1065 // input to UART comes from FTDI chip or gpio_16 (shield pin PD0)
1067 assign ck_io[0] = gpio_16; // UART0 RX
1068 assign ck_io[1] = gpio_17; // UART0 TX
1069 assign ck_io[2] = gpio_18;
1070 assign ck_io[3] = gpio_19; // PWM1(1)
1071 assign ck_io[4] = gpio_20; // PWM1(0)
1072 assign ck_io[5] = gpio_21; // PWM1(2)
1073 assign ck_io[6] = gpio_22; // PWM1(3)
1074 assign ck_io[7] = gpio_23;
1075 // Header row 1: PB0-PB5
1076 assign ck_io[8] = gpio_0; // PWM0(0)
1077 assign ck_io[9] = gpio_1; // PWM0(1)
1078 assign ck_io[10] = gpio_2; // SPI1 CS(0) / PWM0(2)
1079 assign ck_io[11] = gpio_3; // SPI1 MOSI / PWM0(3)
1080 assign ck_io[12] = gpio_4; // SPI1 MISO
1081 assign ck_io[13] = gpio_5; // SPI1 SCK
1083 // Header row 3: A0-A5 (we don't support using them as analog inputs)
1084 // just treat them as regular digital GPIOs
1085 assign ck_io[14] = uart_txd_in; //gpio_9; // A0 = <unconnected> CS(1)
1086 assign ck_io[15] = gpio_9; // A1 = CS(2)
1087 assign ck_io[16] = gpio_10; // A2 = CS(3) / PWM2(0)
1088 assign ck_io[17] = gpio_11; // A3 = PWM2(1)
1089 assign ck_io[18] = gpio_12; // A4 = PWM2(2) / SDA
1090 assign ck_io[19] = gpio_13; // A5 = PWM2(3) / SCL
1092 // Mirror outputs of GPIOs with PWM peripherals to RGB LEDs on Arty
1093 // assign RGB LED0 R,G,B inputs = PWM0(1,2,3) when iof_1 is active
1094 assign led0_r = dut_io_pads_gpio_1_o_oval & dut_io_pads_gpio_1_o_oe;
1095 assign led0_g = dut_io_pads_gpio_2_o_oval & dut_io_pads_gpio_2_o_oe;
1096 assign led0_b = dut_io_pads_gpio_3_o_oval & dut_io_pads_gpio_2_o_oe;
1097 // Note that this is the one which is actually connected on the HiFive/Crazy88
1098 // Board. Same with RGB LED1 R,G,B inputs = PWM1(1,2,3) when iof_1 is active
1099 assign led1_r = dut_io_pads_gpio_19_o_oval & dut_io_pads_gpio_19_o_oe;
1100 assign led1_g = dut_io_pads_gpio_21_o_oval & dut_io_pads_gpio_21_o_oe;
1101 assign led1_b = dut_io_pads_gpio_22_o_oval & dut_io_pads_gpio_22_o_oe;
1102 // and RGB LED2 R,G,B inputs = PWM2(1,2,3) when iof_1 is active
1103 assign led2_r = dut_io_pads_gpio_11_o_oval & dut_io_pads_gpio_11_o_oe;
1104 assign led2_g = dut_io_pads_gpio_12_o_oval & dut_io_pads_gpio_12_o_oe;
1105 assign led2_b = dut_io_pads_gpio_13_o_oval & dut_io_pads_gpio_13_o_oe;
1107 // Only 19 out of 20 shield pins connected to GPIO pads
1108 // Shield pin A5 (pin 14) left unconnected
1109 // The buttons are connected to some extra GPIO pads not connected on the
1112 assign btn_0 = gpio_15;
1113 assign btn_1 = gpio_30;
1114 assign btn_2 = gpio_31;
1116 // UART1 RX/TX pins are assigned to PMOD_D connector pins 0/1
1117 assign ja_0 = gpio_25; // UART1 TX
1118 assign ja_1 = gpio_24; // UART1 RX
1120 // SPI2 pins mapped to 6 pin ICSP connector (standard on later arduinos)
1121 // These are connected to some extra GPIO pads not connected on the HiFive1
1123 assign ck_ss = gpio_26;
1124 assign ck_mosi = gpio_27;
1125 assign ck_miso = gpio_28;
1126 assign ck_sck = gpio_29;
1128 // Use the LEDs for some more useful debugging things.
1129 assign led_0 = ck_rst;
1130 assign led_1 = SRST_n;
1131 assign led_2 = dut_io_pads_aon_pmu_dwakeup_n_i_ival;
1132 assign led_3 = gpio_14;
1134 E300ArtyDevKitTop dut
1138 .io_pads_jtag_TCK_i_ival(dut_io_pads_jtag_TCK_i_ival),
1139 .io_pads_jtag_TCK_o_oval(dut_io_pads_jtag_TCK_o_oval),
1140 .io_pads_jtag_TCK_o_oe(dut_io_pads_jtag_TCK_o_oe),
1141 .io_pads_jtag_TCK_o_ie(dut_io_pads_jtag_TCK_o_ie),
1142 .io_pads_jtag_TCK_o_pue(dut_io_pads_jtag_TCK_o_pue),
1143 .io_pads_jtag_TCK_o_ds(dut_io_pads_jtag_TCK_o_ds),
1144 .io_pads_jtag_TMS_i_ival(dut_io_pads_jtag_TMS_i_ival),
1145 .io_pads_jtag_TMS_o_oval(dut_io_pads_jtag_TMS_o_oval),
1146 .io_pads_jtag_TMS_o_oe(dut_io_pads_jtag_TMS_o_oe),
1147 .io_pads_jtag_TMS_o_ie(dut_io_pads_jtag_TMS_o_ie),
1148 .io_pads_jtag_TMS_o_pue(dut_io_pads_jtag_TMS_o_pue),
1149 .io_pads_jtag_TMS_o_ds(dut_io_pads_jtag_TMS_o_ds),
1150 .io_pads_jtag_TDI_i_ival(dut_io_pads_jtag_TDI_i_ival),
1151 .io_pads_jtag_TDI_o_oval(dut_io_pads_jtag_TDI_o_oval),
1152 .io_pads_jtag_TDI_o_oe(dut_io_pads_jtag_TDI_o_oe),
1153 .io_pads_jtag_TDI_o_ie(dut_io_pads_jtag_TDI_o_ie),
1154 .io_pads_jtag_TDI_o_pue(dut_io_pads_jtag_TDI_o_pue),
1155 .io_pads_jtag_TDI_o_ds(dut_io_pads_jtag_TDI_o_ds),
1156 .io_pads_jtag_TDO_i_ival(dut_io_pads_jtag_TDO_i_ival),
1157 .io_pads_jtag_TDO_o_oval(dut_io_pads_jtag_TDO_o_oval),
1158 .io_pads_jtag_TDO_o_oe(dut_io_pads_jtag_TDO_o_oe),
1159 .io_pads_jtag_TDO_o_ie(dut_io_pads_jtag_TDO_o_ie),
1160 .io_pads_jtag_TDO_o_pue(dut_io_pads_jtag_TDO_o_pue),
1161 .io_pads_jtag_TDO_o_ds(dut_io_pads_jtag_TDO_o_ds),
1162 .io_pads_jtag_TRST_n_i_ival(dut_io_pads_jtag_TRST_n_i_ival),
1163 .io_pads_jtag_TRST_n_o_oval(dut_io_pads_jtag_TRST_n_o_oval),
1164 .io_pads_jtag_TRST_n_o_oe(dut_io_pads_jtag_TRST_n_o_oe),
1165 .io_pads_jtag_TRST_n_o_ie(dut_io_pads_jtag_TRST_n_o_ie),
1166 .io_pads_jtag_TRST_n_o_pue(dut_io_pads_jtag_TRST_n_o_pue),
1167 .io_pads_jtag_TRST_n_o_ds(dut_io_pads_jtag_TRST_n_o_ds),
1168 .io_pads_gpio_0_i_ival(dut_io_pads_gpio_0_i_ival),
1169 .io_pads_gpio_0_o_oval(dut_io_pads_gpio_0_o_oval),
1170 .io_pads_gpio_0_o_oe(dut_io_pads_gpio_0_o_oe),
1171 .io_pads_gpio_0_o_ie(dut_io_pads_gpio_0_o_ie),
1172 .io_pads_gpio_0_o_pue(dut_io_pads_gpio_0_o_pue),
1173 .io_pads_gpio_0_o_ds(dut_io_pads_gpio_0_o_ds),
1174 .io_pads_gpio_1_i_ival(dut_io_pads_gpio_1_i_ival),
1175 .io_pads_gpio_1_o_oval(dut_io_pads_gpio_1_o_oval),
1176 .io_pads_gpio_1_o_oe(dut_io_pads_gpio_1_o_oe),
1177 .io_pads_gpio_1_o_ie(dut_io_pads_gpio_1_o_ie),
1178 .io_pads_gpio_1_o_pue(dut_io_pads_gpio_1_o_pue),
1179 .io_pads_gpio_1_o_ds(dut_io_pads_gpio_1_o_ds),
1180 .io_pads_gpio_2_i_ival(dut_io_pads_gpio_2_i_ival),
1181 .io_pads_gpio_2_o_oval(dut_io_pads_gpio_2_o_oval),
1182 .io_pads_gpio_2_o_oe(dut_io_pads_gpio_2_o_oe),
1183 .io_pads_gpio_2_o_ie(dut_io_pads_gpio_2_o_ie),
1184 .io_pads_gpio_2_o_pue(dut_io_pads_gpio_2_o_pue),
1185 .io_pads_gpio_2_o_ds(dut_io_pads_gpio_2_o_ds),
1186 .io_pads_gpio_3_i_ival(dut_io_pads_gpio_3_i_ival),
1187 .io_pads_gpio_3_o_oval(dut_io_pads_gpio_3_o_oval),
1188 .io_pads_gpio_3_o_oe(dut_io_pads_gpio_3_o_oe),
1189 .io_pads_gpio_3_o_ie(dut_io_pads_gpio_3_o_ie),
1190 .io_pads_gpio_3_o_pue(dut_io_pads_gpio_3_o_pue),
1191 .io_pads_gpio_3_o_ds(dut_io_pads_gpio_3_o_ds),
1192 .io_pads_gpio_4_i_ival(dut_io_pads_gpio_4_i_ival),
1193 .io_pads_gpio_4_o_oval(dut_io_pads_gpio_4_o_oval),
1194 .io_pads_gpio_4_o_oe(dut_io_pads_gpio_4_o_oe),
1195 .io_pads_gpio_4_o_ie(dut_io_pads_gpio_4_o_ie),
1196 .io_pads_gpio_4_o_pue(dut_io_pads_gpio_4_o_pue),
1197 .io_pads_gpio_4_o_ds(dut_io_pads_gpio_4_o_ds),
1198 .io_pads_gpio_5_i_ival(dut_io_pads_gpio_5_i_ival),
1199 .io_pads_gpio_5_o_oval(dut_io_pads_gpio_5_o_oval),
1200 .io_pads_gpio_5_o_oe(dut_io_pads_gpio_5_o_oe),
1201 .io_pads_gpio_5_o_ie(dut_io_pads_gpio_5_o_ie),
1202 .io_pads_gpio_5_o_pue(dut_io_pads_gpio_5_o_pue),
1203 .io_pads_gpio_5_o_ds(dut_io_pads_gpio_5_o_ds),
1204 .io_pads_gpio_6_i_ival(dut_io_pads_gpio_6_i_ival),
1205 .io_pads_gpio_6_o_oval(dut_io_pads_gpio_6_o_oval),
1206 .io_pads_gpio_6_o_oe(dut_io_pads_gpio_6_o_oe),
1207 .io_pads_gpio_6_o_ie(dut_io_pads_gpio_6_o_ie),
1208 .io_pads_gpio_6_o_pue(dut_io_pads_gpio_6_o_pue),
1209 .io_pads_gpio_6_o_ds(dut_io_pads_gpio_6_o_ds),
1210 .io_pads_gpio_7_i_ival(dut_io_pads_gpio_7_i_ival),
1211 .io_pads_gpio_7_o_oval(dut_io_pads_gpio_7_o_oval),
1212 .io_pads_gpio_7_o_oe(dut_io_pads_gpio_7_o_oe),
1213 .io_pads_gpio_7_o_ie(dut_io_pads_gpio_7_o_ie),
1214 .io_pads_gpio_7_o_pue(dut_io_pads_gpio_7_o_pue),
1215 .io_pads_gpio_7_o_ds(dut_io_pads_gpio_7_o_ds),
1216 .io_pads_gpio_8_i_ival(dut_io_pads_gpio_8_i_ival),
1217 .io_pads_gpio_8_o_oval(dut_io_pads_gpio_8_o_oval),
1218 .io_pads_gpio_8_o_oe(dut_io_pads_gpio_8_o_oe),
1219 .io_pads_gpio_8_o_ie(dut_io_pads_gpio_8_o_ie),
1220 .io_pads_gpio_8_o_pue(dut_io_pads_gpio_8_o_pue),
1221 .io_pads_gpio_8_o_ds(dut_io_pads_gpio_8_o_ds),
1222 .io_pads_gpio_9_i_ival(dut_io_pads_gpio_9_i_ival),
1223 .io_pads_gpio_9_o_oval(dut_io_pads_gpio_9_o_oval),
1224 .io_pads_gpio_9_o_oe(dut_io_pads_gpio_9_o_oe),
1225 .io_pads_gpio_9_o_ie(dut_io_pads_gpio_9_o_ie),
1226 .io_pads_gpio_9_o_pue(dut_io_pads_gpio_9_o_pue),
1227 .io_pads_gpio_9_o_ds(dut_io_pads_gpio_9_o_ds),
1228 .io_pads_gpio_10_i_ival(dut_io_pads_gpio_10_i_ival),
1229 .io_pads_gpio_10_o_oval(dut_io_pads_gpio_10_o_oval),
1230 .io_pads_gpio_10_o_oe(dut_io_pads_gpio_10_o_oe),
1231 .io_pads_gpio_10_o_ie(dut_io_pads_gpio_10_o_ie),
1232 .io_pads_gpio_10_o_pue(dut_io_pads_gpio_10_o_pue),
1233 .io_pads_gpio_10_o_ds(dut_io_pads_gpio_10_o_ds),
1234 .io_pads_gpio_11_i_ival(dut_io_pads_gpio_11_i_ival),
1235 .io_pads_gpio_11_o_oval(dut_io_pads_gpio_11_o_oval),
1236 .io_pads_gpio_11_o_oe(dut_io_pads_gpio_11_o_oe),
1237 .io_pads_gpio_11_o_ie(dut_io_pads_gpio_11_o_ie),
1238 .io_pads_gpio_11_o_pue(dut_io_pads_gpio_11_o_pue),
1239 .io_pads_gpio_11_o_ds(dut_io_pads_gpio_11_o_ds),
1240 .io_pads_gpio_12_i_ival(dut_io_pads_gpio_12_i_ival),
1241 .io_pads_gpio_12_o_oval(dut_io_pads_gpio_12_o_oval),
1242 .io_pads_gpio_12_o_oe(dut_io_pads_gpio_12_o_oe),
1243 .io_pads_gpio_12_o_ie(dut_io_pads_gpio_12_o_ie),
1244 .io_pads_gpio_12_o_pue(dut_io_pads_gpio_12_o_pue),
1245 .io_pads_gpio_12_o_ds(dut_io_pads_gpio_12_o_ds),
1246 .io_pads_gpio_13_i_ival(dut_io_pads_gpio_13_i_ival),
1247 .io_pads_gpio_13_o_oval(dut_io_pads_gpio_13_o_oval),
1248 .io_pads_gpio_13_o_oe(dut_io_pads_gpio_13_o_oe),
1249 .io_pads_gpio_13_o_ie(dut_io_pads_gpio_13_o_ie),
1250 .io_pads_gpio_13_o_pue(dut_io_pads_gpio_13_o_pue),
1251 .io_pads_gpio_13_o_ds(dut_io_pads_gpio_13_o_ds),
1252 .io_pads_gpio_14_i_ival(dut_io_pads_gpio_14_i_ival),
1253 .io_pads_gpio_14_o_oval(dut_io_pads_gpio_14_o_oval),
1254 .io_pads_gpio_14_o_oe(dut_io_pads_gpio_14_o_oe),
1255 .io_pads_gpio_14_o_ie(dut_io_pads_gpio_14_o_ie),
1256 .io_pads_gpio_14_o_pue(dut_io_pads_gpio_14_o_pue),
1257 .io_pads_gpio_14_o_ds(dut_io_pads_gpio_14_o_ds),
1258 .io_pads_gpio_15_i_ival(dut_io_pads_gpio_15_i_ival),
1259 .io_pads_gpio_15_o_oval(dut_io_pads_gpio_15_o_oval),
1260 .io_pads_gpio_15_o_oe(dut_io_pads_gpio_15_o_oe),
1261 .io_pads_gpio_15_o_ie(dut_io_pads_gpio_15_o_ie),
1262 .io_pads_gpio_15_o_pue(dut_io_pads_gpio_15_o_pue),
1263 .io_pads_gpio_15_o_ds(dut_io_pads_gpio_15_o_ds),
1264 .io_pads_gpio_16_i_ival(dut_io_pads_gpio_16_i_ival),
1265 .io_pads_gpio_16_o_oval(dut_io_pads_gpio_16_o_oval),
1266 .io_pads_gpio_16_o_oe(dut_io_pads_gpio_16_o_oe),
1267 .io_pads_gpio_16_o_ie(dut_io_pads_gpio_16_o_ie),
1268 .io_pads_gpio_16_o_pue(dut_io_pads_gpio_16_o_pue),
1269 .io_pads_gpio_16_o_ds(dut_io_pads_gpio_16_o_ds),
1270 .io_pads_gpio_17_i_ival(dut_io_pads_gpio_17_i_ival),
1271 .io_pads_gpio_17_o_oval(dut_io_pads_gpio_17_o_oval),
1272 .io_pads_gpio_17_o_oe(dut_io_pads_gpio_17_o_oe),
1273 .io_pads_gpio_17_o_ie(dut_io_pads_gpio_17_o_ie),
1274 .io_pads_gpio_17_o_pue(dut_io_pads_gpio_17_o_pue),
1275 .io_pads_gpio_17_o_ds(dut_io_pads_gpio_17_o_ds),
1276 .io_pads_gpio_18_i_ival(dut_io_pads_gpio_18_i_ival),
1277 .io_pads_gpio_18_o_oval(dut_io_pads_gpio_18_o_oval),
1278 .io_pads_gpio_18_o_oe(dut_io_pads_gpio_18_o_oe),
1279 .io_pads_gpio_18_o_ie(dut_io_pads_gpio_18_o_ie),
1280 .io_pads_gpio_18_o_pue(dut_io_pads_gpio_18_o_pue),
1281 .io_pads_gpio_18_o_ds(dut_io_pads_gpio_18_o_ds),
1282 .io_pads_gpio_19_i_ival(dut_io_pads_gpio_19_i_ival),
1283 .io_pads_gpio_19_o_oval(dut_io_pads_gpio_19_o_oval),
1284 .io_pads_gpio_19_o_oe(dut_io_pads_gpio_19_o_oe),
1285 .io_pads_gpio_19_o_ie(dut_io_pads_gpio_19_o_ie),
1286 .io_pads_gpio_19_o_pue(dut_io_pads_gpio_19_o_pue),
1287 .io_pads_gpio_19_o_ds(dut_io_pads_gpio_19_o_ds),
1288 .io_pads_gpio_20_i_ival(dut_io_pads_gpio_20_i_ival),
1289 .io_pads_gpio_20_o_oval(dut_io_pads_gpio_20_o_oval),
1290 .io_pads_gpio_20_o_oe(dut_io_pads_gpio_20_o_oe),
1291 .io_pads_gpio_20_o_ie(dut_io_pads_gpio_20_o_ie),
1292 .io_pads_gpio_20_o_pue(dut_io_pads_gpio_20_o_pue),
1293 .io_pads_gpio_20_o_ds(dut_io_pads_gpio_20_o_ds),
1294 .io_pads_gpio_21_i_ival(dut_io_pads_gpio_21_i_ival),
1295 .io_pads_gpio_21_o_oval(dut_io_pads_gpio_21_o_oval),
1296 .io_pads_gpio_21_o_oe(dut_io_pads_gpio_21_o_oe),
1297 .io_pads_gpio_21_o_ie(dut_io_pads_gpio_21_o_ie),
1298 .io_pads_gpio_21_o_pue(dut_io_pads_gpio_21_o_pue),
1299 .io_pads_gpio_21_o_ds(dut_io_pads_gpio_21_o_ds),
1300 .io_pads_gpio_22_i_ival(dut_io_pads_gpio_22_i_ival),
1301 .io_pads_gpio_22_o_oval(dut_io_pads_gpio_22_o_oval),
1302 .io_pads_gpio_22_o_oe(dut_io_pads_gpio_22_o_oe),
1303 .io_pads_gpio_22_o_ie(dut_io_pads_gpio_22_o_ie),
1304 .io_pads_gpio_22_o_pue(dut_io_pads_gpio_22_o_pue),
1305 .io_pads_gpio_22_o_ds(dut_io_pads_gpio_22_o_ds),
1306 .io_pads_gpio_23_i_ival(dut_io_pads_gpio_23_i_ival),
1307 .io_pads_gpio_23_o_oval(dut_io_pads_gpio_23_o_oval),
1308 .io_pads_gpio_23_o_oe(dut_io_pads_gpio_23_o_oe),
1309 .io_pads_gpio_23_o_ie(dut_io_pads_gpio_23_o_ie),
1310 .io_pads_gpio_23_o_pue(dut_io_pads_gpio_23_o_pue),
1311 .io_pads_gpio_23_o_ds(dut_io_pads_gpio_23_o_ds),
1312 .io_pads_gpio_24_i_ival(dut_io_pads_gpio_24_i_ival),
1313 .io_pads_gpio_24_o_oval(dut_io_pads_gpio_24_o_oval),
1314 .io_pads_gpio_24_o_oe(dut_io_pads_gpio_24_o_oe),
1315 .io_pads_gpio_24_o_ie(dut_io_pads_gpio_24_o_ie),
1316 .io_pads_gpio_24_o_pue(dut_io_pads_gpio_24_o_pue),
1317 .io_pads_gpio_24_o_ds(dut_io_pads_gpio_24_o_ds),
1318 .io_pads_gpio_25_i_ival(dut_io_pads_gpio_25_i_ival),
1319 .io_pads_gpio_25_o_oval(dut_io_pads_gpio_25_o_oval),
1320 .io_pads_gpio_25_o_oe(dut_io_pads_gpio_25_o_oe),
1321 .io_pads_gpio_25_o_ie(dut_io_pads_gpio_25_o_ie),
1322 .io_pads_gpio_25_o_pue(dut_io_pads_gpio_25_o_pue),
1323 .io_pads_gpio_25_o_ds(dut_io_pads_gpio_25_o_ds),
1324 .io_pads_gpio_26_i_ival(dut_io_pads_gpio_26_i_ival),
1325 .io_pads_gpio_26_o_oval(dut_io_pads_gpio_26_o_oval),
1326 .io_pads_gpio_26_o_oe(dut_io_pads_gpio_26_o_oe),
1327 .io_pads_gpio_26_o_ie(dut_io_pads_gpio_26_o_ie),
1328 .io_pads_gpio_26_o_pue(dut_io_pads_gpio_26_o_pue),
1329 .io_pads_gpio_26_o_ds(dut_io_pads_gpio_26_o_ds),
1330 .io_pads_gpio_27_i_ival(dut_io_pads_gpio_27_i_ival),
1331 .io_pads_gpio_27_o_oval(dut_io_pads_gpio_27_o_oval),
1332 .io_pads_gpio_27_o_oe(dut_io_pads_gpio_27_o_oe),
1333 .io_pads_gpio_27_o_ie(dut_io_pads_gpio_27_o_ie),
1334 .io_pads_gpio_27_o_pue(dut_io_pads_gpio_27_o_pue),
1335 .io_pads_gpio_27_o_ds(dut_io_pads_gpio_27_o_ds),
1336 .io_pads_gpio_28_i_ival(dut_io_pads_gpio_28_i_ival),
1337 .io_pads_gpio_28_o_oval(dut_io_pads_gpio_28_o_oval),
1338 .io_pads_gpio_28_o_oe(dut_io_pads_gpio_28_o_oe),
1339 .io_pads_gpio_28_o_ie(dut_io_pads_gpio_28_o_ie),
1340 .io_pads_gpio_28_o_pue(dut_io_pads_gpio_28_o_pue),
1341 .io_pads_gpio_28_o_ds(dut_io_pads_gpio_28_o_ds),
1342 .io_pads_gpio_29_i_ival(dut_io_pads_gpio_29_i_ival),
1343 .io_pads_gpio_29_o_oval(dut_io_pads_gpio_29_o_oval),
1344 .io_pads_gpio_29_o_oe(dut_io_pads_gpio_29_o_oe),
1345 .io_pads_gpio_29_o_ie(dut_io_pads_gpio_29_o_ie),
1346 .io_pads_gpio_29_o_pue(dut_io_pads_gpio_29_o_pue),
1347 .io_pads_gpio_29_o_ds(dut_io_pads_gpio_29_o_ds),
1348 .io_pads_gpio_30_i_ival(dut_io_pads_gpio_30_i_ival),
1349 .io_pads_gpio_30_o_oval(dut_io_pads_gpio_30_o_oval),
1350 .io_pads_gpio_30_o_oe(dut_io_pads_gpio_30_o_oe),
1351 .io_pads_gpio_30_o_ie(dut_io_pads_gpio_30_o_ie),
1352 .io_pads_gpio_30_o_pue(dut_io_pads_gpio_30_o_pue),
1353 .io_pads_gpio_30_o_ds(dut_io_pads_gpio_30_o_ds),
1354 .io_pads_gpio_31_i_ival(dut_io_pads_gpio_31_i_ival),
1355 .io_pads_gpio_31_o_oval(dut_io_pads_gpio_31_o_oval),
1356 .io_pads_gpio_31_o_oe(dut_io_pads_gpio_31_o_oe),
1357 .io_pads_gpio_31_o_ie(dut_io_pads_gpio_31_o_ie),
1358 .io_pads_gpio_31_o_pue(dut_io_pads_gpio_31_o_pue),
1359 .io_pads_gpio_31_o_ds(dut_io_pads_gpio_31_o_ds),
1360 .io_pads_qspi_sck_i_ival(dut_io_pads_qspi_sck_i_ival),
1361 .io_pads_qspi_sck_o_oval(dut_io_pads_qspi_sck_o_oval),
1362 .io_pads_qspi_sck_o_oe(dut_io_pads_qspi_sck_o_oe),
1363 .io_pads_qspi_sck_o_ie(dut_io_pads_qspi_sck_o_ie),
1364 .io_pads_qspi_sck_o_pue(dut_io_pads_qspi_sck_o_pue),
1365 .io_pads_qspi_sck_o_ds(dut_io_pads_qspi_sck_o_ds),
1366 .io_pads_qspi_dq_0_i_ival(dut_io_pads_qspi_dq_0_i_ival),
1367 .io_pads_qspi_dq_0_o_oval(dut_io_pads_qspi_dq_0_o_oval),
1368 .io_pads_qspi_dq_0_o_oe(dut_io_pads_qspi_dq_0_o_oe),
1369 .io_pads_qspi_dq_0_o_ie(dut_io_pads_qspi_dq_0_o_ie),
1370 .io_pads_qspi_dq_0_o_pue(dut_io_pads_qspi_dq_0_o_pue),
1371 .io_pads_qspi_dq_0_o_ds(dut_io_pads_qspi_dq_0_o_ds),
1372 .io_pads_qspi_dq_1_i_ival(dut_io_pads_qspi_dq_1_i_ival),
1373 .io_pads_qspi_dq_1_o_oval(dut_io_pads_qspi_dq_1_o_oval),
1374 .io_pads_qspi_dq_1_o_oe(dut_io_pads_qspi_dq_1_o_oe),
1375 .io_pads_qspi_dq_1_o_ie(dut_io_pads_qspi_dq_1_o_ie),
1376 .io_pads_qspi_dq_1_o_pue(dut_io_pads_qspi_dq_1_o_pue),
1377 .io_pads_qspi_dq_1_o_ds(dut_io_pads_qspi_dq_1_o_ds),
1378 .io_pads_qspi_dq_2_i_ival(dut_io_pads_qspi_dq_2_i_ival),
1379 .io_pads_qspi_dq_2_o_oval(dut_io_pads_qspi_dq_2_o_oval),
1380 .io_pads_qspi_dq_2_o_oe(dut_io_pads_qspi_dq_2_o_oe),
1381 .io_pads_qspi_dq_2_o_ie(dut_io_pads_qspi_dq_2_o_ie),
1382 .io_pads_qspi_dq_2_o_pue(dut_io_pads_qspi_dq_2_o_pue),
1383 .io_pads_qspi_dq_2_o_ds(dut_io_pads_qspi_dq_2_o_ds),
1384 .io_pads_qspi_dq_3_i_ival(dut_io_pads_qspi_dq_3_i_ival),
1385 .io_pads_qspi_dq_3_o_oval(dut_io_pads_qspi_dq_3_o_oval),
1386 .io_pads_qspi_dq_3_o_oe(dut_io_pads_qspi_dq_3_o_oe),
1387 .io_pads_qspi_dq_3_o_ie(dut_io_pads_qspi_dq_3_o_ie),
1388 .io_pads_qspi_dq_3_o_pue(dut_io_pads_qspi_dq_3_o_pue),
1389 .io_pads_qspi_dq_3_o_ds(dut_io_pads_qspi_dq_3_o_ds),
1390 .io_pads_qspi_cs_0_i_ival(dut_io_pads_qspi_cs_0_i_ival),
1391 .io_pads_qspi_cs_0_o_oval(dut_io_pads_qspi_cs_0_o_oval),
1392 .io_pads_qspi_cs_0_o_oe(dut_io_pads_qspi_cs_0_o_oe),
1393 .io_pads_qspi_cs_0_o_ie(dut_io_pads_qspi_cs_0_o_ie),
1394 .io_pads_qspi_cs_0_o_pue(dut_io_pads_qspi_cs_0_o_pue),
1395 .io_pads_qspi_cs_0_o_ds(dut_io_pads_qspi_cs_0_o_ds),
1396 .io_pads_aon_erst_n_i_ival(dut_io_pads_aon_erst_n_i_ival),
1397 .io_pads_aon_erst_n_o_oval(dut_io_pads_aon_erst_n_o_oval),
1398 .io_pads_aon_erst_n_o_oe(dut_io_pads_aon_erst_n_o_oe),
1399 .io_pads_aon_erst_n_o_ie(dut_io_pads_aon_erst_n_o_ie),
1400 .io_pads_aon_erst_n_o_pue(dut_io_pads_aon_erst_n_o_pue),
1401 .io_pads_aon_erst_n_o_ds(dut_io_pads_aon_erst_n_o_ds),
1402 .io_pads_aon_lfextclk_i_ival(dut_io_pads_aon_lfextclk_i_ival),
1403 .io_pads_aon_lfextclk_o_oval(dut_io_pads_aon_lfextclk_o_oval),
1404 .io_pads_aon_lfextclk_o_oe(dut_io_pads_aon_lfextclk_o_oe),
1405 .io_pads_aon_lfextclk_o_ie(dut_io_pads_aon_lfextclk_o_ie),
1406 .io_pads_aon_lfextclk_o_pue(dut_io_pads_aon_lfextclk_o_pue),
1407 .io_pads_aon_lfextclk_o_ds(dut_io_pads_aon_lfextclk_o_ds),
1408 .io_pads_aon_pmu_dwakeup_n_i_ival(dut_io_pads_aon_pmu_dwakeup_n_i_ival),
1409 .io_pads_aon_pmu_dwakeup_n_o_oval(dut_io_pads_aon_pmu_dwakeup_n_o_oval),
1410 .io_pads_aon_pmu_dwakeup_n_o_oe(dut_io_pads_aon_pmu_dwakeup_n_o_oe),
1411 .io_pads_aon_pmu_dwakeup_n_o_ie(dut_io_pads_aon_pmu_dwakeup_n_o_ie),
1412 .io_pads_aon_pmu_dwakeup_n_o_pue(dut_io_pads_aon_pmu_dwakeup_n_o_pue),
1413 .io_pads_aon_pmu_dwakeup_n_o_ds(dut_io_pads_aon_pmu_dwakeup_n_o_ds),
1414 .io_pads_aon_pmu_vddpaden_i_ival(dut_io_pads_aon_pmu_vddpaden_i_ival),
1415 .io_pads_aon_pmu_vddpaden_o_oval(dut_io_pads_aon_pmu_vddpaden_o_oval),
1416 .io_pads_aon_pmu_vddpaden_o_oe(dut_io_pads_aon_pmu_vddpaden_o_oe),
1417 .io_pads_aon_pmu_vddpaden_o_ie(dut_io_pads_aon_pmu_vddpaden_o_ie),
1418 .io_pads_aon_pmu_vddpaden_o_pue(dut_io_pads_aon_pmu_vddpaden_o_pue),
1419 .io_pads_aon_pmu_vddpaden_o_ds(dut_io_pads_aon_pmu_vddpaden_o_ds)
1422 // Assign reasonable values to otherwise unconnected inputs to chip top
1424 wire iobuf_dwakeup_o;
1428 .IBUF_LOW_PWR("TRUE"),
1429 .IOSTANDARD("DEFAULT"),
1434 .O(iobuf_dwakeup_o),
1436 .I(~dut_io_pads_aon_pmu_dwakeup_n_o_oval),
1437 .T(~dut_io_pads_aon_pmu_dwakeup_n_o_oe)
1439 assign dut_io_pads_aon_pmu_dwakeup_n_i_ival = (~iobuf_dwakeup_o) & dut_io_pads_aon_pmu_dwakeup_n_o_ie;
1441 assign dut_io_pads_aon_erst_n_i_ival = ~reset_periph;
1442 assign dut_io_pads_aon_lfextclk_i_ival = slowclk;
1444 assign dut_io_pads_aon_pmu_vddpaden_i_ival = 1'b1;
1446 assign qspi_cs = dut_io_pads_qspi_cs_0_o_oval;
1447 assign qspi_ui_dq_o = {
1448 dut_io_pads_qspi_dq_3_o_oval,
1449 dut_io_pads_qspi_dq_2_o_oval,
1450 dut_io_pads_qspi_dq_1_o_oval,
1451 dut_io_pads_qspi_dq_0_o_oval
1453 assign qspi_ui_dq_oe = {
1454 dut_io_pads_qspi_dq_3_o_oe,
1455 dut_io_pads_qspi_dq_2_o_oe,
1456 dut_io_pads_qspi_dq_1_o_oe,
1457 dut_io_pads_qspi_dq_0_o_oe
1459 assign dut_io_pads_qspi_dq_0_i_ival = qspi_ui_dq_i[0];
1460 assign dut_io_pads_qspi_dq_1_i_ival = qspi_ui_dq_i[1];
1461 assign dut_io_pads_qspi_dq_2_i_ival = qspi_ui_dq_i[2];
1462 assign dut_io_pads_qspi_dq_3_i_ival = qspi_ui_dq_i[3];
1463 assign qspi_sck = dut_io_pads_qspi_sck_o_oval;
1466 // Divide clock by 256, used to generate 32.768 kHz clock for AON block
1476 always @(posedge clk)
1483 else if (counter == 8'hff)
1486 clk_out <= ~clk_out;
1490 counter <= counter+1;