Forum: FPGA, VHDL & Co. 6-Phasen PWM Modul, FPGA oder CPLD?


von Sepp (Gast)


Lesenswert?

hallO!

Ich möchte ein 6-Phasen PWM Modul bauen (ist zur Steurung einen 
Multiphasenresonanzwandlers Halbbrücke)

Ich brauch also 12 Ausgänge. Jeweils zwei sollen gegenläufig zueinander 
sein (zum halbbrücke Steuern).
Zwischen den Gegenläufigen Signalen soll die Deadtime (Zeit in der beide 
PWM Ausgänge Null sind) einstellbar sein.

Das ganze 6 mal jedoch mit einer Phasenverschiebung von 60°. Und mit 
einstellbarer Frequenz (von 90kHz bis 300kHz).

Mit einem 12-Bit Modul un minimal 90kHz hätte ich 1.32ns Auflösung was 
reicht.

Hab dies bis jetzt immer mit einem dsPIC realisiert, doch hierfür ist er 
nicht flexibel genug, bzw fehlen PWM Channels. Auch wenn es mit tricks 
funktioniert ich möchts mit CPLD oder FPGA machen.

Ich hab FPGAs schon programmiert, in VHDL, ein Waveplayer.

Meine Grundfrage ist: Was eigent sich besser?
Ein FPGA oder CPLD?
Ein CPLD hat doch vorhersagbare Signallaufzeiten was beim FPGA nicht so 
ist. Oder ist das bei dieser Anwendung egal?

Wäre es mit einem CPLD auch möglich einen digitalen Regelkreis mit zu 
implementieren, also ADC einlesen ein paar MACs und PWM-Modul setzten?

MFG Sepp

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Sepp schrieb:
> Ein CPLD hat doch vorhersagbare Signallaufzeiten was beim FPGA nicht so
> ist.
Die Zeiten sind nicht vorhersagbar. Es wird dir nur eine "schlimmste" 
Zeit gesagt. Das kannst du bei einem FPGA auch haben.

> Oder ist das bei dieser Anwendung egal?
Eigentlich schon, denn du kannst einfach ein IO-Flipflop nehem, dann 
kommen die Pulse schön synchron zueinandern.

> Meine Grundfrage ist: Was eigent sich besser?
> Ein FPGA oder CPLD?
Nimm ein kleines FPGA (MachXO, Spartan3AN). Denn du brauchst ja noch 
irgendeinen Bus, um da neue Werte reinzuschreiben...

Der MachXO2 hat m.W. auch PWM-Kanäle on Chip. Evtl. reichen die ja schon 
aus...

Sepp schrieb:
> Mit einem 12-Bit Modul un minimal 90kHz hätte ich 1.32ns Auflösung was
> reicht.
Ähm, das wäre ein knappes dreiviertel Gigahertz...
Hast du da irgendwo ein paar Zehnerpotenzen unterschlagen?
So schnell brauchst du das Ding garantiert nicht!

von Hans (Gast)


Lesenswert?

Für ein CPLD spricht die "Einfachheit". Wenn du dein Design in CPLD 
bekommst (z. B. ATF1508) - nimm es!

von Sepp (Gast)


Lesenswert?

>Ähm, das wäre ein knappes dreiviertel Gigahertz...
>Hast du da irgendwo ein paar Zehnerpotenzen unterschlagen?
>So schnell brauchst du das Ding garantiert nicht!

Damit ist die minimale Zeit gemeint die mit dem PWM Modul "verstellt" 
werden kann. Die Frequenz des PWM Ausgangses ist wie gesagt max 300kHz.
War ein Anlehnung an einen dsPIC33 gedacht welcher mit seinem 12-Bit 
Modul 1.04ns Auflösen kann.

>Die Zeiten sind nicht vorhersagbar. Es wird dir nur eine "schlimmste"
>Zeit gesagt. Das kannst du bei einem FPGA auch haben.

>Nimm ein kleines FPGA (MachXO, Spartan3AN). Denn du brauchst ja noch
>irgendeinen Bus, um da neue Werte reinzuschreiben...
Dh mittels FPGA wirds da keine Probleme geben? Hatte nur Angst, das sich 
die Komplemetären Kanäle überschneiden (was die sofortige Zerstörung der 
leistungselektronik zufolge hätte) können. Es wird immer ein minimale 
Deadtime von 100ns zwischen den Transitionen herschen, eigentlich sollte 
das für FPGA ja Null Probelem sein oder? Denn ob 95ns oder 105ns ist 
egal.

>Denn du brauchst ja noch irgendeinen Bus, um da neue Werte >reinzuschreiben...
Richtig, da kommen wir zur nächsten Frage. Die Regelung erfolgt 
ursprünglich mittels DSP (dsPIC). Bei 2-Phasen benutzte ich dessen 
PWM-Modul.
Nun könnte ich die PWM-Daten mit der Reglerupdaterate an den FPGA 
schicken. Doch so ein Spartan3AN wird mit der PWM generierung recht 
unterfordert sein. Meinst du es wäre möglich, die regelung in den FPGA 
zu inegrieren?
Er müsste zusätzlich 3 ADC Werte einlesen. Einen schnellen PID Regler 
mit Feedforward rechnen und einen langsamen überlagerten I-Regler 
(Current Sharing). Also nicht allzu kompliziert, zumindest was der dsPIC 
nie überfordert.

Danke für deine Hinweise,
MFG Sepp

von Uwe (Gast)


Lesenswert?

>War ein Anlehnung an einen dsPIC33 gedacht welcher mit seinem 12-Bit
>Modul 1.04ns Auflösen kann.

12 Bit = 4096 Werte
bei PWM wird normalerweise hoch und runter gezählt als 4096 x 2 = 8192
Jeder Zähltakt soll nun 1.04ns etsprechen, also 8192 x 1.04ns=8.519µs
1/8.519µs=117.3KHz OK
dafür müßte nun der Takt des Zählers jedoch 1/1.04ns sein also 961.5MHz.
Die Counter im dsPIC sollen 961MHz können ?
Wirklich ?
Also ich glaube da sind die meißten FPGAs und CPLDs überfordert.

von Uwe Bonnes (Gast)


Lesenswert?

Mit den SERDER Funktionalitaet, z.B. beim XC6S wirst Du auf 960 MHz 
kommen koennen.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Uwe schrieb:
> Die Counter im dsPIC sollen 961MHz können ?
> Wirklich ?
Anscheinend ja...
> Also ich glaube da sind die meißten FPGAs und CPLDs überfordert.
Ja, das sind sie. Lustigerweise braucht das auch fast keiner...

Sepp schrieb:
> War ein Anlehnung an einen dsPIC33 gedacht welcher mit seinem 12-Bit
> Modul 1.04ns Auflösen kann.
Das schaft du mit einem "üblichen" CPLD nie und mit einem bezahlbaren 
FPGA auch nicht. Wenn du genau wißt, was du machst, dann schaffst du mit 
den billigen FPGA 200-300MHz. Und du mußt dir natürlich die Frage 
stellen lassen: warum reicht anderen das aus, dir aber nicht?

> Doch so ein Spartan3AN wird mit der PWM generierung recht unterfordert
> sein. Meinst du es wäre möglich, die regelung in den FPGA zu inegrieren?
Es ist schon möglich, aber das wirst du dir nicht wirklich antun 
wollen. Denn das Debuggen macht da wesentlich weniger Spass...  :-/

> Es wird immer ein minimale Deadtime von 100ns zwischen den Transitionen
> herschen, eigentlich sollte das für FPGA ja Null Probelem sein oder?
> Denn ob 95ns oder 105ns ist egal.
200MHz sind wie gesagt noch drin: da darf dann bei billigen FPGAs noch 1 
Logikebene zwischen zwei FFs kommen...

Uwe Bonnes schrieb:
> Mit den SERDER Funktionalitaet, z.B. beim XC6S wirst Du auf 960 MHz
> kommen koennen.
Da kauft man dann aber einfacher einen 2. PIC...

von Lattice User (Gast)


Lesenswert?

Sepp schrieb:
> Damit ist die minimale Zeit gemeint die mit dem PWM Modul "verstellt"
> werden kann. Die Frequenz des PWM Ausgangses ist wie gesagt max 300kHz.
> War ein Anlehnung an einen dsPIC33 gedacht welcher mit seinem 12-Bit
> Modul 1.04ns Auflösen kann.

der dsPIC33 schafft diese Auflösung mit Hilfe von dedizierten 
Hardwaredelays. Einem FPGA/CPLD fehlen diese Elemente.
Mit anderen Worten: die Highspeed PWM Module des dsPIC33 lassen sich 
nicht einfach im FPGA nachbauen. (Ein Experte für eine FPGA Familie 
schafft es vielleicht mit phasenverschobenen Clocks).

Mit herkömmlichen Counter basierende PWM Lösungen dürfte auf Virtex 7 
eine Auflösung von 2 ns machbar sein. Mit preisgünstigen FPGAs sind 4 ns 
machbar aber auch das ist schon eine Herausforderung für einen 
Anfänger.(Clock = 250 MHz)

von Sepp (Gast)


Lesenswert?

>Wenn du genau wißt, was du machst, dann schaffst du mit
>den billigen FPGA 200-300MHz. Und du mußt dir natürlich die Frage
>stellen lassen: warum reicht anderen das aus, dir aber nicht?
Ich dachte wenn es ein einfacher dsPIC, also ein 16-Bit µC mit etwas DSP 
Befehlen schafft, kann es auch ein komplexerer und deutlich teurer FPGA.

Ich muss mir noch im klaren werden wieviel Auflösung ich in dieser 
Anwendung wirklich brauche. Für einen Multiphasen Boost hab ich das 
PWM-Modula des dsPIC definitiv schon ausgereizt (waren 11Bit mit 
468kHz). Jetzt ist es etwas anders (Resonanzwandler).

>der dsPIC33 schafft diese Auflösung mit Hilfe von dedizierten
>Hardwaredelays
Wie macht er das? Konfigurieren kann man auch nur PLLs, die Prescaler, 
und PWM-Counter. Was meinst du?
Habe den dsPIC schon oft verwedet aber wie er die PWM Hardwaremäsig 
erzeugt, darüber hab ich nie nachgedacht...

>bei PWM wird normalerweise hoch und runter gezählt als
1.04ns wird im center-aliged Mode nicht erreicht, nur im normalen 
"Dreieck" Mode.

>Wenn du genau wißt, was du machst, dann schaffst du mit
>den billigen FPGA 200-300MHz
Haben FPGAs keine PLL um einen hohen Synchronen Takt für nur einem 
bestimmten Bereich zu generieren? So wie es viele µC für die PWM-Unit 
tun?

>Einem FPGA/CPLD fehlen diese Elemente.
>Mit anderen Worten: die Highspeed PWM Module des dsPIC33 lassen sich
>nicht einfach im FPGA nachbauen.
Schade, dass heist ich muss die PWM-Anforderungen möglichst abspecken 
damit sie FPGA tauglich werden.

Danke für die Inputs!

MFG Sepp

von Lattice User (Gast)


Lesenswert?

Sepp schrieb:
>>der dsPIC33 schafft diese Auflösung mit Hilfe von dedizierten
>>Hardwaredelays
> Wie macht er das? Konfigurieren kann man auch nur PLLs, die Prescaler,
> und PWM-Counter. Was meinst du?
> Habe den dsPIC schon oft verwedet aber wie er die PWM Hardwaremäsig
> erzeugt, darüber hab ich nie nachgedacht...

Dein Posting hat mich dazu veranlasst in das Datenblatt des dsPIC zu 
schauen da ich die 1 GHz wie anderere auch etwas viel fand. Genau 
erklärt ist das nicht. Aber was man entnemhen kann ist, dass die PWM mit 
120 MHz getaktet wird, und es gibt eine Timingangabe Tap delay mit 1.04 
nsec. Das hört sich für mich nach einem Delayelement mit Abgriffen alle 
1.04 nsec zur Verlängerung des Ausgabepulses an.

>
>>bei PWM wird normalerweise hoch und runter gezählt als
> 1.04ns wird im center-aliged Mode nicht erreicht, nur im normalen
> "Dreieck" Mode.

Im center-aligned Mode schafft der dsPIC auch nur 8 nsec Auflösung 
(wermutlich direkt bedingt durch die 120 MHz).
Und das ist machbar im FPGA.

>
>>Wenn du genau wißt, was du machst, dann schaffst du mit
>>den billigen FPGA 200-300MHz
> Haben FPGAs keine PLL um einen hohen Synchronen Takt für nur einem
> bestimmten Bereich zu generieren? So wie es viele µC für die PWM-Unit
> tun?

Doch schon, aber du musst ja auch die programierbare Logik damit takten 
können. Und genau da liegen die Grenzen. Dedizierte HW Blöcke im FGPGA 
(z.B. Serdes) können auch viel mehr.

von Sepp (Gast)


Lesenswert?

>Aber was man entnemhen kann ist, dass die PWM mit
>120 MHz getaktet wird, und es gibt eine Timingangabe Tap delay mit 1.04
>nsec. Das hört sich für mich nach einem Delayelement mit Abgriffen alle
>1.04 nsec zur Verlängerung des Ausgabepulses an.
Hab sie gut hinbekommen, wenn man bedenkt das dies ziemlich gut auch bei 
der extrem kritschen deadtime einstellung funktioniert. DOch wie das mit 
120Mhz Takt abläuft versteh ich gar nicht, Tatsache ist es funktioniert 
sehr zuverlässig.

>Im center-aligned Mode schafft der dsPIC auch nur 8 nsec Auflösung
>(wermutlich direkt bedingt durch die 120 MHz).
Ja. Hat noch nie gestört die hohe PWM-Frequenz wird meist bei 
Converter-Topologien (Multiphasen-Buck als Beispiel) benötig wo 
center-aligned nicht notwenig ist (im Gegensatz zu Invetern aller art)

>Doch schon, aber du musst ja auch die programierbare Logik damit takten
>können. Und genau da liegen die Grenzen.
Das klingt verständlich

>Dedizierte HW Blöcke im FGPGA
(z.B. Serdes) können auch viel mehr.
Ich nehme an das haben nur die "Großen" teuren?

>auch nur 8 nsec Auflösung
>(wermutlich direkt bedingt durch die 120 MHz).
>Und das ist machbar im FPGA.
Alles klar, allso 8ns sind definitiv zb in einem Spartan 3AN machbar? 
Oder anderer Vorschlag?

MFG Sepp

von MCUA (Gast)


Lesenswert?

>> Ein CPLD hat doch vorhersagbare Signallaufzeiten was beim FPGA nicht so
>> ist.
>Die Zeiten sind nicht vorhersagbar. Es wird dir nur eine "schlimmste"
>Zeit gesagt. Das kannst du bei einem FPGA auch haben.
Ein CPLD hat den Vorteil, dass rel complexe Funktionen, auch nat. 
Komparatoren, (weil sehr breite Eingänge der MAC-Zelle) mit nur einer 
Logic-Ebene erzeugt werden können. Da ist die Laufzeit natürlich 
errechenbar (bzw vorhersagbar). Und dann ist es evtl schneller möglich 
als mit FPGA. (bsp Lattice hat CPLDs mit max 400MHz!)

von Sepp (Gast)


Lesenswert?

>Und dann ist es evtl schneller möglich
>als mit FPGA. (bsp Lattice hat CPLDs mit max 400MHz!)
Nehme an du meinst die ispmach4000 Serie?

Interessant das es da keine Einigkeit gibt womit man ein PWM Modul baut.
Mein Problem ist auch das ich nicht Abschätzen kann wieviele LUTs, 
Makrozellen oder was auch immer ds brauchen wird.

Wenn 250MHz das maximum für FPGAs sind, wie macht man dan zb eine DDR2 
oder 3 Interface? Kommen da SERDES ins Spiel?
Manche werben ja damit achte PLLs für 1Ghz zu haben, was macht man 
damit?
Oder sind höhere Frequenzen möglich, wären aber für mein PWM-Modul 
Maßloser Overkill?

In hab schon digitale Converter gesehen da war ein MachXO2 dabei. Was 
ist das? wird auf der Lattice Website unter FPGA und CPLD geführt???

Nebenbei, kennt jemand empfehlenswerte Literatur zum Thema FPGA und 
CPLD? WIe schon erwähnt, ich arbeite mit DSPs und µCs, VHDL  hatte ich 
auf der UNI mal gelernt, aber ich jetzt komm ich immer in Versuchung 
einen Process zu generieren und µC mässig weiterzumachen...

Ich weis viele Fragen,,,

MFG Sepp

von Mike (Gast)


Lesenswert?

> Interessant das es da keine Einigkeit gibt womit man ein PWM Modul baut.
> Mein Problem ist auch das ich nicht Abschätzen kann wieviele LUTs,
> Makrozellen oder was auch immer ds brauchen wird.

Hier mal eine grobe Schätzung (für FPGA):
- Register für PWM: 6 PWM x 12 LE = 72 LE
- 1x Zähler mit 12 Bit: = 12 LE
- Zählerstand mit Register vergleichen (für LUT mit 4 Eingängen): (6 LUT 
+ 2 LUT)x6= 48 LE

Zählerstand mit Register vergleichen braucht 3 Ebenen mit Kombinatorik. 
Das wird eventuell zu langsam. Ansonsten vielleicht für jede PWM ein 
Zähler der aus dem Register geladen wird?

Dann musst du die Register noch irgendwie beschreiben. Am einfachsten 
dürfte das noch parallel funktionieren. Ansonsten müsstest du noch 
Schieberegister für SPI o.ä. hinzurechnen.

> Wenn 250MHz das maximum für FPGAs sind, wie macht man dan zb eine DDR2
> oder 3 Interface? Kommen da SERDES ins Spiel?

Es gibt seit einiger Zeit in FPGA extra I/O Blöcke für DDR. Du gibst 2 
Bits und 2 Clocks hinein und das FPGA macht den Rest.

> Nebenbei, kennt jemand empfehlenswerte Literatur zum Thema FPGA und
> CPLD? WIe schon erwähnt, ich arbeite mit DSPs und µCs, VHDL  hatte ich
> auf der UNI mal gelernt, aber ich jetzt komm ich immer in Versuchung
> einen Process zu generieren und µC mässig weiterzumachen...

Bücher für FPGA:

Reichard/Schwarz
VHDL-Synthese

Kessel/Bartholomä
Entwurf von digitalen Schaltungen und Systemen mit HDLs und FPGAs

von Lattice User (Gast)


Lesenswert?

Sepp schrieb:
> Interessant das es da keine Einigkeit gibt womit man ein PWM Modul baut.
> Mein Problem ist auch das ich nicht Abschätzen kann wieviele LUTs,
> Makrozellen oder was auch immer ds brauchen wird.
>


> Manche werben ja damit achte PLLs für 1Ghz zu haben, was macht man
> damit?

Runterteilen :-)
Der Witz ist, dass ein onchip VCO mit 1 GHz leichter zu realisieren ist 
als einer mit 100 MHz.


> In hab schon digitale Converter gesehen da war ein MachXO2 dabei. Was
> ist das? wird auf der Lattice Website unter FPGA und CPLD geführt???

MachXO2 ist ein FPGA.
Lattice peilt mit diesem Prdoukt aber den CPLD Markt an, also wird es 
auch unter CPLD aufgefuhrt.
Es hat auch einige wichtige CPLD Features:
Interner Config Speicher
Schneller Startup
Single Supply Versionen
Niedriger Stromverbrauch
Kleine Gehäuse ( das kleinste MachXO2 Gehäuse ist 2.5 x 2.5 mm )

Mehr als 250 Mhz geht schon z.B. mit Pipelining.

von Lattice User (Gast)


Lesenswert?

Nachtrag zum vorigen Posting.

Lattice User schrieb:
> Mehr als 250 Mhz geht schon z.B. mit Pipelining.

Bezieht sich auf die Frage warum bei 250 MHz bei günstigen FPGs Schluss 
ist, und nicht auf den MachXO2. Der kann das nicht.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Ich frage mich immer noch, warum man eine derartig schnelle PWM 
braucht um
> ein 6-Phasen PWM Modul zur Steurung eines Multiphasenresonanzwandlers
zu realisieren...
Und ich meine wirklich brauchen, nicht wollen.

von Sepp (Gast)


Lesenswert?

>Ich frage mich immer noch, warum man eine derartig schnelle PWM
>braucht um
Ist doch nicht schnell. Gibt Resonanzwandler die bis in den Mhzbereich 
arbeiten. Die Wandler die angesteuerten werden sollen arbeiten 
Hauptsächlich in einem Frequenzbereich von 115kHz-160kHz, Im Leerlauf 
bis zu 300kHz im Burst Mode. Im Boost-Mode, da geht die Frequenz bis 
80kHz runter. Die Frequenz muss in 150Hz Schritten einstellbar umd auf 
50mV genau zu Regeln. Damit wäre ich bei 10ns PWM-Auflösung.
Somit müsste ein FPGA/CPLD mit 100Mhz getaktet werden, was ja kein 
Problem sein sollt. Glück das es 10ns SInd und nicht weniger. (die 
1.04ns habe ich nur genannt, weil ich urprünglich dachte, das PWM-Modul 
eines dsPIC33 nachbauen zu können, aber dies ist wohl unmöglich)

Um die Anforderungen zusammenzufassen:
Oben genannter Frequenzbereich mit 10ns Auflösung.
11-Bit PWM
6-Phase mit jeweils 2-Komplementären Ausgängen (also 12)
EInstellbare Deadtime
EInstellebare Phasenlage
Freqenz muss mit dem Reglertakt aktualisiert werden, soll also parallel 
zu laden sein.

Sind jetzt genauere Angaben, vl kann mir jetzt jemand einen Konkreten 
Tipp zu einem FPGA (oder nur CPLD) geben.

>Der Witz ist, dass ein onchip VCO mit 1 GHz leichter zu realisieren ist
>als einer mit 100 MHz.
Weil die Kapazitäten dann kleiner sind?

von Lattice User (Gast)


Lesenswert?

Wenn 100 MHz reichen, würde ich einen MachXO2 ins Auge fassen.

Die update Logik braucht u.U. mehr Platz als die ganze PWM, dabei kann 
es bei einem CPLD halt doch schnell eng werden.
Ausserdem kann man bei einem FPGA auch mal eben einen kleinen 8bit 
Processor mit integrieren. Bei Lattice gibt es den Pico, kann man aber 
nur in Assembler zu programmieren.

Lattice bietet momentan ein Devboard für ganze 29$ an:
http://www.latticesemi.com/products/developmenthardware/developmentkits/machxo2picokit.cfm
Da ist zwar eine ZE Version des MachXO2 bestückt, die eventuell zu 
langsam ist aber zum Kennenlernen reichts allemal.

Ansonsten warum nicht einfach mal die freie Version der 
Entwicklungssoftware des bevorzugten Herstellers herunterladen und das 
ganze im Simulator durchspielen? Dann kannst du auch viel leichter 
abschätzen wie gross der FPGA sein muss und ob es überhaupt 
kostengünstig ist. Den dspPIC33 im Preis zu schlagen dürfte allerding 
ziemlich unmöglich sein.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Sepp schrieb:
> Die Frequenz muss in 150Hz Schritten einstellbar umd auf
> 50mV genau zu Regeln.
Eine Frequenz in Volt?

> Damit wäre ich bei 10ns PWM-Auflösung. Somit müsste ein FPGA/CPLD mit
> 100Mhz getaktet werden, was ja kein Problem sein sollt.
Kommt darauf an, was es dich kosten darf... ;-)
Wenn du die Anzahl der Logikebenen im FPGA auf 2-3 beschränkst, sollte 
das aber problemlos gehen.

> Ist doch nicht schnell. Gibt Resonanzwandler die bis in den Mhzbereich
> arbeiten.
Und die werden bisher eher analog angesteuert?

Lattice User schrieb:
> Wenn 100 MHz reichen, würde ich einen MachXO2 ins Auge fassen.
Wenns schneller sein soll: der Vorgänger MachXO kann da deutlich mehr... 
:-/

von Sepp (Gast)


Lesenswert?

>Eine Frequenz in Volt?
Ist ja Resonanzwandler. Bei diesen wird üblicherweise mit der Frequenz 
die Spannung verstellt, im Gegensatz zu konventionellen PWM-Konvertern. 
In meinen Fall ist die Übertragungsfunktion des resonanten Netzwerks im 
Regelbereich recht steil, deshalb maximal 150Hz Schritte.

>> Ist doch nicht schnell. Gibt Resonanzwandler die bis in den Mhzbereich
>> arbeiten.
>Und die werden bisher eher analog angesteuert?
Ja der Großteil analog, aber digital ist auch im kommen. Unter anderem 
mit dsPIC33 und nur 8-9 Bit PWM.

>Ansonsten warum nicht einfach mal die freie Version der
>Entwicklungssoftware des bevorzugten Herstellers herunterladen und das
>ganze im Simulator durchspielen? Dann kannst du auch viel leichter
>abschätzen wie gross der FPGA sein muss und ob es überhaupt
>kostengünstig ist.
Gute Idee, werde ich demnächst machen. Allerdings habe ich noch keinen 
bevorzugten Hersteller im PLD Bereich. Auf der Uni war es 
Xilinx/Modelsim.
Gibt es da Tipps für einen fast neueinsteiger? Also Ob 
Xilinx,Altera,Lattice? Oder nur Glaubensfrage...

Braucht Lattice Diamond auch einen extra Simulator wie die Modelsim?


>Den dspPIC33 im Preis zu schlagen dürfte allerding
>ziemlich unmöglich sein.
Damit rechne ich auch nicht.
Die Regelung muss weiterhin ein DSP erledigen, also zwei Bausteine 
(DSP+FPGA).
Altera bietet ja einigs in Bezug auf DSP. Mit dem DSP Builder kann man 
Regler welche man in Simulink (was ich in jedem Projekt verwende) 
Modeliert hat in einen HDL Code wandeln. Bedeuted dies, dass man dann 
keinen (kostenfplichtigen) Softcore, wie zb NIOB II, braucht?
- Ich muss ADC Daten lesen
- einen PID-Regler berechen (also eine paar MACs)
- Das PWM-Register (Frequenz) Updaten
Das wäre in einem Cyclone I,II unterzubringen? Also ohne das ein 
kompleter Soft-DSP laufen muss.

MFG Sepp

von Lattice User (Gast)


Lesenswert?

Lothar Miller schrieb:
> Lattice User schrieb:
>> Wenn 100 MHz reichen, würde ich einen MachXO2 ins Auge fassen.
> Wenns schneller sein soll: der Vorgänger MachXO kann da deutlich mehr...
> :-/

Etwa 10%, ist aber aus dem Datenblatt schwer zu vergleichen.
Beim MachXO2 muss man zwischen der ZE und den HC/HE Versionen 
unterscheiden.
Die ZE eignen sich Batteriebetriebene Geräte.

Ich muss aber zugeben, dass ich weder mit MachXO oder MachXO2 
Erfahrungen habe, meine Spielwiese ist die ECP3 Familie.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Sepp schrieb:
> Gibt es da Tipps für einen fast neueinsteiger? Also Ob
> Xilinx,Altera,Lattice? Oder nur Glaubensfrage...
Am ehesten findest du jemand, der mit Xilinx rummacht. Dafür gibt es 
dann auch eher Literatur. Dann kommt naturgemäß Altera, und danach 
Lattice...

> Braucht Lattice Diamond auch einen extra Simulator wie die Modelsim?
Da gibts den von Aldec dazu.

von Lattice User (Gast)


Lesenswert?

Sepp schrieb:
> Braucht Lattice Diamond auch einen extra Simulator wie die Modelsim?

Lattice Diamond kommt mit dem Aldec Simulator, auch in der kostenlosen 
Version. Aldec ist aber leider Windows only.
Externe Modelsim wird auch unterstützt.


Grössere FPGAs haben fast immer DSP Funktionen (Multiplier,MAC...), das 
ist keine Domäne von Altera.

von Uwe Bonnes (Gast)


Lesenswert?

: >Dedizierte HW Blöcke im FGPGA
: (z.B. Serdes) können auch viel mehr.
: Ich nehme an das haben nur die "Großen" teuren?

Serdes gibt es auch bei den kleinsten XC6S, die es fuer unter 10 Euro 
z.B. bei Digikey gibt.

von Lattice User (Gast)


Lesenswert?

Ich habe gerade gesehen, dass Lattice Diamond auch in der kostenlosen 
Version mit Unterstützung für Matlab/Simulink kommt.

Das wird aber mit einem MachXO bzw MachXO2 nicht mehr gehen.

von Sepp (Gast)


Lesenswert?

>Grössere FPGAs haben fast immer DSP Funktionen (Multiplier,MAC...), das
>ist keine Domäne von Altera.
Naja ich brauch ja keinen großen. Auch wenn möglich keinen Softcore.


>Serdes gibt es auch bei den kleinsten XC6S, die es fuer unter 10 Euro
>z.B. bei Digikey gibt.
Auch gut zu wissen. Aber Serdes sind wieder etwas spezielles und ich bin 
froh ich konventionell zurecht komme.

Wie ist jetzt mit dem Altera DSP builder? Kennt das jemand? Baut dieses 
Tool dann einen kostenpflichtigen Softcore oder einfach nur 
Multiplizierer/Addierer usw.

MFG

von Lattice User (Gast)


Lesenswert?

Sepp schrieb:
> Auch gut zu wissen. Aber Serdes sind wieder etwas spezielles und ich bin
> froh ich konventionell zurecht komme.

Man sollte die Serdesfunktion der Xilinx normalen IOs nicht mit den GT 
Serdes für PCIex, SATA etc verwechseln.
An den normalen Pins nennt man das auch Gearbox und ist heutzutage ein 
ziemlich normales Feature, das übrigens auch der MachXO2 an einigen Pins 
hat.

Mit ein wenig Übung ist das IMO für eine PWM gar nicht allzuschwer 
auszunutzen.

von Sepp (Gast)


Lesenswert?

>Ich habe gerade gesehen, dass Lattice Diamond auch in der kostenlosen
>Version mit Unterstützung für Matlab/Simulink kommt.
>Das wird aber mit einem MachXO bzw MachXO2 nicht mehr gehen.

Womit wäre es möglich? LatticeXP2?
hab hier: http://www.latticesemi.com/products/fpga/xp2/sysdspblock.cfm 
gerade gelesen, dass dieser Multiplizierer und ganze MAC-Blöcke hat, 
welche nicht erst synthetisiert werden, sondern als feste Hardware 
vorhanden sind (im sysDSP-Block)?

>Mit ein wenig Übung ist das IMO für eine PWM gar nicht allzuschwer
>auszunutzen.
Was wäre der Vorteil einer PWM mit SERDES oder Gearbox? wären 1.04ns wie 
im dsPC33 zu erreichen?

MFG Sepp

von Lattice User (Gast)


Lesenswert?

Sepp schrieb:
> Womit wäre es möglich? LatticeXP2?

Ja

> hab hier: http://www.latticesemi.com/products/fpga/xp2/sysdspblock.cfm
> gerade gelesen, dass dieser Multiplizierer und ganze MAC-Blöcke hat,
> welche nicht erst synthetisiert werden, sondern als feste Hardware
> vorhanden sind (im sysDSP-Block)?

Ja

>
>>Mit ein wenig Übung ist das IMO für eine PWM gar nicht allzuschwer
>>auszunutzen.
> Was wäre der Vorteil einer PWM mit SERDES oder Gearbox? wären 1.04ns wie
> im dsPC33 zu erreichen?

Man könnte damit die Auflösung bei gegebenen Systemtakt nochmal 
runtersetzen, mit einer 2:1 Gearbox bei 100 MHz  von 10 auf 5 nsec. 
Allerdings ist die Erzeugung etwas komplizierter. Übrigens macht der 
dsPIC etwas sehr ähnliches.

von Sepp (Gast)


Lesenswert?

Können die Hardware MACs mit der frei verfügbaren Lattice Toolchain 
simuliert werden?

von Lattice User (Gast)


Lesenswert?

Sepp schrieb:
> Können die Hardware MACs mit der frei verfügbaren Lattice Toolchain
> simuliert werde

Würde mich extrem wundern wenn das nicht ginge.
Es gibt nur eine Diamondversion. Der Unterschied liegt im Lizenzkey, 
d.h. welche Devices freigeschaltet sind. Bei der kostenlosen Version 
fehlen die Devices mit Highspeed Serdes für PCIexpress und dergleichen.

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.