moerjielovecookie

Sawen_Blog

一个普通工科牲的博客网站
x
github
follow
email

Synthesis settings in Vivado

1. Synthesis Options#

  1. Optimization Level (-O or --optimize)

    • 0: Default optimization, reduces compilation time.
    • 1: Reduces power consumption (runs Power_DefaultOpt strategy).
    • 2: Increases core speed (adds PHYS_OPT_DESIGN step).
    • 3: Maximum performance (enables retiming and physical optimization).
    • s: Reduces logic resources (runs Area_Explore strategy).
    • quick: Shortens implementation time (enables Flow_RuntimeOptimized).
  2. Synthesis Strategy (vivado.synth_strategy)

    • Includes default strategy (Synthesis_Defaults), quick runtime optimization (Flow_RuntimeOptimized), and custom strategies.
  3. RTL Language Selection (vivado.rtl)

    • Specify as verilog or vhdl.
  4. Hierarchy Management (-flatten_hierarchy)

    • Options: none (maintain hierarchy), full (fully flatten), rebuilt (rebuild hierarchy afterwards).
  5. Resource Control

    • Gated clock conversion (-gated_clock_conversion)
    • BUFG count limit (-bufg)
    • Resource sharing (-resource_sharing).
  6. Report Level (vivado.report_level)

    • 0: Utilization after synthesis + timing after implementation.
    • 1: Detailed analysis after synthesis/implementation.
    • 2 (default): Includes quick failure checks.

2. Implementation Options#

  1. Implementation Strategy (--vivado.impl.strategies)

    • Predefined strategies such as performance priority (Performance_Explore), resource optimization (Area_Explore), or custom strategies.
  2. Number of Parallel Jobs (--vivado.impl.jobs)

    • Specify the number of parallel processes for Vivado implementation (e.g., --vivado.impl.jobs 4).
  3. Physical Optimization (vivado.phys_opt)

    • Stage selection: none, place (placement optimization), route (routing optimization), or all.
  4. Timing Control

    • Maximum timing paths (vivado.max_timing_paths): Specify the number of paths reported when timing is not met.
  5. Pblock Range (vivado.pblock)

    • Specify the logical area of interest during implementation (e.g., {SLICE_X8Y105:SLICE_X23Y149}).
  6. Resource Optimization

    • The --optimize parameter can affect resource usage (e.g., the s option reduces resource usage).

3. Other Key Options#

  • Disable IP Cache (--no_ip_cache): Forces the tool to regenerate IP synthesis results.
  • Custom Synthesis Command (vivado.synth_design_args): Pass additional parameters to synth_design.
  • Physical Layout Control: Distribute implementation tasks via LSF cluster (--vivado.impl.lsf).

Note: Some options need to be configured through the Vitis toolchain (v++ command), while others can be adjusted through the Vivado GUI's "Project Settings" (such as synthesis strategy, implementation strategy, and number of parallel jobs). For detailed strategies, refer to the "Vivado Design Suite User Guide."

No time to write, just using what ima generated for now.

Loading...
Ownership of this post data is guaranteed by blockchain and smart contracts to the creator alone.