Forum: FPGA, VHDL & Co. Cpld einstieg und so viele Fragen


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Sven (Gast)


Lesenswert?

Guten Abend

Ich glaube ich würde gerne mal einige Versuche mit Cpld's machen. Jetzt 
durchsuche ich seit Tagen das Netz dazu und werde mit Informationen 
überlagert, welche ich großteils nicht verstehe.

1.Cpld werden in Vhdl geschrieben? Vhdl ist eine komplexe vollwertige 
Programiersprache ? Und Vhdl kostet 3000$+ ?
http://www.altera.com/buy/software/buy-software.html

Dagegen habe ich in jetzt schon mehrfach Bilder und Videos gesehen, in 
dem die Programmierung aussieht wie aneinander gekettete Logik 
Bausteine?
http://www.youtube.com/watch?v=dJtmVZwZNrM
http://www.pyroelectro.com/tutorials/cpld_board/software.html

Logicbausteine aneinanderreihen fände ich fürs Erste sehr verlockend, da 
ich mich damit auskenne und mich fremden Programmiersprachen etwas 
schwer tue.
3000$ kann ich auch nicht ganz glauben. Wer würde für ein Hobby so ein 
teures Programm verwenden.
Daher nun an euch Profis. Ist das grafische Aneinanderreihen von Logik 
nun Vhdl oder was ist das? Und woher bekommt man das? Und was kostet 
das?

Vielen dank schoneinmal

: Verschoben durch Moderator
von MaWin (Gast)


Lesenswert?

> Cpld werden in Vhdl geschrieben?

Nö, ist eher Overkill.
Simple Logikgleichungen (ABEL) sind eigentlich ausreichend.

> Und Vhdl kostet 3000$+ ?

Autos kosten auch 500000 EUR. Zumindest Lamborghini.

Lattice ispLever ist gratis.

Falls du ein CPLD oder GAL von Lattice verwenden willst.

Aber vermutlich designt man lieber im Schaltplan-Modus.

VHDL ist europäisch akademisch, sehr ähnlich der nur im
militärischen genutzen Programmiersprache ADA.

Im ernsthaften Leben verwendet man lieber VERILOG,
damit sind die Chips gebaut die du nutzt.

Wenn dein PC noch ein Parallelport hat, kann man ispLSI
CPLDs einfach per Kabel direkt am PC programmieren, also
die Funktion übertragen.

http://blog.savel.org/2007/05/07/isp-cable-schematics/

Letztlich braucht man gar keine Bauteile wenn man ein 5V
CPLD programmieren will, schliesslich sind die Ausgänge
vom Parallelport auch TTL, sondern nur ein Kabel. Aber
das erkennt dann die Software nicht als Kabel.

von B e r n d W. (smiley46)


Lesenswert?

Mit dem kleinen XC9536XL VQ44 hab ich mal rumgespielt.
Der kostet bei bei R. 2,05€.

Die einfache Toolchain konnte von XILINX kostenlos runtergeladen werden. 
Keine Ahnung, ob das jetzt noch geht.

Da ich kein VHDL lernen wollte, hab ich das mit Logik-Symbolen 
zusammengeklickt. Den Chip hab ich bis auf das letzte Bit ausgereizt. 
Dies war praktisch auch das Limit, jeder größere Baustein sollte 
definitiv per VHDL oder einer anderen Sprache programmiert werden.

von Lothar (Gast)


Lesenswert?

MaWin schrieb:
> Im ernsthaften Leben verwendet man lieber VERILOG

Heute wohl eher SystemC ...

http://en.wikipedia.org/wiki/SystemC

von Schlumpf (Gast)


Lesenswert?

Hallo Sven,

VHDL kostet erstmal an sich gar nichts.
Du kannst in einem Texteditor einfach loslegen.
Allerdings muss dann dieser Code interpretiert werden. Das macht dann 
ein Syntheseprogramm. Dieses erkennt dann, was du eigentlich mit dem 
VHDL-Code beschreibst. Also wie sich sowas in Hardware abbilden lässt.
Dazu muss das Syntheseprogramm wissen, auf welchen Chip dieses Design 
implementiert werden soll.
Danach kommt dann das Platzieren und Routen (PAR). Das ist wieder ein 
anderes Programm, dass dann die Elemente, die die Synthese "verschaltet" 
hat, platziert und verbindet.
Ähnlich, wie wenn du eine Leiterplatte machst und die Bauteile 
platzierst und die Leiterbahnen routest.

Daraus wird dann das eigentliche Programmierfile (z.B. .jed), welches 
via Kabel vom PC in den CPLD "programmiert" wird.

Die Hersteller von CPLDs bieten meist kostenlose Toolchains an, in denen 
du das alles machen kannst. Da ist dann ein Editor für VHDL, die 
Synthese und das PAR integriert. Diese Tools bieten auch die 
Möglichkeit, dass man anstelle von VHDL grafisch sein Design eingibt. 
Dann kann man einfach einen Schaltplan zeichnen, und der Rest ist, wie 
oben beschrieben.
Man kann die beiden Eingabemethoden meistens sogar mischen..

von Schlumpf (Gast)


Lesenswert?

.. ach ja, meines Wissens darfst du bei Lattice nicht "ispLever" 
verwenden, sondern brauchst für CPLDs "ispLever Classic"

von Falk B. (falk)


Lesenswert?


von Sven (Gast)


Lesenswert?

So ich habe mir gerade Ise Project Navigator von Xilinx geladen. Sage 
und schreibe 6,2gb (warum auch immer) durch Tutorials und versuchen hab 
ich recht schnell die Möglichkeit gefunden Logik Bausteine 
zusammenzuklicken. (Das ersetzt ja ganze Raco Kisten voll verschiedener 
Bausteine)

Jetzt würde mich natürlich brennend interessieren ob am Chip auch 
rauskommt, was ich mir da zusammenklicke. Also muss die Hardware her
Chip währe wohl XC 9536XL erst mal mein Favorit zum Versuchen da 
problemlos lötbar und mit 2.05€ günstig

Passt der Chip überhaupt zu der Software oder ist der anders?
Zum Beschreiben habe ich mich für eBay 320854520606 entschieden da 
parallel für mich bedeuten würde ich müsste am Laptop arbeiten
passt der Programmer zum XC 9536XL und zu der Software ISE Project 
Navigator ?

von Lothar M. (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Lothar schrieb:
> MaWin schrieb:
>> Im ernsthaften Leben verwendet man lieber VERILOG
> Heute wohl eher SystemC ...
Unter uns Klosterschwestern: damit wollten Ende des letzten Jahrtausends 
eigentlich nur Hochschulen die teuren Simulatorlizenzen sparen. Und 
danach versprachen sich Personaler billige freigestellte C-Programmierer 
als Hardwareentwickler einkaufen zu können...

Sven schrieb:
> So ich habe mir gerade Ise Project Navigator von Xilinx geladen. Sage
> und schreibe 6,2gb (warum auch immer)
Sieh dir mal an, was Xilinx alles verkauft...

> die Möglichkeit gefunden Logik Bausteine zusammenzuklicken.
Ja, so fährt man schnell mal in eine Sackgasse...
Hier was zum Thema "Schaltplaneingabe vs. Beschreibungssprache":
Beitrag "kruder Fehler bei FPGA-Programmierung (ISE WEBpack-Schematic)"

> ob am Chip auch rauskommt, was ich mir da zusammenklicke.
Hardware wird zu >>70% mit dem Simulator debugged.


Ich empfehle dir aber gleich auf FPGAs einzusteigen. Die Diskussion CPLD 
vs. FPGA wird immer wieder geführt: 
http://www.mikrocontroller.net/search?query=anf%C3%A4nger+cpld+fpga&forums[]=9&max_age=-&sort_by_date=1

von Falk B. (falk)


Lesenswert?

@  Sven (Gast)

>ich recht schnell die Möglichkeit gefunden Logik Bausteine
>zusammenzuklicken. (Das ersetzt ja ganze Raco Kisten voll verschiedener
>Bausteine)

Ist soweit OK.

>Jetzt würde mich natürlich brennend interessieren ob am Chip auch
>rauskommt, was ich mir da zusammenklicke.

Das tut man erstmal simulieren. Damit findet man die logischen Fehler 
deutlich schneller. Am IC testet man bestenfalls noch, obe es mti alles 
Randbedinugnen und anderen ICs zusammenspielt.

> Also muss die Hardware her
>Chip währe wohl XC 9536XL erst mal mein Favorit zum Versuchen da
>problemlos lötbar und mit 2.05€ günstig

Naja, versuch mal den 9572XL aufzutreiben, der hat doppelt soviele 
Logikzellen. Du wirst sie schnell haben wollen.

>Passt der Chip überhaupt zu der Software

Gerade so noch. Neuere Software unterstützt die gar nicht mehr.

von Bronco (Gast)


Lesenswert?

Ich hatte mir seinerzeit (vor ca. 10 Jahren) CPLD-Entwicklunskits von 
Lattice (MACH irgendwas) und Xilinx (CX95256) gekauft, sowie das Buch 
"VHDL-Synthese" von Reichardt/Schwarz. Kostenlose Software-Lizenz war 
bei beiden Kits dabei.
Allerdings waren die Programmieradapter in beiden Fällen für 
Parallelport.
Ich bezweifle, daß es diese Kits noch zu kaufen gibt.

von Sven (Gast)


Lesenswert?

9572XL gibts auch bei Reichelt also werd ich einfach dann mal ein oder 
zwei mitbestellen.
Fpga brauchen doch externen speicher für das Programm? Ich bin bislang 
mit meinen wohl nicht mehr ganz zeitgemäßen TTL bausteinen ganz gut 
gefahren.
Vondaher brauche ich nicht immer das beste und neuste (schongarnicht 
wenn ichs nicht verstehe und bedinen kann) Ich habe auch kein wirkliches 
Projekt welches ich damit verwirklichen möchte. Es geht mir nur um 
"Grundlagenforschung" Wenns mir gefällt werde ich sicher tiefer 
einsteigen aber erstmal möglichst einfach und günstig das erste ergebnis 
erziheln

Bleibt die frage passt der ausgesuchte Programmer? oder was sollte ich 
da kaufen?

von Lothar M. (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Sven schrieb:
> Bleibt die frage passt der ausgesuchte Programmer?
Ja, der tut mit der Impact-SW von Xilinx.

> Fpga brauchen doch externen speicher für das Programm?
Lattice MachXO(2) nicht, Spartan AN auch nicht, und CPLDs sind sowieso 
tot. Man hat sie nur noch nicht begraben.

Lattice (die Mutter der CPLDs) verkaufen ihre kleinen FPGAs unter dem 
Deckmäntelchen CPLD. Und auch die Xilinx-CPLDs werden beim Start 
blitzschnell "geladen"...

> das Programm?
Es ist kein "Programm", sondern eine "Konfiguration". Deshalb heißt 
dieser Speicher auch nicht Programmspeicher sondern 
Konfigurationsspeicher. Und nein, das ist jetzt keine Kleinkrämerei, 
sondern einfach eine Begriffsdefinition. Wenn du mit dieser Technik 
arbeiten willst, dann musst du auch die dort üblichen Worte verwenden.

Ich verweise dann am besten nochmal auf dieses Forum da, das den 
Begriff "cpld" schon im Namen hat:
http://www.mikrocontroller.net/forum/fpga-vhdl-cpld

von sven (Gast)


Lesenswert?

Ok Cpld sind also wohl tot. Man kann sie noch kaufen aber man sollte 
nich.

Die welt dreht sich einfach zu schnell. Ich befürchte Fpga ist tot bis 
ich verstanden habe wo der Unterschied eigentlich ist.
Kann ich mit der Software von Xilinx auch Fpga configuriren? und diese 
über logic symbole bedinen?
Welcher währe dann der Fpga meiner wahl? wichtig klein lötbar ohne viel 
Hühnerfutter und natürlich nich so teuer (das der verlust nich so gross 
ist wenn ich es nicht verstehe und in die Ecke haue)

von Lothar M. (lkmiller) (Moderator) Benutzerseite


Lesenswert?

sven schrieb:
> Kann ich mit der Software von Xilinx auch Fpga configuriren?
Ja.
> und diese über logic symbole bedinen?
Ja. Aber sag hinterher bloß nicht, es hätte dich keiner davor gewarnt!

> Welcher währe dann der Fpga meiner wahl?
Keine Ahnung, was du für eine Aufgabenstellung hast.

> wichtig klein lötbar
Nimm einen Lattice MachXO oder MachXO2 im TQFP Gehäuse. Die kann man 
noch gut löten...
Ich würde aber für den Anfang DRINGENDST zu einem fertigen EVAL-Board 
raten. Unbedingt!

von Bronco (Gast)


Lesenswert?

Ich hab dieses hier:
http://shop.trenz-electronic.de/catalog/product_info.php?cPath=1_47&products_id=130&osCsid=e389cfd2c59846ae6be058ef1721c6ec

Allerdings hätte ich lieber einen Lochrasterbereich bzw. normale 
2,54-Pinheader gehabt, als den ganzen Peripherie-Schnick-Schnack...

von Lothar M. (lkmiller) (Moderator) Benutzerseite


Lesenswert?


von Bronco (Gast)


Lesenswert?

Lothar Miller schrieb:
>> Allerdings hätte ich lieber einen Lochrasterbereich bzw. normale
>> 2,54-Pinheader gehabt
> http://shop.trenz-electronic.de/catalog/product_in...
> http://shop.trenz-electronic.de/catalog/product_in...

Oh Mann, ich war in Gedanken schon bei dem anderen Kit
http://shop.trenz-electronic.de/catalog/product_info.php?cPath=1_47&products_id=696
welches ich bei dem "EasyStart FPGA"-Kurs bei Eugen Krassin erhalten 
habe ;)

von Lattice User (Gast)


Lesenswert?

Lothar Miller schrieb:

> Ich würde aber für den Anfang DRINGENDST zu einem fertigen EVAL-Board
> raten. Unbedingt!

Zum Beispiel das da:
http://www.latticesemi.com/products/developmenthardware/developmentkits/machxo2breakoutboard.cfm

Das hat inzwischen den grössten MachXO2 im TQFP144 verbaut, und fast 
alle Pins auf Header verfügbar. Ausserdem ist bereits ein JTAG Adapter 
zum Programmieren integriert.

* Momentan muss man beim Kauf noch etwas aufpassen, da die neue Version 
hierzulande noch nicht verfügbar ist. Auf der bisherigen ist ein viel 
kleiner MachXO2 verbaut und obendrein die ZE Version (extrem 
stromsparend aber langsam, d.h. max 100 MHz)

von sven (Gast)


Lesenswert?

Oh weih.
Also diese Boards sehen schonwieder so komplex aus. Eingebauter 
Programmer is zwar nett aber um dann den Chip wirklich einbauen zu 
können muss ich ja doch nochmal einen kaufen.
Und ich hab das gefühl der Chip is einwenig zuviel des guten.
Meine vorstellung geht eher so gen weniger einfacher nich so aufwändig 
(fürs erste). Eine  Anwendung währe zb ein Zähler 20bit Binär + 14bit 
decimal auf und abwerts einige ausgänge inventirt und andere noch mit 
and gatter verschaltet. Also möchte ich nur eine Handvoll 74er ersetzen.
Das bei ca 60Mhz.
Wenn Cpld und Fpga ähnlich bedient werden was spricht gegen Cpld für 
erste Ledblink versuche und co? Bei mir geht es nicht um Serinfertigung.

von Falk B. (falk)


Lesenswert?

Man muss es nicht immer übertreiben. Für ein paar erste, kleine 
Spielerein tut es ein CPLD im PLCC Gehäuse, den pappt man per Sockel auf 
Lochraster, fertig, zwei 100nF Kondensatoren dran, einen Stecker für den 
Programmieradapter, drei LEDs mit Vorwiderständen und zwei Taster mit 
Pull-Up, los gehts.

Es gibt ja sogar noch Leute in diesem Forum, die GALs empfehlen . . 
. DAS würde ich sicher nicht mehr (Klimawandel und so ;-)

von Thomas_L (Gast)


Lesenswert?

Vielleicht auch eine Überlegung wert:
Watterrott hat noch diese beiden kleinen Platinen im Angebot:
http://www.watterott.com/de/XC2C64A-CoolRunner-II-CPLD-development-board
http://www.watterott.com/de/XC9572XL-CPLD-development-board
Spannungsversorgung,2 Led und ein Taster sind schon drauf, man kann 
gleich loslegen, oder Stiftleiste dranbraten und ins Steckbrett damit. 
Lötpads für einen SMD Oscillator sind unter den Platinen.

von Lothar M. (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Falk Brunner schrieb:
> Man muss es nicht immer übertreiben. Für ein paar erste, kleine
> Spielerein tut es ein CPLD im PLCC Gehäuse
Man sollte dann aber dran denken, dass schon gleich danach damit dann 
wieder Schluss ist. Ein 9536 hat nur 36 Speicherelemente (Flipfops), 
damit kommt man nicht weit...

>den pappt man per Sockel auf
> Lochraster, fertig, zwei 100nF Kondensatoren dran, einen Stecker für den
> Programmieradapter, drei LEDs mit Vorwiderständen und zwei Taster mit
> Pull-Up, los gehts.
Einen NE555 als Taktquelle  würde ich auch noch dazubasteln...

von sven (Gast)


Lesenswert?

36 flipflops ok das klingt nach wenig sprich damit kann ich keinen 
zähler bauen wie oben beschrieben ? das währ aber ungut. ich merk schon 
komplexes Thema. Werd trozdem erstmal klein anfangen und nebenbei viel 
das netz durchlesen

von Lothar M. (lkmiller) (Moderator) Benutzerseite


Lesenswert?

sven schrieb:
> 36 flipflops ok das klingt nach wenig sprich damit kann ich keinen
> zähler bauen wie oben beschrieben ?
Naja, du kannst einen Zähler bauen, der durch 2^36 teilt, oder 2, die 
durch 65536 teilen und dazu einen, der durch 16 teilt. Auf jeden Fall 
sind 36 Flipflops ziemlich wenig, wenn mal Zustandsautomaten kommen (und 
das ist eigetnlich schon wieder jeder Zähler... ;-)

Das hier passt z.B. gerade noch so in ein solches CPLD rein:
http://www.lothar-miller.de/s9y/categories/49-RS232-IO

von temporärer Gast (Gast)


Lesenswert?

Natürlich kommt man mit 36 oder 72 oder gar 144 Flip Flops nicht weit 
wenn man FPGA Anwendungen im Kopf hat.
Aber am Anfänger ist man doch gut ausgelastet erst mal zu begreifen, um 
was es geht, die Tools bedienen zu lernen, etwas zu verstehen,... Klar 
da ist dann schnell Schluss, aber um ein cpld über spi an einen uc zu 
hängen, das Lauflicht zu machen etc.pp - warum nicht.
Das ist doch besser, als mit dem dicken Board nach viel zu großen Zielen 
zu schauen und dann nach (fast) fertigen Lösungen zu suchen.

Kleine Brötchen backen und Schuster bleib bei deinen Leisten hieß das in 
meiner Jugend ;-) Klar darauf hinweisen, daß da nach einigen Wochen 
Schluss ist solltet ihr schon.

von Lothar M. (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Sven schrieb:
> Youtube-Video "CPLD hello world"
Das "Hello World!" ist auch in VHDL nicht aufwendig:
http://www.lothar-miller.de/s9y/archives/80-Hello-World!.html
Und hier mit Bildern für die, die sich mit viel Text eher schwer tun:
http://www.lothar-miller.de/s9y/archives/81-Xilinx-ISE-Step-by-Step.html

von Hihaho (Gast)


Lesenswert?

Ob CPLD oder FPGA ist letztendlich wurscht (ist eigentlich eine andere 
Architektur, wird aber heute oft aus anderen Gründen (Marketing?) 
verwendet, hat Lothar oben schon geschrieben).
Letztendlich hängt es davon ab, was man damit machen will.
Kleine FPGAs sind genauso einfach zu handeln wie CPLDs, bieten meist 
aber mehr Funktion (mehr Logik, damit größere Schaltungen). Generell 
macht das Mapping ohnehin die SW.
Die Breakoutboards von oben sind sicher ein guter Start - die heißen so, 
weil dort alle Pins nach außen geführt sind, d.h. du lötest deinen 
eigenen Stecker drauf und schließt deine Peripherie an (was immer du 
damit steuern willst).
BTW, zu TQPFs gibt es auch Adapterboards auf Lochrastermass (bis 
TQPF144).

Zum Anfangen spricht nix gegen VHDL. Für den Start aus meiner Sicht 
besser als Verilog. Die FPGA-Anbieter haben alle Tutorials auf ihrer 
Webseite, um seine erste blinkende LED (das Hello World der HW) auf das 
Board zu bringen. CHDL Tutorials gibt es en masse im Netz.
Wenn du mal ne komplexere Statemachine schreiben willst, dann ist VHDL 
eh besser als Glue-Logic (die Zeiten von KV-Diagrammen und Quine 
McCluskey sind vorbei, das können die Tools heute schneller und besser).


CPLD <-> FPGA ist ein eigenes Thema.
VHDL <-> Verilog (bzw. SystemVerilog, SystemC, UML oder sonstwas) auch.

von Karsten F. (Firma: von Dänemark) (bingo600)


Lesenswert?

Ich habe einer von diser gekauft
S3E Starterkit 80€ , ebay 360615269257

War doch nur 60€ , wan ich gekauft hatte.
Aber ich glaube €80 sind auch billig oder ??

mfg
Bingo  (Dänemark)

von Lothar M. (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Karsten F. schrieb:
> Aber ich glaube €80 sind auch billig oder ??
Ja, in Auktionen geht dieses Board oft noch über 100€...

Bei dem hier letzte Woche war aber "schon" bei 90 Schluss:
Ebay-Artikel Nr. 190806262134

von Sven (Gast)


Lesenswert?

So die sachen sind Bestellt. Wenn im Simulator das ergebnis aussiht qwie 
es sollte müsste es doch eigentlich auch im Chip laufen odeR?

von Falk B. (falk)


Lesenswert?

Im Prinzip ja, aber manchmal gibt es halt ein paar böse Effekte in der 
ralen Schaltung, die im Simulator nicht passieren, Z.B. unsaubere 
Eingangssignale, asynchrone Eingangssignal, falsch getimte 
Eingangssignale etc.

von Klaus (Gast)


Lesenswert?

Sven schrieb:
> So die sachen sind Bestellt. Wenn im Simulator das ergebnis aussiht qwie
> es sollte müsste es doch eigentlich auch im Chip laufen odeR?

Ja, das wäre natürlich schön, ne? ;-)  Die Realität sieht anders aus. Es 
gibt z. B. in VHDL Sprachkonstrukte die zwar simuliert aber nicht 
synthetisiert werden können. Es könnte das Timing in der Hardware nicht 
stimmten (das Design im Chip ist zu langsam für den gewünschten Takt). 
Oder du könntest ein nicht sauber synchrones Design gebaut haben, was in 
der Hardware nicht sauber läuft (Stichworte Einsynchronisieren von 
asynchronen Signalen, Taktdomänenübergänge etc.).

Du siehst, dir wird so schnell nicht langweilig werden.


Aber ein Schritt nach dem anderen. Wenn das Design im Simulator läuft 
ist das schon mal ein guter Zwischenschritt.

von MaWin (Gast)


Lesenswert?

> > Fpga brauchen doch externen speicher für das Programm?
> Lattice MachXO(2) nicht, Spartan AN auch nicht,
> und CPLDs sind sowieso tot. Man hat sie nur noch nicht begraben.
> Ok Cpld sind also wohl tot.
> Man kann sie noch kaufen aber man sollte nich.

Unsinn.
Bloss weil Lothar das behauptet, ist das noch lange nicht der Fall.
Dann wären SSI und MSI Logikbauseine wie 74HC00 das auch.

Es gibt immer noch einfache Anwendungen für die einfache Bausteine
ausreichen, auch wenn in diesem Forum am liebsten Widerstände schon
durch Microcontroller ersetzt werden.

Und wer lernen will, für den sind einfache Bausteine halt auch
einfach zu verstehen, auch die, die heute kompiziertes anwenden
haben meist an den einfachen gelernt.

Was tot ist, sind die auf Analogelektronik basierenden GALs von
Lattice, denn die brauchen unsäglich viel Strom wenn sie schnell
sein sollen und sind leicht störbar und zerstörbar. Aber damit
sind noch lange nicht alle einfachen Logikbausteine tot.

von Schlumpf (Gast)


Lesenswert?

Falk hat es ja im Prinzip schon erklärt.

Die Simulation deines Codes zeigt dir den "Idalfall". Das heißt, dass 
alles ohne Verzögerung passiert. Das ist aber in der Realität dann nicht 
so. Die Signale im Chip breiten sich nur mit endlicher Geschwindigkeit 
aus. Dadurch entstehen im Chip Verzögerungen, die in der Simulation 
deines Codes nicht berücksichtigt sind.
Diese Laufzeiten der Signale können dann z.B. zu Spikes oder Glitches 
führen, die du in der Simulation gar nicht siehst.
Und wenn dein Design prinzipiell nicht damit umgehen kann, weil du z.B. 
ein paar wichtige "Grundregeln" außer Acht gelassen hast, dann kann es 
passieren, dass in der Simulation alles prima funktioniert, aber auf dem 
Chip dann plötzlich "unerklärliche Effekte" auftreten.

Ein paar ganz wichtige Regeln für synchrone Designs sind:
ALLE Register arbeiten mit dem selben Takt!
ALLE asynchronen Eingänge werden auf diesen Takt erstmal 
einsynchronisiert!

Im Prinzip musst du sicherstellen, dass alle Signale im Chip sich immer 
nur mit der Taktflanke des Systemtaktes ändern.
Wenn du das einhältst, dann "richtet" die Synthese nach Angabe, wie 
schell der Systemtakt sein soll, alles weitere für dich.

Natürlich gibt es auch Designs, in denen diese Regeln nicht einzuhalten 
sind, aber da muss man dann ein wenig mehr Hirnschmalz reinstecken, um 
sicherzustellen, dass es trotzdem funktioniert. Aber für einen Anfänger 
würde das jetzt zu weit führen.

Klingt jetzt bestimmt kompliziert, ist es aber eigentlich gar nicht so 
sehr.
Ich könnte wetten, dass du auf Lothar Millers Homepage jede Menge 
nütliche Tipps und Erklärungen findest, wie du einen sauberen Einstieg 
findest und wie die von mir oben genannten Punkte dann tatsächlich in 
die Realität umgesetzt werden.

von Lothar M. (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Sven schrieb:
> Wenn im Simulator das ergebnis aussiht qwie
> es sollte müsste es doch eigentlich auch im Chip laufen odeR?
Vergiss einfach mal ein Signal einzusynchronisieren. Diesen Fehler 
findest du mit dem Simulator nie. Oder verwende einen asynchronen 
kombinatorischen Reset, oder, oder...

von Falk B. (falk)


Lesenswert?

@  Schlumpf (Gast)

>Diese Laufzeiten der Signale können dann z.B. zu Spikes oder Glitches
>führen, die du in der Simulation gar nicht siehst.

Gutes Stichwort Glitch.

von Sven (Gast)


Lesenswert?

Das klingt immer so kompliziert. Also ich habe jetzt einen Zähler mit 
einem Takt und einem Reset welcher die ersten Bits Binär und die 
weiteren Bits Decimal zählt und eben ein paar ausgänge noch inventiert. 
Viel mehr wünsche ich mir ja erstmal garnicht :) Also ich habe 5stk 74 
in hoffentlich einem XC9536XL damit ein paar cm² und etwas Lötarbeit 
gespart.

Aber jemehr ich über Fpgs's lese desto mehr interesieren die dinger 
mich. Damit kann man ja (wenn mans kann) die dollsten sachen machen

von Schlumpf (Gast)


Lesenswert?

Sven schrieb:
> Viel mehr wünsche ich mir ja erstmal garnicht :)

Genau, fang einfach mit kleinen Aufgaben an. Scheitere vielleicht an der 
einen oder anderen Sache und lerne dann aus den Fehlern, die du 
vielleicht gemacht hast.
Das ist der beste Weg, um mit dem Thema vertraut zu werden und dann 
immer komplexere Geschichten zu machen.

Bei FPGA, CPLD und co. gibt es einige Stolpersteine, die nicht auf den 
ersten Blick ersichtlich sind. Aber durch Ausprobieren stößt man sich 
zwangsläufig irgendwann an diesen und lernt daraus.

Und wenn man was nicht tut, wie du es dir gedacht hast, dann findest du 
hier auf jeden Fall jemanden, der dir weiterhilft und dir dann auch 
erklärt, wo der Fehler steckt.

Sven schrieb:
> Aber jemehr ich über Fpgs's lese desto mehr interesieren die dinger
> mich.

Eine gute Voraussetzung, um Lust an dem sicher nicht ganz trivialen 
Thema zu bekommen und sich dann auch da reinzufuchsen.

von Holger H. (holger-h-hennef) Benutzerseite


Lesenswert?

Karsten F. schrieb:
> Ich habe einer von diser gekauft
>
> S3E Starterkit 80€ , ebay 360615269257
>
>
>
> War doch nur 60€ , wan ich gekauft hatte.
>
> Aber ich glaube €80 sind auch billig oder ??
Für den Preis..mit Ref.CD einfach super.(neu und unverbastelt)

Fazit:
Am besten gleich 2 von denen holen, damit kann man das Design mit dem
anderen Board auch noch in der Runtime aus-testen.
Somit hat man den Stimulus Hardware Runtime Pin-Event Code seperat vom
Main-Design getrennt.
Link:
http://www.digilentinc.com/Products/Detail.cfm?Prod=S3EBOARD

Viel Erfolg & Gruss Holger.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.