Forum: FPGA, VHDL & Co. Microsemi - Simulation mit ModelSim


von VauHaDeEl (Gast)


Lesenswert?

Hallo Leute,

ich habe vor Jahren das letzte Mal mit Xilinx zu tun gehabt. Nun nach 
Jahren der FPGA Untreue muss ich mal wieder ran, jetzt jedoch Microsemi 
FPGA. An sich habe ich mich nach Jahren C-Programmierung in VHDL wieder 
gut zurecht gefunden. Eine Sache stört mich aber unheimlich. Simulation, 
wo ich der Meinung bin, dass es früher nicht so krampfhaft war.
Wenn man was "schnell" durch simulieren möchte ohne einer DO oder einer 
Testbench, klappt es im Großen und Ganzen. Jedoch, will ich irgendwann 
am Zeitpunkt Null anfangen, mit dem "Restart" wird aber alles gelöscht: 
Clockdefinition, Reset-Flanke, Signale, alles ist wieder undefined. Da 
gibt es mehrere Häkchen zum Behalten der Information "Keep". Alle 
Häkchen sind auch gesetzt. Woran kann es liegen?

von Algex (Gast)


Lesenswert?

VauHaDeEl schrieb:
> Hallo Leute,
>
> ich habe vor Jahren das letzte Mal mit Xilinx zu tun gehabt. Nun nach
> Jahren der FPGA Untreue muss ich mal wieder ran, jetzt jedoch Microsemi
> FPGA. An sich habe ich mich nach Jahren C-Programmierung in VHDL wieder
> gut zurecht gefunden. Eine Sache stört mich aber unheimlich. Simulation,
> wo ich der Meinung bin, dass es früher nicht so krampfhaft war.
> Wenn man was "schnell" durch simulieren möchte ohne einer DO oder einer
> Testbench, klappt es im Großen und Ganzen. Jedoch, will ich irgendwann
> am Zeitpunkt Null anfangen, mit dem "Restart" wird aber alles gelöscht:
> Clockdefinition, Reset-Flanke, Signale, alles ist wieder undefined. Da
> gibt es mehrere Häkchen zum Behalten der Information "Keep". Alle
> Häkchen sind auch gesetzt. Woran kann es liegen?

Bitte was?

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


Lesenswert?

VauHaDeEl schrieb:
> Jedoch, will ich irgendwann am Zeitpunkt Null anfangen, mit dem "Restart"
> wird aber alles gelöscht:
> Clockdefinition, Reset-Flanke, Signale, alles ist wieder undefined.
Wie sieht deine Testbench aus? Das, was du da beschreibst, hört sich 
an, wie wenn du die Signale händisch verwaltest...

von VauHaDeEl (Gast)


Lesenswert?

Hallo Lothar, ich habe geschrieben, dass ich zuerst ohne ein 
Testbenchfile simulieren wollte. habe mir mitlerweile ein DO File 
erstellt und führe "force" für einzelne Signale über die TCL console 
aus. Testbench zu schreiben fand ich zuerst mühsamer, werde es aber noch 
tun.

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


Lesenswert?

VauHaDeEl schrieb:
> Hallo Lothar, ich habe geschrieben, dass ich zuerst ohne ein
> Testbenchfile simulieren wollte.
Uuuups, richtig... :-o

> Testbench zu schreiben fand ich zuerst mühsamer, werde es aber noch tun.
Eine Testbench ist relativ einfach zu schreiben. Mit ein wenig Glück 
gibt es Codegeneratoren, die den kompletten Frame bis hin zur 
Takterzeugung erstellen (Xilinx ISE). Mit Pech muss man sich selber aus 
einem Dreizeiler so eine Testbench erstellen.

von Martin S. (strubi)


Lesenswert?

Moin,

Xilinx hat irgendwann diesen klickbaren Wave-Generator (Namen schon 
vergessen) aus dem ISE geworfen. Um eine Testbench in VHDL kommt man 
also wohl nicht mehr rum. Allerdings kann man sich nach wie vor als 
"Template" erstellen lassen.
Jedoch bin ich inzwischen weg von Modelsim und nun auch von isim. GHDL 
arbeitet deutlich flotter, und man kann damit ein paar richtig böse 
Sachen machen, wie z.b. shared libraries mit spezieller API dazuladen, 
die die Simulation von aussen per Netzwerk zugänglich machen ("Virtuelle 
Hardware").
Die Testbenches mache ich so fast nur noch in Python, resp. treibt die 
echte Software die virtuelle Hardware. Gibt da auch ein paar 
Forenthreads zu.
Nachteil an GHDL ist, dass es eher was für Linux-Entwickler ist, unter 
Windows funktioniert alles etwas eingeschränkt.

Grüsse,

- Strubi

von Bratensosse (Gast)


Lesenswert?

Hallo,

dann benutzt du sicherlich Libero. Je nach dem welche Lizenz du hast 
gibt es auch ein waveform generator. Da kannste klicki-bunti deine 
Signale anlegen und deine Testbench wird automatisch generiert. Falls 
nicht, musst du deine TB selbst schreiben. Ist aber ne sache von 10 
minuten.

Die Toolchain von Libero ist allerdings schöner und selbsterklärender 
als die von xillinx oder altera. Ich arbeite gerne mit den Actel FPGAs.

Grüße

Jürgen

von Simulant (Gast)


Lesenswert?

Martin S. schrieb:
> GHDL
> arbeitet deutlich flotter, und man kann damit ein paar richtig böse
> Sachen machen, wie z.b. shared libraries mit spezieller API dazuladen,
> die die Simulation von aussen per Netzwerk zugänglich machen ("Virtuelle
> Hardware").
> Die Testbenches mache ich so fast nur noch in Python, resp. treibt die
> echte Software die virtuelle Hardware

Und warum brauchst du dafür GHDL?
Mache ich genauso mit Modelsim und dürfte auch mit jedem anderen gehen, 
das gibt vhdl alleine schließlich schon her.

GHDL hat leider den Vorteil das man nicht vernünftig (wenn überhaupt) 
aktuelle crypted Libraries der Hersteller compilen kann. Von mixed 
Language ganz zu schweigen.

von Martin S. (strubi)


Lesenswert?

Moin,

>
> Und warum brauchst du dafür GHDL?

Na ganz einfach: Opensource, gut erweiterbar, und läuft stabil unter 
Linux (was ich von der damaligen Modelsim-Variante nicht behaupten 
kann). Und es kostet keine weiteren Kindergartenlizenzen, wenn man 
grosse Designs simulieren will. Vor allem ist es weniger schwerfällig in 
der Bedienung (ich mag nun mal Makefiles).

> Mache ich genauso mit Modelsim und dürfte auch mit jedem anderen gehen,
> das gibt vhdl alleine schließlich schon her.
>

Soweit ich sehe, musste man für das volle Co-Simulationspackage mit 
einem relativ schlecht dokumentierten VHPI-Interface tüchtig in die 
Tasche greifen.

> GHDL hat leider den Vorteil das man nicht vernünftig (wenn überhaupt)
> aktuelle crypted Libraries der Hersteller compilen kann. Von mixed
> Language ganz zu schweigen.

Mixed Language kommt eh nich bei mir in die Tüte.
Das mit den obfuscated libraries ist manchmal ein Problem. Liegt aber 
meist nur an kleinen perfiden Standard-Verletzungen von Seiten Xilinx. 
Manche muss man nur ein bisschen deobfuscieren, und sie laufen, oder ein 
paar Zeilen ändern. Die Zeit die ich sonst gegenüber isim oder Modelsim 
einspare, ist das bisschen Extraarbeit wert.

von Simulant (Gast)


Lesenswert?

>> Mache ich genauso mit Modelsim und dürfte auch mit jedem anderen gehen,
>> das gibt vhdl alleine schließlich schon her.
>>
>
> Soweit ich sehe, musste man für das volle Co-Simulationspackage mit
> einem relativ schlecht dokumentierten VHPI-Interface tüchtig in die
> Tasche greifen.

Du solltest mal weniger kompliziert denken. Ihr Linuxfritzen erzählt 
doch immer was von "alles ist eine Datei" oder so ähnlich. Hier liegt 
der Schlüssel zum Erfolg.

von Strubi (Gast)


Lesenswert?

>
> Du solltest mal weniger kompliziert denken. Ihr Linuxfritzen erzählt
> doch immer was von "alles ist eine Datei" oder so ähnlich. Hier liegt
> der Schlüssel zum Erfolg.

Bin mir nicht sicher, ob Du die Komplexität meiner Anforderungen 
verstanden hast. Mit Dateien ist das nicht zu machen, und wenn, dann 
wird's hässlich und langsam.
Konkret geht es z.B. um ein virtuelles Board mit einem SoC, der per gdb 
remote-debuggt wird (Im Prinzip beschrieben: 
http://tech.section5.ch/news/?p=101). Wenn man's mal durchschaut hat, 
ist die Methode erschreckend unkompliziert. Ich lasse z.B. einen 
Softwaretreiber in der selben Form mit der Simulation sprechen wie auch 
mit der virtuellen Hardware. Solang mir keiner zeigt, dass das die 
kommerziellen Tools besser und schneller (zu einem Preis unter 5000 €) 
können, sehe ich bislang keine Möglichkeit, effizienter komplexe Systeme 
zu debuggen.

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.