帮我找一下这个verilog程序中的错误??谢谢
module san(clk,en,p);
input clk, en;
output [5:0]p;
reg [5:0]p;
reg [3:0]oa;
parameter s0 =4'b0010, s1 = 4'b0100,s2=4'b0110,s3=4'b0101,s4=4'b0111,s5=4'b1011;
always @(posedge clk or p)
begin
if(en)
case(oa)
s0: begin oa= s1;p=6'b000001; end
s1: begin oa= s2;p=6'b000010; end
s2: begin oa= s3;p=6'b000100; end
s3: begin oa= s4;p=6'b001000; end
s4: begin oa= s5;p=6'b010000; end
s5: begin oa= s0;p=6'b100000; end
default: oa=s0;
endcase
end
endmodule
[解决办法]
module text;
reg clk,en;
wire [5:0]p;
initial begin
clk<=0;
en<=0;
#3 en<=1;
end
always #5 clk=~clk;
san u1(clk,en,p);
endmodule
这是我写的测试 至少这段代码的编译时没有问题的 波形也正常
如果想去出开始的未知状态 可以上电复位一下就可以了
[解决办法]
if(en)
s0:...
s1:...
else
...