Forum: FPGA, VHDL & Co. write für simulation


von chris (Gast)


Lesenswert?

Hallo,
ich habe ein normalen VHDL code geschrieben.
Für die simulation soll jetzt daten aus einer Datei gelesen bzw
geschrieben werden.
write und read sind ja nicht synthetisierbar ? ...
jetzt dacht ich ich kann mit einer constanten bestimmen ob write und
read ausgeführt wird , nämlich so :

constant  SIM : boolean := true;


simulation:
if SIM generate
begin

    write(L_OUT,CONV_INTEGER(SCR_WORD));    --
    writeline(REG,L_OUT);
end generate;

allerdings kommt immer für die Zeile
if SIM generate
der fehler unexpected generate, expecting then ??

was mach ich falsch ?

  Chris

von FPGAküchle (Gast)


Lesenswert?

Grad die Bücher nicht bei der Hand, bin mir also nicht 100% sicher.

-ist das begin dort richtig? oder kommt generate nicht ohne das aus?
-darf man write/writeline ausserhalb eines Prozesses verwenden?
-leigt dein generate innerhalb einer architecture und ausserhal eines
Processes
(sonst klappet es wohl nicht)

von Tobias O. (Gast)


Lesenswert?

--pragma translate off
 hier kommt der Code rein, der nicht synthetisiert werden soll
--pragma translate on

von Jörn K. (joern)


Lesenswert?

Ich verstehe deine Frage nicht ganz. Hast du deinen VHDL Code der
synthetisiert werden soll und deine TB in einer Datei?

Ich halte es so, dass mein zu synthetisierender Code in einer Datei ist
und meine TB in einer anderen. In der TB lade/speiche ich meine Daten
und muss nicht mit Konstanten oder Pragmas zwischen Sim und Syn
umschalten

Gruß
Jörn

von Sebastian (Gast)


Lesenswert?

@write und read sind ja nicht synthetisierbar ? ...

Natürlich nicht. Den sie wissen nicht was sie tun....

Ich sehe das so wie FPGAküchle. Du solltest schreiben:

begin
-- pragma translate off
simulation: if SIM generate
    write(L_OUT,CONV_INTEGER(SCR_WORD));    --
    writeline(REG,L_OUT);
-- pragma translate off
end generate;

von chris (Gast)


Lesenswert?

danke,
werde es mit pragma_on, off machen!
Genau das hatte ich gesucht.

 chris

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.