Hi Yunxi,

1. As of UHD 4.8, the rfnoc_image_builder resolves the path relative to the 
path of the image core .yml files. This means you have to create a copy of the 
x410_radio_base.yml and x4xx_x4_base.yml files and place them at 
\~/rfnoc-mymodule/icores/yaml_include/.

2. Absolute paths are not supported/recommended. Please use relative paths.

3. We are currently working on providing better documentation for generating 
custom RFNoC IP. As a starting point we did the following:

   * We created the https://github.com/EttusResearch/rfnoc-oot-blocks 
repository to give an example of an out-of-tree module.

   * We improved the rfnoc_modtool. It now offers an interactive mode for 
generating rfnoc blocks:\
     $ rfnoc_modtool create mymodule

     ✅   Created new module template at location /home/user/rfnoc-mymodule...

     ✅   Renamed symbols to match module name ('mymodule'). Module creation 
complete.

     $ cd rfnoc-mymodule/

     $ rfnoc_modtool add myblock01

     Block descriptor file None does not exist. Would you like to run the YAML 
creation wizard? (y/n) y

     Choose NoC-ID (e.g., 0x1234ABCD): 0x1234

     Provide comma-separated list of additional clocks (e.g., 'ce', leave blank 
for none):

     Specify control FIFO depth: \[32\]

     Specify clock domain for control interface (leave blank for default): 
\[rfnoc_chdr\]

     Specify data interface type (axis_chdr, axis_pyld_ctxt, axis_data, none): 
\[axis_data\]

     Specify clock domain for data interface (leave blank for default): 
\[rfnoc_chdr\]

     Specify number of input ports: \[1\]

     Specify number of output ports: \[1\]

     Specify input data type: \[sc16\]

     Specify output data type: \[sc16\]

     ✅   Generated rfnoc/blocks/myblock01.yml. Open the file and make any 
necessary changes before proceeding!

     ⚠    Skipping block generation -- re-run 'rfnoc_modtool add' after editing 
the block descriptor file.

     $ rfnoc_modtool add myblock01

     ✅   Using block descriptor file: rfnoc/blocks/myblock01.yml

     ⚙️   Parsing block descriptor file rfnoc/blocks/myblock01.yml...

     ✅   Parsed block descriptor file rfnoc/blocks/myblock01.yml.

     ✅   Added gateware templates to fpga/mymodule/rfnoc_block_myblock01.

     ✅   Added testbench templates.

     ✅   Added C++ block controller templates.

     ✅   Added Python binding templates.

     ✅   Done: Added block myblock01 to module mymodule.

   * We improved the rfnoc_image_builder: it now performs additional checks on 
the RFNoC image core .yml file. E.g. if there are invalid connections, it will 
generate appropriate errors. Also running rfnoc_image_builder with debug 
logging might be helpful in case you see issues: rfnoc_image_builder -l debug 
(…)

Kind regards,\
Jörg
_______________________________________________
USRP-users mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to