JP2013165490A - 高レベル言語を用いるプログラマブルデバイスの構成 - Google Patents
高レベル言語を用いるプログラマブルデバイスの構成 Download PDFInfo
- Publication number
- JP2013165490A JP2013165490A JP2013022166A JP2013022166A JP2013165490A JP 2013165490 A JP2013165490 A JP 2013165490A JP 2013022166 A JP2013022166 A JP 2013022166A JP 2013022166 A JP2013022166 A JP 2013022166A JP 2013165490 A JP2013165490 A JP 2013165490A
- Authority
- JP
- Japan
- Prior art keywords
- input
- stall
- configuration
- register
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
- G06F30/347—Physical level, e.g. placement or routing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/327—Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/394—Routing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/398—Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
- H03K19/17736—Structural details of routing resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0806—Configuration setting for initial configuration or provisioning, e.g. plug-and-play
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/35—Switches specially adapted for specific applications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2115/00—Details relating to the type of the circuit
- G06F2115/08—Intellectual property [IP] blocks or IP cores
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/06—Power analysis or power optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
Abstract
【解決手段】上記方法は、高レベル言語での記述から複数の仮想プログラマブルデバイスをコンパイルすることを含み、コンパイルすることは、プログラマブル集積回路デバイスのプログラマブルリソースから構成可能なルーティングリソースの構成をコンパイルすることと、プログラマブル集積回路デバイスのプログラマブルリソースから複数の複雑な機能ブロックの構成をコンパイルすることとを含む。
【選択図】図8
Description
本発明は、プログラマブル集積回路デバイス(例えば、フィールドプログラマブルゲートアレイ(FPGA)または他のタイプのプログラマブル論理デバイス(PLD))を構成するための高レベル言語の使用に関する。
初期のプログラマブルデバイスは、1回のみ構成可能であった。例えば、構成は、可溶性リンクを「ブローイング(blowing)」する(すなわち、開放する)ことによって達成された場合がある。代替的に、構成は、プログラマブル読み取り専用メモリに格納された場合がある。それらのデバイスは、概して、「積和」(またはP−TERM)論理動作に対してデバイスを構成する能力をユーザーに提供した。最近、構成に対して消去可能なプログラマブル読み取り専用メモリ(EPROM)を組み込むプログラマブル論理デバイスが利用可能になり、デバイスが再構成されることを可能にした。
プログラマブルデバイスを構成するために適合され得る1つの高レベルプログラミング言語は、OpenCL(Open Computing Language)であるが、他の高レベル言語、特に、C、C++、Fortran、C#、F#、BlueSpecおよびMatlabを含む他の高レベル合成言語の使用も本発明の範囲内にある。
(項目1)
高レベル言語を用いてプログラマブル集積回路デバイスを構成のために準備する方法であって、該方法は、
該高レベル言語での記述から複数の仮想プログラマブルデバイスをコンパイルすることを含み、該コンパイルすることは、
該プログラマブル集積回路デバイスのプログラマブルリソースから構成可能なルーティングリソースの構成をコンパイルすることと、
該プログラマブル集積回路デバイスのプログラマブルリソースから複数の複雑な機能ブロックの構成をコンパイルすることと
を含む、方法。
(項目2)
上記高レベル言語は、OpenCLである、上記項目に記載の方法。
(項目3)
上記構成可能なルーティングリソースの構成をコンパイルすることは、パイプライン化されたストール信号ネットワークをコンパイルすることを含む、上記項目のいずれかに記載の方法。
(項目4)
上記パイプライン化されたストール信号ネットワークをコンパイルすることは、両方の方向でパイプライン化されている双方向性ストール信号ネットワークをコンパイルすることを含む、上記項目のいずれかに記載の方法。
(項目5)
上記パイプライン化されたストール信号ネットワークをコンパイルすることは、複数のルーティングスイッチを含むネットワークをコンパイルすることを含み、該複数のルーティングスイッチの各々は、
入力および少なくとも1つの出力と、
該入力および該少なくとも1つの出力の各々のストール信号のためのそれぞれのレジスタと、
該少なくとも1つの出力のうちのいずれかのストールの間に、出力データを格納する出力データストールレジスタと、
該入力のストールの前に、該入力において受信されたデータを格納する第1の入力データストールレジスタと、
該入力がストールする場合、該入力において存在するデータを格納する第2の入力データストールレジスタと
を有する、上記項目のいずれかに記載の方法。
(項目6)
上記複数の複雑な機能ブロックは、算数関数ブロック、三角関数ブロック、多重化論理ブロック、またはソフトプロセッサブロックのうちの少なくとも1つを含む、上記項目のいずれかに記載の方法。
(項目7)
上記構成可能なルーティングリソースのバランスを保つために、上記複数の複雑な機能ブロックのうちの少なくとも1つの複雑な機能ブロックに対して入力レジスタを構成することを含む、上記項目のいずれかに記載の方法。
(項目8)
上記入力レジスタを構成することは、上記複数の複雑な機能ブロックのうちの上記少なくとも1つの複雑な機能ブロックの少なくとも1つの入力においてそれぞれのFIFOを構成することを含む、上記項目のいずれかに記載の方法。
(項目9)
上記入力レジスタを構成することは、上記複数の複雑な機能ブロックの各複雑な機能ブロックの各入力においてそれぞれのFIFOを構成することを含む、上記項目のいずれかに記載の方法。
(項目10)
上記それぞれのFIFOを構成することは、それぞれの最大予期されたパイプラインアンバランスに等しいそれぞれの深さを有するそれぞれのFIFOを構成することを含む、上記項目のいずれかに記載の方法。
(項目11)
上記複数の仮想プログラマブルデバイスをコンパイルすることは、動作中に再構成可能である少なくとも1つの仮想プログラマブルデバイスをコンパイルすることを含む、上記項目のいずれかに記載の方法。
(項目12)
プログラマブル集積回路デバイスに対する複数のコンパイルされた構成を用いて符号化された不揮発性機械読み取り可能な格納媒体であって、該複数のコンパイルされた構成の各々は、プロセッサに高レベル合成言語を実行することによって該プログラマブル集積回路デバイス上にそれぞれの仮想プログラマブルデバイスのインスタンスを作成させ、該各それぞれの仮想プログラマブルデバイスは、
それぞれのルーティングリソース構成と、
複数の複雑な機能ブロックのための構成と
を含む、不揮発性機械読み取り可能な格納媒体。
(項目13)
各それぞれのルーティングリソース構成は、パイプライン化されたストール信号ネットワークのインスタンスを作成する、上記項目のいずれかに記載の不揮発性機械読み取り可能な格納媒体。
(項目14)
各それぞれのルーティングリソース構成は、両方の方向でパイプライン化されている双方向性ストール信号ネットワークのインスタンスを作成する、上記項目のいずれかに記載の不揮発性機械読み取り可能な格納媒体。
(項目15)
各それぞれのルーティングリソース構成は、複数のルーティングスイッチを含むパイプライン化されたストール信号ネットワークのインスタンスを作成し、該複数のルーティングスイッチの各々は、
入力および少なくとも1つの出力と、
該入力および該少なくとも1つの出力の各々のストール信号のためのそれぞれのレジスタと、
該少なくとも1つの出力のうちのいずれかのストール中に、出力データを格納する出力データストールレジスタと、
該入力のストールの前に、該入力において受信されたデータを格納する第1の入力データストールレジスタと、
該入力がストールする場合、該入力において存在するデータを格納する第2の入力データストールレジスタと
を有する、上記項目のいずれかに記載の不揮発性機械読み取り可能な格納媒体。
(項目16)
上記複数の複雑な機能ブロックのための構成は、算数関数ブロック、三角関数ブロック、多重化論理ブロック、またはソフトプロセッサブロックのうちの少なくとも1つのための構成を含む、上記項目のいずれかに記載の不揮発性機械読み取り可能な格納媒体。
(項目17)
上記複数の複雑な機能ブロックのための構成は、上記構成可能なルーティングリソースのバランスを保つために、該複数の複雑な機能ブロックのうちの少なくとも1つの複雑な機能ブロックに対する入力レジスタのための構成を含む、上記項目のいずれかに記載の不揮発性機械読み取り可能な格納媒体。
(項目18)
上記入力レジスタのための構成は、上記複数の複雑な機能ブロックのうちの上記少なくとも1つの複雑な機能ブロックの少なくとも1つの入力におけるそれぞれのFIFOのための構成を含む、上記項目のいずれかに記載の不揮発性機械読み取り可能な格納媒体。
(項目19)
上記入力レジスタのための構成は、上記複数の複雑な機能ブロックの各々の各入力におけるそれぞれのFIFのための構成を含む、上記項目のいずれかに記載の不揮発性機械読み取り可能な格納媒体。
(項目20)
上記それぞれのFIFOのための構成は、それぞれの最大予期されたパイプラインアンバランスに等しいそれぞれの深さを有するそれぞれのFIFOのための構成を含む、上記項目のいずれかに記載の不揮発性機械読み取り可能な格納媒体。
(項目21)
複数の仮想プログラマブルデバイスのための上記複数のコンパイルされた構成は、動作中に再構成可能である仮想プログラマブルデバイスのための少なくとも1つのコンパイルされた構成を含む、上記項目のいずれかに記載の不揮発性機械読み取り可能な格納媒体。
(項目22)
ストール信号が信号のフローを制御するネットワークにおいて用いるルーティングスイッチであって、該ルーティングスイッチは、
該ネットワークの他の所からデータを受信する入力と、
データが該ネットワークの他の所から該入力へ伝搬されることを防ぐために、入力ストール信号を伝搬する入力ストール信号出力と、
データを該ネットワークの他の位置のそれぞれに伝搬する複数のそれぞれの出力と、
該それぞれの出力がデータを該他の位置のうちのそれぞれの1つに伝搬することを防ぐために、該他の位置のうちの該それぞれの1つからそれぞれの出力ストール信号を受信する、該それぞれの出力の各々に関連付けられたそれぞれの出力ストール信号入力と
含む、ルーティングスイッチ。
(項目23)
上記入力ストール信号のための入力ストール信号レジスタと、
上記それぞれの出力ストール信号の各々のためのそれぞれの出力ストール信号レジスタと
をさらに含む、上記項目のいずれかに記載のルーティングスイッチ。
(項目24)
上記出力ストール信号のうちの1つのアサーションの前に受信されたデータが伝搬されることが可能になるまで、該出力ストール信号のうちの該1つのアサーションの前に該受信されたデータを保持する入力データレジスタをさらに含む、上記項目のいずれかに記載のルーティングスイッチ。
高レベル言語を用いてプログラマブル集積回路デバイスを構成のために準備する方法は、該高レベル言語での記述から複数の仮想プログラマブルデバイスをコンパイルすることを含む。そのコンパイルすることは、該プログラマブル集積回路デバイスのプログラマブルリソースから構成可能なルーティングリソースの構成をコンパイルすることと、該プログラマブル集積回路デバイスのプログラマブルリソースから複数の複雑な機能ブロックの構成をコンパイルすることとを含む。機械読み取り可能なデータ格納媒体は、このようなコンパイルされた構成のライブラリを用いて符号化され得る。仮想プログラマブルデバイスは、ストール信号ネットワークを含み得、仮想プログラマブルデバイスのルーティングスイッチは、ストール信号入力および出力を含み得る。
Claims (24)
- 高レベル言語を用いてプログラマブル集積回路デバイスを構成のために準備する方法であって、該方法は、
該高レベル言語での記述から複数の仮想プログラマブルデバイスをコンパイルすることを含み、該コンパイルすることは、
該プログラマブル集積回路デバイスのプログラマブルリソースから構成可能なルーティングリソースの構成をコンパイルすることと、
該プログラマブル集積回路デバイスのプログラマブルリソースから複数の複雑な機能ブロックの構成をコンパイルすることと
を含む、方法。 - 前記高レベル言語は、OpenCLである、請求項1に記載の方法。
- 前記構成可能なルーティングリソースの構成をコンパイルすることは、パイプライン化されたストール信号ネットワークをコンパイルすることを含む、請求項1に記載の方法。
- 前記パイプライン化されたストール信号ネットワークをコンパイルすることは、両方の方向でパイプライン化されている双方向性ストール信号ネットワークをコンパイルすることを含む、請求項3に記載の方法。
- 前記パイプライン化されたストール信号ネットワークをコンパイルすることは、複数のルーティングスイッチを含むネットワークをコンパイルすることを含み、該複数のルーティングスイッチの各々は、
入力および少なくとも1つの出力と、
該入力および該少なくとも1つの出力の各々のストール信号のためのそれぞれのレジスタと、
該少なくとも1つの出力のうちのいずれかのストールの間に、出力データを格納する出力データストールレジスタと、
該入力のストールの前に、該入力において受信されたデータを格納する第1の入力データストールレジスタと、
該入力がストールする場合、該入力において存在するデータを格納する第2の入力データストールレジスタと
を有する、請求項3に記載の方法。 - 前記複数の複雑な機能ブロックは、算数関数ブロック、三角関数ブロック、多重化論理ブロック、またはソフトプロセッサブロックのうちの少なくとも1つを含む、請求項1に記載の方法。
- 前記構成可能なルーティングリソースのバランスを保つために、前記複数の複雑な機能ブロックのうちの少なくとも1つの複雑な機能ブロックに対して入力レジスタを構成することを含む、請求項1に記載の方法。
- 前記入力レジスタを構成することは、前記複数の複雑な機能ブロックのうちの前記少なくとも1つの複雑な機能ブロックの少なくとも1つの入力においてそれぞれのFIFOを構成することを含む、請求項7に記載の方法。
- 前記入力レジスタを構成することは、前記複数の複雑な機能ブロックの各複雑な機能ブロックの各入力においてそれぞれのFIFOを構成することを含む、請求項8に記載の方法。
- 前記それぞれのFIFOを構成することは、それぞれの最大予期されたパイプラインアンバランスに等しいそれぞれの深さを有するそれぞれのFIFOを構成することを含む、請求項8に記載の方法。
- 前記複数の仮想プログラマブルデバイスをコンパイルすることは、動作中に再構成可能である少なくとも1つの仮想プログラマブルデバイスをコンパイルすることを含む、請求項1に記載の方法。
- プログラマブル集積回路デバイスに対する複数のコンパイルされた構成を用いて符号化された不揮発性機械読み取り可能な格納媒体であって、該複数のコンパイルされた構成の各々は、プロセッサに高レベル合成言語を実行することによって該プログラマブル集積回路デバイス上にそれぞれの仮想プログラマブルデバイスのインスタンスを作成させ、該各それぞれの仮想プログラマブルデバイスは、
それぞれのルーティングリソース構成と、
複数の複雑な機能ブロックのための構成と
を含む、不揮発性機械読み取り可能な格納媒体。 - 各それぞれのルーティングリソース構成は、パイプライン化されたストール信号ネットワークのインスタンスを作成する、請求項12に記載の不揮発性機械読み取り可能な格納媒体。
- 各それぞれのルーティングリソース構成は、両方の方向でパイプライン化されている双方向性ストール信号ネットワークのインスタンスを作成する、請求項13に記載の不揮発性機械読み取り可能な格納媒体。
- 各それぞれのルーティングリソース構成は、複数のルーティングスイッチを含むパイプライン化されたストール信号ネットワークのインスタンスを作成し、該複数のルーティングスイッチの各々は、
入力および少なくとも1つの出力と、
該入力および該少なくとも1つの出力の各々のストール信号のためのそれぞれのレジスタと、
該少なくとも1つの出力のうちのいずれかのストール中に、出力データを格納する出力データストールレジスタと、
該入力のストールの前に、該入力において受信されたデータを格納する第1の入力データストールレジスタと、
該入力がストールする場合、該入力において存在するデータを格納する第2の入力データストールレジスタと
を有する、請求項13に記載の不揮発性機械読み取り可能な格納媒体。 - 前記複数の複雑な機能ブロックのための構成は、算数関数ブロック、三角関数ブロック、多重化論理ブロック、またはソフトプロセッサブロックのうちの少なくとも1つのための構成を含む、請求項12に記載の不揮発性機械読み取り可能な格納媒体。
- 前記複数の複雑な機能ブロックのための構成は、前記構成可能なルーティングリソースのバランスを保つために、該複数の複雑な機能ブロックのうちの少なくとも1つの複雑な機能ブロックに対する入力レジスタのための構成を含む、請求項12に記載の不揮発性機械読み取り可能な格納媒体。
- 前記入力レジスタのための構成は、前記複数の複雑な機能ブロックのうちの前記少なくとも1つの複雑な機能ブロックの少なくとも1つの入力におけるそれぞれのFIFOのための構成を含む、請求項17に記載の不揮発性機械読み取り可能な格納媒体。
- 前記入力レジスタのための構成は、前記複数の複雑な機能ブロックの各々の各入力におけるそれぞれのFIFのための構成を含む、請求項18に記載の不揮発性機械読み取り可能な格納媒体。
- 前記それぞれのFIFOのための構成は、それぞれの最大予期されたパイプラインアンバランスに等しいそれぞれの深さを有するそれぞれのFIFOのための構成を含む、請求項18に記載の不揮発性機械読み取り可能な格納媒体。
- 複数の仮想プログラマブルデバイスのための前記複数のコンパイルされた構成は、動作中に再構成可能である仮想プログラマブルデバイスのための少なくとも1つのコンパイルされた構成を含む、請求項12に記載の不揮発性機械読み取り可能な格納媒体。
- ストール信号が信号のフローを制御するネットワークにおいて用いるルーティングスイッチであって、該ルーティングスイッチは、
該ネットワークの他の所からデータを受信する入力と、
データが該ネットワークの他の所から該入力へ伝搬されることを防ぐために、入力ストール信号を伝搬する入力ストール信号出力と、
データを該ネットワークの他の位置のそれぞれに伝搬する複数のそれぞれの出力と、
該それぞれの出力がデータを該他の位置のうちのそれぞれの1つに伝搬することを防ぐために、該他の位置のうちの該それぞれの1つからそれぞれの出力ストール信号を受信する、該それぞれの出力の各々に関連付けられたそれぞれの出力ストール信号入力と
含む、ルーティングスイッチ。 - 前記入力ストール信号のための入力ストール信号レジスタと、
前記それぞれの出力ストール信号の各々のためのそれぞれの出力ストール信号レジスタと
をさらに含む、請求項22に記載のルーティングスイッチ。 - 前記出力ストール信号のうちの1つのアサーションの前に受信されたデータが伝搬されることが可能になるまで、該出力ストール信号のうちの該1つのアサーションの前に該受信されたデータを保持する入力データレジスタをさらに含む、請求項22に記載のルーティングスイッチ。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/369,829 | 2012-02-09 | ||
US13/369,829 US8959469B2 (en) | 2012-02-09 | 2012-02-09 | Configuring a programmable device using high-level language |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013165490A true JP2013165490A (ja) | 2013-08-22 |
JP6139160B2 JP6139160B2 (ja) | 2017-05-31 |
Family
ID=47747418
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013022166A Expired - Fee Related JP6139160B2 (ja) | 2012-02-09 | 2013-02-07 | 高レベル言語を用いるプログラマブルデバイスの構成 |
Country Status (4)
Country | Link |
---|---|
US (3) | US8959469B2 (ja) |
EP (1) | EP2626801B1 (ja) |
JP (1) | JP6139160B2 (ja) |
CN (1) | CN103324512B (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104834630A (zh) * | 2014-02-10 | 2015-08-12 | 瑞萨电子株式会社 | 运算控制装置、运算控制方法、存储有程序的非瞬时计算机可读介质以及OpenCL设备 |
JP2019200736A (ja) * | 2018-05-18 | 2019-11-21 | ヤフー株式会社 | 調整装置、調整方法および調整プログラム |
JP2020525907A (ja) * | 2017-06-22 | 2020-08-27 | アイキャット・エルエルシー | 高スループットプロセッサ |
Families Citing this family (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9069549B2 (en) | 2011-10-12 | 2015-06-30 | Google Technology Holdings LLC | Machine processor |
US9448823B2 (en) | 2012-01-25 | 2016-09-20 | Google Technology Holdings LLC | Provision of a download script |
US20130198325A1 (en) * | 2012-01-26 | 2013-08-01 | Motorola Mobility Llc | Provision and running a download script |
US20130212366A1 (en) * | 2012-02-09 | 2013-08-15 | Altera Corporation | Configuring a programmable device using high-level language |
US8959469B2 (en) | 2012-02-09 | 2015-02-17 | Altera Corporation | Configuring a programmable device using high-level language |
US8850413B2 (en) * | 2012-05-31 | 2014-09-30 | Oracle International Corporation | Compiling multi-threaded applications for targeted criticalities |
US9141745B2 (en) * | 2013-10-31 | 2015-09-22 | Taiwan Semiconductor Manufacturing Co., Ltd. | Method and system for designing Fin-FET semiconductor device |
US10078717B1 (en) | 2013-12-05 | 2018-09-18 | The Mathworks, Inc. | Systems and methods for estimating performance characteristics of hardware implementations of executable models |
US10261760B1 (en) | 2013-12-05 | 2019-04-16 | The Mathworks, Inc. | Systems and methods for tracing performance information from hardware realizations to models |
GB201405755D0 (en) * | 2014-03-31 | 2014-05-14 | Irdeto Bv | Optimizing and protecting software |
US9584594B2 (en) * | 2014-04-11 | 2017-02-28 | Maxeler Technologies Ltd. | Dynamic provisioning of processing resources in a virtualized computational architecture |
US9503093B2 (en) * | 2014-04-24 | 2016-11-22 | Xilinx, Inc. | Virtualization of programmable integrated circuits |
US9547738B1 (en) * | 2014-05-08 | 2017-01-17 | Altera Corporation | Invariant code optimization in high-level FPGA synthesis |
US9846660B2 (en) * | 2014-11-12 | 2017-12-19 | Xilinx, Inc. | Heterogeneous multiprocessor platform targeting programmable integrated circuits |
CN107111663B (zh) * | 2014-11-12 | 2021-01-08 | 赛灵思公司 | 目标为可编程集成电路的异构型多处理器程序编译 |
US9218443B1 (en) * | 2014-11-12 | 2015-12-22 | Xilinx, Inc. | Heterogeneous multiprocessor program compilation targeting programmable integrated circuits |
US9286196B1 (en) * | 2015-01-08 | 2016-03-15 | Arm Limited | Program execution optimization using uniform variable identification |
US11099918B2 (en) * | 2015-05-11 | 2021-08-24 | Xilinx, Inc. | Accelerating algorithms and applications on FPGAs |
CN104850866B (zh) * | 2015-06-08 | 2018-05-01 | 电子科技大学 | 基于SoC-FPGA的自重构K-means聚类技术实现方法 |
US11016742B2 (en) * | 2015-06-24 | 2021-05-25 | Altera Corporation | Channel sizing for inter-kernel communication |
US9977758B1 (en) * | 2015-10-19 | 2018-05-22 | Xilinx, Inc. | Device profiling for tuning OpenCL applications on programmable integrated circuits |
US9690894B1 (en) * | 2015-11-02 | 2017-06-27 | Altera Corporation | Safety features for high level design |
US9735782B1 (en) * | 2016-03-29 | 2017-08-15 | Wipro Limited | Systems and methods for configuring a field programmable device |
US10545739B2 (en) | 2016-04-05 | 2020-01-28 | International Business Machines Corporation | LLVM-based system C compiler for architecture synthesis |
US10516396B2 (en) * | 2016-04-29 | 2019-12-24 | University Of Florida Research Foundation, Incorporated | Overlay architecture for programming FPGAs |
US10223488B2 (en) * | 2016-07-19 | 2019-03-05 | Altera Corporation | Method and apparatus for improving system operation by replacing components for performing division during design compilation |
US10380313B1 (en) * | 2016-12-08 | 2019-08-13 | Xilinx, Inc. | Implementation and evaluation of designs for heterogeneous computing platforms with hardware acceleration |
US10445118B2 (en) * | 2017-09-22 | 2019-10-15 | Intel Corporation | Methods and apparatus to facilitate field-programmable gate array support during runtime execution of computer readable instructions |
US10956241B1 (en) | 2017-12-20 | 2021-03-23 | Xilinx, Inc. | Unified container for hardware and software binaries |
US11163530B2 (en) * | 2018-01-12 | 2021-11-02 | Intel Corporation | Programmable-logic-directed multiplier mapping |
US11144286B2 (en) | 2019-01-14 | 2021-10-12 | Microsoft Technology Licensing, Llc | Generating synchronous digital circuits from source code constructs that map to circuit implementations |
US11275568B2 (en) | 2019-01-14 | 2022-03-15 | Microsoft Technology Licensing, Llc | Generating a synchronous digital circuit from a source code construct defining a function call |
US11113176B2 (en) | 2019-01-14 | 2021-09-07 | Microsoft Technology Licensing, Llc | Generating a debugging network for a synchronous digital circuit during compilation of program source code |
US10810343B2 (en) | 2019-01-14 | 2020-10-20 | Microsoft Technology Licensing, Llc | Mapping software constructs to synchronous digital circuits that do not deadlock |
US11106437B2 (en) | 2019-01-14 | 2021-08-31 | Microsoft Technology Licensing, Llc | Lookup table optimization for programming languages that target synchronous digital circuits |
US11093682B2 (en) * | 2019-01-14 | 2021-08-17 | Microsoft Technology Licensing, Llc | Language and compiler that generate synchronous digital circuits that maintain thread execution order |
EP3701866B1 (en) | 2019-02-27 | 2021-08-25 | Ecole Polytechnique Fédérale de Lausanne (EPFL) | Sensor system |
US10733016B1 (en) | 2019-04-26 | 2020-08-04 | Google Llc | Optimizing hardware FIFO instructions |
US11036477B2 (en) | 2019-06-27 | 2021-06-15 | Intel Corporation | Methods and apparatus to improve utilization of a heterogeneous system executing software |
US10908884B2 (en) | 2019-06-27 | 2021-02-02 | Intel Corporation | Methods and apparatus for runtime multi-scheduling of software executing on a heterogeneous system |
US11269639B2 (en) | 2019-06-27 | 2022-03-08 | Intel Corporation | Methods and apparatus for intentional programming for heterogeneous systems |
CN112347429A (zh) * | 2019-08-06 | 2021-02-09 | 天津光电通信技术有限公司 | 一种防止fpga程序泄密的方法、装置、fpga及存储介质 |
CN111460745B (zh) * | 2020-03-31 | 2023-07-21 | 深圳市风云实业有限公司 | 一种设备芯片间连通性检测方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005353061A (ja) * | 2004-06-07 | 2005-12-22 | Ip Flex Kk | ハードウェア情報を生成する方法 |
JP2006185423A (ja) * | 2004-11-30 | 2006-07-13 | Tokyo Electron Ltd | カスタムlsi開発プラットフォーム、命令セット・アーキテクチャ及び論理回路構成情報の生成方法、並びにプログラム |
US20060242385A1 (en) * | 2004-11-30 | 2006-10-26 | Tokyo Electron, Inc. | Dynamically reconfigurable processor |
JP2007109101A (ja) * | 2005-10-14 | 2007-04-26 | Canon Inc | システム設計ツール |
US7219342B2 (en) * | 2000-08-07 | 2007-05-15 | Altera Corporation | Software-to-hardware compiler |
JP2008181170A (ja) * | 2007-01-23 | 2008-08-07 | Research Organization Of Information & Systems | 非同期式回路の制御回路 |
JP2008219806A (ja) * | 2007-03-07 | 2008-09-18 | Mitsubishi Electric Corp | 電気機器 |
Family Cites Families (60)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB1444084A (en) | 1972-06-21 | 1976-07-28 | Honeywell Inf Systems | Generalized logic device |
US4442504A (en) | 1981-03-09 | 1984-04-10 | Allen-Bradley Company | Modular programmable controller |
US5152000A (en) | 1983-05-31 | 1992-09-29 | Thinking Machines Corporation | Array communications arrangement for parallel processor |
US5142625A (en) | 1985-06-12 | 1992-08-25 | Minolta Camera Kabushiki Kaisha | One-chip microcomputer including a programmable logic array for interrupt control |
US5134884A (en) | 1986-05-02 | 1992-08-04 | Forrest Anderson | Single pulse imaging device |
US5068823A (en) | 1988-07-11 | 1991-11-26 | Star Semiconductor Corporation | Programmable integrated circuit using topological and parametric data to selectively connect and configure different high level functional blocks thereof |
EP0419105B1 (en) | 1989-09-21 | 1997-08-13 | Texas Instruments Incorporated | Integrated circuit formed on a surface of a semiconductor substrate and method for constructing such an integrated circuit |
US5128871A (en) | 1990-03-07 | 1992-07-07 | Advanced Micro Devices, Inc. | Apparatus and method for allocation of resoures in programmable logic devices |
US5541849A (en) | 1990-04-06 | 1996-07-30 | Lsi Logic Corporation | Method and system for creating and validating low level description of electronic design from higher level, behavior-oriented description, including estimation and comparison of timing parameters |
US7356620B2 (en) | 2003-06-10 | 2008-04-08 | Altera Corporation | Apparatus and methods for communicating with programmable logic devices |
US5684980A (en) | 1992-07-29 | 1997-11-04 | Virtual Computer Corporation | FPGA virtual computer for executing a sequence of program instructions by successively reconfiguring a group of FPGA in response to those instructions |
US5442792A (en) | 1992-08-07 | 1995-08-15 | Hughes Aircraft Company | Expert system compilation method |
US5535342A (en) | 1992-11-05 | 1996-07-09 | Giga Operations Corporation | Pld connector for module having configuration of either first PLD or second PLD and reconfigurable bus for communication of two different bus protocols |
GB9223226D0 (en) | 1992-11-05 | 1992-12-16 | Algotronix Ltd | Improved configurable cellular array (cal ii) |
US6044211A (en) | 1994-03-14 | 2000-03-28 | C.A.E. Plus, Inc. | Method for graphically representing a digital device as a behavioral description with data and control flow elements, and for converting the behavioral description to a structural description |
US5761484A (en) | 1994-04-01 | 1998-06-02 | Massachusetts Institute Of Technology | Virtual interconnections for reconfigurable logic systems |
US5548228A (en) | 1994-09-28 | 1996-08-20 | Altera Corporation | Reconfigurable programmable logic device having static and non-volatile memory |
GB9508931D0 (en) | 1995-05-02 | 1995-06-21 | Xilinx Inc | Programmable switch for FPGA input/output signals |
US5646545A (en) | 1995-08-18 | 1997-07-08 | Xilinx, Inc. | Time multiplexed programmable logic device |
KR0180058B1 (ko) | 1995-09-13 | 1999-04-01 | 이민화 | Cine메모리에 데이타를 압축 저장하는 초음파진단장치 |
SE505783C2 (sv) | 1995-10-03 | 1997-10-06 | Ericsson Telefon Ab L M | Förfarande för att tillverka en digital signalprocessor |
US5819064A (en) | 1995-11-08 | 1998-10-06 | President And Fellows Of Harvard College | Hardware extraction technique for programmable reduced instruction set computers |
GB9607528D0 (en) | 1996-04-11 | 1996-06-12 | Int Computers Ltd | Integrated circuit processor |
US5968161A (en) | 1996-08-29 | 1999-10-19 | Altera Corporation | FPGA based configurable CPU additionally including second programmable section for implementation of custom hardware support |
GB2317245A (en) | 1996-09-12 | 1998-03-18 | Sharp Kk | Re-timing compiler integrated circuit design |
US5822570A (en) | 1996-10-30 | 1998-10-13 | Microsoft Corporation | System and method for parsing and executing a single instruction stream using a plurality of tightly coupled parsing and execution units |
US5835734A (en) | 1997-03-07 | 1998-11-10 | California Institute Of Technology | Electronic processing and control system with programmable hardware |
US6085317A (en) | 1997-08-15 | 2000-07-04 | Altera Corporation | Reconfigurable computer architecture using programmable logic devices |
US5987603A (en) | 1997-04-29 | 1999-11-16 | Lsi Logic Corporation | Apparatus and method for reversing bits using a shifter |
US5966534A (en) | 1997-06-27 | 1999-10-12 | Cooke; Laurence H. | Method for compiling high level programming languages into an integrated processor with reconfigurable logic |
US6219628B1 (en) | 1997-08-18 | 2001-04-17 | National Instruments Corporation | System and method for configuring an instrument to perform measurement functions utilizing conversion of graphical programs into hardware implementations |
US6608638B1 (en) | 2000-02-07 | 2003-08-19 | National Instruments Corporation | System and method for configuring a programmable hardware instrument to perform measurement functions utilizing estimation of the hardware implentation and management of hardware resources |
US6226776B1 (en) * | 1997-09-16 | 2001-05-01 | Synetry Corporation | System for converting hardware designs in high-level programming language to hardware implementations |
US5999990A (en) | 1998-05-18 | 1999-12-07 | Motorola, Inc. | Communicator having reconfigurable resources |
US6272664B1 (en) | 1998-06-03 | 2001-08-07 | Synopsys, Inc. | System and method for using scalable polynomials to translate a look-up table delay model into a memory efficient model |
US6282627B1 (en) | 1998-06-29 | 2001-08-28 | Chameleon Systems, Inc. | Integrated processor and programmable data path chip for reconfigurable computing |
US6609088B1 (en) | 1998-07-24 | 2003-08-19 | Interuniversitaire Micro-Elektronica Centrum | Method for determining an optimized memory organization of a digital device |
GB9828381D0 (en) | 1998-12-22 | 1999-02-17 | Isis Innovation | Hardware/software codesign system |
US6477683B1 (en) | 1999-02-05 | 2002-11-05 | Tensilica, Inc. | Automated processor generation system for designing a configurable processor and method for the same |
US6457173B1 (en) | 1999-08-20 | 2002-09-24 | Hewlett-Packard Company | Automatic design of VLIW instruction formats |
US6507947B1 (en) | 1999-08-20 | 2003-01-14 | Hewlett-Packard Company | Programmatic synthesis of processor element arrays |
US6745160B1 (en) * | 1999-10-08 | 2004-06-01 | Nec Corporation | Verification of scheduling in the presence of loops using uninterpreted symbolic simulation |
CN1307406A (zh) * | 2000-01-27 | 2001-08-08 | 华为技术有限公司 | 数字锁相环的滤波方法 |
US6625797B1 (en) | 2000-02-10 | 2003-09-23 | Xilinx, Inc. | Means and method for compiling high level software languages into algorithmically equivalent hardware representations |
US6467075B1 (en) | 2000-03-24 | 2002-10-15 | Nec Corporation | Resolution of dynamic memory allocation/deallocation and pointers |
EP1742159A3 (en) | 2000-08-07 | 2007-06-20 | Altera Corporation | Software-to-Hardware compiler |
US7472259B2 (en) * | 2000-12-06 | 2008-12-30 | Analog Devices, Inc. | Multi-cycle instructions |
US6779169B1 (en) | 2002-05-31 | 2004-08-17 | Altera Corporation | Method and apparatus for placement of components onto programmable logic devices |
US7290240B1 (en) | 2004-07-30 | 2007-10-30 | Altera Corporation | Leveraging combinations of synthesis, placement and incremental optimizations |
JP2006171913A (ja) | 2004-12-13 | 2006-06-29 | Canon Inc | 情報処理装置、情報処理方法、ならびにプログラム、記憶媒体 |
US7254801B1 (en) | 2005-01-20 | 2007-08-07 | Altera Corporation | Synthesis aware placement: a novel approach that combines knowledge of possible resynthesis |
US7140235B2 (en) | 2005-02-18 | 2006-11-28 | General Motors Corporation | Leak detection system for a vehicle fuel tank |
WO2007005724A2 (en) | 2005-07-01 | 2007-01-11 | The Regents Of The University Of California | Fpga circuits and methods considering process variations |
CN100458973C (zh) * | 2006-05-17 | 2009-02-04 | 中国人民解放军国防科学技术大学 | 高速流水线中长延时多端口sram的快速访问方法 |
US7996797B1 (en) | 2006-08-16 | 2011-08-09 | Altera Corporation | Method and apparatus for performing multiple stage physical synthesis |
US7555741B1 (en) * | 2006-09-13 | 2009-06-30 | Altera Corporation | Computer-aided-design tools for reducing power consumption in programmable logic devices |
US8296696B1 (en) | 2008-03-12 | 2012-10-23 | Altera Corporation | Method and apparatus for performing simultaneous register retiming and combinational resynthesis during physical synthesis |
WO2012142069A2 (en) * | 2011-04-11 | 2012-10-18 | University Of Florida Research Foundation, Inc. | Elastic computing |
US8959469B2 (en) | 2012-02-09 | 2015-02-17 | Altera Corporation | Configuring a programmable device using high-level language |
US20130212366A1 (en) | 2012-02-09 | 2013-08-15 | Altera Corporation | Configuring a programmable device using high-level language |
-
2012
- 2012-02-09 US US13/369,829 patent/US8959469B2/en active Active
-
2013
- 2013-02-07 JP JP2013022166A patent/JP6139160B2/ja not_active Expired - Fee Related
- 2013-02-08 CN CN201310065374.7A patent/CN103324512B/zh active Active
- 2013-02-11 EP EP13154773.9A patent/EP2626801B1/en active Active
-
2015
- 2015-01-06 US US14/590,367 patent/US9449132B2/en active Active
-
2016
- 2016-08-15 US US15/236,949 patent/US10366189B2/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7219342B2 (en) * | 2000-08-07 | 2007-05-15 | Altera Corporation | Software-to-hardware compiler |
JP2005353061A (ja) * | 2004-06-07 | 2005-12-22 | Ip Flex Kk | ハードウェア情報を生成する方法 |
US20050283743A1 (en) * | 2004-06-07 | 2005-12-22 | Mulholland Philip J | Method for generating hardware information |
JP2006185423A (ja) * | 2004-11-30 | 2006-07-13 | Tokyo Electron Ltd | カスタムlsi開発プラットフォーム、命令セット・アーキテクチャ及び論理回路構成情報の生成方法、並びにプログラム |
US20060242385A1 (en) * | 2004-11-30 | 2006-10-26 | Tokyo Electron, Inc. | Dynamically reconfigurable processor |
JP2007109101A (ja) * | 2005-10-14 | 2007-04-26 | Canon Inc | システム設計ツール |
JP2008181170A (ja) * | 2007-01-23 | 2008-08-07 | Research Organization Of Information & Systems | 非同期式回路の制御回路 |
JP2008219806A (ja) * | 2007-03-07 | 2008-09-18 | Mitsubishi Electric Corp | 電気機器 |
Non-Patent Citations (1)
Title |
---|
JAMES COOLE;GREG STITT: "Intermediate fabrics: Virtual architectures for circuit portability and fast placement and routing", IEEE/ACM/IFIP INTERNATIONAL CONFERENCE, JPN6016022963, 29 October 2010 (2010-10-29), US, pages 13 - 22, ISSN: 0003340098 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104834630A (zh) * | 2014-02-10 | 2015-08-12 | 瑞萨电子株式会社 | 运算控制装置、运算控制方法、存储有程序的非瞬时计算机可读介质以及OpenCL设备 |
CN104834630B (zh) * | 2014-02-10 | 2019-08-16 | 瑞萨电子株式会社 | 运算控制装置、运算控制方法、存储有程序的非瞬时计算机可读介质以及OpenCL设备 |
JP2020525907A (ja) * | 2017-06-22 | 2020-08-27 | アイキャット・エルエルシー | 高スループットプロセッサ |
JP7183197B2 (ja) | 2017-06-22 | 2022-12-05 | アイキャット・エルエルシー | 高スループットプロセッサ |
JP2019200736A (ja) * | 2018-05-18 | 2019-11-21 | ヤフー株式会社 | 調整装置、調整方法および調整プログラム |
JP7278716B2 (ja) | 2018-05-18 | 2023-05-22 | ヤフー株式会社 | 調整装置、調整方法および調整プログラム |
Also Published As
Publication number | Publication date |
---|---|
EP2626801A3 (en) | 2013-10-16 |
CN103324512A (zh) | 2013-09-25 |
US8959469B2 (en) | 2015-02-17 |
JP6139160B2 (ja) | 2017-05-31 |
US10366189B2 (en) | 2019-07-30 |
US20160350452A1 (en) | 2016-12-01 |
EP2626801A2 (en) | 2013-08-14 |
CN103324512B (zh) | 2018-04-06 |
US20130212365A1 (en) | 2013-08-15 |
US9449132B2 (en) | 2016-09-20 |
EP2626801B1 (en) | 2019-12-04 |
US20150121321A1 (en) | 2015-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6139160B2 (ja) | 高レベル言語を用いるプログラマブルデバイスの構成 | |
JP6527202B2 (ja) | 高レベル言語を用いるプログラマブルデバイスの構成 | |
US10033387B2 (en) | Method apparatus for high-level programs with general control flow | |
Khailany et al. | A modular digital VLSI flow for high-productivity SoC design | |
JP6059413B2 (ja) | 再構成可能命令セル・アレイ | |
Pellauer et al. | Buffets: An efficient and composable storage idiom for explicit decoupled data orchestration | |
JP5045961B2 (ja) | 同期回路設計の表現から非同期回路設計の表現へおよび非同期回路設計の表現から同期回路設計の表現への自動変換を実行するためのシステムおよび方法 | |
US8146040B1 (en) | Method of evaluating an architecture for an integrated circuit device | |
US8806403B1 (en) | Efficient configuration of an integrated circuit device using high-level language | |
Koul et al. | Aha: An agile approach to the design of coarse-grained reconfigurable accelerators and compilers | |
Charaf et al. | RV-CAP: Enabling dynamic partial reconfiguration for FPGA-based RISC-V system-on-chip | |
Wolf et al. | Ultrasynth: integration of a CGRA into a control engineering environment | |
Karlström et al. | Operation classification for control path synthetization with nogap | |
Jozwiak et al. | Hardware synthesis for reconfigurable heterogeneous pipelined accelerators | |
Dumitriu et al. | A framework of embedded reconfigurable systems based on re-locatable virtual components | |
Koch | UltraSynth: Integration of a CGRA into a Control Engineering Environment | |
US10303831B1 (en) | Method and apparatus for performing and utilizing source code area annotation | |
Lallet et al. | xMAML: A modeling language for dynamically reconfigurable architectures | |
Chang | Concept of Logic Synthesis | |
CHIRUMAMILLA et al. | High performance of Scan Based Register Insertion on Integer Arithmetic Cores for FPGAs | |
Lanzagorta et al. | FPGA Technology | |
Lokhande | RISC Pipelined Controller using FPGA | |
TW200813767A (en) | Branching and behavioral partitioning for a VLIW processor | |
Oreja et al. | Hardware Platform to Test New ISA Extensions | |
Koster | A Parameterizable Processor for Reconfigurable Computing on FPGAs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20151210 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20160526 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160616 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20160915 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20161108 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20161208 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20170403 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170427 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6139160 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |