8 bit computer, storing the microcode, solution
I have a solution for the micro code predicament mentioned before.
I’m using an 8KB EEPROM memory chip (the AT28C64). These memory chips will be divided into four segments, each holding pieces of microcode.
This microcode will be addressed as follows:
- bits 12 and 11 will be hardwired on the PCB to address one of the four segments in each of the three EEPROMs:
- 0b00 – least significant part of the micro code word
- 0b01 – middle part of the micro code word
- 0b10 – most significant part of the micro code word
- bits 10 to 3 will be connected to the Instruction Register where the instruction te be excited will be loaded, it addresses blocks of 8 bytes of microcode belonging to that instruction
- bit 2 to 1 will be connected to an on board counter especially built for the Control Unit; it will count to a maximum of eight steps and address the specific micro code bytes in every EEPROM; this counter will be driven by the (CLK) signal which is the inverse CLK to make sure that the proper control word is on the bus before the CLK makes it happen
Forming the control word
The output of the EEPROMs will form a 24 bit control word that is going to be connected to the computer’s bus and that will instruct all parts of the computer to perform the actions required.
Done in this way, we can load all EEPROMs with exactly the samen contents, making the programming more convenient as well as not having to think about where (at which of the three spots) a certain chip has to go.
What remains now is finding a way to program the EEPROMs. I’m thinking of a way to program them with an Arduino Nano under the control of a python program on my MacBook.
Stay tuned, more will follow…