본문 바로가기

Contact English

【논리설계】 3강. 조합논리

 

3강. 조합논리(combinational logic)

 

추천글 : 【논리설계】 논리설계 목차


1. 논리회로 소자 [본문]

2. 논리회로 구현 [본문]

3. 논리회로 개선 1. 불 대수학 [본문]

4. 논리회로 개선 2. two-level simplification [본문]


 

1. 논리회로 소자 [목차]

⑴ Y를 출력, X, A, B를 입력이라고 가정

⑴ 종류 1. 버퍼 게이트(buffer gate) : 전송 게이트라고도 함. Y = X

① 논리적 의미를 가지지 않으나 통신 분야 등에서 사용됨

 구현 1. BJT 트랜지스터를 통한 구현 (TTL, transistor-transistor logic)

○ vi = ON인 경우 : 트랜지스터 스위치가 ON이 되므로 vcc의 전압이 vo로 통함

○ vi = OFF인 경우 : R1으로 전류가 흐르지 않으므로 vo = 0

 

Figure. 1. 이미터 팔로워를 이용한 전압 팔로워

 

③ 구현 2. NOT gate를 통한 LED 버퍼 게이트 구현

○ vi = ON인 경우 : 인버터의 출력단자가 OFF이므로 LED에 전류가 흘러 LED가 발광함

○ vi = OFF인 경우 : 인버터의 출력단자가 ON이므로 LED에 전류가 흐르지 않아 LED가 발광하지 않음

 

Figure. 2. NOT gate를 이용한 LED 버퍼 게이트의 구현

 

④ 구현 3. BJT 트랜지스터를 이용한 구현 (TTL, transistor-transistor logic)

○ vi = ON인 경우 : Q1 다이오드가 OFF이고 Q2에 베이스 전류 및 컬렉터 전류가 흐르지 않아 Vcc가 곧장 인가됨

○ vi = OFF인 경우 : Q1 다이오드가 ON이고 Q2가 ON이 되어 vo에 접지가 연결됨

 

Figure. 3. BJT 트랜지스터를 이용한 NOT gate의 구현

 

⑤ 구현 4. 다이오드와 BJT 트랜지스터를 이용한 구현 (DTL, diode-transistor logic)

 vi = ON인 경우 : Q1 OFF → Q2 OFF → Q4 OFF → Vcc - Q3의 vBE 전압 - D1의 문턱전압만큼 vo에 인가됨

 vi = OFF인 경우 : Q1 ON → Q2 ON → Q4 ON → 접지가 vo에 인가됨

○ 다이오드의 역할 : Q2와 Q4가 ON일 때 Q3가 ON이 되는 것을 방지함

 

Figure. 4. 다이오드와 BJT 트랜지스터를 이용한 NOT gate의 구현

 

구현 5. 3 상태 제어선, 다이오드, BJT 트랜지스터를 이용한 구현

○ TSL circuit(tri-state logic circuit) : gate가 high state, low state, high-impedance state 등 세 가지 상태를 가짐

○ 3 상태 제어선이 HIGH : 입력이 ON이면 출력은 HIGH (inverter 기능)

○ 3 상태 제어선이 LOW : 출력선은 LOW도 HIGH도 아닌 floating 상태 (high-impedance state)

○ high-impedance 상태에서는 TTL 출력 핀과 내부 회로가 절연됨

○ 사용하지 않을 때 TTL과 접속회로를 분리해 둠

Figure. 5. 상태 제어선, 다이오드, BJT 트랜지스터를 이용한 NOT gate의 구현

 

⑶ 종류 2. NOT gate : 인버터(inverter)라고도 함. Y = X'

 

 

Figure. 6. NOT gate의 기호

 

구현 1. BJT 트랜지스터를 통한 구현 (TTL, transistor-transistor logic)

○ vi = ON인 경우 : 트랜지스터 스위치가 ON이 되므로 vo = 0

○ vi = OFF인 경우 : R1으로 전류가 흐르지 않으므로 vo = Vcc 

 

Figure. 7. BJT 트랜지스터를 이용한 NOT gate의 구현

 

구현 2. BJT 트랜지스터를 통한 구현 (개선) (TTL, transistor-transistor logic)

○ vi = OFF일 때 확실하게 트랜지스터를 OFF 시키기 위해 별도의 전원을 연결함

Figure. 8. BJT 트랜지스터를 이용한 NOT gate의 구현

 

③ (참고구현 3. CMOS 트랜지스터를 이용한 구현 

○ pMOS 1개와 nMOS 1개가 필요함

○ VHigh 또는 VLow에 저항이 연결돼 있음 : 만에 하나 스위치가 동시에 닫혀도 문제되지 않음

 

 

 

Figure. 9. CMOS를 이용한 NOT gate의 구현

 

④ 예 : IC 7404, IC 7416

⑷ 종류 3. AND gate : Y = A · B

 

 

Figure. 10. AND gate 기호

 

구현 1. 다이오드를 이용한 구현

○ A와 B 모두 ON인 경우 : R1에 전류가 흐르지 않으므로 vo = Vcc 

○ A와 B 중 하나라도 ON이 아닌 경우 : OFF인 단자의 다이오드가 도통 상태가 되어 vo = OFF가 됨

Figure. 11. 다이오드를 이용한 AND gate의 구현

 

구현 2. BJT 트랜지스터를 이용한 구현 (TTL, transistor-transistor logic)

○ A와 B 모두 ON인 경우 : 두 트랜지스터가 ON이 되므로 vo = Vcc 

○ A와 B 중 하나라도 ON이 아닌 경우 : 하나 이상의 트랜지스터가 OFF이므로 R3에 전류가 흐르지 않아 vo = 0

 

Figure. 12. BJT 트랜지스터를 이용한 AND gate의 구현

 

③ (참고구현 3. NOT gate와 NAND gate로 구현 : 총 6개의 CMOS 트랜지스터가 필요

 

Figure. 13. NOT gate와 NAND gate를 이용한 AND gate의 구현

 

④ 예 : IC 7408 

⑸ 종류 4. OR gate : Y = A + B

 

 

Figure. 14. OR gate 기호

 

구현 1. 다이오드를 이용한 구현

○ A와 B 중 하나라도 ON인 경우 : 그 다이오드가 도통되면서 vo에도 ON에 해당하는 전압이 인가됨 

○ A와 B 모두 OFF인 경우 : R4에 전류가 흐르지 않으므로 vo = 0 

 

Figure. 15. 다이오드를 이용한 OR gate의 구현

 

구현 2. BJT 트랜지스터를 이용한 구현 (TTL, transistor-transistor logic)

○ A와 B 중 하나라도 ON인 경우 : 그 트랜지스터가 ON이 되므로 Vcc가 vo에도 인가됨

○ A와 B 모두 OFF인 경우 : R1에 전류가 흐르지 않으므로 vo = 0

 

Figure. 16. BJT 트랜지스터를 이용한 OR gate의 구현

 

③ (참고구현 3. NOT gate와 NOR gate로 구현 : 총 6개의 CMOS 트랜지스터가 필요

 

Figure. 17. OR gate 회로도

 

 

④ 예 : IC 7432 

⑹ 종류 5. NAND gate : Y = (A·B)' = A' + B'

 

 

Figure. 18. NAND gate 기호

 

구현 1. BJT 트랜지스터를 이용한 구현 (TTL, transistor-transistor logic)

○ A와 B가 모두 ON인 경우 : 트랜지스터가 모두 ON이므로 vo는 접지와 연결됨

○ A와 B 중 하나라도 OFF인 경우 : R1에 흐르는 전류가 0이므로 vo = Vcc 

Figure. 19. BJT 트랜지스터를 이용한 NAND gate의 구현

 

② 구현 2. 다이오드와 BJT 트랜지스터를 이용한 구현 (DTL, diode-transistor logic)

○ A와 B가 모두 ON인 경우 : D3 다이오드가 도통 상태이고 Q1 트랜지스터가 ON이므로 vo는 접지와 연결됨

○ A와 B 중 하나라도 OFF인 경우 : D1 또는 D2가 도통 상태이고 D3가 차단 상태이므로 R2에 전류가 흐르지 않음

Figure. 20. 다이오드와 BJT 트랜지스터를 이용한 NAND gate의 구현

 

③ (참고구현 3. CMOS 트랜지스터를 이용한 구현 

○ VHigh 또는 VLow에 저항이 연결돼 있음 : 만에 하나 스위치가 동시에 닫혀도 문제되지 않음

○ 병렬로 연결된 한 쌍의 pMOS와 직렬로 연결된 한 쌍의 nMOS가 필요함

○ (참고pMOS는 병렬, nMOS는 직렬로 유지하면 다중 입력에 대한 NAND gate를 구현 가능

 

 

Figure. 21. CMOS를 이용한 NAND gate 회로도

 

④ 예 : IC 7400 (2-input), IC 7402 (4 2-input), IC 7410 (3-input), IC 4011

⑺ 종류 6. NOR gate : Y = (A + B)' = A'·B'

 

 

Figure. 22. NOR gate 기호

 

구현 1. BJT 트랜지스터를 이용한 구현 (TTL, transistor-transistor logic)

○ A와 B 중 하나라도 ON인 경우 : 그 트랜지스터가 ON이 되어 vo와 접지가 연결됨

○ A와 B 모두 OFF인 경우 : R3에 전류가 흐르지 않으므로 vo = Vcc 

Figure. 23. BJT 트랜지스터를 이용한 NOR gate 구현

 

구현 2. 다이오드와 BJT 트랜지스터를 이용한 구현 (DTL, diode-transistor logic)

Figure. 24. 다이오드와 BJT 트랜지스터를 이용한 NOR gate 구현

 

③ (참고구현 3. CMOS 트랜지스터를 이용한 구현

○ VHigh 또는 VLow에 저항이 연결돼 있음 : 만에 하나 스위치가 동시에 닫혀도 문제되지 않음

○ 직렬로 연결된 한 쌍의 pMOS와 병렬로 연결된 한 쌍의 nMOS, 총 4개의 트랜지스터가 필요

○ (참고pMOS는 직렬, nMOS는 병렬로 유지하면 다중 입력에 대한 NOR gate를 구현 가능

 

 

Figure. 25. CMOS를 이용한 NOR gate 회로도 

 

⑻ 종류 7. XOR gate (exclusive-OR gate) : Y = A'·B + A·B' = AB

 

 

Figure. 26. XOR gate 기호

 

① (참고) 구현 1. CMOS를 이용한 구현

출처 : 이미지 클릭

 Figure. 27. CMOS를 이용한 XOR gate 회로도]

 

② (참고구현 2. PTL logic circuit 

○ 2개의 pass transistors, 1 NOT gate. 따라서 총 4개의 트랜지스터가 필요

○ 끝에 Buffer gate(2 transistors)를 붙이는 것을 권장

출처 : 이미지 클릭

Figure. 28. PMOS를 이용한 XOR gate 회로도]

 

③ (참고) 구현 3. NAND gate를 이용한 구현 

 

Figure. 29. 4개의 NAND gate를 이용한 XOR gate 회로도

 

④ (참고) 구현 4. NOR gate를 이용한 구현

 

Figure. 30. 5개의 NOR gate를 이용한 XOR gate 회로도

 

⑤ 예 : IC 7486

⑼ 종류 8. XNOR gate (exclusive-NOR gate, NXOR gate) : Y = XY + X'·Y' = X⊙Y

 


Figure. 31. XNOR gate 기호

 

구현 1. CMOS 트랜지스터를 이용한 구현 

구현 2. XOR 게이트를 이용한 구현

 

 

Figure. 32. 4개의 NOR gate를 이용한 XNOR gate 회로도

 

⑽ 종류 9. AOI : AND gate + OR gate + Inverter

① 6개의 트랜지스터가 필요

② 회로도

Figure. 33. AOI 회로도

 

 

2. 논리회로 구현 : 대개 2단계 논리회로(two-level logic circuit)로 구현 [목차]

⑴ 최소항(minterm), 최대항(maxterm)

 

x y z minterm maxterm
0 0 0 x'·y'·z' x + y + z
0 0 1 x'·y'·z x + y + z'
0 1 0 x'·y·z' x + y' + z
0 1 1 x'·y·z x + y' + z'
1 0 0 x·y'·z' x' + y + z
1 0 1 x·y'·z x' + y + z'
1 1 0 x·y·z' x' + y' + z
1 1 1 x·y·z x' + y' + z'

 

Table. 1. minterm, maxterm

 

⑵ SOP, POS

 

A    B    C    Out

0    0    0    0
0    0    1    1
0    1    0    0
0    1    1    1
1    0    0    0
1    0    1    1
1    1    0    1
1    1    1    1

 

① SOP(sum of products) : output이 1인 ON-set을 중심으로 minterm의 합으로 표시

 

 

② POS(products of sum) : output이 0인 OFF-set을 중심으로 maxterm의 곱으로 표시

 

 

③ SOP 또는 POS (AND-OR circuit)로 모든 논리회로를 구현할 수 있음

④ standard SOP, standard POS : 가장 길게 표현한 것으로 이해해도 됨

⑤ SOP, POS가 중요한 이유 : 다단계 게이트는 속도가 느림 → 중요 부분은 2단계 조합논리회로 형식을 취함

⑶ 보편 논리 요소(universal logic element)

① 정의 : 홀로 모든 논리회로를 구현할 수 있는 게이트

② 중요성 : 경제적으로 저렴한 회로를 만들 수 있음

○ 한 종류의 게이트 여러 개를 패키지로 파는 경우가 많음 

○ 여러 종류의 게이트를 패키지로 파는 경우는 드묾

③ 예 1. NAND

○ NOT gate 구현 : x' = x NAND x

○ AND gate 구현 : x · y = (x NAND y)'

○ OR gate 구현 : x + y = (x' · y')'

④ 예 2. NOR

○ NOT gate 구현 : x' = x NOR x

 OR gate 구현 : x + y = (x NOR y)'

○ AND gate 구현 : x · y = (x' + y')'

⑤ 예 4. AOI

○ NOT gate 구현 : (A · A + A)' = (A + A)' = A

○ OR gate 구현 : ((A · A + B)')' = A + B

○ AND gate 구현 : (A' · A' + B')' = AB 

⑥ 다른 gate는 홀로 NOT, OR, AND 등을 모두 구현할 수 있는가?

○ XOR은 universal gate가 아님

○ k개의 XOR gate로 구현할 수 있는 조합이 S = {0, A, B, A ^ B}라 하자.

○ 이때 k + 1개의 XOR gate로 구현할 수 있는 조합을 구하고자 한다.

○ 그런데 XOR gate는 교환·결합법칙이 성립하므로 1개와 k개의 연산으로 분리할 수 있다.

○ 하지만 A, B, S를 가지고 만들 수 있는 조합의 집합은 결국 S가 된다.

○ 따라서 XOR gate는 universal하지 않다.

○ AND, OR는 universal gate가 아님 ( NOT을 구현하지 못함)

⑷ active high activation 

① 기본적인 논리설계를 변경하는 게 아니라 출력이 HIGH일 때만 반응하도록 추가적으로 연결한 회로

② 저항 R은 LED, 부저 등을 나타내고, 다이오드에 의해 출력이 HIGH일 때만 전류가 흐름

 

출처 : 이미지 클릭

Figure. 34. active high activation]

 

⑸ active low activation 

① 기본적인 논리설계를 변경하는 게 아니라 출력이 LOW일 때만 반응하도록 추가적으로 연결한 회로

② 저항 R은 LED, 부저 등을 나타내고, 다이오드에 의해 출력이 LOW일 때만 전류가 흐름

 

출처 : 이미지 클릭

Figure. 35. active low activation]

 

 

3. 논리회로 개선 1. 불 대수학(Boolean Algebra) [목차]

⑴ 불 대수학의 정리

① identity

 

 

② null 

 

 

③ idempotency

 

 

④ involution 

 

 

⑤ complementarity 

 

 

⑥ commutativity

 

 

⑦ associativity

 

 

⑧ distributity 

 

 

⑨ uniting 

 

 

⑩ absorption

 

 

⑪ factoring 

 

 

⑫ concensus 

 

 

 de Morgan's

 

 

 generalized de Morgan's

 

 

⑵ 불 대수학을 활용한 단순화 예시(비체계적 방법)

 

 

⑶ NAND-NOR circuit

① AND 대신 NAND, OR 대신 NOR로 전환(with de Morgan's law)하는 게 더 경제적이다.

② S-o-P 변환

 

 

Figure. 36. AND-OR 회로(SoP)를 NAND-NOR 회로로 바꾸는 과정

 

③ P-o-S 변환

 

Figure. 37. AND-OR 회로(PoS)를 NAND-NOR 회로로 바꾸는 과정

 

 

4. 논리회로 개선 2. two-level simplificatio(체계적 방법) [목차]

⑴ 개요

① 정의 : 가장 단순한 2단계 논리회로를 찾아내기 위한 방법론

○ 주로 SOP 2단계 논리회로를 찾아내기 위함

○ XOR, XNOR은 기본적으로 고려하지 않음 (그래도 가능하면 고려하자.)

○ NAND, NOR도 NAND-NOR circuit로 변환 시에만 고려됨

② 목적 : line 수 감소, gate 수 감소, stage 수 감소 ( stage 수가 적을수록 동기화가 잘 됨)

③ 가장 단순한 해를 보장하는 알고리즘을 찾는 문제는 NP-hard : 현재로선 풀 수 없음

⑵ 용어의 정의

① implicant: 1 (ON-set) 또는 x (don't-care)를 포함하는 서브그룹

 

출처 : 이미지 클릭

Figure. 38. implicant를 설명하는 K-map의 예시]

 

○ implicant는 암묵적으로 카르노맵 상의 직사각형 영역으로 정의된다.

○ 위 맵 상에서 총 6개의 직사각형이 있으므로, 6개의 implicant가 있는 것이다.

② prime implicant: 주어진 set에서 다른 어떤 implicant에도 포함되지 않는 impliant

 

출처 : 이미지 클릭

Figure. 39. PI를 설명하는 K-map의 예시]

 

○ 한 칸짜리는 다른 큰 직사각형에 둘러싸이므로 prime implicant가 아니다.

○ 위 4개의 직사각형 중 어느 두 개도 포함관계에 있지 않으므로 모두 prime implicant이다.  

③ essential prime implicant: 모든 implicant 조합에서 꼭 포함되는 prime implicant

 

출처 : 이미지 클릭

Figure. 40. EPI를 설명하는 K-map의 예시]

 

○ 위 5개의 implicant 중에서 가운데 있는 implicant는 굳이 필요하지 않다.

○ 따라서 essential prime implicant는 4개이다.

⑶ Boolean cube (추천하지 않음)

① n-cube : 입력이 n 비트인 경우 n 차원의 cube를 고려한다.

 

 

출처: 서울대학교 논리설계(유승주) 강의

 

Figure. 41. n-cube의 정의]

 

② 장점 : 어떤 implicant가 불 대수 단순화가 가능한지 직관적으로 알 수 있음

 

출처: 서울대학교 논리설계(유승주) 강의

Figure. 42. Boolean cube 방법의 도식]

 

○ n-cube에서 m 차원의 subcube가 발견되면 그것은 n-m 개의 문자로 구성된다.

○ 주어진 3-cube에 (1,1,1), (1,0,1)로 이뤄진 subcube는 A, B, 두 문자로 구성된다.

③ 단점 : 4차원 이상부터는 그림을 그리거나 머릿속에서 상상하는 게 좀처럼 어렵다.

⑷ 카르노맵(Karnaugh map)

① 정의 : SOP를 보기 좋게 나타낼 수 있도록 Maurice Karnaugh가 제안한 도식

② gray code

 00, 01, 11, 10, 00, ···과 같이 순환하는 수열

○ 2차원 표를 구성할 때, 각 변에는 gray code가 오도록 함

○ gray code를 배치하면 implicant를 쉽게 찾을 수 있다는 장점이 있음

○ (참고) 필자는 굳이 gray code를 배치해야 하는가에 의문을 표함

 

출처 : 이미지 클릭

Figure. 43. gray code의 정의]

 

③ 장점 : boolean cube와 원리는 동일하나 평면으로 펼쳐서 비교적 높은 차원까지 가능 

④ 예제 1

 

 

출처: 서울대학교 논리설계(유승주) 강의

Figure. 44. K-map의 예시(1)]

 

○ 기본적으로 two-level simplification은 2단계 논리회로 중 S-o-P를 주로 쓴다.

④ 예제 2 : don't-care의 활용

 

출처 : 이미지 클릭

Figure. 45. K-map의 예시(2)]

 

○ don't-care는 절대 발생하지 않는 상황이므로 논리회로에 포함하든, 않든 don't care.

○ 따라서 중간에 있는 don't-care만 취해서 논리회로를 구성했다.

○ 논리식 = C'D + A'D (two-level simplification) = (C' + A')D (boolean algebra)

⑤ algorithm scheme

출처: 서울대학교 논리설계(유승주) 강의

Figure. 46. K-map 알고리즘의 도식]

 

○ 1st. ON-set, DC-set, OFF-set에 대한 진리표를 작성

○ 2nd. 임의의 한 ON-set에서 가능한 prime implicant를 모두 표시하기

○ 3rd. 남아 있는 ON-set 중에서 임의로 골라 가능한 prime implicant를 모두 표시

○ 4th. 남아 있는 ON-set 중에서 임의로 골라 가능한 prime implicant를 모두 표시 

○ 5th. essential prime implicant를 먼저 찾아내기

○ 6th. 남아 있는 ON-set을 포함할 수 있는, 최적의 prime implicant set을 선택

○ 임의성 때문에 최적의 해를 보장할 수 없음

③ 단점 : 높은 차원에서는 한계가 있음

○ 5-variables

 

출처 : 이미지 클릭

Figure. 47. 5개의 변수에 대한 K-map (3D)]

 

출처: 서울대학교 논리설계(유승주) 강의

Figure. 48. 5개의 변수에 대한 K-map (2D)]

 

○ 6-variables, 7-variables

 

출처: 서울대학교 논리설계(유승주) 강의

Figure. 49. 6개, 7개의 변수에 대한 K-map]

 

제언 : 가로, 세로에 gray code가 아닌 크기 순으로 수를 적으면 차원의 한계 ↓

○ 그러나 높은 차원에서 카르노맵을 그리면 직관적으로 implicant를 찾기 어려움

⑸ CAD Tools(Quine-McCluskey method; QM method)

출처: 서울대학교 논리설계(유승주) 강의

Figure. 50. K-map의 예시(3)]

 

① 1st. 주어진 S-o-P에서 모든 prime implicant 찾기

○ 1st - 1st.

 

 

Table. 2. QM method 과정 (1-1)

 

○ 1st - 2nd.

 

Table. 3. QM method 과정 (1-2)

 

○ 1st - 3rd.

 

 

Table. 4. QM method 과정 (1-3)

 

○ 1st - 4th. prime implicant는 취소선이 쳐지지 않은 항들이다.

② 2nd. PI chart를 이용하여 prime implicant의 최적의 조합을 찾음

○ 2nd - 1st.

 

Table. 5. QM method 과정 (2-1)

 

○ 2nd - 2nd.

 

Table. 6. QM method 과정 (2-2)

 

○ 2nd - 3rd.

 

 

Table. 7. QM method 과정 (2-3)

 

○ essential하지 않은 PI 중 최선의 조합을 찾아내는 과정은 brute-force로 진행된다.

○ 이 상황에서 여러 heuristic 알고리즘이 적용된다. (최고의 효율성의 보장 ↓) 

○ 2nd - 4rd. 논리식 = B'C' + CD' + A'BD

③ don't-care 조건이 관여하는 경우

○ 1st. don't-care를 모두 1로 보고 PI chart를 완성한다.

○ 2nd. prime implicant의 조합을 찾는 과정에서 don't-care는 무시한다.

 

Table. 8. don't-care 조건을 이용한 QM method 과정

 

○ 예를 들어, 6, 7, 8이 don't-care인 경우이다.

○ 이 chart에서 4.5.2.1.을 진행한다.

⑹ Esspresso Method : 그 에스프레소가 맞다.

 

입력: 2016.09.23 01:58

수정: 2020.03.31 21:23