Claims Analysis
Total Claims: 67
Claim 1
Independent Claim
600 words
A method of testing a multiplier taking first and second N-bit input mantissa operands and producing a 2N-bit mantissa output, the method comprising the steps of: selecting a digit size d, such that d evenly divides into N; allocating each of the first and second N-bit input mantissa operands into N/d input digit fields, the input digit fields of the first operand being A(0) through A(N/d-1), the input digit fields of the second operand being B(0) through B(N/d-1); allocating the 2N-bit mantissa output into 2N/d output subchunks each having d bits, the output subchunks being S(0) through S(2N/d-1); for each of 2 2d permutations of integer i and integer j, wherein i and j are from the range from 0 to 2 d- 1, inclusive, loading all even digit fields A(0) through A(N/d-2) of the first operand with i; loading all odd digit fields A(1) through A(N/d-1) of the first operand with 0; loading the least significant digit field B(0) of the second operand with j; loading the more significant digit fields B(1) through B(N/d-1) of the second operand with 0; performing a multiplication; comparing N/2d even output subchunks S(0) through S(N/d-2) for equality; comparing N/2d odd output subchunks S(1) through S(N/d-1) for equality; continuing if the comparing steps detected equality; reporting test failure if either of the comparing steps detected inequality; for each of 2 2d permutations of integer i and integer j, wherein i and j are from the range from 0 to 2 d -1, inclusive, loading all even digit fields A(0) through A(N/d-2) of the first operand with 0; loading all odd digit fields A(1) through A(N/d-1) of the first operand with i; loading the most significant digit field B(N/d-1) of the second operand with j; loading the less significant digit fields B(0) through B(N/d-2) of the second operand with 0; performing a multiplication; comparing N/2d even output subchunks S(N/d) through S(2N/d-2) for equality; comparing N/2d odd output subchunks S(N/d+i) through S(2N/d-1) for equality; continuing if the comparing steps detected equality; reporting test failure if either of the comparing steps detected inequality; for each of 2 2d permutations of integer i and integer j, wherein i and j are from the range from 0 to 2 d- 1, inclusive, loading digit field A(1) of the first operand with j; loading digit fields A(0) and A(2) through A(N/d-1) of the first operand with 0; loading all even digit fields B(0) through B(N/d-2) of the second operand with 0; loading all odd digit fields B(1) through B(N/d-1) of the second operand with i; performing a multiplication; comparing N/2d even output subchunks S(2) through S(N/d) for equality; comparing N/2d odd output subchunks S(1) through S(N/d-1) for equality; continuing if the comparing steps detected equality; reporting test failure if either of the comparing steps detected inequality; for each of 2 2d permutations of integer i and integer j, wherein i and j each are from the range from 0 to 2 d- 1, inclusive, loading digit field A(N/d-2) of the first operand with j; loading digit fields A(0) through A(N/d-3) and A(N/d-1) of the first operand with 0; loading all even digit fields B(0) through B(N/d-2) of the second operand with 0; loading all odd digit fields B(1) through B(N/d-1) of the second operand with i; performing a multiplication; comparing N/2d even output subchunks S(N/d) through S(2N/d-2) for equality; comparing N/2d odd output subchunks S(N/d-1) through S(2N/d-3) for equality; continuing if the comparing steps detected equality; reporting test failure if either of the comparing steps detected inequality; and reporting test passing if none of the above comparing steps detect inequality.
Claim 2
Independent Claim
600 words
A method of testing a multiplier taking first and second N-bit input mantissa operands and producing a 2N-bit mantissa output, the method comprising the steps of: selecting a digit size d, such that d evenly divides into N; allocating each of the first and second N-bit input mantissa operands into N/d input digit fields, the input digit fields of the first operand being A(0) through A(N/d-1), the input digit fields of the second operand being B(0) through B(N/d-1); allocating the 2N-bit mantissa output into 2N/d output subchunks each having d bits, the output subchunks being S(0) through S(2N/d-1); for each of 2 2d permutations of integer i and integer j, wherein i and j are from the range from 0 to 2 d- 1, inclusive, loading all even digit fields A(0) through A(N/d-2) of the first operand with i; loading all odd digit fields A(1) through A(N/d-1) of the first operand with 0; loading the least significant digit field B(0) of the second operand with j; loading the more significant digit fields B(1) through B(N/d-1) of the second operand with 0; performing a multiplication; comparing N/2d even output subchunks S(0) through S(N/d-2) for equality; comparing N/2d odd output subchunks S(1) through S(N/d-1) for equality; continuing if the comparing steps detected equality; reporting test failure if either of the comparing steps detected inequality; for each of 2 2d permutations of integer i and integer j, wherein i and j are from the range from 0 to 2 d -1, inclusive, loading all even digit fields A(0) through A(N/d-2) of the first operand with 0; loading all odd digit fields A(1) through A(N/d-1) of the first operand with i; loading the most significant digit field B(N/d-1) of the second operand with j; loading the less significant digit fields B(0) through B(N/d-2) of the second operand with 0; performing a multiplication; comparing N/2d even output subchunks S(N/d) through S(2N/d-2) for equality; comparing N/2d odd output subchunks S(N/d+i) through S(2N/d-1) for equality; continuing if the comparing steps detected equality; reporting test failure if either of the comparing steps detected inequality; for each of 2 2d permutations of integer i and integer j, wherein i and j are from the range from 0 to 2 d- 1, inclusive, loading digit field A(1) of the first operand with j; loading digit fields A(0) and A(2) through A(N/d-1) of the first operand with 0; loading all even digit fields B(0) through B(N/d-2) of the second operand with 0; loading all odd digit fields B(1) through B(N/d-1) of the second operand with i; performing a multiplication; comparing N/2d even output subchunks S(2) through S(N/d) for equality; comparing N/2d odd output subchunks S(1) through S(N/d-1) for equality; continuing if the comparing steps detected equality; reporting test failure if either of the comparing steps detected inequality; for each of 2 2d permutations of integer i and integer j, wherein i and j each are from the range from 0 to 2 d- 1, inclusive, loading digit field A(N/d-2) of the first operand with j; loading digit fields A(0) through A(N/d-3) and A(N/d-1) of the first operand with 0; loading all even digit fields B(0) through B(N/d-2) of the second operand with 0; loading all odd digit fields B(1) through B(N/d-1) of the second operand with i; performing a multiplication; comparing N/2d even output subchunks S(N/d) through S(2N/d-2) for equality; comparing N/2d odd output subchunks S(N/d-1) through S(2N/d-3) for equality; continuing if the comparing steps detected equality; reporting test failure if either of the comparing steps detected inequality; and reporting test passing if none of the above comparing steps detect inequality.
Claim 3
Dependent Claim
34 words
A method of testing a multiplier as in claim 1, wherein all 2 2d permutations of integers i and j are sequentially generated by a 2d-bit test counter having a test counter carry output.
Claim 4
Dependent Claim
40 words
A method of testing a multiplier as in claim 2, wherein the integer i is the least significant d output bits of the test counter; and wherein the integer j is the most significant d bits of the test counter.
Claim 5
Dependent Claim
29 words
A method of testing a multiplier as in claim 3, wherein the 2d-bit test counter is a Johnson counter, which performs a single-bit counter output transition each increment cycle.
Claim 6
Dependent Claim
21 words
A method of testing a multiplier as in claim 3, wherein the test counter carry output enables a two-bit step counter.
Claim 7
Dependent Claim
46 words
A method of testing a multiplier as in claim 1, wherein the first and second N-bit input mantissa operands are writeable by external software, and the 2N-bit mantissa output is readable by external software, and wherein the loading and comparing steps are performed by external software.
Claim 8
Dependent Claim
55 words
A method of testing a multiplier as in claim 1, wherein the first and second N-bit input mantissa operands are not writeable by external software, and the 2N-bit mantissa output is readable by external software, and wherein the loading steps are performed by internal test hardware, and the comparing steps are performed by external software.
Claim 9
Dependent Claim
49 words
A method of testing a multiplier as in claim 1, wherein the first and second N-bit input mantissa operands are not writeable by external software, and the 2N-bit mantissa output is not readable by external software, and wherein the loading and comparing steps are performed by internal test hardware.
Claim 10
Dependent Claim
19 words
A method of testing a multiplier as in claim 1, wherein N is 256; and wherein d is 4.
Claim 11
Independent Claim
597 words
A method of testing a multiplier taking first and second N-bit input mantissa operands and producing a 2N-bit mantissa output, the method comprising the steps of: selecting a digit size d, such that d evenly divides into N; allocating each of the first and second N-bit input mantissa operands into N/d input digit fields, the input digit fields of the first operand being A(0) through A(N/d-1), the input digit fields of the second operand being B(0) through B(N/d-1); allocating the 2N-bit mantissa output into 2N/d output subchunks each having d bits, the output subchunks being S(0) through S(2N/d-1); for each of 2 d values of integer i, wherein i takes on values in the range of 0 to 2 d -1, inclusive, loading all even digit fields A(0) through A(N/d-2) of the first operand with i; loading all odd digit fields A(1) through A(N/d-1) of the first operand with 0; loading the least significant digit field B(0) of the second operand with the one's complement of i; loading the more significant digit fields B(1) through B(N/d-1) of the second operand with 0; performing a multiplication; comparing N/2d even output subchunks S(0) through S(N/d-2) for equality; comparing N/2d odd output subchunks S(1) through S(N/d-1) for equality; continuing if the comparing steps detected equality; reporting test failure if either of the comparing steps detected inequality; for each of 2 d values of integer i, wherein i is in the range from 0 to 2 d -1, inclusive, loading all even digit fields A(0) through A(N/d-2) of the first operand with 0; loading all odd digit fields A(1) through A(N/d-1) of the first operand with i; loading the most significant digit field B(N/d-1) of the second operand with the one's complement of i; loading the less significant digit fields B(0) through B(N/d-2) of the second operand with 0; performing a multiplication; comparing N/2d even output subchunks S(N/d) through S(2N/d-2) for equality; comparing N/2d odd output subchunks S(N/d+1) through S(2N/d-1) for equality; continuing if the comparing steps detected equality; reporting test failure if either of the comparing steps detected inequality; for each of 2 d values of integer i, wherein i is in the range from 0 to 2 d -1, inclusive, loading digit field A(1) of the first operand with the one's complement of i; loading digit fields A(0) and A(2) through A(N/d-1) of the first operand with 0; loading all even digit fields B(0) through B(N/d-2) of the second operand with 0; loading all odd digit fields B(1) through B(N/d-1) of the second operand with i; performing a multiplication; comparing N/2d even output subchunks S(2) through S(N/d) for equality; comparing N/2d odd output subchunks S(1) through S(N/d-1) for equality; continuing if the comparing steps detected equality; reporting test failure if either of the comparing steps detected inequality; for each of 2 d values of integer i, wherein i is in the range from 0 to 2 d -1, inclusive, loading digit field A(N/d-2) of the first operand with the one's complement of i; loading digit fields A(0) through A(N/d-3) and A(N/d-1) of the first operand with 0; loading all even digit fields B(0) through B(N/d-2) of the second operand with 0; loading all odd digit fields B(1) through B(N/d-1) of the second operand with i; performing a multiplication; comparing N/2d even output subchunks S(N/d) through S(2N/d-2) for equality; comparing N/2d odd output subchunks S(N/d-1) through S(2N/d-3) for equality; continuing if the comparing steps detected equality; reporting test failure if either of the comparing steps detected inequality; and reporting test passing if none of the above comparing steps detect inequality.
Claim 12
Independent Claim
597 words
A method of testing a multiplier taking first and second N-bit input mantissa operands and producing a 2N-bit mantissa output, the method comprising the steps of: selecting a digit size d, such that d evenly divides into N; allocating each of the first and second N-bit input mantissa operands into N/d input digit fields, the input digit fields of the first operand being A(0) through A(N/d-1), the input digit fields of the second operand being B(0) through B(N/d-1); allocating the 2N-bit mantissa output into 2N/d output subchunks each having d bits, the output subchunks being S(0) through S(2N/d-1); for each of 2 d values of integer i, wherein i takes on values in the range of 0 to 2 d -1, inclusive, loading all even digit fields A(0) through A(N/d-2) of the first operand with i; loading all odd digit fields A(1) through A(N/d-1) of the first operand with 0; loading the least significant digit field B(0) of the second operand with the one's complement of i; loading the more significant digit fields B(1) through B(N/d-1) of the second operand with 0; performing a multiplication; comparing N/2d even output subchunks S(0) through S(N/d-2) for equality; comparing N/2d odd output subchunks S(1) through S(N/d-1) for equality; continuing if the comparing steps detected equality; reporting test failure if either of the comparing steps detected inequality; for each of 2 d values of integer i, wherein i is in the range from 0 to 2 d -1, inclusive, loading all even digit fields A(0) through A(N/d-2) of the first operand with 0; loading all odd digit fields A(1) through A(N/d-1) of the first operand with i; loading the most significant digit field B(N/d-1) of the second operand with the one's complement of i; loading the less significant digit fields B(0) through B(N/d-2) of the second operand with 0; performing a multiplication; comparing N/2d even output subchunks S(N/d) through S(2N/d-2) for equality; comparing N/2d odd output subchunks S(N/d+1) through S(2N/d-1) for equality; continuing if the comparing steps detected equality; reporting test failure if either of the comparing steps detected inequality; for each of 2 d values of integer i, wherein i is in the range from 0 to 2 d -1, inclusive, loading digit field A(1) of the first operand with the one's complement of i; loading digit fields A(0) and A(2) through A(N/d-1) of the first operand with 0; loading all even digit fields B(0) through B(N/d-2) of the second operand with 0; loading all odd digit fields B(1) through B(N/d-1) of the second operand with i; performing a multiplication; comparing N/2d even output subchunks S(2) through S(N/d) for equality; comparing N/2d odd output subchunks S(1) through S(N/d-1) for equality; continuing if the comparing steps detected equality; reporting test failure if either of the comparing steps detected inequality; for each of 2 d values of integer i, wherein i is in the range from 0 to 2 d -1, inclusive, loading digit field A(N/d-2) of the first operand with the one's complement of i; loading digit fields A(0) through A(N/d-3) and A(N/d-1) of the first operand with 0; loading all even digit fields B(0) through B(N/d-2) of the second operand with 0; loading all odd digit fields B(1) through B(N/d-1) of the second operand with i; performing a multiplication; comparing N/2d even output subchunks S(N/d) through S(2N/d-2) for equality; comparing N/2d odd output subchunks S(N/d-1) through S(2N/d-3) for equality; continuing if the comparing steps detected equality; reporting test failure if either of the comparing steps detected inequality; and reporting test passing if none of the above comparing steps detect inequality.
Claim 13
Dependent Claim
37 words
A method of testing a multiplier as in claim 10, wherein 2 d permutations of integers i and the one's complement of i are sequentially generated by a d-bit test counter having a test counter carry output.
Claim 14
Dependent Claim
41 words
A method of testing a multiplier as in claim 11, wherein the integer i is the output bits of the test counter; and wherein the one's complement of i is the logical inverse of the output bits of the test counter.
Claim 15
Dependent Claim
29 words
A method of testing a multiplier as in claim 12, wherein the d-bit test counter is a Johnson counter, which performs a single-bit counter output transition each increment cycle.
Claim 16
Dependent Claim
21 words
A method of testing a multiplier as in claim 12, wherein the test counter carry output enables a two-bit step counter.
Claim 17
Dependent Claim
55 words
A method of testing a multiplier as in claim 10, wherein the first and second N-bit input mantissa operands are not writeable by external software, and the 2N-bit mantissa output is readable by external software, and wherein the loading steps are performed by internal test hardware, and the comparing steps are performed by external software.
Claim 18
Dependent Claim
49 words
A method of testing a multiplier as in claim 10, wherein the first and second N-bit input mantissa operands are not writeable by external software, and the 2N-bit mantissa output is not readable by external software, and wherein the loading and comparing steps are performed by internal test hardware.
Claim 19
Dependent Claim
19 words
A method of testing a multiplier as in claim 10, wherein N is 256; and wherein d is 4.
Claim 20
Independent Claim
503 words
A method of testing an adder taking first and second N-bit input operands and producing an N-bit output, the method comprising the steps of: selecting a digit size d, such that d evenly divides into N; allocating each of the first and second N-bit input operands into N/d input digit fields, the input digit fields of the first operand being A(0) through A(N/d-1), the input digit fields of the second operand being B(0) through B(N/d-1); allocating the N-bit output into N/d output chunks each having d bits, the output chunks being C(0) through C(N/d-1); for each of 2 2 (d-1) permutations of d-1-bit integer i and d-1-bit integer j, wherein i and j are from the integer range from 0 to 2 d-1 -1, inclusive, loading the less significant d-1 bits of all digit fields A(0) through A(N/d-1) of the first operand with i; loading the most significant bit of all digit fields A(0) through A(N/d-1) of the first operand with 0; loading the less significant d-1 bits of all digit fields B(0) through B(N/d-1) of the second operand with j; loading the most significant bit of all digit fields B(0) through B(N/d-1) of the second operand with 0; performing an addition; comparing the N/d output chunks C(0) through C(N/d-1) for equality; continuing if the comparing step detected equality; reporting test failure if the comparing step detected inequality; reserving r least significant bits in each of the first and second input operands and the N-bit output, r being in from the range from 1 to d-1, inclusive, the r least significant bits being set to zero, thereby defining first and second N-r bit shifted input operands and an N-r bit shifted output; allocating each of the first and second N-r bit shifted input operands into N/d-1 shifted input digit fields, the shifted input digit fields of the first shifted operand being AS(0) through AS(N/d-2), the shifted input digit fields of the second shifted operand being BS(0) through BS(N/d-2); allocating the N-r bit shifted output into N/d-1 shifted output chunks each having d-1 bits, the shifted output chunks being CS(0) through CS(N/d-2); for each of 2 2 (d-1) permutations of d-1-bit integer i and d-1-bit integer j, wherein i and j are from the integer range from 0 to 2 d-1 , inclusive, loading the less significant d-1 bits of all digit fields AS(0) through AS(N/d-1) of the first shifted operand with i; loading the most significant bit of all digit fields AS(0) through AS(N/d-1) of the first shifted operand with 0; loading the less significant d-1 bits of all digit fields BS(0) through BS(N/d-1) of the second shifted operand with j; loading the most significant bit of all digit fields BS(0) through BS(N/d-1) of the second shifted operand with 0; performing an addition; comparing the N/d-1 shifted output chunks CS(0) through CS(N/d-2) for equality; continuing if the comparing step detected equality; reporting test failure if the comparing step detected inequality; and reporting test passing if none of the above comparing steps detect inequality.
Claim 21
Independent Claim
503 words
A method of testing an adder taking first and second N-bit input operands and producing an N-bit output, the method comprising the steps of: selecting a digit size d, such that d evenly divides into N; allocating each of the first and second N-bit input operands into N/d input digit fields, the input digit fields of the first operand being A(0) through A(N/d-1), the input digit fields of the second operand being B(0) through B(N/d-1); allocating the N-bit output into N/d output chunks each having d bits, the output chunks being C(0) through C(N/d-1); for each of 2 2 (d-1) permutations of d-1-bit integer i and d-1-bit integer j, wherein i and j are from the integer range from 0 to 2 d-1 -1, inclusive, loading the less significant d-1 bits of all digit fields A(0) through A(N/d-1) of the first operand with i; loading the most significant bit of all digit fields A(0) through A(N/d-1) of the first operand with 0; loading the less significant d-1 bits of all digit fields B(0) through B(N/d-1) of the second operand with j; loading the most significant bit of all digit fields B(0) through B(N/d-1) of the second operand with 0; performing an addition; comparing the N/d output chunks C(0) through C(N/d-1) for equality; continuing if the comparing step detected equality; reporting test failure if the comparing step detected inequality; reserving r least significant bits in each of the first and second input operands and the N-bit output, r being in from the range from 1 to d-1, inclusive, the r least significant bits being set to zero, thereby defining first and second N-r bit shifted input operands and an N-r bit shifted output; allocating each of the first and second N-r bit shifted input operands into N/d-1 shifted input digit fields, the shifted input digit fields of the first shifted operand being AS(0) through AS(N/d-2), the shifted input digit fields of the second shifted operand being BS(0) through BS(N/d-2); allocating the N-r bit shifted output into N/d-1 shifted output chunks each having d-1 bits, the shifted output chunks being CS(0) through CS(N/d-2); for each of 2 2 (d-1) permutations of d-1-bit integer i and d-1-bit integer j, wherein i and j are from the integer range from 0 to 2 d-1 , inclusive, loading the less significant d-1 bits of all digit fields AS(0) through AS(N/d-1) of the first shifted operand with i; loading the most significant bit of all digit fields AS(0) through AS(N/d-1) of the first shifted operand with 0; loading the less significant d-1 bits of all digit fields BS(0) through BS(N/d-1) of the second shifted operand with j; loading the most significant bit of all digit fields BS(0) through BS(N/d-1) of the second shifted operand with 0; performing an addition; comparing the N/d-1 shifted output chunks CS(0) through CS(N/d-2) for equality; continuing if the comparing step detected equality; reporting test failure if the comparing step detected inequality; and reporting test passing if none of the above comparing steps detect inequality.
Claim 22
Dependent Claim
35 words
A method of testing an adder as in claim 18, wherein all2 2 (d-1) permutations of integers i and j are sequentially generated by a 2(d-1) bit test counter having a test counter carry output.
Claim 23
Dependent Claim
40 words
A method of testing an adder as in claim 19, wherein the integer i is the least significant d-1 output bits of the test counter; and wherein the integer j is the most significant d-1 bits of the test counter.
Claim 24
Dependent Claim
30 words
A method of testing an adder as in claim 20, wherein the 2(d-1) bit test counter is a Johnson counter, which performs a single-bit counter output transition each increment cycle.
Claim 25
Dependent Claim
21 words
A method of testing an adder as in claim 20, wherein the test counter carry output enables a one-bit step counter.
Claim 26
Dependent Claim
44 words
A method of testing an adder as in claim 18, wherein the first and second N-bit input operands are writeable by external software, and the N-bit output is readable by external software, and wherein the loading and comparing steps are performed by external software.
Claim 27
Dependent Claim
53 words
A method of testing an adder as in claim 18, wherein the first and second N-bit input operands are not writeable by external software, and the N-bit output is readable by external software, and wherein the loading steps are performed by internal test hardware, and the comparing steps are performed by external software.
Claim 28
Dependent Claim
47 words
A method of testing an adder as in claim 18, wherein the first and second N-bit input operands are not writeable by external software, and the N-bit output is not readable by external software, and wherein the loading and comparing steps are performed by internal test hardware.
Claim 29
Dependent Claim
19 words
A method of testing an adder as in claim 18, wherein N is 256; and wherein d is 4.
Claim 30
Dependent Claim
14 words
A method of testing an adder as in claim 18, wherein r is 1.
Claim 31
Dependent Claim
14 words
A method of testing an adder as in claim 18, wherein r is d-1.
Claim 32
Independent Claim
497 words
A method of testing an adder taking first and second N-bit input operands and producing an N-bit output, the method comprising the steps of: selecting a digit size d, such that d evenly divides into N; allocating each of the first and second N-bit input operands into N/d input digit fields, the input digit fields of the first operand being A(0) through A(N/d-1), the input digit fields of the second operand being B(0) through B(N/d-1); allocating the N-bit output into N/d output chunks each having d bits, the output chunks being C(0) through C(N/d-1); for each of 2 d-1 permutations of d-1-bit integer i, wherein i is from the integer range from 0 to 2 d-1 -1, inclusive, loading the less significant d-1 bits of all digit fields A(0) through A(N/d-1) of the first operand with i; loading the most significant bit of all digit fields A(0) through A(N/d-1) of the first operand with 0; loading the less significant d-1 bits of all digit fields B(0) through B(N/d-1) of the second operand with the one's complement of i; loading the most significant bit of all digit fields B(0) through B(N/d-1) of the second operand with 0; performing an addition; comparing the N/d output chunks C(0) through C(N/d-1) for equality; continuing if the comparing step detected equality; reporting test failure if the comparing step detected inequality; reserving r least significant bits in each of the first and second input operands and the N-bit output, r being in from the range from 1 to d-1, inclusive, the r least significant bits being set to zero, thereby defining first and second N-r bit shifted input operands and an N-r bit shifted output; allocating each of the first and second N-r bit shifted input operands into N/d-1 shifted input digit fields, the shifted input digit fields of the first shifted operand being AS(0) through AS(N/d-2), the shifted input digit fields of the second shifted operand being BS(0) through BS(N/d-2); allocating the N-r bit shifted output into N/d-1 shifted output chunks each having d-1 bits, the shifted output chunks being CS(0) through CS(N/d-2); for each of 2 d-1 permutations of d-1-bit integer i, wherein i is from the integer range from 0 to 2 d-1 -1, inclusive, loading the less significant d-1 bits of all digit fields AS(0) through AS(N/d-1) of the first shifted operand with i; loading the most significant bit of all digit fields AS(0) through AS(N/d-1) of the first shifted operand with 0; loading the less significant d-1 bits of all digit fields BS(0) through BS(N/d-1) of the second shifted operand with the one's complement of i; loading the most significant bit of all digit fields BS(0) through BS(N/d-1) of the second shifted operand with 0; performing an addition; comparing the N/d-1 shifted output chunks CS(0) through CS(N/d-2) for equality; continuing if the comparing step detected equality; reporting test failure if the comparing step detected inequality; and reporting test passing if none of the above comparing steps detect inequality.
Claim 33
Independent Claim
497 words
A method of testing an adder taking first and second N-bit input operands and producing an N-bit output, the method comprising the steps of: selecting a digit size d, such that d evenly divides into N; allocating each of the first and second N-bit input operands into N/d input digit fields, the input digit fields of the first operand being A(0) through A(N/d-1), the input digit fields of the second operand being B(0) through B(N/d-1); allocating the N-bit output into N/d output chunks each having d bits, the output chunks being C(0) through C(N/d-1); for each of 2 d-1 permutations of d-1-bit integer i, wherein i is from the integer range from 0 to 2 d-1 -1, inclusive, loading the less significant d-1 bits of all digit fields A(0) through A(N/d-1) of the first operand with i; loading the most significant bit of all digit fields A(0) through A(N/d-1) of the first operand with 0; loading the less significant d-1 bits of all digit fields B(0) through B(N/d-1) of the second operand with the one's complement of i; loading the most significant bit of all digit fields B(0) through B(N/d-1) of the second operand with 0; performing an addition; comparing the N/d output chunks C(0) through C(N/d-1) for equality; continuing if the comparing step detected equality; reporting test failure if the comparing step detected inequality; reserving r least significant bits in each of the first and second input operands and the N-bit output, r being in from the range from 1 to d-1, inclusive, the r least significant bits being set to zero, thereby defining first and second N-r bit shifted input operands and an N-r bit shifted output; allocating each of the first and second N-r bit shifted input operands into N/d-1 shifted input digit fields, the shifted input digit fields of the first shifted operand being AS(0) through AS(N/d-2), the shifted input digit fields of the second shifted operand being BS(0) through BS(N/d-2); allocating the N-r bit shifted output into N/d-1 shifted output chunks each having d-1 bits, the shifted output chunks being CS(0) through CS(N/d-2); for each of 2 d-1 permutations of d-1-bit integer i, wherein i is from the integer range from 0 to 2 d-1 -1, inclusive, loading the less significant d-1 bits of all digit fields AS(0) through AS(N/d-1) of the first shifted operand with i; loading the most significant bit of all digit fields AS(0) through AS(N/d-1) of the first shifted operand with 0; loading the less significant d-1 bits of all digit fields BS(0) through BS(N/d-1) of the second shifted operand with the one's complement of i; loading the most significant bit of all digit fields BS(0) through BS(N/d-1) of the second shifted operand with 0; performing an addition; comparing the N/d-1 shifted output chunks CS(0) through CS(N/d-2) for equality; continuing if the comparing step detected equality; reporting test failure if the comparing step detected inequality; and reporting test passing if none of the above comparing steps detect inequality.
Claim 34
Dependent Claim
37 words
A method of testing an adder as in claim 29, wherein 2 d-1 permutations of integer i and the one's complement of i are sequentially generated by a d-1-bit test counter having a test counter carry output.
Claim 35
Dependent Claim
41 words
A method of testing an adder as in claim 30, wherein the integer i is the output bits of the test counter; and wherein the one's complement of i is the logical inverse of the output bits of the test counter.
Claim 36
Dependent Claim
29 words
A method of testing an adder as in claim 31, wherein the d-1-bit test counter is a Johnson counter, which performs a single-bit counter output transition each increment cycle.
Claim 37
Dependent Claim
21 words
A method of testing an adder as in claim 31, wherein the test counter carry output enables a one-bit step counter.
Claim 38
Dependent Claim
44 words
A method of testing an adder as in claim 29, wherein the first and second N-bit input operands are writeable by external software, and the N-bit output is readable by external software, and wherein the loading and comparing steps are performed by external software.
Claim 39
Dependent Claim
53 words
A method of testing an adder as in claim 29, wherein the first and second N-bit input operands are not writeable by external software, and the N-bit output is readable by external software, and wherein the loading steps are performed by internal test hardware, and the comparing steps are performed by external software.
Claim 40
Dependent Claim
47 words
A method of testing an adder as in claim 29, wherein the first and second N-bit input operands are not writeable by external software, and the N-bit output is not readable by external software, and wherein the loading and comparing steps are performed by internal test hardware.
Claim 41
Dependent Claim
19 words
A method of testing an adder as in claim 29, wherein N is 256; and wherein d is 4.
Claim 42
Dependent Claim
14 words
A method of testing an adder as in claim 29, wherein r is 1.
Claim 43
Dependent Claim
14 words
A method of testing an adder as in claim 29, wherein r is d-1.
Claim 44
Independent Claim
503 words
A method of testing a subtractor taking first and second N-bit input operands and producing an N-bit output, the method comprising the steps of: selecting a digit size d, such that d evenly divides into N; allocating each of the first and second N-bit input operands into N/d input digit fields, the input digit fields of the first operand being A(0) through A(N/d-1), the input digit fields of the second operand being B(0) through B(N/d-1); allocating the N-bit output into N/d output chunks each having d bits, the output chunks being C(0) through C(N/d-1); for each of 2 2 (d-1) permutations of d-1-bit integer i and d-1-bit integer j, wherein i and j are from the integer range from 0 to 2 d-1 -1, inclusive, loading the less significant d-1 bits of all digit fields A(0) through A(N/d-1) of the first operand with i; loading the most significant bit of all digit fields A(0) through A(N/d-1) of the first operand with 1; loading the less significant d-1 bits of all digit fields B(0) through B(N/d-1) of the second operand with j; loading the most significant bit of all digit fields B(0) through B(N/d-1) of the second operand with 0; performing a subtraction; comparing the N/d output chunks C(0) through C(N/d-1) for equality; continuing if the comparing step detected equality; reporting test failure if the comparing step detected inequality; reserving r least significant bits in each of the first and second input operands and the N-bit output, r being in from the range from 1 to d-1, inclusive, the r least significant bits being set to zero, thereby defining first and second N-r bit shifted input operands and an N-r bit shifted output; allocating each of the first and second N-r bit shifted input operands into N/d-1 shifted input digit fields, the shifted input digit fields of the first shifted operand being AS(0) through AS(N/d-2), the shifted input digit fields of the second shifted operand being BS(0) through BS(N/d-2); allocating the N-r bit shifted output into N/d-1 shifted output chunks each having d-1 bits, the shifted output chunks being CS(0) through CS(N/d-2); for each of 2 2 (d-1) permutations of d-1-bit integer i and d-1-bit integer j, wherein i and j are from the integer range from 0 to 2 d-1 -1, inclusive, loading the less significant d-1 bits of all digit fields AS(0) through AS(N/d-1) of the first shifted operand with i; loading the most significant bit of all digit fields AS(0) through AS(N/d-1) of the first shifted operand with 1; loading the less significant d-1 bits of all digit fields BS(0) through BS(N/d-1) of the second shifted operand with j; loading the most significant bit of all digit fields BS(0) through BS(N/d-1) of the second shifted operand with 0; performing a subtraction; comparing the N/d-1 shifted output chunks CS(0) through CS(N/d-2) for equality; continuing if the comparing step detected equality; reporting test failure if the comparing step detected inequality; and reporting test passing if none of the above comparing steps detect inequality.
Claim 45
Independent Claim
503 words
A method of testing a subtractor taking first and second N-bit input operands and producing an N-bit output, the method comprising the steps of: selecting a digit size d, such that d evenly divides into N; allocating each of the first and second N-bit input operands into N/d input digit fields, the input digit fields of the first operand being A(0) through A(N/d-1), the input digit fields of the second operand being B(0) through B(N/d-1); allocating the N-bit output into N/d output chunks each having d bits, the output chunks being C(0) through C(N/d-1); for each of 2 2 (d-1) permutations of d-1-bit integer i and d-1-bit integer j, wherein i and j are from the integer range from 0 to 2 d-1 -1, inclusive, loading the less significant d-1 bits of all digit fields A(0) through A(N/d-1) of the first operand with i; loading the most significant bit of all digit fields A(0) through A(N/d-1) of the first operand with 1; loading the less significant d-1 bits of all digit fields B(0) through B(N/d-1) of the second operand with j; loading the most significant bit of all digit fields B(0) through B(N/d-1) of the second operand with 0; performing a subtraction; comparing the N/d output chunks C(0) through C(N/d-1) for equality; continuing if the comparing step detected equality; reporting test failure if the comparing step detected inequality; reserving r least significant bits in each of the first and second input operands and the N-bit output, r being in from the range from 1 to d-1, inclusive, the r least significant bits being set to zero, thereby defining first and second N-r bit shifted input operands and an N-r bit shifted output; allocating each of the first and second N-r bit shifted input operands into N/d-1 shifted input digit fields, the shifted input digit fields of the first shifted operand being AS(0) through AS(N/d-2), the shifted input digit fields of the second shifted operand being BS(0) through BS(N/d-2); allocating the N-r bit shifted output into N/d-1 shifted output chunks each having d-1 bits, the shifted output chunks being CS(0) through CS(N/d-2); for each of 2 2 (d-1) permutations of d-1-bit integer i and d-1-bit integer j, wherein i and j are from the integer range from 0 to 2 d-1 -1, inclusive, loading the less significant d-1 bits of all digit fields AS(0) through AS(N/d-1) of the first shifted operand with i; loading the most significant bit of all digit fields AS(0) through AS(N/d-1) of the first shifted operand with 1; loading the less significant d-1 bits of all digit fields BS(0) through BS(N/d-1) of the second shifted operand with j; loading the most significant bit of all digit fields BS(0) through BS(N/d-1) of the second shifted operand with 0; performing a subtraction; comparing the N/d-1 shifted output chunks CS(0) through CS(N/d-2) for equality; continuing if the comparing step detected equality; reporting test failure if the comparing step detected inequality; and reporting test passing if none of the above comparing steps detect inequality.
Claim 46
Dependent Claim
36 words
A method of testing a subtractor as in claim 40, wherein all 2 2 (d-1) permutations of integers i and j are sequentially generated by a 2(d-1) bit test counter having a test counter carry output.
Claim 47
Dependent Claim
39 words
A method of testing a subtractor as in claim 41, wherein the integer i is the least significant d-1 output bits of the test counter; and wherein the integer j is the most significant d-1bits of the test counter.
Claim 48
Dependent Claim
30 words
A method of testing a subtractor as in claim 42, wherein the 2(d-1) bit test counter is a Johnson counter, which performs a single-bit counter output transition each increment cycle.
Claim 49
Dependent Claim
21 words
A method of testing a subtractor as in claim 42, wherein the test counter carry output enables a one-bit step counter.
Claim 50
Dependent Claim
44 words
A method of testing a subtractor as in claim 40, wherein the first and second N-bit input operands are writeable by external software, and the N-bit output is readable by external software, and wherein the loading and comparing steps are performed by external software.
Claim 51
Dependent Claim
53 words
A method of testing a subtractor as in claim 40, wherein the first and second N-bit input operands are not writeable by external software, and the N-bit output is readable by external software, and wherein the loading steps are performed by internal test hardware, and the comparing steps are performed by external software.
Claim 52
Dependent Claim
47 words
A method of testing a subtractor as in claim 40, wherein the first and second N-bit input operands are not writeable by external software, and the N-bit output is not readable by external software, and wherein the loading and comparing steps are performed by internal test hardware.
Claim 53
Dependent Claim
19 words
A method of testing a subtractor as in claim 40, wherein N is 256; and wherein d is 4.
Claim 54
Dependent Claim
14 words
A method of testing a subtractor as in claim 40, wherein r is 1.
Claim 55
Dependent Claim
14 words
A method of testing a subtractor as in claim 40, wherein r is d-1.
Claim 56
Independent Claim
497 words
A method of testing a subtractor taking first and second N-bit input operands and producing an N-bit output, the method comprising the steps of: selecting a digit size d, such that d evenly divides into N; allocating each of the first and second N-bit input operands into N/d input digit fields, the input digit fields of the first operand being A(0) through A(N/d-1), the input digit fields of the second operand being B(0) through B(N/d-1); allocating the N-bit output into N/d output chunks each having d bits, the output chunks being C(0) through C(N/d-1); for each of 2 d-1 permutations of d-1-bit integer i, wherein i is from the integer range from 0 to 2 d-1 -1, inclusive, loading the less significant d-1 bits of all digit fields A(0) through A(N/d-1) of the first operand with i; loading the most significant bit of all digit fields A(0) through A(N/d-1) of the first operand with 1; loading the less significant d-1 bits of all digit fields B(0) through B(N/d-1) of the second operand with the one's complement of i; loading the most significant bit of all digit fields B(0) through B(N/d-1) of the second operand with 0; performing a subtraction; comparing the N/d output chunks C(0) through C(N/d-1) for equality; continuing if the comparing step detected equality; reporting test failure if the comparing step detected inequality; reserving r least significant bits in each of the first and second input operands and the N-bit output, r being in from the range from 1 to d-1, inclusive, the r least significant bits being set to zero, thereby defining first and second N-r bit shifted input operands and an N-r bit shifted output; allocating each of the first and second N-r bit shifted input operands into N/d-1 shifted input digit fields, the shifted input digit fields of the first shifted operand being AS(0) through AS(N/d-2), the shifted input digit fields of the second shifted operand being BS(0) through BS(N/d-2); allocating the N-r bit shifted output into N/d-1 shifted output chunks each having d-1 bits, the shifted output chunks being CS(0) through CS(N/d-2); for each of 2 d-1 permutations of d-1-bit integer i, wherein i is from the integer range from 0 to 2 d-1 -1, inclusive, loading the less significant d-1 bits of all digit fields AS(0) through AS(N/d-1) of the first shifted operand with i; loading the most significant bit of all digit fields AS(0) through AS(N/d-I) of the first shifted operand with 1; loading the less significant d-1 bits of all digit fields BS(0) through BS(N/d-1) of the second shifted operand with the one's complement of i; loading the most significant bit of all digit fields BS(0) through BS(N/d-1) of the second shifted operand with 0; performing a subtraction; comparing the N/d-1 shifted output chunks CS(0) through CS(N/d-2) for equality; continuing if the comparing step detected equality; reporting test failure if the comparing step detected inequality; and reporting test passing if none of the above comparing steps detect inequality.
Claim 57
Independent Claim
497 words
A method of testing a subtractor taking first and second N-bit input operands and producing an N-bit output, the method comprising the steps of: selecting a digit size d, such that d evenly divides into N; allocating each of the first and second N-bit input operands into N/d input digit fields, the input digit fields of the first operand being A(0) through A(N/d-1), the input digit fields of the second operand being B(0) through B(N/d-1); allocating the N-bit output into N/d output chunks each having d bits, the output chunks being C(0) through C(N/d-1); for each of 2 d-1 permutations of d-1-bit integer i, wherein i is from the integer range from 0 to 2 d-1 -1, inclusive, loading the less significant d-1 bits of all digit fields A(0) through A(N/d-1) of the first operand with i; loading the most significant bit of all digit fields A(0) through A(N/d-1) of the first operand with 1; loading the less significant d-1 bits of all digit fields B(0) through B(N/d-1) of the second operand with the one's complement of i; loading the most significant bit of all digit fields B(0) through B(N/d-1) of the second operand with 0; performing a subtraction; comparing the N/d output chunks C(0) through C(N/d-1) for equality; continuing if the comparing step detected equality; reporting test failure if the comparing step detected inequality; reserving r least significant bits in each of the first and second input operands and the N-bit output, r being in from the range from 1 to d-1, inclusive, the r least significant bits being set to zero, thereby defining first and second N-r bit shifted input operands and an N-r bit shifted output; allocating each of the first and second N-r bit shifted input operands into N/d-1 shifted input digit fields, the shifted input digit fields of the first shifted operand being AS(0) through AS(N/d-2), the shifted input digit fields of the second shifted operand being BS(0) through BS(N/d-2); allocating the N-r bit shifted output into N/d-1 shifted output chunks each having d-1 bits, the shifted output chunks being CS(0) through CS(N/d-2); for each of 2 d-1 permutations of d-1-bit integer i, wherein i is from the integer range from 0 to 2 d-1 -1, inclusive, loading the less significant d-1 bits of all digit fields AS(0) through AS(N/d-1) of the first shifted operand with i; loading the most significant bit of all digit fields AS(0) through AS(N/d-I) of the first shifted operand with 1; loading the less significant d-1 bits of all digit fields BS(0) through BS(N/d-1) of the second shifted operand with the one's complement of i; loading the most significant bit of all digit fields BS(0) through BS(N/d-1) of the second shifted operand with 0; performing a subtraction; comparing the N/d-1 shifted output chunks CS(0) through CS(N/d-2) for equality; continuing if the comparing step detected equality; reporting test failure if the comparing step detected inequality; and reporting test passing if none of the above comparing steps detect inequality.
Claim 58
Dependent Claim
37 words
A method of testing a subtractor as in claim 51, wherein 2 d-1 permutations of integer i and the one's complement of i are sequentially generated by a d-1-bit test counter having a test counter carry output.
Claim 59
Dependent Claim
41 words
A method of testing a subtractor as in claim 52, wherein the integer i is the output bits of the test counter; and wherein the one's complement of i is the logical inverse of the output bits of the test counter.
Claim 60
Dependent Claim
29 words
A method of testing a subtractor as in claim 53, wherein the d-1-bit test counter is a Johnson counter, which performs a single-bit counter output transition each increment cycle.
Claim 61
Dependent Claim
21 words
A method of testing a subtractor as in claim 53, wherein the test counter carry output enables a one-bit step counter.
Claim 62
Dependent Claim
44 words
A method of testing a subtractor as in claim 51, wherein the first and second N-bit input operands are writeable by external software, and the N-bit output is readable by external software, and wherein the loading and comparing steps are performed by external software.
Claim 63
Dependent Claim
53 words
A method of testing a subtractor as in claim 51, wherein the first and second N-bit input operands are not writeable by external software, and the N-bit output is readable by external software, and wherein the loading steps are performed by internal test hardware, and the comparing steps are performed by external software.
Claim 64
Dependent Claim
47 words
A method of testing a subtractor as in claim 51, wherein the first and second N-bit input operands are not writeable by external software, and the N-bit output is not readable by external software, and wherein the loading and comparing steps are performed by internal test hardware.
Claim 65
Dependent Claim
19 words
A method of testing a subtractor as in claim 51, wherein N is 256; and wherein d is 4.
Claim 66
Dependent Claim
14 words
A method of testing a subtractor as in claim 51, wherein r is 1.
Claim 67
Dependent Claim
14 words
A method of testing a subtractor as in claim 51, wherein r is d-1.