Forum: FPGA, VHDL & Co. Grundschaltung für einen Cyclon 3 FPGA


von Heiner D. (Firma: FH Köln) (aduchenk)


Lesenswert?

Hallo,

Wir wollen in unserem Labor(Hochschule) FPGA's einsätzen (bislang immer 
nur "normale" Mikrocontroller). Meine Aufgabe soll es nun sein eine 
Platine zu entwickeln wo ein FPGA in seiner Minimalbeschaltung drauf 
läuft und die kompatibel zu unserer bisherigen Hardware ist. Ich habe 
mir da einen Cyclon III(EP3C10E144C8N) von Altera angeschaut. Meine 
Frage ist nun, ob jemand von euch schon Erfahrung mit FPGAs von Altera 
hat? eine Grundschaltung mit der notwendigen Peripherie wäre absolut 
super. Da wir aber bei uns noch  keine Erfahrung mit FPGAs haben würde 
mir jede Antwort weiter helfen.

von Kest (Gast)


Lesenswert?

schau einfach die Enwicklungskits bei Altera an, da sind die Schaltpläne 
mitdabei, die kannst Du herunterladen und anschauen.

Wenn es minimal sein soll, kannst Du Dir z.B. DE0, DE1 Boards von 
Terasic anschauen, einfacher geht es fast nicht. Da kannst du den ganzen 
USB-Blaster Kram rausschmeisen und hast Dein Board.

Grüße,
Kest

von Selbständiger (Gast)


Lesenswert?

Noch intelligenter ist es, den "USB-Kram" drin zu lassen, dann must Du 
nicht ständig einen neuen Blaster kaufen, wenn die dummen Studies mal 
einen falsch draufgesteckt haben.

von Heiner D. (Firma: FH Köln) (aduchenk)


Lesenswert?

Danke schonmal für die Antworten die evo-boards von Terasic  sehen 
interessant aus. Und studentensicher was den USB Blaster angeht ist bei 
uns im Labor sicherlich gut :). Sobald ich wieder senkrecht stehe(mich 
hat ne derbe Erkältung erwischt):-P werde ich mir das mal genauer 
anschauen. Vieleicht bis dahin nocheinmal eine Frage eines "noch" Leien 
an die Profis. Was ist  an zusätzlicher externer Beschaltung für FPGAs 
typischerweise notwendig? Gibt es etwas beim Layout wo man besonders 
drauf achten sollte? Ein uC bekommt ja nur bissel Spannungsversorgung 
und vieleicht noch einen Quarz. Gibt es zu diesem Thema gute Litteratur?

von Sebastian B. (sfreak) Benutzerseite


Lesenswert?

Moin,

ich bin auch noch kein FPGA-Profi, hab mich aber schonmal ein bisschen 
mit der Materie auseinandergesetzt.

Externe Beschaltung:

FPGAs brauchen meist mehrere (beim Cyclone3 IIRC 3?) 
Versorgungsspannungen, mit verschieden grossen Abblockkondensatoren, 
moeglichst Versorguns- und Masseflaechen. Der Stromverbrauch haengt zum 
allesgroessten Teil von der einprogrammeirten Logik ab, Stromversorgung 
also besser etwas ueberdimensionieren (noch besser: einfach vom 
Eval-Board abgucken :-).

Ausserdem kann man noch pro I/O-Bank (das ist im Prinzip einfach eine 
Gruppe Pins) verschiedene Versorgungsspannungen anschliessen. z.B. 3.3V 
2,5V etc. Das bestimmt wiederum welche I/O-Standard man auf der 
jeweiligen Bank nutzen kann.

Wenn ihr vorhabt LVDS und co. zu benutzen lohnt es sich schon einige 
Leiterbahnen entsprechend zu Routen (Wellenwiderstand bzgl. Masse und 
Signalen, gleiche laenge). Das ist fuer den ersten Versuch aber sicher 
noch nicht so wichtig.

Gute Literatur kenn ich dazu eigentlich keine... es gibt "High Speed 
Digital Design: A Handbook of Black Magic", das fuehrt aber auch erstmal 
zu weit. Fuer bessere Einsteiger-Literaturtipps waere ich auch dankbar.

Mit den Datenblaettern, AppNotes und Evaluationboards kommt man schon 
recht weit wenn man sich alles ein paar Mal anschaut. Auch das 
Platinenlayout!

MfG,
Sebastian

von Heiner D. (Firma: FH Köln) (aduchenk)


Lesenswert?

Ich habe mich nun doch dazu entschlossen den USB-Blaster auszulagern und 
das ganze nicht auf dem Board zu implementieren. Einmal aus 
Platzgründen, und zum andern auch wegen dem Preis, da doch einige dieser 
Platinen gebaut werden sollen. Müssen die Studenten halt aufpassen was 
sie dort reinstecken:-P

Ich habe aber eine Frage zum Speicher. Soweit ich das verstanden habe 
wird ein externen Speicher benötige, um den FPGA nach dem Einschalten 
mit einem Programm zu laden. Ist dies normalerweise ein SDRAM Speicher? 
Dieser scheint eine beachtliche Zahl an I/Os vom FPGA zu nutzen. Was 
nutzt ihr dazu?

Wird ein PLL/Quarz überhaupt benötigt? der FPGA scheint diese ja bereits 
intern drin zu haben? Oder habe ich das falsch verstanden?

Ansonsten ist dieser Speicher ja das einzige was man an externen IC's 
benötige um den FPGA zu betreiben?

Schon mal vorab danke für eure Hilfe:)

von Sebastian B. (sfreak) Benutzerseite


Lesenswert?

Heiner Dirks schrieb:
> Ich habe aber eine Frage zum Speicher. Soweit ich das verstanden habe
> wird ein externen Speicher benötige, um den FPGA nach dem Einschalten
> mit einem Programm zu laden. Ist dies normalerweise ein SDRAM Speicher?
> Dieser scheint eine beachtliche Zahl an I/Os vom FPGA zu nutzen. Was
> nutzt ihr dazu?

Aeh, ein SDRAM ist nach dem Einschalten auch leer bzw. undefiniert 
gefuellt. Um den FPGA zu konfigurieren brauchts schon etwas 
dauerhafteres, z.B. ein kleines SPI-Flash.

Mal auf die schnelle aus Google: 
http://www.spansion.com/Support/AppNotes/Configuring_Altera_FPGAs_via_SPI_Flash_AN_02_e.pdf

> Wird ein PLL/Quarz überhaupt benötigt? der FPGA scheint diese ja bereits
> intern drin zu haben? Oder habe ich das falsch verstanden?

Du brauchst irgendeinen externen Referenztakt, der wird dann im FPGA 
intern verteilt und kann auch ueber PLLs (oder wie auch immer die bei 
Altera gerade heissen) vervielfacht/geteilt werden. Also einfach einen 
externen Quarzoszillator dran, am besten gesockelt, und die Sache ist 
geritzt.

> Ansonsten ist dieser Speicher ja das einzige was man an externen IC's
> benötige um den FPGA zu betreiben?

Speicher und Takt, ja.

Ein weiterer externer Speicher (SRAM, SDRAM) kann trotzdem Sinn machen 
wenn man speicheraufwendige Geschichten im FPGA umsetzen will (z.B> 
Prozessoren, Signalverarbeitung...). Intern fuer die Logik nutzbar haben 
FPGAs nur Speicher in der Groessenordnung von einigen kB.

Sebastian

von Heiner D. (Firma: FH Köln) (aduchenk)


Lesenswert?

Nochmal danke für die Antworten hat mich echt weiter gebracht besonders 
der Tip mit dem SPI-Flash. Da hät ich direkt eine weitere Frage. Wenn 
man einen SPI Flash für die Configuration und einen SRAM der auch über 
SPI angesprochen wird nutzen will. Geht das ? Ich habe ja nur eine SPI 
Schnittstelle an meinem FPGA. Kann ich den SRAM an beliebige I/Os 
setzen? Oder parallel an die SPI schnittstelle und sozusagen mehrere SPI 
Teilnehmer als SLAVE dran hängen? Hinzu kommt das in Zukunft ein CAN-Bus 
laufen soll. Den wollt ich vom Ursprung auch über SPI und dann über 
einen CAN-Controller aufzubauen. Ich frage mich halt nur, da ja 
eigendlich alle I/Os eines FPGA's recht schnell sind ob man soetwas auch 
anders über die normalen I/Os hin bekommt?

von Gast (Gast)


Lesenswert?

>Da hät ich direkt eine weitere Frage. Wenn
>man einen SPI Flash für die Configuration und einen SRAM der auch über
>SPI angesprochen wird nutzen will. Geht das ? Ich habe ja nur eine SPI
>Schnittstelle an meinem FPGA.
Nur eine SPI Schnittstelle? Hat dein EP3 nur 4 IO Pins ?
Mit 5 Pins hättest Du schon einen weiteren Chip Select für deinen CAN 
Controller ;-)
Aber zum Thema , such mal bei Altera nach dem EPCS Controller der u.a. 
als Avalon Komponente im Nios EDS enthalten ist.

>Kann ich den SRAM an beliebige I/Os
>setzen? Oder parallel an die SPI schnittstelle und sozusagen mehrere SPI
>Teilnehmer als SLAVE dran hängen?
Paralleles SRAM ja , SDRAM (ja)nein, und SPI ist ein Bus.
Ich würde mir das Leben einfach machen und ein Paralleles SRAM an den 
FPGA klatschen. Das werden dir auch deine Studies danken !

Ich befürchte dir ist noch nicht ganz klar was ein FPGA ist.Vergiss mal 
die uCs an dieser stelle. Was dein FPGA an einem IO Pin macht bestimmst 
im größten Teilen du, nur bei z.b. LVDS , SDRAM / DDR gibt es "feste" 
Pins die das nötige Elektrische Interface beinhalten. Bei einer SPI 
langweilt sich das FPGA, egal ob 1Mbit ,10Mbit oder 50Mbit schnell.

von Heiner D. (Firma: FH Köln) (aduchenk)


Lesenswert?

Hallo

Ich habe da noch eine Frage zur Konfiguration und Programmierung.
Es soll nun ein EP3C25Q240 FPGA mit einem  EPCS105 Flash Speicher zur 
Konfiguration zum Einsatz kommen. Programmiert soll das ganze über 
MasterBlaster Serial/USB. dabei habe ich die Wahl zwischen PS Mode und 
JTAG Mode. Ich tendiere zum JTAG Mode bin mir aber nicht sicher. Kann 
ich beides aufbauen und mir dann nach Bedarf aussuchen was ich nutze ( 
MSEL[0..2] mit Jumper auf Masse oder VCC)? Kann ich über den JTAG Mode 
auch den externen Flash Speicher beschreiben? Ist beides Sinnvoll? wo 
liegen die Vorteile des jeweils anderen?

von Purzel H. (hacky)


Lesenswert?

Man kann ueber den JTAG im Cyclone ein Interface zum flash giessen und 
die dann auch gebrauchen... weshalb nehmt ihr nicht zu Beginn ein 
Evalboard zu diesem Cyclone fuer wenig Geld und macht eine eigene 
Hardware wenn ihr verstanden habt worum's geht ? Es gibt uebrigens auch 
ein Alteraforum - beim Hersteller, wer haett's gedacht.

von aduchenk (Gast)


Lesenswert?

Wir benutzen ein evo-board und arbeiten parallel daran ein fpga zu 
implementieren. Das wir das Teil wann ma selber auf eine Platine 
bekommen müssen ist unumgänglich aufgrund der Anwendungen die wir haben. 
Das läuft also parallel und falls ich dumme Fragen stellen sollte bitte 
ich um Entschuldigung :-P
Danke für den Tip mit dem Altera Forum ich werde dies sicherlich auch 
nutzen. Nichts des do trotz fühle ich mich hier recht gut aufgehoben.
Und auch wenn es langsam geht und ich zur Zeit nur ab und an mal eine 
Stunde Zeit investieren kann um mich mit der Implementierung zu 
beschäftigen ist dies dennoch sehr aufschlussreich und interessant! 
Dümmer werde ich dadurch sicherlich nicht :)
Also die nächsten Fragen kommen bestimmt.

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.