@@ -60,26 +60,15 @@ module top_chip_asic (
6060 inout IO54 ,
6161 inout IO55 ,
6262 inout IO56 ,
63- inout IO57 ,
64- inout IO58 ,
65- inout IO59 ,
66- inout IO60 ,
67- inout IO61 ,
68- inout IO62 ,
69- inout IO63 ,
70- inout IO64 ,
71- inout IO65 ,
72- inout IO66 ,
73- inout IO67 ,
7463
7564 // Dedicated Pads
7665 inout USB_P ,
7766 inout USB_N
7867);
79- localparam int NPads = 70 ;
68+ localparam int NPads = 59 ;
8069
81- localparam int PadUsbP = 68 ;
82- localparam int PadUsbN = 69 ;
70+ localparam int PadUsbP = 57 ;
71+ localparam int PadUsbN = 58 ;
8372
8473 wire clk_sys, clk_peri, clk_usb, clk_aon;
8574 wire rst_sys_n, rst_peri_n, rst_usb_n, rst_aon_n;
@@ -315,63 +304,79 @@ module top_chip_asic (
315304 pad_out = '0 ;
316305 pad_oe = '0 ;
317306
307+ // gpio
318308 cio_gpio_i = pad_in[31 : 0 ];
319309 pad_out[31 : 0 ] = cio_gpio_o;
320310 pad_oe[31 : 0 ] = cio_gpio_en_o;
321311
312+ // i2c0
322313 cio_i2c0_sda_i = pad_in[32 ];
314+ pad_out[32 ] = cio_i2c0_sda_o;
315+ pad_oe[32 ] = cio_i2c0_sda_en_o;
316+
323317 cio_i2c0_scl_i = pad_in[33 ];
318+ pad_out[33 ] = cio_i2c0_scl_o;
319+ pad_oe[33 ] = cio_i2c0_scl_en_o;
324320
325- pad_out[ 34 ] = cio_i2c0_sda_o;
326- pad_oe[ 34 ] = cio_i2c0_sda_en_o ;
327- pad_out[35 ] = cio_i2c0_scl_o ;
328- pad_oe[35 ] = cio_i2c0_scl_en_o ;
321+ // i2c1
322+ cio_i2c1_sda_i = pad_in[ 34 ] ;
323+ pad_out[34 ] = cio_i2c1_sda_o ;
324+ pad_oe[34 ] = cio_i2c1_sda_en_o ;
329325
330- cio_i2c1_sda_i = pad_in[36 ];
331- cio_i2c1_scl_i = pad_in[37 ];
326+ cio_i2c1_scl_i = pad_in[35 ];
327+ pad_out[35 ] = cio_i2c1_scl_o;
328+ pad_oe[35 ] = cio_i2c1_scl_en_o;
332329
333- pad_out[ 38 ] = cio_i2c1_sda_o;
334- pad_oe[ 38 ] = cio_i2c1_sda_en_o ;
335- pad_out[39 ] = cio_i2c1_scl_o ;
336- pad_oe[39 ] = cio_i2c1_scl_en_o ;
330+ // spi0
331+ cio_spi_host0_sd_i = pad_in[ 39 : 36 ] ;
332+ pad_out[39 : 36 ] = cio_spi_host0_sd_o ;
333+ pad_oe[39 : 36 ] = cio_spi_host0_sd_en_o ;
337334
338- cio_spi_host0_sd_i = pad_in[42 : 39 ];
335+ pad_out[40 ] = cio_spi_host0_sck_o;
336+ pad_oe[40 ] = cio_spi_host0_sck_en_o;
339337
340- pad_out[43 ] = cio_spi_host0_sck_o;
341- pad_oe[43 ] = cio_spi_host0_sck_en_o;
342- pad_out[44 ] = cio_spi_host0_csb_o;
343- pad_oe[44 ] = cio_spi_host0_csb_en_o;
344- pad_out[48 : 45 ] = cio_spi_host0_sd_o;
345- pad_oe[48 : 45 ] = cio_spi_host0_sd_en_o;
338+ pad_out[41 ] = cio_spi_host0_csb_o;
339+ pad_oe[41 ] = cio_spi_host0_csb_en_o;
346340
347- cio_spi_host1_sd_i = pad_in[52 : 49 ];
341+ // spi1
342+ cio_spi_host1_sd_i = pad_in[45 : 42 ];
343+ pad_out[45 : 42 ] = cio_spi_host1_sd_o;
344+ pad_oe[45 : 42 ] = cio_spi_host1_sd_en_o;
348345
349- pad_out[53 ] = cio_spi_host1_sck_o;
350- pad_oe[53 ] = cio_spi_host1_sck_en_o;
351- pad_out[54 ] = cio_spi_host1_csb_o;
352- pad_oe[54 ] = cio_spi_host1_csb_en_o;
353- pad_out[58 : 55 ] = cio_spi_host1_sd_o;
354- pad_oe[58 : 55 ] = cio_spi_host1_sd_en_o;
346+ pad_out[46 ] = cio_spi_host1_sck_o;
347+ pad_oe[46 ] = cio_spi_host1_sck_en_o;
355348
356- cio_uart0_rx_i = pad_in[59 ];
357- pad_out[60 ] = cio_uart0_tx_o;
358- pad_oe[60 ] = cio_uart0_tx_en_o;
349+ pad_out[47 ] = cio_spi_host1_csb_o;
350+ pad_oe[47 ] = cio_spi_host1_csb_en_o;
359351
360- cio_uart1_rx_i = pad_in[61 ];
361- pad_out[62 ] = cio_uart1_tx_o;
362- pad_oe[62 ] = cio_uart1_tx_en_o;
352+ // uart0
353+ cio_uart0_rx_i = pad_in[48 ];
363354
364- cio_usbdev_sense_i = pad_in[63 ];
365- // no output driver required.
355+ pad_out[49 ] = cio_uart0_tx_o;
356+ pad_oe[49 ] = cio_uart0_tx_en_o;
357+
358+ // uart1
359+ cio_uart1_rx_i = pad_in[50 ];
360+
361+ pad_out[51 ] = cio_uart1_tx_o;
362+ pad_oe[51 ] = cio_uart1_tx_en_o;
363+
364+ // pattgen
365+ pad_out[52 ] = cio_pattgen_pda0_tx_o;
366+ pad_oe[52 ] = cio_pattgen_pda0_tx_en_o;
366367
367- pad_out[64 ] = cio_pattgen_pda0_tx_o;
368- pad_oe[64 ] = cio_pattgen_pda0_tx_en_o;
369- pad_out[65 ] = cio_pattgen_pcl0_tx_o;
370- pad_oe[65 ] = cio_pattgen_pcl0_tx_en_o;
371- pad_out[66 ] = cio_pattgen_pda1_tx_o;
372- pad_oe[66 ] = cio_pattgen_pda1_tx_en_o;
373- pad_out[67 ] = cio_pattgen_pcl1_tx_o;
374- pad_oe[67 ] = cio_pattgen_pcl1_tx_en_o;
368+ pad_out[53 ] = cio_pattgen_pcl0_tx_o;
369+ pad_oe[53 ] = cio_pattgen_pcl0_tx_en_o;
370+
371+ pad_out[54 ] = cio_pattgen_pda1_tx_o;
372+ pad_oe[54 ] = cio_pattgen_pda1_tx_en_o;
373+
374+ pad_out[55 ] = cio_pattgen_pcl1_tx_o;
375+ pad_oe[55 ] = cio_pattgen_pcl1_tx_en_o;
376+
377+ // usbdev
378+ cio_usbdev_sense_i = pad_in[56 ];
379+ // no output driver required.
375380
376381 // USB_P/N may require special treatment beyond the drive strength.
377382 pad_out[PadUsbP] = cio_usbdev_usb_dp_o;
@@ -389,17 +394,6 @@ module top_chip_asic (
389394 USB_N ,
390395 USB_P ,
391396
392- IO67 ,
393- IO66 ,
394- IO65 ,
395- IO64 ,
396- IO63 ,
397- IO62 ,
398- IO61 ,
399- IO60 ,
400- IO59 ,
401- IO58 ,
402- IO57 ,
403397 IO56 ,
404398 IO55 ,
405399 IO54 ,
0 commit comments