X-Gen

Innovation Matters


Functional verification is one of the bottlenecks of hardware design. System verification, the closing phase of the verification process, validates the integration of several previously verified components, and provides the last line of defense against a bug escaping to silicon. System verification deals with highly complex designs, and invariably suffers from tight schedules and scarce resources.

X-Gen is a test-case generator aimed at the system level. As input, it accepts an abstract model of the verified system and a test template (a request file). The abstract model represents the architecture of the verified system, but it also includes testing knowledge – how to increase the chances of exposing a bug and increase the coverage of generated test cases. Given these inputs, X-Gen generates test cases that fulfill the requirements specified by a verification engineer in the test-template, but at the same time uses testing knowledge to form intelligent background noise that increases the test-case quality.

X-Gen Architecture

X-Gen: general architecture

The two main technical contributions of X-Gen are the adaptation of model-based stimulus generation to the system level and a powerful test-template language for this domain. Together, these two contributions allow IBM to configure X-Gen for new state-of-the-art hardware systems quickly and at lower cost than previously used solutions, enabling higher levels of verification with fewer resources. In addition, X-Gen required the development of state-of-the-art constraint satisfaction technology, to cope with some of the algorithmic issues arising from the system-level test-case generation.

Model-based test-case generators are partitioned into a generic, system independent engine, and a model that describes the verified system. The notion of model-based test generation was originally developed for processor-level verification and implemented by tools such as Genesys. X-Gen, however, is the first test-case generator to bring this concept to the system level. The open nature of such stimuli generators - their partition of a generator into a generic engine and a system model - carries several advantages. First, test-case generation for new systems becomes an easier (and less costly) task. This is especially true in cases where pieces of the system's model, for example a PowerPC core, can be reused by several systems. Second, there is a structured, well defined way to integrate new knowledge about the verified system into the tool. And third, a generic test program generator can include generic testing-knowledge that applies and that is reused across many systems.

X-Gen was developed by IBM's Haifa Research Lab. It has been a crucial element in the verification of the majority of the PowerPC-based systems in IBM, including the Cell processor, the POWER-based systems used at the heart of IBM's iSeries, pSeries, and OpenPower eServers, and the chip that drives Microsoft's XBOX 360.

Related Publications  

R. Emek and Y. Naveh. Scheduling of Transactions for System-Level Test-Case Generation . Eighth IEEE International High-Level Design Validation and Test Workshop. November 2003.

Roy Emek, Itai Jaeger, Yehuda Naveh, Gadi Bergman, Guy Aloni, Yoav Katz, Monica Farkash, Igor Dozoretz and Alex Goldin. X-Gen: A Random Test-Case Generator for Systems and SoCs. .

E.Bin, R.Emek, G.Shurek and A.Ziv. Using a Constraint Satisfaction Formulation and Solution Techniques for Random Test Program Generation. IBM Systems Journal 41(3):386-402, 2002.

R.Emek, I.Jaeger, Y.Naveh, G.Bergman, G.Aloni, Y.Katz, M.Farkash, I.Dozoretz and A.Goldin. X-Gen: A Random Test-Case Generator for Systems and SoCs. Seventh IEEE International High-Level Design Validation and Test Workshop. October 2002.

R.Emek, I.Jaeger, Y.Katz and Y.Naveh. Quality Improvement Methods for System-level Stimuli Generation. IEEE International Conference on Computer Design: VLSI in Computers and Processors, ICCD. October 2004.


Rate this article

Innovator's corner  

Yoav KatzYoav Katz Researcher

What is the most exciting potential future use for the work you're doing?
I see the X-Gen tool being used for all complex system designs in IBM. Moreover, as the tool becomes more mature, I see it expanding to external clients too. Also, I think X-Gen’s model-based approach could influence general industry trends in system-level verification – a hot issue in the design automation industry.

What is the most interesting part of your research?
The most interesting part of my work is the joint thinking sessions where we meet as a team, and analyze the current methodology and techniques using in stimuli generation. We take examples, identify their core essence, discuss the problems encountered, and then start a process of refining them into new abstractions, generalizations, and generation algorithms. Once these are implemented, we find ourselves able to innovate again, and continue developing X-Gen to ever-increasing sophistication.

What inspired you to go into this field?
Initially I was drawn to the field because it manifests a highly complex problem, with actual applications and users. Only later did I begin to appreciate the unique approach to problem solving that is taken by the model-based approach.

What is your favorite invention of all time?
The electric boiler, which allows mass population (including me) to take hot showers when they wish.

Research team  

Anna Bendersky

Anna Bendersky

Shady Copty

Shady Copty

Roy Emek

Roy Emek

Alex Goldin

Alex Goldin

Karen Holtz

Karen Holtz

Itai Jaeger

Itai Jaeger

Yoav Katz

Yoav Katz

Yehuda Naveh

Yehuda Naveh

Ilya Nikulshin

Ilya Nikulshin

Ella Rabinovich

Ella Rabinovich

Related Research  

Disciplines: Electrical Engineering
Research Areas: Verification Technology
Research Labs: Haifa Research Lab