Vous êtes sur la page 1sur 24

TKT-1410 Suunnittelun varmennus

SoC testaus
2013

What is SoC?
SOC is an integrated circuit that forms an electronic
system, which is usually programmable to a degree
It may contain digital, analog, mixed-signal and radiofrequency 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)

A Possible SoC Architecture

Generic
I/O

USB
I/F
Ethernet
I/F

Display

DMA

Graphics
Accelerator

CPU

CPU

High-speed memory bus

Internal
Memory

Ext Mem
I/F

High-speed data bus

Touchscr
I/F

Internal
Memory

Bridge
High-speed data bus

Keyboard
I/F

Low-speed peripheral bus

Audio
I/F

Bridge

Internal
Memory

GPU
Camera
I/F

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 a


component-specific testbench
Connectivity, interoperation and system functionality
must be tested on system level
Due to multiple processing elements, software driven
testing is necessary

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

Interconnect Verification
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)

Interconnect Verification Setup

Bridge

Slave

Slave

Slave

Master
Master

Slave
Master

Master

High-speed memory bus

Memory
Stub

High-speed data bus

Slave

Memory
Stub

High-speed data bus

Slave

Low-speed peripheral bus

Slave

Bridge

Memory
Stub
Master

Slave
Slave

Interconnect Verification 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

Interconnect Verification Process


Configurable traffic generators are used to represent
data 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 traffic
scenarios
End-to-end channel management

Memory Subsystem Verification


Verifying memory management and configuration, not
the physical memory arrays
Requires interconnect model
Master traffic generators must have direct access to
all bus segments that have memory components
directly connected
Testing different operation and addressing modes
Single data and burst mode
Different address mappings
MMU functionality
Cache coherency testing

Memory Subsystem Verification


Setup
Bridge

Master

Master

High-speed memory bus

Internal
Memory

Ext Mem
I/F
Memory
Stub

High-speed data bus

High-speed data bus

Low-speed peripheral bus

Internal
Memory

Bridge
Internal
Memory

Memory Subsystem Verification Process


Test setup requires enough masters to reach every
memory component
Masters scan memory address ranges in different
address mapping and access pattern modes
Operating mode testing (burst, single, etc.) verifies the
bus 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

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 realistic
information, 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

Communication Interface Verification


Setup
Generic
I/O

USB
I/F
Ethernet
I/F
Ethernet
VIP

Memory
Stub

Master

Master

High-speed memory bus

High-speed data bus

Touchscr
I/F

USB
VIP

Bridge
High-speed data bus

Keyboard
I/F

Low-speed peripheral bus

Audio
I/F

Bridge

Memory
Stub
Camera
VIP
Camera
I/F

Communication Interface Verification


Process
Master components initialize register configurations of
interface 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

Verification IP
Verification IP is a standalone plug and play
verification 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 them
for 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 test
completeness

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

Software Driven Verification


Processor based designs must run at least boot-up
tests
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

Software Driven Verification Setup

Generic
I/O

USB
I/F
Ethernet
I/F

Display

DMA

Graphics
Accelerator

Virtual
CPU

Virtual
CPU

High-speed memory bus

Memory
Stub

Ext Mem
I/F

High-speed data bus

Touchscr
I/F

Memory
Stub

Bridge
High-speed data bus

Keyboard
I/F

Low-speed peripheral bus

Audio
I/F

Bridge

Memory
Stub
Virtual
GPU
Camera
I/F

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

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 a


design methodology that merges into multiple phases
of design flow

Requirement capture
Specification
Hardware verification and validation
Software development and integration
System validation

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 into
UVM component with configurable interfaces
Integrate ESL signal generators in UVM streams
Embed ESL models into scoreboards as reference models

Reusing ESL models in HW Verification


(2)
Use abstract simulation models as much as possible
to speed up simulation
UVM/OVM provide capability to switch between different
implementations of component
Use as high abstraction level as possible Only 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

Summary
SoC verification expects that a thorough block-level
verification 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

Vous aimerez peut-être aussi