Forum: FPGA, VHDL & Co. Programmierung von Lattice iCE mit nur einem Chip?


von TO (Gast)


Lesenswert?

Hallo. Ich würde gerne in die FPGA-Materie einsteigen und habe mich nach 
ein bisschen Recherche für Lattice, genauer die Ice-Serie entschieden, 
da sie günstig kommen.

Ich habe auch erfahren, dass zum Programmieren nur ein FTDI FT2232D 
gebraucht wird. Heißt das, ich kann den Chip für 5€ bei Mouser kaufen, 
auf eine Platine löten (inkl. Hühnerfutter) und das wars? Ich habe auch 
gelesen, dass der Chip via Software von FTDI konfiguriert werden kann 
und dann als Programmer in Diamond erkannt wird. Ist es wirklich so 
einfach? Vorallem würde es mit einer selbstgeätzten Platine nur einen 
Bruchteil von fertigen Programmern kosten. Ich habe bisher nur einen 
Chinaclone für 25€+Versand als günstigste Fertigvariante gefunden.

danke für jeden Ratschlag/Hinweis


PS: Ich weiß nicht, wie weit die Lattice-FPGAs gehen (z.B. im Vergleich 
zu Altera-FPGAs). Ich weiß nicht, ob die "besten" Latticeteile eher auf 
Cyclone-, Arria- oder Stratixniveau sind. Mein Ziel ist es irgendwann 
mal selber ein Low-End-Oszilloskop zu bauen. Also mit 10MHz Bandbreite 
und kaum Features usw. Wenn das läuft, vielleicht auch ein etwas 
besseres Oszi (aber auch das eher Low-End ;) ). Komme ich da bei Lattice 
schnell an irgendwelche Grenzen? Und wäre, wenn es so weit kommen 
sollte, ein Umstieg auf Altera sehr aufwendig? Ich habe auch überlegt, 
mit Altera anzufangen, doch deren günstigster FPGA kostet 9,50 in nem 
großem QFP144 Gehäuse, wohingegen Lattice iCE-FPGAs bei 1,30€ anfangen 
und mit einem QFN32 Gehäuse auch in klein verfügbar sind.

von P. K. (pek)


Lesenswert?

Um "in die FPGA-Materie einzusteigen" würde ich mal das Board-Design 
aussen vor lassen und ein fertiges Development-Kit kaufen. Kostet zwar 
etwas mehr, aber Du hast dann nicht ganz so viele Baustellen offen (hast 
Du dann das FPGA mal im Griff, kannst Du immer noch mit ätzen beginnen).

Wenn Du das Board erhältst, bleibst Du ein Wochenende zuhause und nimmst 
es in Betrieb. Der ausgelassene Ausgang (x Bier, y Vodka) spielt Dir die 
höheren Kosten fürs fertige Board längstens wieder rein.

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


Lesenswert?

TO schrieb:
> Ich habe auch erfahren, dass zum Programmieren nur ein FTDI FT2232D
> gebraucht wird.
Das ist nich allzu geheim, dazu muss man nur die Schaltpläne einiger 
Eval-Boards ansehen:
http://www.latticesemi.com/~/media/Documents/UserManuals/EI/EB85.pdf?document_id=50373
> Heißt das, ich kann den Chip für 5€ bei Mouser kaufen,
> auf eine Platine löten (inkl. Hühnerfutter) und das wars?
Nein. Du brauchst noch das EEPROM, den Inhalt des EEPROMs und dazu den 
Quarzoszillator...

> Ich habe bisher nur einen Chinaclone für 25€+Versand als günstigste
> Fertigvariante gefunden.
Wenn wir uns mal tief und ehrlich in die Augen schauen: jeder Selbstbau 
wird garantiert teurer. Und du weißt nicht mal, ob das tatsächlich 
läuft.
Oder andersrum: fang bei einem neuen Baustein nicht schon am Anfang mit 
dem Sparen an. Hinterher kaufst du dir dann sowieso das Evalboard und 
kloppst deinen Selbstbau in die Tonne, weil der nicht zuverlässig läuft.
Und zudem kannst du, wenn du dann ein richtiges FPGA willst, den 
China-Clone nach einem Jahr immer noch für 15€ weiterverkaufen...

> PS: Ich weiß nicht, wie weit die Lattice-FPGAs gehen (z.B. im Vergleich
> zu Altera-FPGAs). Ich weiß nicht, ob die "besten" Latticeteile eher auf
> Cyclone-, Arria- oder Stratixniveau sind.
Und das ist im ersten Jahr auch vollkommen uninteressant. Du wirst 
ausreichend viele Stolperstellen schon bei diesen "kleinen" FPGAs 
finden. Und natürlich solltest du auch nicht versuchen, die 
erklärtermaßen "weltweit kleinsten" FPGAs mit den Kriterien 
"Schnelligkeit" und "Leistung" zu beurteilen.

> Komme ich da bei Lattice schnell an irgendwelche Grenzen?
Du kommst nicht "bei Lattice" an die Grenzen(die haben auch noch ECP3 
und ECP5 FPGAs, die weit mehr können, als du für die Oszis brauchen 
wirst), aber du kommst natürlich beim "weltweit kleinsten" FPGA eher 
an die Grenzen als bei einem "richtigen" FPGA. Und 384 Logikzellen sind 
jetzt auch nicht gerade "Sate of the Art"...

> Ich habe auch überlegt, mit Altera anzufangen, doch deren günstigster
> FPGA kostet 9,50 in nem großem QFP144 Gehäuse, wohingegen Lattice
> iCE-FPGAs bei 1,30€ anfangen und mit einem QFN32 Gehäuse auch in klein
> verfügbar sind.
Du kochst die falsche Suppe mit den falschen Zutaten! Wie um alles in 
der Welt kannst du einfach nur das billigste und kleinste FPGA vom 
Hersteller A mit dem billigsten und kleinsten FPGA des Herstellers L 
vergleichen?
Das ist, wie wenn ich das billigste Auto von Porsche mit dem billigsten 
Auto von Dacia vergleiche und herausfinde, dass das von D wesentlich 
billiger und kleiner ist...  :-o
Wäre es da nicht sinnvoll, irgendwelche Leistungsparameter zu 
vergleichen?
Ausserdem sollten dich derzeit Sachen wie "was kostet ein einziges FPGA" 
überhaupt nicht interessieren. In den Gesamtkosten deines Oszilloskops 
(das übrigens natürlich sicher teurer ist als eines, das du mit besseren 
Daten bei Ebay bekommst) geht dieses FPGA unter.

: Bearbeitet durch Moderator
von Lattice User (Gast)


Lesenswert?

"iCE-FPGAs bei 1,30€"

Zusätzlich brauchst du 2 Spanunngen, 1.2V, +typ 3.3V, einen exterenen 
Flash (der interne lässt sich nur EINMAL beschreiben).
Das Ding ist für stromsparende Gluelogik in Massenprodukten gedacht.


Leg dir lieber für den Anfang ein MachXO2 Breakout Board zu, das ist zum 
Einstieg viel besser geeignet.
Mit nur winig Aufwand lässt es sich auch als allgemeinen FTDI 
basierenden JTAG Programmer verwenden: Eine Pfostenleiste Nachbestücken 
und den Onboard XO2 mit einem Bitimage versorgen, das dessen JTAG Pins 
auf HiZ schaltet.

Übrigens gibt es auch den kleinsten XO2 im QFN32 Gehäuse. (Bei Farnell 
2.82€) Dieser braucht nur eine Versorgungsspannung, und hat einen 
internen Flash der sich sehr oft beschreiben lässt.

Ist zwar auf den ersten Blick kleiner (256 LUT4) als der iCE40 (384 LE). 
Aber das Slice (enthält 2 LUITs) des XO2 ist sehr viel flexibler, z.B.
lassen sich die im Slice enthalten FFs unabhängig von den LUTs 
verwenden, beim iCE geht das nicht. Es ist auch Logik enthalten (Muxer) 
um die beiden LUTs gemeinsam als LUT5 zu verwenden, beim iCE40 braucht 
man für eine 5 Input Logik Funktion 3 LUTs.
Der XO2 unterstützt zudem distributet RAM. (16x4 belegen 3 Slices), der 
iCE40 hat nichts dergleichen.

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


Lesenswert?


von TO (Gast)


Lesenswert?

Lothar Miller schrieb:
> Und das ist im ersten Jahr auch vollkommen uninteressant. Du wirst
> ausreichend viele Stolperstellen schon bei diesen "kleinen" FPGAs
> finden.

Mit Sicherheit. Ich will bloß nicht mit einem Hersteller anfangen, bei 
dem ich bald nichts mehr finde und dann sowieso wechseln muss. 
Wohingegen

Lothar Miller schrieb:
> Du kommst nicht "bei Lattice" an die Grenzen(die haben auch noch ECP3
> und ECP5 FPGAs, die weit mehr können, als du für die Oszis brauchen
> wirst)

So klingt, als könnte man mit einer anderen Familie des selben 
Herstellers (und somit vermutlich auch der selben IDE) schon etwas 
größere Dinge realisieren.

Lothar Miller schrieb:
> Das ist, wie wenn ich das billigste Auto von Porsche mit dem billigsten
> Auto von Dacia vergleiche und herausfinde, dass das von D wesentlich
> billiger und kleiner ist...  :-o

Das ist kein schlechter Vergleich, denn: Wenn ich Auto fahren lernen 
will, ist es besser, wenn ich einen Dacia nehme und davon vielleicht 3-4 
zu Schrott fahre, als wenn ich die ersten Versuche mit nem Porsche 
mache, wo es ärgerlicher ist, wenn man ihn schrottet, da er das 8fache 
kostet. Wenn ich dann fahren kann und ein Rennen fahren will, könnte ich 
bei Dacia bleiben, sofern diese ein passendes Auto haben. Wenn nicht, 
kann ich mir immernoch nen Porsche holen, fahren kann ich ja schon 
einigermaßen.

Lothar Miller schrieb:
> Ausserdem sollten dich derzeit Sachen wie "was kostet ein einziges FPGA"
> überhaupt nicht interessiere

Naja. Für ein kleineres Projekt find ich nen günstigen schon besser, 
solange er reicht natürlich. Es gibt ja bei uCs auch Projekte von LEDs 
blinken lassen oder die Temperatur messen und auf eine 7Segmentanzeige 
bis hin zu Linuxbasierten MiniPCs a la Raspberry PI o.ä.
Um es in diesen Bereich zu übersetzen: Ich möchte nicht gezwungen sein, 
für die banalsten Aufgaben ein Cortex-A8 für 10€ kaufen zu müssen, da 
nehme ich lieber nen PIC18, den ich für <1,50€ bekomme und 
Leistungsmäßig hoch bis zum PIC32 kann, ohne IDE und Programmer neu 
holen zu müssen. Die (übersetzte) Frage wäre jetzt: stellt Microchip 
PICs her, mit denen ich das Vorhaben "Oszilloskop" realisieren kann, 
oder brauche ich was besseres. Dann würde ich nämlich warscheinlich 
gleich mit den Cortexen anfangen, wenn ich da dann was passendes finde.

Lothar Miller schrieb:
> In den Gesamtkosten deines Oszilloskops (das übrigens natürlich sicher
> teurer ist als eines, das du mit besseren Daten bei Ebay bekommst) geht
> dieses FPGA unter.

Das ist mir beides klar, aber es geht ja ums verstehen und machen (und 
um den Spaß natürlich). Das es egal ist, ob das FPGA (ich finde "der" 
klingt schöner ;) ) nun 5€ oder 15€ kostet (oder noch mehr), ist mir 
auch bewusst. Die blanke Platine wird schon mehr kosten und den 
billigsten ADC sollte man ja auch nicht nehmen, geschweige denn vom 
Display und Gehäuse.

Lattice User schrieb:
> Übrigens gibt es auch den kleinsten XO2 im QFN32 Gehäuse. (Bei Farnell
> 2.82€) Dieser braucht nur eine Versorgungsspannung, und hat einen
> internen Flash der sich sehr oft beschreiben lässt.

Das ist ja auch interessant. Haben das alle XO2?


Also zusammengefasst sollte es schon ein kleines Devboard (oder 
mindestens ein Breakoutboard) sein und am besten die XO2 Familie statt 
der iCE40?

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


Lesenswert?

TO schrieb:
> Also zusammengefasst sollte es schon ein kleines Devboard (oder
> mindestens ein Breakoutboard) sein und am besten die XO2 Familie
Ja, mach das.

> Für ein kleineres Projekt find ich nen günstigen schon besser, solange
> er reicht natürlich.
Und blöd wäre, wenn du dann kurz vor dem Ziel drauf kommst, dass es 
nicht reicht...

Also: vorneweg erstmal eine Abschätzung machen, welches FPGA du 
überhaupt brauchst. Und dann zur Entwicklung das größte (bezahlbare) 
FPGA einsetzen, das es im gewünschten Gehäuse gibt. Später kann man das 
dann immer noch optimieren und ein kleineres FPGA einsetzen.

Wenn du natürlich schon nicht abschätzen kannst, ob (d)ein FPGA reicht, 
dann nimm das FPGA, das nicht an den Grenzen der Leistungsfähigkeit ist 
(weder deiner finanziellen, noch der technischen Untergrenze) und fang 
mit der Entwicklung und dem Lernen an. Du wirst dann im Laufe der Zeit 
schon herausfinden, auf was zu achten ist und was Ressourcen kostet.

Allerdings empfehle ich dir sehr, nicht mit dem Oszilloskop anzufangen, 
sondern erst mal 10-20 kleine unnötige Spielprojekte in den Sand zu 
setzen. Dann kennst du schon 70% der Fehler. Keine Angst: die 
verbleibenden 30% werden dir noch genug Arbeit machen...

> das FPGA (ich finde "der" klingt schöner ;)
Schönheit hin oder her: der Array ist falsch...

von Lattice User (Gast)


Lesenswert?

TO schrieb:
>
> Lothar Miller schrieb:
>> Du kommst nicht "bei Lattice" an die Grenzen(die haben auch noch ECP3
>> und ECP5 FPGAs, die weit mehr können, als du für die Oszis brauchen
>> wirst)
>
> So klingt, als könnte man mit einer anderen Familie des selben
> Herstellers (und somit vermutlich auch der selben IDE) schon etwas
> größere Dinge realisieren.

iCE40 wird nicht von Diamond unterstützt, sondern kommt mit einer 
eigenen Software. Die iCE40 sind erst vor kurzem durch einen 
Firmenaufkauf zu Lattice gekommen. Deswegen auch die komplett andere 
Architektur.

>
> Lattice User schrieb:
>> Übrigens gibt es auch den kleinsten XO2 im QFN32 Gehäuse. (Bei Farnell
>> 2.82€) Dieser braucht nur eine Versorgungsspannung, und hat einen
>> internen Flash der sich sehr oft beschreiben lässt.
>
> Das ist ja auch interessant. Haben das alle XO2?
>

Ja alle XO2 haben Flash und gibts es als HC Version (eine 
Spannungsversorgung). Bei den grösseren steht auch ein Flashbereich für 
die eigene Anwendung zur Verfügung.

>
> Also zusammengefasst sollte es schon ein kleines Devboard (oder
> mindestens ein Breakoutboard) sein und am besten die XO2 Familie statt
> der iCE40?

Ja.
Aber ob man die XO2 Devboards wie das Breakout Board als allgemeinen 
JTAG Programmer missbrauchen kann weiss ich nicht.

Bei der Entscheidung für einen Hersteller muss man sich auch die 
Lizenspolitik für die "freie" Version der Software anschauen.

Bei Lattice sieht es momentan so aus:
Kein GT Serdes: frei (alles ausser ECP2M und ECP3).
Mit GT Serdes: kostet, ausser für das Versa Dev Board, da ist der 
ECP3-35 freigeschaltet.

Wie es bei ECP5 aussehen wird kann ich nicht sagen, diese gibt es mit 
und ohne GT Serdes. Sind ja auch noch nicht verfügbar.

von Sigi (Gast)


Lesenswert?

Was man sich bei Lattice bzw. Lattice-Diamond auch überlegen
sollte: Wird mein FPGA von der FREIEN Software (heisst WebEdition?)
unterstützt. Die freie Diamond-Version unterstützt alle XOs,
alle XO2s, alle XO3s, alle ECPs und alle ECP2s. Bei ECP3 wird
nur ein DevBoard unterstützt, ECP3 iA nicht.
Bei Altera werden in der freien Version so gut wie alle
Cyclones unterstützt, teils aber nur über ältere Versionen.

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.