107
저작자표시-비영리-변경금지 2.0 대한민국 이용자는 아래의 조건을 따르는 경우에 한하여 자유롭게 l 이 저작물을 복제, 배포, 전송, 전시, 공연 및 방송할 수 있습니다. 다음과 같은 조건을 따라야 합니다: l 귀하는, 이 저작물의 재이용이나 배포의 경우, 이 저작물에 적용된 이용허락조건 을 명확하게 나타내어야 합니다. l 저작권자로부터 별도의 허가를 받으면 이러한 조건들은 적용되지 않습니다. 저작권법에 따른 이용자의 권리는 위의 내용에 의하여 영향을 받지 않습니다. 이것은 이용허락규약 ( Legal Code) 을 이해하기 쉽게 요약한 것입니다. Disclaimer 저작자표시. 귀하는 원저작자를 표시하여야 합니다. 비영리. 귀하는 이 저작물을 영리 목적으로 이용할 수 없습니다. 변경금지. 귀하는 이 저작물을 개작, 변형 또는 가공할 수 없습니다.

SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계

  • View
    75

  • Download
    10

Embed Size (px)

Citation preview

Page 1: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계

저 시-비 리- 경 지 2.0 한민

는 아래 조건 르는 경 에 한하여 게

l 저 물 복제, 포, 전송, 전시, 공연 송할 수 습니다.

다 과 같 조건 라야 합니다:

l 하는, 저 물 나 포 경 , 저 물에 적 된 허락조건 명확하게 나타내어야 합니다.

l 저 터 허가를 면 러한 조건들 적 되지 않습니다.

저 에 른 리는 내 에 하여 향 지 않습니다.

것 허락규약(Legal Code) 해하 쉽게 약한 것 니다.

Disclaimer

저 시. 하는 원저 를 시하여야 합니다.

비 리. 하는 저 물 리 목적 할 수 없습니다.

경 지. 하는 저 물 개 , 형 또는 가공할 수 없습니다.

Page 2: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 3: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 4: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 5: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 6: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 7: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 8: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 9: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 10: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 11: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 12: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 13: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 14: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 15: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 16: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 17: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 18: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계

SW Design

VirtualPrototype

PhysicalPrototype

HW Design

System

Level

Design SoCin Silicon

System

Integration

Page 19: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 20: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계

Specification

System Design

HW/SWPartitioning

Sys

tem

-lev

elD

esig

n Co-Simulation

ArchitectureTemplates

Arch

itecture

Exp

loration

Block-levelDesign

Logic Simulation

Logic Synthesis

HW

Des

ign

Back-end /Fabrication

Co-Simulation

Co-Emulation

FPGAPrototyping

HW-SWCo-Verification Programming

Compilation

Debugging

SW

Design

RTOS

FPGA

Processor

Memory

I/O

SoC Platform

Page 21: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 22: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 23: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 24: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계

Methodology-SpecificLibraries

Master/Slave Library, etc.

Layered Libraries

Verification Library Static Dataflow, etc.

Primitive Channels

Signal, Mutex, Semaphore, FIFO, etc.

Core Language

ModulesPorts

ProcessesInterfacesChannelsEvents

Event-driven simulation

Data Types

4-valued Logic type 4-valued Logic Vectors

Bits and Bit VectorsArbitrary Precision Integers

Fixed-point typesC++ user-defined types

C++ Language Standard

Sy

stem

C

Page 25: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 26: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계

Elaborate

sc_start( )

Cleanup

Initialize Evaluate

Update

AdvanceTime

DeltaCycle

.notify( )immediate

whileprocesses

ready

.notify(t)timed

.notify(SC_ZERO_TIME) delayed

sc_main( ) SystemC Simulation Kernel

Page 27: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 28: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 29: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계

SystemCModel

Simulation

Refinement

Synthesis

Rest of Process

Page 30: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계

Un-timed

Approximate-timed

Cycle-timed

Un-timed

Approximate-timed

Cycle-timed

SAM TLM

TLM

TLM

TLM

RTL

System Architectural ModelTransaction Level ModelingRegister Transfer Level

Communication

Fu

ncti

ona

lity

MoreAccurate

MoreAccurate

Page 31: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계

System level model

Explore algorithmsVerify against specifications

Refine

Timed model

Explore architecturesDo performance analysis

Partition hardware / software

HardwareRefineSoftware

Behaviorallevel model

Refine

RTL model

To synthesis

RTOS

Target code

- Not synthesizable- Event driven- Abstract data types- Abstract communication- Untimed

- Event driven

- Synthesizable- Algorithmic description- I/O cycle accurate- Clocked

- Synthesizable- Clocked- FSM

Page 32: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 33: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계

Design Specification

Design Partition

HDL Design

Simulation

Synthesis

Place & Route

Verification

System Integration & Test

Page 34: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 35: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계

11 12 13 14 2416 17 18 19 20 21 22 2315

7

3

65 98 10

2 4

1

Gate

RTL

Behavieral

Page 36: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 37: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계

StructuralDescription

BehavioralDescription

PhysicalDescription

View

1

2

3

Algorithm

Dataflow/RTL

Boolean algebra

ProcessorMemoryPeripheral interface

Registers,ALUs, etc.

Logic netlist,schematic

HierarchicalModules and

Primitiveinstantiations Cell geometry

ProceduralAssignment

PhotomaskLayoutDatabase

Nonblockingassignment

Continuousassignment

Page 38: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 39: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 40: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 41: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계

C/C++ Source Codes

Compiler

Assembly Programs

Assembler

Object Files Static Library

Linker

Executable Program

Page 42: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 43: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 44: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계

Test vectorGenerator DUT

ReferenceModel

Post-processor

Testbench

test vector actual result

expectedresult

Page 45: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 46: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 47: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 48: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 49: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 50: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계

Test

Generator

Agent

Driver

Scoreboard Checker

MonitorAssertions

DUT

Environment

Page 51: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 52: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 53: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 54: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계

ISSBFMMEM

Hardware model

Processor modelin C

Simulator ISS program

Cross-compiler

Applicationprogram

Targetdependent

library

Executableimage

Page 55: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 56: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 57: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계

ProcessorRTL model

Reset ofSoC model..

. Perpheralmodels..

.

HDL simulator

(a) Core model co-simulation environment

Interface(BFM)

Reset ofSoC model...

Perpheralmodels...

HDL simulator

(b) Real-chip driven co-simulation environment

Network processor

Interface(BFM)

Reset ofSoC model..

. Perpheralmodels..

.

HDL simulator

(c) Native-code co-simulation environment

Native codeC program

Interface(BFM)

Reset ofSoC model...

Perpheralmodels...

HDL simulator

(d) Integrated-ISS co-simulation environment

ISS

Interface(BFM)

Reset ofSoC model...

Perpheralmodels...

HDL simulator

(e) Decoupled-ISS co-simulation environment

C program

ISS

Interface(BFM)

Reset ofSoC model..

. Perpheralmodels..

.

HDL simulator

(f) ICE-based co-simulation environment

uP

M

Development board

Real chip

Page 58: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 59: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 60: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 61: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 62: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 63: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계

Readtask

Writetask

PLI/VPIinterface

Soc

ket

lib

rary

ahb

_tas

ks

DesignedIP

AMBAAHB

ahb_bfm_socket

top

BFMAPI

Socket lib

rary

Testingroutine

C program domain HDL simulator domain

socket

Page 64: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계

Client

srv_open(...);

srv_accept(...);

socket_get(...);

socket_put(...);

cli_connet(...);

socket_put(...);

socket_get(...);

socket_close(...);

Server

Pre-definedmessage passingcommunication

Page 65: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 66: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 67: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 68: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 69: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계

ApplicationProgram

ahb_read ...

DUT

top

SystemVerilogSystemC

task

ahb_writeDPI

Interface

Page 70: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 71: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 72: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 73: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 74: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 75: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 76: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계

sc_channel fifo_if payload_if

print ( );FIFO_read ( );

FIFO_read_nb ( );// ...

sc_simcontext*sc_get_curr_simcontext ( );

sc_module(const char* nm);

// ...

FIFO

FIFO_read ( );FIFO_read_nb ( );

print ( );// ...

Page 77: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계

sc_channel semaphore_if payload_if

print ( );get ( );put ( );

// ...

sc_simcontext*sc_get_curr_simcontext ( );

sc_module(const char* nm);

// ...

Semaphore

get ( );put ( );

print ( );// ...

Page 78: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 79: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 80: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 81: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 82: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 83: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 84: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계

Test

Generator

Agent

Driver

Scoreboard Checker

MonitorAssertions

HWComponent

Environment

virtual interfacetask/function call SystemC FIFOchannel

Page 85: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계

Test

HW1 ...

Environment1

Environment2

HW2

Page 86: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 87: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계

Gen_base

rand_testvector( );send_testvector( );

// ...

Env_base

configure( );wait_setup( );

report( );// ...

Generator

rand_testvector( );send_testvector( );

configure( );wait_setup( );

// ...

sc_module

sc_simcontext*sc_get_curr_simcontext( );sc_module(const char* nm)

// ...

Page 88: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 89: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 90: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 91: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계

Test

Agent

Driver

Scoreboard Checker

MonitorAssertions

HWComponent

Environment

virtual interface

mailbox

task/function call

Generator

SystemC design unit

Page 92: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계

RegisterFile

ALU

AHBSlaveState

Machine

...

...

DUT

AMBASignals

Page 93: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 94: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 95: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계

SystemVerilog

ahb_decoder

ahb_default_slave

ahb_bfm

DUTahb_s2m

HADDR

HWDATA

HRDATA

interface

top

Page 96: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 97: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 98: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계

decoder

defaultslave

DUTs2m

arbiter

m2sMaster1

Master2

HW1

interface

HW2

Page 99: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 100: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 101: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 102: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 103: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 104: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 105: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 106: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계
Page 107: SystemC와 SystemVerilog의 OOP를 이용한 통합검증환경 설계