The HAM means Hypothetical Accumulator Machine and is a microprocessor model designed by the Institute of Computer Science, University of Osnabrück for education purpose. The model is written in RTeasy, a very easy register transfer language. RTeasy has been developed by the Institute of Computer Engineering, University of Lübeck. Thanks both institutes for their job.

Okay, the question is: „What about HAM?“ It has been intended to be a platform to study how a kind of minimalistic processor works and how the software affects and control the running micro.

First, see the block diagram of the accu machine:

block diagram of HAM uPblock diagram of HAM uPblock diagram of HAM uPblock diagram of HAM uPblock diagram of HAM uPblock diagram of HAM uPblock diagram of HAM uPblock diagram of HAM uPblock diagram of HAM uPblock diagram of HAM uPuPBlockDia

The following components are integrated:

  • ALU for ADD, AND, COMP, RSHIFT
  • Accumulator stores arithmetic or logic results
  • Instruction register seperates the opcode
  • Program counter indicates which command is currently executed
  • Data register holds data words to or from memory
  • Address register holds addresses of memory
  • Control circuits are required for controlling the machine by supporting any control signals

Have a look to the RT-Code of the HAM.  The syntax of the code and the simulation environment can be found here!

RTeasy is only a language for learning how digital hardware interact at register transfer level in an easy way. To test whether the machine can be implemented on an FPGA I describted the HAM including I/O in VHDL. The model supports the following facts:

 

  • All register have their own process
  • FSM moore style
  • reset and clock management
  • Block-RAM for program and data code
  • Testbench for simulation
  • Bitstream for uploading into FPGA S6LX9

I test the implementation on the Avnet Spartan-6 LX9 MicroBoard with following features:

  • Spartan-6 XC6SLX9-2CSG324C FPGA
  • 64 MB LPDDR SDRAM
  • 128 Mb Multi-I/O SPI Flash
  • 10/100 Ethernet PHY
  • USB-to-UART port
  • On-board USB JTAG circuitry
  • Two Digilent Pmod™ compatible headers (2×6)
  • Single-chip, 3-rail power with Power Good indicator
  • Programmable clock chip
  • Over-voltage and ESD protection on USB
  • Four LEDs
  • 4-bit DIP switch
  • Reset and PROG push-buttons
  • Under 90 €

A picture of this nice gadget:

microboard

For more information please visit the Avnet-Hompage!

Last but not least the VHDL-Model of the HAM-uP including ucf and ISE-Files can be found here!

And now? The best micro is absolute unfeasible when software isn’t available.
Look to the programmers model of the HAM uP:

command_set