Hallo Zusammen Ich bin momentan am lernen habe ein Problem. Ich stehe hier mit meinem Verständins gerade an. Aufgabe: "Geben Sie die Gleichungen für die !CE aller 4 externen Bausteine an. Der Datenbus ist 16-Bit breit. 4PROM:4kB ab Adresse 0x0000H IO:4kB unmittelbar anschliessend an ROM FLASH:6000H Bytes anschliessend an IO RAM: Rest anschliessend an Flash " Die Aufgabe habe ich angehängt. Also habe ich mir überlegt: ROM: 4096 * 8 = 32'768 bit => 32'768 bit / 16 bit Adresse = 2048 Adresse die ich brauche. Also ist der Adressbereich von 0x0000 bis 0x07FF Mit dem gleichem Prinzip: IO: 0x0800 bis 0x0FFF FLASH (0x6000 gross): 0x1000 bis 0x3FFF RAM: 0x4000 bis 0xFFFF Nun soll ich mit diesen Adressen für !CE die Gleichungen herrausschreiben. Meine Überlegung ist für ROM: 0b0000 0000 0000 0000 0b0000 0111 1111 1111 Also sollte CE für ROM die Gleichung gelten: !A15 * !A14 * !A13 * !A12 * !A11 Jedoch habe ich dann die Schwirigkeit, dass ich beim Flash bei teil Adressen auch IO anspreche.... Wie komme ich auf die richtige Gleichung? Kann mir dass jemand besser als mein Lehrer erklären? Mit Wissensdurst und Freundlich Grüssen Benj
:
Bearbeitet durch User
Moin, Benjamin B. schrieb: > Jedoch habe ich dann die Schwirigkeit, dass ich beim Flash bei teil > Adressen auch IO anspreche.... Wie Kommst du da drauf? Schreibe doch mal alle Adressbereiche (wie für ROM) untereinander, und schaue welche forderen Bits für den jeweiligen Bereich gleich sind. Das du diese Bits verknoten musst, hast du ja offenbar schon Verstanden. Dann vergleiche die forderen Bitfelder, ob sie sicher unterscheidbar sind.
Also, gewöhnlichen Speicher und I/O spricht man nicht bitweise an, sondern entweder byteweise oder wortweise oder doppelwortweise oder gar mit 64 Bit Datenbreite. Dein Datenbus ist 16 Bit breit, also 2 Byte. Die Details deines Bildes kann ichnicht lesen, weiß also auch nicht, wieviel Adressbits vorhanden sind. Da sämtlicher Kram offenbar in einem gemeinsamen Adreßraum liegt, ist es also eine v.Neumann Maschine, folglich muß die Datenbreite aller Teile ebenfalls 16 Bit sein, die Adreßzählung wird aber vermutlich byteweise erfolgen. Das nicht angegeben zu haben, ist eine Schlamperei deines Lehrers. (Anmerkung: bei Harvard-Maschinen kann jeder Adreßraum seine eigene Bitbreite haben, z.B. bei den kleinen PIC16 ist der Befehls-Flash 14 Bit breit und wird nicht byteweise, sondern nur befehlsweise gezählt) Du hast also einen Adreßbereich, bei dem unter jeder Adresse ein Wort (also 2 Byte) zu erreichen sind. Die CE, also die low-aktiven Auswahlsignale werden nur durch die Adreßbits gebildet, für den eigentlichen Zugriff gibt es dann noch 2 Signale RD und WR, zumeist auch low-aktiv. (Anmerkung: bei Breite von 16 Bit brauchen RAM,ROM,etc. EIGENTLICH auch noch 2 Auswahlsignale BHE und BLE für High-/Low-Byte enable) So. 256=100h 1024=1K=400h 2048=2K=800h 4K=4096=1000h und so weiter. Und auf jeder Adresse gibt's 2 Byte. So. nun schreibst du dir auf, von wo bis wo deine Teile zu erreichen sind: ROM 4K: 0..???? (na, rechne das mal selber) IO 4K: ????..???? Flash 6K: ????..???? RAM: nicht ROM und nicht IO und nicht Flash. Also der Rest. Wenn du dir das hingeschrieben hast, dann weißt du auch, wieviel Adreßbits direkt an RAM,ROM,etc. gehen und welche Adreßbits du für deinen Dekoder verwenden mußt. Klaro? W.S.
Als Nichtfachmann in diesem Bereich hätte ich es naiv so formuliert: ich muss den kleinsten Adressbereich der Bausteine unterscheiden können, das ist hier ein Block mit 4096 Bytes = 2048 Worten = 2^11. Der Gesamtadressbereich ist 2^16; 2^16 / 2^11 = 2^5, folglich müssen die oberen fünf Adressleitungen für die Unterscheidung reichen.
Nun ja, da in der Aufgabe die Adressen mit 4 Hex-Ziffern angegeben sind, darf man wohl von 16 ausgehen.
Landolt irrte:
> ... fünf Adressleitungen ... reichen
Es sind wohl eher 6: der Flash mit seinen 6 kB = 3 kWorte = (2+1) k
bestimmt den kleinsten Adressblock, 1 k = 2^10, also 2^16 / 2^10 = 2^6.
Als Laie erkläre ich mir das irgendwie mit dem GGT, wie es formal
richtig ist, kann sicher W.S. ausführen.
Nur am Rande: hat sich die Schreibweise Ki (statt k) für 1024 noch
nicht durchgesetzt?
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.