summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--usrp2/top/N2x0/u2plus_core.v1
-rw-r--r--usrp2/top/USRP2/u2_core.v1
-rw-r--r--usrp2/vrt/vita_tx_chain.v18
3 files changed, 16 insertions, 4 deletions
diff --git a/usrp2/top/N2x0/u2plus_core.v b/usrp2/top/N2x0/u2plus_core.v
index 0ee66d170..f04d449be 100644
--- a/usrp2/top/N2x0/u2plus_core.v
+++ b/usrp2/top/N2x0/u2plus_core.v
@@ -661,6 +661,7 @@ module u2plus_core
wire strobe_tx;
vita_tx_chain #(.BASE(SR_TX_CTRL), .FIFOSIZE(DSP_TX_FIFOSIZE),
+ .POST_ENGINE_FIFOSIZE(DSP_TX_FIFOSIZE+1),
.REPORT_ERROR(1), .DO_FLOW_CONTROL(1),
.PROT_ENG_FLAGS(1), .USE_TRANS_HEADER(1),
.DSP_NUMBER(0))
diff --git a/usrp2/top/USRP2/u2_core.v b/usrp2/top/USRP2/u2_core.v
index 746853fbf..d29f31b8f 100644
--- a/usrp2/top/USRP2/u2_core.v
+++ b/usrp2/top/USRP2/u2_core.v
@@ -647,6 +647,7 @@ module u2_core
wire strobe_tx;
vita_tx_chain #(.BASE(SR_TX_CTRL), .FIFOSIZE(DSP_TX_FIFOSIZE),
+ .POST_ENGINE_FIFOSIZE(DSP_TX_FIFOSIZE+1),
.REPORT_ERROR(1), .DO_FLOW_CONTROL(1),
.PROT_ENG_FLAGS(1), .USE_TRANS_HEADER(1),
.DSP_NUMBER(0))
diff --git a/usrp2/vrt/vita_tx_chain.v b/usrp2/vrt/vita_tx_chain.v
index 189876015..61df19097 100644
--- a/usrp2/vrt/vita_tx_chain.v
+++ b/usrp2/vrt/vita_tx_chain.v
@@ -19,6 +19,7 @@
module vita_tx_chain
#(parameter BASE=0,
parameter FIFOSIZE=10,
+ parameter POST_ENGINE_FIFOSIZE=0,
parameter REPORT_ERROR=0,
parameter DO_FLOW_CONTROL=0,
parameter PROT_ENG_FLAGS=0,
@@ -83,10 +84,19 @@ module vita_tx_chain
.access_skip_read(access_skip_read), .access_adr(access_adr), .access_len(access_len),
.access_dat_i(buf_to_dsp), .access_dat_o(dsp_to_buf));
- fifo_cascade #(.WIDTH(36), .SIZE(9)) post_engine_buffering(
- .clk(clk), .reset(reset), .clear(clear),
- .datain(tx_data_int1), .src_rdy_i(tx_src_rdy_int1), .dst_rdy_o(tx_dst_rdy_int1),
- .dataout(tx_data_int2), .src_rdy_o(tx_src_rdy_int2), .dst_rdy_i(tx_dst_rdy_int2));
+ generate
+ if (POST_ENGINE_FIFOSIZE==0) begin
+ assign tx_data_int2 = tx_data_int1;
+ assign tx_src_rdy_int2 = tx_src_rdy_int1;
+ assign tx_dst_rdy_int1 = tx_dst_rdy_int2;
+ end
+ else begin
+ fifo_cascade #(.WIDTH(36), .SIZE(POST_ENGINE_FIFOSIZE)) post_engine_buffering(
+ .clk(clk), .reset(reset), .clear(clear),
+ .datain(tx_data_int1), .src_rdy_i(tx_src_rdy_int1), .dst_rdy_o(tx_dst_rdy_int1),
+ .dataout(tx_data_int2), .src_rdy_o(tx_src_rdy_int2), .dst_rdy_i(tx_dst_rdy_int2));
+ end
+ endgenerate
vita_tx_deframer #(.BASE(BASE),
.MAXCHAN(MAXCHAN),