Synopsys Design Compiler Tutorial 2021 【DELUXE | 2024】
For 2021, Synopsys offers two primary modes:
set_input_delay -max 2.0 -clock clk [remove_from_collection [all_inputs] [get_ports clk]] set_output_delay -max 2.0 -clock clk [all_outputs]
# Check for issues check_design # Compile compile_ultra -timing_high_effort_script -area_high_effort_script # Or for newer methodologies: compile_ultra -topographical Use code with caution. Phase 4: Analyze and Export
# Basic compile compile # For better results in modern nodes (Topographical) compile_ultra Use code with caution.
Visualize the mapping of RTL + operators to specific adder cells. synopsys design compiler tutorial 2021
Design Compiler looks for a hidden configuration file named .synopsys_dc.setup in your home directory or your working directory to initialize environment variables. Navigate to your build/ folder and create this file with the following variables:
Before invoking DC, set up the Synopsys tools and the target technology library.
Used to resolve cell references. The asterisk ( * ) tells DC to search its internal memory first before looking through external disk files.
Constraints guide the optimization engine. Without accurate constraints, the tool may over-optimize (wasting area and power) or under-optimize (causing timing violations). Save these commands in a separate constraint file, typically named top_module.sdc . For 2021, Synopsys offers two primary modes: set_input_delay
The synthetic_library for DesignWare is crucial. If you miss this, your multiplier or ALU synthesis will fail.
"Mastering Digital Synthesis: A Synopsys Design Compiler (DC) Tutorial."
The synthesis execution flow follows five discrete phases. These commands are executed within the Design Compiler shell ( dc_shell ).
Never export a netlist without checking synthesis reports first. Violations must be addressed at the RTL level or by adjusting constraints. Design Compiler looks for a hidden configuration file named
# Create clean work directory file mkdir WORK define_design_lib WORK -path ./WORK # Analyze HDL files for syntax errors analyze -format verilog my_alu.v control_unit.v top_module.v # Elaborate the top-level architecture elaborate top_module # Set current design context current_design top_module # Verify that the design links correctly with libraries link Use code with caution. 4. Defining Design Constraints
compile_ultra -timing
For more information on Synopsys Design Compiler, refer to:
Use set_driving_cell on all input ports. DC 2021 is stricter about floating inputs.
# Create clean work directory file mkdir ./WORK define_design_lib WORK -path ./WORK # Analyze the RTL source files (Syntax check) analyze -format systemverilog alu.sv control_unit.sv top_module.sv # Elaborate the top-level design (Builds hierarchy and generic logic) elaborate top_module # Set current design context current_design top_module # Check design for warnings, unresolved references, or synthesis traps link check_design Use code with caution.
Ensure all modules, sub-modules, and hard IP blocks resolve properly against your link libraries. current_design top_module link check_design Use code with caution.