Initial commit
This commit is contained in:
commit
f0ce9c44cc
43 files changed
+1815
No files matched your search
@@ -0,0 +1,68 @@
|
||||
|
||||
library IEEE;
|
||||
use IEEE.STD_LOGIC_1164.ALL; -- Bibliothek für std_logic und std_logic_vector
|
||||
use IEEE.NUMERIC_STD.ALL; -- Bibliothek für signed und unsigned Datentypen
|
||||
|
||||
entity top_entity_float_add is
|
||||
port (
|
||||
clk : in std_logic; -- Eingangssignal Systemtakt
|
||||
reset : in std_logic; -- Eingangssignal Reset zum Setzen der Default Werte
|
||||
run_calc: in std_logic; -- Eingangssignal wenn aktiv soll gerechnet werden
|
||||
operand_a : in STD_LOGIC_VECTOR(31 downto 0); -- Erster Operand in 32-bit float
|
||||
operand_b : in STD_LOGIC_VECTOR(31 downto 0); -- Zweiter Operand in 32-bit float
|
||||
result : out std_logic_vector(31 downto 0); -- Endergebnis Berechnung Addition (im slv ist ein 32-bit float gespeichert)
|
||||
calc_complete : out std_logic -- Flag das anzeiugt wann die Berechnung fertig ist (bei 1=high)
|
||||
);
|
||||
end top_entity_float_add;
|
||||
|
||||
architecture Behavioral of top_entity_float_add is
|
||||
|
||||
-- Legen Sie ein signal result_sum als std_logic_vector mit Laenge 32 Bit an
|
||||
|
||||
-- Legen Sie ein signal start als std_logic
|
||||
|
||||
-- Legen Sie ein signal done als std_logic
|
||||
|
||||
begin
|
||||
|
||||
-- Instanziieren Sie direkt die float_add Komponente
|
||||
-- Als Takt und Reset sollen die jeweiligen Eingaenge der top_entity_float_add uebergeben werden
|
||||
-- An den anderen Ports die jeweiligen zugehoerigen Signale (welche oben angelegt worden sind)
|
||||
u_float_add : entity work.float_add
|
||||
port map(
|
||||
-- Eingangssignal fuer den Takt
|
||||
clk => ,
|
||||
-- Eingangssignal zum Zuruecksetzen des Zaehlers
|
||||
reset => ,
|
||||
-- Eingang um die Berechnung zu starten
|
||||
start => ,
|
||||
-- Ausgang der anzeigt, dass die Berechnung fertig ist
|
||||
done => ,
|
||||
-- floating point operand a
|
||||
A => ,
|
||||
-- floating point operand b
|
||||
B => ,
|
||||
-- Ergebnis der Addition in floating point
|
||||
sum =>
|
||||
);
|
||||
|
||||
-- Realisieren Sie einen getakteten Prozess control mit folgenden Verhalten
|
||||
--
|
||||
-- Initialisierung der Signale bei Reset aktiv (reset=1):
|
||||
-- result soll=0 sein
|
||||
-- start soll=0 sein
|
||||
-- calc_complete soll=0 sein
|
||||
--
|
||||
-- bei steigende Flanke:
|
||||
-- Nur wenn run_calc gleich 1 ist:
|
||||
-- dann soll wenn done=1 und start=1 ist
|
||||
-- start=0, calc_complete=1 und result_sum dem Ausgang result zugewiesen werden
|
||||
-- ansonsten soll
|
||||
-- start=1, calc_complete=0 sein
|
||||
--
|
||||
control : process(reset,clk)
|
||||
begin
|
||||
|
||||
end process control;
|
||||
|
||||
end Behavioral;
|
||||
Reference in new issue
Block a user