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:
R. Timothy Edwards 2022-10-21 17:28:53 -04:00 committed by GitHub
parent 7db65f3e32
commit d9260dc533
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 914 additions and 827 deletions

File diff suppressed because it is too large Load Diff

View File

@ -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

View File

@ -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