Forum: FPGA, VHDL & Co. Vivado 2022.1 kann 2016er Design nicht laden


von dfIas (Gast)


Angehängte Dateien:

Lesenswert?

Mit dem aktuellen Vivado kann ich ein mit 2016.2 erstelltes 
Zynq-7000-Design nicht mehr öffnen und synthetisieren. Sourcen werden 
zwar vollständig und korrekt im Tree angezeigt, beim Öffnen des 
Top-Level-Diagramms (*.bd) gibt es jedoch beiliegende Fehlermeldungen.
Auf einem anderen Rechner habe ich mir deshalb eine 2016er Version 
installiert - damit geht alles wieder. Es wäre natürlich bequemer, nicht 
auf alte Versionen zurückgreifen zu müssen.
Fehlt mir etwas in der aktuellen Vivado-Version? Zynq-7000 ist nach wie 
vor dabei. Eine Version des FIFO-Generators (13.1) gibt es wohl nicht 
mehr, aber sollten die neueren Versionen nicht wenigstens 
abwärtskompatibel sein? Liegt es nur daran? Kann man notfalls einen 
älteren FIFO-Generator nachladen?

von Gustl B. (-gb-)


Lesenswert?

dfIas schrieb:
> Eine Version des FIFO-Generators (13.1) gibt es wohl nicht
> mehr, aber sollten die neueren Versionen nicht wenigstens
> abwärtskompatibel sein? Liegt es nur daran?

Ja vermutlich liegt es genau daran. Zumindest sagt das die 
Fehlermeldung.
Erzeuge doch einen neuen FIFO IP mit den gleichen Ports wie beim Alten.

von dfIas (Gast)


Angehängte Dateien:

Lesenswert?

Gustl B. schrieb:
> Erzeuge doch einen neuen FIFO IP mit den gleichen Ports wie beim Alten.
Das alte Design ist im SVN eingefroren, da gibt es keine Änderungen oder 
Upgrades mehr. Es ist dann besser, ein altes Vivado als Viewer zu 
nehmen.
Erstaunlich ist, dass das Diagramm nicht angezeigt wird, weil eine 
einzelne Komponente keinen passenden Generator findet. Wäre ja ok, wenn 
die entsprechenden Blöcke rot markiert wären, aber es geht ja gar nichts 
mehr.

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Eigentlich zeigt Vivado im Falle eines Versionswechsels noch irgendwo 
eine Liste der inkompatiblen IP-Blöcke an. Dort kann man für jeden 
IP-Block einzeln oder für alle Blöcke zusammen ein Update auf die 
jeweils aktuelle Version durchführen.

Wird das bei Deinem Projekt nicht angeboten?

von dfIas (Gast)


Lesenswert?

Andreas S. schrieb:
> Wird das bei Deinem Projekt nicht angeboten?
Es gibt die üblichen zwei Alternativen, das Projekt a) als read-only zu 
öffnen, b) upzugraden. Beides geht letztendlich nicht.
Auch 2022.4 bietet diese zwei Möglichkeiten für das 2022.2-Projekt an. 
Dort funktionieren beide Möglichkeiten.
Ich kann auch keine neuen FIFOs anlegen, da das gesamte Design so nicht 
mehr greifbar ist. Wo soll ich hinklicken? Ich müsste alles komplett neu 
anlegen. Das hat man davon, wenn man dieses Grafik-Feature voll 
ausnutzt. Die Kompatibilität ist dahin, selbst innerhalb des eigenen 
Systems.

von dfIas (Gast)


Lesenswert?

Typo: ersetze 2022.x mit 2016.x

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Bei Vivado schleichen sich recht häufig Konsistenzprobleme ein, die dann 
irgendwann später aufschlagen und zu großem Ärger führen. Daher erzeuge 
ich immer das Projekt skriptgesteuert und checke üblicherweise nicht die 
generierten Projektdateien, sondern nur das erzeugende 
(Blockdesign-)Skript ein. Leider kann man solche Skripte nicht für 
Updates zwischen verschiedenen Vivado-Versionen verwenden, sondern muss 
das Skript erst in der alten Version ausführen, das Projekt speichern, 
Vivado schließen, neue Vivado-Version starten, Projekt öffnen und wieder 
als Skript exportieren.

Und dann kann man sich mit einem ordentlichen Diff-Programm (z.B. Araxis 
Merge) anschauen, was Vivado meinte, bei dem Update alles 
verschlimmbessern zu müssen.

von Christian R. (supachris)


Lesenswert?

dfIas schrieb:
> Ich kann auch keine neuen FIFOs anlegen, da das gesamte Design so nicht
> mehr greifbar ist. Wo soll ich hinklicken? Ich müsste alles komplett neu
> anlegen. Das hat man davon, wenn man dieses Grafik-Feature voll
> ausnutzt. Die Kompatibilität ist dahin, selbst innerhalb des eigenen
> Systems.

Du musst die FIFOs nicht neu erzeugen. Bei Reports -> Report IP Status. 
Dann zeigt der alle IPs an die nicht mehr aktuell sind. Du kannst dir 
dann das Changelog angucken und upgraden. Da werden die IP Cores einfach 
aktualisiert und bis auf ein paar Spezialfälle hat das immer geklappt. 
Wenn sich an den Interfaces was ändert, spuckt das Vivado aus, da gibts 
eine ip_upgrade.log Datei. Im Normalfall ist das in ein paar Minuten 
erledigt, und wenn nicht vorher schon ein Timing irgendwie an der 
Kotzgrenze war, läuft das System danach auch noch oder wieder.

von FPGA-Nutzer (Gast)


Lesenswert?

Andreas S. schrieb:
> sondern muss
> das Skript erst in der alten Version ausführen, das Projekt speichern,
> Vivado schließen, neue Vivado-Version starten, Projekt öffnen und wieder
> als Skript exportieren.
Aber das (im neuen Projekt zu öffnen) scheint ja nicht zu gehen.

Was bringt an dieser Stelle das Script?

Offenbar muss man ein bestehendes Projekt in der neuen Version öffnen.

Eventuell hilft es, weniger Sprünge zu haben und die 2016er in einer 
2019er zu öffnen und von dort aus nochmals eine Zwischenstufe anzulegen.

Ich persönlich vermeide die Blockdesigns und Grafiken wo es nur geht.
Ist am Ende schneller und kompatibler.

von Christian R. (supachris)


Lesenswert?

FPGA-Nutzer schrieb im Beitrag #7212361:
> Ich persönlich vermeide die Blockdesigns und Grafiken wo es nur geht.
> Ist am Ende schneller und kompatibler.

Hier auch. Wenn möglich alles als VHDL. Klappt nur bei den Cores nicht, 
aber da gab's lange keine Überraschungen mehr. 2016 zu 2022 hab ich aber 
nicht getestet...

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Christian R. schrieb:
> FPGA-Nutzer schrieb im Beitrag #7212361:
>> Ich persönlich vermeide die Blockdesigns und Grafiken wo es nur geht.
>> Ist am Ende schneller und kompatibler.
>
> Hier auch. Wenn möglich alles als VHDL.

Mit den RTL-Blöcken statt eigenständiger IP-Blöcke gibt es doch einen 
ausgezeichneten Kompromiss, d.h. eine sehr bequeme und übersichtliche 
Verwendung von VHDL bzw. Verilog in einem Blockdesign. Das ist auch 
meine präferierte Methode. Für etliche Anwendungen generiere ich mir 
zunächst mit dem Wizard einen AXI-Block, den ich aber anschließend nicht 
als IP verwalte, sondern nur die VHDL-Quellen als RTL-Block verwende.

von dfIas (Gast)


Lesenswert?

Christian R. schrieb:
> Du musst die FIFOs nicht neu erzeugen. Bei Reports -> Report IP Status.
> Dann zeigt der alle IPs an die nicht mehr aktuell sind. Du kannst dir
> dann das Changelog angucken und upgraden. Da werden die IP Cores einfach
> aktualisiert und bis auf ein paar Spezialfälle hat das immer geklappt.
Im IP Status werden die FIFOs nicht gelistet. Alle anderen IPs sind 
"up-to-date (no changes required)".

von dfIas (Gast)


Lesenswert?

FPGA-Nutzer schrieb im Beitrag #7212361:
> Eventuell hilft es, weniger Sprünge zu haben und die 2016er in einer
> 2019er zu öffnen und von dort aus nochmals eine Zwischenstufe anzulegen.
Das wäre vlt. eine Möglichkeit, so ein altes Design herüberzuretten. 
Aber ich benötige nur einen Viewer und möchte keinen Änderungen mehr 
einbringen.
Die Blockgrafik hat leider auch ihr Eigenleben und wird gelegentlich 
verzerrt und scheinbar umverdrahtet. Die Verbindungen stimmen zwar, aber 
mal gehen die Leitungen unten herum, mal drüber. Da ist zu viel 
Intelligenz mit im Spiel.

von Christian R. (supachris)


Lesenswert?

dfIas schrieb:
> Im IP Status werden die FIFOs nicht gelistet. Alle anderen IPs sind
> "up-to-date (no changes required)".

Das ist ungewöhnlich. Bisher musste ich bei jeder neuen Vivado Version 
die allermeisten Cores aktualisieren.

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
Noch kein Account? Hier anmelden.