Initial Placement¶
OpenFPGA Floorplaner¶
This is dedicated OpenFPGA floorplaner which shape tiles in traditional structure as shown below. This placement class is not dependent iupon the architecture and always applied to homogeneous structure.
There are total two ways
Paramater Based (Preferred):¶
Following figure details the various paramteres referred in this type of floorplanning
|<--------- GRID_X --------->|
| |
┌───────────┐┌─────────────┐┌──────────────┐┌─────────────┐┌───────────┐ ∧
│ ││ CBX_TOP ││ ││ ││ │ |
│ ││ _WIDTH ││ ││ ││ │ | CBX_TOP_HEIGHT
│ ┌──┘└─────────────┘└──┐ ┌──┘└─────────────┘└──┐ │ ⩒
│ │┌───────────────────┐│ │┌───────────────────┐│ │
└────────┘│ GRID_CLB_RATIO │└────────┘│ │└────────┘
┌────────┐│ W/H │┌────────┐│ │┌────────┐
│ ││ ││ ││ ││ │
│ CBY_ ││ ││ CB_ ││ ││ CBY_ │
│ LEFT_ ││ ││ HEIGHT ││ ││ RIGHT_ │
│ HEIGHT ││ ││ _RATIO ││ ││ HEIGHT │
│ ││ ││ ││ ││ │
└────────┘│ │└────────┘│ │└────────┘
┌────────┐│ │┌────────┐│ │┌────────┐
↑ │ │└───────────────────┘│ │└───────────────────┘│ │
| │ └──┐┌─────────────┐┌──┘ └──┐┌─────────────┐┌──┘ │
| │ ││ CB_WIDTH_ ││ ││ ││ │ FPGA_SIZE[0],y
| │ ││ RATIO ││ ││ ││ │
G │ ┌──┘└─────────────┘└──┐ ┌──┘└─────────────┘└──┐ │
R │ │┌───────────────────┐│ │┌───────────────────┐│ │
I └────────┘│ │└────────┘│ │└────────┘
D ┌────────┐│ │┌────────┐│ │┌────────┐
_ │ ││ ││ ││ ││ │
Y │ ││ ││ ││ ││ │
| │ ││ ││ ││ ││ │
| │ ││ ││ ││ ││ │
| │ ││ ││ ││ ││ │
| └────────┘│ │└────────┘│ │└────────┘
| ┌────────┐│ │┌────────┐│ │┌────────┐
↓ │ │└───────────────────┘│ │└───────────────────┘│ │
│ └──┐┌─────────────┐┌──┘ └──┐┌─────────────┐┌──┘ │ ∧
│ ││ CBX_BOTTOM_ ││ ││ ││ │ |
│ ││ _WIDTH ││ ││ ││ │ | CBX_BOTTOM_HEIGHT
└───────────┘└─────────────┘└──────────────┘└─────────────┘└───────────┘ ⩒
<-----------> <--------->
CBY_LEFT_WIDTH CBY_RIGHT_WIDTH
Area Based:
OVERALL_UTILIZATIONGRID_CLB_UTILIZATIONSB_UTILIZATION
Common Parameters (All of them are absolute numbers in multiple of SC_HEIGHT or CPP)
GRID_CLB_CHAN_XandGRID_CLB_CHAN_Y: Grid CLB marginsCBx_CHAN_XandCBx_CHAN_Y: Connection box X marginsCBy_CHAN_XandCBy_CHAN_Y: Connection box Y marginsGPIO_CHAN_XandGPIO_CHAN_Y: GPIO cell margins
Absolute Numbers (In multiple of SC_HEIGHT or CPP)
GRID_XGRID_YCLB_WCLB_HCBX_WIDTHCBY_HEIGHTLEFT_CBY_WIDTHLEFT_CBY_HEIGHTRIGHT_CBY_WIDTHRIGHT_CBY_HEIGHTTOP_CBX_WIDTHTOP_CBX_HEIGHTBOTTOM_CBX_WIDTHBOTTOM_CBX_HEIGHT
Utilization Based¶
Ideas:
Optionally provide a method to apply shaping and placement to the netlist elements
- class util.initial_placement.initial_placement(grid, netlist, fpga_grid: FPGAGridGen, debug=False, areaFile=None, padFile=None, gridIO=False, shapingConf=None)[source]¶
Attributes:
Contated-poly-pitch(`default`=2)Standard cell height(`default`=10)Module level variable documented inline. (`default`=100).
Stores list of modules i uppose
Module level variable documented inline. (`default`=100).
Methods:
Overrides the base method to create placement information
Overwrite default configuration variables
get_default_configurationget_variablesfigSizesnapDimsComputeGridCreateDatabaseadd_clbadd_cbxadd_cbyget_stypeuniqueAdds switch-blocks in the placement database
add_gridIOHadd_gridIOVadd_pad- PlacementDB = []¶
Stores list of modules i uppose
- Type:
list