Forum: FPGA, VHDL & Co. FPGA und CPLD, Programmspeicherort, wieso extra Baustein?


von Manuel (Gast)


Lesenswert?

Hallo,

ich bin noch recht neu bei den FPGA / CPLD.
Angefangen habe ich mit einem Arty A7-35T Developerboard.

Beim Anschauen einiger anderer FPGA-Boards ist mir aufgefallen, dass die 
FPGAs ihren Code eigentlich immer von einem zweiten Speicherbaustein 
holen und sich sozusagen beim Start jedes Mal neu konfigurieren.

Trotz Recherche im Internet finde ich leider keine konkrete Antwort auf 
meine Frage. Ist es nicht möglich, bei einem FPGA das Programm auf dem 
FPGA selbst zu speichern, wie es meines Wissens nach bei den CPLDs ist?

Ich entwerfe mir gerade eine kleine Steuerung und der Platz ist sehr 
begrenzt, daher würde ich sehr gerne auf jeden unnötigen Baustein 
verzichten.

Viele Grüße
Manuel

von Bentschie (Gast)


Lesenswert?

Hallo,

ich bin jetzt nicht der große FPGA Spezialist. Meine Designs mit Altera 
und Xilinx sind jetzt schon ca 6 Jahre her. Soweit ich weiß gibt es 
keine nennenswerte FPGA mit internem Flash, wie man es von Controllern 
her kennt. Dia haben alle einen externen Konfigurationsspeicher.
Das ist aber in der Regel nur ein serieller Flash im SO8 Gehäuse.

Xilinx wollte dazumal immer ihren "Spezial" Flash. Aber ein 
stinknormaler ging auch, der war dann im SO8 statt SO16 und kostetet nur 
1€xx statt 5€.

von Tom (Gast)


Lesenswert?

Das FPGA funktioniert mit LUT aus Ram Zellen. Dazu noch RAM Blöcke. (ok 
aber das weißt du wahrscheinlich ja selber) Wenn man dann den 
nicht-flüchtigen Speicher noch mit auf den Chip packt, kostet das Platz.

Es gibt schon FPGA mit embedded Flash woraus die LUT geladen werden. 
Actel Igloo oder Intel MAX10 z.B.

von M. Н. (Gast)


Lesenswert?

Manuel schrieb:
> Ist es nicht möglich, bei einem FPGA das Programm auf dem
> FPGA selbst zu speichern, wie es meines Wissens nach bei den CPLDs ist?

Jein. Es gibt FPGAs, die das machen. Intels MAX10 Serie bspw. Da gibt es 
welche mit internem ROM. Diese haben quasi das ROM intern und booten 
dann daraus.

Lattice hat auch nicht-flüchtige FPGAs. Allerdings direkt auf 
Flash-Basis (XP2 Serie bspw.). Bei diesen ist die LUT direkt als 
Flash-Zelle ausgeführt. Dadurch müssne die gar nicht booten und sind 
quasi "instant on"

Der Grund, warum die High-End FPGAs das nicht haben wird in der 
Halbleiter-Technologie vergraben sein. Flash / andere nichtflüchtige 
Speicher erfordern spezielle Halbleiterprozesse. Das Problem daran ist, 
dass diese Prozesse häufig nicht besonders gut für High-Speed Logik sind 
etc. Deshalb setzen die FPGA Hersteller auf Performance optimierte CMOS 
Prozesse und lagern das Speicherproblem auf einen separaten Chip aus. 
Desweiteren braucht ein ROM relativ viel Chipfläche -> Hohe Kosten, 
Yield-Verlust etc.

Eine Möglichkeit wäre es, den FPGA und ROM auf 2 Chips zu fertigen und 
im Package zusammenzubonden.

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


Lesenswert?

Manuel schrieb:
> Trotz Recherche im Internet finde ich leider keine konkrete Antwort auf
> meine Frage.
Der Trick am Suchen ist das Finden.

> Ist es nicht möglich, bei einem FPGA das Programm auf dem
> FPGA selbst zu speichern, wie es meines Wissens nach bei den CPLDs ist?
Doch. Jeder Hersteller hat solche Bauteile im Portfolio. Und wenn dann 
noch ein OnChip-RC-Oszillator wie z.B. bei den MachXO drauf ist, dann 
lassen sich echte Single-Chip Designs draus machen.

> dass die FPGAs ihren Code eigentlich immer von einem zweiten
> Speicherbaustein holen
Vergleiche mal die Fertigungsprozesse bei SRAM und Flash. Du wirst 
sehen, dass man entweder das eine gut kann oder das andere. Aber es wird 
immer ein Kompromiss sein, wenn beides auf dem selben Die ist.

Aus diesem Grund sagen die FPGA-Hersteller: wir können das mit den FPGAs 
gut. Lass diejenigen das mit dem Speicher machen, die das mit dem 
Speicher gut können.

M. H. schrieb:
> Lattice hat auch nicht-flüchtige FPGAs. Allerdings direkt auf
> Flash-Basis (XP2 Serie bspw.). Bei diesen ist die LUT direkt als
> Flash-Zelle ausgeführt.
Nein. Schon seit der Jahrtausendwende gibt es keine solchen FPGAs mehr. 
Bei den Lattice-FPGAs sizt aber jeweils eine Flash-Zelle direkt bei 
einer SRAM-Zelle.
Siehe z.B. dort die Punkte 5 und 6:
http://www.latticesemi.com/en/Support/AnswerDatabase/2/4/242

Und dort ab Seite 33:
http://www.petrex-bg.com/up/down/doc/Lattice_Non-volatile_Solutions_XO_XP.ppt

Und deshalb kann man auch "nur" das FPGA mit einer neuen Konfiguration 
laden, die ist dann nach dem nächsten Powerup vergessen. Oder man kann 
die neue Konfiguration ins Flash laden, dann ist sie auf dem FPGA 
gespeichert.

: Bearbeitet durch Moderator
von Anarchist (Gast)


Lesenswert?

Letzten Endes sind die FPGA-Hersteller wohl nur verwöhnt.
Man schaue sich mal an, was die Microcontroller Hersteller alles können.
Logik, Flash, ADC/DAC.

Selbst bei neuen Mikroprozessoren mit ARM Kernen ist Flash On-Chip.
Wird Zeit, dass die FPGA Hersteller hier mal vorwärts kommen.

von M. Н. (Gast)


Lesenswert?

Anarchist schrieb:
> Selbst bei neuen Mikroprozessoren mit ARM Kernen ist Flash On-Chip.
> Wird Zeit, dass die FPGA Hersteller hier mal vorwärts kommen.

Naja. Die FPGA-Hersteller sind würde ich sagen in dem Punkt einfach 
weiter. In den Technologien, in denen Xilinx seine Artix7 etc. herstellt 
willst keinen Flash machen...

Anarchist schrieb:
> Man schaue sich mal an, was die Microcontroller Hersteller alles können.
> Logik, Flash, ADC/DAC.

"Logik"... Ein Mikrocontroller ist eine mehr oder weniger komplett 
autogeroutete Struktur, die relativ einfach ist. Ein FPGA mit seiner 
katastrophalen Routing-Matrix, verteilten RAM-Blöcken, Clock 
distribution, die was taugen soll, etc... ist da schon eine GANZ andere 
Hausnummer. da steckt auch noch deutlich mehr manuelle Arbeit dahinter.
Mit 'ner halbwegs aktuellen Technologie routet sich ein Cortex M4 quasi 
von selbst. Gib Cadence 'ne Nacht auf 'nem Server und schwupp ist das 
Ding platziert.

ADCs und DACs sind nicht die große Hürde. In einem CMOS Prozess, der 
noch nicht vollkommen zum 5 nm Fin-Fet verkommen ist, lässt sich ein ADC 
schon noch machen. Die Chipfläche für die Kondensatorbänke, die für 
einen SAR gebraucht werden, benötigen allerdings einiges an Platz. Aber 
Xilinx hat ja auch nen ADC mit auf seinen FPGAs.

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


Lesenswert?

Anarchist schrieb:
> Selbst bei neuen Mikroprozessoren mit ARM Kernen ist Flash On-Chip.
Das, was da On-Chip ist, reicht bei FPGAs nicht mal sooo arg weit:
https://www.xilinx.com/support/documentation/user_guides/ug470_7Series_Config.pdf

Ein 7VX1140T braucht da immerhin 385,127,680 Bits bzw. knapp 48 MByte an 
Configdaten.

> Wird Zeit, dass die FPGA Hersteller hier mal vorwärts kommen.
Die Zielgruppe ist einfach komplett anders.
Und wenn in einer Telekommunikationseinheit ein paar Monster-FPGAs 
draufsitzen, die sowieso nur dann gebootet werden, wenn es eine neue 
Firmware gibt, dann lohnt es sich nicht, auf jedes FPGA noch sicheres 
NOR-Flash zu basteln, wenn eine Speicherkarte mit billigem NAND-Flash 
die Arbeit auch erledigen kann oder die Konfiguration für alle Nodes 
sowieso zentral gespeichert und verteilt wird.

von Christoph Z. (christophz)


Lesenswert?

Grundsätzlich wurde eigentlich schon alles gesagt und stimmt so weit 
auch.

Von meiner Seite nur kleine Korrekturen oder Ergänzungen:

Lothar M. schrieb:
> M. H. schrieb:
>> Lattice hat auch nicht-flüchtige FPGAs. Allerdings direkt auf
>> Flash-Basis (XP2 Serie bspw.). Bei diesen ist die LUT direkt als
>> Flash-Zelle ausgeführt.
> Nein. Schon seit der Jahrtausendwende gibt es keine solchen FPGAs mehr.
> Bei den Lattice-FPGAs sizt aber jeweils eine Flash-Zelle direkt bei
> einer SRAM-Zelle.
> Siehe z.B. dort die Punkte 5 und 6:
> http://www.latticesemi.com/en/Support/AnswerDatabase/2/4/242

Sehr richtig, dass ist der non-volatile Ansatz von Lattice, SRAM FPGA 
mit embedded Flash Zellen.

Bei Microchip (aka Microsemi/Actel) ist es immer noch so, dass die FPGAs 
direkt mit non-volatile Speicherzellen anstatt SRAM gebaut werden. 
Früher Flash (z. B. ProAsic3) und heute in 28 nm mit sogenannten SONOS 
Zellen (RTG4, PolarFire).
Wie man auch sieht, bei Microchip ist bei 28 nm Schluss und Xilinx ist 
bei 7 nm...

Anarchist schrieb:
> Letzten Endes sind die FPGA-Hersteller wohl nur verwöhnt.
> Man schaue sich mal an, was die Microcontroller Hersteller alles können.
> Logik, Flash, ADC/DAC.

Man muss schon vergleichbare Eisen vergleichen. Ein Beispiel von 2011 
herum, da war bei TI etwa bei 200 MHz schluss mit embedded Flash, alle 
schnelleren brauchten externen Programmspeicher.

Lothar M. schrieb:
>> Wird Zeit, dass die FPGA Hersteller hier mal vorwärts kommen.
> Die Zielgruppe ist einfach komplett anders.
> Und wenn in einer Telekommunikationseinheit ein paar Monster-FPGAs
> draufsitzen, die sowieso nur dann gebootet werden, wenn es eine neue
> Firmware gibt, dann lohnt es sich nicht, auf jedes FPGA noch sicheres
> NOR-Flash zu basteln, wenn eine Speicherkarte mit billigem NAND-Flash
> die Arbeit auch erledigen kann oder die Konfiguration für alle Nodes
> sowieso zentral gespeichert und verteilt wird.

Genau, die Zielgruppe macht es hier aus. Die grossen Monster-FPGA werden 
ja kaum eingesetzt ohne weitere Prozessoren oder gleich x86 Server. Da 
brauchts keinen externen Baustein weil sie eh vom Hostsystem immer mit 
dem aktuellsten Bitstream versorgt werden.

Andere Hersteller bauen ganz bewusst kleinere FPGAs für andere 
Zielmärkte und wissen, dass es da von Vorteil ist, wenn die 
Konfiguration intern ist. Das macht gerade Lattice interessant für 
Industrieanwendungen.

Microchip (aka Microsemi/Actel) könnte das auch, ist aber teurer als 
Lattice. Microchip kommt zum Zug, wenn Strahlungsfestigkeit, Resistenz 
gegen Sidechannelattacken oder andere Securityaspekte Relevant werden. 
Entsprechend sind sie Marktdominierend in Flugzeugen, Satelliten, 
Geldspielautomaten etc.

von nip (Gast)


Lesenswert?

Es gibt Spartan3 mit internem Flash. Das ist ganz praktisch, wenn man 
den Aufwand niedrig halten will für eine kleine Anwendung. Ansonsten 
sind Anwendungen mit FPGA oft so aufwändig, dass ein externer Flash den 
Kuchen nicht fett macht.

von Erro, dum vivo (Gast)


Lesenswert?

Manuel schrieb:
> Trotz Recherche im Internet finde ich leider keine konkrete Antwort auf
> meine Frage. Ist es nicht möglich, bei einem FPGA das Programm auf dem
> FPGA selbst zu speichern, wie es meines Wissens nach bei den CPLDs ist?

Dann haste scheiße recherchiert:

* Spartan3-an
* Max10
* pOLARFIRE

: Bearbeitet durch Admin
von Ferkel (Gast)


Lesenswert?

So einen kleinen 8-Beiner neben dem FPGA wird die Welt ja wohl 
verschmerzen koennen. Bet 48 MByte wird der wohl ein bisscher groesser 
ausfallen. Aber der FPGA ja wohl auch.

Und wenn die integrierten ADs dann auch mal eine Wurst vom Teller ziehen 
koennten und nicht mit 200 ksps troedeln wuerden.
Das waer dann schoen.

von MCUA (Gast)


Lesenswert?

> Wird Zeit, dass die FPGA Hersteller hier mal vorwärts kommen.
es gibt (im Low-Mid-Bereich) PLDs (mache sind intern FPGAs) u. FPGAs die 
das drauf haben

von Blechbieger (Gast)


Lesenswert?

Ferkel schrieb:
> Und wenn die integrierten ADs dann auch mal eine Wurst vom Teller ziehen
> koennten und nicht mit 200 ksps troedeln wuerden.
> Das waer dann schoen.

Reichen 6 GSPS?
https://www.xilinx.com/products/silicon-devices/soc/rfsoc.html

Und Intel hat was mit 64 GSPS in der Pipeline

https://www.intel.com/content/www/us/en/architecture-and-technology/programmable/analog-rf-fpga.html

von Ferkel (Gast)


Lesenswert?

> Reichen 6 GSPS?
> 64 GSPS

Jaja, zu teuer. Ich waer ja schon mit 100 Msps zufrieden wenn
die nicht gerade eine grottige Linearitaet, missing Codes und
aehnliches Unbill haetten.
Bei AD kostet sowas ein paar Euro. Das waere im Rahmen.

von Christoph Z. (christophz)


Lesenswert?

Ferkel schrieb:
> Jaja, zu teuer. Ich waer ja schon mit 100 Msps zufrieden wenn
> die nicht gerade eine grottige Linearitaet, missing Codes und
> aehnliches Unbill haetten.
> Bei AD kostet sowas ein paar Euro. Das waere im Rahmen.

Hier sind wir halt beim genau gleichen Thema wie mit dem Flash:
Es gibt Chip-Herstellprozesse die optimiert sind auf schnelle 
Digitallogik, Analogschaltungen, Flash inklusive oder Stromsparen. Es 
gibt nicht alles gleichzeitig gleich gut.

von Fpgakuechle K. (Gast)


Lesenswert?

Christoph Z. schrieb:

>
> Hier sind wir halt beim genau gleichen Thema wie mit dem Flash:
> Es gibt Chip-Herstellprozesse die optimiert sind auf schnelle
> Digitallogik, Analogschaltungen, Flash inklusive oder Stromsparen. Es
> gibt nicht alles gleichzeitig gleich gut.

Naja,  desalb hat Xilinx ja auch den Spartan 3AN als 'stacked Die 
gefertigt, sprich unter einem Chipgehaüse einen FPGA und einen 
Flash-Die.
Hat aber wohlnicht die kalkulierte Nachfrage ergeben, so dass man es 
wieder einstellte.

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.