1.suppress_message VER-130
屏蔽(VER-130)Warning信息。
2.analyze&elaborate
analyze:分析HDL的源程序并将分析产生的中间文件存于当前工作目录下,(用户也可以自己制定目录)中间文件如 .pvl .syn .mr 等等
elaborate:在产生的中间文件中生成verilog的模块,默认情况下,读取的是当前目录中的文件。
analyze [-library library_name] [-format verilog | vhdl | sverilog] file_list
# library:指定中间结果存放的库
# format:HDL 源文件的类型
# file_list:源代码文件名列表,文件名的指定可以通过TCL的链表命令 {}、“”、[list file_name] 等三种方法之一完成
elaborate design_name [-library library_name] [-parameters param_list]
# deisgn_name:指需要进行描述的设计
# library:用于保存设计的结构级描述
# parameters:指定给设计传递的参数,若省略则参数使用缺省值;参数用“”括起来
3.define_design_lib work -path tmp
定义工作目录,用于存放analyze后生成的那些中间文件.pvl.syn.mr。不然默认生成的中间文件是当前工作目录比较乱。
4.set_clock_gating_style -minimum_bitwidth 6 -pos integrated -neg integrated -control_point before -control_signal scan_enable
sequential_cell none | latch
带不带latch得gate,带latch不会产生毛刺,不带的话会产生毛刺,比如:与门做gate,1使能时会长生posedge的毛刺,或门做date,0使能时会产生negedge的毛刺。
minimum_bitwidth minsize_value
不是每个寄存器前都要增加clk gate,为了减少clk gate需要定义至少多少个寄存器才加一个gate
setup setup_value
hold hold_value
positive_edge_logic
详细解释请看大神链接
数字SOC设计之低功耗设计入门(五)——RTL级低功耗设计(续)_sequential cell-CSDN博客
5.set_fix_multiple_port_nets -all -buffer_constants [get_designs *]
解决输入输出直连的问题,防止综合后的网表出现assign语句,assign语句对综合没有影响,但是对pr有影响,加了这条命令会对直通的信号之间加上buffer,从字面意思来看可能会有些疑惑,此时可以理解成,一条线既连接了input又连接了output,所以有multiple_port的含义。
6.compile_ultra -no_autoungroup -gate_clock
7.change_names -rules verilog -hierarchy
8.write -format verilog -hierarchy -output netlist/digital_top.v
9.set_case_analysis 1 [get_ports i_scan_mode]
对电路特定模式的设置,为了减少不必要的时序路径分析,如果不设置此命令那么分析时序时会分析多种路径的情况,比如regA到regB的路径有1.func_clk为起始点到regA,scan_clk为终点到regB进行分析;2.func_clk为起始点到regA,func_clk为终点到regB进行分析;3.scan_clk为起始点到regA,func_clk为终点到regB进行分析;4.scan_clk为起始点到regA,scan_clk为终点到regB进行分析;实际上我们只需要再function下分析2 ,在scan下分析4就足够了。
详细解释参考这位大神:
静态时序分析:SDC约束命令set_case_analysis详解_sdc set case analysis-CSDN博客
10.set_dft_signal -view spec -type ScanEnable -port i_scan_en -active_state 1
-view spec:写的code里面没有关于此信号的逻辑
-view existing: 写的code里面已经有了此信号的逻辑,比如scan clk 已经和func clk 做了mux