Forum: FPGA, VHDL & Co. Simulation mit Isim


von Manu (Gast)


Lesenswert?

Hallo guys,

Ich möchte mal fragen, warum funktioniert meine Simulation mit Modelsim 
aber nicht mit Isim?
Es kommen immer die Fehlermeldungen:

FATAL_ERROR:Simulator:CompilerAssert.h:40:$Id: Fuse.cpp,v 1.35 
2007/11/07
   21:25:47 sonals Exp $ - Internal Compiler Error in file 
../src/VhdlExpr.cpp
   at line 7975   Process will terminate. For technical support on this 
issue,
   please open a WebCase with this project attached at
   http://www.xilinx.com/support.
FATAL_ERROR:Simulator:CompilerAssert.h:40:$Id: Fuse.cpp,v 1.35 
2007/11/07 21:25:47 sonals Exp $ - Internal Compiler Error in file 
../src/VhdlExpr.cpp at line 7975   Process will terminate. For technical 
support on this issue, please open a WebCase with this project attached 
at http://www.xilinx.com/support.

Ich benutze Xilinx 10.1.

von Duke Scarring (Gast)


Lesenswert?

Manu schrieb:
> Ich benutze Xilinx 10.1.
Kannst Du evtl. updaten? Gerade bei isim sollte sich zwischen der 10.1 
und der 13.3 (aktuell) einiges getan haben.

Duke

von Bert (Gast)


Lesenswert?

Ähnliche Fehlermeldungen bekomme ich auch unter 12.1..13.2,
insbesondere bei der Verwendung von Strukturen/Referenzierung.
Lässt sich aber teilweise umgehen..

von H.&M. (Gast)


Lesenswert?

Wie benutzbar ist denn mittlerweile dieser ISIM?

von Bert (Gast)


Lesenswert?

Für den Hobbybereich reicht's, vom Einsatz im Profibereich
ist abzuraten: Teil man z.B. unter best. Umständen

a <= b

in

a(k-1 downto 0) <= b(k-1 downto 0);
a(n-1 downto k) <= b(n-1 downto k);

auf, wird ein Teil korrekt behandelt, der Andere nicht.
(Xilinx-Forum:Fehler im DeltaZyklen-Algo??)
Und da man nicht in alle verwendeten Komponenten eines
Projekts schauen kann...

von Xenu (Gast)


Lesenswert?

Hallo Bert,

könntest Du bitte einen Link zu diesem Xilinx-Forum-Thread posten?
Bzw. Beispielcode, wo Modelsim richtig, und ISIM falsch simuliert?

Danke.

von Bert (Gast)


Lesenswert?

Hab's gerade noch mal unter 13.2 probiert, noch immer der selbe
Fehler wie in

http://forums.xilinx.com/t5/General-Technical-Discussion/VHDL-simple-process-loop-problem/m-p/84860

beschrieben. Probiers einfach mal aus..

von Bert (Gast)


Lesenswert?

Edit: Das Problem ist nich einfach ein Split der Zuweisung wie
Oben von mir beschrieben, es hängt irgendwie mit der Schleife
(LOOP) und der Trennung in mehrere Prozesse zusammen.

Hoffentlich kommen jetzt keine dummen Komentare zur
Mehrprozessschreibweise. An der liegt's nicht..

von Hotte (Gast)


Lesenswert?

Das hört sich aber nicht so toll an.

von Strubi (Gast)


Lesenswert?

Moin,

bestimmt gibt es wieder auf die Mütze für einen "Nimm doch XY"-Beitrag, 
aber ich habe parallel zu isim nun vermehrt GHDL eingesetzt, welches bei 
komplexen Projekten deutlich effektiver arbeitet und wunderbar die 
Co-Simulation mit den fertigen Treiberroutinen (aufwendige 
Testbench-Coverage ade) erlaubt.
Aufpassen muss man nur bei Xilinx-Cores, GHDL ist recht streng, was 
VHDL-Standards angeht.
Musste mal wieder realisieren: Dass es nichts kostet, muss nicht 
heissen, dass es nichts taugt. (Im Gegensatz zu Webpack...)

Grüsse,

- Strubi

von berndl (Gast)


Lesenswert?

Hi Strubi,

GHDL ist klasse. Man sollte nur tunlichst vermeiden, so Sachen wie RAMs 
und Multiplier als Instanz/Component einzubinden, dann wird es naemlich 
seeeehr langsam und die .vcd Ausgabefiles werden sehr viel groesser.
Viel besser ist dann, diese Bloecke generisch in VHDL zu beschreiben 
(also z.B. type ... is array ... fuer ein RAM).
Man kann das z.B. mit GENERICs prima zwischen Simulation und Synthese 
umschaltbar machen...

von Xenu (Gast)


Lesenswert?

>Hab's gerade noch mal unter 13.2 probiert, noch immer der selbe
>Fehler wie in
>
>http://forums.xilinx.com/t5/General-Technical-Disc...
>
>beschrieben. Probiers einfach mal aus..


Danke für den Link. Habe es gerade ausprobiert, und zwar sowohl mit ISIM 
als auch mit Modelsim. Und beide (!) Simulatoren liefern dasselbe 
"fehlerhafte" Ergebnis.

Was auch kein Wunder ist, weil es nämlich gar kein Fehler ist, sondern 
einfach eine VHDL-Eigenheit.

Siehe Erklärung hier, unter Punkt 4.2.13, bei dem Loop-Beispiel:

http://www.eda.org/comp.lang.vhdl/FAQ1.html

von Bert (Gast)


Lesenswert?

Hm, auf die Idee mit einem Modelsim-Test hätte man auch selber
kommen können...:(

So auf die Schnelle würde ich sagen, dass das Entscheidende
die Definition von "longest static prefix" ist (für Loop:
nur der Variable/Signal-Name, nicht der Range-Zusatz der
Schleife). Für eine (statische!!) Schleife könnte man oP
die Range noch in den Namen einfliessen lassen und das
Problem wäre gelösst. Oder für jede Komponente des Vektors
einen eigenen Graph..

Meine Lehre: Je Signal/Signalvektor nur eine Concurrent- bzw.
Prozess-Zuweisung.

Danke für den Link!

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.