| Script | Purpose |
|---|---|
netlist2graph.py |
Transform the netlist to a hypergraph |
loc2def.py |
Read the predicted initial locations back into def file. |
This script parsers the netlist to a hypergraph
- Inputs:
3_2_place_iop.defgenerated by OpenROAD
- Outputs:
-
hypergraph.txtNumber of vertices: <total> Number of macros + std_cells: <total_cell_number> Number of IOs: <total_io_number> hyperedges: driver_id load_id1 load_id2 ... 0 17 25 1 4 9 11 ... -
vertex_info.txtvertex_id, vertex_name, is_fixed, x, y 0, U0, 0, 0, 0 1, U1, 1, 2280, 2800 2, PAD0, 1, 45500, 0 ...
-
This script updates the DEF file (3_2_place_iop.def) by embedding predicted locations for movable cells.
-
Inputs:
-
A CSV file containing (x, y) coordinate pairs for all movable cells.
- [Note] Coordinates include only movable cells, and their order must matches the order of components listed in the COMPONENTS section.
-
The original
3_2_place_iop.def- _2975_ INV_X1 + UNPLACED ; - _2976_ BUF_X1 + UNPLACED ; - _2977_ INV_X1 + UNPLACED ; - _2978_ BUF_X1 + UNPLACED ;
-
-
Outputs:
-
Modified
3_2_place_iop.def- _2975_ INV_X1 + PLACED ( 1192114 2709123 ) N ; - _2976_ BUF_X1 + PLACED ( 1378472 2889836 ) N ; - _2977_ INV_X1 + PLACED ( 1376774 2889722 ) N ; - _2978_ BUF_X1 + PLACED ( 1375933 2889801 ) N ;
-
-
Use OpenROAD to generate the 3_2_place_iop.def.
-
Use netlist2graph.py to convert the .def file into a hypergraph format.
-
Extract necessary features (you could modify or write your own parsers to extract additional features if needed).
-
Train models based on these features.
-
Use loc2def.py to write the predicted cell locations back into the .def file.
-
Replace the original .def in OpenROAD and run
global_placement -skip_initial_place -incrementalto continue the flow and obtain the detailed placement results