Hacker News new | ask | show | jobs
by wucke13 31 days ago
Software distribution for Linux can be hard. Many distros, different conventions, no FHS is long forgotten, ...

However, Xilinx Vivado and Vitis are so obtusely distributed, making it incredibly hard to package them well.

Three random issues I remember:

1. We had a lot of trouble with Vivado projects randomly breaking. The culprit: German localization combined with automatic clock frequency derivation. Depending on which logic blocks where wired up how, you would get i.e. 99.999 MHz instead of 100 MHz. Apparently, Vivado uses a localized printf (or equivalent) to generate TCL scripts. In German localization, the decimal is a comma, which is interpreted as additional argument in the TCL scripts. 2. For simulation, scripts scripts are copied from a template folder to the user folder, and subsequently adjusted. They are copied in archive mode. If the template is read-only to the current user, so is the new copy, thus failing the subsequent adjustment. 3. If you run the installer with --help as argument, it pops up an X window displaying the help. In general, IIRC, we need to run a headless X just to run the installer in CLI/batch mode.

From a Linux distro maintainer perspective, the packaging is horrible. In particular separation of base installation, configuration, and add-ons is non-existent. Large amount of vendored dependencies, only then to depend on the most minute little packages that Ubuntu supposedly ships.

Setting up a reliable, reproducible CI/CD environment based on Vivado is a large headache.

That all goes to say: if anything, AMD/Xilinx should be paying its customers to deal with this. Unless there is a major improvement in the software distribution practices for Linux, I could not justify to my employer paying money for this experience.

On the other hand, if they commercialize on Linux support, there is soooo much that they can improve by a lot, who knows. Hope dies last and all.

1 comments

Doesn't help that just to start out you are looking at a 110+ GB size for their tools, which as far as anyone can tell, isn't really justified by anything.
That's because in the EDA space, they have horrible software practices. Take the worst you can imagine and then go worse from there. So eventually, when things "appear to work" they end up taking a snapshot of a messy directory and calling that the deliverable asset.
No, it's just all of the device models. Even the OSS tools take up almost 20 GB of space once you get all of the suppported device models which is not many compared to what Vivado supports.
Why not both? Look at the installables from Cadence, they are full of redundant garbage, broken rpaths, etc. Tools that don't even need to support devices have 5-8GB compressed installables with 12-20GB of on disk space being taken up.

Horribly broken installers and a mess of environment variables needed to get the software to even run.