in Quartus: "`endif // foo" wirkt als `endif

OP #5178319
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.)
OP #5178347
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?
Gast #5178389
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.
OP #5178402
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)

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