Why is an opensource HDL toolchain like IceStorm combined with low cost FPGA kits important for opensource hardware and the community?
Modern digital electronics is hard, not just because of the mixed disciplines of engineering and computer science, rather it is the physical nature of the components, PCBs, assembly and testing. Manipulating atoms in the real world is totally unlike manipulating bits in the virtual world. PCBs have to be laid out and designed using CAD tools, boards have to be ordered and manufactured, components chosen and purchased, then we have to wait for them to be delivered before we can solder and assemble them ready for basic testing, inevitably we then repeat this cycle fixing any issues we discover. It is a time consuming and costly process that has many side effects in terms of design and production costs not to mention time to market for any product idea, it is anything other than agile…
Therefore anything that can be done to improve this situation is likely to result in great dividends for the engineers working on a project and likely improve turn around time as well as time to market for ideas. Compounding this, electronics tooling mostly produces monolithic design media and CAD files making it very difficult to manage in a modern fashion. The process lacks modularity, reuse and resists parallel design team strategies. Contrast this with software development with its flexible libraries, modular coding and distributed version control allowing geographically independent concurrent development. It is not hard to see why electronics design appears as if in slow motion compared to it’s agile algorithmic cousins in software development. This modern flexibility is what has helped to power the Arduino and Raspberry Pi communities, what if we could take this further, much further and see how deep this rabbit hole really goes…
With FPGA chips we have a near blank slate on which to paint and compose our digital electronic designs and we can do so not using atoms but by using bits instead, this is incredibly powerful, it is to electronics as the PC was to software. More importantly we are not confined to our restrictive CAD tooling during the design process, rather we have HDL languages which offers us many of the advantages software engineers have taken for granted over the last few decades. So what are these advantages and why are they important in opensource practices and communities?
Anyone having developed even the simplest software whether a basic assembly routine, a simple C file or a large web based application will be familiar with the power of modular programming languages, build text files, compilers and linkers. Opensource compilers, linkers and libraries like GCC and binutils have democratised software development and have provided concrete foundations on which impressive opensource projects such as Linux, Apache and Firefox have been built. GCC , supporting tools and libraries have singularly changed the game, combined with low cost PCs and servers, they enabled an opensource revolution. Opensource tools wrapped around modern software development practices like agile with distributed version control , testing and continuous build have enabled software to literally takeover the world! Breakthrough tools like compilers and libraries therefore are the key enablers for opensource community development, proliferation and exponential growth, with GCC, git, bin utils you can change the world.
Enter stage right ‘IceStorm‘ supporting a Verilog design chain to describe hardware, synthesis and simulation. That is, one can describe the electronics design in a modular fashion using simple text files composed using algorithmic language and build files. This allows significantly more complex designs to be rendered and tested in a fraction of the time of the torturous CAD design cycle. Right now opensource hardware is experiencing it’s GCC moment in the form of Yosys and supporting tools in IceStorm. These are the means and facilitation that will now impart their power and agility within the opensource hardware community development, allowing us to build radically different types of projects combining Verilog with FPGA chips upon the new low cost development boards of our new PC like canvas. This breakthrough combination allows agility, modularisation and co-operation, allowing divide and conquer strategies that opensource communities excel at, quite naturally, It will also encourage the traditional opensource practice of standing on the shoulders of giants by using sharing and openness, this is then ‘The Quickening’ for opensource hardware and community, the beginning of it’s true exponential growth.