Yes, this is intentional. There is a lot of active development going on for
UHD 4.0 and the Replay block will be in there soon.

Thanks for the details with respect to port > 1. I will let you know what I
find.

Wade

On Fri, May 1, 2020 at 1:22 PM Rob Kossler <rkoss...@nd.edu> wrote:

> And, one more thing.... Are you aware that the current 'master' (UHD 4.0)
> provides images that do not have the replay block on them (e.g., N310) and
> that there is no noc_block_replay.v or replay block HPP file anywhere in
> the repo?
> Rob
>
> On Fri, May 1, 2020 at 1:28 PM Rob Kossler <rkoss...@nd.edu> wrote:
>
>> Hi Wade,
>> The issue can be demonstrated using the stock "replay_samples_from_file"
>> program (N310 UHD3.15).  Run with "trace" logging if you want even more
>> detail.  So, it's not really an issue related to multiple ports.  It's an
>> issue of connecting Replay port 2 (or likely port 3 as well) to an
>> arbitrary downstream port.
>> Rob
>>
>> ******* Here is the command that fails
>>
>> $ replay_samples_from_file --file
>> Documents/waveforms/mtone_100_0p8_0_le.bin --replay_chan 2 --freq 2450e6
>> --rate 125e6
>> Creating the USRP device with: . . .
>>
>> [INFO] [UHD] linux; GNU C++ version 7.4.0; Boost_106501;
>> UHD_3.15.0.0-7-g8d228dbe
>> [INFO] [MPMD] Initializing 1 device(s) in parallel with args:
>> mgmt_addr=192.168.20.2,type=n3xx,product=n310,serial=319821D,claimed=False,addr=192.168.20.2
>> [INFO] [MPM.PeriphManager] init() called with device args
>> `mgmt_addr=192.168.20.2,time_source=internal,product=n310,clock_source=internal'.
>> [INFO] [0/Replay_0] Initializing block control (NOC ID:
>> 0x4E91A00000000004)
>> [INFO] [0/Radio_0] Initializing block control (NOC ID: 0x12AD100000011312)
>> [INFO] [0/Radio_1] Initializing block control (NOC ID: 0x12AD100000011312)
>> [INFO] [0/DDC_0] Initializing block control (NOC ID: 0xDDC0000000000000)
>> [INFO] [0/DDC_1] Initializing block control (NOC ID: 0xDDC0000000000000)
>> [INFO] [0/DUC_0] Initializing block control (NOC ID: 0xD0C0000000000002)
>> [INFO] [0/DUC_1] Initializing block control (NOC ID: 0xD0C0000000000002)
>> [INFO] [0/FIFO_0] Initializing block control (NOC ID: 0xF1F0000000000000)
>> [INFO] [0/FIFO_1] Initializing block control (NOC ID: 0xF1F0000000000000)
>> [INFO] [0/FIFO_2] Initializing block control (NOC ID: 0xF1F0000000000000)
>> [INFO] [0/FIFO_3] Initializing block control (NOC ID: 0xF1F0000000000000)
>> Using radio 0, channel 0
>> Using replay block 0, channel 2
>> Setting TX Freq: 2450.000000 MHz...
>> Actual TX Freq: 2450.000000 MHz...
>>
>> Setting TX Rate: 125.000000 Msps...
>> Actual TX Rate: 125.000000 Msps...
>>
>> Connecting 0/Replay_0 ==> 0/Radio_0
>> Error: LookupError: KeyError: [0/Radio_0] sr_write(): No such port: 2
>>
>> On Fri, May 1, 2020 at 1:19 PM Wade Fife <wade.f...@ettus.com> wrote:
>>
>>> See my responses below.
>>>
>>> On Fri, May 1, 2020 at 11:08 AM Rob Kossler <rkoss...@nd.edu> wrote:
>>>
>>>> Thanks Wade,
>>>> A few follow up questions:
>>>>
>>>>    - Regarding play_halt(), it sounds like this should never used if
>>>>    you are planning to start playout again (and the replay output feeds the
>>>>    DUC input).  Is this correct?  Or perhaps there is some way to clear the
>>>>    DUC?
>>>>
>>>> My recommendation would be to not call play_halt() if you are planning
>>> on restarting. It will take a little longer to stop because it has to wait
>>> to complete the current memory read and generate the final packet with EOB.
>>> I'd have to look into clearing the DUC, but I think the right thing to do
>>> is to let the replay block stop normally.
>>>
>>>>
>>>>    - In the meantime, what is the correct way of using the block in my
>>>>    situation where the replay is connected to the DUC and I want to 
>>>> repeatedly
>>>>    start/stop streaming?  Should I just remove the play_halt() call from 
>>>> the
>>>>    example and just wait for the buffer to flush following the stop 
>>>> streaming
>>>>    command?
>>>>
>>>> Yes, I would just remove the play_halt().
>>>
>>>>
>>>>    - Have you seen my other issue regarding use of the Replay Block on
>>>>    the N310 such that you can't connect the 4 Replay block ports to the 4 
>>>> DUC
>>>>    ports to produce 4 Tx outputs using 3.15?  There is a graph connection /
>>>>    propagation issue that does not like Replay port 2 (3rd  port) 
>>>> connected to
>>>>    DUC_1 port 0.
>>>>
>>>> I'm not aware of any issues with respect to multiple ports. Can you
>>> provide more details on the issue you're seeing?
>>>
>>> Rob
>>>>
>>>> On Fri, May 1, 2020 at 11:37 AM Wade Fife <wade.f...@ettus.com> wrote:
>>>>
>>>>> Hi Rob,
>>>>>
>>>>> I wanted to give you a quick update. I was able to reproduce the issue
>>>>> you found. There were two problems.
>>>>>
>>>>> First, the example you shared calls play_halt() for the replay block
>>>>> each time replay is stopped. This basically stops it as soon as possible,
>>>>> even if that means it can't send a final packet with EOB. The DUC needs 
>>>>> the
>>>>> EOB to start/stop cleanly or else the timestamps the DUC generates aren't
>>>>> correct when the next set of data comes through.
>>>>>
>>>>> The second problem I found is part of some known issues that are
>>>>> already fixed in UHD 4.0. I'm going to add these fixes to 3.15 since I 
>>>>> know
>>>>> there was a lot of interest in the Replay block in 3.15. So once these
>>>>> fixes appear, you should be able to remove the call the play_halt() and 
>>>>> the
>>>>> example will work as expected.
>>>>>
>>>>> Thanks,
>>>>>
>>>>> Wade
>>>>>
>>>>> On Thu, Apr 23, 2020 at 9:34 PM Rob Kossler <rkoss...@nd.edu> wrote:
>>>>>
>>>>>>
>>>>>> Great. I forgot to mention that I was using an n310.
>>>>>>
>>>>>> On Thu, Apr 23, 2020 at 10:18 PM Wade Fife <wade.f...@ettus.com>
>>>>>> wrote:
>>>>>>
>>>>>>> Hi Rob,
>>>>>>>
>>>>>>> Thanks for the example! I'd take a look to see if I can reproduce
>>>>>>> the issue and figure out what's going on. I've been working recently on 
>>>>>>> the
>>>>>>> Replay block, so I'm very interested to understand what's going on.
>>>>>>>
>>>>>>> Thanks,
>>>>>>>
>>>>>>> Wade
>>>>>>>
>>>>>>> On Thu, Apr 23, 2020 at 1:36 PM Rob Kossler via USRP-users <
>>>>>>> usrp-users@lists.ettus.com> wrote:
>>>>>>>
>>>>>>>> Hi,
>>>>>>>> I am having an issue with UHD 3.15.LTS using the replay block.
>>>>>>>> When I play out my previously stored samples the first time, everything
>>>>>>>> works fine.  But after stopping the first time, if I try to start 
>>>>>>>> playing
>>>>>>>> out again, I get a whole bunch of 'Lates' and no RF output.
>>>>>>>>
>>>>>>>> In order to duplicate the problem with an Ettus example, I modified
>>>>>>>> 'replay_samples_from_file' to add a loop and command prompt so that the
>>>>>>>> user could hit <enter> to start playing out while still using <ctrl-c> 
>>>>>>>> to
>>>>>>>> stop.  Unfortunately for me, this worked fine and did not show the 
>>>>>>>> problem.
>>>>>>>>
>>>>>>>> Next, I further modified the example to place a DUC block in
>>>>>>>> between the Replay block and the Radio.  Now it duplicates the issue
>>>>>>>> perfectly (modified example attached).
>>>>>>>>
>>>>>>>> So, perhaps I need to clear the DUC in some way when stopping the
>>>>>>>> streaming??  But if so, I'm not really sure how to do so.
>>>>>>>>
>>>>>>>> Thanks.
>>>>>>>> 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

Reply via email to