Erm, yes -- we managed to ship a version of rfnoc_image_builder in UHD 4.7
which doesn't render well on dark-themed terminals. Out of all the bugs in
the recent years, I rank this one pretty high on the not critical, but
annoying list. We're tracking it here:
https://github.com/EttusResearch/uhddev/pull/7239

--M

On Tue, Jun 25, 2024 at 12:39 PM Martin Braun <martin.br...@ettus.com>
wrote:

> Hi all,
>
> As you may have seen from the 4.7-RC1 release announcements, we have a
> bunch of updates to the RFNoC image builder. I would like to provide some
> context around those.
>
> First, we are not yet ready to ship a new version of RFNoC modtool. With
> the deprecation of gr-ettus as the way to ship that tool, we have a bunch
> of work ahead of us to integrate a new modtool into UHD, and we're not
> there yet.
>
> However, the image builder has had some major improvements. Many of those
> are simply usability improvements: You'll notice the logging output looks
> different, and we have tried to improve the error messages. This is, to a
> large extent, done by allowing custom checks within block descriptor YAMLs
> as well as BSP YAMLs. For example, if you leave important bus connections
> unconnected in an RFNoC image core file, then you will now get a warning,
> and must confirm that you know what you're doing if you want the image
> builder to proceed to build a bitfile.
>
> One thing you'll notice is that you now must use the image builder to
> build FPGA bitfiles, and can no longer directly build bitfiles by running
> commands like "make X410_X4_400". This may be annoying for people who like
> to build the stock images, but it makes many things simpler: Now, there is
> a single way (i.e., calling rfnoc_image_builder) that will make bitfiles.
> Besides, we no longer have to check in intermediate build artifacts (e.g.,
> the image core auto-generated Verilog) into git, which can cause conflicts
> or confusion.
> Side note: If you don't like having install all of UHD, because you just
> need the image builder, run `cmake -DENABLE_LIBUHD=OFF
> -DENABLE_PYMOD_UTILS=ON` to just install the image builder and some other
> Python-based utilities.
>
> Probably the biggest new feature is the fact that in the X4x0 series,
> transport adapters are now part of the image core. That means that you must
> choose which transports you want to use in the YAML file, instead of by
> specifying a build target.
> For example, if you wanted the 10GbE version of the X410, or the 100 GbE
> version, you would either build the X410_X4_400 or X410_CG_400 target. Now,
> there is only one target (X410) but you modify the YAML file to choose a
> single 10 GbE, quadruple 10 GbE, or 100 GbE per QSFP port (of course, you
> may also leave them unconnected). The main reason this is useful is because
> it allows you to put custom blocks or transport adapters that use the QSFP
> ports into your designs.
> Note that on other devices than X4x0 devices, the previous behaviour is
> still in place. For example, on X310, you can't define the transport
> adapters through the YAML files.
>
> There is a downside to this feature: If you use a pre-4.7 image core file
> (which does not specify transport adapters), then you would end up with a
> bitfile that can't communicate with the outside. You may have guessed it:
> We added more checks to make it hard for that to happen, the image builder
> would give you a very obvious warning in that case.
>
> Another interesting feature is the ability to add custom Verilog modules.
> These also require a YAML file to describe them, but can be used to consume
> or write to IO ports, generate custom clocks, or whatever else you want to
> do.
>
> Some other random features:
> - Better use of parameters, which can be referenced in YAML files. For
> example, you can create an IO port with variable width, and make the width
> a parameter.
> - Better inclusion/exclusion of build files based on what you need (e.g.,
> if you build a bitfile without DDC, then no DDC IP will be included)
> - Define IO signatures in any module. If you write a block with custom IO
> signatures, just include the IO signatures in the block YAML.
> - Custom paths for build, IP, and output. This means you don't have to
> write anything inside the RFNoC source tree.
> - The "build" directory stores all artifacts that get auto-generated
> during build time. For debugging, you may manually edit these files and use
> the --reuse option on rfnoc_image_builder to make sure your manual changes
> don't get overwritten.
> - Use inheritance to share info between similar image core files.
> - Separate edge files are no longer used.
>
> One item that might trigger some questions is the new "secure image core"
> feature. This is a response to a feature request to allow mixing
> proprietary and open-source blocks. Note that we are not going to use that
> as part of standard bitfiles: All blocks that get shipped with UHD will
> remain open-source and modifiable (well, as much as possible, we do use
> Vivado and AMD/Xilinx IP). There may be blocks in the future (not part of
> UHD) that make use of these secure cores.
>
>
> Going Forward
> ============
>
> These improvements to rfnoc_image_builder are a first step to making the
> whole RFNoC image building process more user-friendly and less wading
> through code examples and trial-and-error. Part of this process will also
> be a renewed modtool (and also, work on the blocktool), but that's further
> down the line.
>
> The reason we started working on things in this order is what we perceive
> as the priority in how people engage in using RFNoC: There are more people
> interested in building custom bitfiles with standard blocks (e.g., adding
> an FFT, adding a filter) than there are people writing their own blocks --
> but even those who do write their own blocks need to use the image builder.
>
> I'll leave it at that. This is a good place to ask questions about these
> updates -- I'll try and cover them!
>
> Cheers,
> Martin
>
_______________________________________________
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