Skip to content

Commit

Permalink
Numerous bug fixes, ending in clean full LVS for both caravel and car…
Browse files Browse the repository at this point in the history
…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>
  • Loading branch information
RTimothyEdwards and RTimothyEdwards committed Apr 20, 2022
1 parent de6f983 commit 1621b81
Show file tree
Hide file tree
Showing 15 changed files with 1,174 additions and 1,252 deletions.
30 changes: 21 additions & 9 deletions mag/.magicrc
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,24 @@
#
# SPDX-License-Identifier: Apache-2.0

puts stdout "Sourcing design .magicrc for technology $::env(PDK) ..."
# Allow override of PDK path from environment variable PDKPATH. Failing
# that, fall back on definitions of PDK_ROOT and PDK. If either of those
# fails, substitute a default. If PDKPATH has been specified, then get
# PDK_VARIANT from the tail of PDKPATH.

if {[catch {set PDKPATH $env(PDKPATH)}]} {
if {[catch {set PDK_ROOT $env(PDK_ROOT)}]} {
set PDK_ROOT /usr/share/pdk
}
if {[catch {set PDK_VARIANT $env(PDK)}]} {
set PDK_VARIANT sky130A
}
set PDKPATH ${PDK_ROOT}/${PDK_VARIANT}
} else {
set PDK_VARIANT [file tail ${PDKPATH}]
}

puts stdout "Sourcing design .magicrc for technology $PDK_VARIANT ..."

# Put grid on 0.005 pitch. This is important, as some commands don't
# rescale the grid automatically (such as lef read?).
Expand All @@ -27,19 +44,14 @@ if {[lindex $scalefac 1] < 2} {
drc off
drc euclidean on

# Allow override of PDK path from environment variable PDKPATH
if {[catch {set PDKPATH $env(PDKPATH)}]} {
set PDKPATH "$::env(PDK_ROOT)/$::env(PDK)"
}

# loading technology
tech load $PDKPATH/libs.tech/magic/$::env(PDK).tech
tech load $PDKPATH/libs.tech/magic/${PDK_VARIANT}.tech

# load device generator
source $PDKPATH/libs.tech/magic/$::env(PDK).tcl
source $PDKPATH/libs.tech/magic/${PDK_VARIANT}.tcl

# load bind keys (optional)
# source $PDKPATH/libs.tech/magic/$::env(PDK)-BindKeys
# source $PDKPATH/libs.tech/magic/${PDK_VARIANT}-BindKeys

# set units to lambda grid
snap lambda
Expand Down
Loading

0 comments on commit 1621b81

Please sign in to comment.