Altifigence Academy

45 / 63 · 개념

논리 해저드와 등가식의 한계

입력이 안정됐을 때 같은 출력을 내는 두 회로도 전파 지연 때문에 전환 중에는 서로 다른 파형을 낼 수 있음을 살펴봅니다.

진리표에는 시간이 없습니다

다음 식에서 B=C=1로 고정하면 A가 0이든 1이든 F=1입니다.

F=AB+A‾CF=AB+\overline A C

하지만 실제 게이트의 출력은 입력과 동시에 바뀌지 않습니다. A가 1에서 0으로 바뀔 때 AB 경로가 먼저 0으로 내려가고, 반전기부정 0을 1로, 1을 0으로 바꾸는 NOT 연산입니다. 수식 위의 선은 선 아래 식 전체에 NOT을 적용한다는 뜻입니다. 자세히 보기를 통과하는 A‾C\overline A C 경로가 나중에 1로 올라오면 두 항이 모두 0인 구간이 생길 수 있습니다. 원래 1을 유지해야 하는 출력에 짧은 0이 나타나는 현상을 static-1 hazard라고 합니다.

지연을 숫자로 비교합니다

OR 입력까지의 경로 지연을 다음처럼 가정하겠습니다. 이는 원리를 설명하기 위한 값이며 특정 공정의 수치가 아닙니다.

사건A 전환 이후 시각
AB가 0으로 내려감2ns
A‾C\overline A C가 1로 올라감4ns

OR 게이트의 두 입력이 약 2ns 동안 모두 0이 됩니다. 실제 출력 펄스가 생기는지, 그 폭이 얼마인지는 OR 게이트의 지연과 짧은 펄스를 전달하는 특성에도 영향을 받습니다. 진리표진리표 가능한 입력 조합을 빠짐없이 나열하고 각 조합의 출력을 적은 표입니다. 시간에 따른 변화는 파형으로 따로 확인합니다. 자세히 보기의 8개 조합이 모두 맞는다는 것만으로 이 과도 현상을 검증할 수는 없습니다.

한 칸은 A가 바뀐 뒤의 1ns입니다. AB는 2ns, NOT(A)C는 4ns에 바뀐다고 가정했습니다. 마지막 두 행은 OR 게이트의 지연을 제외하고 두 입력을 OR 연산한 결과이며, 실제 소자에서 측정한 파형이 아닙니다. BC=1인 경로가 두 항 사이의 빈틈을 덮는지 확인하세요.

경로 지연 차이가 만드는 빈틈
파형 데이터 보기
파형 데이터: 각 문자는 한 구간, 점은 이전 상태 유지, p는 클록 한 주기입니다.
신호파형버스 값
time(ns)2345230 → 1 → 2 → 3 → 4 → 5
AB1.0...
NOT(A)C0...1.
OR inputs1.0.1.
with BC1.....

중복 항으로 전환 중의 빈틈을 메울 수 있습니다

B=C=1인 동안 A와 무관하게 출력을 1로 유지하는 BC 항을 추가합니다.

Fcovered=AB+A‾C+BCF_{\mathrm{covered}}=AB+\overline A C+BC

불 대수불 대수 0과 1, AND·OR·NOT을 다루는 대수입니다. 여기서 더하기 기호는 보통 OR이므로 정수 덧셈의 규칙과 다릅니다. 자세히 보기의 consensus 정리에 따라 안정된 입력에서 기능은 같습니다. 그러나 BC는 A가 전환하는 동안에도 1을 유지하므로 위처럼 입력 하나가 바뀔 때 생기는 빈틈을 메웁니다. 카르노 맵에서는 인접한 두 1을 공통 묶음으로 덮는 것에 대응합니다.

이 논의는 단일 입력 전환과 두 단계 SOP 구현 같은 가정 아래에서 적용됩니다. 여러 입력이 동시에 바뀌는 상황, 다단 논리의 dynamic hazard, 아날로그 잡음까지 모두 해결했다는 뜻은 아닙니다.

RTL에 항을 썼다고 그대로 남지는 않습니다

합성기는 BC가 기능적으로 중복임을 알고 제거할 수 있습니다. 따라서 중복 항을 소스에 추가한 것만으로 실제 구현이 hazard-free라고 결론 내리면 안 됩니다. 요구에 맞는 구조를 선택하고 구현 이후의 경로와 타이밍을 검토해야 합니다.

동기식 데이터 경로에서는 출력이 충분히 안정된 뒤 레지스터레지스터 여러 비트의 상태를 저장하는 회로입니다. 이 과정의 동기식 레지스터는 클록 에지에서 정해진 입력을 저장합니다. 자세히 보기가 샘플링하도록 setupsetup 클록의 캡처 에지 전에 입력 데이터가 안정되어 있어야 하는 최소 시간입니다. 위반하면 저장 결과를 보장할 수 없습니다. 자세히 보기·hold 조건hold 시간 클록의 캡처 에지 후에도 입력 데이터가 안정되어 있어야 하는 최소 시간입니다. 단순히 값을 유지한다는 뜻의 hold와 구별해야 합니다. 자세히 보기을 만족시키는 것이 기본입니다. 조합 출력의 glitch를 클록, 비동기 리셋, 외부 장치의 트리거로 직접 사용하면 문제가 더 커질 수 있습니다. 신호의 목적과 수신 방식까지 포함해 설계하세요.

직접 생각해 보기

H=A‾B+ACH=\overline A B+AC에서 B=C=1이고 A가 0에서 1로 바뀝니다. static-1 hazard를 덮기 위해 추가할 수 있는 consensus 항은 무엇입니까? 추가 후 정상상태 진리표가 달라집니까?

해설 보기

추가 항은 BC입니다. A‾B+AC+BC\overline A B+AC+BC는 기존 식과 기능적으로 같지만, 전환 중 두 경로가 모두 0이 되는 구간을 BC가 덮습니다. 단일 입력 전환을 가정하며, 실제 게이트 구조에 해당 항이 유지되는지는 별도 확인이 필요합니다.

선택은 이 브라우저에만 적용됩니다. 언제든 푸터에서 변경할 수 있습니다.