[Top][All Lists]
[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) );
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Commit-gnuradio] r6891 - in gnuradio/branches/developers/matt/u2f: control_lib sdr_lib,
matt <=