JP6527202B2 - 高レベル言語を用いるプログラマブルデバイスの構成 - Google Patents
高レベル言語を用いるプログラマブルデバイスの構成 Download PDFInfo
- Publication number
- JP6527202B2 JP6527202B2 JP2017182139A JP2017182139A JP6527202B2 JP 6527202 B2 JP6527202 B2 JP 6527202B2 JP 2017182139 A JP2017182139 A JP 2017182139A JP 2017182139 A JP2017182139 A JP 2017182139A JP 6527202 B2 JP6527202 B2 JP 6527202B2
- Authority
- JP
- Japan
- Prior art keywords
- programmable
- configuration
- integrated circuit
- virtual
- circuit device
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 claims description 98
- 230000006870 function Effects 0.000 claims description 32
- 238000012360 testing method Methods 0.000 claims description 5
- 230000008569 process Effects 0.000 description 13
- 238000013461 design Methods 0.000 description 11
- 238000012545 processing Methods 0.000 description 10
- 239000011248 coating agent Substances 0.000 description 9
- 238000000576 coating method Methods 0.000 description 9
- 239000004744 fabric Substances 0.000 description 7
- 238000013500 data storage Methods 0.000 description 6
- 238000011144 upstream manufacturing Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000009826 distribution Methods 0.000 description 4
- 230000000644 propagated effect Effects 0.000 description 4
- 230000015572 biosynthetic process Effects 0.000 description 3
- 239000000758 substrate Substances 0.000 description 3
- 238000003786 synthesis reaction Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000007620 mathematical function Methods 0.000 description 2
- 238000012884 algebraic function Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000007664 blowing Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000010287 polarization Effects 0.000 description 1
- 239000011253 protective coating Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
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]
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Logic Circuits (AREA)
- Devices For Executing Special Programs (AREA)
- Stored Programmes (AREA)
Description
本発明は、プログラマブル集積回路デバイス(例えば、フィールドプログラマブルゲートアレイ(FPGA)または他のタイプのプログラマブル論理デバイス(PLD))を構成するための高レベル言語の使用に関する。
初期のプログラマブルデバイスは、1回のみ構成可能であった。例えば、構成は、可溶性リンクを「ブローイング(blowing)」する(すなわち、開放する)ことによって達成された場合がある。代替的に、構成は、プログラマブル読み取り専用メモリに格納された場合がある。それらのデバイスは、概して、「積和」(またはP−TERM)論理動作に対してデバイスを構成する能力をユーザーに提供した。最近、構成に対して消去可能なプログラマブル読み取り専用メモリ(EPROM)を組み込むプログラマブル論理デバイスが利用可能になり、デバイスが再構成されることを可能にした。
プログラマブルデバイスを構成するために適合され得る1つの高レベルプログラミング言語は、OpenCL(Open Computing Language)であるが、他の高レベル言語、特に、C、C++、Fortran、C#、F#、BlueSpecおよびMatlabを含む他の高レベル合成言語の使用も本発明の範囲内にある。
(項目1)
高レベル言語を用いてプログラマブル集積回路デバイスを構成する方法であって、該方法は、
該高レベル言語での記述から複数の仮想プログラマブルデバイスをコンパイルすることと、
該高レベル言語で、該プログラマブル集積回路デバイスのためのユーザー構成の記述を受信することと、
プログラミングプロセッサを用いて該ユーザー構成を構文解析し、該構文解析の結果として、該コンパイルされた仮想プログラマブルデバイスのうちの1つを選択することと、
該プログラマブル集積回路デバイス上で該コンパイルされた仮想プログラマブルデバイスのうちの該1つのインスタンスを作成することと、
該ユーザー構成を用いて、該コンパイルされた仮想プログラマブルデバイスのうちの該インスタンスが作成された1つを構成することと
を含む、方法。
(項目2)
上記高レベル言語は、OpenCLである、上記項目に記載の方法。
(項目3)
上記インスタンスを作成することは、上記プログラマブル集積回路デバイスの外部のプロセッサで上記コンパイルされた仮想プログラマブルデバイスのうちの上記1つを実行することを含む、上記項目のいずれかに記載の方法。
(項目4)
上記インスタンスを作成することは、上記プログラマブル集積回路デバイス上の構成プロセッサで上記コンパイルされた仮想プログラマブルデバイスのうちの上記1つを実行することを含む、上記項目のいずれかに記載の方法。
(項目5)
上記実行することは、上記プログラマブル集積回路デバイス上でソフトプロセッサのインスタンスを作成することを含む、上記項目のいずれかに記載の方法。
(項目6)
上記実行することは、上記プログラマブル集積回路デバイスに内蔵されたハード構成プロセッサで上記コンパイルされた仮想プログラマブルデバイスのうちの上記1つを実行することを含む、上記項目のいずれかに記載の方法。
(項目7)
上記構成することは、合成、配置およびルーティングのうちの少なくとも1つを含む、上記項目のいずれかに記載の方法。
(項目8)
上記仮想プログラマブルデバイスの各々は、上記プログラマブル集積回路デバイスのプログラマブルリソースから構成された構成可能なルーティングリソースと、
該プログラマブル集積回路デバイスの構成可能なリソースから構成された複数の複雑な機能ブロックと
を含む、上記項目のいずれかに記載の方法。
(項目9)
上記複数の複雑な機能ブロックは、算数関数ブロック、三角関数ブロック、多重化論理ブロック、またはソフトプロセッサブロックのうちの少なくとも1つを含む、上記項目のいずれかに記載の方法。
(項目10)
複数の仮想プログラマブルデバイスのための上記複数のコンパイルされた構成は、動作中に再構成可能である仮想プログラマブルデバイスのための少なくとも1つのコンパイルされた構成を含み、
上記選択することは、上記構文解析の結果として、動作中に再構成可能である仮想プログラマブルデバイスのための該少なくとも1つのコンパイルされた構成のうちの1つを選択することを含み、
上記インスタントを作成することは、動作中に再構成可能である仮想プログラマブルデバイスのための該少なくとも1つのコンパイルされた構成のうちの該選択された1つのインスタントを作成することを含む、上記項目のいずれかに記載の方法。
(項目11)
上記コンパイルされた仮想プログラマブルデバイスのうちの上記1つを実行するプロセッサを含む、上記項目のいずれかに記載の方法に従って構成されたプログラマブル集積回路デバイス。
(項目12)
上記プロセッサは、上記プログラマブル集積回路デバイスの外部にある、上記項目のいずれかに記載のプログラマブル集積回路デバイス。
(項目13)
上記プロセッサは、上記プログラマブル集積回路デバイスの中に搭載されたハードプロセッサである、上記項目のいずれかに記載のプログラマブル集積回路デバイス。
(項目14)
上記プロセッサは、上記プログラマブル集積回路デバイスのプログラマブルリソースから構成されている、上記項目のいずれかに記載のプログラマブル集積回路デバイス。
(項目15)
高レベル言語を用いてプログラマブル集積回路デバイスを構成する方法であって、該方法は、
該高レベル言語で、該プログラマブル集積回路デバイスに対してユーザー構成を記述することと、
プログラミングプロセッサを用いて該ユーザー構成を構文解析し、該構文解析の結果として、事前にコンパイルされた仮想プログラマブルデバイスのライブラリの中から、1つの事前にコンパイルされた仮想プログラマブルデバイスを選択することと、
該プログラマブル集積回路デバイス上で該事前にコンパイルされた仮想プログラマブルデバイスのインスタンスを作成することと、
該ユーザー構成を用いて、該インスタンスが作成された事前にコンパイルされた仮想プログラマブルデバイスを構成することと
を含む、方法。
(項目16)
上記高レベル言語は、OpenCLである、上記項目のいずれかに記載の方法。
(項目17)
上記インスタンスを作成することは、上記プログラマブル集積回路デバイスの外部のプロセッサで上記事前にコンパイルされた仮想プログラマブルデバイスを実行することを含む、上記項目のいずれかに記載の方法。
(項目18)
上記インスタンスを作成することは、上記プログラマブル集積回路デバイス上の構成プロセッサで上記事前にコンパイルされた仮想プログラマブルデバイスを実行することを含む、上記項目のいずれかに記載の方法。
(項目19)
上記実行することは、上記プログラマブル集積回路デバイス上でソフトプロセッサのインスタンスを作成することを含む、上記項目のいずれかに記載の方法。
(項目20)
上記実行することは、上記プログラマブル集積回路デバイスに内蔵されたハード構成プロセッサで上記事前にコンパイルされた仮想プログラマブルデバイスを実行することを含む、上記項目のいずれかに記載の方法。
(項目21)
上記構成することは、合成、配置およびルーティングのうちの少なくとも1つを含む、上記項目のいずれかに記載の方法。
(項目22)
上記仮想プログラマブルデバイスの各々は、上記プログラマブル集積回路デバイスのプログラマブルリソースから構成された構成可能なルーティングリソースと、
該プログラマブル集積回路デバイスの構成可能なリソースから構成された複数の複雑な機能ブロックと
を含む、上記項目のいずれかに記載の方法。
(項目23)
上記複数の複雑な機能ブロックは、算数関数ブロック、三角関数ブロック、多重化論理ブロック、またはソフトプロセッサブロックのうちの少なくとも1つを含む、上記項目のいずれかに記載の方法。
(項目24)
上記事前にコンパイルされた仮想プログラマブルデバイスのライブラリにおける該事前にコンパイルされた仮想プログラマブルデバイスのうちの少なくとも1つは、動作中に再構成可能であり、
上記選択することは、上記構文解析の結果として、動作中に再構成可能である該少なくとも1つの事前にコンパイルされた仮想プログラマブルデバイスのうちの1つを選択することを含み、
上記インスタントを作成することは、動作中に再構成可能である該事前にコンパイルされた仮想プログラマブルデバイスのうちの該少なくとも1つのうちの該選択された1つのインスタントを作成することを含む、上記項目のいずれかに記載の方法。
(項目25)
上記コンパイルされた仮想プログラマブルデバイスを実行するプロセッサを含む、上記項目のいずれかに記載の方法に従って構成されたプログラマブル集積回路デバイス。
(項目26)
上記プロセッサは、上記プログラマブル集積回路デバイスの外部にある、上記項目のいずれかに記載のプログラマブル集積回路デバイス。
(項目27)
上記プロセッサは、上記プログラマブル集積回路デバイスの中に搭載されたハードプロセッサである、上記項目のいずれかに記載のプログラマブル集積回路デバイス。
(項目28)
上記プロセッサは、上記プログラマブル集積回路デバイスのプログラマブルリソースから構成されている、上記項目のいずれかに記載のプログラマブル集積回路デバイス。
(項目29)
高レベル言語を用いてプログラマブルデバイス集積回路デバイスを構成する方法を行う命令を用いて符号化された不揮発性機械読み取り可能な格納媒体であって、該命令は、
該高レベル言語で、該プログラマブル集積回路デバイスのためのユーザー構成の記述を受信する命令と、
プログラミングプロセッサを用いて該ユーザー構成を構文解析し、該構文解析の結果として、事前にコンパイルされた仮想プログラマブルデバイスのライブラリの中から1つの事前にコンパイルされた仮想プログラマブルデバイスを選択する命令と、
該プログラマブル集積回路デバイス上で該事前にコンパイルされた仮想プログラマブルデバイスのインスタンスを作成する命令と、
該ユーザー構成を用いて該インスタンスが作成された事前にコンパイルされた仮想プログラマブルデバイスを構成する命令と
を含む、不揮発性機械読み取り可能な格納媒体。
(項目30)
上記インスタンスを作成する命令は、上記プログラマブル集積回路デバイスの外部のプロセッサ上で上記事前にコンパイルされた仮想プログラマブルデバイスを実行する命令を含む、上記項目のいずれかに記載の不揮発性機械読み取り可能な格納媒体。
(項目31)
上記インスタンスを作成する命令は、上記プログラマブル集積回路デバイス上の構成プロセッサ上で上記事前にコンパイルされた仮想プログラマブルデバイスを実行する命令を含む、上記項目のいずれかに記載の不揮発性機械読み取り可能な格納媒体。
(項目32)
上記実行する命令は、上記プログラマブル集積回路デバイス上でソフトプロセッサのインスタンスを作成することを含む、上記項目のいずれかに記載の不揮発性機械読み取り可能な格納媒体。
プログラマブル集積回路デバイスを構成する方法は、高レベル言語を使用する。方法は、高レベル言語での記述から複数の仮想プログラマブルデバイスをコンパイルすることと、高レベル言語で、プログラマブル集積回路デバイスに対してユーザー構成を記述することと、プログラミングプロセッサを用いてユーザー構成を構文解析することと、構文解析の結果として、コンパイルされた仮想プログラマブルデバイスのうちの1つを選択することとを含む。コンパイルされた仮想プログラマブルデバイスのうちのその選択された1つは、プログラマブル集積回路デバイス上にインスタンスを作成され、コンパイルされた仮想プログラマブルデバイスのうちのインスタンスが作成された1つは、ユーザー構成を用いて構成される。
Claims (36)
- 高レベル言語を用いてプログラマブル集積回路デバイスを構成する方法であって、該方法は、
複数の仮想プログラマブルデバイスを該高レベル言語での該仮想プログラマブルデバイスの記述からコンパイルすることと、
該高レベル言語で、該プログラマブル集積回路デバイスのためのユーザー構成の記述を受信することであって、該ユーザー構成は、第1のグループの機能を有する第1の構成と、第2のグループの機能を有する第2の構成とを含む、ことと、
プログラミングプロセッサを用いて該ユーザー構成を構文解析し、該構文解析の結果として、該コンパイルされた仮想プログラマブルデバイスのうちの1つを選択することと、
該プログラマブル集積回路デバイス向けの該コンパイルされた仮想プログラマブルデバイスのうちの該1つのインスタンスを作成することと、
該ユーザー構成を用いて、該コンパイルされた仮想プログラマブルデバイスのうちの該インスタンスが作成された1つを構成することであって、該構成することは、該第2の構成を用いることなく、該第1の構成を用いて、該コンパイルされた仮想プログラマブルデバイスのうちの該インスタンスが作成された1つを構成することによって行われる、ことと、
該第1の構成をアンロードし、テストからの結果に応答して、該第1の構成を用いることなく、該第2の構成を用いて、該コンパイルされた仮想プログラマブルデバイスのうちの該インスタンスが作成された1つを構成することと
を含む、方法。 - 前記高レベル言語は、OpenCLである、請求項1に記載の方法。
- 前記インスタンスを作成することは、前記コンパイルされた仮想プログラマブルデバイスのうちの前記1つを前記プログラマブル集積回路デバイスの外部のプロセッサで実行することを含む、請求項1に記載の方法。
- 前記インスタンスを作成することは、前記コンパイルされた仮想プログラマブルデバイスのうちの前記1つを前記プログラマブル集積回路デバイス上の構成プロセッサで実行することを含む、請求項1に記載の方法。
- 前記実行することは、前記プログラマブル集積回路デバイス上でソフトプロセッサのインスタンスを作成することを含む、請求項4に記載の方法。
- 前記実行することは、前記コンパイルされた仮想プログラマブルデバイスのうちの前記1つを前記プログラマブル集積回路デバイスに内蔵されたハード構成プロセッサで実行することを含む、請求項4に記載の方法。
- 前記構成することは、合成、配置およびルーティングのうちの少なくとも1つを含む、請求項1に記載の方法。
- 前記仮想プログラマブルデバイスの各々は、
前記プログラマブル集積回路デバイスのプログラマブルリソースから構成された構成可能なルーティングリソースと、
該プログラマブル集積回路デバイスのプログラマブルリソースから構成された複数の機能ブロックと
を含む、請求項1に記載の方法。 - 前記複数の機能ブロックは、算数関数ブロック、三角関数ブロック、多重化論理ブロック、またはソフトプロセッサブロックのうちの少なくとも1つを含む、請求項8に記載の方法。
- 複数の仮想プログラマブルデバイスのための前記複数のコンパイルされた構成は、動作中に再構成可能である仮想プログラマブルデバイスのための少なくとも1つのコンパイルされた構成を含み、
前記選択することは、前記構文解析の結果として、動作中に再構成可能である仮想プログラマブルデバイスのための該少なくとも1つのコンパイルされた構成のうちの1つを選択することを含み、
前記インスタンスを作成することは、動作中に再構成可能である仮想プログラマブルデバイスのための該少なくとも1つのコンパイルされた構成のうちの該選択された1つのインスタンスを作成することを含む、請求項1に記載の方法。 - 前記コンパイルされた仮想プログラマブルデバイスのうちの前記1つを実行するプロセッサを含む、請求項1に記載の方法に従って構成されたプログラマブル集積回路デバイス。
- 前記プロセッサは、前記プログラマブル集積回路デバイスの外部にある、請求項11に記載のプログラマブル集積回路デバイス。
- 前記プロセッサは、前記プログラマブル集積回路デバイスの中に搭載されたハードプロセッサである、請求項11に記載のプログラマブル集積回路デバイス。
- 前記プロセッサは、前記プログラマブル集積回路デバイスのプログラマブルリソースから構成されている、請求項11に記載のプログラマブル集積回路デバイス。
- 高レベル言語を用いてプログラマブル集積回路デバイスを構成する方法であって、該方法は、
該高レベル言語で、該プログラマブル集積回路デバイスに対してユーザー構成を記述することであって、該ユーザー構成は、第1のグループの機能を有する第1の構成と、第2のグループの機能を有する第2の構成とを含む、ことと、
プログラミングプロセッサを用いて該ユーザー構成を構文解析し、該構文解析の結果として、該高レベル言語での仮想プログラマブルデバイスの記述から事前にコンパイルされた仮想プログラマブルデバイスのライブラリの中から、1つの事前にコンパイルされた仮想プログラマブルデバイスを選択することと、
該プログラマブル集積回路デバイス向けの該事前にコンパイルされた仮想プログラマブルデバイスのインスタンスを作成することと、
該ユーザー構成を用いて、該インスタンスが作成された事前にコンパイルされた仮想プログラマブルデバイスを構成することであって、該構成することは、該第2の構成を用いることなく、該第1の構成を用いて、該コンパイルされた仮想プログラマブルデバイスのうちの該インスタンスが作成された1つを構成することによって行われる、ことと、
該第1の構成をアンロードし、テストからの結果に応答して、該第1の構成を用いることなく、該第2の構成を用いて、該インスタンスが作成された事前にコンパイルされた仮想プログラマブルデバイスを構成することと
を含む、方法。 - 前記高レベル言語は、OpenCLである、請求項15に記載の方法。
- 前記インスタンスを作成することは、前記事前にコンパイルされた仮想プログラマブルデバイスを前記プログラマブル集積回路デバイスの外部のプロセッサで実行することを含む、請求項15に記載の方法。
- 前記インスタンスを作成することは、前記事前にコンパイルされた仮想プログラマブルデバイスを前記プログラマブル集積回路デバイス上の構成プロセッサで実行することを含む、請求項15に記載の方法。
- 前記実行することは、前記プログラマブル集積回路デバイス上でソフトプロセッサのインスタンスを作成することを含む、請求項18に記載の方法。
- 前記実行することは、前記事前にコンパイルされた仮想プログラマブルデバイスを前記プログラマブル集積回路デバイスに内蔵されたハード構成プロセッサで実行することを含む、請求項18に記載の方法。
- 前記構成することは、合成、配置およびルーティングのうちの少なくとも1つを含む、請求項15に記載の方法。
- 前記仮想プログラマブルデバイスの各々は、
前記プログラマブル集積回路デバイスのプログラマブルリソースから構成された構成可能なルーティングリソースと、
該プログラマブル集積回路デバイスのプログラマブルリソースから構成された複数の機能ブロックと
を含む、請求項15に記載の方法。 - 前記複数の機能ブロックは、算数関数ブロック、三角関数ブロック、多重化論理ブロック、またはソフトプロセッサブロックのうちの少なくとも1つを含む、請求項22に記載の方法。
- 前記事前にコンパイルされた仮想プログラマブルデバイスのライブラリにおける該事前にコンパイルされた仮想プログラマブルデバイスのうちの少なくとも1つは、動作中に再構成可能であり、
前記選択することは、前記構文解析の結果として、動作中に再構成可能である該少なくとも1つの事前にコンパイルされた仮想プログラマブルデバイスのうちの1つを選択することを含み、
前記インスタンスを作成することは、動作中に再構成可能である該事前にコンパイルされた仮想プログラマブルデバイスのうちの該少なくとも1つのうちの該選択された1つのインスタンスを作成することを含む、請求項15に記載の方法。 - 前記コンパイルされた仮想プログラマブルデバイスを実行するプロセッサを含む、請求項15に記載の方法に従って構成されたプログラマブル集積回路デバイス。
- 前記プロセッサは、前記プログラマブル集積回路デバイスの外部にある、請求項25に記載のプログラマブル集積回路デバイス。
- 前記プロセッサは、前記プログラマブル集積回路デバイスの中に搭載されたハードプロセッサである、請求項25に記載のプログラマブル集積回路デバイス。
- 前記プロセッサは、前記プログラマブル集積回路デバイスのプログラマブルリソースから構成されている、請求項25に記載のプログラマブル集積回路デバイス。
- 高レベル言語を用いてプログラマブルデバイス集積回路デバイスを構成する方法をコンピュータに行わせる命令を記録した不揮発性機械読み取り可能な格納媒体であって、該命令は、
該高レベル言語で、該プログラマブル集積回路デバイスのためのユーザー構成の記述を受信することを該コンピュータに行わせる命令であって、該ユーザー構成は、第1のグループの機能を有する第1の構成と、第2のグループの機能を有する第2の構成とを含む、命令と、
プログラミングプロセッサを用いて該ユーザー構成を構文解析し、該構文解析の結果として、該高レベル言語での仮想プログラマブルデバイスの記述から事前にコンパイルされた仮想プログラマブルデバイスのライブラリの中から1つの事前にコンパイルされた仮想プログラマブルデバイスを選択することを該コンピュータに行わせる命令と、
該プログラマブル集積回路デバイス向けの該事前にコンパイルされた仮想プログラマブルデバイスのインスタンスを作成することを該コンピュータに行わせる命令と、
該ユーザー構成を用いて該インスタンスが作成された事前にコンパイルされた仮想プログラマブルデバイスを構成することを該コンピュータに行わせる命令であって、該構成することは、該第2の構成を用いることなく、該第1の構成を用いて、該インスタンスが作成された事前にコンパイルされた仮想プログラマブルデバイスを構成することによって行われる、命令と、
該第1の構成をアンロードし、テストからの結果に応答して、該第1の構成を用いることなく、該第2の構成を用いて、該インスタンスが作成された事前にコンパイルされた仮想プログラマブルデバイスを構成することを該コンピュータに行わせる命令と
を含む、不揮発性機械読み取り可能な格納媒体。 - 前記インスタンスを作成することを前記コンピュータに行わせる命令は、前記事前にコンパイルされた仮想プログラマブルデバイスを前記プログラマブル集積回路デバイスの外部のプロセッサ上で実行することを該コンピュータに行わせる命令を含む、請求項29に記載の不揮発性機械読み取り可能な格納媒体。
- 前記インスタンスを作成することを前記コンピュータに行わせる命令は、前記事前にコンパイルされた仮想プログラマブルデバイスを前記プログラマブル集積回路デバイス上の構成プロセッサ上で実行することを該コンピュータに行わせる命令を含む、請求項29に記載の不揮発性機械読み取り可能な格納媒体。
- 前記実行することを前記コンピュータに行わせる命令は、前記プログラマブル集積回路デバイス上でソフトプロセッサのインスタンスを作成することを該コンピュータに行わせる命令を含む、請求項31に記載の不揮発性機械読み取り可能な格納媒体。
- 高レベル言語を用いてプログラマブル集積回路デバイスを構成する方法であって、該方法は、
該高レベル言語で、該プログラマブル集積回路デバイスに対して、第1の構成および第2の構成を含むユーザー構成を記述することと、
プログラミングプロセッサを用いて該構成を構文解析し、該構文解析の結果として、該第1の構成および該第2の構成の要件を満たす、該高レベル言語での仮想プログラマブルデバイスの記述から事前にコンパイルされた仮想プログラマブルデバイスのライブラリの中から、1つの事前にコンパイルされた仮想プログラマブルデバイスを選択することと、
該プログラマブル集積回路デバイス向けの該事前にコンパイルされた仮想プログラマブルデバイスのインスタンスを作成することと、
該第2の構成を用いることなく、該ユーザー構成における該第1の構成を用いて、該インスタンスが作成された事前にコンパイルされた仮想プログラマブルデバイスを構成することと、
該第1の構成をアンロードし、テストからの結果に応答して、該第1の構成を用いることなく、該第2の構成を用いて、該インスタンスが作成された事前にコンパイルされた仮想プログラマブルデバイスを構成することと
を含む、方法。 - 前記高レベル言語は、ハードウェア記述言語よりも高級言語である、請求項1に記載の方法。
- 前記高レベル言語は、ハードウェア記述言語よりも高級言語である、請求項15に記載の方法。
- 前記高レベル言語は、ハードウェア記述言語よりも高級言語である、請求項29に記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/369,836 | 2012-02-09 | ||
US13/369,836 US20130212366A1 (en) | 2012-02-09 | 2012-02-09 | Configuring a programmable device using high-level language |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013022168A Division JP2013164847A (ja) | 2012-02-09 | 2013-02-07 | 高レベル言語を用いるプログラマブルデバイスの構成 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018028919A JP2018028919A (ja) | 2018-02-22 |
JP6527202B2 true JP6527202B2 (ja) | 2019-06-05 |
Family
ID=47747417
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013022168A Pending JP2013164847A (ja) | 2012-02-09 | 2013-02-07 | 高レベル言語を用いるプログラマブルデバイスの構成 |
JP2017182139A Active JP6527202B2 (ja) | 2012-02-09 | 2017-09-22 | 高レベル言語を用いるプログラマブルデバイスの構成 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013022168A Pending JP2013164847A (ja) | 2012-02-09 | 2013-02-07 | 高レベル言語を用いるプログラマブルデバイスの構成 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20130212366A1 (ja) |
EP (1) | EP2626800B1 (ja) |
JP (2) | JP2013164847A (ja) |
CN (1) | CN103324511B (ja) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8959469B2 (en) | 2012-02-09 | 2015-02-17 | Altera Corporation | Configuring a programmable device using high-level language |
US9817931B1 (en) * | 2013-12-05 | 2017-11-14 | The Mathworks, Inc. | Systems and methods for generating optimized hardware descriptions for models |
US10078717B1 (en) | 2013-12-05 | 2018-09-18 | The Mathworks, Inc. | Systems and methods for estimating performance characteristics of hardware implementations of executable models |
US9727679B2 (en) * | 2014-12-20 | 2017-08-08 | Intel Corporation | System on chip configuration metadata |
US20160179161A1 (en) * | 2014-12-22 | 2016-06-23 | Robert P. Adler | Decode information library |
US9286196B1 (en) * | 2015-01-08 | 2016-03-15 | Arm Limited | Program execution optimization using uniform variable identification |
WO2016114532A1 (ko) * | 2015-01-16 | 2016-07-21 | 서울대학교 산학협력단 | 프로그램 컴파일 장치 및 프로그램 컴파일 방법 |
KR101737785B1 (ko) * | 2015-01-16 | 2017-05-19 | 서울대학교산학협력단 | 프로그램 컴파일 장치 및 프로그램 컴파일 방법 |
JP6641697B2 (ja) * | 2015-02-05 | 2020-02-05 | 大日本印刷株式会社 | 太陽電池付き表示体 |
US9864828B1 (en) * | 2015-09-17 | 2018-01-09 | Xilinx, Inc. | Hardware acceleration device handoff for using programmable integrated circuits as hardware accelerators |
JP7015249B2 (ja) * | 2016-01-26 | 2022-02-02 | アイキャット・エルエルシー | 再構成可能アルゴリズムによるパイプラインコアおよびアルゴリズムマッチングパイプラインコンパイラを有するプロセッサ |
CN109656673B (zh) * | 2017-10-11 | 2023-03-31 | 阿里巴巴集团控股有限公司 | 程序的加载方法、装置、系统以及电子设备 |
CN109032059B (zh) * | 2018-07-25 | 2019-12-24 | 山东大学 | 一种控制器逻辑柔性的编码、通信方法及装置 |
US10642630B1 (en) * | 2018-08-27 | 2020-05-05 | Liquid Instruments Pty. Ltd. | Process of programming field programmable gate arrays using partial reconfiguration |
KR20200139525A (ko) * | 2019-06-04 | 2020-12-14 | 삼성전자주식회사 | Fpga를 포함하는 전자 시스템 및 이의 동작 방법 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
EP1356400A2 (en) * | 2000-08-07 | 2003-10-29 | Altera Corporation | Inter-device communication interface |
JP2004023761A (ja) * | 2002-06-20 | 2004-01-22 | Konica Minolta Holdings Inc | プログラマブル集積回路装置 |
US6983456B2 (en) * | 2002-10-31 | 2006-01-03 | Src Computers, Inc. | Process for converting programs in high-level programming languages to a unified executable for hybrid computing platforms |
US7290240B1 (en) * | 2004-07-30 | 2007-10-30 | Altera Corporation | Leveraging combinations of synthesis, placement and incremental optimizations |
JP4390211B2 (ja) * | 2004-11-30 | 2009-12-24 | 国立大学法人九州大学 | カスタムlsi開発プラットフォーム、命令セット・アーキテクチャ及び論理回路構成情報の生成方法、並びにプログラム |
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 |
WO2007005724A2 (en) * | 2005-07-01 | 2007-01-11 | The Regents Of The University Of California | Fpga circuits and methods considering process variations |
US7996797B1 (en) * | 2006-08-16 | 2011-08-09 | Altera Corporation | Method and apparatus for performing multiple stage physical synthesis |
US8296696B1 (en) * | 2008-03-12 | 2012-10-23 | Altera Corporation | Method and apparatus for performing simultaneous register retiming and combinational resynthesis during physical synthesis |
US8959469B2 (en) * | 2012-02-09 | 2015-02-17 | Altera Corporation | Configuring a programmable device using high-level language |
-
2012
- 2012-02-09 US US13/369,836 patent/US20130212366A1/en not_active Abandoned
-
2013
- 2013-02-07 JP JP2013022168A patent/JP2013164847A/ja active Pending
- 2013-02-08 CN CN201310064875.3A patent/CN103324511B/zh active Active
- 2013-02-11 EP EP13154771.3A patent/EP2626800B1/en active Active
-
2017
- 2017-09-22 JP JP2017182139A patent/JP6527202B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
US20130212366A1 (en) | 2013-08-15 |
JP2018028919A (ja) | 2018-02-22 |
EP2626800B1 (en) | 2019-09-11 |
CN103324511A (zh) | 2013-09-25 |
EP2626800A1 (en) | 2013-08-14 |
CN103324511B (zh) | 2019-01-08 |
JP2013164847A (ja) | 2013-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6527202B2 (ja) | 高レベル言語を用いるプログラマブルデバイスの構成 | |
JP6139160B2 (ja) | 高レベル言語を用いるプログラマブルデバイスの構成 | |
JP6059413B2 (ja) | 再構成可能命令セル・アレイ | |
US10033387B2 (en) | Method apparatus for high-level programs with general control flow | |
Jones et al. | An FPGA-based VLIW processor with custom hardware execution | |
Cardoso et al. | Compilation techniques for reconfigurable architectures | |
US8146040B1 (en) | Method of evaluating an architecture for an integrated circuit device | |
EP1600865A1 (en) | Dynamic programming of trigger conditions in hardware emulation systems | |
US8806403B1 (en) | Efficient configuration of an integrated circuit device using high-level language | |
US20160042099A1 (en) | Behavioral synthesis apparatus, behavioral synthesis method, data processing system including behavioral synthesis apparatus, and non-transitory computer readable medium storing behavioral synthesis program | |
Dashkin et al. | General approach to asynchronous circuits simulation using synchronous fpgas | |
US20050097306A1 (en) | No-instruction-set-computer processor | |
US9547738B1 (en) | Invariant code optimization in high-level FPGA synthesis | |
Wolf et al. | Ultrasynth: integration of a CGRA into a control engineering environment | |
Jozwiak et al. | Hardware synthesis for reconfigurable heterogeneous pipelined accelerators | |
Ram et al. | Design and implementation of run time digital system using field programmable gate array–improved dynamic partial reconfiguration for efficient power consumption | |
Suvorova et al. | System level modeling of dynamic reconfigurable system-on-chip | |
Self et al. | Design methodology for construction of asynchronous pipelines with Handel-C | |
Koch | UltraSynth: Integration of a CGRA into a Control Engineering Environment | |
Wilson | Overlay Strategies and Optimizations for Rapid FPGA Application Development | |
Yu | Automated compilation framework for RISC-V+ CGRA systems | |
Chauhan et al. | Reconfiguration of fpga for domain specific applications using embedded system approach | |
Ihrig et al. | Pipelining tradeoffs of massively parallel supercisc hardware functions | |
Lanzagorta et al. | FPGA Technology | |
Chang | Concept of Logic Synthesis |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180718 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180809 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20181109 |
|
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: 20190417 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190509 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6527202 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |