한국기술교육대학교...

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

Upload: others

Post on 04-Apr-2020

18 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 한국기술교육대학교 장영조cms3.koreatech.ac.kr/sites/yjjang/down/dsys15/DSD04_fpga...EP4CE30 9,534,304 EP4CE55 14,889,560 EP4CE115 28,571,696 한국기술교육대학교전기전자통신공학부

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

Page 2: 한국기술교육대학교 장영조cms3.koreatech.ac.kr/sites/yjjang/down/dsys15/DSD04_fpga...EP4CE30 9,534,304 EP4CE55 14,889,560 EP4CE115 28,571,696 한국기술교육대학교전기전자통신공학부

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

본 슬라이드의 내용은 http://www.altera.com을 참조하였습니다.

Page 3: 한국기술교육대학교 장영조cms3.koreatech.ac.kr/sites/yjjang/down/dsys15/DSD04_fpga...EP4CE30 9,534,304 EP4CE55 14,889,560 EP4CE115 28,571,696 한국기술교육대학교전기전자통신공학부

1. FPGA 개념2. FPGA 구조3. FPGA 컨피겨레이션4. FPGA 메모리 설계

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

Page 4: 한국기술교육대학교 장영조cms3.koreatech.ac.kr/sites/yjjang/down/dsys15/DSD04_fpga...EP4CE30 9,534,304 EP4CE55 14,889,560 EP4CE115 28,571,696 한국기술교육대학교전기전자통신공학부

Altera Cyclone IV (SRAM type) 컨피겨레이션 scheme Active Serial (AS) – Serial configuration memory 사용 Active Parallel (AP) – Flash memory 지원 Passive Serial (PS) – download cable, 플래시 메모리를 가진 외부host JTAG – download cable, 플래시 메모리를 가진 외부host

Configuration data 크기 압축된 형태로 저장 가능 – 35~55% 크기 절약

Cyclone IV EUncompressed

데이터크기(bits)

EP4CE6 2,944,088

EP4CE30 9,534,304

EP4CE55 14,889,560

EP4CE115 28,571,696

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

Page 5: 한국기술교육대학교 장영조cms3.koreatech.ac.kr/sites/yjjang/down/dsys15/DSD04_fpga...EP4CE30 9,534,304 EP4CE55 14,889,560 EP4CE115 28,571,696 한국기술교육대학교전기전자통신공학부

AS 컨피겨레이션 4 pin interface

- Serial clock input : DCLK- Serial data output : DATA- Active low chip select : nCS- AS dada input : ASDI

단일 FPGA

다중 FPGA

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

Page 6: 한국기술교육대학교 장영조cms3.koreatech.ac.kr/sites/yjjang/down/dsys15/DSD04_fpga...EP4CE30 9,534,304 EP4CE55 14,889,560 EP4CE115 28,571,696 한국기술교육대학교전기전자통신공학부

PS 컨피겨레이션 연결도 PC등의 호스트가 configuration 제어

단일 FPGA

다중 FPGA

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

Page 7: 한국기술교육대학교 장영조cms3.koreatech.ac.kr/sites/yjjang/down/dsys15/DSD04_fpga...EP4CE30 9,534,304 EP4CE55 14,889,560 EP4CE115 28,571,696 한국기술교육대학교전기전자통신공학부

JTAG 컨피겨레이션 연결도 JTAG (Joint Test Action Group)- 1985, PCB의 design 검증과 testing에

대한 방법 개발- 4 pin interface : TDI, TDO, TMS, TCK

USB Blaster cable 사용 - .sof 파일 사용

단일 FPGA

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

Page 8: 한국기술교육대학교 장영조cms3.koreatech.ac.kr/sites/yjjang/down/dsys15/DSD04_fpga...EP4CE30 9,534,304 EP4CE55 14,889,560 EP4CE115 28,571,696 한국기술교육대학교전기전자통신공학부

SRAM object file (.sof) : USBBlaster/ByteBlaster를 사용하는 PS 및JTAG 컨피겨레이션

Programming Object File (.pof) : EPC 소자에 다운로드 Serial Bitstream File (.sbf) : BitBlaster를 사용하는 PS 컨피겨레이션 Hexadecimal (Intel format) File (.hex) :

third party ROM 프로그래머, PPS, PPA 모드, parallel EPROM 쿼터스 툴에서 기본적으로 프로젝트

의 ../output_files/project_name.sof 파일 생성

Download cable : ByteBlasterMV, ByteBlaster, USBBlaster PC에 10핀으로 연결되어 FPGA를 PS 방식으로 프로그래밍

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

Page 9: 한국기술교육대학교 장영조cms3.koreatech.ac.kr/sites/yjjang/down/dsys15/DSD04_fpga...EP4CE30 9,534,304 EP4CE55 14,889,560 EP4CE115 28,571,696 한국기술교육대학교전기전자통신공학부

RAM 임베디드 메모리 블록, M9K를 사용한 메모리 설계 쿼터스 툴의 라이브러리 함수 사용 ROM, RAM, FIFO 등 설계

Megawizard manager- memorycompiler-RAM 1port

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

메가 함수, 출력형태, 파일이름 설정

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

Page 10: 한국기술교육대학교 장영조cms3.koreatech.ac.kr/sites/yjjang/down/dsys15/DSD04_fpga...EP4CE30 9,534,304 EP4CE55 14,889,560 EP4CE115 28,571,696 한국기술교육대학교전기전자통신공학부

출력 레지스터 사용 설정 Write 동작 중 Reading발생시 값

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

Page 11: 한국기술교육대학교 장영조cms3.koreatech.ac.kr/sites/yjjang/down/dsys15/DSD04_fpga...EP4CE30 9,534,304 EP4CE55 14,889,560 EP4CE115 28,571,696 한국기술교육대학교전기전자통신공학부

EDA 툴과의 인터페이스 메모리의 초기 정보 파일 설정

- 파일 사용시는.mif (memory initialization file)

혹은 .hex 파일 형태 사용

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

Page 12: 한국기술교육대학교 장영조cms3.koreatech.ac.kr/sites/yjjang/down/dsys15/DSD04_fpga...EP4CE30 9,534,304 EP4CE55 14,889,560 EP4CE115 28,571,696 한국기술교육대학교전기전자통신공학부

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

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

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

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

Page 13: 한국기술교육대학교 장영조cms3.koreatech.ac.kr/sites/yjjang/down/dsys15/DSD04_fpga...EP4CE30 9,534,304 EP4CE55 14,889,560 EP4CE115 28,571,696 한국기술교육대학교전기전자통신공학부

module ram1 ( address, clock, data, wren,q);input [7:0] address;input clock;input [9:0] data;input wren;output [9:0] q;wire [9:0] sub_wire0;wire [9:0] q = sub_wire0[9:0];altsyncram altsyncram_component (

.address_a (address), .clock0 (clock), .data_a (data),

.wren_a (wren), .q_a (sub_wire0), .aclr0 (1'b0),

.aclr1 (1'b0), .address_b (1'b1) , .addressstall_a (1'b0),

.addressstall_b (1'b0), .byteena_a (1'b1), .byteena_b (1'b1),

.clock1 (1'b1), .clocken0 (1'b1), .clocken1 (1'b1),

.clocken2 (1'b1), .clocken3 (1'b1), .data_b (1'b1),

.eccstatus (), .q_b (), .rden_a (1'b1), .rden_b (1'b1), .wren_b (1'b0));defparam

altsyncram_component.clock_enable_input_a = "BYPASS",altsyncram_component.clock_enable_output_a = "BYPASS",altsyncram_component.intended_device_family = "Cyclone IV E",altsyncram_component.lpm_hint = "ENABLE_RUNTIME_MOD=NO",altsyncram_component.lpm_type = "altsyncram",altsyncram_component.numwords_a = 256,altsyncram_component.operation_mode = "SINGLE_PORT",altsyncram_component.outdata_aclr_a = "NONE",altsyncram_component.outdata_reg_a = "UNREGISTERED",altsyncram_component.power_up_uninitialized = "TRUE",altsyncram_component.read_during_write_mode_port_a = "NEW_DATA_NO_NBE_READ",altsyncram_component.widthad_a = 8,altsyncram_component.width_a = 10,altsyncram_component.width_byteena_a = 1;

endmodule

생성된 Verilog 파일 ram1.v 설계에서 프로젝트에 포함하여 사용

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

Page 14: 한국기술교육대학교 장영조cms3.koreatech.ac.kr/sites/yjjang/down/dsys15/DSD04_fpga...EP4CE30 9,534,304 EP4CE55 14,889,560 EP4CE115 28,571,696 한국기술교육대학교전기전자통신공학부

Megawizard manager- memorycompiler-ROM 1port

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

메가함수, 생성 출력 형태, 파일이름 설정

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

Page 15: 한국기술교육대학교 장영조cms3.koreatech.ac.kr/sites/yjjang/down/dsys15/DSD04_fpga...EP4CE30 9,534,304 EP4CE55 14,889,560 EP4CE115 28,571,696 한국기술교육대학교전기전자통신공학부

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

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

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

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

.메모리의 안정된 동작을 위해서는 주소에 레지스터를 사용하도록 설정되어있다. 출력 레지스터는 선택적

Page 16: 한국기술교육대학교 장영조cms3.koreatech.ac.kr/sites/yjjang/down/dsys15/DSD04_fpga...EP4CE30 9,534,304 EP4CE55 14,889,560 EP4CE115 28,571,696 한국기술교육대학교전기전자통신공학부

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

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

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

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

Page 17: 한국기술교육대학교 장영조cms3.koreatech.ac.kr/sites/yjjang/down/dsys15/DSD04_fpga...EP4CE30 9,534,304 EP4CE55 14,889,560 EP4CE115 28,571,696 한국기술교육대학교전기전자통신공학부

module rom1 ( address, clock, q);input [6:0] address;input clock;output [9:0] q;wire [9:0] sub_wire0;wire [9:0] q = sub_wire0[9:0];altsyncram altsyncram_component (

.address_a (address), .clock0 (clock), .q_a (sub_wire0),

.aclr0 (1'b0),.aclr1 (1'b0),.address_b (1'b1),

.addressstall_a (1'b0),.addressstall_b (1'b0),.byteena_a (1'b1),

.byteena_b (1'b1),.clock1 (1'b1),.clocken0 (1'b1),

.clocken1 (1'b1), clocken2 (1'b1),.clocken3 (1'b1),

.data_a ({10{1'b1}}),.data_b (1'b1),.eccstatus (),

.q_b (),.rden_a (1'b1),.rden_b (1'b1),.wren_a (1'b0), .wren_b (1'b0));defparam

altsyncram_component.address_aclr_a = "NONE",altsyncram_component.clock_enable_input_a = "BYPASS",altsyncram_component.clock_enable_output_a = "BYPASS",altsyncram_component.init_file = "rom1_data.mif",altsyncram_component.intended_device_family = "Cyclone IV E",altsyncram_component.lpm_hint = "ENABLE_RUNTIME_MOD=NO",altsyncram_component.lpm_type = "altsyncram",altsyncram_component.numwords_a = 128,altsyncram_component.operation_mode = "ROM",altsyncram_component.outdata_aclr_a = "NONE",altsyncram_component.outdata_reg_a = "CLOCK0",altsyncram_component.widthad_a = 7,altsyncram_component.width_a = 10,altsyncram_component.width_byteena_a = 1;

endmodule

생성된 rom1.v Verilog 파일 설계에서 사용

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

Page 18: 한국기술교육대학교 장영조cms3.koreatech.ac.kr/sites/yjjang/down/dsys15/DSD04_fpga...EP4CE30 9,534,304 EP4CE55 14,889,560 EP4CE115 28,571,696 한국기술교육대학교전기전자통신공학부

depth = 128;

width = 10;

address_radix = dec;

data_radix = hex;

content

begin

0: 222;

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..126]:3F0;

127:3FA;

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 와 같은 이름으로 저장

• mif 파일은 쿼터스에서 컴파일 후 파일 열기로 읽어와서 재 편집 가능

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

Page 19: 한국기술교육대학교 장영조cms3.koreatech.ac.kr/sites/yjjang/down/dsys15/DSD04_fpga...EP4CE30 9,534,304 EP4CE55 14,889,560 EP4CE115 28,571,696 한국기술교육대학교전기전자통신공학부

쿼터스 툴에서 mif 파일 생성

(1) 메뉴 (2) 워드수,크기설정 (3) 데이터편집

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

Page 20: 한국기술교육대학교 장영조cms3.koreatech.ac.kr/sites/yjjang/down/dsys15/DSD04_fpga...EP4CE30 9,534,304 EP4CE55 14,889,560 EP4CE115 28,571,696 한국기술교육대학교전기전자통신공학부

쿼터스 툴에서 mif 파일 생성

(4) 저장된 파일 열기및 재편집 가능

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

Page 21: 한국기술교육대학교 장영조cms3.koreatech.ac.kr/sites/yjjang/down/dsys15/DSD04_fpga...EP4CE30 9,534,304 EP4CE55 14,889,560 EP4CE115 28,571,696 한국기술교육대학교전기전자통신공학부

ram1과 rom1을 스키매틱 생성기에서 호출하여다음 회로 완성 : mem.bdf로 저장

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

카운터 cntN은 메모리의 주소 생성. Verilog 파일로 저장한뒤 File > “Create Symbol Files for Current File”로 심볼파일 생성한 후 스키매틱 편집기에 추가

회로 동작 : rom1에 저장된 내용(rom1_data.mif)을 ram1에 쓰게한 후ram1의 출력 (ram_out)으로 읽어내게 한다. 카운터는 메모리의 주소 생성

Page 22: 한국기술교육대학교 장영조cms3.koreatech.ac.kr/sites/yjjang/down/dsys15/DSD04_fpga...EP4CE30 9,534,304 EP4CE55 14,889,560 EP4CE115 28,571,696 한국기술교육대학교전기전자통신공학부

mem.bdf를 컴파일하고 report 파일 : 사용한 메모리 양 확인

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

테스트벤치 작성과 시뮬레이션

rom1에 저장된 내용을 두번사용하여 RAM에 저장한 후RAM 내용을 읽게한다.

Page 23: 한국기술교육대학교 장영조cms3.koreatech.ac.kr/sites/yjjang/down/dsys15/DSD04_fpga...EP4CE30 9,534,304 EP4CE55 14,889,560 EP4CE115 28,571,696 한국기술교육대학교전기전자통신공학부

시뮬레이션 파형

ram_we=1 : ram1에 데이터 저장ram의 01,02번지에는 222 저장, 03은 001저장

ram_we=0 : ram1의 데이터 읽기ram의 01,02번지에 222가03 번지에는 001이 읽혀진다.

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