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?
Ist das reset signal der FSM irgendwo fest auf '1' geklemmt?
Nur der state ist getaktet, alles andere (FSM Ausgangssignale) sind ungetaktet. Ist das so gewollt?
@ 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.
Hallo, ich habe den Fehler selber gefunden: Die FSM wartet auf das Signal ALE, welches jedoch nicht angeschlossen war. Danke, Jürgen.
Ah, dann ist ja alles gut. (BTW aus dem codeschnipsel kann man nicht erkennen das ALE nicht angeschlossen ist (oder doch?)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.