로직 시뮬레이터에서 플립 플롭을 만들 수없는 이유는 무엇입니까?

Jan 03 2021

나는 몇 가지 논리 시뮬레이터를 가지고 놀았고 왜 플립 플롭이 작동하지 않는지 이해하지 못합니다. NAND 게이트로 T 플립 플롭을 구현하려고합니다.

내가 시도한 모든 시뮬레이터는 동일한 결과를 제공합니다. Q 또는 Q '는 내부 업데이트의 타이밍에 따라 상승 에지에서 토글하지 않고 클럭 상태를 취합니다. 회로의 대칭성을 감안할 때 나는 그다지 놀랍지 않지만 실제로 작동하는 방식이 궁금합니다.

이것이 가능합니까, 아니면 기본 부품으로 할 수 없기 때문에 이러한 에뮬레이터가 플립 플롭 구성 요소를 제공합니까? 그렇다면 왜 그리고 무엇이 빠졌습니까?

시뮬레이터 :

  • https://logic.ly/demo
  • https://circuitverse.org/simulator
  • https://academo.org/demos/logic-gate-simulator/
  • https://simulator.io/board

제공된 T 플립 플롭 (circuitverse.org)과 비교 한 NAND 게이트 회로 :

Simulator.io에서도 동일합니다 (NAND가 없으므로 AND + NOT 사용) :

답변

12 TimWescott Jan 03 2021 at 07:43

에서하기 때문에 이 페이지 클럭 펄스의 폭이 출력 단계는 반응에 대해 충분히로 조정, 아직 일에 대한 짧은 충분하지 발진하는 경우, 당신이 보여있는 스타일에만 작동합니다. 전파 시간을 모델링하지 않는 로직 시뮬레이터는 대처할 수 없습니다.

회로를 시뮬레이션하려면 전파 지연을 '이해하는'회로 시뮬레이터가 필요하거나 트랜지스터 수준에서 회로를 시뮬레이션해야합니다.

동일한 페이지는 완전 동기식 J-Kflip-flop에 대한 다음 회로를 보여줍니다 (T ff를 위해 J와 K를 함께 연결).

시뮬레이터에서 시도해보고 어떤 일이 발생하는지 확인하십시오.

11 hacktastical Jan 03 2021 at 13:34

당신이 보여주는 회로는 플립 플롭이 아닌 게이트 된 JK 래치입니다. T가 높고 클럭이 높으면 교차 결합 된 NAND 게이트가 링 오실레이터를 형성합니다. 이를 '경주-주변'문제라고도합니다. 출력은 클럭이 다시 낮아질 때까지 안정되지 않습니다.

이 회로는 클럭 플롭을 만들지 않는 방법을 보여줍니다. 그렇지 않으면 쓸모가 없습니다. 실제 토글 플롭은 반대 레벨에서 클럭 된 두 단계의 래치 쌍을 사용합니다. 이를 '에지 트리거'또는 '마스터-슬레이브'플립 플롭이라고도합니다.

더보기 : JK 플립 플롭에서 Q와 Q '는 어떻게 결정됩니까?

그리고 여기 : JK 래치, 가능한 벤 이터 오류?

4 MathKeepsMeBusy Jan 03 2021 at 08:11

게이트 지연 타이밍에 의존하지 않는 에지 트리거 T 플립 플롭을 구현하려면 최소 6 개의 Nand 게이트가 필요합니다. 아래 회로는 CircuitLab에서 잘 시뮬레이션합니다.

이 회로 시뮬레이션 – CircuitLab을 사용하여 생성 된 회로도

편집하다:

누군가는 회로가 클록에만 의존하고 별도의 T 및 클록 입력이 없기 때문에이 회로가 T 플립 플롭이 아니라고 언급했습니다.

그러나 내가 "T flip-flop"을 구글링 할 때 가장 먼저 떠오르는 것은 다음 과 같다.

T 또는 "토글"플립 플롭은 각 클록 에지에서 출력을 변경하여 신호 주파수의 절반 인 출력을 T 입력에 제공합니다.

이진 카운터, 주파수 분할기 및 일반 이진 가산 장치를 구성하는 데 유용합니다. 두 입력을 모두 높게 묶어 JK 플립 플롭에서 만들 수 있습니다.

그래픽이 포함되어 있습니다.

나는 이것이 반드시 T 플립 플롭이 별도의 T 및 클록 입력을 가져야한다는 주장에 대한 권위있는 반박이라고 주장하지 않습니다. (인터 웹에 플립 플롭에 대한 잘못된 정보가 많이 있습니다. 예를 들어 OPs 회로는 다른 답변에 설명 된 문제가 있음에도 불구하고 T 플립 플롭으로 표시된 곳곳에 나타납니다.) 그러나 , 나는 댓글 작성자의 관점에 대한 대안으로 위의 정보를 제공하고 있습니다.

Edit2 : 논평자가 회로에 대한 상태 다이어그램을 요청했습니다. 이 정보를 제공 할 것이지만 다이어그램으로는 제공하지 않습니다.

정상 작동시 안정 상태간에 전환되는 4 개의 안정 상태와 12 개의 상태가 있습니다.

안정 상태는 다음과 같습니다.

상태 : Vin N1 N2 N3 N4 N5 N6

S1 : 01010

S2 : 1010 1 0 1

S3 : 012 1100 1

S4 : 1 1 0 1 1 0

전환은 다음과 같이 진행됩니다.

S1에서 \$\uparrow\$N1 \$\downarrow\$N6 \$\uparrow\$N5 \$\downarrow\$ S2

S2에서 \$\downarrow\$N1 \$\uparrow\$N4 \$\downarrow\$N3 \$\uparrow\$ S3

S3 In \$\uparrow\$N2 \$\downarrow\$N5 \$\uparrow\$N6 \$\downarrow\$N4 \$\uparrow\$ S4

S4 In \$\downarrow\$N2 \$\uparrow\$N3 \$\downarrow\$ S1

1 ShashankVM Jan 03 2021 at 12:30

당신은 또 다른 문제가 있습니다 (하지만 해야 )는로 실행은 이것이다 : 어떻게 Q 및 Q 'JK 플립 플롭에서 처음으로 결정된다? .

이것은 특히 T 플립 플롭의 경우에 해당됩니다.

2 개의 입력, T 및 클럭 만있는 T 플립 플롭의 경우 'X'를 지원하는 시뮬레이션에서 출력이 알려진 상태 가 될 수있는 방법이 없습니다 .

좋은의 시뮬레이터 값이 알려지지 않은 것을 알 모두 출력에서 'X'를 나타낸 것이다.

내 대답 에서 언급했듯이 동기식 또는 비동기식 입력을 사용하여 출력을 알려진 상태로 설정할 수 있습니다.

참고로 마스터 슬레이브 JK 플립 플롭을 사용하여 비동기 입력이있는 T 플립 플롭을 만들었습니다. 브라우저에서 시뮬레이션 할 수 있습니다.

이 회로 시뮬레이션 -MultisimLive를 사용하여 생성 된 회로도