文档详情

基于FPGA数字钟研发设计.doc

发布:2018-07-08约8.24千字共10页下载文档
文本预览下载声明
南昌大学实验报告 学生姓名: 学 号: 专业班级: 实验类型:□验证□综合设计□创新 实验日期: 实验成绩: 实验 数字钟设计 一实验目的 (1) 二实验要求(1) (2)仿真波形; (3)测试; 三 由图可以清晰的看到数字钟系统设计中各功能模块间连接关系。系统时钟1KHZ经过分频后产生1秒的时钟信号,1秒的时钟信号作为秒计数模块的输入信号,秒计数模块产生的进位信号作为分计数模块的输入信号,分计数模块的进位信号作为时计数模块的输入信号。秒计数模块、分计数模块、时计数模块的计数输出分别送到显示模块。由于设计中要使用按键进行调节时间,而按键的动作过程中存在产生得脉冲的不稳定问题,所以就牵扯到按键去抖动的问题,对此系统中设置了按键去抖动模块,按键去抖动模块产生稳定的脉冲信号送入按键控制模块,按键控制模块根据按键的动作对秒、分、时进行调节。 原理图如下: 四实验程序LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY fenpin IS PORT(CLK:IN STD_LOGIC; CLK1:OUT STD_LOGIC); END fenpin; ARCHITECTURE behav OF fenpin IS SIGNAL X,CNT:STD_LOGIC_VECTOR(11 DOWNTO 0); BEGIN P1:PROCESS(CLK) BEGIN X=001111101000;--1000分频 IF CLKEVENT AND CLK = 1 THEN CNT=CNT+1; IF CNT=X-1 THEN CLK1=1;CNT=000000000000; ELSE CLK1=0; END IF; END IF; END PROCESS; END behav; 2、60进制计数器(秒、分计数器)模块 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY count60 IS PORT(EN,RST,CLK1: IN STD_LOGIC; Q: OUT STD_LOGIC_VECTOR(7 DOWNTO 0); COUT: OUT STD_LOGIC); END count60; ARCHITECTURE behav OF count60 IS SIGNAL J : STD_LOGIC_VECTOR(7 DOWNTO 0); --8位BCD计数值 SIGNAL GW,SW : STD_LOGIC_VECTOR(3 DOWNTO 0);--计数器的个,十 BEGIN P2:PROCESS(EN,RST,CLK1) BEGIN GW=J(3 downto 0); SW=J(7 downto 4); IF RST=1 THEN J=(others=0); ELSIF CLK1EVENT AND CLK1=1 THEN IF EN=1 THEN IF THEN IF GW=9 THEN --个位为9时加7调整 J=J+7; ELSE J=J+1; END IF; ELSE J=(others=0); END IF; END IF; IF J THEN COUT =1; ELSE COUT=0; END IF; END IF; Q=J; END PROCESS; END behav; 3、24进制计数器模块 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY count24 IS PORT(EN,RST,CLK1: IN STD_LOGIC; Q:
显示全部
相似文档