8 Copyright (C) 2006 Tommy Thorn
10 This is the first hardware implementation of Professor Knuth's MMIX
11 architecture. More than just the CPU core, this is a full computer
12 with an assortment of peripherals.
14 The present version is a micro-sequenced implementation which
15 primary purpose is an experiment to verify my understanding of the
16 architecture, a tool for learning, and a vehicle for building the
17 infrastructure (notably software) for the higher performance version
20 Performance specifically been a *non-goal* for this implementation,
21 as long as it was sufficient fast for the purpose mentioned above
22 and small enough to fit my development FPGA (Altera Cyclone
23 EP1C20). For practical reasons FpgaMMIX, as of this writing, runs
24 with a clock frequency of 25 MHz and takes at least 10 cycles per
27 Performance goal for the pipelined implementation (FpgaMMIX v1) is
28 one cycle execution for most instructions and a frequency in the
29 range of 100 to 200 MHz on the same hardware, thus 40-80X faster.
33 Any deviation from the specification given by Knuth should be
34 considered a bug (please report), unless explicitly stated. The TLB
35 is likely to implement only a subset of the specification.
37 The current implementation is fast approaching Milestone 1, that is
38 full RTL implementation of the integer subset. DIV[U] and all
39 floating point instructions will be emulated by the firmware. The
40 extend of hardware floating point support is TBD, particularly
41 depending on available logic resources. FpgaMMIX v1 is expected to
42 get basic hardware support for floating point arithmetic.
48 Big thanks to H. Peter Anvin for showing how to interface much of
49 the peripherals on the Nios Development Kit, Cyclone Ed. as well as
50 the Lancelot daughter card.
55 - Porting to cheaper or more capable platforms.