FPGA Verilog时钟设计
基于FPGA的数字钟设计(VerilogHDL语言实现)
基于FPGA的数字钟设计摘要:本设计为一个多功能的数字钟,具有时、分、秒计数显示功能,以12小时循环计数。
本设计采用EDA技术,以硬件描述语言VerilogHDL为系统逻辑描述手段设计文件,在QUARTUS II工具软件环境下,采用自顶向下的设计方法,由各个基本模块共同构建了一个基于FPGA的数字钟。
系统主芯片采用EP1K100QC208-3,由时钟模块、控制模块、计时模块、数据译码模块、显示以及报时模块组成。
经编译和仿真所设计的程序,在可编程逻辑器件上下载验证,本系统能够完成时、分、秒的分别显示,由按键输入进行数字钟的清零功能。
关键词:数字钟;硬件描述语言;VerilogHDL;FPGA;引言:现代社会的标志之一就是信息产品的广泛使用,而且是产品的性能越来越强,复杂程度越来越高,更新步伐越来越快。
支撑信息电子产品高速发展的基础就是微电子制造工艺水平的提高和电子产品设计开发技术的发展。
前者以微细加工技术为代表,而后者的代表就是电子设计自动化(electronic design automatic,EDA)技术。
本设计采用的VerilogHDL是一种全方位的硬件描述语言,具有极强的描述能力,能支持系统行为级、寄存器传输级和逻辑门级三个不同层次的设计;支持结构、数据流、行为三种描述形式的混合描述、覆盖面广、抽象能力强,因此在实际应用中越来越广泛。
ASIC是专用的系统集成电路,是一种带有逻辑处理的加速处理器。
而FPGA是特殊的ASIC芯片,与其他的ASIC芯片相比,它具有设计开发周期短、设计制造成本低、开发工具先进、标准产品无需测试、质量稳定以及可实时在线检测等优点。
在控制系统中,键盘是常用的人机交换接口,当所设置的功能键或数字键按下的时候,系统应该完成该键所设置的功能。
因此,键信息输入是与软件结构密切相关的过程。
根据键盘的结构不同,采用不同的编码方法。
但无论有无编码以及采用什么样的编码,最后都要转换成为相应的键值,以实现按键功能程序的转移。
数字闹钟的FPGA实现(Verilog)
闹钟的FPGA实现一.设计目的及总述:本次实验选择用FPGA实现一个闹钟。
它的功能有:1.时钟2.可以用按键快慢调整时钟时间3.可以设定闹钟并在时间到达设定闹钟时间时响起卡农音乐一分钟4.整点报时,响一声来报时系统一共有五个按键,分别命名为switch_mode,switch_enter,switch_pick,switch_down,switch_up。
时钟,调时,设定闹钟通过LCD1602进行显示,整点报时声和闹钟声通过蜂鸣器发出。
其中:本次实验的闹钟用Verilog语言进行设计,由于实验在Xilinx开发板上LCD1602显示模块几经调试显示都有问题,而实验的截止日期又极其接近了故最后选择在我购买的Altera 开发板上进行实现。
由于Altera公司FPGA使用Quartus II软件进行编译下载,所以把原来在ISE软件上以schematic方式实现的顶层原理图对应自动生成的verilog代码更改后添加进Quartus工程中使用。
所需要的修改仅为将顶层原理图中的OR2例化语句改为or(输出,输入1,输入2),并把系统时钟设为50MHZ,其他各模块代码不需进行更改。
二.仿真过程在几经更改之下,更由于在两种系统下的调试,使得仿真变得难以进行,此次试验针对各模块(不包括分频模块:fre_divider)的仿真结果难以找到了而且ISE9.1i十分难用,经常报各种错,因此在这里只选择其中比较重要的控制模块(controller)和时钟模块(timer),调时(快慢)模块(time_adjust)的仿真结果以说明本实验的仿真过程。
Controller:Timer:Time_adjust:三.系统总图即各模块Verilog代码和说明(参考对代码的详细注释):1.各模块之间连线图和对应的Verilog代码:Clock.v:module clock(clk_50m, //在本次实验所用的Altera开发版上,系统时钟为50MHZ rst, //复位键switch_down, //向下调整,设定switch_enter, //确认完成调整,设定switch_mode, //选择系统出于何种模式:时钟,调时,设定闹钟switch_pick, //选择调整,设定的对象:时,分,秒// switch_up, //向上调整,设定beep, //蜂鸣器lcd_d, //lcd1602 d7-d0管脚lcd_e, //lcd1602 en管脚lcd_rs, //lcd1602 rs管脚lcd_rw); //lcd1602 rw管脚input clk_50m;input rst;input switch_down;input switch_enter;input switch_mode;input switch_pick;//input switch_up;output beep;output [7:0] lcd_d;output lcd_e;output lcd_rs;output lcd_rw;//以下声明的线型量用于连接系统各模块 wire [7:0] XLXN_4;wire [7:0] XLXN_5;wire [7:0] XLXN_6;wire [7:0] XLXN_7;wire [7:0] XLXN_8;wire [7:0] XLXN_9;wire [7:0] XLXN_10;wire [7:0] XLXN_11;wire [2:0] XLXN_14;wire XLXN_15;wire XLXN_16;wire XLXN_17;wire XLXN_19;wire [5:0] XLXN_20;wire [5:0] XLXN_21;wire [5:0] XLXN_22;wire XLXN_24;wire [5:0] XLXN_33;wire [5:0] XLXN_34;wire XLXN_36;wire [5:0] XLXN_37;wire [5:0] XLXN_39;wire [5:0] XLXN_40;wire XLXN_50;wire XLXN_51;reg clk_25m;wire switch_up;assign switch_up=1;//由于系统本身是设计在实验室的板子上(25MHZ)上,所以现在把50MHZ系统时钟//二分频得到25MHZ时钟,这样就不用更改各子模块always@(posedge clk_50m)beginif(!rst)clk_25m<=0;elseclk_25m<=~clk_25m;end//控制模块,控制系统出于三种状态之一:时钟,调时,设定闹钟。
基于FPGA的数字钟设计
基于FPGA的数字钟设计摘要:现实生活中经常会出现需要用时间测定参数数值的情况,服务日常生活和生产。
基于FPGA设计数字电路产品已经成为当前的重要设计方法。
本文设计选用了Quartus软件环境,运用描述逻辑Verilog HDL,由上至下的模式,基于FPGA完成了数字时钟的设计方案。
本次设计成果采用按键对闹钟的起止点进行控制,能够显示时,分,秒等并且能够实现整点报时。
其中的FPGA技术就是本次试验的亮点之一,其设计易于学习,各个模块分工清晰,在模拟软件上很容易运行,还能够适配于许多种环境,因此总体的系统性能指标还是相当有保证的。
关键词:数字钟;FPGA;Verilog HDL;Quartus1.1 课题研究背景在现代社会,数据集成电路已广泛运用于日常日常生活的各行各业。
数据集成电路也在不停拆换。
从起初的整流管、电子管、大中小型集成电路发展趋势为具备特大型集成电路和独特作用的各类专用型集成电路。
可是,因为微电子技术科技进步的迅猛发展,集成电路设计方案和生产制造工作中再也不会由半导体生产商独立担负。
系统软件室内设计师更喜欢立即设计方案专用型集成电路(ASIC)处理芯片,并马上资金投入具体运用,因而发生了当场可编程逻辑机器设备(FPLD),在其中应用最普遍的是当场可编门阵列(FPGA)。
数字钟是一种选用数字电路设计技术性完成时、分、秒计时的装置,在完成数据与此同时表明时、分、秒的准确时间和精确校正时,体积小、重量轻、抗干扰能力强、对自然环境需要高、高精密、易于开发设计等与在办公系统系统软件等众多行业运用非常普遍的传统式表壳式机械手表对比,数字表更精确、形象化,因为沒有机械设备装置,使用期限长。
1.2 国内外研究现状近些年来已经有许多技术人员针对电子器件以及时钟等技术进行了研究,但真正意义上的数字钟表起源于50年代或60年代。
伴随着在我国数字钟表电源电路销售市场的迅速发展趋势,尤其是十二五阶段经济发展方法这一领土主权主旋律早已明确,与之有关的关键生产制造技术运用和产品研发将变成领域公司关心的焦点。
基于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分别为系统使能(暂停),时钟清零,校时,校分开关。
毕业论文-基于fpga(verilog)的数字式秒表设计说明书
基于FPGA的数字式秒表一、设计任务及要求秒表由于其计时精确,分辨率高(0.01 秒),在各种竞技场所得到了广泛的应用,本次设计的任务就是设计一个基于FPGA 的数字式秒表。
1、基本要求:(1)性能指标:秒表的分辨率为0.01 秒,最长计时时间为99.99 秒;(2)设置启/停开关和复位开关(计数控制器):启/停开关S1 的使用方法与传统的机械计时器相同,即按一下启/停开关,启动计时器开始计时,再按一下启/停开关计时终止。
复位开关S2 用来使计时器清0,复位开关可以在任何情况下使用,即使在计时过程中,只要按一下复位开关,计时进程应立即终止,并对计时器清零。
(开关按下为0,弹起为1)。
(3)秒表的计时基准信号:以周期为0.01 秒(频率100HZ)的计时脉冲作为一个比较精准的计时基准信号输入到0.01 秒位计数器的时钟端;在设计中采用分频器把1000HZ 的时钟信号转换为100HZ 的计时基准信号,其分频系数为10。
(4)数码管动态显示:七段数码管采用动态扫描的方式显示,扫描需要一个比较高频率的信号,本次设计选用1000HZ 。
为了得到1000Hz 信号,必须对输入的时钟信号50MHZ 进行分频。
显示模块共用11 个管脚,其中8 个用于连接8 个数码管的七段LED,还有 3 个管脚用于选择点亮哪个数码管,每隔很短的一段时间8 个数码管交替点亮,依次循环,动态显示,由于人眼的视觉残留,可以观察到连续的测量计数器的计数值。
上电后,八个数码管中左边四个显示自己的学号后四位,在运行过程中一直不变;右边四个显示计时时间,范围0000~9999,利用两个按钮S1、S2 控制计时。
2、提高要求:加入小数点,计时数码管显示范围00.00~99.99。
二、系统原理框图三、电路实现Array四、功能模块1、分频器(以10分频器为例)(1)Verilog HDL语言程序module fp10(Clk,Out);input Clk;output Out;reg Out;reg [3:0] Cout;reg Clk_En;initialOut<=0;always @(posedge Clk )beginCout <= (Cout == 4'd10) ? 4'd0 : (Cout + 4'd1);Clk_En <= (Cout >= 4'd5) ? 1'd1 : 1'd0;Out<=Clk_En;endEndmodule(2)模块化电路(3)波形仿真由波形仿真图可以看出,10分频器将1000Hz的脉冲分频成100Hz的脉冲。
简单的数字时钟(verilog设计)
设计目标与要求
设计一个简单的数字 时钟,能够显示时、 分、秒。
时钟应具有可靠性、 稳定性和可扩展性。
要求使用Verilog语 言实现,并能够在 FPGA或ASIC上实现。
设计思路及流程
• 设计思路:采用模块化设计方法,将数字时钟划分为不同的模 块,如计数器模块、显示模块等。每个模块负责实现特定的功 能,并通过接口与其他模块进行通信。
设计思路及流程
设计流程 1. 确定设计需求和目标。 2. 制定设计方案和计划。
设计思路及流程
3. 编写Verilog代码,实现各个模块的功能。 5. 根据测试结果进行调试和优化。
未来改进方向探讨
提高计时精度
通过改进算法或采用更高 性能的硬件平台,提高数
字时钟的计时精度。
降低资源占用
优化代码结构,减少不 必要的资源占用,提高 时钟系统的运行效率。
增加实用功能
拓展应用领域
考虑增加闹钟、定时器 等实用功能,使数字时 钟更加符合用户需求。
探索将数字时钟应用于 更多领域,如智能家居、
数据类型与运算符
Verilog中的数据类型包括
整型、实型、时间型、数组、结构体等。
Verilog中的运算符包括
算术运算符、关系运算符、逻辑运算符、位运算符等。
顺序语句与并行语句
Verilog中的顺序语句包括
赋值语句、条件语句、循环语句等,用于描述电路的时序行为。
Verilog中的并行语句包括
模块实例化、连续赋值语句、门级电路描述等,用于描述电路的并行行为。
基于fpga的倒计时时钟实验报告总结
基于FPGA的倒计时时钟实验报告总结一、实验目的本实验旨在通过FPGA技术,设计一个能够进行倒计时的时钟电路,并进行相应的功能验证。
二、实验内容1. 确定实验目标:设计一个基于FPGA的倒计时时钟电路,实现倒计时功能。
2. 学习FPGA设计工具:熟悉并掌握FPGA设计工具的使用方法,包括逻辑综合、时序分析等。
3. 编写时钟电路代码:利用Verilog硬件描述语言编写时钟电路的代码。
4. 进行仿真验证:对时钟电路进行仿真验证,确保设计的正确性和稳定性。
5. 下板实验验证:将设计好的时钟电路下载到FPGA开发板上,进行实际验证。
三、实验步骤与结果分析1. 设计倒计时时钟电路通过学习资料和实验指导,我们利用Verilog HDL进行倒计时时钟电路的设计,并对其功能进行初步测试。
初步测试结果表明,设计的倒计时时钟电路能够正常工作。
2. 时钟电路仿真验证我们利用FPGA设计工具对时钟电路进行了仿真验证,通过时序分析和波形仿真,确认了时钟电路的正确性和稳定性。
仿真结果显示,时钟电路能够准确地进行倒计时操作。
3. 下板实验验证将设计好的时钟电路下载到FPGA开发板上进行实际验证。
经过实际测试,我们发现倒计时时钟电路能够稳定可靠地进行倒计时操作,符合设计要求。
四、实验总结通过本次实验,我们深入学习了FPGA技朰,并成功设计并验证了基于FPGA的倒计时时钟电路。
实验中我们克服了一些困难,如时钟电路设计的复杂性和仿真验证的精确性等。
我们顺利完成了实验目标,掌握了FPGA设计工具的使用方法,提高了自己的实践能力和动手能力。
这次实验为我们今后在FPGA领域的研究打下了坚实的基础,也对我们的专业素养、工程实践能力提出了更高的要求。
五、改进建议在今后的实验中,我们可以进一步深入研究FPGA技术,探索更多的应用场景,提高我们的设计水平。
注重团队合作、创新思维,不断提升自己的综合素质和实践能力,为将来的科研工作和工程实践打下更加坚实的基础。
基于FPGA的数字钟课程设计
集成电路设计课程设计报告专业班级学号姓名基于FPGA的数字钟课程设计1.任务和设计要求设计具有时、分、秒计数显示,以24小时循环计时的时钟电路,带有清零和校准功能;2.设计原理采用硬件描述语言Verilog 进行编程,实现20MHZ晶振到1HZ的分频;采用verilog 语言实现数字表功能实现的各个模块;通过各个模块的代码生成相应的模块原理图;再将各个模块生成的原理图进行叠加组成一个数字表系统;3.系统设计设计的数字表有6个输入,16个输出;6个输入中,有一个是时钟信号,开发板上的28号引脚输入的50MHZ的时钟信号;一个清零端,当数字表正常显示时,按下清零端可以实现数字钟整体电路图:4.各个模块设计基于EP1C6Q240C8的数字钟设计,有6个模块组成:Fdiv 分频模块Control 模式选择模块Tune 校正模块Zoushi 时间正常运行模块Saomiao 数码管动态扫描模块;Decoder BCD译码模块;Fdiv 模块:功能:实现20MHZ的时钟信号分成10KHZ的信号和1HZ的信号;输入:clk 为20MHZ的时钟信号;输出:f10000HZ 为10KH的时钟信号;F1HZ 为1HZ的时钟信号;Fdiv 模块代码:module fdiv(clk,f10000Hz,f1Hz);output f10000Hz,f1Hz;input clk;reg f10000Hz,f1Hz;integer CNT1=0,CNT2=0;always@(posedge clk)beginif(CNT1<1999)beginCNT1=CNT1+1;f10000Hz<=1'b0;endelsebeginCNT1=0;f10000Hz<=1'b1;endendalways@(posedge f10000Hz)beginif(CNT2<9999)beginCNT2=CNT2+1;f1Hz<=1'b0;endelsebeginCNT2=0;f1Hz<=1'b1;endendendmodulefdiv 模块波形仿真:由于实际的分频波形仿真中,由于要将20MHZ的分成1HZ的,需要将信号缩小20 000 000倍,因此,此处采用将20HZ的先分成10HZ,然后再将10HZ的分成1HZ的时钟信号;在仿真中这样整,在实际演示中再改下代码,实现真正的20MHZ到1HZ的分频;它们只是一个倍数关系而已;Control 模块:功能:实现电子表的正常显示及时间校正模式的转换;输入:key 模式修改键,每来一个高电平,mode加一次。
数字钟设计报告 verilog EDA
电子与电气工程系实习报告书实习名称:数字钟设计年纪专业及班级: 08通信工程1班姓名:学号:指导老师:评定成绩:教师评语:指导老师签名:20 年月日基于FPGA 的数字时钟设计一、课程设计目的1、进一步熟悉Quartus Ⅱ的软件使用方法;2、 熟悉可编程逻辑器件的开发流程及硬件测试方法;3、熟悉基于FPGA 的综合数字系统设计方法;二、课程设计任务设计一台可以显示时、分、秒的数字钟。
如图1所示为基于FPGA 的数字钟设计的系统框图。
FPGA数码管控制数码管控制数码管控制重启校时图1 数字钟系统三、设计要求1、能直接显示小时、分、秒,其中小时为以二十四为计数周期;2、当电路发生走时错误时,要求电路有校时功能,可以对时、分单独校正;3、具有闹钟功能,即输入想要定时的时间,当时钟到达该时间时报警,系统可由灯亮代表报警信号。
四、实验设备1、EDA6000实验箱一台2、PC 机一台五、整体系统设计方案1、总体思路和结构方框图由上面的方框图可以知道整个数字钟的设计分为6个功能模块,分别是时钟计时模块、闹钟设置模块、日期计数模块、校时模块(分别能对时钟时间、闹钟时间和日期进行校对)、闹钟报时模块以及数码管显示模块。
各个模块各自完成各自的功能互不干扰却相互合作,共同晚上数字钟的时间显示、日期显示、闹铃设置报时和时间、日期的校正功能。
数字钟的使用图如下:时钟部分闹钟部分 日期部分 校时部分 报时部分 显示切换部分 FPGAK2 K1CLK JF/D JH/M NF NH SOUND数码管显示如上图所示各个管脚的功能CLK:为数字钟整个系统的时钟信号,频率为1HZ;K1\K2:为时钟系统的使能端,用来切换显示功能和校时功能;JF/D:时间校时用来校正分的部分以及校正日期的天数;JH/M:时间校时用来校正时的部分以及校正日期的月数;NF:设置闹钟分的部分;NH:设置闹钟时的部分;SOUND:报时声音输出信号。
2、各模块设计思路(1)时钟模块由于数字钟设计要求用24进制,所以整个时钟用两个60进制计数器和一个24进制计数器分别级联在一起共同完成数字钟时间跳动功能。
课程设计---基于Verilog HDL数字时钟设计与实现
课程设计---基于Verilog HDL数字时钟设
计与实现
简介
本课程设计旨在通过使用Verilog硬件描述语言(HDL)设计和实现数字时钟。
学生将研究如何使用Verilog语言来描述数字电路,并将其应用于设计和实现一个简单的数字时钟电路。
设计目标
- 研究使用Verilog HDL来描述和设计数字电路
- 实现一个简单的数字时钟电路
- 熟悉数字时钟的工作原理和设计流程
实施步骤
1. 了解数字时钟的原理和工作方式
2. 研究Verilog HDL语言的基本语法和使用方法
3. 设计并实现时钟的各个功能模块,如时钟显示模块、时钟计数模块等
4. 使用仿真工具验证设计的正确性
5. 进行实际的硬件验证,将设计烧录到FPGA开发板上并进行测试
实验要求
1. 设计的数字时钟应具备基本的时分秒显示功能
2. 时钟应具备可调节的时间设置功能
3. 需要使用FPGA开发板进行实际硬件验证
4. 实验报告应包含设计原理、设计流程、仿真结果和实际硬件验证结果
参考资料
1. Verilog HDL教程
2. FPGA开发板用户手册
3. 相关学术论文和文献
以上为课程设计---基于Verilog HDL数字时钟设计与实现的文档简介。
本课程设计将帮助学生学习Verilog HDL语言并应用于设计和实现数字时钟电路。
基于veriloghdl设计的数字时钟
大学考试答题纸(以论文、报告等形式考核专用)二○ 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,s hiout2);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)分频模块:分频模块的作用主要是要获得各种频率的时钟信号。
verilog数字钟设计(FPGA)全新
一、课程设计目标1. 熟悉并掌握verilog 硬件描述语言2. 熟悉quartus 软件开发环境3.学会设计大中规模的数字电路,并领会其中的设计思想二、课程设计实现的功能(1)设计一个数码管实时显示时、分、秒的数字时钟(24小时显示模式);(2)可以调节小时,分钟。
(3)能够进行24小时和12小时的显示切换。
(4)可以设置任意时刻闹钟,并且有开关闹钟功能。
(5)有整点报时功能,几点钟LED灯闪亮几下。
(6)有复位按键,复位后时间从零开始计时,但闹钟设置时间不变。
三、设计原理:1、总原理框图:附全部代码:总模块:moduleclock(clk,reset,MODE,Alarm_ctr,BT2,H12_24,DSH,DSL,DMH,DML,DHH,DHL,dian,bao_signa l,nao_signal);input clk;//50MHzinput reset,MODE,Alarm_ctr,BT2,H12_24;//复位键,模式选择按钮,闹钟开关档,调节按钮,12—24小时切换档output [7:0]DMH,DML,DHH,DHL; //4个数码管显示输入信号output dian,bao_signal,nao_signal; //时分间隔点,报时信号,闹钟信号output [3:0]DSH,DSL; //秒钟输出信号wire [3:0] SH,SL,MH,ML,HH,HL;wire [3:0] LED_mode;wire [3:0] HH12,HL12,HH24,HL24,MH24,ML24,SH24,SL24;wire [3:0] set_HH,set_HL,set_MH,set_ML;wire _1HZ,_10ms,_250ms,_500ms;wire Keydone1;wire Keydone2;wire co1,co11,co111,co2,co22,co222,set_co2;wire [3:0]mode_flag;assign dian=1'b0;devide_f u1(_1HZ,_10ms,_250ms,_500ms,reset,clk); //分频,得到4种不同频率的时钟信号key_press u2(_10ms,MODE,Keydone1); //模式档按钮去抖动key_press u20(_10ms,BT2,Keydone2); //调节按钮去除抖动mode u3(Keydone1,mode_flag); //通过模式按钮产生不同模式second u4(_1HZ,reset,mode_flag,Keydone2,SH24,SL24,co1); //秒计时minute u5(co11,reset,MH24,ML24,co2); //分计时hour u6(co22,reset,HH24,HL24); //小时计时SEG7_LUT u7(DML,ML); //4个数码管显示SEG7_LUT u8(DMH,MH);SEG7_LUT u9(DHL,HL);SEG7_LUT u10(DHH,HH);display_LED u11(DSL,SL); //LED灯显示秒或模式灯display_LED u12(DSH,SH);mode_choose u13(mode_flag,Keydone2,_250ms,co1,co2,set_co2,co11,co22,co111,co222); //选择模式进行不同操作hour12_24 u14(HH24,HL24,HH12,HL12); //12--24小时切换boshi u15(HH,HL,MH,ML,SH,SL,_1HZ,bao_signal); //整点报时set_naozhong u16(co111,co222,set_HH,set_HL,set_MH,set_ML,set_co2); //设置闹钟时间Naozhongu17(Alarm_ctr,_500ms,set_HH,set_HL,set_MH,set_ML,HH24,HL24,MH24,ML24,nao_signal);//任意闹钟响应LUT_modeu18(mode_flag,H12_24,HH12,HL12,HH24,HL24,MH24,ML24,set_HH,set_HL,set_MH,set_ML, MH,ML,HH,HL);//通过模式选择数码管显示LED_mode u19(mode_flag,SH24,SL24,SH,SL); 模式选择LED灯显示Endmodule分频模块:分频模块的作用主要是要获得各种频率的时钟信号。
基于FPGA的数字钟设计
基于FPGA的数字钟系统姓名:蒋佳霖学号:1023000657学院:物理与电子学院摘要:本文利用FPGA的Verilog语言设计数字钟系统。
并采用Quartuse 进行综合,仿真,实验。
经过测试,本文所设计的系统基本可以实现数字的计时和显示,调整时间的功能。
关键字:FPGA,Verilog语言,数字钟系统1、设计所实现的功能本文所设计的数字钟系统能进行时,分,秒的显示,和对时间的校正。
能够利用按键进行“调时”,“调分”,“清秒”的功能,随时对数码管进行调整和校正。
数字钟系统是由系统时钟,数码管,FPGA,三个功能键组成。
2、设计所采用的思想本文所设计的数字钟系统采用Veriloig自顶而下的设计方法。
在编程中,通过键位的数值的判断来调用例化语句实现控制模块对计时模块和分频模块的控制。
3、各模块的代码及测试情况分频模块的代码:module szz_fenpin(clk,clk_1HZ);input clk;outpit clk_1HZ;reg[31:0] count;always @(posedge clk)beginif ( count < M/2-1)begincount <= count + 1;endelsebegincount <= 0;clk_1HZ <= ~clk_1HZ;endendendmodule注:本文所使用的分频模块只能进行偶数分频。
M为分频的倍数。
计时模块:module szz_js(clk_1HZ,num1,num2,num3,num4,num5,num6);input clk_1HZ;output reg[3:0] num1,num2,num3,num4,num5,num6;always@(posedge clk_1HZ)beginif((num6==4'b10)&&(num5==4'b100)) beginnum5=4'b0;num6=4'b0;endelse if(num5==4'b1001)beginnum6=num6+4'b1;num5=4'b0;endelse if(num4==4'b0110)beginnum5=num5+4'b1;num4=4'b0;endelse if(num3==4'b1001)beginnum3=4'b0;num4=num4+4'b1;endelse if(num2==4'b0110)beginnum2=4'b0;num3=num3+4'b1;endelse if(num1==4'b1001)beginnum1=4'b0;num2=num2+4'b1;endelsebeginnum1=num1+4'b1;endendendmodule注:本文所使用的计时模块的代码采用状态机,非阻塞语句赋值,所以在判以后不会立即清零,所以判断采用是当其为5的时候才进行下一次状态,并在下一次状态进行清零。
(完整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信号begincnt2 〈= cnt2 + 1;endelsebegincnt2 〈= 0;clk_2 <= ~clk_2;endalways @(posedge clk_2)if ( cnt5 〈10/2-1) /////////////////////////////////////////10分频,生成1kHz标准信号begincnt5〈= cnt5 + 1;endelsebegincnt5〈= 0;clk_1k〈= ~clk_1k;endalways @(posedge clk_2)if ( cnt3 < 100/2—1)//////////////////////////////////////////100分频,生成100Hz信号begin最终输出的是1Hz,100Hz,1kHz的标准时钟信号clk_1Hz ,clk_100Hz,clk_1k。
基于FPGA的电子时钟的设计
1.设计要求:1).能够显示时、分、秒的六位数值,实行24小时制。
2).具有方便的调时功能。
3).具有跑表的功能,可以方便的进行计时。
4).具有一定的稳定性。
2.总体设计框图由分频电路产生1HZ、100HZ、1000HZ的脉冲信号,1HZ送入计数器进行计时。
100HZ作为跑表的基准信号,1000HZ用来动态扫描模式选择键。
由按键模块来选择是计时、跑表还是调时,然后由显示模块显示出来时间。
当程序执行出现错误时,由复位电路使FPGA重新执行。
3.硬件分块介绍复位电路:当FPGA执行程序出现错误时,由上电复位电路使其从程序的开始重新执行,确保程序运行的正常。
FPGA:由分频程序就是分别产生1HZ、100HZ、1000HZ的脉冲信号,由于FPGA 的晶振频率为50MHZ要进行2分频才会产生25MHZ。
进行计数当计数到24999999时,就是产生1HZ。
当计数到249999就会产生100HZ信号。
当计数到24999就会产生1000HZ的信号。
用1HZ的脉冲信号作为秒的基准信号,每来一次脉冲秒位加1,当满60时分位加1,同时秒位清0;当分位满59时,秒位满59时再过一秒时位加1,同时分、秒位清0。
按键模块:主要是用来实现模式选择。
本时钟有三个模式,分别是正常计时、跑表、时间调整。
而时间调整只能调分、时,且只有加1的功能。
当调整到跑表功能时,用一个按键就可以实现开始、暂停、清0的所有功能。
显示模块:显示分为正常显示和调时显示为8位数码管显示,信号分为段选和位选,位选为先选秒个位然后循环左移逐个选择8位数码管,段选为译码器根据输出信号选择点亮的数码段。
4软件分块介绍主流程图分频模块流程图由于时钟频率为50MHZ要产生1HZ、100HZ、1000HZ的脉冲信号。
而且时钟先要二分频。
这是产生1s信号。
这是产生10ms信号。
这是产生1ms信号。
符号图如下:计时模块流程图由分频产生1s的信号。
来一个脉冲秒位加1,如果满60,分位加1,秒位清0;如果分为满60,小时加1,分位清0。
verilog数字钟设计(FPGA)
、课程设计目标1.熟悉并掌握verilog硬件描述语言2.熟悉quartus软件开发环境3.学会设计大中规模的数字电路,并领会其中的设计思想、课程设计实现的功能(1) 设计一个数码管实时显示时、分、秒的数字时钟( 24小时显示模式);(2) 可以调节小时,分钟。
(3) 能够进行24小时和12小时的显示切换。
(4 )可以设置任意时刻闹钟,并且有开关闹钟功能。
(5) 有整点报时功能,几点钟LED灯闪亮几下。
(6) 有复位按键,复位后时间从零开始计时,但闹钟设置时间不变。
三、设计原理:1、总原理框图:附全部代码: 总模块:module clock(clk,reset,MODE,Alarm_ctr,BT2,H12_24,DSH,DSL,DMH,DML,DHH,DHL,dian,bao_signa l,nao_signal);input clk;//50MHzinput reset,MODE,Alarm_ctr,BT2,H12_24;// 复位键,模式选择按钮,闹钟开关档,调节按钮 ,12—24 小时切换档output [7:0]DMH,DML,DHH,DHL; //4 个数码管显示输入信号output dian,bao_signal,nao_signal; // 时分间隔点,报时信号 ,闹钟信号output [3:0]DSH,DSL;// 秒钟输出信号wire [3:0] SH,SL,MH,ML,HH,HL; wire [3:0] LED_mode;wire [3:0] HH12,HL12,HH24,HL24,MH24,ML24,SH24,SL24; wire [3:0] set_HH,set_HL,set_MH,set_ML; wire _1HZ,_10ms,_250ms,_500ms; wire Keydone1; wire Keydone2;wire co1,co11,co111,co2,co22,co222,set_co2; wire [3:0]mode_flag; assign dian=1'b0;devide_f u1(_1HZ,_10ms,_250ms,_500ms,reset,clk); key_press u2(_10ms,MODE,Keydone1); key_press u20(_10ms,BT2,Keydone2); mode u3(Keydone1,mode_flag);second u4(_1HZ,reset,mode_flag,Keydone2,SH24,SL24,co1); //秒计时 minute u5(co11,reset,MH24,ML24,co2); // 分计时 hour u6(co22,reset,HH24,HL24); SEG7_LUT u7(DML,ML); SEG7_LUT u8(DMH,MH); SEG7_LUT u9(DHL,HL); SEG7_LUT u10(DHH,HH); display_LED u11(DSL,SL); display_LED u12(DSH,SH);mode_choose u13(mode_flag,Keydone2,_250ms,co1,co2,set_co2,co11,co22,co111,co222);// 选择模式进行不同操作hour12_24 u14(HH24,HL24,HH12,HL12); //12--24 小时切换boshi u15(HH,HL,MH,ML,SH,SL,_1HZ,bao_signal); // 整点报时 set_naozhongu16(co111,co222,set_HH,set_HL,set_MH,set_ML,set_co2); // 设置闹钟时间 Naozhong u17(Alarm_ctr,_500ms,set_HH,set_HL,set_MH,set_ML,HH24,HL24,MH24,ML24,nao_signal); //任意闹钟响应 LUT_modeu18(mode_flag,H12_24,HH12,HL12,HH24,HL24,MH24,ML24,set_HH,set_HL,set_MH,set_ML, MH,ML,HH,HL);// 通过模式选择数码管显示// 分频,得到 4 种不同频率的时钟信号 //模式档按钮去抖动 // 调节按钮去除抖动 //通过模式按钮产生不同模式 // 小时计时 //4 个数码管显示//LED 灯显示秒或模式灯LED_mode u19(mode_flag,SH24,SL24,SH,SL); 模式选择LED 灯显示Endmodule分频模块:分频模块的作用主要是要获得各种频率的时钟信号。
基于FPGA的数字时钟设计设计
基于FPGA的数字时钟设计设计设计(论文)题目:基于FPGA的数字时钟设计毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。
尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。
对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作者签名:日期:指导教师签名:日期:使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名:日期:学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律后果由本人承担。
作者签名:日期:年月日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
涉密论文按学校规定处理。
作者签名:日期:年月日导师签名:日期:年月日摘要随着科学技术的飞速发展,系统向着高速度、低功耗、低电压和网络化、移动化方向发展,各个领域对电路的要求越来越高,传统单一功能的电路很难满足发展的要求,而可编程逻辑器件(CPLD/FPGA)可以很方便地通过对逻辑结构的修改和配置,完成对系统和设备的升级。
基于FPGA的Verilog-HDL数字钟设计--
基于FPGA的Verilog HDL数字钟设计专业班级姓名学号一、实验目的1.掌握可编程逻辑器件的应用开发技术——设计输入、编译、仿真和器件编程;2.熟悉一种EDA软件使用;3.掌握Verilog设计方法;4.掌握分模块分层次的设计方法;5.用Verilog完成一个多功能数字钟设计;6.学会FPGA的仿真。
二、实验要求功能要求:利用实验板设计实现一个能显示时分秒的多功能电子钟,基本功能:1)准确计时,以数字形式显示时、分、秒,可通过按键选择当前显示时间范围模式;2)计时时间范围 00:00:00-23:59:593)可实现校正时间功能;4)可通过实现时钟复位功能:00:00:00扩展功能:5)定时报:时间自定(不要求改变),闹1分钟(1kHz)---利用板上LED或外接电路实现。
仿广播电台正点报时:XX:59:[51,53,55,57(500Hz);59(1kHz)] ---用板上LED或外接6)报整点时数:XX:00:[00.5-XX.5](1kHz),自动、手动---用板上LED或外接7)手动输入校时;8)手动输入定时闹钟;9)万年历;10)其他扩展功能;设计步骤与要求:1)计算并说明采用Basys2实验板时钟50MHz实现系统功能的基本原理。
2)在Xilinx ISE13.1 软件中,利用层次化方法,设计实现模一百计数及显示的电路系统,设计模块间的连接调用关系,编写并输入所设计的源程序文件。
3)对源程序进行编译及仿真分析(注意合理设置,以便能够在验证逻辑的基础上尽快得出仿真结果)。
4)输入管脚约束文件,对设计项目进行编译与逻辑综合,生成下载所需.bit文件。
5)在Basys2实验板上下载所生成的.bit文件,观察验证所设计的电路功能。
三、实验设计功能说明:实现时钟,时间校时,闹铃定时,秒表计时等功能1.时钟功能:完成分钟/小时的正确计数并显示;秒的显示用LED灯的闪烁做指示;时钟利用4位数码管显示时分;2.闹钟定时:实现定时提醒及定时报时,利用LED灯代替扬声器发出报时声音;3.时钟校时:当认为时钟不准确时,可以分别对分钟和小时位的值进行调整;4.秒表功能:利用4个数码管完成秒表显示:可以实现清零、暂停并记录时间等功能。
基于Verilog的数字钟设计
EDA设计基础实验课程论文摘要数字时钟广泛用于各种场合,比如各种比赛的定时计数等,等都需要用到数字时钟。
但是大多数的这些场合都需要很精确的定时计数,而不是一般的定时计数器,因此本设计就是为了这个原因而设计的设计的高精度的数字时钟。
本设计中利用50MHz的晶振为FPGA提供时钟。
对其再设计时进行了分频得到。
在本设计是在Quartus II环境下完成的,目标板是cycloneII EP2C8Q208的FPGA核心板,显示部分采用七段数码管现实,所用到的是Verilog HDL 语言进行行为级的描述。
关键词:数字跑表Quartus II ,Verilog HDL,cyclongIIEP2C8Q208IEDA设计基础实验课程论文AbstractThe design for a multi-functional digital clock, with a year, month, day, hours, minutes and seconds count display to a 24-hour cycle count; have proof functions and the whole point timekeeping function.The use of EDA design technology, hardware-description language VHDL description logic means for the system design documents, in MaxplusII tools environment, a top-down design, by the various modules together build a FPGA-based digital clock. The main system chips used EP2C8Q8208, make up of the clock module, control module, time module, data decoding module, display and broadcast module. After compiling the design and simulation procedures, the programmable logic device to download verification, the system can complete the year, month, day and the hours, minutes and seconds respectively, using keys to modify, cleared , start and stop the digital clock.Keywords: digital clock; hardware description language; Verilog HDLIIEDA设计基础实验课程论文目录摘要 (I)Abstract (II)第一章绪论 (1)1.1 概述 (1)1.2 FPGA发展现状 (1)1.3 本文研究的意义 (2)1.4 课题研究的内容 (2)第二章字时钟的基本理论 (3)2.1 主程序结构和流程 (3)2.2 设计原理 (4)2.2.1 原理图介绍 (4)2.2.2 Atium Designer6.9介绍 (4)2.2.3 Verilog HDL介绍 (5)2.2.4 分析计算 (6)第三章数字时钟的软件设计 (6)3.1 开发软件介绍 (6)3.2代码生成BDF图 (6)第四章单元电路设计 (8)4.1 分频代码设计 (8)4.2 毫秒代码设计 (8)4.3 秒代码设计 (9)4.4 分代码设计 (9)4.5 复位代码设计 (10)4.6键盘代码设计 (10)4.7 数码管显示代码设计 (10)4.7.1 数码管位码设计 (10)4.7.2数码管段码设计 (11)结论 (12)参考文献 (13)附录1 (14)附录2 (19)IIIEDA设计基础实验课程论文致谢 (21)IVEDA设计基础实验课程论文第一章绪论1.1 概述FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于FPGA的电子时钟设计
1、设计目的:
(1)掌握Verilog HDL模块的基本结构
(2)掌握计数器的设计方法
(3)掌握分频器的设计方法
(4)掌握模块的调用方法
(5)掌握基于Quartus II的CPLD/FPGA开发流程
2、设计内容:
(1)设计有两个数码管能够实现秒钟显示,数字一秒钟变化一次。
(2)按下复位键时,计时器所有能够复位清零。
(3)利用Quartus II软件进行综合、适配
3、设计方案
(1)编写题目要求的程序;
(2)按照要求将相关程序进行检测和调试,运行正确的程序;
(3)程序完成后,将其与开发板连接;
(4)下载程序到芯片内;
(5)观察程序功能是否成功实现。
4、总体结构设计
总体结构设计如上图所示,从开发板提供的6MHz时钟信号分频得到周期为1s的控制信号,控制计数器改变状态,秒钟利用模60的BCD码计数器实现,BCD码通过4-7译码器译码后驱动两个数码管显示。
5、系统模块化设计
5.1 分频器
根据需求分析的要求,从6MHz系统时钟分频得到1Hz(周期1s)的控制信号,利用计数器实现分频然后能够异步复位。
程序入下:
module clock(clk,rest,clk_1s);
input clk;
input rest;
output clk_1s;
reg clk_1s;
integer count=0;
always@(posedge clk or negedge rest)
begin
if(rest==0)
begin
count=0;
clk_1s=0;
end
else
begin
if(count==2999999)
begin
count<=0;
clk_1s<=~clk_1s;
end
else count=count+1;
end
end
endmodule
5.2 模60的BCD加法计数器
模60BCD码加法计数器,计数器分为高4位与低4位分别控制,低4位每秒钟加1,变化状态为0~9,低4位状态变化到9时,高4位加1,变化状态为0~2。
VerilogBCD24程序如下
output [5:0] second; //输出秒
reg [5:0] second=0; //初始化秒为0
always@(posedge clk_1s)
if(second==24) //判断是否到24秒
begin
second<=second+1; //没到加1
end
else
begin
second<=0;//到24秒置0
End
5.3 4-7译码器
将4位二进制代码转换为驱动数码管的7位段选信号。
output SEG_L;
output SEG_H;
reg[6:0] SEG_L;
reg[6:0] SEG_H;
always@(posedge second)
begin
SEG_L=second%10;
case(SEG_L)
4'd0:SEG_L=7'b1000000;
4'd1:SEG_L=7'b1111001;
4'd2:SEG_L=7'b0100100;
4'd3:SEG_L=7'b0110000;
4'd4:SEG_L=7'b0011001;
4'd5:SEG_L=7'b0010010;
4'd6:SEG_L=7'b0000010;
4'd7:SEG_L=7'b1111000;
4'd8:SEG_L=7'b0000000;
4'd9:SEG_L=7'b0010000;
default: SEG_L=7'b1001000;
endcase
end
always@(posedge second)
begin
SEG_H=second/10;
case(SEG_H)
4'd0:SEG_H=7'b1000000;
4'd1:SEG_H=7'b1111001;
4'd2:SEG_H=7'b0100100;
4'd3:SEG_H=7'b0110000;
4'd4:SEG_H=7'b0011001;
4'd5:SEG_H=7'b0010010;
4'd6:SEG_H=7'b0000010;
4'd7:SEG_H=7'b1111000;
4'd8:SEG_H=7'b0000000;
4'd9:SEG_H=7'b0010000;
default: SEG_H=7'b1001000;
endcase
end
Endmodule ,,,,,,,,,,,,,,,,,,,,,,,,,所有程序module clock(clk,SEG_L,SEG_H);
input clk;
reg clk_1s;
integer count=0;
always@(posedge clk)
begin
if(count==2999)
begin
count<=0;
clk_1s<=~clk_1s;
end
else count=count+1;
end
reg [5:0] second=0; //初始化秒为0
always@(posedge clk_1s)
if(second<=24) //判断是否到24秒
begin
second<=second+1; //没到加1
end
else
begin
second<=0;/
end
output SEG_L;
output SEG_H;
reg[6:0] SEG_L;
reg[6:0] SEG_H;
always@(posedge second)
begin
SEG_L=second%10;
case(SEG_L)
4'd0:SEG_L=7'b1000000;
4'd1:SEG_L=7'b1111001;
4'd2:SEG_L=7'b0100100;
4'd3:SEG_L=7'b0110000;
4'd4:SEG_L=7'b0011001;
4'd5:SEG_L=7'b0010010;
4'd6:SEG_L=7'b0000010;
4'd7:SEG_L=7'b1111000;
4'd8:SEG_L=7'b0000000;
4'd9:SEG_L=7'b0010000;
default: SEG_L=7'b1001000;
endcase
end
always@(posedge second)
begin
SEG_H=second/10;
case(SEG_H)
4'd0:SEG_H=7'b1000000;
4'd1:SEG_H=7'b1111001;
4'd2:SEG_H=7'b0100100;
4'd3:SEG_H=7'b0110000;
4'd4:SEG_H=7'b0011001;
4'd5:SEG_H=7'b0010010;
4'd6:SEG_H=7'b0000010;
4'd7:SEG_H=7'b1111000;
4'd8:SEG_H=7'b0000000;
4'd9:SEG_H=7'b0010000;
default: SEG_H=7'b1001000;
endcase
end
endmodule。