Tom
12/07/2023, 8:07 PMuser_project_wrapper.def
as a template. Openlane is failing at step 4 (IO placement) telling me that there are 416 IO pins (looks about right according to the verilog), but only 28 "positions" (not sure where this number 28 is coming from). If i look at the def. there 1134 lines with the word PORT
on them so I have no idea why I'm getting this error. Can anyone offer any insight? Thanks in advance.
OpenROAD 6f9b2bb8b808b1bb5831d4525d868212ae50517a
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]: Reading ODB at '/media/tom/Storage/Linux/repos/projects/openwave-caravel/openwave/cells/caravel/runs/RUN_2023.12.07_19.53.49/tmp/floorplan/3-initial_fp.odb'…
define_corners Typical
read_liberty -corner Typical /home/tom/repos/edalibs/pdks/gf180mcu/gf180mcuD/libs.ref/gf180mcu_fd_sc_mcu7t5v0/liberty/gf180mcu_fd_sc_mcu7t5v0__tt_025C_5v00.lib
Using 1e-12 for capacitance...
Using 1e+00 for resistance...
Using 1e-09 for time...
Using 1e+00 for voltage...
Using 1e-03 for current...
Using 1e-06 for power...
Using 1e-06 for distance...
Reading design constraints file at '/openlane/scripts/base.sdc'…
[INFO]: Setting output delay to: 8.0
[INFO]: Setting input delay to: 8.0
[INFO]: Setting load to: 0.07291
[INFO]: Setting clock uncertainty to: 0.25
[INFO]: Setting clock transition to: 0.15
[INFO]: Setting timing derate to: 5.0 %
Found 0 macro blocks.
[ERROR PPL-0024] Number of IO pins (416) exceeds maximum number of available positions (28).
Error: ioplacer.tcl, 51 PPL-0024
Kristaps Jurkans
12/07/2023, 8:34 PM"FP_SIZING": "absolute"
and "DIE_AREA"
to something like "0 0 200 200
(experiment with the values) may fix itTom
12/07/2023, 9:27 PMMitch Bailey
12/07/2023, 11:42 PMconfig.json
file?Tom
12/08/2023, 5:55 PM{
"DESIGN_NAME": "caravel",
"STD_CELL_LIBRARY": "gf180mcu_fd_sc_mcu7t5v0",
"VERILOG_FILES": [
"dir::rtl/defines.v",
"dir::rtl/caravel.v"
],
"CLOCK_PORT": "wb_clk_i",
"CLOCK_PERIOD": 40,
"QUIT_ON_SYNTH_CHECKS": 0,
"FP_PDN_CHECK_NODES": 0,
"SYNTH_ELABORATE_ONLY": 1,
"FP_DEF_TEMPLATE": "dir::mag/user_project_wrapper.def",
"MAGIC_ZEROIZE_ORIGIN": 0,
"FP_SIZING": "absolute",
"DIE_AREA": "0 0 2980.2 2980.2",
"CORE_AREA": "12 12 2968.2 2968.2",
"RUN_CVC": 0,
"UNIT": 2.4,
"FP_IO_VEXTEND": "expr::2 * $UNIT",
"FP_IO_HEXTEND": "expr::2 * $UNIT",
"FP_IO_VLENGTH": "expr::$UNIT",
"FP_IO_HLENGTH": "expr::$UNIT",
"FP_IO_VTHICKNESS_MULT": 4,
"FP_IO_HTHICKNESS_MULT": 4
}
I'm basically building it up slowly from the one in caravel for my own integration into the wrapperTom
12/08/2023, 5:56 PMMitch Bailey
12/08/2023, 10:47 PMcaravel
? caravel
is the final top level with the user_project_wrapper
integrated into caravel_core
and combined with chip_io
. Your top level should be user_project_wrapper
.
2. SYNTH_ELABORATE_ONLY
is set meaning that you only want to do wiring, but you have nothing to wire to if caravel.v
is just a wrapper.
3. Although the placements will be overridden by `FP_DEF_TEMPLATE`M, maybe adding
"FP_PIN_ORDER_CFG": "dir::pin_order.cfg",
reserves the space.Tom
12/08/2023, 11:00 PMcells
which contains a mixture or analog cells (for which there are LEF, GDS, and RTL views), and digital cells. one of the cells is called caravel, and contains the caravel_wapper DEF and skeleton RTL file which I coppied from the caravel repo. I will ultimately use this to generate my wrapper GDS file which will then go into the caravel padframe. I'm new to openlane so in an effort to learn the process I'm starting as simple as possible and running the flow on an empty design initially but to the template caravel wrapper DEF. Once I know what I'm doing I will use it to connect up my dtop, and atop cells which will probably just be an elaborate only operation