0 0 0 60 1f | xxxxxxxx 0 0 0 60 1f | xxxxxxxx 61000000 3486107a 0 60 1f | xxxxxxxx 0 0 2 00 7f | xxxxxxxx 0 0 2 00 7f | xxxxxxxx 0 0 2 00 7f | xxxxxxxx 0 0 2 00 7f | xxxxxxxx 0 0 2 00 7f | xxxxxxxx 0 0 2 00 7f | xxxxxxxx 0 0 2 00 7f | xxxxxxxx 0 0 2 00 7f | xxxxxxxx 0 0 0 70 0f | 13e6cc3e 80000000 80000000 0 60 1f | xxxxxxxx 0 0 2 00 7f | xxxxxxxx 0 0 2 00 7f | xxxxxxxx 0 0 2 00 7f | xxxxxxxx 0 0 2 00 7f | xxxxxxxx 0 0 2 00 7f | xxxxxxxx 0 0 2 00 7f | xxxxxxxx 0 0 2 00 7f | xxxxxxxx 0 0 2 00 7f | xxxxxxxx 0 0 0 70 0f | 40000000 80000000 80000000 0 60 1f | xxxxxxxx 0 0 2 00 7f | xxxxxxxx 0 0 2 00 7f | xxxxxxxx 0 0 2 00 7f | xxxxxxxx 0 0 2 00 7f | xxxxxxxx 0 0 2 00 7f | xxxxxxxx 0 0 2 00 7f | xxxxxxxx 0 0 2 00 7f | xxxxxxxx 0 0 2 00 7f | xxxxxxxx 0 0 1 00 7f | xxxxxxxx 0 0 0 70 0f | c0000000 992125f9 e413705c 0 60 1f | xxxxxxxx 0 0 2 00 7f | xxxxxxxx 0 0 2 00 7f | xxxxxxxx 0 0 2 00 7f | xxxxxxxx 0 0 2 00 7f | xxxxxxxx 0 0 2 00 7f | xxxxxxxx 0 0 2 00 7f | xxxxxxxx 0 0 2 00 7f | xxxxxxxx 0 0 2 00 7f | xxxxxxxx 0 0 1 00 7f | xxxxxxxx 0 0 0 70 0f | 886d267d 16d25ab8 ed47bd79 0 60 1f | xxxxxxxx 0 0 2 00 7f | xxxxxxxx 0 0 2 00 7f | xxxxxxxx 0 0 2 00 7f | xxxxxxxx 0 0 2 00 7f | xxxxxxxx 0 0 2 00 7f | xxxxxxxx 0 0 2 00 7f | xxxxxxxx 0 0 2 00 7f | xxxxxxxx 0 0 2 00 7f | xxxxxxxx 0 0 0 70 0f | 15272337 . ͺMpyTestVecs.tioga Copyright Σ 1987 by Xerox Corporation. All rights reserved. by Ross May 8, 1987 4:30:33 pm PDT Last Edited by: Ross May 22, 1987 12:21:57 pm PDT Vectors to check out the entire multiplier. Try FirstLevelOnly to get the overall picture of what tests are performed. The control assignments are listed below for reference: EUControl[0:2] = 110 => Load Mpy EUControl[0:2] = 111 => UnLoad Mpy EUControl[3:6] = x0xx => Load 32 bit number EUControl[3:6] = x1xx => Load floating pt. number Note: the difference between signed and unsigned multipliers when doingUpper is controlled by whether a single cycle of doingLower follows the 8 cycles (of CLK2 not CLK). It makes no sense to consider an unsigned multiply when only doingLower. See the example below for the timing of this operation state[0:1] = 00 => done state[0:1] = 01 => doingLower state[0:1] = 10 => doingUpper state[0:1] = 11 => Invalid For testing purposes, the D1 and FloatD2 inputs are tied together as with D2 and FloatD1. Vectors which have been commented out have all passed but not deleted from the file. d1 d2 state euctl neuctl | R  Initialization: Basics with early completion and waiting after done: 1 1 0 60 1f | xxxxxxxx -- shows early completion 0 0 1 00 7f | xxxxxxxx -- and not removing the product 0 0 1 00 7f | xxxxxxxx -- immediately. 0 0 1 00 7f | xxxxxxxx 0 0 0 00 7f | xxxxxxxx 0 0 0 70 0f | 1 2 3 0 60 1f | xxxxxxxx 0 0 1 00 7f | xxxxxxxx 0 0 1 00 7f | xxxxxxxx 0 0 1 00 7f | xxxxxxxx 0 0 0 00 7f | xxxxxxxx 0 0 0 70 0f | 6 Floating Point load: The interesting thing about these next two is trying out whether the loading of the floating point works. If it does, the numbers should swap and it should take more cycles to do the booth encoding. 78 3245 0 60 1f | xxxxxxxx 0 0 1 00 7f | xxxxxxxx 0 0 1 00 7f | xxxxxxxx 0 0 0 70 0f | 179058 78 3245 0 64 1b | xxxxxxxx 0 0 1 00 7f | xxxxxxxx 0 0 1 00 7f | xxxxxxxx 0 0 1 00 7f | xxxxxxxx 0 0 1 00 7f | xxxxxxxx 0 0 0 70 0f | 179058 More Serious Examples: 61000000 3486107a 0 60 1f | xxxxxxxx 0 0 1 00 7f | xxxxxxxx 0 0 1 00 7f | xxxxxxxx 0 0 1 00 7f | xxxxxxxx 0 0 1 00 7f | xxxxxxxx 0 0 1 00 7f | xxxxxxxx 0 0 1 00 7f | xxxxxxxx 0 0 1 00 7f | xxxxxxxx 0 0 1 00 7f | xxxxxxxx 0 0 0 70 0f | 3a000000 12345678 2457afeb 0 60 1f | xxxxxxxx 0 0 1 00 7f | xxxxxxxx 0 0 1 00 7f | xxxxxxxx 0 0 1 00 7f | xxxxxxxx 0 0 1 00 7f | xxxxxxxx 0 0 1 00 7f | xxxxxxxx 0 0 1 00 7f | xxxxxxxx 0 0 1 00 7f | xxxxxxxx 0 0 1 00 7f | xxxxxxxx 0 0 0 70 0f | bfef6828 Check out the multiply that returns the upper 32 bits: 69000000 19000000 0 60 1f | xxxxxxxx 0 0 2 00 7f | xxxxxxxx 0 0 2 00 7f | xxxxxxxx 0 0 2 00 7f | xxxxxxxx 0 0 2 00 7f | xxxxxxxx 0 0 2 00 7f | xxxxxxxx 0 0 2 00 7f | xxxxxxxx 0 0 2 00 7f | xxxxxxxx 0 0 2 00 7f | xxxxxxxx 0 0 0 70 0f | 0a410000 12345678 2457afeb 0 60 1f | xxxxxxxx 0 0 2 00 7f | xxxxxxxx 0 0 2 00 7f | xxxxxxxx 0 0 2 00 7f | xxxxxxxx 0 0 2 00 7f | xxxxxxxx 0 0 2 00 7f | xxxxxxxx 0 0 2 00 7f | xxxxxxxx 0 0 2 00 7f | xxxxxxxx 0 0 2 00 7f | xxxxxxxx 0 0 0 70 0f | 02959874 Demonstration of signed vs. unsigned mpy upper: signed: Now for the signed (notice the cycle with state 1 after the cycles with state 2): Problem Vectors: Κ’˜™Icode™Jšœ™.J™J™J™J™—™J™J™J™J™J™J™—J˜™J™ΙJ˜J™!J™J™J™J™J™!J™J™J™J™J™—J™J˜™J™J™(J™J™J™J™J™J™J™J™J™J˜Jšœ(™(J™J™J™J™J™J™J™J™Jšœ™—J˜J™™6J˜J™(J™J™J™J™J™J™J™J™J™J˜J˜(J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜Jšœ(™(J™J™J™J™J™J™J™J™Jšœ™—J˜J™™/J™J™Jšœ(˜(J˜J˜J˜J˜J˜J˜J˜J˜Jšœ˜J˜J˜J™QJ˜Jšœ(˜(J˜J˜J˜J˜J˜J˜J˜J˜J˜Jšœ˜J˜—™J™Jšœ(˜(J˜J˜J˜J˜J˜J˜J˜J˜J˜Jšœ˜J˜J˜Jšœ(˜(J˜J˜J˜J˜J˜J˜J˜J˜Jšœ˜J˜J˜—J˜J˜J˜J˜—…—Φ"