Synopsys Design Compiler Tutorial 2021 _top_ -
For timing simulation (back-annotated simulation).
# Create a primary clock named 'sys_clk' with a 10ns period on port 'clk' create_clock -name sys_clk -period 10.0 [get_ports clk] # Model clock jitter and routing delay (skew) using uncertainty set_clock_uncertainty 0.25 [get_clocks sys_clk] # Define clock transition times (slew rate) set_clock_transition 0.15 [get_clocks sys_clk] Use code with caution. Input and Output Delays
For scripting and production runs, the command-line shell is preferred. For learning and debugging constraints, the GUI is invaluable.
Before diving into the CLI, let’s establish why the 2021 release matters for the modern designer. synopsys design compiler tutorial 2021
# Analyze the RTL (Checks for syntax) analyze -format verilog my_design.v sub_module.v # Elaborate (Builds the generic technology-independent design) elaborate my_design # Set the current design context current_design my_design Use code with caution. 4. Applying Constraints (The SDC File)
For complex designs or designs struggling to meet timing requirements, use the -map_effort high and -area_effort high flags. The -boundary_optimization flag allows DC to optimize across hierarchical sub-module boundaries by eliminating redundant logic and inverting polarities if necessary. compile_ultra -area_effort high -boundary_optimization Use code with caution.
dc_shell> link dc_shell> check_design
# Define the link library (used to resolve references) set link_library [list * slow.db]
The fundamental goal of Design Compiler is to transform high-level hardware descriptions (Verilog, SystemVerilog, or VHDL) into a technology-specific gate-level representation. This process is governed by four primary stages: ASIC Design Flow Tutorial Using Synopsys Tools
Mastering Digital Synthesis: A Synopsys Design Compiler Tutorial (2021 Edition) For timing simulation (back-annotated simulation)
set_host_options -max_cores 8 compile_ultra -timing -retime
# Verilog netlist for downstream tools write -f verilog -hierarchy -output outputs/rv32i_core_synth.v