Ken Karnofsky, The MathWorks
You’ve heard it before. Increasingly complex systems and technologies like multicore processors and FPGAs have rendered old design methodologies obsolete. New approaches are needed: system-level abstractions that handle complexity and tools that automate expensive, time-consuming steps between concept and implementation.
Within the realm of processor-centric SoC design and verification, Electronic System Level (ESL) methods aim to address some of these problems. Various approaches and commercial tools have been introduced (and others repackaged) since EDA analyst Gary Smith coined the term ESL several years ago. The tools enable hardware designers to model complex SoC architectures, permitting software developers to start writing code before hardware is available, and in some cases, aiding hardware component implementation.
However, the narrow scope of most ESL approaches and tools has limited their adoption. A more encompassing methodology, one that steps beyond the SoC, is needed to dramatically reduce time, cost, and errors in complex system development. The new methodology should:
- Ensure that the hardware and software designs are functionally correct and meet real-world requirements;
- Help the system architect get the “right” design as early as possible, rejecting approaches that aren’t viable;
- Anticipate integration issues between digital, analog, electromechanical, and other subsystems;
- Eliminate the process gaps between concept and the hardware and software implementations; and
- Reduce the escalating cost of verification.
Addressing these issues has become critical for semiconductor companies who compete in fast-moving markets and for electronics OEMs who must ensure that their suppliers deliver devices that meet their application requirements. Gary Smith has noted the importance of the “architect’s workbench” in his ESL studies, but that is only part of the answer. Model-Based Design builds on that concept to provide a more complete solution to system development challenges, and companies adopting this approach are seeing upwards of 50% cycle time reduction and a tenfold return on their tool investment.
Model-Based Design consists of four elements: modeling desired behavior or reference designs, design exploration and refinement through simulation, implementation with code generation, and continuous test and verification throughout the development process. These elements address the design and verification issues inherent in today’s electronic systems by enabling engineers to progress systematically from specification to implementation to verification, leveraging executable system models that unambiguously specify functional and physical requirements.
Model-Based Design lets engineering teams working on analog, digital, and software subsystems collaborate by using models of those components and the operating environment. These models aren’t merely IP blocks; they can represent system elements at various levels of abstraction. Thus, each team can ensure that its components will integrate into an overall system that meets requirements, while doing the design exploration and iteration required to optimize sophisticated communication and multimedia technologies. Engineers can also identify and fix problems earlier, and work on their subsystems even when other parts of the design aren’t available.
In traditional design flows, there can be no systematic testing of the entire system until it has been fully implemented. As a result, bugs remain hidden until late in the system development, when fixing them is significantly more costly and disruptive. In contrast, Model-Based Design enables system testing and debugging from the earliest stage of development, when most flaws are introduced. Models can be validated early on through simulation and verified continuously as the component models are refined with additional implementation detail. C, HDL, and SPICE implementations, as well as ESL models, can be incorporated to support existing workflows, design reuse, and final integration testing. Components from different design teams can be integrated as they become available, ensuring that any changes do not degrade system performance and that bugs can be quickly isolated to the offending component.
Another source of errors and delays in existing design flows is the manual conversion from concept to design to implementation. Typically, an algorithm developer develops a floating-point algorithm in MATLAB. The system architect often recodes the algorithm in C, perhaps converting it to fixed-point code at the same time. The algorithm is again recoded to implement the embedded software or hardware. These steps waste time and effort, introduce errors, make design iterations difficult, and require extra verification steps to ensure that the implementation matches the reference algorithm.
Model-Based Design overcomes these problems in three ways. First, C or HDL code can be automatically generated from the component models or by reusing existing implementations. This approach eliminates hand-coding errors, provides flexibility in choosing hardware or software implementations, and works with existing implementation flows. Second, the component models can serve as the “golden reference” to verify manually coded C or HDL. Third, the system and environmental models, with the simulation data, can become the test bench for the implementation, whether the implementation is hand-coded or automatically generated.
Model-Based Design can unify and accelerate many aspects of system development. Adopting Model-Based Design in an incremental and measured manner maximizes its benefits while helping to manage change. Organizations new to Model-Based Design usually start by identifying root causes of quality issues and loss of productivity in existing processes while flagging opportunities to reuse IP and know-how, as well as aspects of existing processes that should be retained. By doing so, the first project yields immediate results with minimal disruption, and the ROI multiplies as they learn to apply the methodology across projects, teams, and tasks.
Click here to download a powerpoint presentation.
|