第一范文网 - 专业文章范例文档资料分享平台

EDA设计数字时钟

来源:用户分享 时间:2025/5/23 11:57:35 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

多功能数字钟设计实验报告

模六十计数器VHDL语言程序如下: library ieee;

use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; ENTITY counter_60 IS

PORT(en:IN std_logic; ----en为使能端 clrn:IN std_logic; ----clrn为清零端 idn:IN std_logic; ---- idn为置数使能端 d:IN std_logic_vector(7 downto 0); ----d为预置数的输入端 clk:IN std_logic; ----clk为时钟端 rco:out std_logic; ----rco为进位输出端 qh:buffer std_logic_vector(3 downto 0); ql:buffer std_logic_vector(3 downto 0) );

END counter_60;

ARCHITECTURE behave OF counter_60 IS BEGIN

rco<='1' when(qh=\当计数到59时进位端输出1 PROCESS(clk,clrn) BEGIN

IF(clrn='0')THEN ----定义清零端为低电平有效 qh<=\ql<=\

ELSIF(clk'EVENT AND clk='0')THEN ----定义该计数器为时钟下降沿有效 if(idn='1')then ----定义置数端为高电平有效 qh<=d(7 downto 4); ql<=d(3 downto 0);

elsif(en='1')then ----定义使能端为高电平有效 if(ql=9)then ----模六十的具体说明 ql<=\if(qh=5)then qh<=\else qh<=qh+1; end if;

else ql<=ql+1; end if; END IF; END IF;

END PROCESS; END behave;

类似的,模24计数器也包含有使能端(高电平有效)、清零端(低电平有效)、置数使能端(高电平有效)、预置数端、时钟端(下降沿有效)、进位输出端。

模24计数器VHDL语言程序如下: library ieee;

4

多功能数字钟设计实验报告

use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; ENTITY counter_24 IS

PORT(en:IN std_logic; clrn:IN std_logic; idn:IN std_logic;

d:IN std_logic_vector(7 downto 0); clk:IN std_logic; rco:out std_logic;

qh:buffer std_logic_vector(3 downto 0); ql:buffer std_logic_vector(3 downto 0) );

END counter_24;

ARCHITECTURE behave OF counter_24 IS BEGIN

rco<='1' when(qh=\PROCESS(clk,clrn) BEGIN

IF(clrn='0')THEN qh<=\ql<=\

ELSIF(clk'EVENT AND clk='0')THEN if(idn='1')then

qh<=d(7 downto 4); ql<=d(3 downto 0); elsif(en='1')then

if(qh=\qh<=\ql<=\

elsif(ql<\ql<=ql+1; else

ql<=\qh<=qh+1; end if; END IF; END IF;

END PROCESS; END behave;

计时部分电路图如下:

5

多功能数字钟设计实验报告

d.仿真波形

计时部分仿真波形如下(FUNCTIONAL):

(2)脉冲发生电路

a.基本原理

实验箱提供了48M频率的时钟,所以我们需要将其分频,从而得到1Hz、2Hz、512Hz、1kHz等频率,分别用于计时、报时、校分等电路。 b.实现方式

本实验采用VHDL语言编程的方法实现分频器。在程序中,通过改变不同的count数实现不同的分频,计算公式如下:

f?48M2count

例如要得到1Hz,则count数需为24000000。 c.程序及电路图

分频器VHDL语言程序如下: LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; ENTITY fenpin3 IS

PORT(clk: IN STD_LOGIC; ----待分频时钟 hz:buffer STD_LOGIC; hz1:buffer STD_LOGIC; hz2:buffer STD_LOGIC;

khz:buffer STD_LOGIC; khz2:buffer STD_LOGIC;

6

多功能数字钟设计实验报告

hz3:buffer STD_LOGIC; hz4:buffer STD_LOGIC); END fenpin3;

ARCHITECTURE beh OF fenpin3 IS

SIGNAL count: integer range 0 to 24000000; SIGNAL countl: integer range 0 to 24000; SIGNAL count2: integer range 0 to 24000000; SIGNAL count3: integer range 0 to 24000000; SIGNAL count4: integer range 0 to 24000; SIGNAL count5: integer range 0 to 480000; SIGNAL count6: integer range 0 to 4; BEGIN

PROCESS(clk) BEGIN

IF (clk='1') THEN count<=count+1; countl<=countl+1; count2<=count2+1; count3<=count3+1; count4<=count4+1; count5<=count5+1; count6<=count6+1;

IF(count=23999999) Then count<=0;

hz<=NOT hz; END IF;

IF(countl=23999) Then countl<=0;

khz<=NOT khz; END IF;

IF(count2=11999999) Then count2<=0;

hz1<=NOT hz1; END IF;

IF(count3=46874) Then count3<=0;

hz2<=NOT hz2; END IF;

IF(count4=11999) Then count4<=0;

khz2<=NOT khz2; END IF;

IF(count5=479999) Then count5<=0;

----hz端口输出1Hz频率 ----khz端口输出1kHz频率 ----hz1端口输出2Hz频率 ----hz2端口输出512Hz频率 ----kh2端口输出2kHz频率 7

搜索更多关于: EDA设计数字时钟 的文档
EDA设计数字时钟.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c637ml7syko4m0xd0pdx7_2.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top