现在已经实现24进制小时计数,但是自己尝试直接在always里面添加mod的判断后,仿真里面两个数组全为0(希望通过mod切换进制显示,谢谢🙇)
源代码:
module CNT_HOU(rst,clk,Q1,Q2,mod);
input clk,rst,mod;
output reg [3:0] Q1;
output reg [3:0] Q2;
wire d,r;
reg pm;
always@(posedge clk or posedge rst or posedge d or posedge r )
begin
if(d) begin Q2<=0; pm<=1; end
else if(rst) begin Q2<=0; pm<=0; end
else if(r) begin Q2<=0; pm<=0; end
else begin Q2<=Q2+1;pm<=0; end
end
assign d=(Q2==10);
always@(posedge pm or posedge rst or posedge r )
begin
if(rst) begin Q1<=0; end
else if(r) begin Q1<=0;end
else begin Q1<=Q1+1; end
end
assign r=((Q1==2)&&(Q2==4));
endmodule
你的代码中没有切换进制的代码!!
可以添加一个变量来存储当前进制,然后在always块中使用if语句来检查该变量并相应地更改计数器
如果当前进制为24小时,则计数器应该增加1,否则应该增加12
用mod运算符来检查当前时间是否为整数小时,然后在需要时更改进制