2019-07-15 23:37发布
安和桥丶 发表于 2015-8-18 13:28 你查一下异步的 这个实验用异步会消除前面的不定态
骨灰级发烧友 发表于 2015-8-18 08:56 采用Moore机,画出状态图,并写出状态转移输出表。为了简单起见,我们这里采用的是无重复的序列检测。 程序代码: module VrSMex( CLOCK, X, Z);
runileking 发表于 2015-8-18 09:47 谢谢你,我还想问一下,就是我是按书上一个例子写的,但是我觉得当x=1时,state应该为001,但是为什么仿真结果在x=1的一个周期之后才变为001,能帮我看看是为什么么?
安和桥丶 发表于 2015-8-18 10:45 你把你的testbench的39行改成非阻塞赋值看看 data
最多设置5个标签!
一个是tb 一个主程序 最佳答案
程序代码:
module VrSMex( CLOCK, X, Z);
input CLOCK, X;
output Z;
reg Z;
reg [2:0] Sreg, Snext;
parameter [2:0] A = 3'b000,
B = 3'b001,
C = 3'b010,
D = 3'b011,
E = 3'b100,
F = 3'b101;
always @ (posedge CLOCK)
Sreg <= Snext;
always @ (X, Sreg) begin
case (Sreg)
A: if(X==0) Snext = A;
else Snext = B;
B: if(X==0) Snext = C;
else Snext = B;
C: if(X==0) Snext = D;
else Snext = B;
D: if(X==0) Snext = A;
else Snext = E;
E: if(X==0) Snext = F;
else Snext = B;
F: if(X==0) Snext = A;
else Snext = B;
default Snext = A;
endcase
end
always @ (Sreg)
case (Sreg)
A, B, C, D, E: Z = 0;
F: Z = 1;
default z = 0;
endcase
endmodule
谢谢你,我还想问一下,就是我是按书上一个例子写的,但是我觉得当x=1时,state应该为001,但是为什么仿真结果在x=1的一个周期之后才变为001,能帮我看看是为什么么?
这个例子你可以把它改成异步low reset 看看 波形怎么变化 这样你才会看到同步和异步的区别
谢谢你,这个我试过了,没有变化
一周热门 更多>