verilogEDA数字秒表设计quartus

合集下载

EDA数字秒表的设计

EDA数字秒表的设计

目录1 绪论 (1)2 设计要求 (2)3 总体设计要求 (2)3.1 基本原理 (2)3.2分频器模块 (3)3.3 计数模块 (4)3.4 记录模块 (5)3.5 寄存器模块 (6)3.6 回放模块 (8)3.7 选择模块 (9)3.8 数显模块 (11)3.9 数字秒表的总原理图 (13)4 仿真调试 (13)4.1 分频器模块的仿真调试 (13)4.2 计数器模块的仿真调试 (14)4.3 记录模块的仿真调试 (14)4.4 寄存器模块的仿真 (14)4.5 回放模块的仿真调试 (15)4.6 选择模块的仿真调试 (15)5 管脚分配 (16)6 总结与心得体会 (17)参考文献 (18)附录:源程序代码 (19)1 绪论EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪60年代中期从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。

20世纪90年代,国际上电子和计算机技术较先进的国家,一直在积极探索新的电子电路设计方法,并在设计方法、工具等方面进行了彻底的变革,取得了巨大成功。

在电子技术设计领域,可编程逻辑器件(如CPLD、FPGA)的应用,已得到广泛的普及,这些器件为数字系统的设计带来了极大的灵活性。

这些器件可以通过软件编程而对其硬件结构和工作方式进行重构,从而使得硬件的设计可以如同软件设计那样方便快捷。

这一切极大地改变了传统的数字系统设计方法、设计过程和设计观念,促进了EDA技术的迅速发展。

EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言VHDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。

EDA技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度。

EDA课程设计,数字秒表的设计

EDA课程设计,数字秒表的设计

《EDA技术及应用课程设计》课程设计报告题目:数字秒表的设计院(系):专业班级:学生姓名:学号:指导教师:20 13 年 6 月 24 日至20 13 年 7 月 3 日华中科技大学武昌分校制数字秒表的设计课程设计任务书目录目录 (1)摘要 (2)1.设计目的 (3)2.设计要求 (3)3.设计过程 (3)3.1设计规划 (3)3.2建立工程 (4)3.3建立各个功能模块程序并进行仿真调试 (5)3.3.1 50MHz分频为1000Hz分频器的源程序 (5)3.3.2 50MHz分频为100Hz分频器的源程序 (5)3.3.3 改变分频系数 (6)3.3.4 十进制计数器的源程序 (7)3.3.5 六进制计数器的源程序 (8)3.3.6 数字秒表的源程序 (10)3.3.7 数码管显示的源程序 (12)3.4建立逻辑图 (13)3.5系统与外设端口的连接 (15)3.6启动程序观察结果 (15)4.设计总结 (16)5.参考资料 (17)附录 (18)摘要随着人们生活水平的日益提高,社会体系的日益完善,人们对于各种应用器件的要求也越来越高。

秒表作为日常生活中,特别是体育运动中应用的特别广泛,所以精确且方便使用的秒表就被越来越多的人所选择。

本秒表计时器用于体育竞赛及各种要求有较精确时的各领域,往常利用中小规模集成电路实现,但一般体积大,使用携带不方便。

利用VHDL在FPGA或CPLD上实现1/100秒计时控制器,能充分发挥VHDL与可编程逻辑器件灵活、高效、集成度高的特点。

利用VHDL语言设计基于计算机电路中时钟脉冲原理的数字秒表。

该秒表能对0秒~59分59.59秒范围进行计时,显示最长时间是59分59秒。

计时精度达到10ms。

设计了复位开关和启停开关。

复位开关可以在任何情况下使用,使用以后计时器清零,并做好下一次计时的准备。

关键词:EDA技术 VHDL语言计时器数码管1.设计目的本次设计的目的就是在掌握EDA实验开发系统的初步使用基础上,进一步了解EDA技术,同时也对计算机系统中时钟控制系统进行了解,掌握状态机工作原理,同时了解计算机时钟脉冲是怎么产生和工作的,以及怎样变频的。

基于Quartus的数字秒表设计

基于Quartus的数字秒表设计

EDA技术课程大作业设计题目:数字秒表设计姓名:学号:姓名:学号:姓名:学号:专业班级:级通信工程2013年1月2日数字秒表设计1. 设计背景和设计方案要求1.1设计背景经过一个学期对《EDA 技术实用教程》的学习,已经初步掌握了一些较为简单的EDA 应用实例。

本次实验我小组选择的课题是《数字秒表设计》。

1.1.1任务安排1.2设计原理和结构1.2.1秒表功能秒表的显示范围是00:00:00-59:59:99,显示精度为1ms ,其拥有可控的自动报警功能(可通过蜂鸣器控制模块的clk 端选择计数一小时后报时或者不报时,如想要报时则接通clk 端,反之clk 端断开,选择报时则计数达到一小时后蜂鸣器会响一声,否则蜂鸣器不响,)、可控的启动功能(通过计数器的start 端口来控制计数器的启动,也即控制数字秒表的启动)及数字秒表清零功能(通过控制计数器清零端来实现,当清零端为高电平时,计数器清零,也即数字秒表清零,否则秒表正常计数)。

1.2.2秒表结构秒表的物理结构比较简单,它主要由十进制计数器、六进制计数器、数据选择器、显示译码器蜂鸣器等组成。

此外,秒表还需有一个启动信号、清零信号及报时信号,以便实现对秒表的控制和有效应用(启动和清零信号及报时信号由使用者给出,设计时主要任务是将此外界信号的功能准确的通过数字秒表体现出来,也即,当使用者给出启动信号时数字秒表能够正常启动,上面已经给出,启动和清零的功能是通过将此信号送给计数器来实现的)。

1.2.3设计思路十进制计数器clk 端接石英晶体振荡器,选择振荡频率为1000HZ 。

则振荡一秒钟之后,十进制计数器进位输出端输出100个高电平信号,每个高电平信号表示1001s,也即10ms 。

然后将10ms 的信号接到下一个十进制计数器的clk 端,则10个此信号之后,输出一个高电平信号,也即每个高电平信号表示10 10=100ms 。

依此类推,通过选择不同的计数器,在进位输出端可分别得到10ms 、100ms 、1s 、10s 等进位信号。

EDA课程--数字秒表设计

EDA课程--数字秒表设计

《EDA技术综合设计》课程设计报告报告题目:数字秒表设计作者所在系部:电子工程系作者所在专业:自动化内容摘要本次设计的目的就是在掌握EDA实验开发系统的初步使用基础上,了解EDA技术,对计算机系统中时钟控制系统进一步了解,掌握状态机工作原理,同时了解计算机时钟脉冲是怎么产生和工作的。

在掌握所学的计算机组成与结构课程理论知识时。

通过对数字秒表的设计,进行理论与实际的结合,提高与计算机有关设计能力,提高分析、解决计算机技术实际问题的能力。

通过课程设计深入理解计算机结构与控制实现的技术,达到课程设计的目标。

利用VHDL语言设计基于计算机电路中时钟脉冲原理的数字秒表。

该数字秒表能对0秒~59分59.99秒范围进行计时,显示最长时间是59分59秒,到了一小时后,报警器开始报警,计时精度达到10ms。

设计了复位开关和启停开关。

复位开关可以在任何情况下使用,使用以后计时器清零,并做好下一次计时的准备。

字体、格式、图号不对、重新修改关键词EDA、可编程逻辑器件、计数器、显示目录1.设计要求 (1)2.实验目的 (1)3.实验原理 (1)4.源程序(*.vhd)和原理图(*gdf) (2)4.1计数器模块 (2)4.2报警模块 (3)4.3显示模块 (4)4.4选择模块 (5)4.5秒表模块 (6)5.仿真调试和下载结果 (7)6.收获和体会 (8)课程设计任务书课题名称数字秒表设计完成时间2010-11-30 指导教师崔瑞雪职称副教授学生姓名赵敏班级B08221总体设计要求和技术要点1.秒表共有6个输出显示,分别为百分之一秒、十分之一秒、秒、十秒、分、十分,所以共有6个计数器与之相对应,6个计数器的输出全都为BCD码输出,这样便于和显示译码器的连接。

当计时达60分钟后,蜂鸣器鸣响10声。

2.整个秒表还需有一个启动信号和一个归零信号,以便秒表能随意停止及启动。

3.秒表的逻辑结构较简单,它主要由显示译码器、分频器、十进制计数器、六进制计数器和报警器组成。

EDA基于Verilog数字秒表

EDA基于Verilog数字秒表

石家庄经济学院信息工程学院电子信息工程专业EDA技术课程设计报告题目:数字秒表姓名学号 412109 班级电子一班指导教师王军芬2015年 1 月 16日课程设计任务书3。

2总电路连线及波形仿真图:图2 电路原理总图3.3 5个模块原理图、波形仿真图及源程序:(1)分频模块:图3 分频模块原理图因为将50MHz的频率分成100Hz和2000HZ的过程中涉及到到频率范围太大,进行波形仿真时,无法正常显示。

设计原理:将50MHz分频为clk1100Hz和clk2 2000HZ的频率,先分频到2000HZ,分频倍数,N1=25000,所以此处用到的是偶数倍分频,其原理如下:使用一模N1计数器模块即可实现,即每当模N1计数器上升沿从0开始计数至N1时,输出时钟进行翻转,同时给计数器一复位信号使之从0开始重新计数,在把2000赫兹频率分为100赫兹,分频倍数为N2=20,每当模N2计数器上升沿从0开始计数至N2时,输出时钟进行翻转,同时给计数器一复位信号使之从0开始重新计数,为以此循环即可。

源程序:module fenpin(clk,clk1,clk2);input clk;output clk1;output clk2;reg [15:0]k2;reg[7:0] k1;reg clk2;reg clk1;always@(posedge clk)beginif(k2<16'd12499)k2=k2+8'd1;else k2=0;if(k2==16'd12499)clk2=clk2+1;//clk2=2000hzendalways @(posedge clk2)beginif(k1〈8’d9)k1=k1+8’d1;else k1=0;if(k1==8'd9)clk1=clk1+1;//clk1=100hzendendmodule(2)计数模块:图4 计数模块原理图图5 波形仿真图设计原理:此处rst是复位键键,当其处于高电平时,全部清零,start是开始键,pause是暂停键,三个按键都用了一个T触发器,按下复位键,其他二个按键没用,按下开始键计数开始,按下暂停键计数停止,再按开始键计数开始.其计数部分由一个六进制的计数器和三个十进制的计数器组成,首先是百分秒位msl开始从零计数,当其计数到九时,向十分秒位msh进一,同时将百分秒位清零;当十分位计数到九时,向秒位sl进一,同时将十分妙位和百分秒位清零;当秒位计数到九时,向十秒位sh进一,同时将秒位、十分秒位和百分秒位清零;当十秒位计数到五时,将所有位清零。

使用quartus设计数字电路系统的流程

使用quartus设计数字电路系统的流程

使用Quartus设计数字电路系统的流程1. 准备工作在开始使用Quartus设计数字电路系统之前,需要进行一些准备工作:•安装Quartus软件:根据你的操作系统下载并安装Quartus软件。

Quartus支持Windows和Linux操作系统,并提供30天的免费试用期。

•获取开发板:选择一块兼容Quartus的开发板,例如Altera提供的Cyclone系列开发板。

•了解基本概念:熟悉数字电路设计的基本概念,如逻辑门、触发器、计数器等。

2. 创建工程在Quartus中创建一个新的工程以开始数字电路设计:1.启动Quartus软件。

2.打开“File”菜单,选择“New Project Wizard”。

3.在弹出的对话框中,选择工程名称和存储位置。

4.选择目标设备类型和型号,并确认。

5.选择设计文件的类型,可以选择使用VHDL或Verilog进行设计。

6.添加设计文件到工程中。

3. 设计电路在Quartus中设计数字电路系统有两种主要的方法:使用逻辑图或硬件描述语言(VHDL或Verilog)。

3.1 使用逻辑图1.打开“Tools”菜单,选择“Block Diagram/Schematic File”。

2.在弹出的对话框中,选择使用排版编辑器或图形编辑器进行设计。

3.使用逻辑图元件工具,如逻辑门、触发器等,拖放到设计区域。

4.连接逻辑图元件并设置其属性和功能。

5.保存设计并编译。

3.2 使用VHDL或Verilog1.打开“File”菜单,选择“New”,再选择“Design Files”。

2.在弹出的对话框中,选择使用VHDL或Verilog进行设计。

3.在代码编辑器中编写设计代码。

4.保存设计文件并编译。

4. 仿真在Quartus中进行仿真可以验证设计的正确性以及进行性能评估。

1.打开“Tools”菜单,选择“RTL Simulation”。

2.在弹出的对话框中,选择仿真工具和仿真文件。

EDA数字秒表的设计

EDA数字秒表的设计

本设计的整体原理图如图1所示: 图1.实验原理图 系统仿真与引脚分配 本实验结果的仿真图与引脚分配如下图2

ห้องสมุดไป่ตู้引脚分配
实验原理图
图2.实验结果仿真图与引脚分配 七 器件编程与硬件下载 1.在Quartus软件中为顶层文件选择好芯片 类型,选择引脚后进行编译。 2.将实验箱端口与计算机相应端口连接, 检测试验箱是否可以使用,经检测无误后,关 闭试验箱,将主芯片标号对应顶层文件相应引 脚标号连线到相应器件处。即输入时钟信号端 接试验箱时钟发生电路CLK输出端(用50MHz信 号),启动新号段与归零信号端分别接两个拨 码开关,输出端count[2..0]分别接3/8译码器 的SEL2—SEL0端,输出a,b,c,d,e,f,g,h端接 显示译码器的相应输入端,连接好线后打开试 验箱电源,将设计好的程序下载到试验箱的芯 片上即可测试功能。 八 总结及心得
module qwe(clk,out_wei,out_duan,rst,key2); //key2==27pin input rst; input clk; input key2; output [7:0]out_wei; output [7:0]out_duan; reg [7:0]out_wei=8'b00000000; reg [7:0]out_duan=8'b00000011; //a b c d e f g dp reg [4:0]count; reg [3:0]count1; reg [14:0]count2; reg [7:0]sec_l=8'b00000011; //zero at first reg [7:0]sec_h=8'b00000011; reg [7:0]fen_l=8'b00000011; reg [7:0]fen_h=8'b00000011; reg [7:0]msec_l=8'b00000011; reg [7:0]msec_h=8'b00000011; reg [3:0]s_1=0; reg [3:0]s_2=0; reg [3:0]s_3=0; reg [3:0]s_4=0; reg [3:0]s_5=0; reg [3:0]s_6=0;

verilog秒表设计【管理资料】

verilog秒表设计【管理资料】

深圳大学实验报告课程名称:数字系统设计实验项目名称:Verilog秒表设计学院:信息工程学院专业:电子信息工程指导教师:邓小莺报告人:陈耀省学号:2010130267班级:电子三班实验时间:2012年11月实验报告提交时间:2012年11月28日教务部制一、实验目的1、进一步熟悉ISE软件的使用,熟悉FPGA开发流程;2、掌握编写Verilog代码的步骤,学会绘制ASM图;3、学会自顶向下的设计方法,使用不同的模块实现系统的设计。

二、实验设备1、装有ISE软件的PC机一台;2、Nexys3开发板一块。

三、实验内容与要求设计一个秒表它具有计时功能。

此秒表有两个按键(reset, start)按下reset键后,秒表清零。

开始默认秒表计时,按下start键后,停止计时,再次按下start键后,又开始计时,如此反复。

用FPGA开发板上的两个七段数码管显示时间(以秒为单位),计时由0 到 59 循环。

三、实验步骤1、设计系统框图,设计采取自顶向下的设计方案,整个秒表系统的原理图如下所示。

主要包括五个模块——按键消抖模块、分频模块、按键功能控制模块、计数模块、数码管驱动显示模块。

2、根据系统的原理图,画出各个模块的ASM图。

(1)利用D触发器对按键进行消抖处理,其电路图如下。

利用下面这个电路即可实现对start键和reset键的消抖。

只有连续输入三个周期的高电平时,按键才有效。

(2)分频模块的ASM图。

此ASM图将100MHz的信号分频为100Hz的信号,用于计数和数码管的扫描。

(3)start键与reset键功能控制模块的ASM图。

图中rst为复位信号,sta为计时信号。

利用状态机实现不同状态之间的转换并输出复位信号与计时信号。

默认状态是start_time,即计时状态。

(4)计数模块的ASM图。

输入100Hz的时钟用于计数,当复位信号有效时,将所有的数全部置0。

否则sta信号有效时开始计数。

最后输出秒位与十秒位。

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

课程考查报告课程名称 EDA技术题目名称数字电子钟学生学院信息工程学院专业班级通信工程09(1)班学号 310900xx 学生姓名陈 XX 任课教师李学易2013 年12月27日电子钟设计目的:根据实验板的资源和利用Quartus II软件编译、仿真可以实现电子钟的数字系统设计。

设计内容:数字电子钟的功能:1、时钟显示功能(显示时、分、秒)2、时钟调整功能(小时、分钟的校准)3、闹钟设置功能设计方案:根据程序设计需要,信号的定义如下:Clk:标准时钟信号,频率为4HzClk_1k:产生闹铃声、报时声的时钟信号,频率为1024HzMode:功能控制信号,为0:计时功能;1:闹钟功能;2:手动校时功能Turn:接按键,在手动校时功能时,选择的是校准小时,还是分钟;若长时间按该键,可使秒信号清零Change:接按键,在手动校时时,每按一次,计数器加一若长按,则连续快速加一Hour,min,sec:此三信号分别输出并显示时、分、秒信号Alert:输出到扬声器的信号,产生闹钟音和报时音;闹钟音为持续20秒的“嘀嘀嘀”音,若按住change键,则可屏蔽该音;报时音为“嘀嘀嘀嘀嘟”四短一长音。

Ld_alert:接发光二极管,指示是否设置了闹钟功能Ld_hour:接发光二极管,指示当前调整的是小时信号Ld_min:接发光二极管,指示当前调整的是分钟信号实验结果:时序仿真图:RTL图:心得体会:经过一周的EDA课程设计,对用verilog语言设计数字系统有了一定认识。

设计过程当然有点累,可是当完成这个设计时,内心是无比的高兴。

通过这次的课程设计,很好地把课堂理论和实践结合起来,认识更深刻了。

设计中遇到过很多问题,这时耐心、细心是不可缺少的,通过查阅网上资料和其他参考文献以及和别人交流,最终都把问题解决了。

当然其中也缺少不了庞老师的耐心指导,在此,感谢庞老师的教导!参考文献:《Verilog数字系统设计教程》第2版夏宇闻编著《Verilog的135个经典设计实例》王金明编著源代码:module digital_watch(clk,clk_1k,mode,change,turn,alert,hour,min,sec,LD_alert,LD_hour,LD_min);input clk,clk_1k,mode,change,turn;output alert,LD_alert,LD_hour,LD_min;output[7:0] hour,min,sec;reg[7:0] hour,min,sec,hour1,min1,sec1,ahour,amin;reg[1:0] m,fm,num1,num2,num3,num4;reg[1:0] loop1,loop2,loop3,loop4,sound;reg LD_hour,LD_min;reg clk_1Hz,clk_2Hz,minclk,hclk;reg alert1,alert2,ear;reg count1,count2,counta,countb;wire ct1,ct2,cta,ctb,m_clk,h_clk;always @(posedge clk)beginclk_2Hz<=~clk_2Hz;if(sound==3) begin sound<=0; ear<=1; end//ear 信号用于产生或屏蔽声音else begin sound<=sound+1; ear<=0; endendalways @(posedge clk_2Hz) //由4Hz 的输入时钟产生1Hz 的时基信号clk_1Hz<=~clk_1Hz;always @(posedge mode) //mode 信号控制系统在三种功能间转换begin if(m==2) m<=0; else m<=m+1; endalways @(posedge turn)fm<=~fm;always //该进程产生count1,count2,counta,countb 四个信号begincase(m)2: beginif(fm)begin count1<=change; {LD_min,LD_hour}<=2; end elsebegin counta<=change; {LD_min,LD_hour}<=1; end {count2,countb}<=0;end1: beginif(fm)begin count2<=change; {LD_min,LD_hour}<=2; end elsebegin countb<=change; {LD_min,LD_hour}<=1; end {count1,counta}<=2'b00;enddefault: {count1,count2,counta,countb,LD_min,LD_hour}<=0;endcaseendalways @(negedge clk)//如果长时间按下“change”键,则生成“num1”信号用于连续快速加1if(count2)beginif(loop1==3) num1<=1;elsebegin loop1<=loop1+1; num1<=0; endendelse begin loop1<=0; num1<=0; endalways @(negedge clk) //产生num2 信号if(countb)beginif(loop2==3) num2<=1;elsebegin loop2<=loop2+1; num2<=0; endendelse begin loop2<=0; num2<=0; endalways @(negedge clk)if(count1)beginif(loop3==3) num3<=1;elsebegin loop3<=loop3+1; num3<=0; endendelse begin loop3<=0; num3<=0; endalways @(negedge clk)if(counta)beginif(loop4==3) num4<=1;elsebegin loop4<=loop4+1; num4<=0; endendelse begin loop4<=0; num4<=0; endassign ct1=(num3&clk)|(!num3&m_clk); //ct1 用于计时、校时中的分钟计数assign ct2=(num1&clk)|(!num1&count2); //ct2 用于定时状态下调整分钟信号assign cta=(num4&clk)|(!num4&h_clk); //cta 用于计时、校时中的小时计数assign ctb=(num2&clk)|(!num2&countb); //ctb 用于定时状态下调整小时信号always @(posedge clk_1Hz) //秒计时和秒调整进程if(!(sec1^8'h59)|turn&(!m))beginsec1<=0; if(!(turn&(!m))) minclk<=1;end//按住“turn”按键一段时间,秒信号可清零,该功能用于手动精确调时else beginif(sec1[3:0]==4'b1001)begin sec1[3:0]<=4'b0000; sec1[7:4]<=sec1[7:4]+1; endelse sec1[3:0]<=sec1[3:0]+1; minclk<=0;endassign m_clk=minclk||count1;always @(posedge ct1) //分计时和分调整进程beginif(min1==8'h59) begin min1<=0; hclk<=1; endelse beginif(min1[3:0]==9)begin min1[3:0]<=0; min1[7:4]<=min1[7:4]+1; endelse min1[3:0]<=min1[3:0]+1; hclk<=0;endendassign h_clk=hclk||counta;always @(posedge cta) //小时计时和小时调整进程if(hour1==8'h23) hour1<=0;else if(hour1[3:0]==9)begin hour1[7:4]<=hour1[7:4]+1; hour1[3:0]<=0; end else hour1[3:0]<=hour1[3:0]+1;always @(posedge ct2) //闹钟定时功能中的分钟调节进程if(amin==8'h59) amin<=0;else if(amin[3:0]==9)begin amin[3:0]<=0; amin[7:4]<=amin[7:4]+1; end else amin[3:0]<=amin[3:0]+1;always @(posedge ctb) //闹钟定时功能中的小时调节进程if(ahour==8'h23) ahour<=0;else if(ahour[3:0]==9)begin ahour[3:0]<=0; ahour[7:4]<=ahour[7:4]+1; end else ahour[3:0]<=ahour[3:0]+1;always //闹铃功能if((min1==amin)&&(hour1==ahour)&&(amin|ahour)&&(!change)) //若按住“change”键不放,可屏蔽闹铃音if(sec1<8'h20) alert1<=1; //控制闹铃的时间长短else alert1<=0;else alert1<=0;always //时、分、秒的显示控制case(m)3'b00: begin hour<=hour1; min<=min1; sec<=sec1; end//计时状态下的时、分、秒显示3'b01: begin hour<=ahour; min<=amin; sec<=8'hzz; end//定时状态下的时、分、秒显示3'b10: begin hour<=hour1; min<=min1; sec<=8'hzz; end//校时状态下的时、分、秒显示endcaseassign LD_alert=(ahour|amin)?1:0; //指示是否进行了闹铃定时assign alert=((alert1)?clk_1k&clk:0)|alert2; //产生闹铃音或整点报时音always //产生整点报时信号alert2beginif((min1==8'h59)&&(sec1>8'h54)||(!(min1|sec1)))if(sec1>8'h54) alert2<=ear&clk_1k; //产生短音else alert2<=!ear&clk_1k; //产生长音else alert2<=0;endendmodule。

相关文档
最新文档