Hallo liebe Foren-Nutzer, ich beschäftige mich nun schon längere Zeit mit einer Lösung um über einen signal_spy die Länge eines Arrays, Vektors oder ähnlichem festzustellen. Das Ganze wird in VHDL geschrieben. Mein Lösungsansatz wäre fürs Erste der, dass ich aus einer Schleife herausspringe sobald ich das Bit nicht mehr über ein signal_force auf den abgefragten Wert setzen kann. Bsp. siehe Anhang Hoffe meine Ausdrucksweise ist soweit verständlich Mit freundlichen Grüßen Benjamin Hlava
Abgesehen davon, das ich signal_spy nicht empfehlen kann, da es proprietär ist und mit VHDL2008 eine ähnliche Lösung zur Verfügung steht: Die Attribute 'range, 'lfet, 'right, 'high und 'low sind Dir bekannt? Duke
Also all das findet auf der Testbench-Ebene statt. Mir geht es in dem Sinn nur darum, dass ich ein Array mit natural range <> eingubunden in einer Entity verwende. Je nachdem wie Diese dann im Design verwendet wird weist das Array eine andere Größe auf. In einer anderen Entity möchte ich die Information erhalten wie groß dieses Array in dieser Design-Zusammensetzung ist, ohne dieses Signal als Eingang zu verwenden. Somit, wenn ich dich richtig verstehe, weiß ich nicht wie mir diese Attribute weiterhelfen. Aber danke für deinen Beitrag :) LG Benjamin
Benjamin Hlava schrieb: > Mir geht es in dem Sinn nur darum, dass ich ein Array mit natural range > <> eingubunden in einer Entity verwende. Je nachdem wie Diese dann im > Design verwendet wird weist das Array eine andere Größe auf. > > In einer anderen Entity möchte ich die Information erhalten wie groß > dieses Array in dieser Design-Zusammensetzung ist, ohne dieses Signal > als Eingang zu verwenden. Somit, wenn ich dich richtig verstehe, weiß > ich nicht wie mir diese Attribute weiterhelfen. Ok ich seh dein Problem. Die Attribute müsstest du mit dem VHDL2008 Ansatz eigentlich trotzdem nutzen können (Wenn deine Tools das können ist das eine super Sache). Was ein Ansatz sein könnte, dafür kenne ich eure Designs aber zu schlecht, ist die Konstanten zu nutzen, die für das Einbinden zuständig sind. Also z. B. hast du ein Package wo all die fraglichen Komponenten deklariert sind und vielleicht auch eine Konstante die bei der Implementierung die Länge dieses Arrays steuert. Bei mir gibt es in den neueren Projekten dazu ein globals_pkg.vhd wo die Konstanten und Definitionen drin stehen, die zum Top Level gehören bzw. Gerätespezifisch sind. Dieses Package kann ich natürlich in der Testbench einbinden und bekomme so z. B. die Information über die Breite des herausgeführten Datenbusses.
Nein. Also Konstanten stehen hier nicht zur Debatte :) Durch die Anzahl an Entities auf der Testbench-Ebene ergibt sich eine gewisse Größe des Arrays. Dort wo dieses Array auch als Eingang benutzt wird wird dann mithilfe der schon vorher erwähnten Attribute 'length 'high 'low etc. die Größe ermittelt. Da jedoch derjenige Prozess im Hintergrund läuft, ohne Änderungen am schon bestehenden Design vornehmen zu müssen, wäre eine Lösung mit Konstanten zu viel Aufwand. Grundsätzlich funktioniert ja die Lösung example.txt auch schon. Hört sich vielleicht blöd an, aber: Es geht mir um die Errormeldung im Transcript vom Modelsim, weil das Objekt mit dem nächst höheren Index nicht mehr vorhanden ist. Object '...' does not exist. So wollte ich fragen ob es vielleicht noch eine andere Möglichkeit/schönere Lösung gibt um diese Fehlermeldung zu umgehen. Ist eine Kleinigkeit aber für mich trotzdem nicht uninteressant :) LG Benjamin
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.