xilinx를 이용한 디지털 계산기 설계(vhdl, fpga)
본 자료는 3페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
해당 자료는 3페이지 까지만 미리보기를 제공합니다.
3페이지 이후부터 다운로드 후 확인할 수 있습니다.

소개글

xilinx를 이용한 디지털 계산기 설계(vhdl, fpga)에 대한 보고서 자료입니다.

목차

1. Purpose

2. Problem Statement

3. Sources & Results

본문내용

ta_out_reg, addr_reg, data_reg,
load_operand1, load_operand2, load_plus, load_minus, calculate, operand); …… ⑤
end Behavioral;
① 입출력 포트 벡터 선언.
② lcd_test.vhd 파일의 입출력 포트를 선언.
③ datagen.vhd 파일의 입출력 포트를 선언.
④ 내부 signal 설정.
⑤ lcd_test.vhd 파일과 datagen.vhd 파일의 입출력 포트를 lcd_display.vhd 파일의 포트에 맵핑.

LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
USE ieee.std_logic_unsigned.all;
USE ieee.numeric_std.ALL;
ENTITY calculate_tb_vhd IS
END calculate_tb_vhd;
ARCHITECTURE behavior OF calculate_tb_vhd IS
COMPONENT lcd_display
PORT(
FPGA_RSTB : IN std_logic;
FPGA_CLK : IN std_logic;
load_operand1 : IN std_logic;
load_operand2 : IN std_logic;
load_plus : IN std_logic;
load_minus : IN std_logic; …… ①
calculate : IN std_logic;
operand : IN std_logic_vector(3 downto 0);
LCD_A : OUT std_logic_vector(1 downto 0);
LCD_EN : OUT std_logic;
LCD_D : OUT std_logic_vector(7 downto 0)
);
END COMPONENT;
--Inputs
SIGNAL FPGA_RSTB : std_logic := '0';
SIGNAL FPGA_CLK : std_logic := '0';
SIGNAL load_operand1 : std_logic := '1';
SIGNAL load_operand2 : std_logic := '1';
SIGNAL load_plus : std_logic := '1';
SIGNAL load_minus : std_logic := '1'; …… ②
SIGNAL calculate : std_logic := '1';
SIGNAL operand : std_logic_vector(3 downto 0) := (others=>'0');
--Outputs
SIGNAL LCD_A : std_logic_vector(1 downto 0);
SIGNAL LCD_EN : std_logic;
SIGNAL LCD_D : std_logic_vector(7 downto 0);
BEGIN
uut: lcd_display PORT MAP(
FPGA_RSTB => FPGA_RSTB,
FPGA_CLK => FPGA_CLK,
LCD_A => LCD_A,
LCD_EN => LCD_EN,
LCD_D => LCD_D, …… ③
load_operand1 => load_operand1,
load_operand2 => load_operand2,
load_plus => load_plus,
load_minus => load_minus,
calculate => calculate,
operand => operand
);
FPGA_CLK <= not FPGA_CLK after 125 ns;
tb : PROCESS
BEGIN
FPGA_RSTB <= '0';
wait for 70000000 ns;
FPGA_RSTB <= '1';
wait for 10000000 ns;
operand <= "0111";
load_operand1 <= '0';
wait for 60000000 ns; …… ④
operand <= "1100";
load_operand1 <= '1';
load_operand2 <= '0';
wait for 40000000 ns;
load_operand2 <= '1';
load_plus <= '0';
wait for 40000000 ns;
load_plus <= '1';
calculate <= '0';
wait;
END PROCESS;
END;
① lcd_display.vhd 파일의 입출력 포트를 선언.
② tb_calc.vhd 파일의 내부 시그널 설정.
③ lcd_display.vhd 파일의 입출력 포트를 tb_calc.vhd 파일의 입출력 시그널에 맵핑.
④ results wave에 나온 파형의 입력값 및 동작.

이번 실습에서 testbench는 사실상 의미가 없다. 단지 7 + C(12) 가 16진수로 1 3으로 표현된다는 예를 드는 결과 파형 화면이다.
< 실험에 대한 고찰 >
이번 실험에서는 FPGA 킷을 사용하여 계산기를 설계하였다. 지난번의 디지털 시계 실습 때도 많이 헤맸었는데 이번 실습에서는 Vhdl Module파일이 3개나 되어서 처음에 소스코드를 작성하는데에 엄청나게 애를 먹었다. 또한, testbench를 시뮬레이션 돌렸을 때, 처음 파형에 unknown값이 있어서 계속 오류가 나는 줄 알고 원래 제대로 작성되었던 소스코드를 고치고 고쳐서 결국 어처구니 없는 소스코드를 작성하였었다. 그렇게 한참을 헤맨 끝에, 조교님께서 wave메뉴에서 run-all, break메뉴를 사용해 보라고 조언을 해주셔서 그 메뉴들을 사용했더니 위와 같은 제대로 된 파형을 얻을 수 있었다.
또한 실험 실습한 내용을 토대로 방학때 좀더 공부해서 C언어를 배운 후에 휴대폰 UI에 적용시키는 활용에 대한 흥미를 갖게 하였다. 본인이 가지고 있는 휴대폰이 UI 및 기능면에서 해킹이 가능한 휴대폰이라 지금도 해킹하여 UI를 바꿔쓰고 있지만, 내 스스로 코딩한 소스 코드를 이용해서 나만의 기능인 공학계산기 같은 기능을 구현하고 싶다는 생각이 들었다. 그러기 위해서는 앞으로도 꾸준하게 공부를 해야겠다는 생각이 들었다. 이제 실습도 종반부를 향해서 달려가고 있는데, 기말 텀 프로젝트 준비도 꾸준히 하여 성공적으로 1학기를 마쳐야 겠다.
  • 가격2,500
  • 페이지수10페이지
  • 등록일2010.01.18
  • 저작시기2009.6
  • 파일형식한글(hwp)
  • 자료번호#575344
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니