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
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
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
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
>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.
Hallo, MATLAB schreibt man übrigens deshalb nicht mit "h", weil die erste Silbe von Matrix kommt und nicht von Mathematics. Gruß, Gerrit, DL9GFA
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/pdf_doc/slhdlcoder/slhdlcoder_ug.pdf 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
>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...
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.
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^^
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.
Vielen Dank, ich werde mir das Ganze entsprechend überlegen. Schöne Grüße Martin
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"
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.
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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.