99
ALTERA Quartus II Web Edition 8.0sp1의 VHDL VHDL 표현 자료형은 다음과 같은 종류들이 있다. VHDL은 미리 정의된 자료형(predefined data type)들을 STANDARD 패키지에 가지고 있으므 선언하지 않아도 된다. 즉, bit, std_logic, integer 등과 같이 자주 쓰이는 자료형들은 VHDL에서 미리 선언되어 있으므로 사용자가 따로 선언할 필요가 없다.그러나 그 밖의 자료 형들은 자료형 선언을 해주어야 한다. 6.자료형(data type)과 객체(object) 59 IEEE 1164 표준 자료형(IEEE 1164standardtype) 정수형(integertype) 부울형(Booleantype) 열거형(enumerationtype) 1) 자료형 (data type)

ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

자료형은 다음과 같은 종류들이 있다.

VHDL은 미리 정의된 자료형(predefined data type)들을 STANDARD 패키지에 가지고 있으므로 선언하지 않아도 된다. 즉, bit, std_logic, integer 등과 같이 자주 쓰이는 자료형들은VHDL에서 미리 선언되어 있으므로 사용자가따로 선언할 필요가 없다.그러나 그 밖의 자료형들은 자료형 선언을 해주어야 한다.

6.자료형(data type)과 객체(object)

59

◦ IEEE 1164 표준 자료형(IEEE 1164 standard type)

◦ 정수형(integer type)

◦ 부울형(Boolean type)

◦ 열거형(enumeration type)

1) 자료형 (data type)

Page 2: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

6.자료형(data type)과 객체(object)

60

- 자료형의 부분 집합에 해당하는 부자료형(subtype)들은 부자료형 선언(subtype declaration)을 할 수 있다.

- 자료형 선언(data type declaration)

◎ 형식TYPE 자료형_이름 IS 자료형_서술;

◦ 사용 예TYPE Bit_4 IS ('0', '1', 'X', 'Z'); -- enumeration typeSIGNAL A : Bit_4;TYPE Digit IS INTEGER RANGE 0 TO 7; -- user defined typeSIGNAL S : Digit;

~A <= 'Z';S <= 4;

Page 3: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

6.자료형(data type)과 객체(object)

61

• 자료형 선언은 지정어 “TYPE”을 사용한다. TYPE 뒤에 정의하고자 하는 자료형의 ‘자료형_이름’을 쓰고 IS 뒤에 ‘자료형_서술’을 한다. ‘자료형_서술’은 열거형(enumeration type)과 사용자 정의형(user defined type) 형태가 있다.

• 열거 형태로 선언된 자료형의 객체는 ‘자료형_서술’에서 열거한 것 가운데 하나의 값을가져야 한다. 즉 Bit_4 자료형으로 선언된 신호 A는 ‘0’, ‘1’, ‘X’, ‘Z’ 중에서 하나의 값을갖는다. 예에서는 A가 ‘Z’ 값을 갖는다.

• 사용자 정의 형태인 경우 ‘자료형_서술’은 자료형의 기본 자료형(base type)과 표현 범위를 나타낸다.

• 자료형의 기본 자료형은 bit, std_logic, integer 등 VHDL에서 미리 선언된 것들을 사용할수 있고 사용자가 정의한 자료형을 사용한다.

• 표현 범위는 지정어 “RANGE ~ TO~”를 사용한다. 표현 범위를 선언한 자료형의 객체는 표현 범위 중에서 하나의 값을 가진다.

• 자료형 Digit는 기본 자료형으로 정수형(integer)이고 표현 범위는 0에서 7까지이다. 따라서 Digit 자료형으로 선언된 객체인 신호 S는 정수형 0에서 7까지의 하나의 값인 4를갖는다.

Page 4: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

부자료형 선언

6.자료형(data type)과 객체(object)

62

◎ 형식

SUBTYPE 부자료형_이름 IS 기본자료형 표현 범위;

◦ 사용 예

TYPE Any_number IS INTEGER RANGE 0 TO 1023;

SUBTYPE Part_number IS Any_number RANGE 0 TO 15;

자료형은 값들의 집합을 정의하나 부자료형의 값들의 부분집합을 정의한다. 부자료형 선언은 지정어 “SUBTYPE”를 사용한다. SUBTYPE 뒤에 정의하고자 하는 부자료형의 ‘부자료형_이름’을 쓰고 IS 뒤에 기본자료형(base type)과 표현범위를 표현한다.

부자료형 BYTE는 기본 자료형이 STD_LOGIC_VECTOR 이고 8비트이다. 부자료형 WORD는 기본 자료형이 STD_LOGIC_VECTO이고 16비트이다.

자료형 Any_number는 기본 자료형이 정수형이고 0에서 1023까지의표현 범위를 가진다. 부자료형 Part_number는 기본 자료형이Any_number 이고 0에서15까지의 표현 범위를 가진다.

Page 5: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

1. IEEE 1164 표준 자료형

6.자료형(data type)과 객체(object)

63

BIT/BIT_VECTOR

이들 자료형은 VHDL 표준 IEEE 1076과 IEEE 1164에 미리 정해져 있다.

그러므로 라이브러리는 필요하지 않다.

BIT와 BIT_VECTOR 자료형에는 논리 0인 ‘0’과 논리 1인 ‘1’만 있다. 따라서 이들 자료형들을 가지고는 고임피던스(high impedance) 상태 또는 2가지 상태 값이 충돌하여 어떤 상태인지 알 수 없는상태를 표현할 수가 없다. 다음에 나오는STD_LOGIC과 STD_LOGIC_VECTOR 자료형이 더많은 유통성을 가지고 있어서 이들 자료형들은 현재 잘 사용하지 않는다.

- BIT 객체 : ‘0’ 또는 ‘1’- BIT_VECTOR 객체 : BIT 객체의 배열

Page 6: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

1. IEEE 1164 표준 자료형

6.자료형(data type)과 객체(object)

64

BIT_VECTOR를 사용하는 신호의 크기는 지정어 “TO” 또는“DOWNTO”를 사용한다.

“TO”는 오름차순을 표현 : 최상위 비트(MSB) TO 최하위 비트(LSB)

만일 C <= “1100”; 이면 C(0) = 1, C(1) = 1, C(2) = 0, C(3) = 0이 된다.

“DOWNTO”는 내림차순을 표현 : 최상위 비트(MSB) DOWNTO 최하위 비트 (LSB)

만일 Byte <= “1100”; 이면 Byte(3) = 1, Byte(2) = 1, Byte(1) = 0, Byte(0) = 0

이 된다.

◦ 사용 예

signal x1 : BIT;signal C : BIT_VECTOR(0 TO 3);signal Byte : BIT_VECTOR(3 DOWNTO 0);

Page 7: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

1. IEEE 1164 표준 자료형

6.자료형(data type)과 객체(object)

65

STD_LOGIC/STD_LOGIC_VECTOR

이들 자료형은 BIT 자료형보다 더 많은 유통성을 가지는 자료형이다. 이들 자료형은 라이브러리 IEEE에 있는 패키지std_logic_1164에 등록되어 있다. 따라서 이 패키지를 사용하도록 선언하지 않으면 std_logic과 std_logic_vector 자료형은 사용할 수 없다.

- STD_LOGIC 객체 : ‘0’, ‘1’, ‘Z’, ‘-’, ‘L’, ‘H’, ‘U’, ‘X’, ‘W’

- STD_LOGIC_VECTOR 객체 : STD_LOGIC 객체의배열

- 사용되는 라이브러리와 패키지 : library IEEE;use

IEEE.std_logic_1164.all;

Page 8: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

6.자료형(data type)과 객체(object)

66

‘0’은 strong 0을 의미하는데 전원 VSS(0V)에 연결되므로 확실한 논리 0을 나타낸다. ‘1’은 strong 1을 의미하는데 전원 VDD(5V)에 연결되므로 확실한 논리 1을나타낸다.

출력에 풀업(pull-up) 또는 풀다운(pull-down)을 사용하는 경우가 있는데, 이 경우에 전원이 풀업 또는 풀다운에 연결되지 않으면 출력은 불안전한 상태가 되므로 weak로 표현되는 ‘L’과 ‘H’를 사용한다. ‘L’은 weak 0을 의미하는데 풀다운(pull-down)에 연결되는 논리 0을 나타낸다. 그리고 ‘H’은 weak 1을 의미하는데풀업(pull-up)에 연결되는 논리 1을 나타낸다.

‘Z’는 출력신호가 논리 1 또는 논리 0을 나타내지 않는 회로와 끊어진 상태인 고임피던스(high impedance)를 나타낸다.

0 : strong 01 : strong 1Z : high impedance- : don't careL : weak 0H : weak 1U : uninitializedX : unknownW : weak unknown

Page 9: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

6.자료형(data type)과 객체(object)

67

‘-’ 은 무시항으로서 진리표에서는 ‘×’으로 표시하며 2진 값의 0 또는 1이 될 수 있다는 것을 의미한다.

‘U’는 초기화되지 않은 상태(uninitialized)를 나타낸다. 보통 IC에 전원을 공급하면 출력들이 어떤 상태 값을 갖게 될지 알 수 없다. 즉 정상적인 상태 값이 될 때까지 어느 정도의 시간이 걸리는 그 동안의 값을 나타낼 때 사용된다.

‘X’는 출력을 공통(common)으로 사용하는 경우에 두 가지 형태인 논리 0과 논리 1이 충돌하여 어떤 값을 갖게 될 지 모르는 상태(unknown)를 나타낸다.

‘W’는 풀업 또는 풀다운을 사용하는 출력들이 공통으로 사용되는 경우에 사용되는 weak unknown이다.

◦ 사용 예LIBRARY ieee; USE ieee.std_logic_1164.all;type Bit_4 is ('0', '1', 'X', 'Z');signal A : Bit_4;signal x1 : STD_LOGIC;signal C : STD_LOGIC_VECTOR(1 TO 4)signal Byte : STD_LOGIC_VECTOR(7 DOWNTO 0)

~A <= 'Z';x1 <= '0';C <= "0101";Byte <= "10101010";

Page 10: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

1. IEEE 1164 표준 자료형

6.자료형(data type)과 객체(object)

68

SIGNED/UNSIGNED

이들 자료형은 산술연산시 사용하며 사용은STD_LOGIC과 동일하다.

- SIGNED 자료형 : 부호 있는 수(signed number) 연산, 음수는 2의 보수로 표시

- UNSIGNED 자료형 : 부호 없는 수(unsigned number) 연산

- 사용되는 라이브러리 : library ieee;

- 사용되는 패키지 : use ieee.std_logic_arith.all;

Page 11: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

1. IEEE 1164 표준 자료형

6.자료형(data type)과 객체(object)

69

-왼쪽에서는 신호 A와 B를 SIGNED 자료형으로 정의하였다. 따라서 A=-7 이고 B=1이 된다.

-오른쪽에서는 A와 B를 UNSIGNED 자료형으로 정의하였다. 따라서 A=9 이고 B=1이 된다.

-사용 예에서 A > B 수행결과는 왼쪽은 C가 ‘0’이 출력되고, 오른쪽은 ‘1’이 출력된다.

◦ 사용 예

LIBRARY ieee; USE ieee.std_logic_1164.all; USE ieee.std_logic_arith.all;

signal A : SIGNED(3 downto 0):="1001";signal B : SIGNED(3 downto 0):="0001";signal C : STD_LOGIC;

~IF A > B THEN C <=

'1';ELSE C <=

'0';

signal A : UNSIGNED(3 downto 0) := "1001";signal B : UNSIGNED(3 downto 0) := "0001";signal C : STD_LOGIC;

~IF A > B THEN C <= '1';ELSE C <= '0';

Page 12: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

2. 정수형(integer type)

6.자료형(data type)과 객체(object)

70

정수형은 산술 연산자(arithmetic operator)를 가지고 산술 연산에 사용되며, 정수형 신호는 2진수를나타낸다. 정수형은 다음과 같이 미리 정의된 32비트 표현 범위를 갖고있다.

-231 ~ +(231 - 1) = -2,147,483,648 ~ +2,147,483,647

별도로 정의하지 않으면 정수형은 32비트 크기를갖는 연산 회로를 구현하게 된다. 따라서, 필요한표현 범위만 구현하도록, 정수형은 지정어 “RANGE ~ TO ~ ”를 사용하여 미리 정의된 것보다 작은 크기의 비트 표현을 구현한다.

Page 13: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

2. 정수형(integer type)

6.자료형(data type)과 객체(object)

71

변수(variable) COUNT는 0에서 3까지의 정수값을 갖는다. 이때 count 값이 3이 되면 자동적으로 0이 된다.

신호(signal) S는 0에서 3까지의 정수값을 갖는다. 이때 count 값이 3이 되면 자동적으로 0이 되지 않는

다.신호 X는 자료형이 정수로 정의되고 32비트 표현 범위를갖는다. 신호 D는 0에서 15까지의 정수값을 갖는 4비트 신호가 되고 정수값은 2진수 형태이므로 0000 ~ 1111이 된다. 따라서 논리회로가 합성될 때 정수형 신호 D의 비트맵은 그림과 같다.

◦ 사용 예 variable COUNT : INTEGER RANGE 0 TO 3;signal S : INTEGER RANGE 0 TO 19;signal X : INTEGER ; -- 32 bit numbersignal D : INTEGER RANGE 0 TO 15; -- 4 bit number

D(3) D(2)

D(1)

D(0)

정수형 신호 D의 비트맵

Page 14: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

3. 부울형(boolean type)

6.자료형(data type)과 객체(object)

72

부울형은 참(TRUE)과 거짓(FALSE) 값을 가진다

부울 형태로 선언된 자료형의 객체는 두가지 중 하나의값을 갖는데, BOOLEAN 자료형으로 선언된 신호 flag는false인 경우에는 ‘0’이 되고 true인 경우에는 ‘1’이 된다.

TRUE : 1FALSE : 0

◦ 사용 예TYPE BOOLEAN IS (false, true);signal flag : BOOLEAN;

Page 15: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

4. 열거형(enumeration type)

6.자료형(data type)과 객체(object)

73

열거형의 신호는 사용자가 명시한 신호의 가능한 값들 중에서 하나를 가진다.

형식 및 사용 예

◎ 형식 TYPE 열거형_이름 IS (이름 [, 이름]);

◦ 사용 예 TYPE State_type IS (stateA, stateB, stateC);TYPE Bit_2 IS ('0', '1');TYPE Bit_3 IS ('0', '1', 'Z');TYPE Bit_4 IS ('0', '1', 'X', 'Z');

~signal X : Bit_3;signal Y : State_type;

~X <= 'Z';Y <= stateC;

Page 16: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

4. 열거형(enumeration type)

6.자료형(data type)과 객체(object)

74

열거형은 괄호 안에 지정어 또는 문자 자료형을 가진다. 지정어는 대문자와 소문자 구별이 없으나 문자 자료형의 경우는 다른 글자가 된다. 즉 ‘Z’와 ‘z’는 다르다. 위의 사용 예를 패키지에 선언한 뒤에 다음과 같이 객체를 선언하기 위해서 사용할 수 있다.

열거형으로 선언된 객체는 자료형 정의에서 열거한 것 가운데 하나의값을 가져야 한다. 즉 신호 X는 Bit_3으로 선언되었으므로 ‘0’, ‘1’, ‘Z’중에서 하나를 값으로 가져야 한다. 신호 Y는 State_type으로 선언되었으므로 stateA, stateB, stateC중에 하나를 값으로 가져야 한다.

Page 17: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

4. 열거형(enumeration type)

6.자료형(data type)과 객체(object)

75

미리 정의된 열거형

Boolean은 TRUE와 FALSE로 미리 정의되어 있고 Bit는 ‘0’와 ‘1’로 정의되어 있다. Character는 VHDL 코드 작성에 필요한 대부분의 문자를 제공하고 있다.

TYPE Boolean IS (FALSE, TRUE); -- predefinedTYPE Bit IS ('0', '1'); -- predefinedTYPE Character IS ( -- predefined

NUL, SOH, STX, ETX, EOT, ENQ,… -- …은 생략을 의미함

‘ ’, ‘!’, ……

'a', 'b', 'c', 'd', 'e', ……

);

Page 18: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

VHDL 코드로 표현되는 객체는 상수(constant), 신호(signal), 변수(variable) 등의 3가지 종류를 가진다.

객체를 사용하기 전에 반드시 객체 선언을 해야 하며, 객체를 선언 후에는 객체에 값을 대입하여 사용할 수 있다.

객체(object)는 4가지 모드(in, out, inout, buffer)를 가진다

6.자료형(data type)과 객체(object)

76

2) 객체(object)

◦ 신호(signal) : 일정한 시간 지연(delay) 이후에 값이 변함→ 외적변수

신호에 값을 대입하기 위해서는 <= 를 사용한다.

◦ 상수(constant) : 값이 변경되지 않음

상수에 값을 대입하기 위해서는 := 를 사용한다.

◦ 변수(variable) : 값의 계산과 동시에 변함→ 내적변수

변수에 값을 대입하기 위해서는 := 를 사용한다..

Page 19: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

1. 신호(signal)

6.자료형(data type)과 객체(object)

77

신호는 논리회로에서 논리신호(logic signal) 또는 선(wire)을 나타내며 각컴포넌트간의 연결에 사용된다. VHDL에서 신호들이 정의되는 곳은 다음과 같은 3가지 장소이다.

엔티티 선언에서의 신호 선언은 포트문의 신호들을 말한다. 아키텍쳐와패키지에서는 단순히 신호 선언을 의미한다. 따라서 신호는 신호 선언(signal declaration)과 포트신호 선언(port declaration)에서 사용한다.

신호로 선언된 신호_이름에 값을 대입하기 위해서는 <=를 사용한다. <=은 오른쪽에서 왼쪽으로 일정한 지연이 된 값이 대입된다.

엔티티 선언(entity declaration)

아키텍쳐(architecture)의 선언부

패키지(package)의 선언부

Page 20: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

1. 신호(signal)

6.자료형(data type)과 객체(object)

78

형식 및 사용 예

신호에 값을 할당하기 위해서는 <=를 사용한다. <=는 오른쪽에서 왼쪽으로 일정한 지연이 된 값이 대입된다.

◎ 형식 □ 신호 선언

signal 신호_이름 {, 신호_이름} : 자료형[신호_종류] [:= 초기값]; □ 포트신호 선언

port(포트신호_이름, ... : [모드] 자료형[:= 초기값]); ◦ 사용 예

□ 신호 선언 signal A, B, Y : std_logic; signal S : Integer;

Y <= A or B ; -- 신호 Y에 A or B의 값을 대입 S <= 1; -- 신호 S에 1을 대입

□ 포트신호 선언

port(A, B : in std_logic; Y, S : out std_logic);

Y <= A or B; -- 포트신호 Y에 A or B의 값을 대입 S <= '1'; -- 포트신호 S에 ‘1’을 대입

Page 21: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

1. 신호(signal)

6.자료형(data type)과 객체(object)

79

신호의 초기화신호의 초기화에서는 다음과 같이 := 를 사용한다.

ALTERA Quartus II에서는 신호의 초기화를 제공하지 않는다. 따라서 다음과 같이 수정하여 사용한다.

SIGNAL ONE_state : std_logic := '1';

SIGNAL ONE_state : std_logic;

.

.

.

ONE_state <= '1';

Page 22: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

1. 신호(signal)

6.자료형(data type)과 객체(object)

80

예시)

aorb

Y

ONE_state

A

B

C

LIBRARY ieee; USE ieee.std_logic_1164.all;ENTITY div_logic IS

PORT(A, B, C : IN std_logic; -- 포트신호 선언 : A, B, C, Y 신호선언선언

Y : OUT std_logic);END div_logic;ARCHITECTURE dataflow OF div_logic IS

SIGNAL aorb : std_logic; -- 아키텍쳐선언부 : aorb 신호 선언선언SIGNAL ONE_state : std_logic; -- 아키텍쳐 선언부 : ONE_state 신호

선언선언BEGIN

aorb <= A or B;ONE_state <= '1';Y <= aorb and C and ONE_state;

END dataflow;

Page 23: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

1. 신호(signal)

6.자료형(data type)과 객체(object)

81

포트신호로 입력신호 A, B, C 그리고 출력신호 Y를 선언한다. OR 게이트 출력과 AND 게이트의 한 입력을 연결하는 선을 aORb 신호 그리고 3입력 AND 게이트에서 포트신호가 선언되지 않은 선은ONE_state으로 설정하여 아키텍쳐 선언부(아키텍쳐 몸체 내의ARCHITECTURE와 BEGIN 사이)에 선언한다. ONE_state신호는 1 상태로 초기화한다.

Page 24: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 1 / NOT 게이트 설계

6.자료형(data type)과 객체(object)

82

동작적 표현

LIBRARY ieee; USE ieee.std_logic_1164.all;ENTITY inv IS

PORT(A : in std_logic;Y : out std_logic);

END inv;ARCHITECTURE behav OF inv ISBEGIN

PROCESSBEGIN

IF A = '0' THEN Y <= '1';ELSE Y <= '0';END IF;

END PROCESS;END behav;

Page 25: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 1 / NOT 게이트 설계

6.자료형(data type)과 객체(object)

83

자료흐름적 표현 1 자료흐름적 표현 2

library ieee;use ieee.std_logic_1164.all;ENTITY inv IS

PORT(A : in std_logic;Y : out std_logic);

END inv;ARCHITECTURE dataflow OF inv ISBEGIN

Y <= '1' WHEN A = '0' ELSE '0';END dataflow;

library ieee;use ieee.std_logic_1164.all;ENTITY inv IS

PORT(A : in std_logic;Y : out std_logic);

END inv;ARCHITECTURE dataflow OF inv ISBEGIN

Y <= not A;END dataflow;

Page 26: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 1 / NOT 게이트 설계

6.자료형(data type)과 객체(object)

84

타이밍 시뮬레이션 결과

입력 신호 A가 ‘0’인 경우에는 출력 Y가 ‘1’이 되고 그 외에는 ‘0’이 된다.

Page 27: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 1 / NOT 게이트 설계

6.자료형(data type)과 객체(object)

85

HBE-COMBO II 트레이닝 키트에 프로그래밍 하기 위한 정보

입 력 출 력 블록도

핀 이름 핀 번호 입력 장치 핀 이름 핀 번호 출력 장치

A Y10 KeypadA Y AC7 LED8

트레이닝 키트의 초기 상태는 LED8의 불이 켜진 상태이다. A(KeypadA)을 누르면 LED8의 불이 꺼지고 A를 누르지 않으면 LED8이 켜진다.

Page 28: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 2 / AND 게이트 설계

6.자료형(data type)과 객체(object)

86

Page 29: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 2 / AND 게이트 설계

6.자료형(data type)과 객체(object)

87

2입력 AND 게이트(동작적 표현)

LIBRARY ieee; USE ieee.std_logic_1164.all;ENTITY and_2 IS

PORT(A, B : in std_logic;Y : out std_logic);

END and_2;ARCHITECTURE behav OF and_2 ISBEGIN

PROCESS(A, B)BEGIN

IF A = '1' and B = '1' THEN Y <= '1';

ELSE Y <= '0';

END IF;END PROCESS;

END behav;

3입력 AND 게이트(동작적 표현)

LIBRARY ieee; USE ieee.std_logic_1164.all;ENTITY and_3 IS

PORT(A, B, C : in std_logic;Y : out std_logic);

END and_3;ARCHITECTURE behav OF and_3 ISBEGIN

PROCESS(A, B, C)BEGIN

IF A = '1' and B = '1' and C = '1' THEN Y <='1';

ELSE Y<= '0';

END IF;END PROCESS;END behav;

IF문은 AND 게이트의 기능을 나타내고 있다. 즉 모든 입력들이 ‘1’인 경우에는출력 Y가 ‘1’이 되고 그 이외에는 ‘0’이 된다.

Page 30: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 2 / AND 게이트 설계

6.자료형(data type)과 객체(object)

88

WHEN-ELSE 문은 모든 입력들이 ‘1’인 경우에는 출력 Y가 ‘1’이 되고 그 이외에는 ‘0’이 AND 게이트 기능을 나타낸다.

2입력 AND 게이트(자료흐름적 표현 1) 3입력 AND 게이트(자료흐름적 표현 1)

LIBRARY ieee;USE ieee.std_logic_1164.all;ENTITY and_2 IS

PORT(A, B : in std_logic;Y : out std_logic);

END and_2;ARCHITECTURE dataflow OF and_2 ISBEGIN

Y <= '1' WHEN A = '1' and B = '1'ELSE ‘0';

END dataflow;

LIBRARY ieee;USE ieee.std_logic_1164.all;ENTITY and_3 IS

PORT(A, B, C : in std_logic;Y : out std_logic);

END and_3;ARCHITECTURE dataflow OF and_3 ISBEGIN

Y <= '1' WHEN A = '1' and B = '1' and C ='1'

ELSE '0';END dataflow;

Page 31: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 2 / AND 게이트 설계

6.자료형(data type)과 객체(object)

89

AND 연산은 ‘and’ 연산자를 사용한다.

2입력 AND 게이트(자료흐름적 표현 2) 3입력 AND 게이트(자료흐름적 표현 2)

LIBRARY ieee;USE ieee.std_logic_1164.all;ENTITY and_2 IS

PORT(A, B : in std_logic;Y : out std_logic);

END and_2;ARCHITECTURE dataflow OF and_2 ISBEGIN

Y <= A and B;END dataflow;

LIBRARY ieee;use ieee.std_logic_1164.all;ENTITY and_3 IS

PORT(A, B, C : in std_logic;Y : out std_logic);

END and_3;ARCHITECTURE dataflow OF and_3 ISBEGIN

Y <= A and B and C;END dataflow;

Page 32: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 2 / AND 게이트 설계

6.자료형(data type)과 객체(object)

90

타이밍 시뮬레이션 결과

2입력 AND 게이트의 시뮬레이션 결과는 A, B 입력신호 모두가 ‘1’인

경우에 출력 Y가 ‘1’이 되고 그 외에는 ‘0’이 된다.

Page 33: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 2 / AND 게이트 설계

6.자료형(data type)과 객체(object)

91

3입력 AND 게이트는 A, B, C 를 동시에 누르면 동시에 LED8의 불이 켜진다.

입 력 출 력 블록도

핀 이름 핀 번호입력 장

치핀 이름

핀 번호출력 장

A Y10 KeypadA Y AC7 LED8

B W10 KeypadB

입 력 출 력 블록도

핀 이름 핀 번호 입력 장치 핀 이름 핀 번호출력 장

A Y10 KeypadA Y AC7 LED8

B W10 KeypadB

C AA9 KeypadC

HBE-COMBO II 트레이닝 키트에 프로그래밍 하기 위한 정보

2입력 AND 게이트는 A와 B를 동시에 누르면 동시에 LED8의 불이 켜진다.

Page 34: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 3 / OR 게이트 설계

6.자료형(data type)과 객체(object)

92

Page 35: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 3 / OR 게이트 설계

6.자료형(data type)과 객체(object)

93

2입력 OR 게이트(동작적 표현) 3입력 OR 게이트(동작적 표현)

LIBRARY ieee;USE ieee.std_logic_1164.all;ENTITY or_2 IS

PORT(A, B : in std_logic;Y : out std_logic);

END or_2;ARCHITECTURE behav OF or_2 ISBEGIN

PROCESS(A, B)BEGIN

IF A = '1' or B = '1' THEN Y<= '1';

ELSE Y<= '0';

END IF;END PROCESS;END behav;

LIBRARY ieee;USE ieee.std_logic_1164.all;ENTITY or_3 IS

PORT(A, B, C : in std_logic;Y : out std_logic);

END or_3;ARCHITECTURE behav OF or_3 ISBEGIN

PROCESS(A, B, C)BEGIN

IF A = '1' or B = '1' or C = '1' THEN Y<= '1';

ELSE Y<= '0';

END IF;END PROCESS;

END behav;

IF문은 OR 게이트의 기능을 나타내고 있다. 즉 입력들 중 어느 하나라도 ‘1’인 경우에는출력 Y가 ‘1’이 되고 모든 입력들이 모두 ‘0’인 경우 출력 Y가 ‘0’이 된다

Page 36: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 3 / OR 게이트 설계

6.자료형(data type)과 객체(object)

94

WHEN-ELSE 문은 입력들 중 어느 하나라도 ‘1’인 경우에는 출력 Y가 ‘1’이 되고 모든입력들이 모두 ‘0’인 경우 출력 Y가 ‘1’이 되는 OR 게이트 기능을 한다.

2입력 OR 게이트(자료흐름적 표현 1) 3입력 OR 게이트(자료흐름적 표현 1)

LIBRARY ieee;USE ieee.std_logic_1164.all;ENTITY or_2 IS

PORT(A, B : in std_logic;Y : out std_logic);

END or_2;ARCHITECTURE dataflow OF or_2IS

BEGINY <= '1' WHEN A = '1' or B =

'1'ELSE '0';

END dataflow;

LIBRARY ieee;USE ieee.std_logic_1164.all;ENTITY or_3 IS

PORT(A, B, C : in std_logic;Y : out std_logic);

END or_3;ARCHITECTURE dataflow OF or_3 ISBEGIN

Y <= '1‘ WHEN A = '1' or B = '1' or C ='1'

ELSE '0';END dataflow;

Page 37: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 3 / OR 게이트 설계

6.자료형(data type)과 객체(object)

95

OR 연산은 ‘or’ 연산자를 사용한다.

2입력 OR 게이트(자료흐름적 표현 2) 3입력 OR 게이트(자료흐름적 표현 2)

LIBRARY ieee; USEieee.std_logic_1164.all;ENTITY or_2 IS

PORT(A, B : in std_logic;Y : out std_logic);

END or_2;ARCHITECTURE dataflow OF or_2ISBEGIN

Y <= A or B;END dataflow;

LIBRARY ieee; USEieee.std_logic_1164.all;ENTITY or_3 IS

PORT(A, B, C : in std_logic;Y : out std_logic);

END or_3;ARCHITECTURE dataflow OF or_3 ISBEGIN

Y <= A or B or C;END dataflow;

Page 38: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 3 / OR 게이트 설계

6.자료형(data type)과 객체(object)

96

타이밍 시뮬레이션 결과

2입력 OR 게이트의 시뮬레이션 결과는 A, B 입력 신호들 중 어느 하나가 ‘1’일 때 출력 Y가 ‘1’이 되고 모든 입력들이 ‘0’일 때 Y는 ‘0’이 된다. 생략된 3입력 OR 게이트의 시뮬레이션 결과는 A, B, C 입력 신호들 중어느 하나가 ‘1’일 때 출력 Y가 ‘1’이 되고 모든 입력들이 ‘0’일 때 Y는‘0’이 된다.

Page 39: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 3 / OR 게이트 설계

6.자료형(data type)과 객체(object)

97

HBE-COMBO II 트레이닝 키트에 프로그래밍 하기 위한 정보

3입력 OR 게이트 : A(KeypadA) 또는 B(KeypadB) 또는 C(KeypadC)를 누르면LED8의 불이 켜진다.

입 력 출 력 블록도

핀 이름

핀 번호 입력 장치 핀 이름 핀 번호출력 장

A Y10 KeypadA Y AC7 LED8

B W10 KeypadB

입 력 출 력 블록도

핀 이름

핀 번호 입력 장치 핀 이름 핀 번호출력 장

A Y10 KeypadA Y AC7 LED8

B W10 KeypadB

C AA9 KeypadC

2입력 OR 게이트 : A(KeypadA) 또는 B(KeypadB)를 누르면 LED8의 불이 켜진다.

Page 40: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 4 / NAND 게이트 설계

6.자료형(data type)과 객체(object)

98

Page 41: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 4 / NAND 게이트 설계

6.자료형(data type)과 객체(object)

99

2입력 NAND 게이트(동작적 표현) 3입력 NAND 게이트(동작적 표현)

LIBRARY ieee;USE ieee.std_logic_1164.all;ENTITY nand_2 IS

PORT(A, B : IN std_logic;Y : OUT std_logic);

END nand_2;ARCHITECTURE behav OF nand_2 ISBEGIN

PROCESS(A, B)BEGIN

IF A = '1' and B = '1' THEN Y <='0';

ELSE Y <='1';

END IF;END PROCESS;

END behav;

LIBRARY ieee;USE ieee.std_logic_1164.all;ENTITY nand_3 IS

PORT(A, B, C : IN std_logic;Y : OUT std_logic);

END nand_3;ARCHITECTURE behav OF nand_3 ISBEGIN

PROCESS(A, B, C)BEGIN

IF A = '1' and B = '1' and C = '1' THEN Y<= '0';

ELSE Y<= '1';

END IF;END PROCESS;

END behav;

IF문은 NAND 게이트의 기능을 나타내고 있다. 즉 모든 입력들이 ‘1’인 경우에는 출력 Y가 ‘0’이 되고 그 이외에는 ‘1’이 된다.

Page 42: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 4 / NAND 게이트 설계

6.자료형(data type)과 객체(object)

100

2입력 NAND 게이트(자료흐름적 표현1) 3입력 NAND 게이트(자료흐름적 표현1)

LIBRARY ieee; USE ieee.std_logic_1164.all;ENTITY nand_2 IS

PORT(A, B : IN std_logic;Y : OUT std_logic);

END nand_2;ARCHITECTURE dataflow OF nand_2 ISBEGIN

Y <= '0' WHEN A = '1' and B = '1'ELSE '1';

END dataflow;

LIBRARY ieee; USE ieee.std_logic_1164.all;ENTITY nand_3 IS

PORT(A, B, C : IN std_logic;Y : OUT std_logic);

END nand_3;ARCHITECTURE dataflow OF nand_3 ISBEGIN

Y <= '0' WHEN A = '1' and B = '1' and C = '1'ELSE '1';

END dataflow;

2입력 NAND 게이트(자료흐름적 표현2) 3입력 NAND 게이트(자료흐름적 표현2)

LIBRARY ieee; USE ieee.std_logic_1164.all;ENTITY nand_2 IS

PORT(A, B : IN std_logic;Y : OUT std_logic);

END nand_2;ARCHITECTURE dataflow OF nand_2 ISBEGIN

Y <= not(A and B);END dataflow;

LIBRARY ieee; USE ieee.std_logic_1164.all;ENTITY nand_3 IS

PORT(A, B, C : IN std_logic;Y : OUT std_logic);

END nand_3;ARCHITECTURE dataflow OF nand_3 ISBEGIN

Y <= not(A and B and C);END dataflow;

Page 43: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 4 / NAND 게이트 설계

6.자료형(data type)과 객체(object)

101

타이밍 시뮬레이션 결과

2입력 NAND 게이트의 시뮬레이션 결과는 A, B 두 입력 신호들이 모두 ‘1’일때출력 Y가 ‘0’이 되고 그 이외에서는 Y는 ‘1’이 된다. 생략된 3입력 NAND 게이트의 시뮬레이션 결과는 A, B, C 입력 신호들이 모두‘1’일 때 출력 Y가 ‘0’이 되고 그 이외에서는 Y는 ‘1’이 된다.

Page 44: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 4 / NAND 게이트 설계

6.자료형(data type)과 객체(object)

102

HBE-COMBO II 트레이닝 키트에 프로그래밍 하기 위한 정보

2입력 NAND 게이트는 LED8의 불이 켜진 상태에서 A(Keypad1)와 B(Keypad2)를 동시에 누르면LED8의 불이 꺼진다.

3입력 NAND 게이트는 LED8의 불이 켜진 상태에서 A(Keypad1), B(Keypad2), C(Keypad3)를 동시에 누르면 LED8의 불이 꺼진다.

입 력 출 력 블록도

핀 이름 핀 번호 입력 장치 핀 이름 핀 번호 출력 장치

A Y10 KeypadA Y AC7 LED8

B W10 KeypadB

입 력 출 력 블록도

핀 이름 핀 번호 입력 장치 핀 이름 핀 번호 출력 장치

A Y10 KeypadA Y AC7 LED8

B W10 KeypadB

C AA9 KeypadC

Page 45: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 5 / NOR 게이트 설계

6.자료형(data type)과 객체(object)

103

Page 46: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 5 / NOR 게이트 설계

6.자료형(data type)과 객체(object)

104

2입력 NOR 게이트(동작적 표현) 3입력 NOR 게이트(동작적 표현3)

LIBRARY ieee;USE ieee.std_logic_1164.all;ENTITY nor_2 IS

PORT(A, B : IN std_logic;Y : OUT std_logic );

END nor_2;ARCHITECTURE behav OF nor_2 ISBEGIN

PROCESS(A, B)BEGIN

IF A = '1' or B = '1' THEN Y <='0';

ELSE Y<= '1 ';

END IF;END PROCESS;

END behav;

LIBRARY ieee;USE ieee.std_logic_1164.all;ENTITY nor_3 IS

PORT(A, B, C : IN std_logic;Y : OUT std_logic );

END nor_3;ARCHITECTURE behav OF nor_3 ISBEGIN

PROCESS(A, B, C)BEGIN

IF A = '1' or B = '1' or C = '1' THEN Y<= '0';

ELSE Y<= '1';

END IF;END PROCESS;

END behav;

Page 47: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 5 / NOR 게이트 설계

6.자료형(data type)과 객체(object)

105

2입력 NOR 게이트(자료흐름적 표현 1) 3입력 NOR 게이트(자료흐름적 표현 1)

LIBRARY ieee; USE ieee.std_logic_1164.all;ENTITY nor_2 IS

PORT(A, B : IN std_logic;Y : OUT std_logic);

END nor_2;ARCHITECTURE dataflow OF nor_2 ISBEGIN

Y <= '0' WHEN A = '1' or B = '1'ELSE '1';

END dataflow;

LIBRARY ieee; USE ieee.std_logic_1164.all;ENTITY nor_3 IS

PORT(A, B, C : IN std_logic;Y : OUT std_logic);

END nor_3;ARCHITECTURE dataflow OF nor_3 ISBEGIN

Y <= '0' WHEN A = '1' or B = '1' or C = '1'ELSE '1';

END dataflow;

2입력 NOR 게이트(자료흐름적 표현 2) 3입력 NOR 게이트(자료흐름적 표현 2)

LIBRARY ieee; USE ieee.std_logic_1164.all;ENTITY nor_2 IS

PORT(A, B : IN std_logic;Y : OUT std_logic);

END nor_2;ARCHITECTURE dataflow OF nor_2 ISBEGIN

Y <= not(A or B);END dataflow;

LIBRARY ieee; USE ieee.std_logic_1164.all;ENTITY nor_3 IS

PORT(A, B, C : IN std_logic;Y : OUT std_logic);

END nor_3;ARCHITECTURE dataflow OF nor_3 ISBEGIN

Y <= not(A or B or C) ;END dataflow;

Page 48: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 5 / NOR 게이트 설계

6.자료형(data type)과 객체(object)

106

타이밍 시뮬레이션 결과

2입력 NOR 게이트의 시뮬레이션 결과는 A, B 입력 신호들 중 어느 하나가 1일때출력 Y가 ‘0’이 되고 모든 입력들이 ‘0’일 때 Y는 ‘1’이 된다. 생략된 3입력 NOR 게이트의 시뮬레이션 결과는 A, B, C 입력 신호들 중 어느 하나가 1일 때 Y가 ‘0’이 되고모든 입력들이 ‘0’일 때 Y는 ‘1’이 된다.

Page 49: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 5 / NOR 게이트 설계

6.자료형(data type)과 객체(object)

107

HBE-COMBO II 트레이닝 키트에 프로그래밍 하기 위한 정보

2입력 NOR 게이트는 LED8의 불이 켜진 상태에서 A(Keypad1) 또는 B(Keypad2)를 누르면 LED8의 불이 꺼진다.

3입력 NOR 게이트는 LED8의 불이 켜진 상태에서 A(Keypad1), 또는 B(Keypad2), 또는 C(Keypad3) 중어느 하나를 눌러도 LED8의 불이 꺼진다

입 력 출 력 블록도

핀 이름 핀 번호 입력 장치 핀 이름 핀 번호 출력 장치

A Y10 KeypadA Y AC7 LED8

B W10 KeypadB

입 력 출 력 블록도

핀 이름 핀 번호 입력 장치 핀 이름 핀 번호 출력 장치

A Y10 KeypadA Y AC7 LED8

B W10 KeypadB

C AA9 KeypadC

Page 50: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 6 / XOR, XNOR 게이트 설계

6.자료형(data type)과 객체(object)

108

Page 51: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 6 / XOR, XNOR 게이트 설계

6.자료형(data type)과 객체(object)

109

XOR 게이트(동작적 표현) XNOR 게이트(동작적 표현)

LIBRARY ieee; USEieee.std_logic_1164.all;ENTITY xor_2 IS

PORT(A, B : IN std_logic;Y : OUT std_logic);

END xor_2;ARCHITECTURE behav OF xor_2 ISBEGIN

PROCESS(A, B)BEGIN

IF (A = '0' and B = '1') or(A = '1' and B = '0') THEN Y <=

'1';ELSE Y <=

'0';END IF;

END PROCESS;END behav;

LIBRARY ieee; USE ieee.std_logic_1164.all;ENTITY xnor_2 IS

PORT(A, B : IN std_logic;Y : OUT std_logic);

END xnor_2;ARCHITECTURE behav OF xnor_2 ISBEGIN

PROCESS(A, B)BEGIN

IF (A = '0' and B = '0') or(A = '1' and B = '1') THEN Y <= '1';

ELSE Y <='0';

END IF;END PROCESS;

END behav;

Page 52: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 6 / XOR, XNOR 게이트 설계

6.자료형(data type)과 객체(object)

110

XOR 게이트(자료흐름적 표현 1) XNOR 게이트(자료흐름적 표현 1)

LIBRARY ieee; USE ieee.std_logic_1164.all;ENTITY xor_2 IS

PORT(A, B : IN std_logic;Y : OUT std_logic);

END xor_2;ARCHITECTURE dataflow OF xor_2 ISBEGIN

Y <= '0' WHEN A = B ELSE '1';END dataflow;

LIBRARY ieee; USE ieee.std_logic_1164.all;ENTITY xnor_2 IS

PORT(A, B : IN std_logic;Y : OUT std_logic);

END xnor_2;ARCHITECTURE dataflow OF xnor_2 ISBEGIN

Y <= '1' WHEN A = B ELSE '0';END dataflow;

XOR 게이트(자료흐름적 표현 2) XNOR 게이트(자료흐름적 표현 2)

LIBRARY ieee; USE ieee.std_logic_1164.all;ENTITY xor_2 IS

PORT(A, B : IN std_logic;Y : OUT std_logic);

END xor_2;ARCHITECTURE dataflow OF xor_2 ISBEGIN

Y <= A xor B;END dataflow;

LIBRARY ieee; USE ieee.std_logic_1164.all;ENTITY xnor_2 IS

PORT(A, B : IN std_logic;Y : OUT std_logic);

END xnor_2;ARCHITECTURE dataflow OF xnor_2 ISBEGIN

Y <= A xnor B;END dataflow;

Page 53: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 6 / XOR, XNOR 게이트 설계

6.자료형(data type)과 객체(object)

111

타이밍 시뮬레이션 결과

입력 신호 A와 B가 서로 다른 경우에 출력 신호 Y는 ‘1’이 되고, 서로 같은 경우에는 Y는 ‘0’이 된다.

입력 신호 A와 B가 서로 같은 경우에 출력 신호 Y는 ‘1’이 되고, 서로 다른 경우에는 Y는 ‘0’이 된다.

Page 54: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 6 / XOR, XNOR 게이트 설계

6.자료형(data type)과 객체(object)

112

HBE-COMBO II 트레이닝 키트에 프로그래밍 하기 위한 정보

XOR 게이트는 LED8의 불이 꺼진 상태에서 A(Keypad1) 또는 B(Keypad2)를 누르면 LED8의 불이 켜진다. 그러나 A와 B를 같이 누르면 LED8의 불이 꺼진다.

XNOR 게이트는 LED8의 불이 켜진 상태에서 A(Keypad1) 또는 B(Keypad2)를 각각 누르면 LED8의 불이꺼진다. 그러나 A와 B를 같이 누르면 LED8의 불이 켜진다.

입 력 출 력 블록도

핀 이름 핀 번호 입력 장치 핀 이름 핀 번호 출력 장치

A Y10 KeypadA Y AC7 LED8

B W10 KeypadB

입 력 출 력 블록도

핀 이름 핀 번호 입력 장치 핀 이름 핀 번호 출력 장치

A Y10 KeypadA Y AC7 LED8

B W10 KeypadB

Page 55: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 7 / 버퍼 게이트 설계

6.자료형(data type)과 객체(object)

113

Page 56: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 7 / 버퍼 게이트 설계

6.자료형(data type)과 객체(object)

114

동작적 표현

LIBRARY ieee; USE ieee.std_logic_1164.all;ENTITY buf IS

PORT(A : IN std_logic;Y : OUT std_logic);

END buf;ARCHITECTURE behav OF buf ISBEGIN

PROCESSBEGIN

IF A = '0' THEN Y <= '0';ELSE Y <= '1';END IF;

END PROCESS;END behav;

IF문은 버퍼 게이트의 기능을 나타내고 있다. 즉 입력 A가 ‘0’인 경우에는 출력 Y가 ‘0’이 되고그 외에는 ‘1’이 된다.

Page 57: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 7 / 버퍼 게이트 설계

6.자료형(data type)과 객체(object)

115

자료흐름적 표현 1에서 WHEN-ELSE 문은 입력 A가 ‘0’인 경우에는 출력 Y가 ‘0’이 되고, 그 외에는 ‘1’이되는 것을 나타낸다.

자료흐름적 표현 1 자료흐름적 표현 2

LIBRARY ieee;USE ieee.std_logic_1164.all;ENTITY buf IS

PORT(A : IN std_logic;Y : OUT std_logic);

END buf;ARCHITECTURE dataflow OF buf ISBEGIN

Y <= '0' WHEN A = '0 ELSE '1';END dataflow;

LIBRARY ieee;USE ieee.std_logic_1164.all;ENTITY buf IS

PORT(A : IN std_logic;Y : OUT std_logic);

END buf;ARCHITECTURE dataflow OF buf ISBEGIN

Y <= A;END dataflow;

Page 58: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 7 / 버퍼 게이트 설계

6.자료형(data type)과 객체(object)

116

타이밍 시뮬레이션 결과

입력 신호 A가 ‘1’인 경우 출력 Y는 ‘1’이 되고 A가 ‘0’인 경우에는 출력Y가 ‘0’이 된다.

Page 59: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 7 / 버퍼 게이트 설계

6.자료형(data type)과 객체(object)

117

HBE-COMBO II 트레이닝 키트에 프로그래밍 하기 위한 정보

트레이닝 키트의 초기상태는 LED8 불이 꺼진 상태이다. A(KeypadA)을 누르면 LED8의 불이 켜지고 A를 누르지 않으면 LED8이 꺼진다.

입 력 출 력 블록도

핀 이름 핀 번호 입력 장치 핀 이름 핀 번호 출력 장치

A Y10 KeypadA Y AC7 LED8

Page 60: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 8 / 3상태 버퍼 게이트 설계

6.자료형(data type)과 객체(object)

118

3상태 버퍼는 3가지 형태의 출력을 갖는다. 즉 0, 1 출력들과 고 임피던스(high impedance)를 나타내는 Z 출력이 존재한다.

S=0이면 3상태 버퍼는 입력 A와 같은 값을 Y로 출력한다. S=1이면 버퍼 출력은입력 값에 관계없이 고 임피던스가 되어 Y로 Z가 출력된다.

Page 61: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 8 / 3상태 버퍼 게이트 설계

6.자료형(data type)과 객체(object)

119

동작적 표현

LIBRARY ieee; USE ieee.std_logic_1164.all;ENTITY ts_buf IS

PORT(A, S : IN std_logic;Y : OUT std_logic);

END ts_buf;ARCHITECTURE behav OF ts_buf ISBEGIN

PROCESS(A, S)BEGIN

IF S = '0' THENIF A = '1' THEN Y <= '1';ELSE Y <= '0';END IF;

ELSE Y <= 'Z';END IF;

END PROCESS;END behav;

고임피던스(high impedance)를 나타내는 자료형은 반드시 대문자 ‘Z’로 표현해야 한다.

Page 62: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 8 / 3상태 버퍼 게이트 설계

6.자료형(data type)과 객체(object)

120

WHEN-ELSE 문은 입력 S가 ‘0’인 경우에는 출력 Y에 입력 A 신호가 전달되고 그 외에는Y는 ‘Z’이 되는 것을 나타낸다.

자료흐름적 표현

LIBRARY ieee; USE ieee.std_logic_1164.all;ENTITY ts_buf IS

PORT(A, S : IN std_logic;Y : OUT std_logic);

END ts_buf;ARCHITECTURE dataflow OF ts_buf IS

BEGINY <= A WHEN S = '0' ELSE 'Z';

END dataflow;

Page 63: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 8 / 3상태 버퍼 게이트 설계

6.자료형(data type)과 객체(object)

121

입력 신호 S가 ‘1’인 경우에는 입력 신호 A의 값에 관계없이 출력 신호 Y는 ‘Z’가 된다.

S=0이고 입력 신호 A가 ‘1(0)’인 경우 출력 신호 Y는 ‘1(0)’이 된다

타이밍 시뮬레이션 결과

Page 64: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 8 / 3상태 버퍼 게이트 설계

6.자료형(data type)과 객체(object)

122

HBE-COMBO II 트레이닝 키트에 프로그래밍 하기 위한 정보

S(KeypadB)를 누르지 않은 상태에서 입력 A(KeypadA)를 누르면 LED8의 불이 켜지고, 입력 A를 누르지 않으면 꺼진다. S(KeypadB)를 누른 상태에서는 입력 A에 관계없이 출력은 고임피던스 상태가 된다. 고임피던스 상태는 개방인 상태가 되므로 LED8는 꺼지게 된다.

입 력 출 력 블록도

핀 이름 핀 번호 입력 장치 핀 이름 핀 번호 출력 장치

A Y10 KeypadA Y AC7 LED8

S W10 KeypadB

Page 65: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 9 / 결합법칙을 이용한 4입력 AND 논리회로 설계

6.자료형(data type)과 객체(object)

123

결합법칙을 이용한 4입력 AND 논리회로 Y=ABCD

Page 66: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 9 / 결합법칙을 이용한 4입력 AND 논리회로 설계

6.자료형(data type)과 객체(object)

124

그림 (a)의 구조적 표현 : 신호 사용

◦ 컴포넌트 : AND_2.vhd(자료흐름적 표현)

LIBRARY ieee; USE ieee.std_logic_1164.all;ENTITY AND_2 IS

PORT(A, B : IN std_logic;Y : OUT std_logic);

END AND_2;ARCHITECTURE dataflow OF AND_2 ISBEGIN

Y <= A and B;END dataflow;

Page 67: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 9 / 결합법칙을 이용한 4입력 AND 논리회로 설계

6.자료형(data type)과 객체(object)

125

그림(a)의 구조적 표현

LIBRARY ieee; USE ieee.std_logic_1164.all;ENTITY and_4 IS

PORT(A, B, C, D : IN std_logic;Y : OUT std_logic);

END and_4;ARCHITECTURE structural OF and_4 IS

signal ab, cd : std_logic;component AND_2

port(A, B : in std_logic; Y : out std_logic);end component;BEGIN

ANDG1 : AND_2 port map(A, B, ab);ANDG2 : AND_2 port map(C, D, cd);ANDG3 : AND_2 port map(ab, cd, Y);

END structural;

Page 68: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 9 / 결합법칙을 이용한 4입력 AND 논리회로 설계

6.자료형(data type)과 객체(object)

126

그림(a)의 자료흐름적 표현

그림(a)의 자료흐름적 표현

LIBRARY ieee; USE ieee.std_logic_1164.all;ENTITY and_4 IS

PORT(A, B, C, D : IN std_logic;Y : OUT std_logic);

END and_4;ARCHITECTURE dataflow OF and_4 ISBEGIN

Y <= '0' WHEN C = '0' or D = '0' ELSE'0' WHEN A = '0' or B = '0' ELSE'1';

END dataflow;

Page 69: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 9 / 결합법칙을 이용한 4입력 AND 논리회로 설계

6.자료형(data type)과 객체(object)

127

그림(b)의 동작적 표현

그림(b)의 동작적 표현

LIBRARY ieee; USE ieee.std_logic_1164.all;ENTITY and_4 IS

PORT(A, B, C, D : IN std_logic;Y : OUT std_logic);

END and_4;ARCHITECTURE behav OF and_4 ISBEGIN

PROCESS(A, B, C, D)BEGIN

IF A= '1' and B='1' and C='1' and D='1' THEN Y <= '1';ELSE Y <= '0';END IF;

END PROCESS;END behav;

Page 70: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 9 / 결합법칙을 이용한 4입력 AND 논리회로 설계

6.자료형(data type)과 객체(object)

128

그림(c)의 자료흐름적 표현

그림(c)의 자료흐름적 표현

LIBRARY ieee; USE ieee.std_logic_1164.all;ENTITY and_4 IS

PORT(A, B, C, D : IN std_logic;Y : OUT std_logic);

END and_4;ARCHITECTURE dataflow OF and_4 ISBEGIN

Y <= A and B and C and D;END dataflow;

Page 71: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 9 / 결합법칙을 이용한 4입력 AND 논리회로 설계

6.자료형(data type)과 객체(object)

129

타이밍 시뮬레이션 결과

모든 입력 신호들이 ‘1’인 경우에 출력 신호 Y는 ‘1’이 되고, 입력 신호들 중 어느 1개라도 ‘0’인 경우에는 출력 신호 Y는 ‘0’이 된다.

Page 72: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 9 / 결합법칙을 이용한 4입력 AND 논리회로 설계

6.자료형(data type)과 객체(object)

130

HBE-COMBO II 트레이닝 키트에 프로그래밍 하기 위한 정보

입 력 출 력 블록도

핀 이름 핀 번호 입력 장치 핀 이름 핀 번호 출력 장치

A Y10 KeypadA Y AC7 LED8

B W10 KeypadB

C AA9 KeypadC

D V9 KeypadD

Page 73: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 10 / 분배법칙을 이용한 논리회로 설계

6.자료형(data type)과 객체(object)

131

A

A

B

C

B

C

A

AB

AC

Y= AB+AC

B+C

Y=

A(B+C)=AB+AC

(a) (b)

분배법칙을 이용한 논리회로 Y = AB + AC

Page 74: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 10 / 분배법칙을 이용한 논리회로 설계

6.자료형(data type)과 객체(object)

132

[자료흐름적 표현]

그림(a)의 자료흐름적 표현 1 그림(b)의 자료흐름적 표현 1

LIBRARY ieee; USE ieee.std_logic_1164.all;ENTITY div_logic IS

PORT(A, B, C : IN std_logic;Y : OUT std_logic);

END div_logic;ARCHITECTURE dataflow OF div_logic ISBEGIN

Y <= '1' WHEN A = '1' and C = '1' ELSE'1' WHEN A = '1' and B = '1'

ELSE '0';END dataflow;

LIBRARY ieee; USE ieee.std_logic_1164.all;ENTITY div_logic IS

PORT(A, B, C : IN std_logic;Y : OUT std_logic);

END div_logic;ARCHITECTURE dataflow OF div_logic ISBEGIN

Y <= '0' WHEN A = '0' ELSE'0' WHEN B = '0' and C = '0'

ELSE '1';END dataflow;

그림(a)의 자료흐름적 표현 2 그림(b)의 자료흐름적 표현 2

LIBRARY ieee; USE ieee.std_logic_1164.all;ENTITY div_logic IS

PORT(A, B, C : IN std_logic;Y : OUT std_logic);

END div_logic;ARCHITECTURE dataflow OF div_logic ISBEGIN

Y <= (A and B) or (A and C);END dataflow;

LIBRARY ieee; USE ieee.std_logic_1164.all;ENTITY div_logic IS

PORT(A, B, C : IN std_logic;Y : OUT std_logic);

END div_logic;ARCHITECTURE dataflow OF div_logic ISBEGIN

Y <= A and (B or C);END dataflow;

Page 75: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 10 / 분배법칙을 이용한 논리회로 설계

6.자료형(data type)과 객체(object)

133

[자료흐름적 표현]

그림(a)의 자료흐름적 표현 3 그림(b)의 자료흐름적 표현 3

LIBRARY ieee; USE ieee.std_logic_1164.all;ENTITY div_logic IS

PORT(A, B, C : IN std_logic;Y : OUT std_logic);

END div_logic;ARCHITECTURE dataflow OF div_logic IS

SIGNAL aandb, aandc : std_logic;BEGIN

aandb <= A and B;aandc <= A and C;

Y <= aandb or aandc;END dataflow;

LIBRARY ieee; USE ieee.std_logic_1164.all;ENTITY div_logic IS

PORT(A, B, C : IN std_logic;Y : OUT std_logic);

END div_logic;ARCHITECTURE dataflow OF div_logic IS

SIGNAL borc : std_logic;BEGIN

borc <= B or C;Y <= borc and A;

END dataflow;

Page 76: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 10 / 분배법칙을 이용한 논리회로 설계

6.자료형(data type)과 객체(object)

134

[구조적 표현]

컴포넌트 : and_2.vhd(동작적 표현)

LIBRARY ieee; USE ieee.std_logic_1164.all;ENTITY and_2 IS

PORT(A, B : in std_logic;Y : out std_logic);

END and_2;ARCHITECTURE behav OF and_2 ISBEGIN

PROCESS(A, B)BEGIN

IF A = '1' and B = '1' THEN Y <= '1';

ELSE Y <= '0';

END IF;END PROCESS;

END behav;

컴포넌트 : or_2.vhd(동작적 표현)

LIBRARY ieee; USE ieee.std_logic_1164.all;ENTITY or_2 IS

PORT(A, B : in std_logic;Y : out std_logic);

END or_2;ARCHITECTURE behav OF or_2 ISBEGIN

PROCESS(A, B)BEGIN

IF A = '1' or B = '1' THEN Y <= '1';ELSE Y <= '0';END IF;

END PROCESS;END behav;

Page 77: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 10 / 분배법칙을 이용한 논리회로 설계

6.자료형(data type)과 객체(object)

135

[구조적 표현]

그림(a)의 구조적 표현그림 그림 (b)의 구조적 표현

LIBRARY ieee; USE ieee.std_logic_1164.all;ENTITY div_logic IS

PORT(A, B, C : IN std_logic;Y : OUT std_logic);

END div_logic;ARCHITECTURE structure OF div_logic IS

signal ab, ac : std_logic;component AND_2

port(A, B : in std_logic; Y : out std_logic);end component;component OR_2

port(A, B : in std_logic; Y : out std_logic);end component;

BEGINANDG1 : AND_2 port map(A, B, ab);ANDG2 : AND_2 port map(A, C, ac);

ORG : OR_2 port map(ab, ac, Y);END structure;

LIBRARY ieee; USE ieee.std_logic_1164.all;ENTITY div_logic IS

PORT(A, B, C : IN std_logic;Y : OUT std_logic);

END div_logic;ARCHITECTURE structure OF div_logic IS

signal borc : std_logic;component AND_2

port(A, B : in std_logic; Y : out std_logic);end component;component OR_2

port(A, B : in std_logic; Y : out std_logic);end component;

BEGINORG : OR_2 port map(B, C, borc);ANDG : AND_2 port map(borc, A, Y);

END structure;

Page 78: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 10 / 분배법칙을 이용한 논리회로 설계

6.자료형(data type)과 객체(object)

136

타이밍 시뮬레이션 결과

입력 신호 A와 B가 동시에 ‘1’인 경우 또는 A와 C가 동시에 ‘1’인 경우출력 신호 Y는 ‘1’이 된다. 그 이외는 출력 신호 Y는 ‘0’이 된다.

Page 79: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 10 / 분배법칙을 이용한 논리회로 설계

6.자료형(data type)과 객체(object)

137

HBE-COMBO II 트레이닝 키트에 프로그래밍 하기 위한 정보

LED8의 불이 꺼진 상태에서 A(KeypadA)과 B(KeypadB) 또는 A(KeypadA)과 C(KeypadC)를 동시에 누르면LED8의 불이 켜진다.

입 력 출 력 블록도

핀 이름 핀 번호 입력 장치 핀 이름 핀 번호 출력 장치

A Y10 KeypadA Y AC7 LED8

B W10 KeypadB

C AA9 KeypadC

Page 80: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 11 / 마스크 시스템(mask system) 설계

6.자료형(data type)과 객체(object)

139

선택신호(sel)가 0이면 홀수 비트들을 마스크하고 1이면 짝수 비트들을마스크 하는 마스크 시스템을 설계

data3

data2

data1

data0

sel

data_m3

data_m2

data_m1

data_m0

(a)개념도 (b)심볼 (c)논리회로

sel

data

mask0

mask1

data_m

=

=

=

=

=

0

d3d2d1d0

0 1 0 1

0 d2 0 d0

1

d3d2d1d0

1 0 1 0

d3 0 d1 0

and

Page 81: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 11 / 마스크 시스템(mask system) 설계

6.자료형(data type)과 객체(object)

140

동작적 표현

LIBRARY ieee; USE ieee.std_logic_1164.all;ENTITY mask_system IS

PORT(data : IN std_logic_vector(3 downto 0);sel : IN std_logic;

data_m : OUT std_logic_vector(3 downto 0));END mask_system;ARCHITECTURE behav OF mask_system IS

CONSTANT mask0 : std_logic_vector := "0101";CONSTANT mask1 : std_logic_vector := "1010";

BEGINPROCESS(data, sel)BEGIN

IF sel = '0' THEN data_m <= data and mask0;ELSE data_m <= data and mask1;END IF;

END PROCESS;END behav;

동작적 표현에서 상수 mask0와 mask1을 ARCHITURE와 BEGIN 사이의 아키텍쳐 선언부에선언하였다.

Page 82: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 11 / 마스크 시스템(mask system) 설계

6.자료형(data type)과 객체(object)

142

타이밍 시뮬레이션 결과

sel=0이면 홀수비트들(data[1], data[3])이 마스크 되어 출력신호data_m[1]과 data_m[3]는 ‘0’이 된다. sel=1이면 짝수비트들(data0, data2)이 마스크 되어 출력신호 data_m[0]와 data_m[2]는 ‘0’이 된다.

Page 83: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 11 / 마스크 시스템(mask system) 설계

6.자료형(data type)과 객체(object)

143

HBE-COMBO II 트레이닝 키트에 프로그래밍 하기 위한 정보

sel(KeypadE)을 누르지 않으면 data[2](KeypadB)와 data[0](keyoadD) 입력이 출력으로 전달되고 sel(KeypadE) 을 누르면 data[3](Keypad1)와data[1](keyoad3) 입력이 출력으로 전달된다.

입 력 출 력 블록도

핀 이름 핀 번호 입력 장치 핀 이름 핀 번호 출력 장치

data[3] Y10 KeypadA data_m[3] AF6 LED5

data[2] W10 KeypadB data_m[2] AE6 LED6

data[1] AA9 KeypadC data_m[1] AD7 LED7

data[0] V9 KeypadD data_m[0] AC7 LED8

sel AE9 KeypadE

Page 84: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 11 / 마스크 시스템(mask system) 설계

6.자료형(data type)과 객체(object)

144

③ 변수(variable)

변수는 신호 사용이 불가능한 논리회로의 기능을 설명하기 위해서사용된다.

변수는 계산의 결과를 가질 때 사용되므로 계산의 결과를 임시 저장하는 역할을 한다.

변수는 프로세스 문 또는 부 프로그램 선언부에서 선언한다.

변수로 선언된 변수_이름에 값을 대입하기 위해서는 :=를

사용하며 오른쪽에서 왼쪽으로 값이 즉시 대입된다.

Page 85: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 11 / 마스크 시스템(mask system) 설계

6.자료형(data type)과 객체(object)

145

형식 및 사용 예

변수로 선언된 변수_이름에 값을 할당하기 위해서는 :=를 사용한다.

:=은 오른쪽에서 왼쪽으로 값이 즉시 할당된다.

■ 형식variable 변수_이름 {, 변수_이름} : 자료형[:= 초기값];

◦ 사용 예 variable VALUE1 : Integer;variable VALUE2 : std_logic;variable ARRAY_VALUE : std_logic_vector(0 to 7);

VALUE1 := 15; -- 변수 VALUE1에 15를 대입

VALUE2 := '1'; -- 변수 VALUE2에 ‘1’을 대입

ARRAY_VALUE := “01001000”; -- 변수 ARRAY_VALUE에 “01001000” 을 대입

Page 86: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 12 / 4입력 NAND 게이트 설계

6.자료형(data type)과 객체(object)

146

X(0)

X(1)

X(3)

X(2)

Y

tmp

tmp

tmp

tmp

변수 tmp는 프로세스 문의 변수 선언부인 PROCESS와 BEGIN 사이에서 선언되고 값을 할당하면 값이 즉시 할당된다.

Page 87: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 12 / 4입력 NAND 게이트 설계

6.자료형(data type)과 객체(object)

147

동작적 표현 1 동작적 표현 2

LIBRARY IEEE; USE IEEE.std_logic_1164.all;ENTITY nand_4 IS

PORT(X : in std_logic_vector(3 downto 0);Y : out std_logic);

END nand_4;ARCHITECTURE behav OF nand_4 ISBEGIN

PROCESS(X)VARIABLE tmp : STD_LOGIC;

BEGINtmp := X(0);tmp := X(1) AND tmp;tmp := X(2) AND tmp;tmp := X(3) AND tmp;Y <= not tmp;

END PROCESS;END behav;

LIBRARY IEEE; USE IEEE.std_logic_1164.all;ENTITY nand_4 IS

PORT(X : in std_logic_vector(3 downto 0);Y : out std_logic);

END nand_4;ARCHITECTURE behav OF nand_4 ISBEGIN

PROCESS(X)VARIABLE tmp : STD_LOGIC;

BEGINtmp := X(0);ANDX : FOR i IN 1 TO 3 LOOP

tmp := X(i) AND tmp;END LOOP ANDX;Y <= not tmp;

END PROCESS;END behav;

Page 88: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 12 / 4입력 NAND 게이트 설계

6.자료형(data type)과 객체(object)

148

타이밍 시뮬레이션 결과

입력 신호가 F(1111)일 때만 출력 Y는 0이 되고 나머지 상태에서는 1이 된다.

Page 89: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 12 / 4입력 NAND 게이트 설계

6.자료형(data type)과 객체(object)

149

HBE-COMBO II 트레이닝 키트에 프로그래밍 하기 위한 정보

입 력 출 력 블록도

핀 이름 핀 번호 입력 장치 핀 이름 핀 번호 출력 장치

X[3] Y10 KeypadA Y AC7 LED8

X[2] W10 KeypadB

X[1] AA9 KeypadC

X[0] V9 KeypadD

Page 90: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 12 / 4입력 NAND 게이트 설계

6.자료형(data type)과 객체(object)

150

3)속성(attribute)

• 속성(attribute)이란 자료형에 대한 동작이나 상태 표현을 위한 특성이다.

• 객체는 어떤 순간에 단 하나의 값만 갖지만 여러 가지의 속성을 가질 수 있다.

• 형식

• 속성_이름에는 low, high, left, right, pos, val, succ, pred, leftof, rightof, active, last_active, event, last_event, last_value, delayed, quit, stable, transaction등 여러 가지가 있다. 여기서는 논리회로설계에서 많이 사용되는 event 속성만 설명하기로 한다.

신호_이름'속성_이름

Page 91: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 12 / 4입력 NAND 게이트 설계

6.자료형(data type)과 객체(object)

151

• event 속성

• 논리회로 설계에서 클록 신호를 나타낼 때 클록의 상승 에지(rising edge) 또는 하강 에지(falling edge)에서 동작 즉, 클록 신호의 에지 상태에 따라 동작하는 경우에 event 속성을 사용할 수 있다.

◎ 형식CLK'EVENT -- CLK 클록에 event가 발생하면참값

◦ 사용 예CLK'EVENT and CLK = '1' -- CLK 클록이상승에지(rising edge)인지를확인

CLK'EVENT and CLK = '0' -- CLK 클록이하강에지(falling edge)인지를확인

Page 92: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 13 / JK 플립플롭 설계

6.자료형(data type)과 객체(object)

152

J K Q(t+1)

0 0 Q

0 1 0

1 0 1

1 1 Q´

Q(t+1)=JQ’+K’Q

J=K=‘0’일 때, 출력은 변하지 않고 현재상태를 유지한다. J=‘1’이고 K=‘0’일 때 출력은 1로 세트된다.

K=‘1’이고 J=‘0’일 때 출력은 0으로 세트된다.

J=K=‘1’인 조건은 출력을 보수로 토글시킨다.즉, Q(t)=‘0’이면 Q(t+1)=‘1’이고, Q(t)=‘1’이면 Q(t+1)=‘0’이 된다.

Page 93: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 13 / JK 플립플롭 설계

6.자료형(data type)과 객체(object)

153

동작적 표현

LIBRARY ieee; USE ieee.std_logic_1164.all;ENTITY jk_ff IS

PORT(J, K, CL : IN std_logic;Q : BUFFER std_logic);

END jk_ff;ARCHITECTURE behav OF jk_ff ISBEGIN

PROCESS(J, K, CL)BEGIN

IF CL'EVENT and CL = '1' THENIF J = '1' and K = '0' THEN Q <= '1';ELSIF J = '0' and K = '1' THEN Q <= '0';ELSIF J = '1' and K = '1' THEN Q <= not Q;END IF;

END IF;END PROCESS;

END behav;

Page 94: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 13 / JK 플립플롭 설계

6.자료형(data type)과 객체(object)

154

타이밍 시뮬레이션 결과

입력 신호 J와 K와 입력 신호 CL의 상승 에지에 동기되어 출력 신호값이 변한다.J=K=0에서 Q는 현재상태를 유지한다.J=0이고 K=1에서는 Q는 리세트(‘0’ 상태)가 되고, J=1이고 K=0에서는 Q는 세트(‘1’ 상태)된다. J=K=1에서는 Q는 토글되어 현재상태와 반대 상태로 바뀐다.

Page 95: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 13 / JK 플립플롭 설계

6.자료형(data type)과 객체(object)

155

HBE-COMBO II 트레이닝 키트에 프로그래밍 하기 위한 정보

LED8의 불이 꺼진 상태에서 J(KeypadA)을 누르고 CL(KeypadC)을 누르면 LED1의 불이 켜지고, K(KeypadB) 를누르고 CL을 누르면 LED8의 불이 꺼지며 J와 K를 동시에 누르고 CL을 누르면 LED8은 그 이전의 상태와 반대가 된다.

입 력 출 력 블록도

핀 이름 핀 번호 입력 장치 핀 이름 핀 번호 출력 장치

J Y10 KeypadA Q AC7 LED8

K W10 KeypadB

CL AA9 KeypadC

Page 96: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 14 / T 플립플롭 설계

6.자료형(data type)과 객체(object)

156

T Q(t+1)

0 Q

1 Q´

Q(t+1) = TQ’ + T’Q

Page 97: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 14 / T 플립플롭 설계

6.자료형(data type)과 객체(object)

157

동작적 표현

LIBRARY ieee; USE ieee.std_logic_1164.all;ENTITY t_ff IS

PORT(T, CL : IN std_logic;Q : BUFFER std_logic);

END t_ff;ARCHITECTURE behav OF t_ff ISBEGIN

PROCESS(T, CL)BEGIN

IF CL'EVENT and CL = '1' THENIF T = '1' THEN Q <= not Q;

END IF;END IF;

END PROCESS;END behav;

Page 98: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 14 / T 플립플롭 설계

6.자료형(data type)과 객체(object)

158

타이밍 시뮬레이션 결과

입력 신호 T는 입력 신호 CL의 상승 에지에 동기되어 출력 신호값이 변한다. T=0에서 Q는 현재상태를 유지한다. T=1에서는 Q는 토글되어 현재상태와 반대 상태로 바뀐다.

Page 99: ALTERA Quartus II Web Edition 8.0sp1 VHDLartoa.hanbat.ac.kr/.../VHDL2(Quartusll).pdf · 2020-03-16 · ALTERA Quartus II Web Edition 8.0sp1의VHDL VHDL 표현 6.자료형(data type)과객체(object)

ALTERA Quartus II Web Edition 8.0sp1의 VHDLVHDL 표현

실습 14 / T 플립플롭 설계

6.자료형(data type)과 객체(object)

159

HBE-COMBO II 트레이닝 키트에 프로그래밍 하기 위한 정보

T(KeypadA)를 누른 상태에서 CL(KeypadB)를 눌렀다 떼면 LED8은 이전 상태와 반대로 된다.

입 력 출 력 블록도

핀 이름 핀 번호 입력 장치 핀 이름 핀 번호 출력 장치

T Y10 KeypadA Q AC7 LED8

CL W10 KeypadB