Hi, ich möchte anfangen mich mit FPGAs zu beschäftigen. Im Speziellen interessiere ich mich dabei für CPU Architektur, und mein (mittelfristiges) Ziel ist es auf Basis von einigen im Netz gefundenen Tutorials und Beispielimplementierungen selber eine kleine CPU zu entwerfen, und diese dann in meine Projekte einzubauen. Außerdem möchte ich ein wenig mit (Audio-) DSP herumspielen. Für mich wichtig ist, dass es eine umfangreiche und (relativ) einfach zu erlernende Software / IDE gibt, und man die FPGAs auch halbwegs vernünftig später (ohne DEV-Board) in eigene Schaltungen übernehmen kann. Dazu sollte der Preis der einzelnen Bausteine natürlich auch überschaubar sein. Hier im Forum wird viel von der SPARTAN Familie von Xilinx geschwärmt, die wohl auch eine gute kostenlose (wenn gleich auch eingeschränkte) Software bereitstellen. Das Dev-Kit http://www.xilinx.com/products/boards-and-kits/HW-SPAR3E-SK-US-G.htm ist auch bezahlbar, und scheint einen guten Einstieg zu bieten, oder was meint ihr? Nun zu meinen Fragen: 1) Meint ihr, dass die Xilinx Familie eine gute Wahl für einen Einsteiger ist, der die FPGAs auch unabhängig vom DEV-Board in eigenen Schaltungen verwenden möchte? Gibt es bessere (geeignetere) Alternativen? 2) Bisher habe ich nirgendwo einen "Basisschaltplan" gefunden, wie die FPGAs (in diesem Fall Xilinx) in eine eigene Schaltung integriert werden können, nur ungefähre Informationen. Habt ihr eine Idee wo ich Infos dazu finden kann? Benötigt so ein Baustein wirklich drei verschiedene Spannungen (1.2V, 2.5V, 3.3V)? Mir ist klar, dass - wie auch im entsprechenden Artikel verlinkt - viele Dinge bei der Anbindungen von Peripherie zu beachten sind, die in den Datenblättern stehen. Mir geht es dabei wirklich nur um ein "FPGA läuft und ist prinzpiell einsatzbereit", also Spannungsversorgung und Takt. 3) Auf den Seiten und dem Datasheet der SPARTAN 3E Familie findet sich der Hinweis "Please note that this is a Spartan-3E platform and is not recommended for new designs.". Wisst ihr, was es damit auf sich hat? Kann es ignoriert werden, oder sollte ich auf eine andere Plattform setzen? 4) Im Artikel CPLD steht im ersten Absatz "CPLDs verlieren beim Wegfall der Versorgungsspannung im Gegensatz zu FPGAs ihre Programmierinformation nicht". Trifft das auch auf diese FPGAs zu? Ich bin davon ausgegangen, dass ich (in einer eigenständigen Schaltung) den FPGA einmal per JTAG Interface programmiere, möglicherweise noch per SPI den EEPROM oder Flash fülle und der Baustein dann dauerhaft arbeitet, wie ich es von den AVRs gewohnt bin. Vielen Dank im Voraus!
Peter Reither schrieb: > Nun zu meinen Fragen: > > 1) Meint ihr, dass die Xilinx Familie eine gute Wahl für einen > Einsteiger ist, der die FPGAs auch unabhängig vom DEV-Board in eigenen > Schaltungen verwenden möchte? Gibt es bessere (geeignetere) > Alternativen? Das hängt davon ab, was Du sonst noch machen willst. Ich denke zum Thema Einstieg und Spartan gibt es hier einige Threads ... Wenn's einfach sein soll, dann auch mal nach nichtflüchtigen FPGAs suchen (z.B. MachXO2), dort ist die Konfiguration im Baustein enthalten. Die haben aber oft keine dedizierten Multiplizierer (dass muss man dann mit LUTs machen und kostet recht viel). Nen kline CPU kannst Du auch in einem XO2 entwerfen. Als Vergleich: Ein 8-Bit Controller kostet so um die 500 (-1000) LUTs. > > 2) Bisher habe ich nirgendwo einen "Basisschaltplan" gefunden, wie die > FPGAs (in diesem Fall Xilinx) in eine eigene Schaltung integriert werden > können, nur ungefähre Informationen. Habt ihr eine Idee wo ich Infos > dazu finden kann? Benötigt so ein Baustein wirklich drei verschiedene > Spannungen (1.2V, 2.5V, 3.3V)? > Mir ist klar, dass - wie auch im entsprechenden Artikel verlinkt - viele > Dinge bei der Anbindungen von Peripherie zu beachten sind, die in den > Datenblättern stehen. Mir geht es dabei wirklich nur um ein "FPGA läuft > und ist prinzpiell einsatzbereit", also Spannungsversorgung und Takt. > > 3) Auf den Seiten und dem Datasheet der SPARTAN 3E Familie findet sich > der Hinweis "Please note that this is a Spartan-3E platform and is not > recommended for new designs.". Wisst ihr, was es damit auf sich hat? > Kann es ignoriert werden, oder sollte ich auf eine andere Plattform > setzen? Das deutet darauf hin, dass es meist eine Nachfolgefamilie gibt und/oder der Baustein demnächst abgekündigt wird. Für jemanden, der sein System noch 10 Jahre bauen möchte sicher ein Thema. Wenn Du nur 1 Board machst, ist das weniger relevant. > > 4) Im Artikel CPLD steht im ersten Absatz "CPLDs verlieren beim > Wegfall der Versorgungsspannung im Gegensatz zu FPGAs ihre > Programmierinformation nicht". Trifft das auch auf diese FPGAs zu? Ich > bin davon ausgegangen, dass ich (in einer eigenständigen Schaltung) den > FPGA einmal per JTAG Interface programmiere, möglicherweise noch per SPI > den EEPROM oder Flash fülle und der Baustein dann dauerhaft arbeitet, > wie ich es von den AVRs gewohnt bin. CPLD und nichtflüchtige FPGAs (oft auch als CPLDs bezeichnet) haben ihre Konfiguration auf dem Baustein, entweder direkt als EEPROM-Zelle/Fuse/Flash-Zelle ... oder in einem Konfigurationsflash, aus dem dann beim Einschalten die Konfiguration in sehr kurzer Zeit geladen wird. Die werden einmal programmiert und behalten ihren Inhalt. SRAM basierte FPGAs werden meist über ein externes SPI Flash geladen. Aber auch das wird im System meist einmal konfiguriert. BTW, du kannst das SPI Flash auch per JTAG "durch" das FPGA konfigurieren ... Allerdings ist der Board-Entwurf etwas einfacher, wenn man nur ein Device hat, das das Flash enthält ...)
Peter Reither schrieb: > 1) Meint ihr, dass die Xilinx Familie eine gute Wahl für einen > Einsteiger ist, der die FPGAs auch unabhängig vom DEV-Board in eigenen > Schaltungen verwenden möchte? Gibt es bessere (geeignetere) > Alternativen? Xilinx (und Altera) peilen von der Mitte aus den High-End Markt an. Lattice findet seine Zielgruppe gern im Mittelbereich und drunter. Mir gefallen deren MachXO und XP2 für IO-Anwendungen ganz gut. Ein Lattice XP2 mit 8k LUTs liegt in der selben Liga wie ein Xilinx S3-400. > 2) Bisher habe ich nirgendwo einen "Basisschaltplan" gefunden, wie die > FPGAs (in diesem Fall Xilinx) in eine eigene Schaltung integriert werden > können, nur ungefähre Informationen. Habt ihr eine Idee wo ich Infos > dazu finden kann? Sieh dich mal nach Schaltplänen der diversen EVAL-Boards um. > Benötigt so ein Baustein wirklich drei verschiedene > Spannungen (1.2V, 2.5V, 3.3V)? Meist benötigt er die Core-Spannung und zusätzlich die IO-Spannung. Machmal kommen verschiedene IO-Spannungen zusammen... > Mir ist klar, dass - wie auch im entsprechenden Artikel verlinkt - viele > Dinge bei der Anbindungen von Peripherie zu beachten sind, die in den > Datenblättern stehen. Mir geht es dabei wirklich nur um ein "FPGA läuft > und ist prinzpiell einsatzbereit", also Spannungsversorgung und Takt. Sieh dir mal die MachXO und XP2 von Lattice und den Spartan3 AN von Xilinx an. > 3) Auf den Seiten und dem Datasheet der SPARTAN 3E Familie findet sich > der Hinweis "Please note that this is a Spartan-3E platform and is not > recommended for new designs.". Wisst ihr, was es damit auf sich hat? > Kann es ignoriert werden, oder sollte ich auf eine andere Plattform > setzen? Du kannst bedenkenlos mit dem S3E lernen, aber für ein serientaugliches Design würde ich den nicht mehr einsetzen. > 4) Im Artikel CPLD steht im ersten Absatz "CPLDs verlieren beim > Wegfall der Versorgungsspannung im Gegensatz zu FPGAs ihre > Programmierinformation nicht". Trifft das auch auf diese FPGAs zu? Ich > bin davon ausgegangen, dass ich (in einer eigenständigen Schaltung) den > FPGA einmal per JTAG Interface programmiere, möglicherweise noch per SPI > den EEPROM oder Flash fülle und der Baustein dann dauerhaft arbeitet, > wie ich es von den AVRs gewohnt bin. Alle FPGA (mal von Actel/Microsemi abgesehen) und die meisten CPLDs sind SRAM-basiert und verlieren beim Ausschalten ihre Konfiguration. Einige (s.o.) haben allerdings den Config-Flash integriert und laden beim Anlegen einer Spannung die Konfiguration von dort. Als tipp: such einfach mal hier im Forum nach dem Stichwort "Anfänger" https://www.mikrocontroller.net/search?query=anf%C3%A4nger&forums[]=9&max_age=-&sort_by_date=1
@ Peter Reither (Gast) >http://www.xilinx.com/products/boards-and-kits/HW-... ist >auch bezahlbar, und scheint einen guten Einstieg zu bieten, oder was >meint ihr? Ist gut. >1) Meint ihr, dass die Xilinx Familie eine gute Wahl für einen >Einsteiger ist, Ja. > der die FPGAs auch unabhängig vom DEV-Board in eigenen >Schaltungen verwenden möchte? Gibt es bessere (geeignetere) >Alternativen? Altera und Lattice sind auch gut. >2) Bisher habe ich nirgendwo einen "Basisschaltplan" gefunden, wie die >FPGAs (in diesem Fall Xilinx) in eine eigene Schaltung integriert werden >können, nur ungefähre Informationen. Habt ihr eine Idee wo ich Infos >dazu finden kann? Schau dir den Schaltplan der Evaluationboards an. >Benötigt so ein Baustein wirklich drei verschiedene >Spannungen (1.2V, 2.5V, 3.3V)? Jo. Es gibt auch (Steck)Module, die einem etwas Arbeit abnehmen. http://shop.trenz-electronic.de/catalog/product_info.php?products_id=635 >3) Auf den Seiten und dem Datasheet der SPARTAN 3E Familie findet sich >der Hinweis "Please note that this is a Spartan-3E platform and is not >recommended for new designs.". Wisst ihr, was es damit auf sich hat? Die Serie ist über 10 Jahre alt und sollte in professionellen Designs, welche jetzt neu entwickelt werden, nicht mehr eingesetzt werden. Die ICs wird es schon noch 5-10 Jahre geben, es gibt aber deutlich bessere, modernere ICs. >Kann es ignoriert werden, oder sollte ich auf eine andere Plattform >setzen? Naja, 3E ist wirklich alt. Nimm wenigsten 3A oder AN. >4) Im Artikel CPLD steht im ersten Absatz "CPLDs verlieren beim >Wegfall der Versorgungsspannung im Gegensatz zu FPGAs ihre >Programmierinformation nicht". Jain. > Trifft das auch auf diese FPGAs zu? Ich >bin davon ausgegangen, dass ich (in einer eigenständigen Schaltung) den >FPGA einmal per JTAG Interface programmiere, möglicherweise noch per SPI >den EEPROM oder Flash fülle und der Baustein dann dauerhaft arbeitet, >wie ich es von den AVRs gewohnt bin. Das ist auch so. Aber der FPGA wird nach dem Einschalten automatisch mit seiner Konfiguration geladen, das dauert je nach Schaltung ein paar Dutzend bis hunderte Millisekunden, quasi wie eine Booten des PCs ;-)
Hier noch ein paar Ergänzungen Peter Reither schrieb: > 1) Meint ihr, dass die Xilinx Familie eine gute Wahl für einen > Einsteiger ist, der die FPGAs auch unabhängig vom DEV-Board in eigenen > Schaltungen verwenden möchte? Gibt es bessere (geeignetere) > Alternativen? Für eigene Schaltungen gibt es eine Falle: Die meisten und vor allem grössere FPGAs gibt es nur im BGA Gehäuse. Unter TQFP100/144 wird es aber nicht mehr gehen, auch das stellt schon für viele eine Herausforderung dar. > > 2) Bisher habe ich nirgendwo einen "Basisschaltplan" gefunden, wie die > FPGAs (in diesem Fall Xilinx) in eine eigene Schaltung integriert werden > können, nur ungefähre Informationen. Habt ihr eine Idee wo ich Infos > dazu finden kann? Benötigt so ein Baustein wirklich drei verschiedene > Spannungen (1.2V, 2.5V, 3.3V)? In der Regel nur 2 (Core + IO). Weiter ist zu beachten dass 5V Toleranz nicht mehr gegeben ist. Die MachXO2 von Lattice in der HC Variante haben einen internen Spannungsregler für den Core, und brauchen deshalb nur eine Spannung (2.5V oder 3.3V) Meiner Ansicht (die natürlich nicht von allen geteilt wird) nach stellt das MachXO2 Breakout Board einen sehr günstigen Einstieg dar.
Peter Reither schrieb: > Außerdem möchte ich ein wenig mit (Audio-) DSP herumspielen. Lothar Miller schrieb: > Ein Lattice > XP2 mit 8k LUTs liegt in der selben Liga wie ein Xilinx S3-400. Stimmt, das hab ich glatt vergessen - und das XP2 enthält auch Multiplizierer/DSP Blöcke ... Lattice User schrieb: > Für eigene Schaltungen gibt es eine Falle: Die meisten und vor allem > grössere FPGAs gibt es nur im BGA Gehäuse. > Unter TQFP100/144 wird es aber nicht mehr gehen, auch das stellt schon > für viele eine Herausforderung dar. > ... > Meiner Ansicht (die natürlich nicht von allen geteilt wird) nach stellt > das MachXO2 Breakout Board einen sehr günstigen Einstieg dar. ... und kann per Steckerleiste auch mit deiner Aussenwelt reden, dann kämst Du sogar um das Löten des TQPFs rum.
Lattice User schrieb: > Meiner Ansicht (die natürlich nicht von allen geteilt wird) nach stellt > das > MachXO2 Breakout Board einen sehr günstigen Einstieg dar. Das sieht wirklich sehr interessant aus, danke für den Hinweis! Kannst du mir auch etwas zu der Software sagen: Wie ist der (für mich als Anfänger relevante) Funktionsumfang? Kann ich Simulationen durchführen, um das Design einer simplen CPU und bspw. Signalfilter zu verifizieren? Lattice User schrieb: > Für eigene Schaltungen gibt es eine Falle: Die meisten und vor allem > grössere FPGAs gibt es nur im BGA Gehäuse. > Unter TQFP100/144 wird es aber nicht mehr gehen, auch das stellt schon > für viele eine Herausforderung dar. Sehr wichtiger Aspekt, danke! Lothar Miller schrieb: > Alle FPGA (mal von Actel/Microsemi abgesehen) und die meisten CPLDs sind > SRAM-basiert und verlieren beim Ausschalten ihre Konfiguration. Einige > (s.o.) haben allerdings den Config-Flash integriert und laden beim > Anlegen einer Spannung die Konfiguration von dort. So ist das also - danke, sehr aufschlussreich! Lothar Miller schrieb: > Xilinx (und Altera) peilen von der Mitte aus den High-End Markt an. > Lattice findet seine Zielgruppe gern im Mittelbereich und drunter. Mir > gefallen deren MachXO und XP2 für IO-Anwendungen ganz gut. Ein Lattice > XP2 mit 8k LUTs liegt in der selben Liga wie ein Xilinx S3-400. Diese Information würde sich bestimmt auch gut in der Artikelsammlung machen ;) Danke!
> Ein Lattice XP2 mit 8k LUTs liegt ... wie ein Xilinx S3-400. Für dieses XP2 gibt es dann ein ein EVAL-Board namens Brevia2 XP2: http://www.latticesemi.com/products/developmenthardware/developmentkits/xp2brevia2developmentkit.cfm Das hat sogar Taster und Schalter, die per MAX6818 entprellt wurden (siehe http://www.latticesemi.com/documents/doc43735x37.pdf auf Seite 19), was an sich ein rechter Blödsinn ist, weil diese Taster und Schalter dann zwar nicht mehr prellen, aber trotzdem noch asynchron sind... :-/ http://www.lothar-miller.de/s9y/categories/35-Einsynchronisieren Und zudem liesse sich der Max locker und luftig in das FPGA implementieren und gäbe danch ein astreines synchrones Signal aus: http://www.lothar-miller.de/s9y/archives/4-Tasterentprellung-wie-MAX6816.html
Lothar Miller schrieb: >> Ein Lattice XP2 mit 8k LUTs liegt ... wie ein Xilinx S3-400. > Für dieses XP2 gibt es dann ein ein EVAL-Board namens Brevia2 XP2: > http://www.latticesemi.com/products/developmenthardware/developmentkits/xp2brevia2developmentkit.cfm > Kleine Korrektur, da ist ein XP2-5 drauf, d.h. 5k LUTs. Ausserdem ist zu beachten, dass das beiligende Programmierkabel für den Parallelboard gedacht ist. Der XP2 ist allerdings für Signalverarbeitung besser geeignet als der MachXO2. Der XP2-5 hat 12 18x18 Multiplier.
Peter Reither schrieb: > Das sieht wirklich sehr interessant aus, danke für den Hinweis! Kannst > du mir auch etwas zu der Software sagen: Wie ist der (für mich als > Anfänger relevante) Funktionsumfang? Kann ich Simulationen durchführen, > um das Design einer simplen CPU und bspw. Signalfilter zu verifizieren? > Lattice Diamond unterstützt in der kostenlosen Version die kleineren Familien ohne weitere Softwareeinschränkungen. (zu beachten: die Linuxvariante enthält keinen Simulatur, auch nicht die Vollversion). Der Hauptkritikpunkt von vielen ist, dass man die Lizenz jährlich erneuern muss. Ausserdem funktioniert wohl das Lizenzsystem (flexlm) auf VMs nicht so ohne weiteres.
Lattice User schrieb: > Ausserdem ist zu beachten, dass das beiligende Programmierkabel für den > Parallelboard gedacht ist. Ich glaub das hat sich geändert, hat jetzt auch USB: The Brevia2 Development Kit comes with a USB mini cable to supply power as well as JTAG programming. It is also a replacement for the first-generation LatticeXP2 Brevia Development Kit which is no longer available. Das PPort Kabel war wohl das alte Brevia Board ...
Karl schrieb: > Lattice User schrieb: >> Ausserdem ist zu beachten, dass das beiligende Programmierkabel für den >> Parallelboard gedacht ist. > > Ich glaub das hat sich geändert, hat jetzt auch USB: > The Brevia2 Development Kit comes with a USB mini cable to supply power > as well as JTAG programming. It is also a replacement for the > first-generation LatticeXP2 Brevia Development Kit which is no longer > available. > > Das PPort Kabel war wohl das alte Brevia Board ... Du hast recht, damit ist das sogar eine gute Wahl, http://www.latticesemi.com/products/developmenthardware/developmentkits/xp2brevia2developmentkit.cfm Danke für den Hinweis.
1 | LatticeXP2 Brevia Development Kit |
2 | Note: This product is no longer available for purchase - |
3 | it has been replaced by the new LatticeXP2 Brevia2 Development Kit. |
Hier noch der Link aufs alte Brevia Board (ohne die 2) mit dem kleineren FPGA und dem Parallelport-Programmer: http://www.latticesemi.com/products/developmenthardware/developmentkits/xp2breviadevelopmentkit.cfm
Gut, dann werde ich mir das "LatticeXP2 Brevia Development Kit" mal bestellen. Danke für die vielen wertvollen Tips!
Lothar Miller schrieb: > Hier noch der Link aufs alte Brevia Board (ohne die 2) mit dem > kleineren FPGA und dem Parallelport-Programmer: > http://www.latticesemi.com/products/developmenthardware/developmentkits/xp2breviadevelopmentkit.cfm Der FPGA ist in beiden Fällen der LFXP2-5E-6TN144C
Peter Reither schrieb: > Gut, dann werde ich mir das "LatticeXP2 Brevia Development Kit" mal > bestellen. Danke für die vielen wertvollen Tips! Wenn du nicht direkt bei Lattice bestellst, sicherstellen dass du die neue Variante bekommst. PartNbr: LFXP2-5E-B2-EVN
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.