mikrocontroller.net

Forum: FPGA, VHDL & Co. Mathlab-Modelle in VHDL implementieren


Autor: Martin _. (martin__)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute!


Soweit ich gesehen habe, hat es so ein ähnliches Thema schon gegeben. 
Was mich jedoch interessiert, welche Tools es für diesen Zweck gibt und 
was sie taugen?

Wir haben vor eine FFT in VHDL zu realisieren. Zu diesem Zweck ist ein 
Mathlab-Modell einfach und schnell zusammengebaut.

Die Aufgabe besteht nun darin, dieses Mathlab-Modell (m-Files) in ein 
VHDL-Modell umzuwandeln.
Die Firma Xilinx bietet das Tool: System Generator for DSP an. Angeblich 
soll dieses Tool genau diese Konvertierungs-Funktion beherrschen.
Andererseits habe ich gehört, dass es das Tool "Simulink HDL Coder 1.6" 
geben soll, welcher dieselbe Funktion beherrscht.

Nun meine Frage: Hat jemand Erfahrungen mit den beiden Tools. Mir ist es 
wichtig, dass das Tool übersichtlich ist und auch einfach zu bedienen.

Vielen Dank.


Schöne Grüße

Martin

Autor: Nephilim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich habe selber bisher nur mit den HDL Coder von The Mathworks und mit 
Synplify DSP von Synplicity/Synposis gearbeitet.

in sachen HDL Code aus m-Files generieren gibt es nur einen beschränkten 
Befehlssatz den man verwenden kann, da nur grundlegende Befehle 
unterstützt werden. gleiches gilt für den blockset, wenn man den HDL 
coder verwendet. dieser benutzt den originalen simulink blockset, kann 
aber nur eine fest definierte untermenge davon auch in HDL code 
umsetzen.

Synplify DSP dagegen bringt seinen eigenen blockset mit. dieser kann 
dann vollständig für die HDL Generierung verwendet werden.

für filtersachen haben beide tools aber spezielle Blöcke um FFTs, FIRs 
und einiges andere zu generieren. diese blöcke müssen dann nur noch 
paramteriert werden.

wenn man sich daran gewöhnt hat die algorithmen in simulink 
zusammenzuklickern ist das eigentlich ne garnichmal schlecht möglichkeit 
HDL Code zu kreiren. aber nicht alles lässt sich so gut erzeugen. 
Kommunikationsschnittstellen z.B. würde ich noch direkt in VHDL 
programmieren. das geht dort doch deutlich einfacher und schneller.

Gruß
Nephilim

Autor: Thomas Reinemann (Firma: abaxor engineering) (abaxor)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,


der SystemGenerator stellt u.a. Funktionen zur Signalverarbeitung zur 
Verfügung. Damit kannst du dir in Matlab/Simulink ein Modell deines 
Algorithmus zusammen bauen, Zyklus-genau simulieren und den Code für 
einen Xilinx FPGA generieren.
Der HDL Coder macht ähnliches, nur auch für die FPGAs von anderen 
Herstellern, ist ja auch nicht von Xilinx und deutlich teuerer.
Ich kann mich noch dunkel daran erinnern, dass die Anwender des 
SystemGenerators nicht gerade von der Qualität des erzeugten Codes 
(viele Logic Level) begeistert waren.

Achso, es heißt Matlab, ohne h.

Tom

Autor: Peter Oberhofer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schreibt man MATLAB jetzt mit "h"? :-)

Autor: Martin _. (martin__)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute!

Danke für eure umfangreichen Antworten.
Matlab schreibt man ohne "H".

Was mich sehr interessiert, was kommt am Ende raus, bei diesen Tools 
nach der Codierung. Ein VHDL-File oder irgendein verschlüsseltes Modell?

Kann man mit dem SystemGenerator auch nur einen beschränkten 
M-File-Befehlssatz verwenden, so wie es beim HDL-Coder, wie oben 
beschrieben ist?

Ich tendiere eher zum HDL-Coder, weil man hier nicht auf einen 
bestimmten FPGA angewiesen ist. Ich denke, dass das Tool von Synopsys 
noch teurer sein wird.
Gibt es eine Liste, welche Befehle aus den M-Files vom HDL-Coder 
verarbeitet werden können?
Kann man z.B. in M-Files enthaltene Sin und Cos-Funktionen mit dem 
HDL-Coder in VHDL implementieren?

Vielen Dank im Voraus

Schönen Tag noch
Martin

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Kann man z.B. in M-Files enthaltene Sin und Cos-Funktionen mit dem
>HDL-Coder in VHDL implementieren?

nö, nicht dass ich wüsste. Vielleicht nochmal zum verdeutlichen 
bezüglich SystemGenerator.

Dieser kann (fast) auschließlich Simulink Modelle codieren. Man kann 
zwar m-files einbinden, die dann aber nur für Statemachines, 
Multiplikationen und Speicheroperationen verfünftig scheinen.
In Simulink kann man ausnahmslos die von Xilinx zur Verfügung gestellten 
Blocksets verwenden. Viele davon parametrisieren IP-Cores des ISE 
Core-Builders. Es gibt ein paar nette Referensdesign, ne FFT ist aber 
nciht dabei sondern wird als (sehr mächtiger) IP-Core bereitgestellt.

Die IP-Cores erscheinen im HDL-File als Instantiierung, lassen sich 
folglich nur für Xilinx-FPGAs übersetzen.
Es gibt von Xilinx ein weiteres Werkzeug für Matlab m-files (Accel DSP), 
dessen Entwicklung wird aber mit Version 12 eingestellt.

http://www.xilinx.com/support/sw_manuals/sysgen_ref.pdf
dann unter mcode schauen.

Autor: Gerrit Buhe (gbuhe)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

MATLAB schreibt man übrigens deshalb nicht mit "h", weil die erste Silbe 
von Matrix kommt und nicht von Mathematics.

Gruß,

Gerrit, DL9GFA

Autor: Nephilim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
also sin und cos gehen so an sich nicht. am einfachsten ist es diese als 
lookup table zu implementieren, aber man kann auch versuchen einen 
cordic-algorithmus zu bauen oder ähnliches.

um zu sehen welche einschränkungen man bei embedded matlab functions hat 
könnte man vielleicht hier mal:

http://www.mathworks.co.uk/access/helpdesk/help/pd...

dort einfach suchen nach "Generating HDL Code with the Embedded MATLAB 
Function Block"

naja und mal zum preis, so sehr unterscheiden sich da die HDL Coder von 
Mathworks und Synplify DSP von Synposis nich. der HDL Coder kost bei 
15k€ und Synplify DSP rund 20k€.

Gruß
Nephilim

Autor: xxx (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Mathworks und Synplify DSP von Synposis nich. der HDL Coder kost bei
>15k€ und Synplify DSP rund 20k€.

O je, lohnt sich denn eine solche Anschaffung überhaupt...

Autor: Henk ten Bakker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es lohnt sich nur, wenn man ständig Algorithmen ändert und Prototyping 
macht. Für application engineering und design to cost ist das die 
falsche Richtung.

Autor: Andi ... (xaos)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
xxx schrieb:
>>Mathworks und Synplify DSP von Synposis nich. der HDL Coder kost bei
>>15k€ und Synplify DSP rund 20k€.
>
> O je, lohnt sich denn eine solche Anschaffung überhaupt...

ja tut sie für forschung & entwicklung mit prototyping. hört sich zwar 
fürn bastler viel an ist aber nur nen kleiner kleks an kosten nebenbei^^

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
xxx schrieb:
>>Mathworks und Synplify DSP von Synposis nich. der HDL Coder kost bei
>>15k€ und Synplify DSP rund 20k€.
>
> O je, lohnt sich denn eine solche Anschaffung überhaupt...

Naja, bei 17.000 US$, die beispielsweise der größte Virtex 5 SXT FPGA 
kostet, ist das dann auch nicht mehr so viel Geld. Prinzipiell kann man 
aber alle Matlab Geschichten mit Gehirnschmalz auch in VHDL Code und die 
Cores bringen. Ich bin ja auch in der Forschung, aber ich sehe in 
solchen Geschichten auch eher weniger Sinn. Wir hatten mal dieses Tool, 
was aus Simulink auf den TI DSP Code erzeugt hat. Naja....als für Rapid 
Prototyping, wo es nicht auf Geschwindigkeit ankommt, vielleicht 
brauchbar, aber am Ende musste dann doch alles selbst implementiert 
werden. Da waren die Libs von TI wesentlich besser. So ähnlich ist es 
beim Matlab -> FPGA wohl auch.

Autor: Martin _. (martin__)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank, ich werde mir das Ganze entsprechend überlegen.

Schöne Grüße

Martin

Autor: Robert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der System Generator hat eine FFT drin. Diese läuft mit einem bitgenauen 
C-modell. Für VHDL instanziiert er einfach die Xilinx FFT aus dem 
Coregen. Das kannst du aber auch per Hand machen.

Mehr zum Sysgen kann man hier lesen?

Beitrag "Re: FPGAs grafisch programmieren - eine Analyse"

Autor: Bildverwursteler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Besitzt jemand zufällig Erfahrung in der parallelen Nutzung von 
MATLAB-Modellen einerseit in Richtung C für DSPs und auch FPGA VHDL? Es 
geht um BV und die Simulation elektrischer Felder.

Autor: Freddy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
den SystemGenerator kenne ich aus eigener Erfahrung.
Am Ende des Matlab/Simulink Modells bekommst Du eine Netzliste zum 
Einpflegen in Dein VHDL Konstrukt. Da ist nichts mit VHDL File o.Ä.

Man sollte beachten, dass jede SystemGenerator Version nur mit einer 
bestimmten Matlab UND einer bestimmten Xilinx Version funktioniert. Wir 
mussten aus diesem Grund Xilinx 11 auf Xilinx 13 upgraden damit wir mit 
unserem Matlab kompatibel sind. Andersherum ist es natürlich auch 
möglich. SystemGenerator gekauft -> Matlab muss aktualisiert werden

Autor: Bildverwursteler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das habe ich auch schon von mehreren Seiten gehört, dass es viele 
Versionsprobleme gibt. Ein Kollege kann z.B. nicht auf die neueste 
FPGA-SW-Version upgraden. Ich würde mir sowas gerne ersparen und 
möglichs Mathematik und Verarbeitungsimplementierung getrennt halten.

Ich brauche gutes native C und gfs VHDL.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.