YAM Yet Another Micro-controller

YAM is a micro-controller core aiming at simple yet fast IO sequencing with integer processing capabilities.

The YAM specification has been driven by a few basic ideas.

  • Scalable data width from 8 bits to any (like 32 and larger) size.
  • Possibly a large number of registers (up to 128 of them).
  • Deterministic execution times (no pipeline).
  • No privileged mode (definitely a micro-controller style).
  • Highly configurable to meet different requirements.
  • Keep compact in area and preserve fast clocking, avoiding superfluous sophistication.

Therefore the base instruction list is restricted to a minimal set of instructions. Even the possible extensions have been carefully analyzed against new functionality versus area/speed cost.

  • YAM is described in VHDL.
  • YAM is software supported by an assembler, yamasm.


Architecture of YAM

Contact

Javier Serrano

Latest News

YAM assembler 'yamasm' V1.1

YAM assembler yamasm (now versionned as V1.1) has got a number of enhancements; main one being the 3-operand support. YAM core HDL is unchanged (still V1.4). A new component (namely wb_yam) has been added.

YAM first release at OHR

YAM release V1.4 is now available from CERN OHR. The core has been already used in a number of designs at ESRF . However there is still some pending work.