Software prototyping is cheap. This is why every day we see a new service powered by AI, blockchain or IoT.
“Playing with hardware and software, making things that go beep in the night”, by Jeremy Keith
You just need your personal computer or laptop, an internet connection, maybe access to some of the resources offered by a public cloud provider to speed your development and you are ready to go. But what about hardware prototyping? When we talk about hardware, things aren’t that easy!, right? You don’t have a pay-as-you go public offer of hardware pieces to try your ideas and iterate over your designs. If every time you want to try a new implementation you need to buy a new piece of hardware by the time you are done with your product you may be broke. Especially if you are approaching a product in an innovative way, without funding and a history of past successes.
All software is consumed through hardware, this is something that we must never forget when we are building our product.
It may appear that when we talk about innovation in technology like blockchain, AI or IoT, we are exclusively talking about software, but we are disregarding the role of hardware in these advancements. Blockchain is cryptography and distributed systems, but also the hardware miners need to run the consensus, and the network infrastructure required to deploy a global network; AI is fancy training algorithms as well as all the hardware for parallel computation that made this field and the problems tackled accessible to anyone and IoT. IoT is mainly the co-design of hardware and software.
All software is consumed through hardware, this is something that we must never forget when we are building our product. Owning the hardware allows for delivery of the best possible experience. One of the reasons Apple products are so popular is because they deliver a great experience. They do so in large part due to Apple’s strategy of vertical integration: a strategy where Apple makes both its software and hardware in-house. Apple designs and develops iOS as well as the A11 processor running in iPads and iPhones.
But the importance of Hardware is not only what separates us from stability and a good user experience, in many cases it is directly the reason why a new technology isn’t a reality yet. Take quantum computing as the perfect example. We have been hearing the goodness and potential impact of quantum computing for ages, why don’t we have a brand new quantum computing in our living room yet? Let me give you a hint, hardware. Since the 80s we have been theoretically discovering and improving powerful quantum algorithms that would be able to break the encryption of the internet or find new molecules, but we don’t have the hardware to run them. Engineers all over the world are working hard to provide us with more qubits, lower error rates, greater connectivity of qubits, and the possibility of running quantum hardware in friendlier environments — did you know that the coldest places in the universe are the cryogenic chambers where we run quantum circuits? You are welcome, now you have something to brag about in your next dinner party.
Fortunately, if you went back to the 40s or 50s in a time machine and asked experts about the future of their computers, few would practically project the degree of advances that have been made in processor speed, memory size, data storage size, physical size and ease of use. If you had suggested trying to fit a room-size mainframe in a shoebox, let alone a machine a hundred times more capable, they would have laughed at you, but that’s the scope of the challenge ahead of us for quantum computers. You see? It all comes to better hardware.
And what can we, as ordinary mortals without a PhD and big pockets, do to build innovative products considering the important role of hardware in technology? Fortunately, there are two things that are going to help us in our endeavour to cheap prototyping and better designs: hardware-software co-design and FPGAs.
The core concepts in hardware-software co-design are getting another look, nearly two decades after this approach was first introduced and failed to catch on. What’s different this time around is the growing complexity and an emphasis on architectural improvements, as well as device scaling, particularly for artificial intelligence and machine learning applications. Software is a critical component, and the more tightly integrated the software, the better, the power and performance. Software also adds an element of flexibility, which is essential in many of these designs because algorithms are in a state of almost constant flux.
So combine an FPGA and the field of software-hardware co-design and not only do you have a way of approaching the design of your full product down-top, but you also have the platform you need for cheap hardware prototyping.
And the only piece of hardware that you need for this apart from your laptop, a Field-Programmable Gate Array, or FPGA. FPGAs are a semiconductor ICs where a large majority of the electrical functionality inside the device can be changed; changed by the design engineer, changed during the PCB assembly process, or even changed after the equipment has been shipped to customers out in the ‘field’. So combine an FPGA and the field of software-hardware co-design and not only do you have a way of approaching the design of your full product down-top, but you also have the platform you need for cheap hardware prototyping. Forget about buying and assembling brand new pieces for every iteration of your product, with this set-up the only thing you would need to test a new version of your implementation is re-programming the FPGA — just like with software.
We know hardware is not as sexy as software, but it is key for the future of technology, and we at LastBasic know that: we are working hard to make hardware sexy again. This is why we are obsessed with making hardware prototyping cheap and in a different way.