Generating clock signals for a cycle accurate, cycle reproducible FPGA based hardware accelerator

US9230046B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9230046-B2
Application numberUS-201213435614-A
CountryUS
Kind codeB2
Filing dateMar 30, 2012
Priority dateMar 30, 2012
Publication dateJan 5, 2016
Grant dateJan 5, 2016

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.

A method, system and computer program product are disclosed for generating clock signals for a cycle accurate FPGA based hardware accelerator used to simulate operations of a device-under-test (DUT). In one embodiment, the DUT includes multiple device clocks generating multiple device clock signals at multiple frequencies and at a defined frequency ratio; and the FPG hardware accelerator includes multiple accelerator clocks generating multiple accelerator clock signals to operate the FPGA hardware accelerator to simulate the operations of the DUT. In one embodiment, operations of the DUT are mapped to the FPGA hardware accelerator, and the accelerator clock signals are generated at multiple frequencies and at the defined frequency ratio of the frequencies of the multiple device clocks, to maintain cycle accuracy between the DUT and the FPGA hardware accelerator. In an embodiment, the FPGA hardware accelerator may be used to control the frequencies of the multiple device clocks.

First claim

Opening claim text (preview).

The invention claimed is: 1. A method of generating clock signals for a cycle accurate FPGA based hardware accelerator used to simulate defined operations of a device-under-test (DUT), the DUT including multiple device clocks generating multiple device clock signals for operating the DUT at multiple device frequencies, said multiple device frequencies having a defined frequency ratio, the method comprising: mapping the defined operations of the DUT to the FPGA based hardware accelerator, the FPGA based hardware accelerator including multiple accelerator clocks generating multiple accelerator clock signals to operate said FPGA based hardware accelerator to simulate the defined operations of the DUT; and generating the accelerator clock signals of the FPGA based hardware accelerator at multiple accelerator frequencies, said multiple accelerator frequencies having said defined frequency ratio of the frequencies of the multiple device clocks, to maintain cycle accuracy between the DUT and the FPGA based hardware accelerator. 2. The method according to claim 1 , wherein: the accelerator clocks are free-running clocks; the device clocks are stoppable clocks; and the free-running clocks are phase locked to the stoppable clocks. 3. The method according to claim 1 , wherein: the mapping the defined operations of the DUT to the FPGA based hardware accelerator includes performing defined synchronous events and defined asynchronous events on the FPGA; and all of said defined asynchronous events performed on the FPGA occur in fixed time intervals to maintain cycle reproducibility of the FPGA based hardware accelerator. 4. The method according to claim 1 , further comprising: using a single clock source on the FPGA based hardware accelerator to generate all of the multiple device clock signals; and using the FPGA based hardware accelerator to control the frequencies of the multiple device clock signals. 5. The method according to claim 1 , further comprising: stopping and restarting the device clocks at specified times; and wherein: when the device clocks are restarted, the device clocks have start-up phases; the start-up phases of all the device clocks are the same to provide cycle reproducibility on the DUT; the multiple frequencies of the device clocks have a least common multiple frequency; and the method further comprises: using a single generator clock to generate a generator clock signal at said least common multiple frequency; and generating all of the multiple device clock signals from the generator clock signal. 6. The method according to claim 1 , wherein: the FPGA hardware accelerator comprises a plurality of FPGAs; a first of the FPGAs transmits functional signals to a second of the FPGAs over a plurality of wires; C is equal to the number of said plurality of wires; Cw is a defined maximum frequency of a defined clock cycle at which the C wires can operate to transmit said functional signals from the first FPGA to the second FPGA; P is a defined maximum number of the functional signals that are transmitted from the first FPGA to the second FPGA; M is defined multiplex ratio, and M=P/C; L is the number of the defined clock cycle required for the functional signals to be transmitted from the first FPGA to the second FPGA; and the method further comprises operating the DUT at a frequency less than or equal to a defined maximum device frequency Ca, where: Ca is less than or equal to Cw/(M+L). 7. The method according to claim 6 , wherein: the DUT includes a DUT memory including one or more read ports and one or more write ports; Nd is set equal to the larger of the number of the read ports or the number of the write ports of the DUT memory; the DUT has a data width of Wd, and the FPGA hardware based accelerator has a data width of Wt; the FPGA based hardware accelerator includes one or more target memories; At is a given number representing the number of the defined clock cycles consumed to perform a read or a write operation on the one or more target memories of the FPGA based hardware accelerator; a DUT clock frequency Ca′ and a target memory clock frequency Cm obey the following equation: Ca′ is less than or equal to Cm/((Wd/Wt)(At+Nd); and the method further comprises simultaneously solving the equations Ca′ is less than or equal to Cm/((Wd/Wt)(At+Nd), and Ca is less than or equal to Cw/(M+L). 8. The method according to claim 1 , wherein: the FPGA hardware accelerator includes a plurality of FPGAs; each of the FPGAs is associated with a target memory and includes a clock generator circuit to generate an FPGA clock signal; the method further comprises operating the DUT in defined cycles at a defined frequency; the mapping the defined operations of the DUT to the FPGA based hardware accelerator includes using the FPGA clock signals to operate the memories associated with said plurality of FPGAs; and the generating of the accelerator clock signals includes using the clock generator circuits of the plurality of FPGAs to generate the FPGA clock signals at a clock frequency greater than said defined frequency to operate the memories associated with said plurality of FPGAs at a memory operating frequency greater than said defined frequency. 9. The method according to claim 8 , wherein each of the plurality of FPGAs includes a plurality of output buffers for receiving the FPGA clock signals from the clock generators of said each FPGA and for generating output clock signals at different frequencies. 10. The method according to claim 9 , wherein: each of the plurality of FPGAs further includes a clock divider for receiving the FPGA clock signal from the clock generator of said each FPGA, for generating a plurality of gating signals, and for applying a respective one of the gating signals to each of the output buffers of said each FPGA to control the frequency of the output clock signal generated by said each of the output buffers; a first of the output buffers of said each FPGA receives a first of the gating signals from the clock divider of said each FPGA, and uses said first gating signal to generate the output clock signal of said first output buffer at a first frequency; and a second of the output buffers of said each FPGA receives a second of the gating signals from the clock divider of said each FPGA, and uses said second gating signal to generate the output clock signal of said second output buffer at a second frequency. 11. A clocking system for generating clock signals for a cycle accurate FPGA based hardware accelerator used to simulate defined operations of a device-under-test (DUT), the DUT including multiple device clocks generating multiple device clock signals for operating the DUT at multiple device frequencies, said multiple device frequencies having a defined frequency ratio, and wherein the defined operations of the DUT are mapped to the FPGA based hardware accelerator, the clocking system comprising: multiple accelerator clocks for generating multiple accelerator clock signals to operate said FPGA based hardware accelerator to simulate the defined operations of the DUT; and one or more clock controllers for operating the accelerator clocks to generate the accelerator clock signals of the FPGA based hardware accelerator at multiple accelerator frequencies, said multiple accelerator frequencies having said defined frequency ratio of the frequencies of the multiple device clocks, to maintain cycle accuracy between the DUT and the FPGA based hardware accelerator. 12. The system according to claim 11 , wherein: the accelerator clocks are free-running clocks; the device clocks are stoppable clocks; and the fr

Assignees

Inventors

Classifications

  • G06F30/331Primary

    with hardware acceleration, e.g. by using field programmable gate array [FPGA] or emulation · CPC title

  • Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines · CPC title

  • Physics · mapped topic

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 US9230046B2 cover?
A method, system and computer program product are disclosed for generating clock signals for a cycle accurate FPGA based hardware accelerator used to simulate operations of a device-under-test (DUT). In one embodiment, the DUT includes multiple device clocks generating multiple device clock signals at multiple frequencies and at a defined frequency ratio; and the FPG hardware accelerator includ…
Who is the assignee on this patent?
Asaad Sameth W, Kapur Mohit, IBM
What technology area does this patent fall under?
Primary CPC classification G06F30/331. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jan 05 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).