eda技术与veriloghdl实验报告Word文档格式.docx
- 文档编号:20573403
- 上传时间:2023-01-24
- 格式:DOCX
- 页数:24
- 大小:166.10KB
eda技术与veriloghdl实验报告Word文档格式.docx
《eda技术与veriloghdl实验报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《eda技术与veriloghdl实验报告Word文档格式.docx(24页珍藏版)》请在冰豆网上搜索。
endmodule
图形输入如下所示:
四、实验步骤
1、新建一个名称为MUX71a的工程,并在该文件夹中新建一个的文件。
2、编译代码,编译成功后进行第三步,若不成功则查改代码中的错误。
3、在工程文件夹中新建一个的波形文件,导入工程端口,设置输入波形,仿真得出输出端口波形。
4、验证输出端口波形是否达到七选一多路选择器的功能。
五、实验数据
仿真波形如下图所示。
六、实验小结
通过对EDA实验箱使用,了解了GW48教学实验系统原理与使用介绍;
熟悉QuartusII两种输入方式下编译、仿真简单的组合电路。
实验二用原理图和VerilogHDL语言设计一位全加器
熟悉在QuartusII下用原理图和VerilogHDL语言设计一位全加器。
在QuartusII下用原理图和VerilogHDL语言设计一位全加器,并编译、仿真验证其功能。
全加器顶层文件设计:
半加器描述:
四.实验步骤
1、新建一个名称为f_adder的工程,并在该文件夹中新建一个的文件。
2、新建一个名称为的文件。
3、编译工程,编译成功后进行下一步,若不成功则查改错误。
4、在工程文件夹中新建一个的波形文件,导入工程端口,设置输入波形,仿真得出输出端口波形。
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的工程,并在该文件夹中新建一个的文件。
2、编译工程,编译成功后进行下一步,若不成功则查改错误。
4、验证输出端口波形是否实现异步清0和同步时钟使能的4位加法计数器的功能。
五、实验数据
10位计数器文本输入仿真波形:
60位计数器文本输入仿真波形:
60位计数器图形输入仿真波形:
通过此次实验熟悉在QuartusII下设计含异步清0和同步时钟使能的4位加法计数器
实验四8位十进制频率计设计
熟悉在QuartusII下设计2位和8位十进制频率计。
在QuartusII下设计2位和8位十进制频率计,并编译、仿真验证其功能。
频率计顶层文件设计:
(1)2位十进制频率计
图形输入:
图形输入:
文本输入:
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
文本输入:
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的工程,并在该文件夹中新建一个的文件,在工程文件夹中新建一个的文件。
2、编译工程,编译成功后进行下一步,若不成功则查改错误。
3、在工程文件夹中新建一个的波形文件,导入工程端口,设置输入波形,仿真得出输出端口波形。
4、验证输出端口波形是否实现8位十进制频率计的功能。
仿真波形如下图所示:
图形输入仿真波形:
文本输入仿真波形:
图形输入仿真波形输入:
图形输入仿真波形
通过本次实验熟悉在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的工程,并在该文件夹中新建一个的文件。
2.编译工程,编译成功后进行下一步,若不成功则查改错误。
3.在工程文件夹中新建一个的波形文件,导入工程端口,设置输入波形,仿真得出输出端口波形。
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的工程,并在该文件夹中新建一个的文件。
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:
//下面为:
时钟自动运行代码
else
EN)
if(MODE==0)
if((SEC[3:
0]==9)&
(SEC[7:
4]==5)&
(MIN[3:
(MIN[7:
(HOUR[3:
0]==3))//**当分为59,秒为59且时为的个位为3时,将进行下一部判断
begin
if(HOUR[7:
4]==2)//**当分为59,秒为59且时为23时,下一秒清零,且报警
begin
HOUR[7:
HOUR[3
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- eda 技术 veriloghdl 实验 报告