강의

[디지털 로직 설계] - #3. 논리연산

gybak 2024. 4. 16. 19:36

Combinational logic의 첫 번째 유형, '논리연산'에 대해 알아보겠습니다.

 

'논리연산' 유형의 로직은 어떤 입력에 대해 그것이 참인지 거짓인지 판별해줍니다. 앞서 소개했던 기초 논리 소자들도 그 자체로 논리연산 로직이죠. 입력 및 출력 값을 표현할 때, 참(true)/거짓(false) 대신에 숫자 1(true) 또는 0(false)으로 표현하기도 합니다.

 

여기, 좀 더 복잡한 로직의 예를 가져왔습니다. 3-input AND 게이트와 2-input XOR 게이트입니다.

 

3-input AND 연산 결과가 참이려면, 입력값이 모두 참이어야 합니다. 3개 입력값에 대해 2-input AND 연산을 순차적으로 적용하면 되겠네요. 위 그림과 같이 (2-input) AND 게이트를 2개를 조합해 만들 수 있습니다.

 

XOR의 경우는 어떤가요? 결과적으로 두 입력 중 하나만 1일 때에 1이 출력되고 두 입력이 서로 같으면 0이 출력되도록 만들어야 하죠. A, B 포트의 조합이 (0, 1)일 때, 혹은 (1, 0)일 때에 1이 출력되도록 하면 됩니다. 위 그림과 같이 AND 및 NOT 게이트로 그 입력값 조합을 감지하도록 하고, 그 결과에 OR 연산을 하는 식으로 2-input XOR 연산을 구현할 수 있습니다.

 

일반적으로, 3-input AND와 2-input XOR도 '논리 소자'로 취급하기 때문에 위 그림의 오른쪽과 같이 간단히 심볼로 표현하곤 합니다.

 

방금 보여드린 예시는, 입력 및 출력 포트가 모두 단일 비트였습니다. 연산에서 다루는 값이 참 또는 거짓 이렇게 두 가지 경우 밖에 없기 때문이죠. 이제 조금 더 확장해서 다중 비트 논리연산에 대해 알아보겠습니다.

 

3비트짜리 인버터와 AND 로직은 아래 그림과 같이 설계할 수 있습니다.

 

우선 3-bit inverter의 구조부터 살펴 봅시다. 포트 A에서 NOT 게이트를 거쳐 포트 Y로, 개별 비트마다 1:1 연결되어 있습니다. 개별 비트에 대한 로직(inverter 게이트) 3개를 나란히 배치하고 하나로 묶어놓은 셈입니다. 필요한 비트 폭에 따라 게이트 수를 조정하면 됩니다.

 

3-bit AND 역시 구조적으로 동일합니다. 포트 A와 B의 각 비트가 AND 게이트의 입력으로 연결되고, AND 게이트 출력은 포트 Y로 연결됩니다. 3-bit inverter와 마찬가지로, 개별 비트에 대한 로직(AND 게이트)를 하나로 묶어서 3-bit AND 로직을 구성합니다.

 

논리연산에 대한 내용은 여기까지입니다. 다음은 산술연산 유형의 로직에 대해 알아보겠습니다.


목차 (연재 순서)

0. 강의 개요
1. 기초 논리 소자 (Basic Logic Elements)
2. Combinational Logic
    1) 논리연산 -- 3-input AND, 2-input XOR
    2) 산술연산 -- Half Adder, Full Adder
    3) 흐름제어 -- Mux, Demux
3. Truth Table 및 Look-Up Table
    1) 우리는 어떤 목적으로, 왜 truth table을 작성하는가?
    2) 설계한 로직은 어떻게 FPGA에서 작동하는가?
4. 메모리 소자 (Memory Elements)
    1) Flip-Flop
    2) Memory Block
5. Sequential Logic
    1) D-FF with synchronous reset
    2) 2진법 반올림(round-up) 로직
6. Timing Diagram