IP Library › Granted Patent US 10,747,531
Granted Patent B1
US 10,747,531 · App. 15/944,315 · Granted Aug 18, 2020

Core for a data processing engine in an integrated circuit

Inventors: Jan Langer (Chemnitz, DE); Baris Ozgul (Dublin, IE); Juan J. Noguera Serra (San Jose, CA); Goran HK Bilski (Molndal, SE); Tim Tuan (San Jose, CA)
Assignee: XILINX, INC.
G06F9/3001G06F9/30098G06F9/30145G06F7/49994G06F9/3853G06F9/3893G06F15/8084
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,747,531
App. No.
15/944,315
Granted
Aug 18, 2020
Kind
B1
Abstract

An example core for a data processing engine (DPE) includes a register file, a processor, coupled to the register file. The processor includes a multiply-accumulate (MAC) circuit, and permute circuitry coupled between the register file and the MAC circuit, the permute circuitry configured to concatenate at least one pair of outputs of the register file to provide at least one input to the MAC circuit. The core further includes an instruction decoder, coupled to the processor, configured to decode a very large instruction word (VLIW) to set a plurality of parameters of the processor, the plurality of parameters including first parameters of the permute circuitry and second parameters of the MAC circuit.

Claims (55)

1. A core for a data processing engine (DPE), comprising:

a register file having multi-bit output lanes;

a processor, coupled to the register file, including a pipeline having:

a multiply-accumulate (MAC) circuit; and

permute circuitry coupled between the register file and the MAC circuit such that an input of the permute circuitry is coupled to an output of the register file and an output of the permute circuitry is coupled to an input of the MAC circuit, the permute circuitry including a first permute circuit and a second permute circuit configured to directly couple concatenations of subsets of the multi-bit output lanes of the register file to inputs of the MAC circuit; and

an instruction decoder, coupled to the processor, configured to decode a very large instruction word (VLIW) to set a plurality of parameters of the processor, the plurality of parameters including first parameters of the permute circuitry and second parameters of the MAC circuit.

2. The core of claim 1 , wherein the MAC circuit comprises:

a pre-adder configured to process first and second inputs of the inputs of the MAC circuit that receive first and second concatenations of the concatenations provided by the permute circuitry;

a multiplier configured to process an output of the pre-adder;

at least one post-adder configured to process an output of the multiplier; and

an accumulator configured to process an output of the at least one post-adder.

3. The core of claim 2 , wherein the at least one post-adder comprises a first post-adder coupled to a second post-adder.

4. The core of claim 2 , wherein the MAC circuit further comprises:

a special operation circuit configured to output a unity value and configured to sign-extend the second input and a third input of the inputs of the MAC circuit, the third input receiving a third concatenation of the concatenations provided by the permute circuitry;

wherein the multiplier is configured to process an output of the special operation circuit.

5. The core of claim 2 , further comprising:

a first multiplexer configured to select among the inputs of the MAC circuit;

an upshift circuit coupled to an output of the first multiplexer; and

a second multiplexer coupled to an output of the upshift circuit and to the output of the at least one post-adder;

wherein the accumulator is further configured to process an output of the second multiplexer.

6. The core of claim 5 , wherein the first multiplexer is further configured to select among an output of the register file in addition to the inputs of the MAC circuit.

7. The core of claim 5 , wherein the second multiplexer is further coupled to an output of a register.

8. The core of claim 2 , further comprising a register coupled to an output of the accumulator.

9. The core of claim 1 , wherein the register file is a concatenation of a plurality of register files.

10. The core of claim 9 , wherein the permute circuitry includes a third permute circuit, and wherein the plurality of register files includes a first register file coupled to the first and second permute circuits, and a second register file coupled to the third permute circuit.

11. The core of claim 1 , wherein the processor is a vector processor, the register file is a vector register file, and further comprising:

a scalar processor;

a scalar register file coupled to the scalar processor;

an address generator configured to generate addresses to load data from and store data to a data memory; and

a memory interface configured to communicate with the data memory.

12. An integrated circuit (IC), comprising:

a data processing engine (DPE) array having a plurality of DPEs, each of the plurality of DPEs including a core, the core including:

a register file having multi-bit output lanes;

a processor, coupled to the register file, including a pipeline having:

a multiply-accumulate (MAC) circuit; and

permute circuitry coupled between the register file and the MAC circuit such that an input of the permute circuitry is coupled to an output of the register file and an output of the permute circuitry is coupled to an input of the MAC circuit, the permute circuitry including a first permute circuit and a second permute circuit configured to directly couple concatenations of subsets of the multi-bit output lanes of the register file to inputs of the MAC circuit; and

an instruction decoder, coupled to the processor, configured to decode a very large instruction word (VLIW) to set a plurality of parameters of the processor, the plurality of parameters including first parameters of the permute circuitry and second parameters of the MAC circuit.

13. The IC of claim 12 , wherein the MAC circuit comprises:

a pre-adder configured to process first and second inputs of the inputs of the MAC circuit that receive first and second concatenations of the concatenations provided by the permute circuitry;

a multiplier configured to process an output of the pre-adder;

at least one post-adder configured to process an output of the multiplier; and

an accumulator configured to process an output of the at least one post-adder.

14. The IC of claim 13 , wherein the MAC circuit further comprises:

a special operation circuit configured to output a unity value and configured to sign-extend the second input and a third input of the inputs of the MAC circuit, the third input receiving a third concatenation of the concatenations provided by the permute circuitry;

wherein the multiplier is configured to process an output of the special operation circuit.

15. The IC of claim 13 , further comprising:

a first multiplexer configured to select among the inputs of the MAC circuit;

an upshift circuit coupled to an output of the first multiplexer; and

a second multiplexer coupled to an output of the upshift circuit and to the output of the at least one post-adder;

wherein the accumulator is further configured to process an output of the second multiplexer.

16. The IC of claim 15 , wherein the first multiplexer is further configured to select among an output of the register file in addition to the inputs of the MAC circuit.

17. The IC of claim 16 , wherein the second multiplexer is further coupled to an output of a register.

18. The IC of claim 13 , further comprising a register coupled to an output of the accumulator.

19. The IC of claim 12 , wherein the register file is a concatenation of a plurality of register files.

20. The IC of claim 19 , wherein the permute circuitry includes a third permute circuit, and wherein the plurality of register files includes a first register file coupled to the first and second permute circuits, and a second register file coupled to the third permute circuit.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 27, 2019
From: XILINX GMBH
To: XILINX, INC.
Reel/Frame 048719/0864 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 5, 2018
From: LANGER, JAN
To: XILINX GMBH
Reel/Frame 045446/0660 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 5, 2018
From: OZGUL, BARIS; NOGUERA SERRA, JUAN J.; BILSKI, GORAN H.K.; TUAN, TIM
To: XILINX, INC.
Reel/Frame 045447/0921 →
Cited By (1)
US 12,450,165