Mitch Bailey
11/10/2020, 6:48 AMopen_pdks/common/foundry_install.py
and see if that makes a difference.
Change
flabrex = re.compile('flabel[ \t]+[^ \t]+[ \t]+[^ \t]+[ \t]+[^ \t]+[ \t]+[^ \t]+[ \t]+[^ \t]+[ \t]+[^ \t]+[ \t]+[^ \t]+[ \t]+[^ \t]+[ \t]+[^ \t]+[ \t]+[^ \t]+[ \t]+[^ \t]+[ \t]+[^ \t]+[ \t]+([^ \t]+)')
to
flabrex = re.compile('flabel[ \t]+.*[ \t]+([^ \t]+)[ \t]*')
And then make build-pdks
(IRCC) in the openlane
directory.
No guarantees.Bryce Readyhough
11/10/2020, 3:29 PMBryce Readyhough
11/10/2020, 3:30 PMTim Edwards
11/10/2020, 4:33 PMsky130
directory, and do make tools-a
followed by make install
. That will build and install the setup files for magic, openlane, etc., without rebuilding all the libraries from skywater-pdk. It will not affect any prior installation of the library files.Bryce Readyhough
11/10/2020, 4:55 PM4.1. Analyzing design hierarchy..
`ERROR: Module `sky130_fd_sc_hd__clkbuf_4' referenced in module `DFFRAM' in cell DOBUF[31]' does not have a port named 'VNB'.
Tim Edwards
11/10/2020, 5:14 PMBryce Readyhough
11/10/2020, 5:26 PM3. Executing Verilog-2005 frontend: /project/openlane/DFFRAM/../../verilog/rtl/DFFRAM.v
Parsing Verilog input from `/project/openlane/DFFRAM/../../verilog/rtl/DFFRAM.v' to AST representation.
Generating RTLIL representation for module `\DFFRAM'.
Successfully finished Verilog frontend.
4. Executing HIERARCHY pass (managing design hierarchy).
4.1. Analyzing design hierarchy..
ERROR: Module `sky130_fd_sc_hd__clkbuf_4' referenced in module `DFFRAM' in cell `DOBUF[31]' does not have a port named 'VNB'.
[ERROR]: during executing: "yosys -c /openLANE_flow/scripts/synth_top.tcl -l /project/openlane/DFFRAM/runs/DFFRAM/logs/synthesis/yosys.log |& tee >&@stdout"
[ERROR]: Exit code: 1
[ERROR]: Last 10 lines:
child process exited abnormally
[ERROR]: Please check yosys log file
[ERROR]: Dumping to /project/openlane/DFFRAM/runs/DFFRAM/error.log
while executing
"try_catch [get_yosys_bin] -c $::env(SYNTH_SCRIPT) -l $::env(yosys_log_file_tag).log |& tee $::env(TERMINAL_OUTPUT)"
(procedure "run_yosys" line 18)
invoked from within
"run_yosys"
(procedure "run_synthesis" line 4)
invoked from within
"run_synthesis"
(procedure "run_non_interactive_mode" line 11)
invoked from within
"run_non_interactive_mode {*}$argv"
invoked from within
"if { [info exists flags_map(-interactive)] || [info exists flags_map(-it)] } {
puts_info "Running interactively"
if { [info exists arg_values(-file)..."
(file "/openLANE_flow/flow.tcl" line 164)
make: *** [Makefile:26: DFFRAM] Error 1
Mitch Bailey
11/10/2020, 8:57 PMmake build-pdk
from the openlane directory.
@Tim Edwards Looks like someone has created a makefile in the top of the openlane repo that, in theory, will build the open130A pdk. https://github.com/efabless/openlane/blob/master/Makefile
@Anish Did you get anything to work?Mitch Bailey
11/10/2020, 9:17 PMBryce Readyhough
11/10/2020, 9:25 PMmake build-pdk
did run however I am unfortunately still hitting the same error in part 4.1 of the make
operation for Caravel.Mitch Bailey
11/10/2020, 9:52 PMBryce Readyhough
11/10/2020, 10:03 PMMitch Bailey
11/10/2020, 10:12 PMAnish
11/10/2020, 10:41 PMMitch Bailey
11/10/2020, 11:22 PMAnish
11/10/2020, 11:23 PMAnish
11/10/2020, 11:23 PMBryce Readyhough
11/10/2020, 11:25 PMAnish
11/10/2020, 11:36 PMBryce Readyhough
11/10/2020, 11:37 PMMitch Bailey
11/10/2020, 11:46 PMopen_pdks: c2662b9
skywater-pdk: 9fcfb4c
and after the fix to foundry_install.py
clkbuf_4
in sky130A/libs.ref/sky130_fd_sc_hd/lef/sky130_fd_sc_hd.lef
has the VNB pin.
Does this help?Anish
11/10/2020, 11:53 PMAnish
11/10/2020, 11:53 PMsky130A/libs.ref/sky130_fd_sc_hd/lef/sky130_fd_sc_hd.lef
has VNB nowAnish
11/10/2020, 11:53 PMskywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkbuf/sky130_fd_sc_hd__clkbuf_4.lef
doesn'tAnish
11/10/2020, 11:53 PMMitch Bailey
11/11/2020, 1:52 AMskywater-pdk
doesn't include the VPB, VNB pins. Those appear to be added or regenerated in the make build-pdk
step of openlane's Makefile
.
Sorry for any confusion.
@Anish @Bryce Readyhough Can you verify that make digital_pll
works?
From what I could tell, the DFFRAM.v file has issues.
1. The standard cells have power definitions which are unexpected (VGND, VPWR, VNB, VPB).
2. Even removing those, the definitions for MUX1 and other macros appear to be missing.Anish
11/11/2020, 2:15 AMMitch Bailey
11/11/2020, 2:52 AMTim Edwards
11/11/2020, 3:36 AMMitch Bailey
11/11/2020, 3:55 AMcaravel/openlane
directory contains a Makefile
that (by default) tries to run openlane on all directories with a config.tcl
file. Looks like this directory might contain the caravel macros.
@Ahmed Ghazy Is there any documentation on how to use openlane to incorporate a RTL design and the caravel data or does that have to be done manually?Ahmed Ghazy
11/13/2020, 10:50 AMAhmed Ghazy
11/13/2020, 10:50 AMMitch Bailey
11/13/2020, 11:01 AMMitch Bailey
11/13/2020, 12:53 PMcaravel/openlane
directory, run make user_project_wrapper
, and get the gds for a full test chip?Ahmed Ghazy
11/13/2020, 1:39 PMmake user_proj_example
make user_project_wrapper
make digital_pll
make DFFRAM
make mgmt_core
make storage
make mgmt_protect
make simple_por
make user_id_programming
make chip_io
make caravel
You may run into issues with the RTL that I am working on locally (e.g., cell name missing the size _1
). I will push those as soon as I can.
Let me know if you have trouble running the above. I used rc5 (currentt develop branch) of openlane.Ahmed Ghazy
11/13/2020, 1:41 PMuser_project_wrapper
and regenerate the GDS.Bryce Readyhough
11/13/2020, 6:53 PMmake user_project_wrapper.
The issue is with the placement step. The error suggests decreasing the init_density_penalty
value. Do you know where this value is located to adjust? I have pasted the full error below:Bryce Readyhough
11/13/2020, 6:54 PM[INFO] FillerInit: NumGCells = 1
[INFO] FillerInit: NumGNets = 613
[INFO] FillerInit: NumGPins = 1225
[INFO] TargetDensity = 0.005000
[INFO] AveragePlaceInstArea = 62500000000
[INFO] IdealBinArea = 12500000047104
[INFO] IdealBinCnt = 0
[INFO] TotalBinArea = 9887532928000
[INFO] BinCnt = (2048, 2048)
[INFO] BinSize = (1313, 1796)
[INFO] NumBins = 4194304
[NesterovSolve] Iter: 1 overflow: 0 HPWL: 802728718
[NesterovSolve] Iter: 10 overflow: 0 HPWL: 802728540
[NesterovSolve] Iter: 20 overflow: 0 HPWL: 802728540
[ERROR] RePlAce divergence detected.
Please decrease init_density_penalty value (REPL-3)
Error: RePlAce terminated with errors.
[ERROR]: Failure in global placement
while executing
"global_placement_or"
(procedure "run_floorplan" line 23)
invoked from within
"run_floorplan"
(procedure "run_non_interactive_mode" line 12)
invoked from within
"run_non_interactive_mode {*}$argv"
invoked from within
"if { [info exists flags_map(-interactive)] || [info exists flags_map(-it)] } {
puts_info "Running interactively"
if { [info exists arg_values(-file)..."
(file "/openLANE_flow/flow.tcl" line 164)
make: *** [Makefile:26: user_project_wrapper] Error 1
Ahmed Ghazy
11/13/2020, 8:03 PMmake user_proj_example
.Ahmed Ghazy
11/13/2020, 8:03 PMBryce Readyhough
11/13/2020, 8:04 PMmake user_project_wrapper
which failed with the above errors.Bryce Readyhough
11/13/2020, 8:19 PMet ::env(PL_TARGET_DENSITY)
from 0.001 to something significantly larger like 0.9 solves the above error and the process progresses further before failing for a different reason. I am not sure if that is helpful but that is just an observation I have made.Bryce Readyhough
11/13/2020, 8:22 PMset ::env(PL_TARGET_DENSITY)
in the config.tcl file for user_project_wrapper.Astria Nur Irfansyah
11/17/2020, 4:33 AMmake user_proj_example
, and replacing the value of set ::env(PL_TARGET_DESNSITY)
from 0.15 to 0.2 in the config.tcl file seems to fix the problem. Is there any guidance on the choice of this target density value?