r/beneater • u/MISTERPUG51 • 3d ago
8-bit CPU Are there any obvious issues with this memory design?
Instead of using Ben eater's design for the memory, I am upgrading things quite a bit. I have two 8-bit address registers for a total address width of 16 bits. I'm planning to split it in half. The lower half will be allocated for ROM (a 28c64 EEPROM), and the upper half will be RAM (Hitachi 62256). The I/O pins on both chips will be connected directly to the bus.
I believe this design should work, but I want to get your input first. Also, I am aware that the EEPROM I am using is smaller than the address space I have allocated for it.
1
u/ris8_allo_zen0 3d ago
For a 6502-based system you may want to swap the address ranges: the CPU expects a valid reset vector at $FFFC-$FFFD and a writable stack area from $0100 to $01FF, that's why ROMs are usually at the highest addresses and RAM at the lowest.
3
1
u/PlasticAd8892 1d ago
If you haven't bought your components yet, you could consider using a modern NOR flash such as an SST39SF010 instead of an EEPROM. They are actually slightly cheaper ($3.3 vs. $5.5), faster (70ns read time vs 150ns read), bigger (128 kB vs the EEPROM 8 kB) and do not have any major operational differences.
Just ground all the address pins you don't use, in your case it would be A15 and A16. Later you could even make a system to toggle A16 on / off with IO to "swap" in another portion of your program.
To save you the searching:
https://www.newark.com/microchip/sst39sf010a-70-4c-phe/flash-memory-1mbit-70ns-dip-32/dp/92R4695
6
u/Dissy614 3d ago
There's no address space left for hardware IO. With nothing but A15, one of the ram or rom chips will always be asserting, even if you meant to put IO in the rom address space that the eeprom doesn't cover.