에지 트리거링이 레벨 트리거링보다 선호되는 이유는 무엇입니까?


18

에지 트리거링이 레벨 트리거링보다 선호되는 이유를 이해하려고합니다. 내 책에는 명확하게 설명되어 있지 않습니다. 온라인 검색 후 에지 트리거링은 글리치에 민감하지 않지만 레벨 트리거링은 민감하다는 것을 알게되었습니다. 무슨 뜻인가요?

"클럭이 레벨에 민감하면 새로운 은 로직 네트워크를 통해 돌진하여 출력을 변경할 수 있습니다.이를 피하려면 출력을 캡처하고 일정하게 유지하기 위해 짧은 펄스가 필요합니다. 이러한 짧은 펄스는 쉽게 생성 할 수 없으므로 에지 트리거링으로 이동합니다. 피드백 레벨 문제는 단일 상승 에지 지속 시간 내에 새로운 출력이 입력으로 다시 경주 할 시간이 충분하지 않기 때문에 해결됩니다. "

출력이 레벨 트리거링에서 서두르지 않는 이유와 출력을 유지하기 위해 짧은 펄스가 필요한 이유를 이해하지 못했습니다.

둘째, 피드백 문제는 레벨 트리거링 지속 시간이 에지 트리거링에 비해 길기 때문에 전자의 경우 출력이 다시 입력으로 피드백되고 클럭이 활성화되어있는 한 계속 유지됩니다. . 피드백 문제는 무엇입니까?

그러나 에지 트리거링에서 어떻게 해결됩니까? 하강 또는 상승 시간이 매우 짧은 경우 출력이 모든 게이트를 통해 어떻게 전파 될 수 있습니까? 에지 트리거링이 적용되면 출력이 모든 게이트를 통해 전파되고 다음 입력은 다음 클럭 에지에서만 고려됩니다.


1
"한 번 에지 트리거링이 적용되면 출력이 모든 게이트를 통해 전파되고 다음 입력은 다음 클럭 에지에서만 고려됩니다"-bullseye !!
Wouter van Ooijen

답변:


12

가장자리가 잘 정의 된 순간이지만 레벨 트리거링에 정의 된 순간이 없다고 말하는 것은 사실이 아닙니다. 그렇습니다. 클럭 레벨이 떨어지고 클럭 회로에 대한 입력이 샘플링되고 입력의 추가 변경이 더 이상 허용되지 않는 정의 된 시점이 있습니다.

레벨 트리거링의 문제점은 클럭 레벨이 높으면 입력이 출력을 변경한다는 것입니다. 피드백이있는 회로 (출력은 다시 입력에 다시 연결됨)에서 레벨 트리거링은 레벨이 충분히 넓기 때문에 (클럭주기의 절반) 출력이 같은 기간 내에 입력으로 피드백 될 수 있기 때문에 혼란을 야기합니다.

+1

원치 않는 피드백이 발생할 수없는 수준으로 레벨을 단축하고 (클럭주기를 임의로 느리게해도 "온"레벨을 짧게 유지하도록) 제안하는 첫 번째 확실한 솔루션. 클럭킹 된 디바이스가 입력을 받아 들일 수 있도록 클럭을 0에서 1로, 다시 0으로 매우 빠르게 펄스한다고 가정하자. 그러나 출력이 피드백 루프를 통과하여 입력을 변경하기에 충분한 시간이 없다고 가정하자. 이것의 문제점은 좁은 펄스는 신뢰할 수 없으며 기본적으로 클럭 주파수보다 몇 배 더 빠른 응답이 필요하다는 것입니다. 시스템이 1Mhz에서만 작동하더라도 나노초 너비의 펄스가 필요하다는 것을 알 수 있습니다. 그래서 우리는 1Mhz를 위해 설계된 버스를 통해 깨끗하고 날카 롭고 충분히 긴 나노초 폭 펄스를 분배하는 문제가 있습니다.

다음 논리적 단계는 장치가 클럭 에지의 시간 미분으로 자체적으로 좁은 펄스를 생성하도록하는 것입니다. 클럭이 한 레벨에서 다른 레벨로 전환함에 따라 디바이스 자체는 내부에서 짧은 펄스를 생성하여 입력을 샘플링 할 수 있습니다. 클럭 버스를 통해 해당 펄스 자체를 분배 할 필요는 없습니다.

기본적으로 모든 것이 결국 레벨 트리거되는 것으로 간주 할 수 있습니다. 에지 트리거링은 디바이스가 모든 외부 피드백 루프보다 빠른 매우 미세한 레벨의 트리거를 생성하여 디바이스가 입력을 신속하게 수락 한 다음 변경 출력이 입력 값을 변경하기 전에 입구를 닫을 수 있도록하는 트릭입니다. .


또한 "활성화"신호 (레벨 트리거 클럭)와 기압을 유지하는 선박의 문을 유사하게 만들 수 있습니다. 레벨 트리거링은 도어를 여는 것과 같으며 공기가 빠져 나갈 수 있습니다. 그러나 동시에 열리지 않는 두 개 이상의 문으로 구성된 에어 잠금 장치를 만들 수 있습니다. 레벨 클럭을 여러 단계로 나누면 이런 일이 발생합니다.

가장 간단한 예는 마스터-슬레이브 플립 플롭 입니다. 이것은 캐스케이드 된 2 개의 레벨 트리거 D 플립 플롭으로 구성됩니다. 그러나 클럭 신호는 반전되므로 하나의 입력은 활성화되고 다른 하나는 비활성화됩니다. 이것은 공기 잠금 장치와 같습니다. 전체적으로 플립 플롭은 열리지 않으므로 신호가 자유롭게 통과 할 수 있습니다. 플립 플롭의 출력에서 ​​다시 입력으로 피드백이있는 경우 다른 클럭 위상으로 교차하므로 문제가 없습니다. 결과적으로 마스터-슬레이브 플립 플롭은 엣지 트리거 동작을 나타냅니다! 마스터-슬레이브 플립 플롭을 연구하는 것이 유용합니다. 레벨과 에지 트리거링 사이의 관계에 대해 말할 것이 있기 때문입니다.


1
레벨에 민감한 다중 위상 클록은 다른 클록 위상에서 샘플링 된 래치를 거치지 않고 래치의 출력이 입력으로 피드백되지 않으면 "카오스"문제를 피합니다. 하나의 클록 위상의 선행 에지와 다음 클록의 후행 에지 사이의 시간은 어드레스를 라우팅 및 출력하는데 필요한 시간, 액세스로 임의로 분할 될 수 있기 때문에, 이러한 설계는 프로세서를 비동기식 메모리와 인터페이스 할 때 어떤 이점을 가질 수있다. RAM 시간 및 프로세서 데이터 입력 설정 시간.
supercat

2
@supercat 익숙한 예로서 마스터-슬레이브 플립 플롭은 다상 클럭킹의 예로 간주 될 수 있습니다. 마스터와 슬레이브는 반대 단계에 있으므로 피드백이있는 경우 동일한 조건이 유지됩니다. 다른 단계로 진행됩니다. 이것을 반올림하기 위해 대답에 추가해야합니다.
Kaz

2
에어 록 +1 나는 아무도 이런 식으로 설명하는 것을들은 적이 없지만 완벽하게 이해됩니다.
ajs410

@ ajs410 : 내가 좋아하는 또 다른 비유는 시계 탈출입니다. 진자는 두 개의 암에 연결되어 있으며, 각 암은 이스케이프 기어가 자유롭게 움직일 수있게하거나 다음에 특정 "위상"에 도달 할 때이를 막을 수 있습니다. 올바른 작동을 위해서는 두 팔이 기어를 돌릴 시간이 없도록 팔을 조정해야합니다. 그러한 제약이 없다면, 메커니즘은 통제 할 수 없을 정도로 회전 할 것이다.
supercat

2

에지 트리거링은 하나의 (예 : 상승) 클록 에지에 응답하여 래치에 의해 출력 된 값이 다음 상승 클록 에지에서 수행해야하는 작업의 계산에 사용될 수 있기 때문에 클록에 적합합니다. 다수의 에지 트리거 래치를 사용하여 카운터와 같은 순차 회로를 구성하는 경우, 모든 가능한 경로에 대해 전파 시간에서 수신 래치의 클럭이 지연되는 양을 뺀 경우 빠르고 느린 로직 구성 요소를 임의로 혼합 할 수 있습니다. 송신기는 수신기의 홀드 시간보다 길어야하며, 사이클 시간 + 수신 래치의 클록이 송신기를 뺀 송신기보다 지연되는 양은 수신기의 셋업 시간보다 길어야합니다.

반대로 에지 트리거 래치를 사용하지 않고 단일 입력에서 펄스를 카운트하도록 회로를 구성하려면 회로의 일부 부품의 상대 속도에 대한 특정 보증이 필요합니다. 일반적인 접근 방식은 수신 클록 (ClkIn) 신호를 겹치지 않는 쌍 클록 신호 (Phi1 및 Phi2)로 변환하는 데 사용되었습니다. ClkIn이 높고 보장 된 최소 시간 동안 높으면 Phi1이 참 입니다. ClkIn이 낮고 보장 된 최소 시간 동안 낮 으면 Phi2가 높음. ClkIn이 로우에서 하이로 전환되면 Phi1이 하이가되기 전에 Phi2가 로우가됩니다. 마찬가지로 높음에서 낮음으로 전환 할 때도 마찬가지입니다. 두 개의 래치 세트 (Count1과 Count2라고 함)를 사용하여 카운터를 구성 할 수 있습니다. Phi1이 높을 때마다 Count1은 Count2를 래치합니다. Phi2가 높을 때마다 Count2는 래치 (Count1 + 1)합니다. Phi1과 Phi2가 한 번에 높거나 시간이 너무 짧으면 카운터 값이 결정되지 않지만 적절한 분리가 유지되면 카운터가 매우 잘 작동합니다. 2 상 클럭 시스템은 종종 상당히 많은 양의 분리가 설계되어 있습니다. 모든 것이 충분히 빠르면 이러한 분리로 인해 클록 왜곡 문제를 피할 수 있습니다.

내부적으로 많은 에지 트리거 래치는 클럭이 에지 이전 상태에있을 때마다 마스터가 입력을 래치하고 클럭이 슬레이브에있을 때 슬레이브가 마스터를 래치하도록 배선 된 마스터 / 슬레이브 래치로 간주 될 수 있습니다. 이후 상태에서. 2 개의 래치를 공급하는 신호는 적절한 관계를 가져야하지만, 래치와 동일한 부근에서 생성되는 경우, 2 개의 클록 위상이 필요한 경우 필요한만큼의 분리 량을 과도하게 엔지니어링 할 필요는 없습니다. 더 넓은 지역으로 보냈습니다.

에지 트리거링은 클록에는 좋지만 그다지 좋지 않은 다른 목적이 있습니다. 두 이벤트가 동일한 에지 트리거 신호를 공유하지 않는 경우 주기적 이벤트가 인터럽트로 발생하는 경우가 종종 있습니다. 에지 트리거링은 공유 인터럽트의 경우 거칠고, 인터럽트 와이어의 상태를 폴링하는 방법이 없다면 공유되지 않은 인터럽트에서도 문제가 될 수 있습니다. 레벨 트리거링은 래치되어야하는 일부 정보와 동일한 사이클에서 스트로브 신호가 활성화되지만 정보가 스트로브보다 계산 경로가 더 긴 경우에도 유리할 수있다. 정보가 비동기 메모리 칩의 주소와 같은 것이라면, 클록 사이클 동안 언젠가 이용 가능하게되면 다음 클록 사이클이 시작될 때까지 기다리는 것보다 낫다.


2

에지 트리거링이 선호되는 이유를 이해하려면 레지스터에 연결된 8 비트 가산기가 레지스터의 활성화 핀에 연결된 푸시 버튼으로 레지스터의 값에 1을 지속적으로 추가한다고 가정하십시오.

레지스터의 활성화 핀이 레벨에 민감하면 버튼을 누르는 동안 레지스터의 내용이 계속 증가합니다. 버튼을 누를 때마다 레지스터의 다음 상태가 결정적이지 않습니다. 가산기는 손가락을 제거하기 전에 레지스터를 여러 번 증분 할 수 있기 때문입니다. 즉, 피드백은 레지스터를 떠나서 가산기로 너무 빨리 되돌아갑니다.

인 에이블 핀이 대신 에지에 민감한 경우 버튼을 얼마나 오래 눌렀는지에 상관없이 (입력이 올바르게 디 바운스되었다고 가정) 레지스터의 내용은 버튼을 누를 때마다 정확히 한 번 증가합니다. 비 결정적 동작을 위해 레지스터의 출력이 시간에 따라 가산기로 되돌아가는 것은 불가능합니다.


1

다른 사람들이 말했듯이 가장자리는 매우 구체적인 순간입니다. 우리는 디지털 회로가 게이트의 출력이 잘못되어 글리치를 통과 할 수 있음을 알고 있습니다. 입력의 일부만 도달했기 때문에 다른 신호가 진행 중이며 경로가 길기 때문에 더 오래 걸리고 있습니다 (전기는 매우 빠르게 이동합니다) 그러나 여전히 3x10 ^ 8 m / s는 전선을 돌아 다니는 데 약간의 시간이 걸립니다). 레벨 트리거 된 유닛이 있다면, 출력은 글리치에 의해 영향을받습니다. 에지가 트리거되도록하면 "일이 발생할 수있는"시간이 매우 좁아집니다. 즉, 회로는 특정 잘 정의 된 순간의 상태 (출력을 포함하여 회로 내부의 다른 와이어의 값) 만 변경합니다. 시각. "시간의 인스턴스"라는 문구에 유의하십시오.

이 시점에서 "타이밍 분석"이라는 것을 알지 못하지만 조금 설명하겠습니다. 우리는 디지털 회로를 만들 때 그것들이 어떻게 동작하는지, 그리고이 동작이 우리가 원하는 것에 맞는지 확인하기 위해 그것들을 시뮬레이션하려고합니다. 타이밍 분석에서 신호가 필요한 시간 내에 회로의 특정 지점에 도달 할 수 있는지 확인합니다. 회로가 너무 지연되면 회로가 올바르게 작동하지 않습니다. 레벨 트리거 대신 에지 트리거 회로 블록을 사용하면 회로에서 언제 발생할 수 있는지 정확히 알기 때문에 타이밍 분석이 매우 쉬워집니다. 이것은 회로 설계가 더 쉬워진다는 것을 의미합니다. 실제 세계에서는 레벨 트리거 래치가 거의 발생하지 않습니다.


1

다른 답변이 귀하의 질문에 대해 말할 거의 모든 것을 다루었지만 더 명확하게하기 위해 몇 가지 다이어그램과 간단한 설명을 추가했습니다.

일종의 피드백이 포함 된 회로를 설계하려고한다고 상상해보십시오. 말하십시오 A = A.B(기본적으로 피드백이있는 AND 게이트). A 값을 저장하는 간단한 레벨 감지 래치를 사용하여 구현하면 회로가 다음과 같이 보입니다. 여기에 이미지 설명을 입력하십시오

문제가 발생할 수 있습니다. 클럭이 높으면 래치가 투명 해지고 AND 게이트가의 새로운 값을 계산합니다 A and B. 그러나 값은 래치로 다시 공급되고 래치는 여전히 투명하므로 (CLK는 여전히 높음) 새 값 A AND B이 계산됩니다. 이것을 일반적으로 경쟁 조건 이라고하며, 언급 한 글리치 (예상치 않은 출력의 고저)를 생성합니다.

이 문제에 대한 한 가지 해결책은 CLK 펄스를 매우 짧게 유지하여 AND 게이트의 출력이 생성되면 래치가 비활성화되어 값이 다시 입력으로 다시 전파되기 전에 비활성화되는 것입니다. 이것이 달성하기 어려운 이유를 이해하는 것은 직관적이어야합니다. 래치의 스위칭 속도 (마지막으로 래치는 조합 게이트로 구성됨), 와이어 길이 및 수백 가지의 다른 매개 변수에 따라 달라집니다.

두 번째로 실행 가능한 옵션은 가장자리에 민감한 요소 (이 경우 플립 플롭)를 사용하는 것입니다. 기본적으로 매우 영리한 방식으로 연결된 두 개의 래치입니다.

여기에 이미지 설명을 입력하십시오

기본적으로 CLK신호가 높으면 래치 U1이 투명하여 A 입력의 논리 값이 래치 U1의 출력으로 전달되고 CLK신호가 LOW이면 래치 U2가 투명 해지며 새 값 A AND B이 계산됩니다. 그러나이 값은 래치 U1이 투명 해지면 (CLK는 HIGH), 따라서 래치 U1이 투명 해지면 (CLK는 LOW) AND 게이트의 입력으로 전파됩니다. 이는 기본적으로 회로가 에지에 민감하다는 것입니다 (출력 값은 클럭의 네거티브 에지에서만 변경됨).

이것은 앞서 설명한 레이스 컨디션 문제를 피하기 때문에 에지 트리거링보다 레벨 트리거링이 선호됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.