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
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.
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
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
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 :)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.