资源预览内容
第1页 / 共92页
第2页 / 共92页
第3页 / 共92页
第4页 / 共92页
第5页 / 共92页
第6页 / 共92页
第7页 / 共92页
第8页 / 共92页
第9页 / 共92页
第10页 / 共92页
亲,该文档总共92页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第5章 Verilog设计的层次与常用模块设计,5.1 Verilog设计的层次 Verilog HDL是一种进行数字系统逻辑设计的语言,用Verilog语言描述的电路设计就是该电路的Verilog HDL模型,也称为“模块”。被建模的数字系统对象的复杂性可以介于开关级电路、简单的门(如库单元描述)和完整的复杂电子数字系统(如CPU)之间。,这些抽象的级别一般分为五级: 系统级(systemlevel) 算法级(algorithmlevel) 寄存器传输级(register Transfer Level,RTL) 门级(gatelevel) 开关级(switchlevel),Verilog允许设计者用三种方式来描述逻辑电路: (1)行为描述 (2)数据流描述 (3)结构描述,5.2 行为描述 行为级建模常常用于复杂数字逻辑系统的顶层设计,通过行为级建模把一个大的系统分解为若干个较小的子系统,然后再将每个子系统用可综合风格的Verilog HDL模块加以描述。同时行为级建模还可以用来生成仿真激励信号,对已设计模块进行仿真验证。,5.3 数据流描述 数据流描述方式主要使用持续赋值语句,多用于描述组合逻辑电路,其格式为: assign # 延时量 线网型变量名 赋值表达式; 右边表达式中的操作数无论何时发生变化,都会引起表达式值的重新计算,并将重新计算后的值赋予左边表达式的net型变量。,5.4 结构描述 结构描述是调用电路元件(如逻辑门)来构建电路,在Verilog程序中可通过以下方式来描述电路的结构: (1)调用Verilog内置门元件(门级结构描述) (2)调用开关级元件(开关级结构描述) (3)用户自定义元件UDP(门级),5.4.1 verilog内置门元件,5.4.2门元件的调用 调用门元件的格式为: 门元件名称 () 其中: (1)普通门的端口列表按下面的顺序列出: (输出,输入1,输入2,输入3) 可用这些逻辑门生成相关组件,比如: and(out,in1,in2); /生成两个输入、一个输出的与门,无组件名称,(2)对于三态门,则按以下顺序列出输入/输出端口: (输出,输入,使能控制端) 比如: bufifl mytril1 ( out , in , enable ); /高电平使能的三态门 (3)对于buf和not两种元件的调用,需要注意的是:它们允许有多个输出,但只能有一个输入。比如: buf(out1,out2,out3,in); /生成三输出、一输入的buf组件,无组件名称,5.5 基本组合逻辑电路设计 门电路为用以实现基本逻辑运算和复合逻辑运算的单元电路。常用的门电路有与门、或门、非门、与非门、或非门、异或门、三态门等几种。,5.5.1 与非门电路,5.5.2 或非门电路,5.5.3 异或门电路,5.5.4 三态门电路,5.5.5 编码器,5.5.6 3线8线译码器,5.5.7 BCD七段显示译码器,5.5.8 2选1数据选择器,5.5.9 4选1数据选择器,5.5.10 数值比较器,5.5.11 总线缓冲器,5.6 基本时序电路设计 若任一时刻的输出信号不仅取决于当时的输入信号,而且还取决于电路原来的状态。具备这种逻辑功能特点的电路称为时序逻辑电路 ,简称时序电路。,5.6.1 触发器 根据沿触发、复位和置位方式的不同,触发器可以有多种实现方式。以异步置位/复位控制端口的上升沿D触发器为例,介绍D触发器的Verilog设计方法。,5.6.2 寄存器 以4位寄存器为例,介绍寄存器的设计方法,把多个D触发器的时钟端连接起来就可以构成一个存储多位二进制码的寄存器。,5.6.3 计数器 计数器是能够记忆输入脉冲个数的电路,也可用作时钟分频、信号定时、地址发生器、产生节拍脉冲和进行数字运算等。,5.6.4 串并转换器 现在很多高速传输接口都是以串行的方式实现的,如PCI-Express,USB等,需要进行串行到并行的转换。 以4位串-并转换器为例,介绍串-并转换器的设计方法。,5.7 加法器设计 实现加法运算有以下常用方法。 1)并行加法器 2)流水线加法器,5.7.1 并行加法器,5.7.2 流水线加法器,5.8 乘法器设计 使用并行乘法器、查找表方法 5.8.1 并行乘法器 并行乘法器是纯组合类型的乘法器,完全由逻辑门实现。Verilog语言支持乘法运算,有乘法操作符,因此用Verilog语言设计并行乘法器非常简单,只需要一条语句即可实现乘法运算。,5.8.2 查找表乘法器 在小型查找表的基础上结合加法器可以构成位数较高的乘法器。例如8位乘法器Y=a*b可以分解成两个半字节,其中a=AI*24+AII,b=BI*24+BII。由此,乘式可写成: Y=(AI*24+AII)*(BI*24+BII) = AI * BI *28 + AII * BI * 24 + AI * BII * 24 + AII * BII,5.9 乘累加器设计 大部分数字信号处理(DSP)应用,如滤波器、FFT、卷积等,都要求一系列连续乘积的累加操作。为了实现这个累加,在乘法数的输出端需要一个加法/减法单元和一个称为累加器的附加累加器。,5.10 本章小结 本章介绍了Verilog HDL 设计层次和行为描述、数据流描述和结构描述方式。对基本组合逻辑电路进行了行为级描述,并进行了仿真。对基本时序逻辑电路进行了行为级描述、并进行了仿真。通过对这些常用模块学习可以为今后学习打下坚实的基础。,5.11 习题 1 设计一个可预置的16进制计数器,并仿真。 2 设计一个“1011”序列检测器,并仿真。 3 设计并实现一个一位全加器,并仿真。 4 设计并实现一个通用加法器,其位数可根据需要任意设定,并仿真。 5 设计并实现一个4位二进制码转换成BCD码的转换器,并仿真。 6 设计一个8线3线优先编码器,要求分别用case语句和if语句来实现并比较这两种方式,并仿真。,7 设计含异步清0、同步加载与时钟使能的计数器,并仿真。 8 用Verilog设计一个功能类似74LS160的计数器,并仿真。 9 设计一个以异步置位/复位控制端口的上升沿JK触发器,并仿真。 10 设计一个有置数端的可变模计数器。 11 设计一个序列信号发生器。,
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号