相关阅读
在很长一段时间,用户将所有的设计约束Synopsys Design Constraints(SDC)写在一个文件中,并在脚本中使用source命令执行SDC文件。read_sdc命令的诞生让设置约束拥有了专用的命令,功能也更加强大。
本文针对Design Compiler,但该命令同样存在于PrimeTime、IC Compiler等工具中,它们大致相同,略有差别。read_sdc命令的BNF范式(有关BNF范式,可以参考以往文章)为:
read_sdc
file_name
[-echo]
[-syntax_only]
[-version sdc_version]
//注:该命令的选项和参数顺序任意
指定文件名
可以指定需要读取的SDC文件的名称,文件类型可以是普通ASCII及其gzip压缩版本。
指定显示命令
-echo选项指定在执行每一条SDC命令时都显示出来。
指定仅进行语法检查
-syntax_only选项指定仅检查SDC文件语法和语义,而不实际执行SDC命令。
指定SDC版本
-version选项可以指定SDC版本,可以从1.0到目前最新的2.2,如果文件中出现了版本不支持的SDC命令,则会当做未知命令报错"Error: unknown command '*****' (CMD-005)"。
简单使用
假设存在以下的SDC文件。
# con.tcl
create_clock -name clk -period 10.0 [get_ports clk]
set_input_delay 2.0 -clock clk [get_ports data_in]
set_output_delay 2.5 -clock clk [get_ports data_out]
set_driving_cell -lib_cell INVX1 -library my_lib [get_ports data_in]
set_load 0.05 [get_ports data_out]
set_clock_uncertainty 0.2 [get_clocks clk]
则可以在脚本中直接使用read_sdc命令进行读取并执行该文件。
# dc.tcl
read_file -format verilog {test.v}
current_design test
read_sdc con.tcl