Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
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 게이트수, 입출력수, 핀수, 동작속도 등에
따라 성능 및 가격 차이
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) 사용자 입출력핀수
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한국기술교육대학교 전기전자통신공학부
프로그래밍 구조
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
프로그래밍 구조
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 사의 안티퓨즈 프로그래밍 구조
단면층 평면층(마스크)
프로그래밍 구조
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
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
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한국기술교육대학교 전기전자통신공학부
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
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
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 함수를 호출
하여 각 파라미터 설정으로 메모리 배열
을 설계
메모리 배열 구조 예
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 저잡음, 고속 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한국기술교육대학교 전기전자통신공학부
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
PS 방식 컨피겨레이션v PS 컨피겨레이션 연결도
단일 FPGA
18한국기술교육대학교 전기전자통신공학부
다중 FPGA
컨피겨레이션 파일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한국기술교육대학교 전기전자통신공학부
EAB를 사용한 메모리 설계 - RAM
q쿼터스 툴의 라이브러리 함수 사용
v ROM, RAM, FIFO 등 설계
§ Megawizard manager- memorycompiler-RAM 1port
§ RAM의 주소, 입출력 데이터 크기설정
20한국기술교육대학교 전기전자통신공학부
소자, 생성할 출력의 형태, 파일이름 설정
RAM 설계
§ 주소, 입출력 포트의 레지스터사용 설정
§ 메모리의 초기 정보 파일 설정
21한국기술교육대학교 전기전자통신공학부
.mif (memory initialization file) 혹은 .hex 파일 형태 사용
RAM 설계
§ RAM megafunction에서생성되는 파일 종류
§ 스키매틱 편집기에 생성된 ram1 심볼 호출
22한국기술교육대학교 전기전자통신공학부
ram1.v : Verilog fileram1.bsf : 회로 심볼 파일
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한국기술교육대학교 전기전자통신공학부
EAB를 사용한 메모리 설계 - ROM 설계
§ Megawizard manager- memorycompiler-ROM 1port
§ ROM의 주소, 입출력 데이터크기 설정
24한국기술교육대학교 전기전자통신공학부
소자, 생성할 출력의 형태, 파일이름 설정
ROM 설계
§ 주소, 입출력 포트의 레지스터사용 설정
§ 메모리의 초기 정보 파일 설정
25한국기술교육대학교 전기전자통신공학부
.mif (memory initialization file) 혹은 .hex 파일 형태 사용
ROM 설계
§ ROM megafunction에서 생성되는파일 종류
§ 스키매틱 편집기에 생성된 rom1 심볼 호출
26한국기술교육대학교 전기전자통신공학부
rom1.v : Verilog filerom1.bsf : 회로 심볼 파일
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한국기술교육대학교 전기전자통신공학부
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 와 같은 이름으로 저장
ROM 설계
§ 쿼터스 툴에서 mif 파일 생성
(1) 메뉴(3) 데이터편집
29한국기술교육대학교 전기전자통신공학부
(2) 워드수,크기설정
(4) 저장된 파일보기
설계된 메모리의 동작 검증
§ ram1과 rom1을 스키매틱 생성기에서 호출하여 아래회로와 같이 연결 : ex_mem.bdf로 저장
30한국기술교육대학교 전기전자통신공학부
§ 컴파일 후의 report 파일 : 사용한 메모리 양 확인회로 동작 : rom1에 저장된
내용(rom1_data.mif)을 ram1에쓰게한 후 ram1의 출력(ram_out)으로 읽어내게 한다.
설계된 메모리의 동작 검증
§ 시뮬레이션 파형
ram_we=1 : ram1에 데이터 저장ram의 03번지부터 001 저장
31한국기술교육대학교 전기전자통신공학부
ram_we=0 : ram1의 데이터 읽기ram의 03번지부터 001이 읽혀진다.