본문 바로가기
2학년 2학기/컴퓨터 구조

2.6 Binary Counters(2) - Binary counter with parallel load

by print_soo 2024. 9. 29.

Binary counter with parallel load

: Clear, Load, Increment(Count)의 값에 따라 서로 다른 연산을 하는 회로

 

 

 

 

 

 

 

 

 

1. Function 구하기



 

2. funtion table 작성하기

 

각각 Clear, Load, Increment에 대해 각 값들의 변화에 따라서 어떤 연산을 하는지 살펴보자.

 

Clear

Clear가 1일 때 Load, Increment의 값과 상관 없이 J = 0 + 0 = 0, K = 1 + 0 + 0 = 1으로 J = 0, K = 1이 된다.

따라서 Clear가 1일 때 J = 0, K = 1 이기 때문에 출력값은 모두 0으로 바뀐다.

 

Clear가 0일 때는 Load, Increment의 값에 영향을 받는다. 따라서 우선 Load = 1인 경우를 살펴 보자.

 


Load(Clear = 0)

Load가 1일 때를 살펴보자. 

 

J(0) = 1 * 0 * I + 1 * 1 * I(0) = 0 + I(0) = I(0)

K(0) = 0 + 0 * 0 * I + 1 * 1 * I(0)' = I(0)'


J(1) = A(0) * ( 1 * 0 * I) + 1 * 1 * I(1) = I(1)

K(1) = 0 + A(0) * (1 * 0 * I)+ 1 * 1 * I(1)' = I(1)'


J(2) = A(0) * A(1) * ( 1 * 0 * I) + 1 * 1 * I(2) = I(2)

K(2) = 0 + A(0) * A(1) * (1 * 0 * I)+ 1 * 1 * I(2)' = I(2)'


J(3) = A(0) * A(1) * A(2) * ( 1 * 0 * I) + 1 * 1 * I(3) = I(3)

K(3)0 + A(0) * A(1) * A(2) * (1 * 0 * I)+ 1 * 1 * I(3)' = I(3)'

 

 

I(0)가 0이면 J(0) = 0, K(0) = 1이 되어 Q는 0이 되고, I(0)가 1이면 J(0) = 1, K(0) = 0이 되어 Q는 1이 된다.

즉, D 플립 플랍과 똑같이 입력이 0이면 0, 1이면 1으로 출력된다, 

 

 

Clear가 0, Load가 0일 때는 Increment의 값에 영향을 받는다. 따라서 우선 Increment = 1인 경우를 살펴 보자.


Increment(Clear = 0, Load = 0)

Increment가 1일 때를 살펴보자. 

 

J(0) = 1 * 1 * 1 + 1 * 0 * I(0) = 0 + I(0) = 1

K(0) = 0 + 0 * 0 * 1 + 1 * 0 * I(0)' = 1


J(1) = A(0) * ( 1 * 1 * 1) + 1 * 0 * I(1) = A(0)

K(1) = 0 + A(0) * (1 * 1 * 1)+ 1 * 0 * I(1)' = A(0)


J(2) = A(0) * A(1) * ( 1 * 1 * 1) + 1 * 0 * I(2) = A(0) * A(1)

K(2) = 0 + A(0) * A(1) * (1 * 1 * 1)+ 1 * 0 * I(2)' = A(0) * A(1)


J(3) = A(0) * A(1) * A(2) * ( 1 * 1 * 1) + 1 * 0 * I(3) = A(0) * A(1) * A(2)

K(3)  0 + A(0) * A(1) * A(2) * (1 * 1 * 1)+ 1 * 0 * I(3)' = A(0) * A(1) * A(2)

 

위 형태는 Counter이다.

 

 

 

 

 

Increment(Clear = 0, Load = 0)

Increment가 0일 때를 살펴보자. 

 

J(0) = 1 * 1 * 0 + 1 * 0 * I(0) = 0 + I(0) = 0

K(0) = 0 + 0 * 0 * 0 + 1 * 0 * I(0)' = 0


J(1) = A(0) * ( 1 * 1 * 0) + 1 * 0 * I(1) = 0

K(1) = 0 + A(0) * (1 * 1 * 0)+ 1 * 0 * I(1)' = 0


J(2) = A(0) * A(1) * ( 1 * 1 * 0) + 1 * 0 * I(2) = 0

K(2) = 0 + A(0) * A(1) * (1 * 1 * 0)+ 1 * 0 * I(2)' = 0


J(3) = A(0) * A(1) * A(2) * ( 1 * 1 * 0) + 1 * 0 * I(3) = 0

K(3)  0 + A(0) * A(1) * A(2) * (1 * 1 * 0)+ 1 * 0 * I(3)' = 0

 

이 상태는 값이 변하지 않는 것이다.

 

 


 

 

따라서 표를 보면 아래와 같다.

 

Clear: 0, Load: 1일 때의 값 저장의 의미는 출력 값이 입력 값으로 변견된다는 의미이다. 

기존에 0 0 0 0으로 입력이 되어 있다면 Load가 1일 때, 출력이  0 0 0 0으로 변경된다.