diff --git a/rtl/ddr3_controller.v b/rtl/ddr3_controller.v index 37f8b9a..bb14076 100644 --- a/rtl/ddr3_controller.v +++ b/rtl/ddr3_controller.v @@ -40,7 +40,7 @@ module ddr3_controller #( COL_BITS = 10, //width of column address BA_BITS = 3, //width of bank address DQ_BITS = 8, //width of DQ - LANES = 8, //lanes of DQ + LANES = 2, //lanes of DQ AUX_WIDTH = 4, //width of aux line (must be >= 4) WB2_ADDR_BITS = 7, //width of 2nd wishbone address bus WB2_DATA_BITS = 32, //width of 2nd wishbone data bus @@ -494,7 +494,7 @@ module ddr3_controller #( for(index = 0; index < MAX_ADDED_READ_ACK_DELAY; index = index + 1) begin o_wb_ack_read_q[index] = 0; end - + for(index=0; index < (1<2) should stay zero at //all instance - for(index = 2; index < MAX_ADDED_READ_ACK_DELAY ; index = index + 1) begin - assert(o_wb_ack_read_q[index] == 0); + for(f_index_1 = 2; f_index_1 < MAX_ADDED_READ_ACK_DELAY ; f_index_1 = f_index_1 + 1) begin + assert(o_wb_ack_read_q[f_index_1] == 0); end f_aux_ack_pipe_after_stage2[READ_ACK_PIPE_WIDTH+1] = o_wb_ack_read_q[0]; //last stage of f_aux_ack_pipe_after_stage2 is also the last ack stage f_aux_ack_pipe_after_stage2[READ_ACK_PIPE_WIDTH] = o_wb_ack_read_q[1]; - for(index = 0; index < READ_ACK_PIPE_WIDTH; index = index + 1) begin - f_aux_ack_pipe_after_stage2[READ_ACK_PIPE_WIDTH - 1 - index] = shift_reg_read_pipe_q[index]; + for(f_index_1 = 0; f_index_1 < READ_ACK_PIPE_WIDTH; f_index_1 = f_index_1 + 1) begin + f_aux_ack_pipe_after_stage2[READ_ACK_PIPE_WIDTH - 1 - f_index_1] = shift_reg_read_pipe_q[f_index_1]; end f_ack_pipe_after_stage2 = { o_wb_ack_read_q[0][0], @@ -3160,15 +3159,15 @@ ALTERNATE_WRITE_READ: if(!o_wb_stall_calib) begin end f_ack_pipe_marker = 0; - for(index = 0; index < READ_ACK_PIPE_WIDTH + 2; index = index + 1) begin //check each ack stage starting from last stage - if(f_aux_ack_pipe_after_stage2[index][0]) begin //if ack is high - if(f_aux_ack_pipe_after_stage2[index][AUX_WIDTH:1] == 1) begin //ack for read + for(f_index_1 = 0; f_index_1 < READ_ACK_PIPE_WIDTH + 2; f_index_1 = f_index_1 + 1) begin //check each ack stage starting from last stage + if(f_aux_ack_pipe_after_stage2[f_index_1][0]) begin //if ack is high + if(f_aux_ack_pipe_after_stage2[f_index_1][AUX_WIDTH:1] == 1) begin //ack for read assert(f_ack_pipe_marker == 0); //read ack must be the last ack on the pipe(f_pipe_marker must still be zero) f_ack_pipe_marker = f_ack_pipe_marker + 1; assert(!stage1_pending && !stage2_pending); //a single read request must be the last request on this calibration end else begin //ack for write - assert(f_aux_ack_pipe_after_stage2[index][AUX_WIDTH:1] == 0); + assert(f_aux_ack_pipe_after_stage2[f_index_1][AUX_WIDTH:1] == 0); f_ack_pipe_marker = f_ack_pipe_marker + 1; end end @@ -3229,11 +3228,11 @@ ALTERNATE_WRITE_READ: if(!o_wb_stall_calib) begin //test the delay_before* always @* begin - for(index=0; index< (1<