Forum: FPGA, VHDL & Co. CPLD's -> Anfänger


von Trunes P. (trunes)


Lesenswert?

Hallo,

Ich habe bis jetzt nur AVR's programmiert, wollte
mich jedoch mal in die Materie von CPLD's einarbeiten.

Meine erste Frage:
Würde sich dieses Testboard für einen Anfänger empfehlen:
http://www.ulrichradig.de/

-> Meinen Programmer um AVR's zu programmieren würde bei einem
CPLD wohl nicht funktionieren...

Meine zweite Frage:
Wie werden CPLD's programmiert?
(Programmiersprache, Compiler)

Gibt es auch ein Tutorial?

MFG Trunes

von Mathi (Gast)


Lesenswert?

Prinzipiell kannst Du ein CPLD nehmen. Aber Du wirst sehr schnell mit 
einem CPLD an die Grenzen kommen. Er eignet sich nur für kleine Designs.

Ein FPGA wäre da die bessere Wahl.
Solche programmierbaren Bausteine werden gewöhnlich in VHDL oder Verilog 
programmiert. Dabei musst Du beachten das das eine andere Welt als 
andere Programmiersprachen ist.
Entwicklungstools bekommt man bei den Herstellern der Bausteine.

von Trunes P. (trunes)


Lesenswert?

Danke für deine Antwort!

Sind die Kosten eines FPGA's nicht sehr hoch?

Gibt es für FGPA's auch ein Testboard, das man sich selber bauen kann?

von Benedikt K. (benedikt)


Lesenswert?

Trunes P. wrote:
> Sind die Kosten eines FPGA's nicht sehr hoch?

Die ICs selbst kosten um die 10-20€, und dafür bekommt man schon 
ordentliche (da passt dann z.B. eine 32bit RISC CPU rein)

> Gibt es für FGPA's auch ein Testboard, das man sich selber bauen kann?

Eher nicht. FPGAs gibt es afaik nur mit 0,5mm Pinabstand oder BGA.
Fertige Boards bekommt man ab etwa 100€ aufwärts.

von Trunes P. (trunes)


Lesenswert?

Hallo,

Werden CPLD's auch in in VHDL programmiert?

von Mathi (Gast)


Lesenswert?

Ja, das werden sie...

Aber wie gesagt, sie sind nur für kleine Designs geeignet und Du wirst 
recht schnell an die Grenzen eines CPLDs stoßen.

von Trunes P. (trunes)


Lesenswert?

Zum Anfang würde mir das sicher ausreichen.
Ich möchte zum testen nur ein bischen in VHDL programmieren
und mich in der Materie ein bischen einlesen...

Für große Projekte kann ich dann ja auf einen FPGA umsteigen...

Kann man FGPA's / CPLD's mit dem Altium-Designer programmieren?
Und wie wird das Programm übertragen?

MFG Trunes

von Mathi (Gast)


Lesenswert?

Wenn Du nur spielen willst, spiele erstmal mit einem Simulator. Das ist 
zwar nicht so eindrucksvoll, aber Du kannst schonmal VHDL antesten.
Wie Du meinst... Ein CPLD ist recht klein, aber natürlich auch billig. 
Vielleicht hast Du dir schonmal Überlegungen gemacht was Du so mit nem 
CPLD machen möchtest?
CPLDs haben sehr wenig Register. Das ist die hauptsächliche 
Einschränkung. Prozessoren für CPLDs gibt es auch. Allerdings sind das 
eigentlich nur Spielzeuge. Also wenn Du später diese Richtung willst, 
kommst Du um nen FPGA nicht rum.
Der Haupteinsatzgebiet eines CPLD ist der Ersatz von glue-logic.

Ich denke das sollte mit dem Altium gehen. Ansonsten gibt es halt 
spezielle Tools der Hersteller.

von Trunes P. (trunes)


Lesenswert?

>Wenn Du nur spielen willst, spiele erstmal mit einem Simulator. Das ist
>zwar nicht so eindrucksvoll, aber Du kannst schonmal VHDL antesten.

Danke, das ist eine gute Idee...

Gibt es auch einen Free-Ware Simulator?
(Ist webpack so ein Simulator)

MFG Trunes

von Benedikt K. (benedikt)


Lesenswert?

Webpack hat einen Simulator, ansonten ist auch Modelsim ganz gut. 
Allerdings ist auch der Simulator schnell an der Grenz. Der Webpack 
Simulator brauchte bei mir gerade rund 2 Minuten um 100ms zu simulieren, 
und das obwohl das Design nur 2 11bit Zähler hat, von denen ein paar 
Signale abgeleitet werden. Und den Einstieg in die Bedienung des 
Simulators fand ich auch etwas kompliziert. Da ist das Programmieren 
eines CPLDs/FPGAS meiner Meinung nach um einiges einfacher.

Die XC95xxXL sind für den Einstieg ganz gut, auch wenn (im Vergleich zu 
einem FPGA) sehr klein. Dafür kosten sie aber nicht viel, benötigen nur 
3,3V und man bekommt sie als PLCC, kann sie also über Sockel auf 
Lochraster löten.

von Axel P. (funkydunky)


Lesenswert?

ich würde mir mal ise modelsim anschauen.

damit kannst du in vhdl coden, und dir den ganzen kram simulieren und 
grafisch anzeigen lassen.
ich bin auch anfänger(brauchs für die uni) aber direkt irgendwelche 
boards kaufen etc würde ich dir nicht empfehlen.
gerade wenn man andere programmiersprachen gewohnt ist, muss man erstmal 
ordentlich umdenken,(ging/geht mir zumindest so) und muss ordentlich 
zeit investieren

von Rick Dangerus (Gast)


Lesenswert?

@Mathi und Trunes:

Altium Designer braucht im Hintergrund (Synthese, Mapping etc.) auch die 
Tools der Hersteller. Dafür hat man natürlich ein schönes und 
funktionelles Frontend.

Die Programmierung der Bausteine erfolgt per JTAG über die 
entsprechenden Kabel.

Rick

von Michael (Gast)


Lesenswert?


von Trunes P. (trunes)


Lesenswert?

Hallo,

Danke für eure Antworten!
Das erleichtert mir den Einstieg sehr!

Ich habe mir jetzt folgenden Simulator herruntergeladen:
ise modelsim

Ich möchte mir jedoch noch ein Testboard für einen
XC9536 selbst bauen (Diesen auf http://www.ulrichradig.de/)

Bei den AVR's hatte ich zuerst auch nur den Simulator,
fand jedoch schnell herraus, dass sich ein Testboard lohnt!

Ich habe jedoch eine frage zu dem Testboard: für was ist der
Timer (NE555) auf dem Board? -> Dient dieser als Oszilator?

MFG Trunes

von Ulrich R. (radiguli) Benutzerseite


Lesenswert?

Hallo,

Dieser dient als Taktquelle z.B. für ein Lauflicht. Ist aber nicht 
unbedingt nötig.

Gruß
Uli

von Trunes P. (trunes)


Lesenswert?

<Dieser dient als Taktquelle z.B. für ein Lauflicht.

Kann nicht ein interner Takt verwendet werden?

-> Wenn ja mit wie viel Hz?

von Falk B. (falk)


Lesenswert?

@ Trunes P. (trunes)

>Kann nicht ein interner Takt verwendet werden?

Nein.

Ausserdem wäre ich mit einem NE555 als Taktgeber vorsichtig. Der macht 
lahme Flanken, so um die 200ns++ Anstiegszeit. In einen anderen Thread 
kam dadurch wahrscheinlich ein Zähler durcheinander. Lieber eine 74HC14 
als Taktgeber nutzen. Braucht auch weniger Bauteile ;-)

MfG
Falk

von Trunes P. (trunes)


Lesenswert?

Also würde ein Quarz-Oszilator besser funktionieren...

Hat ein CPLD interne Pull Up oder Pull Down Widerstände?

von TrunesP. (Gast)


Lesenswert?

(keine Zeit zum anmelden...)

Mein ModelSim verlangt eine Licens, obwohl ich
die free-version installiert habe!

von Falk B. (falk)


Lesenswert?

@ Trunes P. (trunes)

>Also würde ein Quarz-Oszilator besser funktionieren...

JA. Aber der hat eine feste Frequenz.

>Hat ein CPLD interne Pull Up oder Pull Down Widerstände?

Ja, die meisten nur Pull-Ups.

>Mein ModelSim verlangt eine Licens, obwohl ich
>die free-version installiert habe!

Logisch. Die musst du von Xilinx holen. Auch für die Freeware. Der Link 
wird bei der Installation mit erzeugt (im Startmenu).

MfG
Falk

von Rick Dangerus (Gast)


Lesenswert?

Ein variabler Takt ist auf einem Testboard sehr zu empfehlen. Im FPGA 
hat man genügend Platz um sich mal eben die 50 MHz runterzuteilen, aber 
nicht in den kleinen CPLDs.

Die Taktfrequenz hängt von der Anwendungen ab, hier mal ein paar 
Anhaltspunkte:

Lauflicht      -> 1..10Hz
PWM-Dimmer     -> 100Hz..x kHz
Motorsteuerung -> kHz-Bereich
einfache DDS   -> bis mehrere MHz

In den Xilinx-CPLDs kann man ja auch mehrere verschiedene Takte 
einspeisen (GCK1..GCK3) und nur die benötigten nutzen.

Rick

von Trunes P. (trunes)


Lesenswert?

Hallo,

Wie bekomme ich den Code dann auf den
CPLD?
Mit welchen Programm, wenn ich mir deisen Programmer nachbaue:
http://www.ulrichradig.de/

von Benedikt K. (benedikt)


Lesenswert?

Das geht mit Impact. Das ist bei dem Xilinx Paket dabei.

von Trunes P. (trunes)


Lesenswert?

Hallo,

Das Model Sim (6.3C) funktioniert jetzt. Leider habe ich
keinen Überblick...

Ich möchte fürs erste nur einen einfachen Code Simulieren,
Modelsim ist jedoch so kompliziert, dass ich gar nicht so weit komme...

Ich verstehe das mit den Libaries und den Projkten nicht...

Gibt es vielleicht einen einfacheren Compiler oder eine gute
Einführung in ModelSim?

MFG Trunes

von Mathi (Gast)


Lesenswert?

Es ist eigentlich nicht schwer in Modelsim etwas zu simulieren.
Nehmen wir an Du hast Dein Modul und Deine testbench in einem Ordner 
namens Projekt.
Dann klickst Du auf file->change project directory. Dann wählst Du das 
Verzeichnis Projekt. Nun gehst Du auf compile und klickst auf compile. 
Es erscheint ein Dialog. Du wählst das Modul und die Testbench aus und 
drückst compile. Es wird gefragt ob Du die Library Work anlegen willst. 
Das bestätigst Du und schließt darauf das Fenster mit der Datei auswahl. 
Im Workspace steht nun die library work. Die öffnest Du und klickst mit 
der rechten Maustaste auf die testbench und wählst simulate.
Modelsim geht nun in den Simulationsmodus. Wenn Du auf die Testbench 
oder Dein Modul klickst, erscheinen im Fenster Object die Signale. Mit 
einem rechten Klick auf ein signal und dann der auswahl add to wave 
kannst Du das signal zum waveformfenster hinzufügen. Alles was Du jetzt 
noch machen musst ist oben in der kleinen Box die Zeit einzustellen und 
run daneben zu klicken.

von Trunes P. (trunes)


Lesenswert?

Hallo,

Aber wie kann ich den Code schreiben?
-> Brauch ich dafür ein eigenes Programm?

von Mathi (Gast)


Lesenswert?

Den Code kannst Du einfach in Modelsim (File->new->source->vhdl) oder in 
jedem x-beliebigen Editor schreiben. Ich würde Dir Notepad++ empfehlen.

von Trunes P. (trunes)


Lesenswert?

Hallo,

Ich möchte mich bei allen bedanken!

Jetzt kann ich endlich mit dem Programmieren anfangen...

MFG Trunes

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.