目前,我正试着检查verilog的环形计数器。但是我很好奇戒指柜台的用途是什么?我接得不太好。有人知道戒指柜台的用途吗?
发布于 2015-01-28 12:57:26
使用环形计数器,可以使用四个触发器来创建一个没有附加逻辑的四状态FSM。一个传统的状态机需要2个触发器和下一个状态逻辑.维基百科指出,环形计数器将更简单,并有一个较小的合成面积。
我期望加法器和下一个状态逻辑的大小类似于在环形计数器中使用的两个额外的触发器,在这两种类型中,形成一个四状态机大致相等。环形计数器也会增长很快,每个额外的状态都需要额外的触发器。而状态必须始终遵循线性模式。大多数FSM都有分支,并对输入做出反应,从而将使用环形计数器的机会降到最低。
环形计数器的优点是它的状态是单热。这可能简化输出逻辑。
环形计数器FSM:
module ring_counter(
input clk,
input rst_n,
//outputs ...
);
reg state0;
reg state1;
reg state2;
reg state3;
always @(posedge clk, negedge rst_n) begin
if (~rst_n) begin
state0 <= 1'b1;
state1 <= 1'b0;
state2 <= 1'b0;
state3 <= 1'b0;
end
else begin
state0 <= state3;
state1 <= state0;
state2 <= state1;
state3 <= state2;
end
end
endmodule总体状态将以0001开始,然后围绕0010、0100、1000旋转,然后返回起始0001。
相比之下,典型的密克罗尼西亚联邦可以是:
reg [1:0] state;
always @(posedge clk, negedge rst_n) begin
if (~rst_n) begin
state <= 'b0;
end
else begin
state <= state + 1;
end
end它将遍历各州00 -> 01 -> 10 -> 11。
https://stackoverflow.com/questions/28188040
复制相似问题