mirror of https://github.com/efabless/caravel.git
Fixes to caravan for LVS and ERC (#330)
* Corrected missing part of porb_h route in the caravan chip_io_alt layout. Correcting the indexing of the "mprj_io_one" connections to "mgmt_io_oeb" on the left-hand side of caravan, as they were connecting back to the right side and making a mess of wiring, instead of being wired locally directly to the nearest I/O. * Apply automatic changes to Manifest and README.rst * Corrected the unconnected mgmt_io_in inputs to housekeeping on the caravan chip (which correspond to the GPIOs that do not exist in caravan) by connecting them to the "zero" outputs of the closest GPIO control blocks. * Apply automatic changes to Manifest and README.rst Co-authored-by: RTimothyEdwards <RTimothyEdwards@users.noreply.github.com>
This commit is contained in:
parent
7db65f3e32
commit
d9260dc533
1716
mag/chip_io_alt.mag
1716
mag/chip_io_alt.mag
File diff suppressed because it is too large
Load Diff
2
manifest
2
manifest
|
@ -5,7 +5,7 @@ cf40562ae6508f3dc5e81420e31f7b5886dc3c8f verilog/rtl/__user_analog_project_wrap
|
||||||
5f8e2d6670ce912bc209201d23430f62730e2627 verilog/rtl/__user_project_la_example.v
|
5f8e2d6670ce912bc209201d23430f62730e2627 verilog/rtl/__user_project_la_example.v
|
||||||
cc82a78753f5f5d0a1519bd81adbcff8a4296d91 verilog/rtl/__user_project_wrapper.v
|
cc82a78753f5f5d0a1519bd81adbcff8a4296d91 verilog/rtl/__user_project_wrapper.v
|
||||||
3c8c04f53b2848dc46132cda82c614e06e56571b verilog/rtl/buff_flash_clkrst.v
|
3c8c04f53b2848dc46132cda82c614e06e56571b verilog/rtl/buff_flash_clkrst.v
|
||||||
2a5a008b29a1f494010e9245d56dbefd770e61f0 verilog/rtl/caravan.v
|
371591b55351ff43e55a0cefeeeee34c8ac87b80 verilog/rtl/caravan.v
|
||||||
06e92151b5928e3f28e30a5cde76f7dd6530ed91 verilog/rtl/caravan_netlists.v
|
06e92151b5928e3f28e30a5cde76f7dd6530ed91 verilog/rtl/caravan_netlists.v
|
||||||
a3d12a2d2d3596800bec47d1266dce2399a2fcc6 verilog/rtl/caravan_openframe.v
|
a3d12a2d2d3596800bec47d1266dce2399a2fcc6 verilog/rtl/caravan_openframe.v
|
||||||
b532b4c6315c29fd19fe38ac221b6fc41e6f5ecb verilog/rtl/caravan_power_routing.v
|
b532b4c6315c29fd19fe38ac221b6fc41e6f5ecb verilog/rtl/caravan_power_routing.v
|
||||||
|
|
|
@ -168,6 +168,7 @@ module caravan (
|
||||||
wire [`MPRJ_IO_PADS-`ANALOG_PADS-1:0] mprj_io_in_3v3;
|
wire [`MPRJ_IO_PADS-`ANALOG_PADS-1:0] mprj_io_in_3v3;
|
||||||
wire [`MPRJ_IO_PADS-`ANALOG_PADS-1:0] mprj_io_out;
|
wire [`MPRJ_IO_PADS-`ANALOG_PADS-1:0] mprj_io_out;
|
||||||
wire [`MPRJ_IO_PADS-`ANALOG_PADS-1:0] mprj_io_one;
|
wire [`MPRJ_IO_PADS-`ANALOG_PADS-1:0] mprj_io_one;
|
||||||
|
wire [7:0] mprj_io_zero;
|
||||||
|
|
||||||
// User Project Control (user-facing)
|
// User Project Control (user-facing)
|
||||||
// 27 GPIO bidirectional with in/out/oeb and a 3.3V copy of the input
|
// 27 GPIO bidirectional with in/out/oeb and a 3.3V copy of the input
|
||||||
|
@ -336,8 +337,18 @@ module caravan (
|
||||||
assign mgmt_io_out[6:0] = mgmt_io_out_hk[6:0];
|
assign mgmt_io_out[6:0] = mgmt_io_out_hk[6:0];
|
||||||
assign mgmt_io_oeb[34:0] = mgmt_io_oeb_hk[34:0];
|
assign mgmt_io_oeb[34:0] = mgmt_io_oeb_hk[34:0];
|
||||||
|
|
||||||
|
/* The following are tied to ground through the zero value */
|
||||||
|
/* outputs of the closest GPIO control blocks. Tie two */
|
||||||
|
/* inputs to one zero value output so that the wires from */
|
||||||
|
/* the GPIOs to housekeeping don't get too long. */
|
||||||
|
assign mgmt_io_in_hk[24:14] = {mprj_io_zero[5],
|
||||||
|
mprj_io_zero[4], mprj_io_zero[4],
|
||||||
|
mprj_io_zero[3], mprj_io_zero[3],
|
||||||
|
mprj_io_zero[2], mprj_io_zero[2],
|
||||||
|
mprj_io_zero[1], mprj_io_zero[1],
|
||||||
|
mprj_io_zero[0], mprj_io_zero[0]};
|
||||||
|
|
||||||
/* The following are no-connects in caravan (no associated GPIO) */
|
/* The following are no-connects in caravan (no associated GPIO) */
|
||||||
assign mgmt_io_in_hk[24:14] = mgmt_io_in[24:14];
|
|
||||||
assign mgmt_io_out[24:14] = mgmt_io_out_hk[24:14];
|
assign mgmt_io_out[24:14] = mgmt_io_out_hk[24:14];
|
||||||
|
|
||||||
gpio_signal_buffering_alt sigbuf (
|
gpio_signal_buffering_alt sigbuf (
|
||||||
|
@ -1265,7 +1276,7 @@ module caravan (
|
||||||
.mgmt_gpio_oeb(mgmt_io_oeb[1:0]),
|
.mgmt_gpio_oeb(mgmt_io_oeb[1:0]),
|
||||||
|
|
||||||
.one(mprj_io_one[1:0]),
|
.one(mprj_io_one[1:0]),
|
||||||
.zero(),
|
.zero(mprj_io_zero[1:0]),
|
||||||
|
|
||||||
// Serial data chain for pad configuration
|
// Serial data chain for pad configuration
|
||||||
.serial_data_in(gpio_serial_link_1_shifted[1:0]),
|
.serial_data_in(gpio_serial_link_1_shifted[1:0]),
|
||||||
|
@ -1319,9 +1330,8 @@ module caravan (
|
||||||
.mgmt_gpio_out(mgmt_io_out[7:2]),
|
.mgmt_gpio_out(mgmt_io_out[7:2]),
|
||||||
.mgmt_gpio_oeb(mprj_io_one[7:2]),
|
.mgmt_gpio_oeb(mprj_io_one[7:2]),
|
||||||
|
|
||||||
|
|
||||||
.one(mprj_io_one[7:2]),
|
.one(mprj_io_one[7:2]),
|
||||||
.zero(),
|
.zero(mprj_io_zero[7:2]),
|
||||||
|
|
||||||
// Serial data chain for pad configuration
|
// Serial data chain for pad configuration
|
||||||
.serial_data_in(gpio_serial_link_1_shifted[7:2]),
|
.serial_data_in(gpio_serial_link_1_shifted[7:2]),
|
||||||
|
@ -1476,9 +1486,8 @@ module caravan (
|
||||||
|
|
||||||
.mgmt_gpio_in(mgmt_io_in[(`DIG2_TOP-3):`DIG2_BOT]),
|
.mgmt_gpio_in(mgmt_io_in[(`DIG2_TOP-3):`DIG2_BOT]),
|
||||||
.mgmt_gpio_out(mgmt_io_out[(`DIG2_TOP-3):`DIG2_BOT]),
|
.mgmt_gpio_out(mgmt_io_out[(`DIG2_TOP-3):`DIG2_BOT]),
|
||||||
.mgmt_gpio_oeb(mprj_io_one[(`MPRJ_IO_PADS_2-`ANALOG_PADS_2-4):0]),
|
.mgmt_gpio_oeb(mprj_io_one[(`MPRJ_DIG_PADS-4):(`MPRJ_IO_PADS_1-`ANALOG_PADS_1)]),
|
||||||
|
.one(mprj_io_one[(`MPRJ_DIG_PADS-4):(`MPRJ_IO_PADS_1-`ANALOG_PADS_1)]),
|
||||||
.one(mprj_io_one[(`MPRJ_IO_PADS_2-`ANALOG_PADS_2-4):0]),
|
|
||||||
.zero(),
|
.zero(),
|
||||||
|
|
||||||
// Serial data chain for pad configuration
|
// Serial data chain for pad configuration
|
||||||
|
|
Loading…
Reference in New Issue