The Omnilab setup needed for testing the multiplier was fairly simple, as we needed no outside parts to test the functionality of the chip. All pins that were used, either input or output pins, were connected to analyzer input pins. All chip input pins were connected to Omnilab's analyzer stimulus pins.
As multiple test vectors were needed, and all vectors were similar, we used a simple program to create vectors that multiplied two numbers together. This made it easy to create new test vectors. To start, it was desired to ensure that the pins were correctly wired. To accomplish this, on one chip, we tried multiple cases in which only one output bit should be high. All powers of two multiplied by another power of two yielded correct results on this chip. As this process was tedious, only some powers of two were tried on the other chips.
The first four were cases we used in our irsim testing.
We have tested all five chips, and all test vectors generate correct results.
All inputs and outputs function as expected. One of the chips would occasionally appear to have a stuck-at-one fault on output 6, but this later disappeared, and we now attribute this to problems in the external wiring used in our test setup. Output of 42 x -59
All of the irsim tests we did showed correct behavior. And all irsim vectors yielded correct behavior on the physical chip.
At the completion of our design, we expected that our longest path would limit us to a maximum frequency comfortably above the maximum frequency we would be able to test at (34 MHz). And on some inputs, we generate the correct result at 34 MHz. However, on complex inputs, there are usually incorrect outputs at 34MHz. At 17MHz or below, there were no problems.