[디지털시스템] VHDL을 이용하여 ALU[Arithmetic logic unit]을 설계
본 자료는 3페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
해당 자료는 3페이지 까지만 미리보기를 제공합니다.
3페이지 이후부터 다운로드 후 확인할 수 있습니다.

목차

1. Background

2. ALU Function Table

3. ALU 설계방법

4. VHDL Code 및 시뮬레이션

5. Synthesis

6. Conclusion

본문내용

ee.std_logic_unsigned.all;
use ieee.std_logic_arith.all;
entity TB_ALU is
end TB_ALU;
architecture TB of TB_ALU is
component ALUport(
sel : in std_logic_vector(4 downto 0);
A, B : in std_logic_vector(7 downto 0);
C_in : in std_logic;
Y : out std_logic_vector(7 downto 0));
end component;
signal sel : std_logic_vector(4 downto 0);
signal A, B : std_logic_vector(7 downto 0);
signal C_in : std_logic;
signal Y : std_logic_vector(7 downto 0);
begin
ALU_0 : ALU port map(
sel => sel,
A => A,
B => B,
C_in => C_in,
Y => Y );
-- sel signal (5bits)
process
begin
sel<="00000";wait for 4000 ns;
sel<="00001";wait for 4000 ns;
sel<="00010";wait for 4000 ns;
sel<="00011";wait for 4000 ns;
sel<="00100";wait for 2000 ns;
sel<="00101";wait for 2000 ns;
sel<="00110";wait for 2000 ns;
sel<="00111";wait for 2000 ns;
sel<="00000";wait for 2000 ns;
sel<="01000";wait for 2000 ns;
sel<="10000";wait for 2000 ns;
sel<="11000";wait for 2000 ns;
end process;
-- A signal (8bits)
process
begin
A <= "00001111"; wait;
end process;
-- B signal (8bits)
process
begin
B <= "00110011"; wait;
end process;
-- C_in (1bit)
process
begin
C_in <= '0' ; wait for 2000 ns;
C_in <= '1' ; wait for 2000 ns;
C_in <= '0' ; wait for 2000 ns;
C_in <= '1' ; wait for 2000 ns;
C_in <= '0' ; wait for 2000 ns;
C_in <= '1' ; wait for 2000 ns;
C_in <= '0' ; wait for 2000 ns;
C_in <= '1' ; wait for 2000 ns;
C_in <= '0' ; wait;
end process;
end TB;
5. Synthesis

- 합성을 Synplify 프로그램을 이용하여 수행하였습니다. 합성된 결과를 살펴보면, 앞서 설계하였던 Logic_unit block, Arithmetic_unit block, Mux, block, Shifter block으로 이루어져 있음을 확인 할 수 있습니다. 입력으로는 8bit의 A, B 신호와 연산의 종류를 선택하게 되는 5bit의 sel 신호, 그리고 Carry in을 나타내는 1bit의 C_int신호가 있고, 출력으로는 8bit의 Y신호가 있습니다. 5bit의 sel 신호는 Logic_unit과 Arithmetic_unit, Shifter block에서는 2bit 씩 사용되고, Mux에서는 1bit가 사용되고 있습니다. 강의 자료에 나와 있는 ALU의 Block diagram과 비교해 보았을 때, 정상적인 합성이 이루어졌다는 사실을 확인 할 수 있습니다.
6. Conclusion
- 이번 과제는 VHDL을 이용하여 ALU(Arithmetic logic unit)을 설계해보고, 합성 툴을 이용한 합성을 통하여 설계된 ALU가 정상적으로 동작하는지 여부를 확인해보는 것 이였습니다. 전반적인 Code에 조건문으로 IF문을 많이 사용하였고, 각 블록 단위로 코딩을 실시하여 디버깅이 쉽게 하였습니다.
이번 과제를 통하여 VHDL에 익숙해 질 수 있었고, 시뮬레이션 툴이나 합성 툴의 사용법을 다시 한번 숙지 할 수 있는 좋은 기회가 되었습니다. 그리고 ALU에 대한 개념과 원리에 대해서 이해 할 수 있는 시간이 되었습니다.
  • 가격2,300
  • 페이지수9페이지
  • 등록일2012.06.13
  • 저작시기2012.1
  • 파일형식한글(hwp)
  • 자료번호#753729
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니