[VHDL] 부동소수점 가산기 / floating point adder 전체 소스코드 (IEEE754)
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
해당 자료는 10페이지 까지만 미리보기를 제공합니다.
10페이지 이후부터 다운로드 후 확인할 수 있습니다.

소개글

[VHDL] 부동소수점 가산기 / floating point adder 전체 소스코드 (IEEE754)에 대한 보고서 자료입니다.

본문내용

Floating_Point_Adder
input, output, component 정의
각 단계(stage1~stage7)를 순차적으로 실행

stage_1 : Compare_Exponent
두 수의 지수를 비교 후 부호 비트, 지수 부분, 분수 부분을 결정하는 함수
두 입력 값의 지수 부분을 비교한다.
지수 부분이 큰 수를 out_1에 저장하고, 지수 부분이 작은 수를 out_2에 저장한다.
최상위 1bit는 sign, 23~30bit는 exponent, 0~22bit는 mantissa로 분리한다.

stage_2 : Compute_Shift
작은 지수가 큰 지수와 같은 값을 갖게 될 때까지 shift해 주는 함수
큰 지수(in_Exp_1)에서 작은 지수(in_Exp_2)를 뺀 결과를 저장(Exp_Sub)한다.
두 지수의 차이만큼 오른쪽 시프트를 하기 위해서 Shift 변수에 저장한다.

stage_3 : Shift_Man
유효숫자 계산할 때 맨 앞자리에 Bit_Man_1을 계산해서 추가한다. 선행하는 1은 유효자리에 숨겨져 있기
때문에 0이 아닌 이상에는 Bit_Man_1은 1이 될 것이다.
지수가 작았던 수는 stage_2에서 shift를 계산했던 만큼 오른쪽으로 시프트하여 결과 값을 저장 한다.
FUNCTION or_reduce(arg : SIGNED) RETURN STD_LOGIC;
Result subtype: STD_LOGIC.
Result: : Result of or'ing all of the bits of the vector.

stage_4 : Compare_Man
두 수의 부호비트가 같을 경우와 다를 경우로 나뉜다.
두 수의 부호비트가 다를 경우 유효숫자가 큰 수를 out_Man_1에 저장한다.
결과 값의 exponent는 처음 기준이 되었던 in_Exp_1으로 설정한다.

stage_5 : AddSub_Man
overflow가 생길 경우를 대비해서 1bit를 확장하여 최상위 비트에 0을 추가한다.
stage_4에서 조사한 두 부호비트의 상황에 맞춰 같은 부호이면 두 유효숫자를 더하고, 다른 부호이면
두 유효숫자의 차를 계산한다.

stage_6 : Normal_1
두 유효숫자의 연산 결과를 분석하는 함수
연산 결과에 따라 지수 조정을 해야 한다. overflow가 생긴 경우, 지수 조정이 필요 없는 경우,
지수 조정이 필요한 경우, 결과 값이 0인 경우로 나뉜다.
어느 비트에서 처음으로 1이 발생했는지에 따라 구분된다.

stage_7 : Normal_2
유효자리를 정규화 하는 함수
만약 carry가 발생했다면 exponent에 1을 더해준다.
최종 결과 값을 저장한다.
  • 가격3,000
  • 페이지수50페이지
  • 등록일2008.04.28
  • 저작시기2007.6
  • 파일형식압축파일(zip)
  • 자료번호#462539
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니