【数字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)

 后续将持续更新~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值