EDA电子钟论文1.docx

上传人:b****6 文档编号:7578259 上传时间:2023-01-25 格式:DOCX 页数:15 大小:124.93KB
下载 相关 举报
EDA电子钟论文1.docx_第1页
第1页 / 共15页
EDA电子钟论文1.docx_第2页
第2页 / 共15页
EDA电子钟论文1.docx_第3页
第3页 / 共15页
EDA电子钟论文1.docx_第4页
第4页 / 共15页
EDA电子钟论文1.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

EDA电子钟论文1.docx

《EDA电子钟论文1.docx》由会员分享,可在线阅读,更多相关《EDA电子钟论文1.docx(15页珍藏版)》请在冰豆网上搜索。

EDA电子钟论文1.docx

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技术

任课教师

努尔比亚老师

教师评语:

成绩评定:

分任课教师签名:

年月日

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

当前位置:首页 > 经管营销 > 经济市场

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

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