Design Optimization in Synthesis
Design optimization is a critical step in the synthesis process where the Design Compiler attempts to implement a combination of library cells that meet the functional, speed, and area requirements of your design. The optimization process transforms the design into a technology-specific target library, focusing on standard cells based on constraints or attributes.
Design compiler Flow
![]() |
DC flow |
Design compiler perform optimization on levels
![]() |
Optimization levels |
Architectural optimization works on the HDL description , including high level synthesis tasks .
High-Level Synthesis
- Resource Sharing
- Implementation Selection
- Reordering Operators
- Sharing Common Subexpressions
%3CmxGraphModel%3E%3Croot%3E%3CmxCell%20id%3D%220%22%2F%3E%3CmxCell%20id%3D%221%22%20parent%3D%220%22%2F%3E%3CmxCell%20id%3D%222%22%20value%3D%22Read%22%20style%3D%22text%3BstrokeColor%3Dnone%3Balign%3Dcenter%3BfillColor%3Dnone%3Bhtml%3D1%3BverticalAlign%3Dmiddle%3BwhiteSpace%3Dwrap%3Brounded%3D0%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%22530%22%20y%3D%22100%22%20width%3D%2270%22%20height%3D%2230%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3C%2Froot%3E%3C%2FmxGraphModel%3 The architecture decision above is made through the ‘high level synthesis’ or ‘architectural level optimization’ algorithm called “resource sharing”, based on coding style as well as timing constraints. If the path from SEL to SUM is timing critical, the faster but larger Architecture A is selected, otherwise resources are shared to save area in Architecture B.
Implementation Selection
Multiple implementations for singleton arithmetic operators, available in the Standard Library, allow DC to evaluate speed/area tradeoffs and choose the best - the smallest that meets timing
Implementation Selection |
Once selected, each implementation is then optimized for the target technology library
The ‘High Performance’ DesignWare Library allows more choices – discussed later
There is also a DesignWare library available, which gives DC many more high-performance implementation possibilities arithmetic operators (including a datapath generator for adders, subtractors and multiplier), as well as an immense collection of standard soft IP blocks that can be instantiated in designs and optimized for the target technology. Access to the DesignWare library requires a DesignWare license, as well as a couple of variables settings. Discussed further in a later Unit
Operator Reordering
Operators are re-ordered to reduce critical path delays
Operator Reordering |
What Is Logic-Level Optimization?
After high-level synthesis, circuit function is still represented by GTECH parts
- One optimization process occurs by default during logic-level optimization Structuring
- Reduces logic using common sub-expressions
- speed acceleration as well as area optimization
- constraint-driven
Structuring |
Structuring is a logic optimization step that adds intermediate variables and logic structure to a design. During structuring, Design Compiler searches for sub-functions that can be factored out.
What Is Gate-Level Optimization?
Gate_level optimiztion based on Combinational and Sequential Mapping , DRC fixing.
- Combinational Mapping and Optimization
Combinational Mapping |
- Sequential Mapping and Optimization
- Design rule constraints (DRCs)
- Timing constraints
- Area constraint
- From Highest priority To Lowest priority
- Technology libraries contain vendor-specific design rules for each cell, e.g. max_capacitance/transition
- DRC fixing entails inserting/removing buffers and re-sizing gates that has higher priority than delay, by default.
source ./constrains.tcl
link
ungroup -flatten -all
compile -map_effort medium
- -map_effort option to make the tool apply effort for optimization area,timing and power
compile_ultra -no_autoungroup -area_high_effort_script
compile_ultra -no_autoungroup -retime -incremental
- report if ungroup
report_auto_ungroup
- check internal DC representation for design consistency
check_design
- verifies timing setup is complete
check_timing
- report design size and object counts
report_area
- report path group
report_path_group
- reports design database constraints attributes
0 Comments