-2

我必须为 1 mealy fsm 编写一个 verilog 程序。有很多技巧可以写出来。我会告诉你 1,我想知道它是否也有效(无需提及其他技术,只需说出是否有效以及为什么!)这里是:

module MealyFsm(out,in,clk,rst);
  output out;
  input in,clk,rst;

  reg [1:0] q;

  always @(posedge clk or negedge rst) begin
    if (~rst) 
      q<=2'b00;
    else
      begin
        q[0]<=~q[0] &  q[1] &  x | ~q[0] &    x | q[1] &  x;
        q[1]<= q[1] & ~q[0] & ~x | ~q[1] & q[0] | q[0] & ~x;
      end
  end

  assign y = ~x & q[0] & ~q[1];

endmodule

PS。我只对这种技术感兴趣,如果它错了,请尝试告诉我出了什么问题以便修复它

4

1 回答 1

0

来自维基百科

在计算理论中,Mealy 机是一种有限状态机,其输出值由其当前状态和当前输入决定。

假设 inputin已经像x代码中那样拼写错误,那么模块是否符合定义?

你有一些状态q。和一些输出y。您的输入in or x直接影响输出。所以这符合 Mealy Machine 的定义。

注意:逻辑很难理解,状态的功能和流程很难看到,有很多更好的方法来编写 FSM,其中大部分都是在单个模块中完成的。

于 2013-02-06T17:05:30.447 回答