Title: Prabhat Mishra HeonMo Koo Zhuo Huang
1Language-driven Validation of Pipelined
Processors using Satisfiability Solvers
- Prabhat Mishra Heon-Mo Koo Zhuo
Huang - Department of Computer and Information Science
and Engineering - University of Florida
- MTV 2005
2Outline
- Introduction
- Traditional Validation Approaches
- Language-driven Validation
- Top-Down Validation using SAT solvers
- Test Generation
- Equivalence Checking
- Summary
3Technology and Demand
of transistors are doubling every 2 years
Demand
Technology
Communication, multimedia, entertainment,
networking
Exponential growth of design complexity ?
verification complexity
4Validation of Pipelined Processors
- Functional validation is a major bottleneck
- Deeply pipelined complex micro-architectures
- Logic bugs increase at 3-4 times/generation
- Bugs increase (exponential) is linear with design
complexity growth.
5Outline
- Introduction
- Traditional Validation Approaches
- Language-driven Validation
- Top-Down Validation using SAT solvers
- Test Generation
- Equivalence Checking
- Summary
6Traditional Validation Approach
Architecture Specification (English Document)
RTL Design
Simulation
7Traditional Validation Approach
Architecture Specification (English Document)
Model Checking
Abstracted Design
Abstraction
RTL Design
Simulation
8Traditional Validation Approach
Architecture Specification (English Document)
Specification
Model Checking
Verification
Formal
Abstracted Design
Implementation
Abstraction
RTL Design
Simulation
9Traditional Validation Approach
Architecture Specification (English Document)
Analysis/Verification
Specification
Specification
Model Checking
Verification
Formal
Abstracted Design
Implementation
Abstraction
RTL Design
Simulation
10Traditional Validation Approach
Architecture Specification (English Document)
Analysis/Verification
Specification
Specification
Model Checking
Verification
Formal
Abstracted Design
Implementation
Abstraction
Transform
RTL Design
Modified Design (RTL / Gate)
Simulation
Equivalence Checking
11Traditional Validation Approach
Architecture Specification (English Document)
Analysis/Verification
Specification
Specification
Model Checking
Verification
Formal
Abstracted Design
Implementation
Design Reference Models
Abstraction
Implementation
Transform
RTL Design
Modified Design (RTL / Gate)
Simulation
Equivalence Checking
12Outline
- Introduction
- Traditional Validation Approaches
- Language-driven Validation
- Top-Down Validation using SAT solvers
- Test Generation
- Equivalence Checking
- Summary
13Top-down Validation Methodology
14Top-down Validation Methodology
ADL Architecture Description Language
15Top-down Validation Methodology
ADL Architecture Description Language
16Top-down Validation Methodology
http//www.ics.uci.edu/express
HDL Description
17Top-down Validation Methodology
Design Validation
18Top-down Validation Methodology
19Language-driven Validation
Architecture Specification
Processor Core
Memory Subsystem
Coprocessors
ADL Specification
Test Vectors
Simulator
RTL Design (Implementation)
Check Output
HDL Description
Equivalence Checking
Fail
Fail
20Language-driven Validation
Architecture Specification
Processor Core
Memory Subsystem
Coprocessors
ADL Specification
Test Vectors
Simulator
SATBDDATPG ?
RTL Design (Implementation)
Check Output
HDL Description
Equivalence Checking
Fail
Fail
21Outline
- Introduction
- Traditional Validation Approaches
- Language-driven Validation
- Top-Down Validation using SAT solvers
- Specification using Architecture Description
Language - Test Generation
- Equivalence Checking
- Summary
22Architecture Description Languages
- Behavior-Centric ADLs
- ISPS, nML, ISDL, SCP/ValenC, ...
- primarily capture Instruction Set (IS)
- good for regular architectures, provides
programmers view - tedious for irregular architectures, hard to
specify pipelining - Structure-Centric ADLs
- MIMOLA, ...
- primarily capture architectural structure
- specify pipelining drive code generation, arch.
synthesis - hard to extract IS view
- Mixed-Level ADLs
- LISA, RADL, FLEXWARE, MDes, EXPRESSION,
- combine benefits of both
- generate simulator and/or compiler
23Specification of the DLX Processor
PC
Memory
Fetch
Structure
( ARCHITECTURE_SECTION ..........
(FetchUnit Fetch (CAPACITY 4) (TIMING (all
1)) (OPCODES all) (LATCHES (OTHER
PCLatch)(OUT DLatch)) ) ( PIPELINE_SECTION
(PIPELINE Fetch Decode Execute MEM WB) (Execute
(ALTERNATE ALU MUL FADD DIV)) (FADD (PIPELINE
FADD1 .. FADD3 FADD4)) (DTPATHS (TYPE
UNI (RF Decode P7 C4 P8) (WB RF P5 C3
P6) ) (TYPE BI (MEM MEMORY P4 C2 P3) ) )
Decode
Register File
DIV
FADD1
IALU
MUL1
FADD2
MUL2
FADD3
FADD4
MUL7
MEM
WriteBack
24Specification of the DLX Processor
PC
Memory
Fetch
Structure
( ARCHITECTURE_SECTION ..........
(FetchUnit Fetch (CAPACITY 4) (TIMING (all
1)) (OPCODES all) (LATCHES (OTHER
PCLatch)(OUT DLatch)) ) ( PIPELINE_SECTION
(PIPELINE Fetch Decode Execute MEM WB) (Execute
(ALTERNATE ALU MUL FADD DIV)) (FADD (PIPELINE
FADD1 .. FADD3 FADD4)) (DTPATHS (TYPE
UNI (RF Decode P7 C4 P8) (WB RF P5 C3
P6) ) (TYPE BI (MEM MEMORY P4 C2 P3) ) )
Decode
Register File
DIV
FADD1
IALU
MUL1
FADD2
MUL2
FADD3
FADD4
MUL7
MEM
WriteBack
25Specification of the DLX Processor
PC
Memory
Fetch
Structure
( ARCHITECTURE_SECTION ..........
(FetchUnit Fetch (CAPACITY 4) (TIMING (all
1)) (OPCODES all) (LATCHES (OTHER
PCLatch)(OUT DLatch)) ) ( PIPELINE_SECTION
(PIPELINE Fetch Decode Execute MEM WB) (Execute
(ALTERNATE ALU MUL FADD DIV)) (FADD (PIPELINE
FADD1 .. FADD3 FADD4)) (DTPATHS (TYPE
UNI (RF Decode P7 C4 P8) (WB RF P5 C3
P6) ) (TYPE BI (MEM MEMORY P4 C2 P3) ) )
Decode
Register File
DIV
FADD1
IALU
MUL1
FADD2
MUL2
FADD3
FADD4
MUL7
MEM
WriteBack
26Specification of the DLX Processor
PC
Memory
Fetch
Structure
( ARCHITECTURE_SECTION ..........
(FetchUnit Fetch (CAPACITY 4) (TIMING (all
1)) (OPCODES all) (LATCHES (OTHER
PCLatch)(OUT DLatch)) ) ( PIPELINE_SECTION
(PIPELINE Fetch Decode Execute MEM WB) (Execute
(ALTERNATE ALU MUL FADD DIV)) (FADD (PIPELINE
FADD1 .. FADD3 FADD4)) (DTPATHS (TYPE
UNI (RF Decode P7 C4 P8) (WB RF P5 C3
P6) ) (TYPE BI (MEM MEMORY P4 C2 P3) ) )
Decode
Register File
DIV
FADD1
IALU
MUL1
FADD2
MUL2
FADD3
FADD4
MUL7
MEM
WriteBack
27Specification of the DLX Processor
PC
Memory
Fetch
Structure
( ARCHITECTURE_SECTION ..........
(FetchUnit Fetch (CAPACITY 4) (TIMING (all
1)) (OPCODES all) (LATCHES (OTHER
PCLatch)(OUT DLatch)) ) ( PIPELINE_SECTION
(PIPELINE Fetch Decode Execute MEM WB) (Execute
(ALTERNATE ALU MUL FADD DIV)) (FADD (PIPELINE
FADD1 .. FADD3 FADD4)) (DTPATHS (TYPE
UNI (RF Decode P7 C4 P8) (WB RF P5 C3
P6) ) (TYPE BI (MEM MEMORY P4 C2 P3) ) )
Decode
Register File
DIV
FADD1
IALU
MUL1
FADD2
MUL2
FADD3
FADD4
MUL7
MEM
WriteBack
28Specification of the DLX Processor
PC
Memory
Fetch
Structure
( ARCHITECTURE_SECTION ..........
(FetchUnit Fetch (CAPACITY 4) (TIMING (all
1)) (OPCODES all) (LATCHES (OTHER
PCLatch)(OUT DLatch)) ) ( PIPELINE_SECTION
(PIPELINE Fetch Decode Execute MEM WB) (Execute
(ALTERNATE ALU MUL FADD DIV)) (FADD (PIPELINE
FADD1 .. FADD3 FADD4)) (DTPATHS (TYPE
UNI (RF Decode) (WB RF) ) (TYPE
BI (MEM MEMORY) ) )
Decode
Register File
DIV
FADD1
IALU
MUL1
FADD2
MUL2
FADD3
FADD4
MUL7
MEM
WriteBack
29Specification of the DLX Processor
Structure
PC
Memory
Fetch
Decode
Register File
DIV
FADD1
IALU
MUL1
FADD2
MUL2
Behavior
(OPCODE ADD (OPERANDS (SRC1 rf) (SRC2 imm)
(DEST rf)) (BEHAVIOR DEST SRC1 SRC2)
(FORMAT ) )
FADD3
FADD4
MUL7
MEM
WriteBack
30Specification of the DLX Processor
Structure
PC
Memory
Fetch
Decode
Register File
DIV
FADD1
IALU
MUL1
FADD2
MUL2
Behavior
Mapping
(OPCODE ADD (OPERANDS (SRC1 rf) (SRC2 imm)
(DEST rf)) (BEHAVIOR DEST SRC1 SRC2)
(FORMAT ) )
FADD3
FADD4
MUL7
MEM
WriteBack
31Outline
- Introduction
- Traditional Validation Approaches
- Language-driven Validation
- Top-Down Validation using SAT solvers
- Test Generation
- Equivalence Checking
- Summary
32Functional Verification of Pipelined Processors
Test Generator
Pipelined Processor
TestGen
MOV R1, 011 MOV R2, 010 ADD R3, R1, R2 R3 101
Test Program
R3 101 ?
Check Result
Verify the functionality of the processor using
assembly programs
33Related Work
- Directed test program generation
- Aharon et al., DAC 1995, Shen et al., DAC 1999
- Test generation for pipelined processors
- Ur and Yadin, DAC 1999
- Iwashita et al., ICCAD 1994
- Campenhout et al., DAC 1999
- Mishra et al., DATE 2005
- Functional test program generation
- Chen et al., DAC03, Lai and Cheng, DAC01
- Thatte et al., IEEE Computers, 1980
- Applied in the context of manufacturing testing
34Test Generation Methodology
Architecture Specification
ADL Specification
Simulator Generation
SMV
Not Enough Properties
Counterexamples
Coverage Report
Simulator
Automatic
ADL Architecture Description Language
Manual
Test Programs
Feedback
35Modified Test Generation Methodology
SMV Description (for node N)
Property (for node N)
SMV
N parent of N
N parent of N
Counterexamples
input assignments
primary i/p?
output req. for parent node
yes
Simulator
coverage report
test programs
36Test Generation Results
- VLIW DLX Processor
- Test Generation Techniques
- SMV Model Checker
- SMV bmc using zChaff SAT solver
37Outline
- Introduction
- Traditional Validation Approaches
- Language-driven Validation
- Top-Down Validation using SAT solvers
- Test Generation
- Equivalence Checking
- Summary
38Challenges in Top-Down Validation
Architecture Specification
Processor Core
Memory Subsystem
Coprocessors
ADL Specification
TestGen
Test Vectors
Simulator
RTL Design (Implementation)
Check Output
HDL Description
Equivalence Checking
Fail
Fail
39Equivalence Checking
- Simple processor model
- Simple 5-stage pipeline
- fetch, decode, read operand, execute, and write
back - Four registers and five possible instructions
- NOP, AND, OR, NOT, and LOAD
- UCSB Seq_SAT, Sequential SAT Solver
- Run Time 1.8 seconds
- 18 inputs, 1 output, 267 gates and 98 DFFs
40Summary
- Functional verification is a major challenge
- Top-down validation a promising approach
- Processor specification using ADL
- ADL-driven functional validation
- Challenges in language-driven validation
- Test generation
- Equivalence checking
- Initial results on using SAT solvers in the flow
- Future work
- Further exploration of existing SAT based flows
- Development of application-specific SAT solvers
41 42Pentium 4 Bugs Breakdown
Source Bob Bentley, HLDVT 2002
Micro-architectural complexity is a major
contributor