Hi,
ich habe ein kleines Problem mit ISim.
Und zwar möchte ich einen Prozess mit einem Clk-Signal aus einem Bus
treiben (std.log.vec sig_clocks(7 downto 0)). Der VHDL-Code ist
folgender:
1 | process_38mhz: process(sig_clocks(0))
|
2 | begin
|
3 | if rising_edge(sig_clocks(0)) then
|
4 | if clk10Divider = 10 then
|
5 | clk10Divider <= 1;
|
6 | else clk10Divider <= clk10Divider + 1;
|
7 | end if;
|
8 | end if;
|
9 | end process;
|
Das sig_clocks-Signal erkennt man im Screenshot erkennen. Scheinbar
möchte das Signal 'clk10Divider' nicht auf die steigende Flanke von
sig_clocks(0) reagieren und bleibt bei jeder Flanke immer konstant.
Wenn ich das ganze mit einem Hilfs-Signal (std.log clk00) mache
funktioniert der Code (siehe weiterer Screenshot)
1 | clk00 <= sig_clocks(0);
|
2 | process_38mhz: process(clk00)
|
3 | begin
|
4 | if rising_edge(clk00) then
|
5 | if clk10Divider = 10 then
|
6 | clk10Divider <= 1;
|
7 | else clk10Divider <= clk10Divider + 1;
|
8 | end if;
|
9 | end if;
|
10 | end process;
|
Hat jemand eine Ahnung warum das so ist? Ich bin gerade völlig
überfragt.
Danke im Voraus für Antworten!
Gruß, Chris