commit-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Commit-gnuradio] r6432 - gnuradio/branches/developers/matt/u2f/control_


From: matt
Subject: [Commit-gnuradio] r6432 - gnuradio/branches/developers/matt/u2f/control_lib
Date: Thu, 13 Sep 2007 21:28:39 -0600 (MDT)

Author: matt
Date: 2007-09-13 21:28:39 -0600 (Thu, 13 Sep 2007)
New Revision: 6432

Modified:
   gnuradio/branches/developers/matt/u2f/control_lib/fifo_int.v
Log:
fixes to shorten critical paths


Modified: gnuradio/branches/developers/matt/u2f/control_lib/fifo_int.v
===================================================================
--- gnuradio/branches/developers/matt/u2f/control_lib/fifo_int.v        
2007-09-13 23:23:11 UTC (rev 6431)
+++ gnuradio/branches/developers/matt/u2f/control_lib/fifo_int.v        
2007-09-14 03:28:39 UTC (rev 6432)
@@ -39,7 +39,8 @@
    
    reg [31:0] ctrl_reg;
    reg               go_reg;
-   
+   reg               rd_empty_reg;           
+      
    always @(posedge clk)
      go_reg <= go;
    
@@ -76,10 +77,14 @@
        begin
          addr_o <= 0;
          state <= IDLE;
+         rd_empty_reg <= 1;
        end
      else
        if(clear)
-        state <= IDLE;
+        begin
+           state <= IDLE;
+           rd_empty_reg <= 1;
+        end
        else 
         case(state)
           IDLE :
@@ -99,6 +104,7 @@
             begin
                state <= READING;
                addr_o <= addr_o + 1;
+               rd_empty_reg <= 0;
             end
           
           READING :
@@ -106,9 +112,15 @@
               begin
                  addr_o <= addr_o + 1;
                  if(rd_error_i)
-                   state <= ERROR;
+                   begin
+                      state <= ERROR;
+                      rd_empty_reg <= 1;
+                   end
                  else if((addr_o == lastline + 9'd1)|rd_done_i)
-                   state <= DONE;
+                   begin
+                      state <= DONE;
+                      rd_empty_reg <= 1;
+                   end
               end
           
           WRITING :
@@ -132,8 +144,10 @@
    
    // FIXME ignores step for now
 
-   assign     rd_empty_o = (state != READING); // && (state != PRE_READ);
-   assign     rd_ready_o = (state == READING);
+   //assign     rd_empty_o = (state != READING); // && (state != PRE_READ);
+   assign     rd_empty_o = rd_empty_reg;         // timing fix?
+   //assign     rd_ready_o = (state == READING);
+   assign     rd_ready_o = ~rd_empty_reg;        // timing fix?
    
    assign     wr_full_o = (state != WRITING);
    assign     wr_ready_o = (state == WRITING);





reply via email to

[Prev in Thread] Current Thread [Next in Thread]