Stricke gerade Jürgen Schuhmachers SVGAtest
https://www.mikrocontroller.net/articles/Datei:Jsvgademo_s3e.zip für
mein Nexys4 um.
Beim Versuch das Design zu simulieren steigt ISIM aufgrund einer
kombinatorischen Schleife im nachfolgenden Block aus:
1 | ---------------------
|
2 | -- asynch part
|
3 | ---------------------
|
4 |
|
5 | -- here an asynchronous clock will be created toogling the two colour vectors
|
6 |
|
7 |
|
8 | -- generate a toogling clock
|
9 | p_toggle : process(RESET, toggle)
|
10 | begin
|
11 | if (RESET = '1') then
|
12 | toggle <= "00";
|
13 | else
|
14 | toggle <= toggle + "01";
|
15 | end if;
|
16 | end process;
|
17 |
|
18 |
|
19 | p_toggle_cols : process(toggle, color_code, gitter, frame)
|
20 | begin
|
21 | if (toggle = "00" or toggle = "10") then
|
22 | VIDEO_R <= color_code(0);
|
23 | VIDEO_G <= color_code(1);
|
24 | VIDEO_B <= color_code(2);
|
25 | else
|
26 | VIDEO_R <= color_code(3);
|
27 | VIDEO_G <= color_code(4);
|
28 | VIDEO_B <= color_code(5);
|
29 | end if;
|
30 |
|
31 | end process;
|
Die Synthese stört das nicht, warnt aber vor der kombinatorischen
Schleife:
"WARNING:Xst:2170 - Unit VIDEO_OUT : the following signal(s) form a
combinatorial loop: VIDEO_R, toggle[1]_GND_40_o_add_135_OUT<1>,
toggle[1]_toggle[1]_OR_48_o,
Madd_toggle[1]_GND_40_o_add_135_OUT_lut<1>."
Frage - wozu überhaupt eine "asynchrone" Clock an dieser Stelle, welche
"Periode" wäre zu erwarten (der Code war für ein S3E Board) - und - last
not least - durch welches simulator- und syntheseverträgliches Konstrukt
kann ich diesen Block ersetzen?
Gruß,
Burkhard