- 脚本最终成品。.synopsys_dc.setup与syn-script.tcl。前面的文件定义各种库以及各种搜索路径,后者定义综合的约束以及输出结果文件。
- 启动dc,dc会自动的加载第一个文件,其中定义了各种路径以及库,默认用的是TSMC90.
- 用于综合新的设计大概需要修改后者文件里面的相关信息,注意其中
# list of all HDL files in the design
set myFiles [list add.v] //此处修改为设计文件,注意前者文件中的搜索路径正确
set fileFormat verilog ;# verilog or VHDL
set basename add ;# Top-level module name
set myClk clk ;# The name of your clock
set virtual 0 ;# 1 if virtual clock, 0 if real clock//此处为是否虚拟时钟,纯组合逻辑需要虚拟时钟
# compiler switches...
set useUltra 1 ;# 1 for compile_ultra, 0 for compile
# mapEffort, useUngroup are for
# non-ultra compile...
set mapEffort1 medium ;# First pass - low, medium, or high
set mapEffort2 medium ;# second pass - low, medium, or high
set useUngroup 1 ;# 0 if no flatten, 1 if flatten
# Timing and loading information
set myPeriod_ns 100 ;# desired clock period (sets speed goal)
set myInDelay_ns 0.25 ;# delay from clock to inputs valid
set myOutDelay_ns 0.25;# delay from clock to output valid//此处三个时间设置,第一个周期时间,输入延时,输出延时。
set myInputBuf INVXL ;# name of cell driving the inputs//指定下面指定的target library库中的一个用来给设计驱动输入的单元信号,可以在工艺库文件中找到slow.lib文件,在里面查找可用的cell。注意.lib文件经过处理生成的db文件,db文件是给软件看的,lib文件是给设计者看的。
set myLoadLibrary slow;# name of library the cell comes from,target library//此处定义库文件,注意与target library 对应,但是选择.lib文件,由于格式需要,需要省略后缀,不然无法正确加载。
set myLoadPin Y;# name of pin that outputs drive//上面指定单元cell的一个输出pin
注意综合汇报警告:warning: design rule attributes from the driving cell will be set on the port 。这是由于set了driving cell,在这个port上的drc会使用driving cell的。
如果你确定这么设定是ok的
- 注意输出文件的选择,在后者文件中此处选择。需要什么输出在其中选择就行。然后在改work目录中综合完就会有相应的文件,
# should be set to 1 if you want the file, 0 if not
set write_v 1 ;# compiled structural Verilog file
set write_db 0 ;# compiled file in db format (obsolete!)
set write_ddc 1 ;# compiled file in ddc format (XG-mode)
set write_sdf 0 ;# sdf file for back-annotated timing sim
set write_sdc 1 ;# sdc constraint file for place and route
set write_rep 1 ;# report file from compilation
set write_pow 0 ;# report file for power estimate
5综合方法1:dc_shell > source syn-script.tcl,具体原理见桌面的dc笔记.生成的report在work目录下。(再tcl文件中进行约束以及生成文件的选择)
综合方法2:dc_shell > read_verilog -rtl [list add.v add2.v] > link > report area ,report timing。之类。
详情见连接(9条消息) DC使用教程系列1-.synopsys.dc.setup的建立_.synopsys_dc.setup_ciscomonkey的博客-CSDN博客。
综合工具-DesignCompiler学习教程 - 知乎 (zhihu.com)
最全面的是连接二里面的那些博客连接。
6 dc的图像化操作见连接https://blog.csdn.net/qq_40223983/article/details/96426938
7.# compiler switches...
set useUltra 1 ;# 1 for compile_ultra, 0 for compile
# mapEffort, useUngroup are for
# non-ultra compile...
set mapEffort1 medium ;# First pass - low, medium, or high
set mapEffort2 medium ;# second pass - low, medium, or high
set useUngroup 1 ;# 0 if no flatten, 1 if flatten
中的第一条的介绍见连接:(9条消息) DC 编译命令_254、小小黑的博客-CSDN博客
comple_ultra跟compile一样,是进行编译的命令。compile_ultra命令适用于时序要求比较严格,高性能的设计。使用该命令可以得到更好的延迟质量( delay QoR ),特别适用于高性能的算术电路优化。该命令非常容易使用,它自动设置所有所需的选项和变量。
8综合的时候把它关了,感觉更占时间,并且把时间约束放宽,综合时间大大减少。
9教材上也有各路工具的使用介绍《数字VLSI芯片设计》。其中附录dc的脚本更加简单。
实例操作流程
1.将上述两个文件放入工作目录中(根据上面的文件内容介绍和实际项目需求修改约束条件和目标文件等信息),终端键入dc_shell命令
2.此时dc会自动加载.synopsys_dc.setup文件中的内容,如图所示
3.键入source syn-script.tcl,此时dc会运行tcl文件中的命令,进行dc综合
(相关报告较长,无法截图)
4.完成后可以在该目录下找到报告文件(需要在tcl文件中设置想要生成的报告文件)