Hi Nick,

Maybe others will chime in but I'll share what I know. The intent was to
have a new block tool that would generate Verilog and C++ templates for a
complete block, but it wasn't completely finished for the UHD 4.0 release.
It currently generates all the HDL, but register generation and the
software template generation wasn't completed. That's why there's a
"registers" section in the YAML. I'm not familiar with the plans regarding
merging the modtool and block_tool.

As for rfnoc_chdr_clk and ce_clk, you are correct. These are analogous to
bus_clk and ce_clk in UHD 3.15 and earlier. In some cases, the clock used
for DSP needs to be faster than rfnoc_chdr_clk, so some blocks allow you to
use a different clock (ce_clk) for the internal DSP. In other blocks this
isn't necessary, often because they can keep up with the full rate of
rfnoc_chdr_clk. The name "ce_clk" in UHD 4.0 is arbitrary (you can rename
it to whatever you want for a block) but the rfnoc_chdr_clk is required by
each block.

Thanks,

Wade

On Mon, Nov 23, 2020 at 7:31 PM Nick Foster via USRP-users <
usrp-users@lists.ettus.com> wrote:

> Just had a few q's regarding RFNoC in UHD 4.0 as I migrate my applications
> to it.
>
>
>    1. In the style of a tedious conference Q&A session, this is more of a
>    comment than a question: I noticed NoCScript is dead: great! But it sure
>    would be nice if there were something which filled the role of obviating
>    the need for explicit block controllers for simple blocks.
>    2. I noticed both the "registers" sections of the YAML definitions are
>    unused in stock UHD blocks and unlooked-for in rfnoc_blocktool's
>    templating process. I also noticed a lot of <block_name>_regs.vh
>    register definition files in the RFNoC Verilog blocks included in UHD,
>    which look suspiciously like autogenerated boilerplate. Seems like
>    something which would be reasonably straightforward (I say, having not done
>    it myself) to implement in rfnoc_blocktool. What am I missing?
>    3. I'm a little unclear on the difference between the rfnoc_chdr clock
>    and ce_clk. Some block definitions just use one, some use both. I'm
>    assuming the rfnoc_chdr clock is equivalent to the old bus_clk. Is the
>    lack of a ce_clk in the block definition just to avoid having to route
>    ce_clk to logic which doesn't require it? Is ce_clk decoupled entirely
>    from radio_clk now on X310?
>    4. Is there a plan to integrate rfnoc_modtool and rfnoc_blocktool? At
>    least within the same repository? The overlapping functionality between
>    them is confusing. It would be a huge reduction in boilerplate madness if a
>    single YAML block definition could result in both Verilog blocks and
>    coordinated C++ block controllers being generated.
>
> Thanks for all the work on this: UHD 4.0 looks like a major improvement.
>
> Nick
> _______________________________________________
> 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