Byte lesen und schreiben beim SRam DE1.lb und ub

Gast #3949111
Lesenswert?
• ▲
▼
Hallo, guten Tag.

Ich möchte bitte Byte lesen und schreiben auf dem SRAM am DE1.


Welche Funktion hat das Signal "lb" und "ub" ?
Wie muss ich die beiden Signale setzen wenn ich nur mit Byte bei den 
Daten spiele? Muss das Signal dazu jedesmal beim lesen und schreiben 
gesetzt werden?

Danke.

Gruss
Gast #3949114
Lesenswert?
• ▲
▼
Wie breit muss die Datenbreite am SRAM beschaltete werden bei 1 Byte 
lesen und schreiben:
rdata : inout std_logic_vector (7 downto 0)oder

rdata : inout std_logic_vector (15 downto 0) setzen bzw beschalten an 
den Pins vom DE1?

Danke.

Gruss
Gast #3949320
Lesenswert?
• ▲
▼
LB ist wohl das loser byte und UB das upper byte. Das SRAM speichert je 
Adresse vermutlich 16 bits, also zwei bytes. Dazu brauchst du dann 16 
Datenleitungen. Wenn du immer nur 8 bits lesen/schreiben willst dann 
kannst du für jede Adresse mit LB und UB noch auswählen welche 8 der 16 
bits du auswählen willst. Dann brauchst du vermutlich auch nur 8 
Datenleitungen.
Gast #3949358
Lesenswert?
• ▲
▼
-gb- schrieb:
> LB ist wohl das loser byte und UB das upper byte. Das SRAM speichert je
> Adresse vermutlich 16 bits, also zwei bytes. Dazu brauchst du dann 16
> Datenleitungen. Wenn du immer nur 8 bits lesen/schreiben willst dann
> kannst du für jede Adresse mit LB und UB noch auswählen welche 8 der 16
> bits du auswählen willst. Dann brauchst du vermutlich auch nur 8
> Datenleitungen.

Er braucht immer noch 16 Datenleitungen. Mit UB/LB kann man nur 
auswählen welche der beiden Hälften sich bei Schreibvorgängen ändern 
soll.

Steht eigentlich alles im Datenblatt...

Hier mal ein Ausschnitt aus der Anbindung einer 8 Bit CPU an den 16 Bit 
SRAM auf dem DE1:
1
    RAM_D <= SRAM_DQ(7 downto 0) when A(0)='0' else SRAM_DQ(15 downto 8);
2
    SRAM_DQ(7 downto 0)  <= CPU_DO when WR_n='0' and RAM_CS_n='0' else (others => 'Z'); 
3
    SRAM_DQ(15 downto 8) <= CPU_DO when WR_n='0' and RAM_CS_n='0' else (others => 'Z'); 
4
    SRAM_UB_N <= not A(0);
5
    SRAM_LB_N <= A(0);
6
    SRAM_ADDR(13 downto 0) <= A(14 downto 1);
#3949552
Lesenswert?
• ▲
▼
Ok sorry wegen dem "loser" hab das auf dem handy getippt und 
Autokorrektur ist ein Astloch :-)

Ja, natürlich ist das alles verdrahtet, aber darum geht es ihm nicht, er 
will Bytes schreiben, vermutlich einzelne. Mehr sagt er leider nicht. 
Ich vermute er will den SRAM erstmals in Betrieb nehmen. Da ist es dann 
einfach immer nur das UB oder LB zu schreiben und die UB/LB Signale auf 
feste Werte zu setzen.

Natürlich will man später den ganzen Platz haben und ich sehe auch 
keinen Sinn darin nur jeweils ein Byte zu schreiben/lesen wenn es 
sowieso schon für 16Bits verdrahtet ist.

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.