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.
Ok werd ich. Kannst du ein Buch empfehlen? Ich habe derzeit VHDL-Synthese und The Designer´s Guide to VHDL. Beide find ich ganz gut.
Diese Bücher sollten eigenlich ok sein, aber vielleicht haben andere noch ein paaar Empfehlungen ...
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.