前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >综合设置及实操

综合设置及实操

作者头像
数字芯片社区
发布2022-09-19 11:33:08
1K0
发布2022-09-19 11:33:08
举报
文章被收录于专栏:数字芯片数字芯片

本节主要介绍: 启动环境设置 DC启动的方式 综合流程实操 DC脚本运行

启动环境设置

在启动DC之前,首先要配置DC启动环境,指定工艺库和综合库。

DC的启动配置文件.synopsys_dc.setup,配置了DC启动过程中要执行的库等信息。

.synopsys_dc.setup,这个文件名不能更改,必须是.synopsys_dc.setup,这个文件存在于3个位置:

  • synopsys的安装目录下,基本不需要动这个文件;$SYNOPSYS/admin/setup(/opt/Synopsys/dc/admin/setup/.synopsys_dc.setup)
  • 用户目录下,基本不需要动这个文件;~user(/home/IC/.synopsys_dc.setup)
  • 当前工作目录下, (/home/IC/dc/DC_work/work/.synopsys_dc.setup) 配置DC的启动环境,就是在启动的目录创建.synopsys_dc.setup文件并进行修改。

当启动DC时,首先会在当前启动位置寻找.synopsys_dc.setup文件并加载,如果没有找到则回到当前用户主目录下寻找,若还没有找到则加载DC安装路径下的.synopsys_dc.setup。

新建并修改.synopsys_dc.setup文件:

.synopsys_dc.setup

其中:

  • 设置工程路径
  • DC运行时的工作路径(WORK_PATH);
  • DC软件安装路径(DC_PATH);
  • 指定设计和库的工作路径:define_design_lib work -path $WORK_PATH

指定四个相关库路径:

  • 链接工艺库(link library):链接库是target_library一样的单元库或者IP核。 *号表示开辟一块单独的内存空间给DC使用;
  • 目标工艺库(target library):DC将RTL级的HDL描述映射到实际的门级电路时所需要的标准单元库。是工艺厂商提供的工艺库。
  • 图形化符号库(symbol_library)(SYMBOL_PATH):指定符号库的路径,关联图形化库,使用GUI界面的时候,可以看到综合得到的门级网表的图形化界面。

文件位置:工艺库SMIC_180下

代码语言:javascript
复制
/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安装目录下

代码语言:javascript
复制
/opt/Synopsys/Synplify2015/libraries/syn

文件位置

上面的库设置仅仅适用于逻辑综合,也就是非拓扑模式下的综合; 拓扑模式下,需要用到物理库,或者相关的物理布局等信息;

  • create_mw_lib :主要使用DC的物理综合的时候,需要生成物理库;

set与set_app_var区别:

set: 自己自定义的一些变量;

set_app_var :定义DC内部的系统变量等,如果不是合法的名字set_app_var会报错。 主要指定有:search_path、synthetic_library、target_library、link_library、symbol_library 以及其他的一些命令开关等。

DC启动的三种方式

1、design_vision(GUI)

代码语言:javascript
复制
design_vision &
代码语言:javascript
复制
design_vision -topographical_mode &

使用拓扑结构启动时必须提供相关的物理约束和物理库;

2、dc_shell(shell)

代码语言:javascript
复制
dc_shell | tee -i run.log

3、batch mode

前面两种方式只是将DC启动起来,还没有开始工作,需要通过source命令把脚本写进去以后DC读取才开始工作。

而这种批处理模式,在启动的同时,DC执行run.tcl脚本即可工作,其中包括约束要求等:

代码语言:javascript
复制
dc_shell -topo -f run.tcl | tee -i run.log

-topo 使用拓扑模式启动DC,启动的同时执行run.tcl脚本,并且把启动过程显示在终端并打印到run.log中。

综合流程实操

DC综合流程:

1.准备好文件 2.启动DC 3.读入设计前的检查 4.读入设计和查看设计及库 5.约束设计 6.综合 7.综合后检查与优化 8.保存优化后的设计

工程目录:

  • config: DC的配置文件
  • rtl:rtl代码
  • scripts:脚本
  • unmapped:DC转换后的GTECH文件或unmapped.ddc文件
  • mapped:编译后的网表文件
  • report: 综合后的报告
  • work:运行DC的工作夹

启动DC和检查库

1.启动DC

代码语言:javascript
复制
dc_shell | tee -i run.log

可以看到log位置,说明库加载ok:

代码语言:javascript
复制
start load .synopsys_dc.setup file     
end of load .synopsys_dc.setup file

2.读入设计前检查:

查看设置的库文件:

代码语言:javascript
复制
printvar target_library     
printvar link_library    
或者
get_app_var target_library    
get_app_var link_library    

检查逻辑库信息:

代码语言:javascript
复制
check_library

3.读入设计文件:

代码语言:javascript
复制
read_verlog [list TOP.v]
或者
read_vhdl [list TOP.vhd]

或者

代码语言:javascript
复制
analyze -format verilog [list TOP.v] //读入设计
elaborate -architecture verilog TOP   //设置顶层

dc会自己寻找库文件和rtl文件:

  • 执行链接命令:查看当前要综合的设计是否缺少子模块
代码语言:javascript
复制
link
  • 查看设计文件,*代表当前设计顶层 :
代码语言:javascript
复制
list_designs
  • 显示当前设计顶层 :
代码语言:javascript
复制
current_design
  • 更改当前设计顶层:
代码语言:javascript
复制
current_design COUNT
  • 检查设计:如果返回0,表明当前设计存在问题,无法综合;
代码语言:javascript
复制
check_design

4.检查库

  • 查看工艺库和synopsys库文件:
代码语言:javascript
复制
list_libs
  • 查看库内容(需要安装Library Compiler):
代码语言:javascript
复制
report_lib ss_1v62_125c

5.以ddc的格式保存未映射的设计:

代码语言:javascript
复制
write -hierarchy -format ddc -output ../unmapped/TOP.ddc

其他:查看命令解释:

代码语言:javascript
复制
man set_app_var    
set_app_var -help

设置约束

代码语言:javascript
复制
source TOP.con

检查时序:检查有无路径没有约束

代码语言:javascript
复制
check_timing

综合

代码语言:javascript
复制
compile

综合后,进行检查约束是否违例:

代码语言:javascript
复制
report_constraint -all_violators

查看最差路径时序

代码语言:javascript
复制
report_timing -delay_type max

保存综合后的设计

保存网表:

代码语言:javascript
复制
write -format verilog -output ../mapped/TOP_netlist.v

以ddc的格式保存综合后的设计:

代码语言:javascript
复制
write -hierarchy -format ddc -output ../mapped/TOP.ddc

DC脚本运行

代码语言:javascript
复制
dc_shell -f ../scripts/run_1.tcl | tee -i run.log
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-05-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数字ICer 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 启动环境设置
    • 新建并修改.synopsys_dc.setup文件:
      • set与set_app_var区别:
      • DC启动的三种方式
      • 综合流程实操
        • DC综合流程:
          • 工程目录:
          • 启动DC和检查库
            • 1.启动DC
              • 2.读入设计前检查:
                • 3.读入设计文件:
                  • 4.检查库
                    • 5.以ddc的格式保存未映射的设计:
                      • 其他:查看命令解释:
                      • 设置约束
                      • 综合
                      • 保存综合后的设计
                      • DC脚本运行
                      领券
                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档