ERROR:HDLCompiler:1128 - "D:\EDK_project\MDIO_Communication\flash_controller.v" Line 329: Assignment under multiple single edges is not supported for synthesis
INFO - You can change the severity of this error message to warning using switch -change_error_to_warning "HDLCompiler:1128"
Module flash_controller remains a blackbox, due to errors in its contents
always@(posedge sclk or posedge reset)
begin
if((delay_count_page>=4)&&(delay_count_page<=259)&&(~delay_count_page%2)&&read_en)
begin
case(delay_count_byte)
4'd1:data[7]<=miso;
4'd2:data[6]<=miso;
4'd3:data[5]<=miso;
4'd4:data[4]<=miso;
4'd5:data[3]<=miso;
4'd6:data[2]<=miso;
4'd7:data[1]<=miso;
4'd8:data[0]<=miso;
default: data<=0;
endcase
end
else if((delay_count_page>=4)&&(delay_count_page<=259)&&(delay_count_page%2)&&read_en)
begin
case(delay_count_byte)
4'd1:data[15]<=miso;
4'd2:data[14]<=miso;
4'd3:data[13]<=miso;
4'd4:data[12]<=miso;
4'd5:data[11]<=miso;
4'd6:data[10]<=miso;
4'd7:data[9]<=miso;
4'd8:data[8]<=miso;
default: data<=0;
endcase
end
else if((delay_count_page>=3)&&program_enable)
begin
if(delay_count_page>=3&&delay_count_page<=258&&(delay_count_page%2))
begin
if (delay_count_byte==8)
data<=dob;
end
end
else
data<=16'd0;
end
//---------------------------------------------------- //store miso to data& get data from dob
always@(posedge sclk)
begin
if(read_en)
begin
if((delay_count_page>=4)&&(delay_count_page<=259))
begin
if(~delay_count_page%2)
begin
case(delay_count_byte)
4'd1:data[7]<=miso;
4'd2:data[6]<=miso;
4'd3:data[5]<=miso;
4'd4:data[4]<=miso;
4'd5:data[3]<=miso;
4'd6:data[2]<=miso;
4'd7:data[1]<=miso;
4'd8:data[0]<=miso;
default: data<=0;
endcase
end
else if (delay_count_page%2)
begin
case(delay_count_byte)
4'd1:data[15]<=miso;
4'd2:data[14]<=miso;
4'd3:data[13]<=miso;
4'd4:data[12]<=miso;
4'd5:data[11]<=miso;
4'd6:data[10]<=miso;
4'd7:data[9]<=miso;
4'd8:data[8]<=miso;
default: data<=0;
endcase
end
end
end
else if(program_enable)
begin
if(delay_count_page>=3&&delay_count_page<=258&&(delay_count_page%2))
begin
if (delay_count_byte==8)
data<=dob;
end
end
else
data<=0;
end
注意查看错误提示,一般会告诉你在哪里支找原因。Assignment under multiple single edges is not supported
再看你代码,哪里与edge有关的? (posedge sclk or posedge reset)
我们通常用是这么用,
always @ (posedge clk or posedge reset)
if (reset == 1'b1)
....
else