4线2线译码器.docx

上传人:b****2 文档编号:1882986 上传时间:2023-05-02 格式:DOCX 页数:10 大小:106.35KB
下载 相关 举报
4线2线译码器.docx_第1页
第1页 / 共10页
4线2线译码器.docx_第2页
第2页 / 共10页
4线2线译码器.docx_第3页
第3页 / 共10页
4线2线译码器.docx_第4页
第4页 / 共10页
4线2线译码器.docx_第5页
第5页 / 共10页
4线2线译码器.docx_第6页
第6页 / 共10页
4线2线译码器.docx_第7页
第7页 / 共10页
4线2线译码器.docx_第8页
第8页 / 共10页
4线2线译码器.docx_第9页
第9页 / 共10页
4线2线译码器.docx_第10页
第10页 / 共10页
亲,该文档总共10页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

4线2线译码器.docx

《4线2线译码器.docx》由会员分享,可在线阅读,更多相关《4线2线译码器.docx(10页珍藏版)》请在冰点文库上搜索。

4线2线译码器.docx

4线2线译码器

4线2线译码器

4线2线优先编码器和十进制加减可逆计数器设计

专业:

自动化学生:

XXXX学号:

XXXXXXXX

1设计目标

A:

掌握可编程逻辑器件的应用开发技术——设计输入、编译、仿真和器件编程;

熟悉一种EDA软件使用与实验系统介绍;

掌握VerilogHDL设计方法;

设计一个4线2线优先编码器,其功能如下表所示:

I3

I2

I1

I0

A1

A0

0

0

0

1

0

0

0

0

1

x

0

1

0

1

x

x

1

0

1

x

x

x

1

1

 

功能要求:

①满足以上功能表

②在实验板的发光二级管或编译显示电路,显示结果

B:

用verilogHDL语言设计一个模为10的可逆计数器,能自动实现加减可逆计数,也能手动实现加/减计数

用实验板上的译码显示电路,显示结果

 

2实验装置

586计算机,MAX+plusⅡ10.2软件,专用编程电缆,EDAPro2K数字实验装置等。

 

3设计步骤和要求

①在MAX+plusⅡ10.2软件中,输入设计的原理图。

B:

十进制加减可逆计数器代码:

1)顶层模块

modulecnt10_top(clk,crl,s,t,out);

inputcrl,s,t;

inputclk;

output[7:

0]out;

wirecp;

wire[3:

0]Q;

wire[7:

0]out;

freqDivU0(clk,cp);//tochangetheclockrate

cnt10U1(crl,s,t,cp,Q);

SEG7_LUTU2(out,Q);//tooutputtheresult

Endmodule

2)十进制可逆计数模块

modulecnt10(nclr,s,t,clk,Q);

inputclk,nclr,s,t;

output[3:

0]Q;

reg[3:

0]Q;

regflag;

initial

begin

flag=1;

end

always@(posedgeclkornegedgenclr)

begin

if(!

nclr)

Q<=4'b0000;//clear

else

casez({s,t})

2'b00:

if(Q==9)

begin

Q<=4'b1000;

flag<=0;

end

elseif(Q==0)

begin

Q<=4'b0001;

flag<=1;

end

elseif(flag==1)

Q<=Q+1;

else

Q<=Q-1;

2'b01:

if(Q==9)

Q<=4'b0000;

else

Q<=Q+1;

2'b1?

:

if(Q==0)

Q<=4'b1001;

else

Q<=Q-1;

endcase

end

endmodule

3)分频模块

modulefreqDiv(in_50MHz,out_1Hz);

inputin_50MHz;

outputout_1Hz;

regout_1Hz;

reg[25:

0]cnt;

always@(posedgein_50MHz)

begin

cnt<=cnt+1'B1;

if(cnt<26'd24999999)

out_1Hz<=0;

else

begin

if(cnt>=26'd50000000)

cnt<=26'b0;

elseout_1Hz<=1;

end

end

endmodule

4)显示模块

moduleSEG7_LUT(oSEG1,iDIG);

input[3:

0]iDIG;

output[7:

0]oSEG1;

reg[7:

0]oSEG;

wire[7:

0]oSEG1;

always@(iDIG)

begin

case(iDIG)

4'h0:

oSEG=8'b00111111;

4'h1:

oSEG=8'b00000110;

4'h2:

oSEG=8'b01011011;

4'h3:

oSEG=8'b01001111;

4'h4:

oSEG=8'b01100110;

4'h5:

oSEG=8'b01101101;

4'h6:

oSEG=8'b01111101;

4'h7:

oSEG=8'b00000111;

4'h8:

oSEG=8'b01111111;

4'h9:

oSEG=8'b01101111;

4'ha:

oSEG=8'b01110111;

4'hb:

oSEG=8'b01111100;

4'hc:

oSEG=8'b00111001;

4'hd:

oSEG=8'b01011110;

4'he:

oSEG=8'b01111001;

4'hf:

oSEG=8'b01110001;

endcase

end

assignoSEG1=~oSEG;

endmodule

4.3电路编译

4.4电路仿真

选择仿真参数

保存波形文件Q_DECODE_38.vwf

点击菜单项Processing->GenerateFunctionalSimulationNetlist,产生功能仿真网表

点击菜单项Processing->StartSimulation启动功能仿真

仿真波形如下:

CLR=0时,清零:

 

CLR=1,S=0,T=0,自动计数(0-9,9-0,……):

CLR=1,S=0,T=1,手动计数(0-9,0-9,……):

CLR=1,S=1,T=0,手动计数(9-0,9-0,……):

CLR=1,S=1,T=1,手动计数(9-0,9-0,……):

 

4.5器件的编程下载

下载程序:

在Programmer界面中,将.sof文件列表中Program/Configure属性勾上

再点击Start按钮,开始下载程序。

完成后,下载程序显示100%

最终调试,在DE0实验板上,扳动SW2,SW1和SW0开关,可以看到译码之后的LEDR7-LEDR0红色LED发光输出。

例如:

扳动SW1和SW0时仅有LEDR3亮。

 

5实验总结

本次实验是对编程语言VerilogHDL的学习和巩固,通过不用做电路图而直接找各个工作点以及门电路之间的关系写出语言描述,再根据语言描述仿真看结果是否符合预期结果,这在一定的程度上节省了画图所浪费的时间,效率较高,另外这是一门重要且比较基础的语言,通过这次实践让自己更加熟悉

同时,学会了对Quartus这个软件的基本操作

另外,本次实验应用层次化的设计输入方法:

“自顶向下”的全新设计方法,这种设计方法首先从系统设计入手,在顶层进行功能方框图的划分和结构设计,由于设计的主要仿真和调试过程是在高层次上完成的,这既有利于早期发现结构设计上的错误,避免设计工作的浪费,又减少了逻辑功能仿真的工作量,提高了设计的一次成功率。

 

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

当前位置:首页 > 人文社科

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2