DDR2: remember to check if out_empty before attempting an operation
authormegacz <adam@megacz.com>
Mon, 6 Apr 2009 18:46:38 +0000 (11:46 -0700)
committermegacz <adam@megacz.com>
Mon, 6 Apr 2009 18:46:38 +0000 (11:46 -0700)
ships/DDR2.ship

index afebc99..4689e4e 100644 (file)
@@ -206,7 +206,7 @@ always @(posedge clk) begin
       end
     end else if (app_wdf_afull || app_af_afull) begin
       /* wait */
-    end else if (`inAddrWrite_full && `inDataWrite_full) begin
+    end else if (`inAddrWrite_full && `inDataWrite_full && `out_empty) begin
       `drain_inDataWrite
       `drain_inAddrWrite
       app_wdf_data   <= inDataWrite_d;
@@ -218,7 +218,7 @@ always @(posedge clk) begin
       out_d          <= { 1'b1, 37'b0 };
       mask           <= 8'b00000000;
       `fill_out
-    end else if (`inAddrRead_full) begin
+    end else if (`inAddrRead_full && `out_empty) begin
       `drain_inAddrRead
       app_af_addr    <= { inAddrRead_d, 2'b00 };
       app_af_cmd     <= 3'b001;