Re: [USRP-users] A few questions about RFNoC streaming
Thanks EJ and Nick, I hadn't thought about the propagation of the streaming command occurring in UHD rather than on the FPGA. I was thinking that after issuing the rx_streaming start command to the downstream-most block in the chain, some magic was happening on the FPGA to get the upstream blocks started. However, I think this makes more sense that there is some magic happening in UHD such that the upstream blocks get the command to start streaming. I will let you know if I figure anything out. Rob On Mon, Mar 25, 2019 at 12:37 PM Nick Foster wrote: > I can tell you the answer to #3 off the top of my head: the two streams > will be sample-aligned, and if you use timed start commands, they will be > time-aligned. > > The other two are probably best answered by trying it out. Maybe someone > from Ettus can chime in. > > Nick > > On Fri, Mar 22, 2019 at 7:09 AM Rob Kossler via USRP-users < > usrp-users@lists.ettus.com> wrote: > >> Any suggestions? >> >> On Wed, Mar 20, 2019 at 9:49 PM Rob Kossler wrote: >> >>> Yes, the example was for illustration only. You can throw a couple of >>> DDCs in between the radio and add/sub block to slow the rate down. But, >>> the questions are still the same. >>> >>> On Wed, Mar 20, 2019 at 7:49 PM Nick Foster >>> wrote: >>> First things first. The flow graph you're describing don't work because the two radio blocks will saturate the bus going into the addsub block. You will need to decimate the streams going into the addsub block. I don't have a ready answer to your question about the streamers, but I'd suggest using timed commands to align the two radio streams, if UHD isn't smart enough to recognize the two radios and propagate the stream command accordingly. Nick On Thu, Mar 21, 2019, 6:46 AM Rob Kossler via USRP-users < usrp-users@lists.ettus.com> wrote: > Hi, > I am starting to develop more complicated RFNoC graphs and several > questions occurred to me. I am using my own C++ application with the UHD > RFNoC-enabled library. > > Consider a receive-only RFNoC graph with 2 radio blocks feeding a > 2-input, 2-output Add/Sub block. Also, assume there are two rx_streamers > connected to the 2 output ports of the Add/Sub block. Note that these > streams are no longer independent or one-to-one matched with the radio > channels. > > 1) How does an "issue_stream_cmd()" to one of the Add/Sub block ports > propagate back to the radio block? Actually, it would need to propagate > back to both Radio blocks no matter which rx_streamer I used since they > are > no longer independent streams. Does this make sense? > 2) What happens if I only call "issue_stream_cmd()" for one of the > rx_streamers instead of both? Perhaps since the other streamer isn't > running, it backpressures the streaming such that it eventually quits and > thus quits for the other port as well? > 3) Do I have to do anything in the Add/Sub block to sync up the > streams or can I rely on the first sample from Radio 0 being time-aligned > with the first sample from Radio 1 (assuming I issued timed start > commands)? > > Rob > ___ > USRP-users mailing list > USRP-users@lists.ettus.com > http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com > ___ >> USRP-users mailing list >> USRP-users@lists.ettus.com >> http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com >> > ___ USRP-users mailing list USRP-users@lists.ettus.com http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
Re: [USRP-users] A few questions about RFNoC streaming
I can tell you the answer to #3 off the top of my head: the two streams will be sample-aligned, and if you use timed start commands, they will be time-aligned. The other two are probably best answered by trying it out. Maybe someone from Ettus can chime in. Nick On Fri, Mar 22, 2019 at 7:09 AM Rob Kossler via USRP-users < usrp-users@lists.ettus.com> wrote: > Any suggestions? > > On Wed, Mar 20, 2019 at 9:49 PM Rob Kossler wrote: > >> Yes, the example was for illustration only. You can throw a couple of >> DDCs in between the radio and add/sub block to slow the rate down. But, >> the questions are still the same. >> >> On Wed, Mar 20, 2019 at 7:49 PM Nick Foster wrote: >> >>> First things first. The flow graph you're describing don't work because >>> the two radio blocks will saturate the bus going into the addsub block. You >>> will need to decimate the streams going into the addsub block. >>> >>> I don't have a ready answer to your question about the streamers, but >>> I'd suggest using timed commands to align the two radio streams, if UHD >>> isn't smart enough to recognize the two radios and propagate the stream >>> command accordingly. >>> >>> Nick >>> >>> On Thu, Mar 21, 2019, 6:46 AM Rob Kossler via USRP-users < >>> usrp-users@lists.ettus.com> wrote: >>> Hi, I am starting to develop more complicated RFNoC graphs and several questions occurred to me. I am using my own C++ application with the UHD RFNoC-enabled library. Consider a receive-only RFNoC graph with 2 radio blocks feeding a 2-input, 2-output Add/Sub block. Also, assume there are two rx_streamers connected to the 2 output ports of the Add/Sub block. Note that these streams are no longer independent or one-to-one matched with the radio channels. 1) How does an "issue_stream_cmd()" to one of the Add/Sub block ports propagate back to the radio block? Actually, it would need to propagate back to both Radio blocks no matter which rx_streamer I used since they are no longer independent streams. Does this make sense? 2) What happens if I only call "issue_stream_cmd()" for one of the rx_streamers instead of both? Perhaps since the other streamer isn't running, it backpressures the streaming such that it eventually quits and thus quits for the other port as well? 3) Do I have to do anything in the Add/Sub block to sync up the streams or can I rely on the first sample from Radio 0 being time-aligned with the first sample from Radio 1 (assuming I issued timed start commands)? Rob ___ USRP-users mailing list USRP-users@lists.ettus.com http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com >>> ___ > USRP-users mailing list > USRP-users@lists.ettus.com > http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com > ___ USRP-users mailing list USRP-users@lists.ettus.com http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
Re: [USRP-users] A few questions about RFNoC streaming
Any suggestions? On Wed, Mar 20, 2019 at 9:49 PM Rob Kossler wrote: > Yes, the example was for illustration only. You can throw a couple of > DDCs in between the radio and add/sub block to slow the rate down. But, > the questions are still the same. > > On Wed, Mar 20, 2019 at 7:49 PM Nick Foster wrote: > >> First things first. The flow graph you're describing don't work because >> the two radio blocks will saturate the bus going into the addsub block. You >> will need to decimate the streams going into the addsub block. >> >> I don't have a ready answer to your question about the streamers, but I'd >> suggest using timed commands to align the two radio streams, if UHD isn't >> smart enough to recognize the two radios and propagate the stream command >> accordingly. >> >> Nick >> >> On Thu, Mar 21, 2019, 6:46 AM Rob Kossler via USRP-users < >> usrp-users@lists.ettus.com> wrote: >> >>> Hi, >>> I am starting to develop more complicated RFNoC graphs and several >>> questions occurred to me. I am using my own C++ application with the UHD >>> RFNoC-enabled library. >>> >>> Consider a receive-only RFNoC graph with 2 radio blocks feeding a >>> 2-input, 2-output Add/Sub block. Also, assume there are two rx_streamers >>> connected to the 2 output ports of the Add/Sub block. Note that these >>> streams are no longer independent or one-to-one matched with the radio >>> channels. >>> >>> 1) How does an "issue_stream_cmd()" to one of the Add/Sub block ports >>> propagate back to the radio block? Actually, it would need to propagate >>> back to both Radio blocks no matter which rx_streamer I used since they are >>> no longer independent streams. Does this make sense? >>> 2) What happens if I only call "issue_stream_cmd()" for one of the >>> rx_streamers instead of both? Perhaps since the other streamer isn't >>> running, it backpressures the streaming such that it eventually quits and >>> thus quits for the other port as well? >>> 3) Do I have to do anything in the Add/Sub block to sync up the streams >>> or can I rely on the first sample from Radio 0 being time-aligned with the >>> first sample from Radio 1 (assuming I issued timed start commands)? >>> >>> Rob >>> ___ >>> USRP-users mailing list >>> USRP-users@lists.ettus.com >>> http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com >>> >> ___ USRP-users mailing list USRP-users@lists.ettus.com http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
Re: [USRP-users] A few questions about RFNoC streaming
Yes, the example was for illustration only. You can throw a couple of DDCs in between the radio and add/sub block to slow the rate down. But, the questions are still the same. On Wed, Mar 20, 2019 at 7:49 PM Nick Foster wrote: > First things first. The flow graph you're describing don't work because > the two radio blocks will saturate the bus going into the addsub block. You > will need to decimate the streams going into the addsub block. > > I don't have a ready answer to your question about the streamers, but I'd > suggest using timed commands to align the two radio streams, if UHD isn't > smart enough to recognize the two radios and propagate the stream command > accordingly. > > Nick > > On Thu, Mar 21, 2019, 6:46 AM Rob Kossler via USRP-users < > usrp-users@lists.ettus.com> wrote: > >> Hi, >> I am starting to develop more complicated RFNoC graphs and several >> questions occurred to me. I am using my own C++ application with the UHD >> RFNoC-enabled library. >> >> Consider a receive-only RFNoC graph with 2 radio blocks feeding a >> 2-input, 2-output Add/Sub block. Also, assume there are two rx_streamers >> connected to the 2 output ports of the Add/Sub block. Note that these >> streams are no longer independent or one-to-one matched with the radio >> channels. >> >> 1) How does an "issue_stream_cmd()" to one of the Add/Sub block ports >> propagate back to the radio block? Actually, it would need to propagate >> back to both Radio blocks no matter which rx_streamer I used since they are >> no longer independent streams. Does this make sense? >> 2) What happens if I only call "issue_stream_cmd()" for one of the >> rx_streamers instead of both? Perhaps since the other streamer isn't >> running, it backpressures the streaming such that it eventually quits and >> thus quits for the other port as well? >> 3) Do I have to do anything in the Add/Sub block to sync up the streams >> or can I rely on the first sample from Radio 0 being time-aligned with the >> first sample from Radio 1 (assuming I issued timed start commands)? >> >> Rob >> ___ >> USRP-users mailing list >> USRP-users@lists.ettus.com >> http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com >> > ___ USRP-users mailing list USRP-users@lists.ettus.com http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
Re: [USRP-users] A few questions about RFNoC streaming
First things first. The flow graph you're describing don't work because the two radio blocks will saturate the bus going into the addsub block. You will need to decimate the streams going into the addsub block. I don't have a ready answer to your question about the streamers, but I'd suggest using timed commands to align the two radio streams, if UHD isn't smart enough to recognize the two radios and propagate the stream command accordingly. Nick On Thu, Mar 21, 2019, 6:46 AM Rob Kossler via USRP-users < usrp-users@lists.ettus.com> wrote: > Hi, > I am starting to develop more complicated RFNoC graphs and several > questions occurred to me. I am using my own C++ application with the UHD > RFNoC-enabled library. > > Consider a receive-only RFNoC graph with 2 radio blocks feeding a 2-input, > 2-output Add/Sub block. Also, assume there are two rx_streamers connected > to the 2 output ports of the Add/Sub block. Note that these streams are no > longer independent or one-to-one matched with the radio channels. > > 1) How does an "issue_stream_cmd()" to one of the Add/Sub block ports > propagate back to the radio block? Actually, it would need to propagate > back to both Radio blocks no matter which rx_streamer I used since they are > no longer independent streams. Does this make sense? > 2) What happens if I only call "issue_stream_cmd()" for one of the > rx_streamers instead of both? Perhaps since the other streamer isn't > running, it backpressures the streaming such that it eventually quits and > thus quits for the other port as well? > 3) Do I have to do anything in the Add/Sub block to sync up the streams or > can I rely on the first sample from Radio 0 being time-aligned with the > first sample from Radio 1 (assuming I issued timed start commands)? > > Rob > ___ > USRP-users mailing list > USRP-users@lists.ettus.com > http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com > ___ USRP-users mailing list USRP-users@lists.ettus.com http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
[USRP-users] A few questions about RFNoC streaming
Hi, I am starting to develop more complicated RFNoC graphs and several questions occurred to me. I am using my own C++ application with the UHD RFNoC-enabled library. Consider a receive-only RFNoC graph with 2 radio blocks feeding a 2-input, 2-output Add/Sub block. Also, assume there are two rx_streamers connected to the 2 output ports of the Add/Sub block. Note that these streams are no longer independent or one-to-one matched with the radio channels. 1) How does an "issue_stream_cmd()" to one of the Add/Sub block ports propagate back to the radio block? Actually, it would need to propagate back to both Radio blocks no matter which rx_streamer I used since they are no longer independent streams. Does this make sense? 2) What happens if I only call "issue_stream_cmd()" for one of the rx_streamers instead of both? Perhaps since the other streamer isn't running, it backpressures the streaming such that it eventually quits and thus quits for the other port as well? 3) Do I have to do anything in the Add/Sub block to sync up the streams or can I rely on the first sample from Radio 0 being time-aligned with the first sample from Radio 1 (assuming I issued timed start commands)? Rob ___ USRP-users mailing list USRP-users@lists.ettus.com http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com