Ich habe mit eine Grafikkarte aus einem SRAM und einem XC95108 CPLD gebaut. Diese funktioniert soweit, nur der Datenbuus zum uC von dem die Bilddaten kommen macht mir Probleme: Da der SRAM nur jeden zweiten Takt für die Datenübertragung vom uC Zeit hat, speichere ich die die Daten vom uC erstmal in ein Register ab, und setze ein "neue Daten" Bit. Sobald das SRAM dann Zeit hat und das "neue Daten" Bit gesetzt ist, werden die Daten aus dem Register ins SRAM geschrieben. Allerdings kann es passieren, dass der uC während eines Schreibvorgangs ins SRAM neue Daten sendet. Man müsste das Register als 2 stufig aufbauen. Dazu muss das "neue Daten" Bit und die zu dem jeweiligen Byte passende Adresse auch irgendwo 2 stufig mitgespeichert werden. Insgesamt also ein ziemlicher Aufwand. Da gibt es doch bestimmt eine einfachere Lösung um das ganze ohne Wait-States für den uC zu lösen ?
Kommt der Takt für Controller und SRAM aus demselben Quarz oder sind die wirklich gegeneinander asynchron? Ein Rückmeldungsbit, "Byte abgeholt", frißt vermutlich zuviel Zeit.
Beide haben je einen eigenen Quarz (18,432MHz am CPLD -> 55ns SRAM Zurgiffszeit, 16MHz am uC) Das Busy Flag wäre das einfachste, aber genau sowas wollte ich vermeiden, denn das währen die oben erwähnten waitstates. Falls es nicht anderst geht, muss ich es wohl doch so machen.
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.