While I'm on my podium, one more quick thing:
(I know this isn't your word perse, so I'm not picking on you Brian)
but I think the word "emulate" is really walking a thin line when we
talk about this stuff. The minimig, for instance, is really an Amiga
clone. It doesn't "emulate" a processor -- it either has a physical
hardware processor or a processor core in the FPGA. The hardware
actually exists physically. The custom chips logic is physically
instantiated and temporarily created within the FPGA.
All this stuff is sort of "better than", or one step above, emulation.
Here's the best part: let's say you don't like how the original amiga
bus worked. You can take the existing design, and reimplement an
entirely new bus, reconnect the various logic to the new bus, and off
you go. What's amazing is that you are simply modifying code to make
all this happen. Never touched a PCB design tool, wire wrap tool, wires
on a breadboard, etc.
Best yet, say you don't even have (any) hardware in front of you -- you
can simulate your newly designed creation and look at logic waveforms to
test your creation. Does it do what you intended? Is the timing right?
Amazing stuff here.
Keith