Hallo, vielleicht ist es zu spät und ich bin Matsche im Kopf, aber das finde ich seltsam, also ein Minimalbeispiel:
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 |
|
18 |
|
19 |
|
20 |
|
21 |
|
22 |
|
23 |
|
24 |
|
Welchen Wert nimmt counter maximal an? Ja, richtig, 16.
Warum ist das so? Weil
while counter < 15 loop
dann schon wieder ausgewertet wird wenn die Addition/Zuweisung
counter <= counter + 1;
noch nicht fertig ist. Schreibt man noch einen kurzen wait dazu
counter <= counter + 1; wait for 1 ps;
funktioniert es wie gewünscht.
Meine Frage ist, ob das jetzt schlicht normales Verhalten ist, also alles OK, oder ob das in aktuelleren Modelsim Versionen anders ist. Ich verwende die letzte freie von Intel, 2020.1.
Vielen Dank!