diff --git a/rtl/ddr3_controller.v b/rtl/ddr3_controller.v index 85f4e98..7d1e5e9 100644 --- a/rtl/ddr3_controller.v +++ b/rtl/ddr3_controller.v @@ -189,7 +189,6 @@ module ddr3_controller #( localparam WRITE_TO_WRITE_DELAY = 0; localparam WRITE_TO_READ_DELAY = find_delay((CWL_nCK + 3'd4 + ns_to_nCK(tWTR)), WRITE_SLOT, READ_SLOT); //4 localparam WRITE_TO_PRECHARGE_DELAY = find_delay((CWL_nCK + 3'd4 + ns_to_nCK(tWR)), WRITE_SLOT, PRECHARGE_SLOT); //5 - localparam WRITE_TO_ODT_OFF = find_delay((CWL_nCK + 3'd4 + ns_to_nCK(tWR)), WRITE_SLOT, PRECHARGE_SLOT); //5 //MARGIN_BEFORE_ANTICIPATE is the number of columns before the column //end when the anticipate can start //the worst case scenario is when the anticipated bank needs to be precharged @@ -774,14 +773,17 @@ module ddr3_controller #( cmd_odt = 1'b1; //set-up delay before precharge, read, and write delay_before_precharge_counter_d[stage2_bank] = WRITE_TO_PRECHARGE_DELAY; + for(index=0; index < (1<> 1; o_wb_ack_read_q[added_read_pipe_max] <= shift_reg_read_pipe_q[0]; end end @@ -1423,7 +1428,6 @@ module ddr3_controller #( $display("WRITE_TO_WRITE_DELAY = 0 = %0d", WRITE_TO_WRITE_DELAY); $display("WRITE_TO_READ_DELAY = 4 = %0d", WRITE_TO_READ_DELAY); $display("WRITE_TO_PRECHARGE_DELAY = 5 = %0d", WRITE_TO_PRECHARGE_DELAY); - end `endif @@ -1434,9 +1438,11 @@ module ddr3_controller #( always @* begin //assert(tMOD + tZQinit > nCK_to_cycles(tDLLK)); //Initialization sequence requires that tDLLK is satisfied after MRS to mode register 0 and ZQ calibration assert(MR0[18] != 1'b1); //last Mode Register bit should never be zero - assert(MR1[18] != 1'b1); //(as this is used for A10-AP control for non-MRS + assert(MR1_WL_EN[18] != 1'b1); //(as this is used for A10-AP control for non-MRS + assert(MR1_WL_DIS[18] != 1'b1); //(as this is used for A10-AP control for non-MRS assert(MR2[18] != 1'b1); //commands in the reset sequence) - assert(MR3[18] != 1'b1); + assert(MR3_MPR_EN[18] != 1'b1); + assert(MR3_MPR_DIS[18] != 1'b1); assert(DELAY_COUNTER_WIDTH <= $bits(MR0)); //bitwidth of mode register should be enough for the delay counter assert(($bits(instruction) - $bits(CMD_MRS) - $bits(MR0)) == 5 ); //sanity checking to ensure 5 bits is allotted for extra instruction {reset_finished, use_timer , stay_command , cke , reset_n } assert(DELAY_SLOT_WIDTH >= DELAY_COUNTER_WIDTH); //width occupied by delay timer slot on the reset rom must be able to occupy the maximum possible delay value on the reset sequence