Jorge Marin
11/03/2023, 4:43 AMMitch Bailey
11/03/2023, 1:31 PMio_oeb[7]
to logic low.
The other warnings maybe not be a problem depending on your user_defines.v
. It’s probably good practice to tie the unused io_out
high or low and the unused io_oeb
high.Jorge Marin
11/03/2023, 1:36 PMJorge Marin
11/03/2023, 1:38 PMJorge Marin
11/03/2023, 1:39 PMJorge Marin
11/03/2023, 1:43 PMJorge Marin
11/03/2023, 1:44 PMMitch Bailey
11/03/2023, 2:03 PMTim Edwards
11/03/2023, 2:10 PMJorge Marin
11/03/2023, 2:51 PMTim Edwards
11/03/2023, 2:58 PMconb
cell and connect to the OEB line from that, but yes, you should be able just to connect it directly to vssd1
.
The check was needed because we got too many projects which would fail because the user (1) did not connect OEB, and (2) did not do a top-level simulation (which would have caught the error). So the check looks at every user in/out/oeb
net in the netlist (extracted from layout, I think) and makes sure that the use of oeb
is consistent with connections to in
and out
. What each of the three pins is connected to will indicate whether the pad is intended to be used as an input, and output, or bidirectional. If the wiring is inconsistent with intended use, the pins will be flagged as an error.Jorge Marin
11/03/2023, 3:28 PMJorge Marin
11/03/2023, 5:17 PMJorge Marin
11/03/2023, 6:47 PMMitch Bailey
11/03/2023, 9:41 PMio_out
to high or low and tie unused io_oeb
to high.Jorge Marin
11/03/2023, 9:46 PMMitch Bailey
11/03/2023, 10:01 PMio_oeb
to high. The sky130 caravel_core
buffers io_out[6:0]
and io_oeb[6:0]
, so unless you connect those, you might have leak current there.Jorge Marin
11/04/2023, 1:43 PMTim Edwards
11/04/2023, 4:59 PMJorge Marin
11/04/2023, 5:18 PMjeffdi
jeffdi
Jorge Marin
11/04/2023, 9:00 PMjeffdi
jeffdi
Jorge Marin
11/04/2023, 11:16 PMomla
11/06/2023, 1:16 PMmpw-precheck
& tapeout
have been updated on the platform, feel free to try again.Jorge Marin
11/06/2023, 1:36 PMJorge Marin
11/06/2023, 3:18 PMJorge Marin
11/06/2023, 3:28 PMMitch Bailey
11/06/2023, 4:24 PMio_oeb
to high just to be safe.
> • are the io_out and io_oeb recommendations also valid for functional pins 0 to 6, used for housekeeping?
Yes, definitely. Turns out that because of the distance from the user_project to the pads, these signals are actually buffered in caravel_core
before reaching the respective gpio_control_blocks. Unconnected inputs to buffers can cause leaks due to Hi-Z input because both the nmos and pmos might be on.Alfonso Cortés
11/06/2023, 8:17 PMio_oeb[x]
of a GPIO that is used as output must be connected to low
• The io_out[x]
of a GPIO that is not used as output should be connected to low or high
• The io_oeb[x]
of a GPIO that is used as input should be connected to highMitch Bailey
11/06/2023, 8:49 PMio_oeb[x]
should be low. It doesn’t have to be fixed low, because bidirectional pads are also allowed. Sometimes they’re in input mode, io_oeb[x]
is high and when in output mode, io_oeb[x]
is low.
For input gpio, the user_defines.v values for each block may cause the io_oeb value to be irrelevant, but tying high avoids the possibility of error.