【数字IC】——逻辑综合(DC)-读入设计1

1、逻辑综合概述

目标使用Design Compiler(DC)综合生成满足时序与拥塞条件的门级网表。

  1. 读入层次化RTL
  2. 加载综合库、技术数据以及设计约束条件
  3. 时序分析和检查时序违例
  4. 采用从顶层至底层的DC技术对RTL进行综合
  5. 生成时序报告
  6. 使用DC GUI分析并改善布局拥塞
  7. 输出PR需要的文件

1.1 综合的三个步骤

综合 = 转化 + 逻辑优化 + 门级映射

转化:将RTL代码转化为为通用布尔逻辑(GTECH or unmapped ddc format)

逻辑优化+门级映射(compile):将GTECH转化为与工艺库对应的专用门(mapped ddc format)

补充:.ddc是Synopsys的一个格式,在优化的各个阶段都可以写出.ddc格式的文件。

2、DC工具的使用

2.1 启动DC的三种方式

Design Vision(界面可视化)

% design_vision -topographical_mode

DC Shell(脚本不成熟时使用)

% dc_shell -topographical_mode
dc_shell -topo > 

Batch模式(这种模式更加常用!!!

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

2.2 Linux DC Shell命令

获取路径信息以及文件名
dc_shell -topo > pwd cd ls

显示之前输入过的命令
dc_shell -topo > history

再次执行上一条执行的命令‘
dc_shell -topo > !!

执行历史记录中编号为9的命令
dc_shell -topo > !9

执行最近执行过的报告命令
dc_shell -topo > !rep

执行任何Linux命令
dc_shell -topo > sh <Linux_command>

获取任何Linux的变量值
dc_shell -topo > get_unix_variable <Linux_variable>

3、加载设计与技术数据

命令总览

% cd work_directory
% dc_shell

dc_shell -topo > read_verilog {a.v b.v top.v}
dc_shell -topo > set_app_var target_library ""
dc_shell -topo > set_app_var link_library ""
dc_shell -topo > current_design top
dc_shell -topo > link
dc_shell -topo > check_design
dc_shell -topo > write -f ddc -hier -out unmpd/top.ddc
dc_shell -topo > source -echo -verbose top.sdc
dc_shell -topo > check_timing
dc_shell -topo > compile -boundary -scan -map high
dc_shell -topo > report_constraint -all_violators
dc_shell -topo > change_names -rule verilog -hier
dc_shell -topo > write -f verilog -hier -out mpd/top.v
dc_shell -topo > write -f ddc -hier -out mpd/top.ddc
dc_shell -topo > exit

 CWD(Curent Work Directory):当前工作目录

3.1 Flat RTL Design

⭐⭐⭐设计流程

dc_shell -topo > read_verilog top.v

加载默认的GTECH库和用户指定的link库

将RTL加载到DC内存中

读入后RTL转化为GTECH(unmapped ddc format)

将其中某个设计模块设置为当前设计(current design)


dc_shell -topo > read_vhdl rtl.vhd

该命令会创建“VHDL设计库”,“VHDL设计库”默认名称为“WORK”,文件和目录默认放在CWD下。

为了使得CWD结构相对干净,可以将VHDL设计库重定向。

dc_shell -topo > define_design_lib WORK -path ./work
dc_shell -topo > read_vhdl rtl.vhd


set_app_var search_path '$search_path mapped libs cons'
read_verilog mapped/MYREG_mapped.v

如果CWD包含在search_path变量中,可以省略目录名。

默认search_path为:其中"."代表CWD

search_path = '. <Install_dir>/libraries/syn
                 <Install_dir>/dw/sim_ver
                 <Install_dir>/dw/syn_ver'


set_app_var target_library libs/65nm.db
printvar target_library
默认为your_library.db(不存在的库名称)

target_library是standard cell db,是综合目的库,用于在compile期间生成指定的门级网表。


set_app_var link_library "* $target_library"

 link_library是提供门级网表实例化的基本单元,门级网表的实例化的单元都来自于该库,链接库包括已经Translate的GTECH网表(*)(在DC内存中),standard cell db($target_library),macros(RAM、ROM、IP、etc)。

设置完target_library和link_library后,执行link操作。

link是设计中例化模块的过程。

此时RTL代码已经被Translate为GTECH(unmapped ddc format)

 后续将持续更新~~~

  • 14
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数字逻辑综合工具实践-DC(Design Compiler)是一种常用的数字电路设计综合工具,用于将高级语言或RTL(Register Transfer Level)描述的电路代码转化为门级网表,为后续物理布局布线提供基础。 DC具有以下几个主要功能和特点: 1. RTL综合:DC可以将高级语言(如Verilog或VHDL)编写的RTL描述代码转换为门级网表。通过RTL综合,设计工程师可以将抽象级别的设计逻辑转化为底层的门级逻辑,为后续的物理实现提供基础。 2. 优化功能:DC能够根据用户设定的综合约束进行逻辑优化,包括时序约束、功耗约束和布局约束等。综合工具会尽可能地优化电路,以满足用户的性能需求,并尽量减少功耗,提高面积利用率。 3. 时序分析:DC可以进行时序分析,帮助设计工程师评估电路的工作频率、时序要求是否满足。通过时序分析,可以预测电路的最大工作频率,从而保证电路在实际应用中能够正常工作。 4. 物理约束:DC可以根据用户设定的物理约束进行综合,包括布局约束、布线约束等。通过物理约束的设定,可以将综合工具生成的逻辑网表与实际布局布线的规范相匹配,提高物理实现的可靠性和可制造性。 数字逻辑综合工具实践-DC在现代集成电路设计中扮演着重要的角色。它可以将高级设计逻辑转化为底层门级逻辑,为后续的布局布线提供基础。它具有综合优化、时序分析和物理约束等功能,能够帮助设计工程师提高设计的性能、功耗和可靠性。在实际应用中,DC可以减少设计工程师的工作量,提高设计的效率和质量。因此,数字逻辑综合工具实践-DC是现代数字电路设计不可或缺的工具之一。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值