mikrocontroller.net

Forum: FPGA, VHDL & Co. Xilinx Coding-Techniken: FPGA vs. CPLD


Autor: Anguel S. (anguel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute!

Ich bin dabei, mir "richtiges" VHDL anzueignen ;) Da es mir vor allem 
auch darum geht, guten synthesefähigen Code zu erzeugen, schaue ich mir 
gerade einige Videos zu empfohlenen Coding-Techniken von Xilinx an, wie 
z.B.:
http://www.xilinx.com/support/training/rel/Basic_H...

Diese Techniken scheinen ausschließlich für FPGAs bestimmt zu sein. Das 
ist momentan auch kein Problem, weil ich das Spartan 3E Starter Board 
habe. Mein Design soll Daten vom A/D-Wandler holen, diese in den 
externen RAM schreiben und die Daten sollen daraus von einem PC per 
RS232 abgerufen werden können. Da das Gerät schließlich jedoch sehr 
wahrscheinlich USB-powered werden soll, befürchte ich allerdings, dass 
ich das Design später doch für ein CoolRunner II CPLD umschreiben muss. 
Ich denke, dass CoolRunner II schon große Vorteile ggü. FPGAs hat, wenn 
es um Low-Power bzw. Power-over-USB geht, oder?

Meine Frage ist deshalb, ob dieses spätere "Umschreiben" des Codes von 
FPGA nach CPLD problematisch ist oder nicht. Vor allem geht es auch 
darum, ob die oben gennanten Coding-Techniken von Xilinx überhaupt für 
CPLDs so ohne weiteres gelten und übernommen werden sollten. Damit meine 
ich z.B. die von Xilinx empfohlene Nutzung von synchronen Resets, 
Verwendung von Registern und FSM-Coding-Tipps, etc.

Es wäre sehr hilfreich für mich, wenn mir jemand hierzu einige 
Experten-Tipps geben könnte. Ich bedanke mich schon mal im Voraus!

Viele Grüße,
Anguel

Autor: Klaus Falser (kfalser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich programmiere mit CPLD und FPGA und kann sagen, dass von den 
prinzipiellen Coding-Techniken kein Unterschied ist.
Eine synchron getaktete Schaltung wird immer gleich beschrieben, ebenso 
wie eine FSM.

Unterschiede gibt es natürlich in den verfügbaren Resourcen, ein 
CoolRunner hat weder Blockram noch spezielle IO Blöcke mit z.B. DDR.
Und wenn Du z.B. die Fähigkeit des Coolrunners ausnützen möchtest, auf 
beiden Flanken zu schalten, so geht das im FPGA nicht.

Unterschiede ergeben sich hauptsächlich durch die Geschwindigkeit der 
Resources. Während ich in einem FPGA noch nie Schwierigkeiten mit 
größeren Zählern oder komplexerer Logik hatte, so habe ich zumindest bei 
den XC9500er CPLDs manchmal ganz schön kämpfen müssen um z.B. eine 
Schaltung mit größer oder kleiner Vergleichen gegen einen Zähler im 
Baustein unterzubringen und trotzdem noch die Timingvorgabe einzuhalten.

Autor: Anguel S. (anguel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Erstmal Danke für die schnelle Antwort!

Klaus Falser schrieb:
> Ich programmiere mit CPLD und FPGA und kann sagen, dass von den
> prinzipiellen Coding-Techniken kein Unterschied ist.

Das ist beruhigend.

> Unterschiede gibt es natürlich in den verfügbaren Resourcen

Ok, das ist klar, was nicht drin ist, kann man auch nicht nutzen.

> Unterschiede ergeben sich hauptsächlich durch die Geschwindigkeit der
> Resources.

Wie schnell taktet man so einen CoolRunner II? Hast Du evtl. auch 
Erfahrungen was Low-Power angeht? Macht das wirklich einen großen 
Unterschied, ob man CPLD oder FPGA nimmt?

Viele Grüße,
Anguel

Autor: Klaus Falser (kfalser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Anguel S. schrieb:
> Wie schnell taktet man so einen CoolRunner II? Hast Du evtl. auch
> Erfahrungen was Low-Power angeht? Macht das wirklich einen großen
> Unterschied, ob man CPLD oder FPGA nimmt?

Das kann man so nicht sagen, das hängt vom Design ab.
Beim Coolrunner hat man sicher den Vorteil, dass die Verlustleistung 
proportional zur Frequenz ist, und dass man die Verlustleistung fast 
beliebig klein machen kann indem man die Frequenz erniedrigt.
Das ganze nützt aber wenig, wenn die restlichen Komponenten auf der 
Platine den meisten Strom benötigen.

Überlege Dir einmal das Power Budget Deiner Gesamtschaltung, dann siehst 
Du besser wieviel Dir für das FPGA oder CPLD sinnvoll übrigbleibt.
Wenn Du schon Teile deiner Schaltung hast, dann kannst Du mit XPower 
abschätzten wieviel die eine oder andere Lösung benötigt.

Autor: Anguel S. (anguel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Klaus Falser schrieb:

> Überlege Dir einmal das Power Budget Deiner Gesamtschaltung, dann siehst
> Du besser wieviel Dir für das FPGA oder CPLD sinnvoll übrigbleibt.
> Wenn Du schon Teile deiner Schaltung hast, dann kannst Du mit XPower
> abschätzten wieviel die eine oder andere Lösung benötigt.

Danke, werde mich mal informieren. Wollte nur so im groben wissen, ob 
Spartan 3 überhaupt in Frage kommt, wenn man das ganze über USB 
versorgen möchte, oder ob man da gleich zu einem CPLD greift.

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also wir haben hier ein Messsystem mit Spartan 3e an USB bus-powered. 
Der Spartan nimmt dabei die wenigste Leistung. Die analogen Komponenten 
brauchen da viel mehr Strom. Externer Speicher (IDT FIFO) schluckt 
leider auch etwas. Aber insgesamt kommen wir mit den 500mA recht gut 
aus.

Autor: Anguel S. (anguel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Christian R. schrieb:
> Also wir haben hier ein Messsystem mit Spartan 3e an USB bus-powered.
> Der Spartan nimmt dabei die wenigste Leistung.

Danke, das hört sich schon ganz gut an.

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.