LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.NUMERIC_STD.ALL; ----------------------------------------------------------------------------------------------------------- --zu rekonstruierendes Audiosignal flackert mit 49kHz wenn ein High Pegel detektiert wurde. --Bei jedem High pegel wird ein counter zurück gesetzt und das reconstruierte Audiosignal auf '0' gesetzt. --Bei einem low wird erst 55 Takte abgewartet bis das Audiosignal auf '1' gesetzt wird. ----------------------------------------------------------------------------------------------------------- ENTITY Audio_Reconstruction IS PORT ( audio_peak :in std_ulogic; --eingehendes zu rekonstruierendes Audiosignal clk :in std_ulogic; --49k samples/s reset :in std_ulogic; rec_audio : out std_ulogic --reconstruiertes Audiosignal, dass wie das Morsetatser Signal funkioniert ); END Audio_Reconstruction; ARCHITECTURE structure OF Audio_Reconstruction IS signal counter_low : natural range 0 to 26107200 :=0; begin process (clk, reset, audio_peak) begin if reset = '0' then rec_audio <= '1'; elsif clk'event and clk = '1' then if audio_peak ='1' then counter_low <= 0; --ist das signal high wird der Counter zurückgesetzt elsif audio_peak ='0' then counter_low <= counter_low + 1; end if; if counter_low > 55 then rec_audio <= '1'; --Invertierte Logic um Logic des Morsetatsers zu folgen elsif counter_low <= 55 then rec_audio <= '0'; end if; end if; end process; end architecture;