Hallo,
vorab möchte ich sagen, dass ich hier keinen Krieg anzetteln möchte. Ich
würde gerne wissen, welcher Hersteller Hobbyistenfreundlicher ist. Also
bei wem mehr in der freien Version der Software geht. Vorallem was
embedded Prozessoren angeht. Ich blicke da nämlich nicht wirklich durch.
Hallo,
ich würde dir Lattice empfehlen.
Ich hab dashir gefunden
http://de.mouser.com/ProductDetail/Lattice/ICE40HX1K-STICK-EVN/?qs=sGAEpiMZZMvnsdhmqAkjhufx2j91viwV
Alternativ gibt es Xilinx Evaluation-Boards von OHO-Electronics.
Die kosten 40€.
Heißen GODIL. Es gibt natürlich noch andere preiswerte.
Bei allen Herstellern würde ich dir empfehlen die kostenlosen
web-Editionen der Synthese-Software nur zum synthesizen zu benutzen.
Das geht sogar per Kommandozeile oder Makefile.
Simulieren kannst du mit icarus verilog (iverilog) oder ghdl.
Der NIOS II/e von Altera kann komplett kostenlos genutzt werden (IP-Core
+ IDE + Quartus)
Die kostenlose Version von Quartus kann Cyclone 3 + 4 komplett und
Cyclone 5 bis einschließlich 150k LE programmieren.
Boards gibt es z.B. von Terasic
Hoffe geholfen zu haben :-)
Fragender schrieb:> Vorallem was embedded Prozessoren angeht.
Vergiss diesen Irrweg der Evolution schnell wieder (das ist meine
persönliche Meinung, sie muss nicht zwingend stimmen, aber ich sehe gute
Chancen, dass ich langfristig Recht habe... :-).
Jeder Prozessor, der als Softcore in ein FPGA reingepflügt wird, ist
garantiert langsamer, teurer, ineffizienter und größer als ein
dedizierter ASIC mit gleicher Leistung (aka. Mikrocontroller). Wenn du
Rechenleistung braucht, dann flanscht du einen 32Bit ARM Core an ein
FPGA. Das machen die FPGA Hersteller heutzutage auch alle.
Xilinx hat natürlich auch freie Software, die alles das kann, was du
willst
(man muss sogar fairerweise sagen, dass X die ersten waren, die den
teuren Simulator für die Allgemeinheit kostenlos verfügbar machten).
Und eine CPU für lau incl. Quelltext (also nicht nur den verschlüsselten
Core) bekommst du z.B. dort: Beitrag "Mais-CPU veröffentlicht 32bit Softcore"
Auch wenn ich persöhnlich eher Xilinx-Anhänger bin, so muss ich
doch bei Embedded uCs im Hobbybereich Altera QuartusII empfehlen.
Ein NiosII-System ist relativ einfach aufgesetzt und eigene
Komponenten dank einfacher Docs auch in der begrenzten Hobbyzeit
noch realisierbar. Bei Xilinx' EDK sieht's da wesentlich schlechter
aus (EDK: im Hobbybereich nur als 30-Tage-Evalversion, da kriegt
man nur sehr wenig hin).
Und zur Relevanz von eingebetteten Prozessoren: Ein NiosII füllt
in modernen Cyclone-FPGAs vllt 5-10 Prozent, ist aber sehr hilfreich
bei der Konfiguration und Steuerung div. Komponenten oder Kommunikation
mit PC etc.
Der Microblaze bei Xilinx ist mittlerweile auch kostenlos verfügbar. Da
wird jetzt dasselbe SDK verwendet wie für die ZYNQs und das ist
kostenlos.
(habs aber noch nicht wirklich ausprobiert, evtl. kann ja jemand anderes
schon was berichten?)
Sigi schrieb:> Und zur Relevanz von eingebetteten Prozessoren: Ein NiosII füllt> in modernen Cyclone-FPGAs vllt 5-10 Prozent, ist aber sehr hilfreich> bei der Konfiguration und Steuerung div. Komponenten oder Kommunikation> mit PC etc.
Nicht zu vergessen das auf der Platine evtl. gar kein Platz für einen
zweiten großen Chip sein könnte und das FPGA evtl. auch nicht genug
freie I/Os für eine ausreichend schnelle Verbindung hat.
Sigi schrieb:> Und zur Relevanz von eingebetteten Prozessoren: Ein NiosII füllt> in modernen Cyclone-FPGAs vllt 5-10 Prozent, ist aber sehr hilfreich> bei der Konfiguration und Steuerung div. Komponenten oder Kommunikation> mit PC etc.
Ein Prozessor allein ist (so gut wie) gar nichts wert. Interessant sind
die Schnittstellen zur Aussenwelt...
Ein "modernes" FPGA, in dem ein halbwegs leistungsfähiger Prozessor
Platz findet, kostet bei gleichen Stückzahlen um Ewigkeiten mehr (man
sollte das drumrum nicht aus dem Auge verlieren) als z.B. ein voll
ausgeschlafener 4x1GHz-Core i.MX6 mit jeder Menge Peripherie (PCIe, CAN,
2D/3D-Grafik, undsehrvielmehr). Klar kann es sein, dass ein Softcore
manchmal Sinn macht (auch ich setze die Dinger ein), aber sie sind meist
sinnlos, wenn sie Selbstzweck sind: "Ich möchte einen Softcore in meinem
FPGA."
Grendel schrieb:> Nicht zu vergessen das auf der Platine evtl. gar kein Platz für einen> zweiten großen Chip sein könnte
Man könnte viele der Aufgaben, für die heute ein FPGA verwendent wird,
mit einem effizient programmierten Prozessor gleich gut erledigen. Nur
darf man dann nicht mit der üblichen schlampigen
"Drauflosprogrammiererei" kommen.
> und das FPGA evtl. auch nicht genug> freie I/Os für eine ausreichend schnelle Verbindung hat.
Dafür und dagegen wurden dann die Gigabit-Serdes ins FPGA eingebaut...
Also würde ich dem Fragenden sagen: fang mal mit "FPGA" an. Und
frühestens in einem halben Jahr kannst du dir dann die
Prozessor-Geschichte antun. Dann fällst du auch nicht gleich bei jeder
klitzekleinen Fehlermeldung des Synthesizers aus allen Wolken...
schon einmal vielen Dank für die zahlreichen Antworten.
Lothar Miller schrieb:> Also würde ich dem Fragenden sagen: fang mal mit "FPGA" an. Und> frühestens in einem halben Jahr kannst du dir dann die> Prozessor-Geschichte antun. Dann fällst du auch nicht gleich bei jeder> klitzekleinen Fehlermeldung des Synthesizers aus allen Wolken...
Das halbe Jahr habe ich im Rahmen von 2 Modulen in der Uni bereits
hinter mir. Da haben wir mit Xilinx gearbeitet. Allerdings ohne EDK SDK
(Softcore), sondern rein auf der Hardwareebene. Da jetzt von dem was die
Uni anbietet das Ende der Fahnenstange erreicht ist, möchte ich halt auf
eigene Faust weiter machen. Erfahrungen mit der FPGA Hardware sind also
da. Ebenso habe ich bereits ein paar Erfahrungen auf dem Gebiet der
Prozessoren.Hauptsächlich Stm32.
Über Sinn oder Unsinn von Softcores lässt sich sicher streiten.Und
darauf ob es günstiger ist einen richtgen Prozessor mit in die Schaltung
zu integrieren oder gar ein SoC mit echten ARM Cores zu verwenden,
zielte meine Frage nicht ab. Ich wollte viel mehr wissen welches
Werkzeug (ISE bzw. Vivado oder QuartusII) mir in der freien Version mehr
in der Hinsicht bieten kann. Der Grund dafür ist, dass ich verschiedene
Informationen diesbezüglich gefunden habe. Zum einen habe ich gelesen,
dass Xilinx neuerdings auch ihren Microblaze frei zur Verfügung stellt,
allerdings ohne EDK und in einer abgespecken Version. Zum anderen habe
ich gelesen, dass der NIOSII nur funktionert, wenn der Byte Blaster
angeschlossen ist und quasi eine dauerhafte Verbindung zum PC mit
QuartusII besteht. Die Herstellerseiten waren für mich nicht 100%tig
zufriedenstellend, was die Infos angeht.
Fragender (Gast) schrieb:
>.. Zum anderen habe>ich gelesen, dass der NIOSII nur funktionert, wenn der Byte Blaster>angeschlossen ist und quasi eine dauerhafte Verbindung zum PC mit>QuartusII besteht. ..
nein, nicht ganz. Je nach verwendeter Version braucht es keine
permanente
Verbindung. Details dazu findet man in den Docs, aber leider etwas in
den Tiefen versteckt.
und:
>Byte Blaster..
Du meinst wahrscheinlich USB-Blaster.
Fragender schrieb:> Das halbe Jahr habe ich im Rahmen von 2 Modulen in der Uni bereits> hinter mir.
Du wirst deine Zeitrechung vermutlich überarbeiten müssen...
Ich meinte ein halbes Mannjahr: hast du jeden Abend mit FPGAs verbracht?
> Das halbe Jahr habe ich im Rahmen von 2 Modulen in der Uni bereits> hinter mir.
Was hast du da gemacht?
Lothar Miller schrieb:> Du wirst deine Zeitrechung vermutlich überarbeiten müssen...> Ich meinte ein halbes Mannjahr: hast du jeden Abend mit FPGAs verbracht?>>> Das halbe Jahr habe ich im Rahmen von 2 Modulen in der Uni bereits>> hinter mir.> Was hast du da gemacht?
OK... :D ein halbes Mannjahr wares sicher lange nicht.
Was wir gemacht haben ist zum einen VHDL-Syntax, FSM, Synchronisation
von asynchronen Systemen, Hardwarecoprocessoren, und etwas
Signalverarbeitung FIR-Filter inkl. Benutzung eines CODECs.
Ein halbes Mannjahr ist es sicher nicht. Und mir ist klar, dass ich
jetzt nicht problemlos mit einem Softcore umgehen kann. Mein erstes
kleines Project soll ansteuerung eines CODECS mittels Softcore und
verschiedene Filter in Hardware sein.
Mein Ziel ist es auch nicht das nach einer Woche am laufen zu haben.
Lothar Miller schrieb:> Man könnte viele der Aufgaben, für die heute ein FPGA verwendent wird,> mit einem effizient programmierten Prozessor gleich gut erledigen. Nur> darf man dann nicht mit der üblichen schlampigen> "Drauflosprogrammiererei" kommen.
Sehr einseitige Sichtweise...
Der von Dir erwähnte i.MX taugt nur, wenn man reine µC Performance
benötigt. Sobald es in Richtung Echtzeit oder Parallelverarbeitung geht,
ist ein FPGA + Softcore die bessere Variante, da man sich gegenüber
einer 2 Chip-Lösung die Schnittstelle auf dem PCB spart. Außerdem kann
man die Peripherie des Softcore auf die konkrete Anwendung abstimmen,
während man bei einem of-the-shelf µC das nehmen muss, was STM, TI, NXP,
... rein packen.
Sigi schrieb:> nein, nicht ganz. Je nach verwendeter Version braucht es keine> permanente> Verbindung. Details dazu findet man in den Docs, aber leider etwas in> den Tiefen versteckt.
Nennt sich bei Altera OpenCore Plus. Damit kann man IP-Cores erst mal
unbegrenzt evaluieren, solange die "Nabelschnur" zwischen FPGA und
Quartus besteht. Erst für ein Stand-Alone System braucht man dann die
Lizenz:
http://www.altera.com/literature/an/an320.pdf
Den NIOS II gibt es in 3 Ausführungen (/e, /s, /f) die sich in den
Features und der Performance unterscheiden. Der Kleinste (/e) ist ohne
Lizenz voll nutzbar. Für die anderen beiden benötigt man entweder die
NIOS II Lizenz, oder man kann das System nur mit Nabelschnur testen.
:-)
Hallo, das interessiert mich auch.
Wie sieht es denn bei den kostenlosen Versionen mit den zusätzlichen
Komponenten aus Bibliotheken oder IP-cores aus? Z.B. für SD-Cards,
Ethernet (UDP), Displays usw. Würde man etwas komplexes wie ein FAT
Dateisystem hardcore zusammenbauen oder sowas doch lieber in einer Soft
CPU?
Bob schrieb:> Welche Uni wenn man fragen darf? Möchte auch was in die Richtung> machen...
HAW-Hamburg
Ok, das mit den Open Cores war mir neu. Momentan sagt mir das neue
Cyclone V GX Board von Terasic am ehesten zu.
Jojo S. (jojos) schrieb:
>Wie sieht es denn bei den kostenlosen Versionen mit den zusätzlichen>Komponenten aus Bibliotheken oder IP-cores aus? Z.B. für SD-Cards, ...
Gut: Neben Prozessor werden zahlreiche lizenzfrei IP-Cores angeboten,
die teils mit/ohne "Nabenschnur" laufen. Interesant von Altera ist
auch das "University Program", dass noch zahlreiche freie Cores
anbietet.
FAT: IP-Core für SD-Card wird von Altera angeboten, gute SW-Libs
für FAT findet man zu Hauf im Netz.
Fragender (Gast) schrieb:
>Cyclone V GX Board von Terasic ..
Schaut wie ein sehr gutes Board aus, wie DE0-DE2, nur neuer.
Und am Preis kann man auch nicht meckern.
Fragender schrieb:> Bob schrieb:>> Welche Uni wenn man fragen darf? Möchte auch was in die Richtung>> machen...>> HAW-Hamburg>> Ok, das mit den Open Cores war mir neu. Momentan sagt mir das neue> Cyclone V GX Board von Terasic am ehesten zu.
Ich denke mal mit diesem Board kann man nichts falsch machen. Allerdings
finde ich die Anschlussmöglichkeiten nach außen etwas eingeschränkt
(kein PS/2 oder gar Netzwerk). Man kann das natürlich nachrüsten und es
gibt noch den Anschluss für Arduino-Shields...
Falls du dich für Embedded Prozessoren interessierst, dann solltest du
dir vielleicht noch das DE1 SOC Board anschauen. Preislich soll es
ähnlich gelagert sein und das FPGA hat noch einen Dual-Core A9
eingebaut.
Lothar Miller schrieb:> aber sie sind meist> sinnlos, wenn sie Selbstzweck sind: "Ich möchte einen Softcore in meinem> FPGA."
Ja dann bringts natürlich nix.
Ich würde nie auf die Idee kommen in einer Anwendung die ich gut mit
einem Mikrocontroller erledigen kann ein FPGA zu benutzen. Aber gibt
eben viele Sachen wo man sowieso beides(!) braucht... und da machen die
Softcores durchaus sehr viel Sinn um den externen Mikrocontroller (nicht
1GHz Applikationsprozessor) zu ersetzen.
Lothar Miller schrieb:>> und das FPGA evtl. auch nicht genug>> freie I/Os für eine ausreichend schnelle Verbindung hat.> Dafür und dagegen wurden dann die Gigabit-Serdes ins FPGA eingebaut...
Das ist aber nur eine theoretische Möglichkeit. Das bringt bei den
Controllern grob in der Leistungsklasse des Microblaze / NIOS (also
<500MHz) herzlich wenig, weil die meisten µCs damit nix anfangen können
- da gehts dann nur parallel oder sehr langsam per SPI... die die PCIe
haben sind zu groß und energiehungrig - man hat da auch nicht nur die
CPU auf der Platine sondern auch noch DDR RAM und diverse Schaltregler,
macht die Multilayerplatine größer und teurer und viel komplexer zu
entwerfen.
Mit grob 3000 LUTs bekommt man bei Microblaze/NIOS schon eine gut
brauchbare Konfiguration hin und soviel ist das nun auch nicht.
--> z.B. Spartan6 LX25 mit Microblaze statt LX16 + irgendein größerer
externer Controller - kann Sinn machen und der LX25 hat genug Platz für
zusätzliche Peripherie. Der LX25 kostet bei Digikey im selben Package
z.B. nur 10 Euro mehr (vom LX25 auf LX45 genauso) - das musst Du mit
externem Controller erstmal signifikant unterbieten (inkl. größerer
Platine und allen anderen Komponenten).
Mike schrieb:> Falls du dich für Embedded Prozessoren interessierst, dann solltest du> dir vielleicht noch das DE1 SOC Board anschauen. Preislich soll es> ähnlich gelagert sein und das FPGA hat noch einen Dual-Core A9> eingebaut.
Wo bekommt man das denn? Bei Terasic finde man es nur über die
Googlesuche, aber bestellbar ist es dort nicht und Distributoren wie
Mouser und Digikey haben es auch nicht.
Die Softcores werden doch meistens dafür verwendet, um einen
spezialisierten IP-Core noch ein wenig flexible Rechenleistung zur
Verfügung zu stellen. Nicht selten läuft in einer 2-Chip-Lösung neben
dem fetten Hauptprozessor noch ein kleiner Softcore im FPGA, um ein paar
Serviceroutinen unabhängig von der Hauptsoftware laufen zu lassen.
Üblich ist das z.B. bei Industrial Ethernet Anwendungen. Und dagegen
kann auch ein Lothar Miller nichts machen, auch wenn er anderer Meinung
ist. :)
Und in naher Zukunft werden viele 2-Chip-Anwendungen wohl durch Zynq und
Cyclone SoC abgelöst.
Lothar Miller schrieb:> Vergiss diesen Irrweg der Evolution schnell wieder (das ist meine> persönliche Meinung, sie muss nicht zwingend stimmen, aber ich sehe gute> Chancen, dass ich langfristig Recht habe... :-).
Und wenn man sich hobbymäßig mit dem Softcore als Selbstzweck
beschäftigen will, wenn es auch ein STM32 oder AVR tun würde, wieso
nicht? Ist ja schließlich nur ein Hobby, und wenn man FPGA interessanter
findet, ist das doch in Ordnung. Das DE0 nano reicht für solche Zwecke
allemal und kostet im Endeffekt auch nicht viel mehr als eine komplette
AVR-Entwicklungsumgebung mit Debugger und Entwicklungskit.
Naja ich finde halt die ganze SoC Thematik, ob Softcore ala Nios oder
Micrblaze oder echter Core ala ARM A9 sehr interessant. Wie gesagt Sinn
oder Unsinn von beiden soll hier nicht die Frage sein. Dass es in der
Praxis mehr Sinn macht einen "richtigen" Prozessor auf mein PCB zu
pflanzen mag sein. Das Problem wird nur sein, dass ich nicht für jede
Anwendung die mir gerade einfällt ein möglichst economisches PCB
entwickeln kann. Darum SoC...
Ich habe mir gerade mal das Altera University-Programm angeschaut. Sehe
ich das richtig, dass man als Student garnicht das Recht hat sich dort
anzumelden? Ließt sich so als würde das nur von Hochschlupersonal
machbar und nur für Hochschulrechner.
Fragender schrieb:> Naja ich finde halt die ganze SoC Thematik, ob Softcore ala Nios oder> Micrblaze oder echter Core ala ARM A9 sehr interessant. Wie gesagt Sinn> oder Unsinn von beiden soll hier nicht die Frage sein.
Eben, das ist die Definition eines Hobbys.
Und nicht zu vergessen: Du arbeitest Dich z.B. bei Altera's NiosII
nicht nur in die CPU ein, sondern lernst auch ein komplettes
Bussystem/Infrastruktur kennen. Ob jetzt CPUs in FPGAs sinnvoll oder
nicht sind, diese Erfahrung ist auf jeden Fall Gold wert.