Challenges and opportunities for open-source in Silicon — Part 1
Open-source software has been the norm for the better part of the last 30 years. In fact, much of software today is based on open-source components and built with open-source development tools and frameworks.
Silicon on the other hand has been a land of locked-down proprietary designs and development tools (save for automation frameworks for regression pipelines and scripting). Even the design languages themselves are effectively proprietary and tied to commercial tools for simulation and logic synthesis (logic synthesis and simulation is roughly analogous to compilation and testing of software)
Silicon is hardware. There is no getting around this fact. Hardware manifests itself in a physical medium and thus incurs additional costs and is subject to constraints over and above that of software:
- Manufacturing costs of each instance (chip) — essentially making silicon wafers, testing, packaging, testing again, etc.
- Each “release” of silicon incurs a very high cost to generate updated mask sets for production and associated development and validation time.
- To make things even more difficult, there is no practical way to “update” a chip that is already integrated into an end product.
Software thus has an inherent agility in getting feedback and correcting errors. The advent of the internet brought about the ability to deliver software updates to end users which provided a solution for the multi-decade “software crisis” by way of agile development. This ability to release often and iterate gives software a distinct advantage over hardware.
The property of low-cost iterate-ability.
This property of iterate-ability has afforded software developers to better leverage loosely organized, distributed, un-time-bound, community sourced software components (some of which are mission critical) to drive a sustained tsunami of innovation and value creation for the last few decades.
In fact, most silicon today actually has a lot of deeply embedded software (software a user application or even systems programmer never sees) which is tasked with providing a mitigation mechanism for silicon revs, but this has limits on its impacts to the overall product.
Because of the compounded high cost of errors, the culture of silicon design is one that is understandably extremely cautious and relatively slow moving in adoption of new paradigms.
The development tool ecosystem around silicon development has capitalized on this fact, which has further raised development costs, but admittedly, it is the cost of human time associated with the task of getting a quality chip into production that presents the primary barrier to achieving low-cost iterate-ability.
In this series of posts, I plan to delve into the challenges and opportunities in regard to leveraging the value of open-source in silicon designs as a way to breathe new life and energy into silicon development.