On a side note, this is a good time to mention that learning to simulate
RFNoC blocks with the excellent and comprehensive testbench framework
Jonathon put together is the single most effective way to write better
RFNoC blocks, faster. This kind of error would be caught almost instantly
in simulation, instead of waiting N minutes for Vivado to synthesize and
implement it.

It is absolutely worth your time to start working with the testbench now,
instead of deferring because your block almost works.

Nick

On Tue, Jan 2, 2018 at 3:30 PM Nick Foster <[email protected]> wrote:

> You're assigning to o_tready and o_tdata instead of s_axis_data_tready and
> s_axis_data_tdata.
>
> Incidentally, you're also not setting the "len" input to anything in the
> top-level instantiation.
>
> Nick
>
> On Tue, Jan 2, 2018 at 3:22 PM Adam Kurisko <[email protected]> wrote:
>
>> Okay, I am now using ce_clk in place of clk for my user code, however now
>> my implementation is failing with the following error:
>>
>>
>> Implementation
>> Opt Design
>> [DRC 23-20] Rule violation (MDRV-1) Multiple Driver Nets - Net
>> e310_core0/inst_delay_fifo/noc_shell/out_fifo/fifo_short_2clk/U0/inst_fifo_gen/gconvfifo.rf/grf.rf/gntv_or_sync_fifo.mem/dout[0]
>> has multiple drivers:
>> e310_core0/inst_delay_fifo/sample_fifo/fifo_bram/ram/dst[0]_i_1/O,
>> e310_core0/inst_delay_fifo/noc_shell/out_fifo/fifo_short_2clk/U0/inst_fifo_gen/gconvfifo.rf/grf.rf/gntv_or_sync_fifo.mem/goreg_dm.dout_i_reg[0]/Q.
>> (63 more like this)
>>
>> [Vivado_Tcl 4-78] Error(s) found during DRC. Opt_design not run.
>>
>>
>> What might be causing this now?
>>
>>
>> Thank you,
>>
>> Adam
>> ------------------------------
>> *From:* Nick Foster <[email protected]>
>> *Sent:* Tuesday, January 2, 2018 6:02:44 PM
>>
>> *To:* Adam Kurisko
>> *Cc:* [email protected]
>> *Subject:* Re: [USRP-users] RFNOC Block design without GNU Radio
>> ce_clk is there for you to use as your compute engine clock. If you don't
>> have a very good reason to generate and use another clock, you should use
>> that one.
>>
>> Nick
>>
>> On Tue, Jan 2, 2018 at 2:57 PM Adam Kurisko <[email protected]> wrote:
>>
>> I actually found that too and reverted it back to the the original
>> bus_clk/rst and ce_bus/clk such as below:
>>
>>
>> noc_block_delay_fifo inst_delay_fifo (
>>   .bus_clk(bus_clk), .bus_rst(bus_rst),
>>   .ce_clk(ce_clk), .ce_rst(ce_rst),
>>
>>   .i_tdata(ce_o_tdata[0]), .i_tlast(ce_o_tlast[0]),
>> .i_tvalid(ce_o_tvalid[0]), .i_tready(ce_o_tready[0]),
>>   .o_tdata(ce_i_tdata[0]), .o_tlast(ce_i_tlast[0]),
>> .o_tvalid(ce_i_tvalid[0]), .o_tready(ce_i_tready[0]),
>>   .debug(ce_debug[0])
>> );
>>
>>
>> I am unsure of why I changed that in the first place, but I think it may
>> have been originally to route the ce_clk/rst to clk/rst as in .clk(ce_clk),
>> .reset(ce_rst).
>>
>>
>> For my user code in the source file, should I just use ce_clk rather than
>> generating a new clk?
>>
>>
>> Thank you,
>>
>> Adam
>> ------------------------------
>> *From:* Nick Foster <[email protected]>
>> *Sent:* Tuesday, January 2, 2018 5:09:55 PM
>>
>> *To:* Adam Kurisko
>> *Cc:* [email protected]
>> *Subject:* Re: [USRP-users] RFNOC Block design without GNU Radio
>> Why have you commented out bus_clk/rst and ce_clk/rst in favor of using
>> clk/reset? And where are clk/reset/clear being generated? What is being
>> used as bus_clk/rst in your block's noc_shell?
>>
>> Nick
>>
>> On Tue, Jan 2, 2018 at 12:54 PM Adam Kurisko <[email protected]>
>> wrote:
>>
>> Nick,
>>
>>
>> Haven't heard back from you yet and was just wondering if you were able
>> to give it a look.
>>
>>
>> I have a feeling that i may have not instantiated the block correctly in
>> rfnoc_ce_auto_inst.v, so I am currently attempting to figure out what might
>> be wrong. Any help or insight into this scenario would be much appreciated.
>>
>>
>> Thank you,
>>
>> Adam
>> ------------------------------
>> *From:* Adam Kurisko
>> *Sent:* Tuesday, January 2, 2018 2:39:16 PM
>> *To:* Nick Foster
>>
>> *Cc:* [email protected]
>> *Subject:* Re: [USRP-users] RFNOC Block design without GNU Radio
>>
>> Okay, below I posted my rfnoc_ce_auto_inst.v, as well as, my source code
>> for noc_block_delay_fifo.v.
>>
>>
>> ------------------------- rfnoc_ce_auto_inst.v
>> ------------------------------
>>
>>
>> /////////////////////////////////////////////////////////
>> // Auto-generated by gen_rfnoc_inst.py! Any changes
>> // in this file will be overwritten the next time
>> // this script is run.
>> /////////////////////////////////////////////////////////
>> localparam NUM_CE = 6;
>> wire [NUM_CE*64-1:0] ce_flat_o_tdata, ce_flat_i_tdata;
>> wire [63:0]          ce_o_tdata[0:NUM_CE-1], ce_i_tdata[0:NUM_CE-1];
>> wire [NUM_CE-1:0]    ce_o_tlast, ce_o_tvalid, ce_o_tready, ce_i_tlast,
>> ce_i_tvalid, ce_i_tready;
>> wire [63:0]          ce_debug[0:NUM_CE-1];
>> // Flattern CE tdata arrays
>> genvar k;
>> generate
>>   for (k = 0; k < NUM_CE; k = k + 1) begin
>>     assign ce_o_tdata[k] = ce_flat_o_tdata[k*64+63:k*64];
>>     assign ce_flat_i_tdata[k*64+63:k*64] = ce_i_tdata[k];
>>   end
>> endgenerate
>> wire ce_clk = radio_clk;
>> wire ce_rst = radio_rst;
>>
>> noc_block_delay_fifo inst_delay_fifo (
>>   //.bus_clk(bus_clk), .bus_rst(bus_rst),
>>   //.ce_clk(ce_clk), .ce_rst(ce_rst),
>>   .clk(clk), .reset(reset), .clear(clear),
>>   .i_tdata(ce_o_tdata[0]), .i_tlast(ce_o_tlast[0]),
>> .i_tvalid(ce_o_tvalid[0]), .i_tready(ce_o_tready[0]),
>>   .o_tdata(ce_i_tdata[0]), .o_tlast(ce_i_tlast[0]),
>> .o_tvalid(ce_i_tvalid[0]), .o_tready(ce_i_tready[0]),
>>   .debug(ce_debug[0])
>> );
>>
>> noc_block_axi_fifo_loopback inst_axi_fifo_loopback (
>>   .bus_clk(bus_clk), .bus_rst(bus_rst),
>>   .ce_clk(ce_clk), .ce_rst(ce_rst),
>>   .i_tdata(ce_o_tdata[1]), .i_tlast(ce_o_tlast[1]),
>> .i_tvalid(ce_o_tvalid[1]), .i_tready(ce_o_tready[1]),
>>   .o_tdata(ce_i_tdata[1]), .o_tlast(ce_i_tlast[1]),
>> .o_tvalid(ce_i_tvalid[1]), .o_tready(ce_i_tready[1]),
>>   .debug(ce_debug[1])
>> );
>>
>> noc_block_axi_fifo_loopback inst_axi_fifo_loopback2 (
>>   .bus_clk(bus_clk), .bus_rst(bus_rst),
>>   .ce_clk(ce_clk), .ce_rst(ce_rst),
>>   .i_tdata(ce_o_tdata[2]), .i_tlast(ce_o_tlast[2]),
>> .i_tvalid(ce_o_tvalid[2]), .i_tready(ce_o_tready[2]),
>>   .o_tdata(ce_i_tdata[2]), .o_tlast(ce_i_tlast[2]),
>> .o_tvalid(ce_i_tvalid[2]), .o_tready(ce_i_tready[2]),
>>   .debug(ce_debug[2])
>> );
>>
>> noc_block_axi_fifo_loopback inst_axi_fifo_loopback3 (
>>   .bus_clk(bus_clk), .bus_rst(bus_rst),
>>   .ce_clk(ce_clk), .ce_rst(ce_rst),
>>   .i_tdata(ce_o_tdata[3]), .i_tlast(ce_o_tlast[3]),
>> .i_tvalid(ce_o_tvalid[3]), .i_tready(ce_o_tready[3]),
>>   .o_tdata(ce_i_tdata[3]), .o_tlast(ce_i_tlast[3]),
>> .o_tvalid(ce_i_tvalid[3]), .o_tready(ce_i_tready[3]),
>>   .debug(ce_debug[3])
>> );
>>
>> noc_block_axi_fifo_loopback inst_axi_fifo_loopback4 (
>>   .bus_clk(bus_clk), .bus_rst(bus_rst),
>>   .ce_clk(ce_clk), .ce_rst(ce_rst),
>>   .i_tdata(ce_o_tdata[4]), .i_tlast(ce_o_tlast[4]),
>> .i_tvalid(ce_o_tvalid[4]), .i_tready(ce_o_tready[4]),
>>   .o_tdata(ce_i_tdata[4]), .o_tlast(ce_i_tlast[4]),
>> .o_tvalid(ce_i_tvalid[4]), .o_tready(ce_i_tready[4]),
>>   .debug(ce_debug[4])
>> );
>>
>> noc_block_axi_fifo_loopback inst_axi_fifo_loopback5 (
>>   .bus_clk(bus_clk), .bus_rst(bus_rst),
>>   .ce_clk(ce_clk), .ce_rst(ce_rst),
>>   .i_tdata(ce_o_tdata[5]), .i_tlast(ce_o_tlast[5]),
>> .i_tvalid(ce_o_tvalid[5]), .i_tready(ce_o_tready[5]),
>>   .o_tdata(ce_i_tdata[5]), .o_tlast(ce_i_tlast[5]),
>> .o_tvalid(ce_i_tvalid[5]), .o_tready(ce_i_tready[5]),
>>   .debug(ce_debug[5])
>> );
>>
>>
>>
>> ---------------------------------------------------------------------------------------------
>>
>>
>> ------------------------- noc_block_delay_fifo.v
>> -----------------------------------
>>
>>
>> module noc_block_delay_fifo #(
>>   parameter NOC_ID = 64'hDE7A_0000_0000_0000,
>>   parameter MAX_LEN_LOG2=10,
>>   parameter STR_SINK_FIFOSIZE = 11,
>>   parameter WIDTH=64)
>> (
>> //  input bus_clk, input bus_rst,
>> //  input ce_clk, input ce_rst,
>>   input clk, input reset, input clear,
>>   input [MAX_LEN_LOG2-1:0] len,
>>   input [WIDTH-1:0] i_tdata, input i_tlast, input i_tvalid, output
>> i_tready,
>>   output [WIDTH-1:0] o_tdata, output o_tlast, output o_tvalid, input
>> o_tready,
>>   output [WIDTH-1:0] debug
>> );
>>
>>   ////////////////////////////////////////////////////////////
>>   //
>>   // RFNoC Shell
>>   //
>>   ////////////////////////////////////////////////////////////
>>   wire [31:0] set_data;
>>   wire [7:0]  set_addr;
>>   wire        set_stb;
>>
>>   wire [63:0] cmdout_tdata, ackin_tdata;
>>   wire        cmdout_tlast, cmdout_tvalid, cmdout_tready, ackin_tlast,
>> ackin_tvalid, ackin_tready;
>>
>>   wire [63:0] str_sink_tdata, str_src_tdata;
>>   wire        str_sink_tlast, str_sink_tvalid, str_sink_tready,
>> str_src_tlast, str_src_tvalid, str_src_tready;
>>
>>   wire        clear_tx_seqnum;
>>   wire [15:0] next_dst_sid;
>>
>>   noc_shell #(
>>     .NOC_ID(NOC_ID),
>>     .STR_SINK_FIFOSIZE(STR_SINK_FIFOSIZE))
>>   noc_shell (
>>     .bus_clk(bus_clk), .bus_rst(bus_rst),
>>     .i_tdata(i_tdata), .i_tlast(i_tlast), .i_tvalid(i_tvalid),
>> .i_tready(i_tready),
>>     .o_tdata(o_tdata), .o_tlast(o_tlast), .o_tvalid(o_tvalid),
>> .o_tready(o_tready),
>>     // Computer Engine Clock Domain
>>     .clk(ce_clk), .reset(ce_rst),
>>     // Control Sink
>>     .set_data(set_data), .set_addr(set_addr), .set_stb(set_stb),
>> .set_time(),
>>     .rb_stb(1'b1), .rb_data(64'd0), .rb_addr(),
>>     // Control Source
>>     .cmdout_tdata(cmdout_tdata), .cmdout_tlast(cmdout_tlast),
>> .cmdout_tvalid(cmdout_tvalid), .cmdout_tready(cmdout_tready),
>>     .ackin_tdata(ackin_tdata), .ackin_tlast(ackin_tlast),
>> .ackin_tvalid(ackin_tvalid), .ackin_tready(ackin_tready),
>>     // Stream Sink
>>     .str_sink_tdata(str_sink_tdata), .str_sink_tlast(str_sink_tlast),
>> .str_sink_tvalid(str_sink_tvalid), .str_sink_tready(str_sink_tready),
>>     // Stream Source
>>     .str_src_tdata(str_src_tdata), .str_src_tlast(str_src_tlast),
>> .str_src_tvalid(str_src_tvalid), .str_src_tready(str_src_tready),
>>     // Stream IDs set by host
>>     .src_sid(),                     // SID of this block
>>     .next_dst_sid(next_dst_sid),    // Next destination SID
>>     .resp_in_dst_sid(),             // Response destination SID for input
>> stream responses / errors
>>     .resp_out_dst_sid(),            // Response destination SID for
>> output stream responses / errors
>>     // Misc
>>     .vita_time(64'd0),
>>     .clear_tx_seqnum(clear_tx_seqnum),
>>     .debug(debug));
>>
>>   ////////////////////////////////////////////////////////////
>>   //
>>   // AXI Wrapper
>>   // Convert RFNoC Shell interface into AXI stream interface
>>   //
>>   ////////////////////////////////////////////////////////////
>>   wire [31:0] m_axis_data_tdata;
>>   wire        m_axis_data_tlast;
>>   wire        m_axis_data_tvalid;
>>   wire        m_axis_data_tready;
>>
>>   wire [31:0] s_axis_data_tdata;
>>   wire        s_axis_data_tlast;
>>   wire        s_axis_data_tvalid;
>>   wire        s_axis_data_tready;
>>
>>   localparam AXI_WRAPPER_BASE    = 128;
>>
>>   axi_wrapper #(
>>     .SIMPLE_MODE(1))
>>   inst_axi_wrapper (
>>     .clk(ce_clk), .reset(ce_rst),
>>     .clear_tx_seqnum(clear_tx_seqnum),
>>     .next_dst(next_dst_sid),
>>     .set_stb(set_stb), .set_addr(set_addr), .set_data(set_data),
>>     .i_tdata(str_sink_tdata), .i_tlast(str_sink_tlast),
>> .i_tvalid(str_sink_tvalid), .i_tready(str_sink_tready),
>>     .o_tdata(str_src_tdata), .o_tlast(str_src_tlast),
>> .o_tvalid(str_src_tvalid), .o_tready(str_src_tready),
>>     .m_axis_data_tdata(m_axis_data_tdata),
>>     .m_axis_data_tlast(m_axis_data_tlast),
>>     .m_axis_data_tvalid(m_axis_data_tvalid),
>>     .m_axis_data_tready(m_axis_data_tready),
>>     .s_axis_data_tdata(s_axis_data_tdata),
>>     .s_axis_data_tlast(s_axis_data_tlast),
>>     .s_axis_data_tvalid(s_axis_data_tvalid),
>>     .s_axis_data_tready(s_axis_data_tready),
>>     .m_axis_config_tdata(),
>>     .m_axis_config_tlast(),
>>     .m_axis_config_tvalid(),
>>     .m_axis_config_tready());
>>
>>   ////////////////////////////////////////////////////////////
>>   //
>>   // User code
>>   //
>>   ////////////////////////////////////////////////////////////
>>
>>    reg [MAX_LEN_LOG2-1:0] full_count;
>>    wire           full = full_count == len;
>>
>>    wire           do_op = i_tvalid & o_tready;
>>
>>    assign i_tready = o_tready;
>>    assign o_tvalid = i_tvalid;
>>
>>    wire [WIDTH-1:0]             fifo_out;
>>
>>    axi_fifo #(.WIDTH(WIDTH), .SIZE(MAX_LEN_LOG2)) sample_fifo
>>      (.clk(clk), .reset(reset), .clear(clear),
>>       .i_tdata(i_tdata), .i_tvalid(do_op), .i_tready(),
>>       .o_tdata(fifo_out), .o_tvalid(), .o_tready(do_op&full));
>>
>>    always @(posedge clk)
>>      if(reset | clear)
>>        full_count <= 0;
>>      else
>>        if(do_op & ~full)
>>            full_count <= full_count + 1;
>>
>>    assign o_tdata = full ? fifo_out : 0;
>>    assign o_tlast = i_tlast;
>>
>> endmodule // noc_block_delay_fifo
>>
>>
>>
>>
>> -------------------------------------------------------------------------------------
>>
>>
>> Thank you,
>>
>> Adam
>> ------------------------------
>> *From:* Nick Foster <[email protected]>
>> *Sent:* Tuesday, January 2, 2018 2:28:55 PM
>> *To:* Adam Kurisko
>> *Cc:* [email protected]
>> *Subject:* Re: [USRP-users] RFNOC Block design without GNU Radio
>>
>>
>> Yeah, ok. It's that multiple driver that's the problem. Can you post the
>> rfnoc_ce_auto_inst.v you're using?
>>
>> Nick
>>
>> On Tue, Jan 2, 2018, 10:58 AM Adam Kurisko <[email protected]> wrote:
>>
>> Nick,
>>
>>
>> I just attempted to generate a bitstream and it failed with the following
>> errors.
>>
>>
>> Most messages are the same as before, but take not of the errors present
>> under "Opt Design"
>>
>>
>> Vivado Commands
>> General Messages
>>
>> [Synth 8-4442] BlackBox module inst_axi_interconnect has unconnected pin
>> s_axi_awprot[2]
>> [Synth 8-4442] BlackBox module inst_axi_interconnect has unconnected pin
>> s_axi_awprot[1]
>> [Synth 8-4442] BlackBox module inst_axi_interconnect has unconnected pin
>> s_axi_awprot[0]
>> [Synth 8-4442] BlackBox module inst_axi_interconnect has unconnected pin
>> s_axi_arprot[2]
>> [Synth 8-4442] BlackBox module inst_axi_interconnect has unconnected pin
>> s_axi_arprot[1]
>> [Synth 8-4442] BlackBox module inst_axi_interconnect has unconnected pin
>> s_axi_arprot[0]
>>
>> Synthesis
>> [Synth 8-4442] BlackBox module inst_axi_interconnect has unconnected pin
>> s_axi_awprot[2]
>> [Synth 8-4442] BlackBox module inst_axi_interconnect has unconnected pin
>> s_axi_awprot[1]
>> [Synth 8-4442] BlackBox module inst_axi_interconnect has unconnected pin
>> s_axi_awprot[0]
>> [Synth 8-4442] BlackBox module inst_axi_interconnect has unconnected pin
>> s_axi_arprot[2]
>> [Synth 8-4442] BlackBox module inst_axi_interconnect has unconnected pin
>> s_axi_arprot[1]
>> [Synth 8-4442] BlackBox module inst_axi_interconnect has unconnected pin
>> s_axi_arprot[0]
>> [Synth 8-3352] multi-driven net e310_core0/ce_o_tlast[0] with 1st driver
>> pin
>> 'e310_core0/inst_delay_fifo/noc_shell/out_fifo/fifo_short_2clk/dout[64]'
>> ["/home/kurisko/e300/src/uhd/fpga-src/usrp3/lib/fifo/axi_fifo_2clk.v":42]
>> [Synth 8-3352] multi-driven net e310_core0/ce_o_tlast[0] with 2nd driver
>> pin 'i_3847/O'
>> ["/home/kurisko/e300/src/uhd/fpga-src/usrp3/lib/control/axi_crossbar.v":19]
>>
>>
>> Implementation
>> Design Initialization
>> [Designutils 20-1281] Could not find module 'mig_7series_0'. The XDC file
>> /home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/build-ip/xc7z020clg484-1/mig_7series_0/mig_7series_0/user_design/constraints/mig_7series_0.xdc
>> will not be read for this module.
>> [Designutils 20-1280] Could not find module 'fifo_4k_2clk'. The XDC file
>> /home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/build-ip/xc7z020clg484-1/fifo_4k_2clk/fifo_4k_2clk/fifo_4k_2clk.xdc
>> will not be read for any cell of this module.
>> [Designutils 20-1280] Could not find module 'axi_hb31'. The XDC file
>> /home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/build-ip/xc7z020clg484-1/axi_hb31/fir_compiler_v7_2_5/constraints/fir_compiler_v7_2.xdc
>> will not be read for any cell of this module.
>> [Designutils 20-1280] Could not find module 'axi_hb47'. The XDC file
>> /home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/build-ip/xc7z020clg484-1/axi_hb47/fir_compiler_v7_2_5/constraints/fir_compiler_v7_2.xdc
>> will not be read for any cell of this module.
>> [Designutils 20-1280] Could not find module 'fifo_4k_2clk'. The XDC file
>> /home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/build-ip/xc7z020clg484-1/fifo_4k_2clk/fifo_4k_2clk/fifo_4k_2clk_clocks.xdc
>> will not be read for any cell of this module.
>> [Vivado 12-1387] No valid object(s) found for set_clock_groups constraint
>> with option '-group [get_clocks -include_generated_clocks clk0]'.
>> ["/home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/e310_timing.xdc":28]
>> [Common 17-161] Invalid option value '#' specified for 'objects'.
>> ["/home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/e310_timing.xdc":53]
>> [Constraints 18-514] set_max_delay: Path segmentation by forcing
>> 'CAT_SCLK_MUX/S' to be timing endpoint. There will be no hold timing paths
>> to this pin unless set_min_delay is used to constrain the paths.
>> ["/home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/e310_timing.xdc":58]
>> [Constraints 18-514] set_max_delay: Path segmentation by forcing
>> 'CAT_SCLK_MUX/I0' to be timing endpoint. There will be no hold timing paths
>> to this pin unless set_min_delay is used to constrain the paths.
>> ["/home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/e310_timing.xdc":58]
>> [Constraints 18-514] set_max_delay: Path segmentation by forcing
>> 'CAT_SCLK_MUX/I1' to be timing endpoint. There will be no hold timing paths
>> to this pin unless set_min_delay is used to constrain the paths.
>> ["/home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/e310_timing.xdc":58]
>> [Common 17-55] 'get_property' expects at least one object.
>> ["/home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/build-ip/xc7z020clg484-1/fifo_short_2clk/fifo_short_2clk/fifo_short_2clk_clocks.xdc":61]
>> [Common 17-55] 'get_property' expects at least one object.
>> ["/home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/build-ip/xc7z020clg484-1/fifo_short_2clk/fifo_short_2clk/fifo_short_2clk_clocks.xdc":63]
>> [Common 17-55] 'get_property' expects at least one object.
>> ["/home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/build-ip/xc7z020clg484-1/fifo_short_2clk/fifo_short_2clk/fifo_short_2clk_clocks.xdc":61]
>> [Common 17-55] 'get_property' expects at least one object.
>> ["/home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/build-ip/xc7z020clg484-1/fifo_short_2clk/fifo_short_2clk/fifo_short_2clk_clocks.xdc":63]
>>
>> Opt Design
>> [DRC 23-20] Rule violation (MDRV-1) Multiple Driver Nets - Net
>> e310_core0/inst_delay_fifo/noc_shell/out_fifo/fifo_short_2clk/U0/inst_fifo_gen/gconvfifo.rf/grf.rf/gntv_or_sync_fifo.mem/dout[64]
>> has multiple drivers:
>> e310_core0/axi_crossbar/instantiate_slave_mux[2].axi_slave_mux_i/fifo_short_2clk_i_1__5/O,
>> e310_core0/inst_delay_fifo/noc_shell/out_fifo/fifo_short_2clk/U0/inst_fifo_gen/gconvfifo.rf/grf.rf/gntv_or_sync_fifo.mem/goreg_dm.dout_i_reg[64]/Q.
>> [Vivado_Tcl 4-78] Error(s) found during DRC. Opt_design not run.
>>
>> design_1
>> General Messages
>>
>> [Designutils 20-1281] Could not find module 'mig_7series_0'. The XDC file
>> /home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/build-ip/xc7z020clg484-1/mig_7series_0/mig_7series_0/user_design/constraints/mig_7series_0.xdc
>> will not be read for this module.
>> [Designutils 20-1280] Could not find module 'fifo_4k_2clk'. The XDC file
>> /home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/build-ip/xc7z020clg484-1/fifo_4k_2clk/fifo_4k_2clk/fifo_4k_2clk.xdc
>> will not be read for any cell of this module.
>> [Designutils 20-1280] Could not find module 'axi_hb31'. The XDC file
>> /home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/build-ip/xc7z020clg484-1/axi_hb31/fir_compiler_v7_2_5/constraints/fir_compiler_v7_2.xdc
>> will not be read for any cell of this module.
>> [Designutils 20-1280] Could not find module 'axi_hb47'. The XDC file
>> /home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/build-ip/xc7z020clg484-1/axi_hb47/fir_compiler_v7_2_5/constraints/fir_compiler_v7_2.xdc
>> will not be read for any cell of this module.
>> [Designutils 20-1280] Could not find module 'fifo_4k_2clk'. The XDC file
>> /home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/build-ip/xc7z020clg484-1/fifo_4k_2clk/fifo_4k_2clk/fifo_4k_2clk_clocks.xdc
>> will not be read for any cell of this module.
>> [Vivado 12-1387] No valid object(s) found for set_clock_groups constraint
>> with option '-group [get_clocks -include_generated_clocks clk0]'.
>> ["/home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/e310_timing.xdc":28]
>> [Common 17-161] Invalid option value '#' specified for 'objects'.
>> ["/home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/e310_timing.xdc":53]
>> [Constraints 18-514] set_max_delay: Path segmentation by forcing
>> 'CAT_SCLK_MUX/I1' to be timing endpoint. There will be no hold timing paths
>> to this pin unless set_min_delay is used to constrain the paths.
>> ["/home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/e310_timing.xdc":58]
>> [Constraints 18-514] set_max_delay: Path segmentation by forcing
>> 'CAT_SCLK_MUX/I0' to be timing endpoint. There will be no hold timing paths
>> to this pin unless set_min_delay is used to constrain the paths.
>> ["/home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/e310_timing.xdc":58]
>> [Constraints 18-514] set_max_delay: Path segmentation by forcing
>> 'CAT_SCLK_MUX/S' to be timing endpoint. There will be no hold timing paths
>> to this pin unless set_min_delay is used to constrain the paths.
>> ["/home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/e310_timing.xdc":58]
>> [Constraints 18-514] set_max_delay: Path segmentation by forcing
>> 'CAT_SCLK_MUX/I1' to be timing endpoint. There will be no hold timing paths
>> to this pin unless set_min_delay is used to constrain the paths.
>> ["/home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/e310_timing.xdc":58]
>> [Constraints 18-514] set_max_delay: Path segmentation by forcing
>> 'CAT_SCLK_MUX/I0' to be timing endpoint. There will be no hold timing paths
>> to this pin unless set_min_delay is used to constrain the paths.
>> ["/home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/e310_timing.xdc":58]
>> [Constraints 18-514] set_max_delay: Path segmentation by forcing
>> 'CAT_SCLK_MUX/S' to be timing endpoint. There will be no hold timing paths
>> to this pin unless set_min_delay is used to constrain the paths.
>> ["/home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/e310_timing.xdc":58]
>> [Constraints 18-514] set_max_delay: Path segmentation by forcing
>> 'CAT_SCLK_MUX/I1' to be timing endpoint. There will be no hold timing paths
>> to this pin unless set_min_delay is used to constrain the paths.
>> ["/home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/e310_timing.xdc":58]
>> [Constraints 18-514] set_max_delay: Path segmentation by forcing
>> 'CAT_SCLK_MUX/I0' to be timing endpoint. There will be no hold timing paths
>> to this pin unless set_min_delay is used to constrain the paths.
>> ["/home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/e310_timing.xdc":58]
>> [Constraints 18-514] set_max_delay: Path segmentation by forcing
>> 'CAT_SCLK_MUX/S' to be timing endpoint. There will be no hold timing paths
>> to this pin unless set_min_delay is used to constrain the paths.
>> ["/home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/e310_timing.xdc":58]
>> [Constraints 18-514] set_max_delay: Path segmentation by forcing
>> 'CAT_SCLK_MUX/I1' to be timing endpoint. There will be no hold timing paths
>> to this pin unless set_min_delay is used to constrain the paths.
>> ["/home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/e310_timing.xdc":58]
>> [Constraints 18-514] set_max_delay: Path segmentation by forcing
>> 'CAT_SCLK_MUX/I0' to be timing endpoint. There will be no hold timing paths
>> to this pin unless set_min_delay is used to constrain the paths.
>> ["/home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/e310_timing.xdc":58]
>> [Constraints 18-514] set_max_delay: Path segmentation by forcing
>> 'CAT_SCLK_MUX/S' to be timing endpoint. There will be no hold timing paths
>> to this pin unless set_min_delay is used to constrain the paths.
>> ["/home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/e310_timing.xdc":58]
>> [Constraints 18-514] set_max_delay: Path segmentation by forcing
>> 'CAT_SCLK_MUX/I1' to be timing endpoint. There will be no hold timing paths
>> to this pin unless set_min_delay is used to constrain the paths.
>> ["/home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/e310_timing.xdc":58]
>> [Constraints 18-514] set_max_delay: Path segmentation by forcing
>> 'CAT_SCLK_MUX/I0' to be timing endpoint. There will be no hold timing paths
>> to this pin unless set_min_delay is used to constrain the paths.
>> ["/home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/e310_timing.xdc":58]
>> [Constraints 18-514] set_max_delay: Path segmentation by forcing
>> 'CAT_SCLK_MUX/S' to be timing endpoint. There will be no hold timing paths
>> to this pin unless set_min_delay is used to constrain the paths.
>> ["/home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/e310_timing.xdc":58]
>> [Constraints 18-514] set_max_delay: Path segmentation by forcing
>> 'CAT_SCLK_MUX/I1' to be timing endpoint. There will be no hold timing paths
>> to this pin unless set_min_delay is used to constrain the paths.
>> ["/home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/e310_timing.xdc":58]
>> [Constraints 18-514] set_max_delay: Path segmentation by forcing
>> 'CAT_SCLK_MUX/I0' to be timing endpoint. There will be no hold timing paths
>> to this pin unless set_min_delay is used to constrain the paths.
>> ["/home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/e310_timing.xdc":58]
>> [Constraints 18-514] set_max_delay: Path segmentation by forcing
>> 'CAT_SCLK_MUX/S' to be timing endpoint. There will be no hold timing paths
>> to this pin unless set_min_delay is used to constrain the paths.
>> ["/home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/e310_timing.xdc":58]
>> [Constraints 18-514] set_max_delay: Path segmentation by forcing
>> 'CAT_SCLK_MUX/I1' to be timing endpoint. There will be no hold timing paths
>> to this pin unless set_min_delay is used to constrain the paths.
>> ["/home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/e310_timing.xdc":58]
>> [Constraints 18-514] set_max_delay: Path segmentation by forcing
>> 'CAT_SCLK_MUX/I0' to be timing endpoint. There will be no hold timing paths
>> to this pin unless set_min_delay is used to constrain the paths.
>> ["/home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/e310_timing.xdc":58]
>> [Constraints 18-514] set_max_delay: Path segmentation by forcing
>> 'CAT_SCLK_MUX/S' to be timing endpoint. There will be no hold timing paths
>> to this pin unless set_min_delay is used to constrain the paths.
>> ["/home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/e310_timing.xdc":58]
>> [Constraints 18-514] set_max_delay: Path segmentation by forcing
>> 'CAT_SCLK_MUX/I1' to be timing endpoint. There will be no hold timing paths
>> to this pin unless set_min_delay is used to constrain the paths.
>> ["/home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/e310_timing.xdc":58]
>> [Constraints 18-514] set_max_delay: Path segmentation by forcing
>> 'CAT_SCLK_MUX/I0' to be timing endpoint. There will be no hold timing paths
>> to this pin unless set_min_delay is used to constrain the paths.
>> ["/home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/e310_timing.xdc":58]
>> [Constraints 18-514] set_max_delay: Path segmentation by forcing
>> 'CAT_SCLK_MUX/S' to be timing endpoint. There will be no hold timing paths
>> to this pin unless set_min_delay is used to constrain the paths.
>> ["/home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/e310_timing.xdc":58]
>> [Common 17-55] 'get_property' expects at least one object.
>> ["/home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/build-ip/xc7z020clg484-1/fifo_short_2clk/fifo_short_2clk/fifo_short_2clk_clocks.xdc":61]
>> [Common 17-55] 'get_property' expects at least one object.
>> ["/home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/build-ip/xc7z020clg484-1/fifo_short_2clk/fifo_short_2clk/fifo_short_2clk_clocks.xdc":63]
>> [Common 17-55] 'get_property' expects at least one object.
>> ["/home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/build-ip/xc7z020clg484-1/fifo_short_2clk/fifo_short_2clk/fifo_short_2clk_clocks.xdc":61]
>> [Common 17-55] 'get_property' expects at least one object.
>> ["/home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/build-ip/xc7z020clg484-1/fifo_short_2clk/fifo_short_2clk/fifo_short_2clk_clocks.xdc":63]
>>
>>
>> Thank you,
>>
>> Adam
>> ------------------------------
>> *From:* Nick Foster <[email protected]>
>> *Sent:* Tuesday, January 2, 2018 12:35:54 PM
>>
>> *To:* Adam Kurisko
>> *Cc:* [email protected]
>> *Subject:* Re: [USRP-users] RFNOC Block design without GNU Radio
>>
>> That all looks ok to me. Does it successfully generate a bitstream?
>>
>> There will virtually always be warnings, even some "critical" ones, in
>> any sufficiently complex FPGA project.
>>
>> Nick
>>
>> On Tue, Jan 2, 2018, 9:26 AM Adam Kurisko <[email protected]> wrote:
>>
>> Hi Nick,
>>
>>
>> Thank you for your fast response.
>>
>>
>> I am receiving the following errors:
>>
>>
>> Synthesis
>> [Synth 8-4442] BlackBox module inst_axi_interconnect has unconnected pin
>> s_axi_awprot[2]
>> [Synth 8-4442] BlackBox module inst_axi_interconnect has unconnected pin
>> s_axi_awprot[1]
>> [Synth 8-4442] BlackBox module inst_axi_interconnect has unconnected pin
>> s_axi_awprot[0]
>> [Synth 8-4442] BlackBox module inst_axi_interconnect has unconnected pin
>> s_axi_arprot[2]
>> [Synth 8-4442] BlackBox module inst_axi_interconnect has unconnected pin
>> s_axi_arprot[1]
>> [Synth 8-4442] BlackBox module inst_axi_interconnect has unconnected pin
>> s_axi_arprot[0]
>>
>> Implementation
>> Design Initialization
>> [Designutils 20-1281] Could not find module 'mig_7series_0'. The XDC file
>> /home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/build-ip/xc7z020clg484-1/mig_7series_0/mig_7series_0/user_design/constraints/mig_7series_0.xdc
>> will not be read for this module.
>> [Designutils 20-1280] Could not find module 'fifo_4k_2clk'. The XDC file
>> /home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/build-ip/xc7z020clg484-1/fifo_4k_2clk/fifo_4k_2clk/fifo_4k_2clk.xdc
>> will not be read for any cell of this module.
>> [Designutils 20-1280] Could not find module 'axi_hb31'. The XDC file
>> /home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/build-ip/xc7z020clg484-1/axi_hb31/fir_compiler_v7_2_5/constraints/fir_compiler_v7_2.xdc
>> will not be read for any cell of this module.
>> [Designutils 20-1280] Could not find module 'axi_hb47'. The XDC file
>> /home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/build-ip/xc7z020clg484-1/axi_hb47/fir_compiler_v7_2_5/constraints/fir_compiler_v7_2.xdc
>> will not be read for any cell of this module.
>> [Designutils 20-1280] Could not find module 'fifo_4k_2clk'. The XDC file
>> /home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/build-ip/xc7z020clg484-1/fifo_4k_2clk/fifo_4k_2clk/fifo_4k_2clk_clocks.xdc
>> will not be read for any cell of this module.
>> [Vivado 12-1387] No valid object(s) found for set_clock_groups constraint
>> with option '-group [get_clocks -include_generated_clocks clk0]'.
>> ["/home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/e310_timing.xdc":28]
>> [Common 17-161] Invalid option value '#' specified for 'objects'.
>> ["/home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/e310_timing.xdc":53]
>> [Constraints 18-514] set_max_delay: Path segmentation by forcing
>> 'CAT_SCLK_MUX/I1' to be timing endpoint. There will be no hold timing paths
>> to this pin unless set_min_delay is used to constrain the paths.
>> ["/home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/e310_timing.xdc":58]
>> [Constraints 18-514] set_max_delay: Path segmentation by forcing
>> 'CAT_SCLK_MUX/S' to be timing endpoint. There will be no hold timing paths
>> to this pin unless set_min_delay is used to constrain the paths.
>> ["/home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/e310_timing.xdc":58]
>> [Constraints 18-514] set_max_delay: Path segmentation by forcing
>> 'CAT_SCLK_MUX/I0' to be timing endpoint. There will be no hold timing paths
>> to this pin unless set_min_delay is used to constrain the paths.
>> ["/home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/e310_timing.xdc":58]
>> [Common 17-55] 'get_property' expects at least one object.
>> ["/home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/build-ip/xc7z020clg484-1/fifo_short_2clk/fifo_short_2clk/fifo_short_2clk_clocks.xdc":61]
>> [Common 17-55] 'get_property' expects at least one object.
>> ["/home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/build-ip/xc7z020clg484-1/fifo_short_2clk/fifo_short_2clk/fifo_short_2clk_clocks.xdc":63]
>> [Common 17-55] 'get_property' expects at least one object.
>> ["/home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/build-ip/xc7z020clg484-1/fifo_short_2clk/fifo_short_2clk/fifo_short_2clk_clocks.xdc":61]
>> [Common 17-55] 'get_property' expects at least one object.
>> ["/home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/build-ip/xc7z020clg484-1/fifo_short_2clk/fifo_short_2clk/fifo_short_2clk_clocks.xdc":63]
>>
>> Opt Design
>> [Constraints 18-514] set_max_delay: Path segmentation by forcing
>> 'CAT_SCLK_MUX/I1' to be timing endpoint. There will be no hold timing paths
>> to this pin unless set_min_delay is used to constrain the paths.
>> ["/home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/e310_timing.xdc":58]
>> [Constraints 18-514] set_max_delay: Path segmentation by forcing
>> 'CAT_SCLK_MUX/S' to be timing endpoint. There will be no hold timing paths
>> to this pin unless set_min_delay is used to constrain the paths.
>> ["/home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/e310_timing.xdc":58]
>> [Constraints 18-514] set_max_delay: Path segmentation by forcing
>> 'CAT_SCLK_MUX/I0' to be timing endpoint. There will be no hold timing paths
>> to this pin unless set_min_delay is used to constrain the paths.
>> ["/home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/e310_timing.xdc":58]
>> [Constraints 18-514] set_max_delay: Path segmentation by forcing
>> 'CAT_SCLK_MUX/I1' to be timing endpoint. There will be no hold timing paths
>> to this pin unless set_min_delay is used to constrain the paths.
>> ["/home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/e310_timing.xdc":58]
>> [Constraints 18-514] set_max_delay: Path segmentation by forcing
>> 'CAT_SCLK_MUX/S' to be timing endpoint. There will be no hold timing paths
>> to this pin unless set_min_delay is used to constrain the paths.
>> ["/home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/e310_timing.xdc":58]
>> [Constraints 18-514] set_max_delay: Path segmentation by forcing
>> 'CAT_SCLK_MUX/I0' to be timing endpoint. There will be no hold timing paths
>> to this pin unless set_min_delay is used to constrain the paths.
>> ["/home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/e310_timing.xdc":58]
>>
>> Place Design
>> [Constraints 18-514] set_max_delay: Path segmentation by forcing
>> 'CAT_SCLK_MUX/I1' to be timing endpoint. There will be no hold timing paths
>> to this pin unless set_min_delay is used to constrain the paths.
>> ["/home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/e310_timing.xdc":58]
>> [Constraints 18-514] set_max_delay: Path segmentation by forcing
>> 'CAT_SCLK_MUX/S' to be timing endpoint. There will be no hold timing paths
>> to this pin unless set_min_delay is used to constrain the paths.
>> ["/home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/e310_timing.xdc":58]
>> [Constraints 18-514] set_max_delay: Path segmentation by forcing
>> 'CAT_SCLK_MUX/I0' to be timing endpoint. There will be no hold timing paths
>> to this pin unless set_min_delay is used to constrain the paths.
>> ["/home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/e310_timing.xdc":58]
>> [Constraints 18-514] set_max_delay: Path segmentation by forcing
>> 'CAT_SCLK_MUX/I1' to be timing endpoint. There will be no hold timing paths
>> to this pin unless set_min_delay is used to constrain the paths.
>> ["/home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/e310_timing.xdc":58]
>> [Constraints 18-514] set_max_delay: Path segmentation by forcing
>> 'CAT_SCLK_MUX/S' to be timing endpoint. There will be no hold timing paths
>> to this pin unless set_min_delay is used to constrain the paths.
>> ["/home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/e310_timing.xdc":58]
>> [Constraints 18-514] set_max_delay: Path segmentation by forcing
>> 'CAT_SCLK_MUX/I0' to be timing endpoint. There will be no hold timing paths
>> to this pin unless set_min_delay is used to constrain the paths.
>> ["/home/kurisko/e300/src/uhd/fpga-src/usrp3/top/e300/e310_timing.xdc":58]
>>
>>
>> Please let me know what you think.
>>
>>
>> Thank you,
>>
>> Adam
>>
>>
>> ------------------------------
>> *From:* Nick Foster <[email protected]>
>> *Sent:* Tuesday, January 2, 2018 12:08:20 PM
>> *To:* Adam Kurisko
>> *Cc:* [email protected]
>> *Subject:* Re: [USRP-users] RFNOC Block design without GNU Radio
>>
>> The use of Gnuradio will not affect the FPGA design at all. If you supply
>> the errors you're seeing we might be able to help further.
>>
>> Nick
>>
>> On Tue, Jan 2, 2018 at 8:57 AM Adam Kurisko via USRP-users <
>> [email protected]> wrote:
>>
>> Hello all,
>>
>>
>> I am trying to design an RFNoC block using Vivado 2015.4, but I keep
>> running into synthesis and implementation critical warnings.
>>
>>
>> Can you explain to me step by step how to instantiate a working rfnoc
>> block WITHOUT using gnuradio? It seems that most information I am finding
>> online include the use of gnuradio.
>>
>>
>> I believe I have my environment setup correctly and I am calling the
>> noc_shell and axi_wrapper modules within my blocks. However, the errors I
>> am receiving are not stemming from the user code I have written, instead
>> the errors are coming from various design sources within the e310 fpga
>> source code.
>>
>>
>> Please help. Thank you
>>
>>
>> -Adam
>> _______________________________________________
>> USRP-users mailing list
>> [email protected]
>> http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
>>
>>
_______________________________________________
USRP-users mailing list
[email protected]
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com

Reply via email to