(57)【要約】【課題】ＰＬＤのクリティカルパスの遅延量を最適化することによってＰＬＤの電源電圧値を最適化する。【解決手段】プログラマブルロジックデバイス設計装置１は、遅延量解析部１４２と、電源電圧最適化部１４３と、構成情報生成部１４４と、構成情報出力部１４５とを有する。遅延量解析部１４２は、論理回路をプログラマブルロジックデバイスに配置配線するときに使用される配置配線情報から、論理回路に含まれる経路の中で遅延マージンが最も小さいクリティカルパスを決定する。電源電圧最適化部１４３は、電源電圧と遅延量との関係を示すテーブルを使用して演算されるクリティカルパスの遅延マージンが所望の値になる電源電圧値を、プログラマブルロジックデバイスに印加する最適電圧値に決定する。構成情報生成部１４４は、配置配線情報及び最適電圧値を含む構成情報を生成する。構成情報出力部１４５は、構成情報を出力する。【選択図】図２
2017027413.tif 000002
【特許請求の範囲】
【請求項１】
論理回路をプログラマブルロジックデバイスに配置配線するときに使用される配置配線情報から、前記論理回路に含まれる経路の中で遅延マージンが最も小さいクリティカルパスを決定する遅延量解析部と、
電源電圧と遅延量との関係を示すテーブルを使用して演算される前記クリティカルパスの遅延マージンが所望の値になる電源電圧値を、プログラマブルロジックデバイスに印加する最適電圧値に決定する電源電圧最適化部と、
前記配置配線情報及び前記最適電圧値を含む構成情報を生成する構成情報生成部と、
前記構成情報を出力する構成情報出力部と、
を有するプログラマブルロジックデバイス設計装置。
【請求項２】
前記電源電圧最適化部は、前記クリティカルパスの遅延マージンが正の値であるときに、前記電源電圧値を低くして前記テーブルを使用して演算される前記クリティカルパスの遅延マージンを小さくする、請求項１に記載のプログラマブルロジックデバイス設計装置。
【請求項３】
前記電源電圧最適化部は、前記クリティカルパスの遅延マージンが負の値であるときに、電源電圧値を高くして前記テーブルを使用して演算される前記クリティカルパスの遅延マージンを正にする、請求項１又は２に記載のプログラマブルロジックデバイス設計装置。
【請求項４】
論理回路をプログラマブルロジックデバイスに配置配線するときに使用される配置配線情報から、前記論理回路に含まれる経路の中で遅延マージンが最も小さいクリティカルパスを決定し、
電源電圧と遅延量との関係を示すテーブルを使用して演算される前記クリティカルパスの遅延マージンが所望の値になる電源電圧値を、プログラマブルロジックデバイスに印加する最適電圧値として決定し、
前記配置配線情報及び前記最適電圧値を含む構成情報を生成し、
前記構成情報を出力する、
ことを含むプログラマブルロジックデバイス設計方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブルロジックデバイス設計装置及びその方法に関する。
【背景技術】
【０００２】
大規模半導体集積回路（ＬＳＩ）の設計時にＳＰＩＣＥ等による静的タイミング解析（Static Timing Analysis、ＳＴＡ）等を使用して、ＬＳＩの消費電力の増加を低減することが知られている（例えば、特許文献１〜３を参照）。一例では、ＬＳＩにリングオシレータを搭載し、搭載したリングオシレータの発振周期とＬＳＩの最適電圧値との関係を示すテーブルを使用して、デバイス毎に最適な電源電圧値が決定される。発振周期と最適電圧値との関係を示すテーブルを作成するときに、ゲート長等のプロセスパラメータのそれぞれのばらつきは、ＳＰＩＣＥ等のシミュレーションによるクリティカルパスの解析によりテーブルに反映される。ゲート長等の複数のプロセスパラメータのばらつきが反映されたテーブルを使用して最適電圧値を決定することにより、プロセスパラメータの全てが一斉にワースト方向へ変動すると推定する従来のモデルよりも高精度に最適電圧値が決定される。発振周期と最適電圧値との関係を示すテーブルは、クリティカルパスが相違する論理回路毎に作成されるため、ＳＰＩＣＥ等のシミュレーションによる静的タイミング解析は、クリティカルパスが相違する論理回路毎に実行される。ＳＰＩＣＥ等のシミュレーションは一般に多くの工数により実行されるものであるので、クリティカルパスが相違する論理回路毎にＳＰＩＣＥ等のシミュレーションによる静的タイミング解析を実行することにより、回路設計者の負担が増加するおそれがある。
【０００３】
また、ＦＰＧＡ（Field Programmable Gate Array）とも称され、搭載される回路の変更に応じて再構成が可能な論理回路であるプログラマブルロジックデバイスが知られている（例えば、特許文献４及び５を参照）。ＦＰＧＡは、多数の基本論理セル回路と、基本論理セル回路の間の結線する結線スイッチ回路とを有し、基本論理セル回路のそれぞれが所望の動作を実施するようにコンフィグレーションされ、結線スイッチ回路を介して接続される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−８６８４８号公報
【特許文献２】特開２０１２−２０３５６１号公報
【特許文献３】特表２０１１−５３０７６３号公報
【特許文献４】特開２００６−１６３８１５号公報
【特許文献５】特開２００８−２６３２６１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ＦＰＧＡにおいても、他のＬＳＩと同様に、許容されるクリティカルパスの遅延量は、論理回路の構成、動作周波数及び電源電圧に応じて変化する。ＦＰＧＡの消費電力を低減するために、許容されるクリティカルパスの遅延量等に応じて電源電圧を最適化することが望ましい。従来のＦＰＧＡ設計装置では、所定の最高動作周波数及び電源電圧の範囲で動作させることを前提にして、論理回路の設計や遅延量の解析が実施される。従来のＦＰＧＡ設計装置では、所定の最高動作周波数及び電源電圧の範囲で動作させることを前提とするため、クリティカルパスの遅延量を最適化することによって、所定の電源電圧の範囲を超えて電源電圧値を最適化することは容易ではない。
【０００６】
一実施形態では、クリティカルパスの遅延量を最適化することによってプログラマブルロジックデバイスの電源電圧値を最適化することができるプログラマブルロジックデバイス設計装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
１つの態様では、プログラマブルロジックデバイス設計装置は、遅延量解析部と、電源電圧最適化部と、構成情報生成部と、構成情報出力部とを有する。遅延量解析部は、論理回路をプログラマブルロジックデバイスに配置配線するときに使用される配置配線情報から、論理回路に含まれる経路の中で遅延マージンが最も小さいクリティカルパスを決定する。電源電圧最適化部は、電源電圧と遅延量との関係を示すテーブルを使用して演算されるクリティカルパスの遅延マージンが所望の値になる電源電圧値を、プログラマブルロジックデバイスに印加する最適電圧値に決定する。構成情報生成部は、配置配線情報及び最適電圧値を含む構成情報を生成する。構成情報出力部は、構成情報を出力する。
【発明の効果】
【０００８】
一実施形態では、クリティカルパスの遅延量を最適化することによってプログラマブルロジックデバイスの電源電圧値を最適化することができるプログラマブルロジックデバイス設計装置を提供することができる。
【図面の簡単な説明】
【０００９】
【図１】第１実施形態に係るプログラマブルロジックデバイス設計装置の回路ブロック図である。
【図２】図１に示すプログラマブルロジックデバイス設計装置によるコンフィグレーションデータ生成処理のフローチャートである。
【図３】ＦＰＧＡの内部回路ブロック図である。
【図４】遅延量テーブルの一例を示す図である。
【図５】（ａ）はクリティカルパスの一例を示す図であり、（ｂ）はクリティカルパスを決定するときに使用される遅延量あり、（ｃ）はクリティカルパスの遅延マージンを示す図である。
【図６】図２に示すＳ１０３の処理のより詳細な処理フローを示すフローチャートである。
【図７】ＦＰＧＡを搭載する電子装置の回路ブロック図である。
【図８】図１に示すプログラマブルロジックデバイス設計装置が生成したコンフィグレーションデータに基づく電子装置の起動動作を示すフローチャートである。
【図９】（ａ）はクリティカルパスの一例における電源電圧の変化と遅延の変動量との関係を示す図であり、（ｂ）は（ａ）に示すクリティカルパスの電源電圧の変化と遅延マージンとの関係を示す図である。
【図１０】第２実施形態に係るプログラマブルロジックデバイス設計装置の回路ブロック図である。
【図１１】図１０に示すプログラマブルロジックデバイス設計装置によるコンフィグレーションデータ生成処理のフローチャートである。
【図１２】図１１に示すＳ４０１の処理で生成されるＲＴＬデータに対応する電圧制御回路の回路ブロック図である。
【図１３】図１０に示すプログラマブルロジックデバイス設計装置が生成したコンフィグレーションデータに基づく電子装置の起動動作を示すフローチャートである。
【図１４】図１０に示すプログラマブルロジックデバイス設計装置が生成したコンフィグレーションデータに基づく起動動作がされた電子装置の回路ブロック図である。
【図１５】第３実施形態に係るプログラマブルロジックデバイス設計装置の回路ブロック図である。
【図１６】図１５に示すプログラマブルロジックデバイス設計装置によるコンフィグレーションデータ生成処理のフローチャートである。
【図１７】図１６に示すＳ６０１の処理で生成されるＲＴＬデータに対応するテスト回路の回路ブロック図である。
【図１８】図１５に示すプログラマブルロジックデバイス設計装置が生成したコンフィグレーションデータに基づく起動動作がされた電子装置の回路ブロック図である。
【発明を実施するための形態】
【００１０】
以下図面を参照して、本発明に係るプログラマブルロジックデバイス設計装置及びその方法について説明する。但し、本発明の技術的範囲はそれらの実施の形態に限定されない。
【００１１】
（実施形態に係るプログラマブルロジックデバイス設計装置の概要）
実施形態に係るプログラマブルロジックデバイス設計装置（以下、ＰＬＤ設計装置とも称する）は、電源電圧値と遅延量との関係を示すテーブルを使用して、クリティカルパスの遅延マージンが最小になるように電源電圧値を決定する。論理回路のクリティカルパスの遅延マージンが最小になるように電源電圧値を決定することにより、配置配線情報を加味してＰＬＤの電源電圧が最適化される。
【００１２】
（第１実施形態に係るプログラマブルロジックデバイス設計装置の構成及び機能）
図１は、第１実施形態に係るプログラマブルロジックデバイス設計装置の回路ブロック図である。
【００１３】
ＰＬＤ設計装置１は、記憶部１１と、入力部１２と、出力部１３と、処理部１４とを備える。ＰＬＤ設計装置１は、ＲＴＬデータ、タイミング制約データ及び遅延量テーブルを使用して、ＦＰＧＡの配置配線情報及び電源電圧値を含むコンフィグレーションデータを生成する。
【００１４】
記憶部１１は、例えば、磁気テープ装置、磁気ディスク装置、又は光ディスク装置のうちの少なくとも一つを備える。記憶部１１は、処理部１４での処理に用いられるオペレーティングシステムプログラム、ドライバプログラム、アプリケーションプログラム、データ等を記憶する。例えば、記憶部１１は、アプリケーションプログラムとして、ＦＰＧＡのコンフィグレーションデータを生成する処理を、処理部１４に実行させるためのコンフィグレーションデータ生成プログラム等を記憶する。コンフィグレーションデータ生成プログラムは、例えばＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ等のコンピュータ読み取り可能な可搬型記録媒体から、公知のセットアッププログラム等を用いて記憶部１１にインストールされてもよい。
【００１５】
また、記憶部１１は、コンフィグレーションデータ生成処理で使用されるＲＴＬデータ、タイミング制約データ及び遅延量テーブルを記憶する。ＲＴＬデータは、ＦＰＧＡに搭載される論理回路の論理を示すデータであり、ユーザが設計したユーザ回路と、電源電圧を制御する電圧制御回路とを含む。タイミング制約データは、一例ではＳＤＣ（Synopsys Design Constraints）ファイルであり、ＦＰＧＡに搭載される論理回路のタイミング制約を規定する。さらに、記憶部１１は、所定の処理に係る一時的なデータを一時的に記憶してもよい。
【００１６】
入力部１２は、データの入力が可能であればどのようなデバイスでもよく、例えば、タッチパネル、キーボタン等である。操作者は、入力部１２を用いて、文字、数字、記号等を入力することができる。入力部１２は、操作者により操作されると、その操作に対応する信号を生成する。そして、生成された信号は、操作者の指示として、処理部１４に供給される。
【００１７】
出力部１３は、映像や画像等の表示が可能であればどのようなデバイスでもよく、例えば、液晶ディスプレイ又は有機ＥＬ（Electro−Luminescence）ディスプレイ等である。出力部１３は、処理部１４から供給された映像データに応じた映像や、画像データに応じた画像等を表示する。また、出力部１３は、紙などの表示媒体に、映像、画像又は文字等を印刷する出力装置であってもよい。
【００１８】
処理部１４は、一又は複数個のプロセッサ及びその周辺回路を有する。処理部１４は、ＰＬＤ設計装置１の全体的な動作を統括的に制御するものであり、例えば、ＣＰＵである。処理部１４は、記憶部１１に記憶されているプログラム（ドライバプログラム、オペレーティングシステムプログラム、アプリケーションプログラム等）に基づいて処理を実行する。また、処理部１４は、複数のプログラム（アプリケーションプログラム等）を並列に実行できる。
【００１９】
処理部１４は、配置配線情報生成部１４１と、遅延量解析部１４２と、電源電圧最適化部１４３と、コンフィグレーションデータ生成部１４４と、コンフィグレーションデータ出力部１４５とを有する。これらの各部は、処理部１４が備えるプロセッサで実行されるプログラムにより実現される機能モジュールである。あるいは、これらの各部は、ファームウェアとしてＰＬＤ設計装置に実装されてもよい。
【００２０】
図２は、ＰＬＤ設計装置１によるコンフィグレーションデータ生成処理のフローチャートである。コンフィグレーションデータ生成処理は、予め記憶部１１に記憶されているプログラムに基づいて、主に処理部１４により、ＰＬＤ設計装置１の各要素と協働して実行される。
【００２１】
まず、配置配線情報生成部１４１は、記憶部１１に記憶されたＲＴＬデータ及びタイミング制約データを使用して論理合成してネットリストを生成し、生成したネットリストから配置配線情報を生成する（Ｓ１０１）。
【００２２】
図３は、ＦＰＧＡの内部回路ブロック図である。
【００２３】
ＦＰＧＡ１００は、それぞれがＬＵＴ１０１と、セレクタ１０２と、フリップフロップ１０３とを有し、格子状に配置された複数の論理回路ブロック１０４と、それぞれが論理回路ブロック１０４を接続する複数のスイッチボックス１０５とを有する。ＬＵＴ１０１は、多入力−１出力のテーブルであり、入力数に応じた規模のメモリで形成される。例えば、ＬＵＴ１０１は、５入力−１出力の場合には、３２ビットのメモリにより形成される。ＬＵＴ１０１は、ＲＴＬデータから生成されたコンフィグレーションデータに応じて、所望の組み合わせ回路を実現する。セレクタ１０２は、スイッチボックス１０５を介して入力される他の論理回路ブロック１０４からの信号及びＬＵＴ１０１から出力される信号の何れか一方を、ＲＴＬデータから生成されたコンフィグレーションデータに応じて選択して出力する。フリップフロップ１０３は、セレクタ１０２が選択した信号を、スイッチボックス１０５を介して入力されるクロックに応じてラッチして、ラッチした信号をスイッチボックス１０５を介して他の論理回路ブロック１０４に出力する。なお、コンフィグレーションデータは構成情報の一例である。
【００２４】
配置配線情報生成部１４１は、論理合成したネットリストの組み合わせ回路に対応する論理をＬＵＴ１０１に割り当てると共に、論理合成したネットリストに含まれるフリップフロップをフリップフロップ１０３に割り当てる。
【００２５】
次いで、遅延量解析部１４２は、配置配線情報生成部１４１が生成した配置配線情報と、記憶部１１に記憶される遅延量テーブルとを使用して、クリティカルパスを決定する（Ｓ１０２）。クリティカルパスは、論理回路に含まれる経路の中でワーストネガティブスラック（Worst Negative Slack、ＷＮＳ）とも称される遅延マージンが最も小さい経路である。
【００２６】
図４は、遅延量テーブルの一例を示す図である。
【００２７】
遅延量テーブルは、ＬＵＴ１０１、フリップフロップ１０３、並びにデータ用配線及びクロック用配線の単位長さ当たりの遅延量が所定の範囲の電源電圧毎に規定される。なお、遅延量テーブルでは、セレクタ１０２及びスイッチボックス１０５の遅延量も規定されてもよいが、説明を容易にするために、ここではセレクタ１０２及びスイッチボックス１０５の遅延量の規定は省略する。
【００２８】
遅延量テーブルは、電源電圧の規定値である１．００Ｖを中心に、電源電圧の最小値である０．９０Ｖから電源電圧の最大値である１．１０Ｖまで０．０１Ｖ毎に、製造条件及び温度条件がワーストケースのときの遅延量を規定する。例えば、電源電圧値が１．００Ｖのとき、ＬＵＴ１０１の遅延量は０．３２０ｎｓであり、フリップフロップ１０３の遅延量は０．２８０ｎｓである。また、電源電圧値が１．００Ｖのとき、データ用配線の単位長当たりの遅延量は０．１００ｎｓであり、クロック用配線の単位長当たりの遅延量は０．１９５ｎｓである。
【００２９】
図５（ａ）はクリティカルパスの一例を示す図であり、図５（ｂ）はクリティカルパスを決定するときに使用される遅延量であり、図５（ｃ）はクリティカルパスの遅延マージンを示す図である。である。図５（ｂ）に示すように、遅延量解析部１４２は、クリティカルパスを決定するときに電源電圧の規定値である１．００Ｖのときの遅延量を使用する。
【００３０】
クリティカルパス回路１１０は、フリップフロップ１１１のデータ及びクロックの遅延マージンが、ＦＰＧＡ１００に搭載される論理回路の中で最も小さい回路である。図５（ａ）に示す例では、フリップフロップ１１１のデータは、フリップフロップ１１２、ＬＵＴ１１３及びＬＵＴ１１４を介して入力される。フリップフロップ１１２とＬＵＴ１１３との間の配線長は単位長の８倍であり、ＬＵＴ１１３とＬＵＴ１１４との間の配線長は単位長の６倍であり、ＬＵＴ１１４とフリップフロップ１１１との間の配線長は単位長の７倍である。一方、フリップフロップ１１１のクロックは、単位長の５倍の長さを有する配線を介して入力される。
【００３１】
図５（ｃ）に示すように、クリティカルパス回路１１０では、クロック周期が2.857(ns)の場合の遅延マージン（ＷＮＳ）は、
WNS(ns) = クロック周期  ＋  クロックパスの遅延量  −  データパスの遅延量
= 2.857 ＋  {0.195×5}  −  {0.28+(0.10×8)+0.320+(0.1×6)+0.320＋(0.10×7)}
= 0.812(ns)
【００３２】
で示される。
【００３３】
次いで、電源電圧最適化部１４３は、電源電圧と遅延量との関係を示すテーブルを使用して、クリティカルパスの動作マージンが正であり且つ最小の値になる電源電圧値を、プログラマブルロジックデバイスに印加する最適電圧値に決定する（Ｓ１０３）。
【００３４】
次いで、コンフィグレーションデータ生成部１４４は、配置配線情報生成部１４１が生成した配置配線情報と、電源電圧最適化部１４３が決定した最適電圧値とを含むコンフィグレーションデータを生成する（Ｓ１０４）。
【００３５】
そして、コンフィグレーションデータ出力部１４５は、コンフィグレーションデータ生成部１４４が生成したコンフィグレーションデータを記憶部１１に出力する（Ｓ１０５）。
【００３６】
図６は、電源電圧最適化部１４３が最適電圧値を決定するＳ１０３の処理のより詳細な処理フローを示すフローチャートである。
【００３７】
まず、電源電圧最適化部１４３は、クリティカルパスを決定したときの電源電圧値である規定電圧値１．００Ｖをテーブル検索用電圧値とする（Ｓ２０１）。次いで、電源電圧最適化部１４３は、遅延マージンは０以上であるか否かを判定する（Ｓ２０２）。図５（ａ）に示す例では、遅延マージンは０．８１２ｎｓであり０以上であるので、処理はＳ２０３に進み、電源電圧最適化部１４３は、テーブル検索用電圧値を０．０１Ｖ減算して０．９９Ｖとする（Ｓ２０３）。
【００３８】
次いで、電源電圧最適化部１４３は、遅延量テーブルに規定される電源電圧値が０．９９Ｖのときの遅延量を使用して、遅延マージンを演算する（Ｓ２０４）。図５（ａ）に示すクリティカルパスにおける電源電圧が０．９９Ｖのときの遅延マージンは、０．５７７ｎｓである。
【００３９】
次いで、電源電圧最適化部１４３は、新しいテーブル検索用電圧値である電源電圧値が０．９９Ｖのときの遅延マージンは０以上であるか否かを判定する（Ｓ２０５）。遅延マージンは０．５７７ｎｓであり０以上であるので、処理はＳ２０６に進み、電源電圧最適化部１４３は、現在のテーブル検索用電圧値が遅延量テーブルに規定される最小値はないと判定し（Ｓ２０６）、処理はＳ２０２に戻る。以降、遅延マージンは０より小さいと判定される（Ｓ２０５）か、又は現在のテーブル検索用電圧値が遅延量テーブルに規定される最小値である（Ｓ２０６）と判定されるまで、電源電圧最適化部１４３は、Ｓ２０２〜Ｓ２０６の処理を繰り返す。
【００４０】
電源電圧値が０．９６Ｖのときの遅延マージンは−０．１２８ｎｓであり、Ｓ２０５において、電源電圧最適化部１４３は、遅延マージンは０より小さいと判定し処理はＳ２０７に進む。電源電圧最適化部１４３は、０．９６に０．０１Ｖ加算した０．９７Ｖを最適電圧値に決定する（Ｓ２０７）。
【００４１】
また、Ｓ２０２〜Ｓ２０６の処理を繰り返して、現在のテーブル検索用電圧値が遅延量テーブルに規定される最小値０．９０Ｖであると判定される（Ｓ２０６）と、処理はＳ２０８に進む。この場合、電源電圧最適化部１４３は、現在のテーブル検索用電圧値である０．９０Ｖを最適電圧値に決定する（Ｓ２０８）。
【００４２】
また、Ｓ２０２において、電源電圧最適化部１４３が遅延マージンは０より小さいと判定すると、処理はＳ２０９に進む。Ｓ２０９では、電源電圧最適化部１４３は、現在のテーブル検索用電圧値に０．０１Ｖ加算して新しいテーブル検索用電圧値を演算する（Ｓ２０９）。次いで、電源電圧最適化部１４３は、遅延量テーブルを使用してＳ２０９で演算された新しいテーブル検索用電圧値を使用して、遅延マージンを演算する（Ｓ２１０）。次いで、電源電圧最適化部１４３は、電源電圧最適化部１４３は、新しいテーブル検索用電圧値のときの遅延マージンは０以上であるか否かを判定する（Ｓ２１１）。電源電圧最適化部１４３は、新しいテーブル検索用電圧値のときの遅延マージンが０より小さいと判定すると、処理はＳ２１２に進む。Ｓ２１２において、電源電圧最適化部１４３は、現在のテーブル検索用電圧値が遅延量テーブルに規定される最小値はないと判定されると、処理はＳ２０９に戻る。以降、遅延マージンは０以上であると判定される（Ｓ２１１）か、又は現在のテーブル検索用電圧値が遅延量テーブルに規定される最大値であると判定される（Ｓ２１２）まで、電源電圧最適化部１４３は、Ｓ２０９〜Ｓ２１２の処理を繰り返す。
【００４３】
遅延マージンは０以上であると判定される（Ｓ２１１）か、又は現在のテーブル検索用電圧値が遅延量テーブルに規定される最大値であると判定される（Ｓ２１２）と、処理はＳ２１３に進む。そして、電源電圧最適化部１４３は、現在のテーブル検索用電圧値を最適電圧値に決定する（Ｓ２１３）。
【００４４】
図７は、ＦＰＧＡを搭載する電子装置の回路ブロック図である。
【００４５】
電子装置２０は、ＦＰＧＡ２１と、記憶装置２２と、レギュレータ２３と、制御回路２４とを有する。ＦＰＧＡ２１は、コンフィグレーション回路２１１と、セル領域２１２と、ＲＡＭ２１３とを有する。記憶装置２２は、フラッシュメモリ等の不揮発性メモリであり、ＰＬＤ設計装置１が生成したコンフィグレーションデータを記憶する。レギュレータ２３はＦＰＧＡ２１に電源電圧を供給する電源装置であり、制御回路２４はＣＰＵであり、ＦＰＧＡ２１の起動動作を制御する。
【００４６】
図８は、ＰＬＤ設計装置１が生成したコンフィグレーションデータに基づく電子装置２０の起動動作を示すフローチャートである。
【００４７】
まず、制御回路２４は、規定の電圧値である１．００ＶをＦＰＧＡ２１に供給するようにレギュレータ２３を動作させ（Ｓ３０１）、記憶装置２２に記憶されるコンフィグレーションデータをコンフィグレーション回路２１１に読み込ませる。コンフィグレーション回路２１１は、コンフィグレーションデータを読み込むと、セル領域２１２にユーザ回路を形成する（Ｓ３０２）と共にセル領域２１２に電圧制御回路を形成する（Ｓ３０３）。また、コンフィグレーション回路２１１は、ＲＡＭ２１３に記憶装置２２に記憶される最適電圧値を書き込む（Ｓ３０４）。
【００４８】
次いで、セル領域２１２に形成された電圧制御回路は、最適電圧値をＲＡＭ２１３から読み出し（Ｓ３０５）、レギュレータ２３がＦＰＧＡ２１に出力するレギュレータ出力電圧値として最適電圧値を設定する（Ｓ３０６）。そして、セル領域２１２に形成されたユーザ回路が動作を開始する（Ｓ３０７）。
【００４９】
（第１実施形態に係るプログラマブルロジックデバイス設計装置の作用効果）
第１実施形態に係るプログラマブルロジックデバイス設計装置は、遅延量が電源電圧毎に規定される遅延量テーブルを使用してクリティカルパスの遅延量を最適化することで、電源電圧値を最適化することができる。遅延量テーブルには、ＬＵＴ、フリップフロップ、並びにデータ用配線及びクロック用配線の単位長さ当たりの遅延量が記憶される。
【００５０】
図９（ａ）はクリティカルパスの一例における電源電圧の変化と遅延の変動量との関係を示す図であり、図９（ｂ）は図９（ａ）に示すクリティカルパスの電源電圧の変化と遅延マージンとの関係を示す図である。
【００５１】
第１実施形態に係るプログラマブルロジックデバイス設計装置では、規定電圧値におけるクリティカルパスの遅延マージンが正である場合には、遅延マージンが最小になるようにＦＰＧＡの電源電圧を規定電圧値よりも低くする。第１実施形態に係るプログラマブルロジックデバイス設計装置では、遅延マージンが最小になるようにＦＰＧＡの電源電圧を規定電圧値よりも低くすることにより、ＦＰＧＡを規定電圧値で動作させる場合よりもＦＰＧＡの消費電力を低減できる。
【００５２】
第１実施形態に係るプログラマブルロジックデバイス設計装置では、規定電圧値におけるクリティカルパスの遅延マージンが負である場合には、遅延マージンが正になるようにＦＰＧＡの電源電圧を規定電圧値よりも高くする。第１実施形態に係るプログラマブルロジックデバイス設計装置では、遅延マージンが正になるようにＦＰＧＡの電源電圧を規定電圧値よりも高くすることにより、規定電圧値で遅延条件を充足しないクリティカルパスの遅延条件を充足できる。第１実施形態に係るプログラマブルロジックデバイス設計装置では、規定電圧値で遅延条件を充足しないクリティカルパスの遅延条件をＦＰＧＡの電源電圧を高くすることにより充足させるため、ＦＰＧＡのタイミング制約を緩和させることが可能になる。すなわち、第１実施形態に係るプログラマブルロジックデバイス設計装置では、規定電圧値で遅延条件を充足しないパスの存在を許容するタイミング制約が可能になるため、配置配線時間等のＦＰＧＡの配置配線のためのコストを低減することができる。
【００５３】
（第２実施形態に係るプログラマブルロジックデバイス設計装置の構成及び機能）
図１０は、第２実施形態に係るプログラマブルロジックデバイス設計装置の回路ブロック図である。
【００５４】
ＰＬＤ設計装置２は、処理部１４の代わりに処理部１５を有することがＰＬＤ設計装置１と相違する。処理部１５は、電圧制御回路生成部１５１を有することが処理部１４と相違する。電圧制御回路生成部１５１以外のＰＬＤ設計装置２の構成要素は、同一符号が付されたＰＬＤ設計装置１の構成要素と同一の構成及び機能を有するので、ここでは詳細な説明は省略する。
【００５５】
図１１は、ＰＬＤ設計装置２によるコンフィグレーションデータ生成処理のフローチャートである。コンフィグレーションデータ生成処理は、予め記憶部１１に記憶されているプログラムに基づいて、主に処理部１５により、ＰＬＤ設計装置２の各要素と協働して実行される。
【００５６】
まず、電圧制御回路生成部１５１は、電源電圧を制御する電圧制御回路のＲＴＬデータを生成し、生成した電圧制御回路のＲＴＬデータを記憶部１１に記憶する（Ｓ４０１）。
【００５７】
図１２は、電圧制御回路生成部１５１が生成するＲＴＬデータに対応する電圧制御回路の回路ブロック図である。
【００５８】
電圧制御回路３０は、ＲＡＭインタフェース回路３１と、ヒューズインタフェース回路３２と、動作電圧算出回路３３と、レギュレータ制御コマンド生成回路３４とを有する。ＲＡＭインタフェース回路３１は、ＲＡＭ２１３に記憶される最適電圧値を読み出して、読み出した最適電圧値を動作電圧算出回路３３に出力する。ヒューズインタフェース回路３２は、ヒューズ２１４が示す固有電圧値ＶＩＤを読み出して、読み出した固有電圧値ＶＩＤを動作電圧算出回路３３に出力する。
【００５９】
ヒューズ２１４は、ＦＰＧＡの出荷時テストにより測定された当該ＦＰＧＡの製造ばらつきに応じた最適な電源電圧である固有電圧値ＶＩＤ（Voltage ID）が書き込まれる。ヒューズ２１４が示す固有電圧値ＶＩＤは、製造ばらつきがfast条件〜slow条件の何れの条件であるかに応じて決定された当該ＦＰＧＡの製造条件に対応する電源電圧値であり、当該ＦＰＧＡの出荷時にヒューズ２１４に書き込まれる。
【００６０】
ＲＡＭ２１３に記憶された最適電圧値、ヒューズ２１４が示す固有電圧値ＶＩＤ及び規定電圧値から動作電圧を算出する。動作電圧算出回路３３は、以下の式、
動作電圧値  ＝  固有電圧値ＶＩＤ  −  （規定電圧値  −  最適電圧値）
を使用して規定電圧値から動作電圧を算出する。例えば、固有電圧値が０．９７Ｖであり、規定電圧値が１．００Ｖであり且つ最適電圧値が０．９８Ｖであるとき、動作電圧値は、以下のように算出される。
動作電圧値  ＝  ０．９７  −  （１．００  −  ０．９８）  ＝  ０．９５Ｖ
【００６１】
次いで、遅延量解析部１４２は、記憶部１１に記憶されたＲＴＬデータ及びタイミング制約データを使用して論理合成してネットリストを生成し、生成したネットリストから配置配線情報を生成する（Ｓ４０２）。記憶部１１に記憶されたＲＴＬデータは、ユーザが設計したユーザ回路と、電圧制御回路生成部１５１が生成した電圧制御回路３０とを含む。
【００６２】
次いで、遅延量解析部１４２は、配置配線情報生成部１４１が生成した配置配線情報と、記憶部１１に記憶される遅延量テーブルとを使用して、クリティカルパスを決定する（Ｓ４０３）。ここで、使用される遅延量テーブルは、製造条件がティピカル条件であり且つ温度条件がワーストケースのときの遅延量を規定する。固有電圧値ＶＩＤは当該ＦＰＧＡの製造ばらつきに応じた最適な電源電圧値であるため、遅延量テーブルの遅延量は、製造条件がティピカル条件の遅延量として規定される。
【００６３】
処理Ｓ４０４〜Ｓ４０６のそれぞれは、電圧制御回路生成部１５１が生成した電圧制御回路３０を処理すること以外は、図２に示すＳ１０３〜Ｓ１０５のそれぞれと同様なので、ここでは詳細な説明は省略する。
【００６４】
図１３は、ＰＬＤ設計装置２が生成したコンフィグレーションデータに基づく電子装置の起動動作を示すフローチャートである。
【００６５】
Ｓ５０１〜Ｓ５０４の処理は、電圧制御回路生成部１５１が生成するＲＴＬデータに対応する電圧制御回路３０がセル領域２１２に形成されること以外はＳ３０１〜Ｓ３０４の処理と同様なので、ここでは詳細な説明は省略する。
【００６６】
Ｓ５０１〜Ｓ５０４の処理の後、電圧制御回路３０は、ヒューズ２１４が示す固有電圧値ＶＩＤを読み出す（Ｓ５０５）と共に、ＲＡＭ２１３に記憶される最適電圧値を読み出して（Ｓ５０６）、動作電圧値を算出する（Ｓ５０６）。次いで、電圧制御回路３０は、算出した動作電圧値をレギュレータ出力電圧値として設定する（Ｓ５０８）。そして、セル領域２１２に形成されたユーザ回路が動作を開始する（Ｓ５０９）。
【００６７】
図１４は、ＰＬＤ設計装置２が生成したコンフィグレーションデータに基づく起動動作がされた電子装置の回路ブロック図である。
【００６８】
電子装置４０は、ＦＰＧＡ２１の代わりＦＰＧＡ４１を有することが電子装置２０と相違する。ＦＰＧＡ４１は、ヒューズ２１４を有することがＦＰＧＡ２１と相違する。ヒューズ２１４及びセル領域２１２に形成される電圧制御回路３０以外の電子装置４０の構成要素は、同一符号が付された電子装置２０の構成要素と同一の構成及び機能を有するので、ここでは詳しい説明は省略する。
【００６９】
図１２を参照して説明したように、ヒューズ２１４は、ＦＰＧＡの出荷時テストにより測定された当該ＦＰＧＡの製造ばらつきに応じた最適な電源電圧値である固有電圧値ＶＩＤが書き込まれたヒューズである。また、電圧制御回路３０は、電圧制御回路生成部１５１により生成される。
【００７０】
（第２実施形態に係るプログラマブルロジックデバイス設計装置の作用効果）
第２実施形態に係るプログラマブルロジックデバイス設計装置は、ＦＰＧＡの製造ばらつきに応じた最適な電源電圧である固有電圧値を使用するので、ばらつきをより正確に反映させて最適電圧値を決定することができる。
【００７１】
（第３実施形態に係るプログラマブルロジックデバイス設計装置の構成及び機能）
図１５は、第３実施形態に係るプログラマブルロジックデバイス設計装置の回路ブロック図である。
【００７２】
ＰＬＤ設計装置３は、処理部１４の代わりに処理部１６を有することがＰＬＤ設計装置１と相違する。処理部１６は、テスト回路生成部１６１を有することが処理部１４と相違する。テスト回路生成部１６１以外のＰＬＤ設計装置２の構成要素は、同一符号が付されたＰＬＤ設計装置１の構成要素と同一の構成及び機能を有するので、ここでは詳細な説明は省略する。
【００７３】
図１６は、ＰＬＤ設計装置３によるコンフィグレーションデータ生成処理のフローチャートである。コンフィグレーションデータ生成処理は、予め記憶部１１に記憶されているプログラムに基づいて、主に処理部１６により、ＰＬＤ設計装置３の各要素と協働して実行される。
【００７４】
まず、テスト回路生成部１６１は、ＦＰＧＡ内の製造ばらつきをチェックするテスト回路のＲＴＬデータを生成し、生成したテスト回路生成部１６１のＲＴＬデータを記憶部１１に記憶する（Ｓ６０１）。
【００７５】
図１７は、テスト回路生成部１６１が生成するＲＴＬデータに対応するテスト回路の回路ブロック図である。
【００７６】
テスト回路５０は、データジェネレータ５１と、ＲＡＭ５２と、データチェッカ５３とを有する。データジェネレータ５１及びデータチェッカ５３はＬＵＴ及びフリップフロップで形成される。データジェネレータ５１は、テストパターンを生成し、生成したテストパターンをＲＡＭ５２に書き込むように形成される。データチェッカ５３は、ＲＡＭ５３からデータジェネレータ５１が生成したテストパターンを読み出して、読み出したテストパターンに所定の処理を実行して照合結果を出力する。
【００７７】
次いで、遅延量解析部１４２は、記憶部１１に記憶されたＲＴＬデータ及びタイミング制約データを使用して論理合成してネットリストを生成し、生成したネットリストから配置配線情報を生成する（Ｓ４０２）。記憶部１１に記憶されたＲＴＬデータは、ユーザが設計したユーザ回路と、電圧制御回路と、テスト回路生成部１６１が生成したテスト回路とを含む。ＲＴＬデータには、複数のテスト回路５０が含まれる。
【００７８】
遅延量解析部１４２は、複数のテスト回路５０をセル領域２１２の全体に亘って配置されるように配置配線する。また、遅延量解析部１４２は、複数のテスト回路５０の何れも遅延マージンが０になるように配置配線する。
【００７９】
処理Ｓ６０３〜Ｓ６０６のそれぞれは、電圧制御回路生成部１５１が生成した電圧制御回路３０を処理すること以外は、図２に示すＳ１０２〜Ｓ１０５のそれぞれと同様なので、ここでは詳細な説明は省略する。
【００８０】
図１８は、ＰＬＤ設計装置３が生成したコンフィグレーションデータに基づく起動動作がされた電子装置の回路ブロック図である。
【００８１】
電子装置６０は、セル領域２１２に複数のテスト回路５０が配置されることが電子装置２０と相違する。テスト回路５０以外の電子装置６０の構成要素は、同一符号が付された電子装置２０の構成要素と同一の構成及び機能を有するので、ここでは詳しい説明は省略する。
【００８２】
（第３実施形態に係るプログラマブルロジックデバイス設計装置の作用効果）
電子装置６０は、セル領域２１２の全体に亘って複数のテスト回路５０が配置される。電子装置６０では、テスト回路５０の何れも遅延マージンが０になるように配置配線されるので、テスト回路５０が、設計時に設定した動作周波数で正しく動作し、タイミングエラーが発生しないことを検証することができる。テスト回路５０では、セル領域２１２の全体に亘って配置されたテスト回路５０が設計時に設定した動作周波数で正しく動作することを検証できるので、セル領域２１２内の製造ばらつきを保証することができる。
【００８３】
クリティカルパスの遅延マージンが正の値であるときに、ＰＬＤ設計装置１〜３は、電源電圧値を低くして遅延量テーブルを使用して演算されるクリティカルパスの遅延マージンを小さくする。一方、クリティカルパスの遅延マージンが負の値であるときに、ＰＬＤ設計装置１〜３は、電源電圧値を高くして遅延量テーブルを使用して演算されるクリティカルパスの遅延マージンを正にする。しかしながら、実施形態に係るＰＬＤ設計装置は、遅延量テーブルを使用して演算されるクリティカルパスの遅延マージンを所望の値にするように、電源電圧値を調整してもよい。例えば、実施形態に係るＰＬＤ設計装置は、クリティカルパスの遅延マージンが所定の値になるように、電源電圧値を調整してもよい。
【符号の説明】
【００８４】
１〜３    ＰＬＤ設計装置（プログラマブルロジックデバイス設計装置）
１１    記憶部
１２    入力部
１４    処理部
１４１    配置配線情報生成部
１４２    遅延量解析部
１４３    電源電圧最適化部
１４４    コンフィグレーションデータ生成部（構成情報生成部）
１４５    コンフィグレーションデータ出力部（構成情報出力部）
１５１    電圧制御回路生成部
１６１    テスト回路生成部
【図１】
2017027413.tif 000003
【図２】
2017027413.tif 000004
【図３】
2017027413.tif 000005
【図４】
2017027413.tif 000006
【図５】
2017027413.tif 000007
【図６】
2017027413.tif 000008
【図７】
2017027413.tif 000009
【図８】
2017027413.tif 000010
【図９】
2017027413.tif 000011
【図１０】
2017027413.tif 000012
【図１１】
2017027413.tif 000013
【図１２】
2017027413.tif 000014
【図１３】
2017027413.tif 000015
【図１４】
2017027413.tif 000016
【図１５】
2017027413.tif 000017
【図１６】
2017027413.tif 000018
【図１７】
2017027413.tif 000019
【図１８】
2017027413.tif 000020