-
Notifications
You must be signed in to change notification settings - Fork 69
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Numerous bug fixes, ending in clean full LVS for both caravel and caravan. #76
Conversation
… the environment. (2) Fixed the user ID programming layout to not leave holes behind when the script moves the vias around (similar to the handling of the GPIO defaults block). (3) Added substrate isolation to gpio_control_block and fixed the path references to the standard cells. (4) Fixed the four missing routes on the Caravan top level. (5) Reinstated the large rendered labels for the pads on both caravel and caravan. (6) Corrected the top level gate-level netlist for caravan to add the missing pins to the management core wrapper. (7) Did the same for the caravan top level RTL. (8) Created scripts to run full LVS including extracting the management core wrapper and reading all gate-level verilog submodules. (9) Moved all of the LVS scripts to the scripts directory.
@d-m-bailey : I'd appreciate it if you could review these changes, especially around the user ID programming block. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Things you might want to take a look at.
-
In the
scripts/run_carav*_lvs_full.sh
files, thereadnet verilog
lines are all relative paths. Maybe$CARAVEL_ROOT
and$MCW_ROOT
would be better. I believe the management core is installed asmcw_core_wrapper
by default, but the scripts referencecaravel_mgmt_soc_litex
. -
The changes to
scripts/set_user_id.py
have not been included, so that will crash.
3 ) |
@jeffdi , @d-m-bailey : I don't get why |
@jeffdi : Did pull request #73 get blocked by failing the CI or something? That's what's suggested in the Actions tab. That's the only explanation I can come up with. But I don't know why github claims that #73 was merged because clearly it wasn't. It needs to be merged before this pull request can be merged. |
@d-m-bailey : I understand that the scripts are somewhat ad hoc, but my main goal was to get both projects to show LVS clean, and then move the scripts to the scripts/ directory so that they can be standardized and made more universally useful. I can raise a separate issue to get them cleaned up, preferably with a hook to the Makefile so that one can do something like "make lvs-full" to initiate a complete LVS. The simple POR fix is a separate issue, although since I can do the fix in probably an hour, max, it is well worth considering getting that done for this MPW. |
@RTimothyEdwards Haven't completed LVS yet, but these are the temporary changes I made to |
@RTimothyEdwards I had a problem trying to create a pull request where it didn't appear that the previous updates were included. Finally, this is what I did.
|
@d-m-bailey : |
@d-m-bailey : Rather than try to get Jeff to work through the merge issues, I'm just going to make the changes from PR #73 in this PR so Jeff should only need to do the one merge. |
successfully, and if merged now they will generate conflicts with this pull request in scripts/set_user_id.py. So it's easier to just manually add them to this pull request.
@RTimothyEdwards the merge suggestions weren't for Jeff, but for your local repo. |
@d-m-bailey : I am not well versed in any of the more obscure git options. Anyway, I see your point, but on my laptop I had pulled the |
Hi @RTimothyEdwards, the removal of
|
…avan. (#76) * (1) Modified the .magicrc file to set a default for PDK if not set in the environment. (2) Fixed the user ID programming layout to not leave holes behind when the script moves the vias around (similar to the handling of the GPIO defaults block). (3) Added substrate isolation to gpio_control_block and fixed the path references to the standard cells. (4) Fixed the four missing routes on the Caravan top level. (5) Reinstated the large rendered labels for the pads on both caravel and caravan. (6) Corrected the top level gate-level netlist for caravan to add the missing pins to the management core wrapper. (7) Did the same for the caravan top level RTL. (8) Created scripts to run full LVS including extracting the management core wrapper and reading all gate-level verilog submodules. (9) Moved all of the LVS scripts to the scripts directory. * Apply automatic changes to Manifest and README.rst * Made the changes from pull request #73 as they did not get merged successfully, and if merged now they will generate conflicts with this pull request in scripts/set_user_id.py. So it's easier to just manually add them to this pull request. * Apply automatic changes to Manifest and README.rst Co-authored-by: RTimothyEdwards <RTimothyEdwards@users.noreply.github.com>
(1) Modified the .magicrc file to set a default for PDK if not set in
environment. (2) Fixed the user ID programming layout to not leave holes
behind when the script moves the vias around (similar to the handling of
the GPIO defaults block). (3) Added substrate isolation to gpio_control_block
and fixed the path references to the standard cells. (4) Fixed the four
missing routes on the Caravan top level. (5) Reinstated the large rendered
labels for the pads on both caravel and caravan. (6) Corrected the top
level gate-level netlist for caravan to add the missing pins to the
management core wrapper. (7) Did the same for the caravan top level RTL.
(8) Created scripts to run full LVS including extracting the management
core wrapper and reading all gate-level verilog submodules. (9) Moved all
of the LVS scripts to the scripts directory.