我在Verilog开发了一个计数器,循环通过以下系列:
0, 1, 3, 7, 6, 4, 0, 1, ...
并重置为0
上的reset_b
。
到目前为止,这是我的代码,它似乎没有在周期中超过3
:
module Counter_1(output reg [2: 0] Count, input clock, reset);
reg [2: 0] last;
always @(posedge clock, negedge reset) begin
if (!reset) begin
Count <= 3'b000;
end
else begin
case (last)
3'b000: Count <= 3'b001;
3'b001: Count <= 3'b011;
3'b011: Count <= 3'b111;
3'b111: Count <= 3'b110;
3'b110: Count <= 3'b100;
3'b100: Count <= 3'b000;
endcase
end
last <= Count;
end
endmodule
答案 0 :(得分:2)
查看序列总是有用的:
000
001
011
111
110
100
分析模式,您可以通过以下方式找到序列:
if (!reset)
Count <= 3'b000;
else
Count <= {Count[1:0],~Count[3]};
要遵循您的方法:您可以使用Count作为下一个值的输入。使用&#39; last&#39;不需要:
case (Count)
3'b000 : Count <= 3'b001;
3'b001 : Count <= 3'b011;
答案 1 :(得分:0)
你当然应该在重置块中指定最后一个:
router.get('/', function(req, res) {
var employeeDetails; // JSON File Containing Details
employeeDetails=employeeDetails.parse;
res.render('your site',{data:employeeDetails});
});
我想这会解决您的问题,因为我没有看到您的代码有任何其他问题(假设您的时钟和重置输入正常工作,并且您正在使用有效的高重置)。
另外,为什么要包括重置在你的常态?我相信你永远的条件可能只是:
if (!reset) begin
last <= 3'b000;
Count <= 3'b000;
end