디지털 전자장치
디지털 신호는 두 개 이상의 구별 가능한 파형을 가지며, 이 예에서는 고전압과 저전압이 각각 숫자에 매핑될 수 있습니다.
산업용 디지털 컨트롤러
디지털 전자공학은 디지털 신호를 연구하고 이를 사용하거나 생산하는 장치의 공학을 포함하는 전자공학 분야입니다. 이 기술은 논리 게이트, 저항기, 커패시터, 증폭기 및 기타 전자 부품을 통해 전기 신호를 전달함으로써 이진 입력과 출력 간의 관계를 다룹니다. 디지털 전자공학 분야는 주로 아날로그 신호(온/오프 2상태 이진 신호와 달리 강도가 다양한 신호)를 다루는 아날로그 전자공학과 대조됩니다. 이름과 달리 디지털 전자 설계에는 중요한 아날로그 설계 고려사항이 포함되어 있습니다.
더 복잡한 아이디어를 표현하는 데 사용되는 대규모 논리 게이트 조립체는 종종 집적 회로로 포장됩니다. 복잡한 장치는 불리언 논리 함수의 간단한 전자적 표현을 가질 수 있습니다. [1]
역사
이진 수 체계는 고트프리트 빌헬름 라이프니츠(1705년 출판)에 의해 정교화되었으며, 이진 체계를 사용하면 산술과 논리의 원리가 결합될 수 있음을 확립했다. 우리가 아는 디지털 논리는 19세기 중반 조지 불(George Boole)의 발명입니다. 1886년 찰스 샌더스 퍼스는 한 편지에서 전기 스위칭 회로를 통해 논리적 연산이 어떻게 가능한지 설명했다. [2] 결국 진공관이 논리 연산을 위한 릴레이를 대체하게 되었습니다. Lee De Forest가 1907년에 개조한 Fleming 밸브는 AND 게이트로 사용할 수 있었습니다. 루트비히 비트겐슈타인은 1921년 『논리철학 논문』의 5.101 명제로 16행 진리표 버전을 도입했다. 우연 회로의 발명가 발스터 보테는 1924년 최초의 현대 전자 AND 게이트를 만들어 1954년 노벨 물리학상을 공동 수상했습니다.
기계식 아날로그 컴퓨터는 1세기에 등장하기 시작했으며, 중세 시대에는 천문 계산에 사용되었다. 제2차 세계대전 동안에는 어뢰 조준 계산과 같은 특수 군사 응용 분야에 기계식 아날로그 컴퓨터가 사용되었다. 이 시기에 최초의 전자 디지털 컴퓨터가 개발되었으며, 1942년 조지 스티비츠가 디지털이라는 용어를 제안했다. 원래 이들은 큰 방 크기였으며, 수백 대의 현대 PC에 해당하는 전력을 소비했다. [3]
클로드 섀넌은 불 대수의 전기적 응용이 모든 논리적 수치 관계를 구성할 수 있음을 입증하며, 1937년 석사 논문에서 디지털 컴퓨팅과 디지털 회로의 기초를 마련했다. 이 논문은 아마도 가장 중요한 석사 논문으로 평가받아 1939년 알프레드 노블상을 수상했다. [4][5]
Z3는 콘라드 주제가 설계한 전기기계식 컴퓨터였다. 1941년에 완성된 이 컴퓨터는 세계 최초의 작동하는 프로그래머블 완전 자동 디지털 컴퓨터였다. [6] 이 컴퓨터의 작동은 1904년 존 앰브로즈 플레밍이 진공관을 발명하면서 용이해졌다.
디지털 계산이 아날로그를 대체하는 동시에, 순수 전자 회로 소자가 곧 기계적, 전기적 회로 요소를 대체했다. 존 바딘과 월터 브래틴은 1947년 벨 연구소에서 점접촉 트랜지스터를 발명했고, 이어 1948년 윌리엄 쇼클리가 벨 연구소에서 바이폴라 접합 트랜지스터를 발명했다. [7][8]
맨체스터 대학교에서는 톰 킬번(Tom Kilburn)의 리더십 아래 진공관 대신 새로 개발된 트랜지스터를 사용하는 기계를 설계하고 제작했습니다. [9] 그들의 "트랜지스터 컴퓨터"는 세계 최초로 1953년에 작동했으며, 1955년 4월에 두 번째 버전이 완성되었습니다. 1955년 이후로 트랜지스터가 컴퓨터 설계에서 진공관을 대체하며 "2세대" 컴퓨터가 탄생했습니다. 진공관과 비교했을 때, 트랜지스터는 더 작고 신뢰성이 높으며 수명이 무한하고 전력이 적어 발열이 적고, 비교적 작은 공간에 수만 개의 회로를 밀도 높게 유지할 수 있었습니다. [출처 필요]
1955년, 칼 프로쉬와 링컨 데릭은 이산화규소 표면 패시베이션 효과를 발견했습니다. [10] 1957년 프로쉬와 데릭은 마스킹과 전포지션을 이용해 이산화실리콘 전계효과 트랜지스터를 제조할 수 있었다; 드레인과 소스가 같은 표면에 인접해 있는 최초의 평면 트랜지스터. [11] 벨 연구소에서는 프로쉬와 데릭 기법과 트랜지스터의 중요성이 즉시 인식되었습니다. 그들의 연구 결과는 1957년에 출판되기 전까지 벨 연구소 내에서 BTL 메모 형태로 돌았다. 쇼클리 반도체에서 쇼클리는 1956년 12월 그들의 논문 사전 인쇄본을 모든 고위 직원들에게 배포했으며, 장 호르니도 포함되었다. 그는 이후 1959년 페어차일드 세미컨덕터에서 평면 공정을 발명하게 된다. [16][17] 벨 연구소에서 J.R. 리겐자와 W.G. 스피처는 열성장 산화물의 메커니즘을 연구하고, 고품질 Si/SiO2 스택을 제작하여 1960년에 그 결과를 발표했다. [18][19][20] 벨 연구소에서의 이 연구 이후, 모하메드 아탈라와 다원 캉은 1959년에 실리콘 MOS 트랜지스터를 제안했고[21], 1960년 벨 연구소 팀과 함께 작동하는 MOS 소자를 성공적으로 시연했다. [22][23] 팀에는 장치를 제작한 E. E. 라베이트와 E. I. 포빌로니스가 포함되어 있었다; 확산 과정을 개발한 M. O. 서스턴, L. A. 다사로, J. R. 리겐자, 그리고 장치를 특성화한 H. K. 구멜과 R. 린드너가 이 장치를 특징지었습니다. [24][25]
1958년 7월 텍사스 인스트루먼트에서 근무하던 잭 킬비는 집적 회로(IC)에 관한 초기 아이디어를 기록했고, 1958년 9월 12일 최초의 작동하는 집적 회로를 성공적으로 시연했습니다. [26] 킬비의 칩은 게르마늄으로 만들어졌어. 다음 해, 페어차일드 세미컨덕터의 로버트 노이스가 실리콘 집적회로를 발명했습니다. 노이스의 실리콘 IC의 기초는 호르니의 평면 공정이었습니다. [출처 필요]
MOSFET의 장점으로는 높은 확장성, [27] 경제성, [28] 낮은 전력 소비, 높은 트랜지스터 밀도가 있습니다. [29] 빠른 온-오프 전자 스위칭 속도 덕분에 펄스 트레인을 생성하는 데 이상적이며,[30] 전자 디지털 신호의 기초가 되며,[31][32] 반면 BJT는 느리게 사인파와 유사한 아날로그 신호를 생성합니다. [30] MOS 대규모 적적(LSI)과 함께 이러한 요소들은 MOSFET을 디지털 회로에서 중요한 스위칭 장치로 만듭니다. [33] MOSFET은 전자 산업에 혁신을 가져왔으며,[34][35], 가장 일반적인 반도체 소자입니다. [36][37]
집적회로 초기에는 각 칩이 몇 개의 트랜지스터로 제한되었고, 낮은 집적도 덕분에 설계 과정이 비교적 단순했습니다. 제조 수율도 오늘날 기준으로 매우 낮았습니다. 1970년대 초반 MOSFET 트랜지스터의 광범위한 채택으로 단일 칩에 10,000개 이상의 트랜지스터가 탑재된 최초의 대규모 집적(LSI) 칩이 등장했습니다. [38] 1980년대에 MOSFET 논리의 일종인 CMOS가 널리 채택되면서, 기술이 발전함에 따라 수백만, 그리고 수십억 개의 MOSFET이 하나의 칩에 탑재될 수 있게 되었고,[39] 좋은 설계는 철저한 계획이 필요했고, 새로운 설계 방법들이 등장했습니다. 소자의 트랜지스터 수와 총 생산량은 전례 없는 수준으로 증가했습니다. 2018년까지 생산된 총 트랜지스터 수는 1.3×1022(13 섹스틸리온)로 추정됩니다. [40]
무선 혁명(무선 네트워크의 도입 및 확산)은 1990년대에 시작되었으며, MOSFET 기반 RF 전력 증폭기(전원 MOSFET 및 LDMOS)와 RF 회로(RF CMOS)의 광범위한 채택으로 가능해졌습니다. [41][42][43] 무선 네트워크는 케이블 없이도 공공 디지털 전송을 가능하게 하여 1990년대부터 2000년대까지 디지털 텔레비전, 위성 및 디지털 라디오, GPS, 무선 인터넷, 휴대전화로 이어졌습니다. [출처 필요]]
특성
디지털 회로의 장점은 아날로그 회로와 비교했을 때 디지털로 표현된 신호가 잡음으로 인한 열화 없이 전송될 수 있다는 점입니다. [44] 예를 들어, 1과 0의 연속된 오디오 신호는 1과 0의 연속 신호를 오차 없이 재구성할 수 있지만, 전송 중 잡음이 1과 0의 식별을 방해하지 않을 정도로 충분하지 않다면요.
디지털 시스템에서는 신호를 더 많은 이진 숫자로 표현함으로써 더 정밀하게 신호를 표현할 수 있습니다. 이로 인해 신호를 처리하기 위해 더 많은 디지털 회로가 필요하지만, 각 숫자는 동일한 하드웨어에서 처리되어 쉽게 확장할 수 있는 시스템을 제공합니다. 아날로그 시스템에서는 추가 해상도를 위해 신호 체인의 각 단계의 선형성과 잡음 특성에 근본적인 개선이 필요합니다.
컴퓨터 제어 디지털 시스템을 통해 소프트웨어 개정을 통해 새로운 기능을 추가할 수 있으며 하드웨어 변경이 필요하지 않습니다. 종종 공장 외부에서 제품 소프트웨어를 업데이트하여 처리할 수 있습니다. 이렇게 하면 제품이 고객의 손에 들어간 후에도 설계 오류를 수정할 수 있습니다.
정보 저장은 아날로그 시스템보다 디지털 시스템에서 더 쉬울 수 있습니다. 디지털 시스템의 노이즈 내성 덕분에 데이터가 열화되지 않고 저장되고 검색할 수 있습니다. 아날로그 시스템에서는 노화와 마모로 인한 잡음이 저장된 정보를 저하시킵니다. 디지털 시스템에서는 전체 잡음이 일정 수준 이하이면 정보를 완벽하게 복구할 수 있습니다. 더 큰 잡음이 존재하더라도, 중복성 사용으로 너무 많은 오류가 발생하지 않는 한 원본 데이터를 복구할 수 있습니다.
경우에 따라 디지털 회로는 동일한 작업을 수행하는 데 아날로그 회로보다 더 많은 에너지를 사용해 더 많은 열을 발생시키고, 이는 히트 싱크의 포함과 같이 회로의 복잡성을 증가시킵니다. 휴대용 또는 배터리 구동 시스템에서는 디지털 시스템의 사용을 제한할 수 있습니다. 예를 들어, 배터리로 작동하는 셀룰러 전화는 종종 저전력 아날로그 프론트엔드를 사용해 기지국의 무선 신호를 증폭하고 조율합니다. 하지만 기지국은 전력망을 가지고 있어 전력 소모가 많지만 매우 유연한 소프트웨어 무전기를 사용할 수 있습니다. 이러한 기지국은 새로운 셀룰러 표준에서 사용되는 신호를 처리하도록 쉽게 재프로그래밍할 수 있습니다.
많은 유용한 디지털 시스템은 연속적인 아날로그 신호에서 이산 디지털 신호로 변환해야 합니다. 이로 인해 양자화 오류가 발생합니다. 시스템이 신호를 원하는 충실도까지 표현할 만큼 충분한 디지털 데이터를 저장하면 양자화 오차를 줄일 수 있습니다. 나이퀴스트-섀넌 샘플링 정리는 주어진 아날로그 신호를 정확하게 표현하기 위해 필요한 디지털 데이터의 양에 대한 중요한 지침을 제공합니다.
디지털 데이터 한 조각이 분실되거나 오해되면, 일부 시스템에서는 작은 오류만 발생할 수 있지만, 다른 시스템에서는 관련 데이터 블록의 큰 의미가 완전히 바뀔 수 있습니다. 예를 들어, 오디오 데이터에서 선형 펄스 코드 변조로 직접 저장된 단일 비트 오류가 최악의 경우 단일 청각 클릭음을 유발합니다. 하지만 저장 공간과 전송 시간을 절약하기 위해 오디오 압축을 사용할 때, 단일 비트 오류로 인해 훨씬 더 큰 방해가 발생할 수 있습니다.
클리프 효과 때문에 사용자가 특정 시스템이 고장 직전인지, 아니면 훨씬 더 많은 노이즈를 견딜 수 있는지 판단하기 어려울 수 있습니다. 디지털 시스템의 견고성을 설계함으로써 디지털 취약성을 줄일 수 있습니다. 예를 들어, 패리티 비트나 기타 오류 관리 방법을 신호 경로에 삽입할 수 있습니다. 이러한 방식은 시스템이 오류를 감지하고 오류를 수정하거나 데이터 재전송을 요청하는 데 도움을 줍니다.
추가 정보: 디지털 신호 조절 및 신호 조절
건설
브레드보드에 손으로 배선된 이진 시계
디지털 회로는 일반적으로 조합 논리와 순차 논리를 생성하는 데 사용할 수 있는 논리 게이트라 불리는 작은 전자 회로로 구성됩니다. 각 논리 게이트는 논리 신호에 작용할 때 불 논리의 기능을 수행하도록 설계되었습니다. 논리 게이트는 일반적으로 하나 이상의 전기적으로 제어되는 스위치, 보통 트랜지스터로 구성되지만, 열전자 밸브는 역사적으로 사용된 사례가 있습니다. 논리 게이트의 출력은 다시 더 많은 논리 게이트를 제어하거나 공급할 수 있습니다.
또 다른 형태의 디지털 회로는 룩업 테이블(많은 경우 '프로그래머블 로직 디바이스'로 판매되지만, 다른 종류의 PLD도 존재함)으로 구성됩니다. 룩업 테이블은 논리 게이트를 기반으로 한 기계와 동일한 기능을 수행할 수 있지만, 배선을 변경하지 않고도 쉽게 재프로그래밍할 수 있습니다. 즉, 설계자는 배열을 변경하지 않고도 설계 오류를 수정할 수 있는 경우가 많습니다. 따라서 소량 제품에서는 프로그래머블 로직 디바이스가 종종 선호되는 솔루션이 됩니다. 이들은 보통 전자 설계 자동화 소프트웨어를 사용하는 엔지니어들이 설계합니다.
집적 회로는 하나의 실리콘 칩 위에 여러 개의 트랜지스터를 포함하며, 많은 수의 상호 연결된 논리 게이트를 가장 저렴하게 만드는 방법입니다. 집적 회로는 보통 전기 부품을 고정하고 구리 트레이스로 연결하는 인쇄 회로 기판 위에 상호 연결됩니다.
설계
엔지니어들은 회로 복잡도를 줄이기 위해 논리 중복을 최소화하기 위해 다양한 방법을 사용합니다. 복잡도를 줄이면 부품 수와 잠재적 오류가 줄어들어 일반적으로 비용이 절감됩니다. 논리 중복성은 이진 결정 다이어그램, 불 대수, 카르노 맵, 퀸-맥클러스키 알고리즘, 휴리스틱 컴퓨터 방법 등 잘 알려진 여러 기법으로 제거할 수 있습니다. 이러한 연산은 일반적으로 컴퓨터 지원 설계 시스템 내에서 수행됩니다.
마이크로컨트롤러와 프로그래머블 로직 컨트롤러가 포함된 임베디드 시스템은 최적의 성능이 필요하지 않은 복잡한 시스템에 디지털 논리를 구현하는 데 자주 사용됩니다. 이 시스템들은 보통 소프트웨어 엔지니어나 전기기사가 래더 로직을 사용하여 프로그래밍합니다.
대표성
디지털 회로의 입출력 관계는 진리표로 표현할 수 있습니다. 동등한 고수준 회로는 서로 다른 형태로 표현된 논리 게이트를 사용합니다(IEEE/ANSI 91–1984에 의해 표준화됨). [45] 저수준 표현은 전자 스위치(보통 트랜지스터)와 동등한 회로를 사용합니다.
대부분의 디지털 시스템은 조합 시스템과 순차 시스템으로 나뉩니다. 조합 시스템의 출력은 현재의 입력에만 의존합니다. 하지만 순차 시스템은 일부 출력이 입력으로 피드백되므로, 출력은 현재 입력 외에도 과거 입력에 의존하여 연산 연산의 연속을 생성할 수 있습니다. 상태 기계라 불리는 동작의 단순화된 표현은 설계와 테스트를 용이하게 합니다.
순차 시스템은 두 가지 하위 범주로 나뉩니다. "동기식" 순차 시스템은 클럭 신호가 상태가 변할 때 동시에 모든 상태가 바뀝니다. "비동기" 순차 시스템은 입력이 바뀔 때마다 변화를 전파합니다. 동기 순차 시스템은 플립플롭을 사용해 입력된 전압을 클럭이 바뀔 때만 비트로 저장하는 방식으로 만들어집니다.
동기 시스템
D형 플립플롭을 사용하는 4비트 링 카운터는 동기식 논리의 예입니다. 각 장치는 클럭 신호에 연결되어 함께 업데이트됩니다.
주요 문서: 동기식 논리
동기식 순차 상태 기계를 구현하는 일반적인 방법은 조합 논리와 상태 레지스터라 불리는 플립플롭 집합으로 나누는 것입니다. 상태 등록기는 상태를 이진 숫자로 나타냅니다. 조합 논리는 다음 상태에 대한 이진 표현을 생성합니다. 각 클럭 사이클마다 상태 레지스터는 이전 조합 논리 상태에서 생성된 피드백을 캡처하여 상태 기계의 조합 부분에 변하지 않는 입력으로 피드백합니다. 클럭 속도는 조합 단위 논리에서 가장 시간이 많이 드는 논리 계산에 의해 제한됩니다.
비동기 시스템
대부분의 디지털 논리는 동기식 설계를 만들고 검증하기 쉽기 때문에 동기식입니다. 하지만 비동기 논리는 임의의 클럭에 의해 속도가 제한되지 않는다는 장점이 있습니다; 대신, 논리 게이트의 최대 속도로 실행됩니다. [a]
그럼에도 불구하고 대부분의 시스템은 동기 논리 회로에 외부 비동기화 신호를 받아들여야 합니다. 이 인터페이스는 본질적으로 비동기적이므로 반드시 비동기식으로 분석되어야 합니다. 널리 사용되는 비동기 회로의 예로는 동기 플립플롭, 스위치 디바운서, 아비터가 있습니다.
비동기 논리 부품은 모든 가능한 상태와 모든 타이밍을 고려해야 하므로 설계가 어려울 수 있습니다. 일반적인 방법은 각 상태가 존재할 수 있는 최소 시간과 최대 시간의 표를 만든 후, 회로를 조정하여 이러한 상태의 수를 최소화하는 것입니다. 설계자는 회로가 모든 부품이 호환 가능한 상태에 들어갈 때까지 주기적으로 기다리도록 강제해야 하며(이를 '자기 재동기화'라고 합니다). 신중한 설계 없이는 비동기 논리를 우연히 만들어 불안정하게 만들 수 있습니다. 즉, 실제 전자장치는 전자 부품의 값 차이로 인한 누적 지연 때문에 예측 불가능한 결과를 낳게 됩니다.
레지스터 전송 시스템
토글링 출력이 있는 단순 회로의 예시입니다. 인버터는 이 회로의 조합 논리를 형성하고, 레지스터는 상태를 유지합니다.
많은 디지털 시스템은 데이터 흐름 기계입니다. 이들은 보통 동기식 레지스터 전송 논리를 사용해 설계되며 VHDL이나 Verilog와 같은 하드웨어 설명 언어로 작성됩니다.
레지스터 전송 논리에서는 이진 숫자가 레지스터라 불리는 플립플롭 그룹에 저장됩니다. 순차 상태 기계는 각 레지스터가 입력으로부터 새로운 데이터를 언제 받아들일지 제어합니다. 각 레지스터의 출력은 버스라고 불리는 전선 다발로, 이 번호를 다른 계산으로 전달합니다. 계산은 단순히 조합 논리의 한 조각입니다. 각 계산에는 출력 버스도 있으며, 이는 여러 레지스터의 입력에 연결될 수 있습니다. 때때로 레지스터는 입력에 멀티플렉서를 설치하여 여러 버스 중 어느 하나의 숫자를 저장할 수 있습니다. [b]
비동기 레지스터 전송 시스템(예: 컴퓨터)에는 일반적인 해결책이 있습니다. 1980년대에 일부 연구자들은 거의 모든 동기식 레지스터 전송 기계가 선입선출 동기화 논리를 사용하여 비동기 설계로 전환할 수 있음을 발견했습니다. 이 방식에서 디지털 기계는 데이터 흐름의 집합으로 특징지어집니다. 흐름의 각 단계에서 동기화 회로는 해당 단계의 출력이 유효한지 판단하고, 다음 단계에 언제 이 출력을 사용할 것인지 지시합니다. [출처 필요]
컴퓨터 설계
인텔 80486DX2 마이크로프로세서
가장 범용적인 레지스터 전송 논리 기계는 컴퓨터입니다. 이것은 기본적으로 자동 이진 주판입니다. 컴퓨터의 제어 장치는 보통 마이크로시퀀서가 실행하는 마이크로프로그램으로 설계됩니다. 마이크로프로그램은 플레이어-피아노 롤과 매우 비슷합니다. 마이크로프로그램의 각 테이블 항목은 컴퓨터를 제어하는 모든 비트의 상태를 명령합니다. 시큐서는 카운트를 수행하고, 카운트는 마이크로프로그램을 포함하는 메모리 또는 조합 논리 기계를 주소로 지정합니다. 마이크로프로그램의 비트는 산술 논리 장치, 메모리 및 마이크로시퀀서 자체를 포함한 컴퓨터의 다른 부분들을 제어합니다. 이렇게 컴퓨터의 제어 설계라는 복잡한 작업은 훨씬 더 단순한 논리 기계 집합을 프로그래밍하는 더 단순한 작업으로 축소됩니다.
거의 모든 컴퓨터는 동기식입니다. 하지만 비동기식 컴퓨터도 제작되었습니다. 한 예로는 ASPIDA DLX 코어가 있습니다. [47] 또 다른 제안은 ARM 홀딩스에서 제공했습니다. [48] 하지만 현대 컴퓨터 설계는 이미 가장 느린 부품인 보통 메모리의 속도로 실행되기 때문에 속도 우위는 없습니다. 클럭 분배망이 필요 없기 때문에 전력을 다소 덜 사용합니다. 예상치 못한 장점은 비동기 컴퓨터가 스펙트럼 순수한 무선 잡음을 생성하지 않는다는 점입니다. 일부 무선 감지 기지국 컨트롤러에 사용됩니다. 전기 및 무선 방출이 해독이 더 어려워 암호학 응용 분야에서는 더 안전할 수 있습니다. [48]
컴퓨터 아키텍처
컴퓨터 아키텍처는 특정 목적에 맞게 레지스터, 계산 논리, 버스 및 기타 컴퓨터의 일부 부분을 가능한 한 최선의 방식으로 배열하려는 특수한 공학 활동입니다. 컴퓨터 아키텍트들은 컴퓨터 비용을 줄이고 속도를 높이는 데 많은 노력을 기울였으며, 프로그래밍 오류에 대한 면역력을 높이기 위해 노력해왔습니다. 컴퓨터 설계자들의 점점 더 흔한 목표 중 하나는 스마트폰과 같은 배터리 구동 컴퓨터 시스템에서 소비되는 전력을 줄이는 것입니다.
디지털 회로의 설계 문제
디지털 회로는 아날로그 부품으로 만들어집니다. 설계는 부품의 아날로그 특성이 원하는 디지털 동작을 지배하지 않도록 해야 합니다. 디지털 시스템은 잡음과 타이밍 여유, 기생 인덕턴스 및 정전용량을 관리해야 합니다.
나쁜 설계는 글리치, 일부 논리를 트리거하지만 다른 로직은 작동하지 않는 매우 빠른 펄스, 유효한 임계값 전압에 도달하지 않는 런트 펄스 같은 간헐적 문제가 있습니다.
또한, 클럭 디지털 시스템이 아날로그 시스템 또는 다른 클럭에서 구동되는 시스템과 인터페이스할 경우, 디지털 시스템은 메타안정성에 노출될 수 있는데, 이는 입력 변경이 디지털 입력 래치의 설정 시간을 위반하는 경우입니다.
디지털 회로는 아날로그 부품으로 만들어지기 때문에, 비슷한 공간과 전력을 사용하는 저정밀도 아날로그 회로보다 계산 속도가 느립니다. 하지만 디지털 회로는 높은 잡음 내성 덕분에 더 반복적으로 계산할 수 있습니다.
자동화 설계 도구
대형 논리 기계 설계의 많은 노력은 전자 설계 자동화(EDA)의 적용을 통해 자동화되었습니다.
간단한 진리표 스타일의 논리 설명은 종종 EDA로 최적화되어 자동으로 줄어든 논리 게이트 시스템이나 원하는 출력을 내는 작은 룩업 테이블을 생성합니다. 이 유형의 소프트웨어에서 가장 흔한 예는 Espresso 휴리스틱 로직 최소화기입니다. 대규모 논리 시스템 최적화는 Quine–McCluskey 알고리즘이나 이진 결정 다이어그램을 사용하여 수행할 수 있습니다. 유전 알고리즘과 어닐링 최적화를 활용한 유망한 실험들이 있습니다.
비용이 많이 드는 엔지니어링 프로세스를 자동화하기 위해, 일부 EDA는 상태 기계를 설명하는 상태 테이블을 가져와 상태 기계의 조합 논리를 위한 진리 표나 함수 테이블을 자동으로 생성할 수 있습니다. 상태 테이블은 각 상태를 나열한 텍스트이며, 상태 간의 전이 및 관련 출력 신호를 제어하는 조건들을 함께 나열합니다.
종종 실제 논리 시스템은 도구 흐름을 통해 결합된 일련의 하위 프로젝트로 설계됩니다. 도구 흐름은 보통 소프트웨어 설계 도구를 올바른 순서로 호출할 수 있는 단순화된 컴퓨터 언어인 스크립팅 언어의 도움으로 제어됩니다. 마이크로프로세서와 같은 대형 논리 시스템의 도구 흐름은 수천 개의 명령어에 달할 수 있으며, 수백 명의 엔지니어들의 작업을 결합합니다. 도구 흐름을 작성하고 디버깅하는 것은 디지털 설계를 제작하는 회사에서 확립된 엔지니어링 전문 분야입니다. 도구 흐름은 보통 논리를 물리적으로 구성하는 방법을 설명하는 상세한 컴퓨터 파일 또는 파일 집합에서 끝납니다. 대개 집적회로나 인쇄회로기판에서 트랜지스터와 배선을 그리는 방법에 대한 지침으로 구성됩니다.
Parts of tool flows are debugged by verifying the outputs of simulated logic against expected inputs. The test tools take computer files with sets of inputs and outputs and highlight discrepancies between the simulated behavior and the expected behavior. Once the input data is believed to be correct, the design itself must still be verified for correctness. Some tool flows verify designs by first producing a design, then scanning the design to produce compatible input data for the tool flow. If the scanned data matches the input data, then the tool flow has probably not introduced errors.
The functional verification data are usually called test vectors. The functional test vectors may be preserved and used in the factory to test whether newly constructed logic works correctly. However, functional test patterns do not discover all fabrication faults. Production tests are often designed by automatic test pattern generation software tools. These generate test vectors by examining the structure of the logic and systematically generating tests targeting particular potential faults. This way the fault coverage can closely approach 100%, provided the design is properly made testable (see next section).
Once a design exists, and is verified and testable, it often needs to be processed to be manufacturable as well. Modern integrated circuits have features smaller than the wavelength of the light used to expose the photoresist. Software that is designed for manufacturability add interference patterns to the exposure masks to eliminate open-circuits and enhance the masks' contrast.
Design for testability
There are several reasons for testing a logic circuit. When the circuit is first developed, it is necessary to verify that the design circuit meets the required functional and timing specifications. When multiple copies of a correctly designed circuit are being manufactured, it is essential to test each copy to ensure that the manufacturing process has not introduced any flaws.[49]
A large logic machine (say, with more than a hundred logical variables) can have an astronomical number of possible states. Obviously, factory testing every state of such a machine is unfeasible, for even if testing each state only took a microsecond, there are more possible states than there are microseconds since the universe began!
Large logic machines are almost always designed as assemblies of smaller logic machines. To save time, the smaller sub-machines are isolated by permanently installed design for test circuitry and are tested independently. One common testing scheme provides a test mode that forces some part of the logic machine to enter a test cycle. The test cycle usually exercises large independent parts of the machine.
Boundary scan is a common test scheme that uses serial communication with external test equipment through one or more shift registers known as scan chains. Serial scans have only one or two wires to carry the data, and minimize the physical size and expense of the infrequently used test logic. After all the test data bits are in place, the design is reconfigured to be in normal mode and one or more clock pulses are applied to test for faults (e.g., stuck-at low or stuck-at high) and capture the test result into flip-flops or latches in the scan shift register(s). Finally, the result of the test is shifted out to the block boundary and compared against the predicted good machine result.
In a board-test environment, serial-to-parallel testing has been formalized as the JTAG standard.
Trade-offs
Cost
Since a digital system may use many logic gates, the overall cost of building a computer correlates strongly with the cost of a logic gate. In the 1930s, the earliest digital logic systems were constructed from telephone relays because these were inexpensive and relatively reliable.
The earliest integrated circuits were constructed to save weight and permit the Apollo Guidance Computer to control an inertial guidance system for a spacecraft. The first integrated circuit logic gates cost nearly US$50, which in 2025 would be equivalent to $544. Mass-produced gates on integrated circuits became the least-expensive method to construct digital logic.
With the rise of integrated circuits, reducing the absolute number of chips used represented another way to save costs. The goal of a designer is not just to make the simplest circuit, but to keep the component count down. Sometimes this results in more complicated designs with respect to the underlying digital logic but nevertheless reduces the number of components, board size, and even power consumption.
Reliability
Another major motive for reducing component count on printed circuit boards is to reduce the manufacturing defect rate due to failed soldered connections and increase reliability. Defect and failure rates tend to increase along with the total number of component pins.
The failure of a single logic gate may cause a digital machine to fail. Where additional reliability is required, redundant logic can be provided. Redundancy adds cost and power consumption over a non-redundant system.
The reliability of a logic gate can be described by its mean time between failure (MTBF). Digital machines first became useful when the MTBF for a switch increased above a few hundred hours. Even so, many of these machines had complex, well-rehearsed repair procedures, and would be nonfunctional for hours because a tube burned out, or a moth got stuck in a relay. Modern transistorized integrated circuit logic gates have MTBFs greater than 82 billion hours (8.2×1010 h).[50] This level of reliability is required because integrated circuits have so many logic gates.
Fan-out
Fan-out describes how many logic inputs can be controlled by a single logic output without exceeding the electrical current ratings of the gate outputs.[51] The minimum practical fan-out is about five.[citation needed] Modern electronic logic gates using CMOS transistors for switches have higher fan-outs.
Speed
The switching speed describes how long it takes a logic output to change from true to false or vice versa. Faster logic can accomplish more operations in less time. Modern electronic digital logic routinely switches at 5 GHz, and some laboratory systems switch at more than 1 THz.[citation needed].
Logic families
Main article: Logic family
Digital design started with relay logic, which is slow. Occasionally, a mechanical failure would occur. Fan-outs were typically about 10, limited by the resistance of the coils and arcing on the contacts from high voltages.
Later, vacuum tubes were used. These were very fast, but generated heat, and were unreliable because the filaments would burn out. Fan-outs were typically 5 to 7, limited by the heating from the tubes' current. In the 1950s, special computer tubes were developed with filaments that omitted volatile elements like silicon. These ran for hundreds of thousands of hours.
The first semiconductor logic family was resistor–transistor logic. This was a thousand times more reliable than tubes, ran cooler, and used less power, but had a very low fan-out of 3. Diode–transistor logic improved the fan-out up to about 7, and reduced the power. Some DTL designs used two power supplies with alternating layers of NPN and PNP transistors to increase the fan-out.
Transistor–transistor logic (TTL) was a great improvement over these. In early devices, fan-out improved to 10, and later variations reliably achieved 20. TTL was also fast, with some variations achieving switching times as low as 20 ns. TTL is still used in some designs.
Emitter coupled logic is very fast but uses a lot of power. It was extensively used for high-performance computers, such as the Illiac IV, made up of many medium-scale components.
By far, the most common digital integrated circuits built today use CMOS logic, which is fast, offers high circuit density and low power per gate. This is used even in large, fast computers, such as the IBM System z.
Recent developments
In 2009, researchers discovered that memristors can implement a Boolean state storage and provides a complete logic family with very small amounts of space and power, using familiar CMOS semiconductor processes.[52]
The discovery of superconductivity has enabled the development of rapid single flux quantum (RSFQ) circuit technology, which uses Josephson junctions instead of transistors. Most recently, attempts are being made to construct purely optical computing systems capable of processing digital information using nonlinear optical elements.
See also