DC逻辑综合-梳理

一.DC逻辑综合概述

1.1 逻辑综合是在干嘛

把行为级的RTL代码在工艺、面积、时序等约束下转换成对应的门级网表。

  • 行为级RTL代码:RTL(Register Transfer Level)代码通常用于描述数字电路的硬件结构和数据流,而行为级的 RTL 代码则是在 RTL 的基础上,更侧重于对电路行为和功能的抽象描述,它处于比传统 RTL 描述更高的抽象层次。例如,在描述计数器时,行为级 RTL 代码可能使用类似count <= count + 1这样的语句来表示计数值的增加,而不详细描述具体的寄存器操作和组合逻辑实现。
  • 其它描述级别RTL 级描述、门级描述

1.2 综合的三个阶段

转换(translation)、优化 (optimization)、映射(mapping)

  • 转换:将高层语言描述的电路用门级的逻辑来实现
  • 优化:对已有的初始电路进行分析,去掉电路中的冗余单元,并对不满足限制条件的路径进行优化
  • 映射:将优化之后的电路映射到由制造商提供的工艺库上

1.3 输入输出文件有哪些

输入文件:RTL文件(.v(Verilog)、.vhdl(VHDL))、约束文件(.sdc(Synopsys Design Constraints))、工艺库文件(.db(Synopsys数据库格式))、库文件(.lib(Liberty格式))、脚本文件(.tcl

输出文件:综合后的门级网表、带时序约束信息的sdc文件

1.4 电路综合的一些要求

        1.4.1 综合脚本要求

        综合脚本是在数字电路设计中,用于指导综合工具(如 DC - Design Compiler)进行逻辑综合过程的一系列指令和设置的集合。它是一个文本文件,通常包含了一系列的命令和参数,用于控制综合工具的行为

        1)综合脚本必须是可重用的:需要自己实践发现其含义

        2)在添加限制条件时,必须对如下的对象施加限制条件:实践发现其含义

        1.4.2 综合结果要求

        实践

二.DC综合的流程

2.1 流程概述

1)设置综合环境,准备设计文件(一般为HDL文件):推荐参数化环境变量的配置,目录结构的设置,文件的管理,

2)指定综合的库文件(对应lab1_Task2的流程):链接库(link library) 、目标库(target library) 、符号库(symbol library)、综合库(synthetic library)

3)读取RTL(对应lab1_Task3的流程):综合工具会对RTL进行转化成布尔表达式,之后再将其映射成门级网表(有错误会报错) ,读入设计有两种实现方法实现方法:read  和  analyze & elaborate。下图给出了区分。

4)设置综合参数:定义对象包括工艺参数(温度、电压等),I/O 端口属性(负载、驱动、扇出),统计 wire-load 模型,设计环境将影响设计综合及优化结果。下面给出一个例子:

# 定义工艺参数
set_app_var process 130_nm
set_app_var temperature 25
set_app_var voltage 1.2

# 设置I/O端口属性
# 假设设计中有一个名为clk的时钟端口和一个名为data_in的输入端口,以及一个名为data_out的输出端口

# 设置时钟端口属性
set_clock_latency 0.5 [get_ports clk]  ;# 设置时钟端口clk的延迟为0.5ns
set_clock_uncertainty 0.1 [get_ports clk]  ;# 设置时钟端口clk的不确定性为0.1ns

# 设置输入端口属性
set_driving_cell -lib_cell bufbdl -pin Y [get_ports data_in]  ;# 设置输入端口data_in的驱动单元为bufbdl,驱动引脚为Y
set_input_delay 1.0 -clock clk [get_ports data_in]  ;# 设置输入端口data_in相对于时钟clk的输入延迟为1.0ns

# 设置输出端口属性
set_load 0.2 [get_ports data_out]  ;# 设置输出端口data_out的负载为0.2pf

# 统计wire-load模型
set_wire_load_model -name wl100 -library my_lib  ;# 选择名为wl100的wire-load模型,该模型位于my_lib库中

# 其他可能的设置,例如设置最大转换时间
set_max_transition 0.5 [all_outputs]  ;# 设置所有输出端口的最大转换时间为0.5ns

# 可以继续添加更多与设计环境相关的设置,根据具体需求进行调整

5)设置约束文件(对应lab1_Task6的流程

6)映射门级单元及优化

8)检查综合结果并输出报告(对应lab1_Task8的流程

  • report_constraint -all  (查看是否违规)
  • report_timing (查看时序报告)
  • report_area (查看面积情况)

关于这些实验的碎碎念 

跟着lab大概过一下就行,主要读的文件是tcl文件和source___下面的文件,其它文件有时间可以仔细看看。

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值