Software bit-slicing: a technique for improving simulation performance

For some types of simulation, it is difficult or impossible to improve performance by packing several vectors to be packed into a single word. One example of such an algorithm is inversion algorithm, which does not represent net values in the conventional way. This paper presents a novel technique, called software bit-slicing for performing simultaneous simulation of several input vectors on a conventional uniprocessor. As with conventional vector-packing techniques, this technique is able to assign a different input vector to each bit of a word, permitting the simultaneous simulation of n vectors, where n is the number of bits in a word. The inversion algorithm is used to give an example of this technique. For this example, a 6x speedup can be realized by using software bit-slicing. The same technique should be widely applicable to many different types of simulation.

[1]  Peter M. Maurer The Inversion Algorithm For Digital Simulation , 1994, IEEE/ACM International Conference on Computer-Aided Design.

[2]  Peter M. Maurer The Inversion Algorithm for digital simulation , 1994, ICCAD '94.