当前位置:文档之家› 数字集成电路设计之数字系统设计自动化

数字集成电路设计之数字系统设计自动化

第九数字系统设计自动化章数字系统设计自动化9.1 数字系统设计流程概述数字化及其设计自动化;基于设计自动化的设计流程、单元库;EDA技术的发展趋势9.2 硬件描述语言VHDL语言;Verilog HDL语言9.3 设计分析与模拟9.4 自动综合与设计验证自动综合;设计验证9.5 系统封装系统封装第九§9.1 数字系统设计流程概述章v/Vt模拟信号§9.1.1 数字系统及其设计自动化一、数字系统的概念1、自然界物理量:模拟量和数字量(Analog vs.Digital )v/Vt数字信号2、采用数字信号的优势z只有高、低两种电平分别用‘1’‘0’表示;z易于传输信息:抗干扰能力强等;z易于处理信息:有一定的“逻辑思维”能力;z集成度高,通用性强。

数字逻辑电路(数字电路):用来处理数字信号的电子线路。

各种功能是通过逻辑运算和逻辑判断来实现的。

数字逻辑在电子设备或电子系统中的应用3、EDA技术发展的三个阶段:1)早期电子CAD阶段20世纪70年代EDA技术发展初期。

用计算机、二维图形编辑与分析的CAD工具,完成布图布线等高度重复性的繁杂工作。

2)计算机辅助工程CAE阶段20世纪80年代,出现了低密度和,相应的EDA开发工具主要解决电路设计没有完成之前的功能检测等问题。

80年代后期,EDA工具已经可以进行初级的设计描述,综合、优化和设计结果验证。

3) 电子设计自动化EDA阶段20世纪90年代,可编程逻辑器件迅速发展,出现功能强大的全线EDA工具.具有较强抽象描述能力的硬件描述语言(HDL)及高性能综合工具的使用,使过去单功能电子产品开发转向系统级电子产品开发(SOC)。

`开始实现“概念驱动工程”的梦想§9.1.2 基于设计自动化的设计流程基本思想:自顶向下(top-down)的设计方法模拟验证工具:SPICE设计语言:VHDL、Verilog优点:⑴方便了从系统级划分和管理整个项目;⑵简化了设计队伍的管理;⑶减少了不必要的重复;⑷提高了设计的一次成功率。

芯片制造与封装测试物理设计与版图验证逻辑设计与验证寄存器传输级设计与验证功能设计与功能验证NN系统设计与验证产品需求基于设计自动化的设计流程N深亚微米设计流程布局布线逻辑设计行为设计系统功能定义行为仿真与性能评估布局规划Y功能测试图案生成结构仿真与性能评估Y时序分析N后仿真与性能评估测试生成芯片制造YN§9.1.3 单元库单元库信息:z物理版图信息行为模型:高层次描述VHDL/Verilog语言模型时间模型:时序性能,时序模型测试手段电路草图单元标识连线仿真模型§9.1.4 EDA技术的发展趋势摩尔定律(Moore’s Law):每过18个月, IC中晶体管的集成度增加一倍z SOC对EDA软件提出了系统级的仿真能力的要求;z深亚微米设计成功的关键:如何减少互连延迟;z复杂性和集成度的增加对数据管理提出了高要求;z如何减少上市时间(Time-to-Market);z设计的第三维度:低功耗。

第九§9.2 硬件描述语言章§9.2.1 VHDL语言一、什么是VHDL?VHDL--V HSIC HDL超高速集成电路硬件描述语言V—V HSIC (Very High Speed Integrated Circuit) H—H ardwareD—D escriptionL—L anguage二、VHDL的历史z80年代初由美国国防部在实施超高速集成电路(VHSIC)项目时开发的。

z1987年由IEEE 协会批准为IEEE 工业标准,称为IEEE1076-1987。

z各EDA公司相继推出支持VHDL的设计环境。

z1993年被更新为93 标准,即IEEE1076-1993。

进一步提高抽象描述层次,扩展系统描述能力。

三、VHDL的作用1、VHDL打破软、硬件的界限传统的数字系统设计分为:硬件设计(硬件设计人员)软件设计(软件设计人员)VHDL是电子系统设计者和EDA工具之间的界面。

2、VHDL与C、C++的比较:C、C++ 代替汇编等语言VHDL 代替原理图、逻辑状态图等四、VHDL电路设计主要描述数字系统的结构、行为、功能和接口VHDL将一个设计(元件、电路、系统)分为:外部(可视部分:端口)内部(不可视部分:内部功能,算法)外部与内部示意图:器件或子系统ENTITYARCHITECTUREPORTS PROCESS PROCESSPORTS实体(Entity)结构体(Architecture)配置(Configuration)库(Library)、程序包(Package)VHDL 程序基本结构五、VHDL 语言描述模型库、程序包配置(Configuration )实体(Entity )结构体(Architecture )进程/并行结构1)实体(说明)实体(说明):定义系统的输入输出端口语法:ENTITY <entity_name> ISGeneric DeclarationsPort DeclarationsEND <entity_name>; (1076-1987 version)END ENTITY<entity_name> ; ( 1076-1993 version)结构体结构体说明结构体功能描述常数说明数据类型说明信号说明例化元件说明子程序说明块语句BLOCK进程语句PROCESS信号赋值语句子程序调用语句元件例化语句实体与结构体的关系:设计实体结构体1结构体2结构体3结构体n。

一个设计实体可有多个结构体,代表实体的多种实现方式。

2)结构体的语法:ARCHITECTURE结构体名称OF实体名称IS [说明语句]内部信号、常数、数据类型、子程序(函数、过程)、元件等的说明;BEGIN[并行处理(功能描述)语句];END[ARCHITECTURE]结构体名称;注:同一实体的结构体不能同名。

定义语句中的常数、信号不能与实体中的端口同名。

3)配置设计实体结构体1结构体2结构体3结构体n。

一个设计实体的多种实现方式配置:从某个实体的多种结构体描述方式中选择特定的一个。

4)简单配置的语法:CONFIGURATE配置名OF实体名IS FOR选配结构体名END FOR;END配置名;六、数据类型和运算符三种数据对象:常量(Constant)、变量(Variable)信号(Signal)z标准数据类型:整数、实数、位、位矢量、布尔量、字符、字符串、时间、错误等级、自然数、正整数z用户自定义数据类型:枚举类型、整数类型、实数、符点数、数组、存取类型、文件类型、记录、时间z运算符1)逻辑运算符:NOT、AND、OR、NAND、NOR、XOR 2)关系运算符:=、/=、<、<=、>、> =3)算术运算符:+、-、*、/、mod、rem、+(单)、-(单)abs 4)并置运算符:&提问什么是重载运算符?七、基本描述语言z 顺序语句:1)IF 语句2)CASE 语句3)L00P 语句5)REPORT 语句6)RETURN 语句7)NULL 语句z 并法语句:1)Process 进程语句2)并发信号代入语句3)条件信号代入语句4)选择信号代入语句5)Block 语句视频讲解1视频讲解2§9.2.2 Verilog HDL语言什么是Verilog HDL?•Verilog HDL(Hardware Discription Language)一种硬件描述语言,用于从算法级、门级到开关级的多种抽象设计层次的数字系统建模。

Verilog HDL的发展历史1989CADENCE公司购买Verilog版权1983’s Verilog-XL诞生1990Verilog HDL公开发表模拟和数字都适用Verilog2001标准公开发表2001VerilogHDLIEEE1995标准公开发表1995Verilog HDL的发展历史●最初是于1983年由Gateway Design Automation公司(后被Cadence收购)为其模拟器产品开发的硬件建模语言●1990年,Cadence公司成立OVI(Open Verilog International)组织来负责推广Verilog●1995年,IEEE制定了Verilog HDL标准,即IEEE Std 1364 -1995§9.2 硬件描述语言Verilog与VHDL的区别两者的区别:z VHDL侧重于系统级描述,从而更多的为系统级设计人员所采用z Verilog侧重于电路级描述,从而更多的为电路级设计人员所采用一般的Verilog HDL系统设计包括①系统描述设计模块②系统测试模块Ve§9.2 硬件描述语言一、Verilog HDL的描述设计模块1、Verilog基本描述单位:模块①端口信息:模块的输入输出信号。

②逻辑功能:描述模块的输入输出信号的关系。

module是层次化设计的基本构件逻辑描述放在module内部语言的主要特点—模块端口(module ports)•注意模块的名称DFF,端口列表及说明•模块通过端口与外部通信端口在模块名字后的括号中列出端口可以说明为input, output及inout§9.2 硬件描述语言§9.2 硬件描述语言2、Verilog HDL的描述方式在模块中,可以采用下述方式描述一个设计:①数据流描述方式②行为描述方式③结构描述方式④以上方式的混合①数据流描述方式使用连续赋值语句:assign [delay] 赋值线网对象=表达式;半加器的例子module HalfAdder(A, B, Sum, Carry);input A, B;output Sum, Carry;assign Sum=A^B;assign Carry=A&B;endmodule②行为描述方式使用过程语句描述:initial语句:只执行一次always语句:重复执行一个模块内可包含任意多个initial 和always 语句,它们相互并行执行,即,它们的执行顺序与其在模块中的顺序无关always语句:重复执行半加器的例子:module HalfAdder(A, B, Sum, Carry);input A, B;output Sum, Carry;always@(A or B)beginSum=A^B;Carry=A&B;endendmodulemodule muxtwo(out, a, b, sel); input a, b, sel;output out; reg out;always @( sel or a or b)if (! sel) out = a;else out = b;endmodule③结构化描述方式●用Verilog直接描述逻辑图●可使用(1)内置门(基本单元):not, and, or…(2)开关级:nmos, cmos, tran…(3)用户自定义的结构(4)模块实例:其它module单元module twomux(out, a, b, sl); input a, b, sl;output out;not u1 (nsl, sl);and u2 (sela, a, nsl);and u3 (selb, b, sl);or u4 (out, sela, selb); endmoduleVerilog内置门(多输入门)•内置门提供基本的逻辑功能,这些逻辑功能是预定义的(多输入门、多输出门、三态门、MOS开关)多输入门:and,nand,or,nor,xor,xnor格式:门类型实例名(<输出端口>, <控制端口>,<输入端口>) nand nand1(Y, A, B);//2输入与非门xor xor1(Y,A,B,C); //3输入或非门Verilog内置门(多输出门)•内置门提供基本的逻辑功能,这些逻辑功能是预定义(多输入门、多输出门、三态门、MOS开关)多输出门:一个输入,多个输出buf:缓冲器not:反相器如:buf buf1(Out[0],Out[1],Out[2],In);not not2(Out,In);Verilog内置门(三态门)三态门:bufif0, bufif1, notif0, notif1如:bufif0 BF1(Dout,Ctrl,Din);// 当Ctrl=1时,Dout=Din,Ctrl=0时,Dout=z基本单元名称功能bufif1 条件缓冲器,逻辑1 使能bufif0 条件缓冲器,逻辑0 使能notif1 条件反相器,逻辑1 使能notif0 条件反相器,逻辑1 使能带条件的基本单元(续)•条件基本单元有三个端口:输出、数据输入、使能输入Verilog内置门(MOS开关)•内置门提供基本的逻辑功能,这些逻辑功能是预定义的(多输入门、多输出门、三态门、MOS开关)MOS开关:控制数据流动的开关:nmos, cmos, pmos格式:xmos实例名(out, in,<控制端>)例:nmos N1(Out, In, Ctrl);cmos CMOS2(Out, In, NCtrl, PCtrl);module bus_xcvr( bus_a, bus_b, en_a_b, en_b_a);inout bus_a, bus_b;input en_a_b, en_b_a;bufif1 b1 (bus_b, bus_a, en_a_b); bufif1 b2 (bus_a, bus_b, en_b_a);// Structural module logicendmodule。

相关主题