我必须为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。我只对这种技术感兴趣,如果它错了请尝试告诉我什么是错的,以便解决它
答案 0 :(得分:0)
在计算理论中,Mealy机器是一种有限状态 输出值由其当前状态确定的机器 和目前的投入。
假设输入in
在代码中被标记为x
,那么模块是否符合定义?
你有一些州q
。和一些输出y
。您的输入in or x
直接影响输出。所以这符合Mealy机器的定义。