논리 회로

논리 회로()는 불 대수를 물리적 장치에 구현한 것으로, 하나 이상의 논리적 입력값에 대해 논리 연산을 수행하여 하나의 논리적 출력값을 얻는 전자회로를 말한다. AND, OR, NOT의 기본 불 대수를 수행하며, 이 기본 불 대수들의 결합으로 복합적인 논리 기능을 수행한다.

문맥에 따라서 이상적인 논리 회로라는 말을, 인스턴스에 대해서 상승 시간이 없고 무제한의 팬아웃이라고 해석하거나 비이상적 물리장치라고 해석한다.

논리 회로의 설계 
논리 회로의 설계는 논리식이나 진리표가 사용된다. 좀 더 회로도적인 표기 수단으로 MIL 기호 등 논리 소자 기호가 사용되었다.

1960년대에 표준 논리 IC(텍사스 인스트루먼트의 7400 시리즈)가 등장하자 아날로그 회로 설계와 논리 설계를 분리하여 단순하게 구현할 수 있게 되었다.

작은 규모에서는 논리 소자 기호로 설계할 수 있지만 규모가 커지면 힘들어진다. 그렇기 때문에 1990년대부터 대규모 회로 설계에는 하드웨어 기술 언어가 사용되고 있다. 그리고 집적 회로 기술의 발전에 대응할 수 있도록 다양한 모델에 적용이 가능한 독립적인 모델(동작 기술)을 사용하여 설계한다.

1990년대 후반에는 개발품의 경우 논리 회로 프로그램을 이용하여 PLD, CPLD, FPGA을 사용하였다. 양산품이나 높은 성능이 요구될 경우 ASIC를 사용했다.

조합 회로 
입력 신호만으로 출력이 결정되는 회로이다.

논리 게이트 
AND, NOT, OR, XOR 등 기본이 되는 논리 연산을 수행하는 것이다. 덧붙여서 일반적인 논리 회로 설계를 하는 기술자는 수학의 논리 연산 기호와 다른 기호를 사용하여 논리식을 기술하는 경우가 많다.

{| border="1" cellspacing="0" cellpadding="4"
|-align=center
!bgcolor=#cccccc|논리
!논리식
!회로 기호（MIL 기호）
|-
|bgcolor=#cccccc|NOT
|
|
|-
|bgcolor=#cccccc|OR
|
|
|-
|bgcolor=#cccccc|AND
|
|
|-
|bgcolor=#cccccc|XOR
|
|
|-
|bgcolor=#cccccc|NOR
|
|
|-
|bgcolor=#cccccc|NAND
|
|
|}

응용 회로 
 셀렉터 : 출력 신호 중 하나를 선택하여 출력하는 것.
 멀티플렉서 : 입력 회로 중 하나를 선택하여 출력하는 것.
 가산기 : 이진수 연산(덧셈이나 뺄셈)을 처리하는 것.

순차 회로 
이전 상태의 신호와 외부 입력 신호에 따라 출력이 결정되는 회로이다. 이전상태가 계속 유지되려면 출력을 입력에 반영하는 되먹임 논리회로 구조를 갖는다.

래치와 플립플롭 

제어 신호에 따라, 현재의 입력 신호가 저장되거나 이전의 입력 신호를 보관 유지하는 것이다.

래치와 플립플럽의 차이는 입력이 들어왔을 때, 출력에 반영하는 방식이 다르다.
 래치 : 입력이 들어왔을 때, 조건이 맞으면 바로 반영된다. 단, EN 신호가 있을 경우, 이 조건이 만족해야 한다.
 플립플럽 : 입력이 들어왔을 때, 클럭(CLK, CK, clock)의 동기 신호에 의해 입력이 반영된다.

플립플럽은 입력을 반영하는 시점이 상승에지(클럭에서 논리 L에서 H로 바뀌는 순간)나 하강에지(클럭에서 논리 H에서 L로 바뀌는 순간)에서 반영한다. 이 반영시점 동기를 위해 래치보다 회로가 복잡하다.

플립플롭 (Flip - Flop) 
플립플롭은 클럭(CLK, CK 등으로 표기) 신호에 동기화되면서 입력 값(D, S, J 등)을 출력한다. 이 값들은 다음 클럭이 입력되기 전까지 보존된다.

 D 플립플롭
 J-K 플립플롭
 T 플립플롭
 A 플립플롭

완전 동기식 회로 
전체가 동일한 클럭으로 동작되는 회로이다.(동기클럭 설계) 특히 대규모 회로에서 넓게 사용되고 있다.

 설계할 때 대규모 회로 시뮬레이션이 빠르다.
 제조할 때 모든 래치의 1, 0 변화 테스트를 하는 벤치 프로그램 제작이 쉽다.

카운터 
레지스터와 게이트로 구성되어서 순서에 따라서 일정한 출력이 나오고, 일정한 주기가 되면 원래 상태로 되돌아간다.

 필드 코드 카운터(Filled Code Counter): 모든 출력의 상태가 사용되는 것.
 2 비트 코드 카운터
 그레이 코드 카운터
 이진 카운터

 언필드 코드 카운터(Unfilled Code Counter): 출력의 일부만 사용되고, 그 밖에는 알 수 없는 상태가 되는 것.
 3 비트 이상의 코드 카운터
 링 카운터
 M계열 발생기 (LFSR: Linear Feedback Shift Register)

시퀀서 (Sequencer) 
입력 신호에 따라서 카운터, 레지스터, 게이트 등으로 제작된 회로가 연산 및 일련의 동작을 하는 것이다.

순차회로에서 상태도를 활용한 설계 기법 
순차회로에서의 설계에서 많이 사용 방법 중의 하나가 상태 기법이다.

 상태도 활용 : 설계 목적을 구현하기 위해 동작 상태를 추상화 하여 상태도를 그린다. 이 상태도에 입력과 출력을 표시하고 논리회로를 이용하여 회로화 하면 된다.

활용도 
컴퓨터, 프로그래머블 로직 컨트롤러 (PLC, 공업용 제어 프로세서), 디지털 신호 처리장치 등은 논리 회로를 이용해 만들어진다.

각주

같이 보기 

 집적 회로
 수리 논리학
 논리 제어