数字逻辑课程设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字逻辑
课程设计报告
—多功能数字钟的设计与实现
姓名:
专业班级:通信1002
学号:31006010
指导老师:曾宇
设计日期:2012.06.20~2012.06.24
一、设计目的
1、学会应用数字系统设计方法进行电路设计;
2、学习使用QuartusII 9.0, 进一步提高软件的开发应用能力,增强自己的动手实践能力。
3、培养学生书写综合实验报告的能力。
二、设计任务及要求
实现多功能数字钟的设计,主要有以下功能:
1、记时、记分、记秒
2、校时、校分、秒清0
3、整点报时
4、时间正常显示
5、闹时功能(选做)
三、设计思路
3.1 计时模块
3.1.1 设计原理
计时模块如图3.1.1所示,其中计时用60进制计数器,计分和计秒用24进制计数器。
图3.1.1 计时间模块
计时间过程:
计秒:1HZ计数脉冲,0~59循环计数,计数至59时产生进位信号;
计分:以秒计数器进位信号作为分计数脉冲,0~59循环计数,59时产生进位;计时:以分计数器进位信号作为时计数脉冲,0~23循环计数,23时清0。
计数器的设计:
3.1.2 设计程序
编程分别设计24、60进制计数器,计数状态以BCD码形式输出。
24进制计数器源程序:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity FEN24 is
port(en,clk:in std_logic; ----高电平有效的使能信号/输入时钟 co:out std_logic;
h1,h0:out std_logic_vector(3 downto 0)); ----时高位/低位
end FEN24;
architecture behave of FEN24 is
begin
process(clk)
variable cnt1,cnt0:std_logic_vector(3 downto 0); ----记数
begin
if(en='0')then ---“使能”为0
cnt0:="0010";
cnt1:="0001";
elsif clk'event and clk='1'then ---上升沿触发
if cnt1="0010"and cnt0="0011"then
cnt0:="0000"; ----高位/低位同时为0时 cnt1:="0000";
co<='1';
else
co<='0';
if cnt0="1001"then
cnt0:="0000";
cnt1:=cnt1+1;
else
cnt0:=cnt0+1; -----高位记数累加 end if;
end if;
end if;
h1<=cnt1;
h0<=cnt0;
end process;
end behave;
60进制计数器源程序:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity FEN60 is
port(en,clk:in std_logic; ---高电平有效的使能信号/输入时钟
co:out std_logic; ---输出/进位信号
s1,s0:out std_logic_vector(3 downto 0));
end FEN60;
architecture behave of FEN60 is
begin
process(clk,en)
variable cnt1,cnt0:std_logic_vector(3 downto 0); ---计数
begin
if en='0'then ---“使能”为0 cnt1:="0000";
cnt0:="0000";
elsif clk'event and clk='1'then
if cnt0="1001"then
cnt0:="0000";
if cnt1="0101"then ---当计数为58(实际是经过59个计时脉冲)
cnt1:="0000";
co<='1'; ---进位
else
cnt1:=cnt1+1;
co<='0';
end if;
else
cnt0:=cnt0+1;
end if;
end if;
s1<=cnt1;
s0<=cnt0;
end process;
end behave;
3.1.3 设计仿真及生成器件
24进制计数器仿真波形截图如图3.1.2所示,其中计到23时,即高位h1
为2,低位h0为3时产生进位。
图3.1.2 24进制计数器仿真波形
60进制计数器仿真波形截图如图3.1.3所示,其中计到59时,即高位s1
为5,低位s0为9时产生进位。