IP Library › Granted Patent US 12,730,953
Granted Patent B1
US 12,730,953 · App. 18/206,491 · Granted Sep 8, 2026

Systems and methods for deploying frame-based simulation models on programmable logic devices

Inventors: Kiran K. Kintali (Needham, MA); Navaneetha K. Ruthramoorthy (Ashland, MA); Megan N. Carpenter (Natick, MA)
Assignee: The Math Works, Inc.
G06F30/3308G06F2117/10
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,730,953
App. No.
18/206,491
Granted
Sep 8, 2026
Kind
B1
Abstract

Systems and methods transform frame-based algorithms into revised algorithms having the same behavior as the frame-based algorithms, but that can be synthesized in hardware. The frame-based algorithm may be represented by an executable simulation model, such as a block diagram model.

Claims (32)

1 . A computer-implemented method comprising:

accessing an executable simulation model configured to receive frame-based input data, wherein the executable simulation model includes (i) one or more frame-based signals having a datatype and a rate and (ii) a component configured to perform one or more frame-based operations and produce frame-based output data, the component performing at least one of an elementwise operation, a neighborhood operation, a reduction operation, an iteration operation, a structured access operation, or a random access operation;

generating, by one or more processors, hardware description language (HDL) code for the executable simulation model, wherein the generating the HDL code includes:

updating the datatype of the one or more frame-based signals to a new datatype;

updating the rate of the one or more frame-based signals to a new rate;

converting the frame-based input data to streaming input data;

converting the frame-based output data to streaming output data;

converting the one or more frame-based signals to one or more streaming signals;

converting the component performing the at least one of the elementwise operation, the neighborhood operation, the reduction operation, the iteration operation, the structured access operation, or the random access operation to a sample-based implementation operating on the one or more streaming signals;

inserting first logic for generating a ready signal indicating the converted component is ready to process input data;

inserting second logic for generating a data valid signal indicating output data computed by the converted component is valid;

adding an input buffer and an output buffer;

configuring the input buffer to receive the streaming input data and to provide the streaming input data to the converted component in response to the ready signal; and

configuring the output buffer to store the output data in response to the data valid signal and to provide the output data as the streaming output data.

2 . The computer-implemented method of claim 1 wherein the new datatype and the new rate are based on a samples per hardware execution cycle parameter.

3 . The computer-implemented method of claim 1 wherein the component performs the neighborhood operation and the neighborhood operation defines a neighborhood and a filter, the method further comprising:

inserting third logic for counting elements of the streaming input data to construct the neighborhood at the converted component.

4 . The computer-implemented method of claim 1 wherein the executable simulation model includes (i) a second component configured to perform one or more second frame-based operations and produce second frame-based output data and (ii) one or more second frame-based signals having a second datatype and a second rate, the method further comprising:

creating separate partitions for the component and the second component; updating the second datatype of the one or more second frame-based signals to a new second datatype based on a samples per hardware execution cycle parameter;

updating the second rate of the one or more second frame-based signals to a new second rate as a function of the samples per hardware execution cycle parameter;

converting the one or more second frame-based signals to one or more second streaming signals;

converting the second component to a sample-based implementation;

inserting second logic associated with the second component, wherein the second logic is configured to (i) buffer second data from the one or more streaming signals and (ii) process one or more valid signals; and

connecting the one or more valid signals of the inserted second logic to the second component.

5 . The computer-implemented method of claim 1 wherein the input buffer and the output buffer are First In First Out (FIFO) buffers.

6 . The computer-implemented method of claim 1 wherein the executable simulation model performs image processing and the frame-based input data is at least one of 240×320 pixels, 640×480 pixels, 1280×720 pixels, 1920×1080 pixels, 3840×2160 pixels, 4096×2160 pixels, or 7680×4320 pixels.

7 . The computer-implemented method of claim 1 wherein the frame-based input data is one-dimensional (1D) vector data, two-dimensional (2D) matrix data, or multi-dimensional matrix data.

8 . The computer-implemented method of claim 1 wherein the executable simulation model performs signal processing on wireless signals, radar signals, or lidar signals.

9 . The computer-implemented method of claim 1 further comprising:

utilizing the generated HDL code to synthesize a programmable logic device.

10 . The computer-implemented method of claim 9 wherein the programmable logic device has Input-Output (IO) resources and a size of the frame-based input data exceeds the IO resources of the programmable logic device.

11 . The computer-implemented method of claim 10 wherein a size of the one or more streaming signals is within the IO resources of the programmable logic device.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 27, 2023
From: KINTALI, KIRAN K.; RUTHRAMOORTHY, NAVANEETHA K.; CARPENTER, MEGAN N.
To: THE MATHWORKS, INC.
Reel/Frame 064404/0695 →
Continuity (1)
Provisional Application 63349837 · Jun 7, 2022
References Cited (23)
US 7275026B2 · Mani et al. · 2007 [cited by applicant]
US 7882462B2 · Ogilvie et al. · 2011 [cited by applicant]
US 8347245B2 · Ogilvie et al. · 2013 [cited by applicant]
US 8533642B1 · Ogilvie et al. · 2013 [cited by applicant]
US 8694947B1 · Venkataramani et al. · 2014 [cited by applicant]
US 8745557B1 · Venkataramani et al. · 2014 [cited by applicant]
US 8863069B1 · Venkataramani et al. · 2014 [cited by applicant]
US 9298862B1 · Venkataramani et al. · 2016 [cited by applicant]
US 9454627B1 · Venkataramani et al. · 2016 [cited by applicant]
US 9817931B1 · Gu et al. · 2017 [cited by applicant]
US 10248390B1 · Venkataramani et al. · 2019 [cited by applicant]
US 10387584B1 · Popovici et al. · 2019 [cited by applicant]
US 20080066046A1 · Ogilvie · 2008 [cited by examiner]
Bravhar, Klemen, et al., Implementation of Vision Algorithms on BRAVE FPGA's Developed in MATLAB and VHDL Environment, The MathWorks, Inc., European Space Agency, ESA, Sep. 4, 2018, pp. 1-20. [cited by applicant]
Draper, Bruce A., et al., “Accelerated Image Processing on FPGAs1”, Dec. 2003, pp. 1-9. [cited by applicant]
“EECS150: Interfaces: “FIFO” (a.k.a. Ready/Valid),” UC Berkeley Collage of Engineering, Department of Electrical engineering and Computer Science, Feb. 2009, pp. 1-5. [cited by applicant]
“HDL Coder™ User's Guide,” MATLAB®&SIMULINK®, R2022a, The MathWorks, Inc., Mar. 2022, pp. 1-2676. [cited by applicant]
Hoozemans, et al., “Frame-Based Programming, Stream-Based Processing for Medical Image Processing Applications,” Springer, Journal of Signal Processing Systems, vol. 91, Jan. 4, 2019, pp. 47-59. [cited by applicant]
Jeong, Seunghyuk “FPGA ASIC: Efficient Algorithm Targeting Creation Method and Introduction of New Features,” MATLAB EXPO 2018, The MathWorks, Inc., May 2018, pp. 1-32. [cited by applicant]
Ouedraogo, Ganda Stephane, et al., “Frame-Based Modeling for Automatic Synthesis of FPGA-Software Defined Radio,” 2014 9 [cited by applicant]
Saidani, Taoufik, et al., “Hardware Acceleration of Video Edge Detection with Hight Level Synthesis on the Xilinx Zynq Platform,” Engineering, Technology & Applied Science Research, ETASR, vol. 12, No. 1, Feb. 2022, pp.… [cited by applicant]
Sharma, Hitu, “Adopting Model-Based Design for FPGA, ASIC, and SoC Development,” MATLAB EXPO 2019, The MathWorks, Inc., Apr. 2019, pp. 1-28. [cited by applicant]
“Simulink® User's Guide”, MATLAB®&SIMULINK®, R2023a, The MathWorks, Inc., Mar. 2023, pp. 1-4510. [cited by applicant]