diff options
| -rw-r--r-- | usrp2/fifo/packet_router.v | 23 | ||||
| -rw-r--r-- | usrp2/top/u2_rev3/u2_core_udp.v | 15 | 
2 files changed, 21 insertions, 17 deletions
| diff --git a/usrp2/fifo/packet_router.v b/usrp2/fifo/packet_router.v index 7bc5255be..12b12e41c 100644 --- a/usrp2/fifo/packet_router.v +++ b/usrp2/fifo/packet_router.v @@ -31,6 +31,7 @@ module packet_router          input [35:0] ser_inp_data, input ser_inp_valid, output ser_inp_ready,          input [35:0] dsp_inp_data, input dsp_inp_valid, output dsp_inp_ready,          input [35:0] eth_inp_data, input eth_inp_valid, output eth_inp_ready, +        input [35:0] err_inp_data, input err_inp_valid, output err_inp_ready,          // Output Interfaces (out of router)          output [35:0] ser_out_data, output ser_out_valid, input ser_out_ready, @@ -164,6 +165,7 @@ module packet_router      // Communication output source combiner      //   - DSP framer      //   - CPU input +    //   - Error input      //   - Crossbar input      //////////////////////////////////////////////////////////////////// @@ -173,21 +175,28 @@ module packet_router      wire        dsp_frm_ready;      //dummy signals to join the the muxes below -    wire [35:0] _combiner_data; -    wire        _combiner_valid; -    wire        _combiner_ready; +    wire [35:0] _combiner0_data, _combiner1_data; +    wire        _combiner0_valid, _combiner1_valid; +    wire        _combiner0_ready, _combiner1_ready; -    fifo36_mux _com_output_source( +    fifo36_mux _com_output_combiner0(          .clk(stream_clk), .reset(stream_rst), .clear(router_clr),          .data0_i(dsp_frm_data), .src0_rdy_i(dsp_frm_valid), .dst0_rdy_o(dsp_frm_ready), +        .data1_i(err_inp_data), .src1_rdy_i(err_inp_valid), .dst1_rdy_o(err_inp_ready), +        .data_o(_combiner0_data), .src_rdy_o(_combiner0_valid), .dst_rdy_i(_combiner0_ready) +    ); + +    fifo36_mux _com_output_combiner1( +        .clk(stream_clk), .reset(stream_rst), .clear(router_clr), +        .data0_i(crs_inp_data), .src0_rdy_i(crs_inp_valid), .dst0_rdy_o(crs_inp_ready),          .data1_i(cpu_inp_data), .src1_rdy_i(cpu_inp_valid), .dst1_rdy_o(cpu_inp_ready), -        .data_o(_combiner_data), .src_rdy_o(_combiner_valid), .dst_rdy_i(_combiner_ready) +        .data_o(_combiner1_data), .src_rdy_o(_combiner1_valid), .dst_rdy_i(_combiner1_ready)      );      fifo36_mux com_output_source(          .clk(stream_clk), .reset(stream_rst), .clear(router_clr), -        .data0_i(_combiner_data), .src0_rdy_i(_combiner_valid), .dst0_rdy_o(_combiner_ready), -        .data1_i(crs_inp_data), .src1_rdy_i(crs_inp_valid), .dst1_rdy_o(crs_inp_ready), +        .data0_i(_combiner0_data), .src0_rdy_i(_combiner0_valid), .dst0_rdy_o(_combiner0_ready), +        .data1_i(_combiner1_data), .src1_rdy_i(_combiner1_valid), .dst1_rdy_o(_combiner1_ready),          .data_o(com_out_data), .src_rdy_o(com_out_valid), .dst_rdy_i(com_out_ready)      ); diff --git a/usrp2/top/u2_rev3/u2_core_udp.v b/usrp2/top/u2_rev3/u2_core_udp.v index 78cf641f7..451de9297 100644 --- a/usrp2/top/u2_rev3/u2_core_udp.v +++ b/usrp2/top/u2_rev3/u2_core_udp.v @@ -360,6 +360,9 @@ module u2_core     wire [3:0] 	 wr0_flags, wr1_flags, wr2_flags, wr3_flags;     wire [31:0] 	 wr0_dat, wr1_dat, wr2_dat, wr3_dat; +   wire [35:0] 	 tx_err_data; +   wire 	 tx_err_src_rdy, tx_err_dst_rdy; +     wire [31:0] router_control;     wire router_control_changed; @@ -382,6 +385,7 @@ module u2_core        .ser_inp_data({wr0_flags, wr0_dat}), .ser_inp_valid(wr0_ready_i), .ser_inp_ready(wr0_ready_o),        .dsp_inp_data({wr1_flags, wr1_dat}), .dsp_inp_valid(wr1_ready_i), .dsp_inp_ready(wr1_ready_o),        .eth_inp_data({wr2_flags, wr2_dat}), .eth_inp_valid(wr2_ready_i), .eth_inp_ready(wr2_ready_o), +      .err_inp_data(tx_err_data), .err_inp_ready(tx_err_src_rdy), .err_inp_valid(tx_err_dst_rdy),        .ser_out_data({rd0_flags, rd0_dat}), .ser_out_valid(rd0_ready_o), .ser_out_ready(rd0_ready_i),        .dsp_out_data({rd1_flags, rd1_dat}), .dsp_out_valid(rd1_ready_o), .dsp_out_ready(rd1_ready_i), @@ -475,20 +479,11 @@ module u2_core        .tx_f36_data(udp_tx_data), .tx_f36_src_rdy_i(udp_tx_src_rdy), .tx_f36_dst_rdy_o(udp_tx_dst_rdy),        .debug(debug_udp) ); -   wire [35:0] 	 tx_err_data, udp1_tx_data; -   wire 	 tx_err_src_rdy, tx_err_dst_rdy, udp1_tx_src_rdy, udp1_tx_dst_rdy; -        fifo_cascade #(.WIDTH(36), .SIZE(ETH_TX_FIFOSIZE)) tx_eth_fifo       (.clk(dsp_clk), .reset(dsp_rst), .clear(0),        .datain({rd2_flags,rd2_dat}), .src_rdy_i(rd2_ready_o), .dst_rdy_o(rd2_ready_i), -      .dataout(udp1_tx_data), .src_rdy_o(udp1_tx_src_rdy), .dst_rdy_i(udp1_tx_dst_rdy)); +      .dataout(udp_tx_data), .src_rdy_o(udp_tx_src_rdy), .dst_rdy_i(udp_tx_dst_rdy)); -   fifo36_mux #(.prio(0)) mux_err_stream -     (.clk(dsp_clk), .reset(dsp_reset), .clear(0), -      .data0_i(udp1_tx_data), .src0_rdy_i(udp1_tx_src_rdy), .dst0_rdy_o(udp1_tx_dst_rdy), -      .data1_i(tx_err_data), .src1_rdy_i(tx_err_src_rdy), .dst1_rdy_o(tx_err_dst_rdy), -      .data_o(udp_tx_data), .src_rdy_o(udp_tx_src_rdy), .dst_rdy_i(udp_tx_dst_rdy)); -        fifo_cascade #(.WIDTH(36), .SIZE(ETH_RX_FIFOSIZE)) rx_eth_fifo       (.clk(dsp_clk), .reset(dsp_rst), .clear(0),        .datain(udp_rx_data), .src_rdy_i(udp_rx_src_rdy), .dst_rdy_o(udp_rx_dst_rdy), | 
