Fix normalizzatore + test

This commit is contained in:
2019-09-10 20:54:06 +02:00
parent 3bc4d7a489
commit 371bd201ce
5 changed files with 72 additions and 44 deletions

View File

@@ -73,7 +73,6 @@ architecture NormalizerArch of Normalizer is
signal LEFT_SHIFT_AMOUNT: std_logic_vector(8 downto 0);
signal LEFT_SHIFTED_MANT: std_logic_vector(22 downto 0);
signal LEFT_SHIFTED_MANT_TMP: std_logic_vector(47 downto 0);
signal RIGHT_SHIFTED_MANT: std_logic_vector(22 downto 0);
signal FINAL_MANT: std_logic_vector(22 downto 0);
begin
@@ -117,13 +116,11 @@ begin
end if;
end process;
RIGHT_SHIFTED_MANT <= '1' & MANT(47 downto 26);
SL: ShiftLeft48
port map ( N => MANT, PLACES => LEFT_SHIFT_AMOUNT, RESULT => LEFT_SHIFTED_MANT_TMP );
LEFT_SHIFTED_MANT <= LEFT_SHIFTED_MANT_TMP(47 downto 25);
LEFT_SHIFTED_MANT <= LEFT_SHIFTED_MANT_TMP(46 downto 24);
final_process: process (SUM_OVERFLOW, IS_FINAL_EXP_MINIMUM, EXP_ADDSUB_RES, EXP_ADDSUB_OF, RIGHT_SHIFTED_MANT, LEFT_SHIFTED_MANT, EXP)
final_process: process (SUM_OVERFLOW, IS_FINAL_EXP_MINIMUM, EXP_ADDSUB_RES, EXP_ADDSUB_OF, LEFT_SHIFTED_MANT, EXP, MANT)
variable IS_INF : std_logic;
variable IS_INF_ORIGINAL_EXP : std_logic;
variable IS_INF_FINAL_EXP : std_logic;
@@ -144,7 +141,7 @@ begin
else
if (SUM_OVERFLOW = '1') then
FINAL_EXP <= EXP_ADDSUB_RES;
FINAL_MANT <= RIGHT_SHIFTED_MANT;
FINAL_MANT <= MANT(47 downto 25);
else
FINAL_EXP <= EXP_ADDSUB_RES;
FINAL_MANT <= LEFT_SHIFTED_MANT;