《数字电路与系统设计课件8.ppt》由会员分享,可在线阅读,更多相关《数字电路与系统设计课件8.ppt(120页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第8章 电子设计自动化第第8 8章章 电子设计自动化电子设计自动化8.1 EDA概述概述8.2 硬件描述语言硬件描述语言Verilog HDL 初步初步8.4 MAX+plus开发系统开发系统第8章 电子设计自动化8.1 EDA概述概述 EDA就是以计算机为工作平台、以EDA软件工具为开发环境、以硬件描述语言为设计语言、以ASIC为实现载体的电子产品自动化设计过程,它包括半导体工艺设计自动化、可编程逻辑器件设计自动化、电子系统设计自动化、印刷电路板PCB(Printed Circuit Board)设计自动化、仿真测试、故障诊断以及形式验证自动化。需要说明的是,这里所讲的是狭义的EDA,没有包
2、括模拟电路的设计自动化。第8章 电子设计自动化EDA作为一门崭新的学科,它的知识体系结构为:现代电子设计理论;可编程逻辑器件原理、结构及应用;硬件描述语言;EDA工具的开发和应用;EDA设计方法论;EDA的应用及实践。第8章 电子设计自动化8.1.1 EDA的发展概况的发展概况 集成电路技术的发展不断地给EDA技术提出新的要求,对EDA技术的发展起了巨大的推动作用。从20世纪60年代中期开始,人们就不断地开发出各种计算机辅助设计工具来帮助设计人员进行集成电路和电子系统的设计。近40年来,EDA技术大致经历了计算机辅助设计CAD(Computer Aided Design)、计算机辅助工程CAE
3、(Computer Aided Engineering)和电子系统设计自动化ESDA(Electronic System Design Automation)三个发展阶段。第8章 电子设计自动化 1CAD阶段(阶段(20世纪世纪60年代中期年代中期20世纪世纪80年代初期)年代初期)20世纪70年代,随着中、小规模集成电路的开发和应用,传统的手工制图设计印刷电路板和集成电路的方法已无法满足设计精度和效率的要求,于是工程师们开始进行二维平面图形的计算机辅助设计,这样就产生了第一代EDA工具,设计者也从繁杂、机械的计算、布局和布线工作中解放了出来。但在EDA发展的初始阶段,EDA工具的供应商只有几
4、家,产品几乎全部面向PCB设计、电路模拟或IC版图设计。例如,目前常用的PCB布线软件Protel的早期版本Tango、用于电路模拟的SPICE软件以及后来产品化的IC版图编辑与设计规则检查系统等软件,都是这个时期的产品。第8章 电子设计自动化 20世纪80年代初,随着集成电路规模的增大,EDA技术有了较快的发展。更多的软件公司,如当时的Mentor公司、Daisy Systems及Logic System公司等进入EDA领域,开始提供带电路图编辑工具和逻辑模拟工具的EDA软件,主要解决了设计实现之前的功能检验问题。总的来讲,这一阶段的EDA水平还很低,对设计工作的支持十分有限,主要存在两个方
5、面的问题需要解决:第8章 电子设计自动化 EDA软件的功能单一、相互独立。这个时期的EDA工具软件都是分别针对设计流程中的某个阶段开发的,一个软件只能完成其中的一部分工作,所以设计者不得不在设计流程的不同阶段分别使用不同的EDA软件包。然而,由于不同的公司开发的EDA工具之间的兼容性较差,为了使设计流程前一级软件的输出结果能够被后一级软件接受,就需要人工处理或再运行另外的转换软件,这往往很繁琐,势必影响设计的速度。对于复杂电子系统的设计,不能提供系统级的仿真和综合,所以设计中的错误往往只能在产品开发的后期才能被发现,这时再进行修改十分困难。第8章 电子设计自动化 2 CAE阶段(阶段(20世纪
6、世纪80年代初期年代初期20世纪世纪90年代初期)年代初期)这个阶段在集成电路与电子系统设计方法学以及设计工具集成化方面取得了许多成果。各种设计工具,如原理图输入、编译与连接、逻辑模拟、逻辑综合、测试码生成、版图自动布局以及各种单元库均已齐全。不同功能的设计工具之间的兼容性得到了很大改善,那些不走兼容道路、想独树一帜的CAD工具受到了用户的抵制,逐渐被淘汰。EDA软件设计者采用统一数据管理技术,把多个不同功能的设计软件结合成一个集成设计环境。按照设计方法学制定的设计流程,在一个集成设计环境中就能实现由寄存器传输级RTL(Register Transfers Level)开始,从设计输入到版图输
7、出的全程设计自动化。在这个阶段,基于门阵列和标准单元库设计的半定制ASIC得到了极大的发展,将电子系统设计推入了ASIC时代。但是,大部分从原理图出发的CAE工具仍然不能适应复杂电子系统的要求,而且具体化的元件图形制约着优化设计。第8章 电子设计自动化 3 ESDA阶段(阶段(20世纪世纪90年代以来)年代以来)20世纪90年代以来,集成电路技术以惊人的速度发展,其工艺水平已经达到深亚微米级,一个芯片上可以集成数百万甚至上千万只晶体管,工作频率可达GHz。这不仅为片上系统SOC(System On Chip)的实现提供了可能,同时也给EDA技术提出了更高的要求,促进了EDA技术的发展。在这一阶
8、段,出现了以硬件描述语言、系统级仿真和综合技术为基本特征的第三代EDA技术,它使设计师们摆脱了大量的具体设计工作,而把精力集中于创造性的方案与概念构思上,从而极大地提高了系统设计的效率,缩短了产品的研制周期。EDA技术在这一阶段的发展主要有以下几个方面。第8章 电子设计自动化 1)用硬件描述语言来描述数字电路与系统 这是现代EDA技术的基本特征之一,并且已经形成了VHDL和Verilog HDL两种IEEE(The Institute of Electrical and Electronics Engineers,电气和电子工程师协会)标准硬件描述语言。它们均能支持系统级、算法级、RTL级(又
9、称数据流级)和门级各个层次的描述或多个不同层次的混合描述,涉及的领域有行为描述和结构描述两种形式。硬件描述与实现工艺无关,而且还支持不同层次上的综合与仿真。硬件描述语言的使用规范了设计文档,便于设计的传递、交流、保存、修改及重复使用。第8章 电子设计自动化 2)高层次的仿真与综合 所谓综合,就是由较高层次描述到低层次描述、由行为描述到结构描述的转换过程;仿真是在电子系统设计过程中对设计者的硬件描述或设计结果进行查错、验证的一种方法。对应于不同层次的硬件描述,有不同级别的综合与仿真工具。高层次的综合与仿真将自动化设计的层次提高到了算法行为级,使设计者无需面对低层电路,而把精力集中到系统行为建模和
10、算法设计上,而且可以帮助设计者在最早的时间发现设计中的错误,从而大大缩短了设计周期。第8章 电子设计自动化 3)平面规划技术 平面规划(Floorplaning)技术对逻辑综合和物理版图设计进行联合管理,做到在逻辑综合早期设计阶段就考虑到物理设计信息的影响。通过这些信息,可以再进一步地对设计进行综合和优化,并保证不会对版图设计带来负面的影响。这在深亚微米级布线时延已经成为主要时延的情况下,对加速设计过程的收敛与成功是有所帮助的。在Synopsys和Cadence等著名公司的EDA系统中都采用了这项技术。第8章 电子设计自动化 4)可测试性综合设计 随着ASIC规模和复杂性的增加,测试的难度和费
11、用急剧上升,由此而产生了将可测试性电路结构做在ASIC芯片上的思想,于是开发出了扫描插入、内建自测试(BIST)和边界扫描等可测试性设计(DFT)工具,并已集成到EDA系统中。如Compass公司的Test Assistant和Mentor Graphics公司的LBLST Achitect、BSD Achitect和DFT Advisor等。第8章 电子设计自动化 5)开放性、标准化框架结构的集成设计环境和并行设计工程 近年来,随着硬件描述语言等设计数据格式的逐渐标准化,不同设计风格和应用的要求使得有必要建立开放性、标准化的EDA框架。所谓框架,就是一种软件平台结构,为EDA工具提供操作环境
12、。框架的关键在于建立与硬件平台无关的图形用户界面以及工具之间的通信、设计数据和设计流程的管理等,此外还包括各种与数据库相关的服务项目。任何一个EDA系统只要建立一个符合标准的开放式框架结构,就可以接纳其它厂商的EDA工具一起进行设计工作。这样,框架作为一套使用和配置EDA软件包的规范,就可以实现各种EDA工具间的优化组合,并集成在一个易于管理的统一环境下,实现资源共享。第8章 电子设计自动化 针对当今电子设计中数字电路与模拟电路并存、硬件设计与软件设计并存以及产品更新换代快的特点,并行设计工程CE(Concurrent Engineering)要求一开始就从管理层次上把工艺、工具、任务、智力和
13、时间安排协调好;在统一的集成设计环境下,由若干相关的设计小组共享数据库和知识库,同步进行设计。CE改变了传统的设计过程中,过分依赖专业分工和设计人员过分强调所学专业知识的状况。第8章 电子设计自动化8.1.2 EDA设计语言设计语言 1 VHDL和和Verilog HDL语言语言 VHDL是由美国国防部在70年代末和80年代初提出的超高速集成电路VHSIC(Very High Speed Integrated Circuit)计划的产物,其目的是为了在承担国防部定货的各集成电路厂商之间建立一个统一的设计数据和文档交换格式。1987年12月,IEEE接受HDL为标准HDL,也就是IEEEStd1
14、076-1987LRM87。此后又做了一些修改,新的版本为IEEEStd1076-1993LRM93。第8章 电子设计自动化 Verilog HDL是在1983年,由GDA(Gate Way Design Automation)公司的Phil Moorby首创的。1986年,Moorby提出了用于快速门级仿真的Verilog XL算法,使Verilog HDL得到了迅速发展。1989年,Cadence公司收购了GDA公司,Verilog HDL成了Cadence公司的私有财产。1990年,Cadence公司决定公开发表Verilog HDL,并成立了OVI(Open Verilog Inter
15、national)组织来负责Verilog HDL的推广。基于Verilog HDL的优越性,Verilog HDL于1995年成为了IEEE的另一个HDL标准。第8章 电子设计自动化 几年以来,EDA界对VHDL和Verilog HDL这两种语言一直争论不休。实际上这两种语言各有所长,市场占有率也相差不多。一般认为,Verilog HDL是从集成电路的设计中发展而来的,在门级电路、晶体管开关级电路的描述方面比VHDL强,在系统级的抽象描述方面,VHDL则更合适。目前,大多数的EDA软件都同时支持这两种硬件描述语言。第8章 电子设计自动化 2ABEL和和AHDL语言语言 与VHDL和Veril
16、og HDL相比,ABEL和AHDL的功能相对比较简单,它们适合于RTL级和门级电路的描述,主要用于可编程逻辑器件的开发。ABEL语言是由美国Data I/O公司推出的,该公司也是ABEL语言综合器的惟一供应商,有不少EDA软件支持ABEL语言,如ispEXPERT、Synario、Foundation等。AHDL语言则只集成在Altera公司的可编程逻辑器件开发工具中,只能在Altera的开发软件中进行编译和调试。第8章 电子设计自动化 3 C语言语言 在电子系统设计中,硬件设计采用VHDL和Verilog HDL之类硬件描述语言,软件设计则采用C和C+等编程语言。这种硬件设计和软件设计使用
17、不同语言的现象,给设计带来了不便,延长了产品开发的周期。从EDA的发展趋势来看,直接用C语言来描述硬件是未来的一个发展方向,这样软件设计人员和硬件设计人员之间就有了“共同语言”,从而能够实现软、硬件协同设计,提高设计效率。目前,用C语言描述硬件主要有两个分支:System C和Spec C。System C适用于从系统设计到逻辑设计这一阶段;Spec C则适用于从对技术要求的把握到系统设计这一阶段。第8章 电子设计自动化 8.1.3 EDA开发工具开发工具图 8-1 EDA工具的范畴第8章 电子设计自动化 EDA工具主要能够进行三个方面的辅助设计工作:印刷电路板PCB设计;ASIC设计;电子系
18、统设计。没有EDA工具的支持,想要完成超大规模集成电路或复杂电子系统的设计制造是不可想象的。第8章 电子设计自动化 全球的EDA软件供应商有近百家之多,大体上可以分成两类:一类是专业的EDA软件公司,如Mentor Graphics、Cadence Design Systems、Synopsys、Viewlogic Systems和Protel等;另一类是半导体器件厂商,为销售他们的产品而开发EDA工具,Altera、Xilinx、Lattice和Actel等。专业的EDA软件公司独立于半导体器件厂商,推出的EDA工具有较好的标准化和兼容性,也比较注意追求技术上的先进性,一般将这类工具称为第三
19、方工具;而半导体器件厂商开发的EDA工具则能够作出针对自己器件特点的优化设计。在表8-1中列出了部分EDA软件,其中也包括了一些模拟/数字混合电路的EDA软件。第8章 电子设计自动化表表8-1 部分部分EDA软件简介软件简介第8章 电子设计自动化表表8-1 部分部分EDA软件简介软件简介第8章 电子设计自动化8.1.4 EDA设计方法设计方法 EDA设计方法属于现代电子设计的范畴,它与经典的电子设计方法不同。主要涵盖行为描述法、IP复用法、ASIC设计方法、数字系统的高层次设计方法、e-DA网上设计方法、软硬件协同设计方法、基于集成平台的设计方法。数字系统的设计包括行为、结构和物理三个领域。行
20、为是指系统的功能,或者说系统应该做什么;结构是指系统的组成,或者说系统的抽象实现,典型的是抽象模块的相互连接;物理是指系统具体实现的几何特征与物理特性,也就是把结构领域中的抽象元件代之以真实的物理元件。根据抽象级别的不同,数字系统又划分为若干层次,一般从顶向下包括系统级、算法级、寄存器传输级(RTL)、逻辑级、电路级等。通常将寄存器传输级以上的层次称为高层次。利用硬件描述语言在寄存器传输级以上的层次进行描述、设计的方法称为数字系统的高层次设计方法,描述的层次越高,设计的层次就越高。第8章 电子设计自动化 数字系统的高层次设计方法代表了现代数字系统设计的发展方向,它的基本特征是:用一片或几片AS
21、IC实现整个数字系统;设计人员遵循“自顶向下”的设计思想,首先对整个系统进行方案设计、功能划分和算法设计,并采用硬件描述语言完成算法级行为描述,最后由EDA工具完成目标器件的设计。ASIC、EDA工具和硬件描述语言是高层次设计方法的三大基石。第8章 电子设计自动化图 8-2 数字系统高层次设计的设计流程第8章 电子设计自动化 在明确系统功能的前提下,首先设计系统的实现方案,然后进行功能划分和算法设计。这些富有创造性的工作与上一章所介绍的基本相同,仍然需要由人工完成,只不过在高层次设计方法中,这些工作不再受市场上通用逻辑器件的局限。设计输入。一般是采用VHDL/Verilog HDL在算法级对系
22、统进行行为描述,此外还可以采用比较直观的图形输入方式(方框图、状态图等)。第8章 电子设计自动化 编译。编译器对以上设计中的HDL描述的语法和语意进行检查和解释,并将以上的输入转换成适当的中间数据格式,为下一步的综合作好准备。功能仿真。功能仿真又称为前仿真,主要是检验系统的逻辑功能设计的正确性,除了系统规定的定时关系以外,对实际电路中的惯性时延、传输时延均不予考虑。对于大型的设计,综合、适配要花费数小时,在综合之前进行功能仿真就可以及早发现设计错误,节约设计时间。一般情况下,对于比较简单的设计,可以略去这一仿真步骤。第8章 电子设计自动化 综合。利用综合器对HDL源代码进行综合优化处理,生成门
23、级描述的网表文件,这是将高层次描述转化为硬件电路的关键步骤。适配。利用适配器将综合后的网表文件针对某一具体的目标器件进行逻辑映射操作,包括底层器件配置、逻辑分割、逻辑优化和布局布线。适配完成后,产生多项设计结果:适配报告(包括芯片内部资源利用情况)、引脚分配和设计的布尔方程描述情况;适配后的仿真模型;器件编程文件。第8章 电子设计自动化 时序仿真。根据适配后的仿真模型,可以进行时序仿真(又称为后仿真),因为已经得到器件的实际硬件特性(如时延特性),所以仿真结果能比较精确地预期未来芯片的实际性能。如果仿真结果达不到设计要求,就需要修改HDL源代码或选择不同速度品质的器件,直至满足设计要求为止。第
24、8章 电子设计自动化 PLD编程。将适配器产生的器件编程文件通过编程器或下载电缆载入到目标芯片可编程逻辑器件中。器件测试。在器件编程后,需要利用实验手段测试器件最终的功能和性能指标。如果是大批量产品的开发,通过更换相应厂家的综合库,可以很容易转由掩膜ASIC形式实现。第8章 电子设计自动化8.2 硬件描述语言硬件描述语言Verilog HDL初步初步8.2.1 Verilog HDL 语法基本知识语法基本知识module muxtwo(out,a,b,s1);input a,b,s1;output out;reg out;always (s1 or a or b)if(!s1)out=a;el
25、se out=b;endmodule 第8章 电子设计自动化数据常量-Verilog HDL中共有19种数据类型。1 数字整数整数 二进制数(b或B)十进制数(d或D)十六进制数(h或H)八进制数(o或O)第8章 电子设计自动化数字的三种表达方式:数字的三种表达方式:-全面的描述方式-默认位宽,至少32位-默认位宽与进制(十进制)examples:8b101011008ha2第8章 电子设计自动化x 与与 z-x代表不定值;z(?)代表高阻值examples:4b10 x04b101z12dz12d?8h4x第8章 电子设计自动化负数负数-在位宽表达式前加一个减号(-),减号必须放在数字定义表
26、达式的最前面。examples:-8d5 /ok8d-5 /not ok!第8章 电子设计自动化下划线下划线-用来分割数字的表达,提高程序的可读性,只能用在具体的数字之间。examples:16b1010_1111_1001_0001/OK8b_1001_1111/not ok!note:常量不说明位数的时候,默认为常量不说明位数的时候,默认为32位,每个字位,每个字母用母用8位的位的ASCII码值表示码值表示第8章 电子设计自动化2 参数型(parameter)-用parameter来定义常量,称为符号常量,可提高程序的可读性与可维护性。格式:parameter 参数名1=表达式,参数名2=
27、表达式,.,参数名n=表达式;note:表达式必须是常数表达式!第8章 电子设计自动化parameter举例parameter msb=7;parameter byte_size=8,byte_msb=byte_size-1;parameter所定义的常量必须是值可以确定的第8章 电子设计自动化变量类型1.wire型-常用来表示用于以assign关键字指定的组合逻辑信号-默认的类型wire a;/1个1位wire7:0 b;/1个8位wire4:1 c,d;/2个4位第8章 电子设计自动化2.reg型-存储数据单元的抽象-always块内被赋值的每一个信号都必须为reg型(reg只表示被定义的
28、信号将用在alway块内)-默认初始值为不定值:x reg rega;reg3:0 regb;reg4:1 regc,regd;第8章 电子设计自动化3.memory型-通过对reg型变量建立数组,用于对存储器建模reg7:0 mega255:0;-mega存储器,有256个8bit单元,地址范围为0255regn-1:0 rega;与 reg megan-1:0?第8章 电子设计自动化结构说明语句verilog HDL语言中的任何过程模块都从属于以下4种结构的说明语句:-initial/开始时立即执行,且只执行一次-always/开始时立即执行,直到仿真介绍-task-function/ta
29、sk和function语句可以在程序模块中的一处或多处调用第8章 电子设计自动化always语句 -仿真过程中不断活跃着-其后的过程快是否执行取决于它的触发条件是否满足声明格式always note:always语句需要时序控制配合,否则会出现仿真死锁第8章 电子设计自动化always语句例1always areg=areg;/零延迟的无限循环跳变例2always#10 areg=areg;/周期为20的无限延续信号第8章 电子设计自动化always语句例3reg7:0 counter;ret tick;always (posedge areg)/上升沿激励 begin tick=tick;c
30、ounter=counter+1;end第8章 电子设计自动化always语句例4 always (posedge clock or posegde reset)/上升沿 clock or reset激励 begin .end第8章 电子设计自动化always语句例5 always (a or b or c)/多个电平激励 begin .end第8章 电子设计自动化always语句-沿触发的always块常常描述时序行为-电平触发的always块常常描述组合逻辑行为第8章 电子设计自动化verilog HDL实例module muxtwo(out,a,b,s1);input a,b,s1;ou
31、tput out;not u1(ns1,s1);and#1u2(sela,a,ns1);and#1u3(selb,b,s1);or#2 u4(out,sela,selb);endmodule第8章 电子设计自动化模块中的逻辑功能可以通过以下3种方法实现:1.assign声明语句 assign a=b&c;2.用实例元件 and#2 u1(q,a,b);/要求元件名唯一3.用always块note:assign是描述组合逻辑的常用方法,always块可用于组合逻辑和时序逻辑第8章 电子设计自动化运算符与表达式算术运算符(+,-,/,%)赋值运算符(=,=)关系运算符(,=,=)逻辑运算符(&,|
32、,!)条件运算符(?:)位运算符(,|,&,)移位运算符()拼接运算符()第8章 电子设计自动化等式运算符=、=/等于!=、!=/不等于=01xz010 xx101xxxxxxxzxxxx=01xz0100010100 x0010z0001第8章 电子设计自动化等式运算符examples:if(A=1bx)$display(AisX);/当A为X时,这个语句也不执行!if(A=1bx)$display(AisX);/当A为X时,这个语句执行!第8章 电子设计自动化移位运算符-用0填补由于移位造成的空位examples:4b10011=?4b10011=?4b10014=?16=?第8章 电子设
33、计自动化位拼接运算符 可以把2个或多个信号的某些位拼接起来进行运算格式:信号1的某几位,信号2的某几位,.,信号n的某几位note:不允许存在没有指明位数的信号,位宽必须明确第8章 电子设计自动化位拼接运算符 examples:a,b3:0,w,3b101a,b2,b1,b0,w,1b1,1b0,1b14w=w,w,w,w/重复缩写形式b,3a,b=b,a,b,a,b,a,b/嵌套形式第8章 电子设计自动化缩减运算符-单目运算符-最后的运算结果是1位-先第一位与第二位与或,接着第二位与第三位。reg3:0 B;reg C;C=&B;C=(B0&B1)&B2)&B3;第8章 电子设计自动化赋值语
34、句与块语句信号的两种不同的赋值方式:1.非阻塞赋值方式(b=a)-块结束后才完成赋值操作 -b的值不是立即改变的 -比较常用的赋值方法note:注意与比较运算符=区别开来第8章 电子设计自动化赋值语句与块语句2.阻塞赋值方式(b=a)-先赋值,块才结束 -b的值是立即改变的 -可能会产生意想不到的结果note:在always块内给reg信号赋值时,采用哪种方式尤其要注意第8章 电子设计自动化赋值语句与块语句always (posedge clk)begin b=a;c end_wave;/触发事件end_wave end第8章 电子设计自动化赋值语句与块语句并行块 -块内语句是同时执行的 -所
35、有语句的基准时间是进入块语句的时间点 -延迟时间可对赋值语句进行时序控制 -当时序最后的一条语句执行完,或者调用disable语句时,程序流跳出块第8章 电子设计自动化赋值语句与块语句并行块fork#50 r=h35;#100 r=hE2;#150 r=h00;#200 r=hF7;#250 -end_wave;/触发事件end_wave join 第8章 电子设计自动化赋值语句与块语句并行块fork#250 -end_wave;/触发事件end_wave#50 r=h35;#100 r=hE2;#150 r=h00;#200 r=hF7;joinnote:顺序块和并行块的起始时间和结束时间;
36、并行块中语句的顺序可随意。第8章 电子设计自动化条件语句(if-else、case)case 格式:1.case(表达式)endcase2.casez(表达式)endcase2.casex(表达式)endcasecase分支项的一般格式:分支项表达式:语句;default:语句 /可有可无第8章 电子设计自动化casereg15:0 rega;reg9:0 result;case(rega)16d0:result=10b0111_1111;16d1:result=10b1011_1111;16d2:result=10b1101_1111;default:result=10bx;endcese第
37、8章 电子设计自动化casenote:1.case项分支表达式必须不同2.执行完某个case分支,即跳出case语句结构3.分支表达式的值要明确相等才会执行4.位宽必须相等第8章 电子设计自动化casecase、casez和casex的真值表case01xzcasez01xzcasex01xz010000100101011101001010110111x0010 x0011x1111z0001z1111z1111第8章 电子设计自动化循环语句forever:连续的执行语句repeat:执行n次while:条件满足则执行for:分3步走note:for语句的变量增加不能用“+”第8章 电子设计自
38、动化循环语句forever:连续的执行语句格式:forever 语句;note:常用于产生周期性的波形,作为仿真测试信号,与always的不同之处在于:不能独立写在程序中,而必须写在initial块中第8章 电子设计自动化循环语句repeat:执行n次格式:repeat(执行次数)语句;note:常用于产生周期性的波形,作为仿真测试信号,与always的不同之处在于:不能独立写在程序中,而必须写在initial块中第8章 电子设计自动化initial说明语句格式:initial begin 语句s;end1.只执行一次2.常用于仿真信号的产生等第8章 电子设计自动化task和function说
39、明语句-用于定义程序模块区别?1.函数只能跟主模块共用一个仿真时间,任务则没有此限制。2.函数不能启动任务,任务可以启动任务和函数3.函数至少需要一个输入变量,任务可以没有或多个任何类型的变量4.函数返回一个值,任务没有返回值第8章 电子设计自动化task和function说明语句examples:switch_bytes(old_word,new_word);new_word=switch_bytes(old_word);哪个是函数方式?哪个是任务方式?第8章 电子设计自动化一个Verilog HDL实例module traffic_lights;reg clock,red,amber,gr
40、een;parameter on=1,off=0,red_ticks=350,amber_ticks=30,green_ticks=200;initial red=off;initial amber=off;initial green=off;/交通灯初始化alwaysbeginred=on;/开红灯light(red,red_ticks);/调用等待任务green=on;/开绿灯light(green,green_ticks);/调用等待任务amber=on;/开黄灯light(amber,amber_ticks);/调用等待任务end第8章 电子设计自动化一个Verilog HDL实例ta
41、sk light;output color;input31:0 tics;beginrepeat(tics)(posedge clock)/等待tics个时钟的上升沿color=off;end endtask第8章 电子设计自动化一个Verilog HDL实例 alwaysbegin#100 clock=0;#100 clock=1;endendmodule第8章 电子设计自动化8.3 MAX+plus开发系统开发系统8.3.1 概述概述 MAX+plus是美国Altera公司为其生产的可编程逻辑器件而自行设计的一种EDA软件工具,其全称为Multiple Array Matrix and P
42、rogrammable Logic User Systems。第8章 电子设计自动化 1 特点特点 MAX+plus的功能强大而且使用方便,是当前市场上应用最为广泛的PLD开发工具之一,主要有以下几个特点:(1)它多平台。MAX+plus软件可以在基于PC机的操作系统如Windows95、Windows98、Windows2000、Windows NT 3.51或4.0下运行,也可以在Sun SPAC stations、HP9000 Series 700/800或IBM RISC System/6000工作站上运行。第8章 电子设计自动化 (2)与结构无关。MAX+plus开发系统的核心Com
43、piler(编译器)能自动完成逻辑综合和优化,它支持Altera公司Classic、MAX和FLEX系列的PLD,提供了一个与结构无关的PLD开发环境。设计者无须精通器件内部的复杂结构,只要能够使用常用的设计输入方法(如图形输入、HDL输入和波形输入)完成对设计的描述,MAX+plus软件就能自动地将设计输入编译成PLD最终需要的编程文件。第8章 电子设计自动化 (3)完全集成化。MAX+plus的设计输入、编译处理、仿真验证和编程下载等工具都集成在统一的开发环境下,这样可以提高设计效率,缩短开发周期。图8-6是MAX+plus的组成示意图。图 8-6 MAX+plus 的组成第8章 电子设计
44、自动化 (4)开放的界面。MAX+plus提供了与其它设计输入、综合和校验工具的接口,接口符合EDIF 200/300、LPM、VHDL、Verilog HDL等标准。目前MAX+plus所支持的主流的第三方EDA工具主要有Synopsys、Viewlogic、Mentor Graphics、Cadence、OrCAD、Xillinx等公司的工具。(5)支持硬件描述语言。MAX+plus支持HDL输入,包括被列入IEEE标准的VHDL(87版和93版)和Verilog HDL以及Altera公司自己开发的AHDL。第8章 电子设计自动化 (6)丰富的设计库。MAX+plus提供丰富的库单元供设
45、计者调用,其中包括一些基本的逻辑单元(如逻辑门、触发器等)、74系列的器件和多种特定功能的逻辑宏功能(Micro Function)模块以及参数化的兆功能(Mega Function)模块(如乘法器、FIFO、RAM等)。调用库单元进行设计,可以大大减轻设计人员的工作量,缩短设计周期。(7)丰富的在线帮助。MAX+plus提供强大的在线帮助功能,包括MAX+plus的详细使用说明和其它一些信息,如HDL、第三方设计工具等。第8章 电子设计自动化 2 软件安装软件安装 1)版本 MAX+plus软件按使用的平台可分为PC机版和工作站版;按使用对象可分为商业版、基本版(BASELINE)和学生版(
46、E+MAX)。商业版为MAX+plus软件的完全版,需要一个授权文件(License.dat)和一个硬件狗;基本版和学生版都是免费软件,它们在商业版上加了一些不同程度的限制,授权文件(License.dat)可以到Altera公司的网站(www.A)上申请,不需要硬件狗。第8章 电子设计自动化2)推荐的PC系统配置推荐的PC系统配置如下:(1)奔腾以上(包括奔腾)PC机。(2)256 MB以上的有效内存,不低于128 MB的物理内存。(3)500 MB以上的硬盘空间。(4)Windows95/98/2000、Windows NT 3.51/4.0操作系统。(5)17英寸显示器。第8章 电子设计
47、自动化 3)安装步骤 MAX+plus几种版本的安装方法基本相同,这里介绍一下MAX+plus9.5在Windows98下的安装步骤。(1)插入MAX+plus安装光盘并自动运行后,会出现如图8-7所示的界面。选择Full/Custom/FLEXlm Service项,即开始安装商业版;选择BASELINE/E+MAX就开始安装基本版或学生版。也可以在资源管理器中直接运行商业版或BASELINE/E+MAX版的安装程序Setup.exe。第8章 电子设计自动化图 8-7 MAX+plus的安装界面第8章 电子设计自动化 (2)在安装向导的提示下进行操作,完成软件安装。(3)第一次运行MAX+p
48、lus,将会出现MAX+plus Manager(管理器)界面,如图8-8所示。同时会在管理器窗口上出现License Agreement信息,选择其中的“Yes”项(若选择“No”则会退出MUX+plus。)第8章 电子设计自动化图 8-8 MAX+plus的管理器界面第8章 电子设计自动化 (4)接着会出现Copy Protection窗口。选择“是(Y)”,将显示如何申请免费版本的授权文件;如果有硬件狗或授权文件,选择“否(N)”选项,并将硬件狗插在计算机并口上。(5)执行MAX+plus管理器中的菜单命令Option/License Setup,在对话框中输入带路径名的授权文件名,然后
49、单击“OK”。第8章 电子设计自动化 8.3.2 MUX+plus开发流程开发流程 使用MAX+plus进行可编程逻辑器件开发主要包括四个阶段:设计输入、编译处理、验证(包括功能仿真、时序仿真、定时分析)和器件编程,如图8-9所示。下面以一个简单的例子时钟信号的8分频器(要求输出时钟的占空比为50%)来示范用MAX+plus进行开发的全过程。开发之前,先要启动MAX+plus,进入MAX+plus的主界面管理器界面,然后再行以下的步骤。第8章 电子设计自动化图 8-9 MAX+plus的设计流程第8章 电子设计自动化 1 设计输入设计输入 MAX+plus的设计输入的方式主要有:图形输入(.g
50、df、.sch)、文本输入(.vhd、.v、.tdf)、网表输入(.edf、.xnf)和波形输入(.wdf)等,设计输入的方式不同,生成的设计文件的后缀名也不同。一个项目在分层次设计时,不同的设计模块可以采用不同的设计方式,这里只介绍VHDL设计输入方式,其输入步骤如下:(1)在File菜单中选择New,然后在跳出的对话框中选择Text Edit File,再选择OK,即可打开一个无标题的Text Edit窗口。第8章 电子设计自动化 (2)在File菜单中选择Save As(或Save),在弹出的Save As对话框中输入文件名freq-div8,选择扩展名.vhd和文件要存放的位置。也可以