本节主要介绍: 启动环境设置 DC启动的方式 综合流程实操 DC脚本运行
在启动DC之前,首先要配置DC启动环境,指定工艺库和综合库。
DC的启动配置文件.synopsys_dc.setup,配置了DC启动过程中要执行的库等信息。
.synopsys_dc.setup,这个文件名不能更改,必须是.synopsys_dc.setup,这个文件存在于3个位置:
当启动DC时,首先会在当前启动位置寻找.synopsys_dc.setup文件并加载,如果没有找到则回到当前用户主目录下寻找,若还没有找到则加载DC安装路径下的.synopsys_dc.setup。
.synopsys_dc.setup
其中:
指定四个相关库路径:
链接工艺库
(link library):链接库是target_library一样的单元库或者IP核。
*
号表示开辟一块单独的内存空间给DC使用;目标工艺库
(target library):DC将RTL级的HDL描述映射到实际的门级电路时所需要的标准单元库。是工艺厂商提供的工艺库。图形化符号库
(symbol_library)(SYMBOL_PATH):指定符号库的路径,关联图形化库,使用GUI界面的时候,可以看到综合得到的门级网表的图形化界面。文件位置:工艺库SMIC_180下
/opt/Foundary_Library/SMIC_180/smic_180/SM00LB501-FE-00000-r0p0-00rel0/aci/sc-m/symbols/synopsys
文件位置
综合库
(synthetic_library) :也叫IP库,synopsys做映射自带的库:DesignWare library优化算术器件DW_ foundation.sldb
和标准单元库standard.sldb
;文件位置:dc安装目录下
/opt/Synopsys/Synplify2015/libraries/syn
文件位置
上面的库设置仅仅适用于逻辑综合,也就是非拓扑模式下的综合; 拓扑模式下,需要用到物理库,或者相关的物理布局等信息;
set
: 自己自定义的一些变量;
set_app_var
:定义DC内部的系统变量等,如果不是合法的名字set_app_var会报错。
主要指定有:search_path、synthetic_library、target_library、link_library、symbol_library 以及其他的一些命令开关等。
1、design_vision(GUI)
design_vision &
design_vision -topographical_mode &
使用拓扑结构启动时必须提供相关的物理约束和物理库;
2、dc_shell(shell)
dc_shell | tee -i run.log
3、batch mode
前面两种方式只是将DC启动起来,还没有开始工作,需要通过source命令把脚本写进去以后DC读取才开始工作。
而这种批处理模式,在启动的同时,DC执行run.tcl脚本即可工作,其中包括约束要求等:
dc_shell -topo -f run.tcl | tee -i run.log
-topo 使用拓扑模式启动DC,启动的同时执行run.tcl脚本,并且把启动过程显示在终端并打印到run.log中。
1.准备好文件 2.启动DC 3.读入设计前的检查 4.读入设计和查看设计及库 5.约束设计 6.综合 7.综合后检查与优化 8.保存优化后的设计
dc_shell | tee -i run.log
可以看到log位置,说明库加载ok:
start load .synopsys_dc.setup file
end of load .synopsys_dc.setup file
查看设置的库文件:
printvar target_library
printvar link_library
或者
get_app_var target_library
get_app_var link_library
检查逻辑库信息:
check_library
read_verlog [list TOP.v]
或者
read_vhdl [list TOP.vhd]
或者
analyze -format verilog [list TOP.v] //读入设计
elaborate -architecture verilog TOP //设置顶层
dc会自己寻找库文件和rtl文件:
link
*
代表当前设计顶层 :list_designs
current_design
current_design COUNT
check_design
list_libs
report_lib ss_1v62_125c
write -hierarchy -format ddc -output ../unmapped/TOP.ddc
man set_app_var
set_app_var -help
source TOP.con
检查时序:检查有无路径没有约束
check_timing
compile
综合后,进行检查约束是否违例:
report_constraint -all_violators
查看最差路径时序
report_timing -delay_type max
保存网表:
write -format verilog -output ../mapped/TOP_netlist.v
以ddc的格式保存综合后的设计:
write -hierarchy -format ddc -output ../mapped/TOP.ddc
dc_shell -f ../scripts/run_1.tcl | tee -i run.log