加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入
  • 正文
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

浅谈逻辑综合之概述

09/20 11:45
4.6万
阅读需 7 分钟
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

什么是逻辑综合

逻辑综合是将较高抽象级别的设计(RTL)转化为可实现的较低的抽象层级的设计的过程。就是将RTL转化成门极网表的过程。

逻辑综合过程可以针对时序、面积、可测性(DFT)、功耗(power)、运行时间(run time)进行优化。

逻辑综合的输入文件:RTL(file list)、物理库、时序库、逻辑综合flow、时序约束(clock、IO、异步设置等)、环境参数设置、upf(low power flow)。

逻辑综合的输出文件:netlist、sdc、ppa  report等。

逻辑综合的EDA工具:Synopsys的DC(design  compiler)和Cadence的genus是广泛使用的逻辑综合工具。

DC逻辑综合分为三个主要过程:翻译(Translation)+逻辑优化(logic optimization)+门级映射(mapping)。

逻辑综合的目标

获得门级网表;插入时钟门控;逻辑优化、插入DFT逻辑;保持RTL和Netlist之间的逻辑等效性。

逻辑综合的输入和输出文件

输入:RTL、library、Constraints、UPF(power intent);

输出:Netlist、Report(Qor、Area、Timing等),UPF等

HDL文件生成和库

HDL文件(以VHDL或Verilog或SystemVerilog编写);HDL分区和coding style会影响逻辑综合和逻辑优化过程;library基于所使用的的工艺制程。

库有不同的分类:目标库、单元库、符号库、合成库(DesignWare)等。

读取文件

有两种方法可以将文件读入DC,一种是使用Analyze和Elaborate命令;另一种是使用read_file命令。

Analyze命令做如下动作

读取HDL源文件并做语法检查和Synopsys规则检查;

在转化成通用逻辑门之前,检查文件本身的错误;

以中间文件的形式创建HDL库对象;

把中间文件存储在define_design_lib命令指定的路径。

Elaborate做如下动作

 

将design转化成GTECH形式;

允许更改source file中定义的parameter;

将design中的算术运算符替换为Design ware组件;

Link design;

Read file命令执行如下操作

执行与Analyze和Elaborate相同的检查动作;

不为verilog创建中间文件;

为VHDL创建中间文件;

不能自动完成link动作,需要在read_file命令完成后,手动去做link动作;

可以读取不同的文件格式,如VHDL、Verilog、System Verilog、ddc。

设计环境约束

读入设计后,就需要定义设计环境约束设计约束。Design environment包括Operating Condition 、 Wire Load Model、System interface requirements。

Operating condition:包括工艺、电压、温度要求(PVT);可以使用set_operating _condition在dc_setup.tcl中做相关设置。

Wire Load Model:允许DC估算net长度和扇出对电阻电容、net area的影响;并使用相关估算值来计算net dealy;一般,DC会使用零线负载模型。

System interface:和design交互的外部逻辑的约束,包括输入强度设置(set_driving_cell)、输出电容负载(set_load)、输出扇出负载等。

可以使用report_lib、report_design等命令查看已经加载的Design environment设置。

Design rule constrain和Design optimization constrain

DC进行design优化时,主要使用两种类型的约束。

设计规则约束(Design rule constrain):逻辑库定义了这种隐式约束,这些约束是design必须满足的。默认情况下,设计规则约束优先级高于设计优化约束。

设计优化约束(Design optimization constrain):这是显式约束,DC会尝试满足这些约束,但不会以违反设计规则约束为代价。

 

DC会试图同时满足两种约束,但设计规则约束优先。

默认情况下,DC根据重要性,按以下顺序考虑各种约束:

设计规则约束:

Connection class、multiple port nets、maximum transition time、maximum fanout、maximum capacitance。

设计优化约束:

Maximum  delay、minimum delay、maximum power、maximum area。

时序约束

时序约束需包括:时钟、IO时序要求、组合逻辑delay要求、false path设置等。

相关链接:

design中的timing path之R2R

design中的timing path之I2O

design中的timing path之 R2O

Design中的timing path之 I2R

相关推荐

电子产业图谱

前华为海思工程师;与非网2022年度影响力创作者;IC技术圈成员。

微信公众号