관리 메뉴

드럼치는 프로그래머

[시스템분석및설계] 6장 반가산기와 전가산기 예비레포트 본문

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

[시스템분석및설계] 6장 반가산기와 전가산기 예비레포트

드럼치는한동이 2007. 10. 5. 15:51

◎ 실험 목적

▶ 반가산기와 전가산기의 동작을 VHDL로 기술하고, 시뮬레이션을 통해 동작을 검증한다.

 

◎ 이론 설명

▶ 반가산기

① 덧셈(뺄셈) 연산에서 가장 기본이 되는 회로이다.

② 2개의 입력 비트(A, B)와 2개의 출력 비트(S, C)를 갖는다.

③ 출력으로는 2개의 입력 값이 더하여진 값(s)와 상위 비트로 올라가는 값인 캐리 (c)가 있다.

④ 진리표

입 력

출 력

a

b

c

s

0

0

0

0

0

1

0

1

1

0

0

1

1

1

1

0

 

⑤ 부울대수식

사용자 삽입 이미지





⑥ 논리회로도
사용자 삽입 이미지















▶ 전가산기

① 반가산기와 마찬가지로 덧셈(뺄셈) 연산에서 기본이 되는 회로이다.

② 전가산기는 반가산기와 다르게 입력 값이 두 개가 아닌 세 개다.

③ 하위 비트에서 올라온 캐리까지 포함해서 덧셈을 할 수 있게된 회로이다.

④ 반가산기와 마찬가지로 출력으로는 더해진 값(s)와 상위 비트로 올라가는 캐리 (c)가 있다.

⑤ 진리표

입 력

출 력

a

b

cin

s

cout

0

0

0

0

0

0

0

1

1

0

0

1

0

1

0

0

1

1

0

1

1

0

0

1

0

1

0

1

0

1

1

1

0

0

1

1

1

1

1

1

 

⑥ 전가산기는 반가산기 2개와 OR 게이트 1개를 사용하여 설계할 수 있다는 점을 활용하여, 구조적 모델링(structural modeling) 방식을 채택할 수도 있지만, 이 방식 역시 그 회로적 구조를 알고 있어야 가능한 방식이다.
그러므로 전가산기를 동작적 모델링 방식에 의해 설계하여 보도록 한다.

 

◎ 실험 장비

▶ Xilinx ISE

▶ ModelSIM

▶ Rov-Lab 트레이닝 키트

 

◎ 실험 순서

▶ 반가산기

① 반가산기의 동작을 VHDL로 기술

architecture Behavioral of ha is

begin

S <= A xor B;

C <= A and B;

end Behavioral ;


② TestBenchWaveform으로 시뮬레이션

주어진 입력(A, B)에 따라 출력(S, C)이

진리표대로 정확하게 출력되는지를 검증


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

주어진 입력(A, B)에 따라 출력(S, C)이

진리표대로 정확하게 출력되는지를 검증


▶ 전가산기

① 전가산기의 동작을 VHDL로 기술

architecture Behavioral of full_adder is

begin

if a='0' and b='0' and cin='0' then s <= '0'; cout <= '0';

elsif a='0' and b='0' and cin='1' then s <= '1'; cout <='0';

elsif a='0' and b='1' and cin='0' then s <= '1'; cout <='0';

elsif a='0' and b='1' and cin='1' then s <= '0'; cout <='1';

elsif a='1' and b='0' and cin='0' then s <= '1'; cout <='0';

elsif a='1' and b='0' and cin='1' then s <= '0'; cout <='1';

elsif a='1' and b='1' and cin='0' then s <= '0'; cout <='1';

elsif a='1' and b='1' and cin='1' then s <= '1'; cout <='1';

end if;

end process;

end Behavioral;


- VDHL 설계에서 가장 많이 쓰이는 명령어인 IF-ELSE 명령어를 사용한다.

- 3개의 LOOP 명령어를 사용하여, a, b, cin의 값을 변화시키는 코드를 추가한다.


② TestBenchWaveform으로 시뮬레이션

주어진 입력(A, B, Cin)에 따라 출력(S, Cout)이

진리표대로 정확하게 출력되는지를 검증


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

주어진 입력(A, B, Cin)에 따라 출력(S, Cout)이

진리표대로 정확하게 출력되는지를 검증

Comments