You are on page 1of 53

4 장 .

HW/SW Co-Design for SoC

HW/SW Co-design for SoC


 Introduction of HW/SW Co-design
 HW/SW Co-design Methodology
 System Specification
 HW/SW Co-partitioning
 HW/SW Co-synthesis
 HW/SW Co-verification
 Co-design Related Works
 참고문헌

Copyrightⓒ2004 1
4 장 . HW/SW Co-Design for SoC

Co-design 이란 ?
 하드웨어와 소프트웨어가 조합된 시스템에서 기능과 성능의
목적을 동시에 달성하기 위하여 , 협력성과 동시성을 지원하는
설계 방법론
Abstract Co-design Process

Function Architecture
Refinement

Abstraction
Synthesis Mapping Verification

Hardware Software

Copyrightⓒ2004 2
4 장 . HW/SW Co-Design for SoC

고전적 HW/SW 설계 방법론


 고전적 HW/SW 설계 과정
 제작 초기 단계부터 시스템을 하드웨어와 소프트웨어로 분할
 하드웨어와 소프트웨어를 독립적으로 개발
 각각을 개발 완료한 후 통합

 고전적 HW/SW 설계의 문제점


 하드웨어와 소프트웨어 부분을 개발 중간에 교체하기 어려움
 시스템을 통합하고 , 검증하기 위하여 많은 시간이 소요됨

 최근의 설계 요구사항
 최적의 가격대 성능비
 낮은 전력소모량
 사용자 편이성 , 무게 , 부피
 Time to market

Copyrightⓒ2004 3
4 장 . HW/SW Co-Design for SoC

Co-design 의 필요성
 설계 초기 단계부터 하드웨어 소프트웨어를 동시에
고려하는 방법론 필요
 “Co-design”

 Co-design 의 특징
 Concurrency & Integration
 하드웨어 / 소프트웨어를 통합하여 동시에 개발 , 검증
 임베디드 시스템과 SoC 의 설계에 적합
 하드웨어 / 소프트웨어 최적 분할로 가격대 성능비 향상
 하드웨어와 소프트웨어의 설계 시간 , 설계 비용 , 에러의
감소로 인한 time-to-market 가능

Copyrightⓒ2004 4
4 장 . HW/SW Co-Design for SoC

HW/SW Co-design for SoC


 HW/SW Co-design Introduction
 HW/SW Co-design Methodology
 System Specification
 HW/SW Co-partitioning
 HW/SW Co-synthesis
 HW/SW Co-verification
 Co-design Related Works
 참고문헌

Copyrightⓒ2004 5
4 장 . HW/SW Co-Design for SoC

General Co-design Process


System
Specification

Control Data Performance Goal


Flow Graph
Cost Estimation
[Delay, Area, Power]

Constraint
C Analysis Memory / Pipeline
O Optimization
Hardware Software
Partitioning
I
Co Synthesis
S
Interface Library
I
M
U
L
A Software Hardware
T Specificaion Interface Specification
Specification
O
R Complier Behavioral
Synthesis

Memory Custom HW
Verification
Application C P U Application
SW SW Debugging
Device Driver Device Driver

System Bus

Copyrightⓒ2004 6
4 장 . HW/SW Co-Design for SoC

System Specification
 개요
 시스템을 통일된 표현 기법으로 기술하는 단계

 특징
 하드웨어와 소프트웨어를 위한 통일된 설계 / 분석 기술을 지원해야 함
 시스템 작업들이 쉽게 하드웨어 또는 소프트웨어로 변경될 수 있음
 통합된 설계 환경에서 시스템 평가 가능
 빠른 성능 분석 가능
 System-level language : systemVerilog, SystemC, SpecC, etc…

Specification
Models
+ Constraints

Design
Process

Implementation Architecture

Copyrightⓒ2004 7
4 장 . HW/SW Co-Design for SoC

System-Level Language
 필요성
 시스템 디자인의 복잡도 (complexity) 증가
 고수준의 추상화 (abstraction) 와 모델링 (modeling) 요구
 효율적인 시스템 디자인 flow 가 필요

 갖추어야 할 사항
 다양한 추상화 레벨의 시스템 모델을 지원하여야 함
 임베디드 소프트웨어 부분을 전체 시스템에 통합할 수 있어야 함
 실행가능한 디자인 spec. 을 생성할 수 있어야 함
 실행가능한 플랫폼 모델을 생성할 수 있어야 함

Copyrightⓒ2004 8
4 장 . HW/SW Co-Design for SoC

System Level Language 의 종류

Copyrightⓒ2004 9
4 장 . HW/SW Co-Design for SoC

SystemVerilog
 특징
 Verilog 코드의 productivity 와 readability 향상
 간결한 하드웨어 기술 (hardware description) 제공
 Verilog-2001 로 High-level abstraction 을 확장
 Verilog 의 assertion 문을 통합하여 검증 (verification) 확장

 Reference
 systemVerilog 3.1, ballot draft: Accellera’s Extensions to Verilog Accellera, N
apa, California, April 2003
 Verilog 2001: A Guide to the new Verilog Standard, Stuart Sutherland, Kluwer
Academic Publishers, Boston, Massachusetts, 2001
 http://www.eedesign.com/story/OEG20030521S0086

Copyrightⓒ2004 10
4 장 . HW/SW Co-Design for SoC

SystemC Design Flow

Copyrightⓒ2004 11
4 장 . HW/SW Co-Design for SoC

System-Level Language 의 동향
 기존의 디자인 언어 기능 확장 (ex: SystemVerilog)
 다양한 추상화 레벨의 시스템 모델을 지원
 장점
 설계자에게 친숙한 문법과 환경 제공
 이전 버전과의 호환성 제공
 단점
 현재 표준화 미비
 하드웨어 기술언어 습득이 어려움

 C/C++ 기반의 언어사용 (ex: SystemC)


 장점
 고도의 추상적이고 논리적인 기술 가능
 Executable specification 에 적합
 단점
 HW/SW 분할의 용이성 부족
 하드웨어 특성에 대한 완벽한 기술이 용이하지 않음

Copyrightⓒ2004 12
4 장 . HW/SW Co-Design for SoC

General Co-design Process


System
Specification

Control Data Performance Goal


Flow Graph
Cost Estimation
[Delay, Area, Power]

Constraint
C Analysis Memory / Pipeline
O Optimization
Hardware Software
Partitioning
I
Co Synthesis
S
Interface Library
I
M
U
L
A Software Hardware
T Specificaion Interface Specification
Specification
O
R Complier Behavioral
Synthesis

Memory Custom HW
Verification
Application C P U Application
SW SW Debugging
Device Driver Device Driver

System Bus

Copyrightⓒ2004 13
4 장 . HW/SW Co-Design for SoC

HW / SW Partitioning 개요
 정 의
 HW / SW Co-design 에서의 분할은 상위 단계의 시스템 동작 기술을
하드웨어와 소프트웨어 부분으로 재구성 하는 것을 의미

 목 표
 시스템의 성능 , 면적 , 지연시간 , 통신으로 인한 오버헤드 등을
고려하여 가격과 성능을 모두 만족시킬 수 있도록 분할

 특징
 Hardware 구현
 하드웨어의 속도와 작업의 병렬 수행을 통한 높은 성능을 제공
 추가적인 ASIC 또는 FPGA 등이 필요하므로 하드웨어 비용 증가
 Software 구현
 저가의 고성능 프로세서에서 동작하므로 하드웨어 비용 감소
 오퍼레이션의 순차적인 실행으로 인한 성능의 감소

Copyrightⓒ2004 14
4 장 . HW/SW Co-Design for SoC

HW / SW Partitioning 장점
 시스템 개발에 소요되는 비용과 시간의 최소화
 시장경쟁력 확보 (Time to Market)

 최적의 가격 대 성능비
 HW 의 성능과 SW 의 저렴성 사이의 균형을 맞추어 최적의 가격 대
성능비 도출

 [ 분할 -> 평가 -> 재분할 ] 과정의 반복 횟수 감소


 테스트 단계에서의 검증 시간 단축

 유연한 시스템 기술 가능
 Software 구현으로 개량 및 유지 보수 용이
 여러 형태의 시스템 설계 가능

Copyrightⓒ2004 15
4 장 . HW/SW Co-Design for SoC

HW / SW Partitioning Flow
System Specification
System Specification

Target
Architecture
SW
SWCompiler
Compiler
Library

HW
HWCost
Cost SW
SWCost
Cost
Estimation
Estimation Estimation
Estimation
Target
Architecture Partitioning
Graph

HW
HW
HW/ /SWSW
Partitioning
Partitioning SW

Partitioning
Graph

Copyrightⓒ2004 16
4 장 . HW/SW Co-Design for SoC

HW / SW Partitioning 고려사항
 Hardware / Software 동작 특성
 하드웨어의 특징과 소프트웨어의 특징을 고려하여 분할을
수행해야 함
 Hardware 기능의 공유
 하드웨어의 면적과 수행시간을 고려하여 하드웨어 기능의 공유
 HW 와 SW 간의 통신
 하드웨어와 소프트웨어 간의 추가적인 통신시간 고려
 Scheduling
 하드웨어와 소프트웨어간의 수행시간 및 순서의 조절
 Functional Pipeline
 하드웨어와 소프트웨어간의 통신 및 수행시간의 최적화

Copyrightⓒ2004 17
4 장 . HW/SW Co-Design for SoC

HW / SW 동작 특성
 하드웨어로 구현 : 각각의 모듈이 병렬로 동작 , 하드웨어 면적의 증가
 소프트웨어로 구현 : 각각의 모듈이 순차적으로 동작 가능 , 수행시간의 증가

SW
SWImplementation
Implementation HW
HWImplementation
Implementation
Void V1(..)[..]
V1 V2 Void V1(..)[..]
void main()
{ V1 V2
v1(..);
v2(..);
}

Processor Hardware SW
SWSchedule
Schedule HW
HWSchedule
Schedule
P1 H1

… V1 … … V1 …

… V2 … V2 …
…t …t
Copyrightⓒ2004 18
4 장 . HW/SW Co-Design for SoC

HW 기능의 공유
 하드웨어 면적 (area) 최소화 가능
 수행시간 (execution time) 의 증가

V1 V2 V3 V4

AREA :
FU1 FU2 FU3 FU4 FU1 FU2 FU1
TIME :
V1 V1 V1
V2 V2 V2
V3 V3 V3
V4 V4 V4
t t t

Copyrightⓒ2004 19
4 장 . HW/SW Co-Design for SoC

HW 와 SW 간 Interfacing
 하드웨어와 소프트웨어의 데이터 전송을 위해 필요
 추가적인 통신 시간에 대한 고려 필요

Processor Hardware
V1 P1 H1
Channel C
Scheduling
V2
P1 V1

H1 V2
t

Copyrightⓒ2004 20
4 장 . HW/SW Co-Design for SoC

Scheduling
Invalid
 Channel Accesses V1 V1 V2
w1 r3 w3
 Communication
Channel 을 통해서 V2
V3
프로세서 (SW) 가 t
Valid
데이터를 Read 또는 V1 V2
Write 시 다른 동작 (HW V3
또는 SW) 불가능 w1 r3 r3
HW V3
SW t
 Execution Order
 [Read->Execution->
Write] 단계 Invalid
V1 V2
 Communication read1 read2
Channel 을 통해서 r1 r2 w1 w2

데이터를 읽음 (Read) V1 V2 t
 필요한 데이터를 읽은
Valid
후 실행 (Execution) write1 write2 V1 V2
 실행 결과를 다시 r1 w1 r2 w2
Communication SW
Channel 에 전송 (Write) t

Copyrightⓒ2004 21
4 장 . HW/SW Co-Design for SoC

Functional Pipelining
 전체 시스템의 수행시간 (Execution Time) 을 최적화
Not Total Execution Time
NotPipeline
Pipeline
V1 V2 V1 V2
V1

V3 V4 V3 V4
V2 V3 t

Pipeline Total Execution Time


Pipeline
V1 V2 V1 V2 V1 V2
V4

HW

SW V3 V4 V3 V4 V3
t

Copyrightⓒ2004 22
4 장 . HW/SW Co-Design for SoC

Partitioning Graph (Computation Models)


 State-oriented models
 시스템 을 상태 (States) 의 집합과 상태 변화 (Transition) 의 집합으로
표현
 Finite State Machine (FSM)
 Hierarchical Concurrent FSM
 계층적인 구조를 가짐
 하위 (Sub-State) 구조는 상위 구조와 Concurrent 하게 동작

C’/00 C’/00

S00 S00

C/10 C/00 C/10 C/00


S10

S02 S01 S02 S01 S13 S11

C/01 C/01
S12

C’/00 C’/00 C’/00 C’/00

FSM Hierarchical Concurrent FSM

Copyrightⓒ2004 23
4 장 . HW/SW Co-Design for SoC

Partitioning Graph (Computation Models)


 Activity-oriented models
 시스템을 Data 또는 Control Dependency 에 의한 Activity 의 집합으로 표현
 Data Flow Graph (DFG)
 Control Flow Graph (CFG)
 Control / Data Flow Graph (CDFG)
 CFG 와 DFG 를 합친 모델
 일반적으로 HW / SW Co-design 에서 많이 쓰임 .

Read Read Read Read Start


a b c d
read
10
i
i=1
+ -
<=

If i<=10
Read Read Read
* 1
X(i) Y(i) i
Z(i) = x(i)*y(i)
i=i+1
+ +
Write
r end
end

DFG CFG CDFG

Copyrightⓒ2004 24
4 장 . HW/SW Co-Design for SoC

Software Cost Estimation


 Software program memory
 Assembler Code 의 명령어 C - Specification
C - Specification
(Instruction) 개수로 추정
CCCompiler
Compiler
 Software data memory
Assembler Code
 Source Code 내의 모든 Assembler Code

변수들의 메모리 Instruction


Subroutine
Set
요구량으로부터 추정 Description
Library

 Software execution time Partitioning


Graph
 Instruction set Description 을
통해 명령어의 실행 시간 추정
 Subroutine Library 를 통해서
SW
SWEstimation
Estimation
서브루틴 ( 예 :Function 문 ) 의
수행시간을 추정

Copyrightⓒ2004 25
4 장 . HW/SW Co-Design for SoC

Hardware Cost Estimation


 C to VHDL
C - Specification
 하드웨어 비용의 추정을 위해 C - Specification
C Code 를 VHDL 코드로 변환
CC––VHDL
VHDL
Generator
Generator
 Hardware Cost 추정
VHDL Code
VHDL Code
 Architecture Library 를 통해서
VHDL 코드의 실제 하드웨어
면적 및 수행시간을 추정

Target
Architecture Partitioning
Graph

HW
HWEstimation
Estimation

Copyrightⓒ2004 26
4 장 . HW/SW Co-Design for SoC

Partitioning Algorithm 분류
 구조적 알고리즘 (Constructive algorithms)
 분할을 하기 전에 각각의 객체들을 그룹화
 객체들의 Closeness 를 이용해 그룹화
 회로의 규모가 커지면 , 그룹화 과정에서 과도한 수행시간

 반복적 알고리즘 (Iterative algorithms)


 일정한 방법에 의하여 분할된 초기 분할 결과를 이용하여
반복적으로 분할 대상 객체를 이동시켜 분할 결과를 항상 시킴
 Constructive 알고리즘에서 쓰는 Closeness 기능 보다 보다
정확한 평가 가능
 Greedy 알고리즘 , Simulated Annealing 알고리즘 등등

Copyrightⓒ2004 27
4 장 . HW/SW Co-Design for SoC

Clustering Partitioning Algorithm


 Closeness 를 사용하는 Constructive algorithm

 알고리듬
 Closeness 가 높은 객체들을 그룹화
 다시 Closeness 를 계산
 종결 조건이 만족할때 까지 반복 수행

30 O1 25 O1
O2 O1 O3 O1
20
15 O2 O2 O3
O2 O3 O3
10 10 O4
10 10 10 10
O4 O4
O4

Avg(10,10) = 10
Avg(15,25) = 20

Copyrightⓒ2004 28
4 장 . HW/SW Co-Design for SoC

Simulated Annealing
 Iterative algorithm modeled after physical annealing
process

 알고리즘
 초기 분할 시작 및 초기 온도 (temperature)
 천천히 온도 감소 e
 각각의 온도에서 무작위 이동 발생
 분할 비용 (Cost) 가 개선된 이동만 분할 적용
 온도가 높을 때는 분할 비용이 좋지 않은 이동도 분할 적용

 분할 결과 및 수행 시간 (Complexity) 은 온도 감소량
(Temperature decrease rate) 에 따라 달라짐

Copyrightⓒ2004 29
4 장 . HW/SW Co-Design for SoC

HW / SW Partitioning 관련 Works
 POLIS : U.C. Berkeley
 Co-simulation 을 통해서 성능을 추정을 해서 사용자가 직접 하드웨어 부분과
소프트웨어 부분으로 분할

 COSYMA (Software-oriented Partitioning) :


 Cost Estimation 에 의한 Simulated Annealing 알고리즘 사용
 시스템이 초기에는 소프트웨어로 구현되어 있으며 , 시스템 성능의 bottleneck
이 되는 부분을 찾아내어 하드웨어 부분으로 분할을 수행하여 시스템의 전체
수행시간 최소화 .

 Vulcan (Hardware-oriented Partitioning) : Stanford U.


 Greedy 알고리즘 사용
 HardwareC 로 기술된 시스템에서 greedy 알고리즘을 사용하여 noncritical op
eration 들을 Software 부분으로 분할하여 하드웨어의 크기 최소화

 Ptolemy
 Greedy 알고리즘 사용
 시스템의 시뮬레이션과 합성을 위한 통합 환경 제공
 전체 시스템을 통일되고 일반적인 언어로 기술하는 대신 각 서브 시스템에
적합한 표현 방식을 사용하며 이질적인 표현 방식들 간의 통일된 인터페이스를
제공

Copyrightⓒ2004 30
4 장 . HW/SW Co-Design for SoC

General Co-design Process


System
Specification

Control Data Performance Goal


Flow Graph
Cost Estimation
[Delay, Area, Power]

Constraint
C Analysis Memory / Pipeline
O Optimization
Hardware Software
Partitioning
I
Co Synthesis
S
Interface Library
I
M
U
L
A Software Hardware
T Specificaion Interface Specification
Specification
O
R Complier Behavioral
Synthesis

Memory Custom HW
Verification
Application C P U Application
SW SW Debugging
Device Driver Device Driver

System Bus

Copyrightⓒ2004 31
4 장 . HW/SW Co-Design for SoC

HW/SW Co-Synthesis
 분할된 결과로부터 각 하드웨어 /
소프트웨어 컴포넌트와 인터페이스를
합성하는 단계 Partition

 실제 시스템 구조 (architecture) 에
적합하도록 성능의 최적화 (optimizati
on)

 Hardware synthesis
 FPGA or ASIC SW HW
 HDL structural description
 기존 EDA tools send recv

 Design complier, Synplify

recv send
 Software synthesis
 Processor (ARM, Teak DSP…)
 C or Assembly code generation
 Compile & Optimize

 Interface synthesis
 Communication channel (BUS, Share Software with
interface
Hardware with
interface
d memory…)
 BUS and Protocol generation

Copyrightⓒ2004 32
4 장 . HW/SW Co-Design for SoC

Hardware Synthesis
 정의
 하드웨어 기술 언어 (HDL) 로 작성된 설계 명세 (specification)
로부터 하드웨어 설계를 자동적으로 구현하는 단계

 목표
 빠른 설계의 작성과 수정
 다양한 설계 대안을 제시하는 방법론이 지원
 VLSI 설계 시 디자이너가 지나치게 상세한 부분에 대한 처리를
제거
 정확하게 설계된 개발이 가능

Copyrightⓒ2004 33
4 장 . HW/SW Co-Design for SoC

Hardware Synthesis (con’t)


 Communication considering
 Receive, send, control logics 생성

C E

A B D G

Hardware F

Communication Network

C Send 1 Hardware
Receive Send
Recv 1 B D Logic C Logic
B D
Send 2

Hardware
Clock

Control Logic

Copyrightⓒ2004 34
4 장 . HW/SW Co-Design for SoC

Wrapper for Hardware core ASIC


 Wrapper
 Network protocol 에 따라 신호를 생성
 Core ASIC 의 수정이 없는 architecture independent 한 특성

Wrapper
Data Bus

Output Ready
Signals for
Processor protocol
ASIC
Intput Ready

Start

Copyrightⓒ2004 35
4 장 . HW/SW Co-Design for SoC

Software Synthesis
 정의
 명세서 (specifications) 와 재사용 가능한 컴포넌트로부터
정확하고 효율적인 소프트웨어를 자동으로 생성하는 단계

 목표
 소프트웨어 생산성의 향상
 낮은 개발 단가
 명세서를 만족하는 소프트웨어 구현의 신뢰성 향상
 정확한 프로그램 개발 가능
 메모리 사용의 최소화 ( 코드 , 데이터 )

Copyrightⓒ2004 36
4 장 . HW/SW Co-Design for SoC

Software Synthesis (con’t)



void main()
{ C E

… A B D G

/* hardware execution */ Software F

recv(data);
B();
C();
C Send 1
D(); Recv 1 B D

send(data1, data2); Send 2

/* hardware execution */ software

...
}

Copyrightⓒ2004 37
4 장 . HW/SW Co-Design for SoC

Interface Synthesis
 이종 컴포넌트간의 통신이 가능하도록 합성하는 단계

 Interface components
 Hardware : bus interface, glue logic
 Software : device driver, operating system

 Target architecture 에 의존적

Operating Processor ASIC


System Communication
Architecture

Device Drivers
Network Network
Interface Interface

On-chip Network

Copyrightⓒ2004 38
4 장 . HW/SW Co-Design for SoC

Model, Channel, Protocol 의 종류


 Communication Model Inter-process Communication Model
 Message passing Shared Memory M

 Shared memory
communication Process A Process B Process A Process B

Channel
begin begin begin begin
variable i; variable j; variable i; variable j;
 Communication Channels ...
M := i;
...
j := M;
...
send(i);
...
receive(j);
... ... ... ...
 Dedicated lines end end end end

 Bus < Shared Memory > < Message Passing >

 FIFO buffers
 Shared memory

 Communication Protocols
 2-phase or 4-phase
handshake
 RS-232, USB, PCI and etc…

Copyrightⓒ2004 39
4 장 . HW/SW Co-Design for SoC

Communication Channels 의 특징
Communication Communication Blocking or
Topology
Channel Model Non-blocking

Dedicated lines Message passing Blocking Point-to-point

Bus (without memory) Message passing Blocking Multi-way

FIFO Message passing Non-blocking Point-to-point

FIFO Shared memory Non-blocking Multi-way

Copyrightⓒ2004 40
4 장 . HW/SW Co-Design for SoC

Channel Refinement
 메시지가 전송되는 채널을
실제적인 통신 네트워크로 구축 Channels
F2
 Bus generation F1
 bus width 결정
 data line 의 개수
F3

 Protocol generation
Microprocessor
 버스를 통해 일어나는 전송 F1
메커니즘의 정의 OS
ASIC ASIC
F2 F3
Device Drivers

Network Interface Network Interface Network Interface

Physical Communication Network

Copyrightⓒ2004 41
4 장 . HW/SW Co-Design for SoC

General Co-design Process


System
Specification

Control Data Performance Goal


Flow Graph
Cost Estimation
[Delay, Area, Power]

Constraint
C Analysis Memory / Pipeline
O Optimization
Hardware Software
Partitioning
I
Co Synthesis
S
Interface Library
I
M
U
L
A Software Hardware
T Specificaion Interface Specification
Specification
O
R Complier Behavioral
Synthesis

Memory Custom HW
Verification
Application C P U Application
SW SW Debugging
Device Driver Device Driver

System Bus

Copyrightⓒ2004 42
4 장 . HW/SW Co-Design for SoC

HW/SW Co-verification 란 ?
 ASIC 으로 구현되는 하드웨어의 Software Code HDL Code

동작과 마이크로프로세서
위에서 돌아가는 소프트웨어를
동시에 고려하여 회로의 동작을
Compiler Processor Model Setup
검증하는 방법

 SoC, embedded system 같은 Link

하드웨어 요소와 소프트웨어 Configuration File Name


Specification
요소를 동시에 가지고 있는
시스템의 검증시 사용 Debug Files Information

 각 디자인 단계에서 하드웨어와 Configuration File Setup Debug Memory Definition

소프트웨어 요소가 가질 수
있는 모든 문제점을 빠르게
발견하여 수정 HW/SW Co-verification

Copyrightⓒ2004 43
4 장 . HW/SW Co-Design for SoC

Co-verification Methods
 시뮬레이션 기반 (Simulation-based)
 장점 : 유동성 (flexibility), high visibility
 단점 : 검증 속도가 매우 느림
 실제적인 구현 전 단계에서 사용가능 하여 경제적

 에뮬레이션 기반 (Emulation-based)
 장점 : speed, ICE capability
 단점 : high cost, low visibility
 실제적으로 동작하는 과정을 보며 검증 가능

Copyrightⓒ2004 44
4 장 . HW/SW Co-Design for SoC

Co-simulation
 Soft or Virtual Prototype
 Software models for system HDL
Bus
ISS Simulator
 Simulator Feature Functional
(C/C++) (VHDL,
 ISS (Instruction Set Simulator) Model
Verilog)
 HDL simulator
 Virtual Interface

 Hardware Simulation
 Behavioral level HDL 로 구현하고 logic sim Source Level Debugger
ulator 를 사용하여 시뮬레이션

 Software Simulation
 Instruction Set Simulator (ISS) 을 사용하여
컴파일 된 코드를 호스트에서 실행시킴 Processor
(ISS)
 Abstract RTOS 를 지원해야 함
 Peripherals 를 C-model 로 작성하여
시뮬레이션

 Interface Simulation System Interface


 가상의 transaction 을 사용
 Abstract device driver 와 하드웨어 로직을
위해 behavioral level HDL 로 wrapper 를
기술
Peripherals
(C-models)

Copyrightⓒ2004 45
4 장 . HW/SW Co-Design for SoC

Co-emulation
 Real prototype Emulation System

 Hardware models for system CPU DSP FPGA

System-Level
Testbench

 Emulation system feature


Memory UART Etc...
 FPGA for HW prototype
 Real CPU for SW code
 Peripherals for I/O
Source Level Debugger

 에뮬레이션 시스템은 Processor


(RTL)

시뮬레이터에 비해 매우
빠르게 동작하므로 검증 시간 System Interface
(BUS)

단축
Peripherals
(RTL)

Copyrightⓒ2004 46
4 장 . HW/SW Co-Design for SoC

Co-verification Strategy
 각 설계 단계 별로 시뮬레이션과 에뮬레이션을 사용하여
시스템 검증

 설계 초기 단계
 Virtual prototype 을 사용하는 co-simulation 에 의한 검증
 Prototype 의 검증을 통해 설계 초기 단계에 나타나는 비교적
간단한 문제점을 빠르게 제거할 수 있음

 설계 중반 및 구현 단계
 Real prototype 을 사용하는 co-emulation 에 의한 검증
 RTL or Gate level 에서 발생할 수 있는 문제점 같은 구현
단계에서 나타날 수 있는 문제점을 제거

Copyrightⓒ2004 47
4 장 . HW/SW Co-Design for SoC

HW/SW Co-design for SoC


 HW/SW Co-design Introduction
 HW/SW Co-design Methodology
 System Specification
 HW/SW Co-partitioning
 HW/SW Co-synthesis
 HW/SW Co-verification
 Co-design Related Works
 참고문헌

Copyrightⓒ2004 48
4 장 . HW/SW Co-Design for SoC

Mentor Graphics Seamless CVE


 Seamless® 는 하드웨어 시뮬레이터 , ISS, abstract
RTOS, virtual interface 를 통하여 , 우수한 co-
simulation 환경을 제공

ISS BUS transaction

HDL simulator

Copyrightⓒ2004 49
4 장 . HW/SW Co-Design for SoC

Altera Excalibur
 ARM core, AHB, FPGA 를 하나의 칩 안에 구성
 실제 구현단계에서의 빠르고 뛰어난 HW/SW 검증 환경 제공
AHB
ARM core

FPGA

Copyrightⓒ2004 50
4 장 . HW/SW Co-Design for SoC

EDA Co-design/Co-simulation Tools


Company Product Feature

Cadence VCC HW/SW co-design tool

Coware N2C C/C++ based high-level co-design tool

SystemC based co-design & co-verification t


Synopsys CoCentric System Studio
ool

Mentor
Platform Express Platform based SoC design tool
Graphics
Mentor
Seamless CVE HW/SW co-simulation tool
Graphics

Copyrightⓒ2004 51
4 장 . HW/SW Co-Design for SoC

HW/SW Co-design for SoC


 HW/SW Co-design Introduction
 HW/SW Co-design Methodology
 System Specification
 HW/SW Co-partitioning
 HW/SW Co-synthesis
 HW/SW Co-verification
 Co-design Related Works
 참고문헌

Copyrightⓒ2004 52
4 장 . HW/SW Co-Design for SoC

참고문헌
 The Codesign of Embedded Systems : A Unified Hardware/Soft
ware Representation, Sanjaya Kumar, James H.Aylor, Barry W.J
ohnson, Wm. A. Wulf
 Synthesis and simulation of digital systems containing interactin
g hardware and software components 29th dac
 A model and methodology for hardware-software codesign
 CAP Laboratory Homepage (http://peace.snu.ac.kr/)
 Pai Chou, Ross Ortega, Gaetano Borriello, "Synthesis of the Har
dware/Software Interface in Microcontroller-Based Systems," Pr
oceedings of the IEEE/ACM International Conference on Compu
ter-Aided Design, Santa Clara, CA, November 1992. pp.488-49
5.

Copyrightⓒ2004 53

You might also like