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?
Code ist vorhanden. Er beschreibt auch etwas physisches. Das sieht man auch daran das die RTL-Darstellung einen Inhalt hat.
Schlicht ein Fehler in deinem Code der dazu führt dass der Synthesizer alles gnadenlos wegoptimiert.
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?
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)
>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.
Es gibt doch sicherlich Quartus-Warnings, die dir bestinnt weiterhelfen können.
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.
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; |
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.