관리 메뉴

드럼치는 프로그래머

[시스템분석및설계] 11,12장 3비트 2진 카운터, 3비트 시프트 레지스터 결과보고서 본문

★─Multi Media/☆─2학년 2학기

[시스템분석및설계] 11,12장 3비트 2진 카운터, 3비트 시프트 레지스터 결과보고서

드럼치는한동이 2008. 3. 11. 00:35

◎ 실험 목적

3비트 2진 카운터3비트 시프트 레지스터의 동작을 VHDL로 기술하고, 시뮬레이션을 통해 동작을 검증한다.

▶ 추가로 3비트 up-down 카운터의 동작을 VHDL로 기술하고, 시뮬레이션을 통해 동작을 검증한다.

 

◎ 실험 장비

▶ Xilinx ISE

▶ ModelSIM

▶ Rov-Lab 트레이닝 키트

 

◎ 실험 순서

▶ 3비트 2진 카운터

① 3비트 2진 카운터의 동작을 VHDL로 기술

사용자 삽입 이미지

② TestBenchWaveform으로 시뮬레이션
사용자 삽입 이미지

③ 트레이닝 키트로 동작 검증

사용자 삽입 이미지
[ pr_b = '0' : q = "111" ]

사용자 삽입 이미지
[ clr_b = '0' : q = "000" ]

사용자 삽입 이미지
[ clk'event and clk='0' : q = "000" ]

사용자 삽입 이미지
[
clk'event and clk='1' : q = "001" ]

사용자 삽입 이미지
[ clk'event and clk='1' : q = "010" ]

사용자 삽입 이미지
[
clk'event and clk='1' : q = "011" ]

사용자 삽입 이미지
[ clk'event and clk='1' : q = "100" ]

사용자 삽입 이미지
[
clk'event and clk='1' : q = "101" ]

사용자 삽입 이미지
[ clk'event and clk='1' : q = "110" ]

사용자 삽입 이미지
[
clk'event and clk='1' : q = "111" ]

사용자 삽입 이미지
[ clk'event and clk='1' : q = "000" ]


▶ 3비트 시프트 레지스터

① 3비트 시프트 레지스터의 동작을 VHDL로 기술

사용자 삽입 이미지

② TestBenchWaveform으로 시뮬레이션
사용자 삽입 이미지

③ 트레이닝 키트로 동작 검증

사용자 삽입 이미지
[ pr_b = '0' : q = "111" ]

사용자 삽입 이미지
[ clr_b = '0' : q = "000" ]

[ clk'event and clk='1' ]
사용자 삽입 이미지
[ d_in = '1' : q = "001" ]

[ clk'event and clk='1' ]
사용자 삽입 이미지
[ d_in = '0' : q = "010" ]

[ clk'event and clk='1' ]
사용자 삽입 이미지
[ d_in = '1' : q = "101" ]

[ clk'event and clk='1' ]

사용자 삽입 이미지
[ d_in = '1' : q = "011" ]

사용자 삽입 이미지
[ d_in = '0' : q = "110" ]


▶ 3비트 up-down 카운터

① 3비트 up-down 카운터의 동작을 VHDL로 기술

사용자 삽입 이미지

② TestBenchWaveform으로 시뮬레이션
사용자 삽입 이미지

③ 트레이닝 키트로 동작 검증

사용자 삽입 이미지
[ pr_b = '0' : q = "111" ]

사용자 삽입 이미지
[ clr_b = '0' : q = "000" ]

[ clk'event and clk='1' ]
사용자 삽입 이미지
[ con = '0' : q = "001" ]

[ clk'event and clk='1' ]

사용자 삽입 이미지
[ con = '0' : q = "010" ]

[ clk'event and clk='1' ]
사용자 삽입 이미지
[ con = '0' : q = "011" ]

[ clk'event and clk='1' ]

사용자 삽입 이미지
[ con = '0' : q = "100" ]

[ clk'event and clk='1' ]
사용자 삽입 이미지
[ con = '1' : q = "011" ]

[ clk'event and clk='1' ]

사용자 삽입 이미지
[ con = '1' : q = "010" ]

[ clk'event and clk='1' ]
사용자 삽입 이미지
[ con = '1' : q = "001" ]

[ clk'event and clk='1' ]

사용자 삽입 이미지
[ con = '1' : q = "000" ]

[ clk'event and clk='1' ]
사용자 삽입 이미지
[ con = '1' : q = "111" ]

◎ 실험 결과

▶ 이론에서 살펴본 3비트 2진 카운터3비트 시프트 레지스터, 3비트 up-down 카운터의 진리표대로 설계된 회로가 정확하게 동작함을 알 수 있었다.

pr_b

clr_b

clk

현 재 상 태

다 음 상 태

0

1

X

X X X

1 1 1

1

0

X

X X X

0 0 0

0

0

X

X X X

1 1 1

1

1

0 0 0

0 0 1

1

1

0 0 1

0 1 0

1

1

0 1 0

0 1 1

1

1

0 1 1

1 0 0

1

1

1 0 0

1 0 1

1

1

1 0 1

1 1 0

1

1

1 1 0

1 1 1

1

1

1 1 1

0 0 0

< 3비트 2진 카운터 >

pr_b

clr_b

clk

d_in

현 재 상 태

다 음 상 태

0

1

X

X

X X X

1 1 1

1

0

X

X

X X X

0 0 0

0

0

X

X

X X X

1 1 1

1

1

Δ

0 0 0

0 0 Δ

1

1

Δ

0 0 1

0 1 Δ

1

1

Δ

0 1 0

1 0 Δ

1

1

Δ

0 1 1

1 1 Δ

1

1

Δ

1 0 0

0 0 Δ

1

1

Δ

1 0 1

0 1 Δ

1

1

Δ

1 1 0

1 0 Δ

1

1

Δ

1 1 1

1 1 Δ

< 3비트 시프트 레지스터 > 

pr_b

clr_b

clk

현 재 상 태

다 음 상 태

con = '0'

con = '1'

0

1

X

X X X

1 1 1

1 1 1

1

0

X

X X X

0 0 0

0 0 0

0

0

X

X X X

1 1 1

1 1 1

1

1

0 0 0

0 0 1

1 1 1

1

1

0 0 1

0 1 0

0 0 0

1

1

0 1 0

0 1 1

0 0 1

1

1

0 1 1

1 0 0

0 1 0

1

1

1 0 0

1 0 1

0 1 1

1

1

1 0 1

1 1 0

1 0 0

1

1

1 1 0

1 1 1

1 0 1

1

1

1 1 1

0 0 0

1 1 0

< 3비트 up-down 카운터 >

 

◎ 실험의 개선점

① 3비트 up-down 카운터의 회로 동작에 대한 이해가 조금 부족했다.

=> 3비트 2진 카운터와 3비트 시프트 레지스터는 예습을 통한 이해와 개념을 숙지했지만, 3비트 up-down 카운터의 동작을 정확히 이해하 도록 하겠다.

② 실험 시간이 많이 부족했다.

=> 3비트 up-down 카운터의 VHDL 코드작성부분에 대한 이해가 부족 했다.

③ 키트 사용법이 아직 서툴러 많은 실수를 범했다.

=> 수시로 키트 사용법을 연습하여 실험에 소요되는 시간을 줄이겠다.

④ 트레이닝 키트 동작 검증 시의 핀 할당 시 핀 번호의 숙지가 필요했다.

=> 자주 사용하는 핀 번호의 대한 숙지와 키트 동작 검증 시마다 핀번호 에 대한 자료를 계속 찾아야하는 잡무를 다음 시간부터는 이러한 잡무 를 줄이겠다.

Comments