资讯详情

可编程逻辑器件与专用集成电路——《Verilog 与数字ASIC设计基础》读书笔记

早期的电子系统硬件设计采用分立元件。随着集成电路的出现和应用,人们选择标准的集成电路(如各种逻辑门、编码器编码器触发器、计数器等)来形成硬件系统。目前,专用集成电路被广泛使用(ASIC)构成系统,一个复杂的数字系统只需要一个或几个ASIC即可实现。

制作ASIC大致有两种方法,一种是掩膜处理方法(掩膜处理是IC生产工艺是指在IC晶片上的不同位置需要在不同的制造阶段进行处理,这需要覆盖其他不需要处理的地方,称为不同的覆盖层),由半导体制造商制造;另一种是使用现场可编程设备,用户通过计算机和EDA开发工具,将设计的电路或系统编程到芯片上,就可以得到一个特殊的集成电路。

可编程逻辑器件PLD(Programmable Logic Device)它是一种数字集成电路,可以由用户定义和设置逻辑功能,属于可编程 ASIC。PLD目前应用广泛的应用广泛。PLD可编程逻辑器件主要是复杂的CPLD(Complex Programmable Logic Device)现场可编程门阵列FPGA(Field Programmable Gate Array) .

CPLD该设备包含许多由用户编程决定的逻辑块和连接资源组成的逻辑块,逻辑块由与-或阵列和触发器组成。在逻辑块之间,逻辑块和芯片可以通过可编程的连接资源进行信息交换。通常CPLD器件采用COMS E2PROM工艺制作,即使用户的逻辑写入,也不会丢失。通常CPLD内部也集成了E2PROM,FIFO,或则是双口RAM,数字系统设计适用于不同的功能。

FPGA是另一类可编程逻辑器件,在结构上与CPLD电路设计与阵列结构的两级组合逻辑不同。芯片内部主要由多个可编程逻辑模块组成,通过纵横交错的分布式可编程互联网连接,形成极其复杂的逻辑电路。更适合实现多级逻辑功能,集成密度和应用灵活性更高。目前主要有基础COMS SRAM工艺制造的FPGA和基于反熔丝工艺制造的FPGA两种类型。由于SRAM理论上,中数据可以写无数次,所以基于SRAM技术的FPGA可进行无限次编程。但是,SRAM具有数据易失性的特点,即一旦断电,其原有的逻辑功能就会消失,因此在使用这种功能时FPGA外部需要一个PROM上电后保存编程数据FPGA在开始正常工作之前,先读入编程数据进行初始化。基于反熔丝技术FPGA这种编程只能编程一次。FPGA更适合定型产品和大批量应用。

可编程逻辑器件是构成数字逻辑系统的理想器件。在设计过程中,各种逻辑功能只能通过定义设备内部的逻辑和输出/输入引脚来实现。此外,由于定义引脚的灵活性,电路图和电路板设计的工作量和难度大大降低,有效提高设计灵活性,提高工作效率。和ASIC相比之下,该方法的缺点是单片成本高,电路影响PLD设备限制,难以实现高性能或特殊要求的设计。

ASIC芯片主要由半导体制造商制造,常用的门阵列(Gate Array)和标准单元(Standard Cell)两种类型。门阵列不同于标准单元的内部结构,制造技术也不同,因此其成本、生产时间和效率也不同。

门阵列是一种用掩膜编程的集成电路设计技术。门阵列技术包括COMS门阵列,射极耦合逻辑(ECL)门阵列,BiCMOS门阵列,数字与模拟兼容。半导体厂家预先在芯片上制备逻辑门或元件的规则阵列,一直加工到互连线光刻之前一道工序,这样的半成品芯片被称为门阵列母片。然后,制造商根据客户的需求设计了互联线地图,并进行了制版和光刻加工,芯片成为满足用户要求的专用集成电路。因此,门阵列母片可以大量生产,只需改变互联网布局,即可满足多品种的要求。通常编程的工艺层仅限于最终的互连线(单层或多层布线层)。门阵列设计技术具有周期短、成本低、成功率高、可靠性好等优点;但也存在设计不灵活、门利用率低、功耗大等缺点。

标准单元是目前使用较多的半定制芯片。具有一定逻辑功能的单元电路(如触发器、加法器、计数器和RAM等),这些单元电路的布局已经完成,经过严格的测试,可以保证逻辑功能和良好的顺序功能,然后以标准单元库的形式提供给设计师。ASIC设计师可以将这些具有一定功能的单元连接起来,以实现所需的功能,就像印刷电路板设计师一样PCB将具有特定功能的逻辑器件连接到板上是一样的。当然,设计师需要使用半导体制造商提供的布局工具,尽可能优化这些逻辑单元的布局。

与门阵列不同,虽然这些标准逻辑单元已经提前设计好了,但它们并没有提前放入晶片中(因为制造商不知道设计师的设计,也没有一种通用的方法来确定各种逻辑单元的数量和具体位置)。因此,标准单元设计没有母片的概念。每个晶片都是根据设计师的需要临时制作的,晶片内最基本的晶体管都是现场雕刻的。因此,标准逻辑单元的生产周期比门阵列长。由于标准单元的每层掩膜都是根据不同用户的需求定制的,用户无法共享开发成本,标准单元专用集成电路的试生产成本高于门阵列专用集成电路。

标准单元结构具有晶片体积小、设计复杂、批量生产成本低、用户定制性好等优点。对于门阵列,母片提前生产,晶片尺寸固定,片中资源均匀分布,许多资源可能无法充分利用。但是,对于标准单元来说,只有需要的标准单元才会被放置到晶片中,所以晶片的尺寸越小,每块晶圆能够切割的晶片数量就越多,单片的成本越低。这是标准单元结构专用集成电路在大规模生产中的优势。

为了满足产品尽快上市的要求,现在ASIC越来越多的设计采用预验证IP核(如存储器、视频编码解码器等。

IP核通常分为三种形式:硬核(Hard Core),软核(Soft Core)和固核(Firm Core).

硬核:在特定的集成电路工艺中(ASIC)在设备上实现的经验证是正确的,总门数在5000门以上的电路结构地图掩膜称为硬核。硬核以集成电路布局的形式提交,经实际工艺流片验证,与工艺相关,实用价值高。COMS的CUP,DRAM,SRAM,E2PROM和Flash Memory以及A/D,D/A由于版图设计优化,等都可以成为硬核,IP硬核通常具有面积小、功耗低、性能高的特点,可直接作为特定功能模块调用新设计。但由于用户获得的硬核通常是包装行为模块,用户只能从外部测试硬核的性能,不能根据应用程序的需要进行修改和优化,也不能改变其布局和过程。

软核通常包括逻辑描述(RTL级和门级的HDL代码)、电路网表和未物理实现的测试文档。与硬核相比,软核具有最大的灵活性。用户可以根据自己的设计修改软核的描述,然后通过布局布线实现特定的电路。

固核:将可编程逻辑门阵列放在某个现场(FPGA)在设备上实现的经验证是正确的,总门数在5000门以上的电路结构编码文件称为固核。软核介于硬核和软核之间,可以与布局规则相结合。他通常以RTL与具体工艺相对应的代码和电路网表混合描述的形式提交给用户,具有一定的灵活性。允许用户重新定义关键性能参数,并重新优化内部连接。

系统功能级设计是最高级别的设计,主要根据系统的设计要求(包括系统功能、性能、尺寸、功耗等),确定系统的输入、输出信号、功能算法,最后给出系统的整体结构框图、主模块输入、输出信号及其关系,确定每个模块做什么,但无需管理模块内部如何实现指定功能。划分功能块的原则是:尽量减少功能块之间的连接,界面清晰;功能块规模合理,各功能块独立设计方便。

然后根据电路功能的动能、性能指标和接口标准进行功能级描述(也称为行为描述),即对整个系统进行建模和模拟,而不考虑实际操作和算法。可使用功能级描述HDL或C/C 等语言书写。对于功能级描述的系统结构程序,其抽象性很高,很难直接映射成特定的门电路。

系统功能级设计完成后,系统分为小功能模块。接下来,模块级设计应包括详细的功能、算法、实现、接口顺序、性能要求和子模块设计。

模块设计规范完成后,进入RTL(Register Transfer Level)设计阶段,包括编写模块代码、模拟验证等。所谓RTL设计是将更抽象的系统级功能描述转换为硬件电路描述,可以直接映射到特定的逻辑单元(如移位寄存器、计数器、存储模块等)。

      在RTL级,设计者可以使用HDL或原理图进行模块设计的描述。原理图适合于描述模块之间的连接关系和接口关系,而HDL则适合于描述逻辑功能,所以顶层(仅含模块之间的连接关系)采用原理图,其他情况采用HDL设计。在完成RTL级的模块描述后,要使用逻辑仿真器进行模拟(仿真)与验证,检查各模块的逻辑功能是否正确。然后,将通过仿真的各模块集成在一起,对整个系统进行功能仿真。这一阶段的仿真没有包括任硬件电路的任何时间信息,因此,只能从逻辑功能方面对设计进行验证。

      注意:以上设计过程与具体的实现工艺无关。

     完成RTL级功能验证之后,进入逻辑综合阶段。逻辑综合就是将HDL描述转化为硬件电路(门级电路)的过程。从逻辑综合开始,设计过程与工艺相关联,不同的实现方式应选用不同的综合工具。对于ASIC芯片实现设计的用户,应选用IC综合工具;对于选用FPGA/CPLD设计用户,由于这类器件结构的特殊性,应选用FPGA/CPLD设计用户,由于这类器件结构的特殊性,应选用FPGA/CPLD厂家提供的专用综合工具。

      在一定的设计约束条件(即总体要求中提出的电路性能指标)下,并与适当的单元库相结合,RTL描述可以通过逻辑综合软件自动地转化成门级逻辑网表(即元器件以其连接关系)。然后,通过相应的逻辑仿真软件验证逻辑功能的正确性。与前面寄存器传输级仿真不同的是:完成逻辑综合后的门级仿真包括了门级电路单元的延时信息,但没有包括单元电路之间的连线延时信息,因此,该仿真仍然属于功能验证的范畴,通常称为“前仿真”。

      说明:在ASIC设计中,将以上设计过程成为“前端仿真”。

 

 对于不同的硬件实现方式,其设计实现过程不同。

  对于用FPGA/CPLD实现设计的用户,在逻辑综合完成后,必须利用FPGA/CPLD适配器将综合得到的网表文件针对某一具体器件进行逻辑映射操纵,包括底层器件配置,逻辑划分,逻辑优化,布局布线,适配完成后会产生三个文件:

     1,时序仿真模型,即一个带有连线延时和门级延时信息的网表文件;

     2,供器件编程用的数据文件;

     3,适配报告文件,包括芯片内部资源利用情况,设计的布尔方程描述等。

  后面的东西都是以工艺有关的,看的不是很懂,通常将IC的版图设计称为“后端设计”。

  Verilog HDL的基本功能之一是描述可综合的硬件逻辑电路。所谓综合(Synthesis)是指将Verilog HDL程序、原理图等设计输入翻译成由与门(and)、或门(or)、非门(not)等基本逻辑单元组成的门级连接,并根据设计目标和要求对门级逻辑连接进行优化,得到优化的门级网表文件。

  Verilog HDL主要有三种建模方式:

 

  结构级建模包括门级建模和分层建模两种情况。门级建模就是将逻辑电路图用Verilog HDL规定的文本语言表示出来,即调用Verilog HDL中内置的基本门级元件(Gate Level Primitives,门级源语)描述逻辑图中的元件以及元件之间的连接关系。分层次就是将一个数字系统划分为多个组成模块,再分别对每个模块建模,然后将这些模块组合成一个总模块,完成所需的功能。

     Verilog HDL中内置了12个基本门级元件模型,门级元件的输出、输入必须为网类型的变量。当使用这些元件逻辑仿真时,仿真软件会根据程序描述给每个元件中变量分配逻辑0,逻辑1,不确定态x和高阻态z这4个值之一。

  这些门可分为:多输入门,多输出门,三态门。

 

  

 对于基本单元逻辑电路,使用Verilog HDL提供的门级元件模型描述电路非常方便,但随着电路复杂性的增加,当使用的逻辑门较多时,使用Verilog HDL门级描述的工作效率就很低。数据流建模的抽象级别介于门级和行为级之间,它是行为级建模的一种形式,组合电路的逻辑行为最好使用数据流建模方式。

  数据建模使用的基本语句是连续赋值语句,连续赋值语句用于对型变量进行赋值,它由关键词开始,后面跟着操作数和运算符组成的逻辑表达式。

  例如:

  wire  a,b,sel,out;  //declare four wires variables

  assign out = (a& (~b)) | (b & sel);  //a continuous assignment

  连续赋值语句的执行过程是:只要逻辑表达式右边变量的逻辑值发生变化,则等式右边表达式的值会立即被计算出来并赋给左边的变量。注意:在assign语句中,左边变量的数据类型必须是wire型。

 

  

 行为级建模就是以抽象的形式描述数字逻辑电路的功能和算法,在Verilog HDL 中,行为级建模主要使用由关键词定义的两种结构类型的描述语句。一个模块内部可以包含多个initial或always语句,仿真时这些语句同时执行,即与它们在模块内部排列的顺序无关,仿真都从0时刻开始执行。initial语句主要是一条面向仿真的过程语句,不能用来描述硬件电路的功能。

  在always结构型语句内部有一系列过程赋值语句,用来描述电路的行为(功能)。过程性赋值语句包括在结构型的语句内部使用的逻辑表达式、条件语句()、多路分支语句()和循环语句等。

  顺序语句块就是由块标识符begin...end保卫界定的一组行为描述语句,其作用是:相当于给块中的这组行为描述语句进行打包处理,使之在形式上与一条语句一致。在这个模块内部的各条语句按照书写的先后顺序依次执行。在Verilog HDL中,可以给每个语句块取一个名字,方法是:在关键词begin后面加上一个冒号,之后给出名字即可。取了名字的块被称为

https://www.cnblogs.com/luckybag/articles/3916498.html

标签: e2ic集成电路if202集成电路

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台