⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 alarm.v

📁 数字钟可以说明的具体功能都在文件家中,请仔细参阅,希望大家可以相互学习,共同进步
💻 V
字号:
//模块:闹钟模块
//功能:当闹钟使能信号为高电平,到了设定时间时,输出铃声使能的高电平
//输入:当前时间(ClkDay,Hour,Min,Sec),设定时间(AHour,AMin,AAM)
//输出:铃声使能信号(Alarm)

`timescale 1ns / 100ps

module Alarm (
	AlarmEn,AlarmHourEn,
	Hour,Min,Sec,AHour,AMin,Clk4Hz,Clk1Hz,Clk1k,Clk512Hz,Buzzer);

	input AlarmEn,AlarmHourEn,Clk4Hz,Clk1Hz,Clk1k,Clk512Hz;
	input [5:0] Hour,AHour ;
	input [6:0] Min,AMin ;
	input [6:0] Sec;
	output Buzzer;
	wire  AlarmOn,HourAlarmOn,AlarmStyle;

	assign AlarmOn=(AlarmEn && Hour==AHour && Min==AMin && Sec<7'h15)?1:0;
	assign HourAlarmOn=(Min==7'h59 && Sec[6:4]==3'h5 && AlarmHourEn)?1:0; 
	assign AlarmStyle=(Sec==7'h59)?(1):(0);	 //four short and one long Buzz	
	
	wire AlarmRingMask=Clk4Hz & Clk1Hz;//1010_0000
	wire HourRingMask=Sec[0];

	
	wire BuzzerMask=(AlarmOn)?AlarmRingMask:((HourAlarmOn)?HourRingMask :0) ;
	wire Frequence=(AlarmOn)? Clk1k:
	((HourAlarmOn)?(AlarmStyle? Clk1k :Clk512Hz ):Clk512Hz) ;
	
	assign Buzzer=BuzzerMask & Frequence;

endmodule

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -