800 likes | 1.15k Views
数字系统设计及 VHDL 实践. 专题二 专用集成电路 ( ASIC ) 设计概述. 主 讲 人:徐向民 单 位:电子信息学院. ASIC 介绍. ASIC : application-specific integrated circuit ,译为专用集成电路。 ASIC 的例子:玩具机器人芯片、卫星芯片、工作站 CPU 中存储器与微处理器之间的接口芯片、微处理器与其他逻辑单元作为一个单位的芯片。. ASIC 介绍. ASIC 类型 :. ASIC 介绍 — 全定制 ASIC.
E N D
数字系统设计及VHDL实践 专题二 专用集成电路(ASIC)设计概述 主 讲 人:徐向民 单 位:电子信息学院
ASIC介绍 • ASIC:application-specific integrated circuit,译为专用集成电路。 • ASIC的例子:玩具机器人芯片、卫星芯片、工作站CPU中存储器与微处理器之间的接口芯片、微处理器与其他逻辑单元作为一个单位的芯片。
ASIC介绍 • ASIC类型:
ASIC介绍—全定制ASIC • 全定制IC包括一些(也可能全部)定制的逻辑单元和全部定制的掩膜层。微处理器就是一个全定制IC。专门的全定制IC常为特殊应用而设计,所以称为全定制ASIC。
ASIC介绍—半定制ASIC • 基于标准单元的ASIC(cell-based IC,CBIC)。采用预先设计好的标准逻辑,如与门、或门、多路开关、触发器。 • 基于门阵列的ASIC。晶体管在硅圆片上是预先确定的,门阵列上预先确定的晶体管图案即为基本阵列。 通道式门阵列; 无通道门阵列; 结构式门阵列。
ASIC半定制与全定制 • 半定制集成电路设计方法: 设计者可以只完成硬件的逻辑门级结构描述,然后由集成电路制造者用门阵列或者标准单元方法将逻辑门级结构映射到版图,最后制造集成电路。 • 全定制集成电路设计方法: 设计者自行设计出集成电路的掩膜版图,由集成电路制造者根据版图数据制造集成电路。
ASIC介绍—设计流程 下面是设计ASIC的设计流程: 1、设计输入:HDL或电路图输入把设计输入给ASIC设计系统; 2、逻辑综合:采用HDL和逻辑综合工具产生网表; 3、系统划分:将大型系统划分为几个ASIC; 4、布图前仿真:检查设计功能是否正确;
ASIC介绍—设计流程 5、布图规划:在芯片上排列网表的模块; 6、布局:决定模块中单元的位置; 7、布线:单元与模块之间的连接; 8、提取:确定互连的电阻和电容; 9、布图后仿真:加上互连线负载后检查 设计能否正常工作。
ASIC介绍—设计流程 • 设计流程说明: 上述的步骤1~4为逻辑设计部分(前端设计),步骤5~9为物理设计部分(后端设计),其中有些是重叠的,如系统划分可认为是逻辑设计也可认为是物理设计。在执行系统划分的时候,必须既考虑逻辑因素也考虑物理因素。
“自底向上”和“自顶向下” 系统级 算法级 寄存器级 逻辑门级 电路级,版图级… 现代:自顶向下 传统:自底向上
典型ASIC设计流程 系统设计 系统验证 算法设计 算法验证 后端流程 RTL设计 RTL验证 逻辑综合 前端流程 向foundry提交网表 Foundry进行版图设计 Foundry返回最终网表 后仿真 foundry流片
详细ASIC设计流程 1)结构及电气规定。 2)RTL级代码设计和仿真测试平台文件准备。3)为具有存储单元的模块插入BIST(Design For test设计)。4)为了验证设计功能,进行完全设计的动态仿真。5)设计环境设置。包括使用的设计库和其他一些环境变量。6)使用 Design Compiler工具,约束和综合设计,并且加入扫描链(或者JTAG)。7)使用 Design Compiler自带静态时序分析器,进行模块级静态时序分析。8)使用 Formality工具,进行 RTL级和综合后门级网表的 Formal Verification。9)版图布局布线之前,使用PrimeTime工具进行整个设计的静态时 序分析。10)将时序约束前标注到版图生成工具。
详细ASIC设计流程 11)时序驱动的单元布局,时钟树插入和全局布线。12)将时钟树插入到DC的原始设计中。13)使用 Formality,对综合后网表和插入时钟树网表进行Formal Verification。14)从全局布线后的版图中提取出估算的时间延时信息。15)将估算的时间延时信息反标注到Design Compiler或者 Primetime。16)在Primetime中进行静态时序分析。17)在Design Compiler中进行设计优化。18)设计的详细布线。
详细ASIC设计流程 • 19)从详细布线的设计中提取出实际时间延时信息。20)将提取出的实际时间延时信息反标注到Design Compiler或者Primetime中。21)使用Primetime进行版图后的静态时序分析。22)在 Design Compiler中进行设计优化(如果需要)。23)进行版图后带时间信息的门级仿真。24) LVS和DRC验证,然后流片。
典型FPGA应用设计流程 系统设计 系统验证 算法设计 算法验证 EDA工具辅助完成 RTL设计 RTL验证 逻辑综合 布局布线 后仿真 数据流下载 硬件验证
ASIC介绍—ASIC单元库 • ASIC单元库是ASIC设计中的关键部分。对可编程ASIC而言,FPGA公司以成套设计工具形式提供逻辑单元库,通常用户没有其他选择; 对其他用户而言,用户有3种选择: 1、ASIC供应商提供单元库; 2、从第三方单元库供应商处购获单元库; 3、自行开发自己的单元库。
ASIC介绍—ASIC单元库 • ASIC的单元库的每个单元必须包括以下内容: • 物理版图 • 行为级模型 • Verilog/VHDL模型 • 详细时序模型 • 测试策略 • 电路原理图 • 单元图符 • 连线-负载模型 • 布线模型
ASIC介绍—经济学 • 我们把ASIC本身看作产品,并分析其成本组成:固定成本和可变成本。 • ASIC工艺对成本的影响:选择不同工艺类型的单元和器件,要考虑到它们的成本。 • 产品成本:产品成本=产品固定成本+产品可变成本×产品售出数量;
ASIC介绍—经济学 我们使用FPGA时,固定成本较低,使用MGA或者CBIC元件时的固定成本较高并包含掩膜、仿真、测试程序开发费用。 • ASIC固定成本:培训学习费用,设计ASIC的软硬件费用,测试费用,编程费用,掩膜成本等等。 • ASIC可变成本:每两年连续推出新的工艺技术驱使每门价格按每年30%速度下降;Moore定律。
ASIC库设计 • 库单元设计:库单元版图可由手工完成,也可使用某种符号版图形式。 • 门阵列设计:门阵列库中每个逻辑单元是预先设计好的,是采用确定的晶体管排列,即门阵列基本单元进行设计的。 • 标准单元设计:标准单元都是具有同样高度但不同宽度的矩形。 • 数据通路单元设计:数据通路触发器。
可编程ASIC • 有两种可编程ASIC类型:可编程逻辑器件(PLD)和现场可编程门阵列(FPGA)。 PLD:开始时只是作为能替代少量TTL的小器件 FPGA:IC芯片制造厂生产出未连接FPGA,由设计者设计输入和仿真,接着,专用软件产生一串二进制位,描述需要完成设计的外加的连接-配置文件。然后,将计算机连接到芯片上并对芯片进行编程,使其按照配置文件完成必要的连接。
可编程ASIC 所有的FPGA都有某些共同的要素。都有规则化的基本逻辑单元阵列,并用可编程技术进行配置。芯片输入和输出使用与基本逻辑单元不同的专用I/O逻辑单元。可编程互联方式形成这两种逻辑单元之间的连接。最后,设计者使用适合于各种编程技术和FPGA结构的定制软件设计和实现可编程连接。FPGA中的可编程技术决定了基本逻辑单元的类型和互联方式,由此也决定了输入和输出电路的设计以及编程方式。
FPGA开发模式 计算机 下载电缆 目标板
可编程ASIC逻辑单元 • 所有可编程ASIC或FPGA芯片都含有可以复制规则阵列的基本逻辑单元。共有3种基本逻辑单元: 1)基于多路选择器的基本逻辑单元; 2)基于查找表的基本逻辑单元; 3)可编程阵列逻辑。 • Actel ACT • Xilinx LCA • Altera FLEX • Altera MAX
可编程ASIC的输入输出(I/O)单元 • 所有可编程ASIC都含有某种输入/输出单元,用来驱动片外逻辑信号、接收和调节外部信号以及处理诸如静电保护类的事宜。 • DC输出 • AC输出 • DC输入 • AC输入 • 时钟输入 • 电源输入 • 其他I/O单元
可编程ASIC的互连 • 所有FPGA都包含某些类型的可编程互联连。互连的结构和复杂程度主要取决于编程技术及基本逻辑单元的结构。构筑互连的原始材料是铝基金属。
可编程ASIC的互连 蓝色:逻辑单元 红色:连线资源 黄色:输入输出块
可编程ASIC设计软件 • 设计系统:完成设计输入—仿真器仿真—布局布线—时序仿真。 • 逻辑综合:在FPGA设计中有两种方法实验逻辑综合。 一是采取硬件描述,优化逻辑,接着产生网表,然后网表通过软件将其映射成FPGA结构。 二是采用硬件描述对特定的FPGA结构直接优化逻辑。
低层次设计输入 • 设计输入的目的是描述一个微电子系统使其适合于电子设计自动化EDA工具。电子系统过去是现在大多仍是由现场元件构成(如TTLIC)。这些电子系统的设计输入通常是画一张图,即一张原理图。原理图展示了这些电路元件是如何连接起来的,即描述了ASIC的连接特性。这种设计输入方式成为原理图输入或原理图获取。用电路原理图描述ASIC电路如同用建筑结构图描述一座建筑。
低层次设计输入 • 电路原理图是我们易于理解和使用的一种形式,但是计算机只认识ASCII码和二进制码表示的原理图,我们称之为网表。原理图输入工具的输出就是这样一个包含了设计中所有元件及其互联信息的网表文件。
低层次设计输入 • 近来大部分ASIC设计输入都用原理图输入。随着ASIC电路的日益复杂,其他的一些设计输入方式也正变得越来越普遍。目前可选择的设计输入方式有图形方式。使用硬件描述语言作为设计输入使我们能够通过逻辑综合直接产生网表。
低层次设计输入 • 原理图输入是ASIC设计中最为通用的一种,有时也是最实用的。HDL正在取代传统的门级原理图输入,但是一些新的基于原理图输入的图形工具现在正在被用来生成大量的HDL代码。 • ASIC设计的原理图输入工具类似于印刷电路板PCB设计工具,如果认为ASIC的一个逻辑门和PCB中的一个零件是等同的话,那么一个规模较大的ASIC电路就包含成千上万个零件。
低层次设计输入 • 低层次设计语言 随着TTL让位于PLD,基于文本形式的设计工具变得更为流行了,并且设计文件的形式也成为事实上的标准。
ASIC设计工具软件 ASIC 设计的软件提供商主要有CADENCE、SYNOPSYS 和MENTOR 等公司。它们都能提供全定制集成电路设计环境和工具、标准单元设计、综合、仿真、布局布线以及版图验证等一整套软件。基于EDA平台的这些软件,可以完成各种集成电路设计的全部流程,包括全定制集成电路设计流程、数字电路自动化设计流程、模拟电路设计流程和FPGA 设计流程等等。下面就常见的工具软件进行一些归类和说明。至于它们的使用方法请大家参阅相应手册,这里就不多着墨,仅列提纲如下:
ASIC设计工具软件 (1)设计语言:VHDL、Verilog HDL、AHDL、System C 等等。 (2)各阶段典型软件: • 输入及调试工具:Summit、Debussy、以及Xilinx、Altera 等开发的套件。 • 仿真工具:Modsim、Verilog-XL、NC-Verilog、NC-VHDL、VSS、Active HDL • 综合器:Design Compiler、Physical Compiler、Ambit logic synthesis • 布局布线工具:Preview、Silicon Ensemble、Apollo 系列、ST-Hspice • 版图验证工具:Dracula、Diva、Cosmos SE • 静态时序分析:Prime Time • 测试:DFT Compiler
硬件描述语言--VHDL • VHDL: Very-High-Speed Integrated Circuit Hardware Description Language • 诞生于1982年。1987年底,VHDL被IEEE和 美国国防部确认为标准硬件描述语言 。自IEEE公布了VHDL的标准版本,IEEE-1076(简称87版)之后,各EDA公司相继推出了自己的VHDL设计环境,或宣布自己的设计工具可 以和VHDL接口。
硬件描述语言--VHDL • 此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言。1993年,IEEE对VHDL进行了修订, 从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即IEEE标准的1076-1993版本,(简称93版)。现 在,VHDL和Verilog作为IEEE的工业标准硬件描述语言,又得到众多EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。
硬件描述语言—Verilog HDL • Verilog 是由Gateway Design Automation公司于大约1984年开发并将其作为一种仿真工具。Gateway Design Automation公司后来被 Cadence Design Systems于1990年所购并。现在 Cadence 对于 Gateway 公司的 Verilog 和 Verilog-XL 模拟器拥有全部的财产权。 Verilog仿真器和工具都严格遵守IEEE标准。
数字集成系统设计与综合 • 集成电路设计过程: 硬件的高层次抽象描述 硬件的低层次物理描述 • 把硬件的一种描述形式转换成另一种描述形式 采用手工方式 采用自动化的计算机辅助设计工具 设计 综合
数字集成系统设计与综合 设计层次 行为域 结构域 自然语言描述 系统级 自然语言综合(设计) 算法级 算法描述 算法综合(设计) 寄存器级 数据流图描述 逻辑综合(设计) 门级 逻辑图描述 版图综合(设计) 版图级 几何图形描述
数字集成系统设计与综合 综合的过程由两部分组成: 第一步:简单的转换。 第二步:优化。 综合器不可能找出硬件设计的全部可能实现方式,从而不可能得出最优的方案。 有经验的电路设计者直接在中间层次(寄存器传输级等)设计 的硬件质量要比综合器产生的好。 自动综合工具被广泛采用的原因:设计方案是否最优 并不重要,而设计成本和设计的可靠性(不出错误)是必 须最先考虑的因素。
逻辑综合 • 就像C语言编译器提供了C源程序与机器语言之间的连接一样,逻辑综合器提供了硬件描述语言HDL和网表之间的连接。 • 逻辑综合后将再次进行设计仿真,并和行为级的仿真结果进行比较。逻辑综合产生的结构模型可以生产任何类型的ASIC版图。
逻辑综合 • 设计人员用图形或文本的设计输入创建HDL行为级模型,不包含任何逻辑单元的引用,在描述HDL时,采用状态图、图形化的数据通路描述、真值表、RAM/ROM模板、门级原理图等。行为级HDL模型完成后,逻辑综合器以及单元库(也称为目标库)就要被应用来开始进一步的工作。
逻辑综合 • 逻辑综合器可能有几十万行的代码,我们应该在实际的设计中简化输入(减小总线宽度、简化代码或者进一步划分模块等),我们可以通过观察单元的数目、类型与驱动能力来了解逻辑综合器在干什么。 • 例如,如果在关键路径上存在大量驱动能力很弱的单元,则通常暗示综合软件还有一定的余地来提高这个电路的速度。
逻辑综合 • 通过用驱动能力大的单元来替代这些驱动能力弱的单元。但是在有些情况下不是这样,有时驱动能力强的单元反而会降低电路速度,因为增加大的单元同时加大了负载电容,但却没有足够的驱动来弥补,这就是我们为什么要进行逻辑综合度量的原因。 • 理想情况下,物理设计和逻辑综合设计应该同时完成,这样可以确保在布线完成后互联延迟的估计值与实际值很吻合。
仿真 • 电子工程师们都习惯于使用原型来检验自己的设计,比如使用已有连接孔的电路试验板,只要插入互联先和IC就可以检验自己的设计。 • 对于ASIC电路来说,使用电路板是不现实的,作为替代,ASIC设计工程师转而使用仿真作为一种新型的等效的检验设计的方式。
仿真 • 仿真类型: 行为仿真 功能仿真 静态时序仿真 门级仿真 开关级仿真 晶体管级仿真(电路级仿真) 以上列表是从高层次到低层次的仿真排序(层次越高越抽象,层次越低越具体)。从高层次到低层次的仿真的仿真结果越来越准确,也越来越复杂和费时。
仿真 • 建立仿真模型可以有多种方式,一种方法就是将系统的组合用有输入和输出的黑盒进行建模,这种仿真类型通常称为行为仿真。行为仿真不包含时序信息,仅仅告诉我们设计是否能工作。 • 功能仿真忽略时序,并把延迟设为固定值,进行单位延迟仿真。 • 在行为仿真和功能仿真预测系统工作正确之后,接下来就是检查时序性能。此时,系统被划分为ASIC,并对每一个ASIC分别进行时序仿真。
仿真 • 有一类时序仿真器利用时序分析,计算每一条路径的延迟,并以静态的方式进行逻辑分析,被称之为静态时序分析。静态时序分析不需要建立一组测试矢量。静态时序仿真是使用最多的仿真,但是它可能产生虚假路径(不可能激活的关键路径)。 • 门级仿真经常被用来检查ASIC性能。对于门级仿真器,一个逻辑或逻辑单元用黑盒来模拟,一个逻辑门或逻辑单元的函数变量是输入信号。