JK 플립 플롭에서 처음으로 Q와 Q '는 어떻게 결정됩니까?
제 배경은 컴퓨터 과학이고, 이것은 전자 SE에 처음으로 글을 올립니다. 이것은 JK 플립 플롭의 회로도입니다.

처음에는 회로가 처음 켜질 때 어떻게 작동하는지 이해하지 못합니다. 내 이해에서 Q와 Q '에는 아직 가치가 없습니다. 그러면 회로는 어떻게 진행됩니까? 나는 이 웹 사이트 에서 읽고 있었다 . 웹 사이트를 세 개 더 시도했지만 설명을 찾지 못했습니다.
답변
JK 플롭은 어느 상태에서든 전원을 켤 수 있습니다. 완벽하게 일치하는 게이트의 경우 각 주에 대한 확률은 50-50입니다. 알려진 원하는 상태로 초기화하거나 신경 쓰지 않는 것은 나머지 시스템의 몫입니다. D 플롭도 마찬가지입니다.
프로그램에 초기화되지 않은 변수가있는 것과 같습니다. 변수가 설정 될 때까지 변수에 종속 된 값 (자체 포함)은 알 수 없습니다.
이 플롭의 하드웨어 시뮬레이션은 0 또는 1이 클럭 될 때까지 'X'상태로 표시됩니다. 그렇지 않으면 J와 K가 모두 0 (누르고 있기) 또는 1 (토글)이면 'X'로 유지됩니다.
소프트웨어와 같은 실제 하드웨어에서는 알 수없는 상태 출력이 사용되는 방식에 따라 알 수없는 일이 발생할 수 있습니다.
이 플롭의 변형에는 별도의 신호 (예 : 리셋)를 사용하여 초기 상태를 강제하는 직접 설정 및 지우기 입력이 있습니다.이 경우 시작 동작을 정의 할 수 있습니다.
추가 : JK에 대해 표시된 논리 다이어그램은 쓰레기입니다. 이것은 실제로 게이트 된 JK 래치 이며 J 및 K 입력이 모두 '1'이고 클럭이 높을 때 위험 합니다. '경주 주변'문제로 인해 링 오실레이터가됩니다 .
불행히도 링크 된 기사에서 이에 대해 논의하는 동안 '경주 주변'문제를 피하기 위해 매우 좁은 클록 펄스를 사용하는 것에 대해 입을 다물고 대답합니다. 이것은 매우 오해의 소지가 있습니다. 집적 회로 기반 JK 플롭은 2 단계 ( "마스터-슬레이브"또는 "에지 트리거")로 연결된 한 쌍의 래치를 사용하며 레이스 어라운드 문제가 없습니다.
또 다른 불만. 74xx73 유형 JK에 대해 제공된 로직 다이어그램은 불완전 할뿐만 아니라 (설정 / 리셋을 표시하지 않음) 잘못되었습니다 (74xx73은 게이트 래치가 아닌 2 래치 "마스터-슬레이브"설계를 사용합니다.) 페이지 작성자가 수정하도록합니다.
이 답변은 JK 게이트 래치 문제에 대해 자세히 설명합니다. SR FlipFlop 질문
그리고 여기 : JK 래치, 가능한 벤 이터 오류?
전원이 처음 켜질 때 이것은 디지털 회로로 이해 될 수 없습니다. 실제 물리적 회로에서 입력 및 출력은 1과 0 사이 또는 그 이상일 수 있습니다. 로직 프리미티브 설계의 일부는이를 상위 레벨 설계에서 숨기는 것이지만 "누수 추상화"입니다. 다음과 같은 간단한 예를 고려하십시오.

이 회로 시뮬레이션 – CircuitLab을 사용하여 생성 된 회로도
이제 노골적으로, 경우 디지털 회로로 Out1
이다 0
, Out2
이다 1
, 또는 그 반대, 영원히. 그렇다면 전원을 켜면 어떻게됩니까?
파워 - 업에 상상, 모두 Out1
하고 Out2
있습니다 0
. 그 상태로, Not1
및 Not2
그 출력을 향해 슬루한다 1
. 그러나 그 사이에 0
그리고 1
, 그들은 방향으로 다시 운전 전환 할 수 있습니다 0
. 이제 회로는 완벽한 균형을 이루지 못하며 열 노이즈도 존재하여이 프로세스에 무작위로 영향을 미칩니다. 따라서 두 인버터 중 하나는 다른 인버터보다 먼저 출력 극성을 전환하고 1
. 그것은 다른 하나를 0으로 만듭니다. 회로는 멋진 부울 논리로 작동하지 않고 잠시 뒤쳐 질 수 있지만 잘 정의 된 논리 상태로 빠르게 정착됩니다. 실제 회로를 사용하면 일반적으로 편향된 임의 동작이 발생합니다. 한 상태가 다른 상태보다 선호되지만 임의성이 있습니다.
Q와 Q '에는 아직 값이 없습니다. 그러면 회로는 어떻게 진행됩니까?
맞아요. 회로가 어떻게 진행 될지 알 수있는 방법이 없습니다.
이 문제를 해결하기 위해 비동기 또는 동기 RESET 또는 PRESET 입력을 사용하여 출력을 알려진 상태 로 설정할 수 있습니다. 비동기 입력은 클럭에 의존하지 않지만 동기 입력은 클럭에 의존합니다.
다음은 비동기식 리셋 및 설정 입력이있는 마스터-슬레이브 JK 플립 플롭에 대한 참조 회로입니다.
비동기식 RESET 및 SET 입력이있는 JK 플립 플롭

이것은 비동기 RESET 및 PRESET이있는 JK Flip-Flop의 회로입니다. 비동기식 RESET 입력의 HIGH는 Q를로 설정 LOW
하고 Q '를로 설정하며이 HIGH
작업은 클록과 무관합니다. 마찬가지로 HIGH
비동기 PRESET 입력의 a는 Q를로 설정 HIGH
하고 Q '를로 설정 LOW
합니다.
일:
RESET 입력이 HIGH
이면 NOT 게이트 (U11)의 출력은 LOW
. HIGH
입력 중 하나 가 이므로 NAND 게이트 (U12) 의 출력이 LOW
됩니다. 이렇게하면 NAND 게이트 (U13) Q의 출력이로 설정됩니다 LOW
. 마찬가지로 다른 사례도 분석 할 수 있으며 독자에게 연습 문제로 남겨 둡니다.
노트 :
PRESET과 RESET이 모두 HIGH
허용되지 않는 (무의미한) 경우 동작이 정의 되지 않았습니다.
추가 읽기
Clifford Cummings, Don Mills 및 Steve Golson이 작성한 이 문서 의 섹션 2 는 특히 관련이 있으므로 여기에서 인용하겠습니다.
개별 ASIC의 경우 재설정의 주요 목적은 ASIC 설계를 시뮬레이션을 위해 알려진 상태로 만드는 것입니다. ASIC가 구축되면 ASIC의 재설정 적용 필요성은 시스템, ASIC의 적용 및 ASIC의 설계에 의해 결정됩니다. 예를 들어, 많은 데이터 경로 통신 ASIC는 입력 데이터 스트림과 동기화하고 데이터를 처리 한 다음 출력하도록 설계되었습니다. 동기화가 손실 된 경우 ASIC는 동기화를 다시 획득하는 루틴을 거칩니다. 이러한 유형의 ASIC가 올바르게 설계되어 사용되지 않은 모든 상태가 "동기화 획득 시작"상태를 가리 키도록하면 재설정되지 않고 시스템에서 제대로 작동 할 수 있습니다. ASIC의 상태 머신이 합성 단계 동안 "관심없는"로직 감소를 활용 한 경우 이러한 ASIC의 전원을 켤 때 시스템 재설정이 필요합니다.
일반적으로 ASIC의 모든 플립 플롭은 시스템에 필요한지 여부에 관계없이 재설정 가능해야합니다. 어떤 경우에는 파이프 라인 플립 플롭 (시프트 레지스터 플립 플롭)이 고속 애플리케이션에 사용되는 경우 일부 플립 플롭에서 리셋을 제거하여 고성능 설계를 달성 할 수 있습니다. 이러한 유형의 환경에서는 ASIC를 알려진 상태로 만들기 위해 재설정 활성 기간 동안 미리 결정된 수의 클럭이 필요합니다.
ASIC : 애플리케이션 별 집적 회로