已阅读5页,还剩115页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第8章 电子设计自动化,8.1 EDA概述 8.2 硬件描述语言Verilog HDL 初步 8.4 MAX+plus开发系统,8.1 EDA概述,EDA就是以计算机为工作平台、以EDA软件工具为开发环境、 以硬件描述语言为设计语言、以ASIC为实现载体的电子产品自动化设计过程,它包括半导体工艺设计自动化、可编程逻辑器件设计自动化、电子系统设计自动化、 印刷电路板PCB(Printed Circuit Board)设计自动化、仿真测试、故障诊断以及形式验证自动化。需要说明的是,这里所讲的是狭义的EDA,没有包括模拟电路的设计自动化。,EDA作为一门崭新的学科, 它的知识体系结构为: 现代电子设计理论; 可编程逻辑器件原理、 结构及应用; 硬件描述语言; EDA工具的开发和应用; EDA设计方法论; EDA的应用及实践。,8.1.1 EDA的发展概况 集成电路技术的发展不断地给EDA技术提出新的要求,对EDA技术的发展起了巨大的推动作用。从20世纪60年代中期开始, 人们就不断地开发出各种计算机辅助设计工具来帮助设计人员进行集成电路和电子系统的设计。 近40年来, EDA技术大致经历了计算机辅助设计CAD(Computer Aided Design)、 计算机辅助工程CAE(Computer Aided Engineering)和电子系统设计自动化ESDA(Electronic System Design Automation)三个发展阶段。 ,1CAD阶段(20世纪60年代中期20世纪80年代初期) 20世纪70年代,随着中、小规模集成电路的开发和应用,传统的手工制图设计印刷电路板和集成电路的方法已无法满足设计精度和效率的要求, 于是工程师们开始进行二维平面图形的计算机辅助设计, 这样就产生了第一代EDA工具, 设计者也从繁杂、 机械的计算、布局和布线工作中解放了出来。 但在EDA发展的初始阶段, EDA工具的供应商只有几家,产品几乎全部面向PCB设计、电路模拟或IC版图设计。例如,目前常用的PCB布线软件Protel的早期版本Tango、用于电路模拟的SPICE软件以及后来产品化的IC版图编辑与设计规则检查系统等软件,都是这个时期的产品。 ,20世纪80年代初,随着集成电路规模的增大, EDA技术有了较快的发展。更多的软件公司,如当时的Mentor公司、Daisy Systems及Logic System公司等进入EDA领域,开始提供带电路图编辑工具和逻辑模拟工具的EDA软件, 主要解决了设计实现之前的功能检验问题。 总的来讲,这一阶段的EDA水平还很低, 对设计工作的支持十分有限,主要存在两个方面的问题需要解决:,2 CAE阶段(20世纪80年代初期20世纪90年代初期) 这个阶段在集成电路与电子系统设计方法学以及设计工具集成化方面取得了许多成果。各种设计工具,如原理图输入、 编译与连接、 逻辑模拟、 逻辑综合、 测试码生成、 版图自动布局以及各种单元库均已齐全。 不同功能的设计工具之间的兼容性得到了很大改善,那些不走兼容道路、 想独树一帜的CAD工具受到了用户的抵制,逐渐被淘汰。EDA软件设计者采用统一数据管理技术,把多个不同功能的设计软件结合成一个集成设计环境。 按照设计方法学制定的设计流程, 在一个集成设计环境中就能实现由寄存器传输级RTL(Register Transfers Level)开始,从设计输入到版图输出的全程设计自动化。 在这个阶段, 基于门阵列和标准单元库设计的半定制ASIC得到了极大的发展, 将电子系统设计推入了ASIC时代。 但是,大部分从原理图出发的CAE工具仍然不能适应复杂电子系统的要求, 而且具体化的元件图形制约着优化设计。,3 ESDA阶段(20世纪90年代以来) 20世纪90年代以来, 集成电路技术以惊人的速度发展, 其工艺水平已经达到深亚微米级, 一个芯片上可以集成数百万甚至上千万只晶体管, 工作频率可达GHz。 这不仅为片上系统SOC(System On Chip)的实现提供了可能, 同时也给EDA技术提出了更高的要求,促进了EDA技术的发展。 在这一阶段,出现了以硬件描述语言、 系统级仿真和综合技术为基本特征的第三代EDA技术, 它使设计师们摆脱了大量的具体设计工作,而把精力集中于创造性的方案与概念构思上, 从而极大地提高了系统设计的效率,缩短了产品的研制周期。 EDA技术在这一阶段的发展主要有以下几个方面。 ,1) 用硬件描述语言来描述数字电路与系统 这是现代EDA技术的基本特征之一, 并且已经形成了VHDL和Verilog HDL两种IEEE(The Institute of Electrical and Electronics Engineers, 电气和电子工程师协会)标准硬件描述语言。它们均能支持系统级、算法级、RTL级(又称数据流级)和门级各个层次的描述或多个不同层次的混合描述,涉及的领域有行为描述和结构描述两种形式。 硬件描述与实现工艺无关,而且还支持不同层次上的综合与仿真。硬件描述语言的使用规范了设计文档, 便于设计的传递、 交流、 保存、 修改及重复使用。,2) 高层次的仿真与综合 所谓综合,就是由较高层次描述到低层次描述、 由行为描述到结构描述的转换过程;仿真是在电子系统设计过程中对设计者的硬件描述或设计结果进行查错、验证的一种方法。对应于不同层次的硬件描述,有不同级别的综合与仿真工具。高层次的综合与仿真将自动化设计的层次提高到了算法行为级,使设计者无需面对低层电路,而把精力集中到系统行为建模和算法设计上, 而且可以帮助设计者在最早的时间发现设计中的错误, 从而大大缩短了设计周期。 ,3) 平面规划技术 平面规划(Floorplaning)技术对逻辑综合和物理版图设计进行联合管理,做到在逻辑综合早期设计阶段就考虑到物理设计信息的影响。通过这些信息,可以再进一步地对设计进行综合和优化,并保证不会对版图设计带来负面的影响。 这在深亚微米级布线时延已经成为主要时延的情况下,对加速设计过程的收敛与成功是有所帮助的。在Synopsys和Cadence等著名公司的EDA系统中都采用了这项技术。,4) 可测试性综合设计 随着ASIC规模和复杂性的增加,测试的难度和费用急剧上升,由此而产生了将可测试性电路结构做在ASIC芯片上的思想, 于是开发出了扫描插入、内建自测试(BIST)和边界扫描等可测试性设计(DFT)工具,并已集成到EDA系统中。如Compass公司的Test Assistant和Mentor Graphics公司的LBLST Achitect、 BSD Achitect和DFT Advisor等。,5)开放性、标准化框架结构的集成设计环境和并行设计工程 近年来,随着硬件描述语言等设计数据格式的逐渐标准化, 不同设计风格和应用的要求使得有必要建立开放性、标准化的EDA框架。 所谓框架, 就是一种软件平台结构,为EDA工具提供操作环境。框架的关键在于建立与硬件平台无关的图形用户界面以及工具之间的通信、设计数据和设计流程的管理等,此外还包括各种与数据库相关的服务项目。任何一个EDA系统只要建立一个符合标准的开放式框架结构,就可以接纳其它厂商的EDA工具一起进行设计工作。这样,框架作为一套使用和配置EDA软件包的规范,就可以实现各种EDA工具间的优化组合,并集成在一个易于管理的统一环境下,实现资源共享。 ,针对当今电子设计中数字电路与模拟电路并存、 硬件设计与软件设计并存以及产品更新换代快的特点,并行设计工程CE(Concurrent Engineering)要求一开始就从管理层次上把工艺、 工具、任务、智力和时间安排协调好; 在统一的集成设计环境下, 由若干相关的设计小组共享数据库和知识库,同步进行设计。 CE改变了传统的设计过程中,过分依赖专业分工和设计人员过分强调所学专业知识的状况。,8.1.2 EDA设计语言,1 VHDL和Verilog HDL语言 VHDL是由美国国防部在70年代末和80年代初提出的超高速集成电路VHSIC(Very High Speed Integrated Circuit)计划的产物, 其目的是为了在承担国防部定货的各集成电路厂商之间建立一个统一的设计数据和文档交换格式。1987年12月,IEEE接受HDL为标准HDL,也就是IEEEStd1076-1987LRM87。此后又做了一些修改,新的版本为IEEEStd1076-1993LRM93。,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 International)组织来负责Verilog HDL的推广。 基于Verilog HDL的优越性,Verilog HDL于1995年成为了IEEE的另一个HDL标准。 ,几年以来, EDA界对VHDL和Verilog HDL这两种语言一直争论不休。实际上这两种语言各有所长,市场占有率也相差不多。 一般认为,Verilog HDL是从集成电路的设计中发展而来的, 在门级电路、晶体管开关级电路的描述方面比VHDL强, 在系统级的抽象描述方面,VHDL则更合适。目前,大多数的EDA软件都同时支持这两种硬件描述语言。 ,2ABEL和AHDL语言 与VHDL和Verilog HDL相比,ABEL和AHDL的功能相对比较简单,它们适合于RTL级和门级电路的描述,主要用于可编程逻辑器件的开发。 ABEL语言是由美国Data I/O公司推出的,该公司也是ABEL语言综合器的惟一供应商,有不少EDA软件支持ABEL语言,如ispEXPERT、 Synario、 Foundation等。 AHDL语言则只集成在Altera公司的可编程逻辑器件开发工具中,只能在Altera的开发软件中进行编译和调试。 ,3 C语言 在电子系统设计中,硬件设计采用VHDL和Verilog HDL之类硬件描述语言,软件设计则采用C和C+等编程语言。这种硬件设计和软件设计使用不同语言的现象,给设计带来了不便,延长了产品开发的周期。从EDA的发展趋势来看, 直接用C语言来描述硬件是未来的一个发展方向,这样软件设计人员和硬件设计人员之间就有了“共同语言”,从而能够实现软、硬件协同设计,提高设计效率。 目前,用C语言描述硬件主要有两个分支:System C和Spec C。 System C适用于从系统设计到逻辑设计这一阶段;Spec C则适用于从对技术要求的把握到系统设计这一阶段。,8.1.3 EDA开发工具,图 8 - 1 EDA工具的范畴,EDA工具主要能够进行三个方面的辅助设计工作: 印刷电路板PCB设计; ASIC设计; 电子系统设计。 没有EDA工具的支持,想要完成超大规模集成电路或复杂电子系统的设计制造是不可想象的。 ,全球的EDA软件供应商有近百家之多, 大体上可以分成两类:一类是专业的EDA软件公司,如Mentor Graphics、 Cadence Design Systems、 Synopsys、 Viewlogic Systems和Protel等;另一类是半导体器件厂商, 为销售他们的产品而开发EDA工具,Altera、Xilinx、Lattice和Actel等。专业的EDA软件公司独立于半导体器件厂商,推出的EDA工具有较好的标准化和兼容性, 也比较注意追求技术上的先进性,一般将这类工具称为第三方工具; 而半导体器件厂商开发的EDA工具则能够作出针对自己器件特点的优化设计。 在表8 - 1中列出了部分EDA软件,其中也包括了一些模拟/数字混合电路的EDA软件。,表8 - 1 部分EDA软件简介,表8 - 1 部分EDA软件简介,8.1.4 EDA设计方法 EDA设计方法属于现代电子设计的范畴, 它与经典的电子设计方法不同。主要涵盖行为描述法、IP复用法、ASIC设计方法、 数字系统的高层次设计方法、e-DA网上设计方法、软硬件协同设计方法、 基于集成平台的设计方法。 数字系统的设计包括行为、结构和物理三个领域。行为是指系统的功能,或者说系统应该做什么;结构是指系统的组成,或者说系统的抽象实现,典型的是抽象模块的相互连接;物理是指系统具体实现的几何特征与物理特性, 也就是把结构领域中的抽象元件代之以真实的物理元件。 根据抽象级别的不同, 数字系统又划分为若干层次,一般从顶向下包括系统级、算法级、寄存器传输级(RTL)、逻辑级、 电路级等。 通常将寄存器传输级以上的层次称为高层次。利用硬件描述语言在寄存器传输级以上的层次进行描述、设计的方法称为数字系统的高层次设计方法,描述的层次越高, 设计的层次就越高。,数字系统的高层次设计方法代表了现代数字系统设计的发展方向,它的基本特征是: 用一片或几片ASIC实现整个数字系统; 设计人员遵循“自顶向下”的设计思想,首先对整个系统进行方案设计、功能划分和算法设计, 并采用硬件描述语言完成算法级行为描述,最后由EDA工具完成目标器件的设计。ASIC、 EDA工具和硬件描述语言是高层次设计方法的三大基石。 ,图 8 - 2 数字系统高层次设计的设计流程, 在明确系统功能的前提下,首先设计系统的实现方案, 然后进行功能划分和算法设计。这些富有创造性的工作与上一章所介绍的基本相同, 仍然需要由人工完成,只不过在高层次设计方法中, 这些工作不再受市场上通用逻辑器件的局限。 设计输入。一般是采用VHDL/Verilog HDL在算法级对系统进行行为描述,此外还可以采用比较直观的图形输入方式(方框图、 状态图等)。 , 编译。 编译器对以上设计中的HDL描述的语法和语意进行检查和解释,并将以上的输入转换成适当的中间数据格式,为下一步的综合作好准备。 功能仿真。 功能仿真又称为前仿真, 主要是检验系统的逻辑功能设计的正确性,除了系统规定的定时关系以外, 对实际电路中的惯性时延、 传输时延均不予考虑。对于大型的设计, 综合、适配要花费数小时, 在综合之前进行功能仿真就可以及早发现设计错误,节约设计时间。一般情况下,对于比较简单的设计, 可以略去这一仿真步骤。 , 综合。利用综合器对HDL源代码进行综合优化处理, 生成门级描述的网表文件,这是将高层次描述转化为硬件电路的关键步骤。 适配。利用适配器将综合后的网表文件针对某一具体的目标器件进行逻辑映射操作,包括底层器件配置、逻辑分割、逻辑优化和布局布线。适配完成后, 产生多项设计结果:适配报告(包括芯片内部资源利用情况)、 引脚分配和设计的布尔方程描述情况; 适配后的仿真模型; 器件编程文件。 , 时序仿真。根据适配后的仿真模型, 可以进行时序仿真(又称为后仿真),因为已经得到器件的实际硬件特性(如时延特性),所以仿真结果能比较精确地预期未来芯片的实际性能。 如果仿真结果达不到设计要求, 就需要修改HDL源代码或选择不同速度品质的器件,直至满足设计要求为止。, PLD编程。将适配器产生的器件编程文件通过编程器或下载电缆载入到目标芯片可编程逻辑器件中。 器件测试。在器件编程后, 需要利用实验手段测试器件最终的功能和性能指标。 如果是大批量产品的开发,通过更换相应厂家的综合库, 可以很容易转由掩膜ASIC形式实现。 ,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; else out = b; endmodule,数据常量 - Verilog HDL中共有19种数据类型。 1 数字 整数 二进制数(b或B) 十进制数(d或D) 十六进制数(h或H) 八进制数(o或O),数字的三种表达方式: - 全面的描述方式 - 默认位宽,至少32位 - 默认位宽与进制(十进制) examples: 8b10101100 8ha2,x 与 z - x代表不定值;z(?)代表高阻值 examples: 4b10x0 4b101z 12dz 12d? 8h4x,负数 - 在位宽表达式前加一个减号(-),减号必须放在数字定义表达式的最前面。 examples: -8d5 /ok 8d-5 /not ok!,下划线 - 用来分割数字的表达,提高程序的可读性,只能用在具体的数字之间。 examples: 16b1010_1111_1001_0001 /OK 8b_1001_1111 / not ok! note:常量不说明位数的时候,默认为32位,每个字母用8位的ASCII码值表示,2 参数型(parameter) - 用parameter来定义常量,称为符号常量,可提高程序的可读性与可维护性。 格式: parameter 参数名1 = 表达式,参数名2 = 表达式,. ,参数名n = 表达式; note:表达式必须是常数表达式!,parameter举例 parameter msb = 7; parameter byte_size=8,byte_msb=byte_size-1; parameter所定义的常量必须是值可以确定的,变量类型 1. wire型 - 常用来表示用于以assign关键字指定的组合逻辑信号 - 默认的类型 wire a; / 1个1位 wire7:0 b; /1个8位 wire4:1 c,d; /2个4位,2. reg型 - 存储数据单元的抽象 - always块内被赋值的每一个信号都必须为reg型(reg只表示被定义的信号将用在alway块内) - 默认初始值为不定值:x reg rega; reg3:0 regb; reg4:1 regc,regd;,3. memory型 - 通过对reg型变量建立数组,用于对存储器建模 reg7:0 mega255:0; - mega存储器,有256个8bit单元,地址范围为0255 regn-1:0 rega; 与 reg megan-1:0?,结构说明语句 verilog HDL语言中的任何过程模块都从属于以下4种结构的说明语句: - initial /开始时立即执行,且只执行一次 - always /开始时立即执行,直到仿真介绍 - task - function /task和function语句可以在程序模块中的一处或多处调用,always语句,- 仿真过程中不断活跃着 - 其后的过程快是否执行取决于它的触发条件是否满足 声明格式 always note: always语句需要时序控制配合,否则会出现仿真死锁,always语句,例1 always areg = areg; /零延迟的无限循环跳变 例2 always #10 areg = areg; /周期为20的无限延续信号,always语句,例3 reg7:0 counter; ret tick; always (posedge areg) /上升沿激励 begin tick = tick; counter = counter + 1; end,always语句,例4 always (posedge clock or posegde reset) /上升沿 clock or reset激励 begin end,always语句,例5 always (a or b or c) /多个电平激励 begin end,always语句,- 沿触发的always块常常描述时序行为 - 电平触发的always块常常描述组合逻辑行为,verilog HDL实例,module muxtwo(out, a, b, s1); input a, b, s1; output out; not u1(ns1, s1); and #1 u2(sela, a, ns1); and #1 u3(selb, b, s1); or #2 u4(out, sela, selb); endmodule,模块中的逻辑功能可以通过以下3种方法实现: 1. assign声明语句 assign a = b /要求元件名唯一 3. 用always块 note:assign是描述组合逻辑的常用方法,always块可用于组合逻辑和时序逻辑,运算符与表达式,算术运算符(+,-,/,%) 赋值运算符(=,,=,) 拼接运算符( ),等式运算符,= 、 = /等于 !=、 != /不等于,等式运算符,examples: if(A = 1bx) $display(“AisX“); /当A为X时,这个语句也不执行! if(A = 1bx) $display(“AisX“); /当A为X时,这个语句执行!,移位运算符, - 用0填补由于移位造成的空位 examples: 4b10011 = ? 4b10014 = ? 16 = ?,位拼接运算符 , 可以把2个或多个信号的某些位拼接起来进行运算 格式: 信号1的某几位, 信号2的某几位, ., 信号n的某几位 note:不允许存在没有指明位数的信号,位宽必须明确,位拼接运算符 ,examples: a,b3:0,w,3b101 a,b2,b1,b0,w,1b1,1b0,1b1 4w = w,w,w,w /重复缩写形式 b,3a,b = b,a,b,a,b,a,b /嵌套形式,缩减运算符,- 单目运算符 - 最后的运算结果是1位 - 先第一位与第二位与或,接着第二位与第三位。 reg3:0 B; reg C; C = ,赋值语句与块语句,信号的两种不同的赋值方式: 1. 非阻塞赋值方式(b = a) - 块结束后才完成赋值操作 - b的值不是立即改变的 - 比较常用的赋值方法 note:注意与比较运算符“=“区别开来,赋值语句与块语句,2. 阻塞赋值方式(b = a) - 先赋值,块才结束 - b的值是立即改变的 - 可能会产生意想不到的结果 note:在always块内给reg信号赋值时,采用哪种方式尤其要注意,赋值语句与块语句,always (posedge clk) begin b = a; c = b; end /clk到来,b为a,c为b(c保持原来的b值) always (posedge clk) begin b = a; c = b; end /clk到来,b、c同时变化为a,赋值语句与块语句,块语句 - 将多条语句组合在一起,整体化 - 2种类别:顺序块begin_end; 并行块fork_join,赋值语句与块语句,顺序块 parameter d = 50; reg7:0 r; begin #d r = h35; #d r = hE2; #d r = h00; #d r = hF7; #d -end_wave; /触发事件end_wave end,赋值语句与块语句,并行块 - 块内语句是同时执行的 - 所有语句的基准时间是进入块语句的时间点 - 延迟时间可对赋值语句进行时序控制 - 当时序最后的一条语句执行完,或者调用disable语句时,程序流跳出块,赋值语句与块语句,并行块 fork #50 r = h35; #100 r = hE2; #150 r = h00; #200 r = hF7; #250 -end_wave; /触发事件end_wave join,赋值语句与块语句,并行块 fork #250 -end_wave; /触发事件end_wave #50 r = h35; #100 r = hE2; #150 r = h00; #200 r = hF7; join note:顺序块和并行块的起始时间和结束时间;并行块中语句的顺序可随意。,条件语句(if-else、case),case 格式: 1. case(表达式) endcase 2. casez(表达式) endcase 2. casex(表达式) endcase case分支项的一般格式: 分支项表达式: 语句; default: 语句 /可有可无,case,reg15:0 rega; reg9:0 result; case(rega) 16d0: result = 10b0111_1111; 16d1: result = 10b1011_1111; 16d2: result = 10b1101_1111; default: result = 10bx; endcese,case,note: 1. case项分支表达式必须不同 2. 执行完某个case分支,即跳出case语句结构 3. 分支表达式的值要明确相等才会执行 4. 位宽必须相等,case,case、casez和casex的真值表,循环语句,forever:连续的执行语句 repeat:执行n次 while:条件满足则执行 for:分3步走 note:for语句的变量增加不能用“+”,循环语句,forever:连续的执行语句 格式: forever 语句; note:常用于产生周期性的波形,作为仿真测试信号,与always的不同之处在于:不能独立写在程序中,而必须写在initial块中,循环语句,repeat:执行n次 格式: repeat(执行次数) 语句; note:常用于产生周期性的波形,作为仿真测试信号,与always的不同之处在于:不能独立写在程序中,而必须写在initial块中,initial说明语句,格式: initial begin 语句s; end 1. 只执行一次 2. 常用于仿真信号的产生等,task和function说明语句,-用于定义程序模块 区别? 1. 函数只能跟主模块共用一个仿真时间,任务则没有此限制。 2. 函数不能启动任务,任务可以启动任务和函数 3. 函数至少需要一个输入变量,任务可以没有或多个任何类型的变量 4. 函数返回一个值,任务没有返回值,task和function说明语句,examples: switch_bytes(old_word, new_word); new_word = switch_bytes(old_word); 哪个是函数方式?哪个是任务方式?,一个Verilog HDL实例,module traffic_lights; reg clock,red,amber,green; parameter on = 1,off = 0, red_ticks = 350, amber_ticks = 30, green_ticks = 200; initial red = off; initial amber = off; initial green = off; /交通灯初始化 always begin red = on; /开红灯 light(red,red_ticks); /调用等待任务 green = on; /开绿灯 light(green,green_ticks); /调用等待任务 amber = on; /开黄灯 light(amber,amber_ticks); /调用等待任务 end,一个Verilog HDL实例,task light; output color; input31:0 tics; begin repeat(tics) (posedge clock) /等待tics个时钟的上升沿 color = off; end endtask,一个Verilog HDL实例,always begin #100 clock = 0; #100 clock = 1; end endmodule,8.3 MAX+plus开发系统,8.3.1 概述 MAX+plus是美国Altera公司为其生产的可编程逻辑器件而自行设计的一种EDA软件工具,其全称为Multiple Array Matrix and Programmable Logic User Systems。,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工作站上运行。 ,(2) 与结构无关。MAX+plus开发系统的核心Compiler(编译器)能自动完成逻辑综合和优化,它支持Altera公司Classic、MAX和FLEX系列的PLD,提供了一个与结构无关的PLD开发环境。设计者无须精通器件内部的复杂结构, 只要能够使用常用的设计输入方法(如图形输入、HDL输入和波形输入)完成对设计的描述,MAX+plus软件就能自动地将设计输入编译成PLD最终需要的编程文件。 ,(3) 完全集成化。MAX+plus的设计输入、 编译处理、 仿真验证和编程下载等工具都集成在统一的开发环境下,这样可以提高设计效率,缩短开发周期。 图8 - 6是MAX+plus的组成示意图。 ,图 8 - 6 MAX+plus 的组成,(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。 ,(6) 丰富的设计库。MAX+plus提供丰富的库单元供设计者调用,其中包括一些基本的逻辑单元(如逻辑门、 触发器等)、74系列的器件和多种特定功能的逻辑宏功能(Micro Function)模块以及参数化的兆功能(Mega Function)模块(如乘法器、 FIFO、 RAM等)。调用库单元进行设计,可以大大减轻设计人员的工作量, 缩短设计周期。 (7) 丰富的在线帮助。 MAX+plus提供强大的在线帮助功能,包括MAX+plus的详细使用说明和其它一些信息,如HDL、 第三方设计工具等。 ,2 软件安装 1) 版本 MAX+plus软件按使用的平台可分为PC机版和工作站版; 按使用对象可分为商业版、基本版(BASELINE)和学生版(E+MAX)。商业版为MAX+plus软件的完全版,需要一个授权文件(License.dat)和一个硬件狗; 基本版和学生版都是免费软件,它们在商业版上加了一些不同程度的限制, 授权文件(License.dat)可以到Altera公司的网站(www. A)上申请,不需要硬件狗。 ,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英寸显示器。,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 - 7 MAX+plus的安装界面,(2) 在安装向导的提示下进行操作, 完成软件安装。 (3) 第一次运行MAX+plus,将会出现MAX+plus Manager(管理器)界面, 如图8 - 8所示。同时会在管理器窗口上出现License Agreement信息,选择其中的“Yes”项(若选择“No”则会退出MUX+plus。 ),图 8 - 8 MAX+plus的管理器界面,(4) 接着会出现Copy Protection窗口。选择“是(Y)”, 将显示如何申请免费版本的授权文件; 如果有硬件狗或授权文件, 选择“否(N)”选项, 并将硬件狗插在计算机并口上。 (5) 执行MAX+plus管理器中的菜单命令Option/License Setup,在对话框中输入带路径名的授权文件名,然后单击“OK”。,8.3.2 MUX+plus开发流程,使用MAX+plus进行可编程逻辑器件开发主要包括四个阶段:设计输入、 编译处理、验证(包括功能仿真、 时序仿真、 定时分析)和器件编程, 如图8 - 9所示。 下面以一个简单的例子时钟信号的8分频器(要求输出时钟的占空比为50%)来示范用MAX+plus进行开发的全过程。 开发之前,先要启动MAX+plus,进入MAX+plus的主界面管理器界面,然后再行以下的步骤。 ,图 8 - 9 MAX+plus的设计流程,1 设计输入 MAX+plus的设计输入的方式主要有:图形输入(.gdf、 .sch)、 文本输入(.vhd、 .v、 .tdf)、 网表输入(.edf、 .xnf)和波形输入(.wdf)等, 设计输入的方式不同,生成的设计文件的后缀名也不同。一个项目在分层次设计时, 不同的设计模块可以采用不同的设计方式,这里只介绍VHDL设计输入方式,其输入步骤如下: (1) 在File菜单中选择New, 然后在跳出的对话框中选择Text Edit File,再选择OK,即可打开一个无标题的Text Edit窗口。,(2) 在File菜单中选择Save As(或Save),在弹出的Save As对话框中输入文件名freq-div8,选择扩展名.vhd和文件要存放的位置。 也可以直接在File Name栏中直接输入带完整目录名和后缀的文件名,如: D:My-workdemo freq-div8.vhd。 如果目录名不存在,MAX+plus会询问是否建立这个目录, 选择“是(Y)”。 这样,Text Edit窗口的标题就变为freq-div8.vhd。 需要注意的是,用户最好为每一个设计建立一个它自己的子目录,与这个设计有关的所有文件都存放在它的子目录下。 ,(3) 在File菜单中选择ProjectSet Project to Current File,将freq-div8.vhd指定为当前的项目。,LIBRARY IEEE; USE IEEE.STD-LOGIC-1164.ALL; USE IEEE.STD-LOGIC-UNSIGNED.ALL; ENTITY freq-div8 IS -注意, 实体名要与文件名一致。 PORT( clk-in : IN STD-LOGIC; clk-out : OUT STD-LOGIC );,(4) 在标题为freq-div8.vhd的Text Edit窗口中键入8分频器的VHDL源程序:,END ENTITY freq-div8; ARCHITECTURE arch OF freq-div8 IS SIGNAL cnt : STD-LOGIC-VECTOR( 2 DOWNTO 0 ); BEGIN PROCESS( clk-in) BEGIN IF( clk-inEVENT AND clk-in = 1 ) THEN cnt = cnt + 1;END IF; END PROCESS; PROCESS( clk-in ) BEGIN,IF( clk-inEVENT AND clk-in = 1 ) THEN IF(cnt = “011“ AND cnt “111“) THEN clk-out = 1; ELSE clk-out = 0; END IF; END IF; END PROCESS; END ARCHITECTURE arch;,2 编译处理与仿真 1) 语法检查 (1) 选择MAX+plus菜单中的Complier,打开Complier窗口, 如图8 -10所示。 (2) 选择Interfaces菜单中的VHDL Netlist Reader Setting, 在弹出的对话框中指定VHDL设计文件是87版本还是93版本。 ,(3) 选择File菜单中的ProjectSave否则,就会在Complier窗口下就会出现Messages窗口,用鼠标左键双击某个错误(Error)或警告(Warning)信息, 就会定位至设计文件中导致出现该信息的位置,修改设计文件后, 重新进行语法检查, 直到没有错误和警告信息为止。 ,图 8 - 10 编译器窗口,2) 功能编译 (1) 先打开Complier窗口,然后在Processing菜单中选择Functional SNF Extractor(功能仿真网表文件提取器), 编译窗口将会如图8 - 10(a)所示。 (2) 选择窗口中的Start项,即开始执行功能编译。其中的Functional SNF Extractor将产生一个用于功能仿真的仿真网表文件(.snf)。由于功能编译与器件无关,所以该仿真网表文件中不包含实际电路的时延信息。 ,3) 功能仿真 功能仿真不考虑实际电路中的时延, 只能验证逻辑功能是否正确。 其步骤是: (1) 建立仿真波形文件, 它又可分为以下几步: 在File菜单中选择New,然后在跳出的对话框中选择Waveform Edit File和后缀名.scf,再选择OK,即可打开一个无标题的Waveform Edit窗口。 设置最大仿真时间。在File菜单中选择End Time,就可以在弹出的End Time对话框中设置所允许的最大仿真时间(如10 s)。, 选择Node菜单中的Insert Node from SNF, 打开Insert Node from SNF对话框。对话框的Node/Group栏中为星号(*), 选择List, 这样就在左边一栏中列出了该设计中存在的所有信号(包括内部信号和端口信号)。用鼠标选中激励(输入)信号和需要仿真的信号(clk-in、clk-out、cnt),再用对话
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025西咸新区空港新城企业招聘(308人)笔试历年典型考点题库附带答案详解
- 2025福建福州市建筑设计院有限责任公司招聘22人笔试历年备考题库附带答案详解
- 2025福建晋园发展集团有限责任公司权属子公司招聘7人笔试历年备考题库附带答案详解
- 2025四川绵阳科瑞软件有限责任公司招聘人力资源主管岗拟录用人员笔试历年备考题库附带答案详解2套试卷
- AI技术在传统玉雕文化传播中的应用
- AI技术辅助古籍的知识图谱构建技术
- AI在工业安全生产智能监控中的应用
- 高一物理教师教学方法反思
- 小学英语四年级上册 Unit 3 Main Scene 情境导入课教案
- 小学三年级数学《建构整体视角下的几分之几》第二课时教学设计
- 新生儿黄疸蓝光治疗箱校准规范
- 钢结构拆除专项施工方案(完整版)
- 仓库五距安全培训课件
- 监控设备集中采购方案(3篇)
- 机房保洁除尘方案(3篇)
- 旅游景区餐饮管理制度
- 中医药器材文化
- 北师大版2025年八年级数学下册计算题专题训练专题04分式的混合运算(计算题专题训练)(学生版+解析)
- 应收应付款管理制度
- 林业行政处罚流程
- 飞机构造基础(完整课件)
评论
0/150
提交评论