As I work for a company that has traditionally had a strong focus on hardware design, I am particularly interested in the relationship between hardware and software development and the synergies between the two disciplines.
Previously, I have discussed the dominance of software in modern designs [here] and the relationships in the EDA world [here]. But today I want to think about how hardware guys actually relate to software …
My first thought is that hardware design nowadays is very like software development. Most commonly, a system is described using a high level programming language [an HDL - Hardware Description Language]. Possibilities include VHDL [which is syntactically based on Ada], Verilog [which is rather like C] and other variants of the C language. A few years back I attended a 3 day VHDL class, so I now consider myself a fully trained hardware designer. I was surprised how quickly I could get to a point that I could “design hardware”. My biggest challenge was the VHDL syntax, as I have no Ada background.
I have observed that many hardware engineers are quite interested in what embedded software is all about. To some extent this is just curiosity, driven by the increasing profile of software in embedded system design. However, there is a common feeling that, if they understood the software better, maybe better hardware designs would result. As I see it, this is a very good attitude, which results in a win-win – a better outcome for all parties.
Over the last 15 years or so, I have been involved in a number of initiatives to provide some training to hardware guys in the basics of embedded software. And I am actually working on a new one, which should come to fruition in 2012. As a reader of this blog, I am sure that you are [largely] focused on software development, but you most likely have hardware design counterparts. I encourage you to respond positively to inquiries from those guys about how software works. The result could really be hardware that is easier to program, which would be true progress.