首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >约翰逊计数器中的寄生状态机是什么?

约翰逊计数器中的寄生状态机是什么?
EN

Stack Overflow用户
提问于 2014-02-14 23:48:57
回答 1查看 311关注 0票数 6
代码语言:javascript
复制
module johnson #(parameter N=8)
  (output logic [N-1:0] q, input logic clk,reset);

  always_ff @(posedge clk,posedge reset)
    if(reset)
      q<=0;
    else
      q<={~q[0],q[N-1:1]};

endmodule

上面是用于8位Johnson计数器的systemverilog .我从一本教科书上读到,它有大量未使用的状态,形成了它们自己的计数器,即寄生状态机。这个寄生状态机到底是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-15 12:49:29

这里的问题是,如果这个电路由于某种原因最终进入一个未使用的状态,您就会陷入一个循环中,那么永远不会返回到使用的状态之一。该计数器的状态如下:

代码语言:javascript
复制
00000000
10000000
11000000
11100000
11110000
...
00001111
00000111
00000011
00000001

如果宇宙射线击中你的芯片并翻转其中一个比特,那么你最终可能会产生在正常操作中不存在的状态:

代码语言:javascript
复制
00010000
10001000
11000100
11100010
11110001
01111000
10111100
....

恢复正常的唯一方法是断言复位。您可以有两个选项来处理这个问题:要么添加一堆逻辑来检测这种情况,要么假设不会发生一些随机翻转。我想说,你不需要担心它,除非那个翻转的比特将发射一枚导弹。

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

https://stackoverflow.com/questions/21791487

复制
相关文章

相似问题

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