www.mikrocontroller.net

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


Autor: Trunes P. (trunes)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Mathi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Trunes P. (trunes)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Trunes P. (trunes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Werden CPLD's auch in in VHDL programmiert?

Autor: Mathi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Trunes P. (trunes)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Mathi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Trunes P. (trunes)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Axel Preuss (funkydunky)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Rick Dangerus (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn Du ein günstiges CPLD-Board suchst, dann schau mal bei Ebay rein. 
Da müssteste problemlos was für 20-30 Euro kriegen, mit dem Du mal etwas 
rumspielen kannst.

z.B.
Ebay-Artikel Nr. 180230884075
Ebay-Artikel Nr. 140221940497
Ebay-Artikel Nr. 110241611452
Ebay-Artikel Nr. 110237804042

Autor: Trunes P. (trunes)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Ulrich Radig (radiguli) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

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

Gruß
Uli

Autor: Trunes P. (trunes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
<Dieser dient als Taktquelle z.B. für ein Lauflicht.

Kann nicht ein interner Takt verwendet werden?

-> Wenn ja mit wie viel Hz?

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Trunes P. (trunes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also würde ein Quarz-Oszilator besser funktionieren...

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

Autor: TrunesP. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
(keine Zeit zum anmelden...)

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

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Rick Dangerus (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Trunes P. (trunes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

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

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das geht mit Impact. Das ist bei dem Xilinx Paket dabei.

Autor: Trunes P. (trunes)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Mathi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Trunes P. (trunes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

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

Autor: Mathi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Trunes P. (trunes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Ich möchte mich bei allen bedanken!

Jetzt kann ich endlich mit dem Programmieren anfangen...

MFG Trunes

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]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [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.