数字逻辑与数字系统课程设计报告.docx

上传人:b****6 文档编号:4717252 上传时间:2022-12-07 格式:DOCX 页数:14 大小:205.74KB
下载 相关 举报
数字逻辑与数字系统课程设计报告.docx_第1页
第1页 / 共14页
数字逻辑与数字系统课程设计报告.docx_第2页
第2页 / 共14页
数字逻辑与数字系统课程设计报告.docx_第3页
第3页 / 共14页
数字逻辑与数字系统课程设计报告.docx_第4页
第4页 / 共14页
数字逻辑与数字系统课程设计报告.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

数字逻辑与数字系统课程设计报告.docx

《数字逻辑与数字系统课程设计报告.docx》由会员分享,可在线阅读,更多相关《数字逻辑与数字系统课程设计报告.docx(14页珍藏版)》请在冰豆网上搜索。

数字逻辑与数字系统课程设计报告.docx

数字逻辑与数字系统课程设计报告

 

数字逻辑与数字系统

课程设计

计083-1

200825503103

李晓斌

指导老师:

沙丽杰心得

一、系统简介

a)具有以下二十四小时制计时器、显示、整点报时、时间设置的功能。

b)设计精度要求为1秒。

二、系统功能

计时:

正常工作状态下,每日按24小时计时制计时并显示,蜂鸣器无声,逢整点报时。

校时:

在计时显示状态下,

1)按下“h键”,将以频率为4HZ调节小时。

2)按下“m键”,将以频率为4HZ调节分钟。

3)按下“rscl键”,将会使秒钟清零。

整点报时:

逢整点蜂鸣器在“59”分钟的第51、53、55、57秒发频率为512Hz的低音,在“59”分钟的第59秒发频率为1024Hz的高音。

三、总体结构逻辑框图

四、各模块程序、符号图、仿真图

模块一:

动态显示器

1)模八计数器

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entityco_8is

port(clk,clr:

instd_logic;

en:

instd_logic;

ql:

outstd_logic_vector(2downto0);

c8:

outstd_logic);

endco_8;

architecturertlofco_8is

signalqcl:

std_logic_vector(2downto0);

begin

process(clk)

begin

if(clr='0')then

qcl<="000";

elsif(clk'eventandclk='1')then

if(en='1')then

if(qcl="111")then

qcl<="000";c8<='1';

else

qcl<=qcl+'1';c8<='0';

endif;

endif;

endif;

endprocess;

ql<=qcl;

endrtl;

2)8选1多路选择器

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned;

entitymux8_1is

port(d0,d1,d2,d3,d4,d5,d6,d7:

instd_logic_vector(3downto0);

sel:

instd_logic_vector(2downto0);

y:

outstd_logic_vector(3downto0));

endmux8_1;

architecturearchofmux8_1is

begin

process(sel)

begin

caseselis

when"000"=>y<=d0;

when"001"=>y<=d1;

when"010"=>y<=d2;

when"011"=>y<=d3;

when"100"=>y<=d4;

when"101"=>y<=d5;

when"110"=>y<=d6;

when"111"=>y<=d7;

whenothers=>y<="XXXX";

endcase;

endprocess;

endarch;

3)BCD—7段译码器

LIBRARYieee;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYmxh7448_1IS

PORT(xin:

INSTD_LOGIC_VECTOR(3downto0);

x:

OUTSTD_LOGIC_VECTOR(6downto0));

ENDmxh7448_1;

ARCHITECTUREseg7448OFmxh7448_1IS

SIGNALsig_xin:

STD_LOGIC_VECTOR(3downto0);

BEGIN

sig_xin<=xin;

PROCESS(sig_xin)

BEGIN

CASEsig_xinIS

WHEN"0000"=>x<="1111110";

WHEN"0001"=>x<="0110000";

WHEN"0010"=>x<="1101101";

WHEN"0011"=>x<="1111001";

WHEN"0100"=>x<="0110011";

WHEN"0101"=>x<="1011011";

WHEN"0110"=>x<="1011111";

WHEN"0111"=>x<="1110000";

WHEN"1000"=>x<="1111111";

WHEN"1001"=>x<="1111011";

WHENothers=>x<="0000001";

ENDCASE;

ENDPROCESS;

ENDseg7448;

模块二:

时钟控制信号

1)模60计数器

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entitycount_60is

port(clk,clr:

instd_logic;

en:

instd_logic;

ql:

outstd_logic_vector(3downto0);

qh:

outstd_logic_vector(3downto0);

co:

outstd_logic);

endcount_60;

architecturebehavofcount_60is

signalqcl:

std_logic_vector(3downto0);

signalqch:

std_logic_vector(3downto0);

begin

process(clk)

begin

if(clr='0')then

qcl<="0000";qch<="0000";

elsif(clk'eventandclk='1')then

co<='0';

if(en='1'andqch="0101"andqcl="1001")then

qcl<="0000";qch<="0000";co<='1';

else

if(en='1'andqcl<"1001")then

qcl<=qcl+'1';

elsif(en='1'andqcl="1001")then

qch<=qch+'1';qcl<="0000";

endif;

endif;

endif;

qh<=qch;

ql<=qcl;

endprocess;

endbehav;

2)模24计数器

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entitycountt_24is

port(clk,clr:

instd_logic;

en:

instd_logic;

ql:

outstd_logic_vector(3downto0);

qh:

outstd_logic_vector(3downto0);

co:

outstd_logic);

endcountt_24;

architecturebehavofcountt_24is

signalqcl:

std_logic_vector(3downto0);

signalqch:

std_logic_vector(3downto0);

begin

process(clk)

begin

if(clr='0')then

qcl<="0000";qch<="0000";

elsif(clk'eventandclk='1')then

co<='0';

if(en='1'andqch="0010"andqcl="0011")then

qcl<="0000";qch<="0000";co<='1';

else

if(en='1'andqcl<"1001")then

qcl<=qcl+'1';

elsif(en='1'andqcl="1001")then

qch<=qch+'1';qcl<="0000";

endif;

endif;

endif;

qh<=qch;

ql<=qcl;

endprocess;

endbehav;

模块三:

报时

1)报时控制器

libraryieee;

useieee.std_logic_1164.all;

entitybaoshikongzhiis

port(m2,m1,s2,s1:

instd_logic_vector(3downto0);

clk:

instd_logic;

h500,h1000:

outstd_logic);

endbaoshikongzhi;

architecturesss_arcofbaoshikongzhiis

begin

process(clk)

begin

ifclk'eventandclk='1'then

ifm2="0101"andm1="1001"ands2="0101"then

ifs1="0001"ors1="0011"ors1="0101"ors1="0111"then

h500<='1';

else

h500<='0';

endif;

endif;

ifm2="0101"andm1="1001"ands2="0101"ands1="1001"then

h1000<='1';

else

h1000<='0';

endif;

endif;

endprocess;

endsss_arc;

2)响铃

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entityringis

port(h500,h1000,clk,clk1k:

instd_logic;

rg:

outstd_logic);

endring;

architecturertlofringis

begin

process(h500,h1000)

begin

if(h500='1')then

rg<=clk;

elsif(h1000='1')then

rg<=clk1k;

else

rg<='0';

endif;

endprocess;

endrtl;

模块四:

分频器

1)分频器的组成

2)模二计数器

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entitycount_2is

port(clk,clr:

instd_logic;

en:

instd_logic;--'1'--count'0'---keep

ql:

outstd_logic_vector(1downto0);

co:

outstd_logic);

endcount_2;

architecturertlofcount_2is

signalqcl:

std_logic_vector(1downto0);

begin

process(clk)

begin

if(clr='0')then

qcl<="00";

elsif(clk'eventandclk='1')then

if(en='1')then

if(qcl="01")then

qcl<="00";co<='1';

else

qcl<=qcl+'1';co<='0';

endif;

endif;

endif;

ql<=qcl;

endprocess;

endrtl;

3)模四计数器

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entitycount_4is

port(clk,clr:

instd_logic;

en:

instd_logic;--'1'--count'0'---keep

ql:

outstd_logic_vector(1downto0);

co:

outstd_logic);

endcount_4;

architecturertlofcount_4is

signalqcl:

std_logic_vector(1downto0);

begin

process(clk)

begin

if(clr='0')then

qcl<="00";

elsif(clk'eventandclk='1')then

if(en='1')then

if(qcl="11")then

qcl<="00";co<='1';

else

qcl<=qcl+'1';co<='0';

endif;

endif;

endif;

endprocess;

ql<=qcl;

endrtl;

五:

感悟

数字逻辑课程设计昨天下午才刚刚验完,眼前的一切还是很熟悉。

经过了几天的写程序、仿真、下载和调试,我觉得相比考试而言,课程设计才是最能锻炼认的能力的一个过程,也是学好这门课最好的方法。

从最开始的一无所知,问老师,问同学,反复研究别人写的程序,慢慢整理思路,才开始对数字钟这个课题有了一定的了解,才有了自己大体的框架,知道要实现什么功能,需要哪些变量、哪些语句才能够实现它。

程序是一个很虚幻的东西,它发生错误的时候,自己是看不到的,而不像别的东西一样可以一目了然,如果系统可以给出提示还好,就有了大体的方向去改正它,那种编译不出来的错误才是最可怕的,结果就只能是重新来过。

但是在错误中才能得到最大的提高,从错误中吸取教训就是一个不断成长的过程,MUX+PLUS

像是一个蛮横的孩子,结果只能是你去迁就他,而他不会为你做任何改变,并且这是唯一的途径去解决问题。

无形的东西给了足够大的空间去改变,所以当把程序下载到实验箱上以后,所面对的一切不正常都是有可能的,它需要你有足够的耐心和充沛的精力去修改它,并且要勇于用各种方法去尝试,直至得出正确的结果。

这次课程设计只是大学中的一个小小插曲,过程是最重要的,在这个过程中收获到了许多知识,提高了动手能力,并且在这个过程中体会到了同学之间的合作的快乐,在大家的“相互改错”中增进了友谊。

随着课程学习的加深,工科女的快乐与心酸只能是属于自己人生中亮丽的风景线。

最后,感谢老师的谆谆教导,为我们改正错误,传授给我们知识,谢谢!

 

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

当前位置:首页 > 高等教育 > 研究生入学考试

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

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