
| ① 4진 카운터의 상태도 |
|---|
![]() |
| ○ 클럭 신호가 인가될때 마다 00 → 01 → 10 → 11 처럼 상태가 변하게 된다. |
| ② 4진 카운터의 상태 여기표 |
|---|
![]() |
| ○ 현재상태와 다음상태가 주어졌을때, 필요한 카운터의 D플립플롭 입력은 위와 같다. |
| ③ D플립플롭의 여기표 |
|---|
![]() |
| ○ 현재상태와 다음상태에 따른, D플립플롭의 값 |
| ④ 카르노맵을 이용하여, 플립플롭 입력 간소화 | |
|---|---|
| Dₐ | Db |
![]() | ![]() |
| Dₐ = A⊕B | Db = 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) 으로 순차적으로 증가하는 것을 확인할 수 있음 |
| ① 10진 카운터의 상태도 |
|---|
![]() |
| ○ 클럭 신호가 인가될때마다 상태가 변하게 된다. |
| ● 최대 1001 (9) 값을 가지며, 이후 다시 0000 (0)이 된다. |
| ② 10진 카운터의 상태 여기표 |
|---|
![]() |
| ○ 현재상태와 다음상태가 주어졌을때, 필요한 카운터의 D플립플롭 입력은 위와 같다. |
| ③ D플립플롭의 여기표 |
|---|
![]() |
| ○ 현재상태와 다음상태에 따른, D플립플롭의 값 |
| ④ 카르노맵을 이용하여, 플립플롭 입력 간소화 | |
|---|---|
| D(A) = AD'+BCD | D(B) = BC'+BD'+B'CD |
![]() | ![]() |
| D(C) = CD'+A'C'D | D(D) = D' |
![]() | ![]() |
| ⑤ 논리 다이어그램 작성 |
|---|
![]() |
| ○ 빨간색 선: D(A)의 출력과 관련된 선 |
| ● 주황색 선: D(B)의 출력과 관련된 선 |
| ○ 노란색 선: D(C)의 출력과 관련된 선 |
| ● 초록색 선: D(D)의 출력과 관련된 선 |
| ⑥ 시뮬레이션 결과 |
|---|
![]() |
| ○ 클럭이 상승엣지가 될때마다 OUTPUT의 값(hex)이 0 → 1 → 2 → ... → 9 로 순차적으로 증가하는 것을 확인할 수 있음 |
입력: 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번에서 작성하였던 카운터의 설계원리 방식과는 다른 방식임 |