IP Library Granted Patent US 10,338,930
Granted Patent B2
US 10,338,930 · App. 16/022,524 · Granted Jul 2, 2019

Dual-rail delay insensitive asynchronous logic processor with single-rail scan shift enable

Inventors: Ben Melton (Thousand Oaks, CA); Bryan Garnett Cope (Austin, TX)
Assignee: Eta Compute, Inc.
G06F9/3871G06F1/3203G06F17/5059H03K19/0008H03K19/20
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,338,930
App. No.
16/022,524
Granted
Jul 2, 2019
Kind
B2
Abstract

There is disclosed a self-timed processor. The self-timed processor includes combinatorial logic comprising multi-rail delay insensitive asynchronous logic (DIAL) to output one or more multi-rail data values to a multiplexer. It also includes a test pattern input to output a test pattern bit stream of multi-rail test data values to the multiplexer. The multiplexer has Boolean logic to output one or more multi-rail multiplexed values to a latch. The multiplexer also has a single rail selector input to select whether the multi-rail multiplexed values are the multi-rail data values or the multi-rail test data values.

Claims (40)

1. A self-timed processor comprising:

combinatorial logic comprising multi-rail delay insensitive asynchronous logic (DIAL) to output one or more multi-rail data values to a multiplexer;

a test pattern input to output a test pattern bit stream of multi-rail test values to the multiplexer;

the multiplexer comprising Boolean logic to output one or more multi-rail multiplexed values to a latch, the multiplexer having a single rail selector input to select whether the multi-rail multiplexed values are the multi-rail data values or the multi-rail test values;

the Boolean logic comprising:

a first multiplexer logic that is I) a first Boolean AND gate to receive a) a first-rail input of the multi-rail data values, and b) an inverse of a first Boolean input from the single rail selector input; II) a second Boolean AND gate to receive a) a first-rail input of the multi-rail test values, and b) the first Boolean input from the single rail selector input; and III) a Boolean OR gate to receive outputs of the first and second Boolean AND gates of the first multiplexer logic; and

a second multiplexer logic that is I) a first Boolean AND gate to receive a) a second-rail input of the multi-rail data values, and b) the inverse of the first Boolean input from the single rail selector input; II) a second Boolean AND gate to receive a) a second-rail input of the multi-rail test values, and b) the first Boolean input from the single rail selector input; and III) a Boolean OR gate to receive outputs of the first and second Boolean AND gates of the second multiplexer logic.

2. The self-timed processor of claim 1 , further comprising the latch, the latch comprising multi-rail delay insensitive asynchronous logic (DIAL) to receive the multi-rail multiplexed values.

3. The self-timed processor of claim 2 , wherein the latch comprises flip-flops or storage elements for storing the multi-rail multiplexed values.

4. The self-timed processor of claim 3 , wherein the latch includes multi-rail delay insensitive asynchronous logic (DIAL) to output one or more multi-rail data values based on the stored multi-rail multiplexed values.

5. The self-timed processor of claim 1 , wherein the test pattern bit stream comprises a sequence of predetermined serial test pattern of multi-rail test data values.

6. The self-timed processor of claim 1 , wherein the combinatorial logic and latch include threshold gates.

7. The self-timed processor of claim 1 , wherein the test pattern input is configured to receive data from a source external to the processor.

8. An asynchronous processor comprising:

combinatorial logic comprising delay insensitive asynchronous logic (DIAL) to output one or more dual-rail data values to a multiplexer;

a test pattern input to output a test pattern of dual-rail test values to the multiplexer;

the multiplexer comprising an inverter and Boolean logic to output one or more dual-rail multiplexed values to a latch, the multiplexer having a Boolean value selector input to select whether the dual-rail multiplexed values are the dual-rail data values or the dual-rail test values;

the Boolean logic comprising:

a first multiplexer logic that is I) a first Boolean AND gate to receive a) a first-rail input of the dual-rail data values, and b) an inverse of a first Boolean input from the Boolean value selector input; II) a second Boolean AND gate to receive a) a first-rail input of the dual-rail test values, and b) an inverse of the first Boolean input from the Boolean value selector input; and III) a Boolean OR gate to combine outputs of the first and second Boolean AND gates of the first multiplexer logic; and

a second multiplexer logic that is I) a first Boolean AND gate to receive a) a second-rail input of the dual-rail data values, and b) the inverse of the first Boolean input from the Boolean value selector input; II) a second Boolean AND gate to receive a) a second-rail input of the dual-rail test values, and b) the first Boolean input from the Boolean value selector input; and III) a Boolean OR gate to combine outputs of the first and second Boolean AND gates of the second multiplexer logic.

9. The asynchronous processor of claim 8 , wherein the combinatorial logic and latch include threshold gates.

10. The asynchronous processor of claim 8 , wherein the test pattern input is configured to receive data from a source external to the processor.

11. A method of processing data within a self-timed processor, comprising:

receiving one or more multi-rail DIAL data values;

receiving a test pattern bit stream of multi-rail DIAL test values; and

selecting to output the multi-rail DIAL data values to use a latch or the multi-rail test values to test the latch based on a single rail selector input,

wherein selecting includes:

first multiplexer logic I) first Boolean AND gating a) a first-rail input of the multi-rail DIAL data values, and b) an inverse of a first Boolean input from the single rail selector input; II) second Boolean AND gating a) a first-rail input of the multi-rail DIAL test values, and b) the first Boolean input from the single rail selector input; and III) Boolean OR gating only outputs of the first and second Boolean AND gates of the first multiplexer logic; and

second multiplexer logic I) first Boolean AND gating a) a second-rail input of the multi-rail DIAL values, and b) the inverse of the first Boolean input from the single rail selector input; II) second Boolean AND gating a) a second-rail input of the multi-rail DIAL test values, and b) the first Boolean input from the single rail selector input; and III) Boolean OR gating only outputs of the first and second Boolean AND gates of the second multiplexer logic.

12. The method of claim 11 , further comprising receiving the single rail selector input.

13. The method of claim 11 , wherein selecting comprises:

receiving at the first multiplexer logic a) the first-rail inputs of the multi-rail DIAL data values and of the multi-rail DIAL test values, and b) the Boolean inputs based on the single rail selector input; and

receiving at the second multiplexer logic a) the second-rail inputs of the multi-rail DIAL data values and of the multi-rail DIAL test values, and b) the Boolean inputs based on the single rail selector input.

14. The method of claim 11 , further comprising:

outputting the selected multi-rail DIAL data values or multi-rail DIAL test values to a latch as one or more multi-rail multiplexed values; and

receiving the multi-rail multiplexed values at the latch.

15. The method of claim 14 , further comprising:

storing the received the multi-rail multiplexed values in multi-rail delay insensitive asynchronous logic (DIAL) of the latch; and

outputting one or more multi-rail data values based on the stored multi-rail multiplexed values.

16. The method of claim 11 , wherein receiving the test pattern bit stream comprises receiving a sequence of predetermined serial test pattern of multi-rail test data values from a source external to the processor.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 24, 2024
From: ETA COMPUTE, INC.
To: SAMSUNG ELECTRONICS CO., LTD.
Reel/Frame 066232/0020 →
RELEASE OF SECURITY INTEREST Recorded Nov 30, 2023
From: VENTURE LENDING & LEASING IX, INC.; VENTURE LENDING & LEASING VIII, INC.
To: ETA COMPUTE, INC.
Reel/Frame 065724/0500 →
SECURITY INTEREST Recorded Oct 31, 2018
From: ETA COMPUTE, INC.
To: VENTURE LENDING & LEASING IX, INC.; VENTURE LENDING & LEASING VIII, INC.
Reel/Frame 047377/0744 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 23, 2018
From: COPE, BRYAN GARNETT; MELTON, BEN
To: ETA COMPUTE, INC.
Reel/Frame 046427/0626 →
Continuity (2)
Provisional Application 62526897 · Jun 29, 2017
Related Publication 20190004812A1 · Jan 3, 2019