Hallo erstmal.
Ich möchte mich gerne mit FPGAs beschäftigen. Erfahrung habe ich bisher
nur in 8Bit und 16Bit PICs gesammelt.
Dazu stelle ich mir einige Fragen. Doch zuerst wollte ich erläutern, wie
ich vorgehen wollte:
Zuerst will ich mich in die Arbeitsweise der FPGAs einlesen (bin ich
auch schon bei). Danach wollte ich etwas mit dem Tool und einem Demo bzw
Devboard rumspielen und ein gewisses Gefühl für bekommen. Mein
Langzeitziel wäre es, einen Logicanalyser oder gar kleines, unretables,
dafür selbst erstelltes Lowend-Oszi zu bauen. Aus Primär Kostengründen
würde ich gerne bei Max. 4 Lagen bleiben, was also BGA ausschließen
dürfte. Aber es soll ja auch kein 500MSPS Oszi werden.
Doch ich habe dazu noch ein paar Fragen.
1. Ich habe hier bereits 2 Boards. Eins ist mit einem Spartan3
(XC3S100E), das andere hat einen Cyclone IV (EP4CE6E22C8N) drauf. Die
Peripherie ist bei beiden ähnlich. SDRAM, Taster, 7Segmentanzeigen, ...
Ich würde ungern mich in dem Cyclone4 und Alteras Software
auseinandersetzen und dann aus irgendeinem (vorhersehbaren) Grund
umentschieden und mich dann in die Xilinx's einarbeiten zu müssen. Ich
tendiere eher zum Cyclone, aber das hat kaum spezielle Gründe.
Aus meiner Sicht sind die Pro und Cons:
Cyclone/Altera:
+ bei Mouser zu haben, wo ich eigentlich ausschließlich bestelle
+ das Board ist minimal besser ausgestattet
- Die neueren Cyclone5 gibt es nur in BGA
- Soweit ich das herausgelesen habe, sind sie langsamer als die
Spartans, zumindest was DRAM Anbindung angeht.
Spartan/Xilinx:
+ Schneller
+ Spartan6 auch in TQFP
- Muss separat bei einem anderen Händler bestellt werden
Die Frage ist auch, ob ich denn die neuste Generation brauche, oder ob
ein Spartan3 bzw Cyclone4 reicht. Und wie sieht es mit der Software aus?
Unterstützt die Freie Version die Spartan3&6 bzw Cyclone4? Oder
sonstiges, weswegen eine der beiden Programme vorzuziehen ist?
Sehr wahrscheinlich gibt es ähnlich wie bei ARM, AVR, PIC, MSP.... keine
Richtige Antwort, aber mich würden Meinungen und Erfahrungen
interessieren.
2. Was ist mit Lattice? Würde mir jemand dazu so sehr raten, dass ich
mir davon noch ein Board holen sollte? Wenn ja, wieso? Ich will die
jetzt nicht unter den Teppich kehren, aber bei den anderen beiden habe
ich bereits ein Board. Lattice FPGAs habe ich schon öfter in
(Teardownvideos von) Oszis gesehen, auch von Namenhaften Herstellern. Da
denke ich mir wiederum, wieso sollten sie auf so einen kleinen (im
Vergleich zu Altera und Xilinx) Hersteller setzen? Haben die vielleicht
Features, die bei Oszis gut einsetzbar sind? Oder ist es nur der Preis?
3. Lohnt es sich, mit dem "zusammenklicken der Logikgatter" zu
beschäftigen, oder doch gleich von Anfang an mit VHDL oder Verilog? Mir
gefällt es grafisch ganz gut, nur irgendwann wird es sich
unübersichtlich. Zudem wird bestimmt nicht ohne Grund fast
ausschließlich eine der beiden Sprachen genutzt.
4. Haltet ihr den beschriebenen Weg für beschreitbar oder ratet ihr mir
etwas anders bzw in einer anderen Reihenfolge zu machen?
5. Kann man diese überteuerten Konfigspeicher eigentlich durch normale
Flash- oder EEPROM Bausteine ersetzen? Meine da mal was gelesen zu
haben, das gewisse Speicher gehen.
Das war es erstmal. Es kommen aber wahrscheinlich noch ein paar mehr
Fragen.
Vielen Dank schon mal an alle Schreiber
- Cyclone 5 ist neu, Spartan 6 veraltet. Ich würde den S6 eher mit C4
vergleichen. Spartan 6 ist ein aussergewöhnlich preiswerter Chip, nicht
unbedingt repräsentativ,
- Altera bietet mehr in der freien Toolchain. Die ist einfacher und
linearer zu bedienen. Besonders, seit ISE durch Vivado ersetzt wurde,
- Wenn Du Dich professionell entwickeln willst, sollte man aber wissen,
wie was wo eingesetzt wird: Das Verhältnis in der Industrie, die FPGAs
selber einsetzen, also dafür entwickeln, ist etwa:
Xilinx in rund 90% der Firmen verwendet - Tendenz sinkend
Altera in rund 60% der Firmen verwendet - Tendenz steigend
Lattice in rund 15% der Firmen verwendet - Tendenz unbekannt
Actel in weniger, als 10% der Firmen verwendet.
> Logigatter
Zum Verständnis ja,
> Kann man diese überteuerten Konfigspeicher eigentlich durch normale
Flash- oder EEPROM Bausteine ersetzen
Ja und es geht auch ohne, mit einem uC der das aktiv aus seinem Flash
tut.
M. schrieb:> Cyclone 5 ist neu, Spartan 6 veraltet. Ich würde den S6 eher mit C4> vergleichen. Spartan 6 ist ein aussergewöhnlich preiswerter Chip, nicht> unbedingt repräsentativ,
Repräsentativ ist ja egal. Wenn die Super Preiswert sind, ist das ja
eher ein Grund FÜR die Reihe.
Ich hab mir mal die Tabellen angeguckt:
https://www.altera.com/solutions/technology/external-memory/overview.html
Und
www.xilinx.com/products/silicon-devices/fpga.html
Da steht, der Spartan6 kann DDR3 Speicher mit 800MHz ansteuern, der
Cyclone5 "nur" mit 400MHz und der Cyclone4 garnier DDR3. Auch wenn ich
vielleicht kein DDR3 RAM nutze und auch nicht bis zu 800MHz nutze,
scheint der Spartan6 mehr Power zu haben, und das bei geringerem
Preis...
M. schrieb:> Ja und es geht auch ohne, mit einem uC der das aktiv aus seinem Flash> tut.
Gut. Ein uC wird eh drauf sein, dann bietet sich ja die Verwendung
seines Flashes an..
Kannst du auch was zu 2. sagen?
ich schrieb:>> Ich hab mir mal die Tabellen angeguckt:> https://www.altera.com/solutions/technology/external-memory/overview.html> Und> www.xilinx.com/products/silicon-devices/fpga.html>> Da steht, der Spartan6 kann DDR3 Speicher mit 800MHz ansteuern, der> Cyclone5 "nur" mit 400MHz
Das steht da nicht. Xilinx gibt die Geschwindigkeit in den auch anderswo
üblichen Werten ohne Einheit an, und das sind Mbps. Während Altera
beides angibt, sowohl Mpbs als auch MHz. Cyclon V und Spartan 6 sind
somot gleichauf, beide max 400 MHz.
ich schrieb:> Kannst du auch was zu 2. sagen?
Lattice ist vor allem mit kleineren FPGAs erfolgreich, ein Marktsegment
das von Xilinx vernachlässigt, und von Altera gerade erst wieder endeckt
(Max10) wird.
> Ja und es geht auch ohne, mit einem uC der das aktiv aus seinem Flash
tut.
Leider brauchen die heutigen FPGAs so viel Konfigurations-Daten, dass
dafür das Flash der embedded controller nicht reicht. Deshalb landet man
meistens doch wieder bei zusätzlichen Flash-Speichern.
Helmut S. schrieb:> Leider brauchen die heutigen FPGAs so viel Konfigurations-Daten, dass> dafür das Flash der embedded controller nicht reicht. Deshalb landet man> meistens doch wieder bei zusätzlichen Flash-Speichern.
Das ist wahr. Jaja. Mir geht's darum, dass der Speicher auf meinem
Altera-Board (EPCS4SI8), ein popeliges 4Mbit Speicher bei Digikey
knapp15€ kostet, die 16Mbit Version sogar 17. Ein normaler, serieller
Flash mit 4Mbit bekommt man dagegen ab 22cent, 16Mbit ab 46cent. Für die
15€ bekomme ich ja schon den Cyclone4 und n dsPIC dazu...
ich schrieb:> Da steht, der Spartan6 kann DDR3 Speicher mit 800MHz ansteuern, der> Cyclone5 "nur" mit 400MHz und der Cyclone4 garnier DDR3. Auch wenn ich> vielleicht kein DDR3 RAM nutze und auch nicht bis zu 800MHz nutze,> scheint der Spartan6 mehr Power zu haben, und das bei geringerem> Preis...
Du machst dir zu viel Sorgen um die Zukunft. Das sind alles Sachen, die
dich erst in einem Jahr interessieren werden. Und mit der bis dahin
gewonnenen Erfahrung kannst du die Fragen, die du jetzt hast, selber
beantworten...
ich schrieb:> Zuerst will ich mich in die Arbeitsweise der FPGAs einlesen (bin ich> auch schon bei).
Die grundlegende Arbeitsweise ist simpel: es gibt Flipflops und LUTs.
Das ist der Teil, in dem du dich mit "deiner" Logik und "deiner"
Hardware austoben kannst.
Und dann haben die FPGAs "aussen rum" schon Hardware integriert, die man
auch auf der Platine realisieren könnte, die man heute aber direkt auf
dem Chip macht, weil man sie sowieso "immer" braucht: RAM, Taktmanager,
Serializer und Deserializer...
Lattice User schrieb:> Lattice ist vor allem mit kleineren FPGAs erfolgreich, ein Marktsegment> das von Xilinx vernachlässigt, und von Altera gerade erst wieder endeckt> (Max10) wird.
Wobei auch einer der "kleinen" Lattice FPGAs die Zielanforderungen
(Logik-Analyzer und Oszilloskop) locker erfüllen kann...
ich schrieb:> 3. Lohnt es sich, mit dem "zusammenklicken der Logikgatter" zu> beschäftigen, oder doch gleich von Anfang an mit VHDL oder Verilog? Mir> gefällt es grafisch ganz gut
Siehe den Beitrag "Re: kruder Fehler bei FPGA-Programmierung (ISE WEBpack-Schematic)"ich schrieb:> Würde mir jemand dazu so sehr raten, dass ich mir davon noch ein Board> holen sollte?
Ich würde an deiner Stelle einfach mal mit irgendwas anfangen, statt zig
Eval-Boards zu kaufen...
Tach,
das Thema mit den LA kommt immer wieder in den verschiedenen Threads
auf, mein Fazit: Kaum eines dieser Projekte wird etwas, und wenn, dann
ist es kaum brauchbar. Von einem echten Produkt als Tool für andere
würde ich absehen. Zum Lernen aber: Einfach weitermachen! Was man dann
schliesslich für HW einsetzt, ist fast schon egal.
Ansonsten etwas persönlicher Senf:
- Xilinx: Wenn man mit den Bugs (ISE, Spartan6 RAM-Probleme) und dem
fehlenden Support für "kleine" Entwickler leben kann: Immer noch erste
Wahl, schlicht wegen der Verfügbarkeit, und wenn man "high end" braucht.
- Lattice: Der Support ist vorhanden, wird allerdings offenbar über
Indien abgewickelt. Für knifflige Fragen braucht man schon einen recht
direkten Kanal. Relativ viel machen kann man mit den günstigen MACHXO2.
Da hat Lattice eindeutig die Nase vorn. Auch die Toolchain ist ganz
solide, abgesehen von den mico Build&Debug-Umgebungen.
- Altera: Das Quartus-Gezuppel ist mindestens so anstrengend zu bedienen
wie ISE, ansonsten schenkt sich bei deren FPGAs nix. Spezielle
Schmankerl wie bei Lattice fehlen, allerdings haben sie möglicherweise
mit ihren MAX-Serien wieder einen Coup gelandet, man wird sehen...Noch
sind die Dinger zu teuer.
Mehr Gedanken würde ich mir über die Simulator-Umgebung machen. Die ist
schlussendlich entscheidend fürs Funktionieren des Designs.
Timing-Analyse des synthetisierten Designs kann man auch gut noch ohne
HW machen..
ich schrieb:> Repräsentativ ist ja egal.
Die Aussage bezog sich darauf, dass der Spartan 6 nicht repräsentativ
ist für den Umstand, dass FPGAs von Xilinx bei gleichem Preis besser
oder schneller sind.
Mit "repräsentativ" im Sinne von wertschätzungssteigernd hat das nichts
zu tun.
Lothar Miller schrieb:> Du machst dir zu viel Sorgen um die Zukunft. Das sind alles Sachen, die> dich erst in einem Jahr interessieren werden. Und mit der bis dahin> gewonnenen Erfahrung kannst du die Fragen, die du jetzt hast, selber> beantworten...
Richtig. Meine Sorge ist, dass ich in 1 oder 2 Jahren an dem Punkt bin,
an dem ich etwas anspruchsvolleres machen will (z.B. eben ein Oszi) und
mir denke "hätte ich mal mit Spartan dratt Cyclone angefangen", bzw.
anders rum... Vermutlich ist es egal. Mir gefällt das Cycloneboard
besser, bei Spartan habe ich aber die Möglichkeit DDR3 an einen FPGA in
TQFP (Spartan6) dranzuhängen.. Naja, ich denke es wird das Cycloneboard.
Lothar Miller schrieb:> Ich würde an deiner Stelle einfach mal mit irgendwas anfangen, statt zig> Eval-Boards zu kaufen...
Zugegeben hab ich keins der beiden Boards hier gekauft sondern geschenkt
bekommen. Ich würde mir auch nur ein Latticrbord holen, wenn hier jemand
meint, dass es (mit Aussicht auf ein Oszi) VORREILE bringt. Und ich
dachte eben, dass es die gibt, da ich die häufig mal gesehen habe.
Fitzebutze schrieb:> Von einem echten Produkt als Tool für andere> würde ich absehen. Zum Lernen aber: Einfach weitermachen!
Genau dazu ist es da. Ich habe hier einen LA (wenn auch nur in
Verbindung mit PC) und ein (Analog)Speicheroszi. Ich find die Technik
dahinter interessant und ich würde es gerne mal Probieren. Mit Display,
Knöpfen, ... zuerst auch ggf mit nur 1MPSP, wofür ich nichtmal ein FPGA
bräuchte. Einfach um zu lernen. Wenn das Gerüst steht, würde ich
"einfach" nur die Samplegeschwindigkeit und den Speicher hochdrehen und
dabei das dafür notwendige lernen, sprich hauptsächlich Designregeln
etc.
Fitzebutze schrieb:> Mehr Gedanken würde ich mir über die Simulator-Umgebung machen. Die ist> schlussendlich entscheidend fürs Funktionieren des Designs.> Timing-Analyse des synthetisierten Designs kann man auch gut noch ohne> HW machen..
Ich dachte, das wäre bei der Umgebung (ISE bzw Quartus) dabei!? Wenn
nicht, was ist denn zu empfehlen?
M. schrieb:> Mit "repräsentativ" im Sinne von wertschätzungssteigernd hat das nichts> zu tun.
Nene. Ich meine ja nur, das es, wenn ich nur Cyclone6 nutze, egal ist,
ob die anderen Xilinx Familien überteuert sind oder nicht. Daher ist es
egal, ob sie für Xilinx allgemein repräsentativ sind oder nicht.
Vielen Dank schonmal für die ganze Resonanz :)
Und Sorry für die Rechtschreibfehler. Die Autokorrektur ist zum k***en.
Ist jetzt aber aus.
ich schrieb:> Richtig. Meine Sorge ist, dass ich in 1 oder 2 Jahren an dem Punkt bin,> an dem ich etwas anspruchsvolleres machen will (z.B. eben ein Oszi) und> mir denke "hätte ich mal mit Spartan dratt Cyclone angefangen"
Mach dir erstmal lieber Gedanken in welcher "Sprache" du dein Design
beschreiben willst. Mit den Schemaeditoren wird es schnell
unübersichtlich und die Synthesewerkzeuge werfen dir viel mehr
Fehlermeldungen um die Ohren. Du wirst dich wundern was die alles an
einer einfachen Verbindung mäkeln können. Das wird schnell frustierend.
Also nimm gleich eine Hardwabeschreibungssprache, die ist
Herstellerunabhängig und du kannst das Wissen übertragen.
> Genau dazu ist es da. Ich habe hier einen LA (wenn auch nur in> Verbindung mit PC) und ein (Analog)Speicheroszi. Ich find die Technik> dahinter interessant und ich würde es gerne mal Probieren.> Mit Display
Da musst du schauen welches Board dein Display unterstützt
> Knöpfen
Buttons haben fast alle Eval Boards, Drehencoder eher keines.
> 1MPSP
Da langweilt sich jedes FPGA zu Tode;)
> Wenn das Gerüst steht, würde ich:> "einfach" nur die Samplegeschwindigkeit Hochdrehen
Das geht nur bis zu gewissen Geschwindigkeiten, irgendwann muss du auf
LVDS umsteigen und dafür sind nicht alle Boards geeignet, auch wenn der
FPGA darauf es kann.
> und den Speicher hochdrehen
Du hast FPGA internen Speicher, den kanst du "hochdrehen" bis zum
stärksten FPGA das mit der kostenlosen Version noch funktioniert.
Du hast externes SRAM (langsamer, niedrige Speicherdichte)
Wenn du noch mehr willst dann: externes DDRx Ram.
Bei DDR Ram sollte das FPGA Hardware dafür haben oder ein kostenloser
IP-Core zu Ansteuerung dabei sein.
..
Wenn du das eine Jahr Vollzeit dafür Zeit hast könnte das schon was
werden un dein Board zu klein werden. No Risk no Fun. Aber der Weg ist
das Ziel und erworbenes Wissen kann dir keiner mehr nehmen.
M. schrieb:> - Cyclone 5 ist neu, Spartan 6 veraltet. Ich würde den S6 eher mit C4> vergleichen. Spartan 6 ist ein aussergewöhnlich preiswerter Chip, nicht> unbedingt repräsentativ,
Naja, die Preis-Gewohnheiten in diesen Gefilden sind schon einigermaßen
anders, als man es als bastelnder Interessent gebrauchen kann:
Spartan 6: fängt bei 11€ an und landet dann ganz schnell jenseits von
20€. Der größte Spartan 6, den man noch selber aufsetzen kann (xx9)
liegt bei 16..17€
Artix: fängt bei 26€ an, Mittelfeld um 35..40€
Kintex: fängt bei 130€ an.
Cyclone 3: fängt bei 12€ an.
Cyclone 5: fängt bei 35€ an.
OK, wenn man Eval-Boards geschenkt bekommen hat, ist das alles was
anderes. Aber wenn da nicht dedizierte Firmeninteressen dahinterstehen,
dann sind solche Dinger 'mal eben so' für den durchschnittlichen Bastler
einfach zu teuer. Abgesehen von der nicht mehr gegebenen Verarbeitung
ohne Mehrlagenleiterplatte und kommerziellem Bestücker.
W.S.
>> Fitzebutze schrieb:>> Von einem echten Produkt als Tool für andere>> würde ich absehen. Zum Lernen aber: Einfach weitermachen!>> Genau dazu ist es da. Ich habe hier einen LA (wenn auch nur in> Verbindung mit PC) und ein (Analog)Speicheroszi. Ich find die Technik> dahinter interessant und ich würde es gerne mal Probieren. Mit Display,> Knöpfen, ... zuerst auch ggf mit nur 1MPSP, wofür ich nichtmal ein FPGA> bräuchte. Einfach um zu lernen. Wenn das Gerüst steht, würde ich> "einfach" nur die Samplegeschwindigkeit und den Speicher hochdrehen und> dabei das dafür notwendige lernen, sprich hauptsächlich Designregeln> etc.>
Tip: Es gibt da die Rigol-Oszis, die von einigen Leuten auch gehackt
werden. Ist ein Blackfin und ein FPGA drin, zumindest in den älteren
Revisionen.
> Fitzebutze schrieb:>> Mehr Gedanken würde ich mir über die Simulator-Umgebung machen. Die ist>> schlussendlich entscheidend fürs Funktionieren des Designs.>> Timing-Analyse des synthetisierten Designs kann man auch gut noch ohne>> HW machen..>> Ich dachte, das wäre bei der Umgebung (ISE bzw Quartus) dabei!? Wenn> nicht, was ist denn zu empfehlen?>
Da ist schon immer was dabei, was sich über die Jahre immer mal geändert
hat, Xilinx hat irgendwann Modelsim durch sein eher bedingt brauchbares
Eigenfabrikat Isim ersetzt, was jetzt gerade bei Vivado wieder aktuell
ist, habe ich mir gar nicht erst angesehen. Modelsim ist ansich nicht
schlecht, aber in der freien Version ziemlich kastriert. Es gibt da auch
andere, komplett freie Ansätze, die ich durchaus empfehlen könnte, aber
es ist vielleicht zum Anfangen etwas knifflig. Guck hier sonst mal nach
den Themen zu "myHDL" und "ghdl". Mit einer Erweiterung ghdlex geht auch
Cosimulation mit Software, allerdings braucht man dafür Linux.
Würde aber zum Anfangen eher mal das nehmen, was mitgeliefert ist. Wenn
die Designs komplexer werden, kannst du immer noch umsteigen.
M. schrieb:> Xilinx in rund 90% der Firmen verwendet - Tendenz sinkend> Altera in rund 60% der Firmen verwendet - Tendenz steigend> Lattice in rund 15% der Firmen verwendet - Tendenz unbekannt> Actel in weniger, als 10% der Firmen verwendet.
Sehr interessante Zahlen. Sind die irgendwie belegbar? Gelten die für D,
Europa oder weltweit?
Duke
Lothar Miller schrieb:> M. schrieb:>> Actel in weniger, als 10% der Firmen verwendet.> Kann es sein, dass du damit Microsemi meinst?
Er weiss nicht dass Actel nicht mehr existiert, d.h. man kann davon
ausgehen dass seine Zahlen aus den Fingern gesaugt sind.
Ausserdem beziehen sich die Zahlen auf Stückzahlen oder Umsatz?
Duke Scarring schrieb:> M. schrieb:>> Xilinx in rund 90% der Firmen verwendet - Tendenz sinkend>> Altera in rund 60% der Firmen verwendet - Tendenz steigend>> Lattice in rund 15% der Firmen verwendet - Tendenz unbekannt>> Actel in weniger, als 10% der Firmen verwendet.>> Sehr interessante Zahlen. Sind die irgendwie belegbar? Gelten die für D,> Europa oder weltweit?>> Duke
Die Zahlen mögen zwar selbst geschätzt sein, aber so ähnlich schätze ich
die Lage auch ein.
Hier mal ein Link.
http://sourcetech411.com/2013/04/top-fpga-companies-for-2013/
26.05.2015, finanztreff.de
2010 2011 2012 2013 2014
Altera Umsatz [M$] 1.954,40 2.064,50 1.783,00 1.732,60 1.932,10
Xilimx Umsatz [M$] 2.369,40 2.240,70 2.168,70 2.382,50 2.377,30
Die beiden sind nahe beisammen, Xilinx mit etwas mehr Umsatz, Altera mit
einem positiven Momentum.
Duke Scarring schrieb:> Sehr interessante Zahlen. Sind die irgendwie belegbar? Gelten die für D,> Europa oder weltweit?
Die derzeitige zahlenmässige Verteilung bei unseren Kunden, soweit mir
bekannt. Die Kunden sind zu 80% in Deutschland, der Rest meistens A,CH.
Wohlgemerkt bezieht sich das darauf, dass überhaupt die Familie in der
Firma eingesetzt wird, nicht, wieviel die Hersteller dadurch verkaufen.
Man kann davon ausgehen, dass einer, der auch Lattice einsetzt, einen
speziellen Grund hat und davon mehr einsetzt.
Die Verteilung der Umsätze zeigt, dass Altera obwohl sie in weniger
Firmen vertreten sind, fast schon mehr verkaufen. Sie haben also noch
Potenzial. Das grösste Potenzial haben die kleinen, aber nur wenige
Firmen leisten sich den Luxus mit mehr, als 2 Herstellern zu arbeiten.
Eher schon gehen die auf einen einzigen, was dann wieder andere Probleme
macht.
Am Weitesten verbreitet sind die Familien bei den Zulieferen: Die bauen
noch am ehesten mit allem, was der Martk hergibt. Der Aufträge wegen.
Alles klar. Ich werde dann mit dem Cycloneboard anfangen. Es kann mit
USB programmiert werden (das Spartan3 Board nur mit Parallelport) und
das Board hat mehr Peripherie. Bis ich die 400Mbps DDR2 ausgereizt habe,
dauert es wohl noch etwas. Die BGA 80 oder 68 kann man doch mit 4 Lagen
meistern oder?
Bleibt nur noch die Überlegung, ob Verilog oder VHDL ;) VHDL steht viel
in Stellenbeschreibungen, was ggf. iwann interessant sein kann. Verilog
hingegen sieht übersichtlicher aus und ähnelt eher C, was ich ganz gut
beherrsche. Ist die Frage, ob das nützlich oder eher hinderlich ist....
Aber vielen Dank bisher für alle Antworten.
ich schrieb:> Verilog hingegen sieht übersichtlicher aus und ähnelt eher C, was ich> ganz gut beherrsche.
Dann auf jeden Fall: VHDL.
Denn so sehr Verilog auch C "ähnelt", so unterschiedlich ist das
Ergebnis. Ich sehe dich schon eine for-Schleife zum Auffüllen eines
Vektors hinschreiben...
ich schrieb:>Ist die Frage, ob das nützlich oder eher hinderlich ist....
So eine ODER Verknüpfung kann man als Fpga entwickler nur mit "Ja"
beantworten (x | !x -> true) ;-)
Im Ernst, die Frage ist falsch gestellt. Es ist wie beim normalen
Schaltplanentwurf: wenn man sich im klaren ist, welche
Widerstände/Transistoren/OPV/ etc man wie verbindet ist es egal ob man
den schalplan per Hand mit DIN-schaltzeichen skiziiert oder einen
schaltplaneditor mit japanischen symbolen benutzt.
Also man hat die digitalschaltung/funktion im Kopf oder als
blockschaltbild/datapath/controlpath auf papier und schreibt sie dann so
in VHDL oder Verilog das die synthese genau das macht was man auf dem
Paier/im_Kopf hat.
Verilog ist f. FPGA-Einsteiger IMHO besser geeignet da es nicht die
kruden Varianten der Verhaltensbeschreibungen wie VHDL zuläßt. Verilog
ist da mehr eine "Verdrahtungssprache" während VHDL eine
"Algorithmussprache" ist.
> Verilog> hingegen sieht übersichtlicher aus und ähnelt eher C, was ich ganz gut> beherrsche.
Wenn Du versuchst FPGA-Entwurf allein mit deinen Erfahrungen als
C-PC-programmierer zu verstehen hast du eine Pistole an dein Knie
gesetzt und drückst ununterbrochen ab ....
MfG,
Hi,
oben wurde ja schon MyHDL erwähnt, und es gab mal nen anderen Thread
dazu, deswegen nur kurz: Wenn es keinen Zwang zur Quellsprache gibt und
die Frage nach Verilog oder VHDL nur bedingt durch Tools oder Team ist,
dürfte auch MyHDL was zum Anfangen sein. Aber: Auch ein C-Hacker sollte
was von Assembler verstehen. Ich bin mit folgendem Ansatz sehr schnell
zum Ziel gekommen: in MyHDL entwickeln/simulieren, nach VHDL ausgeben,
nochmal verifizieren/synthetisieren.
Bisher sind auch bei komplexen Designs keine Unterschiede (d.h. Bugs in
MyHDL) aufgetreten.
Aber man muss - wie in VHDL - genau wissen, was man da hinschreibt. Von
den Datentypen ist MyHDL her relaxter und spart einem massiv Zeit beim
Testbenching und komplexeren Simulationen. Code-Wiederverwertbarkeit ist
auch optimal (da Python). Wo Dir schlussendlich MyHDL nicht unbedingt
hilft, ist die architektonische Gestaltung, aber das muss man nicht am
Anfang gleich richtig machen.
Lothar Miller schrieb:> Ich sehe dich schon eine for-Schleife zum Auffüllen eines> Vektors hinschreiben...
Warum geht das nicht? Das kann man allgemein doch nicht sagen...
Ich mag vom ansehen her VHDL lieber, das ist schon von der Sprache so
dass man es versteht auch wenn man kein VHDL kann.
Ein pro für Verilog ist dass die meisten examples der eval-boards von
altera und xilinx in Verilog geschrieben sind.
Ich denke, ich werde bei den anfänglich eher kleinen Projekten beide
Sprachen probieren. Eine LED blinken lassen, ...
Ich kann mir digitale Schaltungen aus Gattern eigentlich ganz gut
vorstellen. Nur frag ich mich, wie ich damit einfach das hinbekomme, was
ein 10Zeiler beim µC ist. Beispielsweise einen ADC-Wert via SPI oder
Parallel empfangen, den Spannungswert berechnen und dann als Zahl über
ein VGA-Signal ausgeben. Irgendwas, was eben wirklich sequenziell
abgearbeitet wird. Aber das wird bestimmt noch kommen.
Eine Frage am Rande hätte ich da noch. Vorausgesetzt ich arbeite nur mit
Cyclones, reicht da die kostenlose Quartus II Version aus? Ich weiß,
dass man für Arria10 FPGAs die Vollversion braucht, doch ich werde mir
bestimmt keinen FPGA holen, der ab 3-4k€ anfängt ;)
http://www.lothar-miller.de/s9y/ Da hast du viele praxixnahe Beispiele
(zB die genannte SPI-Schnittstelle oder RS232 implementieren, Signale
einlesen usw)
> Ich kann mir digitale Schaltungen aus Gattern eigentlich ganz gut> vorstellen. Nur frag ich mich, wie ich damit einfach das hinbekomme, was> ein 10Zeiler beim µC ist.
Hast du schon mal aus nem TTL Counter und ein paar Gattern einen State
machine gebaut? Also eine Aufzugsteuerung oder so?
Sequenzielle Abläufe bekommt man hin indem man Flipflops benutzt bzw.
counter und Schieberegister.
Maathias schrieb:> Lothar Miller schrieb:>> Ich sehe dich schon eine for-Schleife zum Auffüllen eines>> Vektors hinschreiben...> Warum geht das nicht?
Logisch geht das. Nur wird dieser Vektor eben nich nacheinander Bit
für Bit aufgefüllt, sondern alle Bits gleichzeitig. Die for-Schleife
macht in Verilog/VHDL also komplett was anderes als in C.
Lothar Miller schrieb:> Logisch geht das. Nur wird dieser Vektor eben nich nacheinander Bit> für Bit aufgefüllt, sondern alle Bits gleichzeitig. Die for-Schleife> macht in Verilog/VHDL also komplett was anderes als in C.
und dann als besonderes Schmankerl noch Variablen anstatt Signale
verwenden (weil man das vom programmieren mit den lokalen Variablen so
gelernt hat) und das Chaos ist "vorprogrammiert"...
Du widersprichst Dir selbts.
ich schrieb:> Ich kann mir digitale Schaltungen aus Gattern eigentlich ganz gut> vorstellen.
1)
> Nur frag ich mich, wie ich damit einfach das hinbekomme,
2)
Offenbar kannst Du Dir das nicht vorstellen.
> Beispielsweise einen ADC-Wert via SPI oder> Parallel empfangen, den Spannungswert berechnen und dann als Zahl über> ein VGA-Signal ausgeben.
Du brauchst:
Eine Schaltung, die einen ADC ansteuert
Eine Schaltung, die berechnet
Eine Schaltung, die VGA erzeugen kann
Eine Schaltung, die den Wert in Pixel zerlegt und dem VGA übergibt
Eine Schaltung, die die drei steuert
Du musst also das was der uc kann, in Teilen nachbauen.
Ich komme in 3 Monaten wieder vorbei und lasse mir das Ergebnis zeigen.