Introduction to Development and V&V of FPGA-based Digital I&Cs 김의섭
목차 1. FPGA 2. Development Process / V&V 3. Summary 2
01 [ ] FPGA
FPGA 프로그램이가능한비메모리반도체의일종. 회로변경이불가능한일반반도체와달리용도에맞게회로를다시새겨넣을수있다. 따라서사용자는자신의용도에맞게반도체의기능을소프트웨어프로그램하듯이변형시킬수있다. 일반반도체에비해가격이수십 ~ 수백배비싸며항공, 자동차, 통신등의분야에주로쓰인다 - 네이버 ( 한경경제용어사전 ) 4
5
FPGA FPGA (Field-Programmable Gate Array) 프로그래머블논리요소와프로그래밍가능내부선이포함된반도체소자 넓은평야 (field) 의바둑판처럼규칙적인구획을가진배열 (Array) 을프로그래밍 Filed( 사용자 ) 에서프로그래밍이가능한 gate array( 디지털회로반도체 ) 6
FPGA FPGA (Field-Programmable Gate Array) 프로그래머블논리요소와프로그래밍가능내부선이포함된반도체소자 넓은평야 (field) 의바둑판처럼규칙적인구획을가진배열 (Array) 을프로그래밍 Filed( 사용자 ) 에서프로그래밍이가능한 gate array( 디지털회로반도체 ) 입력및출력회로배치 디지털회로를구현할수있는게이트 (AND, OR 등 ), 플립플롭, 멀티플렉서, 메모리 Programmable Interconnect 로직과로직사이를연결 FPGA Design 7 7
8
FPGA 초기 FPGA 는 ASIC 제품의양산전단계의시험용제품으로사용 FPGA는 ASIC으로가지전성능과동작을테스트하기위해중간개발물형태의직접회로 (IC) 로사용 오류발생시회로변경이가능한특성 ( 수정이가능 ) 개발시간이짧으며개발비용이비교적적음 9
FPGA 장 / 단점 장점 단점 간편하게설계한로직을반복적으로이식할수있다 Time to market 이좋다 빠르게시장에내다팔수있다. (ASIC 대비 ) ASIC 은한번만드는데대략 3~6 개월걸림 ( 설계상에오류가있다면그만큼의시간이필요 ) Non-recurring Engineering(NRE) charge 를내지않아도된다는것이다. - 이름그대로 NRE charge 는 ASIC 을의뢰하여샘플받는데까지무조건내야하는 ( 공정에따라한번에수천만원에서수억원에이름 ) 비용이고칩이동작안한다고하여돌려받을수있는돈이아니다. 업데이트가능 고비용 FPGA 는 SRAM 타입의경우 PROM 파일만바꿔주면안에내용을바꿀수있음 예를들어 해외에수출했는데오류가발생할경우, ASIC 은전수회수하여칩을교체해야함 반면, FPGA 는 SW 업데이트로해결이가능합니다. 대량으로생산하는경우 (ASIC 의양산단가는 FPGA 와비교안될정도로쌈 ) Size 문제 FPGA 에비해 ASIC 은칩의면적이작음 ( 충분히 optimize 되기때문 ) 핸드폰처럼작은사이즈가필요한제품은 FPGA 로설계하기어려움 ( 발열이나사이즈문제 ) 10 10
원자력도메인 원자로보호시스템 (RPS) 의플랫폼변경요구 (PLC FPGA) 원전디지털계측제어시스템에서공통원인고장 (Common Cause Failure) 발생가능성이증가 이를방지하기위해다양성및심층방어 (Diversity & Defense in Depth) 설계개념도입필요 Security 측면 기존 PLC 기반소프트웨어의유지보수비용과새로운 RPS 개발의복잡성증가 PLC (Programmable Logic Controller) FPGA (Field Programmable Gate Array) 11
02 [ Development ] Process / V&V
Development Process Requirement or Design Specification Functional Spec., I/O Signal Spec., Timing Const. RTL Design HDL (Verilog or VHDL) Synthesis 도구를이용한 Compile (Optimization) Gate-Level Design (Netlist) EDIF Place & Route Chip spec 에맞게배치 Layout JEDEC Download bit stream FPGA 13
Development Process + V&V Requirement or Design Specification Behavioral simulation Model checking RTL Design Equivalence cehcking Synthesis Gate-Level Design (Netlist) Logic simulation Equivalence cehcking Place & Route Layout Post-layout simulation Static timing analysis Download FPGA 14
Requirement or Design Specification 무엇을어떻게만들지결정 구현하고자하는 function 분석 Verification plan Project scheduling + chip 과 system 의성능분석 chip 의동작 clock 속도 Input / output 주기분석 15
RTL Design Register-transfer level 개발자는 Spec 을 HDL (Hardware Description Language) 로구현 (coding) 회로를구현하는세세한게이트들과그들간의연결을고려하지않고기능을중심으로구현가능 HDL 반도체및전자회로를기술하는데사용하는컴퓨터언어 디지털시스템을모델링 ( 설계 ) 기능 시뮬레이션 문서화 합성 언어특성 동시성 ( 시간 ) 병렬성 ( 공간 ) 추상화 대표적인 2 가지 HDL Verilog HDL VHDL CLK FPGA Module Module Module Signal 또는 CLK 의천이에따라각각은독립적 ( 병렬적 ) 으로수행 ( 무순서하게명령어실행 : 동시성 ) 16
HDL Verilog HDL 1983 년 Gateway Design Automation 사에서하드웨어기술언어인 HiLo 와 C 언어의특징을기반으로개발 EEE 1364 로표준화된 Verilog 는전자회로및시스템에사용되는하드웨어기술언어로, 회로설계, 검증, 구현등여러용도로사용 C 언어와비슷한문법 if 나 while, for loop 문과같은제어구조 / 연산자 : 논리 (&<^, ), 산술 (+,-,*,/) C 언어와달리, HDL 의특징인시간에대한개념이포함 VHDL 1981 년에제안, IEEE1076-1987,1993, 2000, 2002 표준 미국국방부에서주문형집적회로 (ASIC) 의문서화에사용하기위해만든언어 복잡한매뉴얼로회로의동작내용을설명하는대신, 회로의동작내용을문서화하여설명하기위해개발 추가적으로 Simulation 과 Synthesis 가지원되면서오늘날과같은형태의문법으로완성되어짐 17
RTL Verification Design이끝났으면 design이 Spec 대로올바로구현되었는지검증을해야함 개발한 Design이 specification을만족하는지확인 HDL은 hardware description 뿐아니라 simulation을위해서도사용됨 Behavioral simulation Simulation 은일반적으로가장많이사용되는검증방법 Simulation 을하기위해서는 3 가지가필요 1. Test bench 작성 2. Simulation 3. Simulation 결과와 spec 비교 18
Simulation 1. Test bench 작성 Test Bench 란테스트입력을인가하는모듈 매 clock cycle 마다제대로동작하는지 simulation vector 라는 input data 를설계모듈에넣어실행 Issue - 모든경우의수를확인하는것은불가능 따라서충분한 Coverage 또는 Corner Case 를커버하는 Test bench 의작성이중요 의미있는시뮬레이션입력벡터의생성이중요 2. Simulation Simulation 도구를이용하여수행 Issue - Simulation 은느리다 Simulation tool 은 HDL 에서기술된모든 signal 이매 clock 어떻게변하는지 monitoring 을하기때문 3. Simulation 결과와 spec 비교 Simulation 결과는 Wave form 형태로출력됨 Issue 결과분석의어려움 크기와복잡도가증가할수록분석에시간과노력이필요 19
Synthesis 란? 합성은 HDL 을이용한설계에서가장중요한과정 합성 = 변환 + 최적화 (translation) (optimization) 변환 : 동작적또는 RTL 기술 (HDL 설계 ) 구조적기술 ( 게이트레벨표현 ) 최적화 : 면적의최소화, 동작의고속화 20
Synthesis 란? RTL 레벨의 HDL 로작성된 Code 를 Gate-Level 의 optimization 된 Netlist 로변환 원래는사용자가직접 Netlist 를작성해야하지만제품의사이즈와복잡도가증가로인해직접작성이불가능해짐 사용자는사용자친화적언어인 HDL 로제품을설계하면 Synthesis 도구가이를지동으로 Netlist 형태로변환해줌 사용자가고려해야하는복잡한과정 (Optimization) 을대신수행 칩의 speed, cost, power 측면에서의최적화를자동으로수행 따라서, 사용자는 HW 의고려없이디자인및설계에집중 사용자수준의언어 Verilog Design Constraints Synthesis Target Library Netlist Speed, Cost, Power 등을고려한셀배치 21 21
Synthesis 의장단점 설계사이클단축 설계변경용이, 설계오류가능성저하, 간단한기술방식, 빠른설계, 빠른변경 설계의질적향상 여러가지 architecture 시도가능 : 최적화 면적또는속도최적화가능 ( 논리합성기의기능 ) Timing analyzer 기능포함 (critical path delay, setup, hold time 계산 ) 판매자, 기술 (technology) 에무관한설계가능 ASIC or FPGA 로구현가능, 어떤 vendor 의 chip 을사용하든무관 설계비용절감 설계기간단축, 스키메틱설계과정생략, 설계오류저하 Design reusability IP, Library 그대로또는수정해서사용가능 단점 논리합성결과, 자동생성된회로도면을이해하기어렵다. 합성도구성능에크게좌우된다. 22
Synthesis Tools Commercial tool for logic synthesis (3 rd party synthesis tool) XST (delivered within ISE) by Xilinx Quartus II integrated Synthesis by Altera IspLever by Lattice Semiconductor Encounter RTL Compiler by Cadence Design Systems LeonardoSpectrum and Precision (RTL / Physical) by Mentor Graphics Synplify (PRO / Premier) by Synopsys BlastFPGA by Magma Design Automation 23
Gate-Level Design (Netlist) Synthesis 후나오는결과 게이트와그들간의연결이라는관점에서의회로 Synthesis 24
Logic simulation Synthesis Tool 이합성을잘했는지보장할수있을까? Synthesis Tool도 software이므로버그가항상존재할수있음 Vendor마다최적화또는변환룰이각각다름 Optimization 으로인해 design의정형성이깨지게됨 일반적으로좋은결과를제공하지만, 신뢰성 따라서합성결과로나온 netlist가올바른지검증할필요가있음 특히, 원자력분야에아직사용된이력이없어신뢰성및안정성을위해검증필요 (COTS dedication) Verilog Synthesis Netlist 25
Logic simulation Logic simulation Netlist 가의도한대로동작하는지기능확인 RTL level 에서사용한 test bench 를사용할수있음 Issue - 느린 simulation 속도 / RTL level 의 simulation 과중복 Co-simulation 방법 동일한 test bench 를이용하여 simulation 을수행 자동으로결과비교 26
Equivalence checking Co-simulation 을통해서 RTL 과 Netlist 간의동일서확인가능 하지만, 역시모든 vector 에대해서 test 를진행할수없다는단점이있음 이를검증하기위해 EC 를사용 XOR gate 같으면 0 다르면 1 27
Equivalence checking EC 장점 효율적인검증 : 테스트벤치를생성할필요가없다. 효과적인검증 : 시뮬레이션에비해속도가빠르다. 정형검증 가능한모든입력에대해확인이가능하다. 시뮬레이션기반방법은불가능 Issue State explosion or 성능 다양한지원 Tools 존재 외산 / 상당한로얄티 FormalPro by Mentor Graphics / Conformal by Cadence / Jasper Gold by Cadence / Formality by Synopsys / Conformal LEC by Cadence Design Systems / Quartz Formal by Magma Design Automation / 360 EC by OneSpin Solutions 28
Development Process + V&V Requirement or Design Specification Behavioral simulation Model checking RTL Design Equivalence cehcking Synthesis Gate-Level Design (Netlist) Logic simulation Equivalence cehcking Place & Route Layout Post-layout simulation Static timing analysis Download FPGA 29
Place & Route 란? Place & Route 란 Map 정보를가지고 Logic Element 를 FPGA 내에배치하고, Wire 를연결해주는작업 Gate 수준의 Netlist 정보를받아 Cell 을배치하고 Cell 사이를 route 함? 30 30
배치 31
AO1 배선 32
33
Post-layout simulation P&R 후 back-annotation 정보 (gate 들의 delay 정보등 ) 을이용해시뮬레이션수행 Delay 가삽입되어도동일한기능을 ( 동일한출력 ) 수행하는지확인하는과정 Issue - 느린 simulation 속도 / behavior & logic simulation 과중복 Co-simulation 방법 동일한 test bench 를이용하여 simulation 을수행 자동으로결과비교 34
Static Timing Analysis FPGA 개발에있어타이밍과동작기능은항상같이고려해야할문제 STA 는발생할수있는 timing 에대한문제를사전에처리해주는기능 실제수행 (simulation) 없이회로의 delay 시간을계산하여 Violation 을확인 설계자가원하는 timing(clock 주파수나, delay 등 ) 이제대로맞는지검증 15us 10us Combinational Logic 이상당히복잡할경우두번째 F/F 에원하는 Signal 이도착하지못할수있다 35 35
Timing violation 의예 간단한타이밍위반 (timing violation) 예로두가지가있음 1. Setup timing violation 합성 Constraint 가너무타이트한경우발생 합성된결과가클럭주기보다도큰딜레이를갖는 Combinational logic 을가질때 어떤 rising edge 에서 data 값을인식하기위해서는 data 는 clock rising edge 보다이전에유효한값을일정시간동안가지고있어야함 2. Hold timing violation hold time 동안은유효한데이터가계속변하지않고유지되어야함 예를들어상승에지에동작하는플립플롭이입력값을인지하기도전에입력이바뀌면 hold time violation 이발생 아래는홀드타인요구조건이 1ns 인경우이며, 이러한경우에는클럭상승에지를기준으로최소 1ns 동안은값을유지하고있어야함 36 36
Ex) Setup timing violation Original : 15us 10us Solution 1 : 20us Solution : 7us 8us 10us 클럭주기보다 Comb 의 Signal 인가시간이짧도록유지 Issue : 적절한 timing constraints? system 과 chip spec 에대한분석필요 37
Summary FPGA 개발자가프로그래밍가능한반도체 FPGA 개발 + 검증 Process 38
행위수준합성도구들도등장하고있다고함 RTL 을 Layout 단계의회로행위로변환 단계 비교 하드웨어설계 컴퓨터프로그래밍 3 단계 동작적기술 (HDL 설계 ) 고급언어프로그램 합성 2 단계 구조적기술 ( 게이트레벨설계 ) 실리콘컴파일러 어셈블리어프로그램? 고급언어컴파일러 어셈블러 1 단계 레이아웃설계 기계어프로그램 39
40