library ieee;
|
library ieee;
|
use ieee.std_logic_1164.all;
|
use ieee.std_logic_1164.all;
|
|
|
|
|
|
|
|
|
package arithpack is
|
package arithpack is
|
|
|
constant rstMasterValue : std_logic := '0';
|
constant rstMasterValue : std_logic := '0';
|
|
|
component uf
|
component uf
|
port (
|
port (
|
opcode : in std_logic;
|
opcode : in std_logic;
|
mxfx : in std_logic_vector(12*18-1 downto 0);
|
m0f0,m0f1,m1f0m1f1,m2f0,m2f1,m3f0,m3f1,m4f0,m4f1,m5f0,m5f1 : in std_logic_vector(17 downto 0);
|
cpx,cpy,cpz,dp0,dp1 : out std_logic_vector(31 downto 0)
|
cpx,cpy,cpz,dp0,dp1 : out std_logic_vector(31 downto 0)
|
clk,rst : in std_logic
|
clk,rst : in std_logic
|
);
|
);
|
end component;
|
end component;
|
|
|
component opcoder
|
component opcoder
|
port (
|
port (
|
Ax,Bx,Cx,Dx,Ay,By,Cy,Dy,Az,Bz,Cz,Dz : in std_logic_vector (17 downto 0);
|
Ax,Bx,Cx,Dx,Ay,By,Cy,Dy,Az,Bz,Cz,Dz : in std_logic_vector (17 downto 0);
|
m0f0,m0f1,m1f0m1f1,m2f0,m2f1,m3f0,m3f1,m4f0,m4f1,m5f0,m5f1 : out std_logic_vector (17 downto 0);
|
m0f0,m0f1,m1f0m1f1,m2f0,m2f1,m3f0,m3f1,m4f0,m4f1,m5f0,m5f1 : out std_logic_vector (17 downto 0);
|
opcode,addcode : in std_logic
|
opcode,addcode : in std_logic
|
);
|
);
|
end component;
|
end component;
|
|
|
|
|
component r_a18_b18_smul_c32_r
|
component r_a18_b18_smul_c32_r
|
port (
|
port (
|
aclr,clock:in std_logic;
|
aclr,clock:in std_logic;
|
dataa,datab:in std_logic_vector (17 downto 0);
|
dataa,datab:in std_logic_vector (17 downto 0);
|
result: out std_logic_vector(31 downto 0)
|
result: out std_logic_vector(31 downto 0)
|
);
|
);
|
end component;
|
end component;
|
component cla_logic_block
|
component cla_logic_block
|
generic ( w: integer:=4);
|
generic ( w: integer:=4);
|
port (
|
port (
|
p,g:in std_logic_vector(w-1 downto 0);
|
p,g:in std_logic_vector(w-1 downto 0);
|
cin:in std_logic;
|
cin:in std_logic;
|
c:out std_logic_vector(w downto 1)
|
c:out std_logic_vector(w downto 1)
|
);
|
);
|
end component;
|
end component;
|
component rca_logic_block
|
component rca_logic_block
|
generic ( w : integer := 4);
|
generic ( w : integer := 4);
|
port (
|
port (
|
p,g: in std_logic_vector(w-1 downto 0);
|
p,g: in std_logic_vector(w-1 downto 0);
|
cin: in std_logic;
|
cin: in std_logic;
|
c: out std_logic_vector(w downto 1)
|
c: out std_logic_vector(w downto 1)
|
);
|
);
|
end component;
|
end component;
|
component adder
|
component adder
|
generic (
|
generic (
|
w : integer := 4;
|
w : integer := 4;
|
carry_logic := "CLA";
|
carry_logic := "CLA";
|
substractor_selector := "YES";
|
substractor_selector := "YES";
|
);
|
);
|
port (
|
port (
|
a,b : in std_logic_vector (w-1 downto 0);
|
a,b : in std_logic_vector (w-1 downto 0);
|
s,ci : in std_logic;
|
s,ci : in std_logic;
|
result : out std_logic_vector (w-1 downto 0);
|
result : out std_logic_vector (w-1 downto 0);
|
cout : out std_logic
|
cout : out std_logic
|
);
|
);
|
end component;
|
end component;
|
|
|
end package;
|
end package;
|
|
|