hi ines,
alles ein wenig verwirrend... ;-)
ich habe die halbierte clock hc aus folgendem code erzeugt:
entity halber_takt is
port ( clock1 : in std_logic;
start : in std_logic;
rst : in std_logic;
hc : out std_logic);
end halber_takt;
architecture behav of halber_takt is
signal hc_tmp : std_logic;
begin
process(rst,clock1)
variable start : boolean;
begin
if rst = '0' then
hc_tmp <= '0';
elsif rising_edge(clock1) then
if start = '1' then
hc_tmp <= not hc_tmp;
end if;
hc <= hc_tmp;
end if;
end process;
end behav;
dabei soll die variable start den beginn der halben taktgenerierung
kennzeichnen.
diesen halbierten takt hc möchte ich nun neben datensignalen, die auf
diesen halben takt adaptiert sind (1 bitausgabe => 1 hc periode), einem
weiteren modul als eingangssignal hinzuführen. die weitere
datenverarbeitung geschieht dann mit einem prozess, der neben der hohen
systemclock clk noch den reset rst in der sensitivitätsliste beinhaltet.
die vorher generierte hc wird dann über das folgende konstrukt auf den
systemtakt clk einsynchronisiert:
..
signal hc_tmp1 : std_logic;
signal hc_tmp2 : std_logic;
..
if(reset = '0') then
..
hc_tmp1 <= '0';
hc_tmp2 <= '0';
..
elsif(clk'event and clk = '1') then
hc_tmp1 <= hc_in;
hc_tmp2 <= hc_tmp1;
if (hc_tmp1=1 and hc_tmp2=0) then
...
end if;
end if;
und dann die weitere datenverarbeitung bishin zur Ausgabe vorgenommen.
Diese Ausgabe wird wieder
Meine Frage ist, ob nun das nachfolgende design, das mehrere module
enthält, wo der vorher generierte hc als zusätzliches eingangssignal
dient, synchron ist....
danke für deinen support!