Verilog HDL设计进阶习题课件

上传人:我*** 文档编号:143667664 上传时间:2020-09-01 格式:PPT 页数:38 大小:810KB
返回 下载 相关 举报
Verilog HDL设计进阶习题课件_第1页
第1页 / 共38页
Verilog HDL设计进阶习题课件_第2页
第2页 / 共38页
Verilog HDL设计进阶习题课件_第3页
第3页 / 共38页
Verilog HDL设计进阶习题课件_第4页
第4页 / 共38页
Verilog HDL设计进阶习题课件_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《Verilog HDL设计进阶习题课件》由会员分享,可在线阅读,更多相关《Verilog HDL设计进阶习题课件(38页珍藏版)》请在金锄头文库上搜索。

1、第6章 Verilog HDL设计进阶,习 题,实验与设计,习 题,6-1 在Verilog设计中,给时序电路清零(复位)有两种不同方法,它们是什么,如何实现? 答:同步清零、异步清零,在过程语句敏感信号表中的逻辑表述posedge CLK用于指明正向跳变,或negedge用于指明负向跳变实现,6-2 哪一种复位方法必须将复位信号放在敏感信号表中?给出这两种电路的Verilog描述。 答:异步复位必须将复位信号放在敏感信号表中。 同步清零: always (posedge CLK) /CLK上升沿启动 Q=D; /当CLK有升沿时D被锁入Q 异步清零: always (posedge CLK

2、or negedge RST) begin /块开始 if(!RST)Q=0; /如果RST=0条件成立,Q被清0 else if(EN) Q=D;/在CLK上升沿处,EN=1,则执行赋值语句 end /块结束,习 题,6-3 用不同循环语句分别设计一个逻辑电路模块,用以统计一8位二进制数中含1的数量。,module Statistics8(sum,A); output3:0sum; input7:0 A; reg3:0 sum; integer i; always (A) begin sum=0; for(i=0;i=8;i=i+1) /for 语句 if(Ai) sum=sum+1; el

3、se sum=sum; end endmodule,module Statistics8(sum,A); parameter S=4; output3:0sum; input7:0 A; reg3:0 sum; reg2*S:1TA; integer i; always (A) begin TA=A; sum=0; repeat(2*S) begin if(TA1)sum=sum+1; TA=TA1; end end endmodule,repeat循环语句,for循环语句,module Statistics8(sum,A); parameter S=8; output3:0sum; inpu

4、t7:0 A; regS:1 AT; reg3:0 sum; regS:0 CT; always (A) begin AT=S1b0,A; sum=0; CT=S; while(CT0) begin if(AT1)sum=sum+1;else sum=sum; begin CT= CT-1; AT=AT1; end end end endmodule,6-3 用不同循环语句分别设计一个逻辑电路模块,用以统计一8位二进制数中含1的数量。,while循环语句,module voter7(pass,vote); output pass; input6:0 vote; reg2:0 sum; inte

5、ger i; reg pass; always (vote) begin sum=0; for(i=0;i=6;i=i+1) /for 语句 if(votei) sum=sum+1; if(sum2) pass=1; /若超过4 人赞成,则pass=1 else pass=0; end endmodule,习 题,6-4 用循环语句设计一个7人投票表决器。,习 题,6-5 Verilog设计一个4位4输入最大数值检测电路。,/Verilog设计一个4位4输入最大数值检测电路 module Maximum_value_detection(Mostlarge,a,b,c,d);/4位4输入最大数值

6、检测电路 output 3:0 Mostlarge; input 3:0 a,b,c,d; wire3:0sum1,sum2,sum3; assign sum1=(ab)?a:b; assign sum2=(cd)?c:d; assign Mostlarge=(sum1sum2)?sum1:sum2; endmodule,习 题,6-6 从不完整的条件语句产生时序模块的原理看,例6-9和例6-10从表面上看都包含不完整条件语句,试说明,为什么例6-9的综合结果含锁存器,二例6-10却没有。,答:参见书P137,习 题,6-6 从不完整的条件语句产生时序模块的原理看,例6-9和例6-10从表面上

7、看都包含不完整条件语句,试说明,为什么例6-9的综合结果含锁存器,二例6-10却没有。,答:参见书P137,事实上,例6-9中,T在过程中出现了3次非阻塞赋值操作,即有3个赋值源对同一信号T进行赋值-T=0、T=T+1和T=T+2。但根据以上的讨论,对于非阻塞式赋值,前两个语句中的赋值目标信号T都不可能得到任何数值,只有最后的T=T+2语句中的T的值能得到更新。然而,由于赋值符号右边的T始终未得到任何确定的初始值,即语句T=0并未完成赋值,所以最后的T始终是个未知值。结果只能被综合成随S1和S0随机变动的时序电路,导致T成为一个不确定的信号。结果在过程最后的case语句中,无法通过判断T的值来

8、确定选通输入,即对OUT的赋值。 例6-10就不一样了。程序首先执行了阻塞式赋值语句T=0,T即刻被更新,从而使两个if语句中的T都能得到确定的初值。另一方面,当if语句不满足条件时,即当S0或S1不等于1时,由于T已经在第一条赋值语句中被更新为确定的值0了,所以尽管两个if语句从表面上看都属于不完整的条件语句,也不可能被综合成时序电路了。显然也就有了图6-4所示正确的波形输出。,习 题,6-7 设计一个求补码的程序,输入数据是一个有符号的8位二进制数。 /设计一个求补码的程序,输入数据是一个有符号的8位二进制数 module Binary_complement(a,b); /二进制数补码 i

9、nput 7:0 a; output 7:0 b; integer i; reg 7:0d; reg 6:0c; always (a) begin if(a7=1) begin for(i=0;i7;i=i+1)ci=!ai; d7:0=a7,(c6:0+7d1); end else d7:0=a7:0; end assign b7:0=d7:0; endmodule,习 题,6-8 Verilog HDL设计一个比较电路,当输入的8421BCD码大于5时输出1,否则输出0。,设计一个四舍五入判别电路,其输入为8421BCD码,要求当输入大于或等于时,判别电路输出为,反之为。,/程序2 mod

10、ule BCD_Compare(a,b); output b; input 3:0 a; assign b=(a=5)?1:0; endmodule,/程序1 module BCD_Compare(a,b); output b; input3:0a; wire c,d; and(c,a1,a2); and(d,a0,a2); or(b,d,c,a3); endmodule,原理图,6-9 用原理图或Verilog输入方式分别设计一个周期性产生二进制序列01001011001的序列发生器,用移位寄存器或用同步时序电路实现,并用时序仿真器验证其功能。,习 题,一、计数型序列信号发生器 1.计数型序

11、列信号发生器组成与特点 计数型序列信号发生器能产生多组序列信号,这是移位型发生器所没有的功能.计数型序列信号发生器是由计数器和组合电路构成的,序列的长度P就是计数器的模数。 2.计数型序列信号发生器的设计(通过例题来说明) 例1.设计01001011001序列信号发生器 由于序列长度已经知道P=11,所以先用74163N设计一个模11的计数器,再用八选一数据选择器实现序列输出,把计数器的输出端作为数据选择器的地址变量。 它的电路图为:如图(1),序列信号是指在同步脉冲作用下循环地产生一串周期性的二进制信号,能产生这种信号的逻辑器件就称为序列信号发生器,根据结构不同,它可分为反馈移位型和计数型两

12、种。,6-9 用原理图或Verilog输入方式分别设计一个周期性产生二进制序列01001011001的序列发生器,用移位寄存器或用同步时序电路实现,并用时序仿真器验证其功能。,习 题,1101000101,二进制序列01001011001,6-9 用原理图或Verilog输入方式分别设计一个周期性产生二进制序列01001011001的序列发生器,用移位寄存器或用同步时序电路实现,并用时序仿真器验证其功能。,习 题,二、移位型序列信号发生器 1.移位型序列信号发生器的组成 移位型序列信号发生器是由移位寄存器和组合电路两部分构成,组合电路的输出,作为移位寄存器的串行输入。由n位移位寄存器构成的序列

13、信号发生器所产生的序列信号的最大长度为:P=2n 2.移位型序列信号发生器的设计(我们通过例题来说明) 例1.试设计一个01001011001序列信号发生器 首先确定移位寄存器的位数,并画出编码状态图,并找出迁移关系. P=11,因此只需要74194N中的四位,按序列信号四位一组去划分(有十中状态),它的转换关系是:如图(1),如图(1),6-9 用原理图或Verilog输入方式分别设计一个周期性产生二进制序列01001011001的序列发生器,用移位寄存器或用同步时序电路实现,并用时序仿真器验证其功能。,习 题,6-9 用原理图或Verilog输入方式分别设计一个周期性产生二进制序列0100

14、1011001的序列发生器,用移位寄存器或用同步时序电路实现,并用时序仿真器验证其功能。,习 题,74194N,6-9 用原理图或Verilog输入方式分别设计一个周期性产生二进制序列01001011001的序列发生器,用移位寄存器或用同步时序电路实现,并用时序仿真器验证其功能。,习 题,6-9 用原理图或Verilog输入方式分别设计一个周期性产生二进制序列01001011001的序列发生器,用移位寄存器或用同步时序电路实现,并用时序仿真器验证其功能。,习 题,/【例6-14】 module SHFT1(CLK,LOAD,DIN,QB,CN); /左移移位寄存器 output10:0QB;

15、/移位数据输出 output CN; /进位输出 input CLK,LOAD; input 10:0DIN;/待加载移位的数据 reg11:0REG; reg CY; always (posedge CLK ) begin if(!LOAD)REG=DIN; /注意LOAD是与CLK上升沿同步的控制信号 else REG0=REG11;REG11:1=REG10:0; CY=REG11; /带进位循环左移 end assign QB=REG; /移位后输出 assign CN=CY; /移位后输出 endmodule,6-10 基于原理图输入方式,用74194、74273、D触发器等器件组成

16、8位串入并出的转换电路,要求在转换过程中数据不变,只有当8位一组数据全部转换结束后,输出才变化一次。,用计数器和数据选择器构成序列信号发生器,例:产生一个8位的序列信号 00010111,实验与设计,6-1 半整数与奇数分频器设计 (1)实验目的:学习利用Verilog完成实用程序的设计。 (2)实验内容1: (3)实验内容2: (4)实验内容3: (5)实验内容4:,实验与设计,6-2 数控分频器设计 (1)实验目的: (2)实验内容1: (3)实验内容2: (4)实验内容3:,(5)实验内容4: (6)实验内容5:,实验与设计,6-3 VGA彩条信号显示控制电路设计 (1)实验目的: (2)实验原理:,实验与设计,6-3 VGA彩条信号显示控制电路设计 (1)实验目的: (2)实验原理:,实验与设计,实验与设计,6-3 VGA彩条信号显示控制电路设计 (1)实验目的: (2)实验原理:,实验与设计,6-3 VGA彩条信号显示控制电路设计 (

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号