Forum: FPGA, VHDL & Co. Quartus synthetisiert nichts / kein Resourcenverbrauch


von Hmm (Gast)


Lesenswert?

Gern würde ich glauben das ich ein geniales Design ohne 
Resourcenverbrauch erstellt habe. Aber ich glaub's nicht. :-)

Also der gesamte Prozess läuft ohne Fehlermeldungen durch 
einschliesslich Fitting und Place&Route. Dennoch wird mir beim 
Resourcenverbrauch in allen Spalten 0 angezeigt ausser bei den I/Os. 
Dort sind es 73. Aber sonst: 0 LUTs etc.

Vermutlich habe ich was falsch eingestellt oder noch einen Fehler 
gemacht.

Hat jemand einen Tip?

von Marius W. (mw1987)


Lesenswert?

Code?

von Hmm (Gast)


Lesenswert?

Code ist vorhanden. Er beschreibt auch etwas physisches. Das sieht man 
auch daran das die RTL-Darstellung einen Inhalt hat.

von Lattice User (Gast)


Lesenswert?

Schlicht ein Fehler in deinem Code der dazu führt dass der Synthesizer 
alles gnadenlos wegoptimiert.

von Hmm (Gast)


Lesenswert?

OK. Hoffe Ihr konntet auch lachen. :-)

Ich denke, das es darum geht ob ich überhaupt etwas synthetisierbares 
beschrieben habe.
Daher meine Antwort, das die RTL-Darstellung etwas zeigt. Multiplexer, 
Addierer, Latches, Zähler. Das bedeutet nach meinem Verständnis das 
nichts wegoptimiert wird. Oder?

von Lattice User (Gast)


Lesenswert?

Hmm schrieb:
> Ich denke, das es darum geht ob ich überhaupt etwas synthetisierbares
> beschrieben habe.

Wenn es nicht synthesierbar wäre, gäbe es einen Fehler.


Hmm schrieb:
> Daher meine Antwort, das die RTL-Darstellung etwas zeigt. Multiplexer,
> Addierer, Latches, Zähler. Das bedeutet nach meinem Verständnis das
> nichts wegoptimiert wird. Oder?

Doch, geht ganz schnell. Der Optimizer kommt nach der RTL Ansicht 
(zumindestens bei Lattice)

von Hmm (Gast)


Lesenswert?

>Doch, geht ganz schnell. Der Optimizer kommt nach der RTL Ansicht
>(zumindestens bei Lattice)

Ah. In der Reihenfolge bei Quartus kommt die RTL-Ansicht auch vorher. 
OK. Das heisst dann also, das was wegoptimiert wird oder zumindest 
wegoptimiert werden kann.

Danke.
Dann werde ich die entities nochmal einzeln anschauen, denke ich.

von Stachele (Gast)


Lesenswert?

Es gibt doch sicherlich Quartus-Warnings, die dir bestinnt weiterhelfen 
können.

von PittyJ (Gast)


Lesenswert?

So etwas habe ich auch ab und zu:
Wenn ich vergesse, den Output zu verdrahten. Oder ein wichtiger Input 
permanent auf Low oder High bleibt, dann stellt Quartus fest, dass nicht 
passiert und optimiert vieles weg.

Also noch einmal nachschauen, ob die Signale richtig verdrahtet sind.

von Stachele (Gast)


Lesenswert?

Oder man simuliert das Design und schaut, ob die Ausgangsports definiert 
sind.

Es kann natürlich auch passieren, dass einem Ausugangsport ein Signal 
zugewiesen wird, das bei der Deklaration eine Default-Zuweisung erhält 
(siehe Beispiel unten).
Dann ist zwar das Ausgangssignal definiert, trotzdem ist nichts 
angeschlossen. In diesem Fall müsste man schon sinnvolle Stimuli 
verwenden, um das Signal und somit das Ausgangssignal zappeln zu lassen.



Beispiel:
1
port( Ausgang : out std_logic ...)
2
3
signal hallo : std_logic := '0';
4
5
begin
6
    Ausgang <= hallo;

von Hmm (Gast)


Lesenswert?

Hilfreiche Warnungen gabs leider nicht von Quartus.

Aber vielen Dank für die sinnreichen Tips.

Tatsächlich war ein Signal bei den port maps falsch zugeordnet, so das 
eine entity ein statisches Signal erhielt, das sich nicht mit der 
"beabsichtigten Dynamik" vertrug. Kurz, jedes Erstsemester konnte sich 
denken das sich da an den Ausgängen garnichts tut. Um so mehr der 
Compiler.

Jetzt zappeln die Bits. ;-)

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.