Page 1
저 시-비 리- 경 지 2.0 한민
는 아래 조건 르는 경 에 한하여 게
l 저 물 복제, 포, 전송, 전시, 공연 송할 수 습니다.
다 과 같 조건 라야 합니다:
l 하는, 저 물 나 포 경 , 저 물에 적 된 허락조건 명확하게 나타내어야 합니다.
l 저 터 허가를 면 러한 조건들 적 되지 않습니다.
저 에 른 리는 내 에 하여 향 지 않습니다.
것 허락규약(Legal Code) 해하 쉽게 약한 것 니다.
Disclaimer
저 시. 하는 원저 를 시하여야 합니다.
비 리. 하는 저 물 리 목적 할 수 없습니다.
경 지. 하는 저 물 개 , 형 또는 가공할 수 없습니다.
Page 18
SW Design
VirtualPrototype
PhysicalPrototype
HW Design
System
Level
Design SoCin Silicon
System
Integration
Page 20
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 24
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 26
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 29
SystemCModel
Simulation
Refinement
Synthesis
Rest of Process
Page 30
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
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 33
Design Specification
Design Partition
HDL Design
Simulation
Synthesis
Place & Route
Verification
System Integration & Test
Page 35
11 12 13 14 2416 17 18 19 20 21 22 2315
7
3
65 98 10
2 4
1
Gate
RTL
Behavieral
Page 37
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 41
C/C++ Source Codes
Compiler
Assembly Programs
Assembler
Object Files Static Library
Linker
Executable Program
Page 44
Test vectorGenerator DUT
ReferenceModel
Post-processor
Testbench
test vector actual result
expectedresult
Page 50
Test
Generator
Agent
Driver
Scoreboard Checker
MonitorAssertions
DUT
Environment
Page 54
ISSBFMMEM
Hardware model
Processor modelin C
Simulator ISS program
Cross-compiler
Applicationprogram
Targetdependent
library
Executableimage
Page 57
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 63
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
Client
srv_open(...);
srv_accept(...);
socket_get(...);
socket_put(...);
cli_connet(...);
socket_put(...);
socket_get(...);
socket_close(...);
Server
Pre-definedmessage passingcommunication
Page 69
ApplicationProgram
ahb_read ...
DUT
top
SystemVerilogSystemC
task
ahb_writeDPI
Interface
Page 76
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
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 84
Test
Generator
Agent
Driver
Scoreboard Checker
MonitorAssertions
HWComponent
Environment
virtual interfacetask/function call SystemC FIFOchannel
Page 85
Test
HW1 ...
Environment1
Environment2
HW2
Page 87
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 91
Test
Agent
Driver
Scoreboard Checker
MonitorAssertions
HWComponent
Environment
virtual interface
mailbox
task/function call
Generator
SystemC design unit
Page 92
RegisterFile
ALU
AHBSlaveState
Machine
...
...
DUT
AMBASignals
Page 95
SystemVerilog
ahb_decoder
ahb_default_slave
ahb_bfm
DUTahb_s2m
HADDR
HWDATA
HRDATA
interface
top
Page 98
decoder
defaultslave
DUTs2m
arbiter
m2sMaster1
Master2
HW1
interface
HW2