[ 레드스톤 및 논리 회로 공부 ] 숫자 카운터 만들기 - 2 플립플롭 - Whitmem
[ 레드스톤 및 논리 회로 공부 ] 숫자 카운터 만들기 - 2 플립플롭
Game Topic
2024-06-24 22:25 게시 017954acb3a86074f02d

0
0
133
이 페이지는 외부 공간에 무단 복제할 수 없으며 오직 있는 그대로 게시되며 부정확한 내용을 포함할 수 있습니다. 법률이 허용하는 한 가이드 라인에 맞춰 게시 내용을 인용하거나 출처로 표기할 수 있습니다.
This page is not to be distributed to external services; it is provided as is and may contain inaccuracies.
[이전에 작성된 게시글]
이전에 작성한 내용을 바탕으로 마인크래프트 게임 내 레드스톤 회로로 만들어보고자 한다. 마인크래프트 회로는 웬만한 논리 처리는 가능할 것으로 보이며 (물론 시간은 문제가 되겠지만) 무한한 창작 가능성을 보여준다.
하지만, 당연하겠지만 마인크래프트 레드스톤 항목에는 플립 플롭 같은 모듈은 존재하지 않는다. 오직 레드스톤 전기 신호를 주고 끄는 기능만 존재하며, 그 외에는 직접 모두 만들어야 한다.  
그러기 위해서는 플립 플롭을 어떻게 만드는지 알아야한다. 플립 플롭을 만드는 방법에 대해서 알아본다.
OR 과 NOT GATE를 사용하여 우선 SR 래치라는 것을 만들 수 있다. S R 이라는 인풋이 존재하며, S에 불이 들어오면 Q쪽에 활성화 된다. 물론 이 상태에서 S를 끄더라도 그대로 Q는 유지되며, 반면, S가 꺼지고 R에 불이 들어오면 Q의 신호는 꺼지고, Q 위의 신호에 불이 들어온다. 사실 저 Q 위 그림에도 선에 레이블을 정해줘야 하는데, 기억이 나지 않아 그냥 빈 공백으로 두었다.
쨋든, 결과적으로 SR 래치는 아래와 같은 결과를 나타낸다.
즉, S R을 딸깍 거리면서 Q의 상태를 만들고, 모두 끄더라도 상태는 그대로 저장된다. 하지만, 인풋이 너무 헷갈리기에 사용하기 쉽지 않다.
이를 이용해서 우리는 D 래치라는 걸 만들어 낼 수 있다.
활성화 신호라는 스위치 인풋과, 스위치라는 인풋을 하나더 만들어 AND 연산 처리 해주었다. 스위치는 위 아래 모든 AND에 들어가되, 아래에는 자동으로 신호가 역으로 바뀌어 들어가게끔 NOT GATE를 붙여주었다.
이 상황에서, 조작 모드를 켜놓고, 스위치를 딸깍 거릴 때, 스위치를 켤 때만 Q에 불이 들어오고, 스위치를 끄면 바로 Q에 불이 꺼진다. 반면, 조작 모드를 꺼놓으면, 끄기전 그 상태는 그대로 유지되고, 스위치를 조작하여도 Q는 바뀌지 않는다.  
즉, 조작 모드를 켜고, 스위치를 딸깍 거려 Q를 원하는 상태로 만든 뒤, 조작 모드를 꺼주면 Q는 그대로 영구히 보존된다는 것이다. (논리회로 이론 상)  [spacecbox2] 이 하나를 "D 래치"라고 부르는데, 아직 하나 부족하다. 이전 페이지에서 보여주었던 D 플립 플롭이라는 것은, 클럭 (CLK)가 활성화 될 때만 그 당시 스위치가 Q에 반영된다. 즉, 조작 모드가 켜져있다고 스위치를 바꿀 때 Q가 계속 바뀌면 안되는 것이다. 1회성으로 한번만 Q를 조작하고, 그 이후에 다시 조작을 하기 위해서는 또 조작 모드를 건들어야 되게끔 해야한다는 것이다. (뭔말이지?) 아래를 보면 이해가 가능하다.  
D 플립 플롭을 만들기 위해서는 우선 D 래치를 두개를 이어서 만들 수 있다.
우선 D 래치를 그대로 2개 복사하였다. 이 상태에서, 첫 번째 래치의 Q를 다음 래치의 Input 스위치에 그대로 넣어주고,
새로운 인풋을 하나 만들어, 그 인풋에 대한 NOT GATE를 첫 번째 래치의 조작모드에, 그 인풋에 대한 신호를 바로 두 번째 래치의 조작모드에 그대로 넣어준다.
즉 이렇게 구성을 해주면, CLK을 처음 한번 켤 때 그 시점에서의 Input이 최종 Q에 반영된다.
그 원리는, 첫번 째 D 래치에서 조작 모드는 활성화 되어 있기에, Input에 대한 결과를 Q로 그대로 내보내고, CLK를 켜주면, 첫 번째 D 래치에서의 조작 모드는 자동으로 꺼진다. 그러니 첫 번째 D 래치는 더 이상 조작할 수 없는 상태로 바뀌고,
반면, 첫 번째 D 래치의 Q는 그대로 유지된다. 이 첫 번째 D 래치의 Q는 다시 두 번째 D 래치의 Input에 들어가져 있는 상태에서, CLK가 켜졌기 때문에 두 번째 D 래치의 조작 모드가 켜져 최종 Q에 반영된다. CLK가 켜져 있을 때 Input을 건든다고 하더라도, 첫 번째 조작 모드는 꺼져 있기에, 최종 Q에는 반영되지 않는다.
이렇게 우리는 데이터를 하나 저장할 수 있는 공간을 하나 만들었다.
그러면 이 것을 마인크래프트 게임에서 레드스톤 회로로 구성해본다. 
이전 게시물에서 작업 해논 회로가 보인다. 제일 왼쪽은 XOR, 그 다음은 NOT, 그 다음은 OR, 그 다음은 AND라고 하였다.  
우선 하나의 D 래치를 구현해보자. 아래 회로를 마인크래프트 게임에서 그대로 구현을 해야 한다.
우선 SR 래치는 위와 같이 구현이 가능하다. 위아래 대칭이기 때문에 어디를 S, R로 둘지는 자기 마음이다.
중간의 레버가 조작 모드 인풋이며, 오른쪽 레버가 스위치 인풋이다.
이렇게 D 래치를 만들었기에, 이제 이 2개를 이어서 D 플립 플롭을 만든다.
결과적으로 제일 왼쪽 스위치가 CLK가 되었고, 오른쪽 스위치가 Input,
마지막 박스의 결과가 저장된 Q이다.
댓글 0개
댓글은 일회용 패스워드가 발급되며 사이트 이용 약관에 동의로 간주됩니다.
확인
Whitmemit 개인 일지 블로그는 개인이 운영하는 정보 공유 공간으로 사용자의 민감한 개인 정보를 직접 요구하거나 요청하지 않습니다. 기본적인 사이트 방문시 처리되는 처리 정보에 대해서는 '사이트 처리 방침'을 참고하십시오. 추가적인 기능의 제공을 위하여 쿠키 정보를 사용하고 있습니다. Whitmemit 에서 처리하는 정보는 식별 용도로 사용되며 기타 글꼴 및 폰트 라이브러리에서 쿠키 정보를 사용할 수 있습니다.
이 자료는 모두 필수 자료로 간주되며, 사이트 이용을 하거나, 탐색하는 경우 동의로 간주합니다.