数字系统设计与VerilogHDL_第1页
数字系统设计与VerilogHDL_第2页
数字系统设计与VerilogHDL_第3页
数字系统设计与VerilogHDL_第4页
数字系统设计与VerilogHDL_第5页
已阅读5页,还剩19页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数字系统设计与VERILOGHDL(复习)EDA(ELECTRONICDESIGNAUTOMATION)就是以计算机为工作平台,以EDA软件工具为开发环境,以PLD器件或者ASIC专用集成电路为目标器件设计实现电路系统的一种技术。1电子CAD(COMPUTERAIDEDDESIGN)2电子CAE(COMPUTERAIDEDENGINEERING)3EDA(ELECTRONICDESIGNAUTOMATION)EDA技术及其发展P2EDA技术的应用范畴13数字系统设计的流程基于FPGA/CPLD的数字系统设计流程1原理图输入SCHEMATICDIAGRAMS2、硬件描述语言HDL文本输入设计输入硬件描述语言与软件编程语言有本质的区别综合(SYNTHESIS)将较高层次的设计描述自动转化为较低层次描述的过程行为综合从算法表示、行为描述转换到寄存器传输级(RTL)逻辑综合RTL级描述转换到逻辑门级(包括触发器)版图综合或结构综合从逻辑门表示转换到版图表示,或转换到PLD器件的配置网表表示综合器是能自动实现上述转换的软件工具,是能将原理图或HDL语言描述的电路功能转化为具体电路网表的工具适配适配器也称为结构综合器,它的功能是将由综合器产生的网表文件配置于指定的目标器件中,并产生最终的可下载文件对CPLD器件而言,产生熔丝图文件,即JEDEC文件;对FPGA器件则产生BITSTREAM位流数据文件P8仿真(SIMULATION)功能仿真(FUNCTIONSIMULATION)时序仿真(TIMINGSIMULATION)仿真是对所设计电路的功能的验证P9编程(PROGRAM)把适配后生成的编程文件装入到PLD器件中的过程,或称为下载。通常将对基于EEPROM工艺的非易失结构PLD器件的下载称为编程(PROGRAM),将基于SRAM工艺结构的PLD器件的下载称为配置(CONFIGURE)。习题11现代EDA技术的特点有哪些12什么是TOPDOWN设计方式13数字系统的实现方式有哪些各有什么优缺点14什么是IP复用技术IP核对EDA技术的应用和发展有什么意义15用硬件描述语言设计数字电路有什么优势16基于FPGA/CPLD的数字系统设计流程包括哪些步骤17什么是综合常用的综合工具有哪些18功能仿真与时序仿真有什么区别第2章FPGA/CPLD器件21PLD的分类PLD的发展历程PLD的集成度分类可编程逻辑器件(PLD)简单PLD复杂PLDPROMPALPLAGALCPLDFPGA一般将GAL22V10(500门750门)作为简单PLD和高密度PLD的分水岭PLD器件按照可以编程的次数可以分为两类1一次性编程器件(OTP,ONETIMEPROGRAMMABLE)2可多次编程器件OTP类器件的特点是只允许对器件编程一次,不能修改,而可多次编程器件则允许对器件多次编程,适合于在科研开发中使用。按编程特点分类P151熔丝(FUSE)2反熔丝(ANTIFUSE)编程元件3紫外线擦除、电可编程,如EPROM。4电擦除、电可编程方式,EEPROM、快闪存储器(FLASHMEMORY),如多数CPLD5静态存储器(SRAM)结构,如多数FPGA按编程元件和编程工艺分类PLD器件的原理结构图22PLD的基本原理与结构PLD电路符号表示与门、或门的表示PLD连接表示法PLD的输入缓冲电路简单阵列的表示P20PROMPROM表达的PLD阵列图P21PROM用PROM完成半加器逻辑阵列P2225FPGA的原理与结构01AF查找表结构4输入LUT及内部结构图P23习题21PLA和PAL在结构上有什么区别22说明GAL的OLMC有什么特点,它怎样实现可编程组合电路和时序电路23简述基于乘积项的可编程逻辑器件的结构特点24基于查找表的可编程逻辑结构的原理是什么25基于乘积项和基于查找表的结构各有什么优缺点26CPLD和FPGA在结构上有什么明显的区别,各有什么特点27FPGA器件中的存储器块有何作用P24第3章QUARTUSII集成开发工具基于QUARTUSII进行EDA设计开发的流程P26设计一个半加器P27设计一个全加器连接好的全加器原理图F_ADDERBDF习题31基于QUARTUSII软件,用D触发器设计一个2分频电路,并做波形仿真,在此基础上,设计一个4分频和8分频电路,做波形仿真。32基于QUARTUSII软件,用7490设计一个能计时(12小时)、计分(60分)和计秒(60秒)的简单数字钟电路。设计过程如下(1)先用QUARTUSII的原理图输入方式,用7490连接成包含进位输出的模60的计数器,并进行仿真,如果功能正确,则将其生成一个部件;(2)将7490连接成模12的计数器,进行仿真,如果功能正确,也将其生成一个部件;(3)将以上两个部件连接成为简单的数字钟电路,能计时、计分和计秒,计满12小时后系统清0重新开始计时。(4)在实现上述功能的基础上可以进一步增加其它功能,比如校时功能,能随意调整小时、分钟信号,增加整点报时功能等。第4章基于宏功能模块的设计8位有符号乘法器电路功能仿真波形P31模24方向可控计数器电路LPM_COUNTER计数器功能仿真波形锁相环电路功能仿真波形习题41采用QUARTUSII软件的宏功能模块LPM_COUNTER设计一个模为60的加法计数器,进行编译和仿真,查看仿真结果。42采用QUARTUSII软件的宏功能模块LPM_ROM,用查表的方式设计一个实现两个8位无符号数加法的电路,并进行编译和仿真。43先利用LPM_ROM设计4位4位和8位8位乘法器各一个,然后用VERILOG语言分别设计4位4位和8位8位乘法器,比较两类乘法器的运行速度和资源耗用情况。44用数字锁相环实现分频,假定输入时钟频率为10MHZ,想要得到6MHZ的时钟信号,试用ALTPLL宏功能模块实现该电路。第5章VERILOGHDL设计初步52VERILOG设计举例【例1】4位全加器MODULEADDER4COUT,SUM,INA,INB,CINOUTPUT30SUMOUTPUTCOUTINPUT30INA,INBINPUTCINASSIGNCOUT,SUMINAINBCINENDMODULEP36VERILOG程序的特点(1)VERILOG程序是由模块构成的。每个模块的内容都嵌在MODULE和ENDMODULE两个关键字之间;每个模块实现特定的功能;模块是可以进行层次嵌套的。(2)每个模块首先要进行端口定义,并说明输入和输出口INPUT、OUTPUT或INOUT,然后对模块功能进行描述。(3)VERILOG程序书写格式自由,一行可以写几个语句,一个语句也可以分多行写。(4)除了ENDMODULE等少数语句外,每个语句的最后必须有分号。(5)可以用/和/对VERILOG程序作注释。好的源程序都应当加上必要的注释,以增强程序的可读性和可维护性。P37VERILOG模块的模板MODULEOUTPUT输出端口列表/输出端口声明INPUT输入端口列表/输入端口声明/定义数据,信号的类型,函数声明/REG信号名;/逻辑功能定义ASSIGN;/使用ASSIGN语句定义逻辑功能/用ALWAYS块描述逻辑功能ALWAYSBEGIN/过程赋值/IFELSE,CASE语句/WHILE,REPEAT,FOR循环语句/TASK,FUNCTION调用END/调用其他模块/门元件例化门元件关键字ENDMODULEP38习题51用VERILOG设计一个8位加法器,并进行综合和仿真,查看综合结果和仿真结果。52用VERILOG设计一个8位计数器,并进行综合和仿真,查看综合结果和仿真结果。第6章VERILOGHDL语法与要素标识符(IDENTIFIERS)标识符(IDENTIFIERS)VERILOG中的标识符可以是任意一组字母、数字以及符号“”和“_”(下划线)的组合,但标识符的第一个字符必须是字母或者下划线。另外,标识符是区分大小写的。EXAMPLESCOUNTCOUNT/COUNT与COUNT是不同的_A1_D2/以下划线开头R56_68FIVEP41整数实数字符串62常量程序运行中,值不能被改变的量称为常量(CONSTANTS),VERILOG中的常量主要有如下3种类型P42整数按如下方式书写/即/SIZE为对应二进制数的宽度;BASE为进制;VALUE是基于进制的数字序列。进制有如下4种表示形式二进制(B或B)十进制(D或D或缺省)十六进制(H或H)八进制(O或O)整数(INTEGER)P43EXAMPLES8B11000101/位宽为八位的二进制数110001018HD5/位宽为八位的十六进制数D5;5O27/5位八进制数4D2/4位十进制数24B1X_01/4位二进制数1X015HX/5位X(扩展的X),即XXXXX4HZ/4位Z,即ZZZZ8H2A/在位宽和之间,以及进制和数值之间允许出现空格,但和进制之间,数值间是不允许出现空格的,比如8H2A、8H2A等形式都是不合法的写法/整数(INTEGER)P44实数(REAL)有下面两种表示法。十进制表示法。例如2001/以上2例是合法的实数表示形式2/非法小数点两侧都必须有数字科学计数法。例如43_51E2/其值为43510096E2/9600E与E相同5E4/00005实数(REAL)P4563数据类型VERILOG有下面四种基本的逻辑状态。0低电平、逻辑0或逻辑非1高电平、逻辑1或“真”X或X不确定或未知的逻辑状态Z或Z高阻态VERILOG中的所有数据类型都在上述4类逻辑状态中取值,其中X和Z都不区分大小写,也就是说,值0X1Z与值0X1Z是等同的。数据类型(DATATYPE)是用来表示数字电路中的物理连线、数据存储和传输单元等物理量的。P46NET型NET型数据相当于硬件电路中的各种物理连接,其特点是输出的值紧跟输入值的变化而变化。对连线型有两种驱动方式,一种方式是在结构描述中将其连接到一个门元件或模块的输出端;另一种方式是用持续赋值语句ASSIGN对其进行赋值。WIRE是最常用的NET型变量。WIRE型变量的定义格式如下WIRE数据名1,数据名2,数据名N;例如WIREA,B;/定义了两个WIRE型变量A和BEXAMPLESWIRE70DATABUS;/DATABUS的宽度是8位WIRE190ADDRBUS;/ADDRBUS的宽度是20位P47VARIABLE型VARIABLE型变量必须放在过程语句(如INITIAL、ALWAYS)中,通过过程赋值语句赋值;在ALWAYS、INITIAL等过程块内被赋值的信号也必须定义成VARIABLE型。注意VARIABLE型变量并不意味着一定对应着硬件上的一个触发器或寄存器等存储元件,在综合器进行综合时,VARIABLE型变量会根据具体情况来确定是映射成连线还是映射为触发器或寄存器。REG型变量是最常用的一种VARIABLE型变量。定义格式如下REG数据名1,数据名2,数据名N;例如REGA,B;/定义了两个REG型变量A,BEXAMPLESREG70QOUT/定义QOUT为8位宽的REG型向量REG81QOUTP4864参数PARAMETER在VERILOG语言中,用参数PARAMETER来定义符号常量,即用PARAMETER来定义一个标志符代表一个常量。参数常用来定义时延和变量的宽度。其定义格式如下PARAMETER参数名1表达式1,参数名2表达式2,参数名3表达式3,;例如PARAMETERSEL8,CODE8HA3;/分别定义参数SEL代表常数8(10进制),参数CODE代表常量A3(16进制)P4965向量1标量与向量宽度为1位的变量称为标量,如果在变量声明中没有指定位宽,则默认为标量(1位)。举例如下WIREA/A为标量REGCLK/CLK为标量REG型变量线宽大于1位的变量(包括NET型和VARIABLE型)称为向量(VECTOR)。向量的宽度用下面的形式定义MSBLSB比如WIRE30BUS/4位的总线P5066运算符(OPERATORS)1算术运算符(ARITHMETICOPERATORS)常用的算术运算符包括加减乘/除求模P512逻辑运算符(LOGICALOPERATORS)REGCREGBEND由于BEGINEND块内的语句顺序执行,在最后,将REGB、REGC的值都更新为REGA的值,该BEGINEND块执行完后,REGB、REGC的值是相同的。P6573赋值语句持续赋值语句(CONTINUOUSASSIGNMENTS)ASSIGN为持续赋值语句,主要用于对WIRE型变量的赋值。比如ASSIGNCA在上面的赋值中,A、B、C三个变量皆为WIRE型变量,A和B信号的任何变化,都将随时反映到C上来。P6674条件语句(IFELSE语句)IFELSE语句使用方法有以下3种(1)IF(表达式)语句1;(2)IF(表达式)语句1;ELSE语句2;(3)IF(表达式1)语句1;ELSEIF(表达式2)语句2;ELSEIF(表达式3)语句3;ELSEIF(表达式N)语句N;ELSE语句N1P67CASE语句的使用格式如下。CASE(敏感表达式)值1语句1;/CASE分支项值2语句2;值N语句NDEFAULT语句N1;ENDCASECASE语句P6875循环语句REPEATLOOPINITIALBEGINFORI0I;/注意无端口列表端口及数据类型声明语句;其它语句;ENDTASK任务调用的格式为(端口1,端口2,)需要注意的是任务调用时和定义时的端口变量应是一一对应的。P74函数的目的是返回一个值,以用于表达式计算函数的定义格式FUNCTION函数名;端口声明;局部变量定义;其它语句;ENDFUNCTION是一个可选项,如果缺省,则返回值为1位寄存器类型的数据。函数(FUNCTION)P75任务与函数的比较P76思考与练习71试编写求补码的VERILOG程序,输入是带符号的8位二进制数。72试编写两个四位二进制数相减的VERILOG程序。73有一个比较电路,当输入的一位8421BCD码大于4时,输出为1,否则为0。试编写出VERILOG程序。74试编写一个实现3输入与非门的VERILOG源程序。P77思考与练习75用VERILOG语言设计一个类似74138的译码器电路,用SYNPLIFY软件对设计文件进行综合,观察RTL级综合视图和门级综合视图。76用VERILOG语言设计一个功能类似74161的电路,用SYNPLIFY软件对设计文件进行综合,观察RTL级综合视图和门级综合视图。77用VERILOG设计一个8位加法器,用QUARTUSII软件进行综合和仿真。78用VERILOG设计一个8位计数器,用QUARTUSII软件进行综合和仿真。第8章数字设计的层次与风格P79VERILOG设计的描述风格结构(STRUCTURAL)描述行为(BEHAVIOURAL)描述数据流(DATAFLOW)描述P80在VERILOG程序中可通过如下方式描述电路的结构调用VERILOG内置门元件(门级结构描述)调用开关级元件(晶体管级结构描述)用户自定义元件UDP(也在门级)82结构(STRUCTURAL)描述P81门级结构描述的2选1MUXMODULEMUX1OUT,A,B,SELOUTPUTOUTINPUTA,B,SELNOTSEL_,SELANDA1,A,SEL_,A2,B,SELOROUT,A1,A2ENDMODULEP8283行为描述就是对设计实体的数学模型的描述,其抽象程度远高于结构描述方式。行为描述类似于高级编程语言,当描述一个设计实体的行为时,无需知道具体电路的结构,只需要描述清楚输入与输出信号的行为,而不需要花费更多的精力关注设计功能的门级实现。P83行为描述的2选1MUXMODULEMUX2OUT,A,B,SELOUTPUTOUTINPUTA,B,SELREGOUTALWAYSAORBORSELBEGINIFSELOUTB

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论