Welcome to the Bit Accurate Modelling Website.This website is a personal project that began as a spinoff from postgraduate work, and was further developed as part of a project with the Signal Processing Microelectronics group at the University of Newcastle in Australia. As a contribution to the research community, this website has been created to make this information and software freely available.
These projects are focussed on providing software solutions to assist the mapping of algorithmic solutions to actual implementations in hardware devices. This includes bit accurate modelling of numerical systems in limited precision, analysis of those simulations, and generation of test data for verification with the hardware implementations in ASICs and FPGAs.
What is Bit Accurate Modelling?
Bit accurate modelling is an essential step in the transitioning of high level algorithms to implementation in custom silicon devices, such as Field Programmable Gate Arrays (FPGAs) and Application Specific Integrated Circuits (ASICs).
While an algorithm researcher may have an idea that performs well on a numerical package such as MATLAB, that runs with the double or single precision floating point format used by the computer's CPU. For implementation in a power efficient silicon device, this level of precision may be infeasible, and so a limited precision model of the algorithm is required. An initial limited precision model may not closely mimic performance of any particular hardware, but instead provides an estimate of how well the algorithm may perform under those conditions.
In order to confidently study the effects of limited precision on the algorithm performance, it is desirable for that model to match the behaviour of the proposed hardware exactly. That is, a "bit accurate" model - one where every bit of the software model output exactly matches the corresponding bits of the proposed hardware. Such a model can then be reused during the development cycle for debugging the hardware, by generating test vectors for harware verification, and also by inputting real-word inputs into the software model for analysis.
Most labs that do this sort of work may already have their own in-house solutions and, indeed, a number of commercial and open source options are also available. However, these are often targeted to a particular style of implementation, or are too inflexible to be able to customise to a particular project. Quite often, time is wasted rewriting the same type of tools over and over again.
Therefore, the motivation behind the c4Hardware and c4HDL projects is to provide a highly flexible framework that can achieve all of the above, and be adapted to suit the needs of a particular project. The individual components of this project are described below.