Forum: FPGA, VHDL & Co. Frage zu Testbench Output


von Martin (Gast)


Lesenswert?

Hallo zusammen,

ich habe ein Verständnis problem zu den Log ausgaben meiner Testbench. 
Dazu erst einmal ein Auszug aus dem Code
1
gTestEn <= "1101";
2
signal sActiveCheck : natural;
3
4
...
5
6
  report "Run Check0:" severity note;
7
  sActiveCheck <= 0;
8
  if (gTestEn(0) = '1') then
9
    -- Führe Test 0 durch
10
    vTestResult := ";passed";
11
  else
12
    vTestResult := ";ignored";
13
  end if;
14
  report "Result:" & cTestBenchName & ";#" & integer'image(sActiveCheck) & vTestResult;
15
  
16
  report "Run Check1:" severity note;
17
  sActiveCheck <= 1;
18
  if (gTestEn(1) = '1') then
19
    -- Führe Test 1 durch
20
    vTestResult := ";passed";
21
  else
22
    vTestResult := ";ignored";
23
  end if;
24
  report "Result:" & cTestBenchName & ";#" & integer'image(sActiveCheck) & vTestResult;
25
  
26
  -- ...

Dies führt zu der folgenden Ausgabe:
1
Run Check0:
2
Result: MyTestbench;#0;passed
3
Run Check1:
4
Result: MyTestbench;#0;ignored
5
Run Check2:
6
Result: MyTestbench;#2;passed
7
...

Nun meine Frage: Warum erhalte ich das Ergebnis
  Result: MyTestbench;#*0*;ignored
und nicht
  Result: MyTestbench;#*1*;ignored?

Die Variable vTestResult wird ja übernommen, der Wert des Signales 
sActiveCheck jedoch nicht...
Ich freu mich auf eure Erläuterungen.

Vielen Dank,
Martin

von Duke Scarring (Gast)


Lesenswert?

Martin schrieb:
> Variable
...
> wird ja übernommen, der Wert des Signales
...
> jedoch nicht...

Du hast gerade den Unterschied zwischen Variable und Signal gefunden.

Duke

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Schreib das mal so:
1
  sActiveCheck <= 0;
2
  wait for 0 ns;
Hintergrund: beim nächsten wait werden auch Signale aktualisiert...

von Martin (Gast)


Lesenswert?

Vielen Dank für den Wait Tip, dass es mit dem unterschied zwischen 
Signal und Variable zusammenhängt,hab ich mir gedacht, aber keine Idee 
gehabt, wie ich das umgehen kann.

Wieder was dazugelernt :-)

Schönen Tag noch,
Martin

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.