Releases: zslwyuan/AMF-Placer
Releases · zslwyuan/AMF-Placer
AMF-Placer 2.0: An Open-Source Timing-driven Analytical Mixed-size FPGA Placer
What's Changed
- a set of timing optimization algorithms without involving static timing analysis (STA), e.g., path-length-aware SA-based floorplanning and parallelized CLB packing with timing factors considered.
- an efficient piecewise regression model of pin-to-pin delay, utilized by our integrated lightweight parallelized timing analysis engine.
- a placement-blockage-aware optimization scheme, which identifies the potential negative interference of placement blockage with long paths, spreads the instances in specific regions, and inserts placement anchors for the instances in the target paths to reduce cross-blockage routing.
- a WNS-aware timing-driven global placement, based on quadratic programming and proper exploitation of pseudo-nets with slack-guided weights, which realizes the multi-objective optimization of WNS, TNS, and wirelength.
- a sector-guided detailed placement algorithm, which can efficiently identify the instance movement with promising timing benefits. The timing can be comprehensively optimized by AMF-Placer~{2.0} at various granularity levels (i.e., multi-path, per-path, and per-instance).
- A GUI for visualization of the placement procedure (zoom in / zoom out / critical path identification ...)
Clock+Level-Based-TimingOpt
What's Changed
- Added level based net weight to reduce the net delay of long data paths
- Added constraints to force long paths to locate in one column of clock regions for timing optimization and legalization
- Tested user-defined cluster for different domains of designs
- Fixed bugs related to specific cell types and parameter settings
- More detailed documentations
New Contributors
- @magic3007 made their first contribution in #2
Full Changelog: ICCAD-2021...Clock+Level-Based-TimingOpt
AMF-Placer 0.1
Features
- supports placement with a large number of mixed-size macros with shape constraints in practical FPGA applications.
- a set of optional optimization techniques to improve mixed-size FPGA placement QoR
- parallelize the implementation of each stage of placement based on multi-threading
- modularized function implementation for easier further development
- flexible and extensible JSON-based placement configuration
- a set of pre-implementation benchmarks from the latest practical FPGA applications
Todo List
- stable clock legalization
- basic static timing analysis (doing)
- timing term in analytical model (doing)
- timing-driven detailed placement
- More and more documentation...