Forum: FPGA, VHDL & Co. Byte lesen und schreiben beim SRam DE1.lb und ub


von peter (Gast)


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

von peter (Gast)


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

von -gb- (Gast)


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.

von Mike (Gast)


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);

von -gb- (Gast)


Lesenswert?

Ok und was ist wenn er immer nur z.b. das LB verwendet? Klar er verliert 
die andere Hälfte vom RAM aber dann bräuchte er doch nur die 8 
Datenleitungen zum LB?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

-gb- schrieb:
> das loser byte
Das Arme...

-gb- schrieb:
> Klar er verliert die andere Hälfte vom RAM aber dann bräuchte er doch
> nur die 8 Datenleitungen zum LB?
Aber es sind doch eh' schon alle verdrahtet auf dem DE1 Board...

von Gustl B. (-gb-)


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.

von peter (Gast)


Lesenswert?

Danke, ich nehme jetzt Datenleitung 0-15.

Gruss

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
Noch kein Account? Hier anmelden.