ARM Based SOC Verification: Test and Verification Solutions
ARM Based SOC Verification: Test and Verification Solutions
ARM Based SOC Verification: Test and Verification Solutions
7 July 2008 1
Agenda
7 July 2008
14 March 2013 2
Typical ARM Based SoC Architecture
Test I/F
ARM Boot ROM Controller
ARM Core
Boot Config
High Speed
Pheripheral
PLL
External Bus
Interface
TIMER
ARM Interconnect
I2C
GPIO
Low Speed
Pheri pheral
7 July 2008
14 March 2013 4
Top3 Verification Challenges
29 April 2009 5
2. Scalability
• Constrained-random simulation
has been proven as a good bug-
hunting flow, but...
– How many cycles to verify 2 weeks at
target speed of 1GHz?
• Answer: 0.6 x 1015
Simulation Emulation FPGA Si
(KHz) (1 MHz) (10 MHz) (1 GHz)
Target cycles 1,000,000 sim 1000 emulation 100 FPGA slots 1 chip
1015 slots slots
Formal Verification
FPGA Prototyping
7 July 2008
14 March 2013 7
Formal Verification
Formal verification
is a systematic process that uses mathematical
reasoning to verify the design.
works algorithmically and exhaustively explores all
possible input values over time.
no stimulus!
Why use formal?
100% coverage (if you set it up correctly)
difficult to figure out how stimulate the design
difficult to create checker
An ideal formal verification tool requires
capacity in order to handle complex designs
7 July 2008
14 March 2013 8
Simulation Depth-first vs. Formal Breadth-first
PortA1 Port2
The default reset values of all the DUT ports
Port1
7 July 2008
14 March 2013 11
BUS PROTOCOL COMPLIANCE VERIFICATION
Development of a formal
specification of the protocol
Finite state description of the protocol can be formally verified by a state space
search
This helps in verifying the advanced features of SoC Bus Protocols like
7 July 2008
14 March 2013 12
LOW POWER VERIFICATION
• Proved
– the property holds for all valid sequences of inputs
• Failed(n)
– there is at least one valid sequence of inputs of length n cycles, as
defined by the design clock, for which the property does not hold.
– In this case, the tool gives a waveform demonstrating the failure.
– Most algorithms ensure that n is as small as possible, but some
more advanced algorithms don’t.
• Explored(n)
– there is no way to make the property fail with an input sequence of
n cycles or less
– For large designs, the algorithm can be expensive in both time and
memory and may not terminate
Some Limitations of Formal Verification
Size limit
7 July 2008
14 March 2013 16
Hardware Software Co Verification
7 July 2008
14 March 2013 17
Top Level Test Generation for CPU
Expected
results
workflow
Testbench
– Generation performance
SoC
– Target diverse platforms
CPU Mem.
– Ease of use
Observe FABRIC – Maintainability
results FABRIC – Reuse (of testing knowledge)
A B C – Effective result checking:
Propagation of results
Trace comparison
BFM BFM
18
Hardware Software Co-Verification Flow
SW Tools
(Compiler, Linker,
Debugger) HDL Simulation
Tools
Executable Object
file DUT
Memory Model
Output for debugger
tools
7 July 2008
14 March 2013 19
How to go faster!
Compute Farm, Emulators, FPGA and test chips
20
The ‘tradeoffs’ for different platforms
Favours lots of … but also need to load tests
short tests! and dump test results!
Compute farm Emulator FPGA Test chip
Speed 10Hz - 100Hz 1MHz 2MHz – 50MHz GHz
…per machine
Partitioning!
Observability Total Trace window + Probes + Host debug
host debug host debug
Behavioural Yes Co-emulation Co-emulation No
testbench? (speed penalty) (speed penalty)
Test in ‘real world’ No Host debug + Mostly Yes
systems ICE with speed
bridges
Are fails easily Yes Yes No No
reproducible in
simulation? Complex timing dependencies
Bring-up time Minutes Weeks hours Weeks Days Months
Depends on
process maturity
21
FPGA Prototyping
Debug limited
7 July 2008
14 March 2013 22
Connecting the FPGA with simulation
Inter-Processor
Communication
(socket) Logic Simulation
BFM
FPGA
With Hardware
On board
Design
7 July 2008
14 March 2013 23
Standard Co-Emulation API (SCE-MI)
Custom Block
SCE-MI Infrastructure RTL
24
SCE-MI: What are the issues?
Performance
– Need to consider both bandwidth and latency!
– Try to make operations non-blocking
– Performance of the behavioural testbench may limit the maximum speedup
Time
– The time for SCE-MI communications will depend on workstation performance
– Simulation time may be suspended during SCE-MI communications to maintain
determinism by consuming zero emulation time
Concurrency
– Concurrency is created by verification components operating independently of the DUT.
– A component in a process or thread outside the emulator time domain can prevent the
verification environment from being deterministic
Determinism
– Allowing non-determinism may increase performance
– However determinism is crucial for ease of debug
Maintenance
– Each protocol needs a SCE-MI transactor.
– These need to be verified and maintained.
25
FPGA Prototyping Limitations
• The target SoC may consist of many functional modules that are written at
different abstraction levels in the course of different development phases.
• Only synthesizable modules can be mapped into an FPGA and run for
debugging.
• FPGA provides limited debug capability and visibility during single iteration
• hence multiple iterations may be required to narrow down to the
specific bug.
7 July 2008
14 March 2013 26
Conclusion
• Increasing complexity
• Number of CPUs and Ips
• Multiple clock domains, multiple power domains,
• Coherent shared memory structures
• Scalability issues
• Is dynamic enough
• Number of cycles
• Writing complex tests and checkers
• Consider formal
• Product = hardware + software
• Hardware/Software co-verification
• Need longer simulations
• Consider FPGA
7 July 2008
14 March 2013 27
Benefits of working with T&VS
Any Questions?
7 July 2008
14 March 2013 28