논리회로 설계 및 실험 5주차

Minseok Jo·2024년 10월 4일
post-thumbnail

[5주차 : 카운터와 메모리에 대한 이해]


0. 카운터 설계 원리

1) 4진 카운터

① 4진 카운터의 상태도
○ 클럭 신호가 인가될때 마다 00 → 01 → 10 → 11 처럼 상태가 변하게 된다.

② 4진 카운터의 상태 여기표
○ 현재상태와 다음상태가 주어졌을때, 필요한 카운터의 D플립플롭 입력은 위와 같다.

③ D플립플롭의 여기표
○ 현재상태와 다음상태에 따른, D플립플롭의 값

④ 카르노맵을 이용하여, 플립플롭 입력 간소화
DₐDb
Dₐ = A⊕BDb = B'

⑤ 논리 다이어그램 작성
※ Bus Node 사용 방법
① Output Pin을 하나 설치하고, 핀의 이름을 Output[1..0] 형식으로 변경
② 상단의 Tool Bar에서 두꺼운 선 모양의 Orthogonal Bus Tool을 클릭하여 Output Pin과 연결 시킨 후, Bus 선을 우클릭하여 Properties에 들어간 후, Name을 result[1..0] 형식으로 변경
③ D플립플롭의 출력 선을 각각 ②과정에서 생성한 Bus Node와 연결(얇은 선으로)
④ D플립플롭의 각각의 출력선의 이름은 result[n] 형식으로 변경 → 위의 경우 출력A가 2의자리 비트, 출력B가 1의자리 비트가 되어야 하므로 DFF(A)의 출력이 result[1], DFF(B)의 출력이 result[0]이 되도록 하였음
▶ 이처럼 출력핀 이름, Bus Node 이름, Bus Node에 연결되는 출력선의 이름을 모두 변경해주어야 오류가 발생하지 않음.

⑥ 시뮬레이션 결과
○ 클럭이 상승엣지가 될때마다 OUTPUT의 값이 00 (0) → 01 (1) → 10 (2) → 11 (3) 으로 순차적으로 증가하는 것을 확인할 수 있음



2) 10진 카운터

① 10진 카운터의 상태도
○ 클럭 신호가 인가될때마다 상태가 변하게 된다.
● 최대 1001 (9) 값을 가지며, 이후 다시 0000 (0)이 된다.

② 10진 카운터의 상태 여기표
○ 현재상태와 다음상태가 주어졌을때, 필요한 카운터의 D플립플롭 입력은 위와 같다.

③ D플립플롭의 여기표
○ 현재상태와 다음상태에 따른, D플립플롭의 값

④ 카르노맵을 이용하여, 플립플롭 입력 간소화
D(A) = AD'+BCDD(B) = BC'+BD'+B'CD
D(C) = CD'+A'C'DD(D) = D'

⑤ 논리 다이어그램 작성
○ 빨간색 선: D(A)의 출력과 관련된 선
● 주황색 선: D(B)의 출력과 관련된 선
○ 노란색 선: D(C)의 출력과 관련된 선
● 초록색 선: D(D)의 출력과 관련된 선

⑥ 시뮬레이션 결과
○ 클럭이 상승엣지가 될때마다 OUTPUT의 값(hex)이 0 → 1 → 2 → ... → 9 로 순차적으로 증가하는 것을 확인할 수 있음


1. 10진 카운터 2개를 사용하여 100진 카운터를 설계

입력: CLK, Reset
출력: [3:0]CNT100, [3:0]CNT10
CNT10은 0~9의 값(1의 자리수)을 의미하도록 설계
CNT100은 10의 배수값(10의 자리수)을 의미하도록 설계


1. 설계 방안
① CNT10은 매 클럭 신호마다 1씩 증가하도록 작성 (기본 카운터 동작)
② CNT100은 CNT10이 9→0이 되는순간 증가하도록 작성 (일의자리가 0이되면 → 십의자리가 1증가)
③ CTN10에서 9→0이 될때 CNT100에 클럭 신호가 인가되도록 함

2. 논리 다이어그램 작성
○ 주의사항: Bus Node와 Bus Node가 만날때는, Result[7..4]와 Result[3..0]처럼 다른 수평선상에 위치하도록 해야한다. (같은 라인에 위치할경우, Bus Node가 합쳐져버림)
● D플립플롭의 사용이유: 1의자리 카운터가 9→0으로 바뀌면, 그 값을 다음 CLK신호때 10의자리의 CLK 신호로 인가되도록 (9→0)값을 지속하여 가지고 있는 역할을 한다.

3. 시뮬레이션 결과
○ CLK 신호가 상승엣지가 될때마다, 카운터의 Output의 값이 1씩 증가함을 알 수 있다.
● 이는 앞서 0번에서 작성하였던 카운터의 설계원리 방식과는 다른 방식임


0개의 댓글