romasi wrote
One of my most anticipated components of this course was understanding and creating the memory that holds the instruction for the CPU. At this point I still have trouble fully understanding how we migrate the ALU "codes" over to an instruction memory and create the mnemonics. Rather disappointed that it is missing from this course as it would have been one of the more interesting (and probably beneficial) part of the Hardware section. Additionally, it stops users from being able to define their own instruction set and assembly language which rather limits the ability to expand the features of the CPU (or is this controlled another way?).
Do you know of a good resource for those of us who would like to learn these topics?
As stated earlier in this thread, these parts require more hardware knowledge. An EPROM is, at its heart, and analog circuit that involves semiconductor (quantum) physics in its design.
You can change the design of your ALU/CPU/Computer and run them in the Hardware Simulator. You will need to have written your Hack assembler (chapter 6) so that you can change it to generate your new binary code. Warning: the Hardware simulator gets a bit weird if you have more than one ROM32K or RAM16K. (It can't properly lay out the UI frames for them.)
Another thing I recommend is to build a Hack computer in
Logisim. You'll need to use Logisim's kbd and tty parts instead of the Hack versions. Mine looks like this:
For some ideas for enhancements, see these posts:
Ideas for a Slightly More Powerful CPU Hack II: Escaping the Harvard straitjacketI've implemented both of these variants in Logisim.
--Mark