mikrocontroller.net

Forum: FPGA, VHDL & Co. VHDL Einsteigerset


Autor: lolo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo ich möchte in vhdl programmierung einsteigen, kann mir einer ein 
einsteigerkit von xilinx (cpld nicht fpga) empfehlen?

: Verschoben durch User
Autor: lolo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich will zuhause programmieren also usb...

Autor: bla (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: bla (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
falls du student bist gibts her auch fuer fast das gleiche geld nen fpga

http://shop.trenz-electronic.de/catalog/product_in...

Autor: Michael B. (planlessmichi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
bla schrieb:
> http://shop.trenz-electronic.de/catalog/product_in...

Cool; dieses Starterkit interssiert mich auch... Nur, ist da die 
Displayplatine auch mit dabei? Abgebildet ist sie zwar, aber auf der 
Liste steht nur "CPLD evaluation board"... Gehört das Display denn fest 
zum Board, oder ist das (kostenpflichtiges) Zubehör?

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Michael B. schrieb:
> Cool; dieses Starterkit interssiert mich auch...
Wenn du anfängst, dann bessser gleich mit FPGAs. Mit den paar FFs auf 
dem CPLD wirst du sehr bald an die Grenze kommen. Und damit ein Display 
anzusteuern ist, naja, witzlos. Denn dann ist das CPLD annähernd voll 
und du kannst nicht arg viel mehr machen...

Kauf dir besser das Basys-Board und für 10 Euronen ein Display dazu...
Und dann noch das Buch "VHDL-Synthese" von Reichardt&Schwarz

Autor: lolo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
BIN ANFÄNGER!

Ist da eigentlich auch eine Anleitung für Anfänger dabei bei diesem 
Basys2 board?

Kann ich das board dann auch wenn es zuenede programmiert ist z.B. als 
Motorsteuerung verwenden?

Dankeschön für eure Antworten und euer verständnis für einsteiger...

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
lolo schrieb:
> BIN ANFÄNGER!
Das war jeder mal...

> Ist da eigentlich auch eine Anleitung für Anfänger dabei bei diesem
> Basys2 board?
Jein. Es ist ein Schaltplan und evtl. ein paar Demoprojekte dabei. Aber 
Lernen mußt du selber und da hilft dann die Doku von Xilinx weiter. Und 
wie gesagt: kauf dir ein Buch.
Und wenn du jetzt den Kopf schüttelst und sagst: "Was will er denn immer 
mit dem Buch, es gibt doch das Internet! Da findet man doch auch alles."
Dann wirst du das Board in 2 Jahren wieder aus dem Schrank nehmen und 
über EBAY verticken. (Und du hast Glück: die Dinger sind ziemlich 
wertbeständig)

> Kann ich das board dann auch wenn es zuenede programmiert ist z.B. als
> Motorsteuerung verwenden?
Das ist sicher möglich. Was für einen Motor willst du denn ansteuern?

> wenn es zuenede programmiert ist
Da gibt es kein "voll" oder "zu Ende". Das macht genau das, was du in 
VHDL beschreibst. Schlimmstenfalls ist dein Design zu umständlich oder 
zu groß, und es passt nicht mehr rein. Aber da darfst du frühestens in 
einem halben Jahr wieder laut darüber nachdenken...

Autor: lolo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
vhdl programmieren kann ich ja, sogar ziemlich gut (wegen Praktikum FH), 
nur machen wir das auf so nem simulationsprog auf nem unix system. Und 
wenn ich ehrlich bin kann ich mir garnicht vorstellen wie das in der 
praxis aussehen an so einem entiwicklungsboard war ich noch nicht dran.

Ist das prog komplett gleich wie im simulationsprog? oder muss ich da 
iwie was besonderes berücksichtigen, weil jetzt ist ja auch hardware 
dran...


Zm Buch:
Also unser Skript ist ziemlich gut, ich glaube nicht das ich ein Buch 
dazu brauche und wenn dann ist die hochschulbib voll damit =))

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
lolo schrieb:
> vhdl programmieren kann ich ja, sogar ziemlich gut (wegen Praktikum FH)
Krass, das grenzt schon fast an Überheblichkeit... :-/

> Ist das prog komplett gleich wie im simulationsprog?
Es ist ganz was anderes. Du wirst nicht glauben, was in der Simulation 
alles funktioniert und auf der Hardware "nur ein bißchen" oder "ab und 
zu nicht"!

> oder muss ich da iwie was besonderes berücksichtigen,
> weil jetzt ist ja auch hardware dran...
Ja, du mußt dann in der Hardware denken, auf der die VHDL-Beschreibung 
mal laufen soll. Und dort gibts nur Flipflops und Kombinatorik...

> ich glaube nicht das ich ein Buch dazu brauche
Allein der Glaube trägt uns weiter...
> und wenn dann ist die hochschulbib voll damit
Dann sieh dir das mal an. Kost ja nix...

Autor: Hobbie (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Lothar Miller,

als Hobbyiest (mit VHDL-Erfahrung) würde mich schon mal Beispiele
interessieren, die zwar der Simulation laufen, in der Hardware
aber nicht bzw. unterschiedlich.

Als Probleme kenne ich bis jetzt (als Hobbyist) nur unvollständige
SensitiveLists (eigener Fehler), Übergänge zwischen Taktdomänen
oder Interfaces zu externen Chips (OFFSET-Constraints..).

Gruss, Hobbie

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hobbie schrieb:
> würde mich schon mal Beispiele interessieren, die zwar der Simulation
> laufen, in der Hardware aber nicht ...
Bitte schön, der Klassiker:
   a <= b after 10ns;
Ja, ok, der war stumpfsinnig einfach. Sowas sagt sogar schon der 
Professor zu seinen Studenten... ;-)

> bzw. unterschiedlich.
Du mußt nur mal einen kleinen Fehler in die Sensitivliste eines 
Prozesses machen, dann hast du sofort einen Unterschied:
   process (clk) begin
      a <= b;
   end process;
Das sieht jetzt in der Simulation aus, als wenn der Prozess irgendwie 
getaktet und damit von clk abhängig wäre. Im FPGA ist das aber nur eine 
Verbindung zwischen a und b...
Siehe dazu auch das hier:
http://www.lothar-miller.de/s9y/archives/16-Takt-i...


Und wehe, es kommen Variablen ins Spiel, dann kann es schon auch mal 
Profis ins Schleudern bringen:
Beitrag "Re: Variable vs Signal"
und:
Beitrag "Re: Variable vs Signal"


Aber auch ein simpler Zähler verhält sich in der Simulation anders als 
in der Hardware:
  signal n : integer range 0 to 1; -- n kann also nur 0 und 1 werden!
   :
  process begin
      wait until rising_edge(clk);
      n <= n + 1;  -- was passiert, wenn n=1 ist?
  end process;
Die Simulation bricht hier zum Glück mit einem Fehler ab. Aber die 
Hardware macht aus dem Zähler locker ein Togglebit... :-o


Das Folgende sind Sachen, die in der Simulation reproduzierbar 
"richtige" Ergebnisse liefern, in der Praxis legt es dich damit böse auf 
die Nase.
Sieh dir das mal an (auch so ein Klassiker):
Beitrag "Re: Theoriefrage asynchroner Reset"

Oder auch der gern verwendete asynchrone kombinatorische Reset:
Beitrag "Re: Der vhdl-Schnipsel-Anfängerfragen Thread"
Beitrag "Signale reseten"

Ganz schlimm wird es übrigens, wenn an das Reset-Signal am Reset-Pin ein 
Reset-Knopf angeschlossen wird, und ein kleiner ESD-EMV-Spike auf den 
Reseteingang kommt: da wird dann u.U. das halbe FPGA zurückgesetzt, 
einezelne FFs aber nicht. Und jedesmal hast du damit einen anderen 
Fehler...

Und hier mal eine allgemeine Betrachtung zur Synthese von simpelsten 
Beschreibungen:
Beitrag "Hardware mit VHDL "richtig" beschreiben."

Nicht ganz vergessen werden sollte, dass es in einem idealen FPGA-Design 
nur 1 globalen Takt (und idealerweise keinen Reset) geben sollte. Und 
ich würde sagen, mindestens 70-80% der Designs lassen sich so 
realisieren...
Insbesondere ein Anfängerdesign
- hat genau 1 Takt
- reagiert nur auf die steigende Flanke
- hat keinen asynchronen Reset (und schon gar keinen kombinatorischen)

Böse wird es dann mit mehreren Takten und asynchronen kombinatorischen 
Resets wie im Beitrag "Fehler durch Signalabgreifen"

Taktteiler werden in der Hardware auch nicht mit Zählern beschrieben, 
sondern mit Taktmanagern ausgeführt...


Und jetzt überleg dir mal, welchen der möglichen Fehler der Beispiele 
oben du mit einer Verhaltenssimulation herausgefunden hättest?

Autor: Hobbie (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

vielen Dank für die Beispiele.

Spielereien mit Variablen sind mir schon ausgiebiger bekannt
(aus laaaangen Fehlersuchen), ich verwende Variablen idR nur für
Castings (integer => std_logic_vector etc.).
Was mir zu Variablen gerade noch eingefallen ist: Hast du z.B.
gewusst, dass bei älteren Xilinx-ISEs (bis 10.3 glaube ich) die
Generierung von FFs durch getacktete Vatriablenschleifen (hässlich!)
fehlerhaft ist? In der Simulation wird z.B. der Startwert aus
der Definition/Initialisierung verwendet, in der Synthese aber
evtl. ein Anderer (glaube hier im Forum das Beispiel mal gelesen
zu haben). Sowas Abartiges lässt sich für einen HobbyFPGAler fast
nicht erkennen.

Und Fehler in der SensitiveList werden ja während der Synthese
angezeigt, werden von mir also als kleine Dummheit abgehakt und
korrigiert. Nach einer Korrektur ist mir noch nie ein Fehler
aufgefallen (was aber nicht Korrektheit impliziert).

Interesant finde ich aber das Beispiel Reset+EMVSpike, bei dem ein
Teil des FPGAs resettet wird. Ich nehme mal an, mit einer
"normalen" Hobbyausstattung (Board+Programmer, KEIN ChipScope
etc.) lassen sich solche Fehler nur schwer erkennen. (?)

Gruss und Danke,
Hobbie

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hobbie schrieb:
> Interesant finde ich aber das Beispiel Reset+EMVSpike, bei dem ein
> Teil des FPGAs resettet wird. Ich nehme mal an, mit einer
> "normalen" Hobbyausstattung (Board+Programmer, KEIN ChipScope
> etc.) lassen sich solche Fehler nur schwer erkennen. (?)
Die lassen sich auch mit Profiausrüstung nur schwer erkennen...  :-/
Erst Nachdenken und Grübeln bringt hier das Ergebnis. Insbesondere, wenn 
egal, was man ändert, immer noch ein (anderer) Fehler bleibt, dann ist 
man noch an der falschen Ecke unterwegs... ;-)

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.