Forum: FPGA, VHDL & Co. VHDL Stimuli auswerten mit C#


von Steffen (Gast)


Lesenswert?

Hallo zusammen,

hab da n ziemlich großes Problem mit einer Projektarbeit fürs Studium.
Ich soll einen Logikanalysator mit dem PC ansteuern und ihm die nötigen 
Daten schicken.
Nun mein Problem:
Diese Daten liegen als VHDL-Code vor (Stimulibeschreibung). Der Code ist 
jedesmal ähnlich dem als Textdatei angehängten (schon mal gut, ist ne 
Einschränkung).
Ich habe nun schon Tage darüber nachgedacht wie ich die Ein- und 
Ausgänge aus dem VHDL-Code extrahieren kann und den Eingängen dann auch 
noch die richtigen Timing- und Zustandsdaten zuordnen kann.
Es soll praktisch ein File entstehen in dem die Eingänge, Ausgänge und 
die Timingdaten für die Eingänge gespeichert sind.

Habt ihr da vielleicht irgendwelche Anregungen, ich komm absolut nicht 
mehr weiter.

Gruß Steffen

von T.M. (Gast)


Lesenswert?

Wo ist der Anhang?
Wenn es sich dabei um eine ganz normale VHDL-Testbench handelt, kommt 
man da mit regex am schnellsten zum Ziel. Ich weiss nicht, ob es die 
auch für C# gibt. Man könnte da die Ports des DUT in ein Array einlesen 
und dann nach Stimuli-zuweisungen suchen, die auf die Signale passen. Da 
es einige Arten der Zuweisung gibt, kann das trotzdem etwas aufwendig 
werden denke ich mal...


T.M.

von Steffen (Gast)


Angehängte Dateien:

Lesenswert?

Sorry, keine Ahnung wieso das File nicht mitgegangen ist.
Mit regex meinst Du RegularExpression oder? -Gibt es in C#.
Schon klar das ich die Ports einlesen muss - aber wie.
Soll ich die Textdatei wie nen String behandeln und nach 
Schlüsselwörtern suchen? Ist das die beste Lösung oder?

MfG

von _daniel_ (Gast)


Lesenswert?

Hi,

was RE betrifft, hab ich schon einiges hinter mir
so schwer ist das nicht, Du wirst aber sicherlich
einige zeit damit beschäftigt sein, regex zu lernen
und zu "debuggen"
aber die aufgabe ist sicherlich machbar

einen tip habe ich für Dich
schreib erst einen prototyp in einer skriptsprache
empfehlen würde ich Python oder Ruby, Perl würde sich
zwar auch eignen aber Python ist sehr(!) viel einfacher
wenn Du dann noch bock und lust hast, kannst es in 3 stunden
nach C# transformieren
string handling ist halt in skriptsprachen einfach unübertroffen

als besonderer vorteil kannst du interaktiv deine RE ausdrücke
ausprobieren, hat mir definitiv geholfen!

die re ausdrücke sind sich eh oft ähnlich
http://docs.python.org/lib/re-syntax.html

von _daniel_ (Gast)


Lesenswert?

ok um  konkretes beispiel zu machen

ports = re.search(r'port\(.*?\);', file("datei.vhd").read())
ports = [port.strip() for port in ports.split(';')]

und so weiter

dann nach ':' spliten, sprich variablen und typ

wenn dein monitor grösser ist, kannst erste zeile direkt in die
zweite einsetzen :)

von Steffen (Gast)


Lesenswert?

Dankeschön, werds erstmal weiter mit Regex versuchen, die Ein- und 
Ausgänge krieg ich schon hin.
Aber ich hab keine Ahnung wie ich das mit der "VECTORTIMING" Funktion 
lösen soll und denen die richtigen Daten zuweisen kann.

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
Noch kein Account? Hier anmelden.