Hallo zusammen, angenommen, ich habe in VHDL einen DualPort-RAM. Port A und Port B sollen dabei verschiedene Aufgaben erfüllen (siehe Anhang). Ist es möglich, eine Struktur wie im Anhang aufzubauen? Ich müsste dafür die Entity des DualPort-RAMs aufteilen, so dass ein Teil der Signale zur Entity von Konverter I läuft und ein Teil zur Entity Konverter II. Geht das? Oder muss ich zwingend eine gemeinsame Entity aufbauen, in der ich Konverter I und II gemeinsam abhandele, dann die Signale an TOP weiterleite und von da aus erst die Signale des Konverter II auf das Ausgabe-Interface leite? (Das Interface in die gemeinsame Konverter-Entity zu legen halte ich für eine unschöne Lösung, da dann die Funktion nicht sauber getrennt wäre.) Ich hoffe, meine Frage ist verständlich rübergekommen. Welche Möglichkeiten habe ich? Grüße Steffen
In jedem Fall braucht es eine Toplevel-Entity in der dann alle anderen Entities enthalten sind. Auch wenn deine eine Entity "TOP" heißt - sie ist nicht die Toplevel-Entity in dem von dir gezeichneten Aufbau. Die Toplevel-Entity würde bei dir dem grauen Kasten "FPGA" entsprechen. Wenn ich dich recht verstehe, möchtest du in beiden Konverter-Entities jeweils die Hälfte der Ports des Memories einbauen? Das geht nicht.
Hallo Jan, danke für Deine Antwort! Jan M. schrieb: > Auch wenn deine eine Entity "TOP" heißt - sie > > ist nicht die Toplevel-Entity in dem von dir gezeichneten Aufbau. der Anhang soll nur den Signalfluß schematisch darstellen. Du triffst aber den Nagel auf dem Kopf: Letztenendes kann ich dann in VHDL ja nur "verschachteln". Das heißt, ich habe eine Entity, die ich als Component in einer übergeordneten Entity einsetze, die dann wiederum in einer noch höheren Entity verschachtelt wird (ggf. mit anderen Entities zusammen). Alle Signale muss ich durch diese gesamte Hierarchie-Ebene mitschleifen, auch durch Entities, in denen sie gar nicht verwendet werden. Ist das wirklich so korrekt? Grüße Steffen
> Ist das wirklich so korrekt?
Ja.
Gewöhne dir aber besser an, keine allzu tiefen Verschachtelungen zu
machen wenn der Datenfluss eher linear von einer Entity zur nächsten
verläuft - das erschwert das debuggen und das testen einzelner
Programmteile ungemein.
Wenn du die Zahl der zu verbindenden Signal reduzieren willst, kannst du
dir records anschauen, damit kannst du (ähnlich einer struct in C)
mehrere Signale zu einem zusammenfassen.
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.