FPGA编程时同一段代码在quartus调用modelsim仿真和modelsim单独仿真结果不一样
always @ ( posedge o_out_clk or negedgei_rst_n)
if(!i_rst_n)
o_out_snc<=1'b0;
else if(clk_data==8'd0)
o_out_snc<=1'b1;
else if(clk_data==8'd19)
o_out_snc<=1'b0;
else
o_out_snc<=o_out_snc;
always @ ( posedge o_out_clk or negedgei_rst_n)
begin
case(clk_data)
8'd0 :
//o_out_snc<=1'b1 ;
o_out_data_x<=1'b0;
8'd1 : o_out_data_x<=1'b0;
8'd2 : o_out_data_x <=1'b1;
8'd3 : o_out_data_x <=1'b0;
8'd4 : o_out_data_x <=1'b0;
8'd5 : o_out_data_x <=1'b0;
8'd6 : o_out_data_x <=1'b0;
8'd7 : o_out_data_x <=1'b0;
8'd8 : o_out_data_x <=1'b0;
8'd9 : o_out_data_x <=1'b0;
8'd10 : o_out_data_x <=1'b0;
8'd11 : o_out_data_x <=1'b0;
8'd12 : o_out_data_x <=1'b0;
8'd13 : o_out_data_x <=1'b1;
8'd14 : o_out_data_x <=1'b0;
8'd15 : o_out_data_x <=1'b0;
8'd16 : o_out_data_x <=1'b0;
8'd17 : o_out_data_x <=1'b0;
8'd18 : o_out_data_x <=1'b0;
8'd19 :
//o_out_snc<=1'b0;
o_out_data_x <=1'b1;
default : o_out_data_x <=1'b0;
endcase
end
问题描述: o_out_snc是一个同步信号,o_out_data_x是数据发送,在modelsim中仿真同步信号和数据输出是同步的,但在quartus调用modesim仿真时数据发送信号要超前同步信号一个时钟,后来检查,在case语句前加上o_out_data_x复位,quartus调用modelsim仿真时结果一样
