首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有什么用途的戒指柜台?

有什么用途的戒指柜台?
EN

Stack Overflow用户
提问于 2015-01-28 08:52:51
回答 1查看 472关注 0票数 2

目前,我正试着检查verilog的环形计数器。但是我很好奇戒指柜台的用途是什么?我接得不太好。有人知道戒指柜台的用途吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-28 12:57:26

使用环形计数器,可以使用四个触发器来创建一个没有附加逻辑的四状态FSM。一个传统的状态机需要2个触发器和下一个状态逻辑.维基百科指出,环形计数器将更简单,并有一个较小的合成面积。

我期望加法器和下一个状态逻辑的大小类似于在环形计数器中使用的两个额外的触发器,在这两种类型中,形成一个四状态机大致相等。环形计数器也会增长很快,每个额外的状态都需要额外的触发器。而状态必须始终遵循线性模式。大多数FSM都有分支,并对输入做出反应,从而将使用环形计数器的机会降到最低。

环形计数器的优点是它的状态是单热。这可能简化输出逻辑。

环形计数器FSM:

代码语言:javascript
复制
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开始,然后围绕001001001000旋转,然后返回起始0001

相比之下,典型的密克罗尼西亚联邦可以是:

代码语言:javascript
复制
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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28188040

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档