왜 플립 플롭을 클록합니까?


19

플립 플롭 및 래치를 이해하려고합니다. Morris Mano의 Digital Logic 책을 읽고 있습니다. 내가 이해할 수없는 한 가지는 플립 플롭을 클록하는 이유입니다.

왜 '활성화'또는 게이트 래치가 필요한지 이해합니다. 그러나 시계 사용은 무엇입니까? 나는 이것을 이해할 수 없다. 필요한 플립 플롭을 활성화하고 입력 할 수없는 이유는 무엇입니까? 입력을 변경하면 출력이 변경됩니다. 클럭 에지가 상승 또는 하강하는 경우 (에지 트리거 플립 플롭의 경우) 출력을 변경해야하는 이유는 무엇입니까?

이에 대한 도움을 주시면 감사하겠습니다.

답변:


18

플립 플롭의 출력이 일부 논리 기능을 통해 공급되어 자체 입력으로 돌아올 때 혼돈이 발생하지 않도록 플립 플롭을 클록하는 한 가지 이유.

플립 플롭의 출력이 입력을 계산하는 데 사용된다면, 출력 (및 입력)이 안정 될 때까지 플립 플롭의 상태가 변하지 않도록하기 위해 우리는 질서있는 행동을 취해야한다.

이 클럭킹을 사용하면 상태 머신 인 컴퓨터를 구축 할 수 있습니다. 현재 상태를 가지며 현재 상태 및 일부 입력을 기반으로 다음 상태를 계산합니다.

예를 들어, 증가하는 4 비트 카운트를 0000에서 1111로 "계산"한 다음 0000으로 감싼 다음 계속 진행하는 머신을 구축한다고 가정합니다. 4 비트 레지스터 (4 개의 플립 플롭 뱅크)를 사용하여이 작업을 수행 할 수 있습니다. 레지스터의 출력은 증가 된 값을 생성하기 위해 1 (4 비트 가산기)을 추가하는 조합 논리 기능을 통해 이루어집니다. 그런 다음이 값은 단순히 레지스터로 피드백됩니다. 이제 클럭 에지에 도달 할 때마다 레지스터는 이전 값에 1을 더한 새로운 값을 받아들입니다. 우리는 결함없이 이진수를 단계별로 진행하는, 순서대로 예측 가능한 행동을합니다.

클럭 동작은 다른 상황에서도 유용합니다. 때로는 회로에 많은 입력이있어 동시에 안정화되지 않습니다. 출력이 입력에서 즉시 생성되면 입력이 안정화 될 때까지 혼란스러워집니다. 출력에 의존하는 다른 회로가 혼돈을 보지 않게하려면 회로를 클럭킹합니다. 우리는 입력이 정해지기까지 충분한 시간을 허용 한 다음 회로에 값을 받아들이도록 지시합니다.

클로킹은 본질적으로 어떤 종류의 플립 플롭의 의미론의 일부입니다. 클록 입력이 없으면 AD 플립 플롭을 정의 할 수 없습니다. 클록 입력이 없으면 D 입력을 무시하거나 (사용할 수 없습니다!) 항상 입력을 복사합니다 (플립 플롭 아님) RS 플립 플롭에는 클록이 없지만 두 개의 입력이 사용됩니다 입력이 "자기 클록 킹"이 될 수있는 상태를 제어하기 위해, 즉 입력이 될뿐만 아니라 상태 변경을위한 트리거가됩니다. 모든 플립 플롭에는 상태를 프로그래밍하는 입력 조합이 필요하며 일부 입력 조합을 통해 상태를 유지할 수 있습니다. 모든 입력 조합이 프로그래밍을 트리거하거나 모든 입력 조합이 무시되면 (상태가 유지됨) 유용하지 않습니다. 이제 시계는 무엇입니까? 시계는 특별하다 다른 입력이 무시되는지 또는 장치를 프로그래밍하는지 여부를 구별하는 전용 입력. 여러 입력 사이에서 인코딩하기보다는 별도의 입력으로 사용하는 것이 좋습니다.


카운터 또는 상태 머신에 대한 클럭킹의 필요성을 설명 할 때 적합합니다. 시계가 전혀 없으면 카운터는 값을 계속 변경하고 (& 재설정) 무한대로 시작합니까? 상태 머신과 동일합니다. (위키에서 읽은 내용에서 상태가 변경되기 때문에 상태 머신 유형에 대응합니다). 그러나 레지스터로도 시계를 사용합니다.이 경우 왜 그렇습니까? 또한 시계없이 모든 응용 프로그램에서 사용할 수있는 플립 플롭이 있는지 알고 싶습니다.
avi

출력이 계속 변하면 플립 플롭 출력이 필요한 다른 장치는 올바르게 수신 할 수 없으며 불규칙한 동작이있을 수 있습니다. 이 안정성 문제입니까? 이제 안정성의 개념을 이해하려고합니다. 특히이 두 가지 단락은 "플립 플롭의 상태가 출력 (및 입력)이 안정 될 때까지 변하는 것을 막기 위함"이라고 설명했다. "때때로 회로에는 많은 입력이있어 동시에 안정화되지 않습니다"
avi

7

상승 에지 플립 플롭은 두 개의 래치가 연속적으로 구상 될 수 있는데, 그 중 하나는 클록 신호가 로우가 된 직후 활성화되고 하이가 될 때까지 활성화 된 상태로 유지된다. 두 번째는 클럭이 높아진 직후 활성화되며 낮을 때까지 활성화 된 상태로 유지됩니다. 플립 플롭이 활성화되지 않은 짧은 순간을 갖는 것은 플립 플롭의 출력이 조합 논리를 통해 입력으로 안전하게 피드백 될 수 있음을 의미한다. 한 클럭 사이클에서 출력을 변경하면 입력이 변경 될 수 있지만 다음 클럭 사이클까지 입력 변경이 적용되지 않습니다.

과거에는 디지털 장치가 "2 상 클록"이라고 불리는 것을 사용하는 것이 일반적이었습니다. 각 사이클 동안 겹치지 않는 간격으로 2 개의 클록 와이어가있었습니다. 모든 래치는 2 개의 그룹으로 분할되며, 하나의 클록은 제 1 그룹의 래치를 제어하고 다른 클록은 제 2 그룹을 제어하고; 대부분의 경우 각 그룹의 출력은 다른 그룹의 입력을 계산하는 데만 사용됩니다. 각 클럭 사이클은 첫 번째 클럭에서 하나 이상의 펄스로 구성되며,이 중 적어도 하나는 최소 길이 사양을 충족해야하며 두 번째에서 하나 이상의 펄스를 충족해야합니다 (동일한 요구 사항). 이러한 설계의 한 가지 장점은 클록 위상 사이의 데드 타임이 클록 스큐 양을 초과하는 경우 클록 스큐에 매우 관대하다는 점이다.

보다 "현대적인"접근 방식은 모든 래칭 요소 (레지스터)가 단일 클록 와이어를 수신하고 본질적으로 자체 내부 비 중첩 클록을 생성하는 것입니다. 이를 위해서는 최대 클록 스큐가 레지스터 간의 최소 전파 시간을 초과하지 않아야하지만 최신 도구를 사용하면 수십 년 전보다 더 정확하게 클록 스큐를 제어 할 수 있습니다. 또한, 대부분의 경우 단상 클러킹으로 로직을 두 그룹으로 분할 할 필요가 없어 설계가 단순 해집니다.


2

우리는 모두 디지털 실제 회로가 많은 게이트를 포함 할 것임을 알고 있습니다. 신호는 출력을 제공하는 마지막 게이트에 도달하기 위해 여러 경로를 가져야 할 수도 있습니다. 신호는 마지막 게이트에 도달하는 다른 경로에서 "전파"하는 데 약간의 시간이 걸립니다. 전파하는 데 걸리는 시간은 다른 경로에서 동일하지 않습니다. 이것은 우리가 글리치라고 부르는 것으로 이어집니다. 글리치는 일부 경로가 다른 경로보다 짧기 때문에 발생하며 신호가 짧은 경로를 빨리 가져가는 마지막 게이트에 도달하면 더 긴 경로의 다른 신호가 게이트에 도달하기 직전에 영향을 미칩니다. 이로 인해 순간적으로 발생하는 출력이 잘못되어 디지털 회로에서 위험이 발생하여 오류가 전파 될 수 있습니다.

이제 왜 시계가 필요한지 알게되었습니다. 클록은 본질적으로 회로를 단일 외부 신호로 "동기화"합니다. 회로가 음악을 좋아하도록 조정 된 비트라고 생각하십시오. 이 클럭과 조정이 이루어지며 클럭 = 회로가 비활성화되지 않습니다. 클럭을 사용하여 회로의 서로 다른 부분 이 동시에 조화 이루어야 합니다 . 이러한 방식으로 회로의 동작이보다 예측 가능합니다. 또한 온도 및 제조 편차에 따른 전파 지연의 변화에 ​​의해 영향을 덜받습니다. 이것은 시계를 다룹니다.

플립 플롭은 "CLOCK EDGE"가 발생할 때 동작 (입력 포트의 입력에 따라 출력 변경)을 취하는 디지털 회로 요소입니다. 클럭 에지는 클럭 신호가 0에서 1로 또는 1에서 0으로 갈 때입니다. 클럭 웨이브를 그리면 무슨 뜻인지 알 수 있습니다. 래치라는 또 다른 요소 그룹이 있으며 특정 제어 신호가 특정 로직 레벨에 있고 에지를 기다리지 않을 때 래치의 출력이 입력을 반영하도록 변경됩니다.이 제어 신호는 래치에서 ENABLE이라고합니다. 래치는 enable이 1이고 출력이 변경되거나 enable이 0 일 때 작동 할 수 있습니다. 래치 유형에 따라 다릅니다. 반면에 실제로 퍼 뒤집 뭔가를 그들이 시계 가장자리에 의해 먹이 때. 래치와 플립 플롭의 이러한 차이점에 유의하고 래치가 서로 연결되어 플립 플롭을 생성하면 클럭 에지가 발생할 때 플립 플롭으로 만 작동 할 수 있습니다. 이 경우 Enable 신호의 이름을 Clock으로 지정하면 더 의미가 있습니다. 인간을위한 시계는 진드기 틱 진드기가되며, 플립 플롭은 진드기 사이에서만 작동하며 진드기 사이에는 아무것도 없습니다.

여전히 확실하지 않은 경우 Indian Institute of Technology on Digital Circuits의 YouTube에서 nptelhrd 강의를 시청하면 도움이 될 것입니다.


"시계를 사용하여 회로의 서로 다른 부분이 동시에 조화를 이루어야합니다."-어떻게해야합니까? 비디오를 확인하겠습니다.
avi

플립 플롭은 포지티브 에지 트리거 플립 플롭에 대한 제어 신호의 상승 에지 (또는 네거티브 에지 트리거 플립 플롭 인 경우 하강 에지)의 입력을 반영하도록 출력을 변경하는 장치입니다. 이 제어 신호는 벽시계의 진드기와 같은주기적인 특성으로 인해 시계라고 불립니다. 클록 신호가 존재하면 플립 플롭이 무언가를 수행하지 않으면 입력이 출력에 아무런 영향을 미치지 않습니다. 혼동되지 않도록 초기 단계부터 래치와 플립 플롭의 차이점과 유사성을 알고 있어야합니다.
quantum231

1

비동기 카운터와 같은 것들이 있습니다. 여기 하나가 있습니다 :- 여기에 이미지 설명을 입력하십시오

입력 펄스가 입력에 도달 할 때 (첫 번째 플립 플롭 상태 변경), 상태 변경이 나머지 플립 플롭을 통해 리플하는 데 유한 한 시간이 걸리기 때문에 리플 카운터라고도합니다. 작지만 유한 한 시간 동안 출력 ABCD는 최종 플립 플롭이 안정 될 때까지 예측할 수없는 과도 값을 갖습니다.

출력 ABCD가 모두 D 유형 플립 플롭을 통해 공급되고 안정화 기간이 지나고 얼마 후에 함께 클록되면 ABCD의이 "더 나은"버전은이 과도 동작을 "표시"하지 않습니다.

이 엔지니어를 피하기 위해 때때로 동기 클럭 회로를 사용합니다. 죄송합니다. 입력은이 왼쪽에서 왼쪽이고 Q0에서 Q3은 이전 다이어그램에서 ABC 및 D에 매핑됩니다.-

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

조금 더 복잡하지만 출력에 D 유형이 많은 비동기 카운터와 비교할 때보 다 빠르며 부품 수가 적습니다.


글쎄, 카운터와 의미가 있습니다. 그러나 플립 플롭이 클록없이 사용되는 애플리케이션이 있습니까? 또는 플립 플롭은 시계없이 사용할 수 없습니다?
avi

@avi 첫 번째 예제 (비동기 카운터)는 "시계"에서 입력을받는 것으로 간주 될 필요가 없습니다. 샤프트가 얼마나 빨리 회전하는지보기 위해 자기 센서에서 나오는 펄스 일 수 있습니다. 시스템에는 매 초마다 카운트를 "게이트"하는 "마스터"클럭이 있지만 카운터로 들어가는 "신호"는 반드시 클럭 일 필요는 없습니다. 아날로그 비교기의 출력은 "1"을 D 유형의 출력으로 "클럭"할 수 있고 다른 아날로그 비교기의 출력은 D 유형을 재설정 할 수 있습니다. 이는 아날로그 파형에서 파생 된 신호를 생성하는 데 사용될 수 있습니다. 등
일명 앤디

리플 카운터의 동작은 동기식 카운터와는 질적으로 다르기보다는 양적으로 다른 것으로 간주합니다. 두 카운터의 출력은 클럭 펄스가 도달 한 후 일정 시간 동안 유효하지 않게되고 그 후 일정 시간 후에 다시 유효하게됩니다. 동기 카운터는 출력이 유효하지 않은 더 작은 창을 가지지 만 어떤 경우에도 창은 0이 아닙니다. 카운터가 그려진 최대 카운트 속도가 카운터 길이에 의해 제한된다는 점도 주목할 가치가 있습니다. 그 한계를 피할 수 있습니다 ...
supercat

... 예를 들어 캐리 체인이 예를 들어 네 번째 비트에서 시작하고 첫 세 비트의 "and"를 생성 한 다음 캐리 체인의 입력이 높고 비트 2가 높으면 비트 1 만 뒤집습니다. 비트가 높았고 비트 0이 높았습니다. 신호가 캐리 체인을 통해 전파되는 데 필요한 시간에 7 개의 카운트 펄스가 도착하더라도, xxx111 ... 111000 카운트에 도달하면 캐리 체인이 캐리를 전파하기 시작하지만 출력이 문제가되지 않을 때까지 문제가되지 않습니다. xxx111 ... 111111 이후의 클럭 펄스에 도달했습니다.
supercat

리플 카운터는 단순하지만 제가 일하는 실제 디지털 회로에서는 실연입니다. 이들이 존재한다는 것을 아는 것이 좋지만 실제 프로젝트에 사용할 수는 없을 것입니다. "비동기"특성이 문제가되지 않는 간단한 연습에서 항상 사용할 수 있습니다.
quantum231

0

비동기식 시스템보다 동기식 시스템 (동기식 시스템은 조합 논리 및 클록 플립 플롭 모음을 의미 함)을 쉽게 설계 할 수 있기 때문에 동기식 시스템이 더 안정적입니다. 그러나 비동기 상태 머신 설계는 동기 시스템보다 훨씬 빠르고 낮은 출력으로 출력을 계산할 수 있기 때문에 연구 할 가치가 있습니다.

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