본문 바로가기

컴퓨터구성

집적 회로(IC) - register, counter

앞서 플립 플롭을 1개의 bit를 기억하는 장치라고 했다. 이런 플립 플롭을 여러 개 연결해서 n개의 bit를 기억하게 만든 장치를 레지스터(register)라고 한다.


여러 개의 플립 플롭들이 연결되어 있으니 기능들을 조금 넣어 응용하고 싶다. 즉, 복잡해지기 시작한다..


우선 로드기능부터 넣어보도록 하겠다. load값이 1이라면 외부에서 값이 들어오고, 0이라면 원래 있던 값을 그대로 유지한다. 참고로 이런 기능을 parallel load라 한다.


우선 기본적인 회로도는 위 그림과 같다. 그리기 정말 귀찮았다..


자 그럼 load가 1일때를 살펴보자. 우선 노란색으로 선택되어 있는 선들이 1을 가지는 선들이다. 이에 유의해가며 보면 된다. input값이 1이면 출력도 1로 됨을 알 수 있다.


이번엔 load가 0일때이다. 마찬가지로 노란색으로 선택되어 있는 선들이 1을 가지는 선들이다. input값과는 상관없이 기존의 값들에 의해 결정됨을 알 수 있다.

음.. 여기 예시에서 하나는 input값과 Q값을 다르게 했어야했는데.. 다시 만들어오긴 귀찮으니 스킵하겠다.


위 내용을 식으로 만들어보면 간단하게 D = load I + load' A 가 되겠다.

jk플립플롭이어도 같은 원리로 만들 수 있으나 생략하겠다..


위와 같은 원리로 4x1 MUX를 사용해 4가지 기능을 가진 register도 만들 수 있다. 기능으로는 뭐.. 상태 유지, 왼쪽으로 shift, 오른쪽으로 shift, parallel load 등이 있을 수 있겠다. shift 기능은 Q값을 위나 아래 즉, 다른 MUX에 넣어주는 식으로 하면 된다.



마지막으로 카운터(counter)에 대해 알아보도록 하자.

말 그대로 숫자를 세주는 그런 걸 뜻한다.


counting rule은 다음과 같다.

1. 가장 오른쪽 비트는 무조건 바뀐다.

2. 나머지 비트들은 오른쪽 비트가 1이라면 바뀐다.


rule이라고 해서 적어놓으니 뭔가 어려워보이지만 사실 +1씩 하는 거라 생각하면 된다.


4bit 카운터는 위 회로와 같다. 시뮬레이션 해보면 0~15까지 1씩 증가됨을 확인할 수 있다.

이 때 위 사진처럼 같은 clock을 가지는 것을 동기화 counter라 하고 다른 clock을 가지면 ripple counter라고 한다.


얘도 레지스터와 마찬가지로 몇가지 기능들을 추가할 수 있다. 예를 들자면 clear기능, load기능 등이 있겠다.

clear야 당연히 0으로 만드는 거고 load는 10진 카운터에서 5부터 시작하는 등등 시작값을 조정할 수 있다.


같은 원리니까.. 회로를 그려오진 않겠다..


기능이 포함된 회로 그려라 !! 하면 시간이 좀 많이 걸리거나 못그릴 것 같긴 한데.. 어쨌거나 원리는 이해했다. 위 회로들은 다 작동을 확인한 회로들이니 아마 맞을 것이다.

'컴퓨터구성' 카테고리의 다른 글

메모리 - RAM, ROM  (0) 2020.05.18
집적 회로(IC) - MUX  (0) 2020.04.20
순서 회로 설계, 디코더  (0) 2020.04.10
조합 회로, 순서 회로  (0) 2020.04.06
식의 간소화 - 카르노맵  (2) 2020.04.01