usrp-users@lists.ettus.com

Discussion and technical support related to USRP, UHD, RFNoC

View all threads

UHD 4.8 rfnoc_modtool create expectations

D
David
Tue, Jan 28, 2025 9:11 PM

Hello,

All my experience in UHD is in UHD4.6. I am trying out UHD 4.8 because of
the upgrades to rfnoc_image_builder, and I tried making a test module with
rfnoc_modtool.

Running "rfnoc_modtool create test_module" completes successfully, however
running "rfnoc_modtool add test_block" generates the following error:

[image: image.png]

The test_block.yml indeed doesn't exist, and I am wondering if the
intention is that I add it myself, or if the creation of the file was
accidentally omitted.

I enabled debug during the module creation, and can see how it copies/edits
files from share and renames them, but I don't see the yaml created and it
doesn't exist in <install dir>/share/uhd/rfnoc-newmod/

Thanks,

David

Hello, All my experience in UHD is in UHD4.6. I am trying out UHD 4.8 because of the upgrades to rfnoc_image_builder, and I tried making a test module with rfnoc_modtool. Running "rfnoc_modtool create test_module" completes successfully, however running "rfnoc_modtool add test_block" generates the following error: [image: image.png] The test_block.yml indeed doesn't exist, and I am wondering if the intention is that I add it myself, or if the creation of the file was accidentally omitted. I enabled debug during the module creation, and can see how it copies/edits files from share and renames them, but I don't see the yaml created and it doesn't exist in <install dir>/share/uhd/rfnoc-newmod/ Thanks, David
MB
Martin Braun
Wed, Jan 29, 2025 10:26 AM

Hi David,

and sorry for stumbling over the lack of documentation for this (fairly
new) tool. Yes, the idea is that you create the YAML. rfnoc_modtool add
will then generate the HDL, noc_shell, block controller templates, etc.

We've been internally discussing a kind of YAML creation wizard -- would
that be of interest to you? What should it do in your opinion?

--M

On Tue, Jan 28, 2025 at 10:13 PM David vitishlsfan21@gmail.com wrote:

Hello,

All my experience in UHD is in UHD4.6. I am trying out UHD 4.8 because of
the upgrades to rfnoc_image_builder, and I tried making a test module with
rfnoc_modtool.

Running "rfnoc_modtool create test_module" completes successfully, however
running "rfnoc_modtool add test_block" generates the following error:

[image: image.png]

The test_block.yml indeed doesn't exist, and I am wondering if the
intention is that I add it myself, or if the creation of the file was
accidentally omitted.

I enabled debug during the module creation, and can see how it
copies/edits files from share and renames them, but I don't see the yaml
created and it doesn't exist in <install dir>/share/uhd/rfnoc-newmod/

Thanks,

David


USRP-users mailing list -- usrp-users@lists.ettus.com
To unsubscribe send an email to usrp-users-leave@lists.ettus.com

Hi David, and sorry for stumbling over the lack of documentation for this (fairly new) tool. Yes, the idea is that you create the YAML. rfnoc_modtool add will then generate the HDL, noc_shell, block controller templates, etc. We've been internally discussing a kind of YAML creation wizard -- would that be of interest to you? What should it do in your opinion? --M On Tue, Jan 28, 2025 at 10:13 PM David <vitishlsfan21@gmail.com> wrote: > Hello, > > All my experience in UHD is in UHD4.6. I am trying out UHD 4.8 because of > the upgrades to rfnoc_image_builder, and I tried making a test module with > rfnoc_modtool. > > Running "rfnoc_modtool create test_module" completes successfully, however > running "rfnoc_modtool add test_block" generates the following error: > > [image: image.png] > > The test_block.yml indeed doesn't exist, and I am wondering if the > intention is that I add it myself, or if the creation of the file was > accidentally omitted. > > I enabled debug during the module creation, and can see how it > copies/edits files from share and renames them, but I don't see the yaml > created and it doesn't exist in <install dir>/share/uhd/rfnoc-newmod/ > > Thanks, > > David > _______________________________________________ > USRP-users mailing list -- usrp-users@lists.ettus.com > To unsubscribe send an email to usrp-users-leave@lists.ettus.com >
D
David
Wed, Jan 29, 2025 11:49 PM

Martin,

Thanks for letting me know. I can add in and proceed.

For a YAML creation wizard, it would benefit my typical use case. I will
give a little background and have my suggestions at the bottom. I work on
images with either SISO or MISO processing, where the output is some math
processing such as a linear combination of channels. My flow to setup such
a block in UHD 4.6 after running rfnocmodtool new/add is:

  1. change all fpga interfaces to axis_pyld_ctxt to axis_data
  2. change the context_fifo_depth to info_fifo_depth
  3. add whatever number of channels I need, OR add the number of ports on
    a single input
  4. run create_verilog

I admit that those steps are fairly trivial, but having an easy option in
the new tool to generate multiple I/O (or NUM_PORTS), and choose their fpga
interface would be nice.

I prefer using the axis_data interface because it exposes the sideband
channels. In all my cases, I pass through the sidebands except the
axis_thas_time (=1'b0). This lets my DUC/TX block transmit as soon as
possible without me worrying about time commands. Whether or not that is
the correct method, disabling timestamp output in the yaml would be a cool
option for me.

In summary my suggestions would be

  1. add the create_verilog functionality directly into the new
    rfnoc_modtool
  2. automatic yaml creation, be able to change the fpga interfaces
    between the 3 listed in the RFNoC spec
  3. variable number of inputs and outputs, potentially named with list of
    string options
  4. be able to disable timestamps with any of the interfaces (I use
    axis_data specifically for this since it is very simple)
  5. adding a custom clock and setting the interface clock domain (like
    user0 in the RFNoC spec example on page 81)

A lot of these options are listed and explained in detail in the RFNoC
spec, and these suggestions are purely a quality of life change that would
save me 15 minutes when I make a block.

Thanks,

David

On Wed, Jan 29, 2025 at 2:27 AM Martin Braun martin.braun@ettus.com wrote:

Hi David,

and sorry for stumbling over the lack of documentation for this (fairly
new) tool. Yes, the idea is that you create the YAML. rfnoc_modtool add
will then generate the HDL, noc_shell, block controller templates, etc.

We've been internally discussing a kind of YAML creation wizard -- would
that be of interest to you? What should it do in your opinion?

--M

On Tue, Jan 28, 2025 at 10:13 PM David vitishlsfan21@gmail.com wrote:

Hello,

All my experience in UHD is in UHD4.6. I am trying out UHD 4.8 because of
the upgrades to rfnoc_image_builder, and I tried making a test module with
rfnoc_modtool.

Running "rfnoc_modtool create test_module" completes successfully,
however running "rfnoc_modtool add test_block" generates the following
error:

[image: image.png]

The test_block.yml indeed doesn't exist, and I am wondering if the
intention is that I add it myself, or if the creation of the file was
accidentally omitted.

I enabled debug during the module creation, and can see how it
copies/edits files from share and renames them, but I don't see the yaml
created and it doesn't exist in <install dir>/share/uhd/rfnoc-newmod/

Thanks,

David


USRP-users mailing list -- usrp-users@lists.ettus.com
To unsubscribe send an email to usrp-users-leave@lists.ettus.com


USRP-users mailing list -- usrp-users@lists.ettus.com
To unsubscribe send an email to usrp-users-leave@lists.ettus.com

Martin, Thanks for letting me know. I can add in and proceed. For a YAML creation wizard, it would benefit my typical use case. I will give a little background and have my suggestions at the bottom. I work on images with either SISO or MISO processing, where the output is some math processing such as a linear combination of channels. My flow to setup such a block in UHD 4.6 after running rfnocmodtool new/add is: 1. change all fpga interfaces to axis_pyld_ctxt to axis_data 2. change the context_fifo_depth to info_fifo_depth 3. add whatever number of channels I need, OR add the number of ports on a single input 4. run create_verilog I admit that those steps are fairly trivial, but having an easy option in the new tool to generate multiple I/O (or NUM_PORTS), and choose their fpga interface would be nice. I prefer using the axis_data interface because it exposes the sideband channels. In all my cases, I pass through the sidebands except the axis_thas_time (=1'b0). This lets my DUC/TX block transmit as soon as possible without me worrying about time commands. Whether or not that is the correct method, disabling timestamp output in the yaml would be a cool option for me. In summary my suggestions would be 1. add the create_verilog functionality directly into the new rfnoc_modtool 2. automatic yaml creation, be able to change the fpga interfaces between the 3 listed in the RFNoC spec 3. variable number of inputs and outputs, potentially named with list of string options 4. be able to disable timestamps with any of the interfaces (I use axis_data specifically for this since it is very simple) 5. adding a custom clock and setting the interface clock domain (like user0 in the RFNoC spec example on page 81) A lot of these options are listed and explained in detail in the RFNoC spec, and these suggestions are purely a quality of life change that would save me 15 minutes when I make a block. Thanks, David On Wed, Jan 29, 2025 at 2:27 AM Martin Braun <martin.braun@ettus.com> wrote: > Hi David, > > and sorry for stumbling over the lack of documentation for this (fairly > new) tool. Yes, the idea is that you create the YAML. rfnoc_modtool add > will then generate the HDL, noc_shell, block controller templates, etc. > > We've been internally discussing a kind of YAML creation wizard -- would > that be of interest to you? What should it do in your opinion? > > --M > > On Tue, Jan 28, 2025 at 10:13 PM David <vitishlsfan21@gmail.com> wrote: > >> Hello, >> >> All my experience in UHD is in UHD4.6. I am trying out UHD 4.8 because of >> the upgrades to rfnoc_image_builder, and I tried making a test module with >> rfnoc_modtool. >> >> Running "rfnoc_modtool create test_module" completes successfully, >> however running "rfnoc_modtool add test_block" generates the following >> error: >> >> [image: image.png] >> >> The test_block.yml indeed doesn't exist, and I am wondering if the >> intention is that I add it myself, or if the creation of the file was >> accidentally omitted. >> >> I enabled debug during the module creation, and can see how it >> copies/edits files from share and renames them, but I don't see the yaml >> created and it doesn't exist in <install dir>/share/uhd/rfnoc-newmod/ >> >> Thanks, >> >> David >> _______________________________________________ >> USRP-users mailing list -- usrp-users@lists.ettus.com >> To unsubscribe send an email to usrp-users-leave@lists.ettus.com >> > _______________________________________________ > USRP-users mailing list -- usrp-users@lists.ettus.com > To unsubscribe send an email to usrp-users-leave@lists.ettus.com >