Mauricio Montanares
11/09/2022, 2:44 AM[WARNING]: OpenLane may not function properly: Container manifest not found. What this likely means is that the container is severely out of date.
child process exited abnormally
[INFO]: Using configuration in 'OpenLane/designs/SonarOnChip/config.tcl'...
[INFO]: PDK Root: /content/pdks
[INFO]: Process Design Kit: gf180mcuC
[INFO]: Standard Cell Library: gf180mcu_fd_sc_mcu7t5v0
[INFO]: Optimization Standard Cell Library: gf180mcu_fd_sc_mcu7t5v0
[INFO]: Run Directory: /content/OpenLane/designs/SonarOnChip/runs/RUN_2022.11.09_02.23.19
[INFO]: Preparing LEF files for the nom corner...
[STEP 1]
[INFO]: Running Synthesis (log: OpenLane/designs/SonarOnChip/runs/RUN_2022.11.09_02.23.19/logs/synthesis/1-synthesis.log)...
[STEP 2]
[INFO]: Running Single-Corner Static Timing Analysis (log: OpenLane/designs/SonarOnChip/runs/RUN_2022.11.09_02.23.19/logs/synthesis/2-sta.log)...
[STEP 3]
[INFO]: Running Initial Floorplanning (log: OpenLane/designs/SonarOnChip/runs/RUN_2022.11.09_02.23.19/logs/floorplan/3-initial_fp.log)...
[ERROR]: Floorplanning failed
[ERROR]: module $_DLATCH_N_ not found in /content/OpenLane/designs/SonarOnChip/runs/RUN_2022.11.09_02.23.19/tmp/merged.nom.lef
[ERROR]: Check whether EXTRA_LEFS is set appropriately
[INFO]: Saving current set of views in 'OpenLane/designs/SonarOnChip/runs/RUN_2022.11.09_02.23.19/results/final'...
[INFO]: Generating final set of reports...
[INFO]: Created manufacturability report at 'OpenLane/designs/SonarOnChip/runs/RUN_2022.11.09_02.23.19/reports/manufacturability.rpt'.
[INFO]: Created metrics report at 'OpenLane/designs/SonarOnChip/runs/RUN_2022.11.09_02.23.19/reports/metrics.csv'.
[INFO]: Saving runtime environment...
[ERROR]: Flow failed.
(.../logs/floorplan/3-initial_fp.log):
OpenROAD dc11f5970c23ff81770fcbf705737516dad90b23
This program is licensed under the BSD-3 license. See the LICENSE file for details.
Components of this program may be licensed under more restrictive licenses which must be honored.
[INFO ODB-0222] Reading LEF file: /content/OpenLane/designs/SonarOnChip/runs/RUN_2022.11.09_01.49.39/tmp/merged.nom.lef
[INFO ODB-0223] Created 13 technology layers
[INFO ODB-0224] Created 60 technology vias
[INFO ODB-0225] Created 229 library cells
[INFO ODB-0226] Finished LEF file: /content/OpenLane/designs/SonarOnChip/runs/RUN_2022.11.09_01.49.39/tmp/merged.nom.lef
Reading netlist...
[WARNING STA-0198] /content/OpenLane/designs/SonarOnChip/runs/RUN_2022.11.09_01.49.39/results/synthesis/SonarOnChip.v line 33077, module $_DLATCH_N_ not found. Creating black box for \filt.add1_reg[0] .
[WARNING ORD-1013] instance filt.add1_reg\[0\] LEF master $_DLATCH_N_ not found.
[WARNING ORD-1013] instance filt.add1_reg\[10\] LEF master $_DLATCH_N_ not found.
[WARNING ORD-1013] instance filt.add1_reg\[11\] LEF master $_DLATCH_N_ not found.
[WARNING ORD-1013] instance filt.add1_reg\[12\] LEF master $_DLATCH_N_ not found.
[WARNING ORD-1013] instance filt.add1_reg\[13\] LEF master $_DLATCH_N_ not found.
[WARNING ORD-1013] instance filt.add1_reg\[14\] LEF master $_DLATCH_N_ not found.
[WARNING ORD-1013] instance filt.add1_reg\[15\] LEF master $_DLATCH_N_ not found.
Here is an extract from lines 33077 to 33095:
\$_DLATCH_N_ \filt.add1_reg[0] /* 9733 */ (
.D(0770),
.E(0000),
.Q(\filt.add1[0] )
);
\$_DLATCH_N_ \filt.add1_reg[1] /* 9734 */ (
.D(0777),
.E(0000),
.Q(\filt.add1[1] )
);
\$_DLATCH_N_ \filt.add1_reg[2] /* 9735 */ (
.D(0778),
.E(0000),
.Q(\filt.add1[2] )
);
\$_DLATCH_N_ \filt.add1_reg[3] /* 9736 */ (
.D(0779),
.E(0000),
.Q(\filt.add1[3] )
PDK and STD_CELL_LIBRARY that I'm using are:
%env PDK=gf180mcuC
%env STD_CELL_LIBRARY=gf180mcu_fd_sc_mcu7t5v0
%env STD_CELL_LIBRARY_OPT=gf180mcu_fd_sc_mcu7t5v0
What std should be $_DLATCH_N_? is "$_DLATCH_N_" expected in the synthesis results?Vijayan Krishnan
11/09/2022, 5:42 AMMatt Liberty
11/09/2022, 1:34 PMMatt Liberty
11/09/2022, 1:35 PMMatt Liberty
11/09/2022, 1:36 PMMauricio Montanares
11/09/2022, 1:43 PMproppy
11/09/2022, 1:53 PM%env PDK_FAMILY=gf180mcu
%env PDK=gf180mcuC
!cd OpenLane && make
%env PDK_ROOT=/content/OpenLane/pdks
Tim Edwards
11/09/2022, 2:22 PMmodule \$_DLATCH_P_ (input E, input D, output Q);
gf180mcu_fd_sc_mcu7t5v0__latq_1 _TECHMAP_DLATCH_P (
//# {{data|Data Signals}}
.D(D),
.Q(Q),
//# {{clocks|Clocking}}
.GATE(E)
);
endmodule
Note that the GF process has a positive-enabled latch but no negative-enabled latch. I believe that if you have at least one of them defined, then Yosys/ABC will rework the sense of the enable as needed to be compatible with the type that you have defined.
Once you have your mapping file (call the file above, say, yosys_mapping.v
), then you just need to put that file in the openlane/<cellname>/
directory where you are running openlane, and then in that cell's config.tcl
setup file for the synthesis run, add the following line:
set ::env(SYNTH_EXTRA_MAPPING_FILE) $script_dir/yosys_mapping.v
That will tell Openlane to add the mapping file when it runs the synthesis, and everything should work as you would expect.Tim Edwards
11/09/2022, 2:24 PMMauricio Montanares
11/09/2022, 3:15 PMMatt Liberty
11/10/2022, 10:04 PMTim Edwards
11/10/2022, 10:45 PM