디시인사이드 갤러리

마이너 갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

[⚡레드스톤] 마인크래프트 논리회로 강좌 -1-

ㅇㅇ(58.120) 2020.06.03 02:09:35
조회 7965 추천 36 댓글 30
														

여기에 계산기나 CPU 만들 사람이 얼마나 되겠느냐만은 심심해서 한번 정리해본다.


강좌 만들다가 귀찮아져서 그만들수도 있는데 혹시 모르니 걍 1번 강좌라고 해놓음

본편에서는 간단한 논리회로와, 전가산기, 0~9를 2진법으로 바꾸는 방법에 대해 알아보겠음


1. 논리회로 


이건 걍 보고 이해만 하면됨. 실제 구조에서는 매우 컴팩트하게 짓기 때문에

걍 이런게 있고 적당히 편하게 써먹을 줄만 알면 된다.

사실 이 부분은 스스로 이해하는것이 도움이 된다.

직접 지어보고 이해해보도록 하자.


여러 종류의 게이트가 있지만, 모두 아래 네 개의 합성으로 귀결되기 때문에, 아래 네 개만 다뤄보고자 한다.



(1) AND 게이트. 두 개의 신호가 모두 ON일 때 ON을 출력하는 장치

viewimage.php?id=3ea9d530e0&no=24b0d769e1d32ca73ded8efa11d02831ee99512b64ee64d67099c224c4054ea95368fee5a473c75a7bfe4f63190feafd75452fc52d5a1dd7f21cafe326f0a5


viewimage.php?id=3ea9d530e0&no=24b0d769e1d32ca73ded8efa11d02831ee99512b64ee64d67099c224c4054ea95368fee5a473c75a7bfe4f63190feafd75452f957a0c1cd4f71aa6e326f0a5

이건 두 불이 모두 켜졌을 때 결과물이 켜진 모습.



(2) OR 게이트. 둘 중 하나라도 ON이면 ON을 출력하는 장치.

viewimage.php?id=3ea9d530e0&no=24b0d769e1d32ca73ded8efa11d02831ee99512b64ee64d67099c224c4054ea95368fee5a473c75a7bfe4f63190feafd75452fc428004fd1a74aaee326f0a5

리피터는 필수다. 까먹지 말자. 여기서는 간단해서 크게 신경 안써도되지만,

만약 리피터가 없다면 전류가 역류해서 오류를 초래할 수 있다.

어찌보면 가장 간단한 논리 회로이다.


(3) NOT 게이트 : 신호를 반전시켜주는 장치 (0은 1로, 1은 0으로)

viewimage.php?id=3ea9d530e0&no=24b0d769e1d32ca73ded8efa11d02831ee99512b64ee64d67099c224c4054ea95368fee5a473c75a7bfe4f63190feafd75452fc3280a4fd0f118a3e326f0a5

레드스톤 토치는 블럭에 연결되있을때, 그 블럭에 전원이 공급되면 꺼짐을 이용하는 장치.

이건 논리회로 말고 다른 회로에서도 매우 많이 쓰인다.


(4) XOR 게이트 : 둘중 하나만 켜졌을때 결과물이 켜지는 장치

간단한 논리회로에서 가장 복잡한 구조를 지녔다. (사실 이건 크게 복잡한 축에도 못들긴 한다)

0과 0, 1과 1은 꺼짐, 0과 1, 1과 0은 켜지게 만들어주는 장치

viewimage.php?id=3ea9d530e0&no=24b0d769e1d32ca73ded8efa11d02831ee99512b64ee64d67099c224c4054ea95368fee5a473c75a7bfe4f63190feafd75452fc37b5f1685f714a6e326f0a5

대략적인 모양은 다음과 같다.

후술하겠지만 이 모양을 익혀둬도 나중에 잘 써먹을 수 있지만, 계산기 만들땐 어차피 이모양 안쓴다


아래 두개의 그림은 둘 중 하나만 켜졌을 때, 둘 다 켜졌을 때의 결과물이다.

viewimage.php?id=3ea9d530e0&no=24b0d769e1d32ca73ded8efa11d02831ee99512b64ee64d67099c224c4054ea95368fee5a473c75a7bfe4f63190feafd75452fc37a0d1b80f615f7e326f0a5


viewimage.php?id=3ea9d530e0&no=24b0d769e1d32ca73ded8efa11d02831ee99512b64ee64d67099c224c4054ea95368fee5a473c75a7bfe4f63190feafd75452fc0280d1cd1f24df2e326f0a5


---------------------------------------------------------------------------------------------------

2. 가산기


기초적인 논리회로 부품을 잘 알아보았다.

이걸 한번 써먹어 볼것이다.


1 bit 가산기란, 그냥 더하기이다.

A+B의 결과물을 알려주는 건데, 다들 아시다시피 1bit는 걍 0이랑 1밖에 못 넣는 거라

0또는 1들의 합이다.


대충 예시를 들어보자면, 0+0=0, 1+0=1, 1+1=10 (2진법에서는 2가 10이다.) 정도가 되겠다.

보면 알겠지만, 1의 자리는 A 또는 B가 1개만 1일 때 1이 되고, 

2의 자리는 A와 B가 둘 다 모두 1일 때 1이 된다.


즉, 1비트 가산기는 그냥 XOR게이트와 AND게이트의 합성물이다.

이를 토대로 1비트 가산기를 한번 만들어보겠다.


viewimage.php?id=3ea9d530e0&no=24b0d769e1d32ca73ded8efa11d02831ee99512b64ee64d67099c224c4054ea95368fee5a473c75a7bfe4f63190feafd75452fc77a004d83a548f7e326f0a5

아래 두개가 입력 신호이고, 오른쪽 하단의 램프가 2의 자리, 우측 상단의 램프가 1의자리이다.

윗 그림은 0+0=00을 보여주는 것이다.


viewimage.php?id=3ea9d530e0&no=24b0d769e1d32ca73ded8efa11d02831ee99512b64ee64d67099c224c4054ea95368fee5a473c75a7bfe4f63190feafd75452fcb2f0e4d80f71aa3e326f0a5

0+1=1


viewimage.php?id=3ea9d530e0&no=24b0d769e1d32ca73ded8efa11d02831ee99512b64ee64d67099c224c4054ea95368fee5a473c75a7bfe4f63190feafd75452f967f0e1ed0f44ea0e326f0a5

1+1=10


하지만, 위와같은 1비트 가산기는 2비트나 3비트 등으로 확장을 할수가 없다.

예시로, 111+ 011 같은 걸 계산해본다면, 다음과 같다:


viewimage.php?id=3ea9d530e0&no=24b0d769e1d32ca73ded8efa11d02831ee99512b64ee64d67099c224c4054ea95368fee5a473c75a16984e6b1003e6fc856c06553e46bfe77bea448961be1985

눈치챘을 사람도 있지만, 그냥 1의 자리수에서 1비트 가산기를 사용하고, 

2의 자리수에서 1비트 가산기를 사용하고, 4의 자리수에서 1비트 가산기를 사용하면 끝이지만,


받아올림을 처리할 장치가 필요하다.

그래서 나오는 장치가 바로 전가산기이다.

다음은 전가산기의 도면이다:


viewimage.php?id=3ea9d530e0&no=24b0d769e1d32ca73ded8efa11d02831ee99512b64ee64d67099c224c4054ea95368fee5a473c75a7bfe4f63190feafd75452fc4290e4a87f11fa3e326f0a5

실제로 이 회로도를 토대로, 위의 XOR, AND, OR을 이용해서 전가산기를 만들수 있지만,

너무 회로가 커지고, 2비트, 3비트 등으로 확장이 어렵기 때문에, 다음과 같은 컴팩트한 전가산기가 있다.


총 3층으로 구성되어있기 때문에, 1층, 2층, 3층의 사진을 따로따로 올려서, 직접 만들어 볼수 있도록 하였다.

1층:

viewimage.php?id=3ea9d530e0&no=24b0d769e1d32ca73ded8efa11d02831ee99512b64ee64d67099c224c4054ea95368fee5a473c75a7bfe4f63190feafd75452f90280d1b82f61ea4e326f0a5

2층:

viewimage.php?id=3ea9d530e0&no=24b0d769e1d32ca73ded8efa11d02831ee99512b64ee64d67099c224c4054ea95368fee5a473c75a7bfe4f63190feafd75452fc329084ad5f94eafe326f0a5

3층(완성된 사진)

viewimage.php?id=3ea9d530e0&no=24b0d769e1d32ca73ded8efa11d02831ee99512b64ee64d67099c224c4054ea95368fee5a473c75a7bfe4f63190feafd75452fc27c0e4c87a31eaee326f0a5

여기서 왼쪽에서 들어오는 것이 받아올림되는것이고,

아래의 두개가 입력되는 값,

위로 나가는 값이 1의 자리, 오른쪽으로 나가는 것이 10의 자리이다.


전가산기의 확장은 그냥 위의 구조를 병렬로 나란히 연결해놓는 것이다.


4비트 가산기:

viewimage.php?id=3ea9d530e0&no=24b0d769e1d32ca73ded8efa11d02831ee99512b64ee64d67099c224c4054ea95368fee5a473c75a7bfe4f63190feafd75452f97755a1bd3f21aa0e326f0a5

여기서 적당히 램프를 이용해서 좀 나타내 보자면 다음과 같다.

viewimage.php?id=3ea9d530e0&no=24b0d769e1d32ca73ded8efa11d02831ee99512b64ee64d67099c224c4054ea95368fee5a473c75a7bfe4f63190feafd75452f9575091c80f94af3e326f0a5

가장 왼쪽의 것이 1, 순서대로 2,4 그리고 8의 자리이다.

각각의 전가산기에서 왼쪽 입력을 A, 오른쪽 입력을 B라고 해본다면,

A는 4의 자리와 1의 자리가 ON이므로 5,

B는 8,4, 그리고 2가 켜졌으므로 14이다.

다들 아시다시피, 5+14=19이다.


이제 위에 나타난 결과물이 2진법으로 된 결과물인데,

왼쪽부터 1, 2, 4, 8 그리고 16의 자리이다.

16, 2, 1이 켜졌으므로, 결과값은 19. 제대로 나타나는 것을 확인할 수 있다.


어차피 이딴걸 친구들한테 보여줘봤자, 걔네들은 2진법 읽을 줄 몰라서

이걸 10진법으로 이용하려면 좀 더 어려운 장치들이 필요하게 된다.


10진법으로 나타내는 것을 보고 넘어가기 전에, 뺄셈도 쉽게 할 수 있다는 것을 보여주고자 한다.


A-B는 다음과 같이 계산한다.

B의 모든 자리수를 반전시킨다.(이걸 B*라고 부르겠다)

그럼 A-B = A+B*+1 이다.

왜 그런지는 C언어 배워보면 안다.

한가지 예시를 보고 넘어가도록 하자.



viewimage.php?id=3ea9d530e0&no=24b0d769e1d32ca73ded8efa11d02831ee99512b64ee64d67099c224c4054ea95368fee5a473c75a7bfe4f63190feafd75452fc32a5b1b85a51df0e326f0a5

놀랍게도 A-B가 나오는 걸 볼 수있다.



위의 4비트 가산기에서 1의자리 전가산기에 받아올림을 넣어주고 (+1)

B의 입력에 모두 NOT 게이트를 통과시켜주면,(B -> B*)

다음과 같은 그림이 완성된다.

viewimage.php?id=3ea9d530e0&no=24b0d769e1d32ca73ded8efa11d02831ee99512b64ee64d67099c224c4054ea95368fee5a473c75a7bfe4f63190feafd75452fc07e0b1784a51ef2e326f0a5

A(왼쪽값)의 입력은 8,4가 켜졌으므로 12이고, B는 5를 입력한 것이다.

보면 알겠지만, 12-5=7 (0111) 이 잘 출력된 것을 확인해볼 수 있다.


이제 우리는 마인크래프트 내에서 덧셈과 뺄셈을 구현할 수 있다.

덧셈과 뺄셈은 이게 다다.

------------------------------------------

3. 2진법 -> BCD 변환 장치


그러나 우리가 통상 사용하는 10진법으로 나타내기 위해서는 좀 더 어려운 장치들이 필요하다.

그 중에서도 가장 쉬운 장치를 소개해보고자 한다.


위에 BCD라고 적혀 있어서 이게 뭐냐 설명해보자면,

십진법의 각 자리수를 이진법으로 나타내는 방식이다.

9027을 예시로 들어보자면, 9 =1001, 0=0000, 2= 0010, 7 = 0111이므로,

9027을 BCD로 나타내면 1001 0000 0010 0111 이렇게 되는 것이다.


실제 십진법을 다루는 것은 어렵고, 이 BCD를 이진법으로 바꾸는 것이

십진법을 이진법으로 바꾸는 것보다 더 쉬워서, 많은 이들이 BCD를 이용한다.


그래서, 결국 0-9의 숫자를 2진법으로 바꿀 수 있기만 하면 된다. 


먼저 4개의 줄을 긋는다.

가장 왼쪽부터 8, 4, 2, 1이다.

viewimage.php?id=3ea9d530e0&no=24b0d769e1d32ca73ded8efa11d02831ee99512b64ee64d67099c224c4054ea95368fee5a473c75a7bfe4f63190feafd75452f9278001682f01da2e326f0a5


viewimage.php?id=3ea9d530e0&no=24b0d769e1d32ca73ded8efa11d02831ee99512b64ee64d67099c224c4054ea95368fee5a473c75a7bfe4f63190feafd75452fc12d5b1d83f71da2e326f0a5

저건 십진법 입력이다. 왼쪽부터 9부터 시작해 오른쪽 끝이 1이다.


실수로 0을 깜빡하고 안넣어서, 다음그림에는 가장 오른쪽에 0을 집어넣었다.

viewimage.php?id=3ea9d530e0&no=24b0d769e1d32ca73ded8efa11d02831ee99512b64ee64d67099c224c4054ea95368fee5a473c75a7bfe4f63190feafd75452f96785b19d1a71cf4e326f0a5

위 그림과 같이 그 위에 교차로 줄을 쫙 긋는다.


viewimage.php?id=3ea9d530e0&no=24b0d769e1d32ca73ded8efa11d02831ee99512b64ee64d67099c224c4054ea95368fee5a473c75a7bfe4f63190feafd75452f90740b1ddfa748f7e326f0a5

이제 그냥 각 숫자들에 대응하는 이진수에 토치를 넣어주기만 하면된다.


위 그림에서 가장 앞에 보이는 9는 1001이므로, 8과 1의 라인에 토치를 설치하는 식.

6이라면 4랑 2에, 3이라면 2랑 1에 넣어주면 된다.


viewimage.php?id=3ea9d530e0&no=24b0d769e1d32ca73ded8efa11d02831ee99512b64ee64d67099c224c4054ea95368fee5a473c75a7bfe4f63190feafd75452f957f5b4dd2a549a1e326f0a5

윗 그림은 7을 출력하는 모습. 4, 2, 1이 켜져있다.



어차피 내용이 어려워가지고 제대로 읽은 사람이 있을란지는 모르겠지만, 끝까지 읽어줘서 고맙다.

이 갤러리에서 나랑 같이 계산기 만드는 놈이 늘었으면 좋겠다 ㅋㅋ


다음엔 2진법을 7-seg 디스플레이로 바꾸는거나 가져와야지

자동등록방지

추천 비추천

36

고정닉 12

0

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기
자동등록방지

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 말머리 제목 글쓴이 작성일 조회 추천
3007 설문 실제 모습일지 궁금한 미담 제조기 스타는? 운영자 25/05/05 - -
297138 공지 스티브 갤러리 이용 규칙 [5] Karn갤로그로 이동합니다. 24.07.24 11149 9
297155 공지 [공지용] 스티브 갤러리 정보글 모음집 [7] Karn갤로그로 이동합니다. 24.07.24 27874 3
193353 공지 갤에서 운영되는 서버 확인하고 함께 즐기자 ! ! [30] Karn갤로그로 이동합니다. 22.11.06 168561 134
256009 공지 [구매 가이드] 마인크래프트를 조금 더 싸게 구매해보자! [61] 어른이갤로그로 이동합니다. 23.11.20 67255 70
332334 공지 [ 신 문 고 ] [63] Karn갤로그로 이동합니다. 25.04.06 1404 0
297152 공지 스티브 갤러리 마인크래프트 개발 디스코드 [4] Karn갤로그로 이동합니다. 24.07.24 7229 3
336046 일반 집가서 마크하고싶네 ㅇㅇ(168.188) 13:32 35 0
336045 🧪모드 님들 항공학? 언제나옴 [2] ㅇㅇ(61.254) 13:24 76 0
336044 질문 베드락 렐름 관련 마켓플레이스 질문 ㅇㅇ갤로그로 이동합니다. 13:14 45 0
336043 질문 lootr모드 질문 ㅇㅇ(175.127) 12:59 122 0
336042 질문 프로미넌스 몇몇 버프 못 받음? [1] ㅇㅇ(220.125) 12:55 88 0
336041 일반 개인적으로 크로니클은 테크가 너무짧아서별로였음 [2] ㅇㅇ(168.188) 12:50 129 0
336040 🧪모드 ATM10 이기북딱벌 제거 가능? ㅇㅇ갤로그로 이동합니다. 12:31 146 0
336039 일반 베드락 유저인데 석재벽돌에 섞으면 어울릴만한 블럭이 뭐가있을까? [3] Syuregi갤로그로 이동합니다. 12:18 144 0
336038 일반 채팅 열때 부드럽게 열리는 모드도 있음? [2] ㅇㅇ(112.167) 12:03 186 9
336037 🧪모드 인퍼널 몹 초반에 만나니까 진짜 재앙이네 라뱐갤로그로 이동합니다. 11:49 102 10
336036 일반 글고보니 옛날 보트는 [1] ㅇㅇ(220.94) 11:48 120 10
336035 일반 뉴비 cte2 장비 질문 있어요!@! [5] ㅇㅇ(14.37) 11:38 105 0
336034 🧪모드 괜찮은 모드팩이 존재하나 [5] ㅇㅇ(119.206) 11:30 170 9
336033 ⛰️야 거친해류로 트램펄린 뛰는거 ㅈㄴ 재밌네 단풍잎체리피커갤로그로 이동합니다. 11:14 116 0
336032 일반 이거 왜 이럼 ? [4] ㅇㅇ(124.53) 11:06 195 0
336031 🧪모드 모든걸 잃고 태초로 . 090(58.239) 10:44 182 0
336030 일반 cte2 한패 잘되어있음? [10] ㅇㅇ(175.125) 10:33 151 0
336029 질문 서버 최적화 모드 넣으면 서버원도 받아야하나? [2] ㅇㅇ(118.235) 10:24 122 0
336028 📘정보 Eternity's Divide 영감 받아서 만든 맵이래 [1] ㅇㅇ(141.223) 10:20 129 9
336026 🧪모드 Beyond depth 재밌는데? [8] ㅇㅇ(119.206) 09:46 223 0
336025 🧪모드 내 상식이 박살난 야생 [17] 090(58.239) 09:39 264 0
336024 장타서 [BE] [5/7] PLUS 서버 1.21.80 업데이트 공지 [2] 헌팅헌팅갤로그로 이동합니다. 09:02 179 10
336023 📘정보 초간단 새로운 무료 망토 이벤트 진행중 [5] 오그마체인지갤로그로 이동합니다. 09:02 361 0
336022 일반 마크 아이패드에서 자바버전 할수있는방법 없어?? [3] ㅇㅇ(59.27) 08:23 123 9
336021 질문 셰이더키고 창모드로 하면 화면은 멈추지만 움직이거나 소리는 나옴 ㅇㅇ(222.112) 08:08 126 8
336020 질문 마인크래프트 모드 서버 질문 [2] ㅇㅇ(125.182) 07:43 97 0
336019 질문 마크 업데이트 할때마다 다운 받아둔 모드들도 다시 설치해야함? [1] ㅇㅇ(118.235) 07:35 99 0
336018 일반 마크 하는데 프레임 드랍이나 화면 뚝뚝 끊기는건 없는데 ㅇㅇ갤로그로 이동합니다. 07:30 143 8
336017 질문 2일째 서버 만드는거 때문에 정신나갈거같다.. 질문 하나만 [1] 포트포워딩(112.154) 06:40 165 0
336016 일반 아 gtnh 만우절버전 존나 답답허네 ㅇㅇ(175.199) 05:56 166 8
336015 🧱건축 신축 아파트 [2] ㅇㅇ(218.150) 05:06 258 1
336014 일반 딥시크로 모드 번역하는데 왤캐 편함? [1] ㅇㅇ갤로그로 이동합니다. 04:39 165 8
336013 일반 개구리불 팜 여기서 어떻게 더 효율을 높혀야 될까? [4] ㅇㅇ(220.94) 03:58 141 0
336012 일반 마크 무비 100만 달성..jpg [1] ㅇㅇ갤로그로 이동합니다. 03:25 346 0
336011 일반 이새기 뭐임? [2] 응애갤로그로 이동합니다. 03:10 290 8
336010 일반 여기알렉스왤케인기많음 ㅇㅇ(1.219) 03:05 178 0
336009 🧪모드 모드팩 청크 구분하는 블록 뭐로함? [2] Slomo갤로그로 이동합니다. 02:40 190 0
336008 질문 마크 질문있습니다 [1] 핑겅이(210.117) 02:38 97 8
336007 일반 Gpt가 개사기긴 하네 [1] ㅇㅇ(211.234) 02:34 256 8
336006 일반 이거 재미있어 보이네 ㅇㅇ(223.39) 02:27 131 8
336002 일반 프리즘에서 패브릭 설치 안되는데? ㅇㅇ(125.248) 01:42 117 0
336001 질문 마인콜로니 아공간 경비원 스크롤 썼는데 시발 새끼들 언제까지 따라댕김? [8] ㅇㅇ(49.170) 01:42 181 9
335999 일반 마을 짓고 있어 [2] Leopard갤로그로 이동합니다. 01:35 269 11
335998 일반 추첨 결과 [5] nambada_갤로그로 이동합니다. 01:35 365 0
335997 📘정보 베드락에디션 새로운 망토 뜸 ㅇㅇ(58.235) 01:24 273 0
335996 단타서 테스트 toronto.갤로그로 이동합니다. 01:16 97 0
335995 일반 마크 영화 볼만 함? [1] ㅇㅇ(115.138) 01:16 139 0
335994 질문 프로미넌스2 다른 모드 못넣나? dd(121.137) 00:59 111 0
335993 일반 이런 씨 홈런1볼 어디갔노? 내가 대신 뿌림 [12] nambada_갤로그로 이동합니다. 00:54 523 0
335991 일반 프로미넌스2 경험치 50프로에서 안 올라가는데 [4] 노루망고상륙작전갤로그로 이동합니다. 00:26 234 0
뉴스 안재홍, ‘SNL 코리아7’ 출연…‘은퇴 밈’ 종지부 찍는다 [공식] 디시트렌드 05.06
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2