Forum: FPGA, VHDL & Co. Neue Libraries und Packages mit Vivado 2015.4 erstellen


von Edgar C. (ec-develo)


Lesenswert?

Ich möchte mittels Vivado eigene Packages erstellen und in Libs 
organisieren. Fur die ISE habe ich Folgendes gefunden:

http://www.xilinx.com/itp/xilinx10/isehelp/ise_c_working_with_vhdl_libraries.htm

To Create a VHDL Library
The ISE software provides a work library. However, you can create your 
own libraries as described in Creating a Source File. Select VHDL 
Library as your source type.

To Create a VHDL Package File
You can create a VHDL package file as described in Creating a Source 
File. Select VHDL Package as your source type.

To Move a VHDL File to a Library...

Fur Vivado finde ich nichts dergleichen.

Hat jemand einen Tipp?

von user (Gast)


Lesenswert?

In Vivado kannst du auf die Source-Datei rechts-klicken und set Library 
auswählen.

von Edgar C. (ec-develo)


Lesenswert?

Ja, danke. Das hatte ich schon gefunden. Aber es erfüllt nicht so ganz 
meine Erwartungshaltung. Ich sollte dazu sagen, dass ich noch nicht mit 
eigenen libs und packages gearbeitet habe, auch nicht unter ISE.

Meine Vorstellung ist, dass man seine Package-Dateien in einem separaten 
Verzeichnis erstellt und sammelt und der lib 'mitteilt', welche der 
Dateien zu ihr gehören.

Es gibt jedoch kein Template für die Packages. Und ich sehe auch keine 
Möglichkeit, die lib, die man durch Rechtsklick und Vergabe eines neuen 
Namens irgendwo im Projektverzeichnis erstellt, kontrolliert an einer 
bestimmten Stelle zu erzeugen.

Also dafür, dass Xilinx so auf Ultra Fast Design herum reitet und eigene 
Libraries DAS Mittel für Code Reuseability sind, hätte ich da richtig 
kräftige Unterstützung durch das Tool erwartet.

Oder habe ich einfach das Konzept nicht verstanden?

von Fpgakuechle K. (Gast)


Lesenswert?

Edgar C. schrieb:

>
> Also dafür, dass Xilinx so auf Ultra Fast Design herum reitet und eigene
> Libraries DAS Mittel für Code Reuseability sind, hätte ich da richtig
> kräftige Unterstützung durch das Tool erwartet.
>
> Oder habe ich einfach das Konzept nicht verstanden?

Möglicherweise verwechselst du VHDL library mit IP-library:
http://www.xilinx.com/support/documentation/university/Vivado-Teaching/Digital-Design/2014x/docs-pdf/Vivado_tutorial.pdf

MfG,

von Christian R. (supachris)


Lesenswert?

Man darf nicht vergessen dass VHDL und auch die Tools allesamt aus den 
1970ern stammen. Und gerade bei Xilinx muss man sich schon fragen, was 
das soll. Da wird mit IP Cores und Klicki Bunti Oberfläche in Vivado um 
sich geworfen, aber einen sinnvollen Editor für VHDL und co kriegen die 
nicht auf die Kette. Mehr als ein bisschen Syntax Highlight kann auch 
Vivado nicht. Frage mich wieso die nicht ihr ganzes Geraffel wie viele 
andere in Eclipse gepackt haben, das vhdl Plugin ist ja ganz brauchbar. 
Aber ohne Integration der Hersteller ToolChain auch wieder sinnlos.
Ich arbeite mit Notepad++ als Editor, hab mir das vhdl Plugin noch etwas 
angepasst, damit auch die automatisch erstellten Test Benches klappen. 
Das haben die nämlich in Vivado auch vergessen.
Also nicht wundern, gerade bei Xilinx ist der Software Unterbau 
Steinzeit.

von Fpgakuechle K. (Gast)


Lesenswert?

Christian R. schrieb:
> Man darf nicht vergessen dass VHDL und auch die Tools allesamt aus den
> 1970ern stammen.

Nee das stimmt so micht, das wurde erst 10 Jahre später erfunden.


> Und gerade bei Xilinx muss man sich schon fragen, was
> das soll. Da wird mit IP Cores und Klicki Bunti Oberfläche in Vivado um
> sich geworfen, aber einen sinnvollen Editor für VHDL und co kriegen die
> nicht auf die Kette.

Volle Zustimmung.



> Mehr als ein bisschen Syntax Highlight kann auch
> Vivado nicht.
> Ich arbeite mit Notepad++ als Editor, hab mir das vhdl Plugin noch etwas
> angepasst, damit auch die automatisch erstellten Test Benches klappen.
> Das haben die nämlich in Vivado auch vergessen.

Ebenso Zustimmung, wobei ich persönlich Emacs mit VHDL-mode bevorzuge:
https://guest.iis.ee.ethz.ch/~zimmi/emacs/vhdl-mode.gif



> Also nicht wundern, gerade bei Xilinx ist der Software Unterbau
> Steinzeit.

Steinzeit trifft es nicht ganz, Vivado ist nicht veraltet sondern 
irgendie uninspiriert und schnarch langsam. Ein ISE war/ist ca. dreimal 
zu schnell.

von Edgar C. (Gast)


Lesenswert?

Schon mal vielen Dank bis hierher.

@Christian R.: Vom Editor war ich ehrlich gesagt auch ziemlich 
enttäuscht. Das passt nun wirklich nicht mehr in die Landschaft der 
aktuellen Werkzeuge. Auch die Tatsache, dass die automatischen 
Testbenchgerüste weggefallen sind, ließ meinen Mund offen stehen.

Den Tipp mit np++ werde ich mir anschauen, da ich ihn eh als 
Standard-TXT-Editor benutze. Wie geht das denn mit der automatischen 
Testbench?



Fpga K. schrieb:
> Möglicherweise verwechselst du VHDL library mit IP-library

Danke für den Link. Aber ich meinte schon das altbekannte:

library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;

nur dass dann meine eigenen libs und packages da stehen:

library edgarsgenialercode;
use edgarsgenialercode.superschaltungen.all;


Ein Package zu schreiben, kriege ich ja auch noch ohne 
Vivado-Unterstützung hin. Auch wenn ich die fehlende Unterstützung 
genauso wenig verstehe, wie die fehlenden Testbenches.

Aber WIE teile ich danach Vivado mit, wie meine lib heißt?
Ist die library eine bestimmte Datei? Oder einfach nur das Verzeichnis, 
in dem die dazu gehörigen Packages sind? Wie teilt man den Pfad mit?

Es kann doch nicht sein, dass man immer alles ins lokale 
Arbeitsverzeichnis 'erbricht' und dann mit den Bröckchen spielen muss 
(tschuldigung, falls gerade jemand isst) ;-)

Das hätte dann ja gar nichts mehr mit Ultra Fast zu tun. Selbst eine 
Versionsverwaltung würde dann zum Albtraum.

Ich war eigentlich ziemlich angetan von dem, was ich zuerst von Vivado 
gesehen habe und will jetzt nicht darauf herum bashen.

Aber trotzdem (grummel)

von Christian R. (supachris)


Lesenswert?

Edgar C. schrieb:
> Den Tipp mit np++ werde ich mir anschauen, da ich ihn eh als
> Standard-TXT-Editor benutze. Wie geht das denn mit der automatischen
> Testbench?

Das steht in der Readme. Entity markieren dann ich glaube mit Strg F 
kopieren und in das TB File dann einfügen, Shortcut weiß ich gerade 
nicht. Aber das Plugin bei SourceForge hat einen Bug, bei Groß oder 
Kleinschreibung oder gemixt erkennt der die Signale nicht. Ich hab das 
mal gefixt und dem Autor geschickt, aber ich glaub der hat das bis heute 
nicht gepatcht.
Kann ich dir zukommen lassen, schreib mir mal bitte eine PN.

Edgar C. schrieb:
> Es kann doch nicht sein, dass man immer alles ins lokale
> Arbeitsverzeichnis 'erbricht' und dann mit den Bröckchen spielen muss

Musst du ja nicht, ich hab alle vhdl Files in externen Verzeichnissen, 
sonst dreht ja svn völlig durch bei dem Müll und der kruden 
Ordnerstruktur den Vivado erzeugt. Natürlich muss man die Datei mit dem 
Package dann über add files dem Projekt hinzugefügt werden. Das geht von 
externen Ordnern.
Aber so einen generellen lib Include Pfad wie bei C usw. gibts da nicht. 
Jedenfalls hab ich das noch nie gesehen.

von VHDL hotline (Gast)


Lesenswert?

Edgar C. schrieb:
> Versionsverwaltung

Wenn du eh nicht den Vivado-Editor benutzt, eine Versionsverwaltung 
nimmst und etwas tcl kennst, würde ich dir den Vivado non-project mode 
empfehlen. Da kannst du deine tcl-Skripte einfach mit versionieren und 
brauchst dich auch nicht mit einer Vivado-Ordnerstruktur rumschlagen. 
Das Vivado tcl UI ist sehr einfach bzw. braucht es nur sehr wenige 
Befehle um einen funktionierenden Flow aufzusetzen.

Christian R. schrieb:
> so einen generellen lib Include Pfad wie bei C usw. gibts da nicht

Ich weiß, Klugscheißerei und am Thema vorbei, aber für Verilog gibts den 
bzw. sogar mehrere ;-). Für VHDL ist mir auch nix bekannt.

Fpga K. schrieb:
> Vivado ist nicht veraltet sondern
> irgendie uninspiriert und schnarch langsam. Ein ISE war/ist ca. dreimal
> zu schnell.

Kann ich nicht bestätigen. Unsere Designs werden im Schnitt ca. doppelt 
so schnell gebaut wie in ISE auf demselben Rechner. Ist allerdings ein 
Mehrkern-Speicher-Monster, ich vermute mal, Vivado ist einfach für 
moderne Technik optimiert. Auch die tcl UI gefällt mir sehr gut und das 
non-project mode Konzept mit den design checkpoints finde ich keineswegs 
uninspiriert.

von Fpgakuechle K. (Gast)


Lesenswert?

VHDL hotline schrieb im Beitrag #4386442:
> Auch die tcl UI gefällt mir sehr gut und das
> non-project mode Konzept mit den design checkpoints finde ich keineswegs
> uninspiriert.

Ja das ist brauchbar, allerdings ist tcl außer bei Xilinx ein alter Hut.
Hat man ein anderes Synthesetool als den XST benutzt könnte man schon 
früher mit tcl arbeiten. Viel hat man davon aber auch in der ISE über 
Commandline machen können. Leider hat Vivado nix von ISE übernommen so 
dass man quasi bei Null anfängt.

von Bego (Gast)


Lesenswert?

Christian R. schrieb:
> Frage mich wieso die nicht

Weil die ihr Geld mit HW verdienen und es Xilinx-Beschlusslage ist, nur 
das in SW zu investieren, was nötig ist. Hab ich von einem US-FAE.

von Christian R. (supachris)


Lesenswert?

VHDL hotline schrieb im Beitrag #4386442:
> Wenn du eh nicht den Vivado-Editor benutzt, eine Versionsverwaltung
> nimmst und etwas tcl kennst, würde ich dir den Vivado non-project mode
> empfehlen. Da kannst du deine tcl-Skripte einfach mit versionieren und
> brauchst dich auch nicht mit einer Vivado-Ordnerstruktur rumschlagen.

Naja ich nutze die GUI eigentich nur, um Projekte aufzusetzen und bei 
Änderungen mal schnell eine Sythese durchlaufen zu lassen. Im Normalfall 
wird alles auf dem Build Server gebaut, aber im Project Mode mit TCL, 
das ist weniger Scripting. Die Quellen können ja trotzdem extern sein. 
Der non Project Mode bringt entgegen der Xilinx Marketing Abteilung bei 
uns keine Geschwindigkeitsvorteile.

Dass Vivado langsamer ist kann ich auch nicht bestätigen, bei gleichem 
Chip. (Artix 200) hat die ISE für das gleiche Design viel länger 
gerödelt. Ist vielleicht nur gefühlt langsam weil die Chips immer größer 
werden.

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.