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

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

Microsoft PowerPoint - DSD04_fpga1.pptx

歯Intro_alt_han_s.PDF

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

<4D F736F F F696E74202D C61645FB3EDB8AEC7D5BCBA20B9D720C5F8BBE7BFEBB9FD2E BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint - SY-A3PSK-V1.pptx

DE1-SoC Board

ºÎ·ÏB

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

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

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

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

마이크로프로세서 개요

Microsoft Word - logic2005.doc

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

<4D F736F F F696E74202D20332EB5F0C1F6C5D0C8B8B7CEBFCD20B1B8C7F62E >

<4D F736F F F696E74202D20B1E2BCFAC1A4BAB8C8B8C0C72DB0E8C3F8C1A6BEEE2DC0CCC0E7C8EF2E BC0D0B1E220C0FCBFEB5D>

<BBEABEF7B5BFC7E22DA5B12E687770>

한국기술교육대학교장영조 한국기술교육대학교전기전자통신공학부 1

1

. 고성능마이크로프로세서 LU 와레지스터 파일의구조 (2.). 직접디지털주파수합성기 (FS) 의구조 3. 고성능마이크로프로세서부동소수점연산기 (Floating-Point Unit) 구조 (2) (2.) (2.) 2. 암호화를위한 VLSI 구조와설계의개요 (2.) 다음참

歯15-ROMPLD.PDF

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

歯03-ICFamily.PDF

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

뉴티씨 (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

Microsoft PowerPoint - DSD03_verilog3b.pptx

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

Microsoft Word - Experiment 5.docx

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

PowerPoint Presentation

<BFACBDC0B9AEC1A6C7AEC0CC5F F E687770>

Microsoft PowerPoint - o8.pptx

SRC PLUS 제어기 MANUAL

Orcad Capture 9.x

歯동작원리.PDF

À̵¿·Îº¿ÀÇ ÀÎÅͳݱâ¹Ý ¿ø°ÝÁ¦¾î½Ã ½Ã°£Áö¿¬¿¡_.hwp

Microsoft Word - 제6장 Beyond Simple Logic Gate.doc

BY-FDP-4-70.hwp

PowerPoint 프레젠테이션

UART Controller 구현

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

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

歯자료db통합0928

Microsoft PowerPoint - eSlim SV [ ]

PowerPoint 프레젠테이션

Microsoft Word - logic2005.doc

Microsoft PowerPoint - 팜플렛(MFM300).ppt

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

Microsoft PowerPoint - es-arduino-lecture-03

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

tut_modelsim(student).hwp

PowerPoint 프레젠테이션

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

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

Microsoft Word - EastSocket매뉴얼_ _.doc

WebPACK 및 ModelSim 사용법.hwp

<BFACBDC0B9AEC1A6C7AEC0CC5F F E687770>

동기순차회로 p 조합논리회로 combinational logic circuit) v 출력이현재의입력에의해서만결정되는논리회로 p 순차논리회로 sequential logic circuit) v 현재의입력과이전의출력상태에의해서출력이결정 v 동기순차논리회로와비동기순차논리회로로

歯Chap1-Chap2.PDF

Microsoft PowerPoint - eSlim SV [080116]

Video Stabilization


T100MD+

PRO1_09E [읽기 전용]

User Guide

hd1300_k_v1r2_Final_.PDF

PowerPoint Presentation

디지털공학 5판 7-8장

목차 1. 개요 USB 드라이버 설치 (FTDI DRIVER) FTDI DRIVER 실행파일 USB 드라이버 확인방법 DEVICE-PROGRAMMER 설치 DEVICE-PROGRAMMER

PowerPoint 프레젠테이션

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A634C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

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

CAN-fly Quick Manual

슬라이드 제목 없음

A New Equivalence Checker for Demonstrating Correctness of Synthesis and Generation of Safety-Critical Software

Microsoft Word - PEB08_USER_GUIDE.doc

Microsoft Word - AVRISP mkII 장비 운용.doc

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

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

2 Mitsubishi FX Series Computer Link MITSUBISHI FX SERIES COMPUTER LINK 시스템구성 시스템설정 사용예 사용예 사용예

API 매뉴얼

초급과정 목차

Microsoft PowerPoint - Master-ChiWeon_Yoon.ppt

Vertical Probe Card Technology Pin Technology 1) Probe Pin Testable Pitch:03 (Matrix) Minimum Pin Length:2.67 High Speed Test Application:Test Socket

서보교육자료배포용.ppt

Microsoft Word - MAI-ISP-STK500_매뉴얼_Ver25.docx

(SW3704) Gingerbread Source Build & Working Guide

8장 조합논리 회로의 응용

리뉴얼 xtremI 최종 softcopy

BMP 파일 처리

Microsoft Word - FS_ZigBee_Manual_V1.3.docx

Quartus-Manual_Kor.PDF

final_thesis

MicrocontrollerAcademy_Lab_ST_040709

슬라이드 1

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

PowerPoint 프레젠테이션

USB-EK001 매뉴얼

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

Transcription:

FPGA (Field Programmable Gate Array) 1

FPGA 개념 q FPGA (Field Programmable Gate Array)? v 사용자가현장에서직접프로그램가능한소자 v 기본적인논리게이트, 플립플롭, 메모리등을구현가능 v 수십개 ~ 수백만개의소자를포함하는규모 v 개발기간이짧고회로동작을바로검증할수있어개발초기에사용하거나 소규모다품종제품에사용 q FPGA 구조 v 논리블록 v 연결자원 (interconnection resource) v 입출력회로 v 프로그래밍스위치 : 전기적인 Fuse v 게이트수, 입출력수, 핀수, 동작속도등에 따라성능및가격차이 2

FPGA 종류 Types 회사계열게이트수 (1,000) 사용자입출력핀수 MAX 7000 0.6-5 36-164 Altera MAX 9000 6-12 159-216 EEPROM isplsi 8000 25-45 148-312 Lattice MACH 5 5-20 68-256 MAX 5000 0.6-3.7 16-67 EPROM Altera Classic EPLD 0.3-0.9 22-64 Xilinx XC9500/XL/XV 0.8-64 34-192 Flash Cypress Delta 39k 30-200 32-264 Anti-fuse SRAM Actel ACT 3 1.5-10 70-228 QuickLogic 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 (ACEX1K) 10-250 59-470 Altera APEX 20K 30-1500 128-808 Cyclone III 50-120 94-535 Stratix III 50-340 288-1104 3

프로그래밍구조 q 프로그래밍 : 전기적 fuse 인연결스위치에회로정보 (configuration 정보 ) 를 기억하는과정 v 칩의면적, 지연시간, 성능, 집적도, 표준공정사용, 가격등에영향 v 프로그래밍정보의불휘발성 (non-volatile), 소자의재프로그래밍, ISP (In System Programmability) à PCB 기판설계에영향 q SRAM 프로그래밍방식 v SRAM (Static RAM) 에정보저장 v 휘발성 (volatile) v 초기화를위한정보저장매체가따로필요 v 재프로그래밍및 ISP 가능, 표준 CMOS 공정사용, v 전원소모가크다, v 초기제품개발, 교육용으로사용 routing wires RAM cell RAM cell RAM cell MUX routing wire routing wire routing wire routing wire RAM cell pass transistor transmission gate multiplexer to logic cell input 4

프로그래밍구조 q Anti-fuse 방식 v 3 개층으로구성 Ø n+ 확산층 : 반도체 Ø 유전체층 : 절연체 Ø Poly-Si 층 : 도체 v 18V-5mA 전류로유전체에열을가하여전기적 fuse 를녹여서프로그래밍 v anti-fuse 를위한별도의마스크제조공정필요 v 불휘발성 v 재프로그래밍불가 v 성능이우수 v 최종제품용도 단면층평면층 ( 마스크 ) Actel 사의안티퓨즈프로그래밍구조 5

프로그래밍구조 q EPROM (EEPROM)/Flash 방식 v select gate 와 floating gate 로구성 v 프로그래밍된상태 : floating 게이트가전하를포획하여 select 게이트가 NMOSFET 로동작하는것을불가하게함 연결이끊어짐 v 비표준공정 가격상승, 소규모소자 v 불휘발성 v EPROM : 자외선조사로재프로그래밍가능, ISP 불가 v EEPROM : 전기적재프로그래밍가능, ISP 가능 v 컨피겨레이션 ROM 으로많이사용 +5V 1 st level poly Si (floating gate) +V G 2 nd level poly Si (select gate) gate oxide bit line pull-up resistor V S +V D select gate field oxide n+ n+ EPROM transistor word line floating gate p-substrate gnd 단면층 회로연결 6

FPGA 설계과정 q 설계입력 v HDL, EDIF, Schematic q 논리최적화 v 일반적인논리합성과최적화과정 q Technology 매핑 v FPGA 의논리구조에적합한회로생성, FPGA 소자 회사의 CAD 툴사용 q 배치및배선 (P&R) v FPGA 칩내부의특정위치에회로를배치하고연결 v P&R 결과는회로의전기적특성에영향을미침 q 설계검증 v 타이밍시뮬레이터를통한동작검증 q 프로그래밍 ( 컨피겨레이션 ) v 전기적프로그래밍파일 (JEDEC) 형태로저장 v 다운로드케이블을통하여 FPGA 를직접 프로그래밍하거나 EPROM writer 로프로그래밍 Initial design Entry Design database Logic optimization Technology mapping Placement & Routing Design verification Configuration & Dow nloading 7

ACEX 1K q Altera 사의 SRAM 방식 FPGA q 논리블록, 메모리, 입출력블록포함 q EAB (Embedded Array Block) : 내부전용메모리, megafunction 구현 v RAM 비트 : 12,288 ~ 49,152 q Logic array : look-up table 논리블록, 논리회로, glue logic 구현 v 게이트개수 : 10,000 ~ 100,000 v LE (Logic Element) 개수 : 576 ~ 4,992 q 최대사용자입출력핀수 : 136 ~ 333 q 동작전원 v 입출력다중전압지원 : 5.0V, 3.3.V, 2.5V v 내부회로 2.5V 동작 q ICR (In Circuit Reconfigurability) v 외부 EPROM, 마이크로프로세서 v JTAG (Joint Test Action Group) port q 설계툴 v MAX+Plus II, Quartus II v 설계입력형태 : EDIF, Verilog HDL, VHDL, v 스키매틱, 그외 EDA 와의인터페이스지원 8

ACEX1K 소자종류 Feature EP1K10 EP1K30 EP1K50 EP1K100 Typical gates (logic and RAM) 10,000 30,000 50,000 100,000 Max. system gates 56,000 119,000 199,000 257,000 Logic Elements (LEs) 576 1,728 2,880 4,992 Logic Array Blocks (LABs) Embedded Array Bocks (EABs) 72 218 360 624 3 6 10 12 Total RAM bits 12,288 24,576 40,960 49,152 Max. user I/O pins 136 171 249 333 1 LAB = 8 LEs 1 EAB = 4,096 bits RAM 9

ACEX1K 패키지와 usable I/O pins Device 100-Pin TQFP 144-Pin TQFP 208-Pin PQFP 256-Pin FineLine BGA 484-Pin FIneLine BGA EPF1K10 66 92 120 136 136 EP1K30 102 147 171 171 EP1K50 102 147 186 249 EP1K100 147 186 333 L T Q R G B F 패키지형태이름 PLCC (plastic J-lead chip carrier) TQFP (plastic thin quad flat pack) PQFP (plastic quad flat pack) RQFP (power quad flat pack) PGA (ceramic pin grid array) BGA (ball grid array) FineLine BGA C I 동작온도 Commercial (0 o C - 70 o C) Industrial (-40 o C - 85 o C) Speed Grade -1, -2, -3,... 소자이름예 : EP1K100QC208-3 ACEX1K 계열, 100,000 게이트수, 208 핀의 PQFP 패키지동작온도 0 o C - 70 o C, speed grade -3 10

ACEX 1K 성능 사용자원량 성능 응용회로 LEs EABs 속도등급 -1-2 -3 단위 16 bit loadable counter 16 0 285 232 185 MHz 16 bit accumulator 16 0 285 232 185 MHz 16-to-1 multiplexer 10 0 3.5 4.5 6.6 ns 16 bit multiplier with 3 stage pipeline 592 0 156 131 93 MHz 256x16 RAM read cycle speed 0 1 278 196 143 MHz 256x16 RAM write cycle speed 0 1 185 143 111 MHz 11

ACEX 1K 구조 v LAB (Logic Array Block) : 행과열의형태로배열배치 v EAB (Embedded Array Bock) : 행단위마다 1개씩중앙열에배치 v IOE (I/O Element) : 칩바깥쪽에배치 v Row/Column Interconnect : LAB, EAB, IOE의연결 12

EAB (Embedded Array Block) v 1EAB = 4,096 bits memory v 내부입출력레지스터포함 v 입출력비트수가변 v 주소선가변 v 메모리구현 : RAM, ROM, FIFO, dual port RAM v 조합 / 순차회로구현 : 곱셈기, vector scalar, 디지털필터, micro-controller 등 v 쿼터스툴에서 MegaWizard 함수를호출 하여각파라미터설정으로메모리배열 을설계 메모리배열구조예 13

LAB (Logic Array Block) v 1 LAB은약 96개정도의사용가능한게이트에해당 : v 8 비트카운터, 가감산기, 디코더, 상태머신등의논리구현에적합 v 8개 LE (Logic Element) v LAB control signal : global 신호 ( 클럭, 리셋,..) v carry and cascade chain v LAB 내부 (local) 연결배선 v 칩내행열배치 14

LE (Logic Element) v 일반적인논리구현 v 4 입력 LUT (LookUp Table) 구조 : 논리함수구현 v 프로그램가능한 D 플립플롭 v carry chain, cascade chain v 내부및외부연결선 v LE 사용모드 Normal 모드 : 일반적논리회로, 디코딩회로 연산모드 : 가산기, 누산기, 비교기 업 / 다운카운터모드 : 동기형로드, 업 / 다운, 비동기형클리어 클리어카운터모드 : 동기형로드및클리어 15

IOE (Input Output Element) v 입력, 출력, 양방향입출력 v 양방향 I/O buffer, register v 출력형태 : 핀별지정가능 v v 저잡음, 고속 slew rate 개방드레인 (open drain) 출력 v 삼상 (tri-state) 출력 v 주변제어신호버스 : v v 글로벌채널사용 클럭, 클리어, 클럭인에이블, 출력 인에이블 v 2 개의전용클럭입력 : 클럭와이어 지연감소 v GCLK1, GCLK2 16

ACEX 1K Configuration q Altera SRAM 계열컨피겨레이션 scheme MSEL1 MSEL0 컨피겨레이션 scheme Active Serial (AS) 0 0 Passive serial (PS) J TAG 1 0 Passive parallel sync.(pps) 1 1 Passive parallel async. (PPA) q 컨피겨레이션데이터크기 소자 데이터크기 (bits) 데이터크기 (bytes) EP1K10 159,160 19,895 EP1K30 473,720 59,215 EP1K50 784,184 98,023 EP1K100 1,335,720 166,965 17

PS 방식컨피겨레이션 v PS 컨피겨레이션연결도 단일 FPGA 다중 FPGA 18

컨피겨레이션파일 v SRAM object file (.sof) : ByteBlaster를사용하는 PS 컨피겨레이션 v Programming Object File (.pof) : EPC 소자에다운로드 v Serial Bitstream File (.sbf) : BitBlaster를사용하는 PS 컨피겨레이션 v Hexadecimal (Intel format) File (.hex) : third party ROM 프로그래머, PPS, PPA 모드, parallel EPROM q Download cable : ByteBlasterMV, ByteBlaster, USBBlaster v PC 에 10 핀으로연결되어 FPGA 를 PS 방식으로프로그래밍 19

EAB 를사용한메모리설계 - RAM q 쿼터스툴의라이브러리함수사용 v ROM, RAM, FIFO 등설계 Megawizard manager- memory compiler-ram 1port RAM 의주소, 입출력데이터크기설정 소자, 생성할출력의형태, 파일이름설정 20

RAM 설계 주소, 입출력포트의레지스터사용설정 메모리의초기정보파일설정.mif (memory initialization file) 혹은.hex 파일형태사용 21

RAM 설계 RAM megafunction 에서생성되는파일종류 스키매틱편집기에생성된 ram1 심볼호출 ram1.v : Verilog file ram1.bsf : 회로심볼파일 22

RAM 설계 생성된 ram1.v Verilog 파일 ß 설계에서사용 module ram1 ( address, data, inclock, we, q); input [7:0] address; input [9:0] data; input inclock; input we; output [9:0] q; wire [9:0] sub_wire0; wire [9:0] q = sub_wire0[9:0]; lpm_ram_dq lpm_ram_dq_component (.address (address),.inclock (inclock),.data (data),.we (we),.q (sub_wire0),.outclock (1'b1)); defparam lpm_ram_dq_component.lpm_address_control = "REGISTERED", lpm_ram_dq_component.lpm_indata = "REGISTERED", lpm_ram_dq_component.lpm_outdata = "UNREGISTERED", lpm_ram_dq_component.lpm_type = "LPM_RAM_DQ", lpm_ram_dq_component.lpm_width = 10, lpm_ram_dq_component.lpm_widthad = 8; endmodule 23

EAB 를사용한메모리설계 - ROM 설계 Megawizard manager- memory compiler-rom 1port ROM 의주소, 입출력데이터크기설정 소자, 생성할출력의형태, 파일이름설정 24

ROM 설계 주소, 입출력포트의레지스터사용설정 메모리의초기정보파일설정.mif (memory initialization file) 혹은.hex 파일형태사용 25

ROM 설계 ROM megafunction 에서생성되는파일종류 스키매틱편집기에생성된 rom1 심볼호출 rom1.v : Verilog file rom1.bsf : 회로심볼파일 26

ROM 설계 생성된 rom1.v Verilog 파일 ß 설계에서사용 module rom1 ( address, inclock, outclock, q); input [6:0] address; input inclock; input outclock; output [9:0] q; wire [9:0] sub_wire0; wire [9:0] q = sub_wire0[9:0]; lpm_rom lpm_rom_component (.outclock (outclock),.address (address),.inclock (inclock),.q (sub_wire0),.memenab (1'b1)); defparam lpm_rom_component.intended_device_family = "ACEX1K", lpm_rom_component.lpm_address_control = "REGISTERED", lpm_rom_component.lpm_file = "rom1_data.mif", lpm_rom_component.lpm_outdata = "REGISTERED", lpm_rom_component.lpm_type = "LPM_ROM", lpm_rom_component.lpm_width = 10, lpm_rom_component.lpm_widthad = 7; endmodule 27

ROM 설계 mif 파일형식 depth = 128; width = 10; address_radix = dec; data_radix = hex; content begin 0: 000; 1: 001; 2: 002; 3: 003; 4: 004; 5: 005; 6: 006; 7: 007; 8: 008; 9: 009; 10: 1A0; 11: 111; 12: 112; 13: 213; 14: 214; 15: 315; 16: 316; 17: 317; 18: 318; 19: 019; 20: 020; 21: 021; [22..26]: 3FF; 27: 3F7; 28: 3F8; [29..127]:3F0; end; depth : 주소최대크기 width : 데이터비트 address radix : 주소표현 base data radix : 데이터표현 base radix 종류 : bin, oct, hex, uns ( 양의정수 ), dec( 부호있는정수 ) 저장될데이터내용 1: 001 ß 1 번지에 001 데이터저장 [22..26]:3FF ß 22~26 번지에모두 3FF 이와같은형태로파일을편집하여 rom1_data.mif 와같은이름으로저장 28

ROM 설계 쿼터스툴에서 mif 파일생성 (1) 메뉴 (3) 데이터편집 (4) 저장된파일보기 (2) 워드수, 크기설정 29

설계된메모리의동작검증 ram1 과 rom1 을스키매틱생성기에서호출하여아래회로와같이연결 : ex_mem.bdf 로저장 회로동작 : rom1 에저장된내용 (rom1_data.mif) 을 ram1 에쓰게한후 ram1 의출력 (ram_out) 으로읽어내게한다. 컴파일후의 report 파일 : 사용한메모리양확인 30

설계된메모리의동작검증 시뮬레이션파형 ram_we=1 : ram1 에데이터저장 ram 의 03 번지부터 001 저장 ram_we=0 : ram1 의데이터읽기 ram 의 03 번지부터 001 이읽혀진다. 31