ALTERA DE2 보드를 이용한 CPLD의 설계 신재생 에너지 변환 연구실 박 용 진
Contents I 구성물품 Quartus II 프로그램 (ver. 11.1) DE2 보드 보드 구성 사용법 (PC와 연결) 설치과정 Quartus II를 이용한 설계 절차 2017-03-01 DE2보드 사용법
Contents II VHDL을 이용한 7-Segment 전체 실행과정 용어정리 참고문헌 VHDL이란? Quartus II 프로그램 VHDL 예제 코드 이용 전체 실행과정 실행과정 (1. Quartus II 프로그램 설정방법) 실행과정 (2. VHDL 코드 작성 및 해석) 실행과정 (3. Compilation) 실행과정 (4. Pin planner) 실행과정 (5. Programmer) 실행과정 (6. DE2보드로 결과 실행) 용어정리 참고문헌 2017-03-01 DE2보드 사용법
DE2 보드 I DE2 보드 구성물품 DE2 BOARD USB CABLE CD (DE2 Supporting) 9V DC power supply 2017-03-01 DE2보드 사용법 4
DE2 보드 II DE2 보드 구성 2017-03-01 DE2보드 사용법
DE2 보드 III DE2 보드 구성 FPGA I/O Devices Cyclone2 EP2C35F672C6 Built-in USB Blaster for FPGA configuration 10/100 Ethernet, RS-232, Infrared port Video Out (VGA 10-bit DAC) Video In (NTSC/PAL/Multi-format) USB 2.0(type A and type B) PS/2 mouse or keyboard port Line-in, Line-out, microphone-in (24-bit audio CODEC) Expansion headers(76 signal pins) 2017-03-01 DE2보드 사용법
DE2 보드 IV Memory DE2 보드 구성 Switches, LEDs, Displays, and Clocks 8MB SDRAM, 512KB SRAM, 4MB Flash SD memory card slot Switches, LEDs, Displays, and Clocks 18 toggle switches 4 debounced pushbutton swiches 18 red LEDs, 9 green LEDs Eight 7-segment displays 16 x 2 LCD display 27MHz and 50MHz oscillators 2017-03-01 DE2보드 사용법
DE2 보드 V DE2 보드 구성 Cyclone II 2C35 FPGA 483,840 total RAM bits 475 user I/O pins USB Blaster 회로 Altera’s EPCS16 IC칩 이용 SRAM 512-Kbyte RAM 메모리 칩 256K x 16bits 로 구성 DE2 보드 구성 DE2보드 연결도 2017-03-01 DE2보드 사용법
DE2 보드 VI DE2 보드 구성 4개의 pushbutton 스위치 (KEY0~KEY3) 스위치와 LED 구성 18개의 toggle 스위치 (SW0~SW17) 18개의 빨강색 LED (LEDR0~LEDR17) 8개의 녹색 LED (LEDG0~LEDG7) 스위치 on일 때 High 값을 off일 때 Low 값을 발생 LED는 입력이 0일 때 on, 1일 때 off DE2 보드 구성 2017-03-01 DE2보드 사용법
DE2 보드 VII PC와 연결 전원 케이블과 USB 케이블을 PC와 연결. USB케이블은 ‘USB Blast port’에 연결 ‘RUN/PROG Switch for JTAG/AS Modes’는 RUN으로 설정 ‘Power ON/OFF Switch’를 켠다. 2017-03-01 DE2보드 사용법
Quartus II 프로그램(ver.11.1) I Download - WWW.ALTERA.COM 2017-03-01 DE2보드 사용법
Quartus II 프로그램(ver.11.1) II Download and install Create Account 2017-03-01 DE2보드 사용법
Quartus II 프로그램(ver.11.1) III 설계절차 Design Entry (Block Editor or Text Editor) Create project and assign target device (New Project Wizard) Compilation and Fitting Corrections Simulation (Vector Waveform File) Pin Assignments Compilation and Fitting Download the .sof file to the CPLD (Programming) 2017-03-01 DE2보드 사용법
VHDL을 이용한 7-Segment 구동 I VHDL이란? VHSIC Hardware Description Language VHSIC : 매우빠른 직접회로 (Very High Speed Integrated Circuit) 디지털 하드웨어의 모델링과 합성을 위해 사용되는 컴퓨터 언어 하드웨어 구조와 동작을 기술하기 위해 사용 즉, 하드웨어가 어떻게 동작하여야 하는지(모델링) 또 어떻게 만들어져야 하는지(합성)를 결정. 2017-03-01 DE2보드 사용법
VHDL을 이용한 7-Segment 구동 II Entity 선언, Architecture 본체 Entity 선언 : 설계의 입력과 출력을 정의 Architecture 본체 : 입력과 출력의 관계 기술 2017-03-01 DE2보드 사용법
VHDL을 이용한 7-Segment 구동 III Entity name = VHDL File name Entity 선언 : 입력과 출력을 정의하는 VHDL 설계의 부분 Entity 선언 내부에는 Port문이 있고 포트 이름을 나열하고 각가에 대하여 모드(mode)와 자료형(type)을 지정. 모드는 포트를 통하여 이동하는 데이터 방향, 자료형은 포트가 가질수 있는 값의 범위를 지정. ‘y : OUT BIT’는 포트 y의 모드는 OUT, 자료형은 BIT로 지정한 것을 의미함. Y=AB+BC+AC ENTITY majority_vote IS PORT( a, b, c : IN BIT; y : OUT BIT); END majority_vote; ARCHITECTURE maj_vote OF majority_vote IS BEGIN y <= (a and b) or (b and c) or (a and c); END maj_vote; : Entity name Port definitions Entity declaration Architecture body : Architecture name 2017-03-01 DE2보드 사용법
VHDL을 이용한 7-Segment 구동 IV Architecture 본체 : 입력과 출력의 관계를 기술하는 VHDL 설계의 부분 ‘ARCHITECTURE architecture_이름 of entity_이름 IS’ 형식. 앞에서 정의한 entity의 architecture라는 의미 ‘BEGIN’과‘END architecture_이름’ 사이에 위치함. ‘<’=‘get’ : 오른쪽의 신호를 왼쪽의 신호에 연결하라는 의미. Y=AB+BC+AC ENTITY majority_vote IS PORT( a, b, c : IN BIT; y : OUT BIT); END majority_vote; ARCHITECTURE maj_vote OF majority_vote IS BEGIN y <= (a and b) or (b and c) or (a and c); END maj_vote; : Entity name Port definitions Entity declaration Architecture body : Architecture name 2017-03-01 DE2보드 사용법
VHDL을 이용한 7-Segment 구동 V 7-Segment 개별적으로 제어되는 7개의 LED 어레이나 LCD element로 8자 형태의 모양을 갖고 10진수나 element들을 제어함으로 숫자 및 문자를 표시하는데 사용. 이진회로 출력을 십진수로 나타내기 위해 사용되는 표시소자. 7개의 발광 세그먼트가 8자형태로 구성. 0~6까지 표시된 element를 턴온 시킴으로써 십진수를 표시. 2017-03-01 DE2보드 사용법
VHDL을 이용한 7-Segment 구동 VI 7-Segment Display LED는 다이오드 이기 때문에 음극에 대해서 양극이 양전압이면 켜짐. 공통 양극(Common anode), 공통 음극(Common cathode)으로 배열 공통 음극 : 모든 LED의 음극은 함께 회로의 접지에 연결되어 양극에 논리High를 인가함으로써 점등시킬 수 있음. 공통 양극 : 모든 LED의 양극이 함께 회로의 전원부에 연결되어 각각의 음극들을 Low로 가져갈 때 점등됨. DE2 보드는 공통양극 연결 형태임. 2017-03-01 DE2보드 사용법
VHDL을 이용한 7-Segment 구동 VII BCD 이진 코드화 십진수 (Binary Coded Decimal) : 십진수의 각 숫자를 4비트 이진수로 표현하는 코드 ( ex. 905(십진수) = 1001 0000 0101(BCD)) BCD-to-7 세그먼트 디코더 : 4비트 크기의 BCD 숫자 입력과 세그먼트 선택을 위한 7개의 출력을 갖는 회로 공통양극 BCD-to 7 세그먼트 디코더에 대한 진리표를 통해 모든 숫자를 활성화 할 수 있음. 각 세그먼트의 점등은 입력변수 D3D2D1D0에 의해 결정 2017-03-01 DE2보드 사용법
VHDL을 이용한 7-Segment 구동 VIII 공통양극 BCD-to-7 세그먼트 디코더에 대한 진리표 Digit D3 D2 D1 D0 0 1 2 3 4 5 6 1 2 3 4 5 6 7 8 9 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 1 1 1 0 0 1 0 0 1 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 2017-03-01 DE2보드 사용법
VHDL을 이용한 7-Segment 구동 IX Quartus II 프로그램 VHDL 예제 코드 이용 전체 실행과정 Quartus II 프로그램 설정 (Cyclone II, EP2C35F672C6) VHDL 코드 작성 Compilation (‘Start Compilation’ 실행) Pin Assignment (‘Pin planner’ 실행) DE2보드 연결 (‘USB Blaster’) ‘Programmer’ 실행, ‘Start’ 클릭 DE2보드 실행 스위치 실행에 따른 LED변화 확인 2017-03-01 DE2보드 사용법
VHDL을 이용한 7-Segment 구동 X 1. Quartus II 프로그램 설정 ( New Project 파일 만들기 ) Project 저장 위치는 ‘C:/altera/11.1/’에 새폴더 생성 후 저장 Project 이름과 ‘top-level Module’이름은 동일하게 설정. (실습에서는 ‘ex1’으로 이름 설정) ‘Create a New Project’ 클릭 ‘Introduction’ 창이 나오면 ‘Next>’ 클릭 ‘Next>’ 클릭 ‘Add File’ 창이 나오면 ‘Next>’ 클릭 2017-03-01 DE2보드 사용법
VHDL을 이용한 7-Segment 구동 XI 1. Quartus II 프로그램 설정 ( New Project 파일 만들기 ) ① ② ③ Family 항목에 ‘Cyclone II’ 설정 Available device에 사용할 EP2C35F672C6’ 클릭 ‘Next>’ 클릭 후 ‘EDA Tool Setting’ 창이 나오면 ‘Next>’ 클릭 ‘Project directory’와 ‘Device assignments’ 정보 확인 ‘Project name’과 ‘Top level design entity’가 동일한지 확인 ‘Finish’클릭 2017-03-01 DE2보드 사용법
VHDL을 이용한 7-Segment 구동 XIII 1. Quartus II 프로그램 설정 ( New Project 파일 만들기 ) ① ② ③ 도구모움에서 ‘New’ 클릭 ‘New’ 창에서 ‘Design Fille’의 ‘VHDL File’ 클릭 후 ‘OK’ 클릭 VHDL 코드 작성을 위한 New Project File 완성 좌측 ‘Entity’ 항목의 Device 이름과 Project name 확인 2017-03-01 DE2보드 사용법
VHDL을 이용한 7-Segment 구동 XIV 1 : ‘library’와 ‘std_logic_1164’ 정의 2 : ‘entity’ 구문, 이름을 ‘ex1’으로 설정 * VHDL 파일이름과 동일하게 entity 이름 설정 SW0~SW3까지 입력을 ‘X’로 지정 7세그먼트 (LED0~6) 출력을 ‘segs’로 지정 3 : ‘architecture’구문, 이름을 ‘behavioral’로 설정 입력 ‘X’의 변화에 따라 출력값이 달라지도록 ‘process’, ‘begin’, ‘case’구문 설정 3.1 : 입력 ‘X’의 변화에 따른 출력 LED 변화 설정 * when “0001” => segs <= “1111001” → SW0을 ON 했을 때 LED1, LED2은 ON, 나머지는 OFF 1 2 3 3.1 7 세그먼트 실행을 위한 VHDL 코드 2017-03-01 DE2보드 사용법
VHDL을 이용한 7-Segment 구동 XV 3. Compilation 클릭 클릭 Compilation 과정 완료 2017-03-01 DE2보드 사용법
VHDL을 이용한 7-Segment 구동 XVI 4. Pin Assignment 클릭 Node name에 해당하는 핀 위치 설정 스위치, LED 에 해당하는 PIN 위치 2017-03-01 DE2보드 사용법
VHDL을 이용한 7-Segment 구동 XVII 4. Pin Assignment Pin Assignment 설정 후 compilation을 다시 실행. 2017-03-01 DE2보드 사용법
VHDL을 이용한 7-Segment 구동 XVIII 5. DE2보드 연결 ‘RUN’ 설정 ‘Altara-USB-Blaster’확인 DE2보드 연결 2017-03-01 DE2보드 사용법
VHDL을 이용한 7-Segment 구동 XIX 6. Programmer ‘USB-Blaster [USB-0]확인이 안될 경우. 클릭 클릭 ‘USB-Blaster [USB-0]확인 클릭 선택 2017-03-01 DE2보드 사용법
VHDL을 이용한 7-Segment 구동 XX 6. Programmer Progress 100%확인 Programmer 실행 후 DE2보드 2017-03-01 DE2보드 사용법
VHDL을 이용한 7-Segment 구동 XXI 7. DE2보드 실행 ‘HEX0’에 ‘5’ 표현 ‘HEX0’에 ‘7’ 표현 ‘HEX0’에 ‘5’ 확인 ‘HEX0’에 ‘7’ 확인 ‘SW0’, ‘SW2’ ON 확인 ‘SW0’, ‘SW1’, ‘SW2’ ON 확인 2017-03-01 DE2보드 사용법
용어설명 I PLD(Programmable Logic Device) : 프로그램 가능한 논리 소자로 디지털 논리 함수를구현하기 위하여 사용자가 프로그램 할 수 있는 디지털 직접회로를 의미 CPLD : Complex PLD, 상호연결된 여러 개의 프로그램 가능한 섹션으로 구성된 PLD Design Entry : 소프트웨어를 사용하여 PLD의 설계 요구사항을 입력하는 과정. 설계 입력은 요구되는 디지털 함수를 서술하는 그림 또는 텍스트 파일을 입력함으로써 수행된다. Compile : CPLD 설계 소프트 웨어를 사용하여 설계정보(회로도, 텍스트)를 해석하여 CPLD프로그래밍 정보를 만드는 과정 2017-03-01 DE2보드 사용법
용어설명 II 피팅(Fitting) : 설계에 대하여 PLD 내부 회로를 할당하고 입력과 출력 핀을 할당 하드웨어 기술언어(Hardware Description Language, HDL) : 디지털 하드웨어를 설계하는데 사용되는 컴퓨터 언어 VHDL(VHSIC Hardware Description Language) : 디지털 하드웨의 모델링과 합성을 위해 사용되는 컴퓨터 언어 VHSIC(Very High Speed Integrated Circuit) : 매우빠른 직접회로 Entity선언 : 입력과 출력을 정의하는 VHD 설계의 부분 Architecture 본체 : 입력과 출력의 관계를 기술하는 VHDL 설계의 부분 Vector Waveform File : 그래픽 파형으로 표시된 입력과 출력을 포함하는 Quartus II simulator에 대한 입력파일 2017-03-01 DE2보드 사용법
용어설명 III 7-세그먼트 디스플레이 : 개별적으로 제어되는 7개의 LED 어레이나 LCD element로 8자 형태의 모양을 갖고 10진수나 element들을 적절히 제어함으로 몇 몇 문자를 표시하는데 사용. Common anode display (공통 양극 디스플레이) : LED의 모든 양극이 회로의 전원부에 연결되는 7-세그먼트 LED 표시소자. 각 세그먼트는 그것의 음극에 논리 Low를 인가함으로써 발광한다. Common cathode display (공통 음극 디스플레이) : LED의 모든 음극이 공통으로 접지에 연결되는 7-세그먼트 LED 표시소자. 각 세그먼트는 그것의 양극에 논리 High를 인가함으로써 발광한다. BCD 이진 코드화 십진수(Binary Coded Decimal) : 십진수의 각 숫자를 4비트 이진수로 표현하는 코드 ( ex) 905(십진수) = 1001 0000 0101 (BCD)) 2017-03-01 DE2보드 사용법
참고문헌 ‘DE2 보드를 이용한 하드웨어 설계’ 이현수 저, 도서출판 홍릉과학출판사 ‘VHDL과 CPLD를 응용한 디지털 디자인’ 김인동, 이상훈, 최우진 공역, 도처출판 인터비젼 DE2 보드 User manual 2017-03-01 DE2보드 사용법