Forum: FPGA, VHDL & Co. VHDL ifdef gefunden (zumindest bei Xilinx)?


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Anfänger (Gast)


Lesenswert?

Hallo,

habe gerade mehrfach derartige Kommentare in Beispielcode entdeckt.
1
  --synthesis translate_off
2
  vhdl code ... 
3
  --synthesis translate_on

Frage: ist das "nur" ein Kommentar, oder wird der Kommentar tatsächlich 
von der ISE ausgewertet, d.h. man kann so den nicht synthetisierbaren 
Teil von Entitäten kapseln?
von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Ja.
Im Original hieß das Keyword synopsys nach dem gleichnamigen 
Synthesizer.
Siehe auch http://forums.xilinx.com/xlnx/board/message?message.uid=28956

EDIT:
Das Manual zum Thema heißt xst.pdf und dort findet man
1
Translate_Off and Translate_On can be used with the following words: 
2
• synthesis 
3
• synopsys 
4
• pragma
von Anfänger (Gast)


Lesenswert?

Guten Morgen Lothar,

Danke für den Hinweis. Ja, ich muss zugeben, dass ich das XST-Handbuch 
nur diagonal überflogen habe.

So waren 'constraints' bislang für mich irgendwelche Schalter/Optionen, 
die man in der GUI setzen kann. Auch als ich jetzt gezielt nach 
translate_off gesucht habe und die 'constraint'-Übersicht gesehen habe, 
wird nicht klar, dass/wie man dies im Code einsetzen kann.

Nur im Zusammenhang mit verilog werden die Code-Direktiven erläutert. 
Dort gibt es dann auch richtige ifdef und Co.

Also ohne den Beispielcode wäre ich auf die Verwendung nicht gekommen :)
Naja und Dein Link nährt zumindest die Hoffnung, dass dies nicht nur bei 
Xilinx verstanden wird ;)
von Klaus F. (kfalser)


Lesenswert?

Das ganze ist aber kein #ifdef Equivalent, weil man es nicht beliebig 
ein- und ausschalten kann.
Es dient hauptsächlich dazu, Programmteile, die nur für die Simulation 
dienen, bei der Synthese zu überspringen.
von Anfänger (Gast)


Lesenswert?

Hallo Klaus,

> Das ganze ist aber kein #ifdef Equivalent, weil man es nicht beliebig
> ein- und ausschalten kann.
> Es dient hauptsächlich dazu, Programmteile, die nur für die Simulation
> dienen, bei der Synthese zu überspringen.

Klar, völlig richtig - es ist kein vollwertiges #ifdef, da ich den 
Broker nicht selbst definieren kann.

Aber genau für den Anwendungsfall habe ich was derartiges gesucht - 
schließlich sind Simulation und Synthese ja völlig unterschiedliche 
Welten mit fast schon konträren Anforderungen.

Adhoc fällt mir kein Anwendungsfall ein, für den ich ein echtes #ifdef 
bräuchte, der nicht auch über normale Sprachkonstrukte gelöst werden 
könnte.
Wer letzteres für Blasphemie hält, darf mich gern auf seine Igno-Liste 
setzen :)
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.