Auf eimem FPGA-Board befindet sich ein 32MBit Flash Memory, das für Applikationen (nicht Konfiguration) genutzt werden soll. Das Flash wird parallel von dem FPGA (Spartan-3) angesteuert, d.h. ich habe 16 Datenleitungen (D0..15) und 25 Adressleitungen (A0...24) sowie diverse Steuerleitungen. Ich möchte nun diese Flash Memory für meine Apllikationen nutzen. Da ich aber leider null Erfahrungen mit dem Ansteuern von Speichern habe, baue ich schwer auf Eure Hilfe. Kann mir einer mit Erklärungen, Links oder auch am besten mit Codebeispielen (VHDL) helfen ? Ich bin für jede Art von Hilfe dankbar. Ich vermute mal ich muss eine Art Controller realisieren, der mir ein geeignetes Timing zur Ansteuerung erzeugt. Wie greife ich auf bestimmte Bereiche im Flash zu ? Gibt es dort auch so eine Art Speicher Mapping. Wie macht man diese Zuordnung mit VHDL ? Danke !!! Gruß aus der Pfalz
Das Wichtigste - wie so oft - ist das Du Dir erstmal in Ruhe das Datenblatt des betreffenden FLASH-Speicherbausteins durchliest.
Hallo, ich denke, das Datenblatt gibt mir erstmal keine Hinweise darauf.... Ist es sinnvoll eine State Machine zur Erzeugung des Timings zu bauen ? nachdem das Timing erzeugt ist, wie nutze ich dann den Speicher bzw. wie spreche ich ihn an (wie eine Array ?) Wie realisiere ich das in VHDL ?
Aus den Timingdiagrammen solltest du eigendlich leicht auf die Ansteuerung kommen. Eine FSM ist sinnvoll.
ich möchte das Flash nur lesen !!! Hat einer eine Idee, wie man so etwas realisiert ? Hat einer ein Codebeispiel ? Achso als Flash kommt ein Intel Strata Flash 28f320j3 zum Einsatz.
Also wenn der Flash nur gelesen werden soll verstehe ich das Problem nicht. Adresse anlegen CE und OE auf Low - RST und WE bleiben immer auf high und die Daten stehen zur Verfügung. Oder ist VHDL Dein Problem? Du hast 25 Adressleitungen - also: signal flash_addr : std_logic_vector(24 downto 0); Du hast 16 Datenleitungen - also: signal flash_data : std_logic_vector(15 downto 0); Wenn Du einen Takt von 10MHz nutzt und bei jeder steigenden Flanke die Flashadresse um 1 erhöhst sollte der Flash schnell genug sein seine Daten zu liefern. Viele Grüße TobiFlex
OK, da ich nur lesend auf das zugreife, ist es vielleicht wirklich nicht so schwer. Wenn ich das richtig verstanden habe, dann muss ich mit einem Takt von 10 MHz arbeiten, wenn die Zugriffszeit auf die Daten (sprich von Anlegen der Adresse bis zur Verfügbarkeit der Daten) so um die 100ns liegt. Ist das richtig ? Allerdings arbeitet das Flsh im Page Mode, d.h. die Zugriffszeit für das erste Datenbyte sind länger als für die anderen (oder allgemein ausgedrückt die Zugriffszeiten sind unterschiedlich). Wie muss ich meine State Machine takten bzw. mit welchem Takt muss ich dann arbeiten. ?
Hallo, suche mal nach EEPROM habe schon einige Beitrage dazu verfasst wie ich ein parallelles EPPROM angesteuert habe. Ich habe zwar dafür einige Latches verwendet aber vom Timing her ist ja das gleiche.
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.