这是一个计数器,每次只循环6个值(0,1,2,3,4,5,0,1,.)。计数器应该包括一个“重置”信号,当复位高时,计数器值将被重置为0(异步复位),并且计数器值应该在时钟上升的边缘上增加。
这是我的密码。但是,一旦它达到数字5,我将如何使它复位呢?
always @(posedge CLOCK_50 or negedge reset_n) begin
if (!reset_n)
count <= 0;
else if (enable)
count <= count + 1;
end发布于 2022-09-23 15:51:46
简单地使用
always @(posedge CLOCK_50 or negedge reset_n) begin
if (!reset_n)
count <= 0;
else if (enable)
count <= (count == 5)? 'd0 : count + 1;
end或分割梳子和seq
assign count_next = (count == 5)? 0 : count + 1;
always @(posedge CLOCK_50 or negedge reset_n) begin
if (!reset_n)
count <= 0;
else if (enable)
count <= count_next;
end发布于 2022-09-22 19:44:40
使用另一个if/else检查count是否为5,然后将其设置为0:
reg [2:0] count;
always @(posedge CLOCK_50 or negedge reset_n) begin
if (!reset_n) begin
count <= 0;
end else if (enable) begin
if (count == 5) begin
count <= 0;
end else begin
count <= count + 1;
end
end
endhttps://stackoverflow.com/questions/73819739
复制相似问题