EDA电子钟论文1.docx
- 文档编号:7578259
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:15
- 大小:124.93KB
EDA电子钟论文1.docx
《EDA电子钟论文1.docx》由会员分享,可在线阅读,更多相关《EDA电子钟论文1.docx(15页珍藏版)》请在冰豆网上搜索。
EDA电子钟论文1
《EDA技术》大作业
题目:
电子钟设计
学院:
信息科学与工程
学号:
20111301420
姓名:
努尔阿米乃姆.艾合麦提
班级:
电子11-2班
指导老师:
努尔比亚老师
EDA电子钟
摘要:
随着EDA技术的发展和应用的领域的扩大,EDA技术在电子信息、通信、自动控制及计算机应用等领域等重要性日益突出。
本文使用VHDL硬件描述语言设计了一个电子钟系统,该系统在开发软件QuartusⅡ5.0环境中设计完成,并下载到EP1K30TC144-3FPGA的实验箱并成功,本文给出了设计该数字系统的流程。
关键词:
EDA电子钟校时分频VHDL语言
一:
设计功能要求:
1、用65536HZ的频率作为系统的时钟,对其进行分频产生秒信号,再对秒信号进行计数,产生分、时,并显示小时、分钟和秒的实际值。
2、能预置小时和分钟的功能(即校时、校分)。
2、设计原理:
本设计先用一个分频器对试验箱上的65536HZ的信号进行分频,得到1HZ的时钟信号,再用计数器分别计数秒、分、时。
秒位达59时进位分位,分位达59时进位到时位,时位到23时则自动清零,用了两个按键对时间的时位和分位进行了预置(即校时校分),一个按键(rest)可清零,且各个计数器的计数都通过数码管显示出来。
3、设计总体RTL图
四、程序设计
本设计采用模块化设计,共六个模块,分为:
分频器模块、秒位计数器模块、分位计数器模块、时位计数器模块、校准模块(预置时和分)、顶层文件模块。
1、分频模块
图1-1分频实体图
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entityfenpinis--数控分频器
port(clk:
instd_logic;--输入65536HZ
fenpinhou_out:
outstd_logic);--输出1HZ
end;
architecturefouroffenpinis
signalD:
std_logic;
begin
process(clk)
variablebianliang:
std_logic_vector(15downto0);
begin
ifclk'eventandclk='1'then
ifbianliang="1000000000000000"--65536/2
thenbianliang:
="0000000000000000";
D<=notD;--取反
else
bianliang:
=bianliang+1;
endif;
endif;
endprocess;
fenpinhou_out<=D;
endfour;
分频器仿真波形图如图1-2
图1-2分频器仿真波形图
2、秒计数器模块
图2-1秒计数器实体图
libraryieee;--秒计数器
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entitymiaois
port(clk,rest:
instd_logic;--时钟、复位
miao_diwei,miao_gaowei:
outstd_logic_vector(3downto0);
miao_out:
outstd_logic);--秒进位输出
endmiao;
architectureoneofmiaois
signalmiao_bian1,miao_bian2:
std_logic_vector(3downto0);--定义两个信号
begin
process(clk,rest)
begin
ifrest='0'then
miao_bian1<="0000";--低位
miao_bian2<="0000";--高位
elsifclk'eventandclk='1'then--上升沿
ifmiao_bian1="1001"then--秒低位到9时清零
miao_bian1<="0000";
ifmiao_bian2="0101"then--秒高位到5时清零
miao_bian2<="0000";
else
miao_bian2<=miao_bian2+1;--秒高位没到5时加1
endif;
else
miao_bian1<=miao_bian1+1;--秒低位没到9时加1
endif;
ifmiao_bian1="1001"andmiao_bian2="0101"then--秒位到59时进位分低位
miao_out<='1';
else
miao_out<='0';
endif;
endif;
endprocess;
miao_diwei<=miao_bian1;--秒低位输出
miao_gaowei<=miao_bian2;--秒高位输出
endone;
秒的仿真波形如图2-2
图2-2秒的仿真波形
3、分计数器模块
图3-1分计数器实体图
libraryieee;--原理同秒计数器的一样
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entityfenis
port(clk,rest:
instd_logic;
fen_diwei,fen_gaowei:
outstd_logic_vector(3downto0);
fen_out:
outstd_logic);
endfen;
architecturetwooffenis
signalfen_bian1,fen_bian2:
std_logic_vector(3downto0);
begin
process(clk,rest)
begin
ifrest='0'then
fen_bian1<="0000";
fen_bian2<="0000";
elsifclk'eventandclk='1'then
iffen_bian1="1001"then
fen_bian1<="0000";
iffen_bian2="0101"then
fen_bian2<="0000";
else
fen_bian2<=fen_bian2+1;
endif;
else
fen_bian1<=fen_bian1+1;
endif;
iffen_bian1="1001"andfen_bian2="0101"then
fen_out<='1';
else
fen_out<='0';
endif;
endif;
endprocess;
fen_diwei<=fen_bian1;
fen_gaowei<=fen_bian2;
endtwo;
分的仿真波形如图3-2
图3-2分的仿真波形
4、时计数器模块
图4-1时计数器实体图
libraryieee;--时计数器24进制
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entityshiis
port(clk,rest:
instd_logic;
shi_diwei,shi_gaowei:
outstd_logic_vector(3downto0));
endshi;
architecturethreeofshiis
signalshi_bian1,shi_bian2:
std_logic_vector(3downto0);
begin
process(clk,rest)
begin
ifrest='0'then
shi_bian1<="0000";
shi_bian2<="0000";
elsifclk'eventandclk='1'then
ifshi_bian1="0011"andshi_bian2="0010"then--时位为23时清零
shi_bian1<="0000";
shi_bian2<="0000";
else
ifshi_bian1="0011"then--时的低位为3时清零
shi_bian1<="0000";
ifshi_bian2="0010"then--时的高位为2时清零
shi_bian2<="0000";
else
shi_bian2<=shi_bian2+1;
endif;
else
shi_bian1<=shi_bian1+1;
endif;
endif;
endif;
endprocess;
shi_diwei<=shi_bian1;--输出时低位
shi_gaowei<=shi_bian2;--输出时高位
endthree;
图4-2时的仿真波形
5、校准模块
libraryieee;
useieee.std_logic_1164.all;
entityjiaoshiIS
port
(lian_miaoout:
instd_logic;
fenjiaoshi:
instd_logic;--校分(预置分)按键
jiaoshi:
instd_logic;--连分频后的时钟
shijiaoshi:
instd_logic;--校时(预置时)按键
lian_fenout:
instd_logic;
fen:
outstd_logic;
shi:
outstd_logic);
endjiaoshi;
architectureoneofjiaoshiis
signalabc:
std_logic;
signalabc1:
std_logic;
begin
abc<=fenjiaoshiANDjiaoshi;
abc1<=jiaoshiANDshijiaoshi;
fen<=abcORlian_miaoout;--校分(预置分输出)
shi<=lian_fenoutORabc1;--校时(预置时输出)
end;
图5-2校时分(预置时分)仿真波形图
6、顶层文件模块
图6-1顶层文件实体图
libraryieee;
useieee.std_logic_1164.all;
--useieee.std_logic_unsigned.all;
--useieee.std_logic_arith.all;
entitydingcengis
port(clk,rst,en,en1:
instd_logic;
shil,shih,fenl,fenh,miaol,miaoh:
outstd_logic_vector(3downto0));
enddingceng;
architecturefiveofdingcengis
componentfenpinis
port(clk:
instd_logic;--输入65536HZ
fenpinhou_out:
outstd_logic);--输出1HZ
endcomponent;
componentmiaois
port(clk,rest:
instd_logic;
miao_diwei,miao_gaowei:
outstd_logic_vector(3downto0);
miao_out:
outstd_logic);
endcomponent;
componentfenis
port(clk,rest:
instd_logic;
fen_diwei,fen_gaowei:
outstd_logic_vector(3downto0);
fen_out:
outstd_logic);
endcomponent;
componentshiis
port(clk,rest:
instd_logic;
--data:
instd_logic_vector(3downto0);
shi_diwei,shi_gaowei:
outstd_logic_vector(3downto0));
endcomponent;
componentjiaoshiis
port
(
lian_miaoout:
instd_logic;
fenjiaoshi:
instd_logic;
jiaoshi:
instd_logic;
shijiaoshi:
instd_logic;
lian_fenout:
instd_logic;
fen:
outstd_logic;
shi:
outstd_logic);
endcomponent;
signalclk1,c2,c3,c4,c5:
std_logic;
signala,b:
std_logic;
begin--例化语句
u0:
fenpinportmap(clk=>clk,fenpinhou_out=>clk1);
u1:
miaoportmap(rest=>rst,clk=>clk1,miao_diwei=>miaol,miao_gaowei=>miaoh,miao_out=>c2);
u2:
jiaoshiportmap(lian_miaoout=>c2,jiaoshi=>clk1,fenjiaoshi=>en,shijiaoshi=>en1,lian_fenout=>c3,fen=>c4,shi=>c5);
u3:
fenportmap(rest=>rst,clk=>c4,fen_diwei=>fenl,fen_gaowei=>fenh,fen_out=>c3);
u4:
shiportmap(rest=>rst,clk=>c5,shi_diwei=>shil,shi_gaowei=>shih);
endfive;
顶层文件的仿真总波形图如下图6-2
图6-2顶层文件的仿真总波形图
五、引脚锁定图
采用模式五,实验箱的时钟为65536HZ,键1为预置分,键2为rest,键4为预置时,具体引脚情况如下:
6、实验现象
把下载到实验箱后,按下键2,即可以看见秒开始走动,秒到59时分加1,分到59后时加1,如果按下键1,可以预置分,如果按下键4即可以预置小时,再次按下键1或者键4,即可以停止预置数,此实验现象说明电子钟成功。
致谢
谢谢努尔比亚老师平时上课的悉心讲解,让我对课本知识有所了解,更引起了我对它的兴趣,虽然在课程设计的过程艰难短暂,但从中学到很多的东西,得到了很多乐趣,让我知道已经学会了什么,让我更进一步的了解到EDA技术的应用,学到的东西在这次的课题设计中得到了充分应用。
姚老师严谨细致、一丝不苟的作风一直是我学习中的榜样,您循循善诱的教导和不拘一格的思路给予我无尽的启迪,在这次课题设计的论文中,知识固然得到了巩固和提高,但我相信在实践中的切身体会将会使我在以后的工作和学习中终身受用,而且还培养了我们自学能力、分析问题、解决问题的能力,更重要的是,培养了克服困难的勇气和信心,再次由衷的谢谢努尔比亚老师。
七、参考文献
(1)潘松、黄继业.EDA技术实用教程VHDL版第四版北京科学出版社,2010.6
(2)康华光《电子技术基础》(数字部分第五版北京高等教育出版社2010.11
徐晓玲,田亚菲,崔伟.基于EDA仿真的电子时钟系统设计[A].北京,兰州大学,2009.
课程论文
(2014-2015学年第一学期)
(EDA电子钟)
学号
20111301420
班级
电子11—2班
姓名
努尔阿米乃姆.
专业
电子信息科学与技术
课程名称
EDA技术
任课教师
努尔比亚老师
教师评语:
成绩评定:
分任课教师签名:
年月日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 电子钟 论文