IP Library Granted Patent US 12,341,512
Granted Patent B2
US 12,341,512 · App. 17/739,575 · Granted Jun 24, 2025

Method for programming an FPGA

Inventors: Heiko Kalte (Paderborn, DE); Dominik Lubeley (Paderborn, DE)
Assignee: dSPACE GMBH
H03K19/17792H03K19/1774H03K19/17744H03K19/1776
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,341,512
App. No.
17/739,575
Granted
Jun 24, 2025
Kind
B2
Abstract

A method for programming an FPGA, wherein a library, which includes elementary operations and a particular latency table for each of the elementary operations of the library is provided. Each latency table indicates the latency of the particular operation for a plurality of clock rates of the FPGA and for a plurality of input bit widths of the particular operation during the execution on the FPGA, depending on the input bit width of the particular operation and the clock rate of the FPGA. A data path indicating a consecutive execution of at least two elementary operations of the library on the FPGA is defined. The latencies given for the particular input bit width of the particular elementary operations of the data path for a plurality of different clock rates in the latency tables are detected and added, then one of the clock rates is selected.

Claims (21)

1. A method for programming an FPGA, wherein a library, which includes elementary operations, executable on the FPGA, and a particular latency table for each of the elementary operations of the library is provided, each latency table indicating the latency of the particular operation for a plurality of clock rates of the FPGA and for a plurality of input bit widths of the particular operation during the execution on the FPGA, depending on the input bit width of the particular operation and the clock rate of the FPGA, the method comprising:

defining a data path, the data path indicating a consecutive execution of at least two elementary operations of the library on the FPGA;

detecting the latencies given for the particular input bit width of the particular elementary operations of the data path for a plurality of different clock rates in the latency tables, and adding up the detected latencies for each clock rate, so that a total latency for the data path results in each case for this plurality of different clock rates; and

selecting one of the clock rates from the plurality of different clock rates for operating the FPGA, depending on the particular total latency of the particular clock rates.

2. The method according to claim 1 , wherein the latency tables provided for the FPGA have been created in advance by means of measurements on an FPGA of the same type.

3. The method according to claim 1 , wherein, in the step of selecting one of the clock rates from the multiplicity of different clock rates for operating the FPGA, depending on the particular total latency of the particular clock rate, the clock rate is selected which is associated with the lowest total latency.

4. The method according to claim 1 , further comprising:

defining at least one further data path, which indicates a different consecutive execution of at least two elementary operations of the library;

adding up the latencies given by the particular input bit width of the particular elementary operations of the further data path for the same clock rates as for the other data path, so that a total latency for the further data path also results in each case for these clock rates; and

selecting a clock rate from the plurality of clock rates for operating the FPGA, depending on the particular total latencies of the data path and the further data path.

5. The method according to claim 4 , further comprising:

comparing, for all clock rates, the total latencies of the data paths for the articular clock rate with each other, and ascertaining the highest total latency for the particular clock rate; and

selecting a clock rate from the plurality of clock rates for operating the FPGA, which is associated with the total latency having the smallest absolute value among the ascertained highest total latencies.

6. The method according to claim 1 , further comprising:

defining a plurality of further different data paths, which each indicate a different consecutive execution of at least two elementary operations of the library, and forming a plurality of data path groups by combining at least two data paths in each case from the defined data paths;

adding up the latencies for the same clock rates given by the particular input bit width of the particular elementary operations of each data path for each data path group, so that a total latency results for these clock rates for each data path of the data path group; and

selecting a clock rate for operating the particular data path group on the FPGA for all data path groups, depending on the particular total latencies of all data paths in the particular data path group.

7. The method according to claim 6 , wherein the clock rate is selectable which is associated with the total latency of the particular data path group which has the smallest absolute value among the ascertained highest total latencies of the particular data path group.

8. The method according to claim 1 , wherein the elementary operations of the library are not further dividable.

9. The method according to claim 1 , wherein the elementary operations of the library are elementary blocks from a block library of a programming environment, which is designed to create a program logic in the form of a flowchart constructed from elementary blocks.

10. A non-transitory computer-readable memory medium, having commands stored thereon, which, when executed on a processor, perform the method according to claim 1 .

Assignments (2)
CHANGE OF NAME Recorded Dec 21, 2022
From: DSPACE DIGITAL SIGNAL PROCESSING AND CONTROL ENGINEERING GMBH
To: DSPACE GMBH
Reel/Frame 062202/0014 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 9, 2022
From: KALTE, HEIKO; LUBELEY, DOMINIK
To: DSPACE GMBH
Reel/Frame 059870/0795 →
Priority Claims (2)
DE 10 2021 112 072.1 · May 10, 2021 · national
DE 10 2021 117 665.4 · Jul 8, 2021 · national
Continuity (1)
Related Publication 20220360265A1 · Nov 10, 2022
References Cited (5)
US 6086629A · McGettigan et al. · 2000 [cited by applicant]
US 20200057681A1 · Mamaghani · 2020 [cited by examiner]
US 20230418324A1 · Kalte · 2023 [cited by examiner]
Xing et al., “FPGA Adders: Performance Evaluation and Optimal Design,” IEEE Design & Test Computers, vol. 15, No. 1, pp. 24-29 (1998). [cited by applicant]
Wong et al., “Self-characterization of Combinatorial Circuit Delays in FPGAs,” Int'l Conf on Field-Programmable Tech, pp. 17-23 (2007). [cited by applicant]