Forum: FPGA, VHDL & Co. Einstieg in FPGA


von Daniel (Gast)


Lesenswert?

Hallo zusammen - habe so einige Beiträge studiert, um mir einen Einblick
in die Welt der programmierbaren Logikbausteine und deren Tücken zu
verschaffen. Ich bin "scheinfreier" Student und stehe am Anfang
meiner Diplomarbeit. Meine Aufgabe ist es, ein FPGA zu entwickeln,
welches a) die Kommunikation zwischen zwei verschiedenen µP realisiert
(QSPI "Simulation") und die Überwachung einer Raumzeiger PWM
(Totzeiten, etc..) übernimmt. Zudem noch eine Vielzahl von kleineren
Aufgaben. (Entprellungen, Lüftersteuerung..) Zudem soll das ganze auf
dem möglichst kleinsten Baustein von Xilinx implementiert werden. Da
die richtige Vorgehensweise anscheinend absolut notwendig ist, würde
ich euch bitten, mir ein paar Tips zu geben, welche Literatur ich zu
lesen habe und wie man das Problem am effektivsten angeht. Mir ist
klar, das es ein mühseliger Weg wird, bei dem sehr viel Eigenarbeit
erforderlich ist. Habe gute, fundierte Grundkentnisse in Digitaltechnik
aber noch nicht einen FPGA oder (C)PLD programmiert.
Auch wenn dieser Beitrag sehr allgemein gehalten ist, würde ich mich
sehr über Antworten und Tips freuen. Danke

von Namensvetter(Daniel) (Gast)


Lesenswert?

<"Meine Aufgabe ist es, ein FPGA zu entwickeln">
Das ist eine unmögliche Aufgabe. Aber so wie ich das aus dem restlichen
Kontext verstanden habe musst du keinen FPGA entwickeln sondern ihn
beschreiben...das ist ein sehr großer Unterschied.

Aller Anfang ist schwer. Nur der Anfang mit PLDs(also FPGAs CPLDs)und
VHDL/Verilog ist noch viel schwerer...  ;)
Am Besten du besorgst dir mal das Xilinx WebPack. Da sind auch viele
Beispiele dabei. Da kann man sich schon mal einiges abgucken.
Vielleicht noch ein Buch oder so....
Die Software von Xilinx(ISE) ist für einen Anfänger ziemlich schwer zu
handhaben. Das lässt du dir am Besten mal von jemandem zeigen...sonst
musst du dich eben selbst durchschlagen.

Zur Hardware:
Eigentlich ist kein Entwicklungsboard nötig, da man alles sehr gut
simulienen kann. Aber für den Anfang ist es doch ganz schön, wenn man
mal ne LED auf nem Board anbekommt...ist einfach nicht so trocken wie
die Simulation.

Die kleinsten Bausteine von Xilinx kenne ich eigentlich nicht. Ich
kenne nur den Spartan3. Und ich denke die sind alle zu groß für das
Projekt oder irre ich??? Ich denke da reicht ein fetter CPLD. Ich weiß
es aber nicht.
Viel Glück und Erfolg!!!

Gruß Daniel!

von high_speed (Gast)


Lesenswert?

Bei Xilinx das WebPACK herunterladen:
http://www.xilinx.com/xlnx/xil_sw_updates_home.jsp
Ist die eine eingeschränkte Version der Entwicklungsumgebung von
Xilinx.

Bei Xilinx gibt es auch noch eine kostenlose Version von ModelSim
http://www.xilinx.com/xlnx/xebiz/designResources/ip_product_details.jsp?key=DO-SIM-VHDL-ETH

http://tech-www.informatik.uni-hamburg.de/vhdl/

Buch:
VHDL-Synthese
Jürgen Reichardt, Bernd Schwarz

Um überhaupt sinnvoll arbeiten zu können sollte man schon ein Board mit
einem FPGA parat habe, der dann mit der externen Peripherie verbunden
wird. Die FPGA sollte hierbei lieber zu groß als zu klein sein. Das
Modell für einen kleineren FPGA zu synthetisieren ist dann meist kein
Problem mehr, wenn die Anzahl der benötigten Logikelemente feststeht.
Hierbei kann es höchstens Probleme mit Timingbedingungen geben.

Auch wenn die Simulation so schön ist. Alles wird man nicht simulieren
können, zu mindestens nicht mit größeren Aufwand. Da hilft dann nur ein
reeller FPGA und ein Logikanalysator oder DSO / DPO. Hierzu kann man
wichtige interne Signale an Ausgangspins legen.

DSO    digital sampling oscilloscope
DPO    digital phosphor oscilloscope

MfG
Holger

von Daniel (Gast)


Lesenswert?

Danke Daniel ;-)  Ja, die Ausdrucksweise Anfangs war falsch gewählt. Um
das Problem zu konkretisieren: Es existiert bereits ein FPGA: Xilinx
XCS 10 mit lauffähigem Programm. Problem ist nur, das die Quellcodes,
Dokus etc. nicht mehr zur Verfügung stehen. Im Zuge der neuen RoHS
(Bleifrei Norm) wurde das bisher eingesetzt FPGA abgekündigt und ein
Neues muß her...  Warum damals ein FPGA und kein CPLD eingesetzt wurde
weiß ich noch nicht. Es bestehen noch sehr viele Unklarheiten. Die Dip.
Arbeit findet in einem Unternehmen aus der Industrie statt. Ich bin
nicht ganz unerfahren was "basteln" mit Digitaltechnik angeht und muß
nicht unbedingt ein paar Dioden zum blinken bringen oder irgendwelche
kleine Bastelschaltungen aufbauen. Mir geht es in erster Linie darum,
Grundverständniss aufzubauen, um auch fachlich korrekte Gespräche mit
meinem Abteilungsleiter führen zu können und "ingenieurmäßig" an die
Problemstellung herangehen zu können. Danke für weitere Tips!

von Daniel (Gast)


Lesenswert?

Auch Dir herzlichen Danke, Holger. Wie schon gesagt, es existiert
bereits eine Schaltung auf der ein FPGA sitzt, welches ich zu ersetzen
haben. (s.o) . Daher dachte ich, erstmal rein theoretisch an die Sache
zu gehen und später die vorhandene Platine in Betrieb zu nehmen. Und
zwar wollte ich zuerst versuchen meine Entwürfe auf dem "alten" XCS
10 in der originalen Hardware zum laufen zu bekommen und anschließend
ein neues auszuwählen und die Harware anzupassen. Ist dies
Vorgehenswiese eurerseits ok?
Danke für die vielen, schnellen Antworten!

von Namensvetter(Daniel) (Gast)


Lesenswert?

<"Ich bin nicht ganz unerfahren was "basteln" mit Digitaltechnik
angeht und muß nicht unbedingt ein paar Dioden zum blinken bringen oder
irgendwelche kleine Bastelschaltungen aufbauen.">

Also ich war sehr froh darüber als ich meine erste LED auf meinem Board
anbekam. Anders wird wohl noch keiner angefangen haben. Glaub mir: Sogar
du wirst mit kleinen Sachen anfangen. Wenn es keine LED ist, dann sei es
eben sonst was aber dein Projekt wird wohl noch ein wenig mehr Erfahrung
brauchen als basteln mit Digitaltechnik. Das hat mit VHDL nämlich nichts
am Hut.

Wenn du nun ein Board willst empfehle ich dir das Xilinx Spartan3
StarterKit für 99$. Das bestellste direkt bei Xilinx in den USA.
Innerhalb einer Woche ist es da. Kostet dann aber so um die 150€, da
die Versandkosten + Zoll noch dazukommen. Aber das Board ist das Geld
echt wert. Einfach genial das Teil :)

Viel Spaß!
Gruß Daniel!

von Sven Johannes (Gast)


Lesenswert?

Moin..

Also man weiß über den Chip folgendes:

System Gates*  3K-10K
Logic Cells**  466
Max Logic Gates  5,000
Flip-Flops    616
Max RAM bits  6,272
Max Available I/O  112
Packages PC84,VQ100,CS144,TQ144

Der KLEINSTE Spartan3 kommt auf:
XC 3S50:
System Gates 50K
Logic Cells 1,728
Block RAM Bits 72K
Distributed RAM Bits 12K
Packages/IO VQ100/63,TQ144/97,PQ208/124

Das Ding rennt Kreise um die alte Version. Problem wird nur sein das
Ding auch in Stückzahl zu bekommen. Bei fast allen Herstellern dürfte
die Lage ähnlich sein, die kleinsten Varianten stecken den Spartan
einfach in die Tasche. Vielleicht passt VQ oder TQ Gehäuse sogar so,
das nur die Spannungsversorgung geändert werden muss? Leider haben wir
in meiner Abteilung das nicht versucht sondern gleich ein völig neues
Board mit BGAs (schüttel) gemacht.

--
 Sven Johannes

von Daniel (Gast)


Lesenswert?

Hallo..
erstmal danke an Sven.
1.Daniel, Du wirst wohl recht haben, mit einem Evaluationboard zu
starten ;-)  scheint doch ein größerer Aufwand zu sein erstmal ne LED
zum blinken zu bringen..

2. Sven, danke erstmal für die Kurzinfo! Hab mir mal die Datenblätter
gezogen und so dies und das gemacht. Scheint viel Arbeit zu sein da
rein zu kommen und ich stehe noch am Anfang. Meine konkrete Frage zu
deinen Angaben: Der kleine Spartan hat deutlich mehr System Gates und
Logic cells als der "alte". Was Logic Cells sind weiß ich, was System
Gates sind nicht. Beim Spartan finde ich keine Info über Anzahl der
Flipflops, aber diese können doch auch mit LogicCells realisiert
werden, oder?

Muß ich mir denn vor Auswahl des FPGA überlegen wieviele  Logikzellen
ich für das Design brauche? geht das überhaupt oder nutze ich einfach
die Fitter_log und versuche das Design im Nachhinein zu optimieren?
Sehr viele wage Fragen - falls das zum absoluten Grundwissen gehört
sagts mir einfach.


Ich muß erstmal weiter an mir selber arbeiten, melde mich aber wenn ich
voran komme.

von Bodo Müller (Gast)


Lesenswert?

Hallo Daniel.
Auch ich möchte, nachdem ich all die mehr oder weniger guten
Informationen gelesen habe, folgendes beisteuern. Im allg. ist es ja
so, dass, wenn ich ein Programm implementieren muss, meine Synthese und
mein erzeugtes Programm_File eine bestimmte Bitgroesse besitzt. Bei
Xilinx z.B. im sogenannten Fitter_Report, sehr schön zu erkennen!
Danach suche ich mir entweder mein CPLD oder FPGA aus.Natürlich spielen
auch Vorgaben ( Vers.Spannung, verfügbarkeit, Kosten etc.)eine Rolle.
Das Vorgehen, ich habe einen FPGA ( bez. mir stehen so und so viel
Macrozellen zu verfügung ) und ich soll nun ein Programm schreiben
welches die Vorgaben nach benötigten  Eingaengen, Ausgaengen,
Verhaltensweisen etc.erfüllt, halte ich persönlich  für
unprofessionell. Ich bin gerne bereit ihnen konkrete Vorschläge oder
Hilfestellung zu geben, falls Sie Interesse haben solten.
Bodo Mueller

von Sven Johannes (Gast)


Lesenswert?

Moin...

Sehe ich genauso. Das einzige was mich hier irritiert ist die "Größe"
des Problems: wenn das vorher in einem spartan10 gepasst hat, stellt
sich die Frage nach der Größe nicht mehr. Bau die Logik nach und lass
die Synthese durchlaufen. Einzige Vorgabe ist dabei die Familie, also
Spartan 2 oder 3. Die Software wählt dann fürs Mapping den
kleinstmöglichen Chip aus; beim CPLD macht das der Fitter. Bei den
anderen Herstllern läuft das ähnlich, da heissen nur die Tools anders.

Sollte darauf hinauslaufen das jeweils der kleinste Chip der aktuellen
Familie ausreicht. Billiger sind dann nur noch die auslaufenden Serien
, da solte man sich aber Gedanken um die Bescaffung in der Zukunft
machen, Stichwort ROHS und Konsorten!

--
 Sven Johannes

von Daniel (Gast)


Lesenswert?

Hallo zusammen. Danke erstmal dafür, das hier alle so hilfsbereit sind.
Ich war ein paar Tage krank und komme vor Donnerstag nicht dazu mich
weiter mit dem Problem zu befassen. Aber ab Donnerstag geht es dann
wieder richtig los. Werde mich sicherlich noch mit der einen oder
anderen Frage an euch wenden..

Also, bis dann...

von 123 (Gast)


Lesenswert?

wie fändet ihr die idee wenn jemand ein wiki artikel schreibt z.b. fpg
für anfänger...

von alterhut (Gast)


Lesenswert?

Hey,

ich bin auch am Überlegen mal ein bisschen tiefer in die FPGA Schiene 
ein zu steigen.
Leider war ich nie der große Held was Kommando-Zeilen-Programmierung 
betrifft.
Geht den viel bei Xilinx per grafischer Benutzeroberfläche /WebPack?
Der FAE vom Distri hat das so kinderleicht in seiner Powerpoint 
dargestellt.

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


Lesenswert?

alterhut schrieb:
> ich bin auch am Überlegen mal ein bisschen tiefer in die FPGA Schiene
> ein zu steigen.
Mach bitte einen neuen Thread auf.
Und grab nicht einen 7 Jahre alten Zombie aus!

alterhut schrieb:
> Geht den viel bei Xilinx per grafischer Benutzeroberfläche /WebPack?
Es geht Alles in der GUI:
http://www.lothar-miller.de/s9y/archives/81-Xilinx-ISE-Step-by-Step.html
Man kann aber auch auf der Kommandozeile mit eigenen Make-Tools 
arbeiten.

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.