nee keine halbe vga-hardware nachgebaut, da wollte ich schon die Propeller-interne nutzen.
ich habe in der CPLD drinne:
2x16bit voreinstellbarer zähler/register für adressen
1x 16bit 2-auf-1 Multiplexer von den Zählern zu den Adressleitungen des Speichers
1x 8bit 1-auf 4 Demultiplexer von der 8bit-Datenbusverbindung Prop<-> CPLD zu den Voreinstelleingängen der zähler/register
Hardwareseitig verbunden sind Prop und CPLD:
8 Datenleitungen,
da quasi 2-mal die gleiche geschichte im CPLD: ein Selektionssignal (ein Out-Pin) des Prop
dann ein CE und ein R/W für die Datenbussteuerung zu den Speichern
und 2 Übernahme-Signale zur Adressierung der 8bit breiten Adressvoreinstellungen(H-Teil bzw. L-Teil der Adresse)
Wobei ich jetzt dazusagen muss, dass der Hardwareaufbau nicht speziell dafür erfolgte, sondern nur die "Neubenutzung" meines Hardwareprojekts
"Jugend-und Technik-Computer", alias "TINY", ist. Dabei war das damals ein komplettes Z8-System, die CPLD übernahm die sonst einzeln ausgeführte Kleinteilmimik,
und zudem die Anbindung an einen Prop, der rein als Slave, gesteuert vom Z8, VGA-AUsgabe und Tastatur übernommen hat.
Daher die vielen Verbindungen CPLD <-> Prop.
Im nächsten Schritt habe ich ja dann den Z8 (und auch erstmal die Speicher etc...) eingespart und das Ganze mal als reine Emulation in einem Prop geschrieben.
Kam da aber dann an die Speichergrenzen des HUB-Ram, konnte also nur ne bestimmte ROM-bzw.RAM-Größe emulieren.
Und daraus entstand dann die Überlegung nun wieder per eRAm bzw. auch eROM, notwendigerweise dann mit CPLD-Mimik,diese Hürde zu umgehen.
Also ein Propellerboard mit eMEM
Das steht jetzt eigentlich auch. Bis auf den Bildwiederholspeicher des emulierten Systems. Auch der sollte in den eRAm.
Die Nützlichkeit des automatischen Adressincrements durch CPLD wurde schon deutlich sichtbar bei meinen Spielereien.
Hole ich z.B in meiner Emulation aus dem eRAM den zu emulierenden Z8-Code(zB. einen 3Byte-Befehl) jeweils einzeln mittels vorheriger Angabe der einzelnen Speicheradresse
(also H-Teil Adresse ausgeben, L-Teil ausgeben, Daten lesen) dann kriecht der Emulator nur so durch die Gegend.
Muss nur einmal die Adressausgabe erfolgen und dann durch drei aufeinanderfolgende Lesezugriffe das Lesen von einem Befehl, dann fängt er an gut zu Laufen.
OK, genug geschwatzt, Chef kam gerade, muss mal was arbeiten
Grüße Üwe