@ Rudolf S.
Kommst du aus der C-Ecke und hast bisher Software progemmiert?
Die überaus extensive Nutzung von Variablen legt den Verdacht nahe...
Das kann nicht in Hardware umgesetzt werden:
1 | verz <= not verz after (countt);
|
Hier wird die Synthese nicht mal eine Warnung, sondern bestenfalls eine
Info ausspucken, bevor sie das after ignoriert...
Torsten M. schrieb:
> Ist der Code für die Synthese gedacht oder nur für Simulation?
Das kann nur für die Simulation sein, denn sowas packt die Synthese noch
nicht...
Rudolf S. schrieb:
1 | if (clk25mhz'event and clk25mhz = '1') then
|
2 | while wied /= "000000" loop -- while erzeugt prinzipiell erstmal parallele Hardware
|
3 | verz <= not verz after (countt); -- das ist aber nicht so schlimm, denn
|
4 | prell_gen_out <= verz; -- die Signale verz und prell_gen_out sind während der Schleife statisch
|
5 | wied := wied - one;
|
6 | end loop;
|
Und damit könnte dieser ganze Prozess ohne jegliche
Funktionseinschränkung so abgekürzt werden:
1 | verzoegerung : process (clk25mhz) --generiert die verzögerung / zeitstufen
|
2 | begin
|
3 | if (clk25mhz'event and clk25mhz = '1') then -- Synch mit pos Systemclockflanke
|
4 | verz <= not verz after (countt);
|
5 | prell_gen_out <= verz;
|
6 | end if;
|
7 | end process verzoegerung;
|
und das wird die Synthese auch tun. Denk mal drüber nach... :-o