Mitch Bailey
03/01/2022, 4:31 PMEP_gpio_defaults_block_0403
and
1 EP_gpio_defaults_block
while the verilog netlist has
3 gpio_defaults_block_0403
and
33 gpio_defaults_block
Are these blocks electrically equivalent or is this a non-issue for some other reason?Tim Edwards
03/11/2022, 5:59 PMscripts/gen_gpio_defaults.py
which needs to be run when the chip top level is assembled, which reads the file user_defines.v
(there is a default one in caravel/verilog/rtl
, but if there is one in the user project it is preferred, which is how the user can override the power-on defaults of the GPIO blocks). The script should modify both the gate-level verilog and the layout to create multiple unique versions of the gpio_defaults_block
for each unique configuration found in user_defines.v
. If the script has been run correctly and has done its job correctly, then the layout and the gate level verilog should match.
So from the above, it looks like the layout was converted with the script, but the gate level verilog wasn't.Matt Venn
03/11/2022, 6:03 PMMitch Bailey
03/11/2022, 6:17 PMTim Edwards
03/11/2022, 7:17 PMMatt Venn
03/11/2022, 7:35 PMMitch Bailey
03/11/2022, 7:42 PMMatt Venn
03/11/2022, 7:47 PMMitch Bailey
03/12/2022, 4:16 AMcaravel.v
from the caravel repo because I couldn't find that file or the other caravel verilog files in https://foss-eda-tools.googlesource.com/third_party/shuttle/mpw-four/slot-001. @jeffdi Tim says the caravel.v
file should be automatically modified with user_project_wrapper
integration based on the values of USER_CONFIG_GPIO_*_INIT
. Specifically, the instances of gpio_defaults_block
should be changed to reflect the values of USER_CONFIG_GPIO_*_INIT
. Also won't user_id_programming.v
be different for each design too?
Are these modified versions of caravel.v
and user_id_programming.v
available for designs that have taped out?Mitch Bailey
03/12/2022, 1:16 PMcaravel.v
in the slot-001
repo. Let me try that to see if the `gpio_default_block`s match.Mitch Bailey
03/12/2022, 3:03 PMjobs/tapeout/*/outputs/verilog/gl/verilog.v
almost matches the layout. The only difference is gpio 34
< gpio_defaults_block gpio_defaults_block_34 ( #layout
---
> gpio_defaults_block_0403 gpio_defaults_block_34 ( #verilog
The 0403
in the verilog matches the default user_defines.v
, but the layout is the default layout which is 0402
.Tim Edwards
03/12/2022, 4:16 PMcaravel.v
and user_id_programming.v
are modified by the script. Note that the magic view of user_id_programming
has a GDS_FILE property in it, so there is no specific need to touch the layout except for LVS if you don't black-box it.
When you say "the only difference is gpio 34", are you referring only to slot-001
?Tim Edwards
03/12/2022, 4:18 PMuser_id_programming
block, and so all of them report back a project ID of zero when queried through the housekeeping SPI. I looked at an example project from MPW-two and it looked like the block was modified correctly, so that might have been a one-off error with ChipIgnite-one. Still, I would like to know how it went wrong.Mitch Bailey
03/12/2022, 10:15 PMslot-001
and slot-002
. They both appear to use gpio_defaults_block
(0402
) for gpio 34 for some reason.Mitch Bailey
03/13/2022, 5:50 PMcaravel.mag
file for slot-001
it appears that the instance name for gpio 34 is incorrect.
use gpio_defaults_block_0403 gpio_defaults_block_33
timestamp 1638492834
transform 1 0 8367 0 1 388400
box -38 0 6018 2224
use gpio_defaults_block gpio_defaults_defaults_block_34
gpio 33 has been replaced, but gpio 34 has an extra defaults_
in the instance name so it's not replaced. Mitch Bailey
03/14/2022, 10:18 PM