본문 바로가기

하드웨어/Ben eater

8비트 컴퓨터 만들기 Ben Eater Part.5(PC) [1]


Binary counter

Toggle 기능

 

저번 포스팅에서 Master-slave JK Flip-flop에 대해 다뤘다. 그 중 JK Flip-flop의 toggle만을 이용한다.

위 사진에서 toggle을 구현했다. clock의 falling edge에서 전구는 toggle된다.

전구 하나의 관점에서 볼 때 clock의 1/2 속도로 깜빡인다.

1/2 속도로 깜빡인다는게 핵심포인트다. 정말 정말 참신해서 깜짝놀랐다.

 

JK Flip-flop 4개를 사용

 

첫 번째 전구는 1/2 속도로 깜빡인다. 그 전구를 다시 다른 flip-flop의 clock으로 넣어주면 1/4 속도로 깜빡인다. 

clock이 drop 될 때 상태가 변하므로, 첫 번째 전구가 꺼질 때마다 두 번째 전구의 상태가 달라진다.

다시 두 번째 전구의 상태를 세 번째 flip-flop의 clock으로, 마찬가지로 네 번째도 하면 0~15의 binary counter가 완성된다.

 


Program Counter

8bit 컴퓨터 구조도

 

Binary Counter을 이용해서 Program Counter(PC)를 제작한다. 

PC는 RAM에 들어있는 명령어의 주소를 나타내는 역할을 한다.

즉, 매번 clock 마다 변하는 게 아니라 다음 명령이 필요해질 때만 counter가 작동해야 한다.

그러기 위해 CE라는 플래그가 있다. CE 플래그가 High 일 때만 counter가 작동한다. 그 외에도 jump를 위한 J 플래그, 버스로의 out을 위한 CO 플래그가 필요하다.

 

DM74LS163A 회로도

 

Program Counter는 Binary Counter의 원리로 제작된다. Master-slave JK flip-flop 4개가 이용된 DM74LS163A Chip을 이용하는데, 관련 자세한 원리는 설명되어 있지 않다. 그냥 위 회로도 봐도 충분히 이해될 거 같기도 하다.

 

DM74LS163A pin

 

위 사진 보면 알 수 있듯, LOAD, ENABLE 플래그가 있다. CO 플래그는 지금까지 늘 이용해왔던 tri-state buffer 이용해주면 딱이겠다.


 

마무리

완성된 모습

 

PC는 chip 이용해주면 끝이라. 

아주 간단하다.