Verilog教程第三版夏闻宇第三部分练习题答案.docx

上传人:b****7 文档编号:25460547 上传时间:2023-06-09 格式:DOCX 页数:9 大小:261.69KB
下载 相关 举报
Verilog教程第三版夏闻宇第三部分练习题答案.docx_第1页
第1页 / 共9页
Verilog教程第三版夏闻宇第三部分练习题答案.docx_第2页
第2页 / 共9页
Verilog教程第三版夏闻宇第三部分练习题答案.docx_第3页
第3页 / 共9页
Verilog教程第三版夏闻宇第三部分练习题答案.docx_第4页
第4页 / 共9页
Verilog教程第三版夏闻宇第三部分练习题答案.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

Verilog教程第三版夏闻宇第三部分练习题答案.docx

《Verilog教程第三版夏闻宇第三部分练习题答案.docx》由会员分享,可在线阅读,更多相关《Verilog教程第三版夏闻宇第三部分练习题答案.docx(9页珍藏版)》请在冰豆网上搜索。

Verilog教程第三版夏闻宇第三部分练习题答案.docx

Verilog教程第三版夏闻宇第三部分练习题答案

Verilog-教程(第三版)夏闻宇-第三部分练习题答案

1.设计一个字节(8位)的比较器,要求:

比较两个字节的大小,如a[7:

0]大于b[7:

0],则输出高电平,否则输出低电平;并改写测试模型,使其能进行比较全面的测试。

模块源代码:

测试模块的源代码:

`timescale1ns/1ps

modulet;

reg[7:

0]a;

reg[7:

0]b;

regclock;

wireout;

initialbegin

a=0;

b=0;

clock=0;

end

always#50clock=~clock;

always@(posedgeclock)

begin

a={$random}%256;

b={$random}%256;

end

initialbegin#1000$stop;end

compareuut(.out(out),.a(a),.b(b));

endmodule

modulecompare(out,a,b);

input[7:

0]a,b;

outputout;

regout;

always@(aorb)

begin

if(a>b)

out=1;

else

out=0;

end

endmodule

 

仿真结果:

由图有:

当a=8'01100101,b=8'00010010(即a>b时),输出out为高电平;当a=8'00000001,b=8'00001101(即a

2.依然作clk_in的2分频clk_out,要求输出时钟的相位与上面的1/2分频器的输出正好相反。

编写测试模块,给出仿真波形。

书上1/2分频器时序波形

 

模块源代码:

测试模块源代码:

 

仿真波形:

由上图可知clk_out的输出波形相位与前面输出波形相反。

3.利用10MHZ的时钟,设计一个单周期形状的周期波形。

分析:

时钟信号f=10MHZ,分频1/20,f1=500KHZ时,j从0计到9(10个数)跳转完成半个周期,T0/2=;图中可把T分为三段即T1=T3=20us=200*(所以在T1阶段j要计200个数),而T2=10us可用延迟10000ns翻转达到。

图中T=50us之后不显示,所以测试时到达50000ns时停止。

故其模块源代码和测试模块源代码如下:

 

模块源代码:

测试模块源代码:

 

仿真波形:

4.在blocking模块中按如下两种写法,仿真与综合的结果会有什么样的变化作出仿真波形,分析综合结果。

 

模块源代码:

模块源代码:

 

综合结果

综合结果

由以上图形可知,其综合结果一样。

其仿真图形如下所示:

分析:

当时钟上升沿来临,b1、b2的值一样都等于时钟上升沿到来前a的值,两种写法的

区别在于c值的不同。

第一种写法c1的值等于前一个b1的值;第二种写法c2的值等于b2

的值即c1比c2慢一个时钟信号周期。

5.运用always块设计一个8路数据选择器。

要求:

每路输入数据与输出数据均为4位2进制数,当选择开关(至少3位)或输入数据发生变化时,输出数据也相应变化。

模块源代码:

测试模块源代码:

 

仿真波形如下:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 解决方案

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1