EDA技术与VerilogHDL实验报告Word格式.docx

上传人:b****6 文档编号:19368404 上传时间:2023-01-05 格式:DOCX 页数:36 大小:1,018.22KB
下载 相关 举报
EDA技术与VerilogHDL实验报告Word格式.docx_第1页
第1页 / 共36页
EDA技术与VerilogHDL实验报告Word格式.docx_第2页
第2页 / 共36页
EDA技术与VerilogHDL实验报告Word格式.docx_第3页
第3页 / 共36页
EDA技术与VerilogHDL实验报告Word格式.docx_第4页
第4页 / 共36页
EDA技术与VerilogHDL实验报告Word格式.docx_第5页
第5页 / 共36页
点击查看更多>>
下载资源
资源描述

EDA技术与VerilogHDL实验报告Word格式.docx

《EDA技术与VerilogHDL实验报告Word格式.docx》由会员分享,可在线阅读,更多相关《EDA技术与VerilogHDL实验报告Word格式.docx(36页珍藏版)》请在冰豆网上搜索。

EDA技术与VerilogHDL实验报告Word格式.docx

=g;

default:

endcase

endmodule

图形输入如下所示:

四、实验步骤

1、新建一个名称为MUX71a的工程,并在该文件夹中新建一个MUX71a.v的文件。

2、编译代码,编译成功后进行第三步,若不成功则查改代码中的错误。

3、在工程文件夹中新建一个MUX71a.vwf的波形文件,导入工程端口,设置输入波形,仿真得出输出端口波形。

4、验证输出端口波形是否达到七选一多路选择器的功能。

五、实验数据

仿真波形如下图所示。

六、实验小结

通过对EDA实验箱使用,了解了GW48教学实验系统原理与使用介绍;

熟悉QuartusII两种输入方式下编译、仿真简单的组合电路。

实验二用原理图和VerilogHDL语言设计一位全加器

熟悉在QuartusII下用原理图和VerilogHDL语言设计一位全加器。

在QuartusII下用原理图和VerilogHDL语言设计一位全加器,并编译、仿真验证其功能。

全加器顶层文件设计:

半加器描述:

四.实验步骤

1、新建一个名称为f_adder的工程,并在该文件夹中新建一个f_adder.bdf的文件。

2、新建一个名称为h_adder.v的文件。

3、编译工程,编译成功后进行下一步,若不成功则查改错误。

4、在工程文件夹中新建一个f_adder.vwf的波形文件,导入工程端口,设置输入波形,仿真得出输出端口波形。

5、验证输出端口波形是否实现一位全加器的功能。

I、全加器仿真波形如下图所示:

II、半加器仿真波形如下图所示:

通过此次实验熟悉在QuartusII下用原理图和VerilogHDL语言设计一位全加器。

实验三含异步清0和同步时钟使能的4位加法计数器

熟悉在QuartusII下设计含异步清0和同步时钟使能的4位加法计数器。

在QuartusII下设计含异步清0和同步时钟使能的4位加法计数器,并编译、仿真验证其功能。

计数器顶层文件设计:

10进制计数器文本输入:

moduleCNT10(clk,rst,en,load,cout,dout,data);

inputclk,en,rst,load;

input[3:

0]data;

output[3:

0]dout;

outputcout;

reg[3:

0]q1;

regcout;

assigndout=q1;

always@(posedgeclkornegedgerst)

begin

if(!

rst)q1<

=0;

elseif(en)

begin

if(!

load)q1<

=data;

elseif(q1<

9)q1<

=q1+1;

elseq1<

=4'

b0000;

end

always@(q1)

if(q1==4'

h9)cout=1'

b1;

elsecout=1'

b0;

endmodule

60位计数器文本输入:

moduleCNT60(CLK,EN,RST,LOAD,COUT1,COUT2,DOUT1,DOUT2,DATA);

inputCLK,EN,RST,LOAD;

input[3:

0]DATA;

output[3:

0]DOUT1;

output[2:

0]DOUT2;

outputCOUT1;

outputCOUT2;

reg[3:

0]Q1;

reg[2:

0]Q2;

regCOUT1;

regCOUT2;

assignDOUT1=Q1;

assignDOUT2=Q2;

always@(negedgeCLKornegedgeRST)

begin

if(!

RST)Q1<

elseif(EN)begin

LOAD)Q1<

=DATA;

elseif(Q1<

9)Q1<

=Q1+1;

elseQ1<

always@(Q1)

if(Q1==4'

h9)COUT1=1'

else

COUT1=1'

always@(negedgeCOUT1ornegedgeRST)

RST)Q2<

LOAD)Q2<

elseif(Q2<

5)Q2<

=Q2+1;

elseQ2<

always@(Q2)

if((Q1==4'

h9)&

&

(Q2==3'

h5))COUT2=1'

COUT2=1'

60位计数器图形输入:

1、新建一个名称为CNT10的工程,并在该文件夹中新建一个CNT10.v的文件。

2、编译工程,编译成功后进行下一步,若不成功则查改错误。

3、在工程文件夹中新建一个CNT10.vwf的波形文件,导入工程端口,设置输入波形,仿真得出输出端口波形。

4、验证输出端口波形是否实现异步清0和同步时钟使能的4位加法计数器的功能。

五、实验数据

10位计数器文本输入仿真波形:

60位计数器文本输入仿真波形:

60位计数器图形输入仿真波形:

通过此次实验熟悉在QuartusII下设计含异步清0和同步时钟使能的4位加法计数器

实验四8位十进制频率计设计

熟悉在QuartusII下设计2位和8位十进制频率计。

在QuartusII下设计2位和8位十进制频率计,并编译、仿真验证其功能。

频率计顶层文件设计:

(1)2位十进制频率计

Conter8.bdf图形输入:

tf_ctro.bdf图形输入:

ft_top.bdf图形输入:

conter100.v文本输入:

moduleconter100(CLK,CLR,EN,cout,ge,shi);

inputCLK,EN,CLR;

output[3:

0]ge;

0]shi;

outputcout;

regcout;

reg[3:

0]shi;

always@(posedgeCLK)

CLR)

ge<

shi<

cout<

elseif((ge==9)&

(shi==9))

=1;

elseif(ge==9)

=shi+1;

=ge+1;

=shi;

end

tf_ctro.v文本输入:

moduletf_ctro(clk,en,clr,lock);

inputclk;

outputen,clr,lock;

regen,clr,lock;

integerd=0;

always@(posedgeclk)

begin

d<

=d+1;

if(d==1)

en<

lock<

clr<

elseif(d==2)

end

elseif(d==3)

elseif(d==6)

elseif(d==7)

elseif(d==8)

elseif(d==16)

74374锁存器文本输入:

moduleoctal(clk,en,d_in,q_in);

inputclk,en;

input[3:

0]d_in;

output[3:

0]q_in;

reg[3:

0]Q;

assignq_in=Q;

if(!

en)

Q<

=d_in;

(2)8位十进制频率计

1、新建一个名称为CTR10的工程,并在该文件夹中新建一个CTR10.bdf的文件,在工程文件夹中新建一个counter8.bdf的文件。

2、编译工程,编译成功后进行下一步,若不成功则查改错误。

3、在工程文件夹中新建一个CTR10.vwf的波形文件,导入工程端口,设置输入波形,仿真得出输出端口波形。

4、验证输出端口波形是否实现8位十进制频率计的功能。

仿真波形如下图所示:

Conter8.bdf图形输入仿真波形:

Conter100.v文本输入仿真波形:

Tf_ctro.bdf图形输入仿真波形输入:

ft_top.bdf图形输入仿真波形:

ft_top.bdf图形输入仿真波形

通过本次实验熟悉在QuartusII下设计2位和8位十进制频率计,并编译、仿真验证其功能。

实验五用状态机实现对ADC0809采样控制

熟悉在QuartusII下用状态机实现对ADC0809采样控制。

在QuartusII下用状态机实现对ADC0809采样控制,并编译、仿真验证其功能。

三.实验原理

四、实验程序清单

moduleADC0809(D,CLK,EOC,RST,ALE,START,OE,ADDA,Q,LOCK_T);

input[7:

0]D;

inputCLK,RST;

inputEOC;

outputALE;

outputSTART,OE;

outputADDA,LOCK_T;

output[7:

0]Q;

regALE,START,OE;

parameters0=0,s1=1,s2=2,s3=3,s4=4;

reg[4:

0]cs,next_state;

reg[7:

0]REGL;

regLOCK;

always@(csorEOC)begin

case(cs)

s0:

next_state<

=s1;

s1:

=s2;

s2:

if(EOC==1'

b1)next_state<

=s3;

elsenext_state<

s3:

=s4;

s4:

=s0;

default:

endcaseend

always@(cs)begin

beginALE=0;

START=0;

OE=0;

LOCK=0;

beginALE=1;

START=1;

end

OE=1;

LOCK=1;

endcaseend

always@(posedgeCLKorposedgeRST)begin

if(RST)cs<

=s0;

elsecs<

=next_state;

always@(posedgeLOCK)

if(LOCK)REGL<

=D;

assignADDA=0;

assignQ=REGL;

assignLOCK_T=LOCK;

endmodule

五.实验步骤

1.新建一个名称为ADC0809的工程,并在该文件夹中新建一个ADC0809.v的文件。

2.编译工程,编译成功后进行下一步,若不成功则查改错误。

3.在工程文件夹中新建一个ADC0809.vwf的波形文件,导入工程端口,设置输入波形,仿真得出输出端口波形。

4.验证输出端口波形是否实现用状态机实现对ADC0809采样控制

状态转换图:

通过此次实验熟悉在QuartusII下用状态机实现对ADC0809采样控制,并编译、仿真验证其功能。

实验六交通灯设计实验

熟悉在QuartusII下设计十字路口交通灯控制电路。

在QuartusII下设计十字路口交通灯控制电路,并编译、仿真验证其功能。

状态表:

moduletraffic(clk,enb,accounth,account1,bccounth,bccount1,lampa1,lampa2,lampa3,lampa4,lampb1,lampb2,lampb3,lampb4);

inputclk,enb;

0]accounth,account1,bccounth,bccount1;

outputlampa1,lampa2,lampa3,lampa4,lampb1,lampb2,lampb3,lampb4;

regtempa,tempb;

reg[2:

0]counta,countb;

0]numa,numb;

0]ared,ayellow,agreen,aleft,bred,byellow,bgreen,bleft;

reglampa1,lampa2,lampa3,lampa4,lampb1,lampb2,lampb3,lampb4;

assign{accounth,account1}=numa;

assign{bccounth,bccount1}=numb;

always@(enb)

if(!

enb)

ared<

=8'

b01010101;

ayellow<

b00000101;

agreen<

b01000000;

aleft<

b00010101;

bred<

b01100101;

byellow<

bleft<

bgreen<

b00110000;

always@(posedgeclk)

if(enb)

if(tempa)

if(numa>

0)

if(numa[3:

0]==0)

numa[3:

0]<

=9;

numa[7:

4]<

=numa[7:

4]-1;

else

=numa[3:

0]-1;

if(numa==0)

tempa<

case(counta)

0:

numa<

=agreen;

{lampa1,lampa2,lampa3,lampa4}<

=2;

counta<

1:

=ayellow;

=4;

2:

=aleft;

=3;

3:

4:

=ared;

=8;

endcase

{lampa1,lampa2,lampa3,lampa4}<

b1000;

counta<

if(tempb)

if(numb>

if(numb[3:

numb[3:

numb[7:

=numb[7:

=numb[3:

if(numb==0)

tempb<

case(countb)

numb<

=bred;

{lampb1,lampb2,lampb3,lampb4}<

countb<

=bgreen;

=byellow;

=bleft;

{lampb1,lampb2,lampb3,lampb4}<

countb<

状态图:

五、.实验步骤

1.新建一个名称为traffic的工程,并在该文件夹中新建一个traffic.v的文件。

3、在工程文件夹中新建一个traffic.vwf的波形文件,导入工程端口,设置输入波形,仿真得出输出端口波形。

4、验证输出端口波形是否实现用状态机实现对十字路口交通灯控制。

引脚分配图:

通过此次实验熟悉在QuartusII下设计十字路口交通灯控制路,并编译、仿真验证其功能。

实验七简易数字时钟系统实验--------考试实验

熟悉在QuartusII下设计简易数字时钟系统。

在QuartusII下设计简易数字时钟系统,并编译、仿真验证其功能。

三、实验要求

(1)能正常计时

(2)有暂停键,清零键

(3)小时、分钟、秒钟可调(可加减)

(4)整点报时

四、程序清单

moduleshizhong(CLK,CLR,HOUR,MIN,SEC,EN,HOUT,SW,MODE,up);

inputCLK,EN,CLR,SW,up;

outputHOUT,HOUR,MIN,SEC;

output[3:

0]MODE;

reg[7:

0]HOUR,MIN,SEC;

regHOUT,CLK1;

//CLK为时钟,EN为使能,也就是暂停按钮,SW为调整MODE的按钮

//UP为调整时钟的加按钮也是减按钮,当MODE为1到6为加按钮,当MODE为7到12为减按钮

//HOUT为报警器的控制

always@(CLKorup)//UP是时分秒加减按钮,在MODE1到6为加,7到12为减

if(MODE==0)CLK1<

=CLK;

//**MODE0为时钟自动走,其他MODE为暂停调整时钟

elseCLK1<

=up;

always@(posedgeSW)//********调整模式,范围为模式1到模式12

if(SW)

begin

MODE<

=MODE+1;

if(MODE>

12)MODE<

end

end//********

always@(posedgeCLK1orposedgeCLR)

if(CLR)//*****清除时间,使其为00:

00:

00

begin

SEC<

HOUR<

MIN<

end//***清除时间,使其为00:

//下

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

当前位置:首页 > 高等教育 > 医学

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

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