Automated verification of configurable IP blocks
Automated verification of configurable IP blocks
By Dhanendra Jani, Hardware Engineering Manager and Steve Leibson, Technology Evangelist, Tensilica, Santa Clara, Calif., EE Times
July 18, 2003 (11:29 a.m. EST)
URL: http://www.eetimes.com/story/OEG20030718S0029
To efficiently and profitably exploit millions of available SoC gates, companies must acquire pre-verified IP blocks in the same way they now buy pre-tested chips. To do this, SoC design teams must have faith in the functional abilities of purchased IP blocks. For "star IP," we're already there. Microprocessor cores are categorized as star IP, in part because these complex blocks come pre-verified from the IP vendor. Pre-verification represents a significant part of the star IP's value and SoC design teams routinely use purchased microprocessor cores in their designs. Configurable microprocessor cores meet higher performance targets than fixed-ISA processors by allowing designers to tailor the processor's execution pipeline so that the configured processor executes complex inner program loops using fewer instructions. However, customizing a processor core can nullify the verification advantages of star IP unless the configurable product is designed to easily allow verification of the customized core. Tensilica has developed a robust, flexible methodology encompassing checkers and monitors to verify its configurable and extensible Xtensa microprocessor core. This methodology generates a customized verification suite and test bench for configured processors. Using this approach, Tensilica pre-verified a very large number of Xtensa processor configurations before delivering the first one. To verify the large number of processors developed with its processor generator, Tensilica developed a verification environment that is automatically tailored to a particular processor configuration. This approach differs from conventional IP verification environments in its use of configurable verification components and automatic program customization. Tensilica implemented this customizable verification environment by combining internally developed and standard verification tools including simulators, formal verification tools, and hardware ve rification languages. Architectural verification programs (AVPs) check each instruction's execution and micro-architecture verification programs (MVPs) check pipeline control, data hazards, and the processor's actual RTL implementation. AVPs and MVPs employ Perl scripts based on processor configuration information to generate tests tailored to a specific Xtensa configuration. The scripts add blocks of diagnostic code to the diagnostic program, or omit them, depending on the configuration. Scripts also change the parameters within the diagnostic code as it's assembled into a program. Each script employs a database entry specifying run-time conditions needed to trigger diagnostic blocks. Pseudo-random program generators further enhance verification coverage. A major issue with verifying complex logic designs like microprocessors is ensuring that diagnostic programs test the entire design. This issue is especially bothersome with randomly generated diagnostic programs that may inadvertently chec k one part of a design while overlooking the rest. Tensilica addressed this problem with a functional coverage methodology based on Forte's Perspective results-analysis tool, which steers the diagnostic generators to increase overall test coverage. At the same time, Vera-based monitors and 0-In Design Automation's assertion-based signal and bus monitors check the processor's internal RTL state. In addition, VCS Coverage Metrics, a code-coverage utility included with Synopsys' VCS Verilog simulator, checks coverage of the processor's RTL code while FSM (finite state machine) monitors, also written in Vera, check coverage of internal state machine operations. Lint tools, Design Compiler's synthesis checker, and Verplex's Conformal LEC formal verifier perform additional checks. Diagnostic checking programs and monitors and the RTL and ISS simulation models all run simultaneously within a co-simulation environment. This verification methodology allowed Tensilica to verify a very large number of Xtensa processor configurations using myriad verification programs running on simulated processors, which consumed trillions of simulation cycles and many months in an efficient, automated fashion. It's not sufficient to verify a processor's operation in the absence of other system components (such as memories and bus interfaces) because a processor embedded in an SoC must work with other components on the SoC. Consequently, a configured system verification test bench (see accompanying figure) is also part of this verification methodology.
Related Articles
- Automated Power Model Verification for Analog IPs
- Formal, simulation, and AMBA verification IP combine to verify configurable powerline networking SoC
- Enhancing Verification through a Highly Automated Data Processing Platform
- Automated On-the-Fly Verification of Designs Using Detector-Based Methodology
- Automated Formal Verification of OCP based IPs using Cadence's OCP VIP library
New Articles
Most Popular
- System Verilog Assertions Simplified
- System Verilog Macro: A Powerful Feature for Design Verification Projects
- Synthesis Methodology & Netlist Qualification
- Enhancing VLSI Design Efficiency: Tackling Congestion and Shorts with Practical Approaches and PnR Tool (ICC2)
- Demystifying MIPI C-PHY / DPHY Subsystem
E-mail This Article | Printer-Friendly Page |