A universal random test generator for functional verification of microprocessors and system-on-chip

This paper presents a universal random test generator template for the design verification of microprocessors and system-on-chips (SOCs). The tool enables verification of the product in one continuous, integrated environment, from C model to behavioral RTL and gate to system-level integration, all in one self-contained chassis. Due to complexity of large designs, it has been a common practice to rely on the power of randomization, to bless us with the humanly not-conceivable corner cases that can arise in reality. There are lots of common features shared by random tools used for testing products with diverse functionalities. This paper proposes a template which captures the commonalities among the different random testing tools and enables the user to quickly design a random test generator by adding product-specific details and using most of the methods available in the template. This leads to high degree of code reuse, less debugging of the random tool and huge reduction in design-cycle time. In addition the template provides enough flexibility and interfaces to enable the execution of the generated tests on targets which may be a C model, RTL or the final chip. By this, one may test a software component, say a bootup code for the system-on-chip or microprocessor at all stages of its design, namely, the software prototype, the RTL at the pre-silicon level and finally the chip, at a post-silicon level. This satisfies the expectations out of a verification platform for a hardware-software codesign environment. The random test generator template was employed for testing a x86-compatible microprocessor both at RTL and post-silicon stage and a software model of a 802.11 MAC. The results are presented in the paper.

[1]  Jacob A. Abraham,et al.  Test Generation for Microprocessors , 1980, IEEE Transactions on Computers.

[2]  Aharon Aharon,et al.  Model Based Test Generation for Processor Verification , 1994, IAAI.

[3]  Hüsnü Yenigün,et al.  Verifying hardware in its software context , 1997, ICCAD 1997.

[4]  Sofiène Tahar,et al.  Properties Coverification for HW/SW Systems , 1999 .

[5]  Christos A. Papachristou,et al.  Instruction randomization self test for processor cores , 1999, Proceedings 17th IEEE VLSI Test Symposium (Cat. No.PR00146).

[6]  Laurent Fournier,et al.  Functional verification methodology for microprocessors using the Genesys test-program generator , 1999, DATE '99.

[7]  Sujit Dey,et al.  DEFUSE: a deterministic functional self-test methodology for processors , 2000, Proceedings 18th IEEE VLSI Test Symposium.

[8]  Abhijit Ghosh,et al.  Methodology for hardware/software co-verification in C/C++ , 2000, Proceedings 2000. Design Automation Conference. (IEEE Cat. No.00CH37106).

[9]  Giovanni Squillero,et al.  On the test of microprocessor IP cores , 2001, Proceedings Design, Automation and Test in Europe. Conference and Exhibition 2001.