IP Library Granted Patent US 10,868,539
Granted Patent B1
US 10,868,539 · App. 16/784,875 · Granted Dec 15, 2020

Field programmable gate array including coupled lookup tables

Inventor: Jonathan Ross (Mountain View, CA)
Assignee: Google LLC
H03K19/17728H03K19/1776H03K19/17744
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,868,539
App. No.
16/784,875
Granted
Dec 15, 2020
Kind
B1
Abstract

A field programmable gate array (FPGA) includes: a first logic block having a first lookup table; and a second logic block having a second lookup table, wherein the first logic block is coupled to the second logic block, in which the first logic block is configured to pass, upon a clock cycle of the FPGA, data about a lookup table configuration stored in the first lookup table to the second logic block.

Claims (17)

1. A device comprising:

an array comprising a plurality of programmable logic blocks, wherein each programmable logic block comprises at least one lookup table, at least one flip-flop, and at least one combinatorial logic circuit element,

wherein each lookup table of each programmable logic block comprises multiple memory cells configured to store data corresponding to a truth table for a predefined function,

wherein each memory cell of each programmable logic block is directly coupled to a corresponding memory cell of another programmable logic block in the plurality of programmable logic blocks;

a common global clock to which each programmable logic block is coupled,

wherein at least one programmable logic block of the plurality of programmable logic blocks is configured to pass, upon a predetermined clock cycle of the common global clock, data from the memory cells of the lookup table of the at least one programmable logic block directly to the memory cells of the lookup table of at least one other programmable logic block.

2. The device of claim 1 , wherein the multiple memory cells of each lookup table comprise CMOS-based memory cells.

3. The device of claim 1 , wherein the multiple memory cells of each lookup table comprise static random access memory elements.

4. The device of claim 1 , further comprising a memory component separate from the plurality of programmable logic blocks, wherein the memory component is coupled to a subset of the programmable logic blocks, wherein the memory component stores data characterizing at least one lookup table configuration, and wherein the memory component is configured to pass, upon receipt of a control signal, the data characterizing at least one lookup table configuration to the memory cells of the lookup tables of the subset of the programmable logic blocks.

5. The device of claim 4 , wherein the memory component is a read-only memory component.

6. The device of claim 4 , wherein the memory component stores data characterizing multiple different lookup table configurations, and wherein the memory component is configured to select a particular lookup table configuration from the different lookup table configurations to pass to the memory cells of the lookup tables of the subset of the programmable logic blocks.

7. The device of claim 1 , wherein the direct coupling between programmable logic blocks is reconfigurable.

8. A method of updating a lookup table configuration across an array comprising a plurality of programmable logic blocks, wherein each programmable logic block comprises at least one lookup table, at least one flip-flop, and at least one combinatorial logic circuit element,

wherein each lookup table of each programmable logic block comprises multiple memory cells configured to store data corresponding to a truth table for a predefined function,

wherein each memory cell of each programmable logic block is directly coupled to a corresponding memory cell of another programmable logic block in the plurality of programmable logic blocks, the method comprising:

upon receiving, at a first programmable logic block of the plurality of programmable logic blocks, a first predetermined clock pulse from a common global clock that is coupled to each programmable logic block of the plurality of programmable logic blocks, transmitting data characterizing a first truth table for a first predefined function from the memory cells of the first programmable logic block directly to the memory cells of a second programmable logic block of the plurality of programmable logic blocks; and

upon receiving, at the first programmable logic block, the first predetermined clock pulse, storing data characterizing a second truth table for a second predefined function in the memory cells of the first programmable logic block, wherein the data characterizing the second truth table was received directly from memory cells of a third programmable logic block of the plurality of programmable logic blocks.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 1, 2021
From: X DEVELOPMENT LLC
To: GOOGLE LLC
Reel/Frame 057353/0295 →
EMPLOYMENT AGREEMENT Recorded May 4, 2021
From: ROSS, JONATHAN
To: X DEVELOPMENT LLC
Reel/Frame 056135/0670 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 12, 2020
From: ROSS, JONATHAN
To: GOOGLE INC.
Reel/Frame 052923/0099 →
ENTITY CONVERSION Recorded Jun 12, 2020
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 053581/0427 →
Continuity (3)
Continuation 16435842 · Jun 10, 2019
Continuation 15810496 · Nov 13, 2017
Provisional Application 62423535 · Nov 17, 2016