IP Library › Granted Patent US 12,596,865
Granted Patent B2
US 12,596,865 · App. 18/145,704 · Granted Apr 7, 2026

Build flow for implementing artificial intelligence applications in programmable integrated circuits

Inventors: Mohammed Bader Alam (San Jose, CA); Goutham Pocklassery (Longmont, CO); Ravishankar Menon (Bengaluru, IN); Sumit Nagpal (Hyderabad, IN); Mahesh Suresh Mahadurkar (Wani, IN); Padmini Gopalakrishnan (Hyderabad, IN)
Assignee: Xilinx, Inc.
G06F30/394G06F30/392
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 12,596,865
App. No.
18/145,704
Granted
Apr 7, 2026
Kind
B2
Abstract

A design for a programmable integrated circuit (IC) is synthesized and includes an inference engine and a data transformer. A portion of the design including the data transformer is designated as a dynamic function exchange (DFX) module. The inference engine is excluded from the DFX module. The design is implemented, by placing and routing, such that the DFX module is confined to a defined physical area of the programmable integrated circuit. An abstract shell for the design specifying boundary connections of the DFX module as placed and routed is generated. A locked version of the design as placed and routed with the DFX module removed is generated. The method includes implementing a different data transformer as a further DFX module for the design using the abstract shell.

Claims (44)

1 . A method, comprising:

for a design for a programmable integrated circuit that is synthesized and includes an inference engine and a data transformer, designating a portion of the design including the data transformer as a dynamic function exchange (DFX) module, wherein the inference engine is excluded from the DFX module;

implementing, by placing and routing, the design such that the DFX module is confined to a defined physical area of the programmable integrated circuit;

generating an abstract shell for the design specifying boundary connections of the DFX module as placed and routed;

generating a locked version of the design as placed and routed with the DFX module removed; and

implementing a different data transformer as a further DFX module for the design using the abstract shell.

2 . The method of claim 1 , further comprising:

attaching the different data transformer, as implemented, to the locked version of the design.

3 . The method of claim 1 , wherein the DFX module is a nested DFX module.

4 . The method of claim 1 , wherein the implementing the different data transformer includes:

performing placement and routing of the different data transformer to fit within the defined physical area.

5 . The method of claim 1 , wherein the defined physical area is defined by creating a data structure associated with the data transformer, the data structure specifying a size and a location of the defined physical area on the programmable integrated circuit.

6 . The method of claim 5 , further comprising:

setting a size parameter of the data structure based on resource usage of the data transformer.

7 . The method of claim 5 , further comprising:

setting a location parameter of the data structure to specify a location that is non-obstructing of buses of the design.

8 . The method of claim 7 , wherein the buses include buses linking the inference engine to other components of the programmable integrated circuit.

9 . The method of claim 7 , wherein the location specified by the location parameter is determined so that signals between the defined physical area and a memory meet predetermined timing constraints.

10 . A system, comprising:

one or more hardware processors configured to initiate operations including:

for a design for a programmable integrated circuit that is synthesized and includes an inference engine and a data transformer, designating a portion of the design including the data transformer as a dynamic function exchange (DFX) module, wherein the inference engine is excluded from the DFX module;

implementing, by placing and routing, the design such that the DFX module is confined to a defined physical area of the programmable integrated circuit;

generating an abstract shell for the design specifying boundary connections of the DFX module as placed and routed;

generating a locked version of the design as placed and routed with the DFX module removed; and

implementing a different data transformer as a further DFX module for the design using the abstract shell.

11 . The system of claim 10 , wherein the one or more hardware processors are configured to initiate operations comprising:

attaching the different data transformer, as implemented, to the locked version of the design.

12 . The system of claim 10 , wherein the DFX module is a nested DFX module.

13 . The system of claim 10 , wherein the implementing the different data transformer includes:

performing placement and routing of the different data transformer to fit within the defined physical area.

14 . The system of claim 10 , wherein the defined physical area is defined by creating a data structure associated with the data transformer, the data structure specifying a size and a location of the defined physical area on the programmable integrated circuit.

15 . The system of claim 14 , wherein the one or more hardware processors are configured to initiate operations comprising:

setting a size parameter of the data structure based on resource usage of the data transformer.

16 . The system of claim 14 , wherein the one or more hardware processors are configured to initiate operations comprising:

setting a location parameter of the data structure to specify a location that is non-obstructing of buses of the design.

17 . The system of claim 16 , wherein the buses include buses linking the inference engine to other components of the programmable integrated circuit.

18 . The system of claim 16 , wherein the location specified by the location parameter is determined so that signals between the defined physical area and a memory meet predetermined timing constraints.

19 . A computer program product comprising one or more computer readable storage mediums having program instructions embodied therewith, the program instructions executable by computer hardware to cause the computer hardware to initiate executable operations comprising:

for a design for a programmable integrated circuit that is synthesized and includes an inference engine and a data transformer, designating a portion of the design including the data transformer as a dynamic function exchange (DFX) module, wherein the inference engine is excluded from the DFX module;

implementing, by placing and routing, the design such that the DFX module is confined to a defined physical area of the programmable integrated circuit;

generating an abstract shell for the design specifying boundary connections of the DFX module as placed and routed;

generating a locked version of the design as placed and routed with the DFX module removed; and

implementing a different data transformer as a further DFX module for the design using the abstract shell.

20 . The computer program product of claim 19 , wherein the DFX module is a nested DFX module.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 9, 2023
From: ALAM, MOHAMMED BADER; POCKLASSERY, GOUTHAM; MENON, RAVISHANKAR; NAGPAL, SUMIT; MAHADURKAR, MAHESH SURESH; GOPALAKRISHNAN, PADMINI
To: XILINX, INC.
Reel/Frame 062306/0637 →
Continuity (1)
Related Publication 20240211675A1 · Jun 27, 2024
References Cited (70)
US 6091263A · New et al. · 2000 [cited by applicant]
US 6150839A · New · 2000 [cited by applicant]
US 6204687B1 · Schultz et al. · 2001 [cited by applicant]
US 6462579B1 · Camilleri et al. · 2002 [cited by applicant]
US 6507211B1 · Schultz et al. · 2003 [cited by applicant]
US 6525562B1 · Schultz et al. · 2003 [cited by applicant]
US 6526557B1 · Young et al. · 2003 [cited by applicant]
US 6573748B1 · Trimberger · 2003 [cited by applicant]
US 6625794B1 · Trimberger · 2003 [cited by applicant]
US 6759869B1 · Young et al. · 2004 [cited by applicant]
US 6810514B1 · Alfke et al. · 2004 [cited by applicant]
US 6836842B1 · Guccione et al. · 2004 [cited by applicant]
US 6907595B2 · Curd et al. · 2005 [cited by applicant]
US 7024651B1 · Camilleri et al. · 2006 [cited by applicant]
US 7057413B1 · Young et al. · 2006 [cited by applicant]
US 7109750B2 · Vadi et al. · 2006 [cited by applicant]
US 7124338B1 · Mark et al. · 2006 [cited by applicant]
US 7138820B2 · Goetting et al. · 2006 [cited by applicant]
US 7218137B2 · Vadi et al. · 2007 [cited by applicant]
US 7224184B1 · Levi et al. · 2007 [cited by applicant]
US 7233532B2 · Vadi et al. · 2007 [cited by applicant]
US 7235999B2 · Goetting et al. · 2007 [cited by applicant]
US 7302625B1 · Payakapan et al. · 2007 [cited by applicant]
US 7477072B1 · Kao et al. · 2009 [cited by applicant]
US 7478357B1 · Mason et al. · 2009 [cited by applicant]
US 7482836B2 · Levi et al. · 2009 [cited by applicant]
US 7509617B1 · Young · 2009 [cited by applicant]
US 7518396B1 · Kondapalli et al. · 2009 [cited by applicant]
US 7546572B1 · Ballagh et al. · 2009 [cited by applicant]
US 7599299B2 · Goetting et al. · 2009 [cited by applicant]
US 7619442B1 · Mason et al. · 2009 [cited by applicant]
US 7640526B1 · Blodget · 2009 [cited by examiner]
US 7640527B1 · Dorairaj · 2009 [cited by examiner]
US 7724815B1 · Raha et al. · 2010 [cited by applicant]
US 7746099B1 · Chan et al. · 2010 [cited by applicant]
US 7827510B1 · Schubert · 2010 [cited by examiner]
US 7890916B1 · Donlin · 2011 [cited by examiner]
US 7941777B1 · Young · 2011 [cited by examiner]
US 8102188B1 · Chan et al. · 2012 [cited by applicant]
US 8359448B1 · Neuendorffer · 2013 [cited by applicant]
US 8415974B1 · Lysaght · 2013 [cited by applicant]
US 8635571B1 · Goldman · 2014 [cited by examiner]
US 8719750B1 · Balzli, Jr. · 2014 [cited by applicant]
US 8910109B1 · Orthner · 2014 [cited by examiner]
US 8928351B1 · Konduru · 2015 [cited by applicant]
US 9722613B1 · Schultz et al. · 2017 [cited by applicant]
US 10296699B1 · Yu et al. · 2019 [cited by applicant]
US 10558777B1 · Yu et al. · 2020 [cited by applicant]
US 10608641B2 · Yu et al. · 2020 [cited by applicant]
US 10621299B1 · Yu et al. · 2020 [cited by applicant]
US 10642630B1 · Shaddock · 2020 [cited by examiner]
US 10651853B1 · Kong et al. · 2020 [cited by applicant]
US 11188312B2 · Sastry · 2021 [cited by examiner]
US 11681846B1 · Yang · 2023 [cited by examiner]
US 11720735B2 · Turullols · 2023 [cited by examiner]
US 20060190904A1 · Haji-Aghajani · 2006 [cited by examiner]
US 20080216038A1 · Bose · 2008 [cited by examiner]
US 20100030831A1 · Standfield · 2010 [cited by examiner]
US 20140189622A1 · Titley · 2014 [cited by examiner]
US 20160048623A1 · Emirian · 2016 [cited by examiner]
US 20170286582A1 · Khan · 2017 [cited by examiner]
US 20190303311A1 · Bilski · 2019 [cited by examiner]
US 20190303328A1 · Balski · 2019 [cited by examiner]
US 20200371759A1 · Sastry · 2020 [cited by examiner]
US 20200371787A1 · Gupta · 2020 [cited by examiner]
US 20220108211A1 · K T · 2022 [cited by examiner]
EP 2871589A1 · 2015 [cited by examiner]
EP 3136253A1 · 2017 [cited by examiner]
EP 3418905A2 · 2018 [cited by examiner]
“SDAccel Environment User Guide,” UG1023 (v2018.3), Xilinx, Inc., Jan. 24, 2019, p. 165. [cited by applicant]