Hallo,
vielleicht kann mir einer von euch weiter helfen!
Ich möchte ein Package mit Quartus erstellen, hab aber einige Probleme
mit dem Kompiler.
Laut Fachbücher sollte der Code richtig sein und in anderen Programmen
funktioniert er auch.
Falls jemand Erfahrungen hat, mit erstellen von Package mit Quartus II,
meldet euch.
Vielen Dank
Gruß Flo
Ein Package ist keine Entity !!
Du mußt zuindest eine Top-Level Entity schreiben, in der die Prozezur
concurrent aufgerufen wird.
Ob der Compiler das dann auch für die Synthese versteht, weiss ich aber
nicht, empfehlenswert ist das aber in keinem Fall.
Aber warum so kompliziert für den Anfang?
Schreib eine normale Entity mit einem Prozess.
Klaus
Hallo Klaus,
danke für die Antwort.
Es ist nicht der Einstieg in VHDL.
Ich brauche sehr viele verschiedene Frequenzen und auch andere
Funktionen für meine Programme.
Dafür möchte ich mir ein Package erstellen, welches ich in der Library
aufrufe und dann mir zur Verfügügung steht, um meinen Programmcode
übersichtler zu gestalten und nicht jedesmal neu erzeugen muss.
Ich versteh nicht warum mein Code in anderen Programmen kompilierbarbar
ist und in Quartus II nicht!
Theoretisch müsste es doch funktionieren.
Florian
Die Verwendung eine Packages kann schon funktionieren, aber Quartus
verlangt eine Entity als Top-Level.
Es wurde ja kompiliert, aber es meckert weil es eine entity "freq_pkg"
sucht. Diese gibt es nicht, es gibt nur ein package mit diesem Namen.
Zum Erstellen von parametrisierbarem Kode gibt es die generics.
Auch wenn es vielleicht nicht dein erstes VHDL Programm ist, sattelfest
scheinst Du doch nicht zu sein.
Du solltest also "konventionellere" Lösungen anstreben.
Klaus
Ja klaus da geb ich dir recht.
Sattelfest oder gar Profi bin ich noch lange nicht.
Ich möchte mich aber weiter entwickeln.
Und dafür hilft mir dein Kommentar leider nicht.
Ich würde mal gern sehen wie im Quartus ein package angelegt wird. Das
kann doch nicht so schwer sein!
Eine entity hatte ich auch schon geschrieben aber der Kompiler meckert.
Ich hatte schon einige Ansprechpartner, welche auch überfragt sind.
Warum das in Quartus nicht funktioniert. Mit Xilinx funktioniert es ja
auch, nur hier im Quartus nicht (und das soll ich im Rahmen des Studiums
benutzen).
Liegt es vielleicht an der Web-edition?
Florian
> Und dafür hilft mir dein Kommentar leider nicht.
Wieso, jetzt habe ich es Dir doch schon 2x gesagt :
Quartus braucht eine Top-level Entity, diese hast Du nicht in deinem
Projekt !
Lege ein Projekt mit einer Entity an, mit Eingangs- und Ausgangsignalen.
Diese sei Dein Top-Level.
In eimem 2. File liegt dein Package mit der Prozedur.
Im der Architecture der Top-Level Entity wird deine Prozedur dann
verwendet.
Anders funktioniert's bei Xilinx sicher auch nicht.
Und falls Du wirklich nicht weißt was der Unterschied zwischen einer
Entity und einer Prozedur ist, dann hilft Jammern auch nicht weiter
sondern nur das Nachlesen der Grundlagen.
Wo hast Du die Vorlage für Deinen Kode überhaupt her? Wenn es ein Buch
ist, dann kauf Dir ein besseres.
Entschuldige, wollte dich nicht angreifen oder verärgern.
Ich bin dankbar, dass du mir weiter hilfst.
Weißt du wo ich ein package, welches mit Quartus programmiert wurde, im
Internet finde?
Das würde mir sehr weiterhelfen.
Vielen Dank für deine Bemühungen.
Gruß Flo
Nein, leider, außerdem mit Quartus habe ich weniger zu tun.
In Deinem Fall geht es meiner Ansicht nach nicht um das Package selbst.
Das Package wurde ja kompiliert und akzeptiert.
Du definierst aber eine Prozedure und (zum wiederholten Male) KEINE
Entity. Das ist der Fehler.
Poste doch einmal deine Quellfiles (und bitte nicht wieder die
Bildschirmkopie), dann kann Dir vielleicht jemand weiter helfen.
Es sollten 2 Quellfiles sein, das Top-Level mit der Entity und das
Package.
Ja hab ich nun gemacht.
Und du hattest recht. Für das Anlegen eines package braucht man eine
entity und eine architecture.
Jetzt werde ich mal ein Testprogramm schreiben und die procedure mal
aufrufen. Bin gespannt ob dieses funktioniert. Weißt du ob das Package
einen bestimmten Pfad haben muss, dass es in ein Programm eingebunden
werden kann?
Vielen Dank jetzt bin ich schlauer.
Aber eine Frage hab ich noch:
Weißt du warum ab einer bestimmten Anzahl von events eine Fehlermeldung
erscheint?
Verringert man die Anzahl von events verschwindet die Fehlermeldung
wieder.
Nein, es ist Dir immer noch nicht klar.
Es braucht kein Entity um das Package anzulegen, aber die Synthese
braucht eine Entity.
Und Du brauchst auch kein Testprogramm, die Top-Level Entity ist das
"Programm" in dem die Prozedure aus dem Package aufgerufen wird.
Es gibt auch keine Pfade zum Package.
Bitte tu Dir doch einen Gefallen und fang mit einfachen Beispielen an.
Glaub mir bitte, Du hast VHDL noch nicht verstanden, Du solltest
wirklich bei den Grundlagen von VHDL und VHDL-Synthese anfangen.