aryap
10/26/2020, 11:42 PM"openroad -exit /openLANE_flow/scripts/openroad/or_replace.tcl |& tee >&@stdout /openLANE_flow/designs/250/runs/debug/logs/placement/replace.log
add_macro_placement mymacro 0 0
followed by manual_macro_placement f
in interactive mode. then i try to run run_placement
and i get the segfault. this is on rc3arya@growly ~ $ cat ~/src/openlane_develop/designs/250/runs/debug/logs/macro_placement.log
Placing the following macros:
{'mac0': ['0', '0', 'NONE']}
Placing mac0
Traceback (most recent call last):
File "/openLANE_flow/scripts/manual_macro_place.py", line 77, in <module>
part_split = part[0].split(" ")
IndexError: list index out of range
add_macro_placement mac_cluster 0 0
manual_macro_placement
% run_synthesis; run_floorplan; add_macro_placement mac_cluster 0 0; manual_macro_placement; run_placement
[...]
[INFO] BinSize = (1792850, 1792480)
[INFO] NumBins = 4
[ERROR] (REPL-0)
Error: RePlAce terminated with errors.
[ERROR]: Failure in global placement
Ahmed Ghazy
10/27/2020, 1:02 AMadd_macro_placement mac_cluster 0 0 N
aryap
10/27/2020, 4:26 AM[INFO]: Manual Macro Placement...
Placing the following macros:
{'my_mac': ['0', '0', 'N']}
Placing my_mac
Traceback (most recent call last):
File "/openLANE_flow/scripts/manual_macro_place.py", line 77, in <module>
part_split = part[0].split(" ")
IndexError: list index out of range
[ERROR]: during executing: "python3 /openLANE_flow/scripts/manual_macro_place.py -i /openLANE_flow/designs/250/runs/debug/results/floorplan/fpga_250.floorplan.def -o /openLANE_flow/designs/250/runs/debug/results/floorplan/fpga_250.floorplan.def.macro_placement.def -c /openLANE_flow/designs/250/runs/debug/tmp/macro_placements.cfg |& tee >&@stdout /openLANE_flow/designs/250/runs/debug/logs/macro_placement.log"
[ERROR]: Exit code: 1
[ERROR]: Last 10 lines:
child process exited abnormally
[ERROR]: Please check python3 log file
[ERROR]: Dumping to /openLANE_flow/designs/250/runs/debug/error.log
Amr Gouhar
10/27/2020, 3:59 PMaryap
10/27/2020, 8:54 PMfpga_250.floorplan.def
COMPONENTS 170929 ;
- my_mac mac_cluster ;
Ahmed Ghazy
10/27/2020, 9:21 PMadd_lefs
additionally. In develop
, setting EXTRA_LEFS is enough.aryap
10/27/2020, 9:22 PMAhmed Ghazy
10/27/2020, 9:22 PMglobal_placement
first before manual_macro_placement
.aryap
10/27/2020, 9:28 PM[INFO] FillerInit: FillerCellArea = -nan
[INFO] FillerInit: FillerCellSize = (-nan, -nan)
[ERROR]: during executing: "replace < /openLANE_flow/scripts/replace_gp.tcl |& tee >&@stdout /openLANE_flow/designs/250/runs/debug/logs/placement/replace.log"
[ERROR]: Last 10 lines:
child killed: segmentation violation
[ERROR]: Please check replace log file
[ERROR]: Dumping to /openLANE_flow/designs/250/runs/debug/error.log
% replace --version
RePlAce Version: 1.0.0
./flow.tcl -design 250 -overwrite -tag debug -interactive
and run source_config macro.tcl
where macro.tcl
is:
add_lefs -src /openLANE_flow/designs/250_mac/runs/cluster_750_750_0.3/results/magic/mac_cluster.lef
run_synthesis
run_floorplan
add_macro_placement my_mac 0 0
global_placement
manual_macro_placement
Ahmed Ghazy
10/27/2020, 10:39 PMaryap
10/28/2020, 9:56 PM[INFO] MacroInstsArea = 562500000000
[InitialPlace] Iter: 1 CG Error: 0 HPWL: 190785990
[InitialPlace] Iter: 2 CG Error: 6.37974e-17 HPWL: 178067944
[InitialPlace] Iter: 3 CG Error: 0 HPWL: 177995139
[InitialPlace] Iter: 4 CG Error: 0 HPWL: 177923973
[InitialPlace] Iter: 5 CG Error: 0 HPWL: 177891540
[INFO] FillerInit: NumGCells = 1
[INFO] FillerInit: NumGNets = 83
[INFO] FillerInit: NumGPins = 131
[INFO] TargetDensity = 0.500000
[INFO] AveragePlaceInstArea = 562500000000
[INFO] IdealBinArea = 1125000019968
[INFO] IdealBinCnt = 9
[INFO] TotalBinArea = 11248041513600
[INFO] BinCnt = (2, 2)
[INFO] BinSize = (1676930, 1676880)
[INFO] NumBins = 4
[ERROR] (REPL-0)
Error: RePlAce terminated with errors.
[ERROR]: Failure in global placement
run_floorplan
says [ERROR] Macro my_mac is not placed
Ahmed Ghazy
10/28/2020, 11:30 PMinit_floorplan
• insert I/O pins with place_io
• run global_placement_or
to get an initial placement for macros
• either manually or automatically place (fix) the macros (add_macro_placement
and manual_macro_placement
in your case)
• insert tap cells (tap_decap_or
), which will also cut the standard cell rows around the fixed macros to prevent rails and other cells from being placed on top of them
• proceed with the steps in the usual flow (in flow.tcl
) starting from run_placement
.aryap
10/29/2020, 1:27 AM