Hi, ich schreibe gerade an dem Code für einen XC9572 als Speichercontroller. Der Code besteht aus drei VHDL-Modulen die bestimmte Bausteine enthalten. Der Syntaxcheck verläuft positiv, aber wenn ich den Code implementieren will, schreibt er folgendes: FATAL_ERROR:Xst:Portability/export/Port_Main.h:127:1.17 - This application has discovered an exceptional condition from which it cannot recover. Process will terminate. For more information on this error, please consult the Answers Database or open a WebCase with this project attached at http://www.xilinx.com/support. Laut Xilinx sollte dieser Fehler in meiner Version(9.2) bereits gefixed sein und auch die möglichen Fehlerursachen, die dort aufgelistet sind treffen nicht auf mein projekt zu soweit ich sie verstehe. Ich arbeite erst seit kurzem mit programmierbaren Logikbausteinen und habe deshalb auch wenig Hintergrundwissen. Der Code ist zwar noch nicht ganz fertig, aber zumindest kompilieren lassen sollte er sich. Falls jemand eine Ursache des Fehlers kennt, wäre ich sehr daran interressiert. Als rar hab ich mal die drei vhd's im anhang falls der Fehler dort liegt. mfg The Scientist
Der Code funktioniert nicht. binary6Counter sollte vermutlich binary16Counter heißen und die Ports stimmen auch nicht.
aha, ich kann die stelle mit dem binary6Counter grad nich finden, sag mal bitte datei und zeile. Und welche Ports meinst du stimmen nicht? mfg The Scientist
In logicAnalysator wird überall binary16Counter verwendet. Die Datei und die Entity drin hat aber den Namen binary6Counter. Wenn man das ändert kommt als nächstes die Beschwerde das ein Port ctrActive fehlt.
oh verdammt ich hab ausversehen die falsche datei verschickt. tut mir leid. hier die richtige.
Bei mir beschwert sich ISE (9.2.03) über eine Zeile in binary16Counter.
1 | ERROR:Xst:827 - "D:/Prog/vhdl/logikanalysator/binary16Counter.vhd" line 56: Signal addressBuff cannot be synthesized, bad synchronous description. |
Wenn du den flankengetriggerten Reset ausbaust, dann lässt sich das Design auch übersetzen. Sollte etwa so aussehen:
1 | if (extReset='1') then |
2 | addressBuff <= "0000000000000000"; |
3 | elsif (counterClk'event and counterClk='1') then |
hab das geändert aber der Fehler tritt weiterhin auf. Allerdings ist es merkwürdig das dein ISE sich darüberbeschwehrt aber meins net. Für welchen XC9572 haste das denn gemacht?
Ich habe einen XC9572-7-PC44 eingestellt. Vielleicht liegt es ja auch irgendwie an deinen restlichen Projektdateien? Versuche mal ein neues Projekt zu machen oder die generierten Files zu löschen (Menupunkt "Cleanup Project Files").
so habe jetzt die projekt files aufgeräumt und jetzt ist dieser FATAL ERROR weg. Allerdings meckert er jetzt an meinen resetvorgang im Zähler rum. Es ist der gleiche Fehler den du oben beschrieben hast. Könnte es sein, das auf diesen addressBuff entweder nur lesend oder nur schreibend in einer Funktion zurückgreifen darf? Wenn ja, wie lässt sich denn dann ein Reset realisieren?
Du willst aus addressBuff ein Register bauen nehme ich an. Schreiben und lesen geht schon, du liest den Ausgang des Registers und beschreibst es neu. Ein flankensensitives reset lässt sich nicht in dieser Form beschreiben. Ein normales FF hat genau einen Takteingang und einen Reseteingang (der aber nicht auf eine Flanke reagiert sondern auf ein Level). Also, entweder das Level des reset abfragen oder mit dem Takt abtasten wenn es unbedingt flankensensitiv sein muss. Außerdem das addressCount mit in den Taktzweig rein.
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.