commit-gnuradio
[Top][All Lists]
Advanced

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

[Commit-gnuradio] r6891 - in gnuradio/branches/developers/matt/u2f: cont


From: matt
Subject: [Commit-gnuradio] r6891 - in gnuradio/branches/developers/matt/u2f: control_lib sdr_lib
Date: Tue, 13 Nov 2007 23:15:15 -0700 (MST)

Author: matt
Date: 2007-11-13 23:15:15 -0700 (Tue, 13 Nov 2007)
New Revision: 6891

Added:
   gnuradio/branches/developers/matt/u2f/control_lib/cascadefifo.v
Modified:
   gnuradio/branches/developers/matt/u2f/control_lib/serdes_tx.v
   gnuradio/branches/developers/matt/u2f/sdr_lib/tx_control.v
Log:
switch to new cascade fifo made up of 1 short and 1 long fifo.  This helps 
routing tremendously


Added: gnuradio/branches/developers/matt/u2f/control_lib/cascadefifo.v
===================================================================
--- gnuradio/branches/developers/matt/u2f/control_lib/cascadefifo.v             
                (rev 0)
+++ gnuradio/branches/developers/matt/u2f/control_lib/cascadefifo.v     
2007-11-14 06:15:15 UTC (rev 6891)
@@ -0,0 +1,40 @@
+
+
+// This FIFO exists to provide an intermediate point for the data on its
+// long trek from one RAM (in the buffer pool) to another (in the longfifo)
+// The shortfifo is more flexible in its placement since it is based on
+// distributed RAM
+// This one should only be used on transmit side applications.  I.e. tx_mac, 
tx_dsp, etc.
+//   Spartan 3's have slow routing....
+// If we REALLY need to, we could also do this on the output side, 
+// with for the receive side stuff
+
+module cascadefifo
+  #(parameter WIDTH=32, SIZE=9)
+    (input clk, input rst,
+     input [WIDTH-1:0] datain,
+     output [WIDTH-1:0] dataout,
+     input read,
+     input write,
+     output full,
+     output empty);
+
+   wire [WIDTH-1:0] data_int;
+   wire            empty_int, full_int, transfer_int;
+   
+   shortfifo #(.WIDTH(WIDTH)) shortfifo
+     (.clk(clk),.rst(rst),
+      .datain(datain), .write(write), .full(full),
+      .dataout(data_int), .read(transfer_int), .empty(empty_int) );
+
+   longfifo #(.WIDTH(WIDTH),.SIZE(SIZE)) longfifo
+     (.clk(clk),.rst(rst),
+      .datain(data_int), .write(transfer_int), .full(full_int),
+      .dataout(dataout), .read(read), .empty(empty) );
+
+   assign          transfer = ~empty_int & ~full_int;      
+
+endmodule // cascadefifo
+
+
+

Modified: gnuradio/branches/developers/matt/u2f/control_lib/serdes_tx.v
===================================================================
--- gnuradio/branches/developers/matt/u2f/control_lib/serdes_tx.v       
2007-11-14 05:02:36 UTC (rev 6890)
+++ gnuradio/branches/developers/matt/u2f/control_lib/serdes_tx.v       
2007-11-14 06:15:15 UTC (rev 6891)
@@ -67,7 +67,7 @@
    wire [31:0] data_o;
    reg                xfer_active;
    
-   longfifo #(.WIDTH(34),.SIZE(FIFOSIZE)) serdes_tx_fifo
+   cascadefifo #(.WIDTH(34),.SIZE(FIFOSIZE)) serdes_tx_fifo
      (.clk(clk),.rst(rst),
       .datain({rd_sop_i,rd_eop_i,rd_dat_i}), .write(write), .full(full),
       .dataout({sop_o,eop_o,data_o}), .read(read), .empty(empty) );

Modified: gnuradio/branches/developers/matt/u2f/sdr_lib/tx_control.v
===================================================================
--- gnuradio/branches/developers/matt/u2f/sdr_lib/tx_control.v  2007-11-14 
05:02:36 UTC (rev 6890)
+++ gnuradio/branches/developers/matt/u2f/sdr_lib/tx_control.v  2007-11-14 
06:15:15 UTC (rev 6891)
@@ -67,7 +67,7 @@
    wire        sop_o, eop_o, eob, sob, send_imm;
    wire [31:0] sendtime;
    
-   longfifo #(.WIDTH(34),.SIZE(FIFOSIZE)) txfifo
+   cascadefifo #(.WIDTH(34),.SIZE(FIFOSIZE)) txfifo
      (.clk(clk),.rst(rst),
       .datain({rd_sop_i,rd_eop_i,rd_dat_i}), .write(write_data), 
.full(full_data),
       .dataout({sop_o,eop_o,data_o}), .read(read_data), .empty(empty_data) );





reply via email to

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