⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unpackfp.vhd

📁 一个32位元的浮点数加法器
💻 VHD
字号:
--32bits FLP unpack
--1s_8I_23F
--by Fen Chih Yen 2007_03_27

LIBRARY ieee;
USE ieee.std_logic_1164.all;
USE ieee.std_logic_arith.all;

ENTITY UnpackFP IS
   PORT( 
      FP    : IN     std_logic_vector (31 DOWNTO 0);
      SIG   : OUT    std_logic_vector (31 DOWNTO 0);
      EXP   : OUT    std_logic_vector (7 DOWNTO 0);
      SIGN  : OUT    std_logic;
      isNaN : OUT    std_logic;
      isINF : OUT    std_logic;
      isZ   : OUT    std_logic;
      isDN  : OUT    std_logic
   );
END UnpackFP ;

ARCHITECTURE UnpackFP OF UnpackFP IS
	SIGNAL exp_int : std_logic_vector(7 DOWNTO 0);
	SIGNAL sig_int : std_logic_vector(22 DOWNTO 0);
	SIGNAL expZ, expFF, sigZ : std_logic;
BEGIN
	exp_int <= FP(30 DOWNTO 23);
	sig_int <= FP(22 DOWNTO 0);

	SIGN <= FP(31);
	EXP <= exp_int;
	SIG(22 DOWNTO 0) <= sig_int;

	expZ <= '1' WHEN (exp_int="00000000") ELSE '0';
	expFF <= '1' WHEN (exp_int="11111111") ELSE '0';

	sigZ <= '1' WHEN (sig_int="00000000000000000000000") ELSE '0';

	isNaN <= expFF AND (NOT sigZ);
	isINF <= expFF AND sigZ;
	isZ <= expZ AND sigZ;
	isDN <= expZ AND (NOT sigZ);

	-- Restore hidden 1.ffff when not zero or denormal
--	SIG(22) <= NOT expZ;
  SIG(23) <= NOT expZ;
  
	SIG(31 DOWNTO 24) <= (OTHERS => '0');
END UnpackFP;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -