RTL综合技术

更新时间:2024-06-02 16:15:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

RTL综合技术

综合举例

什么是综合呢?synthesis,台湾翻译为-合成,其作用就是将硬件描述语言的RTL 级代码转变为门级网表。当然,现在综合技术已经很成熟了,还有推出的行为(behavioral)综合和物理(physical)综合。我们这里讨论的是逻辑(logic)综合。

综合技术是提高设计产能的一个很重要的技术,没有综合技术的发展,我们就不可能用HDL 实现电路的设计,因为HDL 开始是用来供电路仿真建模使用的,到了后来才把其中一部分子集作为可综合的语言,也就是我们使用的RTL CODE。很多人入门都用HDL 做设计,就以为HDL 就只是用来做设计的,没有看到HDL 最初始的一面,所以在验证的时候,就无法用好HDL 另外一部分强大的功能。有时间还是可以看看Writing Testbench 这本书,增强对HDL 语言在验证方面作用的了解,也是提高对HDL 认识很好的补充。

我们以DesignCompiler 为例子讲解综合的过程。

首先,综合就要必须要用综合库,这个你可以向厂家要,综合库可。以通过.lib 这个库文件转变成.db 综合库,这个过程可以在DesignCompiler 里面用实现,综合库里面有什么内容呢?.db 是无法阅读的,.lib 是可以阅读的,里面有库的基本参数的单位,库运行的条件,各种参数,最重要的是两个部分,一个是WLM-Wire Load Model,一个Gate 的定义(输入输出,功能,时序参数,面积等等);这只是StandarCell 的库,另外还有其他库,如RAM,DSP 的综合库,都以.db 的形式存在。

综合需要三种输入,一个是代码,一个是综合库,一个是综合脚本Script。综合脚本主要包括了以下内容,对综合工具环境的配置,对综合对象外部环境的设置(operation condiction),对WLD 的设置,对综合对象的时序的约束,综合策略,综合优化,综合报告和输出。

综合概述

综合技术的研究可以追溯到20 世纪60 年代,IBM 公司T.J.Watson 研究中心开发ALERT 系统,将寄存器传输级算法描述转化成逻辑级的结构实现;20世纪70 年代,综合技术发展迅速,但主要致力于较低层次的逻辑综合和版图综合;20 世纪80 年代中期,专用集成电路的广泛应用,要求芯片设计大规模、高性能、短周期,大大推动了从算法级设计描速向寄存器传输级设计描述转换的高层次综合技术。

逻辑综合概念

逻辑综合负责将寄存器传输级的结构描述转化为逻辑层的结构描述,以及将逻辑层的结构描述转化为电路的结构描述。在数字IC 设计领域常用的EDA综合工具中,最权威的要算Synopsys 公司提供的综合工具。Synopsys 公司提供的Design

Compiler(DC)是业界流行的、功能强大的逻辑综合工具。用户只需要输入设计规格的HDL 描述和时间约束,就可能得到较为优化的门级综合网表。此外,DC 还集成了功能强大的静态时序分析引擎,并支持与后端布局布线工具交互工作。

逻辑综合的流程 从某种意义而言,综合就是将设计的HDL 描速转化为门级网表的过程。Synopsys 公司提供的综合工具DC 把综合分为三个步骤进行:synthesis=translation+mapping+optimization。Translation 是指把设计的HDL描述转化为GTECH 库元件组成的逻辑电路;GTECH 库是Synopsys 公司提供的通用的、独立于工艺的元件库。Mapping 是指将GTECH 库元件映射到某一特定的半导体工艺库上,此时的电路网表包含了相关的工艺参数。Optimization 是根据设计者设定的时延、面积、线负载模型等综合约束条件对电路网表进一步优化的过程。

从综合工具的使用流程来看,综合包括综合环境的设置,综合约束,综合优化,综合与后端流程等。综合约束用来设定电路综合的目标,它包括设计环境约束、时间约束和面积约束。

设计环境约束指的是用来描述设计在工作时的温度、电压、驱动、负载等外部条件的一系列属性。基本的环境设置内容包括工作条件、负载模型、系统接口驱动或扇出能力等设置。这些属性约束在电路综合时是必须的,如果用户没有进行显示的说明,则DC 在综合的时候会采用默认值。

时间约束内容包括定义时钟、定义时钟网络的时间约束和时序路径时间约束设定,以及非同步设计的时间约束等。了解延迟的计算是定义恰如其分的时间约束的关键。Synopsys 公司支持几种延迟模型:一是CMOS 通用的延迟模型,二是CMOS 分段的线性延迟模型,三是非线性的查表延迟模型。深亚微米的设计,前两种模型并不常用,非线性的延迟模型以输入的迁越时间和输出电容负载为参变量计算延迟的时间值,其结果以表格的形式列出供DC 查找。

面积约束和时间约束之间是一对矛盾且需要折中的关系,DC 综合默认为时间约束比面积约束拥有更高的优先级。DC 优化时默认不进行面积优化,如果你关注于芯片的面积,可以使用set_max_area 命令设定面积的约束,使得DC完成时序约束之后继续进行面积优化。

在设定综合约束之后,一般并不马上进行综合优化。因为对于一个较大

的设计来说,综合一次时间很长。因此,综合前确认综合约束命令是否正确添加 到设计中时很有必要的,可以减少由于综合约束不正确重新综合优化的风险,减 少综合反复的时间。检查综合约束设置的命令有report_design, report_port–verbose,report_clock[-skew],report_constraints,report_timimg_requirement 等。

许多版图工具只接受Verilog 或EDIF 格式的综合网表作为输入。在综

合后提供Verilog 格式的网表送给后端的版图工具,IC 工程师还必须对综合的 网表做好以下处理:

1.彻底解决多次例化同一子模块的问题。

2.修正设计中部分连线的命名以简化综合网表。 3.删除整个设计中悬空的端口。

4.确保每个实例化单元的引脚都是可见的。

5.避免网表中存在assign 语句、传输门和三态连线的定义。 6.避免网表中存在不必要的门控时钟或门控复位信号。 7.避免网表中引用的实例化名不存在对应的实现逻辑。

在综合之后,我们还得对综合后的网表进行门级仿真,在门级仿真上Synopsys公司提供的VCS 仿真工具在服务器上运行的速度是比较快的。门级仿真过程中还有一步就是带时序反标的时序仿真,通过DC 或者PT 写出SDF 文件,在网表中将逻辑延迟和线延迟反标入电路中,模拟更加真实的情况。

本文来源:https://www.bwwdw.com/article/liq6.html

Top