这段verilog代码是什么意思,并解释一下
module seqdet(x,z,clk,rst,state);input x,clk,rst;
output z;
output state;
reg state;
wire z;
parameter IDLE = `d0,A=`d1,B=`d2,
C=`d3,D=`d4,
E=`d5,F=`d6,
G=`d7;
assign z = ( state==E && x==0)?1:0;
always @( posedge clk)
if( !rst)
begin
state <= IDLE;
end
else
casex(state)
IDLE: if( x==1)
begin
state <= A;
end
A: if( x==0)
begin
state <= B;
end
B: if( x==0)
begin
state <= C;
end
else
begin
state <= F;
end
C: if( x==1)
begin
state <= D;
end
else
begin
state <= G;
end
D: if(x==0)
begin
state <= E;
end
else
begin
state <= A;
end
E: if( x==0)
begin
state <= C;
end
else
begin
state <= A;
end
F: if( x==1)
begin
state <= A;
end
else
begin
state <= B;
end
G: if( x==1)
begin
state <= F;
end
default:state = IDLE;
endcase
endmodule Just one example for the Mealy FSM 就是一个米利机的例子(翻译楼上的。) Just one example for the Mealy FSM(translation from the upstairs) 我当然知道这是一个状态机。<br>
难道你看一段东东只要知道它是什么就完了吗?<br>
那看代码还有什么意思,不用看我就知道它是代码... 楼上的还是没有理解别人的意思啊<br>
<br>
这就是个简单的FSM, 你可以看做是例子, 也可以看作是一个某某功能<br>
<br>
但谁都没法说是实现了个什么, 只是凭借几个简单的状态转移过程,你就想知道具体的实物是什么, 那不太现实.<br>
<br>
就好像说, 1+1 是什么意思那? 你写代码,肯定是用它来实现什么功能.<br>
比如分频,加法器,编码译码什么的.<br>
你看一个core,就只需要知道它是一个core吗?<br>
难道你不会想要知道它是做什么用的,干嘛要这样写.<br>
只有知道它的功能,我们才能了解它的优劣,并加以改进.<br>
为什么我们看到一小段全加器的代码,就马上说他是全加器.<br>
而看到上面的玩意,就只说它是个FSM呢? 不知道你是没理解意思, 还是大家没说清楚<br>
<br>
有些代码看了后确实知道是一个什么功能, 但你给的这段代码,只是几个状态的转移, 我现在说它是个自动取款机某部分的功能都可以.所以大家根本无法给你详细说明.<br>
<br>
你可以参考下一些好的代码. 还有就是常用模块大家都知道, 只要看上几行代码的描述就能知道再说什么了, 而FSM 主要是状态的转移, 里面有组合,有时序逻辑. 不可能一下就知道. 除非你把变量名写好, 有注释, 否则,就算是你自己的写的代码, 过几天也都忘记了. OK..<br>
谢谢.. 这不就是把数列中的10010检测出来么。。。