fpga (field programmable gate...

31
FPGA (Field Programmable Gate Array) 1

Upload: others

Post on 25-Jan-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: FPGA (Field Programmable Gate Array)cms3.koreatech.ac.kr/sites/yjjang/down/dsys11/M04_fpga.pdfv메모리구현: RAM, ROM, FIFO, dual port RAM v조합/순차회로구현: 곱셈기,

FPGA (Field Programmable Gate Array)

1

Page 2: FPGA (Field Programmable Gate Array)cms3.koreatech.ac.kr/sites/yjjang/down/dsys11/M04_fpga.pdfv메모리구현: RAM, ROM, FIFO, dual port RAM v조합/순차회로구현: 곱셈기,

FPGA 개념

q FPGA (Field Programmable Gate Array) ?

v 사용자가 현장에서 직접 프로그램 가능한 소자

v 기본적인 논리게이트, 플립플롭, 메모리 등을 구현 가능

v 수십개~수백만개의 소자를 포함하는 규모

v 개발기간이 짧고 회로동작을 바로 검증할 수 있어 개발 초기에 사용하거나

소규모 다품종 제품에 사용

q FPGA 구조

v 논리블록

v 연결자원(interconnection resource)

v 입출력 회로

v 프로그래밍 스위치 : 전기적인 Fuse

v 게이트수, 입출력수, 핀수, 동작속도 등에

따라 성능 및 가격 차이

q FPGA (Field Programmable Gate Array) ?

v 사용자가 현장에서 직접 프로그램 가능한 소자

v 기본적인 논리게이트, 플립플롭, 메모리 등을 구현 가능

v 수십개~수백만개의 소자를 포함하는 규모

v 개발기간이 짧고 회로동작을 바로 검증할 수 있어 개발 초기에 사용하거나

소규모 다품종 제품에 사용

q FPGA 구조

v 논리블록

v 연결자원(interconnection resource)

v 입출력 회로

v 프로그래밍 스위치 : 전기적인 Fuse

v 게이트수, 입출력수, 핀수, 동작속도 등에

따라 성능 및 가격 차이

2한국기술교육대학교 전기전자통신공학부

Page 3: FPGA (Field Programmable Gate Array)cms3.koreatech.ac.kr/sites/yjjang/down/dsys11/M04_fpga.pdfv메모리구현: RAM, ROM, FIFO, dual port RAM v조합/순차회로구현: 곱셈기,

FPGA 종류

Types 회 사 계 열 게이트수 (1,000) 사용자 입출력핀수

EEPROM

AlteraMAX 7000

MAX 9000

0.6-5

6-12

36-164

159-216

LatticeispLSI 8000

MACH 5

25-45

5-20

148-312

68-256

EPROM AlteraMAX 5000

Classic EPLD

0.6-3.7

0.3-0.9

16-67

22-64

FlashXilinx XC9500/XL/XV 0.8-64 34-192

Cypress Delta 39k 30-200 32-264

Actel ACT 3 1.5-10 70-228Anti-fuse

Actel ACT 3 1.5-10 70-228

QuickLogic pASIC 3 8-38 70-316

SRAM

Xilinx

XC 4000E

Virtex-5

Spartan-3

2-85

30-330

50-5000

64-448

400-1200

124-784

Altera

FLEX 10K (ACEX1K)

APEX 20K

Cyclone III

Stratix III

10-250

30-1500

50-120

50-340

59-470

128-808

94-535

288-1104

3한국기술교육대학교 전기전자통신공학부

Page 4: FPGA (Field Programmable Gate Array)cms3.koreatech.ac.kr/sites/yjjang/down/dsys11/M04_fpga.pdfv메모리구현: RAM, ROM, FIFO, dual port RAM v조합/순차회로구현: 곱셈기,

프로그래밍 구조

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 초기제품개발, 교육용으로 사용

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 초기제품개발, 교육용으로 사용

4한국기술교육대학교 전기전자통신공학부

routing wire

RAMcell

routing wire

pass transistor

RAMcell

routing wire

routing wire

transmission gate

routing wires

multiplexer

to logic cell input

RAMcell

RAMcell

MUX

Page 5: FPGA (Field Programmable Gate Array)cms3.koreatech.ac.kr/sites/yjjang/down/dsys11/M04_fpga.pdfv메모리구현: RAM, ROM, FIFO, dual port RAM v조합/순차회로구현: 곱셈기,

프로그래밍 구조

q Anti-fuse 방식

v 3개층으로 구성

Ø n+ 확산층 : 반도체

Ø 유전체층 : 절연체

Ø Poly-Si 층 : 도체

v 18V-5mA 전류로 유전체에 열을 가하여 전기적 fuse를 녹여서 프로그래밍

v anti-fuse를 위한 별도의 마스크 제조공정 필요

v 불휘발성

v 재프로그래밍 불가

v 성능이 우수

v 최종제품 용도

q Anti-fuse 방식

v 3개층으로 구성

Ø n+ 확산층 : 반도체

Ø 유전체층 : 절연체

Ø Poly-Si 층 : 도체

v 18V-5mA 전류로 유전체에 열을 가하여 전기적 fuse를 녹여서 프로그래밍

v anti-fuse를 위한 별도의 마스크 제조공정 필요

v 불휘발성

v 재프로그래밍 불가

v 성능이 우수

v 최종제품 용도

5한국기술교육대학교 전기전자통신공학부

Actel 사의 안티퓨즈 프로그래밍 구조

단면층 평면층(마스크)

Page 6: FPGA (Field Programmable Gate Array)cms3.koreatech.ac.kr/sites/yjjang/down/dsys11/M04_fpga.pdfv메모리구현: RAM, ROM, FIFO, dual port RAM v조합/순차회로구현: 곱셈기,

프로그래밍 구조

q EPROM (EEPROM)/Flash 방식

v select gate와 floating gate로 구성

v 프로그래밍된 상태 : floating 게이트가 전하를 포획하여 select 게이트가

NMOSFET로 동작하는 것을 불가하게 함 – 연결이 끊어짐

v 비 표준공정 – 가격 상승, 소규모 소자

v 불휘발성

v EPROM : 자외선 조사로 재프로그래밍 가능, ISP 불가

v EEPROM : 전기적 재프로그래밍 가능, ISP 가능

v 컨피겨레이션 ROM으로 많이 사용

q EPROM (EEPROM)/Flash 방식

v select gate와 floating gate로 구성

v 프로그래밍된 상태 : floating 게이트가 전하를 포획하여 select 게이트가

NMOSFET로 동작하는 것을 불가하게 함 – 연결이 끊어짐

v 비 표준공정 – 가격 상승, 소규모 소자

v 불휘발성

v EPROM : 자외선 조사로 재프로그래밍 가능, ISP 불가

v EEPROM : 전기적 재프로그래밍 가능, ISP 가능

v 컨피겨레이션 ROM으로 많이 사용

6한국기술교육대학교 전기전자통신공학부

단면층 회로연결

n+ n+

field oxide

gate oxide1st level poly Si(floating gate)

2nd level poly Si(select gate)

p-substrate

VS +VD

+VG

select gate

floating gate

bit line

word line

pull-upresistor

EPROMtransistor

gnd

+5V

Page 7: FPGA (Field Programmable Gate Array)cms3.koreatech.ac.kr/sites/yjjang/down/dsys11/M04_fpga.pdfv메모리구현: RAM, ROM, FIFO, dual port RAM v조합/순차회로구현: 곱셈기,

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로 프로그래밍

Design database

Initial design Entry

Logic optimization

Technologymapping

Placement &Routing

Design verification

Configuration &Downloading

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로 프로그래밍

7한국기술교육대학교 전기전자통신공학부

Design database

Initial design Entry

Logic optimization

Technologymapping

Placement &Routing

Design verification

Configuration &Downloading

Page 8: FPGA (Field Programmable Gate Array)cms3.koreatech.ac.kr/sites/yjjang/down/dsys11/M04_fpga.pdfv메모리구현: RAM, ROM, FIFO, dual port RAM v조합/순차회로구현: 곱셈기,

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와의 인터페이스 지원

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한국기술교육대학교 전기전자통신공학부

Page 9: FPGA (Field Programmable Gate Array)cms3.koreatech.ac.kr/sites/yjjang/down/dsys11/M04_fpga.pdfv메모리구현: RAM, ROM, FIFO, dual port RAM v조합/순차회로구현: 곱셈기,

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)72 218 360 624

Logic Array Blocks

(LABs)72 218 360 624

Embedded Array

Bocks (EABs)3 6 10 12

Total RAM bits 12,288 24,576 40,960 49,152

Max. user I/O pins 136 171 249 333

9한국기술교육대학교 전기전자통신공학부

1 LAB = 8 LEs1 EAB = 4,096 bits RAM

Page 10: FPGA (Field Programmable Gate Array)cms3.koreatech.ac.kr/sites/yjjang/down/dsys11/M04_fpga.pdfv메모리구현: RAM, ROM, FIFO, dual port RAM v조합/순차회로구현: 곱셈기,

ACEX1K 패키지와 usable I/O pins

Device100-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

동작온도

10한국기술교육대학교 전기전자통신공학부

패키지 형태 이름

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

동작온도

CI

Commercial (0oC - 70oC)Industrial (-40oC - 85oC)

Speed Grade

-1, -2, -3, ...

소자이름 예 : EP1K100QC208-3

ACEX1K 계열, 100,000 게이트 수, 208핀의 PQFP패키지동작온도 0oC - 70oC, speed grade -3

Page 11: FPGA (Field Programmable Gate Array)cms3.koreatech.ac.kr/sites/yjjang/down/dsys11/M04_fpga.pdfv메모리구현: RAM, ROM, FIFO, dual port RAM v조합/순차회로구현: 곱셈기,

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한국기술교육대학교 전기전자통신공학부

Page 12: FPGA (Field Programmable Gate Array)cms3.koreatech.ac.kr/sites/yjjang/down/dsys11/M04_fpga.pdfv메모리구현: RAM, ROM, FIFO, dual port RAM v조합/순차회로구현: 곱셈기,

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한국기술교육대학교 전기전자통신공학부

Page 13: FPGA (Field Programmable Gate Array)cms3.koreatech.ac.kr/sites/yjjang/down/dsys11/M04_fpga.pdfv메모리구현: RAM, ROM, FIFO, dual port RAM v조합/순차회로구현: 곱셈기,

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 함수를 호출

하여 각 파라미터 설정으로 메모리 배열

을 설계

메모리 배열 구조 예

v 1EAB = 4,096 bits memory

v 내부 입출력 레지스터 포함

v 입출력 비트 수 가변

v 주소선 가변

v 메모리 구현 : RAM, ROM, FIFO, dual

port RAM

v 조합/순차회로구현 : 곱셈기, vector

scalar, 디지털 필터, micro-controller 등

v 쿼터스 툴에서 MegaWizard 함수를 호출

하여 각 파라미터 설정으로 메모리 배열

을 설계

메모리 배열 구조 예

13한국기술교육대학교 전기전자통신공학부

Page 14: FPGA (Field Programmable Gate Array)cms3.koreatech.ac.kr/sites/yjjang/down/dsys11/M04_fpga.pdfv메모리구현: RAM, ROM, FIFO, dual port RAM v조합/순차회로구현: 곱셈기,

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한국기술교육대학교 전기전자통신공학부

Page 15: FPGA (Field Programmable Gate Array)cms3.koreatech.ac.kr/sites/yjjang/down/dsys11/M04_fpga.pdfv메모리구현: RAM, ROM, FIFO, dual port RAM v조합/순차회로구현: 곱셈기,

LE (Logic Element)v 일반적인 논리 구현

v 4 입력 LUT (LookUp Table) 구조 :

논리함수구현

v 프로그램 가능한 D 플립플롭

v carry chain, cascade chain

v 내부 및 외부 연결선

v LE 사용모드

§ Normal 모드 : 일반적 논리회로, 디코딩 회로

§ 연산 모드 : 가산기, 누산기, 비교기

§ 업/다운 카운터 모드 : 동기형 로드, 업/다운, 비동기형

클리어

§ 클리어 카운터 모드 : 동기형 로드 및 클리어

15한국기술교육대학교 전기전자통신공학부

Page 16: FPGA (Field Programmable Gate Array)cms3.koreatech.ac.kr/sites/yjjang/down/dsys11/M04_fpga.pdfv메모리구현: RAM, ROM, FIFO, dual port RAM v조합/순차회로구현: 곱셈기,

IOE (Input Output Element)v 입력, 출력, 양방향 입출력

v 양방향 I/O buffer, register

v 출력 형태 : 핀별 지정가능

v 저잡음, 고속 slew rate

v 개방 드레인 (open drain) 출력

v 삼상(tri-state) 출력

v 주변 제어신호 버스 :

v 글로벌 채널 사용

v 클럭, 클리어, 클럭 인에이블, 출력

인에이블

v 2개의 전용 클럭 입력 : 클럭 와이어

지연 감소

v GCLK1, GCLK2

v 입력, 출력, 양방향 입출력

v 양방향 I/O buffer, register

v 출력 형태 : 핀별 지정가능

v 저잡음, 고속 slew rate

v 개방 드레인 (open drain) 출력

v 삼상(tri-state) 출력

v 주변 제어신호 버스 :

v 글로벌 채널 사용

v 클럭, 클리어, 클럭 인에이블, 출력

인에이블

v 2개의 전용 클럭 입력 : 클럭 와이어

지연 감소

v GCLK1, GCLK2

16한국기술교육대학교 전기전자통신공학부

Page 17: FPGA (Field Programmable Gate Array)cms3.koreatech.ac.kr/sites/yjjang/down/dsys11/M04_fpga.pdfv메모리구현: RAM, ROM, FIFO, dual port RAM v조합/순차회로구현: 곱셈기,

ACEX 1K Configuration

q Altera SRAM 계열 컨피겨레이션 scheme

q컨피겨레이션 데이터 크기

MSEL1 MSEL0 컨피겨레이션 scheme

0 0

Active Serial (AS)

Passive serial (PS)

J TAG

1 0 Passive parallel sync.(PPS)

1 1 Passive parallel async. (PPA)

q Altera SRAM 계열 컨피겨레이션 scheme

q컨피겨레이션 데이터 크기

17한국기술교육대학교 전기전자통신공학부

1 1 Passive parallel async. (PPA)

소자 데이터크기(bits) 데이터크기 (bytes)

EP1K10 159,160 19,895

EP1K30 473,720 59,215

EP1K50 784,184 98,023

EP1K100 1,335,720 166,965

Page 18: FPGA (Field Programmable Gate Array)cms3.koreatech.ac.kr/sites/yjjang/down/dsys11/M04_fpga.pdfv메모리구현: RAM, ROM, FIFO, dual port RAM v조합/순차회로구현: 곱셈기,

PS 방식 컨피겨레이션v PS 컨피겨레이션 연결도

단일 FPGA

18한국기술교육대학교 전기전자통신공학부

다중 FPGA

Page 19: FPGA (Field Programmable Gate Array)cms3.koreatech.ac.kr/sites/yjjang/down/dsys11/M04_fpga.pdfv메모리구현: RAM, ROM, FIFO, dual port RAM v조합/순차회로구현: 곱셈기,

컨피겨레이션 파일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

qDownload cable : ByteBlasterMV, ByteBlaster, USBBlaster

v PC에 10핀으로 연결되어 FPGA를 PS 방식으로 프로그래밍

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

qDownload cable : ByteBlasterMV, ByteBlaster, USBBlaster

v PC에 10핀으로 연결되어 FPGA를 PS 방식으로 프로그래밍

19한국기술교육대학교 전기전자통신공학부

Page 20: FPGA (Field Programmable Gate Array)cms3.koreatech.ac.kr/sites/yjjang/down/dsys11/M04_fpga.pdfv메모리구현: RAM, ROM, FIFO, dual port RAM v조합/순차회로구현: 곱셈기,

EAB를 사용한 메모리 설계 - RAM

q쿼터스 툴의 라이브러리 함수 사용

v ROM, RAM, FIFO 등 설계

§ Megawizard manager- memorycompiler-RAM 1port

§ RAM의 주소, 입출력 데이터 크기설정

20한국기술교육대학교 전기전자통신공학부

소자, 생성할 출력의 형태, 파일이름 설정

Page 21: FPGA (Field Programmable Gate Array)cms3.koreatech.ac.kr/sites/yjjang/down/dsys11/M04_fpga.pdfv메모리구현: RAM, ROM, FIFO, dual port RAM v조합/순차회로구현: 곱셈기,

RAM 설계

§ 주소, 입출력 포트의 레지스터사용 설정

§ 메모리의 초기 정보 파일 설정

21한국기술교육대학교 전기전자통신공학부

.mif (memory initialization file) 혹은 .hex 파일 형태 사용

Page 22: FPGA (Field Programmable Gate Array)cms3.koreatech.ac.kr/sites/yjjang/down/dsys11/M04_fpga.pdfv메모리구현: RAM, ROM, FIFO, dual port RAM v조합/순차회로구현: 곱셈기,

RAM 설계

§ RAM megafunction에서생성되는 파일 종류

§ 스키매틱 편집기에 생성된 ram1 심볼 호출

22한국기술교육대학교 전기전자통신공학부

ram1.v : Verilog fileram1.bsf : 회로 심볼 파일

Page 23: FPGA (Field Programmable Gate Array)cms3.koreatech.ac.kr/sites/yjjang/down/dsys11/M04_fpga.pdfv메모리구현: RAM, ROM, FIFO, dual port RAM v조합/순차회로구현: 곱셈기,

RAM 설계

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

§ 생성된 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한국기술교육대학교 전기전자통신공학부

Page 24: FPGA (Field Programmable Gate Array)cms3.koreatech.ac.kr/sites/yjjang/down/dsys11/M04_fpga.pdfv메모리구현: RAM, ROM, FIFO, dual port RAM v조합/순차회로구현: 곱셈기,

EAB를 사용한 메모리 설계 - ROM 설계

§ Megawizard manager- memorycompiler-ROM 1port

§ ROM의 주소, 입출력 데이터크기 설정

24한국기술교육대학교 전기전자통신공학부

소자, 생성할 출력의 형태, 파일이름 설정

Page 25: FPGA (Field Programmable Gate Array)cms3.koreatech.ac.kr/sites/yjjang/down/dsys11/M04_fpga.pdfv메모리구현: RAM, ROM, FIFO, dual port RAM v조합/순차회로구현: 곱셈기,

ROM 설계

§ 주소, 입출력 포트의 레지스터사용 설정

§ 메모리의 초기 정보 파일 설정

25한국기술교육대학교 전기전자통신공학부

.mif (memory initialization file) 혹은 .hex 파일 형태 사용

Page 26: FPGA (Field Programmable Gate Array)cms3.koreatech.ac.kr/sites/yjjang/down/dsys11/M04_fpga.pdfv메모리구현: RAM, ROM, FIFO, dual port RAM v조합/순차회로구현: 곱셈기,

ROM 설계

§ ROM megafunction에서 생성되는파일 종류

§ 스키매틱 편집기에 생성된 rom1 심볼 호출

26한국기술교육대학교 전기전자통신공학부

rom1.v : Verilog filerom1.bsf : 회로 심볼 파일

Page 27: FPGA (Field Programmable Gate Array)cms3.koreatech.ac.kr/sites/yjjang/down/dsys11/M04_fpga.pdfv메모리구현: RAM, ROM, FIFO, dual port RAM v조합/순차회로구현: 곱셈기,

ROM 설계

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

§ 생성된 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한국기술교육대학교 전기전자통신공학부

Page 28: FPGA (Field Programmable Gate Array)cms3.koreatech.ac.kr/sites/yjjang/down/dsys11/M04_fpga.pdfv메모리구현: RAM, ROM, FIFO, dual port RAM v조합/순차회로구현: 곱셈기,

ROM 설계

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;

§ mif 파일 형식

depth : 주소 최대 크기width : 데이터 비트address radix : 주소 표현 basedata radix : 데이터 표현 baseradix 종류 : bin, oct, hex, uns (양의 정수), dec(부호있는 정수)

저장될 데이터 내용1: 001 ß 1번지에 001 데이터 저장[22..26]:3FF ß 22~26번지에 모두 3FF

• 이와 같은 형태로 파일을 편집하여rom1_data.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;

28한국기술교육대학교 전기전자통신공학부

depth : 주소 최대 크기width : 데이터 비트address radix : 주소 표현 basedata radix : 데이터 표현 baseradix 종류 : bin, oct, hex, uns (양의 정수), dec(부호있는 정수)

저장될 데이터 내용1: 001 ß 1번지에 001 데이터 저장[22..26]:3FF ß 22~26번지에 모두 3FF

• 이와 같은 형태로 파일을 편집하여rom1_data.mif 와 같은 이름으로 저장

Page 29: FPGA (Field Programmable Gate Array)cms3.koreatech.ac.kr/sites/yjjang/down/dsys11/M04_fpga.pdfv메모리구현: RAM, ROM, FIFO, dual port RAM v조합/순차회로구현: 곱셈기,

ROM 설계

§ 쿼터스 툴에서 mif 파일 생성

(1) 메뉴(3) 데이터편집

29한국기술교육대학교 전기전자통신공학부

(2) 워드수,크기설정

(4) 저장된 파일보기

Page 30: FPGA (Field Programmable Gate Array)cms3.koreatech.ac.kr/sites/yjjang/down/dsys11/M04_fpga.pdfv메모리구현: RAM, ROM, FIFO, dual port RAM v조합/순차회로구현: 곱셈기,

설계된 메모리의 동작 검증

§ ram1과 rom1을 스키매틱 생성기에서 호출하여 아래회로와 같이 연결 : ex_mem.bdf로 저장

30한국기술교육대학교 전기전자통신공학부

§ 컴파일 후의 report 파일 : 사용한 메모리 양 확인회로 동작 : rom1에 저장된

내용(rom1_data.mif)을 ram1에쓰게한 후 ram1의 출력(ram_out)으로 읽어내게 한다.

Page 31: FPGA (Field Programmable Gate Array)cms3.koreatech.ac.kr/sites/yjjang/down/dsys11/M04_fpga.pdfv메모리구현: RAM, ROM, FIFO, dual port RAM v조합/순차회로구현: 곱셈기,

설계된 메모리의 동작 검증

§ 시뮬레이션 파형

ram_we=1 : ram1에 데이터 저장ram의 03번지부터 001 저장

31한국기술교육대학교 전기전자통신공학부

ram_we=0 : ram1의 데이터 읽기ram의 03번지부터 001이 읽혀진다.