??? 08/31/07 14:18 Read: times |
#143807 - What's your goal? Responding to: ???'s previous message |
Jan Waclawek said:
As I am really curious about what exactly is going on inside a typical '51, I decided to make one. OK, it would be difficult to carve one into silicon at home, and perhaps not really viable to build it from 74's, so I stick only to software. And, as many of the forum readers (including myself) are not really familiar with VHDL and Verilog, I try to stick to C; so the outcome will be not so useful, but perhaps might give some insight. I'm curious how you intend to learn what really is "inside" the MCU. When designing an ALU, there are numerous differences that are completely transparent to the programmer. One example would be the shift-rotate operations. These can be implemented as shift registers, or as multiplexers. How it's done has huge impact on the hardware, yet makes no difference to the outcome of such operations. In an ASIC, you can use wide gates, while FPGA offers no such option, requiring, instead, that you concatenate several 4-input structures in order to create a 1 of 16 data selector (multiplexer), just as one example. In FPGA, with small logic cells, one is forced to use the shift-registers, as large multiplexers create a large delay burden due to the need for concatenating multiple logic cells, in order to minimize timing impact. I will publish here snippets and thoughts and links to the sources as the project evolves, step by step, and try to comment also on "realisability" (as far as I am able to do so).
I think this might be as educational as Jon's simulator project, and maybe some fun, too. Public-domain IP cores of both Z80 and 650x cores exhibit about a 6:1 ratio of resource requirements. This is partly due to the implementation and partly due to the register resources included in the core. The silicon volume in the commercial device seems to differ by a ratio of about 4:1. Those of you who already designed your own '51 (Lynn, Jez, and maybe also others), please, don't laugh very loudly. Thanks. I believe your primary difficulties will be in (a) deciding on whether to simulate a 12/6/4/2/1-clocker and (b) figuring out what, within that choice, to simulate, as manufacturers will probably be reluctant to provide implementation details. Comments are, of course, welcome.
Jan Waclawek |