5
오브젝트
조합 회로
이 장에서 다룰 내용
이 장에서 다룰 내용
2배타적 논리합 회로
1
선택기
2
비교기
3
인코더
4
디코더
5
7-
세그먼트 디코더의 설계
6
패리티 회로
7
3
Section 01
배타적 논리합 회로
진리표와 카르노 맵
EXclusive-OR( 또는 EXOR)
4
Section 01
배타적 논리합 회로
VHDL
기술 방법
1. 데이터 플로우 레벨 : 회로의 논리식을 논리 연산자로 기술 2. 동작레벨 : 회로의 기능이나 동작위주로 기술 (process 문 , if 문 등을 사 용 ) EXOR
회로의 VHDL 기술
(데이터 플로우 ) U0 ~ U4 : 기본 게이트의 인스턴스명 NET0 ~ NET3 : 각 인스턴스의 출력을 연결하는 중간신호*
Signal : 회로 내의 중간 신호를 사용할 때 선언 실습5
6
Section 01
배타적 논리합 회로
EXOR
회로의 VHDL
기술 동작 레벨
–
Process 문 • 동작 레벨로 조합회로를 기술할 경우에는 반드시 모든 입력 신호를 신호감지리스트 에 기술해야만 함 If 문 • 조건 결과가 " 참 " 의 경우에는 then 의 뒤의 순차문을 실행하고 , " 거짓 " 의 경우 에는 else 의 순차문을 실행 • If문은 process 문 내에서만 사용가능 실습7
Section 01
배타적 논리합 회로
테스트 벤치
버스표현의 비트분할
8
Section 01
배타적 논리합 회로
For-loop 문
9
Section 01
배타적 논리합 회로
시뮬레이션 결과 정리 • 데이터 플로우 레벨의 기술은 논리식을 논리 연산자로 기술한 모델 • 동작 레벨은 내부 회로 구성을 게이트 단위나 논리식으로 생각하지 않고 , 회로의 동 작이나 기능 위주로 기술하는 모델 • 테스트 벤치는 하위층 엔티티에 필요한 신호를 주고 이에 따른 출력 변화를 관측하 는 것이 목적10
Section 02
선택기
데이터 선택기 (data selector) 혹은 멀티플렉서 (multiplexer) 라고도 하며 ,
선택신호와 여러 개의 입력을 가지며 , 선택신호의 값에 따라 여러 개의 입력
중에서 한 신호를 선택하여 출력하는 회로
11
Section 02
선택기
12
Section 02
선택기
다중 4- 대 -1 선택기 • 다중 4- 대 -1 선택기는 4개의 입력 중 하나를 선택하여 출력하는 회로이지만 , 각 입력은 1 비트의 신호가 아니라 여러 비트를 한 묶음으로 갖는 신호이고 출력도 마 찬가지13
Section 02
선택기
선택기의 VHDL 기술
데이터 플로우 레벨
14
Section 02
선택기
선택기의 VHDL 기술
데이터 플로우 레벨
15
Section 02
선택기
선택기의 VHDL 기술
데이터 플로우 레벨
16
Section 02
선택기
When ( 조건부 신호 대입 )- 데이터플로우 레벨로 분류
17
Section 02
선택기 - 실습
When ( 조건부 신호 대입 )
18
Section 02
선택기 - 실습
When ( 조건부 신호 대입 )
19
Section 02
선택기
선택기의 VHDL 기술
동작레벨 (if 문 이용 )
20
Section 02
선택기 - 실습
선택기의 VHDL 기술
동작레벨 (if 문 이용 )
21
Section 02
선택기 - 실습
선택기의 VHDL 기술
동작레벨 (if 문 이용 )
22
Section 02
선택기
선택기의 VHDL 기술
동작레벨 (Case 문 이용 )
23
Section 02
선택기 - 실습
선택기의 VHDL 기술
동작레벨 (Case 문 이용 )
24
Section 02
선택기 - 실습
선택기의 VHDL 기술
동작레벨 (Case 문 이용 )
25
Section 02
선택기
테스트 벤치와 시뮬레이션 결과
26
Section 02
선택기
27
Section 02
선택기
28
Section 03
비교기
비교기
진리표와 카르노 맵 • 2 입력 일치 회로 • 2 입력 불일치 회로 : EXOR 회로 그 자체 • 2 비트 비교기29
30
Section 03
비교기
비교기의 VHDL 기술
31
Section 03
비교기
32
Section 03
비교기
33
Section 03
비교기
34
Section 03
비교기
입력 버스 폭을 확장한 비교기
비트수가 많은 비교기에서는 1 비트 비교기를 확장하는 것도 하나의 방법 1- 비트 비교기 반비교기의 기능 강화35
Section 03
비교기
36
Section 03
비교기
전비교기 및 4
비트 비교기의 VHDL 기술
전비교기를 부프로그램화 function 문은 1개의 값을 반환할 때 사용 procedure 문은 여러 개의 값을 반환할 때 사용 • function 문 • variable 문37
Section 03
비교기
38
Section 03
비교기
39
Section 03
비교기
40
Section 03
비교기
41
Section 04
인코더
인코더 (encoder, 부호기 ) : 입력에 대응하는 부호를 만들어 내는 회로 전반 의 명칭 디코더 (decoder, 복호기 ) : 어느 부호로부터 원래의 신호를 재생하는 회로 10
진 -BCD 코드
단점 • 입력 [IN0] 를 사용하고 있지 않기 때문에 스위치가 전부 OFF이거나 스위치 [0] 이 ON 이 되면 출력은 모두 '0‘. 결국 , 이 회로는 이러한 2개의 상태를 식별할 수 없 음 • 2 개 이상의 스위치를 동시에 눌렀을 때 문제 발생42
Section 04
인코더
문제를 해결한 인코더
스위치가 아무것도 눌려 있지 않았을 때나 여러 개의 스위치가 눌려 있을 때는 [OUT1]='1', [OUT0]='1‘ 스위치가 1 개만 눌려 있을 때는 스위치 번호를 [OUT0], [OUT1] 에 출력43
Section 04
인코더
10
진 -BCD
인코더의 시뮬레이션
동작 레벨 • When문을 이용하여 각각의 문장에 해당하는 처리 • 스위치를 2 개 누르거나 , 전부 눌러지지 않았을 경우 1111” “ 을 출력44
Section 04
인코더
테스트 벤치
45
Section 04
인코더
46
Section 04
인코더
47
Section 04
인코더
패키지 호출과 타입 변환 함수
VHDL 에서는 데이터 타입이 다른 신호를 직접 대입이 불가능 따라서 , 서로 다른 데이터 타입을 대입하려면 타입 변환 함수를 사용해서 데 이터 타입을 동일하게 해야 함 타입 변환 함수는 종류에 따라 새롭게 호출할 패키지가 각기 다르므로 , [std_logic_1164] 의 패키지만으로는 컴파일시 오류가 발생 지금까지 사용한 [std_logic_1164] 은 일반적인 회로 기술이나 시뮬레이션 기술에서 사용하는 기본 패키지이지만 , 이 밖에도 ·std_logic_signed: 부호가 있는 연산 ·std_logic_unsigned: 부호가 없는 연산 ·std_logic_arith: 부호 혼재 연산 타입 변환 함수와 관련된 대표적인 패키지 • conv_std_logic_vector( 값 , 비트 폭 ) ; Integer 형을 std_logic_vector 형으로 변환하는 함수 std_logic_arith 패키지를 호출 • conv_integer( 값 ) ; std_logic_vector 형을 integer형으로 변환하는 함수 std_logic_unsigned 패키지를 호출 • 사용할 때는 필요한 패키지 호출 방법 • use IEEE. 호출할 패키지 . all;48
Section 05
디코더
디코더 :
인코더 등으로 부호화한 데이터를 원래의 신호로 되돌리는
회로
BCD-10
진 디코더
입력은 BCD 코드에 대응한 4 비트가 되고 , 출력은 10 진수에 대응한 10 비트49
Section 05
디코더
50
Section 05
디코더
51
Section 05
디코더
52
Section 06
7-
세그먼트 디코더의 설계
53
Section 06
7-
세그먼트 디코더의 설계
54
Section 06
7-
세그먼트 디코더의 설계
55
Section 07
패리티 회로
패리티 (parity)
데이터 전달시 잡음 등의 영향으로 데이터가 올바르게 전달될 수 없을 경우를 대비하기 위한 것으로 , 데이터 오류를 검출하는 방법 4
비트 패리티 생성기
짝수 패리티 경우56
Section 07
패리티 회로
5
비트 패리티 검사기
짝수 패리티 경우
57
Section 07
패리티 회로
4
비트 짝수 패리티 생성기의 시뮬레이션
58
Section 07
패리티 회로
59