Hallo Leute, Ich habe erst seit kurzem begonnen mich mit VHDL zu beschäftigen. Ich lese mich wil durch das Internet, und jetzt habe ich von einem freund doch ein Skriputum bekommen. Da ich wirklich ein absouluter Anfänger bin sind mir da ein paar Fagen aufgefallen. ENTITY and2 IS PORT ( in1,in2: IN bit; nd_out: OUT bit); END and2; ARCHITECTURE number_one OF and2 IS BEGIN and_out<=in1 AND in2; END number_one; Bis hier her ist alles klar, aber ich verstehe den CONFIGURATION-Teil nicht, was soll der Befehl heissen "FOR number_one" ? CONFIGURATION and2_config OF and2 IS FOR number_one END FOR; END and2_config; Meine nächste Frage handelt sich um die Entwurfsebenen in VHDL ( Algorithmische, Register-Transfer-Ebene, Logikebene) Also die Logikebene Versteh ich, das sind die ganzen &,ODER Verknüpfungen. Aber was heisst Entwurfsebene, muss man bevor man programmiert iergendetwas vordefinieren in welcher Entwurfsebene man ist ? Meine frage ist nur was die Algorithmische ebene ist und die Register-Transfer-Ebene, wozu benötigt man diese und was heisst eigentlich Register-Transfer... 2 Fragen hab ich noch. In einer Architecture wird folgendes geschrieben: ARCHITECTURE .... OF ... IS BEGIN ... write_data_alg:PROCESS //was bedeutet diese Zeile ? BEGIN ... END PROCESS write_data_alg END Anrchitecturename... Es handelt sich um einen Processkörper, meine Frage ist was ist überhaupt ein so ein Processkörper, wozu wird er benötigt, wieso steht er in der Architecture und was ist eine Sensitivity-List ( wan braucht man die) ? Sorry Leute, aber ich kann echt alles nur Bruchweise oder fast gar nichts, ein gutes Buch find ich nicht und ich habe dieses Skriptum nur von einem Freund bekommen. Ich hoffe ihr könt mir, bei den warscheinlich logischsten Fragen :) , helfen. MFG Mathias
Mathias Slawitschek schrieb: > ein gutes Buch find ich nicht Leih dir "VHDL-Synthese" von Reichardt&Schwarz aus... Das ist zumindest das bruchbarste deutsche Buch zum Thema. Und dann natürlich/zusäztzlich als Nachschlagewerk Peter Ashenden umfassender "Designers Guide to VHDL" Es ist müßig, diese Grundlagenfragen zu beantworten, denn du hast noch gar keinen Plan von VHDL (das ist nicht nicht böse gemeint), deshalb könntest du mit irgendwelchen Antworten nichts anfangen. Bestenfalls würden dann neue Fragen auftauchen...
Naja in dieser kurzen Zeit hab ich nichts gefunden was Bücher angeht. Was ich vergessen habe ist, das ich in C schon Kentnisse habe, also komplett blank bin ich nicht was im Allgemeinen das Programmieren angeht.
Mathias Slawitschek schrieb: > Was ich vergessen habe ist, das ich in C schon Kentnisse habe, Schlecht, schlecht... :-/ > also komplett blank bin ich nicht was im Allgemeinen > das Programmieren angeht. Vergiss die Software- und Programmier-Denkweisen sofort. VHDL ist nicht "Programmieren". VHDL ist Hardwarebeschreibung. Das bedeutet: du beschreibst mit Buchstaben etwas, das du dir im Kopf als Logik und Flipflops vorstellen kannst (nur diese Elemente gibt es in programmierbarer Logik!). Wenn du dir die Funktion nicht vorstellen kannst, dann kommt UNBEDINGT Schrott raus... > Es handelt sich um einen Processkörper, Soweit korrekt. > meine Frage ist was ist überhaupt ein so ein Processkörper, Es ist ein Syntaxelement der Sprache VHDL. > wozu wird er benötigt, Um sequentielle Beschreibungen zu gruppieren. Und schon das Wort "sequentiell" ist in der Hardwarebeschreibung extrem irreführend. Da ist nichts mit "hintereinander", da passiert alles GLEICHZEITIG... > wieso steht er in der Architecture Nur dort darf er hin. > und was ist eine Sensitivity-List Das ist die Liste, die dem SIMULATOR angibt, bei welchen Signaländerungen der Prozess neu zu berechnen ist. > ( wan braucht man die) ? Die braucht man imn jedem Prozess, der nicht mindestens ein wait Statement enthält. Wenn der Prozess aber eine wait Anweisung enthält, muss die Sensitivliste leer sein! Zum Thema "FOR-Schleife und Anfänger"... Such mal nach meinen Postulaten: http://www.mikrocontroller.net/search?query=anf%C3%A4nger+postulate&forums[]=9&max_age=-&sort_by_date=1 Ich würde dir zu allererst mal das "Hello World" der Hardware empfehlen: http://www.lothar-miller.de/s9y/archives/61-Lauflicht.html
Ich vergaß zu erwähnen: Im den ersten paar Monaten deiner VHDL-Karriere brauchst du keine Variablen und keine Schleifen.
Ich danke dir sehr für diese Antworten. Trotzdem bleiben noch die Ebenen über, üerall in diesem Skriptum werden sie erwähnt. Könntest mir Bitte diese auch so leicht ie möglich erklären ? Danke im Vorhinein MFG
Mathias Slawitschek schrieb: > Meine nächste Frage handelt sich um die Entwurfsebenen in VHDL > (Algorithmische, Register-Transfer-Ebene, Logikebene) > Also die Logikebene Versteh ich, das sind die ganzen &,ODER > Verknüpfungen. Aber was heisst Entwurfsebene, muss man bevor man > programmiert iergendetwas vordefinieren in welcher Entwurfsebene man ist Diese "Ebenen" sind nur logische Denkmodelle und ausschliesslich zur Verwirrung von Schülern und Studenten da. Es gibt diese "Ebenen" nicht wirklich. Du kannst die "Beschreibungsarten" jederzeit beliebig mischen. Einen Addierer kann ich z.B. auf der "algoritmischen Ebene" einfach als c <= a+b; beschreiben. Ich kann den auch auf der "Logik-Ebene" mit Halbaddierern und einer Carry-Kette beschreiben, oder gar auf der RTL-Ebene mit Basiselementen (AND-Gatter, (X)OR-Gatter) die mir der Hersteller des FPGAs anbietet. Nur ist das ausgekochter Blödsinn, und deshalb spielt sich das Ganze sinnvollerweise auf der höchsmöglichen "Ebene" ab, die dann auch am einfachsten lesbar ist. Blöderweise machen da einige Lehrer noch recht lange am RTL-Halb- und Volladdierer rum... BTW: Bitte nicht plenken... > in welcher Entwurfsebene man ist > ? Ein Fragezeichen hat keine eigene Zeile verdient... :-/
Allgemein würde ich sagen solltest du erst mal ein paar Digitaltechnik Bücher Lesen. Also Kombinatorische Bauelemente und Sequentielle wie Flip Flops (sind keine Schuhe).Wie man aus Kombinatorischen Sequentielle macht. Die unterschiedlichen Arten von Flip Flops D,T,JK, rote Flip Flops, grüne mit Punkten usw. naja. Und wie man Sie verschaltet um etwas bestimmtes zu erreichen. Dann sollten Counter dran sein z.B. zeichne einen Binären Counter der von 0 bis 9 Zählt vorwärt und Rückwärts usw. Dann Statemachines, also Kombinatorische Bauelemente mit Sequentiellen in allen Varianten. KV-Diagramme usw. Dann Erkennen das man mit einer Normalen Programmiersprache eigentlich alles Nachbilden Kann. Ausprobieren und erkennen das trotzdem alle Kombinatorik IMMER sequentiell ist. Nun eine Hardwarebeschreibungssprache wie VHDL probieren und alles wird OK.
Uwe schrieb: > Also Kombinatorische Bauelemente und Sequentielle wie Flip Flops > : > das trotzdem alle Kombinatorik IMMER sequentiell ist. Was ist jetzt sequentiell? Flipflops oder Kombinatorik? Und was hat das mit einer sequentiellen Beschreibung (in einem Prozess) oder einer nebenläufigen Beschreibung (ohne Prozess) zu tun? Aber im Tenor stimme ich zu: die Hardware-Denkweise lernen. Uwe schrieb: > Die unterschiedlichen Arten von Flip Flops D,T,JK, rote Flip > Flops, grüne mit Punkten usw. > Und wie man Sie verschaltet um etwas bestimmtes zu erreichen. Das Kennen der unterschiedlichen Flipflops in einem FPGA ist schnell erledigt: es gibt nur das D-Flipflop. Als Krönung mit Clock-Enable. Als Gimmick mit Preset/Clear oder Set/Rest. Fertig ist die Laube. Und dann gibt es noch, meist aus einer fehlerhaften Beschreibung resultierend: das gemeine LATCH... :-o
Ich schrieb -> Dann Erkennen das man mit einer Normalen Programmiersprache eigentlich -> alles Nachbilden Kann. Ausprobieren und erkennen das trotzdem alle -> Kombinatorik IMMER sequentiell ist. -> Nun eine Hardwarebeschreibungssprache wie VHDL probieren und alles wird -> OK. Erklärung : In einer Programmiersprache Versuchen bestimmte Schaltungen zu realisieren und Erkennen das eine normale Programmiersprache immer Sequentiel ist und man nur mit Tricks eine Nebenläufigkeit simmuliert bekommt. (Multithreading und so mal ausgenommen) Danach merkt man schnell das VHDL keine Programmiersprache ist sondern eine Harware beschreibungssprache.
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.