(57)【要約】【課題】小面積で消費電力を抑える。【解決手段】信号が伝搬される配線Ｌ１と、信号の伝搬に使用されない配線Ｌ２と、配線Ｌ１と配線Ｌ２とを電気的に接続または切断するスイッチ２と、電荷再利用制御回路３を設け、電荷再利用制御回路３は、配線Ｌ１に伝搬される信号ＶINの電位に基づいてスイッチ２を制御して、配線Ｌ１の配線容量Ｃ１に充電された電荷の一部を配線Ｌ２の配線容量Ｃ２に移動して保存し、配線容量Ｃ１の充電のときに、保存した電荷を配線容量Ｃ１に引き込む。【選択図】図１
2015050271.tif 000002
【特許請求の範囲】
【請求項１】
信号が伝搬される第１の配線と、
信号の伝搬に使用されない第２の配線と、
前記第１の配線と前記第２の配線とを電気的に接続または切断するスイッチと、
前記第１の配線に伝搬される前記信号の電位に基づいて前記スイッチを制御して、前記第１の配線の第１配線容量に充電された電荷の一部を前記第２の配線の第２配線容量に移動して保存し、前記第１配線容量の充電のときに、保存した前記電荷を前記第１配線容量に引き込む電荷再利用制御回路と、
を有することを特徴とする半導体集積回路。
【請求項２】
複数の配線の中から、前記第１の配線と前記第２の配線を選択する選択部を有し、
前記選択部は、選択した前記第１の配線を、前記スイッチを介して前記第２の配線に接続する、ことを特徴とする請求項１に記載の半導体集積回路。
【請求項３】
前記選択部は、１つの前記第１の配線に対して複数の前記第２の配線を、前記スイッチを介して接続することを特徴とする請求項１または２に記載の半導体集積回路。
【請求項４】
前記電荷再利用制御回路は、前記１配線容量と前記第２配線容量との間での電荷の移動が完了するまでの時間に基づき、前記スイッチによる前記第１の配線と前記第２の配線との電気的接続が切断されることを遅延させる遅延回路、を有することを特徴とする請求項１乃至３の何れか一項に記載の半導体集積回路。
【請求項５】
前記遅延回路は、設定信号によって遅延機能を有効または無効とし、電荷再利用を行うか否かを設定することを特徴とする請求項４に記載の半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路に関する。
【背景技術】
【０００２】
ＦＰＧＡ（Field-Programmable Gate Array）のような再構成可能な半導体集積回路では、回路の構成情報を半導体集積回路に書き込むことによって任意の機能を実現することが可能である。
【０００３】
再構成可能な半導体集積回路は、複数の基本論理エレメントを備えたＣＬＢ（Configurable Logic Block）と、ＳＢ（Switch Block）、ＣＢ（Connection Block）とそれらの間を接続する配線部を有している。このような要素を有する半導体集積回路は、プログラマブルに、ＣＬＢを接続可能となっているため、ＡＳＩＣ（Application Specific Integrated Circuit）と比べて配線長が長くなり、配線容量が大きくなっている。そのため、配線部の消費電力が大きい。
【０００４】
ところで、ＡＳＩＣの分野に適用される省電力技術として電荷再利用技術がある。
論理回路において、信号の値が“１”から“０”に変化する際、配線容量に充電された電荷は全て放電され、配線容量の値をＣ、電源電圧をＶDDとすると、ＣＶDD2／２の電力が消費される。これに対して電荷再利用技術では、充電された電荷が放電される際に、その電荷の一部を別のキャパシタに保存しておき、次に信号の値が“０”から“１”に変化する際に再利用することで、消費電力を削減するという技術である。
【０００５】
また、電荷再利用技術の一種として、クロック共振手法がある。クロック共振手法では、クロック配線網にインダクタを追加し、そのインダクタのインダクタンスとクロック配線のキャパシタンスによりＬＣ共振回路を実現して共振させる。これにより、インダクタとクロック配線のキャパシタとの間で電荷が再利用されクロック配線網の電力が削減される。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００１−１９５１６３号公報
【特許文献２】特開２０１１−２５０１０７号公報
【非特許文献】
【０００７】
【非特許文献１】S. Chan, K. Shepard, and P. Restle, "Uniform-phase uniform-amplitude resonant-load global clock distributions, "Solid-State Circuits, IEEE Journal of, vol. 40, no. 1, pp. 102 - 109, Jan. 2005.
【非特許文献２】L. McMurchie and C. Ebeling, "Pathfinder: A negotiation-based performance-driven router for fpgas," in ACM/SIGDA International Symposium on Field Programmable Gate Arrays, Monterey, CA, USA, 1995, pp.111 - 117.
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかし、上記のような従来の電荷再利用技術を半導体集積回路に適用すると、回路面積が大きくなってしまう。たとえば、充電された電荷が放電される際に、その電荷の一部を別のキャパシタに保存しておく手法では、そのキャパシタを追加することによる面積増加が発生し、クロック共振手法では、インダクタの追加による面積増加が生じる。
【課題を解決するための手段】
【０００９】
発明の一観点によれば、信号が伝搬される第１の配線と、信号の伝搬に使用されない第２の配線と、前記第１の配線と前記第２の配線とを電気的に接続または切断するスイッチと、前記第１の配線に伝搬される前記信号の電位に基づいて前記スイッチを制御して、前記第１の配線の第１配線容量に充電された電荷の一部を前記第２の配線の第２配線容量に移動して保存し、前記第１配線容量の充電のときに、保存した前記電荷を前記第１配線容量に引き込む電荷再利用制御回路と、を備えた半導体集積回路が提供される。
【発明の効果】
【００１０】
開示の半導体集積回路によれば、小面積で消費電力を抑えることができる。
【図面の簡単な説明】
【００１１】
【図１】第１の実施の形態の半導体集積回路の一例を示す図である。
【図２】本実施の形態の半導体集積回路による電荷再利用について説明する図である（その１）。
【図３】本実施の形態の半導体集積回路による電荷再利用について説明する図である（その２）。
【図４】本実施の形態の半導体集積回路による電荷再利用について説明する図である（その３）。
【図５】信号ＶINが、“１”から“０”に変化するときの配線Ｌ１の電圧波形の一例を示す図である。
【図６】信号ＶINが、“０”から“１”に変化するときの配線Ｌ１の電圧波形の一例を示す図である。
【図７】第２の実施の形態の半導体集積回路（ＦＰＧＡ）の一例を示す図である。
【図８】ＣＬＢの基本論理エレメントの一例を示す図である。
【図９】ＳＢの一例を示す図である。
【図１０】電荷再利用バッファ回路の一例を示す図である。
【図１１】遅延回路の一例を示す図である。
【図１２】電荷再利用回路の一例を示す図である。
【図１３】半導体集積回路の動作の一例を示すタイミングチャートである。
【図１４】ＳＢの他の例を示す図である。
【図１５】任意の１本の空き配線を使用した場合のスイッチの設定例を示す図である。
【図１６】１本の配線の電荷の保存用に、複数の空き配線を用いる場合のスイッチの設定例を示す図である。
【図１７】半導体集積回路の設計方法の一例の流れを示す図である。
【図１８】設計装置のハードウェア例を示す図である。
【図１９】配線処理を行う機能ブロック図の一例である。
【図２０】ＦＰＧＡの配線構造の一部の例を示す図である。
【図２１】図２０の配線構造に対応する有効グラフの一例を示す図である。
【図２２】配線処理の一例の流れを示すフローチャートである。
【図２３】電荷保存用として用いる配線を固定した場合の、ノードｍに隣接するノードｎに関するコスト計算及び、コストの優先度付キューＰＱへの追加処理の例を示すフローチャートである。
【図２４】電荷保存用として用いる配線を任意に変更できる場合の、ノードｍに隣接するノードｎに関するコスト計算及び、コストの優先度付キューＰＱへの追加処理の例を示すフローチャートである。
【図２５】電荷再利用モード選択処理を行う機能ブロック図の一例である。
【図２６】タイミンググラフで表す論理回路の一例を示す図である。
【図２７】生成されたタイミンググラフの一例を示す図である。
【発明を実施するための形態】
【００１２】
以下、発明を実施するための形態を、図面を参照しつつ説明する。
（第１の実施の形態）
図１は、第１の実施の形態の半導体集積回路の一例を示す図である。
【００１３】
半導体集積回路１は、ＦＰＧＡのような再構成可能な半導体集積回路であり、複数の配線Ｌ１，Ｌ２を有している。図１の例では、配線Ｌ１には信号ＶINが伝搬されるが、配線Ｌ２には信号が伝搬されず、空き配線（未使用の配線）となっている。再構成可能な半導体集積回路には、たとえば、機能設計段階で、このような空き配線が生じる。
【００１４】
半導体集積回路１は、さらに、配線Ｌ１と未使用の配線Ｌ２とを電気的に接続または切断するスイッチ２と、スイッチ２を制御する電荷再利用制御回路３を有する。
電荷再利用制御回路３は、配線Ｌ１に伝搬される信号ＶINの電位に基づいて、スイッチ２を制御して、配線Ｌ１の配線容量Ｃ１に充電（チャージ）された電荷の一部を、未使用の配線Ｌ２の配線容量Ｃ２に移動して保存する。また、電荷再利用制御回路３は、配線容量Ｃ１のチャージのときに、保存した電荷を配線容量Ｃ１に引き込んで、配線容量Ｃ１のチャージに再利用する。また、電荷再利用制御回路３は、バッファ回路の機能も有しており、信号ＶINを保持して出力する。なお、配線容量Ｃ１，Ｃ２は寄生容量であるため、図１では点線で図示されている。
【００１５】
たとえば、信号ＶINが“１”（電位レベルがＨ（High）レベル）から、“０”（電位レベルがＬ（Low）レベル）に変化するとき、電荷再利用制御回路３は、スイッチ２を一定期間オンする。これにより、配線Ｌ１の配線容量Ｃ１にチャージされている電荷の一部が、図１中の矢印ａ１に示すような流れで未使用の配線Ｌ２の配線容量Ｃ２に移動して保存される。
【００１６】
信号ＶINが“０”から、“１”に変化するときも、電荷再利用制御回路３は、スイッチ２を一定期間オンする。これにより、空き配線Ｌ２の配線容量Ｃ２に保存された電荷の一部が、図１中の矢印ａ２に示すような流れで配線Ｌ１の配線容量Ｃ１に引き込まれ、チャージされる。
【００１７】
以下、第１の実施の形態の半導体集積回路１の動作の一例を説明する。
図２、図３、図４は、本実施の形態の半導体集積回路による電荷再利用について説明する図である。
【００１８】
図２〜図４では、スイッチＳＷ１，ＳＷ２と、図１に示したスイッチ２及び配線Ｌ１，Ｌ２の配線容量Ｃ１，Ｃ２が示されている。スイッチＳＷ１，ＳＷ２は、電荷再利用制御回路３によって実現され、配線Ｌ１を電源（電源電圧ＶDDを供給している）またはＧＮＤ（基準電源）に接続（接地）、または配線Ｌ１を電源またはＧＮＤから切り離す機能を有する。
【００１９】
スイッチＳＷ１の一方の端子には電源電圧ＶDDが印加され、他方の端子にはスイッチＳＷ２の一方の端子が接続されている。スイッチＳＷ２の他方の端子は接地されている。スイッチＳＷ１とスイッチＳＷ２の間のノードには、配線容量Ｃ１の一方の端子とスイッチ２の一方の端子が接続されている。スイッチ２の他方の端子は配線容量Ｃ２の一方の端子に接続されている。配線容量Ｃ１，Ｃ２の他方の端子は接地されている。
【００２０】
図２では、信号ＶINが“１”のときの半導体集積回路１の状態が模式的に示されている。スイッチＳＷ１がオン、スイッチＳＷ２，２がオフになっており、電源電圧ＶDDによって配線容量Ｃ１に電荷がチャージされる。
【００２１】
図３では、信号ＶINが“１”から“０”に変化した直後の半導体集積回路１の状態が模式的に示されている。スイッチＳＷ１，ＳＷ２がオフ、スイッチ２がオンし、配線容量Ｃ１にチャージされた電荷が一部、配線容量Ｃ２に移動し、配線Ｌ１の電圧はある値（以下この値を電圧ＶINT＿HIGHと表記する）になった時点で安定する。
【００２２】
図４では、信号ＶINが“０”に変化し、その後、配線Ｌ１の電圧が安定した後の半導体集積回路１の状態が模式的に示されている。スイッチＳＷ１，２がオフ、スイッチＳＷ２がオンになっており、配線容量Ｃ１にチャージされていた電荷が放電される。
【００２３】
図５は、信号ＶINが、“１”から“０”に変化するときの配線Ｌ１の電圧波形の一例を示す図である。横軸が時間、縦軸が電圧を示している。
信号ＶINが、“１”から“０”に変化するとき、配線Ｌ１の電圧ＶOUTは、タイミングｔ１から下がり始めている。このとき、電荷再利用制御回路３の制御のもとスイッチ２がオンし、図３の状態となる。電圧ＶOUTが前述の電圧ＶINT＿HIGHとなるタイミングｔ２で、電荷再利用制御回路３の制御のもとスイッチ２がオフし、放電が行われる図４の状態となる。
【００２４】
このように、信号ＶINが、“１”から“０”に変化するときには、配線容量Ｃ１にチャージされていた一部の電荷が配線容量Ｃ２に保存され、配線容量Ｃ１の放電時に放電される電荷量が削減されるため、消費電力を削減できる。
【００２５】
一方、信号ＶINが“０”から“１”に変化する際、図４に示した状態から、図３に示した状態になる。これにより、配線容量Ｃ２に保存されていた電荷の一部が、配線容量Ｃ１に移動し、配線Ｌ１の電圧はある値（以下この値を電圧ＶINT＿LOWと表記する）になった時点で安定する。
【００２６】
その後、図２に示した状態となり、配線容量Ｃ１に残りの電荷がチャージされる。
図６は、信号ＶINが、“０”から“１”に変化するときの配線Ｌ１の電圧波形の一例を示す図である。横軸が時間、縦軸が電圧を示している。
【００２７】
配線Ｌ１の電圧ＶOUTは、タイミングｔ３から上がり始めている。このとき、電荷再利用制御回路３の制御のもとスイッチ２がオンし、図３の状態となる。電圧ＶOUTが前述の電圧ＶINT＿LOWとなるタイミングｔ４で、電荷再利用制御回路３の制御のもとスイッチ２がオフされ、チャージが行われる図１の状態となる。
【００２８】
このように、信号ＶINが、“０”から“１”に変化するときには、配線容量Ｃ２に保存されていた一部の電荷が配線容量Ｃ１に移動し、配線容量Ｃ１が再チャージされる際の電荷量が削減されるため、消費電力を削減できる。
【００２９】
入力変化前と、配線容量Ｃ１，Ｃ２間での電荷移動状態（信号ＶINの“１”から“０”への変化時の電荷保存状態または信号ＶINの“０”から“１”への変化時の電荷再利用状態）における電圧と電荷の関係から、以下の式（１），（２）が成り立つ。
【００３０】
【数１】
2015050271.tif 000003
【００３１】
【数２】
2015050271.tif 000004
【００３２】
式（１），（２）において、ＣLは、配線容量Ｃ１の容量値、ＣRは、配線容量Ｃ２の容量値を示している。
式（１），（２）から、電圧ＶINT＿LOWと電圧ＶINT＿HIGHは、以下の式（３），（４）で表せる。
【００３３】
【数３】
2015050271.tif 000005
【００３４】
【数４】
2015050271.tif 000006
【００３５】
また、電荷再利用を用いないときと、電荷再利用を用い信号ＶINが、“１”から“０”に変化するとき、及び電荷再利用を用い信号ＶINが、“０”から“１”に変化するときに消費されるエネルギーＥは以下のようになる。
【００３６】
（電荷再利用を用いないときのエネルギー）
【００３７】
【数５】
2015050271.tif 000007
【００３８】
（電荷再利用を用い信号ＶINが、“１”から“０”に変化するときのエネルギー）
【００３９】
【数６】
2015050271.tif 000008
【００４０】
（電荷再利用を用い信号ＶINが、“０”から“１”に変化するときのエネルギー）
【００４１】
【数７】
2015050271.tif 000009
【００４２】
ＶDD＞ＶINT＿HIGH、ＶDD＞（ＶDD−ＶINT＿LOW）であるので、式（６），（７）から、電荷再利用を用いる本実施の形態の半導体集積回路１によれば、信号ＶINの値が変化するときに消費されるエネルギーを少なくすることができ、消費電力を抑制できる。
【００４３】
また、図１に示したように、電荷再利用制御回路３が、スイッチ２を制御して、空き配線Ｌ２の配線容量Ｃ２を用いることにより、電荷再利用のために余分な容量を追加せずに済み、小面積の回路で消費電力を抑制することが可能となる。
【００４４】
（第２の実施の形態）
図７は、第２の実施の形態の半導体集積回路（ＦＰＧＡ）の一例を示す図である。
ＦＰＧＡ１０は、ＣＬＢ１１−１，１１−２，１１−３，１１−４、ＳＢ１２、ＣＢ１３−１，１３−２，１３−３，１３−４を有している。
【００４５】
ＣＬＢ１１−１〜１１−４は、複数の基本論理エレメントを備えた論理回路ブロックである。ＳＢ１２は、縦横の配線接続の切り替えを行う。ＣＢ１３−１〜１３−４は、ＣＬＢ１１−１〜１１−４と上記縦または横の配線とを接続する。
【００４６】
（ＣＬＢ１１−１〜１１−４の基本論理エレメントの一例）
図８は、ＣＬＢの基本論理エレメントの一例を示す図である。
基本論理エレメント２０は、ルックアップテーブル（ＬＵＴ）２１、Ｄ型のフリップフロップ（ＤＦＦ）２２、マルチプレクサ（ＭＵＸ）２３を有している。
【００４７】
ＬＵＴ２１は、たとえば、ＳＲＡＭ（Static Random Access Memory）によって実現される。ＬＵＴ２１は、４つの入力端子ＩＮ［０］，ＩＮ［１］，ＩＮ［２］，ＩＮ［３］から４ビットのアドレスを入力し、そのアドレスに基づき、格納しているデータの中から１ビットのデータを出力する。
【００４８】
ＤＦＦ２２は、クロック端子ＣＬＫから入力されるクロックを、自身のクロック端子ＣＫで受信し、クロックに同期したタイミングでＬＵＴ２１の出力を取り込み、端子Ｑから出力する。
【００４９】
ＭＵＸ２３は、ＬＵＴ２１の出力と、ＤＦＦ２２の出力の一方を選択して、出力端子ＯＵＴから出力する。
（ＳＢ１２の一例）
図９は、ＳＢの一例を示す図である。
【００５０】
第２の実施の形態のＦＰＧＡ１０において、ＳＢ１２は、ＭＵＸ３０−１，３０−２，３０−３，３０−４、電荷再利用バッファ回路３１−１，３１−２，３１−３，３１−４、電荷再利用回路３２−１，３２−２，３２−３，３２−４を有している。なお、図９では、各配線の一部において、その配線で伝達される信号の信号名の一例が併記されている。
【００５１】
ＭＵＸ３０−１〜３０−４は、４つの入力信号ＩＮ１，ＩＮ２，ＩＮ３，ＩＮ４の何れか１つを選択して信号ＶIN１，ＶIN２，ＶIN３，ＶIN４として出力する。ＭＵＸ３０−１〜３０−４の制御信号は、たとえば、コンフィギュレーション用ＳＲＡＭセル（図示せず）から供給される。
【００５２】
電荷再利用バッファ回路３１−１〜３１−４は、前述した図１の電荷再利用制御回路３の一部の機能を行う。電荷再利用バッファ回路３１−１〜３１−４は、信号ＶIN１〜ＶIN４を保持し、配線Ｌ１０，Ｌ１１，Ｌ１２，Ｌ１３に信号ＶOUT１，ＶOUT２，ＶOUT３，ＶOUT４として出力する。また、電荷再利用バッファ回路３１−１〜３１−４は、信号ＶIN１〜ＶIN４から信号ＶIN＿D１，ＶIN＿D２，ＶIN＿D３，ＶIN＿D４を生成し、図１に示したスイッチ２としての機能を有する電荷再利用回路３２−１〜３２−４に供給する。信号ＶIN＿D１〜ＶIN＿D４は、電荷保存動作と電荷再利用動作の期間（図３の状態でスイッチ２をオンにしておく期間）を決める信号である。
【００５３】
電荷再利用回路３２−１〜３２−４は、図１に示したスイッチ２の機能を有するとともに、電荷再利用制御回路３の一部の機能を行う。すなわち、電荷再利用回路３２−１〜３２−４は、信号ＶIN１〜ＶIN４と、信号ＶIN＿D１〜ＶIN＿D４に基づいて、配線Ｌ１０と配線Ｌ１１、配線Ｌ１１と配線Ｌ１２、配線Ｌ１２と配線Ｌ１３または配線Ｌ１３と配線Ｌ１０を電気的に接続または切断する。
【００５４】
図９のＳＢ１２の例では、信号が伝達される配線１本に対して、１本の配線（空き配線）が電荷保存用として使用され、ある配線に対して電荷保存用として使用される配線は固定されている。たとえば、配線Ｌ１０〜Ｌ１３のうちで、たとえば、配線Ｌ１１，Ｌ１３が、信号が伝搬されない空き配線である場合、配線Ｌ１０の電荷保存用には配線Ｌ１１が用いられ、配線１２の電荷保存用には配線Ｌ１３が用いられる。
【００５５】
なお、上記の例では、電荷保存用として隣接した配線を用いるようにしているが、これに限定されない。たとえば、配線Ｌ１０，Ｌ１２の間に電荷再利用回路３２−１が接続されている場合、配線Ｌ１２が配線Ｌ１０の電荷保存用として用いられる。また、３次元実装技術を用いて複数のダイの配線間で電荷再利用を行うことも可能である。
【００５６】
以下、ＳＢ１２の電荷再利用バッファ回路３１−１〜３１−４の一例を説明する。
（電荷再利用バッファ回路３１−１〜３１−４の一例）
図１０は、電荷再利用バッファ回路の一例を示す図である。
【００５７】
以下では、図９に示した電荷再利用バッファ回路３１−１の例を示すが、他の電荷再利用バッファ回路３１−２〜３１−４についても同様の回路で実現できる。
電荷再利用バッファ回路３１−１は、インバータ回路４０、遅延回路４１、トランジスタＭ１，Ｍ２，Ｍ３，Ｍ４，Ｍ５，Ｍ６を有している。
【００５８】
インバータ回路４０は、信号ＶIN１を入力し、信号ＶIN１の論理レベルを反転した信号／ＶIN１を出力する。遅延回路４１は、信号ＶIN１を入力し、信号ＶIN１を遅延させた信号ＶIN＿D１を出力する。
【００５９】
トランジスタＭ１〜Ｍ６のうち、トランジスタＭ１，Ｍ４，Ｍ６は、ｎチャネル型ＭＯＳＦＥＴ（Metal-Oxide Semiconductor Field Effect Transistor）であり、トランジスタＭ２，Ｍ３，Ｍ５は、ｐチャネル型ＭＯＳＦＥＴである。
【００６０】
トランジスタＭ５，Ｍ６は、インバータ回路として機能しており、トランジスタＭ１〜Ｍ４は、そのインバータを制御するゲーティング回路として機能している。
トランジスタＭ１，Ｍ２のゲートには、遅延回路４１から出力される信号ＶIN＿D１が入力され、トランジスタＭ３，Ｍ４のゲートには、信号ＶIN１が入力される。トランジスタＭ１，Ｍ２のソースとトランジスタＭ３，Ｍ４のドレインには、インバータ回路４０から出力される信号／ＶIN１が入力される。また、トランジスタＭ１のドレインとトランジスタＭ３のソースは、トランジスタＭ５のゲートに接続されている。トランジスタＭ２のドレインとトランジスタＭ４のソースは、トランジスタＭ６のゲートに接続されている。
【００６１】
インバータ回路として機能するトランジスタＭ５，Ｍ６において、トランジスタＭ５のソースには、電源電圧ＶDDが印加され、ドレインは、トランジスタＭ６のドレインに接続されている。トランジスタＭ６のソースは接地されている。トランジスタＭ５のドレインとトランジスタＭ６のドレイン間のノードの電位が、信号ＶOUT１として出力される。
【００６２】
トランジスタＭ１〜Ｍ４によるゲーティング回路は、遅延回路４１との組み合わせにより、電荷保存状態及び電荷再利用状態において、電荷が移動する間、トランジスタＭ５，Ｍ６をオフ状態にして、配線Ｌ１０を、電源及びＧＮＤから切り離す制御を行う。
【００６３】
次に、電荷再利用バッファ回路３１−１の遅延回路４１の一例を説明する。
（遅延回路４１の一例）
図１１は、遅延回路の一例を示す図である。
【００６４】
遅延回路４１は、信号ＶIN１を、電荷保存状態及び電荷再利用状態において電荷が移動する時間分、遅らせる機能を有する。図１１に示される遅延回路４１の例は、Ｃｕｒｒｅｎｔ−ｓｔａｒｖｅｄ  ｉｎｖｅｒｔｅｒを適用した例を示している。
【００６５】
遅延回路４１は、トランジスタＭＤ１，ＭＤ２，ＭＤ３，ＭＤ４，ＭＤ５，ＭＤ６，ＭＤ７，ＭＤ８を有する。トランジスタＭＤ１〜ＭＤ８のうち、トランジスタＭＤ１，ＭＤ２，ＭＤ３，ＭＤ７がｐチャネル型ＭＯＳＦＥＴであり、トランジスタＭＤ４，ＭＤ５，ＭＤ６，ＭＤ８がｎチャネル型ＭＯＳＦＥＴである。
【００６６】
トランジスタＭＤ１のゲートにはバイアス電圧ＶPBが印加され、トランジスタＭＤ２のゲートには信号ＣＲが入力されている。トランジスタＭＤ１，ＭＤ２のソースには電源電圧ＶDDが印加され、ドレインはトランジスタＭＤ３のソースに接続されている。トランジスタＭＤ３のドレインは、トランジスタＭＤ４のドレインに接続されるとともに、トランジスタＭＤ７，ＭＤ８のゲートに接続されている。トランジスタＭＤ３，ＭＤ４のゲートには信号ＶIN１が入力され、トランジスタＭＤ４のソースは、トランジスタＭＤ５，ＭＤ６のドレインに接続されている。トランジスタＭＤ５のゲートにはバイアス電圧ＶNBが印加され、トランジスタＭＤ２のゲートには信号ＣＲの論理レベルを反転させた信号／ＣＲが入力されている。トランジスタＭＤ５，ＭＤ６のソースは接地されている。
【００６７】
トランジスタＭＤ７，ＭＤ８はインバータ回路として機能しており、トランジスタＭＤ７のソースには電源電圧ＶDDが印加され、ドレインはトランジスタＭＤ８のドレインに接続されている。トランジスタＭＤ８のソースは接地されている。トランジスタＭＤ７のドレインとトランジスタＭＤ８のドレイン間のノードの電位が、信号ＶIN＿D１として出力される。
【００６８】
このような遅延回路４１では、クランプ電流の値を調整することにより遅延を調整できるため、上記電荷の移動時間に合致するように遅延時間を調整することが可能である。遅延時間は、信号ＶIN１の立ち下がり時の変化開始から、信号ＶOUT１が電圧ＶINT＿HIGHに達するまでの時間であるとともに、信号ＶIN１の立ち上がり時の変化開始から、信号ＶOUT１が電圧ＶINT＿LOWに達するまでの時間とすることが好ましい。そのため、予めシミュレーションにより、その時間を求めておき、遅延時間ができるだけ短くなるように設定することが、タイミング制約を満たすようにするためには好ましい。なお、仮に信号ＶOUT１が電圧ＶINT＿HIGHや電圧ＶINT＿LOWに達するより、短い遅延時間が設定されたとしても、削減される電力が減るだけで、論理的な動作自体には影響を与えない。
【００６９】
また、遅延回路４１では、信号ＣＲにより遅延の有無を設定できる。電荷再利用を有効とするときの信号ＣＲの値を“１”とすると、トランジスタＭＤ２，ＭＤ６がオフする。このとき、トランジスタＭＤ１，ＭＤ５がクランプ電流源として動作する。トランジスタＭＤ１，ＭＤ５のゲートに印加されるバイアス電圧ＶPB，ＶNBにより、トランジスタＭＤ１，ＭＤ５の電流が制限され、それにより遅延が発生する。
【００７０】
信号ＣＲが“０”のときは、トランジスタＭＤ２，ＭＤ６がオンし、トランジスタＭＤ１，ＭＤ５によるクランプ電流源により遅延が発生することはなくなり、その結果電荷再利用動作が行われなくなる。
【００７１】
このように、遅延回路４１では、設定信号（信号ＣＲ）によって、遅延機能が有効または無効となり、電荷再利用を有効にするか否かを設定できる。たとえば、動作率が高い信号が伝搬する配線に対しては消費電力が大きくなるため、電荷再利用を有効にして消費電力を削減するようにする。遅延が大きくなるとタイミング制約を満たさなくなるような信号が伝搬する配線に対しては電荷再利用を無効にするなどの選択が可能となる。
【００７２】
なお、信号ＣＲは、たとえば、コンフィギュレーション用のＳＲＡＭセル（図示せず）から出力される。コンフィギュレーション用のＳＲＡＭセルは、たとえば、後述する設計方法で得られる電荷再利用有効／無効設定値（図２５参照）に基づいて、設定される。
【００７３】
また、バイアス電圧ＶPB，ＶNBは、たとえば、半導体集積回路１０の外部で上記遅延時間を考慮して求められた電圧であり、専用の電源ピンを介してトランジスタＭＤ１，ＭＤ５のゲートに印加されるようにしてもよい。また、バイアス電圧ＶPB，ＶNBは、半導体集積回路１０内部の電源から生成されるようにしてもよい。
【００７４】
（電荷再利用回路３２−１の一例）
図１２は、電荷再利用回路の一例を示す図である。
以下では、図９に示した電荷再利用回路３２−１の例を示すが、他の電荷再利用回路３２−２〜３２−４についても同様の回路で実現できる。
【００７５】
電荷再利用回路３２−１は、電荷保存状態及び電荷再利用状態において、配線Ｌ１０と配線Ｌ１１とを接続させるスイッチの機能を有している。
電荷再利用回路３２−１は、トランジスタＭ７，Ｍ８，Ｍ９，Ｍ１０，Ｍ１１，Ｍ１２を有している。トランジスタＭ７〜Ｍ１２のうち、トランジスタＭ７，Ｍ９，Ｍ１１がｐチャネル型ＭＯＳＦＥＴであり、トランジスタＭ８，Ｍ１０，Ｍ１２がｎチャネル型ＭＯＳＦＥＴである。
【００７６】
トランジスタＭ７〜Ｍ１０のゲートには、前述した遅延回路４１から出力される信号ＶIN＿D１が入力される。トランジスタＭ７のソースには電源電圧ＶDDが印加され、ドレインは、トランジスタＭ８のドレイン及びトランジスタＭ１１のゲートに接続されている。トランジスタＭ８及びトランジスタＭ９のソースは互いに接続されており、信号ＶIN１が入力される。トランジスタＭ９のドレインは、トランジスタＭ１０のドレイン及びトランジスタＭ１２のゲートに接続されている。トランジスタＭ１０のソースは接地されている。
【００７７】
トランジスタＭ１１，Ｍ１２は、パストランジスタとして機能している。トランジスタＭ１１のドレインと、トランジスタＭ１２のソースには、容量ＣR１が接続されている。容量ＣR１は、配線Ｌ１１の配線容量である。トランジスタＭ１１のソースとトランジスタＭ１２のドレインには、配線Ｌ１０を伝達する信号ＶOUT１が入力される。このようなパストランジスタＭ１１，Ｍ１２が、図１に示したスイッチ２の機能を行い、トランジスタＭ７〜Ｍ１０が、図１に示した電荷再利用制御回路３の一部の機能を行う。
【００７８】
以下、第２の実施の形態の半導体集積回路１０の動作の一例を説明する。
（半導体集積回路１０の動作の一例）
図１３は、半導体集積回路の動作の一例を示すタイミングチャートである。
【００７９】
なお、以下では図１２における配線Ｌ１０は信号が伝搬される配線であり、配線Ｌ１１は信号が伝搬されない空き配線であるものとして、電荷再利用バッファ回路３１−１、電荷再利用回路３２−１の動作を中心に説明する。なお、遅延回路４１に入力される前述した信号ＣＲは、“１”になっており、電荷再利用が有効になっているものとする。
【００８０】
図１３には、前述した各信号ＶIN１，／ＶIN１，ＶIN＿D１，ＶOUT１の状態が示されている。さらに、電荷再利用バッファ回路３１−１のトランジスタＭ５，Ｍ６のゲート電圧Ｇａｔｅ＿Ｍ５，Ｇａｔｅ＿Ｍ６、電荷再利用回路３２−１のトランジスタＭ１１，Ｍ１２のゲート電圧Ｇａｔｅ＿Ｍ１１，Ｇａｔｅ＿Ｍ１２の状態が示されている。
【００８１】
信号ＶIN１，ＶIN＿D１がＨレベルのときは（タイミングｔ１０）、図１０の電荷再利用バッファ回路３１−１において、トランジスタＭ１，Ｍ４がオン状態、トランジスタＭ２，Ｍ３がオフ状態となる。このとき信号／ＶIN１はＬレベルであるので、トランジスタＭ５，Ｍ６のゲート電圧Ｇａｔｅ＿Ｍ５，Ｇａｔｅ＿Ｍ６はＬレベルであり、トランジスタＭ５はオン状態、トランジスタＭ６はオフ状態である。そのため、信号ＶOUT１は、Ｈレベルとなっている。
【００８２】
一方、電荷再利用回路３２−１では、信号ＶIN１，ＶIN＿D１がＨレベルのとき、トランジスタＭ７，Ｍ９がオフ状態となり、トランジスタＭ８，１０がオン状態となる。そのため、ゲート電圧Ｇａｔｅ＿Ｍ１１はＨレベル、ゲート電圧Ｇａｔｅ＿Ｍ１２はＬレベルとなり、トランジスタＭ１１，Ｍ１２は両方ともオフ状態となり、配線Ｌ１０，Ｌ１１は電気的に切断されている。
【００８３】
信号ＶIN１がＬレベルに立ち下がると（タイミングｔ１１）、電荷再利用バッファ回路３１−１において、遅延回路４１による遅延時間により信号ＶIN＿D１はＨレベルのままであるため、トランジスタＭ１はオン状態、トランジスタＭ２はオフ状態を維持する。一方、トランジスタＭ３はオン状態、トランジスタＭ４はオフ状態となる。このとき信号／ＶIN１はＨレベルであるので、トランジスタＭ５のゲート電圧Ｇａｔｅ＿Ｍ５はＨレベルとなり、トランジスタＭ５はオフ状態となる。一方、トランジスタＭ６のゲート電圧Ｇａｔｅ＿Ｍ６はＬレベルのままであり、トランジスタＭ６はオフ状態を維持する。
【００８４】
これにより、配線Ｌ１０は、電源ともＧＮＤとも切り離された状態となる。
一方、電荷再利用回路３２−１では、タイミングｔ１１では、信号ＶIN＿D１はＨレベルのままであるため、トランジスタＭ７〜Ｍ１０はタイミングｔ１０と同じ状態を維持する。しかし、信号ＶIN１がＬレベルになるため、ゲート電圧Ｇａｔｅ＿Ｍ１１がＬレベルとなり、トランジスタＭ１１がオンする。これにより、配線Ｌ１０，Ｌ１１が電気的に接続し、配線Ｌ１０の配線容量にチャージされていた電荷の一部が、トランジスタＭ１１を介して配線Ｌ１１の配線容量（容量ＣR１）に保存される。この電荷の移動により、信号ＶOUT１の電位は下がり始める。
【００８５】
信号ＶOUT１が、電圧ＶINT＿HIGHに達するタイミングｔ１２（電荷の移動及び保存が終わるタイミング）で信号ＶIN＿D１がＬレベルになると、電荷再利用バッファ回路３１−１において、トランジスタＭ１がオフ状態、トランジスタＭ２がオン状態となる。これにより、ゲート電圧Ｇａｔｅ＿Ｍ６がＨレベルとなり、トランジスタＭ６がオン状態となる。そのため、配線Ｌ１０は接地され（ＧＮＤに接続され）、配線Ｌ１０の配線容量に残っている電荷が放電され、信号ＶOUT１は、さらに電位が下がっていき、タイミングｔ１３で放電が完了する。
【００８６】
一方、電荷再利用回路３２−１では、タイミングｔ１２で信号ＶIN＿D１がＬレベルになると、トランジスタＭ７，Ｍ９がオン状態、トランジスタＭ８，Ｍ１０がオフ状態となる。これにより、ゲート電圧Ｇａｔｅ＿Ｍ１１がＨレベルとなり、トランジスタＭ１１がオフ状態となる。そのため、配線Ｌ１０，Ｌ１１は電気的に切断された状態となる。
【００８７】
その後、信号ＶIN１がＨレベルに立ち上がると（タイミングｔ１４）、電荷再利用バッファ回路３１−１において、信号ＶIN＿D１はＬレベルのままであるため、トランジスタＭ１はオフ状態、トランジスタＭ２はオン状態を維持する。一方、トランジスタＭ３はオフ状態、トランジスタＭ４はオン状態となる。このとき信号／ＶIN１はＬレベルであるので、トランジスタＭ５のゲート電圧Ｇａｔｅ＿Ｍ５はＨレベルのままとなり、トランジスタＭ５はオフ状態を維持する。一方、トランジスタＭ６のゲート電圧Ｇａｔｅ＿Ｍ６はＬレベルとなり、トランジスタＭ６はオフ状態となる。
【００８８】
これにより、配線Ｌ１０は、電源ともＧＮＤとも切り離された状態となる。
一方、電荷再利用回路３２−１では、タイミングｔ１４のとき、信号ＶIN＿D１はＬレベルのままであるため、トランジスタＭ７〜Ｍ１０はタイミングｔ１２と同じ状態を維持する。しかし、信号ＶIN１がＨレベルになるため、ゲート電圧Ｇａｔｅ＿Ｍ１２がＨレベルとなり、トランジスタＭ１２がオンする。これにより、配線Ｌ１０，Ｌ１１が電気的に接続し、配線Ｌ１１の配線容量（容量ＣR１）に保存されていた電荷の一部が、トランジスタＭ１２を介して配線Ｌ１０の配線容量にチャージされ始め、電荷再利用動作が開始する。また、この電荷の移動により、信号ＶOUT１の電位は上がり始める。
【００８９】
信号ＶOUT１が、電圧ＶINT＿LOWに達するタイミングｔ１５で信号ＶIN＿D１がＨレベルになると、電荷再利用バッファ回路３１−１において、トランジスタＭ１がオン状態、トランジスタＭ２がオフ状態となる。これにより、ゲート電圧Ｇａｔｅ＿Ｍ５がＬレベルとなり、トランジスタＭ５がオン状態となる。そのため、配線Ｌ１０には電源電圧ＶDDが印加され、配線Ｌ１０の配線容量がさらにチャージされ、信号ＶOUT１は、さらに電位が上がっていき、タイミングｔ１６でチャージが完了する。
【００９０】
一方、タイミングｔ１５で信号ＶIN＿D１がＬレベルになると、電荷再利用回路３２−１では、トランジスタＭ７，Ｍ９がオフ状態、トランジスタＭ８，Ｍ１０がオン状態となる。これにより、ゲート電圧Ｇａｔｅ＿Ｍ１２がＬレベルとなり、トランジスタＭ１２がオフ状態となる。そのため、配線Ｌ１０，Ｌ１１は電気的に切断された状態となる。
【００９１】
図１３のように、信号ＶIN１がＨレベルからＬレベル（“１”から“０”）になるときには、タイミングｔ１１〜ｔ１２の間、配線Ｌ１０の配線容量にチャージされた電荷の一部が、空き配線である配線Ｌ１１の配線容量に保存される。そのため、配線Ｌ１０の放電時の電圧変化は、電圧ＶINT＿HIGHから０Ｖへの変化となり、消費電力は削減される。
【００９２】
信号ＶIN１がＬレベルからＨレベル（“０”から“１”）になるときには、タイミングｔ１４〜ｔ１５の間、配線Ｌ１１の配線容量に保存された電荷の一部が、配線Ｌ１０の配線容量にチャージされる。そのため、配線Ｌ１０のチャージ時の電圧変化は、電圧ＶINT＿LOWから電源電圧ＶDDへの変化となり、消費電力は削減される。
【００９３】
たとえば、配線Ｌ１０，Ｌ１１の配線長が同じとき、前述した式（３），（４）において、ＣL＝ＣRとなる。
そのため、式（３），（４）は、以下の式（８），（９）のように表せる。
【００９４】
【数８】
2015050271.tif 000010
【００９５】
【数９】
2015050271.tif 000011
【００９６】
消費エネルギーは式（６），（７）で表せるため、信号ＶIN１が“１”から“０”に変化するときも、信号ＶIN１が“０”から“１”に変化するときも、消費エネルギーは、２ＣLＶDD2／９、となる。電荷再利用を利用しない場合（放電またはチャージする際の電圧変化が０Ｖから電源電圧ＶDD）の消費エネルギーは、ＣLＶDD2／２となるため、電荷再利用を行うことによる電力削減効果は、４／９（５６％）程度となる。
【００９７】
また、本実施の形態の半導体集積回路１０では、空き配線（上記の例では配線Ｌ１１）の配線容量を用いて、電荷再利用を行うことで、小面積で消費電力を抑えることができる。
【００９８】
なお、上記では、図９に示したように、電荷保存用として用いる配線を固定した場合について説明したが、電荷保存用として用いる配線を変更したり、１本の配線の電荷の保存用に、複数の空き配線を用いるようにしてもよい。以下では、ＳＢの他の例を説明する。
【００９９】
（ＳＢの他の例）
図１４は、ＳＢの他の例を示す図である。
図９に示したＳＢ１２と同じ要素については同一符号が付されている。
【０１００】
ＳＢ１２ａは、電荷再利用回路３２ａを使用する配線を選択する選択部３５−１と、電荷再利用回路３２ｂを使用する配線を選択する選択部３５−２を有しており、任意の配線の組み合わせで電荷再利用回路３２ａ，３２ｂを使用可能となっている。電荷再利用回路３２ａ，３２ｂは、図１２に示した電荷再利用回路３２−１と同様の回路となっている。
【０１０１】
選択部３５−１は、スイッチ（ＳＷ）５０，５１，５２，５３，５４，５５，５６，５７，５８，５９，６０，６１，６２，６３，６４，６５を有している。
スイッチ５０〜６１は、信号ＶIN１〜ＶIN４，ＶIN＿D１〜ＶIN＿D４，ＶOUT１〜ＶOUT４のうちで、電荷再利用回路３２ａに入力するものを選択する。スイッチ６２〜６５は、配線Ｌ１０〜Ｌ１３のうちで、電荷保存用の空き配線として使用するものを選択するスイッチである。
【０１０２】
選択部３５−２は、スイッチ７０，７１，７２，７３，７４，７５，７６，７７，７８，７９，８０，８１，８２，８３，８４，８５を有している。
スイッチ７０〜８１は、信号ＶIN１〜ＶIN４，ＶIN＿D１〜ＶIN＿D４，ＶOUT１〜ＶOUT４のうちで、電荷再利用回路３２ｂに入力するものを選択する。スイッチ８２〜８５は、配線Ｌ１０〜Ｌ１３のうちで、電荷保存用の空き配線として使用するものを選択するスイッチである。
【０１０３】
スイッチ５０〜６５，７０〜８５は、たとえば、コンフィギュレーション用のＳＲＡＭ（図示せず）などに格納された設定値によって、オン／オフが制御される。
図１５は、任意の１本の空き配線を使用した場合のスイッチの設定例を示す図である。
【０１０４】
図１５の例では、配線Ｌ１０，Ｌ１２が、信号が伝搬される配線であり、配線Ｌ１１，Ｌ１３が空き配線である場合のスイッチ５０〜６５，７０〜８５の設定例が示されている。黒く塗りつぶして図示されているスイッチ５０〜５２，６３，７６〜７８，８５が縦横の配線接続を行っているスイッチである。
【０１０５】
このような設定により、信号ＶIN１が“１”から“０”に変化する際には、配線Ｌ１０の配線容量にチャージされた電荷の一部が、スイッチ５１、電荷再利用回路３２ａ、スイッチ６３を介して配線Ｌ１１の配線容量に保存される。このとき、信号ＶOUT１が図１３に示したように電圧ＶINT＿HIGHに下がり、その後、放電により０Ｖに下がる。これにより、前述したように放電時の消費電力が削減される。
【０１０６】
信号ＶIN１が“０”から“１”に変化する際には、配線Ｌ１１の配線容量に保存された電荷の一部が、スイッチ６３、電荷再利用回路３２ａ、スイッチ５１を介して配線Ｌ１０の配線容量にチャージされる。このとき、信号ＶOUT１が図１３に示したように電圧ＶINT＿LOWに上がり、その後、配線Ｌ１０の配線容量に残りの電荷がチャージされ、電源電圧ＶDDに上がる。これにより、前述したようにチャージ時の消費電力が削減される。
【０１０７】
また、信号ＶIN３が“１”から“０”に変化する際には、配線Ｌ１２の配線容量にチャージされた電荷の一部が、スイッチ７７、電荷再利用回路３２ｂ、スイッチ８５を介して配線Ｌ１３の配線容量に保存される。このとき、信号ＶOUT３は、図１３に示した信号ＶOUT１と同様に電圧ＶINT＿HIGHに下がり、その後、放電により０Ｖに下がる。これにより、前述したように放電時の消費電力が削減される。
【０１０８】
信号ＶIN３が“０”から“１”に変化する際には、配線Ｌ１３の配線容量に保存された電荷の一部が、スイッチ８５、電荷再利用回路３２ｂ、スイッチ７７を介して配線Ｌ１０の配線容量にチャージされる。このとき、信号ＶOUT１が図１３に示したように電圧ＶINT＿LOWに上がり、その後、配線Ｌ１２の配線容量に残りの電荷がチャージされ、電源電圧ＶDDに上がる。これにより、前述したようにチャージ時の消費電力が削減される。
【０１０９】
図１６は、１本の配線の電荷の保存用に、複数の空き配線を用いる場合のスイッチの設定例を示す図である。
図１６の例では、配線Ｌ１１が、信号が伝搬される配線であり、その他の配線Ｌ１０，Ｌ１２，Ｌ１３が空き配線である場合のスイッチ５０〜６５，７０〜８５の設定例が示されている。黒く塗りつぶして図示されているスイッチ５３〜５５，６２，６４，６５が縦横の配線接続を行っているスイッチである。
【０１１０】
このような設定により、信号ＶIN２が“１”から“０”に変化する際には、配線Ｌ１１の配線容量にチャージされた電荷の一部が、スイッチ５４、電荷再利用回路３２ａ、スイッチ６２，６４，６５を介して配線Ｌ１０，Ｌ１２，Ｌ１３の配線容量に保存される。
【０１１１】
このとき、信号ＶOUT２が電圧ＶINT＿HIGHに下がり、その後、放電により０Ｖに下がる。
一方、信号ＶIN２が“０”から“１”に変化する際には、配線Ｌ１０，Ｌ１２，Ｌ１３の配線容量にチャージされた電荷の一部が、スイッチ６２，６４，６５、電荷再利用回路３２ａ、スイッチ５４を介して配線Ｌ１１の配線容量に保存される。
【０１１２】
このとき、信号ＶOUT２が電圧ＶINT＿LOWに下がり、その後、配線Ｌ１１に残りの電荷がチャージされ、電源電圧ＶDDに上がる。
１本の配線の電荷の保存用に、複数の空き配線を用いる場合、電荷保存用の配線容量は、１本の空き配線を用いる場合よりも大きくなる。つまり、前述の式（３），（４）の容量値ＣRは、複数の空き配線を用いる場合、１本の空き配線を用いる場合よりも大きくなる。たとえば、信号が伝搬される配線に対して、空き配線の割合が非常に大きい場合を考え、ＣR＝∞とすると、式（３），（４）から電圧ＶINT＿LOW及び電圧ＶINT＿HIGHは、以下の式（１０），（１１）で表せる。
【０１１３】
【数１０】
2015050271.tif 000012
【０１１４】
【数１１】
2015050271.tif 000013
【０１１５】
つまり、空き配線部分の配線容量が大きくなるにしたがい、電圧ＶINT＿LOW及び電圧ＶINT＿HIGHは、それぞれＶDD／２に近づいていくことが分かる。前述した式（８），（９）のように１本の配線の電荷の保存用に、１本の空き配線を用いた場合の電圧ＶINT＿LOW及び電圧ＶINT＿HIGHは、ＶDD／３及び２ＶDD／３である。そのため、複数の空き配線を用いた場合、電圧ＶINT＿LOWについては、１本の空き配線を用いた場合よりも大きくなり、電圧ＶINT＿HIGHについては、小さくなる。
【０１１６】
電圧ＶINT＿HIGHが小さくなると、放電による電圧降下分が少なくて済むので、複数の空き配線を用いた場合、１本の空き配線を用いた場合よりも、消費電力をより削減することができる。
【０１１７】
また、電圧ＶINT＿LOWが大きくなると、チャージによる電圧上昇分が少なくて済むので、複数の空き配線を用いた場合、１本の空き配線を用いた場合よりも、消費電力をより削減することができる。
【０１１８】
ＣR＝∞のとき、消費エネルギーは式（６），（７）で表せるため、信号ＶIN１が“１”から“０”に変化するときも、信号ＶIN１が“０”から“１”に変化するときも、消費エネルギーは、ＣLＶDD2／８、となる。電荷再利用を利用しない場合（放電またはチャージする際の電圧変化が０Ｖから電源電圧ＶDD）の消費エネルギーは、ＣLＶDD2／２となるため、電荷再利用を行うことによる電力削減効果は、１／４（７５％）程度となる。
【０１１９】
また、図１４〜図１６では、１つまたは複数の空き配線の配線容量を用いて、電荷再利用を行うことで、小面積で消費電力を抑えることができる。
また、図１４〜図１６のような選択部３５−１，３５−２を設けることで、たとえば、動作率が高い信号が伝搬する配線に対しては消費電力が大きくなるため、電荷再利用を行うようにして選択して、消費電力を削減させることができる。また、遅延が大きくなるとタイミング制約を満たさなくなるような信号が伝搬する配線に対しては電荷再利用を行わないように選択することができる。
【０１２０】
次に、上記のような電荷再利用を行う半導体集積回路１０の設計方法を説明する。
（半導体集積回路１０の設計方法）
図１７は、半導体集積回路の設計方法の一例の流れを示す図である。
【０１２１】
まず、ＲＴＬ（Register Transfer Level）デザインデータＤ１が論理合成によりネットリストに変換される（ステップＳ１０）。ＲＴＬデザインデータＤ１は、Ｖｅｒｉｌｏｇ−ＨＤＬ（Hardware Description Language）やＶＨＤＬ（Very high-speed integrated circuit HDL）などのハードウェア記述言語で記述される。なお、ステップＳ１０の処理では、ＳｙｓｔｅｍＣ、ＣまたはＣ＋＋記述を高位合成するようにしてもよい。
【０１２２】
次に、テクノロジマッピング処理と、クラスタリング処理が行われる（ステップＳ１１，Ｓ１２）。テクノロジマッピング処理では、組み合わせ回路部分が基本論理エレメント（図８参照）内のＬＵＴにマッピングされ、レジスタがフリップフロップにマッピングされる。クラスタリング処理では、複数の基本論理エレメントがまとめて、ＣＬＢ（図７参照）にマッピングされる。
【０１２３】
その後、配置処理が行われる（ステップＳ１３）。配置処理では、ＦＰＧＡ上でのＣＬＢの配置位置が決定される。
配置処理が終わると、電荷再利用を考慮した配線処理と、タイミング制約を考慮してどの配線に対して電荷再利用を有効にするか決定する電荷再利用モード選択処理が行われる（ステップＳ１４，Ｓ１５）。電荷再利用を有効にすると、無効の場合よりも遅延が発生するため、タイミング制約を満たす範囲で、できるだけ多くの配線で電荷再利用を有効にできるよう選択することで、消費電力をより多く削減できる。
【０１２４】
その後、ビットストリーム生成処理が行われる（ステップＳ１６）。ビットストリーム生成処理では、確定した配置配線情報から、ＦＰＧＡのコンフィギュレーション用のビットストリーム（バイナリデータ）Ｄ２が生成される。
【０１２５】
上記のような設計方法は、たとえば、以下のような設計装置にて実行される。
（設計装置の一例）
図１８は、設計装置のハードウェア例を示す図である。
【０１２６】
設計装置１００は、たとえば、図１８に示すようなコンピュータであり、プロセッサ１０１によって装置全体が制御されている。プロセッサ１０１には、バス１０９を介してＲＡＭ（Random Access Memory）１０２と複数の周辺機器が接続されている。プロセッサ１０１は、マルチプロセッサであってもよい。プロセッサ１０１は、たとえばＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ、またはＰＬＤ（Programmable Logic Device）である。またプロセッサ１０１は、ＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＰＬＤのうちの２以上の要素の組み合わせであってもよい。
【０１２７】
ＲＡＭ１０２は、設計装置１００の主記憶装置として使用される。ＲＡＭ１０２には、プロセッサ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、プロセッサ１０１による処理に必要な各種データが格納される。
【０１２８】
バス１０９に接続されている周辺機器としては、ＨＤＤ（Hard Disk Drive）１０３、グラフィック処理装置１０４、入力インタフェース１０５、光学ドライブ装置１０６、機器接続インタフェース１０７及びネットワークインタフェース１０８がある。
【０１２９】
ＨＤＤ１０３は、内蔵したディスクに対して、磁気的にデータの書き込み及び読み出しを行う。ＨＤＤ１０３は、設計装置１００の補助記憶装置として使用される。ＨＤＤ１０３には、ＯＳのプログラム、アプリケーションプログラム、及び各種データが格納される。なお、補助記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
【０１３０】
グラフィック処理装置１０４には、モニタ１０４ａが接続されている。グラフィック処理装置１０４は、プロセッサ１０１からの命令にしたがって、画像をモニタ１０４ａの画面に表示させる。モニタ１０４ａとしては、ＣＲＴ（Cathode Ray Tube）を用いた表示装置や液晶表示装置などがある。
【０１３１】
入力インタフェース１０５には、キーボード１０５ａとマウス１０５ｂとが接続されている。入力インタフェース１０５は、キーボード１０５ａやマウス１０５ｂから送られてくる信号をプロセッサ１０１に送信する。なお、マウス１０５ｂは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【０１３２】
光学ドライブ装置１０６は、レーザ光などを利用して、光ディスク１０６ａに記録されたデータの読み取りを行う。光ディスク１０６ａは、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク１０６ａには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。
【０１３３】
機器接続インタフェース１０７は、設計装置１００に周辺機器を接続するための通信インタフェースである。たとえば機器接続インタフェース１０７には、メモリ装置１０７ａやメモリリーダライタ１０７ｂを接続することができる。メモリ装置１０７ａは、機器接続インタフェース１０７との通信機能を搭載した記録媒体である。メモリリーダライタ１０７ｂは、メモリカード１０７ｃへのデータの書き込み、またはメモリカード１０７ｃからのデータの読み出しを行う装置である。メモリカード１０７ｃは、カード型の記録媒体である。
【０１３４】
ネットワークインタフェース１０８は、ネットワーク１０８ａに接続されている。ネットワークインタフェース１０８は、ネットワーク１０８ａを介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
【０１３５】
以上のようなハードウェア構成によって、図１７に示したような設計方法が実現される。
なお、設計装置１００は、たとえばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、上記の設計方法を実現する。設計装置１００に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。たとえば、設計装置１００に実行させるプログラムをＨＤＤ１０３に格納しておくことができる。プロセッサ１０１は、ＨＤＤ１０３内のプログラムの少なくとも一部をＲＡＭ１０２にロードし、プログラムを実行する。また設計装置１００に実行させるプログラムを、光ディスク１０６ａ、メモリ装置１０７ａ、メモリカード１０７ｃなどの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、たとえばプロセッサ１０１からの制御により、ＨＤＤ１０３にインストールされた後、実行可能となる。またプロセッサ１０１が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【０１３６】
以下、図１７に示したステップＳ１４の配線処理の一例を説明する。
（配線処理の一例）
図１９は、配線処理を行う機能ブロック図の一例である。
【０１３７】
図１９には、配線処理を行う配線処理部１１０と、記憶部１１１が示されている。配線処理部１１０は、記憶部１１１に格納されたネットリストＤ５、配置情報Ｄ６、信号動作率情報Ｄ７に基づき、後述するスラック率などを求めて配線処理を行い、配線情報Ｄ８を生成し、記憶部１１１に格納する。
【０１３８】
なお、配線処理部１１０と記憶部１１１は、たとえば、図１８に示した設計装置１００のプロセッサ１０１、ＲＡＭ１０２、ＨＤＤ１０３などによって実現される。
配線処理の際、配線処理部１１０では、ＦＰＧＡの内部配線構造を有効グラフで表す。
【０１３９】
図２０は、ＦＰＧＡの配線構造の一部の例を示す図である。
また、図２１は、図２０の配線構造に対応する有効グラフの一例を示す図である。
図２０の配線構造では、ＣＬＢ１２１−１の出力端子ｏｕｔ1は、ＣＢ１２３−１によって配線ｗ1，ｗ2，ｗ3に接続されている。ＣＬＢ１２１−１の出力端子ｏｕｔ2は、ＣＢ１２３−１によって配線ｗ2，ｗ3，ｗ4に接続されている。ＣＬＢ１２１−２の入力端子ｉｎ1は、ＣＢ１２３−２によって配線ｗ5，ｗ6，ｗ7に接続されている。また、ＣＬＢ１２１−３の入力端子ｉｎ2は、ＣＢ１２３−３によって配線ｗ9，ｗ10，ｗ11に接続され、入力端子ｉｎ3は、ＣＢ１２３−３によって配線ｗ10，ｗ11，ｗ12に接続されている。ＳＢ１２２−１は、配線ｗ1〜ｗ4と配線ｗ5〜ｗ8間の配線接続の切り替えを行う。ＳＢ１２２−２は、配線ｗ5〜ｗ8と配線ｗ9〜ｗ12間の配線接続の切り替えを行う。
【０１４０】
なお、図２０に示されているｓ1，ｓ2は信号の始点を表し、ｔ11，ｔ12，ｔ21は、信号の終点を表している。
図２１に示されている有効グラフでは、信号の始点ｓ1，ｓ2から信号の終点ｔ11，ｔ12，ｔ21までのパスが、出力端子ｏｕｔ1，ｏｕｔ2、入力端子ｉｎ1〜ｉｎ3、配線ｗ1〜ｗ12を頂点として表されている。
【０１４１】
このような有効グラフでは、配線ｗ1〜ｗ12の遅延が頂点間を接続する辺の重みとして表される。後述するコスト関数を用いて求めたコストが最小となるような始点−終点間のパスを求めることにより、信号の配線への最適な割り当てを決定することができる。
【０１４２】
図２２は、配線処理の一例の流れを示すフローチャートである。
配線処理部１１０は、事前準備として、１本の配線への複数の信号の割り当てを許容し、遅延が最小となるような配線処理を行っておく。
【０１４３】
まず、配線処理部１１０は、複数の信号で使用される配線があるか否かを判定する（ステップＳ２０）。配線処理部１１０は、複数の信号で使用される配線があると判定したときには、ステップＳ２１からの処理を行い、複数の信号で使用される配線がないと判定したときには、配線処理を終了する。
【０１４４】
ステップＳ２１の処理では、配線処理部１１０は、信号ｉが伝達されるパスを保持する配線ツリーＲＴiを初期化する。配線ツリーＲＴiの初期化後、配線処理部１１０は、信号ｉが伝達されるパスの始点ｓiを配線ツリーＲＴiに追加する（ステップＳ２２）。
【０１４５】
その後、配線処理部１１０は、幅優先探索手法により、以下の手順で終点を探索していく。
配線処理部１１０は、優先度付キューＰＱを初期化し、配線ツリーＲＴiの葉ノード（端点）をコスト＝０として優先度付キューＰＱに追加する（ステップＳ２３）。次に、配線処理部１１０は、優先度付キューＰＱから、コストが最小となるノードｍを取り出し（ステップＳ２４）、ノードｍが信号ｉの未到達の終点ｔijであるか否かを判定する（ステップＳ２５）。
【０１４６】
配線処理部１１０は、ノードｍを未到達の終点ｔijでないと判定したとき、ノードｍの隣接ノードｎに関するコスト計算及びコストの優先度付キューＰＱへの追加処理を行う（ステップＳ２６）。ステップＳ２６の処理の例については後述する。ステップＳ２６の処理後には、ステップＳ２４からの処理が繰り返される。
【０１４７】
一方、配線処理部１１０は、ノードｍを未到達の終点ｔijと判定したとき、終点ｔijから始点ｓiへと逆順で、経路内の１つのノードｎを選択してコストを更新し（ステップＳ２７）、配線ツリーＲＴiに選択したノードｎを追加する（ステップＳ２８）。
【０１４８】
そして、配線処理部１１０は、終点ｔijから始点ｓiへの経路内の全ノードｎの処理が完了したか否かを判定し（ステップＳ２９）、処理が完了していないと判定したときには、ステップＳ２７からの処理を繰り返す。
【０１４９】
配線処理部１１０が、終点ｔijから始点ｓiへの経路内の全ノードｎの処理が完了したと判定したときには、ある始点ｓiからある終点ｔijへのパスが求められたことになる。そこで、配線処理部１１０は、信号ｉの全終点ｔijが探索済であるか否かを判定する（ステップＳ３０）。終点ｔijが複数あり、未探索の終点ｔijがあるときには、配線処理部１１０は、ステップＳ２３からの処理を繰り返す。
【０１５０】
配線処理部１１０は、全終点ｔijを探索済と判定したとき、全信号の配線への割り当てが完了したか否かを判定する（ステップＳ３１）。配線ツリーＲＴiは、信号ｉのパスを一時的に保存するものであるため、１つの信号の配線への割り当てが終わるごとに初期化される。そのため、配線処理部１１０は、全信号の配線への割り当てが完了していないと判定したときには、ステップＳ２１からの処理を繰り返す。
【０１５１】
配線処理部１１０は、全信号の配線への割り当てが完了したと判定したときには、ステップＳ２０の判定を再び行う。ここで、複数の信号で使用される配線があると、配線処理部１１０は、再度全信号に対しての配線処理を実施する。ここで、前回の配線処理の結果に応じて、コスト関数の係数が変わるため、次の配線処理では、信号は、前回のパスとは異なるパスを通るため、全信号の配線への割り当てを繰り返していくことにより、最終的には、複数の信号で使用される配線がなくなる。これによって、配線処理が終了する。
【０１５２】
次に、ステップＳ２６の処理の例を、電荷保存用として用いる配線を固定した場合（図９参照）と、電荷保存用として用いる配線を任意に変更できる場合（図１４参照）について説明する。
（電荷保存用として用いる配線を固定した場合）
図２３は、電荷保存用として用いる配線を固定した場合の、ノードｍに隣接するノードｎに関するコスト計算及び、コストの優先度付キューＰＱへの追加処理の例を示すフローチャートである。
【０１５３】
配線処理部１１０は、信号ｉの割り当て候補のノードｍに隣接する１つのノードｎを選択し（ステップＳ４０）、ノードｎの電荷保存用の配線が、他の信号ｊの割り当て候補として使用済であるか否か判定する（ステップＳ４１）。
【０１５４】
ノードｎの電荷保存用の配線が使用済ではないとき、配線処理部１１０は、コスト関数Ａを用いて、コストＣｏｓｔn＋Ｐimを算出し、優先度付キューＰＱに追加する（ステップＳ４２）。Ｃｏｓｔnは、ノードｎでのコストであり、Ｐimは、始点ｓiからノードｍまでのコストである。
【０１５５】
ステップＳ４２の処理では、配線処理部１１０は、Ｐａｔｈｆｉｎｄｅｒ方式（非特許文献２参照）を用い、コスト関数Ａとして、以下の式（１２）でＣｏｓｔnを求める。
【０１５６】
【数１２】
2015050271.tif 000014
【０１５７】
式（１２）において、Ｃｒｉｔ（ｉ）は、以下の式（１３）で表され、信号ｉのスラック率を表す。
【０１５８】
【数１３】
2015050271.tif 000015
【０１５９】
式（１３）において、ｄｅｌａｙiは、信号ｉの遅延、ｄｅｌａｙmaxは、全信号の最大遅延である。そのため、０＜Ｃｒｉｔ（ｉ）≦１となる。Ｃｒｉｔ（ｉ）は、信号ｉの遅延が最大遅延に近づくほど（タイミングに余裕がないほど）１に近づき、最大遅延より小さいほど（タイミングに余裕があるほど）０に近い値となる。
【０１６０】
式（１２）のｃｏｎｇ＿ｃｏｓｔ（ｎ）は、ノードｎの混雑度を示し、多くの信号の割り当て候補となっているほど大きな値となる。また、ｄｅｌａｙ＿ｃｏｓｔ（ｎ）は、配線ｎの遅延を示している。
【０１６１】
前述したように、図２２のステップＳ２４の処理では、コストが最小となるノードｍが取り出される。式（１２）のように、信号ｉのタイミングがクリティカルのとき（Ｃｒｉｔ（ｉ）が１に近いとき）、ｄｅｌａｙ＿ｃｏｓｔ（ｎ）がコストにおいて支配的となり、ノードｎの遅延が小さいほどコストが小さくなる。そのため、ノードｎが、ステップＳ２４の処理で選ばれやすくなる。
【０１６２】
また、タイミングに余裕があるほど（Ｃｒｉｔ（ｉ）が０に近いほど）、ｃｏｎｇ＿ｃｏｓｔ（ｎ）が支配的となり、ノードｎの混雑度が小さいほどコストが小さくなる。つまり、ノードｎの混雑度が小さいほど、ステップＳ２４の処理で選ばれやすくなる。
【０１６３】
一方、ノードｎの電荷保存用の配線が使用済のとき、配線処理部１１０は、コスト関数Ｂを用いて、コストＣｏｓｔn＋Ｐimを算出し、優先度付キューＰＱに追加する（ステップＳ４３）。
【０１６４】
ステップＳ４３の処理では、配線処理部１１０は、コスト関数Ｂとして、以下の式（１４）でＣｏｓｔnを求める。
【０１６５】
【数１４】
2015050271.tif 000016
【０１６６】
式（１４）において、αiは信号ｉの動作率、ＰＦは調整用の定数、ｒｅｓ＿ｃｏｓｔ（ｎ）は以下の式（１５）で表される。
【０１６７】
【数１５】
2015050271.tif 000017
【０１６８】
式（１５）において、ｊは信号ｉの割り当て候補であるノードｎの電荷保存用の配線に割り当てられている信号のインデックスを示している。
式（１４）のように、信号ｉのタイミングがクリティカルのとき（Ｃｒｉｔ（ｉ）が１に近いとき）、ｄｅｌａｙ＿ｃｏｓｔ（ｎ）がコストにおいて支配的となる。そのため、ノードｎの遅延が大きいほどコストが大きくなり、ステップＳ２４の処理で信号ｉのパスの候補として選ばれにくくなる。電荷再利用を行う配線は、前述した理由により遅延が大きくなるので、ノードｎの元々の遅延（配線遅延）が大きい場合、この処理によりノードｎは、信号ｉのパスの候補としては選択されにくくなる。これにより、遅延が大きいノードｎに対する電荷再利用の実行が抑制され、タイミングの余裕がより小さくなることを抑制できる。
【０１６９】
逆にノードｎの遅延が小さいと、ノードｎは、ステップＳ２４の処理で信号ｉのパスの候補として選ばれやすくなる。そのため、ノードｎに対する電荷再利用が行われることで、消費電力を削減できる。
【０１７０】
信号ｉのタイミングに余裕があるとき（Ｃｒｉｔ（ｉ）が０に近いとき）は、信号ｉの動作率αiが大きいほど、ｃｏｎｇ＿ｃｏｓｔ（ｎ）とαi・ＰＦの値が支配的となる。ｃｏｎｇ＿ｃｏｓｔ（ｎ）が一定のとき、ＰＦは、αi・ＰＦの値が支配的なとき、コストが小さくなるように適切に調整されているため、ステップＳ２４の処理ではノードｎは信号ｉのパスの候補として選ばれやすくなる。つまり、ノードｎは信号ｉのパスとして選択されやすくなり、ノードｎに対する電荷再利用が行われることで、消費電力を削減できる。
【０１７１】
信号ｉのタイミングに余裕があり、信号ｉの動作率が低いとき、ｃｏｎｇ＿ｃｏｓｔ（ｎ）とｒｅｓ＿ｃｏｓｔ（ｎ）の値が支配的となる。ｃｏｎｇ＿ｃｏｓｔ（ｎ）が一定で、信号ｊのタイミングに余裕があるとき（Ｃｒｉｔ（ｊ）が０に近いとき）、電荷保存用の配線の使用に既に割り当てられている信号ｊの動作率が高いと、コストが大きくなる。
【０１７２】
そのため、ノードｎは、ステップＳ２４の処理で信号ｉのパスの候補として選ばれにくくなる。これによりノードｎの電荷保存用の配線が、信号ｊを伝搬するパスの一部として選択されやすくなり、信号ｊを伝達する配線で電荷再利用が行われやすくなる。このように、動作率の高い信号ｊが伝搬される配線に対して電荷再利用が行われることで、消費電力の削減効果が高まる。
【０１７３】
ステップＳ４２，Ｓ４３の処理の後、配線処理部１１０は、ノードｍの全隣接ノードｎの処理が完了したか否かを判定する（ステップＳ４４）。
配線処理部１１０は、ノードｍの全隣接ノードｎの処理が完了していないと判定したときには、ステップＳ４０からの処理を繰り返す。配線処理部１１０は、ノードｍの全隣接ノードｎの処理が終了したと判定したときには、ノードｍの隣接ノードｎに関するコスト計算及び、コストの優先度付キューＰＱへの追加処理を終了する。
（電荷保存用として用いる配線を任意に変更できる場合）
図２４は、電荷保存用として用いる配線を任意に変更できる場合の、ノードｍに隣接するノードｎに関するコスト計算及び、コストの優先度付キューＰＱへの追加処理の例を示すフローチャートである。
【０１７４】
配線処理部１１０は、信号ｉの割り当て候補のノードｍに隣接する１つのノードｎを選択し（ステップＳ５０）、ノードｎの電荷保存用の配線から未処理の配線を１本選択する（ステップＳ５１）。
【０１７５】
そして、配線処理部１１０は、ノードｎの電荷保存用の配線が、他の信号ｊの割り当て候補または他の信号ｊが伝搬する配線が使用する電荷保存用の配線の候補として使用済であるか否か判定する（ステップＳ５２）。
【０１７６】
ノードｎの電荷保存用の配線が使用済ではないとき、配線処理部１１０は、前述の式（１２），（１３）で示されるコスト関数Ａを用いて、コストＣｏｓｔn＋Ｐimを算出する（ステップＳ５３）。
【０１７７】
ノードｎの電荷保存用の配線が使用済のとき、配線処理部１１０は、前述の式（１４），（１５）で示されるコスト関数Ｂを用いて、コストＣｏｓｔn＋Ｐimを算出する（ステップＳ５４）。
【０１７８】
ただし、図２４の処理において、式（１５）のｊは、ステップＳ５１の処理で選択された電荷保存用の配線に既に割り当てられている信号、またはその電荷保存用の配線を使用する他の配線を伝搬する信号のインデックスを示している。
【０１７９】
信号ｉのタイミングがクリティカルのときと、信号ｉのタイミングに余裕があり、かつ信号ｉの動作率αiが大きいときには、前述した電荷保存用として用いる配線を固定した場合と同様の作用効果が得られる。
【０１８０】
信号ｉのタイミングに余裕があり、信号ｉの動作率αiが小さいとき、ｃｏｎｇ＿ｃｏｓｔ（ｎ）とｒｅｓ＿ｃｏｓｔ（ｎ）の値が支配的となる。このとき、上記の信号ｊの動作率αiが大きいと、コストが大きくなる。そのため、ノードｎは、ステップＳ２４の処理で信号ｉのパスの候補として選ばれにくくなる。これによりノードｎの電荷保存用の配線が、信号ｊを伝搬するパスの一部、または、信号ｊを伝搬する配線の電荷保存用の配線として選択されやすくなる。このように、動作率の高い信号ｊが伝搬される配線に対して電荷再利用を適用されやすくすることで、消費電力の削減効果が高まる。
【０１８１】
ステップＳ５３，Ｓ５４の後、配線処理部１１０は、ノードｎの電荷保存用の全配線に対してステップＳ５１〜Ｓ５４の処理が完了したか否かを判定する（ステップＳ５５）。
配線処理部１１０は、ノードｎの電荷保存用の全配線に対してステップＳ５１〜Ｓ５４の処理が完了していないと判定したとき、ステップＳ５１からの処理を繰り返す。
【０１８２】
配線処理部１１０は、ノードｎの電荷保存用の全配線に対してステップＳ５１〜Ｓ５４の処理が完了したと判定したとき、全配線のうちコストが最小となる配線を選択して、求めたコストを優先度付キューＰＱに追加する（ステップＳ５６）。
【０１８３】
その後、配線処理部１１０は、ノードｍの全隣接ノードｎに対して、ステップＳ５０〜Ｓ４６の処理が完了したか否かを判定する（ステップＳ５７）。
配線処理部１１０は、ノードｍの全隣接ノードｎに対して、ステップＳ５０〜Ｓ５６の処理が完了していないと判定したとき、ステップＳ５０からの処理を繰り返す。
【０１８４】
配線処理部１１０は、ノードｍの全隣接ノードｎに対して、ステップＳ５０〜Ｓ５６の処理が完了したと判定したとき、ノードｍの隣接ノードｎに関するコスト計算及び、コストの優先度付キューＰＱへの追加処理を終了する。
【０１８５】
以下、図１７に示したステップＳ１５の電荷再利用モード選択処理の一例を説明する。
（電荷再利用モード選択処理の一例）
図２５は、電荷再利用モード選択処理を行う機能ブロック図の一例である。
【０１８６】
図２５には、図１９に示した記憶部１１１のほか、タイミンググラフ生成部１３０、目的関数生成部１３１、制約条件生成部１３２、電荷再利用有効／無効決定部１３３が示されている。
【０１８７】
タイミンググラフ生成部１３０は、記憶部１１１に記憶されたネットリストＤ５、配置情報Ｄ６、配線情報Ｄ８に基づき、タイミンググラフＤ９を生成し、記憶部１１１に記憶する。
【０１８８】
目的関数生成部１３１は、記憶部１１１に記憶された信号動作率情報Ｄ７とタイミンググラフＤ９に基づき、目的関数Ｄ１０を生成する。
制約条件生成部１３２は、記憶部１１１に記憶されたタイミンググラフＤ９とタイミング制約Ｄ１１に基づき、ノード単位で制約条件Ｄ１２を生成し、記憶部１１１に記憶する。
【０１８９】
電荷再利用有効／無効決定部１３３は、記憶部１１１に記憶された目的関数Ｄ１０と制約条件Ｄ１２に基づき、電荷再利用有効／無効設定値Ｄ１３を生成し、記憶部１１１に記憶する。本実施の形態において、電荷再利用有効／無効決定部１３３は、混合線形計画法（ＭＩＬＰ：Mixed Integer Linear Programming）を用いてどの配線の電荷再利用を有効にするか否かを決定するＭＩＬＰソルバであるものとする。
【０１９０】
タイミンググラフ生成部１３０、目的関数生成部１３１、制約条件生成部１３２、電荷再利用有効／無効決定部１３３及び記憶部１１１は、たとえば、図１８に示した設計装置１００のプロセッサ１０１、ＲＡＭ１０２、ＨＤＤ１０３などによって実現される。
【０１９１】
以下、電荷再利用を有効にする配線を求める例を示す。
図２６は、タイミンググラフで表す論理回路の一例を示す図である。
端子ＰＩ１，ＰＩ２から入力される信号ｌ１，ｌ２のＡＮＤ論理をとって信号Ｏとして端子ＰＯに出力するＡＮＤ回路１４０が示されている。
【０１９２】
タイミンググラフ生成部１３０は、ネットリストＤ５、配置情報Ｄ６、配線情報Ｄ８に基づき、図２６に示すような論理回路から、以下のようなタイミンググラフを生成する。
図２７は、生成されたタイミンググラフの一例を示す図である。
【０１９３】
タイミンググラフＧ（Ｖ，Ｅ）において、グラフの頂点は論理回路の配線及び端子、グラフの辺は配線のプログラマブルスイッチ及びＬＵＴで表される組み合わせ回路を示している。
【０１９４】
このとき、頂点の集合Ｖにおける、ある配線（頂点）ｖの遅延Ｄvは、以下の式（１６）で表される。
【０１９５】
【数１６】
2015050271.tif 000018
【０１９６】
式（１６）において、ＤＩｎｔｒｉｎｓｉｃvは、電荷再利用を行わない場合の遅延を示し、γvは、配線ｖが電荷再利用モードを使用するか否か（電荷再利用が有効か否か）を示す２値（０／１）の変数を示している。また、δvは、電荷再利用が有効のときに追加される遅延を示している。
【０１９７】
入力からある頂点ｖまでのワーストケースの遅延は、以下の式（１７）で表される。
【０１９８】
【数１７】
2015050271.tif 000019
【０１９９】
ワーストケースの遅延は、頂点ｖへの全入力遅延を、ｍａｘ関数を使って求めてもよいが、本実施の形態では、混合整数線形計画法を用いるため、上記の式（１７）のような形で表される。なお、入力が１つの場合は不等号なしの形となる。
【０２００】
ＣＯを組み合わせ回路の終端（全体の出力端子、フリップフロップの入力端子など）となるような集合Ｖの部分集合とし、ユーザ定義のタイミング制約をＴとすると、制約条件生成部１３２は、以下の式（１８）で表される制約条件を生成する。
【０２０１】
【数１８】
2015050271.tif 000020
【０２０２】
また、ＣＲを集合Ｖの部分集合である電荷再利用を適用可能な（空き配線をもつ）配線とすると、目的関数生成部１３１は、以下の式（１９）で表される目的関数を生成する。
【０２０３】
【数１９】
2015050271.tif 000021
【０２０４】
式（１９）において、αiは、頂点ｉの動作率で、最初の項は動作率で重み付けされた電荷再利用可能な配線の和を表し、後の項は遅延の和となる。
電荷再利用有効／無効決定部１３３は、式（１６）〜（１８）の条件と、式（１９）を用いてΦを最大にするようなγを混合整数線形計画法で求めることにより最も多くの配線での電荷再利用を有効にすることができる。
【０２０５】
たとえば、図２７に示すようなタイミンググラフＧ（Ｖ，Ｅ）で、配線をＡ，Ｂ，Ｃ，Ｄ、各配線のＤＩｎｔｒｉｎｓｉｃvを１ｎｓとし、δvを０．５ｎｓとすると、式（１６），（１７）から式（２０）、式（２１）が得られる。
【０２０６】
【数２０】
2015050271.tif 000022
【０２０７】
【数２１】
2015050271.tif 000023
【０２０８】
タイミング制約Ｔを５ｎｓとすると、式（１８）より、制約条件として式（２２）が得られる。
【０２０９】
【数２２】
2015050271.tif 000024
【０２１０】
また、目的関数は、以下の式（２３）のようになる。
【０２１１】
【数２３】
2015050271.tif 000025
【０２１２】
電荷再利用有効／無効決定部１３３は、式（２２）の制約条件と、式（２３）の目的関数に基づき、混合整数線形計画法を用いて、最も多くの配線で電荷再利用を有効にする解を求める。
【０２１３】
上記の例の場合、γA＝１、γB＝０、γC＝０，γF＝０が解となり、配線Ａで電荷再利用を有効とし、配線Ｂ，Ｃ，Ｆで電荷再利用を無効とすることで、タイミング制約を満たしながら最も多くの配線で電荷再利用を有効にできる、という結果が得られる。
【０２１４】
これにより、タイミング制約を満たしながら、電力をより多く削減することができる。
以上、実施の形態に基づき、本発明の半導体集積回路の一観点について説明してきたが、これらは一例にすぎず、上記の記載に限定されるものではない。
【符号の説明】
【０２１５】
１  半導体集積回路
２  スイッチ
３  電荷再利用制御回路
Ｃ１，Ｃ２  配線容量
Ｌ１，Ｌ２  配線
ＶIN  信号
【図１】
2015050271.tif 000026
【図２】
2015050271.tif 000027
【図３】
2015050271.tif 000028
【図４】
2015050271.tif 000029
【図５】
2015050271.tif 000030
【図６】
2015050271.tif 000031
【図７】
2015050271.tif 000032
【図８】
2015050271.tif 000033
【図９】
2015050271.tif 000034
【図１０】
2015050271.tif 000035
【図１１】
2015050271.tif 000036
【図１２】
2015050271.tif 000037
【図１３】
2015050271.tif 000038
【図１４】
2015050271.tif 000039
【図１５】
2015050271.tif 000040
【図１６】
2015050271.tif 000041
【図１７】
2015050271.tif 000042
【図１８】
2015050271.tif 000043
【図１９】
2015050271.tif 000044
【図２０】
2015050271.tif 000045
【図２１】
2015050271.tif 000046
【図２２】
2015050271.tif 000047
【図２３】
2015050271.tif 000048
【図２４】
2015050271.tif 000049
【図２５】
2015050271.tif 000050
【図２６】
2015050271.tif 000051
【図２７】
2015050271.tif 000052