For a while now Google has been collaborating with SkyWater Technology to create what many refer to as free and open source silicon (FOSSi). The project gained traction in 2020 and is continuing to gain momentum.
The proclaimed goal is to bring chip design to the masses and enable everyone from academia, industry and makers to create their own computer chips. If this plan succeeds it would mean a considerable shift in the chip industry which traditionally is very secretive and dominated by just a few big corporations and their partners, connected by a opaque web of interdependencies. (Surely Google counts as the underdog in comparison *cough*)
Tag: 101


Wireguard is a modern VPN protocol allowing secure and confidential communication between a network of peers. Wireguard is based on the concept of private-public key cryptography and a number of other modern cryptographic algorithms. Have a look at the wireguard white paper for more details.
Wireguard Requirements
Since Linux kernel version 5.6 (late March 2020) wireguard is an integral part of the Linux kernel. That means Linux distributions using a kernel >= 5.6 do not need to install any additional packages in order to support wireguard.

If you haven’t heard of GHDL, it is *the* free open-source VHDL simulator out there.
GHDL stand for “G Hardware Description Language” (the G is without meaning). GHDL is mainly implemented in Ada and can be build with different backends: mcode, LLVM and GCC. The different backends provide different performance levels and vary in build complexity. I recommend LLVM since it performs well and is still quite straight forward to build. Building GHDL from latest sources from its github project is probably the best way to go.
Despite its free nature GHDL provides very good support for all major VHDL-LRM releases: VHDL-1987/1993/200X/2008(partial). Unfortunately GHDL is a pure VHDL simulator, so there is no support for Verilog at all. This is understandable as there are already some very good simulators for Verilog out there.

There is a new kid in town when it comes to “doing Linux under Windows”. Up to now there was primarily Cygwin and MinGW. But for a while now Microsoft offers the Windows Subsystem for Linux (WSL). I personally think the name should be the other way around (LSW) but what do I know.

Working on the command line in a Linux shell can be tricky at times. A frequent source of frustration is that tasks which are trivial with a graphical desktop environment can be seemingly much more difficult to achieve on the command line. For example switching between multiple running applications only requires one or two mouse clicks on a graphical desktop, but demands more arcane knowledge to do it on the command line.

When tasked with the implementation of a rather complex function, e.g. a polynomial of higher order, the resource utilization quickly shoots through the roof if implemented straight forward (also called the naïve implementation).
To avoid this it is often easier, simpler and faster to use a lookup table (LUT) solution.