Parallel Flash Memory ansteuern

Gast #297091
Lesenswert?
• ▲
▼
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
Gast #297093
Lesenswert?
• ▲
▼
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 ?
Gast #297097
Lesenswert?
• ▲
▼
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
Gast #297098
Lesenswert?
• ▲
▼
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. ?
Gast #297099
Lesenswert?
• ▲
▼
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren