EDA数字钟设计(verilog)——闹钟模块


源程序:链接:提取码fbd5


       闹钟的设置优先级要低于正常示数,所以必须在正常示数时使用闹钟开关才能进行闹钟的设定,而且闹钟的校时校分是用的2Hz的快速校时校分,更加的方便有效,因为是在正常计数下的闹钟设定,所以设定闹钟时时钟依然正常的行走。闹钟将向报时电路输出一个闹钟来了的信号,以便在报时模块中实现闹钟的铃声。具体代码如下:

module alarm(clk_2Hz,naozhong_swh,alarm_hour,alarm_min,hour,minute,hour_reg,min_reg,alarm,swh,baochi_swh);
input clk_2Hz;
input naozhong_swh,baochi_swh;		//闹钟开关
input alarm_hour,alarm_min;  
input [1:0]swh;			//防止出现优先级问题
input [5:0]hour;		//时间比较
input [5:0]minute;     
output reg[5:0]hour_reg;
output reg[5:0]min_reg;
output reg alarm; 


always@(posedge clk_2Hz)
begin
	if((naozhong_swh)&&(swh[1:0] == 'b11)&&(!baochi_swh)) 
		begin
			if(alarm_hour)
				begin
					if(hour_reg == 'd23)
						hour_reg <= 'd0;
					else
						hour_reg <= hour_reg + 'd1;
				end
			if(alarm_min)
				begin
					if(min_reg == 'd59)
						min_reg <= 'd0;
					else
						min_reg <= min_reg + 'd1;
				end
		end

end

always@(posedge clk_2Hz)
	begin
		if((hour_reg == hour)&&(min_reg == minute))            
			begin 
				alarm <= 'd1; 
			end
		else
			begin 
				alarm <= 'd0; 
			end
	end
			
endmodule

封装图如下:

评论 86
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值