Zugriff über Testpattern auf Konstanten einer Library

OP #1117428
Lesenswert?
• ▲
▼
Hallo Zusammen,

aus einem komplexen Design möchte ich in einer Testbench über 
Testpattern ein VHDL-Modul testen. Das Modul enthält mehrere 
Daten-Adress-Bus Interface die zu stimulieren sind. Nun sind dazu in 
einer Projekt-Library Konstanten für die Adressen definiert, welche in 
dem Modul verwendet werden. Z.B.:
1
   constant ADDR_SET_MINTIME   : std_logic_vector(15 downto 0) := x"0004";  
2
   constant ADDR_SET_MAXTIME   : std_logic_vector(15 downto 0) := x"0008";
In der Testbench werden dazu aus einem Textfile Testpattern gelesen. Da 
die Konstanten sich im Laufe der Entwicklung hin und wieder nochmal 
ändern, würde ich ungern auf die meinen Testpattern die Adresse absolut 
eingeben sondern mit dem Konstanten-Namen. Z.B.:
1
   wr   ADDR_SET_MINTIME   56
2
   rd   ADDR_SET_MAXTIME
anstelle von
1
   wr   4   56
2
   rd   8
Hat jemand ne Idee - oder besser sogar noch eine Lösung - für das 
Problem?
OP #1117520
Lesenswert?
• ▲
▼
>> Warum benutzt du denn nicht einfach die Library in deiner Testbench und
greifst auf die Konstanten zu?

Dann müsste ich die Testpattern quasi in der Testbench unterbringen, das 
ist bei sehr langen und variablen Testpattern nicht praktikabel.

Man könnte höchstens den Konstantennamen aus den Testpattern auslesen, 
diesen als String in einer Caseanweisung plazieren und dort dann die 
eigentliche Konstante einer Adressvariablen (oder einem Signal) 
zuweisen. Dafür müsste man aber in jeder Testbench die ganzen Kontanten 
nochmals eintippen und vor allem parallel zur Library warten. Z.B.:
1
case tp_string is
2
   when "ADDR_SET_MINTIME" => tp_addr := ADDR_SET_MINTIME;     
3
   when "ADDR_SET_MAXTIME" => tp_addr := ADDR_SET_MAXTIME; 
4
   ... 
5
   when others             => tp_addr := x"0000";
6
end case;
Bei sehr vielen Konstanten und vielen Modulen ist das sehr aufwendig.
Gast #1117524
Lesenswert?
• ▲
▼
Wie wäre es mit einem kleinen Script (z.B in Perl) das dir die 
gewünschten Konstanten aus der Library liest und aus deinen Testpattern 
(mit Konstanten) eine neue Datei erzeugt, in denen die Konstanten mit 
den gelesenen Werten ersetzt wurden. Sowas ist auch recht einfach.

Der Besucher

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.