본문 바로가기

University curriculum/[Course] Digital Engineering

[디지털 공학(20)] Asynchronism Counter(비동기 카운터)_순서논리회로(2)

반응형

 


안녕하세요.

이번 포스트에서는 순서논리 회로중 증감을 세는 카운터에 대해 알아보겠습니다.


 

 

순서논리 회로에는 다양한 내용이 있습니다. 필요에 따라 아래 글들도 참고해보세요~!!~

1. Latch(래치)와 Flip-flop(플립플롭)

https://semicircuit.tistory.com/37

2. 비동기 카운터

https://semicircuit.tistory.com/38

3. 동기 카운터

https://semicircuit.tistory.com/39

4. 불규칙 카운터

https://semicircuit.tistory.com/40

5. State Machine 설계

https://semicircuit.tistory.com/41

6. UP/DOWN Counter

https://semicircuit.tistory.com/42

7. 시프트 레지스터

https://semicircuit.tistory.com/43

 

 

 

※1. 카운터의 정의

1. 종류

⓵ (클럭의 사용에 따른) : 비동기 카운터( 처음 J-K 플립플롭만 Clock신호를 받음) / 동기 카운터 모든( J-K플립플롭에 Clock신호를 받음)

⓶ (수의 변화에 따른) : Up카운터(0,1,2,3...) / Down카운터(내림차순 ....3,2,1,0)

⓷ (허용 범위(모듈러스)에 따른) : 4진(0~3), 8진(0~7), 10진(0~9), etc...

 

2. 사용

: 수를 세는데 사용되는 하드웨어 디지털 회로, 클럭 펄스가 하나씩 인가될 때마다 미리 정해진 순서대로 상태가 반복되는 순차회로이다.

=> 입력되는 클럭의 수를 센다.

 

3. 특징

: 7-Segment를 통하여 다이오드에 표시되는 숫자로 변환하여 인간이 알아볼 수 있는 정보로 변환이 가능하다.

높은 주파수를 낮은 주파수로 바꿔주는 기능을 하여 ‘분주기’라고도 한다. => n단의 카운터회로는 클럭주파수를 1/2n의 신호로 반환 한다.

=> ex) clock의 주파수가 16MHz일 때, Q0는 8MHz, Q1은 4MHz Q2는 2MHz의 주파수를 가지고 있다.

 

▶4. 사용 소자와 개수

:ex) N진 카운터

⓵ 나타내는 숫자 N개, 범위(모듈러스)가 0~(N-1)

⓶ 비트수 : 2^(n-1)<N<=2^n에서 => 비트수 n개 => n비트 카운터

⓷ J-K플립플롭의 개수 : n개

⓸ 출력 개수 = F/F개수

 

 

 

 

 

※2. 비동기 카운터

-> 클록은 첫 FF0에 인가하고, 다음 FF들은 앞단의 출력(Q)을 입력 받는다. (비동기화의 특징)

-> J-K F/F에서 입력이 모두 ‘1’이면 출력이 토글(반전)되므로 FF0에 들어가는 Clock은 모두 HIGH(1)이다.

 

1. 비동기 카운터 구분

⓵ Clock에 버블 유무 : 버블이 붙지 않으면 Raising edge operation, 버블이 붙으면 Falling edge operation

⓶ Q의 반전 유무 : Rasing edge 동작시 => Q' 사용-up 카운터, Q 사용-Down 카운터

Falling edge 동작시 => Q' 사용-Down 카운터, Q 사용-Up 카운터

 

ex1) Rasing edge operation 하는 4진 up 카운터

=> FF 2개 사용 => 4진 카운터

=> Clock에 버블 붙지 않음 => Rasing edge에서 동작

=> Q‘의 출력을 입력 받음 => Up카운터

=> Rasing edge에서 작동함.

=> Up카운팅

 

 

 

 

ex2) Rasing edge operation 하는 4진 Down 카운터

=> FF2개 사용 => 4진 카운터

=> Clock에 버블 붙지 않음 => Rasing edge에서 동작

=> Q의 출력을 입력 받음 => down카운터

=> Down카운팅

 

 

2. 비동기 카운터의 전파지연(propagation delay)

- 자연계 (실제로) 신호를 플립플롭이 받으면서 시간차(delay)가 발생한다.

- 이때 시간차에 의하여 발생하는 정의되지 않는 값을 glitch(글리치)라고 한다.

- 발생시기 : FF0에서 Clock을 입력 받을 때(동기식 카운터도 동일),FF에서 나온 출력을 다음의 FF가 받을 때(비동기식 카운터만 해당)

 

즉 동기식 카운터 : 첫 번째 J-K와 clock에서만 propagation delay 발생 => glitch 적음

비동기식 카운터 : FF의 개수와 propagation delay 비례

=> 이유 : 비동기식은 클럭의 입력이 앞단의 FF의 출력으로 입력 받아 플립플롭의 수와 비례하여 더 많은 propagation이 발생하여 glitch가 더 커진다.

 

이처럼 앞단과 뒷단이 연결되어 각 단이 동시에 변화하지 않는 것을

=> 리플카운터(Ripple Counter)라고한다.

cf) Quartus tool에서도 기존(Run function Simulation)이 아닌 Run

Timming Simulation을 하면 시간차를 타이밍도에서 볼 수 있다.

 

 

3. J-K F/F의 Preset, Clear

⓵ Preset이 0(Low)이면 출력(Q)가 무조건 1(HIGH)

⓶ Clear가 0(Low)이면 출력(Q)가 무조건 0(Low)

 

 

 

▶4. Clear 단자를 이용하여 2^(n-1)<N<2^n 진 카운터 만들기

- 2^(n-1)<N<2^n의 경우 2^n의 카운터에서 일부 절단 시퀀스(truncated sequence)를 한다. ex) 10진 카운터는 1010에서 clear(절단,리셋)시킨다.

- Q0 Q1 Q2 Q2에서 Q0이 LSB, Q3가 MSB이다.

- 리셋 되어야 하는 부분에서 HIGH가 되는 FF의 Q를 NAND의 입력에 연결하고 NAND의 출력부는 모든 F/F의 Clear단자와 연결한다.

(2진수로 바꿨을 때 1의 개수 = NAND의 입력 개수)

이처럼 부분적 decoding(Q1' Q2')을 : partial 디코딩이라고한다. <=> Full 디코딩

 

ex)비동기 10진 카운터

 

 

- 0~9까지의 모듈러스만 가지는 회로가 구성되었다. ( glitch는 계속 발생하고 있음)

 

 

반응형