본문 바로가기

하드웨어/Ben eater

8비트 컴퓨터 만들기 Ben Eater Part.2(register) [1,2]

https://www.youtube.com/watch?v=QzWW-CBugZo


Register 파트에서 만들 내용

목표로 하는 8비트 컴퓨터 전체 내용이다.

led로 각 레지스터의 값을 표시한다.

가운데에 긴 줄로 8개 비트를 다루는 기다란 버스가 있고, 그 버스를 통해서 여러 개의 저장소로 값을 전달한다.

레지스터 A에서 값을 버스로 보내고, 레지스터 B에서 버스의 값을 받아오는 식이다.

이번 register 파트에서는 버스로 값을 보내고 버스에서 값을 받아오고, 그러한 값을 저장하는 레지스터를 만든다.


도식화

가볍게 도식으로 표현한 그림

이번 파트에서 다룰 내용만 단순히 도식으로 표현하면 위와 같다. 

각각의 레지스터에는 Clock이 연결되어 있고, Load와 Enable 시그널이 있다. Load가 High일 경우 버스에서 값을 받아오며, Enable이 High일 경우 버스로 값을 보낸다. 

Enable이 여러 개의 레지스터에서 켜질 경우, 버스에서 값이 충돌될 수 있다는 문제를 언급했다..


 

레지스터 내부 원리

레지스터의 출력 게이트

위 사진은 레지스터의 출력과 관련된 내용이다.

레지스터에서 어떤 흐름이 있든, 결국에는 0과 1이 저장된다.

1일 때 출력게이트의 위 쪽 전력이 들어온다. 그리하여 5V와 저항으로 구성된 회로가 OUTPUT과 연결된다.

반대로 0일 때는 출력게이트 아래 쪽 전력이 들어와서 OUTPUT은 접지된다. 

 

논리 값이 0일 때와 1일 때

 

그리하여 1일 때는 출력으로 전력을 '내보내게' 되며 이를 Source라고 한다.

0일 때는 전력을 '받아들이며'이를 Sink라고 한다. Sink는 완전히 전선이 끊어진 상태와는 비교된다.

 

출력게이트에 0과 1만 있기에는 부족한 부분이 있다. Enable 하고 싶지 않은 경우라면??

쓰지 않는 레지스터의 출력을 0으로 뒤에는 Sink는 전력을 받아들이며 하나의 역할을 한다.

 

출력 게이트 업그레이드

 

그리하여, Enable이라는 신호를 추가하고 Enable이 없을 때는 전선 자체를 끊어버린다.

IN 내용은 앞의 설명을 단순화 한 것이다.