(57)【要約】【課題】発生するグリッチの数を低減可能なＰＬＤ設計プログラムを提供する。【解決手段】ＰＬＤ設計プログラムは、組み合わせ回路２００の論理式と組み合わせ回路２００で発生するグリッチの数が最小になる組み合わせ回路２００に入力される入力信号の入力順との関係を示す入力ポート変更テーブルを使用する。ＰＬＤ設計プログラムでは、ＰＬＤの配置配線情報から組み合わせ回路２００の論理式を取得する。次いで、配置配線情報から組み合わせ回路２００の入力ポートに接続された配線遅延量を取得する。次いで、入力ポート変更テーブルに記憶された組み合わせ回路２００の論理式に対応する入力順と一致するように、組み合わせ回路２００の少なくとも２つの入力ポートに接続された配線の接続先の入力ポートを入れ替える。そして、組み合わせ回路２００の論理式を、配線の接続先の入力ポートの入れ替えに応じて変更する。【選択図】図７
2017126194.tif 000002
【特許請求の範囲】
【請求項１】
プログラマブルロジックデバイスの配置配線情報から組み合わせ回路の論理式を取得し、
前記配置配線情報から前記組み合わせ回路の入力ポートに接続された配線遅延量を取得し、
前記組み合わせ回路の入力信号の入力順が、前記組み合わせ回路の論理式と前記組み合わせ回路で発生するグリッチの数が最小になる前記組み合わせ回路に入力される入力信号の入力順との関係を示す入力ポート変更テーブルに記憶された前記組み合わせ回路の論理式に対応する入力順と一致するように、前記組み合わせ回路のセル遅延量及び前記配線遅延量に基づいて、前記組み合わせ回路の少なくとも２つの入力ポートに接続された配線の接続先の入力ポートを入れ替え、
前記組み合わせ回路の論理式を、前記配線の接続先の入力ポートの入れ替えに応じて変更する、
ことを含む処理をコンピュータに実行させるプログラマブルロジックデバイスの設計プログラム。
【請求項２】
前記配線遅延量と、前記組み合わせ回路のセル遅延量とから、前記配線を入れ替えたときに、前記組み合わせ回路に入力される入力信号の入力順が前記入力ポート変更テーブルに記憶される入力順と一致するか否かを判定することを更に含み、
前記配線の接続先の入力ポートの入れ替えは、前記組み合わせ回路に入力される入力信号の入力順が前記入力ポート変更テーブルに記憶される入力順と一致すると判定されたときに、実行される、請求項１に記載の設計プログラム。
【請求項３】
前記組み合わせ回路に入力される入力信号の入力順が前記入力ポート変更テーブルに記憶される入力順と一致しないと判定されたときに、前記組み合わせ回路は、入力信号が入力されない不使用入力ポートがあるか否かを判定し、
前記不使用入力ポートがあると判定されたときに、前記配線の何れかを前記不使用入力ポートに接続したときに前記組み合わせ回路に入力される入力信号の入力順が前記入力ポート変更テーブルに記憶される入力順と一致するか否かを判定し、
前記組み合わせ回路に入力される入力信号の入力順が前記入力ポート変更テーブルに記憶される入力順と一致すると判定されるときに、前記組み合わせ回路の入力される入力信号の入力順が前記入力ポート変更テーブルに記憶された前記組み合わせ回路の論理式に対応する入力順と一致するように、前記不使用入力ポートに前記配線の何れかを接続し、
前記組み合わせ回路の論理式を、前記不使用入力ポートへの前記配線の接続に応じて変更する、
ことを更に含む、請求項２に記載の設計プログラム。
【請求項４】
前記組み合わせ回路に入力される入力信号の入力順が前記入力ポート変更テーブルに記憶される入力順と一致しないと判定されたときに、前記配線遅延量と、前記組み合わせ回路のセル遅延量とから、前記配線を入れ替えたときに、前記組み合わせ回路から発生するグリッチの幅が所定のしきい値以下になるか否かを判定し、
前記組み合わせ回路で発生するグリッチの幅が所定のしきい値以下になると判定されたときに、前記組み合わせ回路で発生するグリッチの幅が所定のしきい値以下になるように、前記入力ポートに接続された配線の接続先の入力ポートを入れ替え、
前記組み合わせ回路の論理式を、前記配線の接続先の入力ポートの入れ替えに応じて変更する、
ことを更に含む請求項２に記載の設計プログラム。
【請求項５】
プログラマブルロジックデバイスの配置配線情報から組み合わせ回路の論理式を取得し、
前記配置配線情報から前記組み合わせ回路の入力ポートに接続された配線遅延量を取得し、
前記組み合わせ回路の入力信号の入力順が、前記組み合わせ回路の論理式と前記組み合わせ回路で発生するグリッチの数が最小になる前記組み合わせ回路に入力される入力信号の入力順との関係を示す入力ポート変更テーブルに記憶された前記組み合わせ回路の論理式に対応する入力順と一致するように、前記組み合わせ回路のセル遅延量及び前記配線遅延量に基づいて、前記組み合わせ回路の少なくとも２つの入力ポートに接続された配線の接続先の入力ポートを入れ替え、
前記組み合わせ回路の論理式を、前記配線の接続先の入力ポートの入れ替えに応じて変更する、
ことを含むプログラマブルロジックデバイスの設計方法。
【請求項６】
プログラマブルロジックデバイスの配置配線情報と、組み合わせ回路の論理式と前記組み合わせ回路で発生するグリッチの数が最小になる前記組み合わせ回路に入力される入力信号の入力順との関係を示す入力ポート変更テーブルとが記憶される記憶部と、
前記配置配線情報から組み合わせ回路の論理式を取得する論理式取得部と、
前記配置配線情報から前記組み合わせ回路の入力ポートに接続された配線遅延量を取得する配線遅延量取得部と、
前記組み合わせ回路の入力信号の入力順が前記入力ポート変更テーブルに記憶された前記組み合わせ回路の論理式に対応する入力順と一致するように、前記組み合わせ回路のセル遅延量及び前記配線遅延量に基づいて、前記組み合わせ回路の少なくとも２つの入力ポートに接続された配線の接続先の入力ポートを入れ替える第１配線入替部と、
前記組み合わせ回路の論理式を、前記配線の接続先の入力ポートの入れ替えに応じて変更する第１論理変更部と、
を有するプログラマブルロジックデバイス設計装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブルロジックデバイスの設計プログラム、プログラマブルロジックデバイス設計装置、及びその方法に関する。
【背景技術】
【０００２】
半導体装置において、ハザード、スパイク又はグリッチとも称される微小なバルス幅を有するパルスの発生を防止するための技術が知られる。例えば、３つ以上の入力ポートを有し且つ入力信号のうち１つをクロック信号である入力論理ゲートを備えるデコード回路が知られる（例えば、特許文献１を参照）。また、入力信号のパルスの内、所定のパルス幅以下の微小パルスを除去するセルを用いて、回路内部で発生する内部ノードの無駄なトグルの回数を削減することが知られる（例えば、特許文献２を参照）。さらに、入力データとクロック信号をフリップフロップ及びタイミング生成回路に入力した論理回路が知られる（例えば、特許文献３を参照）。この論理回路では、論理回路の組み合わせ回路との間に、グリッチを除去するグリッチ除去回路と、タイミング生成回路６の出力が入力され、グリッチ除去回路で除去されないグリッチを除去するラッチ回路とを有する。そして、グリッチが発生するスパイクパルス発生源ブロックを遅延セルが挿入された適切な等価ブロックに置換することによりスパイクを低減することが知られる（例えば、特許文献４を参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−４３９０１号公報
【特許文献２】特開平１０−２３３６６３号公報
【特許文献３】特開２０１５−９５７８６号公報
【特許文献４】特開２００２−１５７２９３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ＦＰＧＡ（Field Programmable Gate Array）とも称され、搭載される回路構成の変更に応じて再構成が可能な論理回路であるプログラマブルロジックデバイスが知られている。ＦＰＧＡは、多数の基本論理セル回路と、基本論理セル回路の間の結線する結線スイッチ回路とを有し、基本論理セル回路のそれぞれが所望の動作を実施するようにコンフィグレーションされ、結線スイッチ回路を介して接続される。ＦＰＧＡにおいて、組み合わせ回路は、ルックアップテーブル（Lookup Table、ＬＵＴ）により実現される。
【０００５】
しかしながら、ＦＰＧＡのＬＵＴの入力ポートから出力ポートまでの遅延量は、入力ポート毎に固定された値であるため、グリッチを削減するために遅延素子を挿入することは容易ではない。また、特定の配線の接続関係を変更することが容易ではない場合、グリッチの発生源の特定するために配置配線処理及びテストパターンを使用した論理検証処理が実行されるため、設計期間が増大するおそれがある。
【０００６】
一実施形態では、設計期間が増大することなく、発生するグリッチの数を低減可能なプログラマブルロジックデバイスの設計プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
１つの態様では、プログラマブルロジックデバイスの設計プログラムは、組み合わせ回路の論理式と組み合わせ回路で発生するグリッチの数が最小になる組み合わせ回路に入力される入力信号の入力順との関係を示す入力ポート変更テーブルを使用する。プログラマブルロジックデバイスの設計プログラムでは、プログラマブルロジックデバイスの配置配線情報から組み合わせ回路の論理式を取得する。次いで、配置配線情報から組み合わせ回路の入力ポートに接続された配線遅延量を取得する。次いで、入力ポート変更テーブルに記憶された組み合わせ回路の論理式に対応する入力順と一致するように、組み合わせ回路の少なくとも２つの入力ポートに接続された配線の接続先の入力ポートを入れ替える。この処理は、組み合わせ回路のセル遅延量及び配線遅延量に基づく。そして、組み合わせ回路の論理式を、配線の接続先の入力ポートの入れ替えに応じて変更する。
【発明の効果】
【０００８】
一実施形態では、設計期間が増大することなく、発生するグリッチの数を低減可能なプログラマブルロジックデバイスの設計プログラムを提供することができる。
【図面の簡単な説明】
【０００９】
【図１】ＦＰＧＡの部分回路ブロック図である。
【図２】（ａ）は図１に示すＬＵＴを示す図であり、（ｂ）は（ａ）に示すＬＵＴの入出信号のタイミングチャートの一例を示す図である。
【図３】グリッチが発生したシミュレーション結果の一例を示す図である。
【図４】第１実施形態に係るプログラマブルロジックデバイス設計装置のブロック図である。
【図５】図４に示すプログラマブルロジックデバイス設計装置によるコンフィグレーションデータ生成処理のフローチャートである。
【図６】図５に示すＳ１０３の処理のより詳細な処理フローを示すフローチャートである。
【図７】（ａ）は第１ＬＵＴの一例を示す図であり、（ｂ）は第１ＬＵＴの他の例を示す図である。
【図８】入力ポート変更テーブルを示す図である。
【図９】論理式（Ｘ＝Ａｏｒ（ＢａｎｄＣ））において発生するグリッチの数が最小になる入力信号の入力順を決定する処理で使用されるテーブル（その１）である。
【図１０】論理式（Ｘ＝Ａｏｒ（ＢａｎｄＣ））において発生するグリッチの数が最小になる入力信号の入力順を決定する処理で使用されるテーブル（その２）である。
【図１１】第２実施形態に係るプログラマブルロジックデバイス設計装置のブロック図である。
【図１２】図１１に示すプログラマブルロジックデバイス設計装置によるコンフィグレーションデータ生成処理のフローチャートである。
【図１３】図１２に示すＳ３０４の処理のより詳細な処理フローを示すフローチャートである。
【図１４】（ａ）は第１入力ポートａ〜第３入力ポートｃに入力信号が入力され、第４入力ポートＤが不使用入力ポートであるＬＵＴを示す図であり、（ｂ）は（ａ）に示すＬＵＴにおいてＳ図１３に示す４０５の処理を実行する状態を示す図である。
【図１５】第３実施形態に係るプログラマブルロジックデバイス設計装置のブロック図である。
【図１６】図１５に示すプログラマブルロジックデバイス設計装置によるコンフィグレーションデータ生成処理のフローチャートである。
【図１７】図１６に示すＳ５０５の処理のより詳細な処理フローを示すフローチャートである。
【図１８】（ａ）はＬＵＴの一例を示す図であり、（ｂ）はＬＵＴの他の例を示す図である。
【図１９】図１８（ｂ）に示すＬＵＴの入出信号のタイミングチャートの一例を示す図である。
【図２０】図４に示すプログラマブルロジックデバイス設計装置によるコンフィグレーションデータ生成処理が実行されないコンフィグレーションデータの状態を示す図である。
【図２１】図４に示すプログラマブルロジックデバイス設計装置によるコンフィグレーションデータ生成処理が実行されたコンフィグレーションデータの状態を示す図である。
【発明を実施するための形態】
【００１０】
以下図面を参照して、本発明に係るプログラマブルロジックデバイスの設計プログラム、プログラマブルロジックデバイス設計装置、及びその方法について説明する。但し、本発明の技術的範囲はそれらの実施の形態に限定されない。
【００１１】
（実施形態に係るプログラマブルロジックデバイスの設計プログラムの概要）
実施形態に係る設計プログラムは、組み合わせ回路の論理式と組み合わせ回路で発生するグリッチの数が最小になる組み合わせ回路に入力される入力信号の入力順との関係を示す入力ポート変更テーブルを使用する。実施形態に係る設計プログラムでは、入力ポート変更テーブルに記憶された組み合わせ回路の論理式に対応する入力順と一致するように、組み合わせ回路の少なくとも２つの入力ポートに接続された配線の接続先の入力ポート及び論理式を入れ替える。実施形態に係る設計プログラムでは、入力ポート変更テーブルに記憶された組み合わせ回路の論理式に対応する入力順と一致するよう、配線の接続先の入力ポート及び論理式を入れ替えることで、発生するグリッチの数を論理的に最小化する。
【００１２】
（ＦＰＧＡにおけるグリッチの発生メカニズムについて）
図１は、ＦＰＧＡの部分回路ブロック図である。
【００１３】
ＦＰＧＡ１００は、第１フリップフロップ１０１〜第７フリップフロップ１０７と、第１ＬＵＴ１１１〜第３ＬＵＴ１１３とを有する。第１ＬＵＴ１１１の第１入力ポートａは、第１フリップフロップ１０１から第１配線１２１を介して入力信号が入力される。第１ＬＵＴ１１１の第２入力ポートｂは、第２フリップフロップ１０２から第２配線１２２及び不図示の複数のＬＵＴを介して入力信号が入力される。第１ＬＵＴ１１１の第３入力ポートｃは、第３フリップフロップ１０３から第３配線１２３及び不図示の複数のＬＵＴを介して入力信号が入力される。第２ＬＵＴ１１２の第１入力ポートａは、第４フリップフロップ１０４から第４配線１２４及び不図示の複数のＬＵＴを介して入力信号が入力される。第２ＬＵＴ１１２の第２入力ポートｂは、第１ＬＵＴ１１１の出力ポートｘから第５配線１２５を介して入力信号が入力される。第２ＬＵＴ１１３の第３入力ポートｃは、第５フリップフロップ１０５から第６配線１２６及び不図示の複数のＬＵＴを介して入力信号が入力される。第３ＬＵＴ１１３の第１入力ポートａは第６フリップフロップ１０６から第７配線１２７を介して入力信号が入力され、第３ＬＵＴ１１３の第２入力ポートｂは第２ＬＵＴ１０２の出力ポートｘから第８配線１２８を介して入力信号が入力される。第３ＬＵＴ１１３の出力ポートｘは、第９配線１２９を介して第７フリップフロップ１０７に出力信号を出力する。
【００１４】
ＦＰＧＡ１００は、前段のフリップフロップに入力データ信号が入力されてから次段のフリップフロップに入力データ信号が入力されるまでの遅延量がクロック周波数で規定される所定の上限遅延量よりも小さくなるように、設計される。すなわち、ＦＰＧＡ１００は、第１フリップフロップ１０１〜第６フリップフロップ１０６に入力データ信号が入力されてから第７フリップフロップ１０７に入力データ信号が入力されるまでの遅延量が所定の上限遅延量よりも小さくなるように設計される。例えば、クロック信号の周波数が２００ＭＨｚである場合、上限遅延量は５ｎｓになる。したがって、ＦＰＧＡ１００は、第１フリップフロップ１０１〜第６フリップフロップ１０６に入力データ信号が入力されてから第７フリップフロップ１０７に入力データ信号が入力されるまでの遅延量が５ｎｓ未満になるように設計される。
【００１５】
しかしながら、第１ＬＵＴ１１１〜第３ＬＵＴ１１３に入力される入力信号の間の遅延量の差は、考慮されない。
【００１６】
図２（ａ）は第１ＬＵＴ１１１を示す図であり、図２（ｂ）は第１ＬＵＴ１１１の入出信号のタイミングチャートの一例を示す図である。ここで、第１ＬＵＴ１１１の論理式は、Ｘ＝Ａｏｒ（ＢａｎｄＣ）である。Ａは第１入力ポートａに入力される第１入力信号であり、Ｂは第２入力ポートｂに入力される第２入力信号であり、Ｃは第３入力ポートｃに入力される第１入力信号である。第１ＬＵＴ１１１は、第２入力ポートｂに入力される第２入力信号、第３入力ポートｃに入力される第３入力信号、そして第１入力ポートａに入力される第１入力信号の順で入力される。第１入力信号Ａ及び第２入力信号ＢはＬレベルからＨレベルに遷移し、第３入力信号ＣはＨレベルからＬレベルに遷移する。
【００１７】
第１ＬＵＴ１１１は、第２入力信号ＢがＬレベルからＨレベルに遷移してから第３入力信号ＣがＨレベルからＬレベルに遷移するまでの間、出力信号ＸはＨレベルに遷移して微小なバルス幅を有するグリッチが発生する。第１ＬＵＴ１１１の出力信号Ｘで発生したグリッチは、第２ＬＵＴ１１２及び第３ＬＵＴ１１３及び第７フリップフロップ１０７に順次伝搬する。
【００１８】
図３は、グリッチが発生したシミュレーション結果の一例を示す図である。図３においてグリッチは丸印で囲まれる。
【００１９】
グリッチが発生すると、ＬＵＴの出力信号の単位時間当たりが遷移する回数、すなわちＬＵＴの出力信号の周波数Ｆが高くなる。ＬＵＴの出力信号の周波数Ｆが高くなると、動的消費電流Ｐ（＝（１／２）×Ｆ×Ｃp×Ｖ2、Ｃp：平均負荷容量、Ｖ：電源電圧）は、増加する。図２に示す例では、グリッチが発生しない場合、第１ＬＵＴ１１１の出力信号Ｘは単位時間当たりＬレベルからＨレベルに遷移する。しかしながら、グリッチが１つ発生する場合、第１ＬＵＴ１１１の出力信号Ｘは単位時間当たりＬレベルからＨレベルに遷移し、ＨレベルからＬレベルに遷移し、ＬレベルからＨレベルに遷移するので、第１ＬＵＴ１１１の動的消費電流Ｐは３倍になる。
【００２０】
図３に示す例では、グリッチの発生を防止すると、ＦＰＧＡの消費電力は１２．２４Ｗから５．９％減少して１１．５２Ｗになる。組み合わせ回路(ＬＵＴ)で発生するグリッチによる動的消費電力の増加を抑制することにより、ＦＰＧＡの動的消費電力は低減される。
【００２１】
（第１実施形態に係るプログラマブルロジックデバイス設計装置の構成及び機能）
図４は、第１実施形態に係るプログラマブルロジックデバイス設計装置（以下、ＰＬＤ設計装置とも称する）のブロック図である。
【００２２】
ＰＬＤ設計装置１は、記憶部１１と、入力部１２と、出力部１３と、処理部２０とを備える。ＰＬＤ設計装置１は、ＲＴＬデータ及びタイミング制約データを使用して、ＦＰＧＡの配置配線情報を含むコンフィグレーションデータを生成する。ＰＬＤ設計装置１は、ＬＵＴで発生するグリッチの数が最小になるように、ＬＵＴの少なくとも２つの入力ポートに接続された配線の接続先の入力ポートを入れ替えるために、配置配線情報を変更する。
【００２３】
記憶部１１は、例えば、磁気テープ装置、磁気ディスク装置、又は光ディスク装置のうちの少なくとも一つを備える。記憶部１１は、処理部２０での処理に用いられるオペレーティングシステムプログラム、ドライバプログラム、アプリケーションプログラム、データ等を記憶する。例えば、記憶部１１は、アプリケーションプログラムとして、ＦＰＧＡのコンフィグレーションデータを生成する処理を、処理部２０に実行させるためのコンフィグレーションデータ生成プログラム等を記憶する。コンフィグレーションデータ生成プログラムは、例えばＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ等のコンピュータ読み取り可能な可搬型記録媒体から、公知のセットアッププログラム等を用いて記憶部１１にインストールされてもよい。
【００２４】
また、記憶部１１は、コンフィグレーションデータ生成処理で使用されるＲＴＬデータ、タイミング制約データを記憶する。ＲＴＬデータは、ＦＰＧＡに搭載される論理回路の論理を示すデータである。タイミング制約データは、一例ではＳＤＣ（Synopsys Design Constraints）ファイルであり、ＦＰＧＡに搭載される論理回路のタイミング制約を規定する。また、記憶部１１は、ＬＵＴの論理式とＬＵＴで発生するグリッチの数が最小になるＬＵＴに入力される入力信号の入力順との関係を示す入力ポート変更テーブルを記憶する。さらに、記憶部１１は、所定の処理に係る一時的なデータを一時的に記憶してもよい。
【００２５】
入力部１２は、データの入力が可能であればどのようなデバイスでもよく、例えば、タッチパネル、キーボタン等である。操作者は、入力部１２を用いて、文字、数字、記号等を入力することができる。入力部１２は、操作者により操作されると、その操作に対応する信号を生成する。そして、生成された信号は、操作者の指示として、処理部２０に供給される。
【００２６】
出力部１３は、映像や画像等の表示が可能であればどのようなデバイスでもよく、例えば、液晶ディスプレイ又は有機ＥＬ（Electro−Luminescence）ディスプレイ等である。出力部１３は、処理部２０から供給された映像データに応じた映像や、画像データに応じた画像等を表示する。また、出力部１３は、紙などの表示媒体に、映像、画像又は文字等を印刷する出力装置であってもよい。
【００２７】
処理部２０は、一又は複数個のプロセッサ及びその周辺回路を有する。処理部２０は、ＰＬＤ設計装置１の全体的な動作を統括的に制御するものであり、例えば、ＣＰＵである。処理部２０は、記憶部１１に記憶されているプログラム（ドライバプログラム、オペレーティングシステムプログラム、アプリケーションプログラム等）に基づいて処理を実行する。また、処理部２０は、複数のプログラム（アプリケーションプログラム等）を並列に実行できる。
【００２８】
処理部２０は、配置配線情報生成部２１と、遅延量解析部２２と、配線切替部２３と、コンフィグレーションデータ生成部２４と、コンフィグレーションデータ出力部２５とを有する。配線切替部２３は、論理式取得部３１と、セル遅延量取得部３２と、配線遅延量取得部３３と、第１変更判定部３４と、第１配線切替部３５と、第１論理式変更部３６とを有する。これらの各部は、処理部２０が備えるプロセッサで実行されるプログラムにより実現される機能モジュールである。あるいは、これらの各部は、ファームウェアとしてＰＬＤ設計装置に実装されてもよい。
【００２９】
（第１実施形態に係るプログラマブルロジックデバイス設計装置の動作）
図５は、ＰＬＤ設計装置１によるコンフィグレーションデータ生成処理のフローチャートである。コンフィグレーションデータ生成処理は、予め記憶部１１に記憶されているプログラムに基づいて、主に処理部２０により、ＰＬＤ設計装置１の各要素と協働して実行される。
【００３０】
まず、配置配線情報生成部２１は、記憶部１１に記憶されたＲＴＬデータ及びタイミング制約データを使用して論理合成してネットリストを生成し、生成したネットリストから配置配線情報を生成して、記憶部１１に記憶する（Ｓ１０１）。次いで、遅延量解析部２２は、配置配線情報生成部２１が生成した配置配線情報と、タイミング制約データとを使用して、配置配線情報のタイミング解析を実行する（Ｓ１０２）。次いで、配線切替部２３は、ＬＵＴで発生するグリッチの数が最小になるように、ＬＵＴの少なくとも２つの入力ポートに接続された配線の接続先の入力ポート及び論理式を入れ替えるように、配置配線情報を変更する（Ｓ１０３）。次いで、コンフィグレーションデータ生成部２４は、配置配線情報生成部２１が生成した配置配線情報を含むコンフィグレーションデータを生成する（Ｓ１０４）。そして、コンフィグレーションデータ出力部２５は、コンフィグレーションデータ生成部２４が生成したコンフィグレーションデータを記憶部１１に出力する（Ｓ１０５）。
【００３１】
図６は、Ｓ１０３の処理のより詳細な処理フローを示すフローチャートである。
【００３２】
まず、論理式取得部３１は、記憶部１１に記憶される配置配線情報から第１ＬＵＴの論理式を取得する（Ｓ２０１）。次いで、セル遅延量取得部３２は、記憶部１１に記憶される配置配線情報から第１ＬＵＴのセル遅延量を取得する（Ｓ２０２）。第１ＬＵＴのセル遅延量は、複数の入力ポートのそれぞれから出力ポートまでの遅延量を含む。次いで、配線遅延量取得部３３は、記憶部１１に記憶される配置配線情報から第１ＬＵＴの入力ポートに接続された配線のそれぞれの配線遅延量を取得する（Ｓ２０３）。次いで、第１変更判定部３４は、配線遅延量と、第１ＬＵＴのセル遅延量とから、配線を入れ替えたときに、第１ＬＵＴに入力される入力信号の入力順が入力ポート変更テーブルに記憶される入力順と一致するか否かを判定する（Ｓ２０４）。配線を入れ替えたときに第１ＬＵＴの入力信号の入力順が入力ポート変更テーブルに記憶される入力順と一致すると判定される（Ｓ２０４）と、処理はＳ２０５に進む。次いで、第１配線切替部３５は、第１ＬＵＴの入力信号の入力順が入力ポート変更テーブルに記憶された第１ＬＵＴの論理式に対応する入力順と一致するように、第１ＬＵＴの入力ポートに接続された配線の接続先の入力ポートを入れ替える（Ｓ２０５）。第１配線切替部３５は、第１ＬＵＴの入力ポートに接続された配線の接続先の入力ポートを入れ替えるように、記憶部１１に記憶された配置配線情報を変更する（Ｓ２０６）。次いで、第１論理式変更部３６は、第１ＬＵＴの論理式を、配線の接続先の入力ポートの入れ替えに応じて変更するように、配置配線情報を変更し、処理はＳ２０７に進む。一方、第１ＬＵＴに入力される入力信号の入力順が入力ポート変更テーブルに記憶される入力順と一致しないと判定される（Ｓ２０４）と、処理はＳ２０７に進む。
【００３３】
図７（ａ）は第１ＬＵＴの一例を示す図であり、図７（ｂ）は第１ＬＵＴの他の例を示す図である。
【００３４】
図７（ａ）に示す第１ＬＵＴ２００は、第１入力ポートａと、第２入力ポートｂと、第３入力ポートｃと、出力ポートｘとを有し、論理式（Ｘ＝Ａｏｒ（ＢａｎｄＣ））を演算する組み合わせ回路である。ここで、Ａは第１入力ポートａに入力される第１入力信号であり、Ｂは第２入力ポートｂに入力される第２入力信号であり、Ｃは第３入力ポートｃに入力される第３入力信号である。Ｘは、出力ポートｘから出力される出力信号である。第１入力ポートａは第１配線２１１を介して第１出力セル２２１から第１入力信号が入力され、第２入力ポートｂは第２配線２１２を介して第２出力セル２２２から第２入力信号が入力される。第３入力ポートｃは、第３配線２１３を介して第３出力セル２２３から第３入力信号が入力される。
【００３５】
まず、論理式取得部３１は、記憶部１１に記憶される配置配線情報から第１ＬＵＴ２００の論理式を取得する（Ｓ２０１）。第１ＬＵＴ２００の論理式は、Ｘ＝Ａｏｒ（ＢａｎｄＣ）である。次いで、セル遅延量取得部３２は、記憶部１１に記憶される配置配線情報から第１ＬＵＴ２００のセル遅延量を取得する（Ｓ２０２）。第１ＬＵＴ２００の第１入力ポートａから出力端子への第１セル遅延量は１００ｐｓであり、第１ＬＵＴ２００の第２入力ポートｂから出力端子への第２セル遅延量は１５０ｐｓである。第１ＬＵＴ２００の第３入力ポートｃから出力端子への第３セル遅延量は、２００ｐｓである。次いで、配線遅延量取得部３３は、記憶部１１に記憶される配置配線情報から第１ＬＵＴ２００の入力ポートに接続された配線のそれぞれの配線遅延量を取得する（Ｓ２０３）。第１配線２１１の第１配線遅延量は８１０ｐｓであり、第２配線２１２の第２配線遅延量は８００ｐｓであり、第３配線２１３の第３配線遅延量は１５００ｐｓである。
【００３６】
次いで、第１変更判定部３４は、第１配線２１１〜第３配線２１３を入れ替えたときに、入力信号の入力順が入力ポート変更テーブルに記憶される入力順と一致するか否かを判定する（Ｓ２０４）。
【００３７】
図８は、入力ポート変更テーブルを示す図である。
【００３８】
入力ポート変更テーブルは、論理式（Ｘ＝Ａｏｒ（ＢａｎｄＣ））等のいわゆる複合ゲートの組み合わせ回路の論理式と、論理式において発生するグリッチの数が最小になる入力信号の入力順との関係が示される。
【００３９】
図９は、論理式（Ｘ＝Ａｏｒ（ＢａｎｄＣ））において発生するグリッチの数が最小になる入力信号の入力順を決定する処理で使用されるテーブル（その１）である。図１０は、論理式（Ｘ＝Ａｏｒ（ＢａｎｄＣ））において発生するグリッチの数が最小になる入力信号の入力順を決定する処理で使用されるテーブル（その２）である。図９において矢印Ａで示されるテーブルは、第１入力信号Ａ、第２入力信号Ｂ及び第３入力信号Ｃの順で信号値が遷移したときを示す。図９において矢印Ｂで示されるテーブルは、第１入力信号Ａ、第３入力信号Ｃ及び第２入力信号Ｂの順で信号値が遷移したときを示す。図９において矢印Ｃで示されるテーブルは、第２入力信号Ｂ、第１入力信号Ａ及び第３入力信号Ｃの順で信号値が遷移したときを示す。図１０において矢印Ｄで示されるテーブルは、第２入力信号Ｂ、第３入力信号Ｃ及び第１入力信号Ａの順で信号値が遷移したときを示す。図１０において矢印Ｅで示されるテーブルは、第３入力信号Ｃ、第２入力信号Ｂ及び第１入力信号Ａの順で信号値が遷移したときを示す。図１０において矢印Ｆで示されるテーブルは、第３入力信号Ｃ、第１入力信号Ａ及び第２入力信号Ｂの順で信号値が遷移したときを示す。図９及び１０に示されるテーブルにおいて、出力信号Ｘの欄に網掛けがされる行は、グリッチが発生する入力順であることを示す。
【００４０】
不図示のオペレータ又は演算装置は、図９及び１０に示すテーブルのそれぞれの入力順で第１入力信号Ａ〜第３入力信号Ｃが遷移したときに、グリッチが発生するかを演算する。図９において矢印Ａで示されるテーブルにおいて矢印１〜５のそれぞれで示す信号値の遷移においてグリッチが発生するが矢印３で示す信号値の遷移ではグリッチは２回発生する。４つの遷移でグリッチが１回発生し、且つ信号値の１つの遷移でグリッチが２回発生するので、図９において矢印Ａで示されるテーブルで示される入力順で発生するグリッチの数は６つになる。
【００４１】
同様に、図９において矢印Ｂで示される入力順で発生するグリッチの数は６つであり、図９において矢印Ｃで示される入力順で発生するグリッチの数は５つである。また、図１０において矢印Ｄ及びＥで示される入力順で発生するグリッチの数は６つであり、図１０において矢印Ｆで示される入力順で発生するグリッチの数は５つである。
【００４２】
図９において矢印Ｃで示される入力順「第２入力信号Ｂ→第１入力信号Ａ→第３入力信号Ｃ」及び図１０において矢印Ｆで示される入力順「第３入力信号Ｃ→第１入力信号Ａ→第２入力信号Ｂ」は、発生するグリッチの数が５であり他の入力順より少ない。入力順「第２入力信号Ｂ→第１入力信号Ａ→第３入力信号Ｃ」及び「第３入力信号Ｃ→第１入力信号Ａ→第２入力信号Ｂ」は、論理式（Ｘ＝Ａｏｒ（ＢａｎｄＣ））に対応して入力ポート変更テーブルに登録される。
【００４３】
入力ポート変更テーブルは、論理式（Ｘ＝Ａａｎｄ（ＢｏｒＣ））等の他の複合ゲートの組み合わせ回路の論理式と、論理式において発生するグリッチの数が最小になる入力信号の入力順との関係を記憶する。
【００４４】
第１変更判定部３４は、第１入力ポートａに接続される第１配線２１１と第２入力ポートｂに接続される第２配線２１２の接続先を入れ替えることにより、入力信号の入力順が入力ポート変更テーブルに記憶される入力順と一致すると判定する（Ｓ２０４）。
【００４５】
次いで、第１配線切替部３５は、第１入力ポートａに接続される第１配線２１１と第２入力ポートｂに接続される第２配線２１２の接続先を入れ替える（Ｓ２０５）。第１入力ポートａに接続される第１配線２１１と第２入力ポートｂに接続される第２配線２１２の接続先を入れ替えると、第１入力信号Ａの総遅延量は、第１配線遅延量８１０ｐｓと第２セル遅延量１５０ｐｓとの和であり、９６０ｐｓになる。一方、第２入力信号Ｂの総遅延量は、第２配線遅延量８００ｐｓと第１セル遅延量１００ｐｓとの和であり、９００ｐｓになる。また、第３入力信号Ｃの総遅延量は、第３配線遅延量１５０ｐｓと第３セル遅延量２００ｐｓとの和であり、１７００ｐｓになる。
【００４６】
次いで、第１論理式変更部３６は、第１ＬＵＴ２００の論理式を、配線の接続先の入力ポートの入れ替えに応じて変更するように、配置配線情報を変更する（Ｓ２０６）。すなわち、第１論理式変更部３６は、第１ＬＵＴ２００の論理式を、論理式（Ｘ＝Ａｏｒ（ＢａｎｄＣ））から論理式（Ｘ＝Ｂｏｒ（ＡａｎｄＣ））に変更する。
【００４７】
処理部２０がＳ１０３の処理を実行することで、入力順は、第２入力ポートｂを介する第１入力信号Ａ、第１入力ポートａを介する第２入力信号Ｂ及び第３入力ポートを介する第３入力信号Ｃの順番になる。第２入力ポートｂを介する第１入力信号、第１入力ポートａを介する第２入力信号及び第３入力ポートを介する第３入力信号の順番になる入力順は、発生するグリッチの数が最小になる入力順である。処理部２０がＳ１０３の処理を実行することで、発生するグリッチの数が最小になり、グリッチに起因する動的消費電力の発生を最小限に抑制することができる。
【００４８】
図７（ｂ）に示す第１ＬＵＴ３００は、図７（ａ）に示す第１ＬＵＴ２００と同様に、第１入力ポートａと、第２入力ポートｂと、第３入力ポートｃと、出力ポートｘとを有し、論理式（Ｘ＝Ａｏｒ（ＢａｎｄＣ））を演算する組み合わせ回路である。第１入力ポートａは第１配線３１１を介して第１出力セル３２１から第１入力信号Ａが入力され、第２入力ポートｂは第２配線３１２を介して第２出力セル３２２から第２入力信号Ｂが入力される。第３入力ポートｃは、第３配線３１３を介して第３出力セル３２３から第３入力信号Ｃが入力される。
【００４９】
まず、論理式取得部３１は、記憶部１１に記憶される配置配線情報から第１ＬＵＴ３００の論理式を取得する（Ｓ２０１）。第１ＬＵＴ３００の論理式は、Ｘ＝Ａｏｒ（ＢａｎｄＣ）である。次いで、セル遅延量取得部３２は、記憶部１１に記憶される配置配線情報から第１ＬＵＴ３００のセル遅延量を取得する（Ｓ２０２）。第１ＬＵＴ３００の第１入力ポートａから出力端子への第１セル遅延量は１００ｐｓであり、第１ＬＵＴ３００の第２入力ポートｂから出力端子への第２セル遅延量は１５０ｐｓである。第１ＬＵＴ３００の第３入力ポートｃから出力端子への第３セル遅延量は、２００ｐｓである。次いで、配線遅延量取得部３３は、記憶部１１に記憶される配置配線情報から第１ＬＵＴ３００の入力ポートに接続された配線のそれぞれの配線遅延量を取得する（Ｓ２０３）。第１配線３１１の第１配線遅延量は８１０ｐｓであり、第２配線３１２の第２配線遅延量は１１００ｐｓであり、第３配線３１３の第３配線遅延量は１５００ｐｓである。
【００５０】
次いで、第１変更判定部３４は、第１配線３１１〜第３配線３１３を入れ替えたときに、入力信号の入力順が入力ポート変更テーブルに記憶される入力順と一致するか否かを判定する（Ｓ２０４）。第１変更判定部３４は、第１配線３１１〜第３配線３１３を入れ替えたときに、入力信号の入力順が入力ポート変更テーブルに記憶される入力順と一致しないと判定して（Ｓ２０４）、処理はＳ２０７に進む。
【００５１】
Ｓ２０７において、論理式取得部３１は、配置配線情報に含まれる全てのＬＵＴの論理式を取得したか否かを判定する（Ｓ２０７）。論理式取得部３１が配置配線情報に含まれる全てのＬＵＴの論理式を取得したと判定するまで、Ｓ２０１〜Ｓ２０７の処理が繰り返される。Ｓ２０１〜Ｓ２０７の処理が実行される毎に、配置配線情報に含まれるＬＵＴの何れか１つの入力ポートに接続された配線の接続先の入力ポートを入れ替えるか否かが判定される（Ｓ２０４）。ＬＵＴの入力信号の入力順が入力ポート変更テーブルが示す入力順と一致すると判定される（Ｓ２０４）と、ＬＵＴの入力信号の入力順が入力ポート変更テーブルが示す入力順と一致するように、入力ポートに接続される配線が入れ替えられる（Ｓ２０５）。次いで、ＬＵＴの論理式を、配線の接続先の入力ポートの入れ替えに応じて変更する（Ｓ２０６）。そして、論理式取得部３１が配置配線情報に含まれる全てのＬＵＴの論理式を取得したと判定する（Ｓ２０７）と、Ｓ１０３の処理は終了する。
【００５２】
（第２実施形態に係るプログラマブルロジックデバイス設計装置の構成及び機能）
図１１は、第２実施形態に係るＰＬＤ設計装置のブロック図である。
【００５３】
ＰＬＤ設計装置２は、配線切替部２６を配線切替部２３の代わりに有する処理部４０が処理部２０の代わりに配置されることがＰＬＤ設計装置１と相違する。配線切替部２６は、入力ポート判定部４１と、不使用入力ポート判定部４２と、不使用入力ポート接続部４３と、不使用論理式変更部４４とを更に有することが配線切替部２３と相違する。入力ポート判定部４１、不使用入力ポート判定部４２、不使用入力ポート接続部４３及び不使用論理式変更部４４以外のＰＬＤ設計装置２の構成要素の構成及び機能は、同一符号が付されたＰＬＤ設計装置１の構成要素の構成及び機能と同一である。したがって、不使用入力ポート接続部４３及び不使用論理式変更部４４以外のＰＬＤ設計装置２の構成要素については、ここでは詳細な説明は省略する。
【００５４】
（第２実施形態に係るプログラマブルロジックデバイス設計装置の動作）
図１２は、ＰＬＤ設計装置２によるコンフィグレーションデータ生成処理のフローチャートである。コンフィグレーションデータ生成処理は、予め記憶部１１に記憶されているプログラムに基づいて、主に処理部４０により、ＰＬＤ設計装置２の各要素と協働して実行される。
【００５５】
Ｓ３０１〜Ｓ３０３及びＳ３０５〜Ｓ３０６の処理は、Ｓ１０１〜Ｓ１０５の処理と同様なので、ここでは詳細な説明は省略する。
【００５６】
Ｓ３０４において、配線切替部２６は、入力ポートに接続された配線の何れかを、入力信号が入力されない不使用入力ポートに接続することで、ＬＵＴで発生するグリッチの数が最小になるように、配置配線情報を変更する（Ｓ３０４）。
【００５７】
図１３は、Ｓ３０４の処理のより詳細な処理フローを示すフローチャートである。
【００５８】
まず、論理式取得部３１は、記憶部１１に記憶される配置配線情報から、Ｓ３０３の処理で配線の接続先の入力ポートが変更されなかったＬＵＴの何れか１つの論理式を取得する（Ｓ４０１）。次いで、セル遅延量取得部３２は、記憶部１１に記憶される配置配線情報から、Ｓ４０１の処理で論理式が取得されたＬＵＴのセル遅延量を取得する（Ｓ４０２）。次いで、配線遅延量取得部３３は、記憶部１１に記憶される配置配線情報から、Ｓ４０１の処理で論理式が取得されたＬＵＴの入力ポートに接続された配線のそれぞれの配線遅延量を取得する（Ｓ４０３）。次いで、入力ポート判定部４１は、Ｓ４０１の処理で論理式が取得されたＬＵＴは、入力信号が入力されない不使用入力ポートがあるか否かを判定する（Ｓ４０４）。ＬＵＴの入力ポートの数が４つであり且つＬＵＴの論理式が３入力の組み合わせ回路である場合、使用されない入力ポートである不使用入力ポートが１つある。
【００５９】
次いで、不使用入力ポート判定部４２は、配線の何れか１つを不使用入力ポートに接続したときにＬＵＴに入力される入力信号の入力順が入力ポート変更テーブルに記憶される入力順と一致するか否かを判定する（Ｓ４０５）。ＬＵＴに入力される入力信号の入力順が入力ポート変更テーブルに記憶される入力順と一致すると判定される（Ｓ４０５）と、処理はＳ４０６に進む。不使用入力ポート接続部４３は、ＬＵＴの入力信号の入力順が入力ポート変更テーブルに記憶されたＬＵＴの論理式に対応する入力順と一致するように、不使用入力ポートに配線の何れか１つを接続する（Ｓ４０６）。不使用入力ポート接続部４３は、入力ポート変更テーブルに記憶されたＬＵＴの論理式に対応する入力順と一致するように、不使用入力ポートに配線の何れか１つを接続するように、記憶部１１に記憶された配置配線情報を変更する。次いで、不使用論理式変更部４４は、ＬＵＴの論理式を、不使用入力ポートの使用に応じて変更するように、配置配線情報を変更する。一方、ＬＵＴに入力される入力信号の入力順が入力ポート変更テーブルに記憶される入力順と一致しないと判定される（Ｓ４０５）と、処理はＳ４０８に進む。
【００６０】
図１４（ａ）は第１入力ポートａ〜第３入力ポートｃに入力信号が入力され、第４入力ポートＤが不使用入力ポートであるＬＵＴを示す図であり、図１４（ｂ）は図１４（ａ）に示すＬＵＴにおいてＳ４０５の処理を実行する状態を示す図である。
【００６１】
ＬＵＴ４００の第１入力ポートａは第１配線４０１を介して第１入力信号Ａが入力され、ＬＵＴ４００の第２入力ポートｂは第２配線４０２を介して第２入力信号Ｂが入力される。また、ＬＵＴ４００の第３入力ポートｃは、第３配線４０３を介して第３入力信号Ｃが入力される。
【００６２】
不使用入力ポート判定部４２は、第４入力ポートｄに第１配線４０１〜第３配線４０３の何れか１つを接続したときに、ＬＵＴに入力される入力信号の入力順が入力ポート変更テーブルに記憶される入力順と一致するか否かを判定する（Ｓ４０５）。第４入力ポートｄの使用により入力信号の入力順が入力ポート変更テーブルが示す入力順と一致すると判定される（Ｓ４０５）と、不使用入力ポート接続部４３は、入力ポート変更テーブルが示す入力順と一致するように、不使用入力ポートに配線を接続する（Ｓ４０６）。次いで、不使用論理式変更部４４は、ＬＵＴの論理式を、第４入力ポートｄへの配線の接続に応じて変更する（Ｓ４０７）。
【００６３】
Ｓ４０８において、論理式取得部３１は、Ｓ３０３の処理で配線の接続先の入力ポートが変更されなかった全てのＬＵＴの論理式を取得したか否かを判定する（Ｓ４０８）。論理式取得部３１が配置配線情報に含まれる全てのＬＵＴの論理式を取得したと判定するまで、Ｓ４０１〜Ｓ４０８の処理が繰り返される。Ｓ４０１〜Ｓ４０８の処理が実行される毎に、配線の何れか１つを不使用入力ポートに接続したときにＬＵＴに入力される入力信号の入力順が入力ポート変更テーブルに記憶される入力順と一致するか否かを判定される（Ｓ４０５）。不使用入力ポートの使用による入力順が入力ポート変更テーブルが示す入力順と一致すると判定されると、不使用入力ポートの使用による入力順が入力ポート変更テーブルが示す入力順と一致するように、配線が不使用入力ポートに接続される（Ｓ４０６）。次いで、ＬＵＴの論理式を、不使用入力ポートの使用に応じて変更する（Ｓ４０７）。そして、論理式取得部３１がＳ３０３の処理で配線の接続先の入力ポートが変更されなかった全てのＬＵＴの論理式を取得したと判定する（Ｓ４０８）と、Ｓ３０４の処理は終了する。
【００６４】
（第３実施形態に係るプログラマブルロジックデバイス設計装置の構成及び機能）
図１５は、第３実施形態に係るＰＬＤ設計装置のブロック図である。
【００６５】
ＰＬＤ設計装置３は、配線切替部２７を配線切替部２６の代わりに有する処理部５０が処理部４０の代わりに配置されることがＰＬＤ設計装置２と相違する。配線切替部２７は、第２変更判定部５１と、第２配線切替部５２と、第２論理式変更部５３とを更に有することが配線切替部２６と相違する。第２変更判定部５１、第２配線切替部５２お及び第２論理式変更部５３以外のＰＬＤ設計装置３の構成要素の構成及び機能は、同一符号が付されたＰＬＤ設計装置２の構成要素の構成及び機能と同一なので、ここでは詳細な説明は省略する。
【００６６】
（第３実施形態に係るプログラマブルロジックデバイス設計装置の動作）
図１６は、ＰＬＤ設計装置３によるコンフィグレーションデータ生成処理のフローチャートである。コンフィグレーションデータ生成処理は、予め記憶部１１に記憶されているプログラムに基づいて、主に処理部５０により、ＰＬＤ設計装置３の各要素と協働して実行される。
【００６７】
Ｓ５０１〜Ｓ５０４及びＳ５０６〜Ｓ５０７の処理は、Ｓ３０１〜Ｓ３０６の処理と同様なので、ここでは詳細な説明は省略する。
【００６８】
Ｓ５０５において、配線遅延量と、ＬＵＴのセル遅延量とから、配線を入れ替えたときに、ＬＵＴから発生するグリッチのパルス幅であるグリッチ幅が所定のしきい値以下になるように、配線の接続先のＬＵＴの入力ポートを入れ替える（Ｓ５０５）。所定のしきい値は、ＬＵＴを形成するトランジスタの動作速度から決定される。所定のしきい値は、グリッチ幅が以下のときにＬＵＴを形成するトランジスタが反応せずにＬＵＴがグリッチを発生しない時間である。
【００６９】
図１７は、Ｓ５０５の処理のより詳細な処理フローを示すフローチャートである。
【００７０】
まず、論理式取得部３１は、記憶部１１に記憶される配置配線情報から、Ｓ５０４の処理で配線が不使用入力ポートに接続されなかったＬＵＴの何れか１つの論理式を取得する（Ｓ６０１）。次いで、セル遅延量取得部３２は、記憶部１１に記憶される配置配線情報から、Ｓ６０１の処理で論理式が取得されたＬＵＴのセル遅延量を取得する（Ｓ６０２）。次いで、配線遅延量取得部３３は、記憶部１１に記憶される配置配線情報から、Ｓ６０１の処理で論理式が取得されたＬＵＴの入力ポートに接続された配線のそれぞれの配線遅延量を取得する（Ｓ６０３）。次いで、第２変更判定部５１は、配線遅延量と、第１ＬＵＴのセル遅延量とから、配線を入れ替えたときに、ＬＵＴから発生するグリッチ幅が所定のしきい値以下になるか否かを判定する（Ｓ６０４）。配線を入れ替えたときにＬＵＴから発生するグリッチ幅が所定のしきい値以下になる（Ｓ６０４）と、処理はＳ６０５に進む。次いで、第２配線切替部５２は、ＬＵＴから発生するグリッチ幅が所定のしきい値以下になるように、ＬＵＴの入力ポートに接続された配線の接続先の入力ポートを入れ替える（Ｓ６０５）。第２配線切替部５２は、ＬＵＴの入力ポートに接続された配線の接続先の入力ポートを入れ替えるように、記憶部１１に記憶された配置配線情報を変更する。次いで、第２論理式変更部５３は、ＬＵＴの論理式を、配線の接続先の入力ポートの入れ替えに応じて変更する（Ｓ６０６）ように、配置配線情報を変更し、処理はＳ６０７に進む。一方、ＬＵＴから発生するグリッチ幅が所定のしきい値より大きいと判定される（Ｓ６０４）と、処理はＳ６０７に進む。
【００７１】
図１８（ａ）はＬＵＴの一例を示す図であり、図１８（ｂ）はＬＵＴの他の例を示す図である。
【００７２】
まず、論理式取得部３１は、記憶部１１に記憶される配置配線情報からＬＵＴ５００の論理式を取得する（Ｓ６０１）。ＬＵＴ６００の論理式は、Ｘ＝Ａｏｒ（ＢａｎｄＣ）である。次いで、セル遅延量取得部３２は、記憶部１１に記憶される配置配線情報からＬＵＴ５００のセル遅延量を取得する（Ｓ６０２）。ＬＵＴ５００の第１入力ポートａから出力端子への第１セル遅延量は１００ｐｓであり、ＬＵＴ５００の第２入力ポートｂから出力端子への第２セル遅延量は１５０ｐｓであり、ＬＵＴ５００の第３入力ポートｃから出力端子への第３セル遅延量は２００ｐｓである。次いで、配線遅延量取得部３３は、記憶部１１に記憶される配置配線情報からＬＵＴ５００の入力ポートに接続された配線のそれぞれの配線遅延量を取得する（Ｓ６０３）。第１配線５１１の第１配線遅延量は８３０ｐｓであり、第２配線５１２の第２配線遅延量は８６０ｐｓであり、第３配線５１３の第３配線遅延量は９００ｐｓである。
【００７３】
次いで、第２変更判定部５１は、第１配線５１１〜第３配線５１３を入れ替えたときに、ＬＵＴ５００から発生するグリッチ幅が所定のしきい値以下になるか否かを判定する（Ｓ６０４）。所定のしきい値は、ここでは３０ｐｓである。
【００７４】
第２変更判定部５１は、第１入力ポートａに接続される第１配線５１１と第３入力ポートｃに接続される第３配線５１３の接続先を入れ替えることにより、ＬＵＴ５００から発生するグリッチ幅が所定のしきい値以下になるか否かを判定する（Ｓ６０４）。
【００７５】
次いで、第２配線切替部５２は、第１入力ポートａに接続される第１配線５１１と第３入力ポートｃに接続される第３配線５１３の接続先を入れ替える（Ｓ６０５）。第１入力ポートａに接続される第１配線５１１と第３入力ポートｃに接続される第３配線５１３の接続先を入れ替えると、第１入力信号Ａの総遅延量は、第１配線遅延量８３０ｐｓと第３セル遅延量２００ｐｓとの和であり、１０３０ｐｓになる。第２入力信号Ｂの総遅延量は、第２配線遅延量８６０ｐｓと第２セル遅延量１５０ｐｓとの和であり、１０１０ｐｓになる。第３入力信号Ｃの総遅延量は、第３配線遅延量９００ｐｓと第１セル遅延量１００ｐｓとの和であり、１０００ｐｓになる。第２入力信号Ｂの総遅延量と第３入力信号Ｃの総遅延量との差は、しきい値以下の２０ｐｓとなる。
【００７６】
図１９は、ＬＵＴ５００の入出信号のタイミングチャートの一例を示す図である。
【００７７】
第２入力信号Ｂの総遅延量と第３入力信号Ｃの総遅延量との差が所定のしきい値以下となると、ＬＵＴ５００を形成するトランジスタが反応せずに、ＬＵＴ５００はグリッチを発生しない。
【００７８】
次いで、第２論理式変更部５３は、ＬＵＴ５００の論理式を、配線の接続先の入力ポートの入れ替えに応じて変更するように、配置配線情報を変更する（Ｓ６０６）。すなわち、第２論理式変更部５３は、ＬＵＴ５００の論理式を、論理式（Ｘ＝Ａｏｒ（ＢａｎｄＣ））から論理式（Ｘ＝Ｃｏｒ（ＡａｎｄＢ））に変更する。
【００７９】
処理部５０がＳ５０５の処理を実行することで、発生するグリッチのグリッチ幅がしきい値以下になる。処理部５０がＳ５０５の処理を実行することで、発生するグリッチのグリッチ幅がしきい値以下になりグリッチが生じず、グリッチに起因する動的消費電力の発生を最小限に抑制することができる。
【００８０】
図１８（ｂ）に示すＬＵＴ６００は、図１８（ａ）に示すＬＵＴ５００と同様に、第１入力ポートａと、第２入力ポートｂと、第３入力ポートｃと、出力ポートｘとを有し、論理式（Ｘ＝Ａｏｒ（ＢａｎｄＣ））を演算する組み合わせ回路である。第１入力ポートａは第１配線６１１を介して第１出力セル６２１から第１入力信号Ａが入力され、第２入力ポートｂは第２配線６１２を介して第２出力セル６２２から第２入力信号Ｂが入力される。第３入力ポートｃは、第３配線６１３を介して第３出力セル６２３から第３入力信号Ｃが入力される。
【００８１】
まず、論理式取得部３１は、記憶部１１に記憶される配置配線情報からＬＵＴ６００の論理式を取得する（Ｓ６０１）。ＬＵＴ６００の論理式は、Ｘ＝Ａｏｒ（ＢａｎｄＣ）である。次いで、セル遅延量取得部３２は、記憶部１１に記憶される配置配線情報からＬＵＴ６００のセル遅延量を取得する（Ｓ６０２）。ＬＵＴ６００の第１入力ポートａから出力端子への第１セル遅延量は１００ｐｓであり、ＬＵＴ６００の第２入力ポートｂから出力端子への第２セル遅延量は１５０ｐｓであり、ＬＵＴ６００の第３入力ポートｃから出力端子への第３セル遅延量は２００ｐｓである。次いで、配線遅延量取得部３３は、記憶部１１に記憶される配置配線情報からＬＵＴ６００の入力ポートに接続された配線のそれぞれの配線遅延量を取得する（Ｓ６０３）。第１配線６１１の第１配線遅延量は８１０ｐｓであり、第２配線６１２の第２配線遅延量は１１００ｐｓであり、第３配線６１３の第３配線遅延量は１５００ｐｓである。
【００８２】
次いで、第２変更判定部５１は、第１配線６１１〜第３配線６１３を入れ替えたときに、ＬＵＴ６００から発生するグリッチ幅が所定のしきい値以下になるか否かを判定する（Ｓ６０４）。第２変更判定部５１は、第１配線６１１〜第３配線６１３を入れ替えたときに、ＬＵＴ６００から発生するグリッチ幅が所定のしきい値より大きくなると判定して（Ｓ６０４）、処理はＳ６０７に進む。
【００８３】
Ｓ６０７において、論理式取得部３１は、配置配線情報に含まれる全てのＬＵＴの論理式を取得したか否かを判定する（Ｓ６０７）。論理式取得部３１が配置配線情報に含まれる全てのＬＵＴの論理式を取得したと判定するまで、Ｓ６０１〜Ｓ６０７の処理が繰り返される。Ｓ６０１〜Ｓ６０７の処理が実行される毎に、ＬＵＴから発生するグリッチ幅が所定のしきい値以下になるが判定される（Ｓ６０４）。ＬＵＴから発生するグリッチ幅が所定のしきい値以下になると判定される（Ｓ６０４）と、ＬＵＴから発生するグリッチ幅が所定のしきい値以下になるように、入力ポートに接続される配線が入れ替えられる（Ｓ６０５）。次いで、ＬＵＴの論理式を、配線の接続先の入力ポートの入れ替えに応じて変更する。そして、論理式取得部３１が配置配線情報に含まれる全てのＬＵＴの論理式を取得したと判定する（Ｓ６０７）と、Ｓ５０５の処理は終了する。
【００８４】
（実施形態に係るプログラマブルロジックデバイス設計装置の作用効果）
実施形態に係るＰＬＤ設計装置は、入力ポート変更テーブルに記憶されたＬＵＴの論理式に対応する入力順と一致するように、ＬＵＴの少なくとも２つの入力ポートに接続された配線の接続先の入力ポート及び論理式を入れ替える。実施形態に係るＰＬＤ設計装置は、ＬＵＴの少なくとも２つの入力ポートに接続された配線の接続先の入力ポート及び論理式を入れ替えることで、発生するグリッチの数を論理的に最小化し、グリッチに起因する動的消費電力を低減する。
【００８５】
図２０は、ＰＬＤ設計装置１によるコンフィグレーションデータ生成処理が実行されないコンフィグレーションデータの状態を示す図である。また、図２１は、ＰＬＤ設計装置１によるコンフィグレーションデータ生成処理が実行されたコンフィグレーションデータの状態を示す図である。図２１において、ＰＬＤ設計装置１は、ＦＰＧＡに搭載されるＬＵＴの１０％のＬＵＴに対してＳ１０３の処理を実行した。
【００８６】
ＰＬＤ設計装置１によるＳ１０３の処理を実行することにより、ＦＰＧＡの動的消費電力は１２．９８１Ｗから１２．１６８Ｗに低減された。ＰＬＤ設計装置１によるＳ１０３の処理を実行することにより、動的消費電力は、６．３％低減された。
【００８７】
また、ＰＬＤ設計装置は、入力ポート変更テーブルに記憶されたＬＵＴの論理式に対応する入力順と一致するように、ＬＵＴの入力ポートに接続される配線の何れかを不使用入力ポートに接続する。実施形態に係るＰＬＤ設計装置は、ＬＵＴの入力ポートに接続される配線の何れかを不使用入力ポートに接続することで、発生するグリッチの数を論理的に最小化し、グリッチに起因する動的消費電力を更に低減する。
【００８８】
また、ＰＬＤ設計装置は、ＬＵＴが発生するグリッチの幅が所定のしきい値以下になるように、ＬＵＴの入力ポートに接続された配線の接続先の入力ポート及び論理式を入れ替える。実施形態に係るＰＬＤ設計装置は、ＬＵＴの入力ポートに接続された配線の接続先の入力ポート及び論理式を入れ替えることで、発生するグリッチの数を論理的に最小化し、グリッチに起因する動的消費電力を更に低減する。
【００８９】
（実施形態に係るプログラマブルロジックデバイス設計装置の変形例）
ＰＬＤ設計装置１〜３は、配線を入れ替えたときにＬＵＴに入力される入力信号の入力順が入力ポート変更テーブルに記憶される入力順と一致するか否かを判定する第１変更判定部３４を有する。しかしながら、実施形態に係るＰＬＤ設計装置は、第１変更判定部３４を有しなくてもよい。実施形態に係るＰＬＤ設計装置が第１変更判定部３４を有さないとき、第１配線切替部３５は、配置配線情報に含まれる全てのＬＵＴの配線を入力ポート変更テーブルに記憶される入力順と一致するように入れ替える。
【００９０】
また、第３実施形態に係るＰＬＤ設計装置は、入力ポート判定部４１、不使用入力ポート判定部４２、不使用入力ポート接続部４３及び不使用論理式変更部４４を有する。しかしながら、実施形態に係るＰＬＤ設計装置は、入力ポート判定部４１、不使用入力ポート判定部４２、不使用入力ポート接続部４３及び不使用論理式変更部４４を有さずに、第２変更判定部５１、第２配線切替部５２お及び第２論理式変更部５３を有してもよい。入力ポート判定部４１、不使用入力ポート判定部４２、不使用入力ポート接続部４３及び不使用論理式変更部４４を有さないとき、実施形態に係るＰＬＤ設計装置は、Ｓ５０４の処理を省略して、Ｓ５０１〜Ｓ５０３及びＳ０５〜Ｓ５０７の処理を実行する。
【符号の説明】
【００９１】
１〜３    ＰＬＤ設計装置
３１    論理式取得部
３２    セル遅延量取得部
３３    配線遅延量取得部
３４    第１変更判定部
３５    第１配線切替部
３６    第１論理式変更部
４１    入力ポート判定部
４２    不使用入力ポート判定部
４３    不使用入力ポート接続部
４４    不使用論理式変更部
５１    第２変更判定部
５２    第２配線切替部
５３    第２論理式変更部
【図１】
2017126194.tif 000003
【図２】
2017126194.tif 000004
【図３】
2017126194.tif 000005
【図４】
2017126194.tif 000006
【図５】
2017126194.tif 000007
【図６】
2017126194.tif 000008
【図７】
2017126194.tif 000009
【図８】
2017126194.tif 000010
【図９】
2017126194.tif 000011
【図１０】
2017126194.tif 000012
【図１１】
2017126194.tif 000013
【図１２】
2017126194.tif 000014
【図１３】
2017126194.tif 000015
【図１４】
2017126194.tif 000016
【図１５】
2017126194.tif 000017
【図１６】
2017126194.tif 000018
【図１７】
2017126194.tif 000019
【図１８】
2017126194.tif 000020
【図１９】
2017126194.tif 000021
【図２０】
2017126194.tif 000022
【図２１】
2017126194.tif 000023