Forum: FPGA, VHDL & Co. Tauglichkeit von VHDL-Simulatoren für Mathematik


von Michael (Gast)


Lesenswert?

Gibt es hier Personen, die die Möglichkeiten der VHDL-Simulatoren ( 
esgibt ja einige freie) für mathematische Berechungen nutzen?

Draufgekommen bin ich druch eine Diskussion mit einem 
Leica-Mathematiker, der schon seit Jahren MOodelSIM verstärkt einsetzt, 
um (in REAL) seine Vorberechungen zu vollziehen, bevor sie in die DSPs 
und FPGAs kommen.

Grund: MATLAB ist zu langsam!

Wäre das ein tauglicher Ansatz?

Ich spreche da nicht nur von REAL-Modellen, mit deren Hilfe man die 
reinen FPGA Rechungen in VHDL überprüfen kann, sondern auch von 
bitgenauen Modellen, mit denen spätere Integerberechungen in C simuliert 
werden können.

Die Idee dabei ist, die Fähigkeit der Simulatoren zu 
hardwre-Co-Simulation zu benutzen. Der Simulator ISIM verfügt 
bekanntlich über die Möglichkeit, fertige VHDL-Hardware in die Berechung 
einzuschleifen. Ich habe das bei Kollegen im Umfeld purer 
MATLAB-Simulationen gesehen, welche unfassbar schnell ablaufen und zwar 
erheblich schneller, als die MATLAB-Modelle, hinter denen sich ja eine 
Art von C++ verbergen wird.

Ich will damit sagen, dass die bisherige Theorie ja die ist: Ich 
simuliere erstmal mit MATLAB weil's schneller ist und setze dann in C 
oder HDL um.

Wie ist das einzuschätzen?

von Sepp (Gast)


Lesenswert?

Matlab und Simulieren weil es schneller ist? Schwachsinn! Wenn dann in 
Matlab Simulieren, weil es für gewisse Aufgaben einfacher ist.

Den Ansatz über Modelsim halt ich auch nur für sinnvoll, wenn man 
anschließend das ganze in einen FPGA oder ASIC gießt, da man bei 
korrekter Verwendung von Bibliotheken für das FPGA/ASIC genaue Ergebnis 
bekommt.

Will man aber wirklich den PC schnell und effizient rechnen lassen, dann 
wird man um Sprachen wie C/C++ nicht rumkommen.

Es ist wirklich die Frage was man haben will:
1) Will man ganz schnell (in Form von schnell was hinschreiben) was 
rechnen lassen, dann könnte Matlab die richtige Wahl sein.

2) Will man den PC schnell rechnen lassen, dann würde ich C/C++ 
verwenden.

3) Will ich sehen, ob mein FPGA mit allen Randbedingungen klarkommt, 
dann würde ich das ganz klar in Modelsim simulieren.

von Martin S. (strubi)


Lesenswert?

Hi Michael,

ich habe letztens mal eine DSP-Verarbeitungskette mit dem freien 
GDHL-Simulator co-simuliert, ist allerdings kein Ausbund an 
Geschwindigkeit, da alles zyklengenau simuliert wird. Gibt hier auch wo 
nen Thread zur Co-Simulation und GHDL, einfach mal suchen.
Unter Umständen brauchst Du dabei keine Zyklengenauigkeit. Insofern 
kannst Du die Kernroutinen auch durch C-Funktionsmodelle ersetzen, die 
schneller ablaufen.
Auf der embedded 2012 habe ich auch noch einige interessante Lösungen 
der "grossen Jungs" gesehen, die mit System C zur funktionalen 
Beschreibung arbeiten. Insbesondere kann man damit eine komplette 
Zynq-Plattform (ARM basiert) auf dem Linuxrechner inklusiv beliebig 
zugebastelter Hardware emulieren. Denke aber mal, dass diese Tools eine 
schöne Stange Geld kosten.

Matlab ist gut, um die Idee mal zu prototypen, aber um die Arithmetik 
nachher sauber (und meist noch in Fixkomma) zu realisieren, kommt das 
ganze nochmal in den Simulator, wenn nicht nebenbei gleich auf die 
finale Hardware. Meistens geht das bei mir parallel, da ich natürlich 
verstehen und drauf reagieren muss, wann  bzw. wenn ein Overflow 
auftritt, etc.

Grüsse,

- Strubi

von Hans (Gast)


Lesenswert?

Martin S. schrieb:
> GDHL-Simulator co-simuliert

Womit? Also mit welcher HW? Oder war das anders gemeint?

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.