Skip to content
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

Changes that correct mgmt_core references and user_id_programming generation. #73

Merged
merged 17 commits into from
Apr 19, 2022

Conversation

d-m-bailey
Copy link
Contributor

@d-m-bailey d-m-bailey commented Apr 18, 2022

mgmt_core_wrapper: fixes #71

  • Use absolute path instead of relative path.

user_id_programming: fixes #70

  • Remove GDS references as GDS is no longer modified.
  • Corrected string concatenation.
  • Corrected mag data replacement.
  • Corrected verilog data replacement.

gpio_default_block: fixes #72~

  • Rename instances for gpio_default_blocks 0-4 in caravel.mag and caravan.mag.
  • Change replace range in gen_gpio_defaults.py to handle gpio_default_blocks 0-4.

d-m-bailey and others added 14 commits December 24, 2021 11:36
Initial steps for LVS and CVC-RV for MPW-4 slot-002
diode and short errors
`simple_por` changes to `caravel.v`
…t_core references.

mgmt_core_wrapper
  Use absolute path instead of relative path.

user_id_programming
  Remove GDS references as GDS is no longer modified.
  Corrected string concatenation.
  Corrected mag data replacement.
  Corrected verilog data replacement.

gpio_default_block
  Rename instances for gpio_default_blocks 0-4 in caravel.mag and caravan.mag.
  Change replace range in gen_gpio_defaults.py to handle gpio_default_blocks 0-4.
Copy link
Contributor

@RTimothyEdwards RTimothyEdwards left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some fixes have already been made in another pull request, so these changes will have to be reviewed individually and merged by cherry-picking.

@d-m-bailey
Copy link
Contributor Author

I'll revert the gpio_default_block changes.

@d-m-bailey d-m-bailey changed the title Changes that correct gpio_default_block, user_id_programming, and mgmt_core references. Changes that correct mgmt_core references and user_id_programming generation. Apr 18, 2022
@RTimothyEdwards
Copy link
Contributor

Thanks. I made a quick pass over the rest and they look good, but I'm doing a few fixes to Caravan and I'll try to get your pull request reviewed and queued up for a merge next.

Copy link
Contributor

@RTimothyEdwards RTimothyEdwards left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Makefile lines 125 and 177: I agree that the path should not be relative, which makes it depend on the management core wrapper being cloned into or linked from caravel, but it should be $(MCW_ROOT), which is the path to the management core wrapper repository, not $(UPRJ_ROOT), which is the user project repository.

@RTimothyEdwards
Copy link
Contributor

@d-m-bailey : If you can make that one correction, I can go ahead and approve this for a merge, because there are no conflicts with the pull request I'm currently working on.

Copy link
Contributor

@RTimothyEdwards RTimothyEdwards left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me.

@RTimothyEdwards
Copy link
Contributor

@jeffdi : Please merge this pull request.

@d-m-bailey
Copy link
Contributor Author

@RTimothyEdwards Changed UPRJ_ROOT/mgmt_core_wrapper to MCW_ROOT for mgmt_core_wrapper gds path.

There's also an (apparently) unused MGMT_AREA_ROOT variable in a couple makefiles.

@d-m-bailey
Copy link
Contributor Author

@jeffdi @RTimothyEdwards Can you wait on this?

It's not only moving the licon, but also the met1 and via at the same locations!

user_id_programming_no_via

@RTimothyEdwards
Copy link
Contributor

@jeffdi : Mitch is right; the original reason for using the GDS was that it was a bit simpler to alter the contacts, since in magic the contact can't just be moved; it has to be replaced by the overlapping metals or else it will leave empty space behind. @d-m-bailey : I understand the issue and I just need to make a modification to the .mag file to ensure that there is redundant metal over the area of the via in the file so that when the via is moved, the metal will remain. I suggest that @jeffdi go ahead and merge the pull request anyway, and I will fix the .mag file early tomorrow.

@jeffdi jeffdi merged commit 6f99301 into efabless:main Apr 19, 2022
@jeffdi
Copy link
Collaborator

jeffdi commented Apr 19, 2022 via email

@d-m-bailey
Copy link
Contributor Author

@RTimothyEdwards Currently, scripts/set_user_id.py does a global replace on the coordinates of the vialis. Unfortunately, also moves via1 and other shapes at the exact same location. I tried replacing just the first instance and that fixed some of the problems, but not where there is only viali (as you mentioned).

@d-m-bailey
Copy link
Contributor Author

@RTimothyEdwards Looks like the global replace of coordinates moved via1 also, but since there was no metal2, the via1 disappears. Here's the results of replacing only the first occurrence of the target coordinate. Missing metal drops from 14 to 8. Attempting to fix by adding metal1 programatically.
user_id_partial_fix

RTimothyEdwards added a commit that referenced this pull request Apr 19, 2022
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.
jeffdi pushed a commit that referenced this pull request Apr 20, 2022
…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>
M0stafaRady pushed a commit that referenced this pull request Sep 30, 2022
…eration. (#73)

* Create lvs-cvc.rst

* user_project_analog_wrapper -> user_analog_project_wrapper

* Added table

* Update lvs-cvc.rst

* Create lvs_cvc_mpw4.rst

Initial steps for LVS and CVC-RV for MPW-4 slot-002

* Update lvs_cvc_mpw4.rst

diode and short errors

* daily progress

`simple_por` changes to `caravel.v`

* Update lvs_cvc_mpw4.rst

* Remove old local documentation.

* Changes that correct gpio_default_block, user_id_programming, and mgmt_core references.

mgmt_core_wrapper
  Use absolute path instead of relative path.

user_id_programming
  Remove GDS references as GDS is no longer modified.
  Corrected string concatenation.
  Corrected mag data replacement.
  Corrected verilog data replacement.

gpio_default_block
  Rename instances for gpio_default_blocks 0-4 in caravel.mag and caravan.mag.
  Change replace range in gen_gpio_defaults.py to handle gpio_default_blocks 0-4.

* Revert changes related to gpio_default_block.

* Changed mgmt_core_wrapper absolute path from UPRJ_ROOT to MCW_ROOT.

* Corrected MCW_ROOT path (includes mgmt_core_wrapper)
M0stafaRady pushed a commit that referenced this pull request Sep 30, 2022
…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>
@RTimothyEdwards RTimothyEdwards added error Something isn't working flow Makefile or in-repository flow script changed labels Oct 4, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
error Something isn't working flow Makefile or in-repository flow script changed
Projects
None yet
3 participants