[USRP-users] How to insert VHDL processing module to RFNoC block?

2021-01-20 Thread Đình Tuấn Hoàng via USRP-users
Hi community,

I have some problems when trying to add VHDL processing module to RFNoC
block.
After inserted my VHDL module by the way described in addsub library
module, I tried to run "*make rfnoc_block_Demodulation1_tb*" command and
the output looks like the image below.

[image: image.png]

Do I need to change the makefile and makefile.srcs to make it works?
I have built my processing module on Vivado with VHDL language, testbench
passed in Vivado. All VHDL modules and sub-modules have been copied to
rfnoc_block_* directory.
Besides that, I'm not clear on the testbench of RFNoC, does the code
generated by RFNoC Mod Tool have everything for testbench? Because I'm just
familiar with VHDL so it is quite hard for me to write testbench in Verilog.
The attached file is my RFNoC block after added VHDL module, please take a
look.

Thank you so much!

Best regards,
Tuan
//
// Copyright 2021 <+YOU OR YOUR COMPANY+>.
// 
// This is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 3, or (at your option)
// any later version.
// 
// This software is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
// 
// You should have received a copy of the GNU General Public License
// along with this software; see the file COPYING.  If not, write to
// the Free Software Foundation, Inc., 51 Franklin Street,
// Boston, MA 02110-1301, USA.
//

//
// Module: rfnoc_block_Demodulation1
//
// Description:
//
//   This is a skeleton file for a RFNoC block. It passes incoming samples
//   to the output without any modification. A read/write user register is
//   instantiated, but left unused.
//
// Parameters:
//
//   THIS_PORTID : Control crossbar port to which this block is connected
//   CHDR_W  : AXIS-CHDR data bus width
//   MTU : Maximum transmission unit (i.e., maximum packet size in
// CHDR words is 2**MTU).
//

`default_nettype none


module rfnoc_block_Demodulation1 #(
  parameter [9:0] THIS_PORTID = 10'd0,
  parameter   CHDR_W  = 64,
  parameter [5:0] MTU = 10
)(
  // RFNoC Framework Clocks and Resets
  input  wire   rfnoc_chdr_clk,
  input  wire   rfnoc_ctrl_clk,
  input  wire   ce_clk,
  // RFNoC Backend Interface
  input  wire [511:0]   rfnoc_core_config,
  output wire [511:0]   rfnoc_core_status,
  // AXIS-CHDR Input Ports (from framework)
  input  wire [(1)*CHDR_W-1:0]  s_rfnoc_chdr_tdata,
  input  wire [(1)-1:0] s_rfnoc_chdr_tlast,
  input  wire [(1)-1:0] s_rfnoc_chdr_tvalid,
  output wire [(1)-1:0] s_rfnoc_chdr_tready,
  // AXIS-CHDR Output Ports (to framework)
  output wire [(1)*CHDR_W-1:0]  m_rfnoc_chdr_tdata,
  output wire [(1)-1:0] m_rfnoc_chdr_tlast,
  output wire [(1)-1:0] m_rfnoc_chdr_tvalid,
  input  wire [(1)-1:0] m_rfnoc_chdr_tready,
  // AXIS-Ctrl Input Port (from framework)
  input  wire [31:0]s_rfnoc_ctrl_tdata,
  input  wire   s_rfnoc_ctrl_tlast,
  input  wire   s_rfnoc_ctrl_tvalid,
  output wire   s_rfnoc_ctrl_tready,
  // AXIS-Ctrl Output Port (to framework)
  output wire [31:0]m_rfnoc_ctrl_tdata,
  output wire   m_rfnoc_ctrl_tlast,
  output wire   m_rfnoc_ctrl_tvalid,
  input  wire   m_rfnoc_ctrl_tready
);

  //---
  // Signal Declarations
  //---

  // Clocks and Resets
  wire   ctrlport_clk;
  wire   ctrlport_rst;
  wire   axis_data_clk;
  wire   axis_data_rst;
  // CtrlPort Master
  wire   m_ctrlport_req_wr;
  wire   m_ctrlport_req_rd;
  wire [19:0]m_ctrlport_req_addr;
  wire [31:0]m_ctrlport_req_data;
  regm_ctrlport_resp_ack;
  reg  [31:0]m_ctrlport_resp_data;
  // Payload Stream to User Logic: in
  wire [32*1-1:0]m_in_payload_tdata;
  wire [1-1:0]   m_in_payload_tkeep;
  wire   m_in_payload_tlast;
  wire   m_in_payload_tvalid;
  wire   m_in_payload_tready;
  // Context Stream to User Logic: in
  wire [CHDR_W-1:0]  m_in_context_tdata;
  wire [3:0] m_in_context_tuser;
  wire   m_in_context_tlast;
  wire   m_in_context_tvalid;
  wire   m_in_context_tready;
  // Payload Stream from User Logic: out
  wire [32*1-1:0]s_out_payload_tdata;
  wire [0:0] s_out_payload_tkeep;
  wire   s_out_payload_tlast;
  wire   s_out_payload_tvalid;
  wire  

[USRP-users] Generate blocks with more than 1 input/output using rfnocmodtool

2021-01-20 Thread Maria Muñoz via USRP-users
Hi all,

Is it possible to automatically create an rfnoc_block schema with, for
example, 2 inputs and 2 outputs payload stream packets as in the addsub
blockdata using rfnocmodtool?
I can generate it using rfnoc_create_verilog.py through a block.yml file
following the steps in :
https://kb.ettus.com/Getting_Started_with_RFNoC_in_UHD_4.0#Generating_Your_Block_Using_the_ModTool
But I don't know the steps to do that using rfnocmodtool, it always
generates a 1 input, 1 output block with axis_pyload_ctxt interface even
though the block.yml generated in block folder has axis_data interface:








*schema: rfnoc_modtool_argsmodule_name: multinoutversion: 1.0rfnoc_version:
1.0chdr_width: 64noc_id: 0x4321makefile_srcs:
"/home/usr/rfnoc/src/gr-ettus/rfnoc-prueba/rfnoc/fpga/rfnoc_block_multinout/Makefile.srcs"*






































*clocks:  - name: rfnoc_chdrfreq: "[]"  - name: rfnoc_ctrlfreq:
"[]"  - name: cefreq: "[]"control:  sw_iface: nocscript  fpga_iface:
ctrlport  interface_direction: slave  fifo_depth: 32  clk_domain: ce
ctrlport:byte_mode: Falsetimed: Falsehas_status: Falsedata:
fpga_iface: axis_data  clk_domain: ce  inputs:in:  item_width: 32
nipc: 1  info_fifo_depth: 32  payload_fifo_depth: 32
format: int32  mdata_sig: ~  outputs:out:  item_width: 32
nipc: 1  info_fifo_depth: 32  payload_fifo_depth: 32  format:
int32*
*  mdata_sig: ~*

Can I modify this file and somehow reload the files generated in the first
attempt or is there other way to do what I want?

Kind Regards,

Maria
___
USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com


[USRP-users] Building FPGA for E320.

2021-01-20 Thread Mark D via USRP-users
Hi,

I'm trying to build an FPGA for the E320. I'm new to Ettus products and RFNoC 
so this is my attempt.

I'm working with UHD 4.0.0.0 and have been following the tutorial from the 2020 
GNU radio conference, RFNoC 4 Workshop.

I've used rfmodtool to create a new OOT folder structure. I've then used 
"rfmodtool add" to add my own IP block. This creates a default .yml file for 
the for the X210 in the icores folder.

Next I've copied the file e320_rfnoc_image_core.yml from the uhd source 
directory into the icores of folder of my OOT structure, and renamed 
"demod_e320_rfnoc_image_core.yml" to match the name of new block. I just wanted 
at this stage to see if I could build the default image, so I haven't changed 
anything in this .yml file. It seems that I needed to add the IP core to the 
OTT to get cmake to pick up any build targets. At this stage I just wanted to 
check that I'd got everything correctly installed and setup on my machine to 
build the E320 FPGA.

I've then created a build folder and ran cmake, sudo make install and then make 
demod_e320_rfnoc_image_core to build the bitstream. This ran for some time and 
looked promising. However it eventually failed with the fatal error:
"Fatal Python Error : could not acquire lock for <_io.BufferedWriter name 
=''> at interpreter shutdown, possibly due to daemon threads
Python runtime state: finalizing (tstate=0x270bed0)"

I did notice scrolling back through the terminal log a number of critical 
warnings connected with the SPI. "SPI frequency 166.72 (MHz) should be 
greater than CPU_1x frequency 166.72 (MHz)". I don't expect that this is 
connected with the issue I've seen, and may well be normal.

Any help on getting an E320 build going would be greatly appreciated,

Mark

This email and any files transmitted with it are confidential and intended 
solely for the use of the individual or entity to whom they are addressed. If 
you have received this email in error please notify the system manager.
___
USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com


[USRP-users] RFNoC/GNURadio with USRP-2974

2021-01-20 Thread Dominic Schaub via USRP-users

Hi,

We just received a USRP-2974 and would like to start working with 
RFNoC/GNURadio (rather than LabView).  I was hoping that somebody could 
direct me to a reference for configuring this SDR for RFNoC/GNURadio. 
There's a lot of material that covers non-embedded USRPs, but my 
understanding is that there are some additional configuration steps 
required for this model.


Any help would be greatly appreciated.

Dominic


___
USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com


Re: [USRP-users] No streaming using OOT RFNoC Block in UHD4

2021-01-20 Thread Rob Kossler via USRP-users
Hi Cédric,
I don't see anything wrong.  Given that you said the FFT block works but
your block doesn't, could it be something related to a c++ block
controller?

Attached is a program I use to test an individual block with the graph
"host => block => host".  It might help to see if this works.  This
application does not require forwarding of the issue_stream_cmd as is
necessary when your block is used as part of the Rx chain to the radio.
Attached you will find the CPP source and below you will find a command
line that works for me with the Ettus Switchboard block which is just a
"thru" connection.
Rob

rfnoc_block_test --args=addr=192.168.61.2 --block-id Switchboard#0
--nsamps=2048 --tx-stream-args "spp=256" --rx-stream-args "spp=256"

On Tue, Jan 19, 2021 at 12:43 PM Cédric Hannotier via USRP-users <
usrp-users@lists.ettus.com> wrote:

> Dear all,
>
> I am trying to implement simple RFNoC block in my FPGA image (X310),
> and test it using UHD C++ API.
>
> However, none of my blocks worked when inserted between the DDC and
> rx_stream.
> Both rfnoc-example/gain block (from upstream host/example)
> and bare bones block from rfnocmodtool (passthrough) failed.
>
> The procedure is as follow:
>  1. cd path/of/OOT_Block (gain or passthrough)
>  2. cmake -S . -B build -DUHD_FPGA_DIR=/path/to/uhd/fpga (upstream UHD4)
>  3. cd build; make; make x310_rfnoc_image_core
>  4. viv_jtag_program
> /path/to/uhd/fpga/usrp3/top/x300/build/usrp_x310_fpga_HG.bit (or
> uhd_image_loader + restart USRP).
>  5. cd /path/to/uhd/example/code
>  6. g++ -g -o test rfnoc_rx_to_file.cpp -lboost_program_options -luhd
>  7. ./test --block-id "0/Block#0" --rate 20e6
>
> But it exits with timeout:
>
> """
> Creating the RFNoC graph with args: ...
> [INFO] [UHD] linux; GNU C++ version 10.2.1 20201224; Boost_107400;
> UHD_4.0.0.0-4
> [INFO] [X300] X300 initialization sequence...
> [INFO] [X300] Maximum frame size: 1472 bytes.
> [INFO] [X300] Radio 1x clock: 200 MHz
> [WARNING] [RFNOC::BLOCK_FACTORY] Could not find block with Noc-ID 0x4577,
> 0x
> Using radio 0, channel 0
> Looking for source block 0/Radio#0, port 0
> Setting RX Rate: 20.00 Msps...
> DDC block found
> Setting decimation value to 10
> Actual decimation value is 10
> Actual RX Rate: 20.00 Msps...
>
> Setting RX Freq: 0.00 MHz...
> Actual RX Freq: 10.00 MHz...
>
> Setting samples per packet to: 64
> Actual samples per packet = 64
> Using streamer args:
> Press Ctrl + C to stop streaming...
> Issuing stream cmd
> Timeout while streaming
> Issuing stop stream cmd
>
> Done!
> """
>
> It runs OK using "./test --rate 20e6" (without inserting
> any OOT block between DDC and rx_stream).
> It also works using an upstream provided block (eg FFT).
>
> The rfnoc_rx_to_file.cpp is slightly modified from upstream
> (since upstream does not handle argument "block-id").
> The patch is at the end of this mail.
> It should apply nicely by piping this mail to patch or git am/apply.
>
> Does anyone know how to solve this?
>
> diff --git a/host/examples/rfnoc_rx_to_file.cpp
> b/host/examples/rfnoc_rx_to_file.cpp
> index 2d648c10d..64d177d79 100644
> --- a/host/examples/rfnoc_rx_to_file.cpp
> +++ b/host/examples/rfnoc_rx_to_file.cpp
> @@ -479,13 +479,22 @@ int UHD_SAFE_MAIN(int argc, char* argv[])
>  //}
>
>  // Connect blocks and commit the graph
> -for (auto& edge : chain) {
> -if
> (uhd::rfnoc::block_id_t(edge.dst_blockid).match(uhd::rfnoc::NODE_ID_SEP)) {
> -graph->connect(edge.src_blockid, edge.src_port, rx_stream, 0);
> -} else {
> -graph->connect(
> -edge.src_blockid, edge.src_port, edge.dst_blockid,
> edge.dst_port);
> -}
> +//for (auto& edge : chain) {
> +//if
> (uhd::rfnoc::block_id_t(edge.dst_blockid).match(uhd::rfnoc::NODE_ID_SEP)) {
> +//graph->connect(edge.src_blockid, edge.src_port, rx_stream,
> 0);
> +//} else {
> +//graph->connect(
> +//edge.src_blockid, edge.src_port, edge.dst_blockid,
> edge.dst_port);
> +//}
> +//}
> +auto ddc_ctrl_id = ddc_ctrl->get_block_id();
> +graph->connect(radio_ctrl_id, 0, ddc_ctrl_id, 0);
> +if (!block_id.empty()) {
> +   graph->connect(ddc_ctrl_id, 0, block_id, 0);
> +   graph->connect(block_id, 0, rx_stream, 0);
> +}
> +else {
> +   graph->connect(ddc_ctrl_id, 0, rx_stream, 0);
>  }
>  graph->commit();
>
>
> --
>
> Cédric Hannotier
>
> ___
> USRP-users mailing list
> USRP-users@lists.ettus.com
> http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
>

#include 
#include 
#include 
#include 

#include 
#include 
#include 
//#include 

#include 

#include 
#include 
#include 

namespace po = boost::program_options;


int UHD_SAFE_MAIN(int argc, char *argv[]){
	//variables to be set by po
	std::string args, block_id, block_args, rx_args, tx_args;
	size_t nsamps, block_port;
	
	//set

Re: [USRP-users] No streaming using OOT RFNoC Block in UHD4

2021-01-20 Thread Rob Kossler via USRP-users
By the way, I have created a block controller for every UHD4 RFNOC block
that I have created and I simply compile them in-tree since I don't know
how to make this work OOT.  This has the nice advantage that uhd_usrp_probe
can then know about my blocks.

Rob

On Wed, Jan 20, 2021 at 4:46 PM Rob Kossler  wrote:

> Hi Cédric,
> I don't see anything wrong.  Given that you said the FFT block works but
> your block doesn't, could it be something related to a c++ block
> controller?
>
> Attached is a program I use to test an individual block with the graph
> "host => block => host".  It might help to see if this works.  This
> application does not require forwarding of the issue_stream_cmd as is
> necessary when your block is used as part of the Rx chain to the radio.
> Attached you will find the CPP source and below you will find a command
> line that works for me with the Ettus Switchboard block which is just a
> "thru" connection.
> Rob
>
> rfnoc_block_test --args=addr=192.168.61.2 --block-id Switchboard#0
> --nsamps=2048 --tx-stream-args "spp=256" --rx-stream-args "spp=256"
>
> On Tue, Jan 19, 2021 at 12:43 PM Cédric Hannotier via USRP-users <
> usrp-users@lists.ettus.com> wrote:
>
>> Dear all,
>>
>> I am trying to implement simple RFNoC block in my FPGA image (X310),
>> and test it using UHD C++ API.
>>
>> However, none of my blocks worked when inserted between the DDC and
>> rx_stream.
>> Both rfnoc-example/gain block (from upstream host/example)
>> and bare bones block from rfnocmodtool (passthrough) failed.
>>
>> The procedure is as follow:
>>  1. cd path/of/OOT_Block (gain or passthrough)
>>  2. cmake -S . -B build -DUHD_FPGA_DIR=/path/to/uhd/fpga (upstream UHD4)
>>  3. cd build; make; make x310_rfnoc_image_core
>>  4. viv_jtag_program
>> /path/to/uhd/fpga/usrp3/top/x300/build/usrp_x310_fpga_HG.bit (or
>> uhd_image_loader + restart USRP).
>>  5. cd /path/to/uhd/example/code
>>  6. g++ -g -o test rfnoc_rx_to_file.cpp -lboost_program_options -luhd
>>  7. ./test --block-id "0/Block#0" --rate 20e6
>>
>> But it exits with timeout:
>>
>> """
>> Creating the RFNoC graph with args: ...
>> [INFO] [UHD] linux; GNU C++ version 10.2.1 20201224; Boost_107400;
>> UHD_4.0.0.0-4
>> [INFO] [X300] X300 initialization sequence...
>> [INFO] [X300] Maximum frame size: 1472 bytes.
>> [INFO] [X300] Radio 1x clock: 200 MHz
>> [WARNING] [RFNOC::BLOCK_FACTORY] Could not find block with Noc-ID 0x4577,
>> 0x
>> Using radio 0, channel 0
>> Looking for source block 0/Radio#0, port 0
>> Setting RX Rate: 20.00 Msps...
>> DDC block found
>> Setting decimation value to 10
>> Actual decimation value is 10
>> Actual RX Rate: 20.00 Msps...
>>
>> Setting RX Freq: 0.00 MHz...
>> Actual RX Freq: 10.00 MHz...
>>
>> Setting samples per packet to: 64
>> Actual samples per packet = 64
>> Using streamer args:
>> Press Ctrl + C to stop streaming...
>> Issuing stream cmd
>> Timeout while streaming
>> Issuing stop stream cmd
>>
>> Done!
>> """
>>
>> It runs OK using "./test --rate 20e6" (without inserting
>> any OOT block between DDC and rx_stream).
>> It also works using an upstream provided block (eg FFT).
>>
>> The rfnoc_rx_to_file.cpp is slightly modified from upstream
>> (since upstream does not handle argument "block-id").
>> The patch is at the end of this mail.
>> It should apply nicely by piping this mail to patch or git am/apply.
>>
>> Does anyone know how to solve this?
>>
>> diff --git a/host/examples/rfnoc_rx_to_file.cpp
>> b/host/examples/rfnoc_rx_to_file.cpp
>> index 2d648c10d..64d177d79 100644
>> --- a/host/examples/rfnoc_rx_to_file.cpp
>> +++ b/host/examples/rfnoc_rx_to_file.cpp
>> @@ -479,13 +479,22 @@ int UHD_SAFE_MAIN(int argc, char* argv[])
>>  //}
>>
>>  // Connect blocks and commit the graph
>> -for (auto& edge : chain) {
>> -if
>> (uhd::rfnoc::block_id_t(edge.dst_blockid).match(uhd::rfnoc::NODE_ID_SEP)) {
>> -graph->connect(edge.src_blockid, edge.src_port, rx_stream,
>> 0);
>> -} else {
>> -graph->connect(
>> -edge.src_blockid, edge.src_port, edge.dst_blockid,
>> edge.dst_port);
>> -}
>> +//for (auto& edge : chain) {
>> +//if
>> (uhd::rfnoc::block_id_t(edge.dst_blockid).match(uhd::rfnoc::NODE_ID_SEP)) {
>> +//graph->connect(edge.src_blockid, edge.src_port, rx_stream,
>> 0);
>> +//} else {
>> +//graph->connect(
>> +//edge.src_blockid, edge.src_port, edge.dst_blockid,
>> edge.dst_port);
>> +//}
>> +//}
>> +auto ddc_ctrl_id = ddc_ctrl->get_block_id();
>> +graph->connect(radio_ctrl_id, 0, ddc_ctrl_id, 0);
>> +if (!block_id.empty()) {
>> +   graph->connect(ddc_ctrl_id, 0, block_id, 0);
>> +   graph->connect(block_id, 0, rx_stream, 0);
>> +}
>> +else {
>> +   graph->connect(ddc_ctrl_id, 0, rx_stream, 0);
>>  }
>>  graph->commit();
>>
>>
>> --
>>
>> Cédric Hannotier
>>
>> ___

[USRP-users] Overflow / Underflow Questions

2021-01-20 Thread Spam Blocker via USRP-users
We have an application that requires about 640Mbps of transmit and 640Mbps
of receive samples bandwidth.   We have a high performance Dell laptop
hooked to a B205.

Questions:
1. Do the different versions of UHD support different throughput rates?
2. Are there maximum sample rates for the B205 that would restrict the
throughput reaching the numbers we need.
3. Is there a receive and transmit throughput test that I can use to see
what the maximum is for our platform?

Thanks
K-
___
USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com


Re: [USRP-users] Overflow / Underflow Questions

2021-01-20 Thread Marcus D. Leech via USRP-users

On 01/20/2021 05:34 PM, Spam Blocker via USRP-users wrote:


We have an application that requires about 640Mbps of transmit and 
640Mbps of receive samples bandwidth.   We have a high performance 
Dell laptop hooked to a B205.


Questions:
1. Do the different versions of UHD support different throughput rates?
For the B2xx series, the different UHD versions will show only very 
minor difference in maximum achievable sample rates.
2. Are there maximum sample rates for the B205 that would restrict the 
throughput reaching the numbers we need.
The maximum sample rate of the B2xx is 56Msps in each direction, which 
means roughly 56MHz of bandwidth into and out of your
  application.  How that translates into *mbits* of data depends very 
very very much on your particular application, coding efficiency,
  modulation efficiency, channel characteristics, Eb/No, etc. That's up 
to you and your particular application, and whatever your

  compute platform can deliver.

The USRP SDRs don't inherently *know* anything about what you're doing 
*within* the bandwidth they dutifully transport back and forth.
  Higher order modulations and coding schemes take more compute power, 
so that's almost always your limiting factor.



3. Is there a receive and transmit throughput test that I can use to 
see what the maximum is for our platform?


Thanks
K-


There is the "benchmark_rate" test application that is usually located in:

/uhd/examples

This will give you an idea of what your computer can move back-and-forth 
between itself and the USRP, absent any additional load from

  doing anything "real" with those samples.

I would spend some time here:

https://kb.ettus.com/Knowledge_Base


___
USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com


Re: [USRP-users] Generate blocks with more than 1 input/output using rfnocmodtool

2021-01-20 Thread Jonathon Pendlum via USRP-users
HI Maria,

Rfnocmodtool does not support multiple inputs / outputs. You'll need to
edit the generated yaml file and use it with the utility
rfnoc_create_verilog to generate the block and noc shell. See
https://kb.ettus.com/RFNoC_4_Migration_Guide#Generating_a_Custom_Noc_Shell.
To edit the yaml file, you can refer to the RFNoC specification (
https://files.ettus.com/app_notes/RFNoC_Specification.pdf) or look at an
existing RFNoC block's yaml file that supports multiple ports such as the
FIR filter block (uhd/host/include/uhd/rfnoc/blocks/fir_filter.yml).

Also, as you've noticed, the generated yaml file has the wrong interface,
"fpga_iface: axis_data" should be "fpga_iface: axis_pyld_ctxt". That is a
known issue that is in the pipeline to be fixed.

Jonathon

On Wed, Jan 20, 2021 at 8:18 AM Maria Muñoz via USRP-users <
usrp-users@lists.ettus.com> wrote:

> Hi all,
>
> Is it possible to automatically create an rfnoc_block schema with, for
> example, 2 inputs and 2 outputs payload stream packets as in the addsub
> blockdata using rfnocmodtool?
> I can generate it using rfnoc_create_verilog.py through a block.yml file
> following the steps in :
> https://kb.ettus.com/Getting_Started_with_RFNoC_in_UHD_4.0#Generating_Your_Block_Using_the_ModTool
> But I don't know the steps to do that using rfnocmodtool, it always
> generates a 1 input, 1 output block with axis_pyload_ctxt interface even
> though the block.yml generated in block folder has axis_data interface:
>
>
>
>
>
>
>
>
> *schema: rfnoc_modtool_argsmodule_name: multinoutversion:
> 1.0rfnoc_version: 1.0chdr_width: 64noc_id: 0x4321makefile_srcs:
> "/home/usr/rfnoc/src/gr-ettus/rfnoc-prueba/rfnoc/fpga/rfnoc_block_multinout/Makefile.srcs"*
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> *clocks:  - name: rfnoc_chdrfreq: "[]"  - name: rfnoc_ctrlfreq:
> "[]"  - name: cefreq: "[]"control:  sw_iface: nocscript  fpga_iface:
> ctrlport  interface_direction: slave  fifo_depth: 32  clk_domain: ce
> ctrlport:byte_mode: Falsetimed: Falsehas_status: Falsedata:
> fpga_iface: axis_data  clk_domain: ce  inputs:in:  item_width: 32
> nipc: 1  info_fifo_depth: 32  payload_fifo_depth: 32
> format: int32  mdata_sig: ~  outputs:out:  item_width: 32
> nipc: 1  info_fifo_depth: 32  payload_fifo_depth: 32  format:
> int32*
> *  mdata_sig: ~*
>
> Can I modify this file and somehow reload the files generated in the first
> attempt or is there other way to do what I want?
>
> Kind Regards,
>
> Maria
> ___
> 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