EDA技术数字时钟实验报告.docx

上传人:b****0 文档编号:12532152 上传时间:2023-04-20 格式:DOCX 页数:12 大小:78.86KB
下载 相关 举报
EDA技术数字时钟实验报告.docx_第1页
第1页 / 共12页
EDA技术数字时钟实验报告.docx_第2页
第2页 / 共12页
EDA技术数字时钟实验报告.docx_第3页
第3页 / 共12页
EDA技术数字时钟实验报告.docx_第4页
第4页 / 共12页
EDA技术数字时钟实验报告.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

EDA技术数字时钟实验报告.docx

《EDA技术数字时钟实验报告.docx》由会员分享,可在线阅读,更多相关《EDA技术数字时钟实验报告.docx(12页珍藏版)》请在冰豆网上搜索。

EDA技术数字时钟实验报告.docx

EDA技术数字时钟实验报告

JIUJIANGUNIVERSITY

EDA技术实验报告

 

实验名称:

数字时钟

院(系):

电子工程学院

班级:

B1111

学号:

52号

实验室:

实验楼307

专业:

电子信息工程技术

姓名:

高芬

日期:

2012年12月15日

实验目的

设计一个可以计时的数字时钟,其显示时间范围是00:

00:

00~23:

59:

59,且该时钟具有暂停计时、清零等功能。

实验器材

1、SOPC实验箱

2、计算机(装有QuartusII7.0软件)

实验预习

1、了解时钟设计原理和各主要模块的设计方法。

2、提前预习,编写好主模块的VHDL程序。

实验原理

 

一个完整的时钟应由4部分组成:

秒脉冲发生电路、计数部分、译码显示部分(和时钟调整部分)。

1、秒脉冲发生:

可以设计分频电路对系统时钟50MHz进行50000000分频从而得到稳定的1Hz基准信号。

2、计数部分:

应设计1个60进制秒计数器、1个60进制分计数器、1个24进制时计数器用于计时。

秒计数器应定义clk(时钟输入)、rst(复位)两个输入引脚,Q3~Q0(秒位)、Q7~Q4(十秒位)、Co(进位位)9个输出引脚。

分、时计数器类似。

3、译码显示部分:

在时钟信号的控制下轮流选择对十时、时、十分、分、十秒、秒输入信号进行译码输出至XQ7~XQ0,并通过DIG0~DIG5输出相应的选通信号选择数码管。

每位显示时间控制在1ms左右。

时钟信号可由分频电路引出。

源程序如下所示:

1.顶层文件(count_time.vhd)程序及波形图:

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

USEIEEE.STD_LOGIC_ARITH.ALL;

ENTITYcount_timeIS

PORT(clk,rst:

INSTD_LOGIC;

co:

OUTSTD_LOGIC;

dig1:

OUTSTD_LOGIC_VECTOR(5DOWNTO0);

seg1:

OUTSTD_LOGIC_VECTOR(7DOWNTO0));

ENDcount_time;

ARCHITECTUREoneOFcount_timeIS

COMPONENTfenpinIS

PORT(clk11,clk12,rst11,rst12:

INSTD_LOGIC;

cok1,cok2:

OUTSTD_LOGIC);

ENDCOMPONENT;

COMPONENTscan_ledIS

PORT(clk2:

INSTD_LOGIC;

doe:

INSTD_LOGIC_VECTOR(23DOWNTO0);

dig2:

OUTSTD_LOGIC_VECTOR(5DOWNTO0);

seg2:

OUTSTD_LOGIC_VECTOR(7DOWNTO0));

ENDCOMPONENT;

COMPONENTcountIS

PORT(clk3,rst2:

INSTD_LOGIC;

cox:

OUTSTD_LOGIC;

m:

OUTSTD_LOGIC_VECTOR(23DOWNTO0));

ENDCOMPONENT;

SIGNALa:

STD_LOGIC_VECTOR(23DOWNTO0);

SIGNALb:

STD_LOGIC;

SIGNALc:

STD_LOGIC;

BEGIN

u1:

fenpin

PORTMAP(clk11=>clk,clk12=>clk,rst11=>rst,rst12=>rst,cok1=>b,cok2=>c);

u2:

scan_led

PORTMAP(clk2=>c,doe=>a,dig2=>dig1,seg2=>seg1);

u3:

countPORTMAP(clk3=>b,rst2=>rst,cox=>co,m=>a);

ENDARCHITECTUREone;

2.分频部分(fenpin.vhd)程序及波形图:

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_Unsigned.ALL;

ENTITYfenpinIS

PORT(clk11,clk12,rst11,rst12:

INSTD_LOGIC;

cok1,cok2:

OUTSTD_LOGIC);

END;

ARCHITECTUREoneOFfenpinIS

signalq1:

INTEGERRANGE49999999DOWNTO0;

signalq2:

INTEGERRANGE99999DOWNTO0;

signalc1,c2:

STD_LOGIC;

BEGIN

PROCESS(clk11,rst11,q1,c1)

BEGIN

IFrst11='1'THENq1<=0;

ELSIFclk11'EVENTANDclk11='1'THEN

IFq1<49999999THENq1<=q1+1;c1<='0';

ELSEq1<=0;c1<=NOTc1;

ENDIF;

ENDIF;

ENDPROCESS;

cok1<=c1;

PROCESS(clk12,rst12,q2,c2)

BEGIN

IFrst12='1'THENq2<=0;

ELSIFclk12'EVENTANDclk12='1'THEN

IFq2<99999THENq2<=q2+1;c2<='0';

ELSEq2<=0;c2<=notc2;

ENDIF;

ENDIF;

ENDPROCESS;

cok2<=c2;

END;

3.计数部分(count.vhd)程序及波形图:

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

USEIEEE.STD_LOGIC_ARITH.ALL;

ENTITYcountIS

PORT(clk3,rst2:

INSTD_LOGIC;

cox:

OUTSTD_LOGIC;

m:

OUTSTD_LOGIC_VECTOR(23DOWNTO0));

ENDcount;

ARCHITECTUREoneOFcountIS

SIGNALq1,q2,q3,q4,q5,q6:

STD_LOGIC_VECTOR(3DOWNTO0):

="0000";

SIGNALcq1,co1,cq2,co2,cq3,co3:

STD_LOGIC;

BEGIN

PROCESS(clk3,rst2)

BEGIN

IFrst2='1'THENq1<="0000";cq1<='0';

ELSIFclk3'EVENTANDclk3='1'THEN

IFq1<9THENq1<=q1+1;cq1<='0';

ELSEq1<="0000";cq1<='1';

ENDIF;

ENDIF;

ENDPROCESS;

PROCESS(cq1,rst2)

begin

IFrst2='1'THENq2<="0000";co1<='0';

ELSIFcq1'EVENTANDcq1='1'THEN

IFq2<5THENq2<=q2+1;co1<='0';

ELSEq2<="0000";co1<='1';

ENDIF;

ENDIF;

ENDPROCESS;

PROCESS(co1,rst2)

BEGIN

IFrst2='1'THENq3<="0000";cq2<='0';

ELSIFco1'EVENTANDco1='1'THEN

IFq3<9THENq3<=q3+1;cq2<='0';

ELSEq3<="0000";cq2<='1';

ENDIF;

ENDIF;

ENDPROCESS;

PROCESS(cq2,rst2)

begin

IFrst2='1'THENq4<="0000";co2<='0';

ELSIFcq2'EVENTANDcq2='1'THEN

IFq4<5THENq4<=q4+1;co2<='0';

ELSEq4<="0000";co2<='1';

ENDIF;

ENDIF;

ENDPROCESS;

PROCESS(co2,rst2)

BEGIN

IFrst2='1'THENq5<="0000";cq3<='0';

ELSIFco2'EVENTANDco2='1'THEN

IFq6=2THEN

IFq5<3THENq5<=q5+1;cq3<='0';

ELSEq5<="0000";cq3<='1';

ENDIF;

ELSE

IFq5<9THENq5<=q5+1;cq3<='0';

ELSEq5<="0000";cq3<='1';

ENDIF;

ENDIF;

ENDIF;

endprocess;

PROCESS(cq3,rst2)

BEGIN

IFrst2='1'THENq6<="0000";co3<='0';

ELSIFcq3'eventandcq3='1'THEN

IFq6<2THENq6<=q6+1;co3<='0';

ELSEq6<="0000";co3<='1';

ENDIF;

ENDIF;

ENDPROCESS;

m<=q6&q5&q4&q3&q2&q1;

cox<=NOT(cq1XORco1XORcq2XORco2XORcq3XORco3);

ENDARCHITECTURE;

4.显示部分(scan_led.vhd)程序及波形图:

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

USEIEEE.STD_LOGIC_ARITH.ALL;

ENTITYscan_ledIS

PORT(clk2:

INSTD_LOGIC;

doe:

INSTD_LOGIC_VECTOR(23DOWNTO0);

dig2:

OUTSTD_LOGIC_VECTOR(5DOWNTO0);

seg2:

OUTSTD_LOGIC_VECTOR(7DOWNTO0));

ENDscan_led;

ARCHITECTUREexampleOFscan_ledIS

SIGNALa:

STD_LOGIC_VECTOR(2DOWNTO0):

="000";

SIGNALb:

STD_LOGIC_VECTOR(3DOWNTO0);

BEGIN

PROCESS(clk2)

BEGIN

IFclk2'eventandclk2='1'THEN

IFa="101"THENa<="000";ELSEa<=a+1;

ENDIF;

ENDIF;

ENDPROCESS;

PROCESS(a)

BEGIN

CASEaIS

WHEN"101"=>b<=doe(3DOWNTO0);dig2<="111110";

WHEN"100"=>b<=doe(7DOWNTO4);dig2<="111101";

WHEN"011"=>b<=doe(11DOWNTO8);dig2<="111011";

WHEN"010"=>b<=doe(15DOWNTO12);dig2<="110111";

WHEN"001"=>b<=doe(19DOWNTO16);dig2<="101111";

WHEN"000"=>b<=doe(23DOWNTO20);dig2<="011111";

WHENOTHERS=>NULL;

ENDCASE;

ENDPROCESS;

PROCESS(b)

BEGIN

CASEbIS

WHEN"0000"=>seg2<="11000000";

WHEN"0001"=>seg2<="11111001";

WHEN"0010"=>seg2<="10100100";

WHEN"0011"=>seg2<="10110000";

WHEN"0100"=>seg2<="10011001";

WHEN"0101"=>seg2<="10010010";

WHEN"0110"=>seg2<="10000010";

WHEN"0111"=>seg2<="11111000";

WHEN"1000"=>seg2<="10000000";

WHEN"1001"=>seg2<="10010000";

WHENOTHERS=>seg2<="11111111";

ENDCASE;

ENDPROCESS;

ENDexample:

顶层文件如图所示:

 

 

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

当前位置:首页 > PPT模板 > 其它模板

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

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