基于VHDL数字钟的设计与分析.docx
- 文档编号:3465414
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:17
- 大小:453.66KB
基于VHDL数字钟的设计与分析.docx
《基于VHDL数字钟的设计与分析.docx》由会员分享,可在线阅读,更多相关《基于VHDL数字钟的设计与分析.docx(17页珍藏版)》请在冰豆网上搜索。
基于VHDL数字钟的设计与分析
片上系统课程设计
基于VHDL的数字钟的设计与分析
基于VHDL的数字钟的设计与分析
目录
1.系统总体设计……………………………………………3
2.单元模块的设计
2.1秒计数器的模块…………………………….….………..4
2.2分计数器的模块………………………….……………..6
2.3时计数器的模块……………………………………….7
2.4整点报时器模块……………………………………….9
2.5调时调分模块………………...………………………..11
2.6LED显示译码器模块………………...………………..13
3.心得体会……………………………………………….15
4.参考文献………………………………………………..16
系统总体设计:
设计一个数字时钟,要求显示时(2位),分(2位),秒(2位),具体要求是:
具有时分秒计数显示功能,以24小时循环计时;数码管动态显示时,分,秒;具有清零,调节小时,分钟,以及整点报时。
单元模块的设计
1.秒计数器模块
LIBRARYieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
ENTITYsecondIS
PORT(
clk,reset,setmin:
INSTD_LOGIC;
enmin:
OUTSTD_LOGIC;
daout:
outstd_logic_vector(6downto0));
ENDentitysecond;
ARCHITECTUREfunOFsecondIS
SIGNALcount:
STD_LOGIC_VECTOR(6downto0);
SIGNALenmin_1,enmin_2:
STD_LOGIC;
BEGIN
daout<=count;
enmin_2<=(setminandclk);
enmin<=(enmin_1orenmin_2);
process(clk,reset,setmin)
begin
if(reset='0')thencount<="0000000";
elsif(clk'eventandclk='1')then
if(count(3downto0)="1001")then
if(count<16#60#)then
if(count="1011001")then
enmin_1<='1';count<="0000000";
else
count<=count+7;
endif;
else
count<="0000000";
endif;
elsif(count<16#60#)then
count<=count+1;
enmin_1<='0'after100ns;
else
endif;
endif;
endprocess;
endfun;
编译过程:
仿真图如下:
2.分计数器模块
LIBRARYieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
ENTITYminuteIS
PORT(
clk,clk1,reset,sethour:
INSTD_LOGIC;
enhour:
OUTSTD_LOGIC;
daout:
outstd_logic_vector(6downto0));
ENDentityminute;
ARCHITECTUREfunOFminuteIS
SIGNALcount:
STD_LOGIC_VECTOR(6downto0);
SIGNALenhour_1,enhour_2:
STD_LOGIC;
BEGIN
daout<=count;
enhour_2<=(sethourandclk1);
enhour<=(enhour_1orenhour_2);
process(clk,reset,sethour)
begin
if(reset='0')then
count<="0000000";
elsif(clk'eventandclk='1')then
if(count(3downto0)="1001")then
if(count<16#60#)then
if(count="1011001")then
enhour_1<='1';
count<="0000000";
ELSE
count<=count+7;
endif;
else
count<="0000000";
endif;
elsif(count<16#60#)then
count<=count+1;
enhour_1<='0'after100ns;
else
count<="0000000";
endif;
endif;
endprocess;
ENDfun;
编译过程:
仿真图如下:
3.时计数器模块
LIBRARYieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
ENTITYhourIS
PORT(
clk,reset:
INSTD_LOGIC;
daout:
outstd_logic_vector(5downto0));
ENDentityhour;
ARCHITECTUREfunOFhourIS
SIGNALcount:
STD_LOGIC_VECTOR(5downto0);
BEGIN
daout<=count;
process(clk,reset)
begin
if(reset='0')then
count<="000000";
elsif(clk'eventandclk='1')then
if(count(3downto0)="1001")then
if(count<=16#23#)then
count<=count+7;
else
count<="000000";
endif;
elsif(count<16#23#)then
count<=count+1;
else
count<="000000";
endif;
endif;
endprocess;
ENDfun;
编译过程:
仿真图如下:
4.整点报时器模块
LIBRARYieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
ENTITYalertIS
PORT(
clk:
INSTD_LOGIC;
dain:
INSTD_LOGIC_VECTOR(6DOWNTO0);
speak:
OUTSTD_LOGIC;
lamp:
OUTSTD_LOGIC_VECTOR(2DOWNTO0));
ENDalert;
ARCHITECTUREfunOFalertIS
signalcoun:
std_logic_vector(1downto0);
signalcount1:
std_logic_vector(1downto0);
BEGIN
speaker:
process(clk)
begin
speak<=count1
(1);
if(clk'eventandclk='1')then
if(dain="0000000")then
if(count1>="10")then
count1<="00";
else
count1<=count1+1;
endif;
endif;
endif;
endprocessspeaker;
lamper:
process(clk)
begin
if(rising_edge(clk))then
if(coun<="10")then
if(coun="00")then
lamp<="001";
elsif(coun="01")then
lamp<="010";
elsif(coun="10")then
lamp<="100";
endif;
coun<=coun+1;
else
coun<="00";
endif;
endif;
endprocesslamper;
ENDfun;
编译过程:
仿真图如下:
5.调时调分模块
LIBRARYieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
useieee.std_logic_arith.all;
ENTITYseltimeIS
PORT(
clk1,reset:
INSTD_LOGIC;
sec,min:
INSTD_LOGIC_VECTOR(6downto0);
hour:
instd_logic_vector(5downto0);
daout:
OUTSTD_LOGIC_vector(3downto0);
dp:
OUTstd_LOGIC;
sel:
outstd_logic_vector(2downto0));
ENDseltime;
ARCHITECTUREfunOFseltimeIS
SIGNALcount:
STD_LOGIC_vector(2downto0);
BEGIN
sel<=count;
process(clk1,reset)
begin
if(reset='0')then
count<="000";
elsif(clk1'eventandclk1='1')then
if(count>="101")then
count<="000";
else
count<=count+1;
endif;
endif;
casecountis
when"000"=>daout<=sec(3downto0);dp<='0';
when"001"=>daout(3)<='0';daout(2downto0)<=sec(6downto4);dp<='0';
when"010"=>daout<=min(3downto0);dp<='1';
when"011"=>daout(3)<='0';daout(2downto0)<=min(6downto4);dp<='0';
when"100"=>daout<=hour(3downto0);dp<='1';
whenothers=>daout(3downto2)<="00";
daout(1downto0)<=hour(5downto4);dp<='0';
endcase;
endprocess;
endfun;
编译过程:
仿真图如下:
6.LED显示译码器模块
LIBRARYieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
ENTITYdeledIS
PORT(num:
INstd_logic_vector(3downto0);
led:
OUTstd_logic_vector(6downto0));
enddeled;
ARCHITECTUREfunOFdeledIS
BEGIN
led<="1111110"whennum="0000"else
"0110000"whennum="0001"else
"1101101"whennum="0010"else
"1111001"whennum="0011"else
"0110011"whennum="0100"else
"1011011"whennum="0101"else
"1011111"whennum="0110"else
"1110000"whennum="0111"else
"1111111"whennum="1000"else
"1111011"whennum="1001"else
"1110111"whennum="1010"else
"0011111"whennum="1011"else
"1001110"whennum="1100"else
"0111101"whennum="1101"else
"1001111"whennum="1110"else
"1000111"whennum="1111";
ENDfun;
编译过程:
仿真图如下:
心得体会:
郭琦09281060
这个学期我们学了片上系统的课程设计,这门课程设计是我们上学期数电的后续实践课程,通过本次课程设计,我们巩固了以前学过的专业知识,通过这次的程序设计,使我们对数字系统结构也有了更进一步的了解与认识,同时对数据库软件EDA技术,VHDL语言等系列知识都有了一定的了解与认识。
使用EDA技术开发页面的能力也有了提高,也使我们把理论与实践从正真意义上结合了起来,考研了我们的动手能力,查阅相关资料的能力,还有组织材料的能力。
通过这次课程设计,我拓宽了知识面,锻炼了能力,综合素质得到较大提高。
安排课程设计的基本目的,在于通过理论与仿真的结合、同学之间的沟通交流,掌握知识的水平有了一定的提高。
尤其是观察、分析和解决问题的实际工作能力。
这次课程设计还锻炼了我们的自学能力和查找问题的能力。
我体会到理论与实践的重要性,我学习到很多一般性的方法,例如:
开始时对问题的猜想、设计,推导,仿真验证等等。
同时,我也认识到使用计算机软件解决实际问题的复杂性,在这个过程中需要我们的耐心和不懈的努力。
片上系统课程设计让我学到了很多,可以说让我受益匪浅,我会更加努力的学习专业课程,为以后打下坚实的基础。
李腾润09291044
这次片上系统设计做起来比较简单,因为刚好做完现代交换技术课程设计,所以对于MAXPLUS2的应用方面没有太大问题,不过需要注意的是.VHD文件和自己的总图必须放在一个目录下,不然找不到相应元件,无法编译。
我们的设计总的说来就是一个时钟,含有调时、整点报时、显示的功能,用到了VHDL语言,通过查阅相关书籍,我明白了VHDL语言由程序包、结构体和设计实体组成,在此基础上我试着写了一些简单的代码,也明白了基本语句之间的相关关系。
我觉得,这次课设做起来相对轻松,也比较好玩,总之,收获挺多的。
参考文献
[1]潘松,黄继业.VHDL设计初步[J].EDA技术实用教材,2009,5-29:
70-82.
[2]华成英,童诗白.集成运算放大电路[J].模拟电子基础,2006,5-4:
185-187.
[3]阎石.时序逻辑电路[M].北京:
高等教育出版社,2008.
[4]李建东,郭梯云,邬国扬.移动通信.第四版.[M].西安:
西安电子科技大学出版社,2006.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 VHDL 数字 设计 分析
![提示](https://static.bdocx.com/images/bang_tan.gif)