What are the common DC synthesis optimization techniques?

We have covered the basic DC synthesis flow in previous post. In synthesis, there are a couple of techniques that can help us improve the synthesis results:

Apply optimization directives as needed or as applicable
Apply appropriate compile options
Use path groups to apply more focus on critical paths
Incremental compile

Apply Optimization Directives

We listed a few optimization directives below:

  1. High-Effort Timing Optimization: By default it is disabled; To enable it, do “set_app_var compile_timing_high_effort true
  2. Prioritizing setup timing over DRCs: By default DRCs have higher priority than timing during optimization. Otherwise, do “set_cost_priority -delay
  3. Disabling DRC fixes in clock network. Generally clock buffering prior to CTS is not desired; To disable DRC fixing on the entire clock network, do “set_auto_disable_drc_nets -on_clock_network true
  4. Test-ready synthesis is to account for area/timing impact of scan register during synthesis before stitching up scan chains; before synthesis, specify scan scheme by doing “set_scan_configuration -style <multiplexed_flip_flop | clocked_scan | ssd | aux_clock_lssd>”, then do “compile_ultra -incremental -scan
  5. Multi-Core optimization. For example, do “set_host_options -max_cores 4”. To confirm host options, do “report_host_options

Continue reading → What are the common DC synthesis optimization techniques?

What are basic setups before running synthesis? How to do “set_app_var” and create milkyway library?

There are some basic setups before running synthesis. By setting “search_path”, designers do not need to specify the absolute paths of files; Designers needs to specify the target technology library as well as the link library to resolve all instances inside the design.

To run Topographical synthesis / production synthesis, physical data is required. The following example shows how to setup milkyway design library for DC-Topographical.

Continue reading → What are basic setups before running synthesis? How to do “set_app_var” and create milkyway library?

What is topographical synthesis / production synthesis?

In sanity synthesis, we do not consider physical information such as, how cells are placed and how wires are routed. But in production synthesis, physical information has to be taken into account, and DC Topographical mode helps to achieve the goal.

Topographical mode performs coarse placement with congestion-aware routing estimates during synthesis. The resulting RCs in topographical mode correlate closely with post-layout results

Topographical mode requires physical data, including:

Continue reading → What is topographical synthesis / production synthesis?