|
||||||||||
Benefits of Executable SpecificationBy Devender Pal Khari, Agnisys What is an executable spec? In the context of an IP and/or SoC design and development, a specification consists of a complete description of the concerned IP/SoC or any subsystem. It consists of architecture, register map, memory map, functionality, data path, FSMs, timing behavior, sequences, etc. Most of this spec is static and informative, helping design and verification engineers to write RTL, verification testbenches, and firmware. There is a significant part of the specification that can be described in a way that can be directly processed by tools and automatically generate design, verification and validation infrastructure, firmware, and documentation collaterals with minimal human intervention. This form of specification is called an executable specification. It can be described in different user-defined formats such as spreadsheets, documents, CSV, YAML and industry standards like IP-XACT, System RDL, PSS, etc. Usually, about 30-35% of a design (IP/SoC) consists of addressable registers and memory maps. Once the register specification is captured, designers work on manually creating a custom synthesizable application logic layer for the intended functionality using these addressable hardware registers. Creating this layer often consists of using various design constructs. This manual work done by the designer may be error prone and often requires additional changes. Most of the application logic consists of data paths and FSMs, which is about 25-30% of the whole design. Regarding verification of a design, sequences (test and control) are a significant part. Automation in application logic creation further reduces the IP/SoC development cycle time. An executable spec can help automatically handle registers, memory maps, data paths, FSMs, sequences, etc and generate required collaterals for design, verification, validation, firmware and documentation. It serves as a Golden Specification, a single source of truth, which is essential to streamline the development process and reduce the likelihood of errors that may arise from manual coding. Agnisys offers different products that can use this spec as input to generate required collaterals as shown in Figure-1 below: Figure-1: Golden specification generating different collaterals using different tools Executable specifications can also serve as a platform for collaboration among team members with different roles and expertise. System architects, design engineers, verification engineers, software engineers and validation engineers can work together on a shared model, promoting a more integrated and collaborative design process. Each role requires different collaterals as shown in Figure-2 below: Figure-2: Agnisys IDesignSpec Suite generating different collaterals for different roles In the above figure, some commonly used executable spec formats are mentioned. The spec in any of these formats or a mix of some of these formats can be fed into the Agnisys tools, which then generate required collaterals. The formats mentioned in green color are industry standards, that is, System RDL, IP-XACT, and PSS. Users can customize the generated outputs as per their requirements by applying various properties in their design at different levels of hierarchy. Agnisys products support a rich set of properties, in excess of 400. The designs can be organized hierarchically as shown in Figure-3 below: Figure-3: Hierarchical organization of user design A single spec can be defined for the whole hierarchy or each block can be defined in a separate spec and then these specs can be combined to introduce hierarchy. In Figure-3, each box can be any of the components like Register, Register Group, Memory, IP Block, Third Party IP, Sub System, and SoC. Circles at some blocks indicate the bus interfaces. Components of an executable spec An executable spec format allows users to capture information regarding the following aspects of a design:
Apart from capturing registers and memory maps, users can capture other aspects of an IP using the following:
Benefits to users
Conclusion Overall, the use of executable specifications in front-end electronics architecture contributes to a more rigorous and efficient development process, helping to ensure that the final product meets the specified requirements and performs as intended. If you wish to download a copy of this white paper, click here
|
Home | Feedback | Register | Site Map |
All material on this site Copyright © 2017 Design And Reuse S.A. All rights reserved. |