1 of 177

Quartus II Quick Start for beginners

Soochan Kim

한경대학교 김수찬

2 of 177

목차

  1. FPGA가 왜 필요한가?
  2. PLD 설계 흐름
  3. DE2 보드
  4. Quartus II 사용법
    1. 프로젝트 만들기
    2. 컴파일
    3. 시뮬레이션
    4. 핀지정

3 of 177

4 of 177

5 of 177

6 of 177

7 of 177

8 of 177

9 of 177

10 of 177

11 of 177

12 of 177

PLD & FPGA 이해

13 of 177

14 of 177

15 of 177

PLD 설계 흐름

한경대학교 김수찬

16 of 177

Typical CPLD CAD flow

한경대학교 김수찬

17 of 177

Typical CPLD CAD flow

한경대학교 김수찬

18 of 177

Quartus web edition 설치

  • 프로그램 다운로드
    • download center
    • 9.1 : windows 10에서 시뮬레이션에 문제
    • 13.0: DE2 board를 지원하는 최상위 버젼

19 of 177

구분 요소

Quartus II 13.0 (2013년 출시)

Quartus Prime 18.1 (2018년 출시)

브랜드명

Altera Quartus II

Intel Quartus Prime

OS 호환성

Windows 7 / XP, 공식 Linux 구버전

Windows 10, 최신 Linux 배포판 공식 지원

시뮬레이션 툴

ModelSim-Altera Edition

ModelSim-Intel FPGA Edition

Qsys / Platform Designer

Qsys 시스템 통합 툴 사용

개선된 Platform Designer (구 Qsys) 탑재

합성/배치배선 엔진

구형 알고리즘 기반

대용량 데이터 처리를 위한 알고리즘 최적화

Cyclone V 지원 에디션

Web / Subscription 전개

Lite / Standard 전개 (Pro 제외)

20 of 177

21 of 177

1. Define the problem

  • 전조등이 켜져 있으면서 운전석 문이 열렸거나, 또는 열쇠가 꽂힌 채로 문이 열려 있다면, 부저는 동작한다.

한경대학교 김수찬

22 of 177

2. Develop the equation

  • 전조등(H)이 켜져 있으면서 운전석 문(D)이 열렸거나, 또는 열쇠(K)가 꽂힌 채로 문이 열려 있다면, 부저(B)는 동작한다.

한경대학교 김수찬

23 of 177

3. Enter the design into the PC by drawing a schematic�

한경대학교 김수찬

24 of 177

프로젝트 파일 만들기

한경대학교 김수찬

25 of 177

한경대학교 김수찬

26 of 177

Page[1/5] - Directory, Name, Top Level Entity

한경대학교 김수찬

27 of 177

Page[2/5] – Add Files

한경대학교 김수찬

28 of 177

Page[3/5] – Family & Device settings

한경대학교 김수찬

DE2

EP2C35F672C6N

29 of 177

Page[4/5] – EDA Tool Settings

한경대학교 김수찬

30 of 177

한경대학교 김수찬

31 of 177

Page[5/5] - Summary

한경대학교 김수찬

32 of 177

4a. Draw a schematic

한경대학교 김수찬

33 of 177

Create a new schematic

한경대학교 김수찬

34 of 177

Select symbol

한경대학교 김수찬

35 of 177

Enter the symbol

  • And2
  • Or2
  • Input
  • Output

한경대학교 김수찬

36 of 177

Draw wires

한경대학교 김수찬

37 of 177

Assign input/output

한경대학교 김수찬

38 of 177

Assign input/output

한경대학교 김수찬

39 of 177

Save a schematic

한경대학교 김수찬

40 of 177

한경대학교 김수찬

41 of 177

4b. Design a circuit using VHDL code

한경대학교 김수찬

42 of 177

한경대학교 김수찬

43 of 177

Write VHDL Code

한경대학교 김수찬

44 of 177

4c. Design a circuit using Verilog code

한경대학교 김수찬

45 of 177

Write Verilog Code

46 of 177

5. Synthesizing a circuit

한경대학교 김수찬

47 of 177

Start Compilation

한경대학교 김수찬

48 of 177

Start Compilation

한경대학교 김수찬

49 of 177

Start Compilation

한경대학교 김수찬

50 of 177

Start Compilation

한경대학교 김수찬

51 of 177

6. Simulating the designed circuit

한경대학교 김수찬

52 of 177

Create Vector Waveform file

한경대학교 김수찬

53 of 177

Save

한경대학교 김수찬

54 of 177

Save

한경대학교 김수찬

55 of 177

Save

앞 슬라이드에서 add file to current project를 체크하지 않으면 추후 시뮬레이션할 때 파일이 벗다고 나옵니다. 추가 방법은 다음과 같습니다.

오른쪽 그림의 ...을 클릭하여 추가하면 됩니다.

Project >> Add/remove Files in Project...

한경대학교 김수찬

56 of 177

Insert Node or Bus

한경대학교 김수찬

57 of 177

Insert Node or Bus

한경대학교 김수찬

58 of 177

Insert Node or Bus

한경대학교 김수찬

59 of 177

Insert Node or Bus

한경대학교 김수찬

60 of 177

Insert Node or Bus

한경대학교 김수찬

61 of 177

Insert Node or Bus

한경대학교 김수찬

62 of 177

Set End time

한경대학교 김수찬

63 of 177

Set End time

한경대학교 김수찬

64 of 177

Update window size

한경대학교 김수찬

65 of 177

Generate input signals

한경대학교 김수찬

66 of 177

Generate input signals (clock)

한경대학교 김수찬

67 of 177

Generate input signals (clock)

한경대학교 김수찬

68 of 177

Generate functional simulation netlist

한경대학교 김수찬

69 of 177

Generate input signals (clock)

한경대학교 김수찬

70 of 177

Start Simulation

한경대학교 김수찬

71 of 177

Check the results

한경대학교 김수찬

72 of 177

Check the results (time delay)

한경대학교 김수찬

73 of 177

Change simulation setting

한경대학교 김수찬

74 of 177

Timing<->Functional

한경대학교 김수찬

75 of 177

Timing<->Functional

한경대학교 김수찬

76 of 177

Check the results (non delay)

한경대학교 김수찬

77 of 177

7. Assigning the circuit inputs and outputs to specific pins on the PLD

DE2 board(파일)가 필요

한경대학교 김수찬

78 of 177

79 of 177

Packing Outline

한경대학교 김수찬

80 of 177

Toggle switches

To

Location

SW[0]

PIN_N25

SW[1]

PIN_N26

SW[2]

PIN_P25

SW[3]

PIN_AE14

SW[4]

PIN_AF14

SW[5]

PIN_AD13

SW[6]

PIN_AC13

SW[7]

PIN_C13

SW[8]

PIN_B13

SW[9]

PIN_A13

SW[10]

PIN_N1

SW[11]

PIN_P1

SW[12]

PIN_P2

SW[13]

PIN_T7

SW[14]

PIN_U3

SW[15]

PIN_U4

SW[16]

PIN_V1

SW[17]

PIN_V2

From DE2 Pin information(pdf, csv, QSF)

81 of 177

Debounced pushbuttons

KEY[0]

PIN_G26

KEY[1]

PIN_N23

KEY[2]

PIN_P23

KEY[3]

PIN_W26

Normally high

82 of 177

Pushbutton and Toggle switches

83 of 177

84 of 177

LEDR[0..17]

LEDR[0]

PIN_AE23

LEDR[1]

PIN_AF23

LEDR[2]

PIN_AB21

LEDR[3]

PIN_AC22

LEDR[4]

PIN_AD22

LEDR[5]

PIN_AD23

LEDR[6]

PIN_AD21

LEDR[7]

PIN_AC21

LEDR[8]

PIN_AA14

LEDR[9]

PIN_Y13

LEDR[10]

PIN_AA13

LEDR[11]

PIN_AC14

LEDR[12]

PIN_AD15

LEDR[13]

PIN_AE15

LEDR[14]

PIN_AF13

LEDR[15]

PIN_AE13

LEDR[16]

PIN_AE12

LEDR[17]

PIN_AD12

85 of 177

LEDG[0..7]

LEDG[0]

PIN_AE22

LEDG[1]

PIN_AF22

LEDG[2]

PIN_W19

LEDG[3]

PIN_V18

LEDG[4]

PIN_U18

LEDG[5]

PIN_U17

LEDG[6]

PIN_AA20

LEDG[7]

PIN_Y18

LEDG[8]

PIN_Y12

86 of 177

7 segments

87 of 177

7 segments

HEX0[0]

PIN_AF10

HEX0[1]

PIN_AB12

HEX0[2]

PIN_AC12

HEX0[3]

PIN_AD11

HEX0[4]

PIN_AE11

HEX0[5]

PIN_V14

HEX0[6]

PIN_V13

HEX1[0]

PIN_V20

HEX1[1]

PIN_V21

HEX1[2]

PIN_W21

HEX1[3]

PIN_Y22

HEX1[4]

PIN_AA24

HEX1[5]

PIN_AA23

HEX1[6]

PIN_AB24

HEX2[0]

PIN_AB23

HEX2[1]

PIN_V22

HEX2[2]

PIN_AC25

HEX2[3]

PIN_AC26

HEX2[4]

PIN_AB26

HEX2[5]

PIN_AB25

HEX2[6]

PIN_Y24

HEX3[0]

PIN_Y23

HEX3[1]

PIN_AA25

HEX3[2]

PIN_AA26

HEX3[3]

PIN_Y26

HEX3[4]

PIN_Y25

HEX3[5]

PIN_U22

HEX3[6]

PIN_W24

HEX4[0]

PIN_U9

HEX4[1]

PIN_U1

HEX4[2]

PIN_U2

HEX4[3]

PIN_T4

HEX4[4]

PIN_R7

HEX4[5]

PIN_R6

HEX4[6]

PIN_T3

HEX5[0]

PIN_T2

HEX5[1]

PIN_P6

HEX5[2]

PIN_P7

HEX5[3]

PIN_T9

HEX5[4]

PIN_R5

HEX5[5]

PIN_R4

HEX5[6]

PIN_R3

HEX6[0]

PIN_R2

HEX6[1]

PIN_P4

HEX6[2]

PIN_P3

HEX6[3]

PIN_M2

HEX6[4]

PIN_M3

HEX6[5]

PIN_M5

HEX6[6]

PIN_M4

HEX7[0]

PIN_L3

HEX7[1]

PIN_L2

HEX7[2]

PIN_L9

HEX7[3]

PIN_L6

HEX7[4]

PIN_L7

HEX7[5]

PIN_P9

HEX7[6]

PIN_N9

88 of 177

Clock

CLOCK_27

PIN_D13

CLOCK_50

PIN_N2

89 of 177

Assign the pins

한경대학교 김수찬

90 of 177

Assign the pins

한경대학교 김수찬

91 of 177

Assign the pins

한경대학교 김수찬

92 of 177

Assign the pins

한경대학교 김수찬

93 of 177

Pin Assignment

여러 가지가 있으니 이중 적합한 것으로 사용하세요.

  1. 직접 지정
  2. 엑셀이용 (copy & Paste)
  3. Import 기능

  • Pin 지정 후 반드시 컴파일을 다시 해야 한다.

94 of 177

Pin Assignment

한경대학교 김수찬

95 of 177

Assignment Editor

한경대학교 김수찬

96 of 177

Pin Planner

한경대학교 김수찬

97 of 177

(1) Use Excel file

한경대학교 김수찬

98 of 177

(2) Import Assignment

한경대학교 김수찬

99 of 177

(2) Import Assignment

한경대학교 김수찬

100 of 177

(2) Import Assignment

한경대학교 김수찬

101 of 177

DE2 Board USB Driver 설치

DE2 보드에 설계한 회로도를 다운로드 하기 위해서 필요함

102 of 177

Installation and USB-Blaster Driver

  1. DE2 보드를 USB 케이블로 컴퓨터와 연결한 다음,
  2. 제어판(Ctrl+Break)에서 등록되지 않은 장치를 확인해 봄

103 of 177

Installation and USB-Blaster Driver

한경대학교 김수찬

104 of 177

Installation and USB-Blaster Driver

한경대학교 김수찬

각자 설치한 기본 폴더 아래의 다음과 같은 하위 폴더에 있다.

..\quartus\drivers\usb-blaster-ii

105 of 177

Installation and USB-Blaster Driver

한경대학교 김수찬

106 of 177

9. Programming and configuring the PDL chip

한경대학교 김수찬

107 of 177

Run Programmer

한경대학교 김수찬

108 of 177

Setup Hardware

한경대학교 김수찬

109 of 177

Download the program into PLD

한경대학교 김수찬

110 of 177

Download the program into PLD

한경대학교 김수찬

111 of 177

한경대학교 김수찬

112 of 177

Full adder 만들기

113 of 177

Project 파일 만들기

114 of 177

Project 파일 만들기

  • Project가 저장될 폴더를 지정
  • Project 이름 지정 – 일반적으로 Top-entity 이름으로 한다.
  • 그래서 Project 이름을 입력하면 아래 top entity 이름도 동일한 이름으로 자동 입력된다.

Fulladder

Fulladder

115 of 177

Project 파일 만들기

  • 추가할 파일이 있다면 여기서 추가
  • 프로젝트 생성 후에도 필요할 경우 파일을 추가할 수 있기 때문에 여기서 굳이 안 해도 된다.

116 of 177

Project 파일 만들기

  • DE2 보드의 경우
  • Device는 Cyclone II EP2C35F672C6로 지정
  • 이를 잘못 지정하게 되면 추후 pin assign할 때 에러가 날 수 있다.

117 of 177

Project 파일 만들기

  • Project에서 설정된 값들은 필요할 경우 언제든 변경이 가능하다.

118 of 177

Draw a Full Adder Schematic

119 of 177

Binary Adder (Half adder)

120 of 177

Binary Adder (Half adder)

121 of 177

Binary Adder (Full adder)

122 of 177

Binary Adder (Full adder)

123 of 177

Make a schematic file

  • File >> New
  • Block Diagram/Schematic File을 선택

124 of 177

Make a schematic file

125 of 177

Full Adder Schematic

126 of 177

Compile

127 of 177

Simulation

File > new > Vector Waveform File

우 클릭 > insert > insert Node or Bus

128 of 177

Simulation

Node Finder 클릭

Pins : unassigned 선택 후

List 클릭

129 of 177

Simulation

List가 나오면 >> 클릭 >ok

End time 설정

130 of 177

Simulation

End time 설정 > 확인

입력변수 값 설정(시계모양아이콘)

131 of 177

Simulation

A, B, C_in 입력 값 설정

132 of 177

Simulation

입력변수들 설정 후

View > Fit In Windows 를 누르면

64us의 그래프가 한 화면에 들어오게된다

Ctrl + w, Ctrl+휠

Simulation 전 저장을 하되 앞에 만들었던 schematic 파일이름과 동일하게 저장 하도록 한다.

저장 후 simulation 버튼클릭

133 of 177

Simulation - functional

바로 Simulation이 된다면 타이밍도를 분석해보고, 아래와 같은 에러가 발생 하는 경우는 다음 순서를 따라 해보도록 한다..

Processing > generate functional simulation netlist

“Functional Simul

ation Netlist Generation was successful” 이라는 창이 뜰 것이다.

134 of 177

Simulation - functional

Assignments > EDA Tool Settings..

Simulator settings 선택 후

Simulation mode를 functional 바꾼다

135 of 177

Simulation - functional

Simulator input에 simulation 파일을 추가한 후 확인 버튼을 누른 후 simulation 버튼을 누른다.

Full Adder simulation 결과

136 of 177

실제 Pin 지정하기

  • 메뉴에서 Assigments >> Assigments Editor
  • Category 를 pin으로 설정 후
  • 그림에 표시된 아이콘 클릭을 하면
  • Input 과 output pin정보가 나타남.

137 of 177

실제 Pin 지정하기

  • Location 에서 핀 선택 (이때 핀 정보는 설정에서 어떤 Device를 선택하였느냐에 따라 다를 수 있다)
  • Pin 정보는 DE2 user manual 혹은 DE2 Board Pin 참조

138 of 177

실제 Pin 지정하기

Pin 정보가 추가되면 schematic에서도 보여진다.

139 of 177

Download to DE 2 Board

  • 메뉴에서 Tools >> Programmer
  • 파일이 있는 것을 확인하고
  • Start 버튼 클릭
  • 다운로드가 완료된 후, 스위치와 LED로 동작여부 확인

140 of 177

내 용

  • Create Symbol
  • Making 4bits Full Adder
  • 4bits Full Adder using Bus
  • Use 7 Segments

141 of 177

Create Symbol

  • Symbol로 하고자 하는 schematic을 작성
  • VHDL source code도 가능
  • 컴파일 후 에러가 없으면
  • File > Create/update > Create Symbol files for current File

142 of 177

Create Symbol

  • Symbol 파일 저장
  • 확장자는 bsf (block symbol file)

143 of 177

Use Symbol

  • 새 Block Diagram파일을 만든다
  • Symbol 삽입
  • Project 폴더내 생성된 Symbol이 보임
  • 생성된 Symbol은 bsf와 source schematic or code가 있어야 함.

144 of 177

4bits Full Adder - Schematic

145 of 177

4bits Full Adder - Schematic

  • Top entity 지정하기
    • 여러 schematic이 있을 경우 이 중 최상위 entity (schematic)를 지정

146 of 177

4bits Full Adder - Schematic

General

Main이 될 파일 선택 후 확인

147 of 177

4bits Full Adder - Simulation

  • Schematic을 컴파일한다
  • 새로운 Waveform File을 만든다.

148 of 177

4bits Full Adder - Simulation

  • Name 영역에 double click 하거나
  • Hot menu를 사용하여 node 삽입 dialog box를 연다.

149 of 177

4bits Full Adder - Simulation

Unassigned > list > “>>” > ok

150 of 177

4bits Full Adder - Simulation

End Time 설정

151 of 177

4bits Full Adder - Simulation

Start time ~End time 한 화면에 보기

Overview write clock 아이콘으로 입력 값을 넣는다.

152 of 177

4bits Full Adder - Simulation

모든 클럭을 넣고 저장한 후

Start simulation 아이콘 클릭

Main waveform file 지정하기

153 of 177

4bits Full Adder - Simulation

Main waveform file 지정하기

Simulation 하고자 하는 파일을 열고 simulation 하도록 한다

154 of 177

4bits Full Adder - Simulation

  • 정상적인 동작 특성을 확인할 수 있다.
  • 그러나, 각 비트마다 값이 보여지기 때문에 결과가 정확한가를 한눈에 확인하기는 쉽지않다.
  • Bus를 이용하여 이 문제를 해결해 보자.

155 of 177

4bits Full Adder using Bus

  • 툴바에서 가는 node wire대신 bus wire를 선택 선택
  • 버스 이름은 name[(n-1)..0] 형식으로 작성

Ex) A[3..0]은 �A[0] - LSB�A[1]�A[2]

A[3] - MSB

156 of 177

4bits Full Adder using Bus

157 of 177

4bits Full Adder using Bus

  • Bus에서 나온 하나의 node wire가 어떤 것인지 “속성"의 이름으로 지정한다.

158 of 177

4bits Full Adder using Bus

159 of 177

4bits Full Adder using Bus

160 of 177

4bits Full Adder using Bus

  • Bus와 연결된 모든 node wire를 명확하게 지정하고, compile한다.
  • 다시 simulation을 위해 waveform file에서 node finder를 이용하여 노드를 살펴보면 버스가 나타난다.

161 of 177

4bits Full Adder using Bus

162 of 177

4bits Full Adder using Bus

Simulation 후 A,B,SUM 각각의 값을 쉽게 볼 수 있어 분석이 편해 진다.

163 of 177

Pin Assigned

164 of 177

Pin Assigned

165 of 177

166 of 177

Quartus II 확장자 의미

  • BDF - Block Diagram File
  • BSF - Block Symbol File
  • VWF - Vector Waveform file
  • QPF - Quartus Project File
  • QSF - Quartus Setting File

167 of 177

10. Example

한경대학교 김수찬

168 of 177

Pin assign example (SW-LEDR)

169 of 177

Pin assign example (BCD7SEG)

170 of 177

Pin assign example (BCD7SEG)

171 of 177

Pin assign example (BCD7SEG)

172 of 177

Inverter

173 of 177

174 of 177

175 of 177

176 of 177

177 of 177

참고자료

  1. Make a symbol
  2. Quartus II의 간단한 사용법 (pdf)
  3. DE2 board
  4. Quartus II 사용법 2
  5. VHDL Tutorial: Learn by Example