Hi Rob,

I'm assuming you were able to work through the issue because you were on
the right track, but I wanted to make sure you got a response.  The
solution is to create a .yml file containing the blocks and parameters
desired for the RFNoC image and use that as an input to
uhd_image_builder.py.  The auto_inst_x310.yml file can be used as a
starting point for the .yml file.  For the DDC and DUC parameters, use the
following parameters:

- block: ddc
  parameters:
    NOC_ID: 64'hDDC0_0000_0000_0000
    NUM_CHAINS: 2

- block: duc
  parameters:
    NOC_ID: 64'hD0C0_0000_0000_0002
    NUM_CHAINS: 2

It's worth noting that the multi_usrp API is not guaranteed to work for
RFNoC images.  The legacy_compat layer attempts to bridge the gap between
multi_usrp and RFNoC and connect blocks in a way that makes the API usable,
but, as you discovered, things may not work if all the necessary resources
are not included in the FPGA image.

Best regards,
Michael


On Wed, Jul 18, 2018 at 9:34 PM, Rob Kossler via USRP-users <
usrp-users@lists.ettus.com> wrote:

> The problem seems to be that the "NumChains"  input for the DUC (& likely
> DDC) is not being set and thus defaulting to 1 chain per DUC.  This is a
> problem for the N310 that has 2 channels per radio.  I noticed that the
> file rfnoc_ce_default_inst_n310.v has NumChains specified as
> NUM_CHANNELS_PER_RADIO whereas the file rfnoc_ce_auto_inst_n310.v which is
> created by the uhd_image_builder.py script does not have this input
> specified.
>
> I could not find a way to use a uhd_image_builder.py command line option
> in order to change the behavior described above. However, it seems you can
> use a "yml" config file rather than the command line options to configure
> the behavior of this script.  In fact, I found "yml" files
> auto_inst_e310.yml and auto_inst_x310.yml. However, I did not find one for
> the n310.  I'm not sure if this is an oversight or if the user is just
> expected to create this file on his own.
>
> Let me know if I am on the wrong track here or there is a better way.
> Thanks.
> Rob
>
> On Tue, Jul 17, 2018 at 2:56 PM Rob Kossler <rkoss...@nd.edu> wrote:
>
>> Hi,
>> I am having trouble building an RFNoC image using the master branch.
>> Actually, I can build an image, but it produces an error that makes me
>> believe that some config file is not correct for my N310.  Here are the
>> steps I followed:
>>
>>    - download latest UHD and checkout 'master'
>>    - git submodule init followed by git submodule update
>>    - Note: at this point I wanted to use the tool "uhd_image_builder.py"
>>    but it didn't exist in the folder structure.  So, I changed folder to
>>    "fpga-src" and ran "git checkout master".  This produced the needed
>>    "uhd_image_builder.py"
>>    - uhd_image_builder.py ddc ddc duc duc -g -t N310_RFNOC_XG -d N310
>>
>> I am wondering if someone could comment on what are the correct steps to
>> get started now that we are using "master" rather than "rfnoc-devel".
>>
>> See below the error I get with my image.  I do not get this error with
>> the stock image.
>>
>> Thank you.
>> Rob
>>
>> $ benchmark_rate --rx_rate=12.5e6 --channels=0,1 --pps=internal
>>
>> [INFO] [UHD] linux; GNU C++ version 5.4.0 20160609; Boost_105800;
>> UHD_3.13.0.0-86-g606d8fc3
>> [00:00:00.000002] Creating the usrp device with: ...
>> [INFO] [MPMD] Initializing 1 device(s) in parallel with args:
>> mgmt_addr=192.168.160.2,type=n3xx,product=n310,serial=314467
>> 3,claimed=False,addr=192.168.160.2
>> [INFO] [MPM.main] Spawning RPC process...
>> [INFO] [MPM.PeriphManager] Device serial number: 3144673
>> [INFO] [MPM.PeriphManager] Found 2 daughterboard(s).
>> [INFO] [MPM.RPCServer] RPC server ready!
>> [INFO] [MPM.RPCServer] Spawning watchdog task...
>> [INFO] [MPM.PeriphManager] init() called with device args
>> `mgmt_addr=192.168.160.2,product=n310'.
>> [INFO] [0/DmaFIFO_0] Initializing block control (NOC ID:
>> 0xF1F0D00000000004)
>> [INFO] [0/DmaFIFO_0] BIST passed (Throughput: 1341 MB/s)
>> [INFO] [0/DmaFIFO_0] BIST passed (Throughput: 1335 MB/s)
>> [INFO] [0/DmaFIFO_0] BIST passed (Throughput: 1318 MB/s)
>> [INFO] [0/DmaFIFO_0] BIST passed (Throughput: 1348 MB/s)
>> [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: 0xD0C0000000000000)
>> [INFO] [0/DUC_1] Initializing block control (NOC ID: 0xD0C0000000000000)
>> Error: AssertionError: index < duc_snk_flat.size()
>>   in void legacy_compat_impl::connect_blocks()
>>   at /home/irisheyes5/uhd/master/uhd/host/lib/rfnoc/legacy_compat.cpp:907
>>
>>
>>
> _______________________________________________
> 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