Electronic – Microchip DIY starting from Verilog

hardwaremicrochipverilog

Given the Verilog description of a chip, what are the steps necessary to implement it in hardware and how would a person DIY something like this?

For a specific reference. I was looking at the wikipedia webpage for MMIX that says:

Hardware implementations

As of July 2010, no known hardware implementations of the MMIX instruction set architecture exist. However, the fpgammix project implements MMIX in Verilog, making it possible to implement using a field-programmable gate array.

How can one go from the Verilog of MMIX to the actual hardware using a home setup? (I have no idea what a field-programmable gate array is)

Best Answer

From your description, I'm getting the hint you are looking to physically construct the HW with discrete components from a Verilog description so I'll address this first:

Taking on the task to build your own hardware really isn't a useful or practical task to take on. The reason is because your understanding in microcontroller hardware and architecture won't be that much greater if you can physically construct the hardware or architecture. Also, it would get so tedious in doing even trivial things. Constructing HW physically also has no functional benefit.

enter image description here

Above is an example of a single "NAND" gate constructed physically. I'm showing this as an example. You would need 5 components simply to accomplish the most primitive logic.

If you are interested in building HW, you should make your HW designs through FPGAs (the field programmable gate arrays you mentioned). There are plenty of development boards that hobbyists can interface with. These boards can help you get started in HW design very quickly.

An FPGA is (for sake of simplicity) an "empty" microcontroller, with no architecture or hardware. You design the hardware through some sort of design environment, and the design gets uploaded to the FPGA. This is a great hobbyist style FPGA board that I've personally used:

Mercury Nova FPGA