1
Digital design
4장. 조합 논리
4-1 조합 회로
•
출력값이 현재의 입력값에 의해 결정됨•
입력변수와 논리 게이트, 출력 변수들로 구성됨3
4-2 분석 절차
• 회로가 수행하는 기능을 결정하는 과정
• 분석 절차
• 회로가 조합 회로인지 순차 회로인지 확인한다.
• 출력단의 Boole 함수 또는 진리표를 구한다.
유도 과정
• Boole 함수
• 모든 게이트의 출력에 기호를 붙인다.
• 각 게이트의 출력에 대한 Boole함수를 구한다.
• 최종 출력에 입력 변수들을 대입한다.
• 진리표
• 입력 변수들을 2진수로 놓는다.
• 각각의 게이트에 해당하는 출력값을 결정한다.
• 진리표를 구한다.
5
유도 과정
4-3 설계 절차
• 설계 절차
• 설계 사양으로부터 필요한 입/출력의 개수를 정한 다.
• 각각의 입/출력에 대하여 문자 기호를 붙인다.
• 진리표를 구한다.
• 간략화된 Boole 함수를 유도한다.
• 논리도를 그리고 설계의 정확성을 검증한다.
7
코드 변환 예
• BCD to excess-3 코드 변환기
• Excess-3 code : 10진값에 3을 더한 2진 코드
• 설계 절차
1)입력과 출력의 결정
입력 : A,B,C,D (0000∼1001) 출력 : W,X,Y,Z (0011∼1100)
코드 변환 예
2)진리표 구하기
9
코드 변환 예
3)간략화된 Boole 함수 구하기
코드 변환 예
4)논리도 그리기
11
4-4 2진식 덧셈기-뺄셈기
• 2진식 덧셈기
• 반덧셈기 : 2비트를 더하는 기능 수행(x+y)
• 덧셈기 : 3비트를 더하는 기능 수행(x+y+z)
• 2개의 반덧셈기는 하나의 덧셈기로 쓸 수 있다.
• 2진 덧셈기 – 뺄셈기의 구현
• 반덧셈기
• 덧셈기
• n개 덧셈기의 직렬 연결
• 보수회로의 추가
반덧셈기
•
두 2진 입력의 합•
입력 : X(피가산수), Y(가산수) 출력 : S(sum), C(carry)S=xy′+x′y
C=xy
13
반덧셈기
덧셈기
•
세 2진 입력의 합•
입력 : X,Y(2개의 유효비트),Z(하나의 캐리비트)•
출력 : S(sum),C(carry)15
덧셈기
2진 덧셈기
•
두 n비트 2진수의 합• 4비트 덧셈기 A=1011, B=0011
17
캐리의 전파
• 지연시간의 증가(캐리 지연)
• 캐리 룩어헤드를 통해 해결 가능
• 모든 캐리는 Pi,Gi, C0 의 함수이다!
캐리 전파
•
캐리 룩어헤드 생성기19
캐리 전파
• 캐리 룩어헤드를 가진 4비트 덧셈기
2진 뺄셈기
• A-B는 A+(B에 대한 2의 보수) 와 같다.
• M=0 : 덧셈기, M=1 : 뺄셈기
21
오버플로
• n자리 수들의 합에 대한 결과는 n+1자리가 필요
• 두 수가 같은 부호일때만 발생
(오버플로의 예)
4-5 10진 덧셈기
• 10진수 값을 2진수 형태로 계산해서 표현
• BCD 코드에 대한 10진 덧셈기
23
BCD Adder
• 2개의 BCD수를 합 한 BCD 출력
• 출력이 1010에서
1111사이의 값이면 캐리 발생
• C=K+Z
8Z
41010+Z
8Z
21011 1100
1101 1110 1111
4-6 Binary multiplier
• 2bit x 2bit = 4bit(max)
25
2진 곱셈기
•
(K비트) x (J비트)• (K x J)개의 AND 게이트, (J-1)개의 K비트 덧셈기 필
요
B3B2B1B0 x A2A1A0
4-7 크기 비교기
• X i =1 i번째 비트에 있 는 짝이 같을 때에만
• (A=B)=x
3x
2x
1x
0• (A>B)=A
3B
3′+x
3A
2B
2′+x
3x
2A
1B
1′+x
3x
2x
1A
0B
0′
• (A<B)=A
3′B
3+x
3A
2′B
2
+x
3x
2A
1′B
1+x
3x
2x
1A
0′
B
27
4-8 디코더
• n개의 입력변수에 대해 2ⁿ개까지의 최소항 생성
• 예)3-to-8 라인 디코더
디코더
•
Enable 입력을 갖는 2-to-4 라인 디코더• 신호 E로써 회로의 동작을 조절
29
디코더
• Enable 입력을 갖는 디코더는 더 큰 디코더 로 확장 가능
예)2개의 3x8디코더를 이용한 4x16디코더
디코더
•
조합 논리의 구현• 어떠한 조합 논리 회로라도 라인 디코더와 OR게이트로써 구현 가능
• 예)덧셈기
31
4-9 인코더
•
디코더의 반대 기능 수행•
2ⁿ 개의 입력값에 대해 n개의 출력을 생성• 예) 8-to-2 인코더
우선순위 인코더
• 동시에 둘 이상의 입력값이 1인 경우 문제 발 생
• 회로에 우선 순위를 부여
33
4-10 멀티플렉서
• 많은 입력라인 중에서 하나의 2진 정보를 선 택, 출력
• 선택은 선택라인에 의해서 제어됨
• 2ⁿ 개의 입력라인에는 n개의 선택라인이 필요
멀티플렉서
•
4-to-1 라인 멀티플렉서35
멀티플렉서
•
4중 2-to-1 라인 멀티플렉서멀티플렉서
•
Boole 함수의 구현• 함수의 최소항들이 MUX를 통해 생성됨
• N개의 입력벽수와 n-1개의 선택 입력
37
멀티플렉서
•
3상태 게이트• 논리1, 논리0, 높은 임피던스 세가지 상태 소유
•
• 높은높은 임피던스임피던스 상태는상태는 개방회로처럼개방회로처럼 동작동작
멀티플렉서
•
3상태 게이트를 갖는 멀 티플렉서39
4-11 조합회로의 HDL
• 모델링 방법:
• 게이트 레벨 모델링
기본기본 게이트와게이트와 사용자사용자 정의정의 모듈을모듈을 이용이용• 데이터 흐름 모델링
연속적인연속적인 지정지정 구문인구문인assign
을을 이용이용• 동작 모델링
단계적인단계적인 지정지정 구문인구문인always
를를 이용이용게이트 레벨 모델링
• 회로를 게이트와 게이트들간의 연결관계로서
표현
41
예시(Instantiation)
•
4비트 덧셈기에서의 예시
43
데이터 흐름 모델링
• 연산자와 피연산자
를 이용해 net에 값 을 할당
eg)J=01,K=10 can be {J,K}=0110
out=x ? A : B는 x가 사 실인 경우 out=A를 거짓 인 경우 out=B를 출력
지정
•
2-to-4 라인 디코더45
4비트 덧셈기
동작 모델링
• 단계적인 지정 구문인 always 를 이용
• 목표 출력은 reg reg
데이터형식이어야 함
Eg)4-to-1 라인 멀 티플렉서
47
간단한 테스트 벤치의 작성
•
테스트 벤치 : 기술된 HDL을 테스트하고 결과 를 보기 위해 stimulus를 적용 하는 것• reg
- 입력 ,wire
- 출력System tasks
• System tasks : 다양한 출력을 화면에 나 타내주는 핵심어($로 시작)
• $display , $write , $monitor , $time ,
$finish
• system tasks의 형식
• Task명(형식, 변수명);
• Eg) $monitor(%d %b %b, C,A,B);
49