Re: [USRP-users] rfnoc problem with custom DDC inputs.
Hey Carlos, On Tue, Dec 4, 2018 at 1:16 PM Carlos Alberto Ruiz Naranjo < carlosruiznara...@gmail.com> wrote: > Hi Brian, > > I have finished the DDC block 1:8 and it works perfectly!! :) :) > Congratulations! > > Now I am in my final step, a 2:16 DDC block: > - Channels 0:7 connected to input 0. > - Channels 8:15 connected to input 1. > > The verilog module works, but I have a problem with the UHD driver. I have > timeout on chan 8,9,10...15. > When I use GNURadio Signal Source it runs fine, but when I use rfnoc Radio > block no. > > I have tried (device3_io_impl.cpp) : > > ... > // Update args so args.args is always valid for this particular > channel: > args.args = chan_args[stream_i]; > size_t mb_index = block_id.get_device_no(); > size_t suggested_block_port = args.args.cast("block_port", > rfnoc::ANY_PORT); > // printf("Puerto: %i\n",suggested_block_port); > // change > // size_t radio_block_port = args.args.cast("radio_port", > rfnoc::ANY_PORT) ; > size_t radio_block_port = 0; > > if (stream_i<8){ > radio_block_port = 0; > } > else{ > radio_block_port = 1; > } > ... > > (( I recognize that I am not an expert on the driver)) :/ > Unfortunately, you've gone outside my experience and knowledge. Good luck, and please keep us posted if you are able to figure out how to get it to work. It sounds like a fun and interesting block you're working on. Brian PS - Do you plan on open sourcing the block? > ___ USRP-users mailing list USRP-users@lists.ettus.com http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
Re: [USRP-users] rfnoc problem with custom DDC inputs.
Hi Brian, I have finished the DDC block 1:8 and it works perfectly!! :) :) Now I am in my final step, a 2:16 DDC block: - Channels 0:7 connected to input 0. - Channels 8:15 connected to input 1. The verilog module works, but I have a problem with the UHD driver. I have timeout on chan 8,9,10...15. When I use GNURadio Signal Source it runs fine, but when I use rfnoc Radio block no. I have tried (device3_io_impl.cpp) : ... // Update args so args.args is always valid for this particular channel: args.args = chan_args[stream_i]; size_t mb_index = block_id.get_device_no(); size_t suggested_block_port = args.args.cast("block_port", rfnoc::ANY_PORT); // printf("Puerto: %i\n",suggested_block_port); // change // size_t radio_block_port = args.args.cast("radio_port", rfnoc::ANY_PORT) ; size_t radio_block_port = 0; if (stream_i<8){ radio_block_port = 0; } else{ radio_block_port = 1; } ... (( I recognize that I am not an expert on the driver)) :/ Thank you :) El lun., 3 dic. 2018 a las 17:38, Carlos Alberto Ruiz Naranjo (< carlosruiznara...@gmail.com>) escribió: > Ok, I had a problem with *radio_block_port. *I had a signed number... :( > > I think now it runs. I will pass to 1:8 DCC and later with 2:16 DDC. I > continue... :) > > El lun., 3 dic. 2018 a las 16:09, Carlos Alberto Ruiz Naranjo (< > carlosruiznara...@gmail.com>) escribió: > >> Hello Brian, >> >> thanks for your answer! I have returned today and I am testing your >> changes. >> >> I am using grc and I have the error: >> >> *thread[thread-per-block[0]: ]: LookupError: >> KeyError: [0/Radio_0] sr_write(): No such port: 18446744073709551615* >> >> I assume the error is in the configuration of uhd::device_addr_t. Can you >> explain how it works? I have not understood it well, I'm sorry :( :( >> >> I am configuring it with grc python block: >> >> *self.device3 = variable_uhd_device3_0 = ettus.device3(uhd.device_addr_t( >> ",".join(('type=x300', " block_port%d, radio_id%d, radio_port%d")) ))* >> >> I have never tried to change the settings. >> >> Thank you in advance!!! :) >> >> El vie., 30 nov. 2018 a las 16:58, Brian Padalino () >> escribió: >> >>> Hey Carlos, >>> >>> The attached patch is what I used applied to 3.13.0.1 I want to say. >>> You get the idea. >>> >>> To get the controller, I use get_block_ctrl(uhd::rfnoc::block_id_t(0, >>> "NAME", 0)) since there is only one instance, for me, in my radio. >>> >>> When setting up the uhd::device_addr_t, I populate: block_port%d, >>> radio_id%d, and radio_port%d where block_port%d is the output block you're >>> looking at streaming from. >>> >>> Hope this is helpful. >>> >>> Good luck. >>> >>> Brian >>> >>> On Fri, Nov 30, 2018 at 4:34 AM Carlos Alberto Ruiz Naranjo < >>> carlosruiznara...@gmail.com> wrote: >>> Hello Brian, I have finished the FPGA code. I got a DDC 1:2 but I have problems with 1:8. I think I have your same problems: / *thread[thread-per-block[0]: ]: LookupError: KeyError: [0/Radio_0] sr_write(): No such port: 2* In rfnoc code: *std::vector > upstream_radio_nodes = blk_ctrl->find_upstream_node(); UHD_RX_STREAMER_LOG() << "Number of upstream radio nodes: " << upstream_radio_nodes.size();for(const boost::shared_ptr : upstream_radio_nodes) {node->sr_write(uhd::rfnoc::SR_RESP_OUT_DST_SID, xport.send_sid.get_src(), block_port);}* I've found your post ( http://ettus.80997.x6.nabble.com/USRP-users-Multiple-Output-RFNoC-Block-td9587.html ), but I'm stuck on the same point. Could you give me any suggestions? Thank you!! :) El mié., 28 nov. 2018 a las 16:17, Carlos Alberto Ruiz Naranjo (< carlosruiznara...@gmail.com>) escribió: > Ok! Thank you :) > > El mié., 28 nov. 2018 a las 16:13, Brian Padalino (< > bpadal...@gmail.com>) escribió: > >> On Wed, Nov 28, 2018 at 9:43 AM Carlos Alberto Ruiz Naranjo < >> carlosruiznara...@gmail.com> wrote: >> >>> Thank you! I already have enough work to continue :) >>> >>> One last thing. In the split_stream module, did you concat tuser >>> with m_axis_data_tuser with m_axis_data_tdata? >>> >> >> No tuser at that point. Just the stream part - tdata, tlast, tvalid, >> and tready. >> >> >>> >>> I'm curious about you election. Why do you think that version 0 is >>> better than version 1? >>> >> >> Not really sure. It is just the way I ended up. I think either way >> will work. Whichever way makes sense to you, try it out! Have fun! :) >> >> Brian >> >>> ___ USRP-users mailing list USRP-users@lists.ettus.com
Re: [USRP-users] rfnoc problem with custom DDC inputs.
Ok, I had a problem with *radio_block_port. *I had a signed number... :( I think now it runs. I will pass to 1:8 DCC and later with 2:16 DDC. I continue... :) El lun., 3 dic. 2018 a las 16:09, Carlos Alberto Ruiz Naranjo (< carlosruiznara...@gmail.com>) escribió: > Hello Brian, > > thanks for your answer! I have returned today and I am testing your > changes. > > I am using grc and I have the error: > > *thread[thread-per-block[0]: ]: LookupError: > KeyError: [0/Radio_0] sr_write(): No such port: 18446744073709551615* > > I assume the error is in the configuration of uhd::device_addr_t. Can you > explain how it works? I have not understood it well, I'm sorry :( :( > > I am configuring it with grc python block: > > *self.device3 = variable_uhd_device3_0 = ettus.device3(uhd.device_addr_t( > ",".join(('type=x300', " block_port%d, radio_id%d, radio_port%d")) ))* > > I have never tried to change the settings. > > Thank you in advance!!! :) > > El vie., 30 nov. 2018 a las 16:58, Brian Padalino () > escribió: > >> Hey Carlos, >> >> The attached patch is what I used applied to 3.13.0.1 I want to say. You >> get the idea. >> >> To get the controller, I use get_block_ctrl(uhd::rfnoc::block_id_t(0, >> "NAME", 0)) since there is only one instance, for me, in my radio. >> >> When setting up the uhd::device_addr_t, I populate: block_port%d, >> radio_id%d, and radio_port%d where block_port%d is the output block you're >> looking at streaming from. >> >> Hope this is helpful. >> >> Good luck. >> >> Brian >> >> On Fri, Nov 30, 2018 at 4:34 AM Carlos Alberto Ruiz Naranjo < >> carlosruiznara...@gmail.com> wrote: >> >>> Hello Brian, >>> >>> I have finished the FPGA code. I got a DDC 1:2 but I have problems with >>> 1:8. I think I have your same problems: / >>> >>> *thread[thread-per-block[0]: ]: LookupError: >>> KeyError: [0/Radio_0] sr_write(): No such port: 2* >>> >>> In rfnoc code: >>> >>> >>> >>> >>> >>> *std::vector > >>> upstream_radio_nodes = >>> blk_ctrl->find_upstream_node(); >>> UHD_RX_STREAMER_LOG() << "Number of upstream radio nodes: " << >>> upstream_radio_nodes.size();for(const >>> boost::shared_ptr : upstream_radio_nodes) >>> {node->sr_write(uhd::rfnoc::SR_RESP_OUT_DST_SID, >>> xport.send_sid.get_src(), block_port);}* >>> >>> I've found your post ( >>> http://ettus.80997.x6.nabble.com/USRP-users-Multiple-Output-RFNoC-Block-td9587.html >>> ), but I'm stuck on the same point. >>> Could you give me any suggestions? >>> >>> Thank you!! :) >>> >>> >>> >>> >>> El mié., 28 nov. 2018 a las 16:17, Carlos Alberto Ruiz Naranjo (< >>> carlosruiznara...@gmail.com>) escribió: >>> Ok! Thank you :) El mié., 28 nov. 2018 a las 16:13, Brian Padalino () escribió: > On Wed, Nov 28, 2018 at 9:43 AM Carlos Alberto Ruiz Naranjo < > carlosruiznara...@gmail.com> wrote: > >> Thank you! I already have enough work to continue :) >> >> One last thing. In the split_stream module, did you concat tuser with >> m_axis_data_tuser with m_axis_data_tdata? >> > > No tuser at that point. Just the stream part - tdata, tlast, tvalid, > and tready. > > >> >> I'm curious about you election. Why do you think that version 0 is >> better than version 1? >> > > Not really sure. It is just the way I ended up. I think either way > will work. Whichever way makes sense to you, try it out! Have fun! :) > > Brian > >> ___ USRP-users mailing list USRP-users@lists.ettus.com http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
Re: [USRP-users] rfnoc problem with custom DDC inputs.
Hello Brian, thanks for your answer! I have returned today and I am testing your changes. I am using grc and I have the error: *thread[thread-per-block[0]: ]: LookupError: KeyError: [0/Radio_0] sr_write(): No such port: 18446744073709551615* I assume the error is in the configuration of uhd::device_addr_t. Can you explain how it works? I have not understood it well, I'm sorry :( :( I am configuring it with grc python block: *self.device3 = variable_uhd_device3_0 = ettus.device3(uhd.device_addr_t( ",".join(('type=x300', " block_port%d, radio_id%d, radio_port%d")) ))* I have never tried to change the settings. Thank you in advance!!! :) El vie., 30 nov. 2018 a las 16:58, Brian Padalino () escribió: > Hey Carlos, > > The attached patch is what I used applied to 3.13.0.1 I want to say. You > get the idea. > > To get the controller, I use get_block_ctrl(uhd::rfnoc::block_id_t(0, > "NAME", 0)) since there is only one instance, for me, in my radio. > > When setting up the uhd::device_addr_t, I populate: block_port%d, > radio_id%d, and radio_port%d where block_port%d is the output block you're > looking at streaming from. > > Hope this is helpful. > > Good luck. > > Brian > > On Fri, Nov 30, 2018 at 4:34 AM Carlos Alberto Ruiz Naranjo < > carlosruiznara...@gmail.com> wrote: > >> Hello Brian, >> >> I have finished the FPGA code. I got a DDC 1:2 but I have problems with >> 1:8. I think I have your same problems: / >> >> *thread[thread-per-block[0]: ]: LookupError: >> KeyError: [0/Radio_0] sr_write(): No such port: 2* >> >> In rfnoc code: >> >> >> >> >> >> *std::vector > >> upstream_radio_nodes = >> blk_ctrl->find_upstream_node(); >> UHD_RX_STREAMER_LOG() << "Number of upstream radio nodes: " << >> upstream_radio_nodes.size();for(const >> boost::shared_ptr : upstream_radio_nodes) >> {node->sr_write(uhd::rfnoc::SR_RESP_OUT_DST_SID, >> xport.send_sid.get_src(), block_port);}* >> >> I've found your post ( >> http://ettus.80997.x6.nabble.com/USRP-users-Multiple-Output-RFNoC-Block-td9587.html >> ), but I'm stuck on the same point. >> Could you give me any suggestions? >> >> Thank you!! :) >> >> >> >> >> El mié., 28 nov. 2018 a las 16:17, Carlos Alberto Ruiz Naranjo (< >> carlosruiznara...@gmail.com>) escribió: >> >>> Ok! Thank you :) >>> >>> El mié., 28 nov. 2018 a las 16:13, Brian Padalino () >>> escribió: >>> On Wed, Nov 28, 2018 at 9:43 AM Carlos Alberto Ruiz Naranjo < carlosruiznara...@gmail.com> wrote: > Thank you! I already have enough work to continue :) > > One last thing. In the split_stream module, did you concat tuser with > m_axis_data_tuser with m_axis_data_tdata? > No tuser at that point. Just the stream part - tdata, tlast, tvalid, and tready. > > I'm curious about you election. Why do you think that version 0 is > better than version 1? > Not really sure. It is just the way I ended up. I think either way will work. Whichever way makes sense to you, try it out! Have fun! :) Brian > ___ USRP-users mailing list USRP-users@lists.ettus.com http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
Re: [USRP-users] rfnoc problem with custom DDC inputs.
Hey Carlos, The attached patch is what I used applied to 3.13.0.1 I want to say. You get the idea. To get the controller, I use get_block_ctrl(uhd::rfnoc::block_id_t(0, "NAME", 0)) since there is only one instance, for me, in my radio. When setting up the uhd::device_addr_t, I populate: block_port%d, radio_id%d, and radio_port%d where block_port%d is the output block you're looking at streaming from. Hope this is helpful. Good luck. Brian On Fri, Nov 30, 2018 at 4:34 AM Carlos Alberto Ruiz Naranjo < carlosruiznara...@gmail.com> wrote: > Hello Brian, > > I have finished the FPGA code. I got a DDC 1:2 but I have problems with > 1:8. I think I have your same problems: / > > *thread[thread-per-block[0]: ]: LookupError: > KeyError: [0/Radio_0] sr_write(): No such port: 2* > > In rfnoc code: > > > > > > *std::vector > > upstream_radio_nodes = > blk_ctrl->find_upstream_node(); > UHD_RX_STREAMER_LOG() << "Number of upstream radio nodes: " << > upstream_radio_nodes.size();for(const > boost::shared_ptr : upstream_radio_nodes) > {node->sr_write(uhd::rfnoc::SR_RESP_OUT_DST_SID, > xport.send_sid.get_src(), block_port);}* > > I've found your post ( > http://ettus.80997.x6.nabble.com/USRP-users-Multiple-Output-RFNoC-Block-td9587.html > ), but I'm stuck on the same point. > Could you give me any suggestions? > > Thank you!! :) > > > > > El mié., 28 nov. 2018 a las 16:17, Carlos Alberto Ruiz Naranjo (< > carlosruiznara...@gmail.com>) escribió: > >> Ok! Thank you :) >> >> El mié., 28 nov. 2018 a las 16:13, Brian Padalino () >> escribió: >> >>> On Wed, Nov 28, 2018 at 9:43 AM Carlos Alberto Ruiz Naranjo < >>> carlosruiznara...@gmail.com> wrote: >>> Thank you! I already have enough work to continue :) One last thing. In the split_stream module, did you concat tuser with m_axis_data_tuser with m_axis_data_tdata? >>> >>> No tuser at that point. Just the stream part - tdata, tlast, tvalid, >>> and tready. >>> >>> I'm curious about you election. Why do you think that version 0 is better than version 1? >>> >>> Not really sure. It is just the way I ended up. I think either way >>> will work. Whichever way makes sense to you, try it out! Have fun! :) >>> >>> Brian >>> Allow-multiple-RX-output-ports.patch Description: Binary data ___ USRP-users mailing list USRP-users@lists.ettus.com http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
Re: [USRP-users] rfnoc problem with custom DDC inputs.
Hello Brian, I have finished the FPGA code. I got a DDC 1:2 but I have problems with 1:8. I think I have your same problems: / *thread[thread-per-block[0]: ]: LookupError: KeyError: [0/Radio_0] sr_write(): No such port: 2* In rfnoc code: *std::vector > upstream_radio_nodes = blk_ctrl->find_upstream_node(); UHD_RX_STREAMER_LOG() << "Number of upstream radio nodes: " << upstream_radio_nodes.size();for(const boost::shared_ptr : upstream_radio_nodes) {node->sr_write(uhd::rfnoc::SR_RESP_OUT_DST_SID, xport.send_sid.get_src(), block_port);}* I've found your post ( http://ettus.80997.x6.nabble.com/USRP-users-Multiple-Output-RFNoC-Block-td9587.html ), but I'm stuck on the same point. Could you give me any suggestions? Thank you!! :) El mié., 28 nov. 2018 a las 16:17, Carlos Alberto Ruiz Naranjo (< carlosruiznara...@gmail.com>) escribió: > Ok! Thank you :) > > El mié., 28 nov. 2018 a las 16:13, Brian Padalino () > escribió: > >> On Wed, Nov 28, 2018 at 9:43 AM Carlos Alberto Ruiz Naranjo < >> carlosruiznara...@gmail.com> wrote: >> >>> Thank you! I already have enough work to continue :) >>> >>> One last thing. In the split_stream module, did you concat tuser with >>> m_axis_data_tuser with m_axis_data_tdata? >>> >> >> No tuser at that point. Just the stream part - tdata, tlast, tvalid, and >> tready. >> >> >>> >>> I'm curious about you election. Why do you think that version 0 is >>> better than version 1? >>> >> >> Not really sure. It is just the way I ended up. I think either way will >> work. Whichever way makes sense to you, try it out! Have fun! :) >> >> Brian >> >>> ___ USRP-users mailing list USRP-users@lists.ettus.com http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
Re: [USRP-users] rfnoc problem with custom DDC inputs.
Ok! Thank you :) El mié., 28 nov. 2018 a las 16:13, Brian Padalino () escribió: > On Wed, Nov 28, 2018 at 9:43 AM Carlos Alberto Ruiz Naranjo < > carlosruiznara...@gmail.com> wrote: > >> Thank you! I already have enough work to continue :) >> >> One last thing. In the split_stream module, did you concat tuser with >> m_axis_data_tuser with m_axis_data_tdata? >> > > No tuser at that point. Just the stream part - tdata, tlast, tvalid, and > tready. > > >> >> I'm curious about you election. Why do you think that version 0 is better >> than version 1? >> > > Not really sure. It is just the way I ended up. I think either way will > work. Whichever way makes sense to you, try it out! Have fun! :) > > Brian > >> ___ USRP-users mailing list USRP-users@lists.ettus.com http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
Re: [USRP-users] rfnoc problem with custom DDC inputs.
On Wed, Nov 28, 2018 at 9:43 AM Carlos Alberto Ruiz Naranjo < carlosruiznara...@gmail.com> wrote: > Thank you! I already have enough work to continue :) > > One last thing. In the split_stream module, did you concat tuser with > m_axis_data_tuser with m_axis_data_tdata? > No tuser at that point. Just the stream part - tdata, tlast, tvalid, and tready. > > I'm curious about you election. Why do you think that version 0 is better > than version 1? > Not really sure. It is just the way I ended up. I think either way will work. Whichever way makes sense to you, try it out! Have fun! :) Brian > ___ USRP-users mailing list USRP-users@lists.ettus.com http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
Re: [USRP-users] rfnoc problem with custom DDC inputs.
Hey Carlos, On Tue, Nov 27, 2018 at 6:18 PM Carlos Alberto Ruiz Naranjo < carlosruiznara...@gmail.com> wrote: > Hello Brian, > > Thank you very much for answering, I am spending a lot of time on this and > I do not see the way out. > > I am following your advice, I have removed the 3 inputs of FPGA code, but > I am having problems. > > I have doubts with: > > - str_sink_tvalid and str_sink_tready[line 165] > - str_src_tready [line 166] > - sample_in_tready [line 297] > - sample_out_tready [line 301] > I solved this by having N axi_wrappers - one for each output I wanted. I then only wire the inputs into axi_wrapper0 and no inputs into the other axi_wrappers - just the outputs. I then send the stream tdata from axi_wrapper0 to an nsplit_stream_fifo which does the 1:N conversion for me. I have 8 outputs, and I had to make changes to UHD to support writing to the appropriate ports inside of the block, but that is a different issue altogether. Note that it's very easy to fill up the FPGA using multiple output ports. Lots of FIFOs get instantiated. Good luck! Brian > ___ USRP-users mailing list USRP-users@lists.ettus.com http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
Re: [USRP-users] rfnoc problem with custom DDC inputs.
Hello Brian, Thank you very much for answering, I am spending a lot of time on this and I do not see the way out. I am following your advice, I have removed the 3 inputs of FPGA code, but I am having problems. I have doubts with: - str_sink_tvalid and str_sink_tready[line 165] - str_src_tready [line 166] - sample_in_tready [line 297] - sample_out_tready [line 301] When I run DDC rfnoc test with this changes fails. This is the rfnoc DDC modified code. https://pastebin.com/txTXCMyc Thank you!! :) :) El lun., 26 nov. 2018 a las 19:36, Brian Padalino () escribió: > On Mon, Nov 26, 2018 at 12:14 PM Carlos Alberto Ruiz Naranjo via > USRP-users wrote: > >> Hello, >> >> I have customized the rfnoc DDC. I have: >> >> - 4 inputs (0,1,2,3). >> - 4 outputs (0,1,2,3). >> - 4 independently tunable DDCs. >> - Input 0 connected to outputs 0,1,2,3. >> - Input 1,2,3 disconnected. >> >> I attach a diagram. >> >> But I do not know how to connect inputs 1,2,3 to a null source for . Any >> ideas? >> > > If you don't plan on using those inputs for anything, just don't make them. > > Make 1 input, 4 outputs. > > Brian > ___ USRP-users mailing list USRP-users@lists.ettus.com http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
Re: [USRP-users] rfnoc problem with custom DDC inputs.
On Mon, Nov 26, 2018 at 12:14 PM Carlos Alberto Ruiz Naranjo via USRP-users wrote: > Hello, > > I have customized the rfnoc DDC. I have: > > - 4 inputs (0,1,2,3). > - 4 outputs (0,1,2,3). > - 4 independently tunable DDCs. > - Input 0 connected to outputs 0,1,2,3. > - Input 1,2,3 disconnected. > > I attach a diagram. > > But I do not know how to connect inputs 1,2,3 to a null source for . Any > ideas? > If you don't plan on using those inputs for anything, just don't make them. Make 1 input, 4 outputs. Brian ___ USRP-users mailing list USRP-users@lists.ettus.com http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com