does not pass through an inverter, so that the input can remain
unconnected. Rewired the existing implementation to use an
alternative gate that has an inverting input so that the
user_gpio_out signal can be left undriven when the GPIOs are in
the management enable state. This is a simple logic refactoring
and does not change the logic function. The manual rewiring has
been confirmed by LVS, but at least one GL simulation should be
run to confirm that the logic function remains the same as before.
* Corrects four signals which were missing from the caravan top level
(management output and output enable to GPIO 0 and 1---these errors
would have prevented the houskeeping SPI from working on caravel).
Corrected RTL verilog (source of the error), GL verilog, and layout.
* Apply automatic changes to Manifest and README.rst
Co-authored-by: RTimothyEdwards <RTimothyEdwards@users.noreply.github.com>
* 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
* Changed int (truncate) to round to correct gpio_default error.
* Replace gpio_defaults_block for gpio 0-4 correctly.
Remove old versions of gpio_defaults_block 0403 and 1803.
* Removed local CVC-RV docs not ready for commit.
* Quick fix to a route that was hand-corrected from an Openlane
short but which is just shy of the minimum width for metal4.
* Apply automatic changes to Manifest and README.rst
Co-authored-by: RTimothyEdwards <RTimothyEdwards@users.noreply.github.com>
* Fixes an error in the gen_gpio_defaults.py script that is incompatible
with the use of indexed arrays for five of the gpio_defaults_block
instances. Previously this was handled by manually changing the names
in the layout file. This script avoids the need for manual modification
by directly handling the indexed notation. Also, this extends the
modifications made to the layout to include the first five defaults
blocks; otherwise, the first five defaults blocks are not changed and
the defaults will be wrong for the housekeeping SPI pins.
* 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 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>
* 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)
* - update caravan configuration
* change correct gpio_default blocks instance names
* implement powerrouting work around
* place spare logic blocks
* keep the history of runs and sym link last/final one
* - update caravan mag, def and gl views
- add fake power routing cell in the rtl as a placeholder for openlane
to prevent routing on that cell
- fix some syntax errors in chip_io_alt
- match simple_por lef pins with mag by regenerating it
* Apply automatic changes to Manifest and README.rst
* add caravan power routing lef
* - update mag and def view of caravan
- add_macro_placement for fake cell
* Added back the power routing to Caravan, fixed DRC errors, ran LVS,
corrected placement of isolated substrate regions, and replaced the
signal routing for the analog lines. Be aware that merging with
main may cause issues with the mgmt_protect.mag file and its
subcells mprj2_logic_high.mag and mprj_logic_high.mag. It may be
worth cherry-picking the files to merge and exclude those layouts.
Co-authored-by: kareem <kareem.farid@efabless.com>
Co-authored-by: kareefardi <kareefardi@users.noreply.github.com>
Co-authored-by: Jeff DiCorpo <42048757+jeffdi@users.noreply.github.com>
Still evaluating why the layout does not pass LVS like it did
previously, although all current LVS errors appear to be related
to magic's extraction of the isolated substrates, and do not
imply functional issues. Also, LVS has only been done on the
top level.
* Fix syntax error in gpio_control_block
Fixed syntax error that was only visible when running iverilog for simulation
* Apply automatic changes to Manifest and README.rst
Co-authored-by: marwaneltoukhy <marwaneltoukhy@users.noreply.github.com>
* REVERT ME: temporarily match simple_por pin in verilog with lef
* - update configs
- add patch file for power routing def
* - update the following caravel toplevel views
- gl
- mag
- def
- add caravel power routing def
* Apply automatic changes to Manifest and README.rst
* update gl mag and def for caravel
* Revert "REVERT ME: temporarily match simple_por pin in verilog with lef"
This reverts commit b70c27c69f.
* update caravel gds
* Apply automatic changes to Manifest and README.rst
* Added text and logo cells back into the caravel top level. Put an
isolated ground marker layer on the xres_buf layout. Corrected
the power supply pin names on the gate level verilog netlist of
simple_por in caravel.v. Updated the copyright block text.
Corrected DRC errors in the top level routing.
Co-authored-by: Tim Edwards <tim@opencircuitdesign.com>
* - add openlane patch file to for input buffering workaround
- update configuration of mgmt protect
* mgmt_protect updated
* mgmt_protect updated
* remove some via3 to fix power shorts
Co-authored-by: Marwan Abbas <marwan@ciic.c.catx-ext-efabless.internal>
* remove openlane dependency from pdk-with-volare
* minor fix to remove openlane dependecy
Co-authored-by: Marwan Abbas <marwan@ciic.c.catx-ext-efabless.internal>
* Corrected the issue reported on the github issue tracker (#34)
in which the use of "clocking" as an instance name in caravel and
caravan conflicts with the system verilog keyword of the same
name.
* Apply automatic changes to Manifest and README.rst
Co-authored-by: RTimothyEdwards <RTimothyEdwards@users.noreply.github.com>
getting changed by "make ship" because the build is done in a place
where the path pointer to the user_id_programming GDS still points
back to the original caravel repository, not the user project
repository. The user_id_programming GDS was removed (no longer used),
the user_id_programming.mag file was modified to remove the path
pointer to the GDS, and the set_user_id.py script was modified to
make changes directly to the user_id_programming.mag file instead of
the GDS. An additional method was added to the set_user_id.py script
to modify the gate-level verilog/gl/user_id_programming.v to make
the user ID correct for gate-level testbench simulations.