Hallo Zusammen. Ich arbeite mich gerade in VHDL ein. Leds jetzt zum leuchten bringen und derartige Spielerreien bekomme ich jetzt gut hin. Als nächstes würde ich gerne einen externen SRAM-Bautein (IS61LV256Al) ansprechen. -Startwert soll an die Startadresse geschrieben -dann zu nächsten Adresse gegangen werden -Wert wird um 1 erhöht und reingeschrieben .. bis der Speicher voll ist. Der Endwert soll dann evtl später eingelesen und über LED ausgegeben werden. Mir geht es in erster Line gar nicht um den Code an sich sondern um die schematische Herangehnsweise. Wie realisiert man am besten den Controlpfad und den Adresspfad oder denke ich da schon zu kompliziert? Spielt simulation schon eine Rolle? Hoffe auf ein paar nützliche Tipps und Hinweise. MfG, Walter
Walter schrieb: > Wie realisiert man am besten den Controlpfad und den Adresspfad oder > denke ich da schon zu kompliziert? Mit einer State-Machine. > Spielt simulation schon eine Rolle? Auf jeden Fall. Das macht die ganze Sache sehr anschaulich. Duke
Mit State-Maschine meinst du in etwa sowas? --------------------------------------------- Wenn _CE =1 dann state = IDLE Wenn _WE = 1 _CE = 0 _OE = 0 dann READ Wenn _WE = 0 _CE = 0 _OE = 1 dann WRITE switch state case IDLE Reset gedrückt? Start gedrückt? Adresse = 0 Wert = 0 case READ Wert <= Data wenn Endadresse dann state = IDLE case WRITE Data <= Wert Wert++ Adresse++ andernfalls Data = Z --------------------------------------------- Und zum Simulieren noch eine Frage. Gibt es SRAM Hersteller bei denen man eine Testbench fertig vorfindent?
Walter schrieb: > Mit State-Maschine meinst du in etwa sowas? Jepp. Das scheint in die richtige Richtung zu gehen. > Und zum Simulieren noch eine Frage. Gibt es SRAM Hersteller bei denen > man eine Testbench fertig vorfindent? Ein komplette Testbench sicher nicht. Aber die Modelle dürften sich finden lassen. Such mal nach cy7c1354b.vhd oder cy7c1380d.vhd. Duke
Hallo zusammen, ich habe hinsichtlich des Themas auch noch mal eine kleine Frage. Spartan 3 Board - gl. SRAM Also ich möchte 16 Bit parallel (extern) bei jeder steigenden Taktflanke in mein SRAM speichern. CE = 0 UB = 0 LB = 0 WE = 0 OE = 1 Adresse bei 0 beginnend und zählt bei jeder Flanke um 1 hoch? sieht dann etwa so aus: clk ___|---|___|---|___|---|___|---|___ 9 MHz DATA ===x=======x=======x=======x====== 16 Bit CE ___________________________________ '0' LB ___________________________________ '0' UB ___________________________________ '0' WE ___________________________________ '0' OE ------------------------------------- '1' Adr 0 | 1 | 2 | 3 | 4 ...... leider will das ganze nicht so wie ich will. Muss ich WE zwischendurch (vor jeder Adressänderung) immer wieder auf '1' setzen ? Wenn ja müsste ich also min. mit dem doppelten Takt arbeiten als mit dem, um die Daten zu schreiben. Somit komm ich also um ein DCM nicht herrum , oder? MFG
Zu allererst: Es sieht in dem ASCII-Bild so aus, als wenn DATA sich während der steigenden Flanke von clk ändert. Was hältst Du davon, zu diesen Zeitpunkt die Daten stabil zu lassen und sie z.B. während der fallenden Flanke zu ändern? Dann würde zumindest auch was Eindeutiges gespeichert werden... ;-) Gruß, Thomas PS: Sehe gerade, die Adressen ändern sich ja auch genau während der steigenden Flanke. Das geht so nicht...
Laut diesem Datenblatt (Seite 7, Write Timing) - http://www.issi.com/pdf/61LV256AL.pdf - muss WE sich bei jedem Schreibzyklus ändern. Also in beim Schreiben wechselt WE auf 0 danach wieder auf 1, vorher Adresse und Daten anlegen , die steigende WE flanke übernimmt die Daten dann. http://de.yhs4.search.yahoo.com/yhs/search;_ylt=A03uocQ5bj9RcVgATA5fCwx.?p=IS61LV256Al+datasheet&fr2=sb-top&fr=altavista&rd=r1
hi, >Es sieht in dem ASCII-Bild so aus, als wenn DATA sich während der >steigenden Flanke von clk ändert. oh ja Fehler von mir. dem ist nicht so :) aber wie sieht es denn mit we aus. kann ich das durchgehend auf '0' lassen und nur die adresse ändern? MfG
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.