mikrocontroller.net

Forum: FPGA, VHDL & Co. Vivado und Matlab


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Egon (Gast)


Bewertung
0 lesenswert
nicht lesenswert
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.

von Kritiker (Gast)


Bewertung
1 lesenswert
nicht lesenswert
Man nimmt MATLAB und wirf den FHDL-Coder an. Das importiert man ins 
Fifado. Das compiliert dann den Code für das VPGA.

von Christoph Z. (christophz)


Bewertung
0 lesenswert
nicht lesenswert
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.

von Hertz Brecher (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Egon schrieb:
> Welche Module von Matlab werden benötigt
> um unter Vivado die volle Funktionalität zu haben?

Keine, Vivado funktioniert auch ohne MATLAB.

von Christian R. (supachris)


Bewertung
0 lesenswert
nicht lesenswert
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.

von Joern DK7JB .. (moin)


Bewertung
0 lesenswert
nicht lesenswert
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?

von Christoph Z. (christophz)


Bewertung
0 lesenswert
nicht lesenswert
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).

von Gustl B. (-gb-)


Bewertung
0 lesenswert
nicht lesenswert
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.

: Bearbeitet durch User
von Frager (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Gustl B. schrieb:
> Ich verwende gerne pxfdax,

Wie heisst das genau? Google kennt das nicht.

von Gustl B. (-gb-)


Bewertung
0 lesenswert
nicht lesenswert
Ups, sorry, pyfda http://www.pyfda.org .

von Hertz Brecher (Gast)


Bewertung
0 lesenswert
nicht lesenswert
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.pdf
https://www.xilinx.com/support/documentation/ip_documentation/fir_compiler_ds534.pdf
http://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.

von Jürgen S. (engineer) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
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.

von Duke Scarring (Gast)


Bewertung
0 lesenswert
nicht lesenswert
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

von Seppel (Gast)


Bewertung
1 lesenswert
nicht lesenswert
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

von Walter T. (nicolas)


Bewertung
0 lesenswert
nicht lesenswert
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.)

: Bearbeitet durch User
von Hertz Brecher (Gast)


Bewertung
0 lesenswert
nicht lesenswert
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.

von Christoph Z. (christophz)


Bewertung
0 lesenswert
nicht lesenswert
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?

von S. R. (svenska)


Bewertung
0 lesenswert
nicht lesenswert
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.

von Hertz Brecher (Gast)


Bewertung
0 lesenswert
nicht lesenswert
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.

von Hertz Brecher (Gast)


Bewertung
0 lesenswert
nicht lesenswert
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".

von Egon (Gast)


Bewertung
0 lesenswert
nicht lesenswert
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)

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.

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