PowerPoint 프레젠테이션

Download Report

Transcript PowerPoint 프레젠테이션

SOC 발전 동향
2013년
System Centroid Inc.
( slide 1 )
July 18, 2015
내용
System Centroid Inc.
•
SoC Design Trend
•
Platform Based Design
•
IP Reuse
•
SystemC for ESL Design
•
Reference
( slide 2 )
July 18, 2015
SoC Design Trend
System Centroid Inc.
( slide 3 )
July 18, 2015
반도체 산업의 변화
•
System Centroid Inc.
반도체 산업 구조의 변화

From vertical-oriented business

To horizontal-oriented business
•
Time-to-Market의 압박 증가
•
NRE 비용의 급격한 증가

마스크 제작 비용

반도체 공장 개발 비용

설계 비용
•
임베디드 프로세서의 증가
•
임베디드 소프트웨어의 복잡도 증가
( slide 4 )
July 18, 2015
사용자 환경의 변화
•
3C의 융합 (Convergence)

•
3rd Phase에 들어서는 컴퓨터 기술

•
Computers, Communications and Consumer Electronics
Computing Power => Networking => Man-Machine Interface
유비쿼터스 (하나의 네트웍)

Any Device, Any Time, Any Where

All information, communication & broadcasting available
System Centroid Inc.
( slide 5 )
July 18, 2015
임베디드 시스템의 보편화
System Centroid Inc.
( slide 6 )
July 18, 2015
임베디드 시스템의 특징
System Centroid Inc.
( slide 7 )
July 18, 2015
임베디드 시스템 응용 사례
•
•
도로 상태에 따라 발굽의 쿠션 강도를 조정하는 장치의 ADIDAS 운동화
Hall Effect 센서가 전자기장의 변화를 감지해 20 MHz Embedded Processor에 전
달하면 운동화가 공중에 떠 있을 때 쿠션의 강도를 조정 (10,000번/초)
System Centroid Inc.
( slide 8 )
July 18, 2015
From ASIC To SoC
ASIC
SoC
• Single Chip
P
Core
• Hardware & Software (uProcessor + RAM)
• Digital & Analog Components
• Mechanical, Optical, Chemical, Biological
System Centroid Inc.
RAM
DCT
Core
ADC
DAC
RF
Year
Technology
Vdd (V)
Trs (M)
Pins
Clock (Hz)
Power (W)
DRAM (Gbits)
2001
130n
1.1-1.2
193
1024
1,684
130
0.5
2004
90n
1.1-1.2
385
1024
3,990
160
1
( slide 9 )
July 18, 2015
B-CDMA SoC Layout
Gilles SASSATELLI, “Lecture on Reconfigurable Technologies”
System Centroid Inc.
( slide 10 )
July 18, 2015
반도체 기술의 발전
First bipolar
Transistor
(1947)
1950
 Heterogeneous
 IP and Platform-based Design
 Scaleable, reuse methodology
One-transistor
DRAM cell
Invented
First
(1968)
MOSFET
(1960)
1960
1970
CMOS
Invented
IC (1963)
First
Invented
Microprocessor
(1958)
(1971)
System Centroid Inc.
SoC era
VLSI
1980
1990
Computer Focus
PC
μp + Memory
( slide 11 )
GSI
2000
2010
2020
Communication
Focus
Mobile Communication
Multimedia
July 18, 2015
Moore의 법칙
Intel Dev. Forum (2003)
1G
100M
10M
1M
100K
10K
1K
1970
1975
1980
1985
1990
1995
2000
2005
The number of transistors on chip doubles each 18 months.
Gordon Moore (1965)
System Centroid Inc.
( slide 12 )
July 18, 2015
Intel 칩의 발전
http://www.intel.com/intel/intelis/museum/exhibit/hist_micro/hof/hof_main.htm
System Centroid Inc.
( slide 13 )
July 18, 2015
Time-to-Market 모델
• 6 month market window is common.
• w=1 year, d=4 months => 40.5% loss
Revenues ($)
Peak revenue from on-time
entry
Peak revenue from delayed
entry
On-time
Market fall
Market rise
Delayed
Time
D
On-time
entry
System Centroid Inc.
Delayed
entry
W
2W
Loss = Total_Expected_Avenue X
( slide 14 )
D(3W-D)
2W2
JulySmith
18, 1997
2015
SoC 칩 제작 실패 원인 분석
•
SoC 칩 제작 성공율의 저하
•
첫번째 공정 성공율
 48% in 2000
 39% in 2002
 34% in 2003
•
세번째 공정 성공율
 90% in 2000
 70% in 2002
 60% in 2003
Collett International Research
2000, 2002 Functional Verification Studies
2003 Design Closure Study
System Centroid Inc.
( slide 15 )
July 18, 2015
Design Productivity
100,000
1,000
10,000
100
1,000
10
o o
1
0.1
0.01
0.001
1980
o
o
o
x
x x
1985
o
o
xx
o
100
o o
x
10
x
1
Productivity (K)
Logic Transistor per Chip (M)
10,000
x
0.1
1990
1995
2000
2005
0.01
2010
Source : SEMATECH
SoC 설계는 하나의 칩안에 더욱 많은 IP가 집적되고 Time-to-Market은
짧아지는 특징 때문에 더욱 복잡해지고 있다.
System Centroid Inc.
( slide 16 )
ITRS 2015
1999
July 18,
Design Productivity
설계방법론의 진화
McKinsey S-Curve
1999
IP Reuse
Platform
ESL Design
1992
1985
Synthesis – Cadence, Synopsys
Schematic Entry – Daisy, Mentor, Valid
1978
Transistor Entry – Calma, ComputerVision
Design Methodology (Tools)
System Centroid Inc.
( slide 17 )
July 18, 2015
설계 자동화 기술의 진화
Decade
Design
Technology
Design
Elements
Granularity
Chip
Architecture
2010s
Communication
Centric PBD
Sub-System,
Communication
106
Network
On a chip
2000s
IP/Processor
Centric PBD
IP, RISC/DSP,
Peripheral
104
System
on a chip
1990s
RTL/Logic
Synthesis
Arithmetic Unit,
Register, Mux
102
Algorithm
on a chip
1980s
Physical
Synthesis
Standard Cell,
Logic Gate, F/F,
Latch
10
1970s
Manual
Polygons
System Centroid Inc.
( slide 18 )
July 18, 2015
Platform
Based Design
System Centroid Inc.
( slide 19 )
July 18, 2015
IP 재사용 설계방법론의 진화
SRAM
P core
Logic
ASIC on DSM
Timing Driven Design
Methodology
Personal
Reuse Portfolio
Designer-specific
Reuse Practices
P core
SRAM
ROM
Soft I/F IP
Complex ASIC
with a Few IPs
ROM
MPEG
RAM
Data
Cash
I/F
Logic
Plug and Play
System on a Chip
Block Based Design
Methodology
Platform Based Design
Methodology
Core
Reuse Portfolio
Predictable,
Pre-verified Core
Functions
Opportunistic IP Reuse
System Centroid Inc.
ATM
Logic
Source
Reuse Portfolio
Functional
Starting
Points for Block
Design
ROM
Virtual Component
Reuse Portfolio
Socketized
Functions for
Plug & Play
Integration
Planned IP Reuse
( slide 20 )
“Surviving the SOC Revolution,” Chang et al.
July 18, 2015
플랫폼 기반 설계 환경
Pre-Qualified/Verified
Foundation-IP*
Foundation Block + Reference Design
MEM
Hardware IP
Software IP
Application
Space CPU
FPGA
Programmable
Scaleable
bus, test, power, IO,
clock, timing architectures
Processor(s), RTOS(es)
and SW architecture
Methodology / Flows:
System-level performance
evaluation environment
*IP can be hardware (digital
or analogue) or software.
IP can be hard, soft or
‘firm’ (HW), source or
object (SW)
System Centroid Inc.
Foundry-Specific
Pre-Qualification
Rapid Prototype for
End-Customer Evaluation
SoC Derivative Design
Methodologies
Foundry Targetting Flow
( slide 21 )
July 18, 2015
Platform based Design의 필요성
Deconfiguration is easier than configuration
Bob Payne
1.
IC 제작과정이 질서적이고 표준화되고 생산성이 높아지며 실패 위험성이 매
우 낮아진다.
2.
새롭게 대두되는 IP 재사용에 질서와 방법론을 제공한다. IP가 알려진 아키
텍쳐와 예측 가능한 인터페이스에 맞추어 설계한다.
3.
하드웨어와 소프트웨어 설계자가 상호 대응하며 설계하는 장이 마련된다.
4.
빠른 시간에 더욱 안전하게 여러 파생회로를 설계할 수 있는 능력과 생산성
을 향상시키는 시스템 수준으로 진화할 수 있다.
System Centroid Inc.
( slide 22 )
July 18, 2015
Terminology
A Platform is a family of architectures that satisfy a set of
architectural constraints, imposed to allow the reuse of
hardware and software components.
A Library is the design space that we can explore at the
appropriate level of abstraction.
 Computation & communication components
 Characterization in terms of performance & functionality
A Platform Instance is a set of architecture components that are
selected from the library and whose parameters are set.
A Platform Stack is a pair of platforms, along with the tools and
methods that are used to map the upper layer of abstraction into
the lower level.
System Centroid Inc.
“Platform-Based
P. Carloni
et al.
( slide 23 ) Design for Embedded Systems” LucaJuly
18, 2015
Meet-in-the-Middle Design
Constraints Propagation
System Centroid Inc.
Performance Estimation
Meet-in-the-Middle
A Platform-Based
Design is
 The identification of design as a meeting-in-the-middle
process, where successive refinements of specifications
meet with abstractions of potential implementations.
 The identification of precisely defined layers where the
refinement and abstraction process take place.
“Platform-Based Design for Embedded Systems” Luca P. Carloni et al.
( slide 24 )
July 18, 2015
시스템 구현 방법의 Trade-off
SoC
ASIC
Time
To
Market
FPGA
HW/SW
Platform
Embedded
Software
Configurability
Performance
System Centroid Inc.
( slide 25 )
July 18, 2015
ASIC Design Flow
Chip Requirement
Dev. & Review
Architecture
RTL
Sim. & Ver.
Design Entry
Front-end
Design
Logic & Test
Synthesis
Floorplanning
Gate-Level
Sim. & Ver.
Pre-layout Static
Timing Analysis
Timing-Driven
Placement
Back-end
Design
Routing
Post-Layout Static
Timing Analysis
Manufacturing
Manufacturing
Product
Development
Testing
System Centroid Inc.
( slide 26 )
Auto-Test Pattern
Generation
July 18, 2015
SoC Design Flow
Chip Architecture
Development
Architecture
New Core Design
Front-end
Design
Core Selection
External IP
Chip Assembly/Platform Mapping
System
Sim. & Ver.
Logic & Test
Synthesis
RTL
Sim. & Ver.
Pre-layout Static
Timing Analysis
Gate-Level
Sim. & Ver.
Floorplanning
Timing-Driven
Placement
Back-end
Design
Routing
Post-Layout Static
Timing Analysis
Manufacturing
Product
Development
System Centroid Inc.
Manufacturing
Auto-Test Pattern
Generation
Testing
( slide 27 )
July 18, 2015
Full Application Platform
•
•
•
System Centroid Inc.
Full Application Platform
 OMAP (Cellular Phone) @ Texas Instruments
 Nexperia (Consumer Electronics) @ Philips
 MGold @ Infineon
 Centrino (Lap Top) @ Intel
HW/SW의 포괄적인 라이브러리 제공
여러 개의 응용 예제 회로를 제공
( slide 28 )
July 18, 2015
Processor Centric Platform
•
•
•
System Centroid Inc.
Processor-Centric Platform
 Jazz @ Improv
 Micropack @ ARM
 Starcore @ ST Micro
프로세서와 주변모듈을 제공
SW 드라이버와 기본적인 응용 프로그램을 제공
( slide 29 )
July 18, 2015
Communication Centric Platform
•
•
Communication-Centric Platform
 Micro Network @ Sonics
 PalmPark @ Palmchip
통신 프레임웍에 주변 모듈들을 제공
SONICs Architecture
DMA
CPU
DSP
MPEG
{
MultiChip
Backplane™
SiliconBackplane™
(patented)
C
System Centroid Inc.
Open Core
Protocol™
MEM
I
( slide 30 )
O
SiliconBackplane
Agent™
July 18, 2015
High Programmable Platform
•
•
Programmable Platform
 A7 @ Triscend
 Excalibur @ Altera
 Virtex II/IV @ Xilinx
Reconfigurable 프로세서와 프로그
래머블 로직을 제공
Triscend A7
System Centroid Inc.
( slide 31 )
July 18, 2015
IP Reuse
System Centroid Inc.
( slide 32 )
July 18, 2015
VC & IP
•
A design is not a core (semiconductor IP)
unless it is designed, documented and supported
for repeated use
by multiple design teams
in multiple applications.
(Thomas L. Anderson)
•
Product, technology, software, etc. that have been protected through
patents, copyrights, or trade secrets.
Design
Module
Virtual
Component
Design
Standard
System Centroid Inc.
Semiconductor
Intellectual
Property
Legal
Protection
( slide 33 )
SoC
Integration
July 18, 2015
반도체 IP 분류
Design
Flow
System
Design
RTL
Design
Soft IP
Not Predictable
Very Flexible
Firm IP
Predictable
Flexible
Hard IP
Very Predictable
Not Flexible
Representation
Libraries
Technology
Portability
N/A
Technology
Independent
Unlimited
Behavioral
RTL
Floor
Planning
Synthesis
Placement
RTL
& Block
Netlist
Reference Library
• Footprint
• Timing Model
• Wiring Model
Technology
Generic
Library
Mapping
Routing
Verification
Polygon
Data
Process Specific
Library
Design Rules
Technology
Fixed
Process
Mapping
System Centroid Inc.
( slide 34 )
July 18, 2015
반도체 IP 관련 기관
기관명
나라
기능
설립연도
WWW
VSIA
미국
IP 표준규격 제정
1996
www.vsi.org
D&R
프랑스
IP 카탈로그 서비스
1997
www.designreuse.com
VCX
영국
IP의 온라인 유통
1998
www.thevcx.org
IPTC
일본
자국내 IP 유통
2000
www.iptc.co.jp
SoC
Consortium
대만
자국내 IP 유통
2001
www.taiwansoc.org
HKSIP
홍콩
자국내 IP 유통
2001
www.hkstp.com
BJIPC
중국
자국내 IP 유통
2003
www.ipmall.cn
SSIPEX
중국
자국내 IP 유통
2003
www.ssipex.com
System Centroid Inc.
( slide 35 )
July 18, 2015
VSIA
• VSIA (Virtual Socket Interface Alliance)
 1996년 반도체, IP & EDA 회사로 조
직 (www.vsia.org)
 IP 코어의 Virtual Socket에 집적에
요구되는 공개적인 표준 인터페이스
를 개발하는 목적
 IP Quality Pillar : IP 품질을 평가할
수 있는 표준 Metric 개발
 IP Protection Pillar : IP의 불법적 배
포를 막기 위하여 표준 Tag 개발
 IP Transfer Pillar : IP 교환을 원활
히 하기 위한 방법론 개발
System Centroid Inc.
( slide 36 )
July 18, 2015
국내 반도체 IP 유통 센터
•
System IC 2010 사업
 산자부, 과기부 출연, KSIA 수행 since 1997
 설계 과제에서 산출되는 IP 의무적 등록
 KETI의 IP DB Center (www.ipcos.or.kr)
•
IP 기반 IT-SoC 설계환경 구축 사업
 정통부, ETRI 수행 since 2000
 외국 IP 도입 & ARM 기반 플랫폼 구축
 IT-SOC의 IP DB Center (www.asic.net)
•
반도체설계진흥사업
 특허청 출연, SIPAC & KIPEX 수행 since 2001
 Soft IP 등록 법률 제정
 SIP 유통 (www.kipex.or.kr)
System Centroid Inc.
( slide 37 )
July 18, 2015
주요 IP 공급자 매출 통계
Rank
Company
2003
($M)
2004
($M)
Growth
Share
Cumul.
Share
Product
1
ARM
175.2
312.2
78%
25%
25%
Processor
2
Rambus
118.2
144.9
23%
11%
36%
Memory
3
TTPCom
76.4
104.1
36%
8%
44%
Wireless
4
Synopsys
78.9
76.2
-3%
6%
50%
USB, PCI
5
MIPS Technologies
40.4
56.7
40%
4%
55%
Processor
6
Virage Logic
40.6
53.0
30%
4%
59%
Logic, I/O
7
Ceva
36.8
38.5
5%
3%
62%
DSP
8
Imagination Technologies
23.6
28.6
21%
2
64%
3D Graphic
9
Mentor Graphics
22.2
27.3
23%
2
66%
USB, PCI
Silicon Image
14.2
20.8
47%
2%
68%
HDMI,SATA
Total (Top 10)
626.5
862.3
38%
68%
68%
Others
429.3
411.5
-4%
32%
100%
1,055.7
1,273.8
21%
100%
100%
10
Total
Gartner Dataquest (May 2005)
System Centroid Inc.
( slide 38 )
July 18, 2015
HDL Coding Guideline
• 목적
 Readable, Modifiable, Reusable HDL codes
 Optimal results in synthesis and simulation
• 주요 항목
 Basic coding practices
 Coding for portability
 Guidelines for clocks and resets
 Coding for synthesis
 Partitioning for synthesis
 Designing with memories
 Code profiling
System Centroid Inc.
( slide 39 )
July 18, 2015
RTL Coding Guideline 철학
• 단순함
 간단한 구조, 기본 타입, 단순한 클럭킹 체계
• 일관성
 일관성 있는 코딩 스타일, 작명법, 구조
• 규칙적 분할 구조
 Registered 모듈 출력, 모듈 크기의 평준화
• 이해 용이성
 코멘트, 의미있는 이름, 숫자보다 constant 혹은
parameter 사용
System Centroid Inc.
( slide 40 )
July 18, 2015
일반적인 작명법
Rule
Guide
line
 문서화된 설계 작명법을 마련하여 꾸준히 사용한다.
 Signal, Variable, Port 이름은 소문자를 사용한다.
input rst;
wire [7:0] ram_adr;
reg r_tmp;
Guide
line
port (
ready : in std_logic;
overflow : out std_logic);
signal carry : std_logic;
variable r_tmp : integer;
 Constant나 사용자 정의 타입은 대문자를 사용한다.
`define VDD = 1’b1;
parameter ADR_WIDTH = 16;
System Centroid Inc.
constant HIGH : std_logic := ‘1’;
type BLOCK_SIZE is range 64 to 256;
( slide 41 )
July 18, 2015
Indentation
Rule
 계속되는 문장이나 내부 문장은 들여쓰기를 한다.
Guide
line
 2개의 Space로 들여쓰기를 한다.
Guide
line
 컴퓨터마다 Tab 크기가 다르므로 Tab을 사용하지 않는다.
always @(a)
begin
tmp = 1'b0;
for (i = 0; i <= 7; i = i + 1)
tmp = tmp ^ a[i];
z = {a, tmp};
end
System Centroid Inc.
( slide 42 )
process (a)
variable tmp: std_logic;
begin
tmp := '0';
for i in 0 to 7 loop
tmp := tmp xor a(i);
end loop;
z <= a & tmp;
end process;
July 18, 2015
Port Map & Generic Map
Rule
 Port와 Generic의 매핑은 위치결합방식 보다는 이름결합방
식을 항상 사용한다.
comp6
#(.width(8),
.addtype(0))
U_CHECKDONE (
.tc (`GND),
.a (b_hold),
.b (`ZERO8),
.lt(),
.gt(),
.eq(done_s),
.le(),
.ge(),
.ne(bneq0));
System Centroid Inc.
U_CHECKDONE : comp6
generic map (
width => 8,
addtype => 0)
port map (
tc => GND,
a => b_hold,
b => ZERO8,
lt => open,
gt => open,
eq => done_s,
le => open,
ge => open,
ne => bneq0);
( slide 43 )
July 18, 2015
IEEE Standard Type
Rule
 IEEE 표준 Type만을 사용한다.
VHDL
Guide
line
VHDL
Guide
line
VHDL
Guide
line
VHDL
-- Create new 16-bit subtype
Subtype WORD_TYPE is std_logic_vector (15 downto 0);
 Std_ulogic 보다는 std_logic을, std_ulogic_vector 보다는
std_logic_vector을 사용한다.
 사용자가 정의하는 Subtype의 개수가 많아지지 않도록 한다.
코드의 가독성을 떨어뜨린다.
 Bit와 bit_vector를 사용하지 않는다. 많은 시뮬레이터들이
이 Type의 연산함수를 제공하지 않는다.
use ieee.std_logic.arith.all;
signal a, b, c : std_logic_vector(15 downto 0);
c <= a + b;
System Centroid Inc.
( slide 44 )
July 18, 2015
Related Combinational Logic
Guide
line
 상호 관계가 있는 조합논리는 동일 모듈에 배치한다.
 관계된 조합논리가 동일 모듈에 있을때 더욱 최적화
된 결과를 얻는다.
Module A
Module B
CL
CL
Reg A
Reg B
CLK
CLK
레지스터와 조합논리가 함께 배치된 바람직한 분할
System Centroid Inc.
( slide 45 )
July 18, 2015
Gated Clock & Low Power Design
Guide
line
 Gated Clock 이나 내부에서 생성된 Clock를 꼭 사용해야 한
다면 이것들을 생성하는 모듈을 별도로 설계하고 최상위 계
층에 배치한다. 그러면 모든 블록이 하나의 Clock과 Reset
으로 설계된다.
Top
clk1
Clock
Generator
clk2
clk3
System Centroid Inc.
( slide 46 )
Macro 1
Macro 2
Macro 3
July 18, 2015
Chip Level Partitioning
Guide
line
 최상위 레벨에서는 I/O Pad Ring과 Clock Generator 만을 포
함한다. 다음 레벨에는 IEEE 1149.1 Boundary Scan (JTAG)
모듈과 코어 로직을 포함한다. Clock Generator는 수작업으
로 만들어지기 때문에 나머지 회로와 분리되어야 한다.
TOP
Clock
Generator
Core
Pad
JTAG
System Centroid Inc.
( slide 47 )
July 18, 2015
IP 품질평가의 필요성
•
•
•
IP integrator들의 불만

IP 선정에 걸리는 오랜 시간

IP 판매자 지원 서비스의 부족

불충분한 검증 환경
IP 선택시 문제점

IP를 어떻게 평가할 것인가?

유사한 IP들의 우열을 어떻게 평가할 것인가?
IP의 품질 평가를 어떻게 할 것인가?
System Centroid Inc.
( slide 48 )
July 18, 2015
Quality IP Metric
•
•
•
품질 평가란

IP 구매자 요구사항에 부합하는 정도를 측정하는 수단

좋은 품질의 IP가 실패 위험은 낮추고 성공 기회는 높인다.
종래의 IP 품질 평가 방법

기업 내부의 품질평가 규정을 만들어 적용

OpenMore of RMM
VSIA의 Quality IP metric (QIP) v2.03

"apples to apples" 비교 방법

IP 판매자와 구매자 간의 일관성 있는 IP 품질 평가 수단

좋은 설계는 IP 설계로 부터 고객에게 전달 및 서비스에 이르
기까지 좋은 설계 경험의 결과물과 일치
System Centroid Inc.
( slide 49 )
July 18, 2015
VSIA의 Quality IP Metric
•
VSIA Alliance의 Quality Pillar와 FSA의 IP Committee가 연합하
여 Quality IP Metric 2.0을 공개 (2006.2)
•
•
IP 품질을 평가하는 객관적 평가 수단

IP 사용자는 유사 IP들을 비교하여 평가하는 수단

IP 판매자는 IP 제품의 품질 표준 준수를 홍보하는 수단
Quality IP Metric

Microsoft Excel™ spreadsheet

IP 판매자와 IP의 성숙도를 평가하는 질문들의 집합

질문은 계층구조로 분류되고 가중치를 달리 배정

IP Development, IP Integration 및 Vendor Assessment 항
목

높은 점수의 IP가 성공적 재사용 가능성이 높음
System Centroid Inc.
( slide 50 )
July 18, 2015
QIP 기본 구조
•
Vendor Assessment
0%
IP Integration Assessment
0%
IP Development Assessment
0%
Total
0%
•
•
System Centroid Inc.
Vendor Assessment

IP 제공자 자신이 해야할 것들

회사에 대해 한번 작성
IP Integration Assessment

IP 제공자가 전달해야 할 것들

각각의 IP에 대해 작성
IP Development Assessment

IP를 설계하는 기본 환경

설계 그룹에 대해 한번 작성
( slide 51 )
July 18, 2015
QIP Badge
•
IP 판매 QIP 배지

IP 판매자는 각각의 IP 제품에 대해 QIP
를 작성하고 고객에게 공개

IP가 VSIA의 QIP로 평가받았음을 나타
내는 배지를 사용
•
IP 사용 QIP 배지

IP 구매자는 QIP 종합점수, 혹은 질문 각
각의 점수, 혹은 가중치를 달리하여 IP 평
가

QIP로 평가된 IP를 구배하였음을 나타내
는 배지를 사용
System Centroid Inc.
( slide 52 )
July 18, 2015
Summary Sheet
최종 점수
기본 정보
카테고리별
점수
System Centroid Inc.
( slide 53 )
July 18, 2015
점수 가산 방식
•
System Centroid Inc.
상향으로 흰색, 초록색, 파란색, 핑크색으로 점수가
합산
( slide 54 )
July 18, 2015
Vendor Assessment 질
1
문
Vendor Assessment
223
1. 1
Processes
1. 1. 1
IP 판매회사 혹은 개발부서가 ISO9001, CMMI, ISO/TS, 16949 등의 표준 산업 품질보증을 갖고 있는가?
y
5
1. 1. 2
IP 개발 프로세스가 규정되어 있고 문서화 되어 있는가?
y
5
1. 1. 3
문서화된 IP 개발 프로세스가 꾸준히 지켜지고 있는가?
y
5
1. 1. 4
IP 품질 보증이 개발자가 소속되지 않은 다른 그룹에 의해 독립적으로 평가되는가?
y
5
1. 1. 5
IP 품질을 지속적으로 개선하려는 프로세스가 존재하고 꾸준히 지켜지고 있는가?
y
5
1. 1. 6
고객의 만족도를 측정하려는 프로세스가 존재하고 꾸준히 사용되고 있는가?
y
5
1. 1. 7
설계, 검증, QA 프로세스를 준수하는지 검사하는 감시 프로세스가 존재하는가?
n
0
1. 1. 8
VSIA QIP를 꾸준히 사용하고 있는가?
y
5
1. 1. 9
문서화된 IP를 개발하기 위하여 EDA 툴들과 여러 버전이 사용되는가?
y
5
1. 2
Verification
1. 2. 1
검증 절차가 정의되고 문서화 되었으며, 이 문서가 사용자에게 제공될 수 있는가?
y
5
1. 2. 2
상세하게 공동으로 작성된 테스트 계획서가 있고, 이 문서가 사용자에게 제공될 수 있는가?
y
5
1. 2. 3
응용분야에서 채택할 수 있는 산업표준이 있을 경우 호환성 테스트를 할 수 있는가?
y
5
1. 2. 4
사용하는 검증의 품질을 평가할 시스템이 있으며, 그 결과를 사용자에게 제공할 수 있는가?
y
2
1. 2. 5
시스템의 일부로서 IP가 검증되었는가?
y
5
System Centroid Inc.
40
22
( slide 55 )
July 18, 2015
SystemC
For ESL Design
System Centroid Inc.
( slide 56 )
July 18, 2015
SystemC 언어
• SystemC는 하드웨어와 소프트웨어가 혼용된 시스템의
행위적 동작 및 통신을 모델링하기 위한 ESL 언어
• C++ 클래스 라이브러리 + 시뮬레이션 커널
• Cycle Accurate Model
• OSCI (Open SystemC Initiative, www.systemc.org)
• 2005년 12월 12일 IEEE 1666 표준 언어 인정
• 최신 버전 SystemC v2.1
System Centroid Inc.
( slide 57 )
July 18, 2015
ESL Design의 필요성
1.
다수개의 프로세서와 메모리, 주변 모듈로 이루어진 회로 설계가 더
욱 복잡해져서 종래의 설계방법으로 검증이 불가능해진다.
2.
사용자에게 고급기능을 제공하는 수단은 소프트웨어로서 SoC에 집
적되는 프로그램의 용량이 증대되어 종래의 RTL이나 ISS로 검증이
불가능해진다.
3.
아직 초기이고 적절한지 증명되지 않았고 EDA 업체의 정책과 경쟁
등의 불확실한 요소들이 있지만 SystemC 언어가 IEEE Standard
1666으로 채택된 것은 진전이 이루어진 것이다.
4.
다음 단계의 설계 추상화 레벨로 Transaction Level Modeling이 시스
템 설계자, 칩 설계자, IP 설계자, 프로그래머의 다른 그룹들이 공통
된 정의로 받아들이고 있다.
System Centroid Inc.
( slide 58 )
July 18, 2015
SystemC 기반 설계의 장점
• Conceptualization
• Simulate in SystemC
• Write Specification
Document
• 실행 가능한 사양서
• 최상위 수준 빠른 시뮬레이션
• Handover
 Executable Spec.
 Testbench
 Written Spec.
• H/W보다 S/W의 높은 비중
• OOP 특성으로 재사용의 용이
성
• Understand
• Refine in C++
• 테스트벤치 재사용에 적합
• Verify Reusing
Testebenches
System Centroid Inc.
• C/C++ 언어의 보편적 사용
( slide 59 )
July 18, 2015
SystemC에 추가된 기능
• 하드웨어 신호 모델링 기능
 Signal, Protocol, etc.
• 시간 개념 도입
 시간에 따른 순차적 동작
• 병렬동작 모델링 기능
 하드웨어 기본 특성인 병렬 동작
• 외부 자극에 반응 기능
 인터럽트와 같이 외부 자극에 반응
• 하드웨어 데이터 타입 지원
 Bit, Logic, Signed & Unsigned, Fixed point float 타입
• 내장된 시뮬레이션 커널
System Centroid Inc.
( slide 60 )
July 18, 2015
SystemC 기반 설계흐름
System Centroid Inc.
( slide 61 )
July 18, 2015
SystemC Design Methodology
Standard C/C++
Development
Environment
Source
Codes
SystemC
Libraries
Class library
And
Simulation kernel
DSP
ASIC
IP Core
Compiler
Linker
Interface
…
Debugger
Source files
For system and
testbenches
make
Executable
Specification
a.out
Execution = Simulation
System Centroid Inc.
( slide 62 )
VCD
July 18, 2015
SystemC 수행 흐름도
sc_main();
SystemC Simulation Kernel
Return(0);
코드 실행, 이벤트
발생, 갱신, 혹은
실행 연기, Exit
Elaborate
Initialize
sc_start();
Evaluate
Advance
Time
Cleanup
T=0
Module instanciation
& Port conneciton
System Centroid Inc.
Process of Modules
( slide 63 )
Cleanup
July 18, 2015
SystemC 구조
Methodology-Specific Libraries
Master/Slave Library, etc.
Layered Libraries
Verification Library, Static Dataflow, etc.
Primitive Channels
Signal, Mutex, Semaphore, FIFO, etc.
Core Language
Data Type
Module
Port
Process
Event
Interface
Channels
Event-Driven Simulation
Bit & Bit-vector
Arbitrary Precision Integer
Fixed Point Number
4-vlaue Logic Type, Logic Vectors
C++ User Defined Type
C++ Language Standard
System Centroid Inc.
( slide 64 )
July 18, 2015
Data Type
• C/C++ 언어의 기본 데이터 타입
 long, int, short, char, unsigned long, unsigned int, unsigned
short, unsigned char, float, double, long double, bool
• SystemC 제공 데이터 타입
 sc_int, sc_uint : 64비트 정수의 산술연산이나 논리연산에
사용
 sc_bit, sc_bv : 임의 길이의 2-value 논리연산에 사용
 sc_logic, sc_lv : 임의 길이의 4-value 논리연산에 사용 (Tri-
state)
 sc_bigint, sc_biguint : 임의 길이 정수의 산술연산에 사용
 sc_fix,
System Centroid
Inc.
sc_ufix, sc_fixed,( slide
sc_ufixed
: 임의 길이 실수연산에
65 )
July 18, 2015
SystemC 파일 구성
Main.cpp
• Module은 기본적인 Building Block
• 인터페이스는 .h 파일에 정의
• 내부 기능은 .cpp 파일에 정의
Stimulus
Generator
(STM)
DUT
clock
• 구성 요소
 Port
 Internal Signal Variable
STM.cpp
DUT.cpp
 Internal Data Variable
 Procedure
STM.h
DUT.h
 Instance
 Constructor
System Centroid Inc.
Main.cpp
( slide 66 )
July 18, 2015
SystemC 코드 예 (1/2)
halfadd.cpp
halfadd.h
#include "systemc.h“
SC_MODULE(halfadd)
{
sc_in<sc_logic> a;
sc_in<sc_logic> b;
sc_out<sc_logic> sum;
sc_out<sc_logic> co;
void do_halfadd ();
SC_CTOR(halfadd)
{
SC_METHOD (do_halfadd);
sensitive << a << b;
}
};
System Centroid Inc.
SystemC Library
Module 이름
#include "halfadd.h"
void halfadd::do_halfadd ()
{
sum.write(a.read() ^ b.read());
co.write(a.read() & b.read());
}
단자 이름
내부 동작 정의
Procedure
Contructor
Sensitivity List
( slide 67 )
a
b
sum
co
0
0
0
0
0
1
1
0
1
0
1
0
1
1
0
1
July 18, 2015
SystemC 코드 예 (2/2)
fulladd.h
#include "systemc.h"
#include "halfadd.h"
fulladd.cpp
#include "fulladd.h"
SC_MODULE(fulladd)
{
sc_in<sc_logic> x, y, z;
sc_out<sc_logic> sum, co;
void fulladd::do_fulladd ()
{
co.write(n1.read() | n3.read());
}
sc_signal<sc_logic> n1, n2, n3;
halfadd *S1;
halfadd *S2;
인스턴스 이름
S1
void do_fulladd ();
SC_CTOR(fulladd)
{
S1 = new halfadd("S1");
S1->a(x);
S1->b(y);
S1->sum(n2);
S1->co(n1);
n1
x
y
co
n2
n3
z
인스턴스 연결
sum
S2
S2 = new halfadd("S2");
S2->a(n2);
S2->b(z);
S2->sum(sum);
S2->co(n3);
SC_METHOD (do_fulladd);
sensitive << n1 << n3;
}};
System Centroid Inc.
( slide 68 )
July 18, 2015
SystemC Module (1/2)
•
Module : 기본적인 Building Block

•
•
Port : 모듈과 외부와의 데이터 전달 통로

sc_in <data_type> port_name;

sc_out <data_type> port_name;

sc_inout <data_type> port_name;
Signal : 모듈간의 데이터 전달 통로

•
SC_MODULE (module_name)
sc_signal <data_type> name;
Constructor : 모듈의 메모리 할당, 이벤트에 따른
프로세스 할당, 변수값 초기화

•
SC_CTOR (module_name)
Process : 알고리즘 수행단위로서 병렬로 동작.
System Centroid Inc.

Method Process : SC_METHOD()

Thread Process : SC_THREAD()

Clocked Thread Process : SCCTHREAD()
( slide 69 )
July 18, 2015
SystemC Module (2/2)
•
•
Sensitivity List : Process의 실행을 발생시키는 시그널의 집합

sensitive (event1 [, event2, …])

sensitive << event1 << event2 …

sensitive_pos (event2 [, event2, …])

sensitive_pos << event1 << event2 …

sensitive_neg (event2 [, event2, …])

Sensitive_neg << event1 << event2 …
Instance : 모듈의 Instanciation

•
module_type instance_name (“string_name”);
Port Binding : 단자와 채널간의 연결

Instance_name.port_name (channel_name);

Instance_name (channel_name1, channel_name2, …);
System Centroid Inc.
( slide 70 )
July 18, 2015
SystemC Thread & Method
Wait(event);
SC_METHOD
SC_THREAD
SC_CTHREAD
Construct
SC_METHOD(process);
sensitive(signal);
sensitive_pos(signal);
sensitive_neg(signal);
SC_THREAD(process
);
sensitive(signal);
sensitive_pos(signal);
sensitive_neg(signal);
SC_CTHREAD(proces
s, clock.pos());
SC_CTHREAD(proces
s, clock.neg());
Infinite Loop
No
Yes
Yes
Suspend
NA
wait();
wait();
Local Variable
Lost
Saved
Saved
Static Sensitivity
Signal event
Signal event
Clock Edge
Dynamic Sensitivity
next_trigger(event);
wait(event);
wait(event);
Usage
Combinational Logic
Behavior
FSM
System Centroid Inc.
( slide 71 )
July 18, 2015
SystemC Operator
Arithmetic
sc_int, sc_uint, sc_bigint, sc_biguint
Bitwise
+
-
*
/
%
~
&
|
^
>>
<<
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
sc_bv, sc_lv
Sc_fixed, sc_ufixed, sc_fix, sc_ufix
O
O
O
O
O
Assignment
Equality
=
+=
-=
*=
/=
%=
&=
|=
^=
==
!=
sc_int, sc_uint, sc_bigint, sc_biguint
O
O
O
O
O
O
O
O
O
O
O
sc_bv, sc_lv
O
O
O
O
O
O
Sc_fixed, sc_ufixed, sc_fix, sc_ufix
O
O
O
O
O
O
O
O
O
Relational
sc_int, sc_uint
sc_bigint, sc_biguint
O
O
Auto
<
<=
>
>=
+
+
--
O
O
O
O
O
O
sc_bv, sc_lv
Sc_fixed, sc_ufixed, sc_fix, sc_ufix
System Centroid Inc.
O
O
O
( slide 72 )
O
O
O
Bit
[]
(,)
O
O
O
O
O
O
July 18, 2015
SystemC Channel
•
sc_signal
 1 writer & multi-reader의 다중 통신 지원
 Method : read(), write(), delayed(), event(), kind(), negedge(), posedge()…
•
sc_buffer
 1 writer & multi-reader의 다중 통신 지원
 Method : read(), write(), delayed(), event(), kind(), negedge(), posedge() …
•
sc_fifo
 1 reader & 1 writer의 point-to-point 통신 지원
 First-In-First-Out 방식 프로토콜
 Method : read(), nb_read(), write(), nb_write(), num_free(), kind(), …
•
sc_mutex
 여러 사용자가 자원을 상호 배타적으로 공유하는 통신 지원
 Method : lock(), trylock(), unlock(), kind() …
•
sc_semaphore
 병렬로 자원에 접근할 수 있는 다중 통신 지원
 Method : kind(), post(), trywait(), get_value() …
System Centroid Inc.
( slide 73 )
July 18, 2015
TLM Modeling
•
RTL 보다 상위의 추상화 수준으로 TLM (Transaction Level Modeling)이 시스템 설계
자, 칩 설계자, IP 설계자, 프로그래머 모든 그룹들이 공통된 정의로 받아들여짐
•
단계별 시스템 개발자에게 필요한 정도의 추상화 수준으로 시스템 부품을 모델링
•
TLM 모델링이 유효할 수 있는 가정
 시스템은 Computation과 Communication을 독립적으로 설계할 수 있음
 Computation를 모델링하는 ISS (Instruction-Set Simulator)와 Communication을
모델링하는 Bus Model에 의해 성능이 결정
 주변모듈 모델의의 정확도는 시스템 전체에 큰 영향을 미치지 않음 (예외, 메모
리)
 Communication, Behavior, Timing을 독립적으로 분리해서 처리 가능
•
TLM 사용에 따른 분류
 Functional View : 응용 회로의 Executable Spec.
 Architect View : Architectural Exploration
(Cycle-approximate bus model without ISS)
 Programmer View : Embedded Software Design
(Instruction-accurate ISS & no-timing bus model)
 Verification View : Cycle accurate HW/SW Co-Verification
System Centroid Inc.
(Cycle-accurate
ISS 74
& cycle-accurate
bus model)
( slide
)
July 18, 2015
System Level Modeling
•
시스템의 추상화 모델 (Dan Gajski & Lukai Cai)
 Computation과 Communication 구분
 시간의 Granularity로 구분
 Untimed 사양서에서 Cycle 기반 RTL로의 진행
 ②③④⑤ 과정의 모델이 TLM 가능
Communication
④
Cycle
-Timed
⑥
TLM
③
Approximate
-Timed
Un
-Timed
RTL
⑤
TLM
TLM
①
②
③
④
⑤
⑥
System Specification Model
Component Architecture Model
Bus Arbitration Model
Bus Functional Model
Cycle Accurate Computational Model
Cycle Accurate Implementation Model
②
①
SPEC
TLM
Un
-Timed
Approximate
-Timed
System Centroid Inc.
Computation
Cycle
-Timed
( slide 75 )
July 18, 2015
Transaction
•
Communication의 추상화 모델
 Component Architecture Model : 1 Event
 Transaction of Bus Arbitration Model : 5 Events
 Cycle Accurate Implementation Model : 75 Events
Transaction of Component Architecture Model ②
Transaction of Bus Arbitration Model ③
System Centroid Inc.
( slide 76 )
July 18, 2015
TLM Based Design Flow
• 실행 가능한 사양을 사용자에게 제공
함으로 사양 확인, 변경 등 용이
Requirement
Document
• 초기 수정이 용이한 HW/SW tradeoff
로 시스템 성능 향상 (SW의 임계부
품은 HW로 구현)
SPEC
• 초기에 SW 개발 및 테스트가 가능하
여 전체 개발시간 단축
TLM Development
SW
TLM
HW
Design
HW
Design
&
Refinement
&
Verification
Verification
RTL
• 실행 가능한 사양에서 발생한 테스트
벤치의 일관성 있는 재사용
• SW와 연동되는 HW 동작 오류 초기
발견
RTL to GDS II Flow
System Centroid Inc.
• 상향된 추상화 수준으로 HW 검증 시
간의 가속화 (시뮬레이션 시간의 장
기화 및 에뮬레이션의 Visibility 제약
회피)
( slide 77 )
• 현실성 없는 프로젝트의 수정 혹은
포기로 실패 확률 축소 July 18, 2015
TLM Modeling 예
• 통신 데이터를 받는 수동 모듈의 TLM 모델링 예
• Bus Transactor는 특정 버스 프로토콜과 내부 Generic API로 데이터 전송
• 모듈의 Memory-Mapped register 모델링 & 동기화
• 모듈의 행위 동작은 해당 레지스터가 전금되었을 때 호출되는 Callback
Function
• 추상화 수준과 필요에 따라 모델을 선택적으로 사용
Bus
Interface
Programmer
Interface
Bus
Transactor
Programmer
Interface
Storage &
Sync.
Behavior
Behavior 1
Bus
Transaction
Behavior 2
Processing
Behavior 3
Timing
Timing
Storage Alias
System Centroid Inc.
( slide 78 )
July 18, 2015
SystemC Usage Trends
April 2007 SystemC Users Group Survey Data Trends Report, OSCI
System Centroid Inc.
( slide 79 )
July 18, 2015
SystemC Use Model
April 2007 SystemC Users Group Survey Data Trends Report, OSCI
System Centroid Inc.
( slide 80 )
July 18, 2015
SystemC Abstraction Level
(2007 JSCUG)
April 2007 SystemC Users Group Survey Data Trends Report, OSCI
System Centroid Inc.
( slide 81 )
July 18, 2015
Layered Standards
Draft Open
System Centroid Inc.
( slide 82 )
July 18, 2015
Multiple Levels of Abstraction
• Algorithmic Level
UTFU
TF
UTF
 Untimed functional modeling
 Executable specification
UTFU
TF
• Transaction Level
 Analyze SoC architecture, early
SW development
TLMT
LM
TLM
 Estimated timing
TLM
TLM
• RT Level
 RTL/behavioral HW design and v
erification
RTLR
RTL
TL
RTL
RTL
At TLM level, concerns only focus on mapping out data flow
details: the type of data that flows and where it is stored
System Centroid Inc.
( slide 83 )
July 18, 2015
TLM Abstraction Levels
System Centroid Inc.
( slide 84 )
July 18, 2015
Principles of TLM 1.0
• Modules access channels via ports.
• Channels are accessed via interfaces.
• Ports are related to the type of interface they may connect to
System Centroid Inc.
( slide 85 )
July 18, 2015
Key Concepts in TLM 2.0
• Unidirectional vs. Bidirectional
• Blocking vs. Nonblocking
sc_out
• sc_port & sc_export
 Move channel inside module, and
use port externally
sc_in
RTL Binding in SystemC 1.0 & 2.0
sc_port<IF
sc_port<IF
Binding to a Channel in SystemC 2.0
sc_port<IF sc_export<IF
Binding to an export in SystemC 2.1
System Centroid Inc.
( slide 86 )
July 18, 2015
Modeling Architecture (PV Level)
System Centroid Inc.
( slide 87 )
July 18, 2015
Example
master
prot_initiator_port p;
p. read (a , d);
Slave
USER
LAYER
my_status read (Address a, Data &d);
my_status write (Address a, Data d);
prot_initiator_port
prot_transaction_interface
REQ req;
virtual my_status read (Address a, Data &d) = 0;
RSP rsp;
my_status read (Address a , Data &d)
{
req.a = a;
virtual my_status write (Address a, Data d) = 0;
PROTOCOL
LAYER
RSP transport (const REQ &req)
{
if (req.type == read)
req.type = read;
rsp = transport (req);
return read (req.addresss , rsp.data);
d = rsp.d;
else if (req.type == write)
return rsp.status;
sc_port<REQ,RSP>
RSP transport (const REQ &);
System Centroid Inc.
return write (req.address , req.data);
TRANSPORT
LAYER
sc_
export
( slide 88 )
tlm_transport_if<REQ,RSP>
virtual RSP transport (const REQ &) = 0;
July 18, 2015
SystemC의 주요 용도
• Executable Specification
 설계자간 혹은 고객과의 의사소통 수단
 일관성 있는 테스트벤치 생성
• 검증용 IP
 IP 보호. 빠른 검증 속도.
• Virtual Prototyping
 시스템 검증. 아키텍쳐 설계공간 탐색.
• 소프트웨어 개발 및 HW/SW 통합 검증
 130nm 경계로 S/W 개발비용이 H/W 비용을 초과
• Behavioral Synthesis
System Centroid Inc.
( slide 89 )
July 18, 2015
SystemC 포지셔닝
Best
Best
No
No
No
No
S/W & System
Modeling
Good
Good
Good
Good
Best
Best
No
No
Embedded S/W
Modeling
No
Best
Best
Good
Good
OK
OK
No
EDA-Style System
Design
No
Good
Good
OK
OK
Best
Good
OK+
OK
No
OK
OK
No
No
Best
Best
Best
UML, SDL
SystemC
C/C++
System
Verilog
VHDL/
Verilog
Verification
RTL
“SystemC’s role in a multilingual world”,
8th European SystemC User Group Meeting, 2003
Grant Martin (Cadence)
System Centroid Inc.
( slide 90 )
July 18, 2015
Reference
•
M. Burton, A. Morawiec, “Platform Based Design at the
Electronic System Level”, Springer, 2006.
• N. H. E. Weste, D. Harris, “CMOS VlSI Design, A Circuits and
Systems Perspective”, IE, 2005.
• W. Muller, W. Rosenstiel, J. Ruf, “SystemC Methodologies and
Applications”, Kluwer, 2003.
• D. C. Balck, J. Donovan, “SystemC : From the Ground Up”,
Ejlectic Ally, 2004.
System Centroid Inc.
( slide 91 )
July 18, 2015