|
本帖最后由 fpgaw 于 2010-7-16 13:34 编辑
Verilog程序如下:
是一个10010序列检测器,我用ModelSim仿真之后,输出波形z只是一个脉冲,z并没有输出一个周期宽度的矩形波,请问是什么原因?
module seqdet(x,z,clk,rst);
input x,clk,rst;
output z;
reg [2:0]state;
wire z;
parameter IDLE = 3'd0,
A = 3'd1,
B = 3'd2,
C = 3'd3,
D = 3'd4,
E = 3'd5,
F = 3'd6,
G = 3'd7;
assign z = (state==D&&x==0)?1:0
always @(posedge clk or negedge rst)
if(!rst)
begin
state<=IDLE;
end
else
case(state)
IDLE:if(x==1)
state<=A;
else
state<=IDLE;
A:if(x==0)
state<=B;
else
state<=A;
B:if(x==0)
state<=C;
else
state<=F;
C:if(x==1)
state<=D;
else
state<=G;
D:if(x==0)
state<=E;
else
state<=A;
E:if(x==0)
state<=C;
else
state<=A;
F:if(x==1)
state<=A;
else
state<=B;
G:if(x==1)
state<=F;
else
state<=B;
default:state<=IDLE;
endcase
endmodule |
|