XInPosse: Structural Simulation for Graphics Hardware

A structural simulator is used both to test hardware and to visualize software that should run on that hardware. In a layered set of graphical hardware simulators, a structural simulator bridges the gap between hardware fidelity on the one side and sufficient performance to visualize graphics algorithms on the other. Essential design requirements were code extensibility and reusability. In order to achieve this, object-oriented methods were adopted. Important design criteria for graphical hardware simulators at this level are that both the exact digital state of the hardware and the graphical output be visualized interactively. The experience with using the XInPosse simulator is presented and analysed. XInPosse simulates a large systolic array in custom VLSI for second order interpolation; in this case to produce shaded scanlines. XInPosse provides the user with a means of tracing commands within the array while interactively setting breakpoints and displaying processors of particular interest. It verified that the hardware could execute the graphics algorithms correctly and that the limitations on numerical accuracy and range were graphically acceptable. An unexpected use was to facilitate communication between chip designers and the graphics researchers. Problems in the documentation of the hardware and workarounds for hardware "bugs" were found more easily through the common reference frame provided by the simulator. It is the intention of the authors to use the modularity provided by the object-oriented design to produce a toolkit for building graphical hardware simulators.