Forum: FPGA, VHDL & Co. ISIM - Eingangssignal forcen


von Silvia A. (silvia)


Lesenswert?

Ich will in Xilinx Isim (ise9) ein Eingangssignal während der Simulation 
ändern (force). Mit Modelsim geht es ja durch einen Rechtsklick auf das 
Signal, aber wie geht es mit Isim ?

von Duke Scarring (Gast)


Lesenswert?

Silvia A. schrieb:
> (force)
Klingt nach Bastelei.

> wie geht es mit Isim ?
Mit einer ordentlichen Testbench.

Duke

von Silvia A. (silvia)


Lesenswert?

Duke Scarring schrieb:
> Mit einer ordentlichen Testbench.

Das versteh ich jetzt nicht, wie kann ich denn in einer Bereits 
laufenden Simulation einen Eingangswert überschreiben ? Z.b. einen 
Tastendruck simulieren, der in der Testbench immer '0' ist.

Duke Scarring schrieb:
>> (force)
> Klingt nach Bastelei.

Während der Simulation will ich alle möglichkeiten ausnutzen, und nicht 
mich auf eine vorher festgelegte Testbench verlassen müssen

von enan (Gast)


Lesenswert?

in der Kommandozeile z.B.

isim force add {/<module>/<signal_name>} 1 -radix bin

Für einfache Module tuts manchmal auch nur ein .tcl script.

Für komplexere Module sollte man dann schon ne testbench anlegen.

von Duke Scarring (Gast)


Lesenswert?

Silvia A. schrieb:
> und nicht
> mich auf eine vorher festgelegte Testbench verlassen müssen
Ich schon. Alles andere ist nicht reproduzierbar.

Duke

von Silvia A. (silvia)


Lesenswert?

enan schrieb:
> isim force add

Genau das hat mir gefehlt

Duke Scarring schrieb:
> Ich schon. Alles andere ist nicht reproduzierbar.
Es geht hier um Tastendrücke durch einen Benutzer. So was gehört einfach 
nicht in eine Testbench. Und Benutzerverhalten ist selten Reproduzierbar

von Christian R. (supachris)


Lesenswert?

Wieso sollte das nicht in die Testbench? Wenn die Reaktion auf den 
Tastendruck Teil der Funktion des Designs ist, gehört das meiner Meinung 
nach in due TB, dazu gibts die doch.

von Silvia A. (silvia)


Lesenswert?

Christian R. schrieb:
> Wenn die Reaktion auf den
> Tastendruck Teil der Funktion des Designs ist, gehört das meiner Meinung
> nach in due TB, dazu gibts die doch.

Das mag ich nun nicht nachvollziehen können.

Es geht mir um die Simple Menüführung einer Stoppuhr. 4 Tasten - Start - 
Stop - Reset - Zwischenzeit. Da ich keine reale Hardware habe, muss ich 
die Tastendrücke simulieren. Im Regelfall überlegt $USER NICHT vor dem 
einschalten, wann er welchen Knopf drücken wird, sondern macht das 
intuitiv und nicht reproduzierbar. Und genau diese Eigenschaft will ich 
simulieren und die Tasten zur Laufzeit ändern.
Am liebsten hätte ich, das mir die Testbench 4 Buttons auf dem Desktop 
zaubert, die ich direkt anklicken kann. Seht ihr da eine (einfache) 
Möglichkeit ?

von Christian R. (supachris)


Lesenswert?

Einfach alle möglichen Sequenzen der 4 Tasten in der Testbench 
berücksichtigen. So viele sind es ja nicht. Deine Lösung wäre irgendwie 
nicht reproduzierbar und schreit förmlich danach, dass du genau die 
Sequenz vergisst, zu drücken, die ein fehlerhaftes Ergebnis liefert.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Silvia A. schrieb:
> Und Benutzerverhalten ist selten Reproduzierbar
Es gibt Funktionen zum ermitteln eines Zufallswertes. Dieser Wert dann 
mit 1ms multipliziert gibt auch ein schön unerwartetes Event...

von Silvia A. (silvia)


Lesenswert?

Christian R. schrieb:
> Einfach alle möglichen Sequenzen der 4 Tasten in der Testbench
> berücksichtigen. So viele sind es ja nicht.

Dummerweise kannst du damit dein Design nicht vollständig durchtesten. 
Stell dir vor du hast ein Design mit 8 Tasten und Menüführung. Alle 
möglichen Kombinationen der Tasten bringen dich da nicht unbedingt an 
alle möglichen Menüpunkte.

Und irgendwie mag ich nicht einsehen wollen, dass ich jedesmal die 
Testbench ändere,neu kompiliere und die Simulation neu starten muss, nur 
um einen Tastendruck spontan zur Laufzeit zu simulieren.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Silvia A. schrieb:
> dass ich jedesmal die Testbench ändere, neu kompiliere
> und die Simulation neu starten muss
Das mußt du alles nicht, wenn du die Stimuli (wie in einem solchen Fall 
üblich) mit fileio/textio aus einer Datei liest...
http://eesun.free.fr/DOC/vhdlref/refguide/language_overview/test_benches/reading_and_writing_files_with_text_i_o.htm

> nur um einen Tastendruck spontan zur Laufzeit zu simulieren.
Eine "Laufzeit" gibt es in einer "Simulation" nicht...

Ich würde mir bei diesen Mikrocontroller-Simulatoren eher mal wünschen, 
dass sie vernünftig über eine Datei steuerbar wären. Denn dann könnte 
ich z.B. einmal "im echten Leben" Sensordaten aufnehmen, und die dann in 
die Simulation einspielen....

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.