JK플립플롭
우리 저번에는 SR플립플롭에 대해 배워봤어요. SR플립플롭 다시한번 볼게요. 까먹은 학생도 있을 수 있고, 완벽하게 이해 못한 학생들도 있을 수 있으니 다 같이 따라와볼게요. 그리고, 제가 저번에 잘못 설명한게 있었어요. 저번에 나왔던 질문이 뭐에요? S R이
1 0
이 됐을 때랑, S R이1 1
이 됐을 때랑 Q랑 Q_가 둘 다 1인데 왜 S R1 1
만 안되는거죠? 라는 질문이었어요. 정확하게 짚고갈게요.
자, 우리 여기에서부터 볼게요. 여기 보면, 그 프로테우스에서도 실행 시켰을 때 어땠어요?
이거랑 똑같이 결과값이
?
로 시작했었어요. 왜? 입력값이 주어지지 않았으니까. 자 그럼 입력값(현재상태값)이 0일때 기준으로 해볼게요.
자 여기서 초록색으로 표시간 1이 Q_값으로 바로 변한게 아니에요. 이어서 해볼게요.
두 게이트를 모두 지나고나서야 현재값이 1로 0 → 1로 바뀐거에요. 자 그럼 한번 더 가볼게요. 현재값이 1이됐을 때 Q_도 계산하는거에요.
자 이렇게해서 Q랑 Q_의 값이 계속 반대가 되야하는거에요. S R이
0 0
,0 1
,1 0
,1 1
일 때 모두 이렇게 계산하는거에요. 헷갈리게 만들어서 미안해요. 제가 누군가에게 수업을 해 보는게 제 인생 처음이라 실수가 있었어요. 더 꼼꼼히 알아보고 수업준비를 했어야했는데 제 실수에요. 이해해주길 바래요. 미안해요. 자, 그럼 문제의1 1
일 때 한번 더 하고 오늘 수업으로 넘어갈게요.
그쵸? 이제 논리적으로 맞지 않다는걸 확실하게 증명하게 됐어요.
자, 그럼 진리표 한번 그려볼게요.
이거죠 그쵸? 이게 우리가 배운 1bit를 기억하는 소자인 SR 플립플롭이에요. 이건 기본이에요. 우리가 꼭 알고있어야해요.
SR플립플롭
을 알고있어야 뒤에있는 다른 플립플롭들을 쉽게 이해할 수 있다고 했습니다. 위에있는 저 회로는 기억을 못해도 진리표는 기억해야해요. 알겠죠? SR플립플롭은0 0
,0 1
,1 0
일 때만 사용할 수 있다고 했어요. 자 그럼, JK플립플롭은 뭐라했었죠?(대답) 그쵸, 맞아요 SR에서 사용이 불가능 했던1 1
을 사용할 수 있게 해준다고 했어요. 근데, 논리적으로 맞지 않는데 어떻게 사용이 가능할까요?
이렇게 Q랑 Q_에서 선을 한가닥씩 따오면
1 1
을 사용할 수 있어요. 이게 뭐라구요? JK플립플롭이다. 위 표를 이렇게 표현할 수 있어요.
입력으로 주어졌던 S랑 R이 J랑 K로 바뀌었죠? 딱히 의미는 없어요. 네이밍에 맞게 바꿔준 것 뿐입니다. 그래서
1 1
을 주면 뭘 쓸수있냐?Toggle
기능을 사용할 수 있어요. 우리 저번에LOGICSTATE
가 아니라LOGICTOGGLE
을 사용했었던거 기억해요?
클릭을 하는 동안만 신호가 갔었죠? 근데 그 위에 빨간 동그라미 클릭하면 값이 고정됐었죠. 그렇게 고정하는거, 그게 Toggle이에요. 우리 키보드에
CAPSLOCK
이라고 있는 버튼이 있어요. 이 버튼이 무슨 역할을 하죠? 영어를 대문자만 계속 입력할 수 있게 해주는 역할이에요. 원래는 Shift를 누르고있어야 영어가 대문자로 입력이 되는데,CAPSLOCK
버튼을 한번 누르면 고정시켜주는거죠. 재차 말하지만 이런 기능이Toggle
입니다. 이 Toggle기능을 하는게? 입력값으로 둘 다1 1
을 줬을때다~ 라는 말이에요. 자, 그래서 1 1을 줬을 때 사용할 수 있도록 해주는 JK 플립플롭은?
이게뭐에요?(질문) 그쵸 AND에요, AND게이트를 사용하면 입력으로
1 1
이 들어와도 사용할 수 있습니다. 그럼 한번 계산해볼게요.
어때요? 이젠 Q랑 Q_가 논리적으로도 잘 맞고, 사용할 수 있게됐죠? 그럼 현재상태가 1일때도 해보죠.
현재값이 반대로 나오게 되는, 이게 토글입니다. 이게 딱 컴퓨터 본체에있는 전원하고 같죠? 컴퓨터가 꺼져있으면 켜고, 켜져있으면 끄고. 이렇게 SR플립플롭에서 사용 불가했던
1 1
을 사용할 수 있게 해주는 JK가 정말 당시엔 엄청나게 큰 기술의 발전이었죠.자, 그럼 프로테우스에서 실습 진행 해 볼게요.
AND AND GATE NAND NAND GATE CLOCK CLOCK PULSE LOGICTOGGLE INPUT LOGICPROBE OUTPUT
우리가 아까 그린 그림대로면 이렇게 나와야해요. 근데 이거 실행시키고 어떤 입력값을 눌러도 변화가 없어요. 왜?? 입력이 들어갈 수 없는상태죠.
입력값 두개를 둘 다 1로 주면 더 보기가 편하죠. 회색 네모로 표시된거 보여요? 신호가 들어가지 않는다는 의미죠. 이건 그냥 논리적인 회로일 뿐이기 때문에 이렇게 나오는거에요. 여기서 캡쳐 하나 해 두시고.
그럼 실제 JK-FlipFlop이 구현된 디바이스를 가져오면 되겠죠?
JKFF JK Flip-Flop 이 디바이스를 하나 더 추가해줄게요.
자 어떻게 나오나요? 기존에 SR 플립플롭으로는
0 0
,0 1
,1 0
,1 1
까지 구현이 가능했는데. JK로는1 1
까지 구현이 가능한 걸 볼 수 있죠?1 1
때는 깜빡 깜빡 Clock Pulse가 들어올 때마다 값을 반전시켜주는 것을 알 수 있습니다. 여기서도 캡쳐 하나 해두시고.우리 그럼 JK 플립플롭으로 재밌는거 해볼게요.
JK 플립플롭 4개를 사용해서 2진수로 0~15까지 출력하는 걸 만들어볼건데요.
일단 JK 플립플롭의 J는 Q_와 연결해주시고, K는 Q랑 연결 해 줄게요. 그리고 맨 앞의 JK 플립플롭은 CLOCK을 바로 주고, 그 뒤의 플립플롭들은 Q의 출력에 연결해줄게요. 그리고 실제로 값이 표시되는 부분도 Q의 출력에 연결해줄게요. 그리고 실행시키면? 0, 1, 2, 3, 4, 5, 6 ,7, 8, 9, 10, 11, 12, 13, 14, 15까지 정상적으로 출력되는 걸 볼 수있죠? 자, 이렇게 JK플립플롭을 이용해서 2진수로 0부터 15까지 출력하는 걸 만들어봤습니다.
자, 여기까지가 JK 플립플롭입니다. 이제 D플립플롭이랑 T플립플롭, Master Slave플립플롭이 남았네요. 다음주는 D 플립플롭, T 플립플롭을 진행하고 다다음주에는 Master Slave 플립플롭을 실습 해 보고 중간고사 기간이네요. 그럼 오늘 제출해야 할 과제 말씀드리겠습니다. 아 참고로 혹시나 오늘 수업 안듣고 나중에 강의영상보고 과제만 제출해야지~ 하는 학생들 있을 것 같아서 필요한 학생들은 타당한 이유를 가지고 메세지 주시면 영상을 보내드리겠습니다. 과제는 제가 채팅창에 복붙해서 올려드릴게요~
과제
- JK 플립플롭 AND, NAND를 사용한 회로에서 입력으로
1 1
을 주었을 때의 캡쳐사진- JK 플립플롭 DEVICE를 사용해서 입력값으로
1 1
을 주었을 때의 캡쳐 사진- 2진수로 0~15까지 만든 회로에서 출력값이
0 0 0 0
일 때의 캡쳐사진- 2진수로 0~15까지 만든 회로에서 출력값이
1 1 1 1
일 때의 캡쳐사진
- 총 4장의 캡쳐사진을 실험보고서에 작성해서 제출하시면 됩니다.