SBAM - SPM Bit Accurate Modelling
Contact DetailsAlan 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.