Post on 20-Feb-2018
transcript
7/24/2019 1410 SoC Verification 2013 1v0
1/24
TKT-1410 Suunnittelun varmennus
SoC testaus
2013
7/24/2019 1410 SoC Verification 2013 1v0
2/24
What is SoC?
SOC is an integrated circuit that forms an electronicsystem, which is usually programmable to a degree
It may contain digital, analog, mixed-signal and radio-
frequency functions on a single chip substrate
SoC typically contains Processors subsystem(s)
Many (possibly hundreds of) memory subsystems
Interface(s) for external memory
High-speed on-chip interconnect subsystem(s) External communication interface(s)
On-chip power and error monitoring and management
subsystem(s)
7/24/2019 1410 SoC Verification 2013 1v0
3/24
A Possible SoC Architecture
Low
-speedperipheralbus
H
igh-speeddatabu
s
CPU
H
igh-speeddatabu
s
CPU
High-speed memory bus
Internal
MemoryExt Mem
I/F
Display
GPU
Camera
I/F
Graphics
Accelerator
BridgeBridge
InternalMemory
USB
I/F
Ethernet
I/F
DMA
Keyboard
I/F
Touchscr
I/F
AudioI/F
InternalMemory
Generic
I/O
7/24/2019 1410 SoC Verification 2013 1v0
4/24
What Makes SoC Verification Different?
SoC follows the rules of system test: System level functionality
Correct connectivity between the blocks
Interaction between the blocks
Each component is individually tested with acomponent-specific testbench
Connectivity, interoperation and system functionality
must be tested on system level
Due to multiple processing elements, software driventesting is necessary
7/24/2019 1410 SoC Verification 2013 1v0
5/24
SoC Verification Tasks
Interconnect tests Connectivity
Configuration and parameterization
Arbitration and throughput
Memory subsystem tests Address ranges and mapping
MMU and memory interface
Communication interface tests
Software driven tests Register tests
Boot-up sequence
Interrupts
7/24/2019 1410 SoC Verification 2013 1v0
6/24
Interconnect Verif ication
Normally the first verification task in SoC verification Connectivity
Correctness of wiring
Address mapping
Topology correctness in NoC architectures Configuration and Parameterization
Allowed topologies
Different parameter combinations
Arbitration and throughput All allowed arbitration schemes
Multi-master configurations
Maximum load (congestion management pressure test)
7/24/2019 1410 SoC Verification 2013 1v0
7/24
Interconnect Verif ication Setup
Low
-speedperipheral
bus
H
igh-speeddatabu
s
Master
H
igh-speeddatabu
s
Master
High-speed memory bus
Memory
StubSlave
Slave
Master
Slave
Master
BridgeBridge
MemoryStub
Slave
Slave
Master
Slave
Slave
Slave MemoryStub
Slave
7/24/2019 1410 SoC Verification 2013 1v0
8/24
Interconnect Verif ication Setup
Interconnect subsystem is DUT All components initiating communication are replaced
by master traffic generators (requesters)
Processors, DMA controllers, etc.
Generate statistically distributed requests to slaves All slave components are replaced by
parameterizable slave traffic generators (responders)
No real functionality, but respond to requests with correct
amount of data or command acknowledgement
Memories replaced by functional models
No real data storage needed (except for power verification)
Responding with right amount of data
Worst case switching patterns 010101... for physical STA
7/24/2019 1410 SoC Verification 2013 1v0
9/24
Interconnect Verif ication Process
Configurable traffic generators are used to representdata traffic in different use cases
Multiple traffic scenarios
Multiple interconnect configurations
Performance testing Register and configuration settings can be done with
UVM register class or with a specific configuration
master component
Arbitration and throughput tests using different trafficscenarios
End-to-end channel management
7/24/2019 1410 SoC Verification 2013 1v0
10/24
Memory Subsystem Verification
Verifying memory management and configuration, notthe physical memory arrays
Requires interconnect model
Master traffic generators must have direct access to
all bus segments that have memory componentsdirectly connected
Testing different operation and addressing modes
Single data and burst mode
Different address mappings MMU functionality
Cache coherency testing
7/24/2019 1410 SoC Verification 2013 1v0
11/24
Memory Subsystem Verification
Setup
Low-speed
peripheralbus
High-sp
eeddatabus
Master
High-sp
eeddatabus
Master
High-speed memory bus
InternalMemory
BridgeBridge
Internal
Memory
Internal
Memory
Ext MemI/F
Memory
Stub
7/24/2019 1410 SoC Verification 2013 1v0
12/24
Memory Subsystem Verification Process
Test setup requires enough masters to reach everymemory component
Masters scan memory address ranges in different
address mapping and access pattern modes
Operating mode testing (burst, single, etc.) verifies thebus interface and internal access logic of the memory,
but not the memory array itself (except in case of
static memory)
External memory interface needs memory stub Test MMU with most probably used parameter
configurations
7/24/2019 1410 SoC Verification 2013 1v0
13/24
Verifying Communication Interfaces
Communication interface verification needs Interconnect to reach interface components
Master component capable of controlling interfaces
Memory stubs for testing internal DMA controllers
Test components to stimulate interface with realisticinformation, e.g. USB data, keyboard signal, camera signal
Verification IP (VIP)
Pre-defined and tested data generator for standard interface
Verification focuses on
Parameterization through register interface
Data transfer to/from interface
Interaction between interface and other components, e.g.
DMA functionality
7/24/2019 1410 SoC Verification 2013 1v0
14/24
Communication Interface Verification
Setup
Low-sp
eedperipheralbu
s
High
-speeddatabus
Master
High
-speeddatabus
Master
High-speed memory bus
Camera
VIP
CameraI/F
BridgeBridge
USB
VIP
USB
I/F
EthernetI/F
Keyboard
I/F
TouchscrI/F
Audio
I/F
Generic
I/O
MemoryStub
Ethernet
VIP
Memory
Stub
7/24/2019 1410 SoC Verification 2013 1v0
15/24
Communication Interface Verification
Process
Master components initialize register configurations ofinterface components
VIPs generate traffic and analyze output of the
interface blocks
Simple I/O interfaces are driven with streams DMA transfers are tested using memory stubs
7/24/2019 1410 SoC Verification 2013 1v0
16/24
Verification IP
Verification IP is a standalone plug and playverification component that enables verification of the
DUT at block, subsystem and SoC level
VIP can act as a Bus Functional Model (BFM) to drive
DUT signals or monitor the signals and validate themfor correctness and data integrity
It may have a set of protocol checkers and test
scenarios to confirm compliance with the standards or
cover groups identifying corner cases and testcompleteness
7/24/2019 1410 SoC Verification 2013 1v0
17/24
Verification IP (2)
VIP is always target or standard specific The common VIPs available include
Mobile Industry Processor Interface (MIPI) protocols like DSI,
CSI, HSI, SlimBus, Unipro, DigRF & RFFE
Bus protocols like AXI, AHB, APB, OCP & AMBA4
Interfaces like PCIexpress, USB2.0, USB3.0, Interlaken,RapidIO, JTAG, CAN, I2C, I2S, UART & SPI
Memory models & protocol checkers for SD/SDIO, SATA,
SAS, ATAPI, DDR2/DDR3, LPDDR etc
7/24/2019 1410 SoC Verification 2013 1v0
18/24
Software Driven Verification
Processor based designs must run at least boot-uptests
Processors are replaced with cycle accurate virtual
models (core of an instruction set simulator, ISS)
Internal memories are replaced with memory stubs Processor models run real compiled SW images
Test limited to boot sequence and peripheral
initialization
Multiple use cases and setup scenarios I/O optimized to the required minimum
7/24/2019 1410 SoC Verification 2013 1v0
19/24
Software Driven Verification Setup
Low
-speedperipheralbus
H
igh-speeddatabu
s
Virtual
CPU
H
igh-speeddatabu
s
Virtual
CPU
High-speed memory bus
Memory
StubExt Mem
I/F
Display
Virtual
GPU
Camera
I/F
Graphics
Accelerator
BridgeBridge
MemoryStub
USB
I/F
Ethernet
I/F
DMA
Keyboard
I/F
Touchscr
I/F
AudioI/F
MemoryStub
Generic
I/O
7/24/2019 1410 SoC Verification 2013 1v0
20/24
System-Level Design and HW Verification
Electronic System Level Design (ESL) Methodology that utilizes high-level programming languages
and multiple abstraction levels to model system architecture
and functionality with appropriate accuracy
Abstract modeling with SystemC, C++, Matlab, etc.
...to increase comprehension about a system, and to
enhance the probability of a successful implementation of
functionality in a cost-effective manner
ESL model of target hardware is aimed at early
functional and architectural simulation High simulation speed for functional verification
Complete hardware functionality with bit accurate
implementation
Timing modeling with required accuracy
7/24/2019 1410 SoC Verification 2013 1v0
21/24
System-Level Design and HW Verification
(2)
ESL model enables verification and validation of Hardware functionality
Interconnect throughput and arbitration
HW specification
ESL is NOT an additional design phase It is adesign methodology that merges into multiple phases
of design flow
Requirement capture
Specification
Hardware verification and validation
Software development and integration
System validation
7/24/2019 1410 SoC Verification 2013 1v0
22/24
Reusing ESL models in HW Verification
Most ESL models are written in SystemC/C++ Embedding ESL models into SystemVerilog is easy
Major SystemVerilog simulators support SystemC
Integrating ESL models into HW testbench
Use agent technology to embed functional TLM model intoUVM component with configurable interfaces
Integrate ESL signal generators in UVM streams
Embed ESL models into scoreboards as reference models
7/24/2019 1410 SoC Verification 2013 1v0
23/24
Reusing ESL models in HW Verification
(2)
Use abstract simulation models as much as possibleto speed up simulation
UVM/OVM provide capability to switch between different
implementations of component
Use as high abstraction level as possibleOnly DUT MUST
be RTL
Which HW components can be replaced with ESL
Processors
Interconnect (except in interconnect test!)
Memories Interface peripherals
Use factory to switch between implementations
7/24/2019 1410 SoC Verification 2013 1v0
24/24
Summary
SoC verification expects that a thorough block-levelverification is done separately
SoC-level verification focuses on
system level HW functionality
connectivity interaction between the blocks
Typical SoC-level tests are
Interconnect tests
Memory subsystem tests
Communication interface tests
Software driven tests
ESL models can be heavily reused in verification