JC LAB


이번 포스팅에서 설명할 부분은 동기식 회로입니다.



동기식 회로 (Synchronous circuit)


동기식 회로는 아래와 같이 여러개의 플립플롭의 클럭이 한 신호로 묶여있는 것을 말합니다. 비 동기식의 경우 클럭이 개별로 연결되어 있습니다.


동기식 회로는 클럭 신호가 들어올 때마다 값이 변하여 카운터 회로를 설계하여 사용할 수 있습니다.


비동기식의 경우도 가능하지만 동기식이 설계하기에 편리하여 해당 프로젝트에서는 동기식 회로를 사용합니다.


더 자세한 설명은 동기식, 비동기식 회로를 설명하는 글을 찾아보시거나 디지털 공학을 공부하는걸 추천합니다.



해당 시계 프로젝트는 시계, 카운터, 스톱워치 등 세가지 기능을 수행합니다.


이 세가지 기능을 한 디스플레이에 표현하기 위해서는 MUX(멀티플렉서)를 통해서 신호를 선택하여 입력하여야 합니다.


멀티플렉서는 추후 설명하겠지만 간단히 말해서 여러개의 신호 선중에서 한가지를 골라 출력해주는 역할을 합니다.


이때 이 선을 선택하기 위해서 select 신호를 넣어주어야 합니다. 예를들어 4가지 신호중 3번째 신호를 선택하고 싶다면 2비트의 셀렉트 신호로 10 신호를 넣어 3을 선택합니다.


본론으로 돌아와 세가지 기능을 멀티플렉서로 출력을 하기 위해서는 현재 상태(시계, 타이머, 스톱워치)가 무엇인지 선택선으로 입력하여야 합니다.


이 세가지 상태를 만들기 위해서 동기식회로로 2비트의 신호를 카운트하여 00일경우 시계, 01일 경우 타이머, 10일경우 스톱워치 신호를 만들어줍니다.


아래부터는 해당 프로젝트에 3상태를 표시하기 위해 사용된 동기식 카운터의 설계 과정입니다. 자세한 설계방법은 디지털 공학을 공부하거나 동기식 회로 설계 방법을 찾아보시길 추천합니다.


3가지 상태표를 작성합니다.


상태표를 바탕으로 다음상태를 유도합니다. 해당 프로젝트에서는 JK Flip Flop을 사용하여 설게하였기에 JK의 여기표를 바탕으로 설계합니다.


카르노 맵에 옴겨 식을 정리합니다.


KA와 KB는 1 신호를 넣어도 될것 같습니다.


카르노 맵에 따라서 회로를 설계 합니다.


시뮬레이션을 돌리면 아래와 같이 클럭 신호마다 세가지 상태가 변하는 것을 확인할 수 있습니다.


아래는 회로도에 사용한 모습입니다. 왼쪽은 각 상태를 표현하기 위한 LED입니다.