Forum: FPGA, VHDL & Co. in Quartus: "`endif // foo" wirkt als `endif


von Martin O. (ossi-2)


Lesenswert?

Das folgende Modul (Verilog) wird bei mir fehlerfrei synthetisiert.
Anscheinend wird das `endif im String tatsächlich als `endif gewertet.
Der Modelsim Simulator beschwert sich, dass kein endif im File vorkommt.

Weiss jemand ob ` in Quartus Verilog Strings verboten sind?
1
module test1 ;
2
reg [10*8:1] s ;
3
4
`ifdef POSEDGE
5
  s = "`endif // foo";
6
7
endmodule
Vielleicht könnt Ihr das auch mal  unter Quartus ausprobieren.

(Ich weiss, dass das Modul sinnlos ist, es ist durch Eindampfen meines 
eigentlichen Programms entstanden, so dass der "Fehler" gerade noch 
auftrat.)

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


Lesenswert?

Martin O. schrieb:
> Weiss jemand ob ` in Quartus Verilog Strings verboten sind?
Laut dem hier Seite 16-17 eigentlich nicht:
https://www.altera.com/en_US/pdfs/literature/hb/qts/qts-qps-handbook.pdf

Bringst du den Parser mit dem ' durcheinander?
Welche Zeichen dürfen in einem Verilog-String auftauchen?

: Bearbeitet durch Moderator
von Martin O. (ossi-2)


Lesenswert?

Anscheinend bringt mein Code den Parser durcheinander. Der Fehler ist 
tatsächlich bei mir in einer realen Anwendung aufgetreten, hat 2 Stunden 
gedauert, bis ich ihn einigermassen eingegrenzt hatte.

Wäre nett wenn jemand von euch das mal nachvollziehen könnte.

Martin

@L Miller
kann in Deiner Referenz nichts über Verilog Strings auf Seite 16-17 
(Kapitel 16 Seite 17) finden. Was mache ich falsch?

: Bearbeitet durch User
von Weltbester FPGA-Pongo (Gast)


Lesenswert?

Was passiert denn, wenn Du in den Text einfach kein Code-wort 
reintippst, sondern einfach nur ENDE schreibst? Belegte Namen nimmt man 
ohnehin nicht in Kommentaren und auch nicht in Erklärtexten.

von Martin O. (ossi-2)


Lesenswert?

Wenn ich das endif aus dem Kommentar weglasse, wird das Fehlen des endif 
in irgendeiner Form angemeckert, das ist also ok.

"Belegte Namen nimmt man ohnehin nicht in Kommentaren und auch nicht in
Erklärtexten."

Aber in Kommentaren möchte ich möglichst fast alles schreiben dürfen.
Ich möchte z.B. auch Code auskommentieren dürfen. In Strings soll auch 
möglichst alles erlaubt sein (ausser ", dem Quote-Symbol)

: Bearbeitet durch User
von Weltbester FPGA-Strubi (Gast)


Lesenswert?

Die Ansicht kann man vertreten. Offenbar kommt aber Dein Compiler 
irgendwie nicht damit klar.

von Marcus H. (mharnisch) Benutzerseite


Lesenswert?

«Macro substitution and argument substitution shall not occur within 
string literals.» IEEE1800-2012 (22.5.1)

"`" ist ein normales Zeichen in einem String Literal.

Vielleicht hat auch jemand das hier zu wörtlich genommen :)
«[`endif] directives may appear anywhere in the source description.» 
IEEE1800-2012 (22.6)

: Bearbeitet durch User
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.