Forum: FPGA, VHDL & Co. Verilog attribut "keep" in Quartus


von Martin O. (ossi-2)


Lesenswert?

1
module PlayGround01v01( input wire D0, output wire LED1  ) ;
2
3
wire clk ;
4
assign clk = D0 ;
5
6
VARIANTE1: reg regA /* synthesis preserve = 1 */ ; 
7
VARIANTE2: (* preserve = 1 *) reg regA ;
8
9
10
always @(posedge clk) begin
11
  regA = regA+D0  ;
12
  end
13
14
//assign LED1=regA ;     
15
16
endmodule

Weiss jemand wie man in Verilog unter Quartus erzwingen kann, dass
ein bestimmtes Signal/Register erhalten bleibt. Ich habs mit diversen
Varianten mit "keep" probiert, klappt aber nicht (Beispiel oben).
Wenn ich "assign LED1=regA ;" wird regA synthetisiert.

Im Forum hab ich bisher nur für Xilinx gefunden, dass man dort "Save" 
benutzen muss, um das "trimming" von Variablen zu verhindern. Das hilft 
mir aber nicht weiter.

von C. A. Rotwang (Gast)


Lesenswert?

https://www.altera.com/content/dam/altera-www/global/en_US/pdfs/literature/hb/qts/qts_qii5v1.pdf

preserve registers p. 928
synthesis keep     p.931

die anderen Attribute in diesen context wie no_prune sind auch eine 
Betrachtung wert.

von Martin O. (ossi-2)


Lesenswert?

reg regA /* synthesis syn_noprune */;

hat funktioniert. Danke

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.