DC LAB1 FLOW及问题记录

文章目录

1. 数据准备

在这里插入图片描述

1.1 .synopsys_dc.setup

  • 一般synopsys_dc.setup 文件有三个
    • 一个在synopsys的安装目录下,这个文件最好不要动;
    • 一个在用户目录下,这个文件没事也不要动他;
    • 还有一个当前工作目录下,也就是启动DC的目录下(没有就需要自己创建),这个是要我们自己写的,这个想怎么动就怎么动。
  • 我们配置DC的启动环境,就是在启动的目录创建.synopsys_dc.setup并且修改它。
  • 此外,这个文件名字不能随意更改,按照默认的名字来,DC在启动的过程中会自动读取各个名字的文件。(如果改变了它的名字,就需要通过source命令source一下)。
    在这里插入图片描述
  • aliases相当于别名的设置,
  • history设置保存历史命令的条数
  • source的两个文件如下所示

1.2 common_setup.tcl&&dc_setup.tcl

在这里插入图片描述

search_path

  • 搜索路径, 就是用来查找相关需要使用的工艺库呀,设计文件,脚本等

target_library

  • 指定工艺库的名称,是综合后电路网表要最终映射到的库, 读入的 HDL 代码首先由 synopsys 自带的 GTECH 库转换成 Design Compiler 的通用格式, 然后通过综合 进行gate mapped 和 optimization 。
  • 工艺库是由 Foundary 提供的,一般是.db 的格式,.db 格式可以通过输入.lib到 library complier 工具 转化过来,它们包含的信息是一致的

link_library

  • 链接库 link_library 设置模块或者单元电路的引用,对于所有 DC 可能用到的库,我们都需要在link_library 中指定(包括要用到的 IP、DesignWare),一般与target_library相同
  • 如果需要将已有的设计从工艺A转到工艺B时,可以将当前的单元综合库A设为link_library,单元综合库B设为target_library,重新映射一下就可以

symbol_library

  • 提供 Design Vision GUI 中设计实现的图形符号,如果使用脚本模式而不使用 GUI,此库可不指定

synthetic library

  • 这个其实就是designware library, 文件中的xxxx.sldb
  • 对于扩展的 DesignWare,需要在 synthetic_library 中设置,同时需要在 link_library中设置相应的库以使得在链接的时候 DC 可以链接到

create_mw_lib

  • 创建一个mw库文件,这里的库名称是$mw_design_library(实际上是变量设置的TOP_LIB)
    • create_mw_lib的直接参数是设计库名称
    • -technology 指定的参数是工艺库名称(.tf)
    • -mw_reference_library 指定的参数是参考标准单元库名称。

Milkyway database

  • Synopsys使用一个统一的Milkyway database可以在Synopsys Galaxy™Design Platform中所有的EDA工具之间进行数据交换,避免了工具之间文件格式转换的大量时间花费,文件之间语义不匹配造成的信息丢失等问题。Design Compiler可以write_milkyway一个mapped之后的Milkyway database IC Compiler从Milkyway database中读取设计信息和库信息,然后执行placement, clock tree synthesis和 routing。也可以将不同阶段的设计信息再保存为Milkyway database。若tluplus文件没有时,可由foundry给的.itf转成tluplus。使用的是Synopsys公司的star_RC.

set_tlu_plus_files

  • 设置寄生参数库即寄生RC查找表,ICC使用网络几何形状以及该文件来计算金属线的寄生参数的,包括电阻、电容、耦合电容等等。

  • TLU+是存储RC系数的二进制表格式。TLUPlus模型通过包括宽度,空间,密度和温度对电阻系数的影响,可以实现精确的RC提取结果。

  • itf(Interconnect Technology Format) : 若foundry只提供该格式,可通过synopsys的StarRC将其转换为TLU+,

    • starrc -itf2tluplus <input.itf> <output.tluplus>

MAP_FILE

  • 定义工艺库和寄生参数库的映射关系库的位置

MY_DESIGN_LIB

  • 定义顶层设计库的变量名称

DC topo

  • 这里使用的综合是dc在topo模式下的综合,已经有了相对严格真实的延时,而不需要使用线负载模型中的延时参数,会使得综合时序更接近真实情况。一般在自己实验阶段compile就已经可以了,这里我们需要使用的编译命令是compile_ultra
  • 求延迟的方式:
    • 线负载模式:将负载等效成RC模型,得到延迟信息;但延迟包括互连线延迟和基本单元延迟,所以有误差
    • 拓扑模式:在DC综合中通过物理库,预布局吐出脚本约束,得到延迟信息

2. 启动DC2018

#手动一步一步敲命令
dc_shell-t -64bit -topo
start_gui
#脚本批量执行
#
dc_shell-t -64bit -topo -f .solutions/dc.tcl | tee dc.log

启动DC的三种方式

一、Design Vision(GUI)

  • design_vision -topographical_mode

  • 使用拓扑结构启动时必须提供相关的物理约束文件

二、DC Shell(shell)

  • dc_shell -topographical_mode

  • source命令添加约束文件

三、Batch mode(批处理)

  • dc_shell -topo -f run.tcl | tee -i run.log

  • 利用tcl脚本启动DC,并将信息输出至run.log文件
    在这里插入图片描述
    在这里插入图片描述


2.1 verify that the libraries are set up correctly

  • 查看是否与我们设置的一致
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

2.2 Check the consistency between the logical and physical libraries

  • 检查逻辑库和物理库之间的一致性
    在这里插入图片描述
    在这里插入图片描述

2.3 Check the consistency between the TLUPus and the Technology files:

  • 检查 TLUPus 和技术文件之间的一致性
    在这里插入图片描述

3. (读入设计文件) file—> read —> xxx.v

在这里插入图片描述


  • GUI操作等效于如下命令
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/a1524c95b9c24f958fc5f9ac2eaf095c.png

4.Link

  • 查看当前要综合的设计是否缺少子模块:返回值是1,说明子模块完整

在这里插入图片描述
在这里插入图片描述
等效于如下命令
在这里插入图片描述


5. 保存为unmapped/xxx.ddc

在这里插入图片描述

  • 综合前的门级网表依然是gtech format
    在这里插入图片描述
    在这里插入图片描述

6. list of designs and libraries in memory

在这里插入图片描述


目前完成了Read and translate RTL

在这里插入图片描述

check_design检查设计中是否存在其他隐患问题


7. Constrain TOP with a Script file (设置约束文件)

  • 之前设置了search path所以这里可以找到
    在这里插入图片描述

7.1 check_timing

  • check_timing可以检查设计中是否有路径没有被约束,每一条路径都应该约束到,如果真的有哪一条不需要约束也应该设置成false path。

8. complie_ultra(闪退可以试试重开dc,dc_shell-t -64bit -topo启动)

在这里插入图片描述

  • compile ultra 已自动展平或“取消分组”子设计 DECODE、FSM 和 COUNT(可以通过set ungroup false来设置group),以达到最佳时序和面积结果。这里的原理图中的标准单元就已经不是GETCH的形式了。
  • TOP层,已经没有层次划分了

在这里插入图片描述

在这里插入图片描述

  • 现在的逻辑门就是target library中设置的标准单元库文件了,不再是gtech了,但是现在TOP不是ungroup的形式了
compile_ultra has automatically flattened or “ungrouped” the sub-designs decode , fsm and count , to generate optimal timing
and area  results (you will learn about “auto ungrouping” later in this course).
You will now see gates from the target technology library - no longer GTECH gates.

9. Generate Reports and Analyze Timing

在这里插入图片描述


9.1 report_constraint -all_violators( 查看所有违例)

  • This report lists a summary of all constraint violations
  • You should see several max_delay/setup violations.
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

9.2 Report_timing

这里是一个input2reg型的时序报告,skew是0,因为综合时还没有做时钟树,所以launch clock path和capture clock path都是ideal的
在这里插入图片描述

  • 要想报出更多报告,可以执行如下命令
    在这里插入图片描述

9.3 report_area

在这里插入图片描述


10.Create endpoint slack histogram在这里插入图片描述

  • A “green” bin indicates that all timing paths within that bin meet timing.
  • A “red” bin indicates violating paths.
  • When a bin is selected, it turns “yellow”, and some details of the paths are listed in the right section of the dialog box.
    在这里插入图片描述
    在这里插入图片描述

10.1 Create PathSchematic of Selected Logic” button

在这里插入图片描述

10.2 Create Path Schematic of Path to Selected Endpointed

在这里插入图片描述


11.Write mapped/ddc

在这里插入图片描述

  • mkdir新建一个
    在这里插入图片描述
    在这里插入图片描述

同file save as
注意勾选
在这里插入图片描述

  • 此时的门级网表就是标准单元库中对应的逻辑门
    在这里插入图片描述

12.保存cmd为tcl方便下次使用

在这里插入图片描述

#dc.tcl是我们保存的cmd脚本
dc_shell-t -64bit -topo -f scripts/dc.tcl

13. 退出设计并检查

在这里插入图片描述


14. List a history of all commands executed since invoking Design Vision

在这里插入图片描述

analyze violation path

在这里插入图片描述
在这里插入图片描述


问题总结

问题1 DC check_library 提示如下error

Error: The check_library command failed to run. Check the installation of Library Compiler. (LCSH-3)

library complier提示没有安装,但是实际安装了library compiler,只是没有做关联。
解决方法

su root
cd /usr/synopsys/syn/O-2018.06-SP1/linux64/syn/bin
ln -s /usr/synopsys/lc/O-2018.06-SP1/linux64/lc/bin/lc_shell_exec  lc_shell_exec

问题2 check library始终都有问题

  • windows下不要解压,一定要去linux下用tar去解压
  • windows解压cell名字就变成ad01d0_1,而实际是ad01d0:1,所以check_library会报错
DC_Labs/ref/libs/mw_lib/sc/CEL
DC_Labs/ref/libs/mw_lib/sc/FRAM
这两个目录下的cell的文件名都变成了下划线
#use rename cmd

问题3 compile_ultra 闪退

启动命令改为如下

dc_shell-t -64bit -topo

在这里插入图片描述

  • 5
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值