ISE-Projekte vergleichen zum Fehlerfinden

Gast #2993232
Lesenswert?

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).
Gast #2993300
Lesenswert?

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
Gast #2993476
Lesenswert?

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.
Gast #2993922
Lesenswert?

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ß,
Gast #2997367
Lesenswert?

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
Gast #2998072
Lesenswert?

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.
Gast #2998205
Lesenswert?

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.
Gast #2999114
Lesenswert?

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!

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