Hallo,
wie hängen Vivado und Matlab zusammen (FHDL und z.B. Xilinx Artix 7 und
der freien Version von Vivado)? Welche Module von Matlab werden benötigt
um unter Vivado die volle Funktionalität zu haben?
Ich würde mich freuen, wenn ihr mir weiterhelfen könntet.
Dieses Tutorial sollte mal einen Überblick geben, was du benötigst und
damit schon machen kannst:
https://ch.mathworks.com/matlabcentral/fileexchange/69651-hdl-coder-self-guided-tutorial?s_tid=srchtitle
Es gibt dann noch mehr für State-Machines, Verifikation, Coverage,
Requirements Tracking,...
Ansonsten ruf mal deinen Matlab Verkäufer an, die haben das recht gut im
Griff zu wissen, was du noch brauchen könntest.
Egon schrieb:> Welche Module von Matlab werden benötigt> um unter Vivado die volle Funktionalität zu haben?
Keine, Vivado funktioniert auch ohne MATLAB.
Hertz Brecher schrieb:> Egon schrieb:> Welche Module von Matlab werden benötigt um unter Vivado die volle> Funktionalität zu haben?>> Keine, Vivado funktioniert auch ohne MATLAB.
Und das sogar besser und deterministisch!
Für akademischen Krempel kann man sicher auch mal schnell MatLab nehmen,
aber für effizienten Einsatz in Produkten? Naaaja.
Ich finde die Frage interessant. Was ist mit DSP und wenn Datenströme
wie beim Software Defindes Radio verarbeitet werden? (Filter, Mischer
usw...)
Wird dann Matlab zur Filterberechung benötigt und welche Module?
Joern DK7JB .. schrieb:> Wird dann Matlab zur Filterberechung benötigt und welche Module?Hertz Brecher schrieb:> Keine, Vivado funktioniert auch ohne MATLAB.
Du KANNST Matlab verwenden (Signal Processing Toolbox, Fixed-Point
Designer, Communication Toolbox) oder andere Systeme wie GNUradio,
SciLab, SystemC, OpenCV, OpenCL,... Je nach Bereich, je nach dem wie
viel schon vorgekaut sein soll/kann oder ihr selber machen möchtet/müsst
(weil ihr neue Sachen macht, die niemand schon in ein Tool/Toolbox
gegossen hat).
Joern DK7JB .. schrieb:> Was ist mit DSP und wenn Datenströme> wie beim Software Defindes Radio verarbeitet werden? (Filter, Mischer> usw...)
Da ist das FPGA schon konfiguriert und liefert über irgendeine
Schnittstelle die Samplewerte. Die schleift man üblicherweise nicht
durch Vivado, sondern direkt in Matlab oder Gnuradio oder ...
Joern DK7JB .. schrieb:> Wird dann Matlab zur Filterberechung benötigt und welche Module?
Das kann man damit machen. Ich verwende gerne pxfdax, das kostet nix.
Christoph Z. schrieb:> Joern DK7JB .. schrieb:>> Wird dann Matlab zur Filterberechung benötigt und welche Module?>> Hertz Brecher schrieb:>> Keine, Vivado funktioniert auch ohne MATLAB.>> Du KANNST Matlab verwenden (Signal Processing Toolbox, Fixed-Point> Designer, Communication Toolbox) oder andere Systeme wie GNUradio,> SciLab, SystemC, OpenCV, OpenCL,... Je nach Bereich, je nach dem wie> viel schon vorgekaut sein soll/kann oder ihr selber machen möchtet/müsst> (weil ihr neue Sachen macht, die niemand schon in ein Tool/Toolbox> gegossen hat).
Also die ganze Toolboxereei macht noch aus dem aufgewecktesten Ingenieur
einen Vollidioten. DSP, Filter, Cordic ist keine Hexerei,
Hardwaretechnisch sind das regelmäßige (kanonische) Strukturen die auch
in VHDL 1,2,3 niedergeschrieben sind wenn man im Unifach
Signalverarbeitung nicht gepennt hat. Und selbst wenn, holt man sich aus
dem Internet die Applicatione Notes für Filterbau von Xilinx und Co aus
den Zeiten vor Mathlab.
ISBN: 978-3322967244
https://www.xilinx.com/support/documentation/white_papers/wp330.pdfhttps://www.xilinx.com/support/documentation/ip_documentation/fir_compiler_ds534.pdfhttp://ijarece.org/wp-content/uploads/2013/08/IJARECE-VOL-1-ISSUE-6-25-30.pdf
Eine andere Frage sind die Parameter für DSP-Slices und Co. Aber auch
dafür gibt es genügend freie Alternativen zu MATLAB, einfach mal bei den
üblichen Verdächtigen vorbeischauen.
Ach ja, wer ein HAM-Radio Callsign führt sollte vielleicht mal in das
Aktuelle ARRL Handbook werfen.
Hertz Brecher schrieb:> Also die ganze Toolboxereei macht noch aus dem aufgewecktesten Ingenieur> einen Vollidioten. DSP, Filter, Cordic ist keine Hexerei,
Fairerweise muss man zugeben, dass MATLAB und Konsorten das Entwickeln
schon beschleunigen können, solange man in den toolboxen auch das
Richtige findet. Voraussetzung ist aber auch, dass es noch weitere
Gründe gibt, überhaupt MATLAB oder SIMULINK einzusetzen, weil z.B.
stimulierende Modelle verwendet werden, die ein System beschreiben, das
es zu analysieren oder zu regeln gilt und sich diese Modellierung in
MATLAB einfacher (oder überhaupt sinnvoll) machen lässt.
Als reines Designtool für die Signalverarbeitungskette hat MATLAB aber
kaum Vorteile, zumal die eigentliche Arbeit oft im Finden und Optimieren
von Koeffizienten und Parametern liegt, die einem das tool ja nicht
abnehmen kann. Das ist meist eine Optimierungsschleife über Bauen und
Verifikation. Die Frage ist eben, ob MATLAB dabei die beste oder bessere
Rechenhilfe ist. Kann im Einzelfall sein, oder eben auch nicht.
Irgendwelche Blöckchen per Copy und Paste platzieren und anschließen,
geht auch mit VHDL statt MATLAB Code und dann hat man schon die
Hardware, die man bauen lassen und testen kann. Viel Optimierung findet
ja im realen System statt. MATLAB bietet die Möglichkeit, dessen Bau
(auch mit VHDL Erzeugung) zu automatisieren, aber was dabei heraus kommt
ist eine von n mögliche Lösungen, die nicht notwendigerweise zu den
Randbedingungen passt, die im Projekt herrschen. Ich habe jedenfalls
noch kein "cost optimizing" oder "power optimizing" Knopf gefunden.
Man bekommt auch oft den Eindruck, dass viele sich eine MATLAB-lastige
Arbeitsweise angewöhnt haben und dann alles damit machen, was ihnen vor
die Flinte kommt. Ähnliches beobachtet man im Bereich LabView. Aus dem
Umfeld Datenmanagement kenne ich dieses Schwarz-Weiß-Denken im Bezug auf
Excel, wo es Fanatiker gibt, die jeden Datenbestand damit handhaben und
sich die komplexesten Such- Sortier- und Abfragefunktionen
zusammenbasteln, statt einfach zu einer Datenbank wie Access zu greifen,
wo alles fertig drin ist. Umgekehrt eignet sich Excel durchaus zum
Schnellen designen von allenmöglichen Funktionen im FPGA, oft
durchsichtiger und flexibler, als mit MATLAB.
Ich persönlich handhabe es so, dass ich für die jeweilige Aufgabe das
jeweils praktischste Tool aussuche und das heißt manchmal durchaus (aber
bei weitem nicht immer) MATLAB.
Jürgen S. schrieb:> Ich persönlich handhabe es so, dass ich für die jeweilige Aufgabe das> jeweils praktischste Tool aussuche und das heißt manchmal durchaus (aber> bei weitem nicht immer) MATLAB.
Prinzipiell ja, wobei ich z.B. auch schonmal Tools nehme, auch wenn sie
nicht optimal sind. Dafür kann ich mir dafür die wiederkehrende
Einarbeitung ersparen, wenn ich sie selten nutze.
Das ist irgendwie wie mit Fremdsprachen: Wenn man sie nicht nutzt,
verliert sich das auch im Gehirn :-/
Duke
Hallo,
wir verwenden Matlab zur Codegenerierung, RapidPrototyping,...
allerdings für Mikrocontroller (dSPACE MicroAutoBox). In der ist auch
ein FPGA, aber die Kosten für die Toolboxen, Vivado,... liegen bei über
10k, ich hab das dann erst mal wieder verworfen den FPGA zu verwenden
.
Der ganze Krempel ist für Prototyping nett, uns bringt es was, aber man
wird bezüglich Toolboxen richtig durchgef****, jeder "fuzzel-kram"
kostet extra, da in einer separaten Toolbox.
Der ganze Autogenerierungskram hat einige Nachteile:
- Einarbeitungsaufwand hoch
- Kaum Support in Foren(macht kaum jemand)
- Holprige Toolchains und Installation
- Grafik-Grütze (Versioning, Diffing,... katastrophe)
- Kosten (Plan mal einen fünfstelligen Betrag ein)
- Wartbarkeit (kann man das Format in 10 Jahren noch öffnen bzw. die
Toolchain zu Laufen kriegen?)
Überleg Dir gut ob Du das wirklich benötigst, bzw. es Dir Vorteile
bringt.
Grüße, Seppel
Jürgen S. schrieb:> zumal die eigentliche Arbeit oft im Finden und Optimieren> von Koeffizienten und Parametern liegt, die einem das tool ja nicht> abnehmen kann.
Das ist interessant. Bei mir ist genau das Finden der Parameter der
Teil, bei dem mir Matlab die meiste Arbeit abnimmt. (Zugegeben: Allein
dafür hätte ich es nicht gekauft - ich nutze es nur dazu, weil eh da.)
Duke Scarring schrieb:> Jürgen S. schrieb:>> Ich persönlich handhabe es so, dass ich für die jeweilige Aufgabe das>> jeweils praktischste Tool aussuche und das heißt manchmal durchaus (aber>> bei weitem nicht immer) MATLAB.> Prinzipiell ja, wobei ich z.B. auch schonmal Tools nehme, auch wenn sie> nicht optimal sind. Dafür kann ich mir dafür die wiederkehrende> Einarbeitung ersparen
Das kann man auch positiv formulieren, wenn man die Einarbeitung nicht
auf das "Handling" beschränkt:
Man verwendet öfters die gewohnten tools, weil man weiss "was" sie "wie"
gut (oder schlecht) "machen".
Die Zeitersparniss mancher ClickiCacki-tools besteht im Wesentlichen im
"Weglassen" des tieferen Verständnis beim Benutzer für Details.
Darin sehe ich persönlich eher ein Problem als einen Vorteil.
Wer beispielsweise nicht die möglichen Kompromisse beim Filterentwurf
kennt (i.e. Steilheit Filtercharakteristik versus Anzahl der Taps) wird
womoglich die erste passende Variante der Toolbox verwenden und sich
damit auf einen 200€ statt einem 20€ FPGA festlegen. Wer dagegen mit dem
Filterentwurf vertraut ist, "knetet" dagegen solange an der
Filterkennlinie, das es auch mit Power/Cost-effizienter Hardware tut.
Das ist nur möglich wenn man sich in den Filterentwurfsprozess
eingearbeitet hat und Marketingversprechen wie "mehr Geld für
MATLAB-TOOLBOXEN - mehr Funktionalität im FPGA bei weniger Arbeit"
keinen Glauben schenkt.
Hertz Brecher schrieb:> Wer beispielsweise nicht die möglichen Kompromisse beim Filterentwurf> kennt (i.e. Steilheit Filtercharakteristik versus Anzahl der Taps) wird> womoglich die erste passende Variante der Toolbox verwenden und sich> damit auf einen 200€ statt einem 20€ FPGA festlegen. Wer dagegen mit dem> Filterentwurf vertraut ist, "knetet" dagegen solange an der> Filterkennlinie, das es auch mit Power/Cost-effizienter Hardware tut.
Aus Neugier: Mit welchen Hilfsmitteln "knetest" du deine
Filterkennlinien und erarbeitest du deren jeweiligen Eigenschaften?
Hertz Brecher schrieb:> Wer beispielsweise nicht die möglichen Kompromisse beim Filterentwurf> kennt (i.e. Steilheit Filtercharakteristik versus Anzahl der Taps) wird> womoglich die erste passende Variante der Toolbox verwenden und sich> damit auf einen 200€ statt einem 20€ FPGA festlegen. Wer dagegen mit dem> Filterentwurf vertraut ist, "knetet" dagegen solange an der> Filterkennlinie, das es auch mit Power/Cost-effizienter Hardware tut.
Wie lange muss man "kneten", um den billigeren FPGA nehmen zu können
(inklusive Redesign des PCB), und ab welcher Stückzahl lohnt sich das
dann?
Ich kenne Matlab nur aus der Akademie (auf Arbeit regieren Excel und
PowerPoint), da sind die Löhne geringer, die Stückzahl beträgt
üblicherweise "eins", viele Matlab-Toolboxen stehen zur Verfügung und
die dicken FPGAs werden subventioniert. Verständnis für "gelöste
Probleme" ist auch nicht erforderlich.
Christoph Z. schrieb:> Aus Neugier: Mit welchen Hilfsmitteln "knetest" du deine> Filterkennlinien und erarbeitest du deren jeweiligen Eigenschaften?
Mit dem was grad da ist (weil es vom Kunden, Entwicklungschef in die
toolchain gestellt wurde). Das kann sein: FIR-Designer von Xilinx sein,
der Megawizard von Altera, Synplify DSP, GNU Octave, ...
Es sind nicht die Tools die die Kennlinie kneten, die tools
zeigen/berechnen lediglich die Filterkennlinie als das Ergebniss der
gezielten Parametervorgabe.
Statt "Kneten" sagt man auch "exploration of design space", man kann
also Filterentwurf mit Erkundung des Grönländischen Eisschildes
vergleichen. Ja, ein guter Schlitten ist dazu notwendig, aber er nützt
nichts, wenn der Schlittenführer immer nur Sackgassen ansteuert oder
sich im Kreise bewegt. Oder, wie bei Software-Bedienern zu beobachten,
dem Schlitten lediglich initial einen Tritt gibt und ihm dann
verzweifelt hinterher rennt ;-).
Beim Filterentwurf bedeudet das, das man verschiedenen Varianten
erstellt die die meist unvollständige und grobe Filter-Spec (fg= x.y
MHz, Steilheit -20 dB) auf verschiedene Weisen erfüllen (bspw.
Überschwinger, Stabilitätsaufwände) und dann die mit dem besten
Kompromiss an Ressourcen und Übertragungseigenschaften auswählen.
"Knetgriffe" dabei sind:
-FIR oder IIR
-Datapath architecture (i.e. parallel/cascaded biquad, canonical)
-Anzahl Taps
-Vorgabe welche Koeffizienten fix gesetzt werden weil sie einfach im
FPGA sind (1,0,0.5,0.25 ...)
-Bitbreite Zwischenergebnisse (internal Quantization) bei der
Akkumulation
..
In den bereits genannten Xilinx WP330
https://www.xilinx.com/support/documentation/white_papers/wp330.pdf sind
solche Detailfragen beim manuellen Filterentwurf genannt.
Aber das sollte man besser in einem Xtra-Thread erötern, wäre sicherlich
hilfreich.
S. R. schrieb:> Wie lange muss man "kneten", um den billigeren FPGA nehmen zu können> (inklusive Redesign des PCB), und ab welcher Stückzahl lohnt sich das> dann?
Nein, ein PCB-Redesign ist nicht erforderlich falls der billige FPGA
sich lediglich im Speedgrad unterscheidet. Oder sich im jeweiligen
"footprint migration path" bewegt. Und ja, solche PCB-Layout invarianten
FPGA-Änderungen machen schon mal den Unterschied zwischen Stückpreis 20
und 200€ aus.
>Ich kenne Matlab nur aus der Akademie (auf Arbeit regieren Excel und>PowerPoint), da sind die Löhne geringer, die Stückzahl beträgt>üblicherweise "eins", viele Matlab-Toolboxen stehen zur Verfügung und>die dicken FPGAs werden subventioniert. Verständnis für "gelöste>Probleme" ist auch nicht erforderlich.
Deshalb klagt ja auch "die Industrie" über Ausbildungsdefizite an den
Hochschulen und Universitäten. Meine ganz persönliche Meinung, die
keiner teilen muss, ist, das zu den Ansprüchen eines Ingenieurs an sich
selbst gehört, gut durchdachte und durchentwickelte Lösungen anzubieten.
Ebenso ganz persönlich ist meine Einschätzung, das das oft gehörte " zum
'gut Durchentwickeln'" hat man keine Zeit, und die Personalkosten sind
zu hoch" eine bequeme Ausrede ist. Aber wie man in Köln sagt, "Jede Jeck
is anders".
Als Threadstarter lese ich eure Beträge mit großem Interesse. Noch bin
ich ein Anfänger im DSP-Bereich und habe noch keine Erfahrung mit dem
Selbstbau von SDR-Empfängern - aber sehr großes Interesse.
Welche Tools würdet ihr für den Anfang empfehlen? (DSP, einfachen SDR
bauen)