SBAM - SPM Bit Accurate Modelling

Contact Details

Alan Murray


SBAM enables existing code that uses regular double or single precision floating point primitive types to be migrated to custom number formats. Ultimately, code which fully simulates the functional behaviour of an algorithm in hardware is produced. This bit- accurate code can then be used as a test bench to verify the algorithm's implementation in a HDL (Hardware Description Language) such as VHDL or Verilog.

SBAM (SPM Bit Accurate Modelling) is currently usable in one of the following ways:

  • Directly in C or C++
  • As a plug-in for IT++ to enable use of primitive linear algebra
  • As a toolbox in Matlab

Users start by simply changing the type in variable declarations to one of the available SBAM types. The precision of the number types can then be explicitly controlled to examine the algorithm's behaviour as the precision is reduced.

Most existing arithmetic code is fully compatible with the customisable SBAM types. However, users will still need to implement higher and more complex mathematical operations that their algorithm depends on. For example, if an algorithm utilises a QR factorisation, the user will need to provide or implement this using the SBAM types. Alternatively, the SBAM types can still be converted to and from primitive floating point values to use existing functions.

In the future, it is anticipated that libraries of more complex operations will become available along with equivalent hardware implementations.

Site Contents:


We intend to make part of this library available for free download very soon. In the meantime, please contact us by email if you are interested in using these libraries


Details of this Project.


Examples of this Project.

MATLAB Interface

Details about the MATLAB Interface.

Project Team

People involved in this project.

Maintained by Alan Murray
University of Newcastle
23 Sep 2009, © Copyright