最新Verilog数字电路设计实验报告.docx

上传人:b****2 文档编号:632179 上传时间:2022-10-11 格式:DOCX 页数:46 大小:325.81KB
下载 相关 举报
最新Verilog数字电路设计实验报告.docx_第1页
第1页 / 共46页
最新Verilog数字电路设计实验报告.docx_第2页
第2页 / 共46页
最新Verilog数字电路设计实验报告.docx_第3页
第3页 / 共46页
最新Verilog数字电路设计实验报告.docx_第4页
第4页 / 共46页
最新Verilog数字电路设计实验报告.docx_第5页
第5页 / 共46页
点击查看更多>>
下载资源
资源描述

最新Verilog数字电路设计实验报告.docx

《最新Verilog数字电路设计实验报告.docx》由会员分享,可在线阅读,更多相关《最新Verilog数字电路设计实验报告.docx(46页珍藏版)》请在冰豆网上搜索。

最新Verilog数字电路设计实验报告.docx

最新Verilog数字电路设计实验报告

15.通过VisualFoxpro的视图,不仅可以查询数据表,还可以__________数据表。

settalkon

5电线

28、TCP/IP体系结构中与ISO-OSI参考模型的1、2层对应的是哪一层(A)

9、计算机网络的基本分类方法主要有:

根据网络所覆盖的范围、根据网络上主机的组网方式,另一种是根据__信息交换方式____。

第5章程序设计基础

input"请输入圆环的内半径:

"tor1

两表的内容分别如下:

B.类是实例对象的抽象

D.以上说法均不正确

Verilog数字电路设计

 

实验名称

Verilog数字电路设计

班级

130324

姓名

张先炳13031205

同组者

廖瑞13031191

 

自动化与电气工程学院

2016年4月25日

实验一简单组合逻辑设计

1实验目的

1、掌握基本组合逻辑电路的实现方法。

2、初步了解两种基本组合逻辑电路的生成方法。

3、学习测试模块的编写。

4、通过综合和布局布线了解不同层次仿真的物理意义。

2实验设备

安装Modelsim-6.5c的PC机。

3实验内容

描述一个可综合的数据比较器,比较数据a、b的大小,若相同,则给出结果1,否则给出结果0。

4实验代码

模块源代码:

modulecompare(equal,a,b);

inputa,b;

outputequal;

assignequal=(a==b)?

1:

0;

endmodule

测试代码:

`timescale1ns/1ns;

`include"compare.v"

modulecompare_tb;

rega,b;

wireequal;

initial

begin

a=0;

b=0;

#100a=0;b=1;

#100a=1;b=1;

#100a=1;b=0;

#100a=0;b=0;

#100$stop;

#100a=0;b=1;

end

comparem(.equal(equal),.a(a),.b(b));

endmodule

5仿真结果

选作一:

设计一个字节的比较器

1实验要求

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

0]大于b[7:

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

2模块代码

modulecompare_8bit(result,a,b);

input[7:

0]a,b;

outputresult;

assignresult=(a>b)?

1:

0;

endmodule

3测试代码

`timescale1ns/1ns

`include"compare_8bit.v"

moduletest;

reg[7:

0]a,b;

wireresult;

initial

begin

a=8'd0;

b=8'd0;

#100a=8'd6;b=8'd5;

#100a=8'd9;b=8'd9;

#100a=8'd12;b=8'd15;

#100$stop;

end

compare_8bitm(.result(result),.a(a),.b(b));

endmodule

4仿真结果

实验二简单分频时序逻辑电路的设计

1实验目的

1、掌握最基本组合逻辑电路的实现方法。

2、学习时序电路测试模块的编写。

3、学习综合和不同层次的仿真。

2实验设备

安装Modelsim-6.5c的PC机。

3实验内容

用always块和@(posedgeclk)或@(negedgeclk)的结构表述一个1/2分频器的可综合模型,观察时序仿真结果。

4实验代码

模块代码:

modulehalf_clk(reset,clk_in,clk_out);

inputclk_in,reset;

outputclk_out;

regclk_out;

always@(posedgeclk_in)

begin

if(!

reset)clk_out=0;

elseclk_out=~clk_out;

end

endmodule

测试代码:

`timescale1ns/100ps

`defineclk_cycle50

moduletext;

regclk,reset;

wireclk_out;

always#`clk_cycleclk=~clk;

initial

begin

clk=0;

reset=1;

#10reset=0;

#110reset=1;

#100000$stop;

end

half_clkm(.reset(reset),.clk_in(clk),.clk_out(clk_out));

endmodule

5仿真结果

选作二:

七段数码管译码电路

1实验要求

设计一个七段数码管译码电路。

2模块代码

moduleqiduanma(in,out);

input[3:

0]in;

output[6:

0]out;

reg[6:

0]out;

always@(in)

begin

case(in)

4'b0000:

out=7'b1111110;

4'b0001:

out=7'b0110000;

4'b0010:

out=7'b1101101;

4'b0011:

out=7'b1111011;

4'b0100:

out=7'b0110011;

4'b0101:

out=7'b1011011;

4'b0110:

out=7'b0011111;

4'b0111:

out=7'b1110000;

4'b1000:

out=7'b1111111;

4'b1001:

out=7'b1110011;

4'b1010:

out=7'b0001101;

4'b1011:

out=7'b0011001;

4'b1100:

out=7'b0100011;

4'b1101:

out=7'b1001011;

4'b1110:

out=7'b0001111;

4'b1111:

out=7'b0000000;

endcase

end

endmodule

3测试代码

`timescale1ns/1ns;

`include"qiduanma.v"

moduletest;

reg[3:

0]in;

wire[6:

0]out;

integert;

initial

begin

in=4'b0000;

for(t=0;t<4'b1111;t=t+1)

#100in<=in+1;

end

qiduanmam(.in(in),.out(out));

endmodule

4仿真结果

实验三:

利用条件语句实现计数分频时序电路

1实验目的

1、掌握条件语句在简单时序模块设计中的使用。

2、学习在Verilog模块中应用计数器。

3、学习测试模块的编写、综合和不同层次的仿真。

2实验设备

安装Modelsim-6.5c的PC机。

3实验内容

仿真一个可综合风格的分频器,将10MB的时钟分频为500KB的时钟,定义一个计数器,原理同1/2分频器一样,只不过分频变为1/20。

4实验代码

模块代码:

modulefdivision(RESET,F10M,F500K);

inputF10M,RESET;

outputF500K;

regF500K;

reg[7:

0]j;

always@(posedgeF10M)

if(!

RESET)

begin

F500K<=0;

j<=0;

end

else

begin

if(j==9)

begin

j<=0;

F500K<=~F500K;

end

else

j<=j+1;

end

endmodule

测试代码:

`timescale1ns/100ps

`defineclk_cycle50

moduletest_fdivision;

regF10M,RESET;

wireF500K_clk;

always#`clk_cycleF10M=~F10M;

initial

begin

RESET=1;

F10M=0;

#100RESET=0;

#100RESET=1;

#10000$stop;

end

fdivisionm(.RESET(RESET),.F10M(F10M),.F500K(F500K_clk));

endmodule

5仿真结果

6实验分析

书中程序if(j==19)段应改为if(j==9)

选作三:

设计一个单周期形状的周期波形。

1实验要求

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

2模块代码

moduleexp3(RESET,F10M,F_OUT);

inputF10M,RESET;

outputF_OUT;

regF_OUT;

reg[15:

0]j;

always@(posedgeF10M)

if(!

RESET)

begin

F_OUT<=0;

j<=0;

end

else

begin

j<=j+1;

case(j)

199:

F_OUT<=1;

299:

F_OUT<=0;

499:

j<=0;

endcase

end

endmodule

3测试代码

`timescale1ns/100ps

`defineclk_cycle50

moduletest_exp3;

regF10M,RESET;

wireF;

always#`clk_cycleF10M=~F10M;

initial

begin

RESET=1;

F10M=0;

#100RESET=0;

#100RESET=1;

#1000000$stop;

end

exp3m2(.RESET(RESET),.F10M(F10M),.F_OUT(F));

endmodule

4仿真结果

实验四:

用always块实现较复杂的组合逻辑

1实验目的

1、掌握用always实现较大组合逻辑电路的方法。

2、进一步了解assign与always两种组合电路实现方法的区别和注意点。

3、学习测试模块中随机数的产生和应用。

4、学习综合不同层次的仿真,并比较结果。

2实验设备

安装Modelsim-6.5c的PC机。

3实验内容

设计一个简单的指令译码电路,该电路通过对指令的判断,对输入数据执行相应的操作,包括加、减、与、或和求反,并且无论是指令作用的数据还是指令本身发生变化,都有要作出及时的反应。

4实验代码

模块代码:

//--------------------alu.v-------------------------

`defineplus3'd0

`defineminus3'd1

`

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

当前位置:首页 > 解决方案 > 学习计划

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

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