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

#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.)
Moderator (Firma: Titel) Persönliche Seite #5178337
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?
#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?
#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