Problem: Statemachine wird auf 0 Gatter optimiert

Gast #387470
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?
Angehängte Dateien:
Gast #387473
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren