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

📄 ex_p4_28_normalizer.vhd

📁 This is the course for VHDL programming
💻 VHD
字号:
library IEEE;use IEEE.std_logic_1164.all;use IEEE.std_logic_unsigned.all;use IEEE.std_logic_arith.all;-- Floating point normalizerentity NORM is	port (A: in std_logic_VECTOR(31 downto 0);			N:out std_logic_VECTOR(31 downto 0));end NORM;architecture DF of NORM is	alias sign:std_logic is A(31);	alias exponent:std_logic_vector(7 downto 0) is 	               A(30 downto 23);	alias mantissa:std_logic_vector(22 downto 0) is 	               A(22 downto 0);	signal leading_zeros: std_logic_vector(4 downto 0);	signal exp2:std_logic_vector(7 downto 0);   signal mantissa2:std_logic_vector(22 downto 0);begin    process(mantissa)        variable LZ:std_logic_vector(4 downto 0);    begin        LZ := "00000";        for i in 0 to 22 loop           exit when (mantissa(22-i)) = '1';           LZ := LZ + 1;       end loop;       leading_zeros <= LZ;   end process;   exp2 <= exponent - leading_zeros;   mantissa2 <= To_stdlogicvector(            To_bitvector(mantissa) sll             conv_integer(leading_zeros));   N <= sign & exp2 & mantissa2;end DF;library IEEE;use IEEE.std_logic_1164.all;use IEEE.std_logic_unsigned.all;use IEEE.std_logic_arith.all;entity NORM_TB is end  NORM_TB;architecture BEH of NORM_TB is   signal mantissa:std_logic_vector(22 downto 0)                  := "011" & X"00000";    signal exp:std_logic_vector(7 downto 0)                  := "10000111";   signal sign:std_logic:='0';   signal A,N:std_logic_vector(31 downto 0);begin   exp <= "10000110" after 100 ns,          "10000101" after 200 ns,          "10000100" after 300 ns;    mantissa <= "000" & X"C0000" after 100 ns;    A <= sign & exp & mantissa;    N1:entity work.NORM       port map(A,N);end BEH;

⌨️ 快捷键说明

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