文档视界 最新最全的文档下载
当前位置:文档视界 › verilog实验十七 数字时钟

verilog实验十七 数字时钟

实验十七数字时钟

一、实验目的

设计一个可以计时的数字时钟,其显示时间范围是00:00:00~23:59:59,且该时钟具有暂停计时、清零等功能。

二、实验器材

1、SOPC实验箱

2、计算机(装有Quartus II 7.0软件)

三、实验预习

1、了解时钟设计原理和各主要模块的设计方法。

2、提前预习,编写好主模块的verilog程序。

四、实验原理

一个完整的时钟应由4部分组成:秒脉冲发生电路、计数部分、译码显示部分和时钟调整部分。

1、秒脉冲发生:一个时钟的准确与否主要取决秒脉冲的精确度。可以设计分频电路对系统时钟50MHz进行50000000分频从而得到稳定的1Hz基准信号。定义一个50000000进制的计数器,将系统时钟作为时钟输入引脚clk,进位输出即为分频后的1Hz信号。

2、计数部分:应设计1个60进制秒计数器、1个60进制分计数器、1个24进制时计数器用于计时。秒计数器应定义clk(时钟输入)、rst(复位)两个输入引脚,Q3~Q0

(秒位)、Q7~Q4(十秒位)、Co(进位位)9个输出引脚。分、时计数器类似。如需要设置时间可再增加置数控制引脚Set和置数输入引脚d0~d7。

3、译码显示部分:此模块应定义控制时钟输入、时分秒计数数据输入共25个输入引脚。

8位显示码输出(XQ7-XQ0)、6位数码管选通信号(DIG0-DIG5)共12个输出引脚。在时钟信号的控制下轮流选择对时分秒输入信号进行译码输出至XQ7-XQ0,并通过DIG0-DIG5输出相应的选通信号选择数码管。每位显示时间控制在1ms左右。时钟信号可由分频电路引出。

五、实验内容

1、启动Quartus II建立一个空白工程并命名。

2、新建VHDL 源程序文件,输入程序代码并保存,进行综合编译,若在编译过程中发现错误,则找出并更正错误,直至编译成功为止。并生成图形符号文件。

代码:

module

shizhong(CLK,RST,EN,S1,S2,HOURH,HOURL,MINH,MI NL,SECH,SECL);

input CLK,RST,EN,S1,S2;

output[3:0] HOURH,HOURL,MINH,MINL,SECH,SECL; reg[3:0] SECL,SECH,MINL,MINH,HOURL,HOURH;

always @(posedge CLK or negedge RST)

if(!RST) begin

SECL<=0;SECH<=0;MINL<=0;MINH<=0;HOURL<=0; HOURH<=0;

end//系统复位

else if(EN) //EN为低电平时时钟暂停

begin

if(!S1) //调节小时

begin

if(HOURL==9)

begin HOURL<=0; HOURH<=HOURH+1;

end

else

begin

if(HOURH==2&&HOURL==3)

begin

HOURL<=0;HOURH<=0;

end

else HOURL<=HOURL+1;

end

end

else if(!S2) //调节分钟

begin

if(MINL==9)

begin

MINL<=0;

if(MINH==5) MINH<=0;

else MINH<=MINH+1;

end

else MINL<=MINL+1;

end

else if(SECL==9) //时钟正常跳动状态begin

SECL<=0;

if(SECH==5)

begin SECH<=0;

if(MINL==9)

begin

MINL<=0;

if(MINH==5)

begin

MINH<=0;

if(HOURL==9) begin

HOURL<=0;HOURH<=HOURH+1;end

else if(HOURH==2&&HOURL==3) begin HOURL<=0; HOURH<=0;end

else HOURL<=HOURL+1;

end

else MINH<=MINH+1;

end

else MINL<=MINL+1;

end

else SECH<=SECH+1;

end

else SECL<=SECL+1;

end

else

begin

HOURH<=HOURH;

HOURL<=HOURL;

MINH<=MINH;

MINL<=MINL;

SECH<=SECH;

SECL<=SECL;

end

endmodule

3、波形仿真验证。

正常计数

正常调时调分

末尾正常跳转

清零

暂停

六、实验小结

1、在做实验前应该先充分理解实验原理,并根据原理编写语言。

2、编写语言时要在注意语法错误的同时注意逻辑错误。

3、实验波形中存在毛刺,是因为存在竞争冒险现象。

多功能时钟设计实验报告

多功能数字钟设计实验报告 一.已知条件 Quartus II9.1软件 DE0实验开发装置 二.设计内容及要求 用Verilog HDL设计一个多功能数字钟 基本功能 时、分用数码管显示;秒用LED显示; 小时用同步12/24进制;分秒计数器用同步60进制; 手动校时、校分。 扩展功能 任意闹钟;(1分) 小时为12/24可切换。(1分) 报正点数(几点钟LED闪烁几下)。(1分) 另外:十进制加/减可逆计数器设计(p286)。(2分) 三.仿真环境说明 软件环境:Quartus II 9.1 硬件环境:硬件平台DE0,FPGA芯片为Cyclone ⅢEP3C16F484 本实验除时钟源、按键、拨动开关和显示器(数码管)之外的所有数字电路功能都是用VHDL 语言实现的。这样设计具有体积小、设计周期短(设计过程中即可实现时序仿真)、调试方便、故障率低、修改升级容易等特点。本设计采用自顶向下、混合输入方式(原理图输入——顶层文件连接和VHDL语言输入——各模块程序设计)实现数字钟的设计、下载和调试. 四.系统框图与说明

1.数字钟电路系统由主体电路和扩展电路两大部分所组成。 2. 秒计数器计到59后,下一秒到来时,秒计时器满60,接着清零后向分计数器进位;同样分计数器计满60后向小时计数器进位;小时计数器按照“24进制”规律计数,每当小时计到23小时时,当分计数和秒计数分别59,59时,即到23小时59分,59秒时候,时分秒全部清零,从新开始计数。小时计数器按照“12进制”规律计数,每当小时计到23小时时,当分计数和秒计数分别59,59时,即到12小时59分,59秒时候,时分秒全部清零,小时为1,从新开始计数。 3. 计数器的输出经译码器送显示器,显示器用,4个数码管表示,每两个数码管分别表示小时,分钟。秒钟用8个LED管显示,各4位用8421码显示一位十进制秒数。 模块: 1.counter60: 该模块为60进制计数器,计时输出为秒或分的数值.由3个输入端CP,nCR,EN控制该模块 2. counter24: 该模块为24-12转换计数器,计时输出小时的数值. change12_24为1时进行24hour计数,为0时进行12hour计数

基于FPGA的数字钟设计

基于FPGA的数字钟设计 摘要:现实生活中经常会出现需要用时间测定参数数值的情况,服务日常生活和生产。 基于FPGA设计数字电路产品已经成为当前的重要设计方法。本文设计选用了Quartus软件 环境,运用描述逻辑Verilog HDL,由上至下的模式,基于FPGA完成了数字时钟的设计方案。本次设计成果采用按键对闹钟的起止点进行控制,能够显示时,分,秒等并且能够实现整点 报时。其中的FPGA技术就是本次试验的亮点之一,其设计易于学习,各个模块分工清晰, 在模拟软件上很容易运行,还能够适配于许多种环境,因此总体的系统性能指标还是相当有 保证的。 关键词:数字钟;FPGA;Verilog HDL;Quartus 1.1 课题研究背景 在现代社会,数据集成电路已广泛运用于日常日常生活的各行各业。数据集 成电路也在不停拆换。从起初的整流管、电子管、大中小型集成电路发展趋势为 具备特大型集成电路和独特作用的各类专用型集成电路。可是,因为微电子技术 科技进步的迅猛发展,集成电路设计方案和生产制造工作中再也不会由半导体生 产商独立担负。系统软件室内设计师更喜欢立即设计方案专用型集成电路(ASIC) 处理芯片,并马上资金投入具体运用,因而发生了当场可编程逻辑机器设备(FPLD),在其中应用最普遍的是当场可编门阵列(FPGA)。 数字钟是一种选用数字电路设计技术性完成时、分、秒计时的装置,在完成 数据与此同时表明时、分、秒的准确时间和精确校正时,体积小、重量轻、抗干 扰能力强、对自然环境需要高、高精密、易于开发设计等与在办公系统系统软件 等众多行业运用非常普遍的传统式表壳式机械手表对比,数字表更精确、形象化,因为沒有机械设备装置,使用期限长。 1.2 国内外研究现状 近些年来已经有许多技术人员针对电子器件以及时钟等技术进行了研究,但 真正意义上的数字钟表起源于50年代或60年代。伴随着在我国数字钟表电源

数字电路时钟设计verilog语言编写

电子线路设计与测试 实验报告 一、实验名称 多功能数字钟设计 二、实验目的 1.掌握可编程逻辑器件的应用开发技术 ——设计输入、编译、仿真和器件编程; 2.熟悉一种EDA软件使用; 3.掌握Verilog设计方法;

4.掌握分模块分层次的设计方法; 5.用Verilog完成一个多功能数字钟设计。 三、设计内容及要求 1.基本功能 ?具有“秒”、“分”、“时”计时功能,小时按24小时制计时。 ?具有校时功能,能对“分”和“小时”进行调整。 2.扩展功能 ?仿广播电台正点报时。在59分51秒、53秒、55秒、57秒发出低音512Hz 信号,在59分59秒时发出一次高音1024Hz信号,音响持续1秒钟,在1024Hz音响结束时刻为整点。 ?定时控制,其时间为23时58分。 3.选做内容 ?任意时刻闹钟(闹钟时间可设置)。 ?自动报整点时数。 四.系统框图与说明 数字钟框图

1.数字钟电路系统由主体电路和扩展电路两大部分所组成。 2.秒计数器计满60后向分计数器进位,分计数器计满60后向小时计数器进位,小时计数器按照“24进制”规律计数。 3.计数器的输出经译码器送显示器。 五.设计步骤 1.列写多功能数字钟设计--层次结构图 多功能数字钟顶层模块 (clock_main.v) 小时计数器(counter24.v) 分钟计数器 (counter60.v) 秒钟计数器 (counter60.v) 6进制计数器(counter6.v) 10进制计数器 (counter10.v) 6进制计数器 (counter6.v) 10进制计数器 (counter10.v) 分频模块 (fre_divider.v)固定时刻 闹钟设定 校时模块 任意时刻闹钟(setclock.v) 整点报时模块 (baoshi.v) 2.拟定数字钟的组成框图,在Max+Plus II软件中,使用Verilog语言输入,采用分层次分模块的方法设计电路; 3.设计各单元电路并进行仿真; 4.对数字钟的整体逻辑电路图,选择器件,分配引脚,进行逻辑综合; 5.下载到Cyclone II FPGA实验平台上,实际测试数字钟的逻辑功能。

简易电子时钟设计 verilog FPGA

实验七、简易电子时钟设计 一、简易电子时钟设计实验程序: module clock(clk,clr,minute_h,minute_l,second_h,second_l); input clk; input clr; output [3:0] minute_h; //分钟的高位 output [3:0] minute_l; //分钟的低位 output [3:0] second_h; //秒钟的高位 output [3:0] second_l; //秒钟的低位 reg [3:0] minute_h; reg [3:0] minute_l; reg [3:0] second_h; reg [3:0] second_l; reg second_l_flag; //秒钟低位的进位标志reg second_h_flag; //秒钟高位的进位标志reg minute_l_flag; //分钟低位的进位标志reg minute_h_flag; //分钟高位的进位标志reg clk1; //实验时选为2hz的时钟频率 always @(posedge clk or negedge clr) begin if(!clr) clk1 <= 1'b0; else clk1 <= ~clk1; end //秒钟的低位 always @(posedge clk1 or negedge clr) if(!clr) begin second_l <= 4'b0000; second_l_flag <= 1'b0; end else if(second_l==4'b1000) begin second_l <= second_l + 1'b1; second_l_flag <= 1'b1; end else if(second_l < 4'b1000)

简单时钟 verilog设计

Verilog EDA课程设计(简单时钟电路) 2012年春季期 信息科学与工程学院 电科09-1班 黎富林 3090748113

一、实验目的 1.掌握可编程逻辑器件的应用开发技术——设计输入、编译、仿真和器件编程; 2.熟悉一种EDA软件使用; 3.掌握Verilog设计方法; 4.掌握分模块分层次的设计方法; 5.用Verilog完成一个多功能数字钟设计。 二、实验要求 1. 基本功能 ①具有“秒”、“分”、“时”计时功能,小时按24小时制计时。 ②具有校时功能,能对“分”和“小时”进行调整。 ③仿广播电台正点报时。在59分51秒、53秒、55秒、57秒发出低音512Hz 信号,在59分59秒时发出一次高音1024Hz信号,音响持续1秒钟,在1024Hz 音响结束时刻为整点。 2. 拓展功能 ①任意时刻闹钟 ②自动报整点时数 ③小时计数器改为12翻1 三、实验设计 1. 数字钟整体设计框图 2.数字钟模块设计

分和秒计数器都是模M=60的计数器,时计数器是一个模M=24的计数器 3.数字钟输入输出分配 Adj_Min 校分控制→按键K1 →8 Adj_Hour 校时控制→按键K2 →9 Set_Min 闹铃校分控制→按键K3 →10 Set_Hour 闹铃校时控制→按键K4 →11 Type 闹铃切换控制→按键K5 →16 Bell 蜂鸣器控制信号→按键K6 →17 Chg 实现24、12进制转换控制→按键K7 →18 Second0- Second7秒输出信号→数码管1,2 →21-25,27-29 Minute0- Minute7分输出信号→数码管4,5 →38,39,47-52 Hour0- Hour7小时输出信号→数码管7,8 →60-62,64-67,69 四.各工作模式仿真波形 1.时钟正常计时波形 00:00:59时刻波形 00:59:59时刻波形 23:59:59时刻波形

数字式秒表verilog语言实现

一、实验目的 (1)熟练掌握分频器、各种进制的同步计数器的设计。 (2)熟练掌握同步计数器的级联方法。 (3)掌握数码管的动态显示驱动方式。 (4)掌握计数器的功能和应用。 (5)理解开关防颤动的必要性。 (6)掌握简单控制器的设计方法。 二、实验内容和原理 1、实验设计要求: (1)计时范围0’0’.0’’~59’59’.9’’,分辨率为0.1s,用数码管显示计时值。 (2)秒表有一个按键开关:当电路处于“初始”状态时,第一次按键,计时开始(“计时”状态);再次按键。计时停止(“停止”状态);第三次按键,计时器复位为0’0’.0’’,且电路恢复到“初始”状态。 2、根据设计要求,可画出秒表电路的原理框图,如图1-2所示,秒表电路由时钟管理模块(DCM)、分频器模块、按键处理模块、控制器、计时模块和显示模块组成。 图1-2 秒表电路的原理框图 (1)DCM模块 由于数字钟为低速电路,而XUP Virtex-II Pro 开发系统只提供100MHz主时钟,因此需插入DCM分频模块以降低系统的工作时钟,从而提高系统的可靠性。DCM可采用16分频,输出6.25MHz的sys_clk信号作为系统的主时钟。 ISE生成DCM内核的Verilog HDL 代码: VgaDCM DCMInst( .CLKIN_IN(clk), .CLKDV_OUT(sys_clk), .CLKIN_IBUFG_OUT(),

.CLK0_OUT(), .LOCKED_OUT()); (2)分频器模块 产生用于计时的1/10秒脉冲信号pulse10,频率为10Hz ; 产生用于显示模块的扫描脉冲信号pulse400,频率为400Hz 。 1/10秒脉冲信号pulse10和扫描脉冲信号pulse400的脉冲宽度为一个系统主时钟信号sys_clk 的周期。 分频器模块原理框图如图1-3所示,先设计一个15625分频器,产生400Hz 的扫描信号pulse400,再由pulse400控制40分频器产生1/10秒脉冲信号pulse10。 “ 分频器模块的Verilog HDL 代码: module div(sys_clk,sec,scan); //分频器模块 input sys_clk; output sec,scan; div_n1 u1(.cout(scan),.cin(1'b1),.clk(sys_clk)); //按原理框图级联分频器 div_n2 u2(.cout(sec),.cin(scan),.clk(sys_clk)); endmodule module div_n1(cout,cin,clk); // 15625进制计数器,产生400Hz 扫描信号 parameter n=15625; parameter counter_bits=14; output cout; input cin,clk; reg [counter_bits:1]qout=0; assign cout=(qout==(n-1))&cin; //进位 always@(posedge clk) begin if(cin) begin if(qout==(n-1)) qout<=0; else qout<=qout+1;//计数 装 订 线

基于verilogHDL的数字时钟

***** 顶层模块信号定义: clk : 基准时钟信号输入; keysel : 校时状态/正常计时状态选择键输入; key_s : 校秒信号选择键输入; key_m : 校分信号选择键输入; key_h : 校时信号选择键输入; keyclr : 计时清零键; keyen : 计时开始键; buzzout : 声响输出; sled : 4位数码管段码输出; sl : 4位数码管位码输出; seg : 单个数码管输出; ********************************************************* ******/ module clock(clk,keysel,key_s,key_m,key_h,keyen,keyclr,sled,sl,seg,buzzout); output[7:0] sled; output[3:0] sl; output[7:0] seg; output buzzout; input clk; input keysel,key_s,key_m,key_h,keyen,keyclr; reg[24:0] count; wire[23:0] min; wire sec; wire sec_s,sec_m,sec_h,sec_narmal; divclk Q1(clk,sec_narmal,sec_s,sec_m,sec_h); modify Q2(clk,keysel,key_s,key_m,key_h,sec,sec_narmal,sec_s,sec_m,sec_h); counttime Q3(sec,keyclr,keyen,min); display Q4(clk,sec,min,sled,sl,seg); music Q5(clk,min,buzzout,sec_narmal); endmodule

多功能数字钟设计实验报告XilinxEDABasys2华中科技大学HUST

多功能数字钟设计实验报告 院系:电子与通信工程学院 :郭世康 班级:1301 学号:U202113639 指导教师:唐祖平

一、实验目标 掌握可编程逻辑器件的应用开发技术 ——设计输入、编译、仿真和器件编程 熟悉EDA软件使用 掌握Verilog HDL设计方法 分模块、分层次数字系统设计 二、实验容要求 根本功能 能显示小时、分钟、秒钟〔时、分用显示器,秒用LED〕 能调整小时、分钟的时间 提高要求 任意闹钟;〔1分〕 小时为12/24进制可切换〔1分〕 报正点数〔几点钟LED闪烁几下〕〔1分〕 三、实验条件 Xilinx工程环境,win7操作系统,BASYS2实验板。 四、实验设计 1.设计分析 数字钟大体上由2个60进制计数器,1个24进制计数器构成,中间有数据选择器进展连接。为实现提高功能,还需12进制计数和整点判断模块。下列图为数字钟层次构造图。

2. 实验原理 振荡器产生稳定的高频脉冲信号,作为数字钟的时间基准,再经分频器输出标准秒脉冲。秒计数器计满60后向分计数器进位,分计数器满60后向小时计数器进位,小时计数器按24或12进制规律计数。计数器的输送译码显示电路,即可显示出数码〔即时间〕。计时出现误差时可以用校时电路进展校时和校分。小时显示〔12\24〕切换电路、仿电台报时、定时闹钟为扩展电路,只有在计时主体电路正常运行的情况下才能进展功能扩展。本实验采用Verilog HDL进展描述,然后用FPGA/CPLD实现,使用部50MHz 晶振作为时钟电路。 3. 逻辑设计 实现上述功能的Verilog HDL 程序如下。实现根本功能的程序分为两层次四个模块,底层有3个模块构成,即6进制计数器模块,10进制计数器模块和24进制计数器模块,顶层有一个模块,他调用底层的3个模块完成数字中的计时功能。 module timeclock(Hour,Minute,Second,CP,nCR,EN,Adj_Min,Adj_Hour,number,Light,clk,temp,c hange,AMTM,dingdong); output [7:0] Hour,Minute,Second; output [3:0] Light,temp; output [6:0] number;

基于FPGA的VerilogHDL数字钟设计-

基于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程序设计-数字时钟

EDA课程Verilog程序设计-数字时钟 module clock(clk,rst,en,madd,hadd,s,m,h); input clk,rst,en; input madd,hadd; output [5:0] s,m,h; reg [5:0] s,m,h; always @(posedge clk) begin if(!rst) begin s<=0; m<=0; h<=0; end else if(!en) begin if(!hadd) begin if(h==23) h<=0;else h<=h+1; end else if(!madd) begin if(m==59) m<=0; else m<=m+1; end else if(s==59) begin s<=0; if(m==59) begin m<=0; if(h==23) h<=0; else h<=h+1; end else m<=m+1; end else s<=s+1; end else begin s<=s; m<=m; h<=h; end end endmodule /* module add1(clk,h); input clk; output [5:0] h; reg [5:0] h; always @(posedge clk) if(h==23) h<=0; else h<=h+1; endmodule module add2(clk,m); input clk; output [5:0] m; reg [5:0] m; always @(posedge clk) if(m==59) m<=0; else m<=m+1; endmodule /*

Verilog 实验报告 秒表

Verilog HDL实验报告基于Verilog HDL的数字秒表 班级:信科14-04班 姓名:温华强 学号:08143080 教师:王冠军

基于Verilog HDL的数字秒表 一、秒表功能 1. 计时范围:00:00:00—59:59:99 2. 显示工作方式:八位数码管显示 3.具有暂停和清零的功能 二、实验设计原理 1、秒表的逻辑结构较简单,它主要由十进制计数器、六进制计计数器、分频器、数据选择器和显示译码器组成,在整个秒表中最关键的是如何获得一个精确的100HZ计时脉冲,除此之外,整个秒表还需有一个启动信号和一个清零信号,以便秒表能随意停止、启动以及清零复位。 2、秒表有共有8个输出显示,其中6个显示输出数据,分别为百分之一秒,十分之一秒,秒,十秒,分,十分,所以共有6个计数器与之相对应,另外两个为间隔符,显示‘-’。8个计数器的输出全都为BCD码输出,这样便与同显示译码器连接。 3、可定义一个24位二进制的寄存器hour用于存放8个计数器的输出,寄存器从高位到低位每连续4位为一组,分别存放百分之一秒,十分之一秒,间隔符,秒,十秒,间隔符,分,十分,由频率信号输出端输出频率为100HZ的时钟信号输入到百分之一秒模块的时钟端ckl,百分之一秒模块为100进制的计数器,当计数器到“1001”时,百分之一秒模块清零,同时十分之一秒模块加1,十分之一秒模块也为100进制的计数器,当计数到“1001”时,十分之一模块清零,同时秒模块加1;以此类推,一直到分模块计数器到59进59。 秒表计数单位与对应的输出信号 4、为了消除按键消抖问题,定义寄存器key-inner来存储按键key的输入信号,key-flag作为启动/暂停的转换标志,key-inner[0]出现一个下降沿时,key-flag取反一次,当key-flag为0时计数器启动,1时计数器暂停,当key-flag 为1同时key-inner[1]为9时,计数器清零。

Verilog数字钟课程设计

课程设计报告课程设计题目:数字钟系统设计 学号:2 学生姓名:刘新强 专业:通信工程 班级:1421302 指导教师:钟凯 2016年1月4日

FPGA( Field Programmable Gate Array,现场可编程门阵列),一种可编程逻辑器件,是目前数字系统设计的主要硬件基础。可编程逻辑器件的设计过程是利用EDA 开发软件和编程和编程工具对器件进行开发的过程。 通过modelsim软件下采用verilog语言实现数字钟系统设计,实现了以下几个方面的功能: 1.数字钟基本计时功能 2.数字钟校时功能 3.数字钟系统报时功能 关键词:FPGA ;VHDL;数字钟

一、FPGA与VHDL简介 (1) 1、FPGA与简介 ........................................................................................... 2、VHDL简介 ............................................................................................... 二、课程设计的目的与要求 (2) 1、教学目的.................................................................................................................... 2、教学要求.................................................................................................................... 3、数字钟系统设计要求................................................................................................ 三、设计方案 (2) 1、系统框图.................................................................................................................... 2、模块说明.................................................................................................................... 四、仿真与实现 (3) 1、数字钟基本计时功能实现........................................................................................ 2、数字钟校时功能实现................................................................................................ 3、数字钟系统报时功能实现........................................................................................ 五、实验心得 (4) 六、参考文献 (4) 七、代码 (5)

HDL实验数字钟的设计

一.实验目的 利用Verilog HDL语言自顶向下的设计方式设计时钟,并通过仿真,将程序通过下载到芯片后,用于实际的数字钟显示中,实现大体的计时显示和设置的功能。 二.功能 计时功能包括时、分、秒的计时,别离类似于模1二、模60、模60计数器。输入变量:时钟clk,直接清零reset。输出变量:小时计时变量为q[15:8],其中q[15:12]为小时的十位,q[11:8]为小时的个位;q[7:0]为分计时变量,其中q[7:4]为分的十位,q[3:0]为分的个位,上述计时变量均采纳8421BCD码 三.实验程序 module clock3(clk,decodeout0,decodeout1,decodeout2,decodeout3,decodeout4,decodeout5); output [6:0] decodeout0; output [6:0] decodeout1; output [6:0] decodeout2; output [6:0] decodeout3; output [6:0] decodeout4; output [6:0] decodeout5; input clk; reg clk_1Hz; reg[23:0] count=0; reg[7:0] qout; reg[7:0] qout1;

reg[7:0] qout2; reg[6:0] decodeout0; reg[6:0] decodeout1; reg[6:0] decodeout2; reg[6:0] decodeout3; reg[6:0] decodeout4; reg[6:0] decodeout5; wire cout,cout1; always @(posedge clk) begin if (count==3499) begin count<=0; clk_1Hz<=~clk_1Hz; end else count<=count+1;//计数 end always @(posedge clk_1Hz) //clk 上升沿时刻计? begin begin if(qout[3:0]==9) //低位是不是为9,是那么 begin qout[3:0]<=0; //回0,并判定高位是不是为5 if (qout[7:4]==5) qout[7:4]<=0; else qout[7:4]<=qout[7:4]+1; //高位不为5,那么加1 end

FPGA电子秒表计时器verilog实验报告

华中科技大学 《电子线路设计、测试与实验》实验报告 实验名称:用EDA技术设计多功能数字钟 院(系):电子信息与通信学院 专业班级: 姓名: 学号: 时间: 地点: 实验成绩: 指导教师: 2018 年 3 月 27 日

一. 实验任务及要求 基本要求:电子秒表 1)可计时的范围0.00s~99.99s(显示用七段数码管,显示小数点)。 2)能够暂停,能够在计时结束使用灯光或者声音报警提示。 提高要求: PWM波产生器 1)可输出占空比按10%递进的PWM波(示波器测量查看)。 二.实验条件 实验板:Nexys4 DDR 实验软件:ISE14.7,ModelSim 三.预习要求 1.NEXYS 4 DDR开发板说明。 2.有限状态机。 3.数码管扫描显示。 四.实验原理 1.电子秒表 设计框图

模块分析 1)分频模块(Divider.v) 将系统给定的100MHZ 的频率通过分频模块变成100Hz 的clk(用来计时)和4000Hz的 clk_seg(用来扫描数码管)。 代码如下: 原理:输入的100MHz 的信号为CLK_100MHz,每当CLK_100MHz 上升沿来时,Count_DIV 计数加1,且每当Count_DIV =100M/(2*100)=0.5M 时,CLK_Out取反一次并且Count_DIV <=0,这样会得到一个100Hz 的信号。 当需要得到4000Hz的clk_seg时,在顶层模块中修改parameter OUT_Freq=4000;这样,每当Count_DIV=100M/(2*4000)=12500时,CLK_Out取反一次并且Count_DIV <=0,这样会得到一个4000Hz 的信号。 在主程序中修改参数如下:

Verilog(clock)

电子钟:程序的设计模块有:时钟初始化模块、时钟工作模块、时钟设置模块、闹钟设置模块、闰年的月份天数判断模块、数码管显示模块、闹钟铃声模块及其它的设置模块。程序使用8个输入分别与8个按键连接,用按键8对应时钟工作状态(work_state),当work_state为0时,时钟正常工作,当work_state为1时,进入时钟设置状态。按键7对应输入端口display_set控制时钟显示状态(display_state),每按2次(用于产生上升沿触发)则数码管的输出不同。Display_state与work_state相结合使用,以区分设置的参数。按键6~4对应输入个脚in_set,该参数共有三位,用以表示三个状态:state_yorh (设置年或小时)、state_morm (设置月份或分钟)、 state_dors(设置日期或秒钟)。按键3~2对应数值设置端口up各down。Up用于产生上升沿触发,当down为0时,则每一个上升沿产生时,相应的参数加1,当down为1时,则每一个上升沿产生时,相应的参数减1。按键1与输入端口clock_on相连,用于闹钟的开与关,当 clock_on为1时开闹钟,否则关闹钟。扬声器与输出端口speaker相连,用于输出闹钟铃声。 是用GW48教学实验箱仿真的 、电子钟 module clock(work_state,clock_on,clk_6MHz,clk_4Hz,in_set,display_set,clk_1024Hz,up,down,out1,out2,out3,out 4,out5,out6,out7,out8,speaker); input work_state,clk_1024Hz,up,down,display_set,clk_6MHz,in_set,clock_on,clk_4Hz; output out1,out2,out3,out4,out5,out6,out7,out8,speaker; wire[2:0] in_set; reg[3:0] out1,out2,out3,out4,out5,out6,out7,out8; reg[2:0] display_state; reg[7:0] hour,minute,second,year,month,day,day_max; reg[7:0] hour_set,minute_set,second_set,day_set,month_set,year_set,day_set_max; integer century=20; integer i=0; reg speaker; reg[7:0] clock_hour,clock_minute,clock_second; reg[3:0] high,med,low; reg[13:0] divider,origin; reg[7:0] counter; reg out; wire carry; //*****各初始值设置时对应的状态********// parameter state_yorh=3'b100, //设置年或小时对应的按键状态 state_morm=3'b010, //设置月或分对应的按键状态 state_dors=3'b001; //设置日或秒对应的按键状态 //***初始化时钟:08年08月08日00:00:00*****//

(完整word版)Verilog数字钟设计实验报告

基于FPGA实现多功能数字钟 ——电子系 071180094 王丛屹 摘要 本文利用Verilog HDL语言自顶向下的设计方法设计多功能数字钟,并通过ISE完成综合、仿真.此程序通过下载到FPGA 芯片后,可应用于实际的数字钟显示中,实现了基本的计时显示和设置,调整时间,闹钟设置的功能. [关键词]FPGA;Verilog HDL;数字钟

一、多功能数字钟的设计 设计一个多功能数字时钟,具有时分、秒计数显示、闹钟功能。能够利用按键实现对闹钟时间的设定并在当前显示时间到时后能够进行闹钟提示.能够利用按键实现“较时”、“较分"功能,随时对数码管的显示进行校正和校对.数字中系统主要由系统时钟,三个功能按键(mode,turn ,change ),FPGA ,数码管和蜂鸣器部分组成。 图: 多功能数字钟总体设计模块 以下就各个模块说明其功能 1. 分频模块

由于FPGA内部提供的时钟信号频率大约为50MHz,在这需要将它转化成1Hz的标准时钟信号供数字钟的计时显示;在此我采用了级联分频法. RTL图如下: 代码如下:

always @(posedge clk_1) if ( cnt2 〈156/2—1)/////////////////////////////////////100分频,生成10000Hz信号begin cnt2 〈= cnt2 + 1; end else begin cnt2 〈= 0; clk_2 <= ~clk_2; end always @(posedge clk_2) if ( cnt5 〈10/2-1) /////////////////////////////////////////10分频,生成1kHz标准信号begin cnt5〈= cnt5 + 1; end else begin cnt5〈= 0; clk_1k〈= ~clk_1k; end always @(posedge clk_2) if ( cnt3 < 100/2—1)//////////////////////////////////////////100分频,生成100Hz信号begin

数字钟verilog

目录 1 设计任务及要求 (1) 2 总体设计分析 (1) 3 各模块设计 (2) 3.1 数字钟主体部分 (2) 3.1.1小时计数器 (2) 3.1.2 分、秒计数器 (3) 3.2 分频部分 (4) 3.3 秒表模块 (5) 3.4 闹钟模块 (5) 3.5 时间设置模块 (7) 3.6 报时模块 (7) 3.7 控制显示模块 (8) 3.8 顶层模块 (11) 4 总结 (11) 4.1 本次作业遇到的问题 (11) 4.2 建议和总结 (12) 附件 (13)

1 设计任务及要求 本次大作业的要求为设计一个多功能数字钟,其具体要求如下: 1.有基础的实时数字钟显示功能,即时、分、秒的正常显示模式,并且在此基础上增加上,下午显示。 2.手动校准。按动方式键,将电路置于校时状态,则计时电路可用手动方式校准,每按一下校时键,时计数器加1;按动方式键,将电路置于校分状态,以同样方式手动校分。 3.整点报时,仿中央人民广播电台整点报时信号,从59分50秒起每隔2秒发出一次低音“嘟”信号(信号鸣叫持续时间1S,间隙时间1S)连续5次,到达整点(00分00秒时),发一次高音“哒”信号(信号持续时间1S)。 4.闹时功能,按动方式键,使电路工作于预置状态,此时显示器与时钟脱开,而与预置计数器相连,利用前面手动校时,校分方式进行预置,预置后回到正常模式。当计时计至预置的时间时,扬声器发出闹铃信号,时间为半分钟,闹铃信号可以用开关“止闹”,按下此开关后,闹铃声立刻中止,正常情况下应将此开关释放,否则无闹时作用。 5.秒表功能。按start键开始计秒,按stop键停止计秒并保持显示数不变,直到复位信号加入。 2 总体设计分析 设计的总体部分按照要求可以分为基本的数字时钟显示、手动校准、整点报时、闹钟功能和秒表功能5大部分。其总体设计框图如下: 图1 总体设计框图 其中整点报时跟闹钟部分要求不同频率的声响,所以需要加入分频器模块

基于Verilog HDL设计的数字时钟

深圳大学考试答题纸 (以论文、报告等形式考核专用) 二○18 ~二○19 学年度第一学期 课程编 1602080001 评分刘春平课程名称主讲教师硬件描述语言与逻辑综合号 学电子科学与技术16级1班姓名李思豪专业年级号 设计的数字时钟Verilog HDL基于题目: 摘要:本文利用V erilog HDL语言自顶向下的设计方法设计多功能数字钟,突出了其作为硬件描述语言的良好的可读性、可移植性和易理解等优点,并通过Altera QuartusⅡ6.0和cyclnoe II EP2C35F672C6完成综合、仿真。此程序通过下载到FPGA芯片后,可应用于实际的数字钟显示中 关键词:Verilog HDL;硬件描述语言;FPGA1

目录 一、实验任务 (3) 实验目的 (3) 实验要求 (3) 二、设计思路 (3) 三、实验结果 (10) 四、总结与收获 (14)

2 一、实验任务 实验目的 1.深入了解基于quartus ii工具的复杂时序逻辑电路的设计。 理解并熟练利用EDA工具进行综合设计。 2.熟练掌握芯片烧录的流程及步骤。3. 掌握Verilog HDL 语言的语法规范及时序电路描述方法。4. 实验要求 设计一个带秒表功能的24 小时数字钟,它包括以下几个组成部分: ①显示屏,由6 个七段数码管组成,用于显示当前时间(时:分,秒)或设置的秒表时间; ②复位键复位所有显示和计数 ③设置键,用于确定新的时间设置,三个消抖按键分别用于时分秒的设置 ④秒表键,用于切换成秒表功能 基本要求 (1) 计时功能:这是本计时器设计的基本功能,每隔一秒计时一次,并在显示屏上显示当前时间。 (2) 秒表功能:设置时间,进行倒计时功能 (3) 设置新的计时器时间:按下设置键后,用户能通过时分秒三个消抖按键对时间进行设置。 二、设计思路 、总原理框图:13 原理如上图所示,时钟由分频器模块,数码管显示模块,计时器模块三个模块构成,每个模块实现如下的不同功能,最后通过在顶层模块的调用,来实现时钟功能。

基于verilog的数字时钟设计

基于verilog的数字时钟设计

课程设计 基于Verilog HDL的数字秒表设计 系别:物理与电气工程学院 专业:微电子学 班级:<2>班 成员:

目录 一、前言 (3) 二、实验目的 (3) 三、功能设计 (3) 四、用V e r i l o g描述电路.................................................................................................... 4 4.1时钟调校及计时模块 (4) 4.2整数分频模块 (8) 4.3时钟信号选择模块……………………………………………………………………………………… 8

使其能够通过电脑下载到芯片,正常工作。 (4)实际操作Quartus II软件,复习巩固以前所学知识。 三、功能设计 数字钟是一个常用的数字系统,其主要功能是计时和显示时间。这里通过一个数字钟表的模块化设计方法,说明自顶向下的模块化设计方法和实现一个项目的设计步骤。这里实现的电子表具有显示和调时的基本功能,可以显示时、分秒和毫秒,并通过按键进行工作模式选择,工作模式有4种,分别是正常计时模式、调时模式、调分模式、调秒模式。 构成电子表的基本基本模块有四个,分别是时钟调校及计时模块myclock、整数分频模块int_div、时钟信号选择模块clkgen和七段显示模块disp_dec。 四、用Verilog实现电路 4.1时钟调校及计时模块 时钟调校及计时模块myclock实现的功能是根据当前的工作状态进行时、分、秒的调整或正常的计时。代码端口说明如下: 输入信号: RSTn——复位信号 CLK——100Hz时钟信号 FLAG[1:0]——工作模式控制信号,模式定义为:00表示正常显示,01表示调时,10表示调分,11表示调秒; UP——调校模式时以加1方式调节信号; DN——调校模式时以减1方式调节信号。 输出信号: H[7:0]——“时”数据(十六进制); M[7:0]——“分”数据(十六进制);

相关文档