The following software projects have resulted to aid with previous research activies. As a contribution to the research community, these have been made available under open source licenses.
c4Hardware is a highly flexible library of C++ classes (available for free download) for the emulation of hardware implementations of algorithms. It provides a high level interface to matrix, vector, and scalar operations to allow rapid application development without requiring knowledge of the underlying operations. Futhermore, it allows custom data types to be plugged-in with little change to the high level application. This allows bit-accurate modelling and analysis of algorithms under various limited precision numerical representations.
c4HDL is a library of C++ classes (available for free download) that provides bit-accurate modelling of integer, floating point, and fixed point data types, for matching with HDL code. Key points include :
- Allows modelling from very small to very large numerical precision
- Models can be directly used for generating testbench data to verify the operation of HDL models of the algorithm.
- Contains and generates matching C++ and VHDL models of some arithmetic hardware components
While designed as a plug-in for c4Hardware, this library may also be used as a standalone item.