Systems and methods for estimating performance characteristics of hardware implementations of executable models

US10078717B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-10078717-B1
Application numberUS-201414562647-A
CountryUS
Kind codeB1
Filing dateDec 5, 2014
Priority dateDec 5, 2013
Publication dateSep 18, 2018
Grant dateSep 18, 2018

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Systems and methods automatically generate optimized hardware description language code for a model created in a modeling environment. A training tool selects and provides scripts to a hardware synthesis tool chain that direct the tool chain to synthesize hardware components for core components of the modeling environment. A report generated by the tool chain is evaluated to extract performance data for the core components, and the performance data is stored in a library. An optimization tool estimates the performance of the model using the performance data in the library. Based on the performance estimate and an analysis of the model, the optimization tool selects an optimization technique which it applies to the model generating a revised. Estimating performance, and selecting and applying optimizations may be repeated until a performance constraint is satisfied or a termination criterion is met.

First claim

Opening claim text (preview).

What is claimed is: 1. A method comprising: storing, in a first memory, a plurality of hardware synthesis scripts, where the plurality of hardware synthesis scripts include instructions directing a hardware synthesis tool chain to implement functionality of core components of a modeling environment using hardware components of one or more physical target hardware elements, the core components providing base level functions or operations for use in executable models created in or run by the modeling environment, one or more of the core components implemented as model elements of the modeling environment; providing the plurality of hardware synthesis scripts to the hardware synthesis tool chain for synthesizing the hardware components to implement the functionality of the core components of the modeling environment; receiving performance data from the hardware synthesis tool chain for the hardware components synthesized to implement the functionality of the core components; mapping, by a first processor coupled to the first memory, the performance data received from the hardware synthesis tool chain to the core components of the modeling environment; storing, in the first memory or a second memory, the performance data as mapped to the core components of the modeling environment; utilizing, by the first processor or a second processor, the performance data as mapped to the core components during generation of code for at least a portion of a given executable model that includes a plurality of the core components; and implementing a given physical target hardware element based on the code generated for the at least a portion of the given executable model. 2. The method of claim 1 where the plurality of hardware synthesis scripts further specify characteristics for hardware implementations of the core components of the modeling environment. 3. The method of claim 2 where the characteristics are at least one of: bitwidths, fan-in values, fan-out values, number of inputs, or core component parameters. 4. The method of claim 1 where the performance data as mapped to the core components is stored as one or more lookup tables. 5. The method of claim 1 where at least some of the plurality of synthesis scripts are custom-created by a user. 6. The method of claim 1 where the plurality of synthesis scripts are written in a Tool Command Language (tcl). 7. The method of claim 1 further comprising: abstracting the performance data received from the hardware synthesis tool chain; and storing the abstracted performance data in one or more data structures. 8. The method of claim 7 where the one or more data structures include sparse lookup tables (LUTs). 9. The method of claim 8 further comprising: applying an interpolation algorithm or an extrapolation algorithm to derive particular performance data from the sparse LUTs. 10. The method of claim 1 further comprising: a. receiving the given executable model, the given executable model including a plurality of the model elements; b. generating an intermediate representation (IR) of the given executable model, the IR stored in the first memory, the second memory, or a third memory, the IR having a plurality of nodes associated with the core components that form the plurality of the model elements of the given executable model; c. annotating the plurality of nodes of the IR with at least a portion of the performance data from the hardware synthesis tool chain; d. estimating a hardware performance for the IR based on the performance data annotated to the plurality nodes of the IR; e. automatically selecting an optimization technique; f. applying the selected optimization technique to the IR to generate a revised IR having a plurality of nodes; and g. repeating steps c to f using the revised IR, wherein the optimization technique is at least one of: improving timing through pipelining or retiming, improving area usage by replacing a first set of the plurality of nodes of the IR that implement functionality of a first model element with replacement nodes that implement the functionality of the first model element with less area than the first set of the plurality of nodes, or improving power consumption by replacing a second set of the plurality of nodes of the IR that implement functionality of a second model element with substitute nodes that implement the functionality of the second model element with less power than the second set of the plurality of nodes. 11. The method of claim 10 where the repeating steps c to f is performed until the estimated hardware performance satisfies a specified constraint, or a termination criterion is met. 12. The method of claim 11 where the specified constraint is a timing constraint of a hardware implementation of the given executable model, and the estimating includes: identifying a critical path, and determining a latency of the critical path. 13. The method of claim 11 where the specified constraint is a timing constraint of a hardware implementation of the given executable model, and the estimating includes: identifying a signal of the given executable model that operates at a slower rate than a clock speed associated with the given executable model; identifying a register on a path of the given executable model that includes the signal that operates at the slower rate; and determining a final latency for the path of the given executable model by dividing an initial latency by a ratio of the slower rate to the clock speed. 14. The method of claim 10 where the given executable model includes a plurality of occurrences of a subsystem, the method further comprising: determining a latency for a first occurrence of the subsystem; and applying the determined latency to the other occurrences of the subsystem. 15. The method of claim 1 wherein the performance data is for at least one of timing, area, or power. 16. The method of claim 1 wherein a first script of the plurality of hardware synthesis scripts specifies a constraint on at least one of timing, area, or power, and is free of identifying particular hardware components. 17. The method of claim 1 wherein the hardware components include at least one of: logic cells; input/output (I/O) cells; hardware lookup tables; or standard cells of an ASIC technology library. 18. One or more non-transitory computer-readable media comprising program instructions for execution by one or more processors, the program instructions instructing the one or more processors to: store, in a first memory coupled to at least one of the one or more processors, a plurality of hardware synthesis scripts, where the plurality of hardware synthesis scripts include instructions directing a hardware synthesis tool chain to implement functionality of core components of a modeling environment using hardware components of one or more physical target hardware elements, the core components providing base level functions or operations for use in executable models created in or run by the modeling environment, one or more of the core components implemented as model elements of the modeling environment; provide the plurality of hardware synthesis scripts to the hardware synthesis tool chain for synthesizing the hardware components to implement the functionality of the core components of the modeling environment; receive performance data for the hardware components of the one or more physical target hardware elements from the hardware synthesis tool chain; map the performance data received from the ha

Assignees

Inventors

Classifications

  • Thermal analysis or thermal optimisation · CPC title

  • G06F30/327Primary

    Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist · CPC title

  • Timing analysis or timing optimisation · CPC title

  • Timing analysis · CPC title

  • Noise analysis or noise optimisation · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10078717B1 cover?
Systems and methods automatically generate optimized hardware description language code for a model created in a modeling environment. A training tool selects and provides scripts to a hardware synthesis tool chain that direct the tool chain to synthesize hardware components for core components of the modeling environment. A report generated by the tool chain is evaluated to extract performance…
Who is the assignee on this patent?
Mathworks Inc
What technology area does this patent fall under?
Primary CPC classification G06F30/327. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Sep 18 2018 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 4 related publications on this page (citations in our corpus or others sharing the same primary CPC).