M
mo.khairy.mo
Guest
Hei alle,
Jeg prøver å designe et flyttall huggorm med fordel pro og jeg simulerer den ved hjelp modelsim
denne koden min
Code:
LIBRARY IEEE;
BRUK ieee.std_logic_1164.all;
BRUK ieee.std_logic_arith.all;ENTITY fp_adder IS
- Erklæringer
port (a, b: in std_logic_vector (31 downto 0);
c: out std_logic_vector (31 downto 0)
);
END fp_adder;- HDS interface_end
ARKITEKTUR huggorm AV fp_adder IS
- erklæring om tegn
signal sa, SB, SC: std_logic;
- erklæring om eksponent
signal ea, eb, ec: unsigned (7 downto 0);
- erklæring om mantissa
signal ma, mb, mc: unsigned (22 downto 0);
BEGIN
- asignement av sign signaler
SA <= a (31);
SB <= b (31);
- assignement av eksponent signaler
ea <= usignerte (a (30 downto 23));
eb <= usignerte (b (30 downto 23));
- assignement av mantissa signaler
ma <= usignerte (a (22 downto 0));
mb <= usignerte (b (22 downto 0));
-------------------------------------------------- -------------------------------------------------- --
Prosessen (ea, EB, EC, ma, mb, mc, SA, SB, SC)
begynne
if (ea> eb) så loop
eb <= eb 1;
mb <= '0 '& mb (7 downto 1);
exit når EA = eb;
end loop;
elsif (eb> ea) så loop
ea <= ea 1;
ma <= '0 'og ma (7 downto 1);
exit når EA = eb;
end loop;
ellers
mc <= ma mb;
ec <= ea;
sc <= sa XOR SB;
end if;
end process;
c (22 downto 0) <= std_logic_vector (mc);
c (30 downto 23) <= std_logic_vector (EF);
c (31) <= sc;
END Adder;
Jeg prøver å designe et flyttall huggorm med fordel pro og jeg simulerer den ved hjelp modelsim
denne koden min
Code:
LIBRARY IEEE;
BRUK ieee.std_logic_1164.all;
BRUK ieee.std_logic_arith.all;ENTITY fp_adder IS
- Erklæringer
port (a, b: in std_logic_vector (31 downto 0);
c: out std_logic_vector (31 downto 0)
);
END fp_adder;- HDS interface_end
ARKITEKTUR huggorm AV fp_adder IS
- erklæring om tegn
signal sa, SB, SC: std_logic;
- erklæring om eksponent
signal ea, eb, ec: unsigned (7 downto 0);
- erklæring om mantissa
signal ma, mb, mc: unsigned (22 downto 0);
BEGIN
- asignement av sign signaler
SA <= a (31);
SB <= b (31);
- assignement av eksponent signaler
ea <= usignerte (a (30 downto 23));
eb <= usignerte (b (30 downto 23));
- assignement av mantissa signaler
ma <= usignerte (a (22 downto 0));
mb <= usignerte (b (22 downto 0));
-------------------------------------------------- -------------------------------------------------- --
Prosessen (ea, EB, EC, ma, mb, mc, SA, SB, SC)
begynne
if (ea> eb) så loop
eb <= eb 1;
mb <= '0 '& mb (7 downto 1);
exit når EA = eb;
end loop;
elsif (eb> ea) så loop
ea <= ea 1;
ma <= '0 'og ma (7 downto 1);
exit når EA = eb;
end loop;
ellers
mc <= ma mb;
ec <= ea;
sc <= sa XOR SB;
end if;
end process;
c (22 downto 0) <= std_logic_vector (mc);
c (30 downto 23) <= std_logic_vector (EF);
c (31) <= sc;
END Adder;