Microsoft Word - KAERIAR

Similar documents
<BFACBDC0B9AEC1A6C7AEC0CC5F F E687770>

Microsoft Word - logic2005.doc

실험 5

한국기술교육대학교장영조

9장 순차논리 회로

Microsoft PowerPoint - VHDL08.ppt [호환 모드]

PowerPoint Presentation

(b) 연산증폭기슬루율측정회로 (c) 연산증폭기공통모드제거비측정회로 그림 1.1. 연산증폭기성능파라미터측정회로

(b) 미분기 (c) 적분기 그림 6.1. 연산증폭기연산응용회로

<4D F736F F F696E74202D20332EB5F0C1F6C5D0C8B8B7CEBFCD20B1B8C7F62E >

Microsoft Word - PLC제어응용-2차시.doc

Microsoft PowerPoint - DSD04_fpga1.pptx

歯15-ROMPLD.PDF

PowerPoint 프레젠테이션

ºÎ·ÏB

<4D F736F F F696E74202D C61645FB3EDB8AEC7D5BCBA20B9D720C5F8BBE7BFEBB9FD2E BC8A3C8AF20B8F0B5E55D>

Microsoft Word - Lab.4

KMC.xlsm

MAX+plus II Getting Started - 무작정따라하기

반도체메모리 메모리 (memory) 분류 순차액세스메모리 랜덤액세스메모리 RAM ROM DRAM SRAM Mask ROM Field PROM 반도체메모리의분류 Fuse-link PROM EPROM EEPROM - 2 -

歯03-ICFamily.PDF

BY-FDP-4-70.hwp

PowerPoint 프레젠테이션

4장 논리 게이트

그룹웨어와 XXXXX 제목 예제

Microsoft PowerPoint - SY-A3PSK-V1.pptx

제목을 입력하십시오

<4D F736F F F696E74202D20B1E2BCFAC1A4BAB8C8B8C0C72DB0E8C3F8C1A6BEEE2DC0CCC0E7C8EF2E BC0D0B1E220C0FCBFEB5D>

1. 일련의순차적인수를세는회로는? < 가 > 가카운터 다디코더 나레지스터 라인코더 2. 입력펄스에따라미리정해진순서대로상태가변화하는레지스터로써발생회수를세거나동작순서를제어하기위한타이밍 (timing) 신호를만드는데가장적합한회로는? < 다 > 가범용레지스터 다

디지털공학 5판 7-8장

Microsoft PowerPoint - ICCAD_Analog_lec01.ppt [호환 모드]

Microsoft PowerPoint - 30.ppt [호환 모드]

논리회로설계 3 장 성공회대학교 IT 융합학부 1

<BFACBDC0B9AEC1A6C7AEC0CC5F F E687770>

3. 다음은카르노맵의표이다. 논리식을간략화한것은? < 나 > 4. 다음카르노맵을간략화시킨결과는? < >

FPGA 개념 q FPGA (Field Programmable Gate Array)? v 사용자가현장에서직접프로그램가능한소자 v 기본적인논리게이트, 플립플롭, 메모리등을구현가능 v 수십개 ~ 수백만개의소자를포함하는규모 v 개발기간이짧고회로동작을바로검증할수있어개발초기에사

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

1_12-53(김동희)_.hwp

CAN-fly Quick Manual

<BFACBDC0B9AEC1A6C7AEC0CC5F F E687770>

5_03.hwp

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

실험 5

Microsoft PowerPoint - DSD03_verilog3b.pptx

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

논리회로설계 6 장 성공회대학교 IT 융합학부 1

ISP and CodeVisionAVR C Compiler.hwp

PowerPoint 프레젠테이션

DE1-SoC Board

Microsoft PowerPoint - es-arduino-lecture-03

Microsoft PowerPoint - analogic_kimys_ch10.ppt

Microsoft Word - Lab.7

½½¶óÀ̵å Á¦¸ñ ¾øÀ½

Microsoft Word - logic2005.doc

API 매뉴얼

Microsoft PowerPoint - Ch13

<BBEABEF7B5BFC7E22DA5B12E687770>

슬라이드 1

28 저전력복합스위칭기반의 0.16mm 2 12b 30MS/s 0.18um CMOS SAR ADC 신희욱외 Ⅰ. 서론 Ⅱ. 제안하는 SAR ADC 구조및회로설계 1. 제안하는 SAR ADC의전체구조

WebPACK 및 ModelSim 사용법.hwp

BS-K1217-M□□-3012_ProductGuide_KR_PDF

전자회로 실험

Microsoft PowerPoint - ch11_reg.pptx

example code are examined in this stage The low pressure pressurizer reactor trip module of the Plant Protection System was programmed as subject for

Video Stabilization

Microsoft Word - PEB08_USER_GUIDE.doc

Microsoft PowerPoint 상 교류 회로

歯Intro_alt_han_s.PDF

이 장에서 사용되는 MATLAB 명령어들은 비교적 복잡하므로 MATLAB 창에서 명령어를 직접 입력하지 않고 확장자가 m 인 text 파일을 작성하여 실행을 한다

Motor Control Solution

Microsoft PowerPoint - 제12장.ppt [호환 모드]

Microsoft PowerPoint - Ch8

- 2 -

01. Start JAVA!

PowerChute Personal Edition v3.1.0 에이전트 사용 설명서

untitled

2 PX-8000과 RM-8000/LM-8000등의 관련 제품은 시스템의 간편한 설치와 쉬운 운영에 대한 고급 기술을 제공합니다. 또한 뛰어난 확장성으로 사용자가 요구하는 시스템을 손쉽게 구현할 수 있습니다. 메인컨트롤러인 PX-8000의 BGM입력소스를 8개의 로컬지

슬라이드 제목 없음

수없기때문에간단한부분으로나눠서구현하고, 이를다시합침으로써전체를구현하게 된다. 실험에서는이미구현된 4-Bit ALU인 74LS181 Chip을사용한다. 이 Chip은 4-bit의 Data input A, B와 Selection input 4 bit, Carry In 1

PowerPoint Presentation

온습도 판넬미터(JTH-05) 사양서V1.0


03 장태헌.hwp

디지털 ASIC 설계 (1주차) MAXPLUS II 소개 및 사용법

PowerPoint 프레젠테이션

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729>

Microsoft PowerPoint - 1강 pcb발표 & OrCAD.PPT

Microsoft PowerPoint - Ch12

마이크로시스템제작 lecture1. 강의소개및 MultiSIM 선덕한 마이크로시스템 1

. 메모리의구조. 메모리개요 v 메모리번지레지스터 (MAR : memory address register) : 메모리액세스시특정워드의주소가 MAR 에전송된다. v 메모리버퍼레지스터 (MBR : memory buffer register) : 레지스터와외부장치사이에서전송되

구성품 - UMD 2808 모듈 - JTAG 커넥터 - 젂원 케이블 주요 특징 모듈의 부품화 : 고신뢰성의 DSP 모듈을 최적화된 시스템에 적용 용이 TMS320F2808 ZGMS - 100MHz 탑재 : 확장된 온도규격 (-40 도 ~ 125 도) 적용 Ultralo

실험 5

서보교육자료배포용.ppt

슬라이드 1

금오공대 컴퓨터공학전공 강의자료

10. 메모리 목표 메모리의개요 Random Access Memory (RAM) Read Only Memory (ROM) 프로그램가능한 ROM (PROM) 비휘발성입 / 출력메모리 메모리패키지 대용량저장장치 1

뉴티씨 (NEWTC) 2. FB-CY4E-DEV (FPGA 개발 키트) 구성도 Port Select SW 7 Segment Text LCD UART RS-232C JTAG PORTA (5V) Active Serial PORTB (5V) OSC. 50MHz Analog

VHDL 기초 VHDL 두원공과대학정보통신미디어계열이무영

PowerPoint Presentation

Transcription:

KAERI/AR-836/2009 원자력발전소계측제어계통에적용을위한 CPLD/FPGA 기술현황분석 Survey of the CPLD/FPGA Technology for Application to NPP Digital I&C System 2009.08 한국원자력연구원

제출문 한국원자력연구원장귀하 본보고서를 2009 년도 계측제어안전계통필수기술개발 과제및 계측 제어안전계통독립검증 과제의기술현황분석보고서로제출합니다 2009.08. 주저자 : 최종균 ( 계측제어인간공학연구부 ) 공저자 : 권기춘 ( 계측제어인간공학연구부 ) 이동영 ( 계측제어인간공학연구부 ) 이장수 ( 계측제어인간공학연구부 ) 이영준 ( 계측제어인간공학연구부 ) 손광섭 ( 계측제어인간공학연구부 ) 박기용 ( 계측제어인간공학연구부 ) 이현철 ( 계측제어인간공학연구부 ) 박원만 ( 계측제어인간공학연구부 ) 장통일 ( 계측제어인간공학연구부 ) 김동훈 ( 계측제어인간공학연구부 ) 오인석 ( 계측제어인간공학연구부 ) 이정운 ( 계측제어인간공학연구부 ) 이용희 ( 계측제어인간공학연구부 ) 허섭 ( 계측제어인간공학연구부 ) 김정택 ( 계측제어인간공학연구부 ) 황인구 ( 계측제어인간공학연구부 ) 박재창 ( 계측제어인간공학연구부 ) 이철권 ( 계측제어인간공학연구부 ) 김장열 ( 계측제어인간공학연구부 ) 김창회 ( 계측제어인간공학연구부 ) 천세우 ( 계측제어인간공학연구부 )

요약문 원자력산업의경우, 기존의원자력발전소에사용되고있는아날로그기술기반의계측제어시스템은노후화로인해보수및교체가요구되고있다. 그러나기술지원및부품조달의어려움으로인해아날로그기기의계속사용에어려움이있으며, 기존원자력발전소의유지및보수에어려움을겪고있다. 이러한이유로인해, 국제적으로기존의아날로그기술기반의계측제어시스템을디지털기술기반의계측제어시스템으로교체하고있으며, 신규원자력발전소에도디지털기술기반의계측제어시스템을채택하고있다. 현재디지털계측제어시스템은마이크로프로세서기반의하드웨어에소프트웨어를탑재하는방식과프로그래머블논리소자기반의설계방식으로개발되고있다. 상대적으로프로그래머블논리소자기반의계측제어시스템은개발이용이하고, 응답시간이빠르며, 결정론적특성의구현이용이하고, 기기및부품단종에유연하게대처할수있다. 또한, 사이버보안에대한문제도거의존재하지않는다. 이러한이유로인해, 국내외적으로프로그래머블논리소자를이용한디지털계측제어시스템의개발에관심이높아지고있다. 본보고서에서는프로그래머블논리소자를이용한계측제어시스템의개발을위하여프로그래머블논리소자의종류, 구조, 제조방법및특성을정리하였고, 국내외의프로그래머블논리소자기반의계측제어시스템의개발동향을정리하였다. 그리고시스템측면에서프로그래머블논리소자의설계지침및코딩지침을정리하였다. - i -

목 차 요약문 I 목차 ii 그림목차 iv 표목차 vi 제 1 장 서론 1 제 1 절 FPGA 기술의도입 1 제 2 절 FPGA 개발공정 1 제 3 절 보고서의구성 3 제 2 장 FPGA 소개 4 제 1 절 FPGA 개요 4 제 2 절 FPGA 구조 5 제 3 절 FPGA 프로그래밍기술 9 제 4 절 FPGA 종류및공급자 15 제 5 절 FPGA 기술의취약성 16 제 3 장 FPGA 적용현황 24 제 1 절 FPGA 규제기술및인허가현황 24 제 2 절 FPGA 원자력발전소적용현황 27 제 3 절 FPGA 개발공정적용현황 33 제 4 장 FPGA 설계지침 41 제 1 절 특별한핀들 41 제 2 절 입력출력 42 제 3 절 클럭 47 제 4 절 유한상태머신 (Finite State Machines) 50 제 5 절 리셋 53 제 6 절 위험요소분석 55 제 7 절 전원시스템 56 제 8 절 비휘발성메모리들 57 제 9 절 타이밍분석및여유도 62 제 10 절기타설계지침과기준 66 제 11 절설계및분석문서화 69 제 12 절디지털전자회로의검토 71 - ii -

제 5 장 FPGA 코딩지침 80 제 1 절 개요 80 제 2 절 하드웨어명세언어 80 제 3 절 기능정확성 83 제 4 절 타이밍정확성 91 제 5 절 합성성 97 제 6 절 유지보수용이성 101 제 6 장결론및활용방안 111 제 7 장참고문헌 113 - iii -

그림목차 그림 1.1 FPGA 개발및검증절차... 2 그림 2.1 프로그래머블논리소자... 4 그림 2.2 프로그래머블로직어레이구조... 6 그림 2.3 프로그래머블어레이로직의구조... 7 그림 2.4 일반적인 CPLD 구조... 8 그림 2.5 FPGA 구조... 9 그림 2.6 SRAM 프로그래밍기술... 11 그림 2.7 SRAM 에의해제어되는 PLD... 11 그림 2.8 Actel 의 Anti-fuse 프로그래밍기술... 12 그림 2.9 EEPROM 프로그래밍기술... 13 그림 2.10 집적도에따른전자부품의신뢰도그래프... 17 그림 2.11 우주에서지구상에미치는방사선효과... 18 그림 2.12 방사선이반도체부품에미치는영향... 18 그림 2.13 이상적인상황에서의로직신호... 20 그림 2.14 현실상황에서의로직신호... 20 그림 2.15 잘못된클록게이팅예... 21 그림 2.16 플립플롭의셋업시간및홀드시간... 22 그림 2.17 플립플롭의준안정상태... 23 그림 3.1 FPGA 설계에관련최소요구문서... 25 그림 3.2 IEC 62566 에서제안한 FPGA 개발공정... 26 그림 3.3 시스템 Criticality Level... 27 그림 3.4 Discrete 부품으로구성된보드의기능을 FPGA 로구현... 28 그림 3.5 Motolar MP6800 을 FPGA 로교체... 28 그림 3.6 포스콘안전등급 PLC 개발... 29 그림 3.7 우크라이나의 FPGA 기반계측제어시스템... 30 그림 3.8 ALS 플랫폼... 30 그림 3.9 CANDU 의 SDS1 채널... 31 그림 3.10 일본의 BWR 를위한 Power Range Monitoring System... 31 그림 3.11 PRM 구성... 32 그림 3.12 LPRM 구성... 32 그림 3.13 안전등급제어기기기능시험... 33 그림 3.14 한국원자력연구원의 FPGA 기반시스템개발공정... 34 그림 3.15 항공분야의 FPGA 기반시스템개발공정... 34 그림 3.16 FPGA 세부설계활동... 36 - iv -

그림 3.17 FPGA 개발공정및활동... 37 그림 3.18 시뮬레이션분석방법... 38 그림 3.19 하드웨어검증시험... 39 그림 5.1 VHDL 코드예... 81 그림 5.2 Verilog 코드예... 81 그림 5.3 VHDL 모델링능력... 82 그림 5.4 Verilog 모델링능력... 82 그림 5.5 루프구조조합회로... 89 그림 5.6 루프구조의조합회로코딩예... 89 그림 5.7 루프구조래치회로예... 90 그림 5.8 삼상태버스구조... 91 그림 5.9 잘못된클록게이팅예... 94 그림 5.10 적절한클록게이팅예... 95 그림 5.11 다른클록도메인의동기화예... 97 그림 5.12 조합회로설계예... 99 그림 5.13 코드계층구조및하드웨어계층구조... 102 - v -

표목차 표 2.1 프로그램밍기술에따른성능비교... 14 표 2.2 주요프로그래머블논리소자공급자... 15 표 2.3 상용프로그래머블논리소자종류... 16 표 2.4 FPGA SEU 실험결과... 19 - vi -

제 1 장서론 제 1 절 FPGA 기술의도입 집적회로기술이발달하면서더많은컴포넌트들이하나의칩에들어갈수있게됨에따라, 디지털시스템의복잡도는계속증가하여왔다. 처음에는소수의트랜지스터를하나의칩에구현하는소규모집적회로 (Small Scale Integration: SSI) 가개발되었다. 이후, 많은기술적발전으로하나의칩에수백개의게이트들이구현된중규모집적회로 (Medium Scale Integration: MSI), 수천개의게이트들이구현된대규모집적회로 (Large Scale Integration: LSI), 수만개의게이트를갖는대대규모집적회로 (Very Large Scale Integration: VLSI) 그리고수십만개이상의게이트를하나의칩에구현하는초대규모집적회로 (Ultra Large Scale Integration: ULSI) 가개발되어왔다. 이러한, 집적기술이발달되어디지털시스템이복잡해짐에따라, 설계자가직접손으로회로를설계하던방식에서컴퓨터지원설계 (Computer Aided Design: CAD) 도구를사용하여회로를설계하기시작하였다. 설계자는더이상디지털회로를설계하기위하여게이트들을손으로직접배치할필요없이, VHDL(VHSIC Hardware Description Language) 이나 Verilog HDL 같은하드웨어기술언어 (Hardware Description Language: HDL) 를이용하여설계를수행하며, 이렇게설계된설계결과물은 CAD 에의해자동으로합성 (Synthesize) 되어칩에구현될수있게되었다. 본과제는원전계측제어시스템의개발에이러한고직접도의프로그래머블논리소자의도입가능을파악하기위하여프로그래머블논리소자의특성, 취약성을조사하였고, 현재원자력분야에서프로그래머블논리소자의적용현황 ( 관련규제기준, 관련기술기준, 개발현황등 ) 을조사하였다. 또한프로그래머블논리소자를이용하여시스템을개발시에적용가능한설계지침및코딩지침을개발하였다. 제 2 절 FPGA 개발공정 원자력발전소에적용을목적으로개발되는시스템에는높은안전성및신뢰성이요구된다. 특히, 안전-필수 (Safety-Critical) 등급의시스템은가장높은안전성을요구받고있다. 따라서 FPGA 기반의디지털시스템이안전-필수등급의시스템에적용되기위해서는시스템이안전하고신뢰성이있게개발해야하고이를입증할수있어야한다. 특히, FPGA 기반시스템의경우, 시스템의모든주요기능들이 FPGA에구현되기때문에, FPGA에구 - 1 -

현되는로직의안전성및신뢰성이시스템의안전성및신뢰성을결정한다고볼수있 다. 요구사항 요구사항확인 구조설계 구조설계확인 상세설계 상세설계확인 코딩 코드확인및 Behavioral 시뮬레이션 합성 Logic-Level 시뮬레이션 배선및배치 Post-layout 시뮬레이션 구현 FPGA Verification & 기능시험 그림 1.1 FPGA 개발및검증절차 그림 1.1은 FPGA의개발및검증절차를보여준다. 개발의첫번째단계는 FPGA에요구되는기능을나타내는요구사항을체계적인문서형태로기술하는단계이다. 요구사항을명확히정의한후설계사양을정의한다. 다음단계는블록도또는알고리즘수준의개념적인수준의설계를체계화하는구조설계및상세설계단계이다. 구조설계및상세설계가끝난후, 이를바탕으로 HDL를이용하여 RTL(Register Transfer Level) 수준의코드를작성하고, 합성한다. 논리합성도구는 RTL 수준의코드를게이트수준의넷-리스트 (netlist) 로변환한다. 게이트수준의넷-리스트는게이트와그들간의연결이라는관점에서의회로를말한다. 그게이트수준의넷-리스트는레이아웃을생성하는자동배치도구와배선도구의입력이된다. 레이아웃은구현도구에의해자동으로칩위해회로가제작된다. 일반적으로 RTL 코드작성이전의단계는설계자에의해수동으로개발이이루어지며, RTL 코드작성이후의단계는소프트웨어도구에의해자동으로개발이수행된다. 따라서설계자에의해수동으로수행되는최종단계는 RTL 코드작성단계이며, RTL 코드 가요구사항을만족하도록작성되었는지가 FPGA 의품질 ( 정확성, 신뢰성및안전성등 ) 을 결정한다. - 2 -

제 3 절 보고서의구성 제 1 장에서는본보고서의서론의본보고서의작성목적및 FPGA 개발공정에대하여 설명하였다. 제 2장에서는현재상용으로제공되고있는프로그래머블논리소자의개요및구조를설명하였다. 또한프로그래머블논리소자의구성기술에따른특성을기술하였고, 상용으로시장에서구매할수있는프로그래머블논리소자의종류및이를제공하는공급자를설명하였다. 그리고프로그래머블논리소자의전기적및물리적취약성을분석하였다. 제 3장에서는현재프로그래머블논리소자의원자력분야에적용에관련된규제지침및기술기술을설명하였다. 그리고, 국내외적으로프로그래머블논리소자를이용하여원자력발전소의계측제어시스템개발현황을설명하였다. 또한, 현재프로그래머블논리소자를이용한시스템개발에사용되는개발공정을설명하였다. 제 4장에서는프로그래머블논리소자를이용한시스템개발시에적용가능한설계지침을설명하였다. 설계지침에는프로그래머블논리소자의외부핀 ( 사용하지않는핀, 모드핀, JTEG 핀 ) 에대한처리방법, 입력및출력신호설계, 클럭신호설계, 리셋신호설계, 전원설계, 타이밍분석등에대한지침을포함한다. 제 5 장에서는프로그래머블논리소자설계를위한코딩지침을설명하였다. 코딩지침 에는기능정확성, 타이밍정확성, 합성성, 유지보수성측면에서, 이러한특성을만족하 기위한코딩방법을제시하고있다. - 3 -

제 2 장 FPGA 소개 제 1 절 FPGA 개요 설계자는디지털회로를구현하기위해 PAL(Programmable Array Logic), PLA(Programmable Logic Array), CPLD(Complex Programmable Logic Arrary), FPGA(Field Programmable Gate Array) 와같은프로그래머블논리소자를선호하여왔다. 그첫번째이유로, 설계자는이러한한개의물리적디바이스내에복잡하고다양한기능을구현할수있기때문이다. 프로그머블논리소자는여러규격화된디바이스의사용뿐만아니라외부배선과관련된불편함과신뢰성문제를없앨수있다. 두번째이유로, 설계자는이러한디바이스를사용하여쉽게설계변경이가능하기때문이다. 즉, 설계에오류가있거나, 설계사양이변경된경우에, 이러한프로그래머블논리소자를재프로그램밍할수있다. 그림 2.1 프로그래머블논리소자 그림 2는많이사용되는프로그래머블논리소자를분류한것이다. 그림2의최상위에위한 FPLD의의미는디바이스가반도체제조공정에서프로그램되는것이아나, 사용자의 사용현장 에서설계자에의해직접프로그램된다는것을의미하며, 일반적으로프로그래머블논리소자라함은이러한필드프로그래머블논리소자를의미한다. AND-OR 회로의형태를갖는사용자프로그래머블로직은 1970 년대초에개발되었다. 1972~1973 년경에현장에서 1 회만프로그램할수있는로직어레이를사용할수있게되 - 4 -

어, 설계자가즉시맞춤형설계를할수있도록하였다. 이러한디바이스를필드프로그래머블로직어레이 (FPLA) 라고한다. 이와유사한디바이스는프로그래머블어레이로직 (PAL) 이다. PAL와 PLA는게이트어레이로이루어진다. PLA에는프로그래머블 AND 어레이와프로그래머블 OR 어레이가있어서, 사용자가이두레벨의게이트를이용하여조합함수를구현할수있게한다. PAL은 PLA의특별한경우로, OR 어레이는고정되어있고 AND 어레이에대해서만프로그램할수있다. PROM, PAL, PLA, GLA를통칭해서 SPLD라고한다. CPLD 는여러개의 SPLD 를하나의칩에내장하고각각의 SPLD 블록들을상호연결하여 프로그램이가능한디바이스다. SPLD 에비해집적능력이크며, 500~16000 게이트의범위 를갖는다. 1980년대말에 Xilinx사는프로그래머블논리소자에대한설정정보를저장하기위하여정적랜덤엑세스메모리 (RAM) 을사용하였고, 상당히많은양의로직을집적할수있는 FPGA라는디바이스를만들었다. 곧바로여러 PLD 공급자와게이트어레이공급자들이시장에뛰어들어다양한구조를갖는 FPGA를생산하게되었다. 일부구조들은재프로그래머블기술을사용하였고다른구조들은프로그래머블퓨즈기술을사용하였다. FPGA 기술은지난 15녀간꾸준히발전하여왔으며, 오늘날에는 5 백만게이트이상을갖고있는 FPGA도있다. 제 2 절 FPGA 구조 1. SPLD 구조 1) PLA 구조 그림 2.2 는 3 개의입력과 4 개의출력을갖는 PLA 를보여준다. 따라서, 그림 2.2 의 PLA 는 3 개의변수를갖는 4 개의함수를구현할수있다. 그림 2.2의회색영역과같이 PLA는프로그래머블 AND 어레이와프로그래머블 OR 어레이로구성되며, 각각의 AND 어레이와 OR 어레이는프로그램할수있도록되어있다. PLA의모든입력은 AND 어레이를거쳐서각각의 AND 게이트의입력과연결될수있으며, AND 게이트의모든출력은 OR 어레이를거쳐서모든 OR 게이트의입력을연결될수있다. PLA의 AND 어레이와 OR 어레이의교차점은사용자가프로그램하기전에는전기적으로연결되어있지않다. 사용자가원하는기능을구현하기위해서이러한특정교차점을전기적으로연결하면 OR 게이트의출력에특정함수가출력된다. - 5 -

그림 2.2 프로그래머블로직어레이구조 그림 2.2는특정교차점이전기적으로프로그램된 PLA를보여주며, 각각의 AND 게이트및 OR 게이트의출력은다음과같다. (1) 1번 AND 게이트출력 = A BC (2) 2번 AND 게이트출력 = AB C (3) 3번 AND 게이트출력 = A BC (4) 1번 OR 게이트출력 = A BC + A BC 2) PAL 구조 PAL은 PLA의특수한경우로, AND 어레이는프로그램할수있지만 OR 어레이는고정되어있다. PAL은그림 2.3과같이기본적으로 PLA와같다. AND 어레이만프로그램할수있기때문에, PAL은일반적인 PLA보다제조비용이비교적저렴하고, 프로그램이용이하다. 이러한이유로, 논리설계자는여러논리함수를구현할때개별논리게이트를대체하기위해흔히 PAL을사용한다. 그러나, 디지털논리를구현함에있어서 PLA보다덜유연성을갖는다. 그림 2.2 및 2.3에서보여진것처럼, PLA와 PAL에는조합회로가구현될수있다. 또한, PAL으로부터구동되는입력을가지고있는래치또는플립플롭을내장하고있는 PAL 도있다. 이러한 PAL을순차 PAL이라고한다. 이러한 PAL을이용하면순차회로를편리하게 - 6 -

구현할수있다. 그림 2.3 프로그래머블어레이로직의구조 2. CPLD 구조 CPLD 는 PAL 개념의확장이다. 일반적으로 CPLD 는프로그램가능한연결선행렬구조와 더불어 PAL 과같은로직블록 (logic block) 으로구성된 IC 이다. 보통, CPLD 는 500 ~ 10,000 개의논리게이트를가지고있다. 일반적인 CPLD는많은기능블록들로구성되며, 각기능블록은매크로셀 (macrocell) 과 PLA( 또는 PAL) 로구성되어진다. 그림 2.4는 8개의기능블록으로구성된 CPLD를보여준다. 각각의매크로셀은플립플롭과멀티플렉서를가지고있으며, 이러한플립플롭과멀티플렉서는기능블록에서입출력 (I/O) 블록또는상호연결어레이들과의신호연결을위해서사용된다. 각각의블록들과의연결은상호연결어레이 (interconnection array) 에의해이루어진다. 각각의메크로셀은플립플롭과입력들이 AND 게이트어레이와연결되어있는 OR 게이트를포함하고있다. 몇몇 CPLD들은 PAL 기반이며, 이경우각각의 OR 게이트들은고정 AND 게이트셀과조합되어있다. 그외의 CPLD들은 PLA 기반이며, 기능블록안의 AND 게이트의출력은어느것이든그블록안의 OR 게이트입력과연결될수있다. - 7 -

그림 2.4 일반적인 CPLD 구조 3. FPGA 구조 FPGA는고밀도프로그래머블논리소자로분류된다. FPGA도 PAL과마찬가지로전기적인퓨즈에의한사용자프로그래밍으로원하는회로를빠른시간에구현할수있게하여준다. 그러나 PAL이일반적으로 AND -OR 게이트로된구조적인어레이를취함에따른회로구현의효율성이낮은것에비하여 FPGA는다양한형태의디지털회로를구현할수있는논리및연결구조로인하여고성능의회로를구현할수있게한다. FPGA는 1985년 Xilinx사에의하여처음소개된이후로현재많은회사가다양한형태의유사소자들을제공하고있다. FPGA는소자에포함된게이트개수, 입출력블록및핀수, 동작속도에따라가격의차이가매우크고구현후회로성능에도차이가있으므로응용목적에적합한소자를사용하는것이필요하다. 그림 2.5 는전형적인 FPGA 의구조를보여준다. FPGA 의내부는일반적으로프로그래머블 로직블록 (programmable logic block), 프로그래머블입력 / 출력블록 (programmable I/O block), 프로그래머블연결 (programmable interconnect) 로구성되어있다. 프로그래머블로직블록에는디지털회로를구현할수있는게이트, 플립플롭, 멀티플렉서, 룩업테이블등이배치되어있다. 로직블록을프로그램한다는것은멀티플렉서로가는입력또는제어신호를변경한다든지, 룩업테이블의값을변경한다든지, 또는 AND-OR 게이트블록들에서특정게이트를선택또는비-선택하는것을의미한다. - 8 -

그림 2.5 FPGA 구조 배선연결에서프로그램한다는것은특정연결을만든다든지또는끊어버리는것을의미 한다. 이것은칩내부의다양한블록을연결하고, 특정 I/O 핀들을특정로직블록들과 연결하기위하여필요하다. 프로그래머블 I/O 블록들은입력, 출력, 또는양방향성으로동작하도록프로그램이가능한블록들을의미한다. 전형적으로이러한것들은반전 / 비반전, 삼상태, 수동풀업과같은버퍼의속성, 또는핀의신호변화속도 (Slew rate) 를조절하기위한프로그램을할수있다. 그림 2.5 는일반적인 FPGA 구조를보여주고있지만모든 FPGA 가이러한구조로되어 있는것은아니다. 상용 FPGA 는공급자에따라다양한구조로되어있다. 제 3 절 FPGA 프로그래밍기술 프로그래머블논리소자는프로그램가능한상호연결선구조로연결되어있는로직블록으로구성되어있다. 설계자는원하는디지털회로를프로그래머블논리소자에구현하기위하여프로그래머블로직블록및로직블록사이의상호연결을 프로그램 또는 - 9 -

구성 하여야한다. 설계자는프로그래머블 2진값 (0 또는 1) 으로이루어진일련의값들을논리소자에다운로드해야한다. 즉, 설계자는구현하고자하는디지털회로를 VHDL 또는 Verilog 같은 HDL 언어를사용하여설계하고, 이러한설계결과를소프트웨어도구를이용하여합성, 배선및배치를수행한다. 이러한일련의작업을수행하면, 최종적으로 구성파일 (Configuration file) 이생성된다. 설계자는구성파일을프로그래머블논리소자에다운로드하면프로그래머블논리소자에설계자가원하는디지털회로가생성된다. 구성파일은일련의 2진값들로이루어져있으며, 프로그래머블논리소자내의로직블록또는블록사이의상호연결에정보를제공한다. 따라서, 이러한일련의 2진값들에따라로직블록내의 AND-OR 게이트들의선택 / 비선택이이루어지며, 블록사이의상호연결을위한배선들의연결 / 비연결이이루어진다. 디바이스공급자의제조기법에따라, SRAM, anti-fuse, EPROM 또는 EEPROM 등에의하여프로그래머블논리소자의구성 ( 또는프로그램 ) 이이루어진다. 이러한프로그래밍기법들은칩의면적, 지연시간, 성능, 집적도, 표준공정사용, 가격등에영향을미치는중요한요소이다. 또한정보의불휘발성 (non-volatile), 소자의재사용성 (re-programmable), 시스템에장착된채로재프로그래밍이가능한가도이러한프로그래머블논리소자의프로그래밍구조에의하여결정된다. 1. SRAM 프로그래밍 SRAM (Static RAM) 프로그래밍구조를사용하는회사로는 Xilinx, Altera, Lucent 등이있다. 이구조에서는프로그래밍하기위한연결스위치점이 SRAM 셀에의하여조정되어지는패스트랜지스터 (pass-transistors), 트랜스미션게이트 (transmission gates), 혹은멀티플렉서등을사용한다. 그림 2.6은 SRAM 프로그래밍방식에의한프로그래머블논리소자의연결셀구조를보여준다. SRAM 방식에서는연결점을제어하기위한구성 (configuration) 정보가 SRAM 셀에저장된다. 그림 2.6의패스트랜지트터의경우, SRAM의정보가 0을가지고있으면, 패스트랜스지스터는 OFF가되어두배선의연결이끊어진다. SRAM의정보가 1이면, 패스트랜지스터는 ON이되어두배선이연결된다. 멀티프렉서의경우도, RAM에저장되어있는값에따라입력중에하나의입력이멀티플렉서의출력과연결된다. 그림 2.7은 SRAM 프로그램방식을사용하는프로래그래머블논리소자내에서의논리회로와배선연결에대한예를보여준다. 그림 2.7에서좌측상단의로직블록의출력은두개의패스트랜지스터를거쳐, 멀티플렉서로입력된다. 해당멀티플렉서는 SRAM에의해제어되며, 멀티프렉서의출력은우측하단의로직블록으로입력된다. SRAM 프로그래 - 10 -

밍방식을사용하는프로그래머블논리소자는이러한방식으로내부논리회로및상호 연결선이구성된다. 그림 2.6 SRAM 프로그래밍기술 그림 2.7 SRAM 에의해제어되는 PLD SRAM은동작전원이 OFF되면그정보를유실하는휘발성 (volatile) 기억소자이다. 따라서, 이방식을사용하는프로그래머블논리소자를사용하는시스템에서는프로그래머블논리소자의구성정보를영구히보존하기위한별도의 ROM 또는저장매체가필요하다. 여기에 SRAM 셀에대한 ON/OFF 정보를저장하여두고시스템의초기화시이정보는프로그 - 11 -

래머블논리소자의 SRAM을구성하기위하여다운로드된다. 다른방식에비하여SRAM 구조는비교적면적을많이차지하나재프로그래밍이시스템안에서장착된상태에서이루어질수있으며표준 CMOS 공정을사용하여제조할수있다는장점이있다. 일반적으로다른프로그래밍방식에비하여 SRAM 프로그래밍은 SRAM이동작하기위한정전류및동적전류로인하여전력소모가비교적크다. 스위칭소자로작용하는 SRAM의저항과 capacitance 성분도크게되므로회로의성능이제한을받을수있게된다. 따라서 SRAM 프로그래밍방식의프로그래머블논리소자는시스템의초기개발용도로많이사용되고있다. 2. Anti-fuse 프로그래밍 Anti-fuse 방식은 Actel, QuickLogic사등에서사용한방법이다. 높은전류가두지점을통과할때퓨즈배선이열리는 (open) 것과는대조적으로, Anti-fuse 방식은높은전압이걸릴때, Anti-fuse 프로그래밍요소는높은저항 (open) 에서낮은저항 (closed) 으로바뀐다. Anti-fuse는 n+ 확산영역과폴리실리콘사이의유전체층또는금속층사이의비결정실리콘을사용하여만든다. Anti-fuse는일반적으로 OFF 상태이다. 그림 2.8은 Actel에서사용하는 anti-fuse 방식을보여준다. 이것은 3개의층으로구성되는데가장아래층은 heavily-doped된 n+ 반도체층, 유전체로이루어지는중간절연층과최상층의 polysilicon 전도층으로이루어진다. 이구조에비교적높은 18V의전압을 anti-fuse 터미널에인가하고 5 ma 정도되는전류를흐르게하면, 중간층의유전체가열에의하여녹게되고 Poly-Si 층과 n+ 층사이에전기적연결이이루어지게된다. 퓨즈가파괴된후연결되는두개의전도층은각각전도성이좋은금속층과연결되어약 300-500 ohm의낮은저항값을가지게된다. 그림 2.8 Actel 의 Anti-fuse 프로그래밍기술 Anti-fuse 방식의프로그래머블논리소자의프로그래밍을위해서는일반전류를초과하 - 12 -

는고전압과전류가필요한별도의마스크제조공정이필요하나, 프로그래밍을위한칩면적은매우작다. 한편, 한번프로그래밍을하게되면영구적으로연결된링크가만들어지기때문에재프로그래밍이불가능하며프로그래밍된정보는전원에상관없이보존되는불휘발성이다. 3. EPROM 프로그래밍 EEPROM 을포함한 EPROM 프로그래밍방식소자는 Altera, Lattice, Lattice 등에서제공하 고있으며 EPROM 메모리와동일한기술에의하여제조된다. 그림 2.9 EEPROM 프로그래밍기술 그림 2.9와같이 EPROM 트랜지스터는 select와 floating 두개의게이트를가진구조로, floating 게이트는 select 게이트와트랜지스터의채널사이에전기적으로연결되지않은상태로들어있다. 프로그래밍이되지않은상태에서는 floating 게이트에는전하가존재하지않아서이트랜지스터는보통의경우와동일하게 select 게이트에의하여 turn-on 시킬수있다. 만약, 이트랜지스터가프로그래밍되면 floating 게이트에전하가포획되는상태가되고이전하는트랜지스터를영구적으로 turn-off 하게한다. 이러한방법으로 EPROM은프로그래밍스위치로사용된다. 프로그래밍된 EPROM 소자는불휘발성이나, 자외선을일정시간조사하게되면포획된전하를잃어버리게되므로재프로그래밍이가능하고칩면적이매우적다는장점이있다. 그림 2.9에서프로그래밍소자인 EPROM 트랜지스터는 pull-down 소자로사용되므로 pull-up 저항을통한정적전력 - 13 -

소모가발생하는단점이있다. 4. 프로그램밍기술의비교 표 2.1 은재프로그래밍가능성, 저장능력, 방사선저항능력등의다양한측면에서프로그 래머블논리소자의프로그래밍방식에따른특성을기술하고있다. SRAM 방식은성능및게이트집적도에서우수하여복잡한회로를구현할수있는반면에서, 방사선에취약하고 SRAM의휘발성에의해서전원이공급이중단되면재프로그래밍되어야한다. 본방식으로제작된프로그래머블논리소자는원자력발전소의안전등급의계측제어시스템을개발시에는다중성을갖도록설계하는필요하다고판단된다. 이방식의프로그래머블논리소자는시스템의프로토타입개발또는비안전등급의시스템을개발하는데적합하다고판단된다. 표 2.1 프로그램밍기술에따른성능비교 EEPROM Configuration Technology SRAM EPROM Flash Antifuse Physical changes during programming No No No Yes Reprogrammable In circuit Out of circuit In circuit No Reprogramming speed Fast 3 x slower than SRAM 3 x slower than SRAM - Non-Volatile No Yes Yes Yes Live at Power-up No Yes Yes Yes External boot device required Yes No No No Unlimited Endurance Yes No No NA Radiation Tolerance Poor Good Good Best Area Occupation Large Small 2*EPROM Small IP Security Acceptable Very Good Very Good Very Good Power Consumption Medium Medium Medium Low Maximum working Frequency > 3 Gbps IOs 350 MHz 350 MHz 350-500MHz Maximum capacity 1-4 Mgates 0.9 Mgates 0.9 Mgates 0.25-0.5 Mgates EPROM 또는 antifuse 방식의프로그래머블논리소자는성능및게이트집적도에서 SRAM 방식에비해서낮으나, 방사선에강하고, 비휘발성이라전원공급이중단되어도 - 14 -

재프로그래밍할필요가없다. 따라서, 본방식으로제작된프로그래머블논리소자는원 자력발전소의안전등급의계측제어시스템을개발에적합하다고판단된다. 제 4 절 FPGA 종류및공급자 프로그래머블논리소자는사용자가요구하는어떤기능이라도구현하기위해사용될수있는기본적인빌딩블록의어레이로이루어져있다. 프로그래머블논리소자들은빌딩블록의종류나프로그램할수있는정도가서로다르다. SPLD, CPLD, 또는 FPGA와같은프로그래머블논리소자계열은현재여러공급자에의해공급되고있다. 또한, 이러한공급자는자신이제공하는프로그래머블논리소자의설계, 구현, 시뮬레이션을위한소프트웨어도구를함께제공하고있다. 표 2.2는프로그래머블논리소자를제공하는공급자를보여준다. 표 2.2 주요프로그래머블논리소자공급자 공급자 Achronix Semiconductor Coporaton Actel Coporation Altera Corporation Atmel Corporation Cypress Semiconductor Lattice Semiconductor Corporation Quicklogic Corporation Xilinx 홈페이지 URL http://www.achronix.com http://www.actel.com http://www.altera.com http://www.atmel.com http://www.cypress.com http://www.latticesemi.com http://www.quicklogic.com http://www.xilinx.com - 15 -

표 2.3 은프로그래머블논리소자의주요공급자와, 각공급자가제공하는프로그래머블 논리소자의종류를보여준다. 표 2.3 상용프로그래머블논리소자종류 Types 공급자계열 게이트수 (1,000) 사용자입출력핀수 EEPROM EPROM Flash Anti-fuse SRAM Altera MAX 7000 0.6-5 36-164 MAX 9000 6-12 159-216 isplsi 3000 7-20 130-226 Lattice isplsi 8000 25-45 148-312 MACH 2 (Vantis) 2.5-5 32-64 MACH 5 5-20 68-256 Xilinx CoolRunner-II 32-512 33-270 Altera MAX 5000 0.6-3.7 16-67 Classic EPLD 0.3-0.9 22-64 Xilinx XC9500/XL/XV 0.8-64 34-192 Cypress Delta 39k 30-200 32-264 Actel ACT 2 2.5-8 72-140 ACT 3 1.5-10 70-228 QuickLogic pasic 1 1-8 40-180 pasic 3 8-38 70-316 XC 4000E 2-85 64-448 Xilinx Virtex-5 30-330 400-1200 Spartan-3 50-5000 124-784 FLEX 10K 10-250 59-470 Altera APEX 20K 30-1500 128-808 Cyclone III 50-120 94-535 Stratix III 50-340 288-1104 주의 1) PLD 게이트수로환산됨, 다른소자는 ASIC 게이트수로환산된것임. 주의 2) PLD 게이트수가 ASIC 게이트수에비해각회사에따라 1.5-3 배정도크게나타 남. 제 5 절 FPGA 기술의취약성 1. 신뢰도 전자기술의발전으로반도체로구성된모든전자부품의집적도가급진적으로높아지고 있다. 이러한집적도가높아질수록전력의밀집도 (Power Density) 가높아지고, 이로인하여 - 16 -

반도체의 Junction Temperature 가높아진다. 또한, 집적도가높아질수록소자간의연결부 위의 wear out 확률이높아진다. 일반적으로디지털부품의고장률은그림 2.10과같은욕조곡선 (Bathtub) 의모양을갖는다. 그러나, 부품의집적도가높아질수록그림 2.10의아래의욕조곡선에서위의욕조곡선으로이동한다. 즉, 집적도가높아질수록전체적인부품의고장률이높이지고, 집적도가낮은부품보다 Wear out 현상이일찍발생한다. 또한고장률이상수인구간이짧아진다. 이러한이유로인해, 시스템개발을위해서집접도가높은디지털부품을사용하면, 예방 정비기간이짧이지며, 이는곧시스템의유지및보수에드는비용이증가한다는것을 의미한다. 그림 2.10 집적도에따른전자부품의신뢰도그래프 2. 방사선의영향 그림 2.11과같이태양또는, 타은하에서지구에도착하는우주선 (Cosmic Ray) 은지구의대기권과충돌하면서중성자 (Neutron), 양성자 (Proton), 광자 (Photon), 알파입자 (alpha particle) 같은다양한입자들을생성한다. 이렇게생성된입자들이다시대기중에있는다른입자들과재출동을하면서 2차적인입자들을생성하게되고, 이러한 2차입자들이다시 3차충돌을하게된다. 이러한충돌이연쇄적으로발생하면서, 지구의상층부에서부터지표까지다양한입자들이대기중에존재하게된다. - 17 -

그림 2.11 우주에서지구상에미치는방사선효과 그림 2.12 방사선이반도체부품에미치는영향 이렇게발생된입자들은그림 2.12 와같이반도체전자부품에다음과같은현상을발생 시킨다. 이러한현상은전자부품의일시적인오작동또는영구적으로전자부품을파괴시 킨다. ㄱ ) Ionizing Effect Non Destructive Effect - SEU (Single Event Upset) - MBU (Multiple Bit Upset) - SEFI (Signle Event Functional Interrupt) - SET (Single Event Transient) - SED (Single Event Disturb) - SHE (Single Hard Error) Destructive Effect - SEL (Single Event Latch-up) - 18 -

- SESB (Single Event SnapBack) - SEB (Single Event Burnout) - SEGR (Single Event Gate Rupture) - SEDR (Single Event Dielectric Rupture) ㄴ ) Ionizing Effect Move of atoms in cystals Creation of defects Creation of additional levels of trapping 현재지표 (Sea Level) 에서반도체전자부품에영향을가장많이주는입자는중성자로알려져있으며, SRAM 방식의프로그래머블논리소자가중성자에가장취약한것으로보고되고있다. 표 2.4는지표, 지상 5000ft, 지상 30000ft 및지상 60000ft에서특정공급자 FPGA의방사선에의한 SEU 실험결과를보여준다. 표 2.4 FPGA SEU 실험결과 주의 ) SEU 결과는 FIT(number of errors in 109 hours) 단위로표시되어있음. 3. 타이밍지연 그림 2.13과같이이상적인상황에서의프로그래머블논리소자내의디지털회로는입력에대하여시간의지연이없이정확한출력을발생한다. 그러나, 현실에서는회로의물리적특성, 사용온도, 사용전압, 회로설계에적용된기술에따라, 각게이트및신호통로에신호지연이발생하며, 이러한신호지연에의하여그림 2.14와같이입력에대한출력의신호지연현상이발생한다. - 19 -

그림 2.13 이상적인상황에서의로직신호 그림 2.14 현실상황에서의로직신호 신호지연현상중에의해디지털회로에는글리치 (glitch), 준안정성 (metastability) 과같은다양한불안정성이존재하게되고, 이로인해설계자가의도했던회로의기능이정상적으로작동하지않을수있다. 이러한현상을고려하지않고프로그래머블논리소자를설계한다면, 최악의경우, 요구된출력신호를손실할수있다. 1) 글리치 (Glitch) 글리치 (Glitch) 는디지털회로에서발생할수있는매우짧은기간동안나타나고, 사라지는전압이나, 전류의원하지않은노이즈펄스이다. 이러한노이즈펄스의폭은소자의물리적특성과사용환경 ( 온도, 습도, 진동등 ) 에따라변할수있다. 따라서, 글리치는사용조건에따라어떤때는논리회로에전혀영향을주지않을수도있고, 어떤때는논 - 20 -

리회로의오동작을발생시킬수있다. 이러한글리치의거동특성에때문에글리치에의 한회로의오동작원인을찾기가상당히어렵다. 그림 2.15 잘못된클록게이팅예 그림 2.15는클록게이팅회로의예를보여준다. 클록게이팅회로는전력소모를줄이기위한회로설계에유용한기술이며, 일반적으로사용되는설계방법중에하나이다. 즉, 그림 2.15의 (1) 번플립플롭의출력 ( 게이팅신호 ) 는 (2) 번플립플롭의동작을제어하는인에이블신호로사용된다. 만약 (1) 번플립플롭의출력이 High에서 Low로변하면, AND 게이트의출력은클록신호에상관없이 Low 값을출력한다. 따라서, (2) 번플립플롭의클록입력은 OFF 된다. 클록이 OFF 되면, AND 게이트의출력을클록으로사용하는도메인의회로는동작을정지하고이는곧회로의전력소모량을줄일수있다. 따라서, 특정조건에서만동작하는회로는이러한클록게이팅회로를사용하여전력소모량을줄인다. 그러나정확하게설계되지않으면래치및플립플롭을잘못트리거할수있는글리치를발생시킬수있다. 그림 2.15의예와같이클록의상승에지에서 1번플립플롭 (Gating Flipflop) 의출력 (Q, 게이팅신호 ) 이 High to Low로바뀐다면, 클록부터플립플롭의출력까지의지연 (a 경로 ) 에의해서클록신호의상승에지신호 (b 경로 ) 보다늦은시간에게이팅신호가 AND 게이트에입력된다. 따라서, AND 게이트의출력에는원하지않은좁은폭의펄스인글리치가발생할수있으며, 이는특정조건에서는회로의오동작을발생시킬수있다. 2) 준안정성 (Metastability) 이상적인플립플롭에서입력 D 가클록의상승에지와엄밀하게동일한시간에변하여도 - 21 -

플립플롭은정확히동작한다. 그러나그림 2.16과같이실제프립플롭에서입력 D는클록의상승에지이전에어느정도의시간동안안정되어야하는데, 이구간을셋업시간 (t su ) 이라고한다. 또한입력 D는클록상승에지이후에어느정도의시간동안안정되어야하는데, 이구간을홀드시간 (t h ) 이라한다. 즉, 입력 D는시간영역에서언제라도변할수있지만, 클록의상승에지이전의셋업시간부터상승에지이후의홀드시간동안의시간구간에서는반드시안정된 (0 또는 1로유지 ) 값을유지해야한다. 그림 2.16 플립플롭의셋업시간및홀드시간 그림 2.17의 (a) 와같이플립플롭의셋업및홀드구간에서안정된입력 D가들어오면, 플립플롭은이에따른출력신호 (High) 를내보낸다. 그러나, 그림 2.17의 (b) 와같이입력신호 D가셋업및홀드구간내에서변화면, 플립플롭은어느일정기간동안준안정 (Metastable) 한출력을내보낸다. 여기서준안정이란플립플롭의출력신호가 High로인식되기위한전압 (V high ) 수준보다는낮고, Low로인식되기위한전압 (V low ) 보다높은수준의전압을출력하는상태를말한다. 플립플롭은일정시간이지나면준안정상태에서 High 또는 Low 출력을내보낸다. 그러나, 플립플롭의출력이 High가될지,, 아니면 Low가될지는예측할수없다. 따라서, 이러한준안정성은설계된회로의오동작을발생시킬수있다. 이러한준안정상태는여러원인에의해발생할수있지만, 다음과같은주요원인에의해발생할수있다. 설계자가소자의특성을파악하지못하여충분한주파수의클록을사용하지못한경우 입력신호가비동기방식인경우 - 22 -

여러원인에의해클록에비스듬한부분 (skew) 이심하게발생한경우 다른주파수를갖는클록도메인의회로가합쳐지는경우 플립플롭의입력이되는조합회로에시간지연이발생하는경우 그림 2.17 플립플롭의준안정상태 디지털회로에서이러한시간지연이발생하는것을피할수는없다. 그러나, 이러한시간지연에대해서회로가견딜 (tolerable) 수있는회로를설계하는것은가능하다. 예를들어, 회로의분석을통해서, 충분한주기를갖는클록을선택하여회로에사용하면준안정성이발생하는것을최대한방지할수있다. 또한, 비동기신호를플립플롭을사용하여동기화시키도록회로를설계하면발생되는글리치나준안정상태에대해서도회로가정확히동작하도록설계할수도있다. 전에언급했듯이, 이러한방법들은시간지연을방지할수는없고시간지연에대한영향을최소로하게끔설계하는것이다. - 23 -

제 3 장 FPGA 적용현황 제 1 절 FPGA 규제기술및인허가현황 1. 국내의 FPGA 관련규제지침 국내의원자력분야규제기관인 KINS 의 FPGA 관련규제입장을요약하면다음과같다. ㄱ ) FPGA 의개발공정은기존의전통적인하드웨어개발공정과는다르며, 소프트웨어 개발공정과비슷하다. ㄴ ) FPGA 개발공정은 IEEE 7-4.3.2를만족하여야한다. ㄷ ) FPGA 개발을위해서는최소한다음과같은문서가요구된다. - Hardware 기능요건명세서 - 확인및검증계획문서 - 소스코드및최종설계출력문서들 - Simulation Waveform - Board Level Testing Waveform - 설계도구로부터생산된중간단계의설계파일들 - Test Vector Files ㄹ ) FPGA 개발에대한인허가를위해서그림 3.1 과같은 FPGA 개발공정을따라야 하며, 각개발공정마다최소한그림 3.1 에서언급한출력물이요구된다. 2. 미국의 FPGA 관련규제지침 현재의미국의원자력분야규제기관인 NRC 의규제입장을요약하면다음과같다. ㄱ ) 현재 NRC 는 FPGA 기반의안전필수시스템에대한규제지침이없으며, 원자력발 전소의 FPGA 기반의안전필수시스템의인허가를위한지침및기준이필요하다. ㄴ ) 현재이러한규제지침및기준을규정하기위한구체적인계획은현재없으나, FPGA 설계시다음과같은사항이고려될필요가있다고본다. - FPGA 기반의안전필수시스템은각부품레벨, 보드레벨및시스템레벨에서특정설계지침이필요하다. - FPGA 기반의안전필수시스템의확인및검증은 FPGA의안전설계관행 (practice) 에적합해야한다. - FPGA는인허가뿐만아니라설계생명주기동안에 hardware/software 시스템으로취급되어야한다. - 계측제어공급자, 원자력발전소운영자및규제기관이동일한지침을사 - 24 -

용할수있도록 FPGA 안전설계관행 (practice) 은규제되어야할필요가있 다. 그림 3.1 FPGA 설계에관련최소요구문서 3. IEC 의 FPGA 관련기술기준 국제기술기준협회중에하나인 IEC는원자력산업에 FPGA 기반시스템을적용을위하여 CEC(Complex Electronic Component: FPGA, Multicore microprocessor 등의고집적회로를기반으로한시스템 ) 의개발및검증관련지침을 2012년제정을목표로기술기준 IEC 62566를개발하고있다. 현재는 Draft 상태로세계의 IEC 관련회원들에게 Draft에대한검토를받고있으며, 다음과같은하드웨어또는소프트웨어에대한지침을포함하고있다. Pre-Developed Hardware Selection Built-in-Software of three different types Multicore microprocessors specificities HDL design (FPGA, PLD, ASIC,...) 본기술기준에서는원자력발전소안전등급의계측제어시스템에적용을위해서프로그래 머블논리소자를설계하기위해서는그림 3.2 와같은개발공정을따를것을제안하고 있다. - 25 -

그림 3.2 IEC 62566 에서제안한 FPGA 개발공정 본기술기준에서는그림 3.2의각단계마다수행되는업무에대한요건들을규정하고있다. 제안된개발공정의특징은소프트웨어의개발공정과크게다르지않다는것이다. 즉, 요구사항작성, 기본설계, 상세설계, 구현, 그리고각단계마다설계에대한확인및검증업무는소프트웨어의개발공정과동일하다. 물론, 소프트웨어는기본적으로컴파일된후에, 메모리에 2진코드로저장되어, 마이크로프로세서가이러한코드를순차적으로실행하고, FPGA 같은프로그래머블논리소자에서는동시적으로처리되는디지털회로가된다는점에서세부적으로코딩방법, 확인및검증방법의기술적인측면이다르다. 4. DO254 FPGA 관련기술기준 항공분야에서는항공분야의 Working Group(EUROCAE, RTCA), 인증기관 (Federal Aviation Administration, Joint Aviation Authorities,...), A/C 공급자 (AIRBUS, Boeing, Cessna) 및부품공급자참여하여이미 DO254-ED80이라는 FPGA 관련기술기준을제정하여사용하고있다. DO254-ED80는다음과같은내용으로구성되어있다. Chapter 1 : introduction Chapter 2 : system aspects of HW design assurance Chapter 3 : HW life cycle Chapter 4 : planning process Chapter 5 : HW design process Chapter 6 : validation and verification process Chapter 7 : configuration management process - 26 -

Chapter 8 : process assurance Chapter 9 : certification liaison process Chapter 10 : HW life cycle data Chapter 11 : additional considerations Appendix A : modulation of HW life cycle data based on HW design assurance level Appendix B : design assurance considerations for level A and B functions Appendix C, D : glossary of terms, acronyms 그림 3.3 시스템 Criticality Level 본기술기준은그림 3.3과같이개발되는시스템의 Criticality level에따라시스템의개발및검증에필요한활동및활동의심도에차등을두도록하고있다. 예를들어, Criticality level이 A 또는 B인시스템에대한확인및검증은독립적으로수행되도록요구하고있다. 제 2 절 FPGA 원자력발전소적용현황 1. 원전에 FPGA 기술도입방안 현재 FPGA를이용한시스템개발은 3가지로분류된다. 첫째는기존의노후화된아날로그보드를디지털기기로교체하기위해 FPGA 기술을사용할수있으며, 두번째는노후화 ( 생산중단 ) 된마이크로프로세서의교체를위해 FPGA 기술을사용할수있다. 즉, 소프트웨어기반의디지털시스템은마이크로프로세서를사용한다. 그러나, 이러한마이크 - 27 -

로프로세서개발기술은급격히발전하고있으며, 예전의모델은공급자가생산을중단하는경우가발생한다. 이러한경우에해당마이크프로세서의기능을그대로 FPGA로구현하여해당프로세서를교체할수있다. 세번째는 FPGA 기반의디지털시스템으로안전필수시스템을새로이개발하여원자력발전소에적용하는것이다. 1) 아날로그보드를 FPGA 로교체 그림 3.4 와같이많은아날로그부품으로구성된보드의기능을한개의 FPGA 로구현할 수있다. 따라서, 기존의아날로그보드를 FPGA 기반으로대체하면, 비용및공간이절 감될수있다. 그림 3.4 Discrete 부품으로구성된보드의기능을 FPGA 로구현 2) 생산중단된마이크로프로세서의교체 그림 3.5는프랑스의 EDF 사에서 Motorola의마이크로프로세서모델 6800의기능을 FPGA로구현한것을보여준다. EDF는 FPGA로 MP6800의기능을구현하기위하여 SRAM 타입의 FPGA로프로토타입을개발한후에 Antifuse 타입의 FPGA를사용하였다. 이와같이생산이중단된마이크로프로세서를사용하는시스템의경우에, 유지및보수를위해마이크로프로세서의기능을그대로구현한 FPGA로교체할수있다. 그림 3.5 Motolar MP6800 을 FPGA 로교체 - 28 -

3) 새로운시스템의개발 그림 3.6 은국내의한국원자력연구원과주식회사포스콘에서개발한 PLC(Programmable Logic Controller) 의입출력모듈의설계를위해서사용된 FPGA 를적용한예를보여준다. 이와같이신규원전에적용을목적으로 FPGA 기술을도입할수있다. 그림 3.6 포스콘안전등급 PLC 개발 2. 국내외 FPGA 원전적용현황 1) 유럽 프랑스의 EDF에서는다양한 FPGA 관련사업을수행하고있다. 2절에서언급한것과같이 1E 등급에적용되는 CPU 보드를 FPGA를이용하여재설계를하고있다. 또한, 다음과같은사업에서 FPGA 적용을고려하고있다. Upgrading of the control rod positioning system Non safety classified 32 900 MW units affected Redesign of pump speed control systems 1E classified 32 900 MW units affected 우크라이나의 Raidy 에서는원자력발전소의안전등급계측제어계통에적용을목적으로한 I&C 플랫폼을 FPGA 기술을이용하여개발하였다. 또한 Raidy는본시스템을이용하여불가리아의원자력발전소 Kozloduy 5&6 호기의 ESFAS를개발하는사업을수행하고있다. 본사업은 2008년에시작했으며, 2011년에완료예정으로있다. 그림 3.7은 Raidy에서개발한 FPGA 기반계측제어플랫폼을보여준다. - 29 -

그림 3.7 우크라이나의 FPGA 기반계측제어시스템 2) 미국 미국의 Wolf Creek은 2004년에 RPS 및 ESFAS와같은안전등급의계통에사용하기위한 FPGA 기반프랫폼을개발하는사업을시작했다. 현재 NRC에서인허가중이며, 인허가가끝나면 2009년이후에발전소에설치를계획하고있다. 그림 3.8은개발된 ALS(Advanced Logic System) 을보여준다. 그림 3.8 ALS 플랫폼 3) 캐나다 기존의캐나다 CANDU 원자력발전소의대부분은 30년이넘었으며, 기기의노후화문제에당면하게됬다. 특히, 계측제어시스템의교체는당면과제로대두되었다. 그래서캐나에서는노후된 I&C 기기를대체하는하나의수단으로 FPGA 기반하드웨어플랫폼을개 - 30 -

발하고있다. 캐나다는발전소의 Safety Shutdown System No 1(SDS1) 의트립논리를 FPGA 에구현하였고, 이에대한결과를검증하기위한시뮬레이션드을수행하였다. 그림 3.9 는 SDS1의한채널을보여준다. 아직까지는발전소에탑재하지는않은상태이며, 노후화된계측제어시스템에 FPGA의적용성을파악하기위한업무를수행한것으로판단된다. 그림 3.9 CANDU 의 SDS1 채널 4) 일본 일본의도시바는그림 3.10과같이 BWR의원자로에중성자레벨을측정하기위하여 FPGA를적용한 PRMS(Power Range Monitoring System) 를개발하였다. PRMS는원자로에설치된중성자감지기와각냉각수순환로에설치된미분압력계 (Differential transmitter) 로부터전기적신호를받아서신호처리를한후에원자로보호계통에신호를출력한다. 그림 3.10 일본의 BWR 를위한 Power Range Monitoring System - 31 -

그림 3.11과같이 PRMS는 LPRM(Local Power Range Monitor) 모듈과 APRM(Average Power Range Monitor) 모듈로구성되어있다. LPRM은감지기로부터전기적신호를받아서, 신호를증폭한후, 아날로그신호를디지털신호로변환한다. 변환된디지털신호를이용하여 LPRM 레벨을결정하고, 이값이설정치를초과하면알람을출력한다. APRM은 LPRM모듈들 ( 최대 22 LPRM) 에서받은신호를평균하여평균원자로출력을결정한다. 만약평균원자로출력이설정치를초과하면알람또는트립신호를출력한다. 그림 3.11 PRM 구성 그림 3.12 와같이 LPRM 의모든기능은 FPGA 로구현되었다. 즉, 신호처리기능, 운전원 에서의설정치입력기능, 설정치비교기능, 운전원과의연계등을처리하기위한모든기 능을 FPGA 로구현하였다. 5) 한국 그림 3.12 LPRM 구성 한국에서는모든기능을 FPGA 로구현한안전등급계측제어계통이개발되지는않았다. - 32 -

그러나, 한국원자력연구원, 두산중공업및포스콘은 KNICS(Korea Nuclear Instrumentation and Control System) 사업을통해서개발된원자로보호계통, 공학적안전설비-기기제어계통및이들계통에플랫폼으로사용되는 PLC를개발하였다. 포스콘에에서개발한 PLC의제어기기에는기능을구현하기위하여다수의 CPLD 및 FPGA가사용되었다. KNICS 사업을통해개발된안전등급제어기기는한국의인허가기관에서인허가를받았으며, 인허가검토항목에는이러한 CPLD 및 FPGA의개발및검증결과물도포함되어있다. 그림 3.13은안전등급제어기기에서사용된특정 FPGA의기능시험을보여준다. 그림 3.13 안전등급제어기기기능시험 제 3 절 FPGA 개발공정적용현황 1. 개발공정 안전등급의계측제어계통에 FPGA를적용하기위한 FPGA 개발공정크게설계공정과검증공정으로구분된다. 설계공정은시스템요구사항중에 FPGA에해당하는요구사항을추출하여요구사항을만족하는 FPGA를설계하고, 이를구현하는활동을포함하며, 검증공정은설계및구현된 FPGA가요구사항을만족하는지를확인하고시험을통해서검증하는활동을포함한다. FPGA에개발에적용되는개발공정은국제적으로어느정도일치하는것으로판단된다. IEC 62556에서는 FPGA 개발을위하여기존의소프트웨어개발을위하여채택되었던 V 모델을제안하고있으며, 항공산업및원자력산업에서의 FPGA 기반시스템의개발을위해서채택된개발공정도이와다르지않다고판단된다. 예를들어, IEC62566은그림 3.2와같은절차로 FPGA 기반시스템을설계하도록제안하고있으며, 한국원자력연구원에서 FPGA를설계하기위하여채택한모델은그림 3.14와같다.. 그림 3.2와그림 3.14는같은 V 모델을기반으로 FPGA를설계하고있다. 또한그림 3.15는항공분야에서채택하고있는개발공정이며, 이개발공정도 V 모델을기반으로하고있 - 33 -

다. 그림 3.14 한국원자력연구원의 FPGA 기반시스템개발공정 그림 3.15 항공분야의 FPGA 기반시스템개발공정 2. FPGA 설계활동 시스템설계는일반적으로 Top down 설계방법이사용되며, 시스템 - 수준설계, 보드 - 수준 설계, 소자 - 수준 (FPGA 등의단일칩수준 ) 설계로구분된다. 각수준마다수행되는일반 적인설계활동은다음과같다. ㄱ ) 시스템설계 시스템의기능을하위단위로분해 (FPGA, DSP, GPP, Memory) - 34 -

다중기능을하나의 FPGA에구현 FPGA 타입및크기선정 확인및검증측면에서시스템을분해ㄴ ) 보드설계 Power fluctuation 및 ground bounce를공급 적절한전원및 ground plane 설계 PCB layer stacking 최대 rise time 및 FPGA에요구되는 power sequencing을만족하기위한 power regulator의선정및설계 power decoupling capacitors를사용 동시의스위칭출력영향을완하 FPGA I/O의출력 rise time을축소 같은보드에탑재되는디지털영역과아날로그영역을분리 clock 및다른고속라인을분리 FPGA power dissipation and cooling ㄷ ) FPGA 설계 Synchronous 설계또는 Asynchronous 설계의선택 - Asynchronous 설계는빠른응답시간, small design이가능하나, glitches, bus skews, timing issues들에약함. - Synchronous 설계는느리지만제어된응답시간을가지며, larger design이될수있음. 그러나, glitch, bus skew, timing issues 들이없음. - Asynchronous 신호가 FPGA안에서 Clock 신호에따라입력될때는 Metastability가중요함. 높은 fan-out을갖는신호는 timing skew를줄이기위하여 global FPGA line 을사용 I/O 버퍼를사용하는것보다 I/O flip-flop을사용 HDL State Machine Design을사용 SEU 영향을완화하기위하여다음과같은방법을사용 - SEU immune 또는 SEU tolerant FPGA 를사용 - Error Detection and Correction Code 사용 - Module Redundancy 사용 - Scheduled or Error-initiated Reconfiguration을사용 - Wachdog timer를사용 FPGA의사용하지않은 pin은 high impedance 상태로두지말고 pull-up 또는 pull-down 저항을갖는전압으로고정시킴. 노이즈신호를완화하기위하여 voltage level translator를사용 (Max3372) - 35 -

그림 3.16 FPGA 세부설계활동 그림 3.16과같이 FPGA 수준에서의세부설계활동은다음과같다. (1) 요구사항명세작성 (2) 설계명세작성 (3) 코드생성 (4) 합성 (5) 배선및배치 (6) 소자에탑재 일반적으로코드는 VHDL 또는 Verilog 같은하드웨어명세언어로 RTL(Register Transter Level) 로작성된다. 이러한코드는합성을거쳐서게이트수준의 netlist 가생성된다. 그이후에배선및배치를수행하면최종적으로 2진값으로이루어진구성파일이생성되며, 이러한구성파일을최종적으로소자에다운로드한다. 3. FPGA 검증활동 설계된 FPGA의검증활동으로는확인활동및검증활동을구분된다. 확인활동은 FPGA 개발단계마다현재단계의설계결과물이이전단계의설계결과물의요건에따라정확하고, 일관되게설계되고있는지를추적하는업무들을말한다. 검증활동은개발된 FPGA의최종결과물이시스템요구사항및 FPGA 요구사항을만족하는지를시험을통하여추적 - 36 -

하는업무를말한다. 그림 3.17 은계측제어시스템에적용된 FPGA 의개발공정및개발공 정에수행되는세부설계및검증활동의예를보여준다. 그림 3.17 FPGA 개발공정및활동 1) 확인활동 FPGA 의확인방법으로는검토, 타이밍분석, 시뮬레이션분석이사용되고있다. 가. 검토 FPGA의확인활동의하나로수행되는검토는전문가그룹을구성하여, 이전문가그룹이 FPGA의설계단계에서생산되는모든설계결과물 ( 시스템요구사항명세서, FPGA 요구사항명세서, FPGA 설계문서, 코드등 ) 의검토하고설계에오류가없는지를확인하는작업이다. 이확인작업에는 Checklist 기반검토등소프트웨어확인작업에서수행되는기법을적용할수있고, 다양한상용소프트웨어도구를활용하여확인작업을쉽고빠르게수행할수있다. 나. 정적타이밍분석 정적타이밍분석은구현된 FPGA 로직에대하여가장 Worst Case에대하여타이밍분석을수행하여 Worst Case 경우에도요구된기능을요구된제한시간안에수행할수있는지를확인한다. 또한, FPGA의회로설계시에발생할수있는글리치, Metastability 같은타이밍문제가발생하지않는지를확인한다. 이러한작업은상용소프트웨어도구를활용하면작업을쉽고빠르게수행할수있다. - 37 -

다. 시뮬레이션분석 개발된 FPGA를확인업무에서가장중요한업무는시뮬레이션을통한 FPGA의기능및성능을확인하는것이다. 시뮬레이션이란설계자가작성한코드를 FPGA에다운로드하기전에, 코드의동작이요구된기능및성능을만족하는지를확인하기위하여코드의입력데이터 ( 테스트벡터또는시험사례 ) 를만들어가상으로인가하고그출력이예상출력과동일한지를확인하는작업이다. 그림 3.18 시뮬레이션분석방법 그림 3.18과같이시뮬레이션은코드의성숙도에따라크게기능적시뮬레이션, 합성후시뮬레이션, 타이밍시뮬레이션으로구분된다. 디지털회로를설계하기위해서는 FPGA의요구사항을정의하고, 이를합성가능한 RTL 코드로코딩한다. 코딩이완료되면, 이를시험할수있는시험사례를가상으로인가하여작성된코드의동작을시험한다. 이를기능시뮬레이션이라하며, 이때에는신호의지연정보를포함하지않은시뮬레이션이된다. 따라서이러한기능시뮬레이션에는내부회로에따른신호의지연이고려됮않기때문에짧은시뮬레이션시간에복잡한회로의동작을확인할수있다. 만일이단계에서시뮬레이션결과에문제가있는경우에는다시코드를수정하여시뮬레이션하고, 문제가없는경우에는 RTL 코드를최소한의논리회로들의연결로실제회로로합성하는합성단계를거친다. 합성후에는요구된대로회로가합성되었는지를확인하는합성후시뮬레 - 38 -

이션시험을수행한다. 이후에는 FPGA 배치및배선과정을수행한다. 배치및배선이끝난다음에는내부회로가 FPGA에물리적으로구현되었을때, 신호가배선과회로를지날때의지연정보와회로전체의최소한의회로구성요소들의연결정보로이루어진네트리스트가추출된다. 이네트리스트를시뮬레이션함으로써, 신호의지연정보를포함한전체회로의타이밍시뮬레이션을수행하게된다. 위의세단계의시뮬레이션에는동일한시험사례의입력으로그동작을확인하여, 시뮬레이션결과에문제가있는경우에는다시코드를수정하여위의과정을다시반복하여오류를제거한다. 2) 검증활동 FPGA의시뮬레이션이성공적으로이루어지면, 배치및배선이완료된설계정보를 FPGA 에다운로드한다. 이러한작업을 구성 (Configuration) 이라한다. 구성이끝나면, 그림 3.19 와같이직접 FPGA의입력핀에신호를입력하고 Logic Analyzer 등의신호탐지장비를이용하여출력신호을분석하는시험을한다. 본시험에서는최종적으로구현된 FPGA를물리적으로시험하는시험으로요구사항에서기술된모든요구사항을만족하는지를시험하기때문에검증시험이라고도한다. 그림 3.19 하드웨어검증시험 4. FPGA 설계및검증도구 FPGA로구현하기위해서는소프트웨어개발도구및검증도구를사용하게된다. 안전등급의시스템에사용되는소프트웨어개발도구및검증도구는충분히안전등급에사용할수있음이입증되어야한다. 그러나, 현재상용으로나와있는도구중에는이러한입증과정을거친도구는없는것으로판단되며, 현실적으로다음과같은업무를수행하는것이타당할것으로판단된다. - 39 -

ㄱ ) 현재가장많이사용되는도구를사용ㄴ ) 도구의형상을기록ㄷ ) 잠재적인도구의고장을커버할수있도록 FGPA 검증을계획하고수행ㄹ ) test coverage를제공하는도구를사용 - 40 -

제 4 장 FPGA 설계지침 본장에서는미국의항공우주국에서제공하는디지털항공전자분야의설계지침및표준을번역하여기술하고있다. 원자력산업뿐만아니라, 항공분야에서도시스템의안전을가장중요한목적으로개발하고있다. 따라서, 항공분야에서사용되는설계지침을원자력분야에충분히적용할수있다고판단된다. 제 1 절 특별한핀들 설계검토를수행하는동안발생하는가장일반적인문제점중의하나는특별한핀들의적절치못한종단처리 (termination) 이다. 모든디바이스들에대하여, 각특별한핀들의종단처리가적절하게되어있는지데이터시트및설계회로도들을주의깊게검토해야한다. 이러한특별한핀들의종단처리는시험에의해서증명되지않을수도있다. 1. 모드핀.Actel 디바이스의초기세대에존재하는이핀들은반드시접지되어야한다. 이핀들은 하드접지 (hard ground) 가인스톨된디폴트셋팅을하고, 10 kohm 의저항과하드점퍼 (hard jumper) 를접지와병렬로연결하는것을권고한다. 2. JTAG 인터페이스 현대의많은디지털마이크로회로는 JTAG 인터페이스를갖고있다. 높은신뢰성설계에요구되는하나의옵션핀은 TRST* 이다. 이핀이존재한다면, 하드접지되어야한다. 왜냐하면 IEEE 1149.1 스펙은부품의안에풀업저항을요구하기때문이다. 모드핀에서사용했던것처럼, 풀다운저항을사용하게되면 TRST* 핀의입력전압이로직 threshold 상태또는이를초과하는상태에있을수있다. 만약TRST* 핀이존재하지않는다면 TMS가로직 1을유지하고, TCLK는자유롭게동작하는독립적인시스템클록이여야한다. TCLK의입력으로시스템클럭을사용하면안된다. 왜냐하면오작동을하는동안칩의동작클럭입력이출력으로되거나, 클럭을클램프 (clamp) 할수도있다. 3. 사용하지않는입력 일반적으로모든디바이스들은적절하게종단된 (terminated) 입력을갖고있어야만한다. 일반적인 CMOS 디바이스들에게이는필수사항이다. FPGA 와같은프로그램가능한디바 - 41 -

이스들은마이크로회로의프로그램가능특성을활용하여소프트웨어를통해사용하지않는핀들에신경써야한다. 예를들면, Actel SX와 SX-S에서의 HCLK나 global routed 클럭과같은클럭입력은출력단을갖고있지않다 ( 그것들은특별한목적이다 ). 따라서사용자가반드시적절하게종단시켜야한다. 만약적절하게종단되지않는다면과전류가흐를것이다. 또다른예로는, 사용하지않는 LVDS 수신입력들은 UTMC 문서에서권고했던바와같이연결되지않은채로남겨놔야한다. 디바이스들에따라서 N/C라고라벨링된핀들은내부적인용도로사용될수도있다. 따라서보드상에서그핀들을종단시키는것은문제를일으킬수있다. 역으로, 어떠한경우에는 N/C 핀들을종단시키지않은것이나쁠수도있다. 스펙에따라서각핀들을주의깊게체크해라. 그리고필요하다면제조업자에게연락해라. 4. 테스트인터페이스 많은디바이스들이 custom 테스트인터페이스를갖고있고, case-by-case 토대로다뤄져야만한다. 이인터페이스들은테스트장비와연결되기때문에, 제조사의지시에주의깊게따라야한다. 예를들면 Actel SX-S 디바이스의테스트핀들은직렬로종단되어야만한다. 입력과같은다른디바이스핀들은종단되어야한다다른것들은내부적인종단을갖고있다. 일반적인규칙은없다. 5. 구성 (Configuration) 핀들 각구성핀은최신의데이터시트에따라서주위깊고확실하게체크되어야한다. 몇몇핀들은내부적으로매우높은풀업저항들을갖고있고, 보드차원에서높은속도의신호에의해서교체 (is switched) 될수도있다방어적으로설계해라. 그리고레벨이변함없음 (solid) 을확실히해라. 또한몇몇구성핀들은본래명시적으로동작하면서원하는상태로플로팅될수도있다. 마지막으로비행을위해서적절하게종단되어야하는프로그램가능한핀들과같은특별한핀들에대해서주의해라. 6. 다른사항들 다른디바이스들은다른핀들을갖고있을것이며, 결정적이며일반적인규칙은없기때 문에각핀들은반드시체크되어야만한다. 제 2 절 입력출력 1. 동시적인스위칭출력 - 42 -

때때로한번에스위치할수있는출력핀의수가제한될때가있다이러한것들은데이터시트에명시되어있다가끔은어플리케이션노트 (application not) 에설명되어있다혹은설계자가자신의것에남겨둘때도있다. 빠르게스위칭하는디바이스들, 많은수의핀들, 낮은 AC, DC 잡은마진은접지면 / 전원떨림현상 (Ground/Vdd bounce) 이심각한문제가될수도있다. 이떨림현상을최소화하는몇가지지침과그현상을고려할수있는몇몇항목들이있다. (1) 만약필요하지않는다면, 낮은슬루 (slew) 를갖는출력의사용할것 (2) SSO들을그룹화하지말것그것들을분해하라 (Xilinx: two for each side of a ground pin) (3) 순서를매겨 SSO들의개수를제어해라. (Example: Do address and data busses need to switch at the same time) (4) 몇몇집합체 (families) 에대해서, 만약보드상에서레일 (rail) 에종단되어있다면, 프로그램된출력단은접지혹은전원공급을개선시킬것이다. (5) 큰메모리배열이나, 긴라인의메모리배열에는특별히버퍼를사용해라. 모든것들이 FPGA나 ASIC 안에있을필요는없다. (6) 소켓을피해라. (7) 여분의패드위치에대해서는, 미리전원, 접지, 바이패스커패시터를배선해라. 뒤엉킨전원, 접지연결은불필요한인덕턴스성분을갖게된다. (8) 입력 threshold을현명하게선택해라. - TTL VIL = 0.8V ( 매우민감하다. 이세팅은접지떨림현상 (bounce) 및상승 (rising) 에모두민감하기때문에피해라 ) - 몇몇디바이스들은프로그램가능한 5V CMOS나다른입력전압 threshold 옵션을제공한다. 이는접지떨림 (bounce) 현상을감소시키는것이아니라접지바운스 (bounce) 효과를완화시킨다. (9) 클럭과접지떨림을일으키는핀과는물리적으로떨어뜨려라. (10) 클럭과접지핀과는가깝게유지해라. (11) When Using JTAG and driving board with test data over multiple parts you can induce data pattern sensitivities, particularly with large data busses, perhaps switching patterns from FFFFFFFF to 00000000. 이는테스트를위한인위적인것으로서, 인위적인실수이다. 그러나제어가되지않을경우하드웨어에손상을주거나, 잠재적으로는과도한스트레스를줄수있다. 엔지니어링모델과항공하드웨어에대한접지떨림테스트를위해서 JTAG나재구성가능한컴포넌트들이사용될수있다. (12) 테스트케이블링은, 특히진동, 열 / 진공, EMI 테스트를위한, 정상적인벤치테스팅이나혹은시스템어플리케이션에대한다른조건들을제시할것이다. 전체프로젝트흐름에대하여최악의상황에대해계획해라. (13) Hard-wired된고속부품들은흔히전원과접지와의연결이최적화되지않게연 - 43 -

결되어있거나불충분한바이패싱이되어있을것이다. 이에대하여, 접지떨림효과를관찰하면서세심하고적절하게테스트가이루어져야한다. (14) 많은디바이스들에대하여, tpd는많은동시스위칭출력 (Simultaneous Switching Output) 들에의해서부정적인영향을받을수있다. (15) 접지 /VDD 떨림은시스템잡음마진을줄이면서다이나믹하게입력스위칭문턱값 (Threshold) 에영향을줄수있다. 2. 신호종단 신호들이적절하게종단되어있는지확실하게해라. (1) 클록신호들은문턱값 (threshold) 을통해부드럽게변화하기위해서는특별한주의가요구된다. 적재된 (loaded) 클록의경우, 아마도오래동작되면, 거짓혹은두개의클록킹을일으키는비단조적인 (non-monotonic) 변화을초래할것이다. 이는비활동성의 (inactive) 의에지에서일어날수있음에주목해라. 유사하게오버슈트와상승 (rising) 또한잘못된클록킹, 특히접지에대한변화를일으킨다. (2) 대부분제조업자들은신호가지나가는레일의외곽이얼마나많이떨어져있는가에대한엄격한제한들을갖고있고, 때로는외곽에대한권고된제한사항이최대시간과연관되어있다. I/O 단자에손상을줄수있기때문에품질좋은신호임을확실히해라. (3) 미리저항의종단처리에계획을세워라. 미리하지않고, 나중에종단저항을추가하는것자체가고생스러운일이고, 이것은회로보드상에위치에있는선들과컴포넌트들보다품질면에서좋지않을것이다. 그리고조립하는사람에게는매우큰어려움을줄것이다. (4) 하나의예로, RS-422과같은인터페이스에적절한종단처리가되었는지스키메틱을조사해라. 종단저항저항이없다면, 비록잡음마진이감소되거나시스템의대한스트레스가증가할지라고, 어느정도는시스템이동작하겠지만, 테스트를하면서발견하기는어렵다. 3. 삼상태버스에대한고려 동작되고있는삼상태버스들에대해어떠한오버랩도허용해서는안된다. 이는전력을낭비할것이고, 불필요하게잡음을발생시키고, 컴포넌트들에게스트레스를줄것이다. 최악의경우에버스의드라이버들사이에 off-time을보장해라. 버스가플로트 (float) 되거나늦은과도시간들을갖지않게해라. 왜냐하면전력소모와잡음을증가시키고, 신뢰성에부정적인영향을줄수있기때문이다. - 44 -

4. 입력변경시간들 몇몇고속혹은현대의디바이스들은입력변경시간들에대한매우엄격한제한을갖고있다. 종종이러한제한사항들은놀라울정도로엄격하다. 이러한요건을만족시키지못하면오실레이션 (oscillation), 다중클록킹 (multiple clocking) 이나손상을줄수있다. 현대의컴포넌트들은종종수백의나노초의과도시간을갖는풀업저항혹은풀-다운저항들을수용하지않을수도있다. 컴포넌트들이종종수용하지않을수도있다. 이러한경우에, 버스홀드 (bus hold) 나소프트래치회로 (soft latch circuit) 들을사용해라. 이것들은또한전력소모도줄일것이다. 다른경우, 몇몇오래된디지털논리군 (family) 들은너무느린과도시간을갖고있어서현대의디바이스들과호환되지않는출력들을갖고있을수있다. 파형측정은보통 10% 에서 90% 이다. 그러나항상이런것은아니다 ; 때때로파라미터측정방법이명시되지않는다. 신호가보드나박스로들어가는경우에보호회로를사용할때는세심한주의가반드시필요하다. 실험실에서의테스트를통해서모든자격을갖춘회로들이데이터시트를만족하는것이아니라는것을알게된다. 하나의예로, 부품이 "shrunk" 되고, 관찰된오실레이션으로더빠른프로세스로이동하는것이다. 따라서마진에대한신중한고려를권고한다. 5. 단락된출력들 (Shorting Outputs Together) 이는때때로보드의드라이브를증가시키기위해서사용된다. 하지만이것은피해야한다. 왜냐하면, 만약스위칭스피드가매치되지않았다면, 컴포넌트들에게해를끼칠수있기때문이다. 그리고이러한중복토폴로지 (redundant topology) 를테스트하는것이어렵거나비현실적이될수도있다. 만약이러한테스트가필요하다면, 두개의출력들은동일한 IC상에있어야한다. 6. 핀할당 핀할당에는세심한주의과계획이중요하다. 첫째, 동시스위칭출력들 (SSOs) 과잡음면역성 (noise immunity), quiet 설계에대해고려해라. 클록과중요신호들은접지핀근처에놓거나, 접지핀으로둘러쌓이게하여최소한의크로스톡 (cross talk) 을갖는짧은길이의배선이 PCB(Printed Circuit Board) 에서이루어지도록주의해라. 모든데이터비트들이일렬로버스위에잘정렬되어있는핀할당은 PCB의접지떨림문제와 FPGA의내부배선문제를일으키는것으로유명하다. 7. 혼합전압인터페이싱, DC 호환성, 잡음마진 - 45 -

여러개의군 (families) 에서디바이스들을혼용하여사용할때, 디바이스들이같은제조업자라할지라고, 디바이스가신뢰성있게동작하고있고, 충분한잡음마진이있는지세심한주의가요구된다. 이는회로성능을업그레이드하거나노후된부품을교체할때문제가될수있다. 입력의경우, 많은 CMOS 기술이적용된디바이스업체들은 TTL 호환이되는입력들이라고광고를한다. 그러나, 이러한입력들은사실그것들의 TTL 상대 (counterpart) 하고는많이다르다. 모든디바이스들이그런것은아니지만, 가장큰차이점은전력이끊겼을때, 인터페이스를위해서나타나는임피던스이다. 예를들어, SEU 때문에, 방사경화된 (radiation-hardened) CMOS 래치들로대치되었다. Galileo 고도제어컴퓨터의메모리유닛에 soft 54LS373이있는데, 블록여분 (redundancy) 회로가고장이났다. 왜냐하면엔지니어들이전력이제거되었을때, 입력 ESD 보호다이오드들을통한스니크 (sneak) 경로를고려하지않았기때문이다. 다른연관된차이점은적용될수있는최대전압이다. 높은전압에서낮은전압으로의신뢰성있는레벨시프팅을위해서몇몇바이폴라 (bipolar) 디바이스들이사용된다. CMOS 대체다바이스들은보호다이오드에포워드바이어스를사용할것이다. 그러나이것은의도되지않은전류흐름과회로의손상혹은고장을일으킨다. 마지막으로많은 CMOS 입력들은논리문턱값 (threshold) 를갖고있는데, 이것은 TTL 과호환되지않는다. 즉, TTL의 VIH 스펙 (specification) 을종종만족하지않는다. VIH 최대값은 2.2V, 2.4V, 때로는 2.5V가명시되어있지만, 진짜 TTL 디바이스들은두개의다이오드의드롭전압에의해서정의되는문턱값 (threshold) 을갖고있다. 이들범위는 1.2V-1.4V이다. TTL 출력들은단지 VOH = 2.4V를드라이브하기위해서보장되어있다. 따라서이러한상황에서거의없거나혹은부정적인잡음마진이나타날수도있다. 스위칭포인트차이는신호무결성에따라서회로의고장을야기할수있다. 스위칭될때, 종종 TTL 출력들은특히나무겁거나긴로드 (load) 를갖는파형아네 bump 를지니고있다. 이러한 "bump" 는종종 TTL 디바이스들이올바르게동작하기위하여충분히높은전압상태에있지만, CMOS 디바이스들의더높은 VIH는다중 (multiple) 클록킹을일으킬수있다. 이러한상황에서만약수동회로가안정화되기위한충분한시간이존재한다면, 풀업저항들은 DC 잡음마진을복구할수있다. 그러나이러한방법대로설계된 TTL?/font> CMOS 클록인터페이스는종종실패할것이다. 왜냐하면 CMOS 입력은더블클록킹을일으키는다중변화 (Mutiple transition) 를경험할수도있다. CMOS 출력단또한고장이잘날수있다. 그리고미묘한디바이스특성들이에러를일으킬수있다. 모든명세서를주의깊게체크해라! 예를들어, 로드 (load) 를드라이빙할때, 많은 CMOS 디바이스들은높거나혹은논리 1 신호를위해매우낮은전류레벨에명세되어있다. 그러나 TTL 입력들은상당한양의전류를취급한다. 그리고 CMOS FET 입력에서바라본높은임피던스를드러내지않는다. 그리고출력이끌어내려질수있다. CMOS 와 TTL 입력이혼합된출력로드 (load) 의경우, CMOS 입력, 전형적으로 70% of - 46 -

VDD, 에필요한높은전압과 2.0V의 VIH의낮은전압을갖는 TTL 입력에필요한높은전류를보증하기위해서반드시분리되어야한다. 고려할다른사항은 CMOS 디바이스의출력단의구조이다. 예를들어, 몇몇디바이스들은높은레일로의스윙하지않을것이다. 그리고제한된전압을갖고있다. 만약다음입력단에 p 채널 FET가 cut off 상태에있지않는다면, 이는약간의 totem-pole 전류를일으킬수있다. RT54SX와같이 I/O가 5V를공겁할수있는몇몇디바이스들은 3.3V의코어전압에대한출력들을드라이브할수있을것이다. 그러나이로인해 CMOS 출력은같은보드상에있는 5V의 CMOS입력과호환되지않는다. 5V I/O 바이어스가공급될때, 위에서언급된디바이스들은 5V 전압의스윙을갖는 2.4V 코어 RT54SXS 시리즈상에서고정될것이다. 오늘날컴포넌트들은전형적으로 1.5V, 1.8V, 2.5V, 3.3V, 5.0V 등과같이많은공급전압을 갖고있다. 또한잘프로그래밍할수있는최신의디바이스들과함께 풍부한 I/O 표준 들이있다. 따라서이러한것들의특성은분명하고심지어회로도까지잘알려져있다. 따라서 I/O 호환성은반드시주의깊게증명되어야한다. 특히신제품이나개선된디바이 스나대체디바이스로교체될때주의해야한다. 8. 전력스위칭과 Cold Sparing 여유적인측면 (redundancy) 혹은전력절약모드를위해독립적으로전원공급이되는블록들로구성된시스템을설계할때는반드시상당한주의를기울여야한다. 진성 (intrinsic) 혹은 ESD 보호다이오드를통해전력을낮출때, 대다수의 CMOS 디바이스들은낮은임피던스를보인다 ; cold sparing을갖는다른디바이스들은동작하기에적합한높은입력임피던스을갖고있을수도있다. 하나의예로서, 3.3V PCI 호환성 (compatibility) 을선택하게되면, "Cold sparing" 디바이스는더이상높은임피던스를지니지않는다. 왜냐하면클램핑다이오드가가능하기때문이다. 프로그램가능한디바이스의경우, 많은바이폴라디바이스들이 cold sparing 구조에호환되지만, 몇몇디바이스들은출력을통하여 VCC에대한스니크경로 (sneak path) 를갖는다. 제 3 절 클럭 클럭킹, 유한상태머신 (Finite state machine) 그리고시간분석은서로밀접하게연관되어 있어야한다. 이단원은클럭과설계기준에대한몇몇체크사항에대해서논의할것이 다. 1. 스큐가없거나낮은스큐를갖는클럭의사용 - 47 -

처음에프로그램가능한로직을이용하여설계를할때, 대다수설계자들은이산 (discrete) 디지털마이크로회로에서처럼제로스큐패스 (zero-skew paths) 라가정하고보통라우팅리소스 (routing resource) 를사용한다. 그러나, 스키매틱상에서의망이나 HDL 텍스트에서의클럭신호가일정한신호처럼보일지라도, 망의전기설계는분석되어야한다. 일반적으로설계자들이스큐가없거나, 낮은스큐의리소스를사용할때, 설명할수없는몇몇글리치들 (glitches) 이나, 구체적인라우팅에는문제가없지만, 빈약한 " 프로그램생산물 (programming yield)" 들로더잘동작하거나, 잘못동작할수도있다. 그래서, 일련의서로이웃해있는플립-플롭들이서로공통의에지클럭을사용할때, 낮은스큐를갖는클럭을반드시사용해야한다. 스큐가없거나, 낮은스큐를갖는클럭을이용하여설계를하는것은수용할만한일이다. 그리고이로인해서전력소모의감소나사용가능한클럭개수가효과적인증가된다. 그러나, 스큐에내성이 (skew-tolerant) 있는설계기술및분석이주의깊게사용되어야한다. 2. 칩과칩사이의시간전략 많은분석툴이단일칩에대한로직분석에는능숙하다. 그러나대부분시스템이나, 칩과칩사이의시간분석에대해서는효과적이지못하다. 다양한디지털디바이스들을연결시키기위해서 (hook up) 보드상에서단지낮은스큐를갖는클럭을사용하는것은매력적일수있다. 그러나이것은잘동작하는것을항상보장하지는않는다. 그리고적절한분석이반드시이루어져야한다. 클럭주기에기초들둔시간을셋업하는것이외에도, 대기시간 (hold time) 분석이반드시이루어져야한다. 이것은종종빠뜨리거나, 적절치못하게수행한다. 소스칩의클럭과출력간최악의상황이 " 최소 " 혹은 " 최상의경우 " 의시간파라미터를사용하여쉽게분석되는동안, 싱크 (sink) 칩의대기시간 (hold time) 은동일한계산을위해서, 클럭의 slow path와데이터의 fast path를가정하여반드시분석되어야한다. 자동화된툴들은모든최소혹은최대값에대하여분석할수는있지만, 동시에최소-최소분석은할수없다종종사람이이를완성해야한다. 싱크칩에대한좋은목표는 0ns 혹은음의대기시간을갖는것이다. 그러나, 많은디바이스들특히, FPGA의몇몇모델들은이조건을만족하지못한다. 그래서, 대안의기술로반대의에지클록킹이나, 비동기에서처럼 ( 완벽하진않지만 ) treating 신호를반드시사용해야한다. 통과 (passing) 기준은모든최악의경우의셋업과대기시간들이항상만족되거나, 충분한메타스테이블 (metastable) 상태의보호가포함되어야한다는것이다. 특정한스피드등급으로표시된몇몇부품 (part) 들은표시된것보다더빠를수있음에주목해라. 그리고가장빠른군 (family) 에서의최소값이최악의경우의분석에이용되어야한다. 많은칩들의 binning criteria는 single ended 이다 sample timing path는몇몇 threshold를초과해서는안된다. 이는스피드등급인디바이스들혹은 " slower" 라표시된두 faster에대해서는공통사항이아니다. 왜냐하면디바이스에표시된것들은계약상요구사항이고 "faster" 라고표시된디 - 48 -

바이스들은이후의 (incoming) 의검사동안수용되지않기때문이다. 3. 클럭트리 1) DLL 과 PLL 의사용 디지털시스템에서 DLL과 PLL은많은유용한기능들을갖고있다. 그러나그것들은만족해야할몇몇요구사항들이있다. 첫째, 최악의경우의주파수들은 ( 가장빠른것과가장느린것 ) 회로와호환성이있는지체크해야한다종종수용가능한범위들은매우제한적이다. 또한, 반드시만족되어야하는신호 quality 조건이있다. 다음으로, when these circuits clock finite state machines, or other sequential logic, 이러한회로들을안정화시키고, 락 (lock) 시키는시간에주목해라. 그리고디바이스와시스템에전원이안전하게공급되는것을확실히해라. 그리고또다른항목은 DLL 혹은 PLL이 SEU에의해서타격을받았을때, 최상의성능을체크하는것이다. 이로인해 DLL 혹은 PLL의프로그램상의변화가발생할수있고, 이는때때로약간의미묘한모드 (mode) 상의변화를초래할수있다. 시스템의안전기능은반드시이러한 off-nominal 조건에서수행되어야한다. 2) 각오실레이터에대한하나의 root 다이어그램은각오실레이터의하나의 root와함께회로에대한클럭트리를보여줘야한다. 이러한다이어그램은클럭도메인상에있는 PLL, DLL과칩과칩들사이에 talk 하는모든칩들을포함해야한다. 후자의경우는비동기신호의확인을위해서이다. 3) 클럭도메인을교차하는로직블록과신호의표시 클럭트리의분석을토대로, 클럭도메인을교차하는모든블록과신호들을확인해라. 그 리고메타스테이블 (metastable) 상태의 resolution 의필요성을정해라. 추가적으로, 신호동 기화에포함되는 latency 를시스템이허용할수있음을확실히해라. 4) 반대에지클럭킹에대한순환주기 (duty cycle) 분석 클럭의하나의에지에서다른에지로넘어가는데이터의설계에있어서, 각단계 (phase) 의가장최악의경우의순환주기 (duty cycle) 가적절하게계산되었는지확실히해라. 상황이그렇지않음에도, 종종설계자들은 50% 의순환주기 (duty cycle) 를가정할것이다. 순환주기 (duty cycle) 의왜곡에대한원인은보통 50 +/-10% 의순환주기를갖는오실레이터의특성때문이다로직게이트및버퍼등을통과하면서생기는고르지못한 delay들. - 49 -

4. 비동기인터페이스와메타스테이블 (Metastable) 상태에대한실패율계산 각비동기신호를위해서적절한동기장치를확실하게사용해라. 종종설계자들은단순히두개의직렬 D 플립-플롭들을사용할것이다. 자주사용되고수용할수있는토폴로지 (topology) 라할지라도, 매우고속의회로 ( 검토중인기술을위해사용될 ) 에있어서이동기장치의실패율은무시하지못한다이러한상황을고려하여반드시실패율이계산되어야한다. 또한평상시 (nominal) 온도와전압에서극한의상황으로변할때, resolution time의가능성있는큰변화에서메타스테이블 (Metastable) 파라미터가취하는조건들에주목해라. 이러한것들은테스트를하거나증명하기에비현실적이기때문에, 회로상에서충분한마진이게끔설계해라. 또한 ASICs, 다른플립-플롭 macros는다른메타스테이블 (metastable) 파라미터를갖고있을수있다는사실에주목해라. 이는 FPGA에서도고려되어야한다. 메타스테이블상태 (Metastable) 에강한 ("Metastable state hardened") 몇몇개별 (discrete) 다비이스들이사용된다. 현대의플립-플롭들은꽤성능이좋지만, 아직매혹적인해결책을갖고있는것은아니다. 제 4 절 유한상태머신 (Finite State Machines) 유한상태머신설계는종교적인이슈가 (religious issue) 될수있다. 유한상태머신을위한최고의스타일은무엇인가? 인간혹은머신이상태할당을해야하는가? 유한상태머신을안전하게어떤방법으로설계할까? 이러한모든상황에대한최고의해답은없다. 그리고체크될수있는매력적인스타일도없다. 많은엔지니어들이상태머신을설계하기위해서로직을결코보지않고, HDL을사용한다는점에주목하길바란다. 이는중대한어플리케이션 (application) 에서반드시극도의관심을갖고행해져야한다. 높은신뢰성을요구하는회로에대한몇몇설계지침들은 one-hot 상태머신을사용하지말것을요구한다. 왜냐하면많은수의플립-플롭은 SEU(Single Event Upset) 의가능성을증가시키기때문이다. 이것이진실일지라도, 상태머신에대한신중한분석을통 one-hot 토폴로지 (topology) 는모든단일비트에러를검출하면서 2의 Hamming distance를갖고있음을알아냈다. 이와비교하여, 동일한 binary coded 상태머신은어떠한 lockup state를갖고있지않으면서, 1의 Hamming distance를갖고있다. 만약 2n의상태가모두사용된다면, 여분의체킹머신없이규칙에서벗어난변이 (transition) 을찾아낼수없다. 그리고사용된여분의체킹머신그자체도 SEU와연관되어있으며, SEU와함께 lockup state을갖게될것이다. 1. Lockup 상태의분석및전략 - 50 -

1) 스키매틱에기반을둔머신 중대한일을처리하는상태머신에있어서, 모든가능한로직상태에대해서반드시분석되어야한다. 그리고머신이결정적이고원하는방식대로동작함을증명해야한다. 또한예상에서벗어난사건들에대해서도반드시고려되어야한다. 이러한예가바로 SEU(Single Event Upset), credible failure mode이다. 많은소비자등급의 IC에서유한상태머신 (Finite State Machine) 들은 SDRAM과같이 lockup 상태를갖고있다. 중대한일을처리하는컨트롤러는이러한것을수용할수없다. 분석은가능한모든 2n 상태를포함해야한다. 전원버스의장애나 ESD로인해 lockup 상태로되는것이 A credible failure mode이다. 어떤고신뢰성의머신이든, 모든credible failure mode에대하여반드시강인한특성을지니고있어야한다. 추가적으로, FSM이원하는시퀀스를통해서과도기 (transition) 보다는정상적인상태 (legal state) 에시작하도록확실히해야한다. 이를위한한가지방법은 POR(Power-on reset) 지시기를사용하는것이다. 이것은클럭과동기화되도록반드시체크되어야한다. 모든플립-플롭에 POR이비동기혹은리셋입력으로반드시사용할필요는없다. 이것은리셋신호장애에대한부하를증가시키고고속회로에서사용되는모든플립-플롭들에대한제거시간 (removal time) 을만족시키기에는힘들기때문에많은경우에있어서바람직하지못하다. 만약 FSM이항상원하는상태로동작한다면어떠한리셋 (reset) 도필요하지않을수도있다. 예를들면, n 마스터카운터에의한분할 (divide) 과같은경우에서흔하게볼수있는데, 여기에서리셋 (reset) 은불필요하고리셋상의결함으로머신은정지될수있다. 리셋기능에대한한가지고려사항은테스트를위한설계 (design-for-test), 시뮬레이션을위한설계 (design-for-simulation) 이다. 왜냐하면이것들로인해종종추가적인리셋연결이나올수있기때문이다. 2) HDL 로합성된머신 분명히스키메틱 (schematic) 에기반을둔머신에대한모든기준이여기에도적용된다. 그러나 HDL을이용한설계에대해서는특별한고려사항이있는데, 이는 CAE(Computer Aided Engineering) writer가고신뢰성을요구하는회로들에게바람직하지못한회로를제공할수있다는점이다. 따라서중대한회로에대해서는합성기 (Synthesizer) 가제공하는출력리포트를반드시매우신중하게검토되어야한다. 체크할공통사항은다음과같다 : lockup 상태글리치 (glitch) 를일으킬수있는 Gray로인코드 (encode) 된머신의출력물 : 의도되지않은플립-플롭복제원하는대로스타일이명세되지않음 ( 종종합성기는사람보다더잘안다고판단하여다른스타일로대체할것이다.) 추가적으로, 몇몇로직합성기들은안전한상태머신들을생성할것이다. 생성된설계에대하여면밀히검토해라. 예를들어서, 때때로로직이게이트 (gate) 를폭발적으로증가시킬수있음이보고되었고, 클럭의반대의에지에서리셋신호가생성되기도한다. 이로인해설계자에게는보이지는않 - 51 -

지만, 클리어 (cleaer) 의제거하는시간을촉박하게 (tight) 만든다. VHDL과같은언어는모든물리적상태를다루지못하고단지논리적인 (logical) 상태만을다룬다는것을명심해라. 따라서 "others" 항은물리적인구현이아니라, enumberated type에서의상태를언급할것이다. HDL은 one-hot인지 gray 코드인지, 어떤플립-폴롭이복제되어야하는지모른다. 이것은블랙박스시뮬레이션뿐아니라, 논리적등가 (logical equivalence) 에의한부울식 (Boolean equations) 에의해서도발견되지않는다. 2. 플립 - 플롭복제 논리설계자들은신뢰성혹은성능측면에서로직을복사한다. 예를들어서, 만약출력단에부하가너무높으면, 부하는종종다중 (multiple) 드라이버들사이에서분리될것이다. ( 몇몇경우에있어서, 출력은하나로합쳐지지만, 이는선호할사항은아니며, 보통피해야한다.) 다른경우에는부하를자르고 (cutting) 드라이버를복제하는것은커패시티브 (capacitive) 부하를분산시킴으로써시간을만들수있다. 조합로직의복제는꽤간단하다. 그러나, 만약이개념이시퀀셜 (sequential) 로직과유한상태머신 (FSM) 으로확장된다면, 상황이좀까다로워진다. 왜냐하면상태정보가포함되어있기때문이다. 실제로로직은다른정보를회로의다른부분에게넘길지도모른다. 예를들면, 로직은 SEU, ESD등의사건과같은과도기 (transient) 결함의현재상태와는일치하지않을수도있다. 즉논리적인플립-플롭은연결되는물리적인플립플롭에따라서회로의다른부분에다른값을넘겨줄수있다. 이것은고신뢰성의어플리케이션 (application) 에서유의해야할사항이다. 소프트웨어 CAE 툴들이기쁘게도이러한종류의회로들을생성한다..(Software CAE tools are more than happy to generate circuits of this class) 그리고자기-일치성 (self-consistency) 를보증하는로직은생성하지않는다. 예시들이어플리케이션노트 (application note) 에있다. 3. 에러검출과수정에대한요건및구현 강한 (robust) 상태머신을설계하기위해서단순히 해밍 (Hamming) 코드와수정회로를 추가하는것은매력적인일이다. 만약 SEU 혹은 ESD 사건들이시스템클럭에동기화되지않고, 로직망이글리치 (glitch) 가없게끔보장되지않는다는것을알았다면, 당신은강건하게 (robust) 동작하는구조물의능력에대해서재고해야한다. 일반적인경우, 다음상태의로직을실행하는조합논리회로들과상태레지스터를만드는플립-플롭으로의입력들에대해서반드시분석해야한다. 특히이러한종류의어떤계획이든, 당신은회로구현이정적해저드 (static hazard) 이있는지없는지, 만약없다면, 상태 ( 혹은 set 상태 ) 로잘못된변화 (transition) 가만들어질수있는지를반드시살펴봐야한다. - 52 -

제 5 절 리셋 1. 리셋논리회로 ( 과도기와정상상태에서의동작고찰 ) 리셋회로에대한과도기의영향이반드시분석되어야한다실제로, 이것은반드시분석의초점이되야한다. 전원의어플리케이션 (application) 에대하여, POR의출력혹은리셋회로는이상적으로고체논리레벨 (solid logic level) 이되어야하고, 글리치 (glitch) 가없어야한다. 타이밍커패시터로쇄도하는전류의양은그커패시터타입의최대값을초과해서는절대안된다. 만약비교기가사용된다면, 논리게이트 (gate) 로의상승시간 (rising timing) 은명세서에표기된입력값을초과해서는안된다종종히스테리시스 (hysteresis) 입력을갖는게이트가사용된다. 그러한타입의입력조차도출력글리치 (glitch) 들이발생할수있다. 그리고논리게이트의여러단이반드시사용되어야한다. 고려해야할다른과도기 (transient) 요소는비행을위한전원공급기 (flight power supply) 의최상과최악의상승시간 (rising time) 이다. 이러한것들은 laboratory supplies에따라서상당한차이가나고, 비단조 (non-monotonic) 이거나상당한오버슈트 (overshoot) 와상승 (rising) 을갖고있을수있다. Flight power supplies는전원버스에서전도성방출 (conducted emission) 을최소화하기위한제한된슬루레이트 (slew-rate) 임에주목해라. 전원공급기의시정수 (time constant) 는 POR 회로의시정수값을초과할수도있다! 방전을위해, 타이밍커패시터방전을위해낮은임피던스 (impedance) 를갖는 path를확실히확보하고, 논리게이트의입력이확실하게보호되도록해라. 항상그런것은아니지만, 대부분의 CMOS 입력들은입력단에서전원공급레일 (rail) 까지 ESD 다이오드를갖고있다. 그러한입력을통해큰커패시터를방전시키는것은해가될수있다. 또한전원버스에서의순간적인붕괴에대한회로의응답과요건에대해서고려해라. 대부분의회로들이 power-on reset에대해서회복할수도있지만모든회로가다그런것은아니다. 이러한예중의하나가세심하게보호가필요하는비휘발성, 지울수있는메모리이다. 리셋회로의많은다이어그램 (Diagram) 들은리셋회로의 " 비동기어플리케이션 (application), 동기적제거 (synchronous removal)" 를보여준다. 그러나많은디바이스, 특히프로그램가능한디바이스경우에있어서, 전원공급이되는과도기 (transient) 동안입력이막히거나무시될수있다는사실을주목해라. 이는전하펌프 (charge pump) 가시작되거나, 혹은환경구성 (configuration) 이로드되고릴리즈 (release) 되는것에대한필요때문일수있다. 동기화된입력을갖는디바이스에대하여, 아마도클럭오실레이터는리셋신호가가해지기전에수십밀리초의시간을반드시필요로한다. 이러한디바이스들의출력들은시스템레벨에서반드시다뤄져야한다. 왜냐하면리셋신호의경우 HDL 코드혹은스키매틱 (schematic) 상에서는괜찮아보일지몰라도, 실제회로에서는무시되기때문이다. - 53 -

정상상태혹은 DC 영향또한중요하다. 타이밍커패시터와논리게이트의누설전류를체크해라. 왜냐하면, 타이밍커패시터의누설전류의총양과타이밍저항의저항값과의곱은모든잡음마진 (margin) 을제거할수있는전압드롭 (drop) 을일으킬수있기때문이다. 2. 트리 (Tree) 모든리셋소스 (source) 들의트리 (tree) 를그리는것은리셋논리가잘정의되도록도와준다. 시스템리셋, 소프트웨어리셋, 와치독타이머등으로부터의다양한형태의리셋신호가있는데, 좋은트리다이어그램 (tree diagram) 은그들사이의관계를잘보여준다. 반드시필요할때에는적절한동기화를만들어라. 또한만약리셋이빠르게동작되어야할때에는 ( 예를들어잘못된쓰기신호로부터비휘발성메모리를보호하거나, 신호탄의점화와같은 one-time 사건의개시로부터다른회로를보호하는것들 ) 트리 (tree) 로인해논리와지연들이반드시잘이해될것이다. 3. 리셋활동시간 vs. FPGA 와크리스털클럭오실레이터와같은컴포넌트의시동 (startup) 보장된리셋시간은시스템의모든회로에대해서반드시충분히길어야한다. 이는종종빠뜨리기가쉽다. 예를들어, 많은 FPGA(FPGA에있는전하펌프 (charge pump) 는반드시전압과전하내부커패시턴스를확립해야한다.) 들은시작을위한시간, 지연에대해대기하는시간들을필요로한다. 그리고나서출력이나온다. POR 신호의조급한출력으로인해확인할수없는상태가될수있다. 내부적으로많은 POR 회로들을갖고있는 FPGA들은적절한로딩 (loading) 과릴리즈 (release) 에대한리셋시퀀스 (sequence) 를필요로할수도있다. 이러한모든리셋에대한타이밍은반드시최악, 최상의경우를고려하여분석되어야한다. 또한크리스털클럭오실레이터와같은디지털논리보드상의몇몇표준컴포넌트들은상당한시간의 ( 흔히수십밀리초 ) startup시간을갖고있을수있다. FPGA나크리스털클럭오실레이터와같이이러한것들을더욱복잡하게만드는컴포넌트들은전원공급기의상승시간 (rise time) 의함수인 startup 시간을갖고있을수있다. 심지어는흔히이러한행위들이잘명세되지않는다. 강한 (robust) 시작시간들은결정적이다. 4. One-time 사건들 ( 즉화약기폭제 (pyrotechnic initiation)) 혹은중대임무에대한신호들의보호 이주제는부분적으로 6.2 절에언급되어있다. 그러나이러한신호들의중요성때문에, 여기서다시언급한다. 많은논리요소들은전원공급기의출력이상승됨에따라그들의 - 54 -

진리표 (truth table) 에맞게행동하지않는다. 따라서 POR 신호는반드시전원공급기 rise time 과도기동안거짓 (false) 신호를막는게이트로서동작해야하고, 그리고나서모든회로들이안정상태가된후출력해야한다. 이와는반대로, 전원이꺼질때 (come down), 논리요소들이전압드롭 (drop) 으로인해제어 (control) 을잃어버리기전에중요회로들이안전한상태있다는것을확실히하기위해서, POR 회로가초기에단정될 (asserted) 필요가있다. 흔히보호를필요로하는디바이들은화약기폭제 (pyrotechnic initiator) 들, EEPROM들, 플래쉬메모리들, 기타등이있다. 마이크로컨트롤러 (microcontroller) 와같은몇몇디바이스들은내부적으로플래쉬메모리를갖고있어서 POR 신호들에의해서보호가필요한모든컴포넌트들과시스템인터페이스들을평가할수있다는사실을주목해라. 제 6 절 위험요소분석 정적위험요소는조합망 (combinational network) 으로향하는단일변수로의변화가다른변수들사이에서과도기 (transient) 혹은순간적인변화가일어날때존재한다. 그러나이것은일어나서는안된다 (e.g., 1 -> 0 -> 1). 그러면정적위험요소가생겨난다. 정상적으로는, 신호가정착하기에충분한시간이있다면, 동기적설계에서는이러한문제가발생하지않는다. 유사한조건으로만약 1-> 0 -> 1 -> 0 형태의과도기가존재한다면, 동적위험요소가존재한다. 즉이들은확실히서로바뀌지않는다. 정적위험요소가없는어떤회로든지동적위험요소도존재하지않는다. 필수위험요소는논의에서벗어난다. 이주제는많은논리클래스에서다뤄지지않는다. HDL들과기능적시뮬레이션을이용으로많은설계자들이이컨셉과는친숙하지가않다. 단일클럭과공통의에지를사용하는 100% 의동기적설계에서는일반적으로관심사항은아니다. 그러나검토가진행되는동안, 설계자들이모른채, 위험요소가종종존재한다. 이러한예중의하나는유한상태머신 (FSM) 에클럭신호를생성하기위하여 TMR 회로를사용하는것이다. 만약 voter가위험요소를지닌상태에서 SEU들의영향을완화시키기위해 voter에대한입력의변화는 voter로부터발생되는글리치 (glitch) 로부터더블클럭이생길수도있다. 보통컴포넌트들은위험요소가없는것처럼보일지도모른다당신이사용하고있는로직군 (family) 상에서잘실행되는지를반드시주의깊게살펴봐야한다. 예를들어몇몇 FPGA 군의기본인멀티플렉서는글리치가없는가? 멀티플렉서가글치기가없다고보증할수없다. 따라서세심한주의없이안전한클럭생성기라고간주될수없다. 다른예는투표된 (voted) 출력이칩밖으로나와서외부다바이스의클럭입력으로사용될때이다. 툴이동작하는동안엔지니어에는알려지지않은, 회로상에서생성되는위험요소를만들어내기위해서논리합성기에대한주의가필요하다. - 55 -

제 7 절 전원시스템 1. 공급시퀀싱 (sequencing) 이와관련되어 2가지경우가있다. 이단원에서는하나의디바이스에대한여러개의전원공급에관해서논의할것이다. 다음단원에서는여러디바이스들에대한인터페이스에대해서논의할것이다. 대부분더새로워진디바이스들은둘혹은더많은전원공급기를요구한다. 보통이공급기들은논리디바이스의코어에전원을공급하는것과입출력셀에전원을공급하는것으로나눌수있다. 추가적인전원공급이 PLL과 DLL, 특별한 I/O 표준혹은외부전하펌프와같은다양한바이어스 (bias) 공급에필요할수도있다. 이러한전원공급기들은모든 DC 기준뿐아니라리플 (ripple) 특성 ( 특히 PLL과같은회로 ) 도분명히만족해야한다. 분명하지않은것은전원이하나의다바이스로공급되는시퀀스가회로의동작및성능뿐아니라신뢰성에도영향을미칠수있다는사실이다. SX-S 시리즈와같은다비아스의경우논리코어에전원이중단되기도전에 I/O의전원이 bring up되면, 큰쇄도 (inrush) 전류가존재할수도있다만약전원공급순서가역으로된다면, 해당사항은아니다. 몇몇다바이스의경우, 잘못된전원공급시퀀스로인해서디바이스에 overstress혹은해가될수있다. Multiple vendors가이에해당된다. 보통시퀀스에대한요건은어플리케이션노트 (application note) 나 "fine print" 에나와있다. 다음과같은사항이고려되어야한다. 오실로스코프프로브 (probe) 를 "slip" 하고접지링 (ground ring) 이순간적으로전원선이나커패시터터미널에접촉되거나, 순간적으로전원에단락되었을때이다. 이로인해잘못된시퀀스가발생될수도있고이론상특정칩에 overstress나해가될수도있다. 일반적으로전원공급시퀀스가요구되는부품은피해라. 만약그런부품이있을때에는플래그 (flagged) 되야하고, 요건되로회로가보호되면서, 설계가매우조심스럽게진행되야한다. 2. 전원이공급되지않은 CMOS I/O 로의신호입력 8.1절과유사하게, 서로같은보드내에있든, 떨어져있든서로인터페이싱하고있는 IC 들사이에전원공급시퀀스는반드시주의깊게살펴봐야한다. 대부분 IC들, 특히 CMOS의경우, 전원이차단되었을때에는시스템에대하셔낮은임피던스 (impedance) 를갖고있다. 이러한 IC들의대부분, 입력혹은출력 ( 많은 FPGA 출력은일반적인목적의 I/O모듈안에서 active한입력을갖고있다.) 상에서신호가이용 (application) 되기전에전원공급이 bring up이되어야한다고요구한다. 몇몇프로그램가능한 IC들은이러한것들이분석되지않았다특별한설계구성을반드시알고있어야한다. 예를들어서, 몇몇 I/O 모듈들은 cold sparing를제공하고있다즉그것들은파워가차단되었을때, 시스템에대해서높은임피던스 (impedance) 를갖고있다. 다르게구성된그와같은 I/O는 PCI 호환성 - 56 -