概述
一、DC启动文件.synopsys_dc.setup
库相关变量:
//库相关变量
set search_path "$search_path ## ##" //设置搜索路径
set target_library "## ##" //设置综合设计库
set link_library "* $target_library ## ##" //设置相关IP库
set symbol_library "## ##" //设置用于图形显示的符号库
set synthetic_library "## ##" //设置DC自带的库
define_design_lib ## -path ## //设置设计库的名字以及路径
history keep ## //设置命令保存的历史数量
set alib_library_analysis_path ## //设置alib分析路径
二、DC约束文件
//相关命令
current_design ## //设置当前设计,一般为顶层文件
reset_design //初始化当前设计
create_clock -period # [get_ports clk] //创建约束时钟
set_clock_uncertainty -setup # [get_clocks clk] //创建时钟不确定因素包括skew与jitter
set_clock_latency -max -source ## [get_clocks clk] //-source 设置时钟源到芯片端口的延时
//空缺为芯片端口到内部寄存器延时
set_propagated_clock [get_clocks clk] //布局布线后时钟设置,可以不用设置时钟-network的延时
set_clock_transition ## [get_clocks clk] //设置时钟转换时间
suppress_message UID-401 //防止UID-401警告打印在终端
set_driving_cell -library ## -lib_cell ## [all_inputs] //设置端口驱动模块为工艺库中的器件
set_input_transition ## [get_ports ##] //设置出入端口转换时间
set_input_delay -max # -clock clk [all_inputs] //创建端口输入延迟
set_output_delay -max # -clock clk [all_outputs] //创建端口输出延迟
reomve_input_delay [get_ports ##] //移除端口输入延时约束
set_wire_load_mode topsegmentenclose //设置线负载模型的模式,有三种
set_wire_load_model -name ## //设置线负载模型
set_load ## ## //设置端口负载
alib_analyze_libs //生成alib库
set_max_area ## //设置最大面积约束
write -f ddcverolog -hier -out ## //写出文件
list_designs //列出所有设计
list_libs //列出所有库文件
report_constraint -all_violators //列出所有时序或面积的违例
report_timing //列出时序违例
remove_design -designs //移除设计
read_db ## //读入db库文件
redirect -file ## {report_lib ##} //重定向输出
dcprocheck //检查tcl脚本语法是否正确
read_verilog ## //读入verilog设计文件
read_file -f verilog ## //读入Verilog设计文件
check_timing //检查时序约束是否完备以及是否出现冲突
report_clock //显示时钟特性
report_clock -skew //显示时钟skew
report_ports -verbose //显示所有端口约束
write_script -out ##.wscr //写出约束文件
diff ## ## //比较两个约束文件##.wscr是否一致
group -design ## -cell ## [get_cells "## ##"] //将两个模块合并为一组
ungroup -start_level # ## //将一个模块分开
set_ungroup [get_designs ##] false //设置模块不被自动打散
group_path -name ## -from ## -to ## -weight 5 -critical_range 0.2 //设置时序分析的路径组
set_critical_range 2 [current_design] //设置时序优化范围
check_design //检查读入设计是否发生错误
link //将读入的设计链接到一起
set_operating_conditions -max ## -max_library ## //设置工作条件
set auto_wire_load_selection false //去除工具自动选择线负载模型
report_hierarchy -noleaf //查看设计模块的树状结构
report_power_calculation //显示功耗计算详细过程
report_delay_calculation //显示延时计算的详细过程
set_max_delay ## -from [get_ports ##] -to [get_ports ##] //设置路径最大延迟
set_min_library //设置最小延时库
set auto_wire_load_selection false //取消自动选择的线负载模型
get_attribute //获取目标的属性
set_max_capacitance //设计规则约束-最大电容
set_max_transition //设计规则约束-最大转换时间
set_max_fanout //设计规则约束-最大扇出
set hlo_resource_allocation area //设置面积优先的综合策略
set_structure true //综合成共享逻辑表达式的形式
set_flatten true -effort low | medium | high //将逻辑表达式综合成最小项的和的形式(low 、 medium、high其中一个就可以了)
set compile_auto_ungroup_delay_num_cells 100 //取消规模小于100的模块层次划分(默认值=500)
set compile_ultra_ungroup_dw true //取消designware层次划分(默认值为true)
uniquify //在多次例化时,为cell产生唯一的名字
uniquify_naming_style //设置uniquify的命名规则
compile_ultra //在compile的基础上进行优化,加上-timing选项时,比如一个寄存器驱动多个寄存器时,可能会违反设计规则,DC会把就驱动寄存器进行复用,同时把被驱动的进行分割
set_dont_retime ## true //不进行retime优化
report_path_group //查看路径组
report_auto_ungroup //查看综合后被打散的模块
set_optimize_registers true -design PIPELINE //设置pipeline的retime操作
report_cells //查看cell信息
set_dont_touch_network [get_clocks clk] //防止时钟network在综合时被更改
set_clock_gating_check -setup ## -hold ## [current_design] //门控时钟约束
report_timing_requirements //报告设计中的时序例外
reset_path -from ## //去掉不要的路径
set_disable_timing [get_cells CLOCK_GEN/U1] -from ## -to ## //不对cell内部端口之间进行时序分析
set_case_analysis 0 [get_pins U1/sel] //在时序分析时,对端口设置值
create_generated_clock -name Int_Clk -source [get_pins CLOCK_GEN/U2/CP] -divide_by 2 [get_pins CLOCK_GEN/U2/Q] //设置分频电路时钟
set_clock_group -name false_grp1 -logically_exclusive -group clk -group vclk //设置两个时钟组的关系
set_fix_multiple_port_nets -all -buffer_constants [get_designs *] //防止网表输出出现assign语句
change_names //设置网表变量命名规则
define_name_rules //设置网表变量命名规则
set_verilogout_no_tri true //防止网表出现assign语句
set_verilogout_equation true //防止网表出现assign语句
最后
以上就是个性西牛为你收集整理的DC命令总结的全部内容,希望文章能够帮你解决DC命令总结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复