Forum: FPGA, VHDL & Co. Problem: Statemachine wird auf 0 Gatter optimiert


von Jürgen (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ich versuche mich seit ein paar Tagen an einer Statemachine in VHDL für
den ISA-Bus vom PC. Die Entwicklungsumgebung ist Quartus II und ein
Cyclone-Evalboard von Altera. Einfache VHDL Programme habe ich damit
schon zum Funktionieren gebracht :-)

Die ISA-Bus Statemachine ist eigentlich auch nicht so kompliziert. Die
Kompilierung erfolgt auch ohne Fehlermeldungen. Aber beim
Optimierungsschritt werden die Warnungen ausgegeben, das wichtige
Signale statisch auf GND oder VCC verdrahtet wurden. Im
Hierachy-Browser wird angezeigt, dass die Statemachine keine Ressourcen
belegt.

"Warning: Following 16 pins have no output enable or a GND or VCC
output enable - later changes to this connectivity may change fitting
results
Info: Pin PC_D[15] has a permanently enabled output enable ...
Info: Pin PC_D[0] has a permanently disabled output enable"

"Warning: Reduced register
isa_controller:inst5|controller:U0|currentState~21 with stuck data_in
port to stuck value GND ...
Warning: Reduced register
isa_controller:inst5|controller:U0|currentState~25 with stuck data_in
port to stuck value GND"

Ich habe darauf geachtet die IO-Signale möglichst auf IO-Ports zu
legen, damit diese nicht wegoptimiert werden.

Ich nehme an, dass der Fehler im VHDL-Programm liegt. Hier bin ich mir
nicht ganz sicher, ob ich den bidirektionalen Datenbus richtig
behandle. Wie kann ich den Fehler eingrenzen, wenn alles wegoptimiert
wurde?

Ich habe den Code als Datei angefügt.
Hat jemand eine Idee?

Gruß,
Jürgen.

PS: Die Schaltung (isa-controller_blockdiagramm.jpg) ist natürlich noch
nicht im geringsten getestet... eben wegen o.g. Probleme

PPS: Kennt jemand eine Möglichkeit, mit der man die Optimierung von
bestimmten Signalen unterbinden kann?

von FPGAküchle (Gast)


Lesenswert?

Ist das reset signal der FSM irgendwo fest auf '1' geklemmt?

von FPGAküchle (Gast)


Lesenswert?

Nur der state ist getaktet, alles andere (FSM Ausgangssignale) sind
ungetaktet. Ist das so gewollt?

von Jürgen (Gast)


Lesenswert?

@ FPGAküchle:

zu 1.
Danke für den Tipp mit dem Reset. Ich habe das Signal mal Testweise auf
'0' gelegt, leider ohne Erfolg. Auch hat es nicht geholfen das Reset
im Code unbenutzt zu lassen.
zu 2.
Besser wäre es schon die Ausgangssignale nocheinmal durch ein Register
zu schicken, aber das wollte ich mir für die Königsvariante aufheben
;-)

@ all:

Kann man vielleicht durch ein Parameter erzwingen, das ein Signal nicht
optimiert werden darf? Bei Xilinx (Synopsys?) gab es soetwas.

Ich vermute, dass ich einen Fehler bei der Verschaltung der beiden
Komponenten U0:controller und U1:rw_control gemacht habe, kann aber
keinen Fehler feststellen.

Jürgen.

von Jürgen (Gast)


Lesenswert?

Hallo,

ich habe den Fehler selber gefunden:
Die FSM wartet auf das Signal ALE, welches jedoch nicht angeschlossen
war.

Danke,
Jürgen.

von FPGAküchle (Gast)


Lesenswert?

Ah, dann ist ja alles gut. (BTW aus dem codeschnipsel kann man nicht
erkennen das ALE nicht angeschlossen ist (oder doch?)

von Jürgen (Gast)


Lesenswert?

Aus der VHDL-Datei geht das nicht hervor.
Erst bei näherem Betrachten von "isa_controller_blockdiagramm.jpg"
(auch in dem Zip enthalten) erkennt man den Fehler.

Vielen Dank für die Tipps - Gruß,
Jürgen.

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.