That was my initial understanding of the use of clk_domain field in the block 
YAML.

I was thrown off by the FAQ for some reason, and I got to thinking the data 
rate from the noc shell may be locked.

Thank you for taking the time to clear that up for me.

-Rylee


From: Wade Fife <wade.f...@ettus.com>
Date: Friday, July 1, 2022 at 7:56 PM
To: Mattingly, Rylee <rmattin...@ou.edu>
Cc: USRP-users@lists.ettus.com <usrp-users@lists.ettus.com>
Subject: Re: [USRP-users] rfnoc_chdr Clock on X3xx Radios
When you create an RFNoC block, the noc_shell gets created for you and you can 
specify what clock you want the data on and the NIPC. In the case of the DDC, 
the data to/from the noc_shell should be on ce_clk.

The noc_shell handles for you the conversion between ce_clk and rfnoc_chdr_clk, 
and between the requested NIPC and the CHDR bus width.

The streamer does not know the NIPC but your block can be designed to handle an 
odd number of samples per packet. TKEEP is the signal that indicates if the 
last clock cycle has an odd number of samples. It also may be possible to write 
your application so that the block only sends/receives a multiple of the NIPC, 
which can allow you to simplify the FPGA logic in some cases. But I would avoid 
that if you can.

Wade

On Fri, Jul 1, 2022, 9:48 AM Mattingly, Rylee 
<rmattin...@ou.edu<mailto:rmattin...@ou.edu>> wrote:
Hi Wade,

This makes sense to me intuitively, especially with the processing clock. I am 
mostly concerned about the ability of the data bus to actually pipe that much 
data, which would be alleviated by a NIPC = 2.

In the DDC, the data seems to come in from the NOC shell using the 
rfnoc_chdr_clk, but uses local parameters to define item_w = 32 and NIPC = 1.  
Being localparams, it is my understanding that they can’t be modified 
externally. Although the raw input signal s_rfnoc_chdr_tdata is 64 bits, the 
s_axis_data_tdata is only defined with num_ports*item_w.

So does the DDC use the num_ports parameter in place of NIPC?

Similarly the FFT block uses local parameters for NIPC but explicitly uses the 
CHDR_W to set the axis_tdata width. Again it doesn’t seem to use NIPC but 
perhaps that is just implied.

So I guess my question boils down to:
Should custom RFNoC blocks that expect to operate at 200 MS/s expect a NIPC of 
2 from the upstream blocks.
Does the streamers understand if it is expecting 2 samples per clock or 1 
sample per clock?

Rylee

From: Wade Fife <wade.f...@ettus.com<mailto:wade.f...@ettus.com>>
Date: Friday, July 1, 2022 at 9:19 AM
To: Mattingly, Rylee <rmattin...@ou.edu<mailto:rmattin...@ou.edu>>
Cc: USRP-users@lists.ettus.com<mailto:USRP-users@lists.ettus.com> 
<usrp-users@lists.ettus.com<mailto:usrp-users@lists.ettus.com>>
Subject: Re: [USRP-users] rfnoc_chdr Clock on X3xx Radios
Hi Rylee,

Some blocks do use NIPC = 1, but those blocks need to use a faster clock for 
the internal processing. For example, on X310, the DDC and DUC use a separate 
CE clock that is connected to 214.286 MHz. The radio block uses radio_clk for 
this purpose. For the parts of the logic that use the 187.5 MHz clock, we use a 
64-bit bus that holds 2 samples per cycle (NIPC = 2). The numbers vary somewhat 
between products and blocks, but that's the general idea.

Wade

On Fri, Jul 1, 2022 at 8:55 AM Mattingly, Rylee 
<rmattin...@ou.edu<mailto:rmattin...@ou.edu>> wrote:
Hello all,

I am looking at the RFNoC FAQ 
page<https://urldefense.com/v3/__https:/kb.ettus.com/RFNoC_Frequently_Asked_Questions__;!!GNU8KkXDZlD12Q!9vhvYI4lgCniKu9k5boH12kRtHf4dVelsbI2c47vAy3m0Nn4CwRMG8YOcTzk46v8Y2IThfEbqgsGjITcig$>
 and it lists the rfnoc_chdr clock as 187.5 MHz. Now this is plenty fast to 
pipe around packets and sequential headers for the 184.32 MS/s sample rate but 
how does this support the 200 MHz master clock/200MS/s sample rate?

This seems like a NIPC > 1 would be needed, but my understanding is that all 
blocks use NIPC = 1 by default.

Thank you,

Rylee Mattingly
The University of Oklahoma
Graduate Research Assistant
_______________________________________________
USRP-users mailing list -- 
usrp-users@lists.ettus.com<mailto:usrp-users@lists.ettus.com>
To unsubscribe send an email to 
usrp-users-le...@lists.ettus.com<mailto:usrp-users-le...@lists.ettus.com>
_______________________________________________
USRP-users mailing list -- usrp-users@lists.ettus.com
To unsubscribe send an email to usrp-users-le...@lists.ettus.com

Reply via email to