Hallo ich möchte in vhdl programmierung einsteigen, kann mir einer ein einsteigerkit von xilinx (cpld nicht fpga) empfehlen?
:
Verschoben durch User
falls du student bist gibts her auch fuer fast das gleiche geld nen fpga http://shop.trenz-electronic.de/catalog/product_info.php?cPath=1_114_123&products_id=598
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?
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
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...
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...
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 =))
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...
@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
Hobbie schrieb: > würde mich schon mal Beispiele interessieren, die zwar der Simulation > laufen, in der Hardware aber nicht ... Bitte schön, der Klassiker:
1 | 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:
1 | process (clk) begin |
2 | a <= b; |
3 | 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-im-Prozess.html 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:
1 | signal n : integer range 0 to 1; -- n kann also nur 0 und 1 werden! |
2 | :
|
3 | process begin |
4 | wait until rising_edge(clk); |
5 | n <= n + 1; -- was passiert, wenn n=1 ist? |
6 | 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?
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
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... ;-)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.