How Using Your Specification to Automate Code Generation Enforces Conformance to Product Requirements
Every IP and chip design is created for one reason: to build a successful electronic product. This is true regardless of whether the IP block, the chip, a board containing the chip, or a full system is the final product. Meeting the end-product requirements entails creating a design that meets its own set of detailed specifications. Enforcing design conformance to these requirements is a major task in your development process. This post discusses some of the challenges and offers an automated solution.
A Complex Development Flow
The figure below shows a typical development flow for a system-on-chip (SoC) design project. It starts with market research, including studying industry trends and talking with both current and prospective customers about their upcoming needs. Industry analysts and potential development partners may be consulted. It is also essential to look at your current and emerging competitors to ensure that any product will be competitive with, or superior to, what they will be offering.
The result of this first stage must be a clear idea for a new product with the potential to be innovative and profitable while being feasible with existing technology. The top-level requirements for the product are captured in a document written by your product marketing team with assistance from chip architects. This document defines the overall functionality of the chip, its target cost, target performance, operating voltages, clock rates, power consumption, packaging, and many other attributes of the product.
Your product architects take these requirements and use their technical knowledge to create a design specification from which the other project teams can create the chip. This specification must include all software-visible aspects of the hardware design, including memories and the programmable control and status registers (CSRs) used by the embedded software to control the hardware. It typically also specifies major design blocks, the buses that interconnect them, the processors selected, the chip pinout, and many more details.
Conforming to the Requirements
A solid design specification (or, more likely, a set of specifications) is the starting point for most of the project teams. Your designers create the register transfer level (RTL) code to describe the hardware, which includes making a lot of microarchitectural decisions. These include selecting IP blocks, partitioning the design, creating pipelines and data flows, and defining registers and memories that are not visible to the software. Every step of this process must fully conform to the product requirements and the design specifications.
Proper design specifications give your programmers everything they need to know to start writing not just high-level applications, but also the embedded code. Thus, software development can proceed in parallel with hardware design and verification. Again, the team must conform to the requirements and design specifications. The hardware and software are brought together in pre-silicon validation, in which the code is running on processor models along with the RTL code in simulation or emulation.
In parallel with this validation, design implementation can occur. This process includes logic synthesis, floorplanning, layout, and a wide range of checks and analysis. Certain aspects of the product requirements and design specifications must be followed here as well. For example, timing signoff must verify that the target clock rates can be achieved and power signoff must verify that the fabricated chip will not consume more power than specified.
Challenges to Conformance
Starting from common design specifications does not guarantee that all hardware and software will be in conformance with the project requirements. Specifications are usually written in English or another natural language, making them inherently ambiguous. Different project teams, and even different engineers within a single team, may interpret the specification differently. The verification and validation stages attempt to uncover these differences but issues sometimes sneak through to silicon.
The biggest challenge to conformance is specification changes. On a typical project, the design specifications change hundreds of times as the project team executes the development flow. Sometimes even your product requirements change in response to competitive pressure or new industry insight, driving changes in the design specifications. Every change in a specification affects the hardware, software, or both.
RTL designers, programmers, verification and validation engineers, and technical writers getting a head start on end-user documentation must make frequent updates in response to specification changes. Every change offers opportunities for differing interpretations and for teams getting out of sync. Conformance is not a one-time challenge; it is an ongoing process in a desperate and costly struggle to keep up with requirements and specification evolution.
The Only Way to Win
Specification automation is the only way to ensure that your final product fully meets its requirements. This approach generates a wide range of RTL design, verification, software, validation, and documentation files automatically from executable specifications. It saves a great deal of time and resources over manual creation of these files based on natural language specifications. The automated flow eliminates errors due to misinterpretation of the specifications or to differing interpretations by different teams.
This approach continues to save schedule time and human resources throughout the project. As noted above, design specifications change many times for various reasons. Every time that a specification is updated, your development teams can simply re-run the specification automation tool to re-generate the affected files. This not only ensures compliance with the specifications and hence the product requirements, but also ensures that your teams are always synchronized.
Agnisys has been the leader in specification automation since its founding in 2007. Our IDesignSpec™ Suite of products accepts a wide range of input formats and generates an even wider range of outputs for every project team, from architects to the bringup lab. Generation of registers, memories, programming sequences, standard IP blocks, custom IP blocks, and SoC-level interconnection of IP blocks is all automated.
In Summary
Your SoC and IP teams put a lot of effort into codifying their product requirements based on their target markets and specifying the system to meet those requirements. If the actual hardware and software are developed manually, there are many opportunities for divergence and deviation from the intended product. Using the Agnisys specification automation solution enforces conformance to your product requirements while saving money and shortening your project schedule.