Hallo, ich hab hier ein Spartan3-Projekt, bei dem 6 RAM-Bänke angesteuert werden. Das Projekt ist nicht von mir entwickelt worden und ich kann weite Teile des VHDL-Codes auch nicht nachvollziehen (aber das ist ein anderes Thema). Das Problem ist nun, daß ich einen if-Zweig mit einer Zeile Code eingefügt habe. Da das steuerende Feature für den if-zweig noch nicht implementiert ist, ist die Bedinung (PORT Eingang des VHDL-Moduls) hart auf '0' verdrahtet, dürfte also theortisch keine funktionale Auswirkung haben. Trotzdem führt die Änderung dazu, daß eine der RAM-Bank-Ansteuerungen nicht mehr korrekt funktioniert. Ich vermute unsauberes Timing, weiß aber nicht, wo ich suchen soll. Nun hab ich zwei Projektstände erstellt, einmal ohne die Änderung (alles geht) und einmal mit Änderung (RAM-Bank-Fehler), und nun würde ich gerne die Unterschiede untersuchen. Allerdings weiß nicht, an welchen Stellen ich diesbzgl. suchen soll. In beiden Fällen werden keine Timing-Verletzungen angezeigt (was aber nichts heißen soll, weil wahrscheinlich Timing constraints fehlen).
Ach ja: Die Timing Reports (.twx) hab ich als erstes verglichen, aber die sind bis auf den Zeitstempel identisch.
Ich lasse mir beim Synthetisieren alle Ausgaben in ein Logfile schreiben (xst, ngdbuild, map, par, bitgen). Diese Logfiles lassen sich ganz gut mit einem Diff-Viewer betrachten. Vor allem bei kleineren Änderungen kann man so nachschauen, wie sie sich auswirken. Vielleicht wäre das auch was für Dich? Duke
Ja, so wollt ich das machen, aber ich weiß nicht so genau, in welchem Logfile/Report ich suchen soll. Die Tatsache, daß die Timing-Reports identisch sind, werte ich als Hinweis, daß irgendein Timing Constaints fehlt und es daher Zufall ist, ob das erzeugte Bitfile fehlerfrei funktioniert oder nicht.
Jens Langecker schrieb: > Das Problem ist nun, daß ich einen if-Zweig mit einer Zeile Code > eingefügt habe. Da das steuerende Feature für den if-zweig noch nicht > implementiert ist, ist die Bedinung (PORT Eingang des VHDL-Moduls) hart > auf '0' verdrahtet, dürfte also theortisch keine funktionale Auswirkung > haben. Trotzdem führt die Änderung dazu, daß eine der > RAM-Bank-Ansteuerungen nicht mehr korrekt funktioniert. Ich vermute > unsauberes Timing, weiß aber nicht, wo ich suchen soll. Setz eine Simulation auf, alles andere ist Kaffesatzleserei. Gruß,
Lehrmeister schrieb: > Setz eine Simulation auf, alles andere ist Kaffesatzleserei. Die hilft aber nicht bei fehlenden oder fehlerhaften Timing-Constraints. Jens Langecker schrieb: > ich weiß nicht so genau, in welchem > Logfile/Report ich suchen soll. Bei ISE 13.3 findest Du die reports in den folgenden (Text-)Dateien:
1 | xst -> *.syr |
2 | build -> *.bld |
3 | map -> *.mrp |
4 | par -> *.par |
5 | bitgen -> *.bgn |
Duke
Duke Scarring schrieb: > Lehrmeister schrieb: >> Setz eine Simulation auf, alles andere ist Kaffesatzleserei. > Die hilft aber nicht bei fehlenden oder fehlerhaften Timing-Constraints. 1.) weisst Du wegen der nicht durchgeführten Simulation nicht, ob es wirklich ein problem mit dem timing ist. Erst wenn die behavorial Simu mit den testcase passt, aber die realität nicht kann man in richtung timing schlussfolgern. 2.) Klar kann eine Simulation auch Timing-fehler aufzeigen. Ganau dafür wurde VITAL und Post Place-Route Simu (backannotierte netzliste) erfunden.
Jens Langecker schrieb: > ich hab hier ein Spartan3-Projekt, bei dem 6 RAM-Bänke angesteuert > > werden. Das Projekt ist nicht von mir entwickelt worden und ich kann > > weite Teile des VHDL-Codes auch nicht nachvollziehen (aber das ist ein > > anderes Thema). VHDL-Codes nachvollziehen ist super wichtig. Besonders wenn man am HDL Design aufbohren ist. Du must da auch HDL Code Analyse Tools dafür haben, um da den Faden zu verfolgen. z.B Code Patata oder Sigasi. Bei mir ist das auch nicht einfach einen Code zu warten den ich nicht so richtig kenne. Aber aus Erfahrung habe ich mit den Analyse Tools den HDL Code fractorieren u. siplifizieren können. Hier ist der Link: Beitrag "Code Patata VHDL VERILOG EDITOR" Vielleicht wäre das HDL Code Analyse Tool Kit eine Option für Dich? Gruss Holger.
Hallo, inzwischen mußte ich feststellen, daß die RAM-Probleme gar nichts mit den unterschiedlichen Bitfiles zu tun hatten, sondern mit der Umgebungstemperatur ;-O Verdammt, ich dachte, ich hätte da einen brauchenbaren Ansatzpunkt gefunden! Danke für Eure Hilfe!
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.