OpenCores
URL https://opencores.org/ocsvn/openfpu64/openfpu64/trunk

Subversion Repositories openfpu64

[/] [openfpu64/] [trunk/] [fpu_package.vhd] - Blame information for rev 10

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 8 bro
--------------------------------------------------------------------------------
2
-- Project    : openFPU64 Constants
3
-------------------------------------------------------------------------------
4
-- File       : fpu_package.vhd
5
-- Author     : Peter Huewe  <peterhuewe@gmx.de>
6
-- Created    : 2010-04-19
7
-- Last update: 2010-04-19
8
-- Standard   : VHDL'87
9
-------------------------------------------------------------------------------
10
-- Description: Some constants for openFPU64
11
-- 
12
-------------------------------------------------------------------------------
13
-- Copyright (c) 2010 
14
-------------------------------------------------------------------------------
15
-- License: gplv3, see licence.txt
16
-------------------------------------------------------------------------------
17
library ieee;
18
use ieee.std_logic_1164.all;
19
use ieee.numeric_std.all;
20
package fpu_package is
21
 
22
  constant ZEROS: unsigned (100 downto 0) := (others => '0');
23
  constant ONES: unsigned (100 downto 0) := (others => '1');
24
  constant ALL_ZEROS     : unsigned (10 downto 0) := (others => '0');
25
  constant ALL_ONES      : unsigned (10 downto 0) := (others => '1');
26
  constant ZERO_MANTISSA : unsigned (54 downto 0) := (others => '0');
27
  constant DOUBLE_BIAS   : unsigned (12 downto 0) := '0'&x"3ff";  -- 1023 - Bias for Exponent
28
  constant DOUBLE_BIAS_2COMPLEMENT  : unsigned (12 downto 0) := not(DOUBLE_BIAS)+1;  -- -1023 - Bias for Exponent
29
 
30
  constant SINGLE_BIAS   : unsigned (7 downto 0) := x"7f";  -- 127 - Bias for Exponent
31
  constant SINGLE_BIAS_2COMPLEMENT   : unsigned (7 downto 0) := not(x"7f"+1);  -- -127 - Bias for Exponent
32
  constant DOUBLE_PRECISION : std_logic := '0';
33
  constant SINGLE_PRECISION: std_logic := '1';
34
 
35
  constant addr_a_hi      : std_logic_vector(1 downto 0) := "00";  -- hi-word operand A    - writeonly
36
  constant addr_a_lo      : std_logic_vector(1 downto 0) := "01";  -- low-word operand A   - writeonly
37
  constant addr_b_hi      : std_logic_vector(1 downto 0) := "10";  -- hi-word operand B    - writeonly
38
  constant addr_b_lo      : std_logic_vector(1 downto 0) := "11";  -- low-word operand B   - writeonly
39
  constant addr_result_hi : std_logic_vector(1 downto 0) := "00";  -- hi-word result       - readonly
40
  constant addr_result_lo : std_logic_vector(1 downto 0) := "01";  -- low-word result      - readonly
41
  constant addr_flags     : std_logic_vector(1 downto 0) := "11";  -- exception flags      - readonly
42
 
43
  constant mode_add  : std_logic_vector (2 downto 0) := "000";  -- Addition Mode
44
  constant mode_sub  : std_logic_vector (2 downto 0) := "001";  -- Subtraction Mode
45
  constant mode_mul  : std_logic_vector (2 downto 0) := "010";  -- Multiply Mode
46
  constant mode_div  : std_logic_vector (2 downto 0) := "011";  -- Division Mode
47
  constant mode_test : std_logic_vector (2 downto 0) := "111";  -- Testing Mode  
48
 
49
end fpu_package;
50
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.