Creazione Pipeline
This commit is contained in:
31
FlipFlopD.vhd
Normal file
31
FlipFlopD.vhd
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
library IEEE;
|
||||||
|
use IEEE.STD_LOGIC_1164.ALL;
|
||||||
|
|
||||||
|
entity FlipFlopD is
|
||||||
|
|
||||||
|
port(
|
||||||
|
CLK : in std_logic;
|
||||||
|
RESET : in std_logic;
|
||||||
|
D : in std_logic;
|
||||||
|
Q : out std_logic
|
||||||
|
);
|
||||||
|
|
||||||
|
end FlipFlopD;
|
||||||
|
|
||||||
|
architecture FlipFlopDArch of FlipFlopD is
|
||||||
|
|
||||||
|
begin
|
||||||
|
|
||||||
|
ff: process( CLK )
|
||||||
|
begin
|
||||||
|
if( CLK'event and CLK = '0' ) then
|
||||||
|
if( RESET = '1' ) then
|
||||||
|
Q <= '0';
|
||||||
|
else
|
||||||
|
Q <= D;
|
||||||
|
end if;
|
||||||
|
end if;
|
||||||
|
end process;
|
||||||
|
|
||||||
|
end FlipFlopDArch;
|
||||||
|
|
||||||
35
FlipFlopDVector.vhd
Normal file
35
FlipFlopDVector.vhd
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
library IEEE;
|
||||||
|
use IEEE.STD_LOGIC_1164.ALL;
|
||||||
|
|
||||||
|
entity FlipFlopDVector is
|
||||||
|
|
||||||
|
generic(
|
||||||
|
BITCOUNT : integer := 8
|
||||||
|
);
|
||||||
|
|
||||||
|
port(
|
||||||
|
CLK : in std_logic;
|
||||||
|
RESET : in std_logic;
|
||||||
|
D : in std_logic_vector(BITCOUNT-1 downto 0);
|
||||||
|
Q : out std_logic_vector(BITCOUNT-1 downto 0)
|
||||||
|
);
|
||||||
|
|
||||||
|
end FlipFlopDVector;
|
||||||
|
|
||||||
|
architecture FlipFlopDVectorArch of FlipFlopDVector is
|
||||||
|
|
||||||
|
begin
|
||||||
|
|
||||||
|
ff: process( CLK )
|
||||||
|
begin
|
||||||
|
if( CLK'event and CLK = '0' ) then
|
||||||
|
if( RESET = '1' ) then
|
||||||
|
Q <= (BITCOUNT-1 downto 0 => '0');
|
||||||
|
else
|
||||||
|
Q <= D;
|
||||||
|
end if;
|
||||||
|
end if;
|
||||||
|
end process;
|
||||||
|
|
||||||
|
end FlipFlopDVectorArch;
|
||||||
|
|
||||||
209
IEEE754Adder.vhd
Normal file
209
IEEE754Adder.vhd
Normal file
@@ -0,0 +1,209 @@
|
|||||||
|
library IEEE;
|
||||||
|
use IEEE.STD_LOGIC_1164.ALL;
|
||||||
|
|
||||||
|
entity IEEE754Adder is
|
||||||
|
|
||||||
|
port(
|
||||||
|
X, Y : in std_logic_vector(31 downto 0);
|
||||||
|
RESET : in std_logic;
|
||||||
|
CLK : in std_logic;
|
||||||
|
RESULT : out std_logic_vector(31 downto 0)
|
||||||
|
);
|
||||||
|
|
||||||
|
end IEEE754Adder;
|
||||||
|
|
||||||
|
architecture Behavioral of IEEE754Adder is
|
||||||
|
|
||||||
|
component PipelineStageOne is
|
||||||
|
|
||||||
|
port(
|
||||||
|
X, Y : in std_logic_vector(31 downto 0);
|
||||||
|
DIFF_EXP_ABS : out std_logic_vector(8 downto 0);
|
||||||
|
A, B : out std_logic_vector(31 downto 0);
|
||||||
|
IS_NAN, IS_ZERO : out std_logic
|
||||||
|
);
|
||||||
|
|
||||||
|
end component;
|
||||||
|
|
||||||
|
component PipelineStageTwo is
|
||||||
|
|
||||||
|
port(
|
||||||
|
A, B : in std_logic_vector(31 downto 0);
|
||||||
|
DIFF_EXP_ABS : in std_logic_vector(8 downto 0);
|
||||||
|
IS_NAN_IN, IS_ZERO_IN : in std_logic;
|
||||||
|
EXP : out std_logic_vector(7 downto 0);
|
||||||
|
SUM_RESULT : out std_logic_vector(47 downto 0);
|
||||||
|
SUM_OF : out std_logic;
|
||||||
|
RES_SIGN : out std_logic;
|
||||||
|
IS_NAN_OUT, IS_ZERO_OUT : out std_logic
|
||||||
|
);
|
||||||
|
|
||||||
|
end component;
|
||||||
|
|
||||||
|
component PipelineStageThree is
|
||||||
|
|
||||||
|
port(
|
||||||
|
RES_SIGN : in std_logic;
|
||||||
|
EXP : in std_logic_vector(7 downto 0);
|
||||||
|
MANT : in std_logic_vector(47 downto 0);
|
||||||
|
MANT_OF : in std_logic;
|
||||||
|
IS_NAN, IS_ZERO : in std_logic;
|
||||||
|
FINAL_RES : out std_logic_vector(31 downto 0)
|
||||||
|
);
|
||||||
|
|
||||||
|
end component;
|
||||||
|
|
||||||
|
component FlipFlopD is
|
||||||
|
|
||||||
|
port(
|
||||||
|
CLK : in std_logic;
|
||||||
|
RESET : in std_logic;
|
||||||
|
D : in std_logic;
|
||||||
|
Q : out std_logic
|
||||||
|
);
|
||||||
|
|
||||||
|
end component;
|
||||||
|
|
||||||
|
component FlipFlopDVector is
|
||||||
|
|
||||||
|
generic(
|
||||||
|
BITCOUNT : integer := 8
|
||||||
|
);
|
||||||
|
|
||||||
|
port(
|
||||||
|
CLK : in std_logic;
|
||||||
|
RESET : in std_logic;
|
||||||
|
D : in std_logic_vector(BITCOUNT-1 downto 0);
|
||||||
|
Q : out std_logic_vector(BITCOUNT-1 downto 0)
|
||||||
|
);
|
||||||
|
|
||||||
|
end component;
|
||||||
|
|
||||||
|
signal IN_S1_X : std_logic_vector(31 downto 0);
|
||||||
|
signal IN_S1_Y : std_logic_vector(31 downto 0);
|
||||||
|
|
||||||
|
signal OUT_S1_DIFF_EXP_ABS : std_logic_vector(8 downto 0);
|
||||||
|
signal OUT_S1_A : std_logic_vector(31 downto 0);
|
||||||
|
signal OUT_S1_B : std_logic_vector(31 downto 0);
|
||||||
|
signal OUT_S1_IS_NAN : std_logic;
|
||||||
|
signal OUT_S1_IS_ZERO : std_logic;
|
||||||
|
|
||||||
|
signal IN_S2_DIFF_EXP_ABS : std_logic_vector(8 downto 0);
|
||||||
|
signal IN_S2_A : std_logic_vector(31 downto 0);
|
||||||
|
signal IN_S2_B : std_logic_vector(31 downto 0);
|
||||||
|
signal IN_S2_IS_NAN : std_logic;
|
||||||
|
signal IN_S2_IS_ZERO : std_logic;
|
||||||
|
|
||||||
|
signal OUT_S2_EXP : std_logic_vector(7 downto 0);
|
||||||
|
signal OUT_S2_SUM_RESULT : std_logic_vector(47 downto 0);
|
||||||
|
signal OUT_S2_SUM_OF : std_logic;
|
||||||
|
signal OUT_S2_RES_SIGN : std_logic;
|
||||||
|
signal OUT_S2_IS_NAN : std_logic;
|
||||||
|
signal OUT_S2_IS_ZERO : std_logic;
|
||||||
|
|
||||||
|
signal IN_S3_EXP : std_logic_vector(7 downto 0);
|
||||||
|
signal IN_S3_SUM_RESULT : std_logic_vector(47 downto 0);
|
||||||
|
signal IN_S3_SUM_OF : std_logic;
|
||||||
|
signal IN_S3_RES_SIGN : std_logic;
|
||||||
|
signal IN_S3_IS_NAN : std_logic;
|
||||||
|
signal IN_S3_IS_ZERO : std_logic;
|
||||||
|
|
||||||
|
signal OUT_S3_FINAL_RES : std_logic_vector(31 downto 0);
|
||||||
|
|
||||||
|
begin
|
||||||
|
|
||||||
|
DFF_INP1_X : FlipFlopDVector
|
||||||
|
generic map (BITCOUNT => 32)
|
||||||
|
port map ( CLK => CLK, RESET => RESET, D => X, Q => IN_S1_X);
|
||||||
|
|
||||||
|
DFF_INP1_Y : FlipFlopDVector
|
||||||
|
generic map (BITCOUNT => 32)
|
||||||
|
port map ( CLK => CLK, RESET => RESET, D => Y, Q => IN_S1_Y);
|
||||||
|
|
||||||
|
P1 : PipelineStageOne
|
||||||
|
port map (
|
||||||
|
X => IN_S1_X,
|
||||||
|
Y => IN_S1_Y,
|
||||||
|
DIFF_EXP_ABS => OUT_S1_DIFF_EXP_ABS,
|
||||||
|
A => OUT_S1_A,
|
||||||
|
B => OUT_S1_B,
|
||||||
|
IS_NAN => OUT_S1_IS_NAN,
|
||||||
|
IS_ZERO => OUT_S1_IS_ZERO
|
||||||
|
);
|
||||||
|
|
||||||
|
DFF_P1P2_DIFF_EXP_ABS : FlipFlopDVector
|
||||||
|
generic map (BITCOUNT => 9)
|
||||||
|
port map ( CLK => CLK, RESET => RESET, D => OUT_S1_DIFF_EXP_ABS, Q => IN_S2_DIFF_EXP_ABS);
|
||||||
|
|
||||||
|
DFF_P1P2_A : FlipFlopDVector
|
||||||
|
generic map (BITCOUNT => 32)
|
||||||
|
port map ( CLK => CLK, RESET => RESET, D => OUT_S1_A, Q => IN_S2_A);
|
||||||
|
|
||||||
|
DFF_P1P2_B : FlipFlopDVector
|
||||||
|
generic map (BITCOUNT => 32)
|
||||||
|
port map ( CLK => CLK, RESET => RESET, D => OUT_S1_B, Q => IN_S2_B);
|
||||||
|
|
||||||
|
DFF_P1P2_IS_NAN : FlipFlopD
|
||||||
|
port map ( CLK => CLK, RESET => RESET, D => OUT_S1_IS_NAN, Q => IN_S2_IS_NAN);
|
||||||
|
|
||||||
|
DFF_P1P2_IS_ZERO : FlipFlopD
|
||||||
|
port map ( CLK => CLK, RESET => RESET, D => OUT_S1_IS_ZERO, Q => IN_S2_IS_ZERO);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
P2 : PipelineStageTwo
|
||||||
|
port map (
|
||||||
|
A => IN_S2_A,
|
||||||
|
B => IN_S2_B,
|
||||||
|
DIFF_EXP_ABS => IN_S2_DIFF_EXP_ABS,
|
||||||
|
IS_NAN_IN => IN_S2_IS_NAN,
|
||||||
|
IS_ZERO_IN => IN_S2_IS_ZERO,
|
||||||
|
EXP => OUT_S2_EXP,
|
||||||
|
SUM_RESULT => OUT_S2_SUM_RESULT,
|
||||||
|
SUM_OF => OUT_S2_SUM_OF,
|
||||||
|
RES_SIGN => OUT_S2_RES_SIGN,
|
||||||
|
IS_NAN_OUT => OUT_S2_IS_NAN,
|
||||||
|
IS_ZERO_OUT => OUT_S2_IS_ZERO
|
||||||
|
);
|
||||||
|
|
||||||
|
DFF_P2P3_EXP : FlipFlopDVector
|
||||||
|
generic map (BITCOUNT => 8)
|
||||||
|
port map ( CLK => CLK, RESET => RESET, D => OUT_S2_EXP, Q => IN_S3_EXP);
|
||||||
|
|
||||||
|
DFF_P2P3_SUM_RESULT : FlipFlopDVector
|
||||||
|
generic map (BITCOUNT => 48)
|
||||||
|
port map ( CLK => CLK, RESET => RESET, D => OUT_S2_SUM_RESULT, Q => IN_S3_SUM_RESULT);
|
||||||
|
|
||||||
|
DFF_P2P3_SUM_OF : FlipFlopD
|
||||||
|
port map ( CLK => CLK, RESET => RESET, D => OUT_S2_SUM_OF, Q => IN_S3_SUM_OF);
|
||||||
|
|
||||||
|
DFF_P2P3_RES_SIGN : FlipFlopD
|
||||||
|
port map ( CLK => CLK, RESET => RESET, D => OUT_S2_RES_SIGN, Q => IN_S3_RES_SIGN);
|
||||||
|
|
||||||
|
DFF_P2P3_IS_NAN : FlipFlopD
|
||||||
|
port map ( CLK => CLK, RESET => RESET, D => OUT_S2_IS_NAN, Q => IN_S3_IS_NAN);
|
||||||
|
|
||||||
|
DFF_P2P3_IS_ZERO : FlipFlopD
|
||||||
|
port map ( CLK => CLK, RESET => RESET, D => OUT_S2_IS_ZERO, Q => IN_S3_IS_ZERO);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
P3 : PipelineStageThree
|
||||||
|
port map (
|
||||||
|
RES_SIGN => IN_S3_RES_SIGN,
|
||||||
|
EXP => IN_S3_EXP,
|
||||||
|
MANT => IN_S3_SUM_RESULT,
|
||||||
|
MANT_OF => IN_S3_SUM_OF,
|
||||||
|
IS_NAN => IN_S3_IS_NAN,
|
||||||
|
IS_ZERO => IN_S3_IS_ZERO,
|
||||||
|
FINAL_RES => OUT_S3_FINAL_RES
|
||||||
|
);
|
||||||
|
|
||||||
|
DFF_P3OUT_RESULT : FlipFlopDVector
|
||||||
|
generic map (BITCOUNT => 32)
|
||||||
|
port map ( CLK => CLK, RESET => RESET, D => OUT_S3_FINAL_RES, Q => RESULT);
|
||||||
|
|
||||||
|
end Behavioral;
|
||||||
|
|
||||||
@@ -17,23 +17,23 @@
|
|||||||
<files>
|
<files>
|
||||||
<file xil_pn:name="SpecialCasesCheck.vhd" xil_pn:type="FILE_VHDL">
|
<file xil_pn:name="SpecialCasesCheck.vhd" xil_pn:type="FILE_VHDL">
|
||||||
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
|
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
|
||||||
<association xil_pn:name="Implementation" xil_pn:seqID="0"/>
|
<association xil_pn:name="Implementation" xil_pn:seqID="15"/>
|
||||||
</file>
|
</file>
|
||||||
<file xil_pn:name="TypeCheck.vhd" xil_pn:type="FILE_VHDL">
|
<file xil_pn:name="TypeCheck.vhd" xil_pn:type="FILE_VHDL">
|
||||||
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
|
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
|
||||||
<association xil_pn:name="Implementation" xil_pn:seqID="0"/>
|
<association xil_pn:name="Implementation" xil_pn:seqID="2"/>
|
||||||
</file>
|
</file>
|
||||||
<file xil_pn:name="NaNCheck.vhd" xil_pn:type="FILE_VHDL">
|
<file xil_pn:name="NaNCheck.vhd" xil_pn:type="FILE_VHDL">
|
||||||
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
|
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
|
||||||
<association xil_pn:name="Implementation" xil_pn:seqID="0"/>
|
<association xil_pn:name="Implementation" xil_pn:seqID="9"/>
|
||||||
</file>
|
</file>
|
||||||
<file xil_pn:name="ZeroCheck.vhd" xil_pn:type="FILE_VHDL">
|
<file xil_pn:name="ZeroCheck.vhd" xil_pn:type="FILE_VHDL">
|
||||||
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
|
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
|
||||||
<association xil_pn:name="Implementation" xil_pn:seqID="0"/>
|
<association xil_pn:name="Implementation" xil_pn:seqID="6"/>
|
||||||
</file>
|
</file>
|
||||||
<file xil_pn:name="EqualCheck.vhd" xil_pn:type="FILE_VHDL">
|
<file xil_pn:name="EqualCheck.vhd" xil_pn:type="FILE_VHDL">
|
||||||
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
|
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
|
||||||
<association xil_pn:name="Implementation" xil_pn:seqID="0"/>
|
<association xil_pn:name="Implementation" xil_pn:seqID="3"/>
|
||||||
</file>
|
</file>
|
||||||
<file xil_pn:name="SpecialCasesTest.vhd" xil_pn:type="FILE_VHDL">
|
<file xil_pn:name="SpecialCasesTest.vhd" xil_pn:type="FILE_VHDL">
|
||||||
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
|
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
|
||||||
@@ -43,7 +43,7 @@
|
|||||||
</file>
|
</file>
|
||||||
<file xil_pn:name="Comparator.vhd" xil_pn:type="FILE_VHDL">
|
<file xil_pn:name="Comparator.vhd" xil_pn:type="FILE_VHDL">
|
||||||
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
|
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
|
||||||
<association xil_pn:name="Implementation" xil_pn:seqID="5"/>
|
<association xil_pn:name="Implementation" xil_pn:seqID="10"/>
|
||||||
</file>
|
</file>
|
||||||
<file xil_pn:name="ComparatorTest.vhd" xil_pn:type="FILE_VHDL">
|
<file xil_pn:name="ComparatorTest.vhd" xil_pn:type="FILE_VHDL">
|
||||||
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
|
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
|
||||||
@@ -53,11 +53,11 @@
|
|||||||
</file>
|
</file>
|
||||||
<file xil_pn:name="PrepareForShift.vhd" xil_pn:type="FILE_VHDL">
|
<file xil_pn:name="PrepareForShift.vhd" xil_pn:type="FILE_VHDL">
|
||||||
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
|
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
|
||||||
<association xil_pn:name="Implementation" xil_pn:seqID="0"/>
|
<association xil_pn:name="Implementation" xil_pn:seqID="16"/>
|
||||||
</file>
|
</file>
|
||||||
<file xil_pn:name="Swap.vhd" xil_pn:type="FILE_VHDL">
|
<file xil_pn:name="Swap.vhd" xil_pn:type="FILE_VHDL">
|
||||||
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
|
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
|
||||||
<association xil_pn:name="Implementation" xil_pn:seqID="0"/>
|
<association xil_pn:name="Implementation" xil_pn:seqID="13"/>
|
||||||
</file>
|
</file>
|
||||||
<file xil_pn:name="SwapTest.vhd" xil_pn:type="FILE_VHDL">
|
<file xil_pn:name="SwapTest.vhd" xil_pn:type="FILE_VHDL">
|
||||||
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
|
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
|
||||||
@@ -67,11 +67,11 @@
|
|||||||
</file>
|
</file>
|
||||||
<file xil_pn:name="TwoComplement.vhd" xil_pn:type="FILE_VHDL">
|
<file xil_pn:name="TwoComplement.vhd" xil_pn:type="FILE_VHDL">
|
||||||
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
|
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
|
||||||
<association xil_pn:name="Implementation" xil_pn:seqID="0"/>
|
<association xil_pn:name="Implementation" xil_pn:seqID="12"/>
|
||||||
</file>
|
</file>
|
||||||
<file xil_pn:name="OperationCheck.vhd" xil_pn:type="FILE_VHDL">
|
<file xil_pn:name="OperationCheck.vhd" xil_pn:type="FILE_VHDL">
|
||||||
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
|
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
|
||||||
<association xil_pn:name="Implementation" xil_pn:seqID="0"/>
|
<association xil_pn:name="Implementation" xil_pn:seqID="18"/>
|
||||||
</file>
|
</file>
|
||||||
<file xil_pn:name="TwoComplementTest.vhd" xil_pn:type="FILE_VHDL">
|
<file xil_pn:name="TwoComplementTest.vhd" xil_pn:type="FILE_VHDL">
|
||||||
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
|
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
|
||||||
@@ -81,11 +81,11 @@
|
|||||||
</file>
|
</file>
|
||||||
<file xil_pn:name="Adder.vhd" xil_pn:type="FILE_VHDL">
|
<file xil_pn:name="Adder.vhd" xil_pn:type="FILE_VHDL">
|
||||||
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
|
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
|
||||||
<association xil_pn:name="Implementation" xil_pn:seqID="2"/>
|
<association xil_pn:name="Implementation" xil_pn:seqID="4"/>
|
||||||
</file>
|
</file>
|
||||||
<file xil_pn:name="AddSub.vhd" xil_pn:type="FILE_VHDL">
|
<file xil_pn:name="AddSub.vhd" xil_pn:type="FILE_VHDL">
|
||||||
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
|
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
|
||||||
<association xil_pn:name="Implementation" xil_pn:seqID="6"/>
|
<association xil_pn:name="Implementation" xil_pn:seqID="11"/>
|
||||||
</file>
|
</file>
|
||||||
<file xil_pn:name="AddSubTest.vhd" xil_pn:type="FILE_VHDL">
|
<file xil_pn:name="AddSubTest.vhd" xil_pn:type="FILE_VHDL">
|
||||||
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
|
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
|
||||||
@@ -95,19 +95,19 @@
|
|||||||
</file>
|
</file>
|
||||||
<file xil_pn:name="CarryLookAhead.vhd" xil_pn:type="FILE_VHDL">
|
<file xil_pn:name="CarryLookAhead.vhd" xil_pn:type="FILE_VHDL">
|
||||||
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
|
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
|
||||||
<association xil_pn:name="Implementation" xil_pn:seqID="0"/>
|
<association xil_pn:name="Implementation" xil_pn:seqID="20"/>
|
||||||
</file>
|
</file>
|
||||||
<file xil_pn:name="ShiftRight.vhd" xil_pn:type="FILE_VHDL">
|
<file xil_pn:name="ShiftRight.vhd" xil_pn:type="FILE_VHDL">
|
||||||
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
|
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
|
||||||
<association xil_pn:name="Implementation" xil_pn:seqID="0"/>
|
<association xil_pn:name="Implementation" xil_pn:seqID="7"/>
|
||||||
</file>
|
</file>
|
||||||
<file xil_pn:name="SumDataAdapter.vhd" xil_pn:type="FILE_VHDL">
|
<file xil_pn:name="SumDataAdapter.vhd" xil_pn:type="FILE_VHDL">
|
||||||
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
|
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
|
||||||
<association xil_pn:name="Implementation" xil_pn:seqID="0"/>
|
<association xil_pn:name="Implementation" xil_pn:seqID="14"/>
|
||||||
</file>
|
</file>
|
||||||
<file xil_pn:name="Normalizer.vhd" xil_pn:type="FILE_VHDL">
|
<file xil_pn:name="Normalizer.vhd" xil_pn:type="FILE_VHDL">
|
||||||
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
|
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
|
||||||
<association xil_pn:name="Implementation" xil_pn:seqID="7"/>
|
<association xil_pn:name="Implementation" xil_pn:seqID="19"/>
|
||||||
</file>
|
</file>
|
||||||
<file xil_pn:name="SumDataAdapterTest.vhd" xil_pn:type="FILE_VHDL">
|
<file xil_pn:name="SumDataAdapterTest.vhd" xil_pn:type="FILE_VHDL">
|
||||||
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
|
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
|
||||||
@@ -141,7 +141,7 @@
|
|||||||
</file>
|
</file>
|
||||||
<file xil_pn:name="ZeroCounter.vhd" xil_pn:type="FILE_VHDL">
|
<file xil_pn:name="ZeroCounter.vhd" xil_pn:type="FILE_VHDL">
|
||||||
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="1"/>
|
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="1"/>
|
||||||
<association xil_pn:name="Implementation" xil_pn:seqID="3"/>
|
<association xil_pn:name="Implementation" xil_pn:seqID="5"/>
|
||||||
</file>
|
</file>
|
||||||
<file xil_pn:name="ZeroCounterTest.vhd" xil_pn:type="FILE_VHDL">
|
<file xil_pn:name="ZeroCounterTest.vhd" xil_pn:type="FILE_VHDL">
|
||||||
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="2"/>
|
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="2"/>
|
||||||
@@ -151,7 +151,7 @@
|
|||||||
</file>
|
</file>
|
||||||
<file xil_pn:name="ShiftLeft.vhd" xil_pn:type="FILE_VHDL">
|
<file xil_pn:name="ShiftLeft.vhd" xil_pn:type="FILE_VHDL">
|
||||||
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
|
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
|
||||||
<association xil_pn:name="Implementation" xil_pn:seqID="4"/>
|
<association xil_pn:name="Implementation" xil_pn:seqID="8"/>
|
||||||
</file>
|
</file>
|
||||||
<file xil_pn:name="UTILS.vhd" xil_pn:type="FILE_VHDL">
|
<file xil_pn:name="UTILS.vhd" xil_pn:type="FILE_VHDL">
|
||||||
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
|
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
|
||||||
@@ -159,7 +159,7 @@
|
|||||||
</file>
|
</file>
|
||||||
<file xil_pn:name="OutputSelector.vhd" xil_pn:type="FILE_VHDL">
|
<file xil_pn:name="OutputSelector.vhd" xil_pn:type="FILE_VHDL">
|
||||||
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="1"/>
|
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="1"/>
|
||||||
<association xil_pn:name="Implementation" xil_pn:seqID="0"/>
|
<association xil_pn:name="Implementation" xil_pn:seqID="17"/>
|
||||||
</file>
|
</file>
|
||||||
<file xil_pn:name="OutputSelectorTest.vhd" xil_pn:type="FILE_VHDL">
|
<file xil_pn:name="OutputSelectorTest.vhd" xil_pn:type="FILE_VHDL">
|
||||||
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="2"/>
|
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="2"/>
|
||||||
@@ -167,6 +167,30 @@
|
|||||||
<association xil_pn:name="PostRouteSimulation" xil_pn:seqID="305"/>
|
<association xil_pn:name="PostRouteSimulation" xil_pn:seqID="305"/>
|
||||||
<association xil_pn:name="PostTranslateSimulation" xil_pn:seqID="305"/>
|
<association xil_pn:name="PostTranslateSimulation" xil_pn:seqID="305"/>
|
||||||
</file>
|
</file>
|
||||||
|
<file xil_pn:name="PipelineStageOne.vhd" xil_pn:type="FILE_VHDL">
|
||||||
|
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="318"/>
|
||||||
|
<association xil_pn:name="Implementation" xil_pn:seqID="23"/>
|
||||||
|
</file>
|
||||||
|
<file xil_pn:name="PipelineStageTwo.vhd" xil_pn:type="FILE_VHDL">
|
||||||
|
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="329"/>
|
||||||
|
<association xil_pn:name="Implementation" xil_pn:seqID="21"/>
|
||||||
|
</file>
|
||||||
|
<file xil_pn:name="PipelineStageThree.vhd" xil_pn:type="FILE_VHDL">
|
||||||
|
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="350"/>
|
||||||
|
<association xil_pn:name="Implementation" xil_pn:seqID="22"/>
|
||||||
|
</file>
|
||||||
|
<file xil_pn:name="IEEE754Adder.vhd" xil_pn:type="FILE_VHDL">
|
||||||
|
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="362"/>
|
||||||
|
<association xil_pn:name="Implementation" xil_pn:seqID="26"/>
|
||||||
|
</file>
|
||||||
|
<file xil_pn:name="FlipFlopD.vhd" xil_pn:type="FILE_VHDL">
|
||||||
|
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="363"/>
|
||||||
|
<association xil_pn:name="Implementation" xil_pn:seqID="25"/>
|
||||||
|
</file>
|
||||||
|
<file xil_pn:name="FlipFlopDVector.vhd" xil_pn:type="FILE_VHDL">
|
||||||
|
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="375"/>
|
||||||
|
<association xil_pn:name="Implementation" xil_pn:seqID="24"/>
|
||||||
|
</file>
|
||||||
</files>
|
</files>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
@@ -287,9 +311,9 @@
|
|||||||
<property xil_pn:name="ISim UUT Instance Name" xil_pn:value="UUT" xil_pn:valueState="default"/>
|
<property xil_pn:name="ISim UUT Instance Name" xil_pn:value="UUT" xil_pn:valueState="default"/>
|
||||||
<property xil_pn:name="Ignore User Timing Constraints Map" xil_pn:value="false" xil_pn:valueState="default"/>
|
<property xil_pn:name="Ignore User Timing Constraints Map" xil_pn:value="false" xil_pn:valueState="default"/>
|
||||||
<property xil_pn:name="Ignore User Timing Constraints Par" xil_pn:value="false" xil_pn:valueState="default"/>
|
<property xil_pn:name="Ignore User Timing Constraints Par" xil_pn:value="false" xil_pn:valueState="default"/>
|
||||||
<property xil_pn:name="Implementation Top" xil_pn:value="Architecture|Normalizer|NormalizerArch" xil_pn:valueState="non-default"/>
|
<property xil_pn:name="Implementation Top" xil_pn:value="Architecture|IEEE754Adder|Behavioral" xil_pn:valueState="non-default"/>
|
||||||
<property xil_pn:name="Implementation Top File" xil_pn:value="Normalizer.vhd" xil_pn:valueState="non-default"/>
|
<property xil_pn:name="Implementation Top File" xil_pn:value="IEEE754Adder.vhd" xil_pn:valueState="non-default"/>
|
||||||
<property xil_pn:name="Implementation Top Instance Path" xil_pn:value="/Normalizer" xil_pn:valueState="non-default"/>
|
<property xil_pn:name="Implementation Top Instance Path" xil_pn:value="/IEEE754Adder" xil_pn:valueState="non-default"/>
|
||||||
<property xil_pn:name="Include 'uselib Directive in Verilog File" xil_pn:value="false" xil_pn:valueState="default"/>
|
<property xil_pn:name="Include 'uselib Directive in Verilog File" xil_pn:value="false" xil_pn:valueState="default"/>
|
||||||
<property xil_pn:name="Include SIMPRIM Models in Verilog File" xil_pn:value="false" xil_pn:valueState="default"/>
|
<property xil_pn:name="Include SIMPRIM Models in Verilog File" xil_pn:value="false" xil_pn:valueState="default"/>
|
||||||
<property xil_pn:name="Include UNISIM Models in Verilog File" xil_pn:value="false" xil_pn:valueState="default"/>
|
<property xil_pn:name="Include UNISIM Models in Verilog File" xil_pn:value="false" xil_pn:valueState="default"/>
|
||||||
@@ -358,7 +382,7 @@
|
|||||||
<property xil_pn:name="Other XPWR Command Line Options" xil_pn:value="" xil_pn:valueState="default"/>
|
<property xil_pn:name="Other XPWR Command Line Options" xil_pn:value="" xil_pn:valueState="default"/>
|
||||||
<property xil_pn:name="Other XST Command Line Options" xil_pn:value="" xil_pn:valueState="default"/>
|
<property xil_pn:name="Other XST Command Line Options" xil_pn:value="" xil_pn:valueState="default"/>
|
||||||
<property xil_pn:name="Output Extended Identifiers" xil_pn:value="false" xil_pn:valueState="default"/>
|
<property xil_pn:name="Output Extended Identifiers" xil_pn:value="false" xil_pn:valueState="default"/>
|
||||||
<property xil_pn:name="Output File Name" xil_pn:value="Normalizer" xil_pn:valueState="default"/>
|
<property xil_pn:name="Output File Name" xil_pn:value="IEEE754Adder" xil_pn:valueState="default"/>
|
||||||
<property xil_pn:name="Overwrite Compiled Libraries" xil_pn:value="false" xil_pn:valueState="default"/>
|
<property xil_pn:name="Overwrite Compiled Libraries" xil_pn:value="false" xil_pn:valueState="default"/>
|
||||||
<property xil_pn:name="Pack I/O Registers into IOBs" xil_pn:value="Auto" xil_pn:valueState="default"/>
|
<property xil_pn:name="Pack I/O Registers into IOBs" xil_pn:value="Auto" xil_pn:valueState="default"/>
|
||||||
<property xil_pn:name="Pack I/O Registers/Latches into IOBs" xil_pn:value="Off" xil_pn:valueState="default"/>
|
<property xil_pn:name="Pack I/O Registers/Latches into IOBs" xil_pn:value="Off" xil_pn:valueState="default"/>
|
||||||
@@ -373,10 +397,10 @@
|
|||||||
<property xil_pn:name="Placer Effort Level Map" xil_pn:value="High" xil_pn:valueState="default"/>
|
<property xil_pn:name="Placer Effort Level Map" xil_pn:value="High" xil_pn:valueState="default"/>
|
||||||
<property xil_pn:name="Placer Extra Effort Map" xil_pn:value="None" xil_pn:valueState="default"/>
|
<property xil_pn:name="Placer Extra Effort Map" xil_pn:value="None" xil_pn:valueState="default"/>
|
||||||
<property xil_pn:name="Port to be used" xil_pn:value="Auto - default" xil_pn:valueState="default"/>
|
<property xil_pn:name="Port to be used" xil_pn:value="Auto - default" xil_pn:valueState="default"/>
|
||||||
<property xil_pn:name="Post Map Simulation Model Name" xil_pn:value="Normalizer_map.v" xil_pn:valueState="default"/>
|
<property xil_pn:name="Post Map Simulation Model Name" xil_pn:value="IEEE754Adder_map.v" xil_pn:valueState="default"/>
|
||||||
<property xil_pn:name="Post Place & Route Simulation Model Name" xil_pn:value="Normalizer_timesim.v" xil_pn:valueState="default"/>
|
<property xil_pn:name="Post Place & Route Simulation Model Name" xil_pn:value="IEEE754Adder_timesim.v" xil_pn:valueState="default"/>
|
||||||
<property xil_pn:name="Post Synthesis Simulation Model Name" xil_pn:value="Normalizer_synthesis.v" xil_pn:valueState="default"/>
|
<property xil_pn:name="Post Synthesis Simulation Model Name" xil_pn:value="IEEE754Adder_synthesis.v" xil_pn:valueState="default"/>
|
||||||
<property xil_pn:name="Post Translate Simulation Model Name" xil_pn:value="Normalizer_translate.v" xil_pn:valueState="default"/>
|
<property xil_pn:name="Post Translate Simulation Model Name" xil_pn:value="IEEE754Adder_translate.v" xil_pn:valueState="default"/>
|
||||||
<property xil_pn:name="Power Reduction Map" xil_pn:value="false" xil_pn:valueState="default"/>
|
<property xil_pn:name="Power Reduction Map" xil_pn:value="false" xil_pn:valueState="default"/>
|
||||||
<property xil_pn:name="Power Reduction Map spartan6" xil_pn:value="Off" xil_pn:valueState="default"/>
|
<property xil_pn:name="Power Reduction Map spartan6" xil_pn:value="Off" xil_pn:valueState="default"/>
|
||||||
<property xil_pn:name="Power Reduction Par" xil_pn:value="false" xil_pn:valueState="default"/>
|
<property xil_pn:name="Power Reduction Par" xil_pn:value="false" xil_pn:valueState="default"/>
|
||||||
|
|||||||
83
PipelineStageOne.vhd
Normal file
83
PipelineStageOne.vhd
Normal file
@@ -0,0 +1,83 @@
|
|||||||
|
library IEEE;
|
||||||
|
use IEEE.STD_LOGIC_1164.ALL;
|
||||||
|
|
||||||
|
entity PipelineStageOne is
|
||||||
|
|
||||||
|
port(
|
||||||
|
X, Y : in std_logic_vector(31 downto 0);
|
||||||
|
DIFF_EXP_ABS : out std_logic_vector(8 downto 0);
|
||||||
|
A, B : out std_logic_vector(31 downto 0);
|
||||||
|
IS_NAN, IS_ZERO : out std_logic
|
||||||
|
);
|
||||||
|
|
||||||
|
end PipelineStageOne;
|
||||||
|
|
||||||
|
architecture StageOneArch of PipelineStageOne is
|
||||||
|
|
||||||
|
component SpecialCasesCheck is
|
||||||
|
|
||||||
|
port(
|
||||||
|
X, Y : in std_logic_vector(31 downto 0);
|
||||||
|
IS_NAN, IS_ZERO : out std_logic
|
||||||
|
);
|
||||||
|
|
||||||
|
end component;
|
||||||
|
|
||||||
|
component PrepareForShift is
|
||||||
|
|
||||||
|
port(
|
||||||
|
X, Y : in std_logic_vector(30 downto 0);
|
||||||
|
DIFF_EXP : out std_logic_vector(8 downto 0);
|
||||||
|
NEED_SWAP : out std_logic
|
||||||
|
);
|
||||||
|
|
||||||
|
end component;
|
||||||
|
|
||||||
|
component Swap is
|
||||||
|
|
||||||
|
generic(
|
||||||
|
BITCOUNT : integer := 8
|
||||||
|
);
|
||||||
|
|
||||||
|
port(
|
||||||
|
X_IN, Y_IN : in std_logic_vector((BITCOUNT-1) downto 0);
|
||||||
|
SW : in std_logic;
|
||||||
|
X_OUT, Y_OUT : out std_logic_vector((BITCOUNT-1) downto 0)
|
||||||
|
);
|
||||||
|
|
||||||
|
end component;
|
||||||
|
|
||||||
|
component TwoComplement is
|
||||||
|
|
||||||
|
generic(
|
||||||
|
BITCOUNT : integer := 8
|
||||||
|
);
|
||||||
|
|
||||||
|
port(
|
||||||
|
DIFF_EXP_C2 : in std_logic_vector((BITCOUNT-1) downto 0);
|
||||||
|
DIFF_EXP : out std_logic_vector((BITCOUNT-1) downto 0)
|
||||||
|
);
|
||||||
|
|
||||||
|
end component;
|
||||||
|
|
||||||
|
signal DIFF_EXP_C2 : std_logic_vector(8 downto 0);
|
||||||
|
signal SW : std_logic;
|
||||||
|
|
||||||
|
begin
|
||||||
|
|
||||||
|
SPC : SpecialCasesCheck
|
||||||
|
port map (X => X, Y => Y, IS_NAN => IS_NAN, IS_ZERO => IS_ZERO);
|
||||||
|
|
||||||
|
PFS : PrepareForShift
|
||||||
|
port map (X => X(30 downto 0), Y => Y(30 downto 0), DIFF_EXP => DIFF_EXP_C2, NEED_SWAP => SW);
|
||||||
|
|
||||||
|
S : Swap
|
||||||
|
generic map (BITCOUNT => 32)
|
||||||
|
port map (X_IN => X, Y_IN => Y, SW => SW, X_OUT => A, Y_OUT => B);
|
||||||
|
|
||||||
|
C2 : TwoComplement
|
||||||
|
generic map (BITCOUNT => 9)
|
||||||
|
port map (DIFF_EXP_C2 => DIFF_EXP_C2, DIFF_EXP => DIFF_EXP_ABS);
|
||||||
|
|
||||||
|
end StageOneArch;
|
||||||
|
|
||||||
64
PipelineStageThree.vhd
Normal file
64
PipelineStageThree.vhd
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
library IEEE;
|
||||||
|
use IEEE.STD_LOGIC_1164.ALL;
|
||||||
|
|
||||||
|
entity PipelineStageThree is
|
||||||
|
|
||||||
|
port(
|
||||||
|
RES_SIGN : in std_logic;
|
||||||
|
EXP : in std_logic_vector(7 downto 0);
|
||||||
|
MANT : in std_logic_vector(47 downto 0);
|
||||||
|
MANT_OF : in std_logic;
|
||||||
|
IS_NAN, IS_ZERO : in std_logic;
|
||||||
|
FINAL_RES : out std_logic_vector(31 downto 0)
|
||||||
|
);
|
||||||
|
|
||||||
|
end PipelineStageThree;
|
||||||
|
|
||||||
|
architecture StageThreeArch of PipelineStageThree is
|
||||||
|
|
||||||
|
component Normalizer is
|
||||||
|
|
||||||
|
port(
|
||||||
|
SIGN : in std_logic;
|
||||||
|
EXP : in std_logic_vector(7 downto 0);
|
||||||
|
MANT : in std_logic_vector(47 downto 0);
|
||||||
|
SUM_OVERFLOW : in std_logic;
|
||||||
|
IEEE_754_SUM : out std_logic_vector(31 downto 0)
|
||||||
|
);
|
||||||
|
|
||||||
|
end component;
|
||||||
|
|
||||||
|
component OutputSelector is
|
||||||
|
|
||||||
|
port(
|
||||||
|
IS_NAN : in std_logic;
|
||||||
|
IS_ZERO : in std_logic;
|
||||||
|
IEEE_754_SUM : in std_logic_vector(31 downto 0);
|
||||||
|
RESULT : out std_logic_vector(31 downto 0)
|
||||||
|
);
|
||||||
|
|
||||||
|
end component;
|
||||||
|
|
||||||
|
signal NORMALIZED : std_logic_vector(31 downto 0);
|
||||||
|
|
||||||
|
begin
|
||||||
|
|
||||||
|
N : Normalizer
|
||||||
|
port map (
|
||||||
|
SIGN => RES_SIGN,
|
||||||
|
EXP => EXP,
|
||||||
|
MANT => MANT,
|
||||||
|
SUM_OVERFLOW => MANT_OF,
|
||||||
|
IEEE_754_SUM => NORMALIZED
|
||||||
|
);
|
||||||
|
|
||||||
|
OS : OutputSelector
|
||||||
|
port map (
|
||||||
|
IS_NAN => IS_NAN,
|
||||||
|
IS_ZERO => IS_ZERO,
|
||||||
|
IEEE_754_SUM => NORMALIZED,
|
||||||
|
RESULT => FINAL_RES
|
||||||
|
);
|
||||||
|
|
||||||
|
end StageThreeArch;
|
||||||
|
|
||||||
80
PipelineStageTwo.vhd
Normal file
80
PipelineStageTwo.vhd
Normal file
@@ -0,0 +1,80 @@
|
|||||||
|
library IEEE;
|
||||||
|
use IEEE.STD_LOGIC_1164.ALL;
|
||||||
|
|
||||||
|
entity PipelineStageTwo is
|
||||||
|
|
||||||
|
port(
|
||||||
|
A, B : in std_logic_vector(31 downto 0);
|
||||||
|
DIFF_EXP_ABS : in std_logic_vector(8 downto 0);
|
||||||
|
IS_NAN_IN, IS_ZERO_IN : in std_logic;
|
||||||
|
EXP : out std_logic_vector(7 downto 0);
|
||||||
|
SUM_RESULT : out std_logic_vector(47 downto 0);
|
||||||
|
SUM_OF : out std_logic;
|
||||||
|
RES_SIGN : out std_logic;
|
||||||
|
IS_NAN_OUT, IS_ZERO_OUT : out std_logic
|
||||||
|
);
|
||||||
|
|
||||||
|
end PipelineStageTwo;
|
||||||
|
|
||||||
|
architecture StageTwoArch of PipelineStageTwo is
|
||||||
|
|
||||||
|
component SumDataAdapter is
|
||||||
|
|
||||||
|
port(
|
||||||
|
X_IN, Y_IN : in std_logic_vector(30 downto 0);
|
||||||
|
DIFF_EXP : in std_logic_vector(8 downto 0);
|
||||||
|
X_OUT, Y_OUT : out std_logic_vector(47 downto 0)
|
||||||
|
);
|
||||||
|
|
||||||
|
end component;
|
||||||
|
|
||||||
|
component CarryLookAhead is
|
||||||
|
|
||||||
|
port(
|
||||||
|
X, Y : in std_logic_vector(47 downto 0);
|
||||||
|
OP : in std_logic;
|
||||||
|
RESULT : out std_logic_vector(47 downto 0);
|
||||||
|
OVERFLOW : out std_logic
|
||||||
|
);
|
||||||
|
|
||||||
|
end component;
|
||||||
|
|
||||||
|
component OperationCheck is
|
||||||
|
|
||||||
|
port(
|
||||||
|
X_SIGN, Y_SIGN : in std_logic;
|
||||||
|
OP, RES_SIGN : out std_logic
|
||||||
|
);
|
||||||
|
|
||||||
|
end component;
|
||||||
|
|
||||||
|
signal MANT_EXT_A : std_logic_vector(47 downto 0);
|
||||||
|
signal MANT_EXT_B : std_logic_vector(47 downto 0);
|
||||||
|
signal OP : std_logic;
|
||||||
|
|
||||||
|
begin
|
||||||
|
|
||||||
|
SH : SumDataAdapter
|
||||||
|
port map (
|
||||||
|
X_IN => A(30 downto 0), Y_IN => B(30 downto 0),
|
||||||
|
DIFF_EXP => DIFF_EXP_ABS, X_OUT => MANT_EXT_A, Y_OUT => MANT_EXT_B
|
||||||
|
);
|
||||||
|
|
||||||
|
OC : OperationCheck
|
||||||
|
port map (X_SIGN => A(31), Y_SIGN => B(31), OP => OP, RES_SIGN => RES_SIGN);
|
||||||
|
|
||||||
|
CLA : CarryLookAhead
|
||||||
|
port map (
|
||||||
|
X => MANT_EXT_A,
|
||||||
|
Y => MANT_EXT_B,
|
||||||
|
OP => OP,
|
||||||
|
RESULT => SUM_RESULT,
|
||||||
|
OVERFLOW => SUM_OF
|
||||||
|
);
|
||||||
|
|
||||||
|
IS_NAN_OUT <= IS_NAN_IN;
|
||||||
|
IS_ZERO_OUT <= IS_ZERO_IN;
|
||||||
|
EXP <= A(30 downto 23);
|
||||||
|
|
||||||
|
end StageTwoArch;
|
||||||
|
|
||||||
Reference in New Issue
Block a user