System on chip design is benefitting from the implementation of correct by construction methodologies as used in a growing number of software designs. Building software or hardware such as an operating system or a system on chip design can be fraught with unexpected outcomes. Trying to design a system on chip or software platform and predict what the outputs will be is very difficult. The design process has changed in recent years to reflect and take account of these difficulties. This process is often referred to as correct by construction.
It works by first creating an abstracted mathematical model of the software or system on chip hardware architecture and then testing that mathematical model against a predetermined specification. The specification is established in line with the desired end use of the product. So in the example of system on chip the correct by construction methodology would require a specification that was in line with the typical requirements of a system on chip design.
Until recently the majority of software and hardware designs began with their specifications written in English (or another spoken language) and incorporated some elements of code, or pseudo-code. In outlining a model for the process an industry standard, like unified Modelling Language for software will typically be used. One of the limitations of this type of approach is the inability of the notation to describe in adequate detail the necessary functionality and behaviour of the system to be built. Correct by construction overcomes this limitation by implementing a mathematical model that can represent the software or hardware much more accurately when designing programmes or processor systems such as system on chip.
With traditional methods of system on chip design as well as other hardware and software design there is an extended testing phase once the coding is completed. The purpose of this is to uncover bugs that arise from conflicts between the various blocks of code or in the case of hardware the different integrated components. While this can be a costly practice in software design, the cost is primarily in time. I hardware design there are many more variables that effect the cost of the bug testing phase. System on chip design processes are particularly sensitive to these kinds of cost effects since they incorporate such diverse components in a single architecture.
By frontloading the design process in this way correct by construction methodologies can result in significant savings in build time and system on chip design respins. As system on chip products are finding their way into more and more commercially available devices such as smart phones and tablet computers the need to be able to design and manufacture working system on chip products is increasing. Correct by construction methodology is gaining popularity because of this. By eliminating much of the unpredictable guesswork from the process at the beginning rather than the end the pressure to meet established deadlines is significantly lessened. As a result more and more system on chip design platforms are built with correct by construction methods in mind.