Correct by Construction
Gabe Moretti, Senior Editor
In the late eighties and the nineties there was a lot of development work around Hardware Description Languages with the scope of creating IEEE standards. The work did produce VHDL and Verilog standards that have been fundamental in the growth of EDA. One of the topics of discussion at the time was the goal of creating a tool that would allow engineers to create “Correct by Construction” designs. Now you can use IP Subsystems, but more on that later.
We never succeeded because of semantics ambiguities in languages that were too difficult to avoid. Such a language would have been very complex and follow-on attempts have increased the knowledge of how HD languages can be developed, but no working language fulfilling the Correct by Construction goal has been developed.
Of course EDA has produced tools that generate “Correct by Construction” hardware. RTL synthesis tools in fact do generate such hardware, although even there designers must be careful to use proper semantics or strange hardware will result. Unambiguous semantics is the major obstacle to what was once called behavioral synthesis. Avoiding ambiguity was such a problem that these tools have had to undergo a name change in order to even undergo feasibility testing by prospective users.
High Level Synthesis, this is the name of such tools now, have demonstrated acceptable capabilities now, but more work is being done to improve their capabilities. But major obstacles still exist. Without doubt the biggest obstacle is the fact that systems are not homogeneous. Although there are still a significant number of fully digital IC’s produced, more often now designers must deal with mixed/ signals, Analog, and electro-mechanical systems. And we really do not yet know how to synthesize these.
I think we never will have to, thanks to the advent of Subsystems IP. Just like before synthesis engineers used to connect various components from data books to create a system, now designers use IP subsystems. The IP market has grown no just in economics terms, but most importantly, in technical terms. It is now possible to use a third party IP to implement graphics capabilities, to provide in-chip busses and networks, to provide various types of wireless communications, and so on.
Of course these are solutions that also generate engineering and business challenges. What is, for example, an acceptable acceptance test procedure? How can the license protect the assets of the IP provider? What and how is delivered to the end user of the IP? Do we have a standard procedure for the successful transmission of IP subsystems from suppliers to users? As we know Correct by Construction is not achieved only through algorithms; we need methods as well.
These and other such issues will be discussed on Tuesday October 14 at the IPExtreme Constellations workshop (www.ip-extreme.com/events/mysteryhouse2014.shtml) . I will be there moderating a panel on the topic.