Hallo allerseits, und wieder mal eine VHDL Frage! Wie kann ich in VHDL den ganzen RAM auslesen? also in der Art : (in C heißt schleife ;) ) 1- Lese Adresse 2- Speichere wert 3- inkrementiere Adresse 4- Warte 10us 5- goto 1 Schleifen gibts in VHDL nicht, wie kann ich denn sowas realisieren (bei 1024 Adresse)? Wäre dankbar für einen Ansatz/Beispiel/ähnliches.
Hallo, leider ist der Ton in diesem Forum unter aller Sau. Das was mein vorredner dir als denkanstoss geben wollte ist, was würde Hardware tun? Leider kenne ich das Problem aus eigener erfahrung zu gut was den umstieg von reiner Software-Denke auf VHDL angeht. Was du machen kannst ist einen Automaten für das Lesen verwenden. ungefähr folgender aufbau: 1) Sates definieren : Lesen, Ende 2) varibal für deinen Adresscounter definieren 3)Taktsynchroner Rahmen, also auf eine Taktflanke reagieren, und noch einen Asynchronen Reset dazu. -wenn Reset dann State auf Lesen setzen und Counter auf 0 --sonst bei Taktflanke: wenn Lesen: Adresse anlegen Daten auslesen ist adresse ==1023? nein dann Counter<=Counter+1 State <= Lesen sonst State <= Ende sonst wenn Ende: State <= Ende Counter <=Counter fertig Sollte das dein erster kontakt mit VHDL sein wist du noch viel schlaflose Nächte haben :-) mfg CalM
>leider ist der Ton in diesem Forum unter aller Sau.
Das mag so sein. Kann sich aber meiner Meinung nach nicht auf meinen
Post beziehen. Warum das also hier bemerken? Oder ist alleine die an
sich neutral formulierten Aufforderung über eine bestimmte Frage
nachzudenken, schon beleidigend? Man kann die Empfindlichkeit auch
übertreiben.
Nabend, @Hmm falls ich dir damit auf die Füße getreten habe sollte war es so nicht gewollt. Jedoch ist aus der Fragestellung ersichtlich das ein leichter Schubs nicht wirklich ausreichend ist. @Lamy hast du was an Literatur zur Hand in der du einwenig suchen und wühlen kannst? mfg CalM
Also vielen Dank die Antwort. @CalM Ja du hast es richtig geahnt, ich komme aus der Software Ecke, und versuche gerade ein paar Aufgaben in VHDL zu erledigen. So ganz easy ist es nicht, ich muss mir immer sagen das das HW Beschreibung ist und keine SW!. bei den einfachen Sachen geht es noch aber bei sowas wie die Aufgabe oben muss ich schon sehr lange nachdenken (in Sw geht es in ein paar Codezeilen) bis überhaupt weiß wie dsas in VHDL gehen könnte. Ich habe hier: VHDl-Synthese(Schwarz) und FPGA Prototypnig by Examples (Pong Chu)
Lamy schrieb: > Ja du hast es richtig geahnt, ich komme aus der Software Ecke, und > versuche gerade ein paar Aufgaben in VHDL zu erledigen. uiuiuiuiui.... das könnte spannend werden ;-) Mal eben so "nebenher" wird das echt schwer. Du hast es ja richtig erkannt, mit der Hardware-Denke und die ist leider komplett anders, als die SW-Denke. Letztendlich beschreibst du für dein Problem einen Adresscounter, der die Adressen inkrementiert. Und dann musst du irgendwie steuern, dass dann, wenn die Adress anliegt, und die Daten aus dem RAM am Datenbus des RAM stabil sind, du diese "abholst". Das kann man zum Beispiel über eine Statemachine-Beschreibung machen. Wie ja bereits beschrieben wurde. Indem man in einem State die Adresse inkrementiert (also den Adresszähler um eins erhöht) und dann nach einer gewissen Zeit (z.B. einem Systemtakt), die Daten abholt. Man könnte aber auch einen kleinen Steuer-Counter machen, der mit jedem Systemtakt um eins inkrementiert und ein Vergleicher, der bei "0" den Adresszähler um eins inkrementiert und bei "1" die Daten abholt und den Steuer-Counter wieder zurücksetzt. Letztendlich sind das zwei vollkommen unterschiedliche Beschreibungen, wenn du den Code dazu anschaust. Aber die Synthese wird was sehr Ähnliches in Hardware auf dem FPGA umsetzen, da deine Zustände der Statemachine letztendlich auch nur in Registern gespeichert werden und somit dem kleinen Steuer-Counter aus dem zweiten Lösungsansatz entsprechen.. Will dir damit nur sagen, dass es teilweise viele Wege gibt, die in VHLD zu einer fast vergleichbaren Lösung in Hardware führen können. Weil man eben nicht "programmiert", sondern ein Verhalten beschreibt.
Hallo Lamy, evtl. hilft Dir dieser Blog beim Lernen von VHDL und Deiner Aufgabe: http://startingelectronics.com/software/VHDL-CPLD-course Und als Lehrbuch kann ich dieses empfehlen: http://www.amazon.de/gp/product/3486706802/ref=oh_details_o00_s00_i00?ie=UTF8&psc=1 Viele Grüße TheChief
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.