Forum: FPGA, VHDL & Co. Actel Core8051 Speicheranbindung


von fredò (Gast)


Lesenswert?

Hallo.

ICh habe mir ein Actel 8051 EvalBoard zugelegt um ein bisschen mit dem 
Core8051 rumzuspielen.
Jetzt bin ich gerade dabei ein Design aufzusetzen, und da stellen sich 
mir ein paar Fragen. Auf dem Board hab ich einen SRAM (128Kx36) und ein 
32MB Flashmemory zur Verfügung.
Der 8051 hat ja die verschiedenen Speicher CODE, XDATA, DATA usw. Der 
CODE und XDATA unterstützen jeweils bis zu 64kBytes und liegen 
Adressparallel. Der DATA wird intern im FPGA realisiert.
CODE und XDATA haben jeweils ein eigenes Schreibe & Lesesignal. Aber mit 
dem Keil Debugger kann ich das Programm nicht in den Flash laden.
Über einen Adressdecoder würde ich jetzt die einzelenen Speicher 
einteilen, was mir ja ein zusätzliches Enable-Signal bringt. Jetzt hab 
ich in den UserGuides gelesen das CODE und XDATA in den selben Speicher 
gelegt werden können. Wie soll das funktionieren, denn beide sind ja 
Adressparallel und würde sich gegenseitig überschreiben? Mit den Enable 
& SChreibsignalen kann ich ja nur den Baustein oder die Bank aktivieren, 
aber ohne gebankten Speicher ist das ganze für mich ein Rätsel.

Vielleicht habt ihr ne Idee.

Danke, gruß

von Matthias (Gast)


Lesenswert?

Hallo,

der 8051 benutzt als Speicherstruktur eine Harward Architektur. d.h. 
Programmspeicher und Datenspeicher sind zugriffsmäßig getrennt, belegen 
aber physikalisch den gleichen Adressraum (0000-FFFF). Zu Unterscheidung 
gibt es das zusätzliche Signal PSEN. Dies Kennzeichnet bei L den Zugriff 
auf den Programmspeicher. Die Signale RD und WR sind während des 
Programmspeicherzugriffs H. Soll auf den Datenspeicher zugegriffen 
werden, muß PSEN H sein und RD oder WR L, je nach Lese- oder 
Schreibzugriff. Der Bereich 0000-FFFF steht hierbei 2x zur Verfügung.

Nun kann man die 3 Signale so kombinieren, das sowohl PSEN, als auch RD 
und WR auf den gleichen Speicherbereich zugreifen. Es ensteht die 
klassische Neumann-Architektur. Allerdings steht dann der Bereich 
0000-FFFF nur noch einmal zur Verfügung.

Du musst also wenigstens PSEN, RD, WR für die Selektion heranziehen. Das 
sich Daten und Programm nicht überschreiben mus Deine Software 
sicherstellen!

Gruß Matthias

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.