找一下verilog的一个程序哪错了??

来源:百度知道 编辑:UC知道 时间:2024/05/20 19:13:52
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

always中删除OR P
为OA赋初值

你最好把错误信息贴上来

always @(posedge clk or p)
p是输出端口或是寄存器,怎么能拿来做关键信号?
状态机不是这种写法的