Hi Jim,
I have also been playing around with UHD-4.0, but mostly in testbenches.
I've only built one image (for the N310) with one of my custom blocks. The
errors you mentioned seem very strange. A few questions/comments:
- can you send your "XXX_x310_rfnoc_image_core.yml" contents?
- would it be helpful to run directly with UHD examples (removing gnuradio
and gr-ettus from the equation)?  You could try "rfnoc_rx_to_file" as-is
where you specify on the command line the desired "block-id" to insert
between the Radio and the rx_streamer.  With the X310, the Radio rate might
be too high with your custom "thru" block so perhaps you could modify the
example (in-tree would be easiest) to automatically include the DDC and
then insert the command line "block-id" optionally after the DDC.
- In my testbenches, I have occasionally seend CHDR error messages like you
mentioned and it seemed to solve them if I set "s_out_payload_tkeep=1". I
didn't think this was needed if there was only 1 output port, but I seem to
recall that this fixed my CHDR error issue for my 1  port block.
Rob

On Wed, Sep 30, 2020 at 10:39 AM Jim Palladino via USRP-users <
usrp-users@lists.ettus.com> wrote:

> Hello,
>
> Several weeks ago I went through the tutorial for producing the example
> "gain" block using rfnoc 3.8 and uhd 3.15. There were some bumps, but I did
> get that working fine. For the past couple weeks, I've been working with
> UHD 4.0 and the latest gr-ettus repo.
>
> I posted a question a week or two ago since I couldn't get UHD to
> recognize my custom block, as UHD doesn't look for the block yml file in
> the latest uhd 4.0 build. It just shows up as "0/Block#0" when probing.
> Thanks to Wade F. for the quick response to that question and for
> suggesting I either just continue OOT and use the "Block" name to interface
> with it or build in-tree for now. I chose to stick with OOT and just use
> the "Block" naming.
>
> I started with the gain example, but ended up simplifying it to literally
> just using what was generated by rfnocmodtool (just a pass through block in
> the FPGA) with no modifications. I made an rfnoc block, called "Block". I
> built this for an E320, so I did have to modify the
> "XXX_x310_rfnoc_image_core.yml" file accordingly.
>
> I built/installed everything, but this is what is happening. When I create
> a gnuradio-companion "waveform", it does run, but I get the following
> behavior:
>
> 1) If my setup is RFNoC_RX_Radio -> RFNoC_DDC_Block -> RFNoC_Block ->
> RFNoC_RX_Streamer -> QT_GUI_Freq_Sink:
>
> Everything runs, but the following repeats over and over and the output
> plot doesn't change:
> ----
> gr::log :WARN: rfnoc_rx_streamer0 - RFNoC Streamer block received error
> ERROR_CODE_BAD_PACKET (Code: 0xf)
> [ERROR] [STREAMER] The receive transport caught a value exception.
> ValueError: Bad CHDR header or invalid packet length.
> gr::log :WARN: rfnoc_rx_streamer0 - RFNoC Streamer block received error
> ERROR_CODE_BAD_PACKET (Code: 0xf)
> [ERROR] [STREAMER] The receive transport caught a value exception.
> ValueError: Bad CHDR header or invalid packet length.
> ----
>
> I put in some ILA probes and it seems that "ep4_to_xb_tready" is stuck
> low. ep4 is the endpoint tied to the in and out of my custom "Block." I'm
> guessing it didn't start low but a FIFO or something filled up somewhere.
>
> I should mention that if I use this same setup, but remove my custom
> RFNoC_Block and directly connect the DDC to the RX_Streamer, everything
> works fine. No errors, the spectrum looks fine, etc.
>
>
> 2) If my setup is Constant_Source(set to 4+9j) -> RFNoC_TX_Streamer ->
> RFNoC_Block -> RFNoC_RX_Streamer -> QT_GUI_Time_Sink:
>
> Everything runs and I do not have a problem with any gnuradio warnings.
> Also, TReady is high the entire time. But, the output plot for I and Q sit
> mostly constant stuck at "1", with non-periodic blips down to "0". I'm not
> seeing the complex constant I set in gnuradio. If I look at the
> payload_tdata in an ILA for my "Block" when tvalid is high and tready is
> high, I see that the data is sitting at 0x7fff7fff except when TLAST is
> high, tdata switches to 0xfffc7ff7.
>
> I'm at a bit of a loss trying to figure out what is happening. Could it be
> that UHD is not interfacing properly to my block (given that UHD doesn't
> look for my OOT yml file)? I did not change any block controller code or
> anything else. Oh, and the user_register that is included as part of the
> default design designated by rfnocmodtool seems to work fine. I can change
> the register value in gnuradio and I can see it change appropriately via
> and ILA.
>
> For reference, this is what I've been working with:
> 1) UHD (v4.0.0.0 tag)
> 2) gnuradio (3.8.2.0 tag)
> 3) gr-ettus (maint-3.8-uhd4.0 branch)
>
> RFNoC is new to me, so any thoughts on what could be wrong or how I could
> go about debugging this would be greatly appreciated. Hopefully, I'm just
> missing something simple.
>
> Thanks,
> Jim
>
> _______________________________________________
> 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