( slide 1 ) november 10, 2015november 10, 2015november 10, 2015 system centroid inc. 2013 년 soc...
TRANSCRIPT
(( slide slide 11 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
2013 년
SOC 설계방법론
(( slide slide 22 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
• 설계 데이터의 종류 SystemC 언어 VHDL 언어 EDIF 언어 CIF 언어
• CAD 툴의 종류• 설계 방법론 비교
논리회로도 수동 설계 VHDL 합성 자동 설계 반도체 IP 재사용 설계 상위수준합성 자동 설계
차례
(( slide slide 33 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
설계 데이터의 종류
(( slide slide 44 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
반도체칩과 CAD 툴의 차이
CADÅø
»õ·Î¿î¼³°è±â¼ú
ȸ·Î¼³°è
»õ·Î¿îIDEA
ASIC
ÀüÀÚÁ¦Ç°
• 설계 과정에 발명 혹은 발견되는 규칙적인 작업을 프로그램으로 자동화 함으로써 설계 효율을 높이는 것인 CAD 툴의 목적
• CAD 툴에는 설계방법론이 집약• 첨단 설계 => CAD 툴 개발 => 설계 효율
증대
(( slide slide 55 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
설계정보의 연속적인 변환 (Synthesis, Optimization, Simulation, Verification)
설계자의 추상적 개념을 어떤 논리적 수단으로 표현
(Schematic, VHDL program)
도면정보(Layout, Mask Data)
설계 프로세스란 ?
(( slide slide 66 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
Gajski 의
Y Diagram
행위구조
기하
system
algorithm
register transfer
logic
transister function
process
memory, switch module
ALU, register, mux
gate, flip flop
transistor, contact, wire
layout
module
macro-cell
floor plan
cabinet, cable
System
Algorithm
Register Transfer
Logic
Circuit
(( slide slide 77 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
관점에 따른 설계정보
기하학적 표현 구조적 표현 행위적 표현
Layout Schematic/SymbolVHDL/Truth Table/Logic
Eq.
entity nand2 isport (in1 : in std_logic; in2 : in std_logic; z : out std_logic);end nand2
architecture rtl of nand2 isbegin z <= in1 nand in2;end rtl;
in1 in2
o
in1
in2o
(( slide slide 88 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
행위 구조 기하
System Performance spec.
CPUs, Memories,Switches
Controllers, Buses
Physical partitions
Algorithm
Algorithms Hardware modules Clusters
RegisterTransfer
Operations, Register
transfers, State
sequencing
ALUs, Muxs, Registers, Micro-sequencer, Micro-
store
Floor plans
Logic Boolean equation, FSM
Gates, Flip flop, Cells
Cell, Module
CircuitTransfer
functions,Timing
Transistors, Wires, Contacts
Layout
레벨에 다른 설계정보
(( slide slide 99 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
행위구조
기하
system
algorithm
register transfer
logic
transister function
process
memory, switch module
ALU, register, mux
gate, flip flop
transistor, contact, wire
layout
module
macro-cell
floor plan
cabinet, cable
시스템 사양
알고리즘 설계Data Path 설계
Controller 설계
배치배선마스크 생성
(( slide slide 1010 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
설계흐름 표준 언어 딜레이
Behavior C/C++, SystemC, SystemVerilogFunctional Behavior
High LevelSynthesis
Control/Data Flow Graph
Behavioral State Transition Table
RTL VHDL, Verilog Clock, Events
LogicSynthesis
Logic Equation
Truth Table
State Transition Table
Logic EDIF Gate Delays
PhysicalSynthesis
GDT L Language
Layout CIF, GDS II Path Delays
설계정보 표준 언어
FastSimulatio
n
SlowSimulatio
n
LessPrecise
MorePrecise
(( slide slide 1111 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
Gate-LevelSim. & Ver.
Floorplanning
Chip RequirementDev. & Review
Design Entry
Logic & TestSynthesis
Pre-layout StaticTiming Analysis
Timing-DrivenPlacement
Routing
Manufacturing
Testing
Auto-Test PatternGeneration
Post-Layout StaticTiming Analysis
RTLSim. & Ver.
Architecture
Front-endDesign
Back-endDesign
Manufacturing
ProductDevelopment
ASIC Design Flow
(( slide slide 1212 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
SystemC 언어
(( slide slide 1313 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
• OSCI (Open SystemC Initiative,
www.systemc.org)
• IEEE 1666 표준 언어로 인정 (2005 년 12 월 )
• 최신 버전 SystemC v2.2
• C++ 클래스 라이브러리 + 시뮬레이션 커널
• 시스템 , 알고리즘 , RT 수준에서 하드웨어 모델링
• Cycle Accurate Model
SystemC
(( slide slide 1414 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
Best
Good
No
No
No
No
Good
Best
Good
OK
No
Best
Good
OK
No
No
No
OK
Best
No
No
No
No
OK+
Best
UML, SDL SystemC C/C++SystemVerilog
VHDL/Verilog
S/W & System Modeling
Embedded S/W Modeling
EDA- Style System Design
Verification
RTL
Best
Best
Best
Best Best
Good
Good
Good
Good
Good
OK
OK
OK
OK
SystemC 포지셔닝
“SystemC’s role in a multilingual world”, 8th European SystemC User Group Meeting, 2003 Grant Martin (Cadence)
(( slide slide 1515 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
• Executable Specification설계자간 혹은 고객과의 의사소통 수단일관성 있는 테스트벤치 생성
• 검증용 IP IP 보호 . 빠른 검증 속도 .
• Virtual Prototyping 시스템 검증 . 아키텍쳐 설계공간 탐색 .
• 소프트웨어 개발 및 HW/SW 통합 검증130nm 경계로 S/W 개발비용이 H/W 비용을
초과• Behavioral Synthesis
SystemC 의 미래
(( slide slide 1616 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
행위구조
기하
system
algorithm
register transfer
logic
transister function
process
memory, switch module
ALU, register, mux
gate, flip flop
transistor, contact, wire
layout
module
macro-cell
floor plan
cabinet, cable
SystemC 설계
영역
(( slide slide 1717 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
// Filename = mux.h
#include "systemc.h"
SC_MODULE(mux){ sc_in<sc_lv<4> > a; sc_in<sc_lv<4> > b; sc_in<sc_lv<4> > c; sc_in<sc_lv<4> > d; sc_in<sc_logic> en; sc_in<sc_lv<2> > sel; sc_out<sc_lv<4> > z;
void do_mux ();
SC_CTOR(mux) { SC_METHOD (do_mux); sensitive << a << b << c << d << en << sel; }};
// Filename = mux.cpp
#include "mux.h"
void mux::do_mux (){ sc_lv<2> sel_s; sc_lv<4> tmp;
sel_s = sel.read();
switch (sel_s.to_uint()) { case 0: tmp = a.read(); break; case 1: tmp = b.read(); break; case 2: tmp = c.read(); break; case 3: tmp = d.read(); break; }
if (en.read() == '0') z.write(tmp); else z.write("0000");}
(( slide slide 1818 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
VHDL 언어
(( slide slide 1919 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
VHDL 언어
Modeling
Simulation
Synthesis
Z <= ‘1’ when A=“01” else ‘0’;
• VHDL = VHSIC Hardware Description Language• VHSIC = Very High Speed Integrated Circuit
(( slide slide 2020 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
• 세계적인 표준 HDL (IEEE 1976)
• 광범위한 기술 능력
(Structure / Data Flow / Behavior)
• 공정기술 독립적 설계
• 하향식 (Top-Down) 설계 방법 지원
• 설계 데이터 공유 및 재활용 용이
VHDL 언의 장점
(( slide slide 2121 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
VHDL 코드library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_signed.all;
entity absdiff is port ( a : in std_logic_vector (3 downto 0); b : in std_logic_vector (3 downto 0); d : out std_logic_vector (3 downto 0)); end absdiff;
architecture rtl of absdiff is begin process (a, b) begin if (a > b) then d <= a - b; else d <= b - a; end if; end process; end rtl;
Package
Interface
Function
(( slide slide 2222 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
행위구조
기하
system
algorithm
register transfer
logic
transister function
process
memory, switch module
ALU, register, mux
gate, flip flop
transistor, contact, wire
layout
module
macro-cell
floor plan
cabinet, cable
VHDL 설계 영역
(( slide slide 2323 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
EDIF 언어
(( slide slide 2424 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
Schematic 의 구성
• 회로의 구조를 나타내는 회로도• 구성 요소
Cell, Functional Block Port (Connector) Net (Wire), Bus, Branch Instance (Symbol)
a
bz
n1
n2n3 n4
s1s2
(( slide slide 2525 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
(edif
(edifVersion 2 0 0) (edifLevel 0)
(keywordMap (keywordLevel 0))
(status (written
(timeStamp 1996 5 18 0 0 0)
(program
"edasBus2CompassEdif of
LODECAP"
(version "version 1.0"))
(author "DAS of ETRI")))
(library pvgt350 (edifLevel 0)
(technology (numberDefinition ))
(cell in01d1 (cellType GENERIC)
(view INTERFACE_PORT
(viewType NETLIST)
(interface
(port zn (direction OUTPUT))
(port i (direction INPUT)))))
(cell an02d1 (cellType GENERIC)
(view INTERFACE_PORT
(viewType NETLIST)
(interface
(port a1 (direction INPUT))
(port a2 (direction INPUT))
(port z (direction OUTPUT))))))
(library ETRI (edifLevel 0)
(technology (numberDefinition ))
(cell tp (cellType GENERIC)
(view INTERFACE_PORT
(viewType NETLIST)
(interface
(port out (direction OUTPUT))
(port in2 (direction INPUT))
(port in1 (direction INPUT)))
(contents
(instance s2
(viewRef INTERFACE_PORT
(cellRef in01d1
(libraryRef pvgt350))))
(instance s1
(viewRef INTERFACE_PORT
(cellRef an02d1
(libraryRef pvgt350))))
(net n4
(joined
(portRef out)
(portRef zn
(instanceRef s2))))
(net n2
(joined
(portRef in2)
(portRef a2
(instanceRef s1))))
(net n1
(joined
(portRef in1)
(portRef a1
(instanceRef s1))))
(net n3
(joined
(portRef I
(instanceRef s2))
(portRef z
(instanceRef s1))))))))
(design nand2p (cellRef tp (libraryRef
ETRI))))
Netlist 의 EDIF 표현
(( slide slide 2626 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
행위구조
기하
system
algorithm
register transfer
logic
transister function
process
memory, switch module
ALU, register, mux
gate, flip flop
transistor, contact, wire
layout
module
macro-cell
floor plan
cabinet, cable
EDIF 설계 영역
(( slide slide 2727 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
CIF 언어
(( slide slide 2828 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
DS 0;C 1 T 0,0;C 1 T 40,0;C 1 T 40,40;C 1 T 0,40;DF;DS 1;L 1;P 0,0 0,10 10,10 10,0;P 20,0 20,10 30,10 30,0;P 0,20 0,30 10,30 10,20;P 20,20 20,30 30,30 30,20;DF;C 0;E
레이아웃 정보 표현
(( slide slide 2929 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
행위구조
기하
system
algorithm
register transfer
logic
transister function
process
memory, switch module
ALU, register, mux
gate, flip flop
transistor, contact, wire
layout
module
macro-cell
floor plan
cabinet, cable
CIF 설계 영역
(( slide slide 3030 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
CAD 툴의 종류
(( slide slide 3131 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
변환
수준
합성 추출 최적화
분석(simulation
)(verificatio
n)
행위▼
하향적변환
▼
▲
상향적변환
▲
◉
수평적변환 ◉
◉
수평적변환 ◉
구조
기하
설계정보 변환의 종류
(( slide slide 3232 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
HDL
Netlist
Layout
Synthesis
P&R
SystemC
Synthesis
Simulation
Simulation
Simulation
Verifiation
Verification
Verification
Verification
합성기술의 종류
상위수준합성
논리합성 , FSM합성
물리합성
(( slide slide 3333 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
VHDL 합성
핵심 기술
o VHDL Parsingo Generic Architecture Generationo Technology Migration
o State Minimizationo State Assignmento Two-Level Logic Minimizationo Multi-Level Logic Optimizationo Timing Driven Optimizationo Timing Verificationo Technology Mappingo Schematic Generation
라이브러리o Generic 셀 라 이 브 러 리 (Technology Independent)o 기초 셀 라이브러리 (Technology Dependent)
(( slide slide 3434 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
VHDL 합성 흐름HardwareC
Code
ParserSchedulingAllocation
Data Path State Table
State Diagram Editor
State MinimizationState Assignment
BLIF LogicLogic Equation/
Truth TableEditor
Combinational LogicOptimization
Generic Architecture
ParsingGeneric Arch. Generation
VHDL Code
Generic CellLibrary
CellMapping
Logic OptimizationTiming OptimizationTechnology Mapping
Schematic Generation
TimingVerification
Netlist
PartialLogic
Netlist MergeSchematic Generation
Netlist
RT CellLibrary
Primitive CellLibrary
(( slide slide 3535 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
설계공간탐색
실험 딜레이 면적
Exp1 20.24 131.75
Exp2 16.93 148.50
Exp3 13.31 199.50
Exp4 12.73 173.50
Exp5 11.64 221.50
Exp6 7.46 186.25
Exp7 7.2 214.00
Exp8 6.88 230.50
Exp9 6.48 222.75
Exp10 6.45 239.25
Exp11 6.37 220.50
Exp12 6.28 319.25
Exp13 5.72 273.25
Exp14 5.65 433.50
Exp15 5.46 505.50
Exp16 5.28 396.25
Exp17 5.22 433.00
Exp18 5.21 398.25
0
5
10
15
20
25Exp1
Exp2
Exp3
Exp4
Exp5
Exp6
Exp7
Exp8
Exp9
Exp10
Exp11
Exp12
Exp13
Exp14
Exp15
Exp16
Exp17
Exp18
딜레
이(ns)
0
100
200
300
400
500
600
면적(equi.G)
계열2
계열1
• 속도 ( 딜레이 ), 면적 , 소비전력 , 테스트 용이성
• Trade-Off 의 관계
• 제약조건을 만족하는 회로가 최적해
(( slide slide 3636 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
상위수준 합성기술
핵심 기술
o SystemC Parsingo Schedulingo Allocation (FU, Register, Interconnection)
o State Minimizationo State Assignment
o Two-Level Logic Minimizationo Multi-Level Logic Optimizationo Timing Driven Optimizationo Timing Verificationo Technology Mappingo Schematic Generation
라이브러리o RTL 셀 라이브러리 (Technology Dependent)o 기초 셀 라이브러리 (Technology Dependent)
(( slide slide 3737 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
상위수준합성 흐름HardwareC
Code
ParserSchedulingAllocation
Data Path State Table
State Diagram Editor
State MinimizationState Assignment
BLIF LogicLogic Equation/
Truth TableEditor
Combinational LogicOptimization
Generic Architecture
ParsingGeneric Arch. Generation
VHDL Code
Generic CellLibrary
CellMapping
Logic OptimizationTiming OptimizationTechnology Mapping
Schematic Generation
TimingVerification
Netlist
PartialLogic
Netlist MergeSchematic Generation
Netlist
RT CellLibrary
Primitive CellLibrary
(( slide slide 3838 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
부품상자 (wire, transistor, resistor, capacitor, standard IC,
microprocessor, EPROM, PLD 등의 모음 )
Voltage SourceCurrent Source
Frequency Generator
BreadBoard
Volt meterCurrent meterOscilloscope
하드웨어 검증
(( slide slide 3939 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
Cell Library ( 소자의 전기적 특성을 서술한 파일들의 모음 )
Command File
Netlilst, Simulator
Waveform Graph
시뮬레이션 검증
(( slide slide 4040 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
종류 기본소자 특징 출력
CircuitSimulation
Tr.가장 정확 , 느림 ,
작은 회로 A
TimingSimulation
Tr.비교적 정확 ,
비교적 빠르고 큰 회로 A
Mixed-ModeSimulation
Tr., Gate Analog 와 digital 혼용 A/D
LogicSimulation
Gate, F/F, FB
부정확 ,빠르고 대용량 회로 D
시뮬레이션의 종류
(( slide slide 4141 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
Error 의 종류 검증방법
Geometry ErrorDesign Rule Check
(DRC)
Topology Error
Electrical Rule Check(ERC)
Layout versus Schematic(LVS)
ElectricalPerformance
Error
Circuit extraction &Circuit Simulation
Verification 의 종류
(( slide slide 4242 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
NC-VHDL VHDL Simulator
Verilog-XL Verilog Simulator
NC-verilog Verilog Simulator
Virtuoso Physical layout
Composer Schematic Capture
Spectre RF simulation
Spectre-RF RF simulation
NC-sim Verilog HDL simulator
Build-Gates STA, Synthesis
Dracula Layout verify
Diva Layout verify
SPW System Level
• Cadence
Scirocco VHDL Simulator
VCS VHDL Simulator
Design Compiler Synthesis
DFT Compiler DFT
BSD Compiler DFT
Cocentic System level design
PrimTime Static timing analysis
Nanosim Dynamic Simulation
Star-Hspice SPICE simulator
Star-RC LPE
Astro Place &Route
Hercules DRC,LVS
HDL Designer Front-End Editor
ModelSim HDL cosimulation
IC-stationPhysical layout
Place &Route
DFT Advisor DFT
DA_IC Schematic Capture
Eldo Mixed-signal circuit
Calibre Layout verify
Leonardo Systhesis for FPGA
Seamless CVE HW/SW Co-Verification
X-Calibre LPE
DA PCB Design
• Mentor Graphics • Synopsys
주요 EDA Vendor
(( slide slide 4343 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
설계 방법론 비교
(( slide slide 4444 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
Intel Dev. Forum (2003)
1970 1975 1980 1985 1990 1995 2000 2005
1K
10K
100K
1M
10M
100M
1G
The number of transistors on chip doubles each 18 months.Gordon Moore (1965)
Moore 의 법칙
(( slide slide 4545 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
1980 1985 1990 1995 2000 2005 20100.01
0.1
1
10
100
1,000
10,000
100,000
0.001
Source : SEMATECH
xxxxx x
x x
Log
ic T
ran
sis
tor
per
Ch
ip (
M)
Pro
du
cti
vit
y (
K)
0.01
0.1
1
10
100
1,000
10,000
o
oo
oo
o oo o
oComplexity
Growth
Rate
58% / Year
(Logic Tr./Chip)
Productivity Growth Rate
21%/Year
(Tr./Staff-Mo.)
SoC 설계는 하나의 칩안에 더욱 많은 IP 가 집적되고 Time-to-Market 은 짧아지는 특징 때문에 더욱 복잡해지고 있다 .
ITRS 1999ITRS 1999
설계 생산성
(( slide slide 4646 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
Desig
n P
rod
ucti
vit
y
Design Methodology (Tools)
1978
1985
1992
1999
Transistor Entry – Calma, ComputerVision
Schematic Entry – Daisy, Mentor, Valid
Synthesis – Cadence, Synopsys
IP ReusePlatformESL Design
McKinsey S-Curve
설계방법론의 진화
(( slide slide 4747 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
예제 회로
• 모듈 : absdiff • 기능 : 절대값 계산 • 입출력 단자 • 셀라이브러리
Inverter (inv) Full adder (fadd) Multiplexor (mux)
mux
0
1s
a
z
bs
fadd
cin
a
b
sum
cout
a
b
cin
sum
cout
inva z
absdiff
b
a
z
a[3:0]
b[3:0]
z[3:0]
(( slide slide 4848 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
정수의 표현
부호 MSB 는 부호 ⇒ 양수는 0, 음수는 1
양수 Binary 0 ⇒ 7 (0000 ⇒ 0111)
음수 2'Complement -1 ⇒ -7 (1111 ⇒ 1001)
예제 1 abs(4 - 2) = 2
abs(0100 - 0010) = abs(0010) = 0010
예제 2
abs(3 - 7) = 4
abs(0011 - 0111) = abs(0011 + 1001) = abs(1100)
= ^1100 + 1 = 0011 + 1 = 0100
예제 3
abs(-3 - (-2)) = 1
abs(1101 - 1110) = abs(1101 + 0010) = abs(1111)
= ^1111 + 1 = 0000 + 1 = 0001
(( slide slide 4949 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
• 논리회로도 수동 설계
기초 셀들로 계층구조의 논리회로도를 상향식으로 수작업 설계
• VHDL 합성 자동 설계
VHDL 코드를 작성하고 합성 툴로 자동 설계
• 반도체 IP 재사용 설계
일부 모듈은 반도체 IP 를 재사용하고 , 일부는 VHDL 로 설계
• 상위수준합성 자동 설계
마이크로 프로세서 회로를 상위수준합성 기술로 자동 설계
설계 방법론 소개
(( slide slide 5050 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
논리회로도
수동 설계
(( slide slide 5151 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
최상위 블록 (absdiff)
• 최상위 블록 (absdiff) 는 입력 a 와 b 의 절대값을 계산 d = abs (a-b)• 뺄셈 블록 (sub4) : 입력 a 에서 b 의 뺄셈• 부호치환 블록 (neg4) : 양수는 음수로 , 음수는 양수로 변환• 먹스 블록 (mux4) : 2 개의 입력중 하나를 선택
sub4
neg4
mux4
[3]
a[3:0]
b[3:0]d[3:0]
0
1
(( slide slide 5252 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
뺄셈블록 (sub4)
• 뺄셈블록 (sub4 ) 는 입력 a 에서 b 의 뺄셈 계산 a = a - b = a + (-b) = a + ^b + 1
• 덧셈블록 (fadd4) : 두 입력과 ‘1’인 캐리의 덧셈 • Not 블록 (not4) : Inverting
a[3:0]
b[3:0]
z[3:0]fadd4
cinnot4
(( slide slide 5353 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
Not 블록 (not4)
• Not 블록 (not4 ) 는 입력 a 의 논리 반전
a = ^a
• Not 셀 (not)
a[3:0] z[3:0][3]
[2]
[1]
[0]
[3]
[2]
[1]
[0]
(( slide slide 5454 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
덧셈블록 (fadd4)
• 덧셈블록 (fadd4) 는 입력
a 와 b 와 cin 의 덧셈 계산
(cout, sum) = a + b +
cin
• Full Adder 셀 (fadd)
a[3:0]
b[3:0]
sum[3:0]
fadd
cin
a
b
sum
cout
fadd
cin
a
b
sum
cout
fadd
cin
a
b
sum
cout
[3]
fadd
cin
a
b
sum
cout
cin
cout
[2]
[1]
[0]
[3]
[2]
[1]
[0]
[3]
[2]
[1]
[0]
(( slide slide 5555 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
부호치환블록 (neg4)
a[3:0]
z[3:0]fadd4
cinnot4
• 부호치환 블록 (neg4) : 양수는 음수로 , 음수는 양수로 변환 a = ^a + 1
• 덧셈블록 (fadd4) : 두 입력과 ‘1’인 캐리의 덧셈 • Not 블록 (not4) : Inverting
(( slide slide 5656 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
먹스블록 (mux4)
a[3:0]
b[3:0]
mux
0
1s
mux
0
1s
mux
0
1s
mux
0
1s
sel
[3]
[2]
[1]
[0]
[3]
[2]
[1]
[0]
[3]
[2]
[1]
[0]
z[3:0]• 먹 스 블 록 (mux4) : 2 개 의
입력중 하나를 선택
• 먹스 셀 (mux)
(( slide slide 5757 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
최상위 블록 시뮬레이션 결과
(( slide slide 5858 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
VHDL 합성
자동 설계
(( slide slide 5959 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
VHDL 코드
library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_signed.all;
entity absdiff is
port ( a : in std_logic_vector (3 downto 0);
b : in std_logic_vector (3 downto 0);
d : out std_logic_vector (3 downto 0));
end absdiff;
architecture absdiff of absdiff is
begin
process (a, b)
begin
if (a > b) then d <= a - b;
else d <= b - a;
end if;
end process;
end absdiff;
(( slide slide 6060 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
Generic Architecture
AB
D
a-b
b-aa>b
mux
(( slide slide 6161 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
합성된 논리회로
(( slide slide 6262 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
최상위 블록 시뮬레이션 결과
(( slide slide 6363 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
IP 재사용 설계
(( slide slide 6464 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
최상위 블록 (absdiff)
• 최상위 블록 (absdiff) 는 입력 a 와 b 의 절대값을 계산 d = abs (a-b)• 뺄셈 블록 (fd_sub4) : 반도체 IP of FD_LIB 라이브러리• 부호치환 블록 (neg4) : 양수는 음수로 , 음수는 양수로 변환• 먹스 블록 (fd_mux2i) : 반도체 IP of FD_LIB 라이브러리
neg4[3]
a[3:0]
b[3:0] d[3:0]
fd_sub
a
b
ci
diff
co
fd_mux2i
mux_in0
mux_in1
sel
mux_out
(( slide slide 6565 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
• Ripple Carry & Carry Lookahead Subtractor
매개변수 타입 기능 기본값 범위
width integer 데이터의 비트 폭 8 ≥ 2
addtype integer
기본 Adder 선택(0 = Ripply Carry Adder)
(1 = Carry Lookahead Adder
00
또는 1
핀 이름 비트 수 종류 기능
A width 입력 입력 데이터
B width 입력 입력 데이터
CI 1 입력 입력 캐리
DIFF width 출력 A-B 의 차
CO 1 출력 출력 캐리
반도체 IP (fd_sub)
(( slide slide 6666 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
반도체 IP (fd_sub)
-- Entity Name : FD_SUB-- Function : Ripple Carry & Carry Lookahead Subtractor
-- Generic -- width : Bit Width of A, B and DIFF ports (>= 2)-- addtype : Adder Architecture -- (0=Ripple-Carry Adder / 1=Carry Lookahead Adder)-- Port-- A, B : Signed Integer to subtract-- CI : Carry-In-- DIFF : Difference (Result of Subtraction)-- CO : Carry-Out
component fd_sub generic (width : integer := 8; addtype : integer := 0); port (a : in std_logic_vector(width-1 downto 0); b : in std_logic_vector(width-1 downto 0); ci : in std_logic; diff : out std_logic_vector(width-1 downto 0); co : out std_logic);end component;
fd_sub
a
b
ci
diff
co
(( slide slide 6767 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
• 2 Input Multiplexer
매개변수 타입 기능 기본값 범위
width positive 데이터의 비트 폭 8 ≥ 2
핀 이름 비트 수 종류 기능
MUX_IN0 width 입력 SEL=’0’ 일때 선택될 입력 데이터
MUX_IN1 width 입력 SEL=’1’ 일때 선택될 입력 데이터
SEL 1 입력 출력으로 내보낼 입력 데이터의 선택
MUX_OUT width 출력 선택된 데이터 출력
반도체 IP (fd_mux2i)
(( slide slide 6868 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
반도체 IP (fd_mux2i)
-- Entity Name : FD_Mux2i-- Function : 2 Input Multiplexer
-- Generic -- width : Input Data Bit Width of all input ports (>= 2)-- Port-- MUX_IN0 : Input Data selected when SEL='0'-- MUX_IN1 : Input Data selected when SEL='1'-- SEL : Selection of one input data-- MUX_OUT : Multiplexed Output
component fd_mux2i generic (width : positive := 8); port (mux_in0 : in std_logic_vector(width-1 downto 0); mux_in1 : in std_logic_vector(width-1 downto 0); sel : in std_logic; mux_out : out std_logic_vector(width-1 downto 0));end component;
fd_mux2i
mux_in0
mux_in1
sel
mux_out
(( slide slide 6969 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
최상위 블록 시뮬레이션 결과
(( slide slide 7070 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
상위수준합성
자동 설계
(( slide slide 7171 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
• 입력언어 : 행위수준 VHDL
• 출력 : 게이트 수준 Netlist
• 라이브러리 : ASIC 기초 셀 , RTL 셀
• IF : Behavior FSM
• 목표 구조 : Control Dominated Circuit
계층구조의 Process Controller
우선권을 갖는 다수의 Interrupt Controller
FU (ALU, RAM, ROM, IP etc.)
Register (Variable, Constant, Flag)
Multiplexor
일반 특성
(( slide slide 7272 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
Data Path
Flag
ExternalRequest
ExternalBus
ControllerInterruptFSM
ControlSignal
ControlSignal
ControllerMainFSM
Controller
Target Architecture
(( slide slide 7373 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
MainProcess
Controller
etriStartetriRequestSub-1
ProcessController
Branch Module
Datapath
Sub-2Process
Controller
InterruptController
ALU
etriStart
etriFinish
etriFinish
etriIntercept
etriPush
etriPush
etriPush
etriPush
etriStart
etriFinish
Interrupt
Target Architecture
(( slide slide 7474 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
VHDL 코드
library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_signed.all;
entity absdiff is
port ( a : in std_logic_vector (3 downto 0);
b : in std_logic_vector (3 downto 0);
d : out std_logic_vector (3 downto 0));
end absdiff;
architecture absdiff of absdiff is
begin
process (a, b)
begin
if (a > b) then d <= a - b;
else d <= b - a;
end if;
end process;
end absdiff;
(( slide slide 7575 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
최상위 블록 (absdiff)
I/F Branch
Data Path
Controller
I/F Latch
(( slide slide 7676 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
Controller 블록
OutputF/F
StateF/F
(( slide slide 7777 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
Data Path 기능블록
Register
Multiplexor ALU
(( slide slide 7878 )) April 20, 2023April 20, 2023System Centroid Inc.System Centroid Inc.
abs(00000011-00001111) = 00001100abs(3-15) = 12
최상위 블록 시뮬레이션 결과