Simulation mit Isim

Gast #2415267
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.
Gast #2424732
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...
Gast #2425657
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..
Gast #2425826
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
Gast #2426063
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...
Gast #2428524
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
Gast #2429609
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!

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren