FPGAs and Microprocessor Design

From Kwartzlab
Jump to: navigation, search

Contents

Introduction

In this course you will create a microprocessor using an FPGA.

This course is an attempt to recreate the good parts of ENGG*3380 Computer Organization and Design at the University of Guelph, the 2007 outline of which is available online. It will also be changed to suit a kwartzlab type environment: low cost, short time, asynchronous study, free / open source tools, use of peer resources, and collaboratively improved course materials.

Objectives

If you finish all the regular parts of the course, you should be able to:

  • describe the functionality of basic microprocessor elements in English
  • describe basic microprocessor elements in a hardware description language (VHDL or Verilog)
  • run and interpret simulations of logic hardware
  • synthesize a description of a hardware and program it onto an FPGA
  • write a program in machine code for a MIPS processor you have designed
  • relaxen und watchen Das Blinkenlights

Textbooks

  • Digital Design and Computer Architecture appears to follow the same path as this course intends to, and covers both VHDL and Verilog. Also seems to start from first principles, which is good for this course. UW Davis Centre at the University of Waterloo has a copy. See Trellis.

Tools

There are a few choices for technologies, and these impact what tools can be used. The choices are Verilog vs. VHDL for a hardware description language and Altera Xilinx for an FPGA manufacturer (and consequently provider of synthesis tools).

General

  • ModelSim PE Student Edition does simulations of VHDL and Verilog designs and is free. Windows only.
  • GTKWave is used to view wave files output when a simulation is run from a command line tool like Icarus Verilog or GHDL. This will let you see the behaviour of the different logic elements in your design.
  • SPIM is MIPS simulator.

Verilog

  • Icarus Verilog looks like a very promising FOSS Verilog simulation tool, and maybe it can do some form of synthesis?

VHDL

  • GHDL is a VHDL simulator that in pwalker's experience is kind of clunky, but maybe that's VHDL's fault.

Altera

Xilinx

  • Xilinx's design software is called ISE and they have a free version for Windows or Linux. This is the software that pwalker had to use, and he hates its clunky slowness.
  • Digilent's FPGA boards seems like the place to go for Xilinx products.

Further Reading

If you're looking to launch off from this topic into other areas, or to get more in depth into the same areas, these may be useful. You can find some of them locally through Trellis.

Personal tools
Navigation