-
算法:输入十进制四位年份的BCD二进制码,共16位,表示为ABCD。闰年包含以下几种情况
- 能被400整除:CD全为0,且AB能被4整除
- 可以被4整除且不能被100整除:CD不全为0,且CD能被4整除
- 所以只要判断两位十进制数AB或CD能否被4整除:
若十位数为偶数,则只有个位为0、4、8时能被4整除,即高四位最低位为0,低四位的末两位为00;
若十位数为奇数,则只有个位为2、6时能被4整除,即高四位最低位为1,低四位的末两位为10;
-
代码:
module quar(high,low,q);
input [3:0]high,low;
output q;
reg q;
always @(high or low)
if(low[0]==1'b1)
q = 1'b0;
else if(((low[1]==1'b0)&&(high[0]==1'b0))||((low[1]==1'b1)&&(high[0]==1'b1)))
q = 1'b1;
else
q = 1'b0;
endmodule
module leap(year,q);
input [15:0]year;
output q;
wire q1,q2;
quar U1(year[7:4],year[3:0],q1);
quar U2(year[15:12],year[11:8],q2);
assign q = (year[7:0]==8'b0)?q2:q1;
endmodule
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。