Ich versuche mir gerade zu beantworten, ob Hardwareentwicklung ein Gebiet ist, in das ich tiefer einsteigen möchte. Einen ersten Kontakt mit Verilog und einem FPGA-Board hatte ich in einem Kurs mit Laborübungen, der gerade zu Ende ging. Bevor ich jetzt von meinem bisschen Geld garnichtmal so wenig ausgeben muss für so ein Board und ein paar Bauteile würde ich vor allem gerne wissen, wofür FPGAs denn tatsächlich so alles eingesetzt werden. Wo verläuft die Grenze, ab der besser Hardware anstelle eines Mikrocontrollers verwendet werden sollte oder muss? Ich habe mir mal grob angeschaut, wie ein HDMI-Signal erzeugt wird und habe mir gedacht, ein nettes Projekt wäre doch, mir ein günstiges Display und eine günstige Kamera zu besorgen und das Bild in Echtzeit auf dem Display auszugeben. Vielleicht nicht auf dem ganzen Display, sondern nur in einem kleinen Fenster und drumherum noch ein paar Informationen auszugeben. Nun hätte ich bedeutend weniger Motivation dafür, wenn ich wüsste, dass das genauso gut mit einem Mikrocontroller zu realisieren wäre. Ist das schon ein Bereich, der einem Mikrocontroller zu viel wäre und sich der Einsatz von Hardware lohnt? Oder geht es erst dann damit los, wenn das Signal in Echtzeit ausgewertet werden soll, also Muster erkannt werden sollen usw.? Fallen euch andere Gebiete ein, die verdeutlichen, wofür sich der Einsatz von FPGAs lohnt und wo die Grenze verläuft ab der sie eingesetzt werden sollten/müssen? Danke!
:
Bearbeitet durch User
Emanuel G. schrieb: > Wo verläuft die Grenze, ab der besser Hardware anstelle eines > Mikrocontrollers verwendet werden sollte oder muss? Dort, wo es keinen Mikrocontroller gibt, der das kann, was du brauchst. Oder du ihn nicht einsetzen willst... > Nun hätte ich bedeutend weniger Motivation dafür, wenn ich wüsste, > dass das genauso gut mit einem Mikrocontroller zu realisieren wäre. Genau solche "display-Allerweltsaufgaben" bekommst du mit einem "Mikrocontroller" vom Schlage i.MX6 o.ä. im Bereich um 15€ (Einzelstückzahlen) garantiert einfacher und billiger hin.
Moin, das ist so eine klassische FAQ, auf die du hier beim Suchen viele Antworten finden wirst... Je nachdem bist du mit dem einen oder andern schneller am Ziel: a) Genannte iMX6, oder Raspi-Geschwarte: Da findest du fertige Kameralösungen zum Spielen, Overlay-Anwendungen, usw. b) Speziellen Sensor anbinden oder gewisse Timings einhalten müssen: FPGA Sobald du bei a) mit detaillierteren Themen wie MIPI oder dem v4l2-Treiber anfangen musst, kostet's Zeit, du kriegst keine Informationen, oder es tut einfach nicht wie es soll und das Projekt steht. Wenn du wiederum bei b) nicht das richtige FPGA aussuchst, nutzt dir das ganze toll simulierte Design nix :-) Und meistens kombiniert man dann noch a) mit b). Emanuel G. schrieb: > Fallen euch andere Gebiete ein, die verdeutlichen, wofür sich der > Einsatz von FPGAs lohnt und wo die Grenze verläuft ab der sie eingesetzt > werden sollten/müssen? Immer da, wo man mit der Simulation und entsprechender Fehlersuche gegenüber der halbfertigen Prozessorlösung Zeit sparen kann, oder Safety-Richtlinien es erfordern. Eine Raspi-Cam willst du nicht zur Bahngleis-Überwachung verkaufen...
Bei den neuesten SDR (Software Defined Radio) erfolgt die Signalverarbeitung meist in einem FPGA. Das betrifft Mischer, Filter, Dezimatoren usw. Die A/D- Wandlung erfolgt in separaten Schaltkreisen, ebenso die D/A- Wandlung beim Senden. https://openhpsdr.org/hermes.php https://www.darc.de/fileadmin/filemounts/distrikte/i/ortsverbaende/04/Fuchsjagd/i04-Redpitaya-2016-05-03.pdf http://www.ssb.de/sdr/transceiver/zs-1-zeus-1-transceiver usw.
Für die Verarbeitung von HDMI-Datenströmen bieten sich die aktuellen Digilent Zybo Z7 an, die gegenüber der Vorgängergeneration jeweils einen HDMI-Eingang und -Ausgang haben, so dass man das Board zwischen die Signalquelle und einen Monitor hängen kann. https://www.youtube.com/watch?v=c1I2HQ5DPCo https://shop.trenz-electronic.de/de/search?sSearch=zybo+z7 https://store.digilentinc.com/zybo-z7-zynq-7000-arm-fpga-soc-development-board/
Für Hobbyanwendungen weniger relevant aber FPGA werden u.a. eingesetzt wenn massiv parallele IO und Verarbeitung notwendig sind. Z.B. 128 ADC Kanäle mit >> 10 MHz. Für Phased Array Radar sind dann schnell sogar die fettesten FPGA zu klein und es müssen mehrere kombiniert werden.
Emanuel G. schrieb: (snip) > Fallen euch andere Gebiete ein, die verdeutlichen, wofür sich der > Einsatz von FPGAs lohnt und wo die Grenze verläuft ab der sie eingesetzt > werden sollten/müssen? Meine Vorredner haben schon die Hauptmotivationen FPGAs zu verwenden dargestellt und gut erläutert. Es gibt aber noch einen Bereich in dem FPGAs ein Alleinstellungsmerkmal haben, das den höheren Aufwand rechtfertigt: Ihre Programmierbarkeit erlaubt es zu einem später Zeitpunkt Funktionen zu ändern, die ansonsten als fester Teil eines ASIC, DSP oder Mikrocontroller daher kämen. Dies erlaubt zum einen spätere Updates (siehe Router), Adaption an neue Standards (z.B. SDR) oder die "nachträgliche" Definition der Funktion durch den Kunden, wie beispielsweise in NI's RIO Systemen. Im Grunde sind dies alles Auswirkungen der Technik auf die Organisation drumherum und den Umgang mit FPGA-basierten Systemen. Dies kann bei kleinen Stückzahlen oder sehr engen Zeitrahmen ein entscheidendes Kriterium sein, die andere Lösungen nicht bieten können.
C. T. schrieb: > Es gibt aber noch einen Bereich in dem FPGAs ein Alleinstellungsmerkmal > haben, das den höheren Aufwand rechtfertigt: Ihre Programmierbarkeit > erlaubt es zu einem später Zeitpunkt Funktionen zu ändern, die ansonsten > als fester Teil eines ASIC, DSP oder Mikrocontroller daher kämen. Dies > erlaubt zum einen spätere Updates (siehe Router), Adaption an neue > Standards (z.B. SDR) Aber gerade bei Routern und SDR würde man doch einfach nur ein Softwareupdate machen. Gibts denn denn überhaupt irgendwelche Prozessoren, die Signaldemodulation komplett in Hardware haben?
Markus K. schrieb: > Gibts denn denn überhaupt irgendwelche > Prozessoren, die Signaldemodulation komplett in Hardware haben? Zumindest bei der Entwicklung und Verifikation von Prozessoren können FPGAs als Prototyping-Platform eine wichtige Rolle spielen. Z.B. sowas hier: https://www.synopsys.com/verification/prototyping/haps.html.
FPGAs sind auch für Maschinelles Lernen von Bedeutung. Man kann darauf sehr flexibel Algorithmen als feste Schaltungen implementieren. Es soll auch Fälle geben wo FPGAs GPUs vorzuziehen sind bezügliche massive parallele Berechnungen. Es wird denke ich interessant zu sehen sein wie sich die Leistungsfähigkeit von FPGAs im Vergleich zu ASICs entwickeln wird. Leistungsfähige und günstige FPGAs könnten dazu führen dass das Zoo der unzähligen ASIC Lösungen auf eine übersichtlichere Größe eingedampft wird. In Verbindung mit vielen (freien) IP Cores könnte ein FPGA Chip die Aufgaben von 1000 verschiedenen ASIC Chips übernehmen. Bei einer solchen Entwicklung würden die produzierten Stückzahlen sicher rasant in die Höhe gehen und die Stückkosten erheblich senken. Außerdem ist es für die Zukunft gar keine schlechte Idee Chips zu haben die man später updaten kann. Da bei der zunehmenden Komplexität immer gravierendere Fehler und Sicherheitslücken auftauchen. Die bisherigen sogenannten IoT Geräte sind in der Hinsicht versteinert. Auch wenn die meisten Gründe dafür sicher an anderen Stellen liegen.
huhu123456 schrieb: > Es wird denke ich interessant zu sehen sein wie sich die > Leistungsfähigkeit von FPGAs im Vergleich zu ASICs entwickeln wird. Diese Frage wurde zu allen Zeiten gestellt. Und dann wieder zu Gunsten der ASICs eintschieden, sobald die Stückzahl nennenswert wird. Nur als Anhaltspunkt: jede billige CPU als ASIC wie der o.A. i.MX6 ist schneller, leistungsfähiger und energiesparender als eine CPU in als Softcore in einem FPGA. > Leistungsfähige und günstige FPGAs könnten dazu führen dass das Zoo der > unzähligen ASIC Lösungen auf eine übersichtlichere Größe eingedampft wird. Die ersten Bitcoins wurden mit PCs gefunden, dann mit Grafikkarten, dann mit FPGAs und heute wird mit ASICs gesucht: https://www.bitcoinmining.com/bitcoin-mining-hardware/ Und die ASICs sind dank optimierter Auslegung leistungsfähiger und weniger energiehungrig: https://en.bitcoin.it/wiki/Mining_hardware_comparison Man nimmt dann ein FPGA, wenn es die Hardware nicht anderweitig gibt. Oder wenn man Funktionen lange (auch über mehrere FPGA-Generationen weg) braucht und sich zwar die Umsetzung in portierbares HDL, aber nicht in ein eigenes ASIC rechnet. Oder dann, wenn die Schnittstellen gleich bleiben, man aber Hardware (Funktionen, Berechnungen) austauchen muss. https://www.jacol.de/fpga-blog/fpga-verwendung/
@Lothar Miller Ja das ist der aktuelle Stand der Dinge. Aber wird es immer so bleiben? Selbst wenn man davon ausgeht das FPGA Logikzellen immer prinzipiell mehr Platz benötigen und die Flexibilität mit weniger Optimierungsmöglichkeiten erkauft wird, muss man nicht davon ausgehen das ASICs immer die erste Wahl sein werden. Die Logikdichte bei FPGAs steigt immer weiter an und ich glaube FPGAs müssen gar nicht leistungsfähiger sein als ASICs um den Durchbruch gegenüber ASICs zu schaffen. Denn aber einer gewissen Leistungsfähigkeit und Kostensenkung werden FPGAs aufgrund der Flexibilität attraktiver. Dann sind die neusten ASICs immer noch leistungsfähiger, aber was wenn diese noch höhere Leistungsfähigkeit nicht überall gebraucht wird? Wenn also FPGAs die geforderte Leistung bringen und günstig genug sind haben sie gegenüber ASICs den Vorteil der Flexibilität. Bevor ich ein ASIC nutze wo nie mehr als 50% der möglichen Leistung genutzt wird, nutze ich vielleicht ein (möglicherweise) genau so günstiges FPGA und hab dadurch die Möglichkeit das Design selbst an meine Anforderungen zu ändern und später Updates durchzuführen.
In dem Augenblick, wo es um Stückzahlen geht, ist ein ASIC bei gleicher Leistungsfähigkeit billiger als ein FPGA. Damit entscheidet die Wirtschaftlichkeit für den ASIC. Die Flexibilität spielt keine Rolle, wenn sich das Design nicht langfristig an veränderliche Anforderungen anpassen können muss. Man muss neue Geräte für dauerhaften Gewinn verkaufen, statt alte Geräte ewig zu supporten. Die Zukunft lässt sich schlecht vorausplanen. Ein FPGA-Design kann man vielleicht an die neuen Gegebenheiten anpassen, aber auch das ist nicht sicher. Dazu kommt dann noch, dass ein ASIC bei gleicher Leistungsfähigkeit stromsparender ist. huhu123456 schrieb: > Bevor ich ein ASIC nutze wo nie mehr als 50% der möglichen Leistung > genutzt wird Wenn du die Leistung des ASICs nicht brauchst, dann machst du den ASIC halt kleiner. Oder, wenn es nicht dein ASIC ist, dann schaltest du die nicht benötigten Teile einfach ab und sparst trotzdem Geld.
Man sollte noch bedenken, dass moderne Fertigungsprozesse teuer sind. Das rechnet sich erst bei höheren Stückzahlen... Wenn wir von "Stückzahlen" reden: Für Industrieanwendungen mit tausender Stückzahlen sind FPGAs i.d.R. wirtschaftlicher als ASICs. Lothar M. schrieb: > jede billige CPU als ASIC wie der o.A. i.MX6 ist Der i.MX6 ist ein ASSP/SoC, kein ASIC ;-P
Martin S. schrieb: > a) Genannte iMX6, oder Raspi-Geschwarte: Da findest du fertige > Kameralösungen zum Spielen, Overlay-Anwendungen, usw. Leider aber nichts, was mit Leistung zu tun hätte.
Mac G. schrieb: > Der i.MX6 ist ein ASSP/SoC, kein ASIC ;-P Da kann man das Haar schon auch komplett längs durchspalten und jedem ASIC seinen eigenen Namen geben. Aber ich empfinde so einen uC (zudem einen ohne internes Flash) durchaus als ASIC. Denn ich kann in der Hardwarestruktur nichts mehr ändern, ohne dass ich etwas an der Belichtungsvorlage etwas ändere. huhu123456 schrieb: > Ja das ist der aktuelle Stand der Dinge. Aber wird es immer so bleiben? Es war schon vor 20 Jahren so. Und wenn ich dann mal ein wenig extrapoliere... > Selbst wenn man davon ausgeht das FPGA Logikzellen immer prinzipiell > mehr Platz benötigen und die Flexibilität mit weniger > Optimierungsmöglichkeiten erkauft wird, muss man nicht davon ausgehen > das ASICs immer die erste Wahl sein werden. Ich hatte da nichts von immer geschrieben. Aber der Break-Even bei den Kosten FPGA vs. ASIC kommt auf jeden Fall schneller als man sich denkt.
Teure Handys haben schon heute FPGAs drin statt ASICs, und wo könnten die Stückzahlen höher sein? Design und Herstellung eines ASICs dauert halt viele Monate, und bis der da ist, ist wahrscheinlich schon das Nachfolgemodell des Handys angesagt. Also "time to market" ist ein gutes Argument für FPGAs.
Andi schrieb: > Teure Handys haben schon heute FPGAs drin statt ASICs, und wo könnten > die Stückzahlen höher sein? bei billigen handys
Lothar M. schrieb: > Mac G. schrieb: >> Der i.MX6 ist ein ASSP/SoC, kein ASIC ;-P > Da kann man das Haar schon auch komplett längs durchspalten und jedem > ASIC seinen eigenen Namen geben. Technisch sind ASSP und ASIC gleich. Macht aber wirtschaftlich einen gigantischen Unterschied und daher auch die Unterscheidung. Das hat mit Haare spalten überhaupt nichts zu tun.
Mac G. schrieb: > Technisch sind ASSP und ASIC gleich. Sagen wir mal so: ein ASSP ist ein ASIC, das frei verkäuflich ist und auch von anderen als nur dem Hersteller/Entwickler verwendet wird. https://de.wikipedia.org/wiki/Anwendungsspezifische_integrierte_Schaltung Andi schrieb: > Teure Handys haben schon heute FPGAs drin statt ASICs Naja, das ist nicht so der Bringer: https://www.quora.com/Why-is-an-FPGA-not-used-in-a-mobile-phone Ein 48-Pinner. Für die Glue-Logic. Apple wird das Ding quasi geschenkt bekommen, nur damit Lattice implizit Werbung damit machen kann...
Andreas S. schrieb: > Digilent Zybo Z7 an, die gegenüber der Vorgängergeneration jeweils einen > HDMI-Eingang und -Ausgang haben, Das sind aber nur buffer drauf, wie auch auf anderen boards, die TMDS machen und keine echten Transceiver. Daher kann man da nichts Gescheites mit machen. Und im Text heisst es auch: "Resolutions up to 720p (1280×720) have been tested" D.h. die normalen 1080er Modi fallen flach!
Mac G. schrieb: > Man sollte noch bedenken, dass moderne Fertigungsprozesse teuer sind. > Das rechnet sich erst bei höheren Stückzahlen... Insbesonder die HiSpeed-Prozesse. Die ASIC-fritzen tun sich ganz schon schwer mal so einen Gigabit-Transceiver in ihren AISIC-production Lines zu realisieren. > Wenn wir von "Stückzahlen" reden: Für Industrieanwendungen mit tausender > Stückzahlen sind FPGAs i.d.R. wirtschaftlicher als ASICs. ASIC lonht sich erst so ab 10k/Jahr und drüber, da liegt vieles ausserhalb des Consumer-breichs drunter: -Medizintechnik insbeosnders CT und MRT, -Automatisierungstechnik insbes. AOI war (ist) ne FPGA-Domäne -Telecom-Basisstationen -Ultraschall-Prüftechnik -weitere bildgebende Verfahren (Konfokalmikroskopie, Rasterkraftmikroskopie) -HiL-Teststände
Lothar M. schrieb: > Sagen wir mal so: ein ASSP ist ein ASIC, das frei verkäuflich ist und > auch von anderen als nur dem Hersteller/Entwickler verwendet wird. Genau so ist es. Hierbei erfolgt dann häufig eine Aufteilung des Kostenrisikos auf den ursprünglichen Auftraggeber und den Halbleiterhersteller bzw. ein dazwischen befindlichen ASIC-Designhaus. Der Auftraggeber erhält dann das beauftragte ASIC zu günstigen Konditionen, und der Hersteller kann dann, ggf. nach einer Sperrfrist, das ASIC als Standardprodukt weiterverkaufen. Häufig wird aber dabei die Entstehung solch eines Produktes verschwiegen. Bei einem Microcontroller, für den ich von Seiten des Herstellers eine Aussage zur Lieferbarkeit benötigte, erfuhr ich, dass es sich um einen kundenspezifischen Baustein für Lexmark handelte, der so lange hergestellt wird, wie Lexmark entsprechende Drucker herstellt, d.h. der Microcontroller konnte jederzeit mit sofortiger Wirkung abgekündigt werden. Ein Mikroprozessor (MTC20285) mit drei integrierten ISDN-S0-Schnittstellen wurde hingegen von Alcatel dann auf den Markt gebracht, als deren eigene darauf basierten Telefonanlage usw. schon etabliert waren, und zwar tatsächlich unter dem eigenen Namen Alcatel bzw. Alcatel Microelectronics.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.