티스토리 뷰
4비트 크기 비교기 설계하기
임의의 두 4비트 입력을 비교하여 결과를 출력하는 크기 비교기를 설계하시오.
input [3:0] A, [3:0] B, output L(A > B 표현), E(A = B 표현), S(A < B 표현)
두 입력의 크기를 비교하는 방법은 가장 큰 자리수부터 같은지를 검사하는 것이다. Table을 통해 정리할 수도 있고, 아래와 같은 방법을 사용할 수도 있다.
크기 비교기는 입력되는 두 수 A, B의 크기를 비교하여 어느 수가 큰지(또는 같은지)를 출력으로 나타내주는 조합회로이다. 만일 입력되는 두 수 A, B가 각각 n비트로 구성되었다면 적어도 이 회로의 입력 수는 2n개가 되며, 따라서 이 회로를 설계하기 위해서는 22n가지의 조합을 갖는 진리표를 작성하고 이로부터 간소화된 논리식을 구해야 한다. 그러나 n=3, 즉 비교되는 두 수가 각각 3비트로만 구성되어 있다고 하더라도 벌써 입력 갯수가 6이 되어 카노맵 등을 이용한 간소화된 논리식을 얻기가 어렵게 된다. 때문에 크기 비교기를 설계하기 위해 직관적으로 논리식을 얻을 수 있는 다른 방법을 모색해본다.
먼저 2개의 10진수 크기를 서로 비교해서 어느 수가 더 큰지를 알아내는 방법을 생각해 보자. 만일 십진수 12345와 12678를 비교한다면 어느 수가 더 큰가? 당연히 12678이 더 크다. 여러분은 12678이 더 크다는 것을 어떻게 알아냈는가? 여러가지 방법이 있겠지만 다음과 같은 방법을 생각해 보자. 먼저 비교되는 두 수의 자릿수를 맞춰준 다음에, 맨 왼쪽 자리 부터 한자리씩 차례로 대응되는 숫자끼리 비교해 나가되, 비교되는 두 숫자 중 어느 한쪽이 크면 더 이상 비교할 필요도 없이 그 큰 숫자를 포함하는 수가 더 크다고 판단하면 된다. 예를 들어 12345와 12678을 비교해보면 먼저 두 수가 모두 다섯자리의 숫자로 구성되어 있으므로 자릿수를 따로 맞출 필요는 없다. 다음에 맨 왼쪽 숫자끼리 서로 비교해보면 1, 1로 서로 같다. 따라서 다음에는 왼쪽에서 두번째 자리에 위치한 숫자끼리 비교하는데 이것 역시 2, 2로 서로 같다. 다음에는 왼쪽에서 세번째 자리에 위치한 3과 6를 비교하게 되는데 6이 3보다 크므로 더 이상의 아랫자리들은 비교해 볼 것도 없이 12678이 12345보다 크다고 판단할 수 있다. 이진수의 경우도 마찬가지 요령으로 두 수의 크기를 비교할 수 있다.
각각이 4자리로 구성된 아래와 같은 이진수 A와 B의 크기를 비교해 보자.(정확히 말하면 두 수 A와 B는 양수라고 가정하여야 한다. 만일 A와 B가 2의 보수를 이용해 표현된 정수라고 하면 이야기가 달라진다.) 여기서 아랫첨자를 갖는 문자 A3, A2, ..., B1, B0는 각각 이진숫자 0 또는 1을 의미한다.
A = A3A2A1A0
B = B3B2B1B0
위의 두 수 A와 B가 같을 경우는 대응되는 두 이진숫자가 모두 같은 경우(A3=B3, A2=B2, A1=B1, A0=B0)이다. A가 B보다 큰 경우는 A3=1 이고 B3=0 이거나, A3=B3 이면서 A2=1, B2=0 이거나, A3=B3, A2=B2 이면서 A1=1, B1=0 이거나, A3=B3, A2=B2, A1=B1 이면서 A0=1, B0=0 인 경우이다. 반대로 B가 A보다 큰 경우는 A3=0 이고 B3=1 이거나, A3=B3 이면서 A2=0, B2=1 이거나, A3=B3, A2=B2 이면서 A1=0, B1=1 이거나, A3=B3, A2=B2, A1=B1 이면서 A0=0, B0=1 인 경우이다.
대응되는 두 숫자가 같다는 것을 나타내기 위해 다음과 같은 논리식을 생각해 보자
xi = AiBi + Ai'Bi', 단 i=0,1,2,3
위 식에서 첫번째 항 AiBi는 대응되는 두 숫자가 모두 1인 경우를 나타내며, 두번째 항 Ai'Bi'는 두 숫자가 모두 0인 경우를 나타낸다. 따라서 변수 xi는 대응되는 두 숫자 Ai와 Bi가 모두 1로 같거나 0으로 같은 경우에 1이 된다. 이 xi 변수를 사용해서 두 수 A와 B가 같은 경우 (A=B)를 논리식으로 표현하면 아래와 같다.
(A=B) = x3x2x1x0
위 식에서 (A=B)가 1이 되는 경우는 당연히 x3, x2, x1, x0이 모두 1인 경우이며, 이는 대응되는 모든 숫자가 같은 경우를 뜻한다.
같은 요령으로 A가 B보다 큰 경우 (A>B)나, B가 A보다 큰 경우 (A<B)를 논리식으로 나타내면 다음과 같다.
(A>B) = A3B3' + x3A2B2' + x3x2A1B1' + x3x2x1A0B0'
(A<B) = A3'B3 + x3A2'B2 + x3x2A1'B1 + x3x2x1A0'B0
위의 논리식을 이용해 설계한 크기 비교기 회로를 그림에 나타내었다. 그림에서 회색부분의 회로는 XNOR 게이트의 등가회로이다.
'반도체, 디스플레이' 카테고리의 다른 글
웨어러블 디스플레이 (0) | 2017.10.16 |
---|---|
LED의 원리 (0) | 2017.10.13 |
트랜지스터의 작용 (0) | 2017.10.13 |
전자전기물성 문제2 (0) | 2017.10.13 |
전자전기물성 문제 (0) | 2017.10.13 |
- Total
- Today
- Yesterday
- 기상
- 다이오드
- 웨어러블
- 하이닉스
- 효과
- 사이 채우기
- 전계효과트랜지스터
- 전계
- 바이폴라정션트랜지스터
- photo transistor
- 공정
- BJT
- 집적회로
- 장비
- MOSFET
- DIODE
- 증착
- cvd
- LCD
- 실리콘
- cae
- Semiconductor
- TFT
- 반도체
- 트랜지스터
- CV
- 화학
- Gap
- six sigma
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |