IP Library Granted Patent US 12,488,166
Granted Patent B2
US 12,488,166 · App. 18/059,348 · Granted Dec 2, 2025

Implementing burst transfers for predicated memory accesses in loop bodies for high-level synthesis

Inventors: Lin-Ya Yu (San Jose, CA); Alexandre Isoard (San Jose, CA); Hem C. Neema (San Jose, CA)
Assignee: Xilinx, Inc.
G06F30/327G06F30/323G06F30/337G06F30/373G06F30/398
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,488,166
App. No.
18/059,348
Granted
Dec 2, 2025
Kind
B2
Abstract

Implementing burst transfers for predicated accesses in high-level synthesis includes generating, using computer hardware, an intermediate representation of a design specified in a high-level programming language. The design is for an integrated circuit. Using the computer hardware, loop predicate information for one or more conditional statements within a loop body of the intermediate representation is determined. A plurality of memory accesses of the loop body guarded by the one or more conditional statements are determined to be sequential memory accesses based on the predicate information. The intermediate representation is modified by inserting one or more intrinsics therein indicating that the sequential memory accesses are to be implemented using a burst transfer mode of the integrated circuit.

Claims (41)

1 . A method, comprising:

generating, using computer hardware, an intermediate representation of a design specified in a high-level programming language, wherein the design is for an integrated circuit;

using the computer hardware, determining loop predicate information for one or more conditional statements within a loop body of the intermediate representation;

determining, using the computer hardware, that a plurality of memory accesses of the loop body guarded by the one or more conditional statements are sequential memory accesses that execute in different iterations of the loop body based on the predicate information; and

modifying the intermediate representation by inserting one or more intrinsics therein indicating that the sequential memory accesses are to be implemented using a burst transfer mode of the integrated circuit.

2 . The method of claim 1 , further comprising:

detecting basic blocks within the intermediate representation.

3 . The method of claim 1 , further comprising:

generating a hardware description language version of the design from the intermediate representation, as modified, wherein the sequential memory accesses are designated for implementation in the integrated circuit using the burst transfer mode.

4 . The method of claim 1 , wherein the one or more conditional statements include a loop invariant predicate.

5 . The method of claim 1 , wherein the one or more conditional statements include a range predicate.

6 . The method of claim 1 , wherein the one or more conditional statements include a stride predicate.

7 . The method of claim 1 , further comprising:

generating sequential access chain information specifying a plurality of sequential memory accesses supported by selected predicate types, wherein the sequential access chain information includes a start access address, an access length, a list of the sequential memory accesses, and one or more predicates of the selected predicate types that guard the sequential memory accesses.

8 . A system, comprising:

one or more hardware processors configured to initiate operations including:

generating an intermediate representation of a design specified in a high-level programming language, wherein the design is for an integrated circuit;

determining loop predicate information for one or more conditional statements within a loop body of the intermediate representation;

determining that a plurality of memory accesses of the loop body guarded by the one or more conditional statements are sequential memory accesses that execute in different iterations of the loop body based on the predicate information; and

modifying the intermediate representation by inserting one or more intrinsics therein indicating that the sequential memory accesses are to be implemented using a burst transfer mode of the integrated circuit.

9 . The system of claim 8 , wherein the one or more processors are configured to initiate operations further comprising:

detecting basic blocks within the intermediate representation.

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

generating a hardware description language version of the design from the intermediate representation, as modified, wherein the sequential memory accesses are designated for implementation in the integrated circuit using the burst transfer mode.

11 . The system of claim 8 , wherein the one or more conditional statements include a loop invariant predicate.

12 . The system of claim 8 , wherein the one or more conditional statements include a range predicate.

13 . The system of claim 8 , wherein the one or more conditional statements include a stride predicate.

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

generating sequential access chain information specifying a plurality of sequential memory accesses supported by selected predicate types, wherein the sequential access chain information includes a start access address, an access length, a list of the sequential memory accesses, and one or more predicates of the selected predicate types that guard the sequential memory accesses.

15 . 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:

generating an intermediate representation of a design specified in a high-level programming language, wherein the design is for an integrated circuit;

determining loop predicate information for one or more conditional statements within a loop body of the intermediate representation;

determining that a plurality of memory accesses of the loop body guarded by the one or more conditional statements are sequential memory accesses that execute in different iterations of the loop body based on the predicate information; and

modifying the intermediate representation by inserting one or more intrinsics therein indicating that the sequential memory accesses are to be implemented using a burst transfer mode of the integrated circuit.

16 . The computer program product of claim 15 , wherein the program instructions are executable by the computer hardware to initiate operations further comprising:

generating a hardware description language version of the design from the intermediate representation, as modified, wherein the sequential memory accesses are designated for implementation in the integrated circuit using the burst transfer mode.

17 . The computer program product of claim 15 , wherein the one or more conditional statements include a loop invariant predicate.

18 . The computer program product of claim 15 , wherein the one or more conditional statements include a range predicate.

19 . The computer program product of claim 15 , wherein the one or more conditional statements include a stride predicate.

20 . The computer program product of claim 15 , wherein the program instructions are executable by the computer hardware to initiate operations further comprising:

generating sequential access chain information specifying a plurality of sequential memory accesses supported by selected predicate types, wherein the sequential access chain information includes a start access address, an access length, a list of the sequential memory accesses, and one or more predicates of the selected predicate types that guard the sequential memory accesses.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 28, 2022
From: YU, LIN-YA; ISOARD, ALEXANDRE; NEEMA, HEM C.
To: XILINX, INC.
Reel/Frame 061896/0396 →
Continuity (1)
Related Publication 20240176936A1 · May 30, 2024
References Cited (25)
US 8516468B2 · Ng · 2013 [cited by examiner]
US 9430203B2 · Ishii · 2016 [cited by examiner]
US 10331836B1 · Hosangadi · 2019 [cited by examiner]
US 11762762B1 · Yu · 2023 [cited by examiner]
US 20020103959A1 · Baker, Jr. · 2002 [cited by applicant]
US 20050193359A1 · Gupta · 2005 [cited by applicant]
US 20070162900A1 · Biswas · 2007 [cited by applicant]
US 20080208560A1 · Johnson · 2008 [cited by applicant]
US 20120204163A1 · Marathe · 2012 [cited by examiner]
US 20140215183A1 · Yazdani · 2014 [cited by applicant]
US 20150106596A1 · Vorbach · 2015 [cited by examiner]
US 20150277874A1 · Haraguchi · 2015 [cited by examiner]
US 20160011870A1 · Plotnikov · 2016 [cited by examiner]
US 20190079738A1 · Samuel · 2019 [cited by examiner]
US 20190278593A1 · Elango · 2019 [cited by examiner]
US 20200364052A1 · Chinchole · 2020 [cited by examiner]
US 20210255891A1 · Henretty · 2021 [cited by examiner]
US 20230058355A1 · Hornung · 2023 [cited by examiner]
US 20240020239A1 · Boonstra · 2024 [cited by examiner]
Intel, Intel® FPGA SDK for OpenCL™ Pro Edition, Best Practices Guide, Updated for Intel® Quartus® Prime Design Suite: 21.3, ID: 683521, Version: Oct. 4, 2021, 7 pages. [cited by applicant]
Richard Johnson, et al., The Program Structure Tree: Computing Control Regions in Linear Time, Department of Computer Science Cornell University, Ithaca, NY 14853, 15 pages. [cited by applicant]
Jussi Vanhatalo, et al., The Refined Process Structure Tree, IBM Zurich Research Laboratory, Säumerstrasse 4, CH-8803 Rüschlikon, Switzerland, Institute of Architecture of Application Systems, University of Stuttgart, U… [cited by applicant]
The LLVM Compiler Infrastructure, 2019 European LLVM Developers Meeeting, Apr. 8-9, 2019, 28 pages, https://llvm.org/devmtg/2019-04/talks.html. [cited by applicant]
Djoudi et al., “MAQAO: Modular Assembler Quality Analyzer and Optimizer for Itanium 2” (Year: 2005). [cited by applicant]
A Akoglu, “Application Specific Reconfigurable Architecture Design Methodology” (Year: 2005). [cited by applicant]