Processor Verification
In teams of four, write an 8-10 page report on functional verification and
testing of processors. Each team member should read the Kevin Safford
presentation (see link below) and then choose two of the eight papers.
Team members should meet the week of October 21 (e.g., during class times)
so that each team member can present and explain his or her two papers to
the rest of the team. The team will then cooperate to prepare a report.
The report should be structured in a manner similar to this:
- Introduction to functional verification
- goal of functional verification
- impact of bugs
- placement of verification in design sequence
- typical resources devoted to verification (manpower, tools, etc.)
- Aspects of functional verification
- testing of RTL (simulator) vs. actual silicon
- test code generation
- automatically-generated (random) tests
- hand-generated focused tests
- coverage analysis and improvement
- types of checking
- test case self-checking
- assertion checking
- signature checking
- special testing, e.g., bus protocol checking
- dedicated debug hardware
- evaluation of effectiveness of techniques,
i.e., how many bugs are found using the various techniques
- stopping criteria
- Difficult cases
- complex hardware, e.g., dynamic scheduling
- faults/traps/exceptions
- multiprocessor effects, e.g., cache coherency
- combinations of events
- number of possible states
- Conclusions
- restatement of goal
- summary of approaches and effectiveness
- trends in verification
- Bibliography
The above outline is not a "set-in-stone" requirement, but merely a
starting point for each team. You may want to revise the outline as
you read and present the papers. However, in presenting papers to the
rest of the team, it would be good for each team member to organize
his or her presentation according to the above outline. Within the
paper, you are required to use section and subsection headers, and
you are required to have the introduction, conclusions, and bibliography
sections.
Papers
-
B. Turumella, et al., Design Verification of a Super-Scalar RISC Processor,"
FTCS-25, 1995. [HaL SPARC64]
-
M. Kantrowitz and L. Noack, "I'm Done Simulating; Now What?
Verification Coverage Analysis and Correctness Checking of the
DECchip 21164 Alpha Microprocessor," Design Automation Conference, 1996.
-
J. Monaco, D. Holloway, and R. Raina, "Functional Verification Methodology
for the PowerPC 604 Microprocessor," Design Automation Conference, 1996.
-
S. Mangelsdorf, et al., "Functional Verification of the HP PA 8000
Processor," HP Journal, 1997.
-
S. Taylor, et al., "Functional Verification of a Multiple-Issue, Out-of-Order,
Superscalar Alpha Microprocessor - The DEC Alpha 21264 Microprocessor,"
Design Automation Conference, 1998.
-
S. Ur and Y. Yadin, "Micro Architecture Coverage Directed Generation of
Test Programs," Design Automation Conference, 1999.
-
R. Lee and B. Tsien, "Pre-Silicon Verification of the Alpha 21364
Microprocessor Error Handling System,"
Design Automation Conference, 2001.
-
Bob Bentley and Rand Gray, "Validating the Intel Pentium 4 Processor,"
Intel Tech Journal, Q1 2001.
-
J.M. Ludden, et al., "Functional verification of the POWER4 microprocessor
and POWER4 multiprocessor systems,"
IBM JRD, vol. 46, no. 1, 2002.
Other Links
[Course home page]
[Mark's homepage]
[CPSC homepage]
[Clemson Univ. homepage]
mark@cs.clemson.edu