Dateiende erkennen mit std.textio

Gast #390022
Lesenswert?

Hallo,

ich habe ne Testbench, in der ich Stimulidaten aus einem txt-File
einlesen will.
Wie kann ich eigentlich das Zeilenende feststellen?
Die Funktion endline() fällt aus, weil die in VHDL'93 nicht mehr
unterstützt wird. Laut Designers Guide kann man dafür die Länge der
Zeilenvariable abfragen mit zB.
1
IF Zeileinhalt'LENGTH = 0 THEN
2
....
Nur muss ich davor natürlich erstmal die Zeile mittels readline()
einlesen, und schon da steigt mir der Simulator mit nem Error aus :-(

Hat jemand zufällig eine Idee für das Problem?


T.M.
Gast #390023
Lesenswert?

Du mußt unterscheiden zwischen Dateiende und Zeilenende.
Bevor Du eine Zeile mit readline einliest, muß du mit endfile()
abfragen, ob überhaupt noch eine Zeile vorhanden ist.
Das Dateiende wird nicht mehr durch Einlesen einer leeren Zeile
erkannt, sondern mittels endfile().

Grüße
Klaus
Gast #390026
Lesenswert?

Hier mal ein Ausschnitt aus nem Testbench der eine Datei einliest
bei read gibt der 3. Parameter zurück ob es geklappt hat

variable NEOL:BOOLEAN:=true;
...
while not endfile(bild) loop
readline(bild,l);
loop
read(l,pixel,NEOL);
exit when not NEOL;
PCLK<='0';
PDAT<=std_logic_vector(TO_Unsigned(pixel,8));
wait for 50 ns;
PCLK<='1';
wait for 50 ns;
end loop;
end loop;

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren