Counter, Shift Register

김민욱·2025년 6월 14일

Counter

clock과 reset을 input으로 받고 NN-bit output Q를 내보내는 sequential arithmetic circuit이다.
매 clock edge마다 출력이 증가한다.

NN-bit counter는 reset가능한 레지스터와 adder로 구성된다.
매 cycle마다 counter는 레지스터에 저장된 값에 1을 더한다.
컴퓨터의 Program Counter(PC)에도 사용된다.
NN-bit counter의 msb는 2N2^N 사이클마다 토글된다. 필요에 따라 clock cycle을 2N2^N으로 나누어 cycle을 느리게 만들 수 있다.

예를들어, 내장 clock이 50MHz인 시스템에 24-bit counter로 신호를 만들어 LED가 깜빡이는 정도를 인간의 눈으로 볼 수 있게 만들 수 있다.

  • fout=fclk/2N\mathsf{f_{out}=f_{clk}}/2^N
  • 50×106Hz/224=2.98Hz50\times 10^6\mathsf{Hz}/2^{24}=2.98\mathsf{Hz}

Counter를 이용해 임의의 주파수를 생성하는 장치를 DCO(Digitally Controlled Oscillator)라고 한다.
매 cycle마다 1 대신 pp를 더하는 NN-bit counter가 있다고 하자.

이로 인해 발생하는 주파수는 fclkp/2N\mathsf{f_{clk}}*p/2^N이다.

예제. fclk=50MHz\mathsf{f_{clk}}=50\mathsf{MHz}인 clock이 있다. 주파수를 200Hz200\mathsf{Hz} signal로 바꿔라.

fout=50MHzp/2N=200Hz\mathsf{f_{out}}=50\mathsf{MHz}*p/2^N=200\mathsf{Hz}

p/2N=200/50 MHzp/2^N=200/50\ \mathsf{MHz}

  • N=24N=24일 경우, p67p\approx67, \Rarr fout199.676 Hz\mathsf{f_{out}}\approx199.676\ \mathsf{Hz}

  • N=32N=32일 경우, p17179p\approx 17179, \Rarr fout199.990 Hz\mathsf{f_{out}}\approx 199.990\ \mathsf{Hz}

NN이 커질 수록 더 정밀한 제어가 가능하지만 그만큼 하드웨어를 더 많이 사용한다.

Shift Register

매 clock edge마다 새로운 bit를 shift in/out 한다.

Shift Register는 직렬 입력(Sin)(S_{in})을 병렬 출력(Q0:N1)(Q_{0:N-1})로 변환할 수 있다.

Load 신호가 1일 때는 일반적인 NN-bit 레지스터지만, Load 신호가 0이 되면 Shift Register로써 수행된다.
SinS_{in}Q0:N1Q_{0:N-1}의 serial-to-parallel converter로도 사용이 가능하고 D0:N1D_{0:N-1}SoutS_{out}의 parallel-to-serial converter로도 사용이 가능하다.


<참고자료>
Harris & Harris, Digital Design and Computer Architecture, RISC-V Edition, 2022.

0개의 댓글