当前位置:文档之家› FPGA数字钟报告大作业

FPGA数字钟报告大作业

FPGA数字钟报告大作业
FPGA数字钟报告大作业

FPGA课程设计实验报告

题目:基于FPGA 的数字钟设计学院:电子信息学院

专业:电子与通讯工程

学号:109030007

姓名:朱振军

基于FPGA的数字钟设计

一、功能介绍

1.在七段数码管上具有时--分--秒的依次显示。

2.时、分、秒的个位记满十向高位进一,分、秒的十位记满五向高位进一,小时按24进制计数,分、秒按60进制计数。

3.整点报时,当计数到整点时扬声器发出响声。

4.时间设置:可以通过按键手动调节秒和分的数值。此功能中可通过按键实现整体清零和暂停的功能。

5.LED灯循环显示:在时钟正常计数下,LED灯被依次循环点亮。

待增加功能:

1.实现手动调节闹铃时间,在制定时间使扬声器发声。

2.实现微妙的快速计数功能,可实现暂停、保存当前时间、继续计数的功能。

二、设计方案

本文数字钟的设计采用了自顶向下分模块的设计。底层是实现各功能的模块,各模块由vhdl语言编程实现:顶层采用原理图形式调用。其中底层模块包括秒、分、时三个计数器模块、按键去抖动模块、按键控制模块、时钟分频模块、数码管显示模块共7个模块。

设计框图如下:

图一数字钟系统设计框图

由图1可以清晰的看到数字钟系统设计中各功能模块间连接关系。系统时钟50MHZ经过分频后产生1秒的时钟信号,1秒的时钟信号作为秒计数模块的输入信号,秒计数模块产生的进位信号作为分计数模块的输入信号,分计数模块的进位信号作为时计数模块的输入信号。秒计数模块、分计数模块、时计数模块的计数输出分别送到显示模块。由于设计中要使用按键进行调节时间,而按键的动作过程中存在产生得脉冲的不稳定问题,所以就牵扯到按键去抖动的问题,对此系统中设置了按键去抖动模块,按键去抖动模块产生稳定的脉冲信号送入按键控制模块,按键控制模块根据按键的动作对秒、分、时进行调节。

图二数字钟的顶层设计原理图

三、设计过程

由数字钟的顶层设计原理图可知:系统的外部输入即为系统的时钟信号CLK =50MHZ,系统的外部输出有蜂鸣器信号buzzer,LED显示信号LED[3..1]和shan(与按键去抖动模块的o3相连),数码管显示信号xianshi[7..0],数码管位选信号xuanze[7..0]。

下面将对内部功能模块进行详细说明;

1.分频模块pinlv

对系统的时钟50MHZ进行分频,设置不同长度的计数值,当系统时钟clk有变化时计数器开始计数,当计数到某个值时输出一个信号,计数值不同输出信号的周期也就不同,从而实现了对系统时钟进行不同的分频,产生不同频率的信号。

由VHDL语言生成的模块图和程序说明如下:

图三分频模块

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity pinlv is

port( clk:in std_logic;--系统时钟输入端口

clk2ms:out std_logic;

clk500ms:out std_logic;

clk1s:out std_logic);--各频率信号的输出端口

end;

architecture beh of pinlv is

begin

p1:process(clk) –进程p1

variable count1:integer range 0 to 49999999; begin

if(clk'event and clk='1')then count1:=count1+1;--在clk 的上升沿计数

if count1<=24999999 then clk1s<='0';

elsif count1<=49999999 then clk1s<='1'; else count1:=0;

--产生周期为1s的时钟信号

end if;

end if;

end process p1;--结束进程p1

p2:process(clk)—进程p2

variable count2:integer range 0 to 99999; begin

if(clk'event and clk='1')then count2:=count2+1;--在clk上升沿计数

if count2<=49999 then clk2ms<='0';

elsif count2<=99999 then clk2ms<='1';

--产生周期为2ms的扫描信号

end if;

end if;

end process p2;--结束进程p2

p3:process(clk)—进程p3

variable count3:integer range 0 to 24999999;

begin

if(clk'event and clk='1')then count3:=count3+1;在clk上升沿计数

if count3<=12499999 then

clk500ms<='0';

elsif count3<=24999999 then clk500ms<='1';

else count3:=0;

产生周期为500ms的时钟信号end if;

end if;

end process p3; end beh;

2.按键去抖动模块qudou

本设计用到FPGA开发板上的四个按键,由于按键有反应时间、抖动的问题,可能当按键被按一次时而系统感应到几次,造成误差。所以应该进行按键消抖的处理,让每按一次键系统只感应到一次按键。可以采用软件延时,触发反相器等方式进行消除抖动,本设计中采用软件延时的方式。

由VHDL语言生成的模块图和程序说明如下:

图四按键去抖动模块

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all; entity qudou is

port(clk,k1,k2,k3,k4:in std_logic;

o1,o2,o3,o4:out

std_logic);--设置按键输入信号输出端口end;

architecture beh of qudou is

begin

process(clk,k1,k2,k3,k4)

variable cant1:integer;

variable cant2:integer;

variable cant3:integer;

variable cant4:integer;

begin

if clk'event and clk='1' then

if k1='1' then cant1:=0;

end if;--设置计数初值

if k2='1' then cant2:=0;

end if; --设置计数初值

if k3='1' then cant3:=0;

end if;

if k4='1' then cant4:=0;

end if; --设置计数初值

if cant1>2499999 then o1<='0';

else o1<='1';--延时0.5s

end if;

if cant2>2499999 then o2<='0';

else o2<='1'; --延时0.5s

end if;

if cant3>2499999 then o3<='0'; else o3<='1'; --延时0.5s

end if;

if cant4>2499999 then o4<='0'; else o4<='1'; --延时0.5s

end if;

cant1:=cant1+1; --加一计数

cant2:=cant2+1; --加一计数

cant3:=cant3+1; --加一计数

cant4:=cant4+1; --加一计数

end if;

end process;

end beh;

--设置计数初值

在quartus II 开发环境中进行仿真验证

图五 按键去抖动仿真效果图

由于0.5s 太长,在本仿真中设置了很小的一个量10clk ,从图中可以看出基本实现了按键去抖动的效果。无论按键怎么抖动,输出总是保持稳态10clk ,当下一个触发来了以后,就可以触发单稳态。

3,按键控制模块self1

本设计中使用了两个按键进行对时钟的暂停和调秒操作,当ok2按下时时钟暂停,再按ok3则进行秒个位的加一计数,每按一次进行加一处理。当调节好时间后,在按ok2键重新开始计数。

由VHDL 语言生成的模块图和程序说明如下:

图六 按键控制模块

library ieee;

use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity self1 is port( c:in std_logic; ok2:in std_logic; ok3:in std_logic; ck:out std_logic); end ;--设置端口

architecture bea of self1 is signal m:std_logic; signal t:std_logic;

begin

p1:process(ok2,ok3,c)—ok2和ok3触发进程 begin

if ok2'event and ok2='0' then m<=not m;--由ok2 的动作产生m 的电平信号 end if;

if m='1' then ck<=not(ok3);--把按键ok3的脉冲信号给输出

else ck<=c;--否则把正常计数时钟给输出

end if;

end process p1;--结束进程 end bea;

4,秒、分六十进制模块cantsixty

本设中秒、分的六十进制是由个位的十进制和十位的六进制进行组合实现的。当个位记到9时自动向高位进一,同时个位自动清零。当十位记到5并且个位记到9时,

自动产生一

个进位脉冲,同时个位和十位分别从零开始重新计数。

由VHDL 语言生成的模块图和程序说明如下:

图七 六十进制模块

library ieee;

use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity cantsixty is port(clk:in std_logic; reset:in std_logic;

out1:out std_logic_vector(3 downto 0);

out2:out std_logic_vector(3 downto 0);

c:out std_logic); end;

architecture beh of cantsixty is signal ss1,ss2:std_logic_vector( 3 downto 0); begin

p1:process(clk,reset) begin

if(reset='0')then

ss1<="0000";ss2<="0000";

elsif(clk'event and clk='1')then if ss1="1001" and ss2="0101" then c<='1';--当计数到59时产生进位信号 else c<='0';--否则不产生 end if;

if ss1="1001" then ss1<="0000"; if ss2="0101" then ss2<="0000"; else ss2<=ss2+1; end if;

else ss1<=ss1+1;--计数过程 end if; end if;

end process p1;--结束进程

out1<=ss1;out2<=ss2;--把信号送输出 end beh;

在quartus II 开发环境中进行仿真验证:

图八 六十进制波形仿真图

由上图可见,当1s 的时钟信号加入时,个位out1从0到9不断循环,而且当个位out1记到9时产生一个进位信号 使十位out2加一,以此类推就实现了六十进制计数。基本达到了正确计数的理想效果。

5.时计数模块

hourtwenty

时计数模块是二十四进制相对复杂一点,因为当十位0或着1时个位需要记到9并产生进位信号,当十位是2时,个位记到3时,就全部从零开始重新计数。即是在十位为不同值时个位两种计数过程。

由VHDL语言生成的模块图和程序说明如下:

图九二十四进制波形仿真图

在quartus II开发环境中进行仿真验证:

图十二十四进制波形仿真图

由上图看出十位为0或1时,个位记到9时,十位才进行加一计数,但当十位为2时,个位记到3时,十位变成了0,个位又从0重新开始计数,这样就实现了二十四进制的计数。从图形的显示波形可知,设计基本达到了正确计数的功能。

6.秒、分、时组合后的仿真验证

把设计的秒、分、时模块连接起来,再通过仿真验证,各模块间的进位是否正确

连接后的原理图如下

图十一秒、分、时组合后原理图

在quartus II开发环境中进行仿真验证:

图十二组合后波形仿真图

由于需要设置很长的仿真时间,才能完全观察到进位信号,本次仿真只截取了一小部分,观察不到分模块向时模块的进位。由仿真结果图可以看到,秒模块向分钟模块的正常进位,以及分模块的正常计数,所以各模块连接后的计数状态也符合设计的要求,基本实现了正常计数。

7 .数码管显示模块

本模块中包含数码管的段选和位选设计,Led灯循环设计,以及整点报时的设计。模块的输入信号有数码管扫描频率clk2ms,秒、分、时各模块的个位和十位输入,以及由分模块向时模块产生的进位脉冲信号。

由VHDL语言生成的模块图和程序说明如下:

图十三数码管显示原理图

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity qudong is

port(s1,s2,m1,m2,h1,h2:in std_logic_vector(3 downto 0);

clk2ms: in std_logic;

xiang:in std_logic;

led:out std_logic_vector(3 downto 1);

buzzer:out std_logic;

xianshi:out std_logic_vector(7 downto 0);

xuanze:out std_logic_vector( 7 downto 0));

end qudong;

architecture behav of qudong is

signal sel:std_logic_vector( 2 downto 0); signal A:std_logic_vector( 3 downto 0); signal t:std_logic_vector ( 11 downto 0); signal f:std_logic_vector(1 downto 0);

signal count1:std_logic_vector(1 downto 0); begin

p1:process(clk2ms)

begin

if clk2ms'event and clk2ms='1' then sel<=sel+1;t<=t+1;

if t="110010000000" then t<=(others=>'0'); end if;

end if;

f<=t(11)&t(10);

if f="01" then led(3)<='0';else led(3)<='1'; end if;

if f="10" then led(2)<='0';else led(2)<='1'; end if;

if f="11" then led(1)<='0'; else led(1)<='1'; end if;--led的循环显示设计

end process p1;

p2:process(sel,s1,s2,m1,m2,h1,h2)

begin

case sel is when "000" =>xuanze<="11111110"; A<=s1; --秒个位在数码管1上显示

when "001" =>xuanze<="11111101"; A<=s2; --秒十位在数码管2上显示

when "010" =>xuanze<="11111011"; A<="1010";--数码管3上显示横杠

when "011" =>xuanze<="11110111"; A<=m1; --分个位在数码管4上显示

when "100" =>xuanze<="11101111"; A<=m2; --分十位在数码管5上显示

when "101" =>xuanze<="11011111"; A<="1011";--数码管6上显示横杠

when "110" =>xuanze<="10111111"; A<=h1; --时个位在数码管7上显示

when "111" =>xuanze<="01111111"; A<=h2; --时十位在数码管8上显示

when others =>null;

end case;

end process p2;

p3:process(A)

begin

case A is

when "0000" => xianshi <="11000000";--显示0

when "0001" => xianshi <="11111001"; --显示1

when "0010" => xianshi <="10100100"; --显示2

when "0011" => xianshi <="10110000"; --显示3

when "0100" => xianshi <="10011001"; --显示4

when "0101" => xianshi <="10010010"; --显示5

when "0110" => xianshi <="10000010"; --显示6

when "0111" => xianshi <="11111000"; --显示7

when "1000" => xianshi <="10000000"; --显示8

when "1001" => xianshi <="10010000"; --显示9

when "1010" =>xianshi <="10111111"; --显示--

when "1011" =>xianshi <="10111111"; --显示--

when others =>null; --数码管的段选设计

end case;

end process p3;

P4:process(xiang)

begin

if xiang='1' then buzzer<='0'; --当进位信号xiang为1时就把低电平给buzzer让蜂鸣器响else buzzer<='1'; --否则把高电平给buzzer不给蜂鸣器触发信号

end if;

end process p4; --结束进程

end behav;

四、实验结果

将调试好的程序下载到实验板上进行验证,达到了设计的各项功能。时钟准确计数,各模块的进位也正确,当按下实验板上的key1键时系统复位清零,实验板上的key2键可实现系统的暂停和开始,在系统暂停的状态下,按key3键可实现调节秒计数,每按一次计数加一,key4键可实现调节分模块,每按一次计数加一,长按则一直加,当达到整点时,蜂鸣器发声。

五、实验小结与体会

这个实验带给我的体会很多也很深,我以前没有对数字钟进行系统的设计,这次独立的设计,我遇到了很多问题,也走了很多弯路,还好最后终于通过自己的努力看到了理想的结果。通过实验,我对EDA技术和FPGA技术有了更进一步的理解,掌握了FPGA的层次化设计电路的方法,掌握了用VHDL语言编写各个功能模块并通过波形确定电路设计是否正确。掌握了下载验到目标器件的过程。

实验中遇到的问题很多,有的是很基础的但我却不知道,例如数码管的扫描频率,刚开始时数码管不显示,我找了很多原因都没想到是扫描频率的问题,浪费了很多时间。还有分频的时候,看过很多分频的电路程序,但那些并不是都可以实现准确的分频,需要通过波形进行验证。还有计数器的设计,我用了很长时间才编写出来,现在看看,也没有那么难了。

总之,我很感谢这次实验可以给我这样的机会,这个实验给了我很对的收获,我相信这会对我以后的学习和工作都有帮助。

基于FPGA的数字钟设计

摘要 伴随着集成电路技术的发展, 电子设计自动化(EDA)技术逐渐成为数字电路设计的重要手段。基于FPGA的EDA技术的发展和应用领域的扩大与深入,使得EDA技术在电子信息,通信,自动控制,计算机等领域的重要性日益突出。 本设计给出了一种基于FPGA的多功能数字钟方法,采用EDA作为开发工具,VHDL语言和图形输入为硬件描述语言,QuartusII作为运行程序的平台,编写的程序经过调试运行,波形仿真验证,下载到EDA实验箱的FPGA芯片,实现了设计目标。 系统主芯片采用CycloneII系列EP2C35F672C8。采用自顶向下的设计思想,将系统分为五个模块:分频模块、计时模块、报时模块、显示模块、顶层模块。用VHDL语言实现各个功能模块, 图形输入法生成顶层模块. 最后用QuartusII 软件进行功能仿真, 验证数字钟设计的正确性。 测试结果表明本设计实现了一个多功能的数字钟功能,具有时、分、秒计时显示功能,以24小时循环计时;具有校正小时和分钟的功能;以及清零,整点报时功能。 关键词:EDA技术;FPGA;数字钟;VHDL语言;自顶向下

Abstract Accompanied by the development of integrated circuit technology, electro nic design automation (EDA) technology is becoming an important means of digital circuit design. FPGA EDA technology development and expansion of a pplication fields and in-depth, the importance of EDA technology in the field of electronic information, communication, automatic control, computer, etc. hav e become increasingly prominent. This design gives a FPGA-based multifunctional digital clock using ED A as a development tool, VHDL language and graphical input hardware descri ption language, the QuartusII as a platform for running the program, written procedures debugging and running, the waveform simulation downloaded to th e FPGA chip to achieve the design goals. The main system chip CycloneII series EP2C35F672C8. Adopted a topdw n design ideas, the system is divided into five modules: frequency module, ti ming module, timer module, display module, the top-level module. With VHD L various functional modules, graphical input method to generate the top-level module. Last QuartusII under simulation, to verify the correctness of the digi tal clock design. The test results show that the design of a multifunctional digital clock, with seconds time display, 24-hour cycle timing; has a school, cleared, and th e whole point timekeeping functions. Key words: EDA technology; FPGA; VHDL language; top-down; digital cloc k

数字钟设计报告——数字电路实验报告

数字钟设计实验报告 专业:通信工程 姓名:王婧 班级:111041B 学号:111041226

数字钟的设计 目录 一、前言 (3) 二、设计目的 (3) 三、设计任务 (3) 四、设计方案 (3) 五、数字钟电路设计原理 (4) (一)设计步骤 (4) (二)数字钟的构成 (4) (三)数字钟的工作原理 (5) 六、总结 (9) 1

一、前言 此次实验是第一次做EDA实验,在学习使用软硬件的过程中,自然遇到很多不懂的问题,在老师的指导和同学们的相互帮助下,我终于解决了实验过程遇到的很多难题,成功的完成了实验,实验结果和预期的结果也是一致的,在这次实验中,我学会了如何使用Quartus II软件,如何分层设计点路,如何对实验程序进行编译和仿真和对程序进行硬件测试。明白了一定要学会看开发板资料以清楚如何给程序的输入输出信号配置管脚。这次实验为我今后对 EDA的进一步学习奠定了更好的理论基础和应用基础。 通过本次实验对数电知识有了更深入的了解,将其运用到了实际中来,明白了学习电子技术基础的意义,也达到了其培养的目的。也明白了一个道理:成功就是在不断摸索中前进实现的,遇到问题我们不能灰心、烦躁,甚至放弃,而要静下心来仔细思考,分部检查,找出最终的原因进行改正,这样才会有进步,才会一步步向自己的目标靠近,才会取得自己所要追求的成功。 2

二、设计目的 1.掌握数字钟的设计方法。 2熟悉集成电路的使用方法。 3通过实训学会数字系统的设计方法; 4通过实训学习元器件的选择及集成电路手册查询方法; 5通过实训掌握电子电路调试及故障排除方法; 6熟悉数字实验箱的使用方法。 三、设计任务 设计一个可以显示星期、时、分、秒的数字钟。 要求: 1、24小时为一个计数周期; 2、具有整点报时功能; 3、定时闹铃(未完成) 四、设计方案 一个基本的数字钟电路主要由译码显示器、“时”,“分”,“秒”计数器和定时器组成。干电路系统由秒信号发生 3

数字钟设计报告——数字电路实验报告

. 数字钟设计实验报告 专业:通信工程 :王婧 班级:111041B 学号:111041226 .

数字钟的设计 目录 一、前言 (3) 二、设计目的 (3) 三、设计任务 (3) 四、设计方案 (3) 五、数字钟电路设计原理 (4) (一)设计步骤 (4) (二)数字钟的构成 (4) (三)数字钟的工作原理 (5) 六、总结 (9) 1

一、前言 此次实验是第一次做EDA实验,在学习使用软硬件的过程中,自然遇到很多不懂的问题,在老师的指导和同学们的相互帮助下,我终于解决了实验过程遇到的很多难题,成功的完成了实验,实验结果和预期的结果也是一致的,在这次实验中,我学会了如何使用Quartus II软件,如何分层设计点路,如何对实验程序进行编译和仿真和对程序进行硬件测试。明白了一定要学会看开发板资料以清楚如何给程序的输入输出信号配置管脚。这次实验为我今后对 EDA的进一步学习奠定了更好的理论基础和应用基础。 通过本次实验对数电知识有了更深入的了解,将其运用到了实际中来,明白了学习电子技术基础的意义,也达到了其培养的目的。也明白了一个道理:成功就是在不断摸索中前进实现的,遇到问题我们不能灰心、烦躁,甚至放弃,而要静下心来仔细思考,分部检查,找出最终的原因进行改正,这样才会有进步,才会一步步向自己的目标靠近,才会取得自己所要追求的成功。 2

二、设计目的 1.掌握数字钟的设计方法。 2熟悉集成电路的使用方法。 3通过实训学会数字系统的设计方法; 4通过实训学习元器件的选择及集成电路手册查询方法; 5通过实训掌握电子电路调试及故障排除方法; 6熟悉数字实验箱的使用方法。 三、设计任务 设计一个可以显示星期、时、分、秒的数字钟。 要求: 1、24小时为一个计数周期; 2、具有整点报时功能; 3、定时闹铃(未完成) 四、设计方案 一个基本的数字钟电路主要由译码显示器、“时”,“分”,“秒”计数器和定时器组成。干电路系统由秒信号发生器、“时、 3

基于FPGA的数字时钟的设计1

基于FPGA的数字时钟的设计课题: 基于FPGA的数字时钟的设计 学院: 电气信息工程学院 专业: 测量控制与仪器 班级 : 08测控(2)班 姓名 : 潘志东 学号 : 08314239 合作者姓名: 颜志林 2010 年12 月12 日

综述 近年来随着数字技术的迅速发展,各种中、大规模集成电路在数字系统、控制系统、信号处理等方面都得到了广泛的应用。这就迫切要求理工科大学生熟悉与掌握常用中、大规模集成电路功能及其在实际中的应用方法,除通过实验教学培养数字电路的基本实验方法、分析问题与故障检查方法以及双踪示波器等常用仪器使用方法等基本电路的基本实验技能外,还必须培养大学生工程设计与组织实验能力。 本次课程设计的目的在于培养学生对基本电路的应用与掌握,使学生在实验原理的指导下,初步具备基本电路的分析与设计能力,并掌握其应用方法;自行拟定实验步骤,检查与排除故障、分析与处理实验结果及撰写实验报告的能力。综合实验的设计目的就是培养学生初步掌握小型数字系统的设计能力,包括选择设计方案,进行电路设计、安装、调试等环节,运用所学知识进行工程设计、提高实验技能的实践。数字电子钟就是一种计时装置,它具有时、分、秒计时功能与显示时间功能;具有整点报时功能。 本次设计我查阅了大量的文献资料,学到了很多关于数字电路方面的知识,并且更加巩固与掌握了课堂上所学的课本知识,使自己对数字电子技术有了更进一步的认识与了解。

1、课题要求 1、1课程设计的性质与任务 本课程就是电子与信息类专业的专业的专业基础必修课——“数字电路”的配套实验课程。目的在于培养学生的理论联系实际,分析与解决问题的能力。通过本课程设计,使学生在理论设计、计算机仿真、指标调测、故障排除等方面得到进一步的训练,加强学生的实践能力。学生通过设计、仿真、调试、撰写设计报告等过程,培养学生的动手能力与严谨的工作作风。 1、2课程设计的基本技术要求 1)根据课题要求,复习巩固数字电路有关专业基础知识; 2)掌握数字电路的设计方法,特别就是熟悉模块化的设计思想; 3) 掌握QUARTUS-2软件的使用方法; 4) 熟练掌握EDA工具的使用,特别就是原理图输入,波形仿真,能对仿真波形进行分析; 5) 具备EDA技术基础,能够熟练使用VHDL语言进行编程,掌握层次化设计方法; 6) 掌握多功能数字钟的工作原理,学会不同进制计数器及时钟控制电路的设计方法; 7) 能根据设计要求对设计电路进行仿真与测试; 8) 掌握将所设计软件下载到FPGA芯片的下载步骤等等。 9) 将硬件与软件连接起来,调试电路的功能。 1、3课程设计的功能要求 基本功能:能进行正常的时、分、秒计时功能,分别由6个数码管显示24小时,60分钟,60秒钟的计数器显示。 附加功能:1)能利用硬件部分按键实现“校时”“校分”“清零”功能; 2)能利用蜂鸣器做整点报时:当计时到达59’59’’时开始报时, 鸣叫时间1秒钟; 3)定时闹铃:本设计中设置的就是在七点时进行闹钟功能,鸣叫 过程中,能够进行中断闹铃工作。 本人工作:负责软件的编程与波形的仿真分析。 2、方案设计与分析

数字通信系统设计实验报告

实验1:用 Verilog HDL 程序实现乘法器 1实验要求: (1) 编写乘法器的 Veirlog HDL 程序. (2) 编写配套的测试基准. (3) 通过 QuartusII 编译下载到目标 FPGA器件中进行验证 (4) 注意乘法逻辑电路的设计. 2 试验程序: Module multiplier(input rst,input clk,input [3:0]multiplicand, input [3:0]multiplier,input start_sig,output done_sig,output [7:0]result); reg [3:0]i; reg [7:0]r_result; reg r_done_sig; reg [7:0]intermediate; always @ ( posedge clk or negedge rst ) if( !rst ) begin i<=4'b0; r_result<=8'b0; end else if(start_sig) begin case(i) 0: begin intermediate<={4'b0,multiplicand}; r_result<=8'b0; i<=i+1; end 1,2,3,4: begin if(multiplier[i-1]) begin r_result<=r_result+intermediate; end intermediate<={intermediate[6:0],1'b0}; i<=i+1; end 5: begin r_done_sig<=1'b1;

i<=i+1; end 6: begin r_done_sig<=1'b0; i<=1'b0; end endcase end assign result=r_done_sig?r_result:8'bz; assign done_sig=r_done_sig; endmodule3 测试基准: `timescale 1 ps/ 1 ps module multiplier_simulation(); reg clk; reg rst; reg [3:0]multiplicand; reg [3:0]multiplier; reg start_sig; wire done_sig; wire [7:0]result; /***********************************/ initial begin rst = 0; #10; rst = 1; clk = 1; forever #10 clk = ~clk; end /***********************************/ multiplier U1 ( .clk(clk), .rst(rst), .multiplicand(multiplicand), .multiplier(multiplier), .result(result), .done_sig(done_sig), .start_sig(start_sig) ); reg [3:0]i; always @ ( posedge clk or negedge rst ) if( !rst )

数字钟实训报告

广州职业技术学院GUANGZHOU POLYTECHNIC 实训报告 主题:数字钟的设计与制作 系部:机电学院 专业:自动化 班级:自动化4 组员: 日期:2011年11月3日

一、设计目标 1.数字钟工作电压为5伏. 2.用4位的7段显示器显示小时、分、秒和月日,时间以24小时循环。 3. 用其中的一个开关可以调节显示器的时间及日期之间的切换。 4.另一个开关可以校对时间和日期。 二、设计方框图 显示时间,如果有中断,调节时间和闹钟 三、元器件介绍 1.AT89C2051:AT89C2051是一种带2K字节闪速可编程可擦除的8位只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造

技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL 的AT89C51是一种高效微控制器,而AT89C2051是它的一种精简版本。 四、设计原理 设计程序分为主程序,中断程序和各种功能程序。 主程序要完成系统的初始化,接受键值并根据键号实现不同的功

能,以及判断闹铃时间是否到,如果时间到,则启动响铃。 中断服务程序包括定时计数器0和定时计数器1的中断服务程序,定时计数器0的中断程序实现50ms定时,并每中断20次就修改当前的,分,秒值。外部中断0实现日期,时间的转化,当单片机复位之后显示的时间的时和分钟,按一下外部中断0按钮,转化显示的秒钟,在按一下显示的是日期的月份和日,在按一下的话显示的就是闹钟的当前的设定时间。而外部中断1实现的是调整时间,日期,秒钟,如果当前显示的是小时和分钟的话,那么现在外部中断1可以调整分钟;如果是月份的话那么就是可以调整日期的显示,如果当前显示的是秒的话,那么外部中断1就可以调整秒得变化。 五、电路安装与调试过程 因为是用protues进行仿真,所以并没有实际的电路图,仿真的电路如下所示。 按开始按钮开始仿真,显示时间,调节开关可以控制时间。但刚开始时调节时钟时经常出错,还不能熟练掌握,多调试几次才能每次都准确的调节。 电子表仿真图如下:

北京邮电大学数字电路实验报告

北京邮电大学 数字电路与逻辑设计实验 实验报告 实验名称:QuartusII原理图输入 法设计与实现 学院:北京邮电大学 班级: 姓名: 学号:

一.实验名称和实验任务要求 实验名称:QuartusII原理图输入法设计与实现 实验目的:⑴熟悉用QuartusII原理图输入法进行电路设计和仿真。 ⑵掌握QuartusII图形模块单元的生成与调用; ⑶熟悉实验板的使用。 实验任务要求:⑴掌握QuartusII的基础上,利用QuartusII用逻辑 门设计实现一个半加器,生成新的半加器图像模 块。 ⑵用实验内容(1)中生成的半加器模块以及逻辑门 实现一个全加器,仿真验证其功能,并能下载到实 验板上进行测试,要求用拨码开关设定输入信号, 发光二级管显示输出信号。 ⑶用3线—8线译码器(74L138)和逻辑门实现要求 的函数:CBA F+ C + =,仿真验证其 + B C B A A A B C 功能,,并能下载到实验板上进行测试,要求用拨 码开关设定输入信号,发光二级管显示输出信号。二.设计思路和过程 半加器的设计实现过程:⑴半加器的应有两个输入值,两个输出值。 a表示加数,b表示被加数,s表示半加和, co表示向高位的进位。

⑵由数字电路与逻辑设计理论知识可知 b a s ⊕=;b a co ?= 选择两个逻辑门:异或门和与门。a,b 为异 或门和与门的输入,S 为异或门的输出,C 为与门的输出。 (3)利用QuartusII 仿真实现其逻辑功能, 并生成新的半加器图形模块单元。 (4)下载到电路板,并检验是否正确。 全加器的设计实现过程:⑴全加器可以由两个半加器和一个或门构 成。全加器有三个输入值a,b,ci ,两个输 出值s,co :a 为被加数,b 为加数,ci 为低 位向高位的进位。 ⑵全加器的逻辑表达式为: c b a s ⊕⊕= b a ci b a co ?+?⊕=)( ⑶利用全加器的逻辑表达式和半加器的逻 辑功能,实现全加器。 用3线—8线译码器(74L138)和逻辑门设计实现函数 CBA A B C A B C A B C F +++= 设计实现过程:⑴利用QuartusII 选择译码器(74L138)的图形模块

数字时钟实验报告

单片机 数字时钟设计 实训报告 系别 专业 姓名 学号

摘要 单片机是把中央处理器CPU,随即存取存储器RAM,只读存储器ROM,定时器/计数器以及输入/输出即I/O接口电路等主要计算机部件,集成在一块集成电路上的微机。虽然只是一个芯片,但从组成和功能上来看,已具备微型系统的属性。单片机的发展经历了4个阶段,其向着低功耗CMOS化,微型单片化,主流与多品种共存的方向发展。单片机在工业自动化,仪器仪表,家用电器,信息和通讯产品及军事方面得到了广泛应用。另外,其发展前景不错。 本次实训以设计制作数字时钟为例,来加深我们对单片机特性和功能的了解,加强我们的编程思想。为今后从事单片机程序产品的开发,打下了良好的理论与实践基础。理论服务于实践,将知识转化为能力,也是本次试训的另一个重要目的。

目录 一、整体设计方案 (3) 1. 方案设计要求 (3) 2. 方案设计与论证 (3) 3. 整体设计框图 (4) 二、数字时钟的硬件设计 (4) 1. 最小系统设计 (4) 2. LED显示电路 (8) 3. 键盘控制电路 (9) 4. 数字时钟的原理图 (10) 三、数字时钟的软件设计 (11) 1. 系统软件设计流程图 (11) 2. 数字时钟主程序 (14) 四、调试与仿真 (18) 1. 数字时钟系统PROTUES仿真 (18) 2. 软件与硬件调试 (19) 3. 系统性能测试与功能说明 (19) 4. 出现问题及解决 (19) 五、实验结论 (20) 六、心得体会 (21) 附录:1.原器件清单 (22) 2.参考文献 (22)

一、整体方案设计 1. 方案设计要求 设计制作一个数字时钟,要求能实现基本走时,并以数字形式显示时、分、秒;采用24小时制;能校时、校分、校秒;也可以添加其他功能. 2. 方案设计与论证 方案一: 采用各种纯数字芯片实现数字时钟的设计。优点:各个模块功能清晰,电路易于理解实现。缺点:各个模块功能已定不能进行智能化调整,整体电路太庞大。 方案二: 采用 FPGA模块用硬件语言实现功能。优点:运算速度快,走时精度高,算法简单。缺点:成本高,大材小用。 方案三: 采用单片机最小系统实现功能。优点:电路简单,能通过程序进行随机调整并扩展功能,成本低,易于实现。缺点:走时有一定的误差。 经过综合考虑成本问题以及他人接受程度,选择第三种方案实现设计要求。

fpga数字钟课程设计报告

f p g a数字钟课程设计报告 Prepared on 24 November 2020

课程设计报告 设计题目:基于FPGA的数字钟设计 班级:电子信息工程1301 姓名:王一丁 指导教师:李世平 设计时间:2016年1月 摘要 EDA(Electronic Design Automation)电子设计自动化,是以大规模可编程器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,通过相关的软件,自动完成软件方式设计得电子系统到硬件系统,最终形成集成电子系统或专用集成芯片。本次课程设计利用Quartus II 为设计软件,VHDL为硬件描述语言,结合所学知识设计一个多功能时钟,具有显示年、月、日、时、分、秒显示,计时,整点报时,设定时间等功能。利用硬件描述语言VHDL 对设计系统的各个子模块进行逻辑描述,采用模块化的思想完成顶层模块的设计,通过软件编译、逻辑化简、逻辑综合优化、逻辑仿真、最终完成本次课程设计的任务。 关键词:EDA VHDL语言数字钟 目录 摘要 1 课程设计目的 2 课程设计内容及要求

设计任务 设计要求 3 VHDL程序设计 方案论证 系统结构框图 设计思路与方法 状态控制模块 时分秒模块 年月日模块 显示模块 扬声器与闹钟模块 RTL整体电路 4 系统仿真与分析 5 课程设计总结,包括.收获、体会和建议 6 参考文献 1 课程设计目的 (1)通过设计数字钟熟练掌握EDA软件(QUARTUS II)的使用方法,熟练进行设计、编译,为以后实际工程问题打下设计基础。 (2)熟悉VHDL 硬件描述语言,提升分析、寻找和排除电子设计中常见故障的能力。 (3)通过课程设计,锻炼书写有理论根据的、实事求是的、文理通顺的课程设计报告。

数字逻辑与数字系统实验报告

xxxx计算机科学与技术学院计算机数字逻辑设计 实验报告书 实验名 Proteus下基本元件熟悉与使用班级____xxx________________________ 姓名____xxx________________________ 指导教师xx 日期 2017年11月

目录 一、实验目的 (22) 二、实验所用器件和仪表 (22) 三、实验内容 (22) 四、电路原理图 (33) 五、实验过程及数据处理 (33) 六实验数据分析与小结 (33) 七实验心得体会 (44) 一、实验目的 1、掌握Proteus软件安装与使用,熟悉Proteus下选择元器件、绘制仿真电路并进行仿真、观察和数据记录 2、掌握TTL与非门的构成。 二、实验所用器件和仪表 1、NPN三极管 2、逻辑调试端子 3、电阻 三、实验内容 1、Proteus的基本使用 2、利用二/三极管搭建TTL与非门,测量并记录其工作

四、电路原理图 五、实验过程及数据处理 根据电路图连接电路 根据真值表中各项预定义数值利用电路求出输出值 六实验数据分析与小结 根据试验中得出来的数据可以发现,该实验中链接的电路实现的是一个或非门电路,通过几个简单的三极管就实现了一个或非门电路的构建

七实验心得体会 通过一个简单的或非门电路的链接,充分了解了Proteus下基本元件的使用,使电路更加清晰,形象的展现在我们面前

xxxx计算机科学与技术学院计算机数字逻辑设计 实验报告书 实验名基本门电路与分立元件使用 班级_______xxx_____________________ 姓名_______xxx_____________________ 指导教师xx 日期 17/11

数字时钟设计实验报告

电子课程设计 题目:数字时钟

数字时钟设计实验报告 一、设计要求: 设计一个24小时制的数字时钟。 要求:计时、显示精度到秒;有校时功能。采用中小规模集成电路设计。 发挥:增加闹钟功能。 二、设计方案: 由秒时钟信号发生器、计时电路与校时电路构成电路。 秒时钟信号发生器可由振荡器与分频器构成。 计时电路中采用两个60进制计数器分别完成秒计时与分计时;24进制计数器完成时计时;采用译码器将计数器的输出译码后送七段数码管显示。 校时电路采用开关控制时、分、秒计数器的时钟信号为校时脉冲以完成校时。 三、电路框图: 图一 数字时钟电路框图 四、电路原理图: (一)秒脉冲信号发生器 秒脉冲信号发生器就是数字电子钟的核心部分,它的精度与稳定度决定了数字钟的质量。由振荡器与分频器组合产生秒脉冲信号。 ? 振荡器: 通常用555定时器与RC 构成的多谐振荡器,经过调整输出1000Hz 脉冲。 ? 分频器: 分频器功能主要有两个,一就是产生标准秒脉冲信号,一就是提供功能 扩展电路所需要的信号,选用三片74LS290进行级联,因为每片为1/10分频器,三片级联好获得1Hz 标准秒脉冲。其电路图如下: 译码器 译码器 译码器 时计数器 (24进制) 分计数器 (60进制) 秒计数器 (60进制) 校 时 电 路 秒信号发生器

图二秒脉冲信号发生器 (二)秒、分、时计时器电路设计 秒、分计数器为60进制计数器,小时计数器为24进制计数器。 ?60进制——秒计数器 秒的个位部分为逢十进一,十位部分为逢六进一,从而共同完成60进制计数器。当计数到59时清零并重新开始计数。秒的个位部分的设计:利用十进制计数器CD40110设计10进制计数器显示秒的个位。个位计数器由0增加到9时产生进位,连在十位部计数器脉冲输入端CP,从而实现10进制计数与进位功能。利用74LS161与74LS11设计6进制计数器显示秒的十位 ,当十位计数器由0增加到5时利用74LS11与门产生一个高电平接到个位、十位的CD40110的清零端,同时产生一个脉冲给分的个位。其电路图如下: 图三60进制--秒计数电路 ?60进制——分计数电路 分的个位部分为逢十进一,十位部分为逢六进一,从而共同完成60进制计数器。当计数到59时清零并重新开始计数。秒的个位部分的设计:来自秒计数电路的进位脉冲使分的个位加1,利用十进制计数器CD40110设计10进制计数器显示秒的个位。个位计数器由0

FPGA实训报告——简易数字钟

桂林电子科技大学职业技术学院 课题:FPGA实训 专业:电子信息工程技术 学号: 姓名:

目录 关键词: (1) 引言: (1) 设计要求: (1) EDA技术介绍: (1) Verilog HDL简介: (1) 方案实现: (2) 工作原理: (2) 总结: (3) 结语: (3) 程序设计: (4)

数字钟 关键词:EDA、Verilog HDL、数字钟 引言: 硬件描述语言HDL(Hardware Des-cription Language)是一种用形式化方法来描述数字电路和系统的语言。目前,电子系统向集成化、大规模和高速等方向发展,以硬件描述语言和逻辑综合为基础的自顶向下的电路设计发放在业界得到迅猛发展,HDL在硬件设计领域的地位将与C和C++在软件设计领域的地位一样,在大规模数字系统的设计中它将逐步取代传统的逻辑状态表和逻辑电路图等硬件描述方法,而成为主要的硬件描述工具。 Verilog HDL是工业和学术界的硬件设计者所使用的两种主要的HDL之一,另外一种是VHDL。现在它们都已经成为IEEE标准。两者各有特点,但Verilog HDL拥有更悠久的历史、更广泛的设计群体,资源也远比VHDL丰富,且非常容易学习掌握。 此次以Verilog HDL语言为手段,设计了多功能数字钟,其代码具有良好的可读性和易理解性。 设计要求: 数字钟模块、动态显示模块、调时模块、到点报时模块等;必须有键防抖动功能。可自行设计8位共阴数码管显示;亦可用FPGA实验平台EDK-3SAISE上的4位数管,但必须有秒指导灯。 EDA技术介绍: 20世纪90年代,国际上电子和计算机技术较先进的国家,一直在积极探索新的电子电路设计方法,并在设计方法、工具等方面进行了彻底的变革,取得了巨大成功。在电子技术设计领域,可编程逻辑器件(如CPLD、FPGA)的应用,已得到广泛的普及,这些器件为数字系统的设计带来了极大的灵活性。这些器件可以通过软件编程而对其硬件结构和工作方式进行重构,从而使得硬件的设计可以如同软件设计那样方便快捷。这一切极大地改变了传统的数字系统设计方法、设计过程和设计观念,促进了EDA技术的迅速发展。 EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。EDA技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度。 这些器件可以通过软件编程而对其硬件结构和工作方式进行重构,从而使得硬件的设计可以如同软件设计那样方便快捷。这一切极大地改变了传统的数字系统设计方法、设计过程和设计观念,促进了EDA技术的迅速发展。 Verilog HDL简介: 硬件描述语言Verilog是Philip R.Moorby于1983年在英格兰阿克顿市的Gateway Design Automation硬件描述语言公司设计出来的,用于从开关级到算法级的多个抽象设

数字电路实验报告

数字电路实验报告 姓名:张珂 班级:10级8班 学号:2010302540224

实验一:组合逻辑电路分析一.实验用集成电路引脚图 1.74LS00集成电路 2.74LS20集成电路 二、实验内容 1、组合逻辑电路分析 逻辑原理图如下:

U1A 74LS00N U2B 74LS00N U3C 74LS00N X1 2.5 V J1 Key = Space J2 Key = Space J3 Key = Space J4 Key = Space VCC 5V GND 图1.1组合逻辑电路分析 电路图说明:ABCD 按逻辑开关“1”表示高电平,“0”表示低电平; 逻辑指示灯:灯亮表示“1”,灯不亮表示“0”。 真值表如下: A B C D Y 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 1 1 0 1 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 1 1 1 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 1 0 1 1 1 1 1 0 0 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 1 表1.1 组合逻辑电路分析真值表 实验分析: 由实验逻辑电路图可知:输出X1=AB CD =AB+CD ,同样,由真值表也能推出此方程,说明此逻辑电路具有与或功能。 2、密码锁问题: 密码锁的开锁条件是:拨对密码,钥匙插入锁眼将电源接通,当两个条件同时满足时,开锁信号为“1”,将锁打开;否则,报警信号为“1”,则接通警铃。

试分析下图中密码锁的密码ABCD 是什么? 密码锁逻辑原理图如下: U1A 74LS00N U2B 74LS00N U3C 74LS00N U4D 74LS00N U5D 74LS00N U6A 74LS00N U7A 74LS00N U8A 74LS20D GND VCC 5V J1 Key = Space J2 Key = Space J3 Key = Space J4 Key = Space VCC 5V X1 2.5 V X2 2.5 V 图 2 密码锁电路分析 实验真值表记录如下: 实验真值表 A B C D X1 X2 0 0 0 0 0 1 0 0 0 1 0 1 0 0 1 0 0 1 0 0 1 1 0 1 0 1 0 0 0 1 0 1 0 1 0 1 0 1 1 0 0 1 0 1 1 1 0 1 1 0 0 0 0 1 1 0 0 1 1 0 1 0 1 0 0 1 1 0 1 1 0 1 1 1 0 0 0 1 1 1 0 1 0 1 1 1 1 0 0 1 1 1 1 1 0 1 表1.2 密码锁电路分析真值表 实验分析: 由真值表(表1.2)可知:当ABCD 为1001时,灯X1亮,灯X2灭;其他情况下,灯X1灭,灯X2亮。由此可见,该密码锁的密码ABCD 为1001.因而,可以得到:X1=ABCD ,X2=1X 。

数字时钟设计实验报告

电子课程设计题目:数字时钟

数字时钟设计实验报告 设计要求: 设计一个24小时制的数字时钟。 要求:计时、显示精度到秒;有校时功能。采用中小规模集成电路设计。 发挥:增加闹钟功能。 设计方案: 由秒时钟信号发生器、计时电路和校时电路构成电路。 秒时钟信号发生器可由振荡器和分频器构成。 计时电路中采用两个60进制计数器分别完成秒计时和分计时;24进制计数器完成时计时;采用译码器将计数器的输出译码后送七段数码管显示。 校时电路采用开关控制时、分、秒计数器的时钟信号为校时脉冲以完成校时。 电路框图: 图一 数字时钟电路框图 电路原理图: (一)秒脉冲信号发生器 秒脉冲信号发生器是数字电子钟的核心部分,它的精度和稳定度决定了数字钟的质量。由振荡器与分频器组合产生秒脉冲信号。 振荡器: 通常用555定时器与RC 构成的多谐振荡器,经过调整输出1000Hz 脉冲。 分频器: 分频器功能主要有两个,一是产生标准秒脉冲信号,一是提供功能 扩展电路所需要的信号,选用三片74LS290进行级联,因为每片为1/10分频器,三片级联好获得1Hz 标准秒脉冲。其电路图如下: 译码器 译码器 译码器 时计数器 (24进制) 分计数器 (60进制) 秒计数器 (60进制) 校 时 电 路 秒信号发生器

图二秒脉冲信号发生器 (二)秒、分、时计时器电路设计 秒、分计数器为60进制计数器,小时计数器为24进制计数器。 60进制——秒计数器 秒的个位部分为逢十进一,十位部分为逢六进一,从而共同完成60进制计数器。当计数到59时清零并重新开始计数。秒的个位部分的设计:利用十进制计数器CD40110设计10进制计数器显示秒的个位。个位计数器由0增加到9时产生进位,连在十位部计数器脉冲输入端CP,从而实现10进制计数和进位功能。利用74LS161和74LS11设计6进制计数器显示秒的十位,当十位计数器由0增加到5时利用74LS11与门产生一个高电平接到个位、十位的CD40110的清零端,同时产生一个脉冲给分的个位。其电路图如下: 图三60进制--秒计数电路 60进制——分计数电路 分的个位部分为逢十进一,十位部分为逢六进一,从而共同完成60进制计数器。当计数到59时清零并重新开始计数。秒的个位部分的设计:来自秒计数电路的进位脉冲使分的个位加1,利用十进制计数器CD40110设计10进制计数器显示秒的个位。个位计数器由0增加到9时产生进位,连在十位部计数器脉冲输入端CP,从而实现10进制计数和进位

基于FPGA的Verilog HDL数字钟设计 -

基于FPGA的Verilog HDL数字钟设计 专业班级姓名学号 一、实验目的 1.掌握可编程逻辑器件的应用开发技术——设计输入、编译、仿真和器件编程; 2.熟悉一种EDA软件使用; 3.掌握Verilog设计方法; 4.掌握分模块分层次的设计方法; 5.用Verilog完成一个多功能数字钟设计; 6.学会FPGA的仿真。 二、实验要求 ?功能要求: 利用实验板设计实现一个能显示时分秒的多功能电子钟,基本功能: 1)准确计时,以数字形式显示时、分、秒,可通过按键选择当前显示时间范围模式; 2)计时时间范围00:00:00-23:59:59 3)可实现校正时间功能; 4)可通过实现时钟复位功能:00:00:00 扩展功能: 5)定时报:时间自定(不要求改变),闹1分钟(1kHz)---利用板上LED或外接电路实现。 6)仿广播电台正点报时:XX:59:[51,53,55,57(500Hz);59(1kHz)] ---用板上LED或外接 7)报整点时数:XX:00:[00.5-XX.5](1kHz),自动、手动---用板上LED或外接 8)手动输入校时; 9)手动输入定时闹钟; 10)万年历; 11)其他扩展功能; ?设计步骤与要求: 1)计算并说明采用Basys2实验板时钟50MHz实现系统功能的基本原理。 2)在Xilinx ISE13.1 软件中,利用层次化方法,设计实现模一百计数及显示的电路系 统,设计模块间的连接调用关系,编写并输入所设计的源程序文件。 3)对源程序进行编译及仿真分析(注意合理设置,以便能够在验证逻辑的基础上尽快 得出仿真结果)。 4)输入管脚约束文件,对设计项目进行编译与逻辑综合,生成下载所需.bit文件。 5)在Basys2实验板上下载所生成的.bit文件,观察验证所设计的电路功能。

Verilog数字钟数电实验报告

专业:电子信息工程班级:电信1305班日期:2015.5.5 第3次实验 姓名:康健组别: 6 指导教师:成绩: 实验课题:EDA多功能数字钟 1、已知条件 Quartus II软件、FPGA实验开发装置。 2、主要技术指标 以数字形式显示时、分、秒的时间;小时计数器为同步24进制;要求手动校时、校分。 3、实验用仪器 PC、FPGA开发板、示波器、稳压电源等 4、电路工作原理 所谓的时钟,其实本质上就是计数器。以开发板上的晶振时钟作为时间基准。 然后通过分频模块(计数器)进行分频,得到1Hz的脉冲信号作为秒的信号脉冲,然后用模60的计数器构成秒的计数单元。每记60下就自动清零且产生进位信号。将这个进位信号作为分的计数器的使能信号,其中,分计数器也是模为60的计数器。这里的计数器都是由模10和模6 组成的BCD码的计数器。个位和十位分别是一个四位的数字。同理,每记满60,分计数器就会产生一个进位信号,这个进位信号作为小时的使能信号。小时的计数器就是模24的BCD计数器。注意,这里的整个电路都是用1HZ的频率作为时间脉冲的,也就是说,这个电路是同步时序的电路。通过使能,来控制各个部分的时序逻辑。将小时和分的使能信号在总是为有效电平和下一级进位信号做选择,就是时钟调时状态和正常计时状态的切换。当在调时状态的时候,时钟每完成一个周期,无论是分钟还是小时,就向前加1,。最后,将分钟和小时通过译码器连接到数码管。将秒直接连接到LED灯,完成整个工程的基本功能(扩展功能见选作的实验报告)。 5、电路设计与调试 1、模10计数器的设计

2、模6计数器的设计 3、模60计数器设计(分、秒计数) 4、模24计数器设计(小时计数)

单片机实训报告_数字时钟

单片机实训报告 ——数字时钟 成员: 金龙:2 王利伟:6 许林鹏: 9 春波:0 袁增莘:1 指导老师:翡 12电气自动化一班 2013.12.23—12.29

目录 一、设计目的 (2) 二、设计要求 (2) 2.1显示要求 (2) 2.2校准要求 (2) 2.3选型要求 (2) 三、硬件设计 (3) 3.1L E D电路图 (3) 3.2电路图分析 (4) 3.3键盘功能 (4) 四、程序设计 (5) 4.1程序流程图 (5) 4.2程序 (6)

课题:数字时钟 一、设计目的: 通过实训周学会制作数码管显示时、分、秒的数字可调时钟,近一步熟练掌握编程语言的应用。 二、设计要求: 2.1显示要求: 时钟要求用8位数码管显示,以数字形式显示时、分、秒的时间。且从右端始八位数码管依次显示①秒个位②秒十位③横杠“—”④分个位⑤分十位⑥横杠“—”⑦时个位⑧时十位 2.2校准要求: 时钟要求计时准确,同时要求有校准时间的电路,且以按键校准。 2.3选型要求: 设计单片机选型以STC89C51RC-RD+系列为基础 三、硬件设计: 3.1、LED电路图

3.2电路图分析 本次课题是利用51单片机进行设计。 Led灯是由低电平点亮的,led位的选择是由单片机中的p2口控制的。 *键盘是采用独立式按键: K1是p3.0;K2是p3.1; K3是p3.2:K4是p3.3; 3.3键盘功能 K1, 是对时钟调整或调整后进行确定的选择键。 K2,是对选中位置后对其进行加。 K3,是对选中位置后对其进行减。 K4,是进行时分秒的选择位的操作。 四、程序设计 4.1程序流程图

基于FPGA开发板的数字钟设计初探

基于FPGA开发板的数字钟设计初探 摘要:本文介绍了基于FPGA开发板的数字钟设计的基本构想,所提供的功能,基本的模块和控制逻 辑。 关键词: 模块,数字钟 1引言 VHDL结合FPGA可以方便地,可重复利用地实现各种设计,本文主要从原理上规划出设计一个数字钟需要的模块和功能逻辑,以便后期使用VHDL和FPGA实现。 2 设计原理 本文打算实现的数字钟向用户提供的功能包括:秒、分、时、日、月显示,闹钟设定,时间校准。鉴于所提供的功能,电路应当包括以下五大模块:控制模块,分频模块,闹钟模块,计时模块和显示模块。控制模块包括了输入部分,用户通过外部按钮选择数字钟工作模式和输入基准时间,闹钟时刻;分频模块主要是给需要的模块提供特定频率的时钟信号;闹钟模块的主要作用是接收并存储用户输入的闹钟时刻,比较当前时刻是否是用户所设定的闹钟时刻,进而决定是否启动闹钟提醒装置(蜂鸣器);计时模块包括了秒、分、时、日,月计数模块,并提供给显示模块显示输出;显示模块包括数码管及驱动部分,蜂鸣器。 3 电路设计 控制模块主要是一个译码电路,控制系统所处的模式:正常计时显示,时间校准,设定闹钟。 计时模块通过六十进制、二十四进制、三十或三十一进制和十二进制的计数器实现计时。计时模式下利用分频器提供的基准时钟信号实现计时;时间校准模式下,用户输入按钮的脉冲作时钟信号。 分频模块是一个分频器,将系统提供的时钟分频到需要的频率。 闹钟模块在计时模式下利用比较电路检测当前时间,如果是闹钟时刻,则启动蜂鸣器;闹钟模式下,用户通过输入按钮脉冲设定闹钟,闹钟模块记录并存储。 显示模块在计时模式和时间校准模式下由计时模块控制显示,设定闹钟时由闹钟模块控制显示,方便用户设定闹钟,蜂鸣器由闹钟模块控制。

相关主题
文本预览
相关文档 最新文档