mikrocontroller.net

Forum: FPGA, VHDL & Co. SRAM auf DE2 Board


Autor: David Reimann (studentt)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich versuche zur Zeit einen SRAM anzusteuern, was leider noch nicht 
richtig klappt.
Wenn ich WriteEnable setze (ReadEnable nicht gesetzt) und dann eine 
Addresse und auf den Addressport lege und ein Datenwort von 16 Bit auf 
den Datenport lege wird nichts gespeichert, denk ich jedenfalls, da, 
wenn man es genau umgekehrt mit Lesen versucht nichts kommt.


Hat vielleicht jemand von euch einen Tip was schieflaufen könnte, bzw. 
weiß jemand ein gutes Tutorial bezüglich des SRAM´s?

Viele Grüße
David

Autor: SeriousSam (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist dort nicht ein asynchrones SRAM auf dem Board? D.h. du legst Adresse 
und Daten an und gibst dann eine Flanke auf WriteEnable (nWE). Daneben 
hat es noch 2 Byteenable (nUB, nLB) Pins sowie ein Outputenable (nOE) 
und das ChipEnable (nCE) die du entsprechend steuern musst.
OutputEnable (eig. ReadEnable) musst du aktivieren zum lesen, auf 
WriteEnable gibst du eine Flanke zum schreiben, wenn die Daten anliegen.

Autor: David Reimann (studentt)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So hab ich es ja auch versucht, jedoch tut sich nichts. Kann es 
eventuell sein, dass man den SRAM-Baustein vom DE2-Board erst 
initialisieren muss, bevor man ihn ansteuern kann?

Viele Grüße
David

Autor: SeriousSam (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Nein, du musst nichts initialisieren. Wenn du alle Pins korrekt 
ansteuerst (negative Logik) sollte es funktionieren. Hab dir im Anhang 
noch ein VGA-Controller fürs DE2 welcher das SRAM als Framebuffer 
braucht.

Autor: David Reimann (studentt)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Seh ich das dann richtig, dass ein paralleles Schreiben und Lesen nicht 
möglich ist?

Viele Grüße
David

Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn WE=low schreiben sonst lesen.
Gleichzeitig lesen und schreiben geht nicht.

Autor: SeriousSam (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie möchtest du das machen über einen Bus? Da hast du eine schöne 
Buscontention.

Autor: David Reimann (studentt)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hm, also ich möchte auf den SRAM-Chip RGB Informationen speichern, für 
ein Display mit der Auflösung 320 x 3 x 240. Den Addressbus habe ich in 
einen Zeilenaddressierer (10 Bit) und einen Spaltenaddressierer (8 Bit) 
gesplittet. Beide beginnen bei 0. Die Bits sind folgendermaßen gesetzt:
LB = 0, UB = 0, WE = 0, OE = 1, CE = 0.

Dann lege ich die Addresse und die Daten an. Z.B.:

addresse <= Zeilenaddresse & Spaltenaddresse;
sramdata <= RGBData;

Nun lasse ich jeden Takt die Addresse einen höher zählen, bis ich das 
ganze Bild in RGB-Daten abgelegt habe (bzw. gern hätte).

Aber leider geht irgendwas schief. Es wird nur was in die Erste Addresse 
geschrieben (die erste RGB-Information).

Danach passiert garnichts mehr, obwohl ich die gesamten Addressen einmal 
durchlaufen lasse.

Nun die Frage:

Taktweises schreiben sollte doch möglich sein, oder muss ich 
zwischendurch manche Bits nochmal zurücksezten, obwohl schon alles auf 
Schreiben eingestellt ist?

Viele Grüße
David

Autor: SeriousSam (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das SRAM schreibt die Daten auf der fallenden(?) Flanke des WriteEnable. 
Du musst dort die Signale geben. Je nach dem brauchst du halt einen Takt 
Setup und dann einen Hold.

Autor: Mike (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau doch einfach mal ins Datenblatt des SRAMs. Dort ist ausführlich 
beschrieben wie er angesteuert werden möchte. Es gibt 4 Varianten Daten 
reinzuschreiben und du verwendest keine davon.

Wenn du Hilfe möchtest, dann wäre es schon sinnvoll mal den 
entsprechenden Code-Schnipsel hier einzustellen (oder zumindest mal das 
Ergebnis der Simulation).

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.