디지털 전자공학

**디지털 전자공학** 또는 **디지털 일렉트로닉스**(digital electronics)는 디지털 신호에 대한 연구와 이를 사용하거나 생성하는 장치의 설계를 다루는 일렉트로닉스 분야이다. 논리 회로, 저항기, 축전기, 앰프 및 기타 전자 부품을 통해 전기 신호를 통과시켜 이진법 입력과 출력 사이의 관계를 다룬다. 디지털 전자공학 분야는 주로 아날로그 신호(켜짐/꺼짐의 두 상태를 가진 이진 신호와 대조적으로 강도가 변하는 신호)를 다루는 아날로그 전자공학과 대조된다. 그 이름에도 불구하고 디지털 전자공학 설계에는 중요한 아날로그 설계 고려 사항이 포함된다.

더 복잡한 개념을 표현하는 데 사용되는 대규모 논리 회로의 집합은 종종 집적 회로로 패키징된다. 복잡한 장치는 불 논리 함수를 단순한 전자적 표현으로 구현할 수 있다.

## 역사
이진법 체계는 고트프리트 빌헬름 라이프니츠에 의해 정립되었으며(1705년 발표), 그는 이진법을 사용함으로써 산술과 논리의 원리가 결합될 수 있음을 확립했다. 우리가 알고 있는 디지털 논리는 19세기 중반 조지 불의 발명품이다. 1886년의 한 편지에서 찰스 샌더스 퍼스는 논리 연산이 전기 스위칭 회로에 의해 어떻게 수행될 수 있는지 설명했다. 결국 논리 연산을 위해 진공관이 계전기를 대체했다. 1907년 존 앰브로즈 플레밍의 밸브를 개조한 리 드 포레스트의 장치는 AND 게이트로 사용될 수 있었다. 루트비히 비트겐슈타인은 논리철학 논고(1921)의 명제 5.101로서 16행 진리표 버전을 도입했다. 동시 회로의 발명가인 발터 보테는 1924년 최초의 현대적 전자 AND 게이트를 만든 공로로 1954년 노벨상 물리학상을 공동 수상했다.

기계식 아날로그 컴퓨터는 1세기에 처음 등장하기 시작했으며, 이후 중세 시대에 천문 계산에 사용되었다. 제2차 세계 대전 중에 기계식 아날로그 컴퓨터는 어뢰 조준 계산과 같은 특수 군사 용도로 사용되었다. 이 시기에 최초의 전자 디지털 컴퓨터가 개발되었으며, '디지털'이라는 용어는 1942년 조지 스티비츠에 의해 제안되었다. 원래 이들은 큰 방 하나를 차지하는 크기였으며, 수백 대의 현대식 개인용 컴퓨터만큼의 전력을 소비했다.

불 대수의 전기적 응용이 모든 논리적 수치 관계를 구성할 수 있음을 증명한 클로드 섀넌은 결국 1937년 그의 석사 논문에서 디지털 컴퓨팅과 디지털 회로의 토대를 마련했으며, 이는 역사상 가장 중요한 석사 논문으로 평가받으며 1939년 알프레드 노블 상을 수상했다.

Z3는 콘라트 추제가 설계한 전기 기계식 컴퓨터였다. 1941년에 완성된 이 장치는 세계 최초로 작동하는 프로그래밍 가능 전자동 디지털 컴퓨터였다. 그 작동은 1904년 존 앰브로즈 플레밍의 진공관 발명에 의해 촉진되었다.

디지털 계산이 아날로그를 대체함과 동시에, 순수 전자 회로 요소들이 곧 기계 및 전기 기계식 대응물을 대체했다. 존 바딘과 월터 하우저 브래튼은 1947년 벨 연구소에서 점접촉 트랜지스터를 발명했고, 이어 윌리엄 쇼클리가 1948년 벨 연구소에서 접합형 트랜지스터를 발명했다.

맨체스터 대학교에서 톰 킬번이 이끄는 팀은 진공관 대신 새로 개발된 트랜지스터를 사용하는 기계를 설계하고 제작했다. 그들의 "트랜지스터 컴퓨터"는 세계 최초로 1953년에 작동했으며, 1955년 4월에 두 번째 버전이 완성되었다. 1955년부터 트랜지스터는 컴퓨터 설계에서 진공관을 대체하여 컴퓨터의 "제2세대"를 열었다. 진공관과 비교하여 트랜지스터는 더 작고 신뢰성이 높았으며 수명이 무한했고 전력 소모가 적어 열 발생이 적었으며, 상대적으로 좁은 공간에 수만 개에 이르는 훨씬 더 조밀한 회로 집중을 가능하게 했다.

1955년 칼 프로쉬(Carl Frosch)와 링컨 데릭(Lincoln Derick)은 이산화 규소 표면 수동화 효과를 발견했다. 1957년 프로쉬와 데릭은 마스킹과 사전 확산을 사용하여 이산화 규소 전계효과 트랜지스터를 제조할 수 있었다. 이것이 드레인과 소스가 동일한 표면에 인접해 있는 최초의 평면형 트랜지스터였다. 벨 연구소에서 프로쉬와 데릭의 기술과 트랜지스터의 중요성은 즉시 인식되었다. 그들의 연구 결과는 1957년 발표되기 전에 BTL 메모의 형태로 벨 연구소 내에 유포되었다. 쇼클리 반도체(Shockley Semiconductor)에서 쇼클리는 1956년 12월에 장 호에르니(Jean Hoerni)를 포함한 모든 고위 직원들에게 그들의 논문 초안을 회람시켰으며, 호에르니는 이후 1959년 페어차일드 반도체에서 평면 공정을 발명하게 된다. 벨 연구소에서 J.R. 리겐자와 W.G. 스피처는 열로 성장시킨 산화물의 메커니즘을 연구하여 고품질 Si/SiO<sub>2</sub> 적층 구조를 제작하고 1960년 결과를 발표했다. 벨 연구소에서의 이 연구에 이어, 모하메드 아탈라와 강대원은 1959년 실리콘 MOS 트랜지스터를 제안했고 1960년 벨 연구소 팀과 함께 작동하는 MOS 소자를 시연하는 데 성공했다. 이 팀에는 소자를 제작한 E. E. 라베이트와 E. I. 포빌로니스, 확산 공정을 개발한 M. O. 서스턴, L. A. 다사로, J. R. 리겐자, 그리고 소자의 특성을 분석한 H. K. 거멜과 R. 린드너가 포함되어 있었다.

1958년 7월 텍사스 인스트루먼트에서 근무하던 중, 잭 킬비는 집적 회로(IC)에 관한 그의 초기 아이디어를 기록했고, 1958년 9월 12일 최초의 작동하는 집적 회로를 성공적으로 시연했다. 킬비의 칩은 저마늄으로 만들어졌다. 이듬해 페어차일드 반도체의 로버트 노이스는 규소 집적 회로를 발명했다. 노이스의 실리콘 IC의 기초는 호에르니의 평면 공정이었다.

MOSFET의 장점으로는 높은 확장성, 경제성, 낮은 전력 소비, 높은 트랜지스터 밀도가 있다. 또한 빠른 켜짐-꺼짐 전자 스위칭 속도는 사인파와 유사한 아날로그 신호를 더 느리게 생성하는 BJT와 대조적으로, 전자 디지털 신호의 기초인 펄스 열을 생성하는 데 이상적이다. MOS 고밀도 집적 회로(LSI)와 함께 이러한 요소들은 MOSFET을 디지털 회로를 위한 중요한 스위칭 소자로 만들었다. MOSFET은 전자공업에 혁명을 일으켰으며, 가장 흔한 반도체 소자이다.

집적 회로 초기에는 각 칩이 단 몇 개의 트랜지스터로 제한되었고, 낮은 집적도는 설계 과정이 상대적으로 단순했음을 의미했다. 제조 수율 또한 오늘날의 기준으로는 상당히 낮았다. 1970년대 초 MOSFET 트랜지스터의 광범위한 채택은 단일 칩에 10,000개 이상의 트랜지스터가 들어가는 최초의 고밀도 집적 회로(LSI) 칩으로 이어졌다. 1980년대까지 MOSFET 논리의 일종인 CMOS가 널리 채택됨에 따라, 기술 발전에 따라 수백만 개, 나중에는 수십억 개의 MOSFET을 하나의 칩에 배치할 수 있게 되었으며, 훌륭한 설계를 위해서는 철저한 계획이 필요하게 되어 새로운 설계 방식이 등장했다. 소자의 트랜지스터 수와 총 생산량은 전례 없는 수준으로 치솟았다. 2018년까지 생산된 총 트랜지스터 수는 개(13해)로 추산된다.

무선 혁명(무선망의 도입과 확산)은 1990년대에 시작되었으며, MOSFET 기반의 전력 MOSFET 및 LDMOS와 같은 RF 전력 증폭기와 RF CMOS 회로의 광범위한 채택에 의해 가능해졌다. 무선 네트워크는 케이블 없이 공공 디지털 전송을 가능하게 하여, 1990년대에서 2000년대에 걸쳐 디지털 텔레비전, 위성 및 디지털 라디오, GPS, 무선 인터넷 및 휴대 전화의 발전으로 이어졌다.

## 특성
아날로그 회로와 비교했을 때 디지털 회로의 장점은 디지털로 표현된 신호가 잡음에 의한 열화 없이 전송될 수 있다는 것이다. 예를 들어, 1과 0의 연속으로 전송되는 연속 오디오 신호는 전송 중에 발생하는 잡음이 1과 0을 식별하는 것을 방해할 정도로 크지 않다면 오류 없이 재구성될 수 있다.

디지털 시스템에서는 신호를 표현하기 위해 더 많은 이진 숫자를 사용하여 더 정밀한 표현을 얻을 수 있다. 이를 처리하기 위해 더 많은 디지털 회로가 필요하지만, 각 숫자는 동일한 종류의 하드웨어로 처리되므로 시스템을 쉽게 확장할 수 있다. 아날로그 시스템에서 해상도를 높이려면 신호 체인의 각 단계에서 선형성과 잡음 특성을 근본적으로 개선해야 한다.

컴퓨터로 제어되는 디지털 시스템에서는 소프트웨어 수정을 통해 새로운 기능을 추가할 수 있으며 하드웨어 변경이 필요하지 않다. 종종 이는 제품의 소프트웨어를 업데이트함으로써 공장 외부에서도 수행될 수 있다. 이런 방식으로 제품이 고객의 손에 들어간 후에도 제품의 설계 오류를 수정할 수 있다.

정보 저장 또한 아날로그 시스템보다 디지털 시스템에서 더 쉬울 수 있다. 디지털 시스템의 잡음 내성 덕분에 데이터를 열화 없이 저장하고 불러올 수 있다. 아날로그 시스템에서는 노화와 마모로 인한 잡음이 저장된 정보를 열화시킨다. 디지털 시스템에서는 총 잡음이 일정 수준 이하인 한 정보를 완벽하게 복구할 수 있다. 더 심각한 잡음이 있는 경우에도 여유도를 사용하면 너무 많은 오류가 발생하지 않는 한 원래 데이터를 복구할 수 있다.

어떤 경우에는 디지털 회로가 동일한 작업을 수행하기 위해 아날로그 회로보다 더 많은 에너지를 소비하여 더 많은 열을 발생시키며, 이는 방열판을 포함하는 것과 같이 회로의 복잡성을 증가시킨다. 휴대용 또는 배터리 구동 시스템에서 이는 디지털 시스템의 사용을 제한할 수 있다. 예를 들어, 배터리로 작동하는 휴대 전화는 기지국의 라디오 신호를 증폭하고 조정하기 위해 종종 저전력 아날로그 프런트엔드를 사용한다. 그러나 기지국은 전력망 전원을 사용하며 전력 소모는 많지만 매우 유연한 소프트웨어 라디오를 사용할 수 있다. 이러한 기지국은 새로운 이동 통신 표준에서 사용되는 신호를 처리하도록 쉽게 재프로그래밍될 수 있다.

많은 유용한 디지털 시스템은 연속적인 아날로그 신호를 이산적인 디지털 신호로 변환해야 한다. 이 과정에서 양자화 오류가 발생한다. 양자화 오류는 시스템이 원하는 정도의 충실도로 신호를 표현하기 위해 충분한 디지털 데이터를 저장한다면 줄일 수 있다. 표본화 정리는 주어진 아날로그 신호를 정확하게 묘사하기 위해 얼마나 많은 디지털 데이터가 필요한지에 대한 중요한 지침을 제공한다.

단일 디지털 데이터 조각이 손실되거나 잘못 해석되는 경우, 일부 시스템에서는 작은 오류만 발생할 수 있지만, 다른 시스템에서는 관련 데이터의 큰 블록의 의미가 완전히 바뀔 수 있다. 예를 들어, 선형 펄스 부호 변조로 직접 저장된 오디오 데이터의 1비트 오류는 최악의 경우 단 한 번의 가청 클릭음을 유발한다. 그러나 저장 공간과 전송 시간을 절약하기 위해 소리 압축을 사용할 경우, 단일 비트 오류가 훨씬 더 큰 중단을 일으킬 수 있다.

절벽 효과(cliff effect) 때문에 사용자는 특정 시스템이 고장 직전인지, 아니면 고장 나기 전까지 훨씬 더 많은 잡음을 견딜 수 있는지 구별하기 어려울 수 있다. 디지털의 취약성은 디지털 시스템을 견고하게 설계함으로써 줄일 수 있다. 예를 들어, 신호 경로에 패리티 비트나 다른 오류 관리 방법을 삽입할 수 있다. 이러한 체계는 시스템이 오류를 감지하고, 오류를 정정하거나 데이터의 재전송을 요청하는 데 도움을 준다.

## 구조
[섬네일|[브레드보드 위에 수작업으로 배선된 이진 시계]]

디지털 회로는 일반적으로 조합 논리와 순차 논리를 생성하는 데 사용될 수 있는 논리 회로라고 불리는 작은 전자 회로들로 구성된다. 각 논리 회로는 논리 신호에 작용할 때 불 논리 함수를 수행하도록 설계된다. 논리 회로는 일반적으로 하나 이상의 전기적으로 제어되는 개폐기, 대개 트랜지스터로 만들어지지만, 역사적으로 진공관이 사용되기도 했다. 논리 회로의 출력은 다시 더 많은 논리 회로를 제어하거나 그 입력으로 들어갈 수 있다.

디지털 회로의 또 다른 형태는 룩업 테이블(많은 경우 "설계 가능 논리 소자"(PLD)로 판매되지만 다른 종류의 PLD도 존재함)로 구성된다. 룩업 테이블은 논리 회로 기반의 기계와 동일한 기능을 수행할 수 있지만, 배선을 변경하지 않고도 쉽게 재프로그래밍할 수 있다. 이는 설계자가 종종 배선 배치를 바꾸지 않고도 설계 오류를 수정할 수 있음을 의미한다. 따라서 소량 생산 제품에서는 설계 가능 논리 소자가 종종 선호되는 솔루션이 된다. 이들은 대개 전자 설계 자동화 소프트웨어를 사용하는 엔지니어들에 의해 설계된다.

집적 회로는 하나의 실리콘 칩 위에 여러 개의 트랜지스터로 구성되며, 수많은 상호 연결된 논리 회로를 만드는 가장 저렴한 방법이다. 집적 회로는 대개 전자 부품을 고정하고 구리 트레이스로 연결하는 인쇄 회로 기판 위에서 서로 연결된다.

## 설계
엔지니어들은 회로 복잡성을 줄이기 위해 논리 중복을 최소화하는 여러 방법을 사용한다. 복잡성이 줄어들면 부품 수와 잠재적 오류가 줄어들어 일반적으로 비용이 절감된다. 논리 중복은 이진 결정 다이어그램, 불 논리, 카노 맵, 콰인-매클러스키 알고리즘, 에스프레소 휴리스틱 논리 최소화기(Espresso heuristic logic minimizer)와 같은 잘 알려진 여러 기술에 의해 제거될 수 있다. 이러한 작업은 일반적으로 컴퓨터 지원 설계 시스템 내에서 수행된다.

마이크로컨트롤러와 프로그래머블 로직 컨트롤러를 포함한 임베디드 시스템은 최적의 성능이 필요하지 않은 복잡한 시스템을 위한 디지털 논리를 구현하는 데 자주 사용된다. 이러한 시스템은 일반적으로 소프트웨어 공학자나 전기 기술자에 의해 래더 로직을 사용하여 프로그래밍된다.

### 표현
디지털 회로의 입출력 관계는 진리표로 표현될 수 있다. 동등한 상위 수준 회로는 논리 회로를 사용하며, 각 회로는 서로 다른 모양으로 표현된다(IEEE/ANSI 91–1984에 의해 표준화됨). 하위 수준 표현은 전자 스위치(대개 트랜지스터)의 등가 회로를 사용한다.

대부분의 디지털 시스템은 조합 시스템과 순차 시스템으로 나뉜다. 조합 시스템의 출력은 오직 현재의 입력에만 의존한다. 그러나 순차 시스템은 출력의 일부가 입력으로 피드백되므로, 연산 순서를 생성하기 위해 현재 입력 외에도 과거의 입력에 의존할 수 있다. 이들의 동작을 단순화하여 표현한 유한 상태 기계는 설계와 테스트를 용이하게 한다.

순차 시스템은 두 개의 하위 범주로 더 나뉜다. "동기" 순차 시스템은 클럭 신호가 상태를 바꿀 때 일제히 상태가 변한다. "비동기" 순차 시스템은 입력이 변할 때마다 변화가 전파된다. 동기 순차 시스템은 클럭이 변할 때만 입력된 전압을 비트로 저장하는 플립플롭을 사용하여 만들어진다.

### 동기 시스템
섬네일|D형 플립플롭을 사용하는 4비트 링 카운터는 동기 논리의 예이다. 각 장치는 클럭 신호에 연결되어 함께 업데이트된다.

동기 순차 상태 기계를 구현하는 통상적인 방법은 이를 조합 논리 조각과 상태 레지스터라고 불리는 플립플롭 세트로 나누는 것이다. 상태 레지스터는 상태를 이진수로 표현한다. 조합 논리는 다음 상태를 위한 이진 표현을 생성한다. 각 클럭 사이클마다 상태 레지스터는 조합 논리의 이전 상태에서 생성된 피드백을 캡처하여 상태 기계의 조합 부분에 변하지 않는 입력으로 다시 공급한다. 클럭 속도는 조합 장치 논리에서 가장 시간이 많이 걸리는 논리 계산에 의해 제한된다.

### 비동기 시스템
대부분의 디지털 논리는 동기식인데, 이는 동기식 설계를 만들고 검증하기가 더 쉽기 때문이다. 그러나 비동기 논리는 속도가 임의의 클럭에 의해 제한되지 않는다는 장점이 있다. 대신 논리 회로의 최대 속도로 실행된다.

그럼에도 불구하고 대부분의 시스템은 외부의 동기화되지 않은 신호를 동기 논리 회로로 받아들여야 한다. 이 인터페이스는 본질적으로 비동기적이며 그렇게 분석되어야 한다. 널리 사용되는 비동기 회로의 예로는 동기화 플립플롭, 스위치 디바운서, 중재기(arbiter) 등이 있다.

비동기 논리 구성 요소는 모든 가능한 타이밍에서의 모든 가능한 상태를 고려해야 하므로 설계하기 어려울 수 있다. 일반적인 방법은 각 상태가 존재할 수 있는 최소 및 최대 시간 표를 작성한 다음, 그러한 상태의 수를 최소화하도록 회로를 조정하는 것이다. 설계자는 회로가 주기적으로 모든 부분이 호환 가능한 상태로 들어갈 때까지 기다리도록 강제해야 한다(이를 "자가 재동기화"라고 함). 주의 깊은 설계 없이는 불안정한 비동기 논리를 실수로 만들기 쉬운데, 이는 전자 부품 값의 미세한 변화로 인한 누적 지연 때문에 실제 전자 장치에서 예측할 수 없는 결과를 초래할 수 있다.

### 레지스터 전송 시스템
[right|섬네일|300px|출력이 토글되는 단순한 회로의 예. 인버터는 이 회로에서 [조합 논리를 형성하고, 레지스터는 상태를 유지한다.]]

많은 디지털 시스템은 데이터 흐름 기계이다. 이들은 대개 동기식 레지스터 전송 수준 논리를 사용하여 설계되며, VHDL이나 베릴로그와 같은 하드웨어 기술 언어로 작성된다.

레지스터 전송 논리에서 이진수는 레지스터라고 불리는 플립플롭 그룹에 저장된다. 순차 상태 기계는 각 레지스터가 입력으로부터 새로운 데이터를 받아들이는 시점을 제어한다. 각 레지스터의 출력은 해당 숫자를 다른 계산으로 전달하는 버스라고 불리는 전선 묶음이다. 계산은 단순히 조합 논리의 조각이다. 각 계산에도 출력 버스가 있으며, 이들은 여러 레지스터의 입력에 연결될 수 있다. 때때로 레지스터는 여러 버스 중 어느 하나로부터 숫자를 저장할 수 있도록 입력에 멀티플렉서를 가지기도 한다.

비동기 레지스터 전송 시스템(컴퓨터와 같은)은 일반적인 해결책을 가지고 있다. 1980년대에 일부 연구자들은 거의 모든 동기식 레지스터 전송 기계가 선입선출(FIFO) 동기화 논리를 사용함으로써 비동기식 설계로 변환될 수 있음을 발견했다. 이 체계에서 디지털 기계는 데이터 흐름의 집합으로 특성화된다. 흐름의 각 단계에서 동기화 회로는 해당 단계의 출력이 유효한 시점을 결정하고 다음 단계에 이 출력을 언제 사용할지 지시한다.

### 컴퓨터 설계
[섬네일|인텔 80486DX2 [마이크로프로세서]]

가장 범용적인 레지스터 전송 논리 기계는 컴퓨터이다. 이는 기본적으로 자동 이진 주판이다. 컴퓨터의 제어 장치는 대개 마이크로시퀀서에 의해 실행되는 마이크로프로그램으로 설계된다. 마이크로프로그램은 자동 피아노의 롤과 매우 유사하다. 마이크로프로그램의 각 테이블 엔트리는 컴퓨터를 제어하는 모든 비트의 상태를 명령한다. 그러면 시퀀서가 카운트하고, 그 카운트 값이 마이크로프로그램을 포함하는 메모리나 조합 논리 기계를 주소 지정한다. 마이크로프로그램의 비트들은 산술 논리 장치, 메모리 및 마이크로시퀀서 자신을 포함한 컴퓨터의 다른 부분들을 제어한다. 이런 방식으로 컴퓨터의 제어 장치를 설계하는 복잡한 작업은 훨씬 더 단순한 논리 기계들의 집합을 프로그래밍하는 더 단순한 작업으로 환원된다.

거의 모든 컴퓨터는 동기식이다. 그러나 비동기 컴퓨터도 제작된 바 있다. 한 예로 ASPIDA DLX 코어가 있다. 또 다른 예는 ARM 홀딩스에서 제공되었다. 그러나 현대의 컴퓨터 설계는 이미 가장 느린 구성 요소(대개 메모리)의 속도로 실행되므로 속도 면에서 이점은 없다. 클럭 분배 네트워크가 필요하지 않기 때문에 전력을 다소 적게 소모하기는 한다. 예상치 못한 장점은 비동기 컴퓨터가 스펙트럼상 순수한 무선 잡음을 생성하지 않는다는 것이다. 이들은 일부 무선에 민감한 휴대 전화 기지국 제어기에 사용된다. 전기적 및 무선 방출을 해독하기가 더 어려울 수 있기 때문에 암호학 응용 분야에서 더 안전할 수 있다.

### 컴퓨터 구조
컴퓨터 구조는 특정 목적을 위해 레지스터, 계산 논리, 버스 및 컴퓨터의 다른 부분들을 최선의 방법으로 배치하려는 전문적인 엔지니어링 활동이다. 컴퓨터 아키텍트들은 프로그래밍 오류에 대한 내성을 높이는 것 외에도 컴퓨터의 비용을 절감하고 속도를 높이는 데 많은 노력을 기울여 왔다. 컴퓨터 아키텍트들의 점점 더 공통적인 목표는 스마트폰과 같은 배터리 구동 컴퓨터 시스템에서 사용되는 전력을 줄이는 것이다.

### 디지털 회로의 설계 이슈
디지털 회로는 아날로그 부품으로 만들어진다. 설계는 부품의 아날로그적 특성이 원하는 디지털 동작을 지배하지 않도록 보장해야 한다. 디지털 시스템은 잡음과 타이밍 마진, 기생 인덕턴스 및 커패시턴스를 관리해야 한다.

나쁜 설계는 일부 논리는 트리거하지만 다른 논리는 트리거하지 않을 수 있는 극도로 빠른 펄스인 글리치, 유효한 문턱 전압에 도달하지 못하는 런트 펄스(runt pulse)와 같은 간헐적인 문제를 갖는다.

또한 클럭이 작동하는 디지털 시스템이 아날로그 시스템이나 다른 클럭으로 구동되는 시스템과 인터페이스하는 경우, 입력의 변화가 디지털 입력 래치의 설정 시간을 위반하여 발생하는 메타스테이빌리티 문제에 노출될 수 있다.

디지털 회로는 아날로그 부품으로 만들어지기 때문에, 비슷한 공간과 전력을 사용하는 저정밀 아날로그 회로보다 계산 속도가 느리다. 그러나 디지털 회로는 높은 잡음 내성 덕분에 훨씬 더 반복 가능하게 계산한다.

### 자동 설계 도구
대형 논리 기계를 설계하는 노력의 상당 부분은 전자 설계 자동화(EDA)의 적용을 통해 자동화되었다.

논리에 대한 단순한 진리표 스타일의 설명은 원하는 출력을 생성하면서도 축소된 논리 회로 시스템이나 더 작은 룩업 테이블을 자동으로 생성하는 EDA를 통해 종종 최적화된다. 이러한 종류의 소프트웨어 중 가장 일반적인 예는 에스프레소 휴리스틱 논리 최소화기이다. 대규모 논리 시스템의 최적화는 콰인-매클러스키 알고리즘이나 이진 결정 다이어그램을 사용하여 수행될 수 있다. 유전 알고리즘과 담금질 기법 최적화를 이용한 유망한 실험들도 있다.

비용이 많이 드는 엔지니어링 프로세스를 자동화하기 위해, 일부 EDA는 유한 상태 기계를 설명하는 상태 표(state table)를 받아 상태 기계의 조합 논리를 위한 진리표나 기능 표를 자동으로 생성할 수 있다. 상태 표는 각 상태와 상태 간의 전이를 제어하는 조건, 그리고 그와 관련된 출력 신호를 나열한 텍스트 조각이다.

종종 실제 논리 시스템은 일련의 서브 프로젝트로 설계되며, 이들은 툴 플로우(tool flow)를 사용하여 결합된다. 툴 플로우는 대개 소프트웨어 설계 도구들을 올바른 순서로 호출할 수 있는 단순화된 컴퓨터 언어인 스크립트 언어의 도움으로 제어된다. 마이크로프로세서와 같은 대규모 논리 시스템을 위한 툴 플로우는 수천 개의 명령어로 이루어질 수 있으며, 수백 명의 엔지니어의 작업을 결합한다. 툴 플로우를 작성하고 디버깅하는 것은 디지털 설계를 생산하는 회사에서 확립된 엔지니어링 전문 분야이다. 툴 플로우는 대개 논리를 물리적으로 구성하는 방법을 설명하는 상세한 컴퓨터 파일이나 파일 세트로 끝난다. 종종 이는 집적 회로나 인쇄 회로 기판 위에 트랜지스터와 배선을 그리는 방법에 대한 지침으로 구성된다.

툴 플로우의 일부는 시뮬레이션된 논리의 출력을 예상 입력과 대조하여 검증함으로써 디버깅된다. 테스트 도구는 입력 및 출력 세트가 포함된 컴퓨터 파일을 가져와 시뮬레이션된 동작과 예상된 동작 사이의 불일치를 강조 표시한다. 입력 데이터가 정확하다고 믿어지면 설계 자체의 정확성도 검증해야 한다. 일부 툴 플로우는 먼저 설계를 생성한 다음, 설계를 스캔하여 툴 플로우에 호환되는 입력 데이터를 생성함으로써 설계를 검증한다. 스캔된 데이터가 입력 데이터와 일치하면 툴 플로우가 오류를 도입하지 않았을 가능성이 높다.

기능적 형식 검증 데이터는 일반적으로 테스트 벡터(test vectors)라고 불린다. 기능 테스트 벡터는 보존되어 공장에서 새로 제작된 논리가 올바르게 작동하는지 테스트하는 데 사용될 수 있다. 그러나 기능 테스트 패턴은 모든 제조 결함을 발견하지는 못한다. 생산 테스트는 종종 자동 시험 패턴 생성 소프트웨어 도구에 의해 설계된다. 이들은 논리의 구조를 조사하고 특정 잠재적 결함을 목표로 하는 테스트를 체계적으로 생성하여 테스트 벡터를 만든다. 이런 방식으로 설계가 적절하게 테스트 가능하게 만들어졌다면 결함 검출도가 100%에 가까워질 수 있다(다음 섹션 참조).

설계가 존재하고 검증 및 테스트가 가능해지면, 제조 가능하도록 처리되어야 하는 경우가 많다. 현대의 집적 회로는 감광액을 노광하는 데 사용되는 빛의 파장보다 작은 특징을 가지고 있다. 제조 고려 설계(Design for manufacturability)용으로 제작된 소프트웨어는 노광 마스크에 간섭 패턴을 추가하여 단선을 제거하고 마스크의 대비를 높인다.

### 테스트 용이성 설계
논리 회로를 테스트하는 데에는 몇 가지 이유가 있다. 회로가 처음 개발될 때, 설계된 회로가 요구되는 기능 및 타이밍 사양을 충족하는지 확인해야 한다. 올바르게 설계된 회로의 복사본이 대량으로 제조될 때, 제조 공정에서 결함이 유입되지 않았는지 확인하기 위해 각 복사본을 테스트하는 것이 필수적이다.

대형 논리 기계(예를 들어, 100개 이상의 논리 변수를 가진 기계)는 천문학적인 수의 가능한 상태를 가질 수 있다. 분명히 그러한 기계의 모든 상태를 공장에서 테스트하는 것은 불가능하다. 각 상태를 테스트하는 데 단 1마이크로초만 걸리더라도, 우주가 시작된 이래 흐른 마이크로초보다 더 많은 가능한 상태가 존재하기 때문이다!

대형 논리 기계는 거의 항상 더 작은 논리 기계들의 조립체로 설계된다. 시간을 절약하기 위해, 더 작은 하위 기계들은 영구적으로 설치된 테스트용 설계 회로에 의해 격리되어 독립적으로 테스트된다. 한 가지 일반적인 테스트 체계는 논리 기계의 일부가 테스트 사이클로 들어가도록 강제하는 테스트 모드를 제공하는 것이다. 테스트 사이클은 대개 기계의 큰 독립적인 부분들을 작동시킨다.

경계 주사(Boundary scan)는 스캔 체인으로 알려진 하나 이상의 시프트 레지스터를 통해 외부 테스트 장비와 직렬 통신을 사용하는 일반적인 테스트 체계이다. 직렬 스캔은 데이터를 전달하기 위해 단 한두 개의 전선만 사용하므로, 드물게 사용되는 테스트 논리의 물리적 크기와 비용을 최소화한다. 모든 테스트 데이터 비트가 배치된 후, 설계는 정상 모드로 재구성되고 하나 이상의 클럭 펄스가 가해져 결함(예: stuck-at low 또는 stuck-at high)을 테스트하고 테스트 결과를 스캔 시프트 레지스터의 플립플롭이나 래치에 캡처한다. 마지막으로 테스트 결과가 블록 경계 밖으로 이동되어 예상되는 정상 기계 결과와 비교된다.

보드 테스트 환경에서 직렬-병렬 테스트는 JTAG 표준으로 공식화되었다.

### 절충점

#### 비용
디지털 시스템은 많은 논리 회로를 사용할 수 있으므로, 컴퓨터 구축의 전반적인 비용은 논리 회로 하나의 비용과 강한 상관관계를 갖는다. 1930년대의 초기 디지털 논리 시스템은 전화용 계전기가 저렴하고 상대적으로 신뢰할 수 있었기 때문에 이를 사용하여 구축되었다.

최초의 집적 회로는 무게를 줄이고 아폴로 가이던스 컴퓨터가 우주선의 관성 항법 장치를 제어할 수 있도록 하기 위해 제작되었다. 최초의 집적 회로 논리 회로는 개당 거의 50달러였는데, 이는  기준으로 $에 해당한다. 집적 회로를 이용한 논리 회로의 대량 생산은 디지털 논리를 구축하는 가장 저렴한 방법이 되었다.

집적 회로의 부상과 함께, 사용되는 칩의 절대적인 수를 줄이는 것이 비용을 절감하는 또 다른 방법이 되었다. 설계자의 목표는 단지 가장 단순한 회로를 만드는 것이 아니라 부품 수를 낮게 유지하는 것이다. 때때로 이는 근본적인 디지털 논리 측면에서는 더 복잡한 설계를 초래하지만, 결과적으로 부품 수, 보드 크기, 심지어 전력 소비까지 줄여준다.

#### 신뢰성
인쇄 회로 기판의 부품 수를 줄이는 또 다른 주요 동기는 납땜 연결 실패로 인한 제조 결함률을 낮추고 신뢰성을 높이는 것이다. 결함 및 고장률은 전체 부품 핀 수와 함께 증가하는 경향이 있다.

단 하나의 논리 회로 고장이 디지털 기계의 고장을 일으킬 수 있다. 추가적인 신뢰성이 요구되는 경우, 중복 논리(redundant logic)를 제공할 수 있다. 중복성은 비중복 시스템에 비해 비용과 전력 소비를 증가시킨다.

논리 회로의 신뢰성은 평균 고장 간격(MTBF)으로 설명될 수 있다. 디지털 기계는 스위치의 MTBF가 수백 시간 이상으로 증가하면서 처음으로 유용해졌다. 그럼에도 불구하고, 이러한 기계들 중 다수는 복잡하고 잘 연습된 수리 절차를 가지고 있었으며, 진공관이 타버리거나 나방이 계전기에 끼어 수 시간 동안 작동하지 않기도 했다. 현대의 트랜지스터화된 집적 회로 논리 회로는 820억 시간() 이상의 MTBF를 가진다. 집적 회로에는 수많은 논리 회로가 포함되어 있기 때문에 이러한 수준의 신뢰성이 요구된다.

#### 팬 아웃
팬 아웃은 논리 회로 출력의 전류 정격을 초과하지 않고 단일 논리 출력이 얼마나 많은 논리 입력을 제어할 수 있는지를 설명한다. 실용적인 최소 팬 아웃은 약 5이다. 스위치로 CMOS 트랜지스터를 사용하는 현대의 전자 논리 회로는 더 높은 팬 아웃을 갖는다.

#### 속도
스위칭 속도는 논리 출력이 참에서 거짓으로 또는 그 반대로 변하는 데 걸리는 시간을 설명한다. 더 빠른 논리는 더 짧은 시간에 더 많은 작업을 수행할 수 있다. 현대의 전자 디지털 논리는 일상적으로 에서 스위칭하며, 일부 연구실 시스템은  이상에서 스위칭한다.

## 논리 패밀리

디지털 설계는 속도가 느린 계전기 논리로 시작되었다. 가끔 기계적 고장이 발생하곤 했다. 팬 아웃은 일반적으로 약 10이었으며, 코일의 저항과 고전압으로 인한 접점의 아킹(arcing)에 의해 제한되었다.

나중에 진공관이 사용되었다. 이들은 매우 빨랐지만 열을 발생시켰고 필라멘트가 타버리기 때문에 신뢰성이 낮았다. 팬 아웃은 일반적으로 5에서 7이었으며, 진공관 전류로 인한 가열에 의해 제한되었다. 1950년대에는 규소와 같은 휘발성 원소를 배제한 필라멘트를 가진 특수 컴퓨터용 진공관이 개발되었다. 이들은 수십만 시간 동안 작동했다.

최초의 반도체 논리 패밀리는 저항-트랜지스터 논리였다. 이는 진공관보다 천 배 더 신뢰할 수 있었고, 더 시원하게 작동했으며 전력도 적게 사용했지만, 팬 아웃이 3으로 매우 낮았다. 다이오드-트랜지스터 논리는 팬 아웃을 약 7까지 개선하고 전력을 줄였다. 일부 DTL 설계는 팬 아웃을 높이기 위해 NPN과 PNP 트랜지스터를 교대로 배치한 두 개의 전원을 사용했다.

트랜지스터-트랜지스터 논리(TTL)는 이들에 비해 큰 발전이었다. 초기 소자에서 팬 아웃은 10으로 개선되었고, 나중의 변형들은 안정적으로 20을 달성했다. TTL은 또한 빨랐으며, 일부 변형은 20&nbsp;ns만큼 낮은 스위칭 시간을 달성했다. TTL은 여전히 일부 설계에서 사용된다.

이미터-결합 논리는 매우 빠르지만 전력을 많이 사용한다. 이는 수많은 중간 규모 부품으로 구성된 Illiac IV와 같은 고성능 컴퓨터에 광범위하게 사용되었다.

단연코 오늘날 구축되는 가장 일반적인 디지털 집적 회로는 CMOS 논리를 사용하며, 이는 빠르고 높은 회로 밀도와 게이트당 낮은 전력을 제공한다. 이는 IBM System z와 같은 크고 빠른 컴퓨터에서도 사용된다.

## 최근의 발전
2009년에 연구자들은 멤리스터가 불 상태 저장을 구현할 수 있으며, 친숙한 CMOS 반도체 공정을 사용하여 매우 작은 공간과 전력으로 완전한 논리 패밀리를 제공할 수 있음을 발견했다.

초전도 현상의 발견은 트랜지스터 대신 조셉슨 접합을 사용하는 급속 단일 자속 양자(RSFQ) 회로 기술의 개발을 가능하게 했다. 가장 최근에는 비선형 광학 요소를 사용하여 디지털 정보를 처리할 수 있는 순수 광 컴퓨터 시스템을 구축하려는 시도가 이루어지고 있다.

## 같이 보기
* 표준 논리 IC
** 트랜지스터-트랜지스터 논리
** 시모스
* 불 대수
** 진리표
** 이진법
* 하드웨어 기술 언어

## 각주


; 내용주


## 외부 링크
*