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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren