EDA课程设计 数字秒表设计

发布 2022-09-30 21:34:28 阅读 3894

电子课程设计。

数字秒表的设计。

数字秒表的设计。

一、设计任务与要求。

1、数字秒表的计时范围是0秒~59分59.99秒,显示的最长时间为59分59秒。

2、数字秒表的计时精度是10ms。

3、复位开关可以在任何情况下使用,即便在计时过程中,只要按一下复位开关,计时器就清零,并做好下次计时的准备。

4、具有启/停开关,即按一下启/停开关,启动计时器开始计时,再按一下启/停开关则停止计时。

二、总体框图。

由频率信号输出端输出频率为100hz的时钟信号,输入到微妙模块的时钟端clk,微妙模块为100进制的计数器,产生的进位信号co输入到下一级秒模块的。

时钟端,以此类推,直到分模块计数到59进60时,产生的进位信号不输出,计数清零。将微妙、秒、分产生的计数通过置数/位选再通过显示模块实时显示。

设计方案:利用一块芯片完成除时钟源,按键和显示器之外的所有数字电路功能。所有数字逻辑功能都在cpld器件上用vhdl语言实现。

这样设计具有体积小,设计周期短,调试方便,故障率地和修改升级容易等特点,本设计采用自顶向下,混合输入方式(原理图输入——顶层文件链接和vhdl语言输入——各模块程序设计)实现数字秒表的设计,**和调试。

三、功能模块。

1. 微秒模块。

采用vhdl语言输入方式,以时钟clk,清零信号clr以及暂停信号stop为进程敏感变量,程序如下:

library ieee;

use use

entity minsecondb is

port(clk,clrm,stop:in std_logic;--时钟/清零信号。

secm1,secm0:out std_logic_vector(3 downto 0);-秒高位/低位。

co:out std_logic);-输出/进位信号。

end minsecondb;

architecture sec of minsecondb is

signal clk1,dout2:std_logic;

beginprocess(clk,clrm)

variable cnt1,cnt0:std_logic_vector(3 downto 0);-计数。

variable count2 :integer range 0 to 10 begin

if clk'event and clk='1'then

if count2>=0 and count2<10 then

count2:=count2+1;

else count2:=0;

dout2<= not dout2;

end if;

end if;

if clrm='1' then---当clr为1时,高低位均为0

cnt1:="0000";

cnt0:="0000";

elsif clk'event and clk='1' then

if stop='1' then

cnt0:=cnt0;

cnt1:=cnt1;

end if;

if cnt1="1001" and cnt0="1000" ;

then---当记数为98(实际是经过59个记时脉冲)

co<='1';-进位。

cnt0:="1001";-低位为9

elsif cnt0<"1001" then---小于9时。

cnt0:=cnt0+1;--计数。

-elsif cnt0="1001" then

-clk1<=not clk1;

elsecnt0:="0000";

if cnt1<"1001" then---高位小于9时。

cnt1:=cnt1+1;

elsecnt1:="0000";

co<='0';

end if;

end if;

end if;

secm1<=cnt1;

secm0<=cnt0;

end process;

end sec;

程序生成器件如图:

微妙模块生成的器件可以实现带有100进制进位和清零功能,暂停等功能,minsecondb输入为100hz脉冲和低电平的清零信号clr与暂停信号stop,输出微妙个位、十位及进位信号co。

2、秒模块。

library ieee;

use use

entity second is

port(clk,clr:in std_logic;--时钟/清零信号。

sec1,sec0:out std_logic_vector(3 downto 0);-秒高位/低位。

co:out std_logic);-输出/进位信号。

end second;

architecture sec of second is

beginprocess(clk,clr)

variable cnt1,cnt0:std_logic_vector(3 downto 0);-计数。

beginif clr='1' then---当ckr为1时,高低位均为0

cnt1:="0000";

cnt0:="0000";

elsif clk'event and clk='1' then

if cnt1="0101" and cnt0="1000" then---当记数为58(实际是经过59个记时脉冲)

co<='1';-进位。

cnt0:="1001";-低位为9

elsif cnt0<"1001" then---小于9时。

cnt0:=cnt0+1;--计数。

elsecnt0:="0000";

if cnt1<"0101" then---高位小于5时。

cnt1:=cnt1+1;

elsecnt1:="0000";

co<='0';

end if;

end if;

end if;

sec1<=cnt1;

sec0<=cnt0;

end process;

end sec;

程序生成器件如图:

此器件实现60进制带有进位功能和清零功能的秒计数模块second,输入为微妙模块的进位信号和低电平有效的清零信号clr,输出秒个位、十位及进位信号co。

3、分模块。

library ieee;

use use

entity minute is

port(clk,en:in std_logic;

min1,min0:out std_logic_vector(3 downto 0);

co:out std_logic);

process(clk)

variable cnt1,cnt0:std_logic_vector(3 downto 0);

beginif clk'event and clk='1' then

if en='1' then

if cnt1="0101" and cnt0="1000" then

co<='1';

cnt0:="1001";

elsif cnt0<"1001" then

cnt0:=cnt0+1;

elsecnt0:="0000";

end minute;

architecture min of minute is

beginif cnt1<"0101" then

cnt1:=cnt1+1;

elsecnt1:="0000";

co<='0';

end if;

end if;

end if;

end if;

min1<=cnt1;

min0<=cnt0;

end process;

end min;

程序生成器件如图:

此器件实现进制带有进位和置数功能的分计数模块minute,输入为妙进位信号和高电平有效的使能信号en,输出分个位、十位及进位信号co。

4、动态扫描模块。

library ieee;

use use

use entity seltime is

port(clk:in std_logic;--扫描时钟。

secm1,secm0,sec1,sec0,min1,min0,h1,h0:in std_logic_vector(3 downto 0);-分别为秒个位/时位;分个位/

daout:out std_logic_vector(3 downto 0输出。

sel:out std_logic_vector(2 downto 0));位选信号。

end seltime;

architecture fun of seltime is

signal count:std_logic_vector(2 downto 0);-计数信号。

beginsel<=count;

process(clk)

beginif(clk'event and clk='1') then

if(count>="111") then

count<="000";

elsecount<=count+1;

end if;

end if;

case count is

when"111"=>daout<= secm0;

when"110"=>daout<= secm1;

EDA课程设计数字秒表

课程设计。题目数字秒表设计 院系信息工程学院 班级 姓名 指导教师。系统设计要求。课程设计。第1章 系统设计要求3 第2章 实验目的3 第3章 实验原理3 第4章 系统设计方案3 第5章 主要vhdl源程序4 1 十进制计数器的vhdl源程序4 2 六进制计数器的vhdl源程序5 3 蜂鸣器的vhd...

EDA课程设计数字秒表

可编程器件及应用课程设计报告 题目数字秒表 学院信电工程学院 专业电子信息科学与技术 班级。姓名。学号。指导教师。课程设计任务书 3 一 系统组成模块连图 4 二 模块器件及其程序 4 1 分频器4 2 十进制计数器 5 3 六进制计数器 6 4 动态扫描 7 5 译码显示管 8 三 系统 9 1 ...

EDA课程设计数字秒表

电子课程设计。数字秒表的设计。学院 电子信息工程学院 专业班级 通信111502 姓名 马淑慧 学号 201115030218 指导教师 王海东 2013年12月。目录。1.设计任务及要求1 二。总体框图1 三。选择器件1 四。功能模块2 4.1 分频模块2 4.2 0.01秒模块3 4.3 秒模块...