-- Dateiname: soundmap -- Design Software : Quartus II 13.0sp1 (64-bit) -- -- Erstellt: -- von - Bouchnak wassim -- -- hier wird mehrere durch einen Wertebereich eingegrenzte datentype deklariert, die den Typ und die Wertengrenze des Rom festlegen -- Anschlißend wird eine Konstante deklariert, die den Inhalt des ROM-Speichers enthält. -------------------------------------------------------------------------------- library ieee; use ieee.std_logic_1164.all; package soundmap is -- Deklaration eines durch einen Wertebereich eingegrenzte Untertyps, der die Zeilengrenze darstellt subtype row_range is natural range 0 to 94; -- Deklaration eines Untertyps, der die Spaltengrenze darstellt subtype col_range is natural range 15 downto 0; -- Deklaration eines Typs, der die Zeilen und spalten Wertebereich des ROM-Speichers darstellt type soundmap_type is array (row_range) of std_logic_vector(col_range); -- Deklaration einer Konstante , die den Inhalt des ROM-Speichers enthält. constant soundmap : soundmap_type := ( x"B300", x"5D06", x"FA0D", x"8213", x"E81A", x"3320", x"4727", x"362D", x"E233", x"5738", x"843E", x"6943", x"FC48", x"3F4C", x"2351", x"AE55", x"D958", x"985B", x"FA5E", x"E860", x"6E62", x"8864", x"2B65", x"6A66", x"2B66", x"8866", x"6F65", x"E764", x"FA62", x"9960", x"D75E", x"B05B", x"2358", x"3E55", x"FE51", x"654C", x"8948", x"5343", x"E63E", x"3238", x"4B33", x"2F2D", x"EC27", x"7F20", x"FB1A", x"5F13", x"B00D", x"0306", x"4B00", x"A4F9", x"05F2", x"80EC", x"14E5", x"D3DF", x"B3D8", x"CED2", x"1CCC", x"A9C7", x"7DC1", x"97BC", x"02B7", x"C3B3", x"DDAE", x"4FAA", x"2DA7", x"61A4", x"0CA1", x"149F", x"939D", x"7A9B", x"D19A", x"9A99", x"D299", x"7899", x"959A", x"139B", x"0C9D", x"629F", x"2BA1", x"51A4", x"DCA7", x"C2AA", x"04AE", x"95B3", x"80B7", x"A5BC", x"20C1", x"C9C7", x"B9CC", x"CED2", x"17D8", x"7EDF", x"07E5", x"A1EC", x"4FF2" ); end package; -- Dateiname: ROM -- Design Software : Quartus II 13.0sp1 (64-bit) -- -- Erstellt: -- von - Bouchnak wassim -- -- -- Es findet die Initialisierung und den Datenfluss eines Rom-speicher mit dem Einsatz von Package -- Soundmap, die im Library morse zu finden ist -------------------------------------------------------------------------------- library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; --Aufruf der Bibliothek morse library morse; -- Aufruf der gesamte Package soundmap use morse.soundmap.all; entity rom is port ( clk : in std_logic; addr : in row_range; --type natural DEPTH = 95 dout : out std_logic_vector(col_range) -- WIDTH = 16 bits; ); end rom; architecture rtl of rom is -- diese konstante enthält die sounddateien constant rom : soundmap_type := soundmap; begin PROC_ROM : process(clk) begin if rising_edge(clk) then dout <= rom(addr); --der Inhalt des rom-Speichers entsprechend der Adresse --wird im nächsten Taktzyklus dem Ausgangssignal zugewiesen end if; end process; -- PROC_ROM end architecture;