基于VerilogHDL设计的数字时钟

合集下载

基于FPGA的数字钟设计(VerilogHDL语言实现)

基于FPGA的数字钟设计(VerilogHDL语言实现)

基于FPGA的数字钟设计摘要:本设计为一个多功能的数字钟,具有时、分、秒计数显示功能,以12小时循环计数。

本设计采用EDA技术,以硬件描述语言VerilogHDL为系统逻辑描述手段设计文件,在QUARTUS II工具软件环境下,采用自顶向下的设计方法,由各个基本模块共同构建了一个基于FPGA的数字钟。

系统主芯片采用EP1K100QC208-3,由时钟模块、控制模块、计时模块、数据译码模块、显示以及报时模块组成。

经编译和仿真所设计的程序,在可编程逻辑器件上下载验证,本系统能够完成时、分、秒的分别显示,由按键输入进行数字钟的清零功能。

关键词:数字钟;硬件描述语言;VerilogHDL;FPGA;引言:现代社会的标志之一就是信息产品的广泛使用,而且是产品的性能越来越强,复杂程度越来越高,更新步伐越来越快。

支撑信息电子产品高速发展的基础就是微电子制造工艺水平的提高和电子产品设计开发技术的发展。

前者以微细加工技术为代表,而后者的代表就是电子设计自动化(electronic design automatic,EDA)技术。

本设计采用的VerilogHDL是一种全方位的硬件描述语言,具有极强的描述能力,能支持系统行为级、寄存器传输级和逻辑门级三个不同层次的设计;支持结构、数据流、行为三种描述形式的混合描述、覆盖面广、抽象能力强,因此在实际应用中越来越广泛。

ASIC是专用的系统集成电路,是一种带有逻辑处理的加速处理器。

而FPGA是特殊的ASIC芯片,与其他的ASIC芯片相比,它具有设计开发周期短、设计制造成本低、开发工具先进、标准产品无需测试、质量稳定以及可实时在线检测等优点。

在控制系统中,键盘是常用的人机交换接口,当所设置的功能键或数字键按下的时候,系统应该完成该键所设置的功能。

因此,键信息输入是与软件结构密切相关的过程。

根据键盘的结构不同,采用不同的编码方法。

但无论有无编码以及采用什么样的编码,最后都要转换成为相应的键值,以实现按键功能程序的转移。

基于Verilog HDL及DE2开发板的数字钟设计

基于Verilog HDL及DE2开发板的数字钟设计

《EDA技术与Verilog HDL》课程实验报告实验项目名称:基于V erilog HDL及DE2开发板的数字钟设计一、实验项目名称基于Verilog HDL及DE2开发板的数字钟设计二、实验目的和要求(1)实验目的1.掌握Verilog HDL语言的基本运用;2.熟悉QuartusⅡ的简单操作;3.掌握一个基本EDA工程设计流程;4.掌握时钟的设计基本原理。

(2)实验要求1.能够正常输出时钟信号,进行计时和显示2.能够通过按钮进行时钟的校对三、实验内容和原理时钟共使用两类主要模块来实现其功能。

其总体结构如下图所示。

其中校时模块根据是否处于校时状态,选择给予计数模块哪个驱动信号。

(1)计数模块功能:该模块主要实现三个显示部分(时、分、秒)的计数和正常进位,以及按照规定的方式输出信号,实现方式:本模块主要通过计数器来实现,本模块中包含有三个主要计数部分,分别是十进制、六进制以及二十四进制,其中六进制和十进制共同组成六十进制,即实现分和秒的计数,之所以将其分开是便于分别显示个位和十位,通过编写计数器,来计数信号的数量,从而实现时分秒按各自的进制正常计数,同时,本模块将前一时钟单位的进位信号作为下一时钟单位的clk,即从后向前驱动,这样便实现了时钟的正常运转。

(2)校时模块功能:本模块实现在给予时钟一个set信号后,时钟进入校时状态,此时,时、分、秒均进入静止状态即停止计时,然后通过三个按钮seth(校时)setm(校分)rst(校秒)来进行时间校对,其中seth(setm)在每按一下时,时(分)在原来的基础上加一,而rst按下后则会让秒清零。

实现方式:本模块为实现当得到一个set信号后,进入校时,而再一次信号后又进入正常状态,将set信号作为一个驱动信号,然后另设一个set0信号使其每得到一个set信号后翻转一次,其初始值为0,翻转后为1。

当set0值为1时,便将分和时的驱动信号锁定为seth和setm,这样时钟便冻结住了,此时每按一次seth或setm便可驱动计数器在原有时或分基础上加一。

(Verilog HDL)数字时钟设计

(Verilog HDL)数字时钟设计

实验报告课程名称:可编程逻辑器件与数字系统设计实验项目:数字时钟设计专业班级:姓名:学号:实验室号:实验组号:实验时间:批阅时间:指导教师:*绩:沈阳工业大学实验报告专业班级:学号:姓名:实验名称:数字时钟设计1.实验目的:熟悉Quartus II 6.0运行环境,掌握基本使用方法;学会使用Quartus II编写程序,进行下载验证。

2.实验内容:(1)60进制计数器;(2)24进制计数器;(3)调用24进制和60进制计数器制作数字时钟。

3. 实验方案(1)编写题目要求的程序;(2)按照要求将相关程序进行检测和调试,运行正确的程序;(3)程序完成后,将其与实验箱连接,并打开电源;(4)下载程序到芯片内;(5)观察程序功能是否成功实现。

4. 实验步骤或程序详细过程见附录。

5.程序运行结果运行结果如下图所示:24进制计数器60进制计数器6.出现的问题及解决方法首次运行程序时,没有任何出错状况;而在下载后,发现24进制计数器中的频率有些快,只要把频率的短路针调到1Hz即可,没有其他问题。

附录A(24进制计数器)1、功能实现与程序选择24进制计数器是实现从0到23的计数。

由此可以运用Verilog HDL 语言将此功能实现。

2、程序运行与调试module count24(Rd,EN,CLK,Qh,Ql,C);input Rd,EN,CLK;output [3:0]Qh,Ql;output C;reg [3:0]Qh,Ql;reg C;initialbeginQh=4'd0;Ql=4'd0;C=0;endalways @ (posedge CLK)beginif(EN==1)beginif(Rd==0)beginQh=4'd0;Ql=4'd0;C=0;endelse if(Qh<4'd2&&Ql<4'd9)Ql=Ql+1;else if(Qh<4'd2&&Ql==4'd9)beginQh=Qh+1;Ql=4'd0;endelse if(Qh==4'd2&&Ql<4'd3)Ql=Ql+1;else beginQh=4'd0;Ql=4'd0;C=0;endif(Qh==4'd2&&Ql==4'd3)C=1;endendendmodule3、保存一个名称,建立一个和module模块的名称一致的工程并进行调试。

Verilog HDL 多功能电子钟

Verilog HDL 多功能电子钟

基于verilog HDL语言的数字电子钟设计摘要:本课程设计完成了数字电子钟的设计,数字电子钟是一种用数字显示秒、分、时的计时装置,由于十足集成电路技术的发展,使数字钟走时准确、多功能化且性能稳定等优点。

在本次设计中,系统开发平台为MAX+plusⅡ,硬件描述语言是Verilog HDL。

依据Verilog HDL语言设计由计时,闹铃,秒表,报时等7大模块组成的多功能数字电子钟。

根据输入,观察输出及仿真。

设计方案和设计平台完成了程序编写和程序调试,通过运行程序及时序波形的仿真有效验证了设计的正确性,初步实现了设计目标。

关键词多功能数字电子钟;Verilog HDL;MAX +plusⅡ;专用集成电路;Based on Verilog HDL languagedigital electric clock designThe student's name: HThe guide teacher: XAbstract:The course is designed to finished the design of digital electric clock, digital electric clock is a kind of digital display second, points, when the timer, because dye-in-the-wood integrated circuit technology development, and make a digital clock keeps good time, more functional and stable performance, etc. In this design, system developing platform for MAX + plus Ⅱ, hardware description language is Verilog HDL. According to the design scheme and design platform completed programming and program test, through to run the program in time sequence waveform simulation verified effectively the correctness of design, and then realized the design goal.Keywords:application-specific integrated circuit, Verilog HDL, Multi-function digital electric clock; MAX + plus Ⅱ目录1 引言1.1课题设计的背景、目的1.2 课题设计环境2 Verilog HDL简介3 多功能电子钟的7大模块设计及仿真芯片生成3.1 计时模块3.2 闹铃设置模块3.3 校时模块3.4 秒表功能模块3.5 整点报时模块3.6 闹铃屏蔽及响铃功能模块3.7 秒表提示功能模块4 7大模块组合的多功能电子钟的设计及仿真4.1 功能描述4.2 源程序(基于Verilog HDL语言)4.3 模块仿真5 结束语参考文献1 引言数字电子钟的时间周期为24小时,具有显示时,分,秒的功能,并设置有闹钟,日历,时间调节等功能。

VerilogHDL语言数字时钟

VerilogHDL语言数字时钟

VerilogHDL语言数字时钟EDA与数字系统设计报告实验名称:带有设臵时间功能和闹钟功能的数字钟一、设计内容和要求实验要求使用Verilog HDL进行多功能时钟的设计具体要求如下:1.能将基本的小时、分钟、及秒钟显示在数码管上2.能利用拨码开关进行时间的校正3.具有整点报时和闹钟的功能二、设计原理1.工作原理多功能数字钟系统共包括三个模块,即分频器模块、计数器模块和显示译码模块。

多功能数字钟的功能可以从整体上分为三类,分别是正常计时、时钟校对和闹钟设臵,所以考虑在系统中设臵一个模式控制信号mode。

模式控制信号对应一个按键,每按一次按键相当于工作模式进行一次变换,多次按下则数字钟将在正常计时、时间校对和闹钟设臵三个工作模式下依次循环。

在设计中,时钟校对和闹钟设臵工作模式都需要对时间进行设臵,通常是对小时和分钟进行设臵,所以需要在系统中设臵一个时间设臵信号set,对应一个按键,每按一次相当于在小时设臵和分钟设臵之间进行转换。

时间设臵时,分钟和小时计时单位之间互相独立,不存在进位关系。

同时设臵一个时间调整信号accum,每按一次与accum对应的按键,相当于对需要调整的分钟或小时的数字进行加1操作。

数字钟的计时输出信号时必不可少的,用hour,min和sec信号分别表示需要显示的小时、分钟和秒钟的计时结果,上述计时结果将通过译码显示模块进行译码后,连接到外部的七段数码显示器。

在带有闹钟设臵功能的数字钟中,闹钟输出信号也是必不可少的,到达到闹钟设臵的时间后,要向外部扬声器发送一个闹铃信号,设臵alert。

另外,我们还提供了闹钟铃声信号voice,当voice为0的时候,闹钟处于静音状态下,即使时间达到闹钟设定的时间也不会发声,当voice为1的时候,可以正常闹铃,voice信号对应一个拨码开关。

本设计中的小时、分钟和秒钟的计时结果采用BCD码表示方法。

采用这种表示方法便于对数结果的高位和低位分别进行译码。

基于VerilogHDL语言多功能数字钟设计毕业设计论文

基于VerilogHDL语言多功能数字钟设计毕业设计论文

多功能数字钟NJUST多功能数字钟设计基于VerilogHDL语言学院:电子工程与光电技术学院学号:************姓名:指导教师:2014年11月21日星期五摘要:基于FPGA平台,运用Verilog语言编写设计一多功能数字钟,包括基本的时钟,校时校分,整点报时功能。

扩展闹钟,秒表,万年历,键盘输入功能。

Abstract:FPGA-based platform, using Verilog language to design amulti-functional digital clock, including basic function of clock, school hours, school minutes,the whole point timekeeping. And extended function of alarm clock, stopwatch, calendar, keyboard input.关键词:多功能数字钟,可编程逻辑器件,EDA设计,VerilogKeywords:multi-functional digital clock, FPGA, EDA disign, Verilog目录1 设计要求 (2)2 设计方案选择及思路分析 (2)3 各子模块设计原理和分析 (3)3.1 分频模块 (3)3.2 时分秒模块 (5)3.3 时分调整模块 (6)3.4 报时模块 (7)3.5 扫描显示模块 (8)3.6 秒表模块 (9)3.7 闹钟模块 (10)3.8 万年历模块 (12)3.9 键盘扫描模块 (13)4 调试仿真 (15)5 编程下载 (16)6 结论 (17)7 参考文献 (17)8 实验感想 (17)9 源代码 (18)11 设计要求基于FPGA可编程逻辑器件,用quatusII软件设计一个多功能数字钟,其基本要求如下:1.有基础的计时显示功能,即时、分、秒显示在6个七段管上2.K0,K1,K2,K3分别为系统使能(暂停),时钟清零,校时,校分开关。

基于VerilogHDL设计的多功能数字钟

基于VerilogHDL设计的多功能数字钟

3' b101: Disp_Temp=4' b1010;
#(60000*HALF_PERIOD) S1_in=1;
3' b110: Disp_Temp=SECH;
end
3' b111: Disp_Temp=SECL;
//产 生 调 节 分 钟 信 号
endcase
initial
end
begin
always@(Disp_Temp) //显示转换

图 1 多功能数字钟端口功能图
Clk: 10KHZ 的系统基准时钟输入。作为七段码管 扫描频率。将其 10000 分频可得到 1HZ 的数字钟工作 频率。将其 8 分频和 4 分频分别分时送入扬声器, 使 其产生嘀( 1.25KHZ) 、嗒( 2.5KHZ) 的报时声。
Rst: 系统复位信号, 低电平有效。复位后显示 00- 00- 00。
Abstr act: In this paper, the process of designing multifunctional digital clock by the Verilog HDL top- down design method is pre- sented, which has shown the readability, portability and easily understanding of Verilog HDL as a hard description language. Circuit synthesis and simulation are performed by Altera QuartusⅡ 4.1 and ModelSim SE 6.0. The program can be used in the truly digital clock display by downloading to the FPGA chip. Keywor ds: Ver ilog HDL; har dwar e descr iption language; FPGA

基于Verilog HDL的闹钟设计

基于Verilog HDL的闹钟设计

封面删除~你懂的摘要随着微电子技术、计算机技术、半导体技术的发展,很多传统的数字门电路的设计已经被可编程逻辑器件替代。

而对于传统的模拟控制技术,也被数字控制系统所取代。

数字系统在各个领域显示出了无穷的魅力与优势,如今已经被广泛应用于实际工程中。

本文利用Verilog HDL 语言自顶向下的设计方法设计多功能数字钟, 实现时、分、秒的计时和校时,以及整点报时和闹钟的功能。

突出了其作为硬件描述语言的良好的可读性、可移植性和易理解等优点, 并通过ModelSim SE 6.5 完成综合、仿真。

通过Verilog HDL语言完成数字钟的层次化设计。

关键词:数字电子时钟,有限状态机,功能仿真AbstractAs the microelectronics, computer technology, semiconductor technology, many traditional design of digital gate programmable logic device has been replaced. As for the traditional analog control, digital control systems have also been replaced. Digital systems in various fields has shown infinite charm and advantages, and now has been widely used in practical projects. In this paper, Verilog HDL, the design of top-down multi-functional digital clock designed to achieve the hours, minutes, seconds, time and school, as well as the whole point timekeeping and alarm functions. Highlighted as a hardware description language, good readability, portability and ease of understanding, etc., and through the ModelSim SE 6.5 complete the comprehensive, simulation. Completed by Verilog HDL, the level of the digital clock design.Key words: Digital electronic clock, finite state machine, functional simulation.目录第1章绪论 (1)1.1时钟的发展简史 (1)1.2设计目的 (1)1.3Verilog HDL硬件描述语言 (2)1.4Modelsim仿真工具 (5)第2章数字电路设计方法 (7)2.1数字系统设计简介 (7)2.2有限状态机 (9)第3章数字钟的层次化设计 (13)3.1功能要求 (13)3.2数字钟系统的工作原理 (13)3.3 模块的设计 (13)3.4程序设计 (14)第4章功能仿真 (19)4.1 仿真前准备 (19)4.2 功能仿真 (20)第5章总结 (23)参考文献 (26)第1章绪论1.1时钟的发展简史设计目的公元1300年以前,人类主要是利用天文现象和流动物质的连续运动来计时。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

深圳大学考试答题纸(以论文、报告等形式考核专用)二○18 ~二○19 学年度第一学期课程编1602080001 课程名称号学姓名李思豪专业年级电子科学与技术16级1班号题目:基于Verilog HDL设计的数字时钟摘要:本文利用Verilog HDL语言自顶向下的设计方法设计多功能数字钟,突出了其作为硬件描述语言的良好的可读性、可移植性和易理解等优点,并通过Altera QuartusⅡ 6.0和cyclnoe II EP2C35F672C6完成综合、仿真。

此程序通过下载到FPGA芯片后,可应用于实际的数字钟显示中关键词:Verilog HDL;硬件描述语言;FPGA目录一、实验任务 (3)实验目的 (3)实验要求 (3)二、设计思路 (3)三、实验结果 (10)四、总结与收获 (14)一、实验任务实验目的1.深入了解基于quartus ii工具的复杂时序逻辑电路的设计。

2.理解并熟练利用EDA工具进行综合设计。

3.熟练掌握芯片烧录的流程及步骤。

4.掌握Verilog HDL 语言的语法规范及时序电路描述方法。

实验要求设计一个带秒表功能的24 小时数字钟,它包括以下几个组成部分:①显示屏,由6 个七段数码管组成,用于显示当前时间(时:分,秒)或设置的秒表时间;②复位键复位所有显示和计数③设置键,用于确定新的时间设置,三个消抖按键分别用于时分秒的设置④秒表键,用于切换成秒表功能基本要求(1) 计时功能:这是本计时器设计的基本功能,每隔一秒计时一次,并在显示屏上显示当前时间。

(2) 秒表功能:设置时间,进行倒计时功能(3) 设置新的计时器时间:按下设置键后,用户能通过时分秒三个消抖按键对时间进行设置。

二、设计思路1、总原理框图:原理如上图所示,时钟由分频器模块,数码管显示模块,计时器模块三个模块构成,每个模块实现如下的不同功能,最后通过在顶层模块的调用,来实现时钟功能。

2.顶层模块:顶层模块调用三个字模块,并且定义输入输出口,代码输入所示:modulemyclock2(daojishi,stop,clk,reset,shi,fen,miao,miaoout1,miaoout2,fenout1,fenout2,shiout1,shiout2) ;input clk,reset,stop,shi,fen,miao,daojishi;output[6:0] miaoout1,miaoout2,fenout1,fenout2,shiout1,shiout2;wire[3:0] miao1,miao2,fen1,fen2,shi1,shi2;wire clk_1hz;divider_1HZ divider1hz(clk_1hz,reset,clk);count count1(daojishi,shi,fen,miao,stop,miao1,miao2,fen1,fen2,shi1,shi2,reset,clk_1hz); decode4_7 d0(miaoout1,miao1);decode4_7 d1(miaoout2,miao2);decode4_7 d2(fenout1,fen1);decode4_7 d3(fenout2,fen2);decode4_7 d4(shiout1,shi1);decode4_7 d5(shiout2,shi2);endmodule输入输出端口类型功能表:三个子模块的原理和代码:(1)分频模块:分频模块的作用主要是要获得各种频率的时钟信号。

输入信号27MHZ的信号,要想获得1HZ的信号作为秒脉冲计时,则要对27MHZ信号分频。

通过计数的方式,当计数从0开始到13999999时,1HZ信号取反一次,计数又从0开始,如此循环,就可以得到1HZ脉冲信号。

对于其他信号也是如此,只是计数值不一样,得到的分频信号不同。

模块代码如下:module divider_1HZ(clk_1hz,reset,clk);output clk_1hz;input reset,clk;reg clk_1hz;reg[23:0] count;always @(posedge clk)beginif(reset)begincount<=0;clk_1hz<=0;endelsebeginif(count==13499999)begincount<=0;clk_1hz<=~clk_1hz;endelsecount<=count+1;//计数endendendmodule(2)译码显示模块:一、数码管显示:通过传入响应的十进制数,运用case语句转换输出相应的7位二进制显示码,送入数码管显示。

代码如下:module decode4_7(temp,indec);output[6:0] temp;input[3:0] indec;reg[6:0] temp;always @(indec)begincase(indec) //用case 语句进行译码4'd0:temp[6:0]=7'b1000000;4'd1:temp[6:0]=7'b1111001;4'd2:temp[6:0]=7'b0100100;4'd3:temp[6:0]=7'b0110000;4'd4:temp[6:0]=7'b0011001;4'd5:temp[6:0]=7'b0010010;4'd6:temp[6:0]=7'b0000010;4'd7:temp[6:0]=7'b1111000;4'd8:temp[6:0]=7'b0000000;4'd9:temp[6:0]=7'b0010000;default: temp=7'bz;endcaseendendmodule(3)、计时器模块:秒计数:在1HZ脉冲下进行秒计时,当计时达到59秒后,在下一个脉冲来临变0,并发出一个脉冲信号,可供下面分钟计数作为输入脉冲信号计时。

分钟计数:在输入脉冲下,分钟开始计时,当计时达到59后,在下一个脉冲来临变0,并发出一个脉冲,供小时计数的输入脉冲新号。

小时计数:脉冲信号来临时,计数加1,达到23后在下一个脉冲的作用下清零,从新计时。

如果有复位信号,则时分秒全部清零。

计时器模块还包含了设置时间和秒表切换的功能部分代码如下:module count(daojishi,shi,fen,miao,stop,miao1,miao2,fen1,fen2,shi1,shi2,reset,clk_1hz); input reset,clk_1hz,stop,daojishi;input shi,fen,miao;output miao1,miao2,fen1,fen2,shi1,shi2;reg[3:0] miao1,miao2,fen1,fen2,shi1,shi2;always @(posedge clk_1hz)beginif(reset)beginmiao1<=0;miao2<=0;fen1<=0;fen2<=0;shi1<=0;shi2<=0;endif(stop==1)begin //秒调节if(miao==0)beginmiao1<=miao1+1;if(miao1==9)beginmiao1<=0;miao2<=miao2+1;if(miao2==5)beginmiao2<=0;endendendif(fen==0) //分调节beginfen1<=fen1+1;if(fen1==9)beginfen1<=0;fen2<=fen2+1;if(fen2==5)beginfen2<=0;endendendif(shi==0) //时调节beginshi1<=shi1+1;if(shi1==9||((shi1==3)&&(shi2==2)))beginshi1<=0;shi2<=shi2+1;if(shi2>=2)beginshi2<=0;endendendendif((!reset)&&(stop==0))beginif(daojishi==0) //时钟程序beginmiao1<=miao1+1;if(miao1==9)beginmiao1<=0;miao2<=miao2+1;if(miao2==5)beginmiao2<=0;fen1<=fen1+1;if(fen1==9)beginfen1<=0;fen2<=fen2+1;if(fen2==5)beginfen2<=0;shi1<=shi1+1;if((shi1==9)||((shi1==3)&&(shi2==2)))beginshi1<=0;shi2<=shi2+1;if(shi2==2)beginshi2<=0;endendendendendendendelse //倒计时程序beginif(!((shi1==0)&&(shi2==0)&&(fen1==0)&&(fen2==0)&&(miao2==0)&&(miao1==0)))beginmiao1<=miao1-1;if(miao1==0)beginmiao1<=9;miao2<=miao2-1;if(miao2==0)beginmiao2<=5;fen1<=fen1-1;if(fen1==0)beginfen1<=9;fen2<=fen2-1;if(fen2==0)beginfen2<=5;shi1<=shi1-1;if(shi1==0)beginshi1<=9;shi2<=shi2-1;if(shi2==0)beginshi2<=0;endendendendendendendendendendendmodule3.引脚排布:如下所示:引脚分布图二、实验结果(1)波形仿真在Quartus II中利用仿真波形进行功能或时序仿真的基本步骤如下:(1)创建新的矢量波形文件(*.vwf).(2)添加输入、输出节点。

(3)编译输入节点的波形。

(4)完成矢量波形文件的创建之后,用户即可以对设计进行功能或时序仿真。

(5)仿真启动后,状态窗口会同时自动打开,在状态窗口中显示仿真进度及所用时间。

相关文档
最新文档