Forum: FPGA, VHDL & Co. Synthese erzwingen, Verilog


von Martin O. (ossi-2)


Lesenswert?

Wenn man z.B. einen Block (z.B. Zähler) designed, und dessen 
Ausgangssignale nicht benutzt, wird normalerweise der Block nicht 
synthetisiert. Das ist auch sinnvoll. Ich habe aber oft am Anfang von 
Projekten die Teile, die die Ausgangssignale benutzen werden, noch nicht 
beschrieben.

Gibt es (z.B. sozusagen mit "dummy"-Signalen) eine einfache Möglichkeit, 
die Synthese eines Blockes zu erzwingen?

von eddy (Gast)


Lesenswert?

Du kannst einen Logic Analyzer IP-Core einfügen und die Ausgänge Deines 
Moduls an die Eingänge des ILA anschliessen. So wird die Synthese den 
Block nicht wegoptimieren und Du kannst Dir die Werte anschauen.

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


Lesenswert?

Martin O. schrieb:
> die Synthese eines Blockes zu erzwingen?
Es hilft nichts, wenn der Synthesizer den Block drin lässt. Einer der 
nächsten Schritte wirft ihn sicher raus...

Du musst also irgendwas an diesen Block anschließen, das auch 
tatsächlich irgendwie aussen verwendet wird. Der LA ist eine solche 
Einheit. Du könntest diese Signale aber auch einfach alle verxodern und 
auf das einen Pin herausführen. Dann werden sie auch verwendet.

von Bitwurschtler (Gast)


Lesenswert?

Martin O. schrieb:
> Wenn man z.B. einen Block (z.B. Zähler) designed, und dessen
> Ausgangssignale nicht benutzt, wird normalerweise der Block nicht
> synthetisiert. Das ist auch sinnvoll. Ich habe aber oft am Anfang von
> Projekten die Teile, die die Ausgangssignale benutzen werden, noch nicht
> beschrieben.
>
> Gibt es (z.B. sozusagen mit "dummy"-Signalen) eine einfache Möglichkeit,
> die Synthese eines Blockes zu erzwingen?

ich versteh das Problem nicht, normalerweise werden Componenten also 
Blöcke beim ersten auftreten vom Synthesetool analysiert und übersetzt 
unabhängig davon ob der Blockj in der Top entity (die später analysiert 
wird) genutzt wird. Wird der block nicht vewrwendet wird er bei der dead 
logic/unused blocks Analyse wieder weggeschmissen, aber Infos zur 
Synthese sollten sich schon in den log-files winden lassen.

Vielleicht musst du nur die Komponenten in eigenes *.vhd file schieben 
und im Makefile/Toolchain das file explizit angeben.

oder alle unbenutzten Signale zweimal über FF dann verordern und 
anschliessend an irgend ein Pin nach draußen führen.

von Cle (Gast)


Lesenswert?

Vielleicht sowas wie
1
(* KEEP = "TRUE" *) reg [10:0] state_reg;
in Verilog (nicht-Xilinx oder VHDL dann ähnlich, siehe Syntheseguide des 
Tools)?

Mit mark_debug (bei Xilinx) kann man dann den Debugging IP Core im 
synthetisierten Design einfügen, aber das macht auch nur etwas um ein 
KEEP herum..

von user (Gast)


Lesenswert?

Du kannst den Block as Toplevel definieren, dann baut er das auch. Ist 
ok um eine Abschätzung zum Timing oder Größe zu bekommen.

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.