Our adventures with the PolarFire SoC Icicle Kit, Microchip’s low-cost low-power highly-featured development board for those interested in RISC-V processors and field-programmable gate arrays (FPGAs), continue with a look at the development environment — and how Microchip is working to make what is currently heavily focused on big business more accessible to individual hackers, makers, and tinkerers.
During our initial testing of the PolarFire SoC Icicle board, we opted to use FlashPro Express — installed as part of the “Program/Debug” utility bundle. It’s relatively compact, taking up significantly less hard drive space than the full-fat and broad-feature Libero SoC integrated development environment (IDE), and crucially doesn’t require a license file nor any registration with Microchip to download. It’s also noticeably more limited: Its primary purpose is to load pre-defined project files and flash them onto an FPGA, with little functionality given over to editing the files first or creating new ones from scratch. At that task, though, it excels — even offering support for connecting multiple devices to flash multiple FPGAs at once, if you’re looking to take your design through to small-scale batch production.
FlashExpress is relatively easy to install, but not much use for writing your own gateware. (📷: Gareth Halfacree)
Installation of FlashPro Express offered a glimpse of how Microchip packages its software: Functionally, but using an approach that leaves a lot up to the user. Libero SoC installers are provided for Microsoft Windows and Linux, the latter supporting Red Hat Enterprise Linux 7.2-7.6 and 8.2, CentOS 7.2-7.6 and 8.2, openSUSE Leap 42.3, and Ubuntu 18.04. That compatibility is spelled out on Page 21 of a 28-page PDF, rather than on the download page — which may explain why we first tried, and failed, to install the software in Ubuntu 20.04 instead.
With Ubuntu 18.04 being four years old, and entering the last year of its mainline support lifespan, and Ubuntu 20.04 being — until this April, when Ubuntu 22.04 comes out — the current Long Term Support (LTS) version, that failure comes as a surprise. Thankfully, it one of the things Microchip is actively looking to address: Ubuntu support was only added in the most recent Libero SoC versions, and is being actively improved with Ubuntu 20.04 support — and beyond — planned for future releases.
The prior focus on Red Hat, CentOS, and SuSE reveals Microchip’s core focus: Big businesses, with well-staffed IT departments and a predilection for well-proven technology. That core focus carries through into how Libero SoC is provided to users, too: While the base version is downloadable free of charge, all users need to register for a “Silver” license — no credit card required, but you will need to renew it annually.
The licensing process is a little opaque, but improvements on on the way. (📷: Gareth Halfacree)
The first step: Registering on the Microchip website, and providing a range of personally identifiable information alongside a password between 8-15 characters with at least one number but no symbols. Once you’re registered, you can request a license — and run through a list of possible product types, four of which apply to the Libero SoC software.
If you’re installing the software on Windows, you can ask for a “Libero Silver 1 Yr DiskID NL License” tied to your machine’s hard drive. Linux users, though, have to request a “Libero Silver 1Yr Floating License for Windows/Linux Server,” which is tied to the MAC address of your network card — an odd choice of identifiers for a license, as it’s something changeable on-demand with a single command. For users with more than one card — laptop users, for instance, who switch between wired and wireless connections depending on location — Microchip offers no solution bar making sure that your “active” network connection remains the same each time you want to work in Libero SoC.
To use the license, once generated and downloaded from the website you’ll need a license server. This isn’t installed as part of Libero SoC proper so you’ll need to head back to Microchip’s website to find a second, separate download.
The licensing server is a one-time install, but for now you’ll have to handle it manually. (📷: Gareth Halfacree)
Installation isn’t too complex, but is a definite multi-stage process: Extract the archive to a directory of your choice, add in the license file from earlier, and do a little manual editing: You’ll need to add your machine’s hostname and the license server directory. Once you’re done, execute the daemon — making it run on boot is optional, but could prove handy if you’re going to be using Libero SoC often — and set up an environment variable so Libero SoC can find the server to authenticate its license.
The only really tricky part is exclusive to Linux users: Any attempt to execute the license server software on a system without the Linux Standard Base (
lsb) package installed — which is, ironically enough, not included as standard in many distributions — will fail with a cryptic “command not found” error. Install
lsb, though, and all is well.
While you only have to do it once — aside from refreshing the license file once a year — it’s a process which could be smoother. In Microchip’s defense, it’s hardly alone: The exact same license server software is used by at least two of its biggest rivals, though one at least automates the installation process. It’s also something the company is actively looking to improve: A spokesperson tells us that “several improvements” to the installer are in the works, including making the licensing process more automated, and that even requesting licenses via the website will be made more streamline in coming updates.
The installation wizard skips a fair few steps, leaving finalization of the process to the user. (📷: Gareth Halfacree)
The license server is small, but Libero SoC is anything but — the cost of a feature-packed IDE. The software itself requires 30GB even before you’ve loaded any projects, and Microchip recommends an additional 35GB of temporary space — not counting the 10GB installation file itself, with Windows users having the option to use a “web installer,” which downloads the files during installation to save on temporary storage space.
There’s considerable room for improvement in the installer. In its current release, there’s no attempt made to check if your operating system is compatible — a step that would have saved time as we unwittingly attempted to force it onto the unsupported Ubuntu 20.04. While it does check for the presence of prerequisite packages, it does so at the end of installation — and using an overly-complicated script, which can take 10 minutes or more to do what a package manager one-liner could do in seconds.
If you find that your particular distribution can’t fulfill a prerequisite requirement — it was a missing prerequisite that did for our Ubuntu 20.04 installation attempts — you can cancel the installer, but only after it’s copied its tens of gigabytes of files onto your drive. Cancelling won’t remove them, either, leaving the user stick manually finding the software and deleting it by hand.
Prerequisites are only checked at the end of installation, and need to be installed manually at the terminal. (📷: Gareth Halfacree)
During this part of our journey, we spoke to Microchip at length on all these issues — and got the impression that the company is genuine in its desire to improve matters, though somewhat slowed by its need to keep its big-business customers who, by and large, can be resistant to change, on-side. Future releases of the installer are likely to address many of the points above, including — but not limited to — checking OS compatibility prior to beginning the installation process, improving the documentation, automating as much of the currently-manual parts of the process as possible, and making sure the installer can clean up after itself should the process be cancelled.
We suggested that a better approach than a graphical installation wizard would be to offer, either instead of or alongside the current software package, variants packaged for particular distributions’ package managers — RPMs or DEBs, for example. While admitting it wasn’t something the company had considered in the past, a spokesperson told us that it will “look and see” if it could be offered — a move which would neatly handle checking for compatibility, finding and installing prerequisites, installation, configuration, and eventual uninstallation.
It would also allow for automatic updates, something the manual installer can’t currently offer. While Libero SoC isn’t updated as frequently as something like a web browser, it is under constant development — and while many developers may like to stick with one set version until they’ve had time to test for breaking changes in the next, others could benefit from automated updates to bring new features and additional hardware compatibility to bear as soon as they’re released.
Microchip is listening to feedback, and has pledged to make improvements in the accessibility of its software. (📷: Gareth Halfacree)
Microchip as a whole — a company spun out of General Instrument in 1987 and granted independence in 1989 and which boasts 19,500 global staff and $5.44 billion in revenue as of 2021 — is designed around the needs of big business, but that doesn’t mean it’s ignoring the needs of the individual.
The very existence of the PolarFire SoC Icicle Kit is proof of that: A readily-available, affordable, all-in-one development kit, which offers processor cores built around the free and open-source RISC-V architecture alongside a low-power yet high-performance field-programmable gate array (FPGA), running open-source software the company develops in-the-open on GitHub.
The part of Microchip responsible for the Icicle Kit is, one could argue, a very different animal to the more established business groups — and while the experience for individual makers is undeniably cumbersome as a result of the baggage it’s carrying, one thing that came across clearly in our discussions: It’s eager to improve, and unafraid to smash a few established norms to do so.
“Our goal in bringing out FPGA SoCs was to be able to take advantage of an impending revolution in the compute segment using an open ISA,” Microchip’s Shakeel Peera explains. “It allowed us to innovate around power efficiency and cybersecurity using a democratized development process that would challenge the established order of FPGA SoC offerings currently available.
The PolarFire SoC is a bold new product for the long-established Microchip, and the winds of change are blowing. (📷: Gareth Halfacree)
“We took a stand in smashing the established business processes in favor of democratization. This is not because of nobility, but we believed that our business could operate in a new way and monetize ideas without being held back to a closed ISA.”
Join us next month when, with the Libero SoC software now installed and licensed on a properly-supported operating system, we take a tour of the software and find out what materials Microchip has available for those just starting out in their journeys with FPGAs — whether to smash established paradigms, or simply to experiment with an exciting new technology platform.