Tool · Generator
Instead of copy-pasting a template and hunting for the bits you changed, describe your design on the command line and let Ṛta write a complete, well-structured SDC file.
In plain words
You give it the essentials: design name, clocks, and options like uncertainty, operating condition, reset and scan. It produces a complete SDC with consistent section ordering and formatting, ready for review and validation.
The generated file follows the same conventions the linter enforces, so what you generate is what you'd lint, and what you'd check:
$ rta generate -d my_block -c clk=10.0:sys_clk \
-c clk_io=5.0:clk_io --uncertainty 0.15 \
--operating-condition SS_0P72V_16C \
--ideal-reset --reset-port rst_n \
--scan --scan-port scan_en -o my_block.sdc
✓ wrote my_block.sdc (synthesis-ready)
What you get
# my_block - generated by Ṛta
set sdc_version 2.2
create_clock -name clk -period 10.0 [get_ports sys_clk]
create_clock -name clk_io -period 5.0 [get_ports clk_io]
set_clock_uncertainty 0.15 [get_clocks clk]
set_operating_conditions SS_0P72V_16C
set_ideal_network [get_ports rst_n]
set_case_analysis 0 [get_ports scan_en]
Every new block starts from the same generator, not from someone's edited template.
Templates in your docs match what the generator produces, with no drift.
Generate, then check: the two commands pair naturally.
Try it