회로이론 1장: 바닐라 레드스톤 로직

Posted by 엑셀서스
2018. 3. 23. 00:30 마크 공략/The 회로이론

너무 마크를 안하다간 살이 떨어져 나갈것 같아서 가벼운 글 하나 올려봐요.

고인물들은 모두가 알고있는 바닐라 레드스톤 로직이에요!


사실 모두가 아는줄 알았는데,

가끔 엑셀이 설치해놓는 회로의 용도를 알아보지 못하는 유저들도 보여요. 흑흑


기본적으로 바닐라 레드스톤 로직에서 레드스톤 토치는 최대신호를 내보내요.

이 신호는 바닐라 레드스톤 가루를 통해서 가는데

15칸에 걸쳐서 천천히 줄어들고

16번째 가루에는 신호가 0이 되어요.


그래서 바닐라 신호는 1~15로 켜져있는 신호 강도를 적고, 0은 꺼진 상태를 의미해요.

레드스톤 토치 바로옆에 있는 더스트가 15에요.


레드스톤 토치에는 또 흥미로운 특성이 있어요.

바로 붙어있는 블럭이 레드스톤 신호를 받을 경우 꺼지는거에요


이걸로 우린 NOT게이트, 즉 신호를 반전시키는 게이트를 가지게 되었어요.

이걸 우리는 '으로 나타내고, 프라임 혹은 not이라고 읽어요.


입력단을 x라고 했을경우, 출력은 x'이 되는것이지요.


신호에는 점차 줄어드는 특성이 있으니

멀리 신호를 보내려면 증폭을 해줘야해요.


그럼 어떻게 해야할까요?

그렇죠. Buffer Gate라는걸 달아줘야 해요.

근데 그냥 버퍼는 존재하지 않으니, NOT NOT을 하면 다시 원래대로 돌아오겠죠.

x'' = x


다시 신호를 보낸다고 해서 리피터라고도 부르는데, 일방향성이라서 다이오드라고도 해요.

세상에나, 혼자서 몇가지 역할을 하는거야


바닐라 버젼몇이었지? 상당히 초기에 이 구성은 리피터라는 블럭으로 따로 구현되었는데,

사실 그쪽에는 고정 딜레이가 있어서 직접 만든 리피터를 더 즐겨쓸지도 몰라요.





이 레드스톤 로직으로 다른 회로도 만들어보죠.

일단 더스트를 그냥 연결해버리면 OR게이트가 되겠지요.


이건 x+y같은 식으로 덧셈처럼 표현합니다.

즉 x+y는 이제 x Or y라고 읽는것이지요.


우리에겐 이제 NOT과 OR게이트가 있는데,

AND게이트는 그럼 어케 만들까요?


드모르간 정리에 의하면 xy는 (x'+y')'랑 같아요.

그러니, not x와 not y를 서로 and해준다음, 한번 더 not해주면 x and y가 되는것이지요.


이걸로도 우린 충분히 모든 논리회로를 파생해낼수 있겠지만,

따로 트랜지스터 역할을 해줄 게 없으면 재미난걸 만들어낼수 없겠지요.


그래서 약간의 버그를 이용해서 피스톤 T-Flip Flop을 만들어봅시다.

이 구조물은 ON상태와 OFF상태를를 가지게 되고,


위쪽 바에다가 신호를 줬다가 끄면 상태가 바뀌어요.

상태는 땅속에 묻어둔 레드스톤 토치 위에 블럭이 올 경우 ON인거에요.


아래는 이제 바닐라에서 업뎃하면서 추가해준 레드스톤 회로판인데,

그중 첫번째는 리피터에요.


위에서 토치만으로 구성한 리피터랑 사실 별차이는 없는데,

가장 핵심적인 용도는 고정된 딜레이에요.

바닐라 리피터에는 기본적으로 1틱의 딜레이가 있고,

한번 오른쪽 클릭 할때마다 판 위에있는 두 토치가 서로 벌어지면서

1틱씩 딜레이가 늘어나서 최대 4틱의 딜레이를 가질수 있어요.


신호가 들어오면 이 딜레이만큼 기다렸다가 출력부로 들어왔던 신호를 최대신호로 보내게 되어요.


이건 이제 조금 더 흥미로운 블럭인 컴퍼레이터에요.

현실에서 비트 컴퍼레이터랑은 약간 다른 느낌으로, 신호의 강도를 서로 비교하는 회로판이에요.


사이드로 받는 신호가 "비교기준"이고, 토치 두개쪽 면이 입력부, 토치 한개쪽 면이 출력부에요.

기본적으로 입력부분의 토치신호가 비교기준 신호보다 클 경우 입력쪽 토치에 불이 들어오며 출력부분으로 신호를 발생시키는데

우클릭으로 설정 가능한 두가지 모드를 가지게 되어요. 

첫번째 모드(출력부 토치가 꺼져있는 모양새)는 신호를 발생시킬때 무조건 최대신호로 발생시키는 모드고

두번째 모드(출력부 토치가 켜져있는 모양새)는 그 차이만큼의 신호를 발생시키는 모드에요.


즉 기준신호가 5고 입력신호가 7이라면, 출력신호는 2의 강도를 가지겠지요.


 물론 이것만으로는 그냥 평범하게 재미없는 컴퍼레이터였겠지만,

그 진가는 바로 인벤토리 내부를 들여다볼수 있다는것에 있어요.


컴퍼레이터의 입력부쪽에 인벤토리가 있을 경우,

이 내용물이 얼마나 차있냐를 입력신호로 받은것처럼 간주해요.


즉 인벤토리가 가득 차있으면 최대신호를 받은것과 같겠죠.

이걸 이용해서 여러가지 재미있는 자동화를 할수 있겠죠.


예를들어 호퍼의 신호받으면 멈추는 특성을 이용해서 일정량의 아이템만 유지하는 창고라던지...

반응형