(57)【特許請求の範囲】
【請求項１】
マトリックス状に配置された複数個の演算回路と、
前記複数個の演算回路のうち互いに隣接する４個の演算回路のうちの互いに隣接する２個の間を通り抜けるように配置された複数本の配線トラックと、
前記４個の演算回路によって囲まれる位置に設けられ、前記互いに隣接する２個の演算回路の間の複数本の配線トラックのうちの１本と、互いに隣接する他の２個の演算回路の間の複数本の配線トラックのうちの１本とを接続するスイッチブロックと、
前記複数個の演算回路のうちの１つから他の１つに信号を伝送するために、それぞれ前記配線トラックと前記スイッチブロックとによって構成された第１配線経路及び第２配線経路の遅延を比較するために前記演算回路のうちの他の１つに設けられた第１遅延比較器と、
前記複数個の演算回路のうちの他の１つからさらに他の１つに信号を伝送するために、それぞれ前記配線トラックと前記スイッチブロックとによって構成された第３配線経路及び第４配線経路の遅延を比較するために前記演算回路のうちのさらに他の１つに設けられた第２遅延比較器とを備えたことを特徴とする半導体デバイス。
【請求項２】
前記第１遅延比較器及び前記第２遅延比較器は、ＳＲラッチによって構成されている請求項１記載の半導体デバイス。
【請求項３】
前記演算回路のうちの他の１つ及びさらに他の１つは、前記ＳＲラッチの前段に設けられてクラスタ化されたＬＵＴを有している請求項２記載の半導体デバイス。
【請求項４】
前記各演算回路は、可変論理ブロックによって構成されている請求項１記載の半導体デバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マトリックス状に配置された複数個の演算回路を備え、演算回路間の配線経路が変更可能に構成された半導体デバイスに関するものである。
【背景技術】
【０００２】
ムーアの法則に従い集積回路は年々微細化の道を辿っている。製造技術の進歩によりＬＳＩの性能は向上を続けているがデバイスの特性バラツキによる回路性能のばらつきは深刻化している。図１７に示すように、以前はチップ間ばらつきと呼ばれる、デバイスの特性がウエハ上を滑らかに変動するばらつき成分が支配的であったが、近年の微細プロセスにおいてはチップ内でデバイス特性が確率分布に基づいて変化するチップ内ばらつきが支配的となっている。図中、ｆｒｅｑｕｅｎｃｙ  は、チップの性能に相当する。微細プロセスにおけるチップ内ばらつきは、トランジスタの閾値電圧に影響を与える不純物密度のランダムなばらつきによって生じる。
【０００３】
このようなデバイス特性のばらつきを解決するために統計的静的遅延解析（ＳＳＴＡ）（例えば、非特許文献１参照）やＤＦＭなどによるばらつきを考慮した設計が考案されている。チップ内ばらつきに対する従来手法では、プロセス技術や回路技術を用いてばらつきを抑えるのみであり、例えば、チップや機能ブロック毎に基板電圧を制御する基板バイアス制御がある（非特許文献２参照）。しかしながら、非特許文献３に記載のように、異なる特性をもつ小さな領域に対して様々な電圧を供給するのは不可能であるので、基板バイアス制御は高周波帯域や現在の微細プロセスにおいては効果が小さい。
【０００４】
将来の微細化プロセスにおいてデバイスばらつきを抑制する事は困難であると予想される。そこで本願の発明者は、ばらつきを抑制するのではなく、チップ内ばらつきを利用することができ、ばらつきに応じて再構成可能なデバイスを提案した（非特許文献４参照）。これにより、チップ内ばらつきがより大きくなるほど、回路性能をより向上することができる。
【０００５】
現在の微細プロセスにおいてＦＰＧＡ（フィールドプログラマブルゲートアレイ（登録商標））でのばらつきを観察するために、９０ｎｍプロセスにおいてｉｓｌａｎｄ−ｓｔｙｌｅ ＦＰＧＡを試作した。図１８（ａ）は、ＦＰＧＡの全体構造を示す概略図であり、図１８（ｂ）は、チップの写真である。
【０００６】
図１８（ａ）に示すように、ＦＰＧＡは４８×４８の論理ブロックアレイを持ち、チップ面積は３ｍｍ角である。このチップは、ＰＬＬ、ＳＲＡＭおよびカウンタをさらに備えている。
【０００７】
図１９は、上記ＦＰＧＡの構造を示す概略図であり、ＦＰＧＡには、複数のＣＬＢ１３０（可変論理ブロック（Ｃｏｎｆｉｇｕｒａｂｌｅ Ｌｏｇｉｃ  Ｂｌｏｃｋ））、ＳＢ１４０（スイッチブロック（Ｓｗｉｔｃｈ Ｂｌｏｃｋ））およびＣＢ１７０（入出力スイッチ）が構成部品として設けられている。図中のレイアウト単位をマクロ化して、４８×４８個のアレイ状に配置することで、４７×４７はほぼ均質なレイアウトとなる。
【０００８】
図２０（ａ）は、ＣＬＢ１３０の構成を示す回路図である。ＣＬＢ１３０は、４入力のＬＵＴ１３１、４つのセレクタ１３２ａ・１３２ｂ・１３２ｃ・１３２ｄ、５つのＤＦＦ１３３ａ・１３３ｂ・１３３ｃ・１３３ｄ・１３３ｅを備えている。この試作ＦＰＧＡでは、セレクタ１３２ａ・１３２ｂ・１３２ｄおよびＤＦＦ１３３ｂ・１３３ｄが追加されている。この追加による面積オーバーヘッドは２３％であるが、チップ全体では１％の増加にとどまる。
【０００９】
図２０（ｂ）は、ＤＦＦ１３３ｂを示す回路図である。ＤＦＦ１３３ｂは分周器として使用され、セレクタ１３２ｃからの発振波形を数回分周し、分周波形を出力する。この発振周波数は、論理ブロックアレイの性能（遅延時間）に依存しているので、発振周波数を測定することで、当該性能を判別できる。
【００１０】
発振波形は、ＦＰＧＡ内にリングオシレータ（ＲＯ）を設けることで発生させる。図２１（ａ）は、リングオシレータの構成例を示す回路図である。リングオシレータは、複数のインバータを環状に接続することで発振する。
【００１１】
図２１（ｂ）に示すように、このようなリングオシレータを論理ブロック１個を使用して構成し、発振させる。発振波形を図２０（ｂ）に示すＤＦＦ１３３ｂによって分周し、カウンタで一定時間の発振回数をカウントする。ここで、分周回数をｄ、発振回数をＮ、計数時間をＴとすると、周波数ｆは、
ｆ＝（Ｎ×２ｄ）／Ｔ
となる。
【００１２】
このように、１つのチップにつき、４７×４８×８個のブロックにおいて、周波数ｆを測定する。図２２は、ＦＰＧＡのばらつき測定結果を示す概略図であり、性能によって各論理ブロックの濃淡が決定されている。サンプルＡ〜Ｄにおける同じ場所でも構成により速度が異なり、隣接する論理ブロックであっても全く性能が異なる場合がある。これにより、試作したチップでは位置相関のないランダムばらつきが支配的であることが分かる。
【００１３】
また、図２３は、ＦＰＧＡのばらつき測定結果を示すヒストグラムであり、１チップ１６１９２個のリングオシレータの発振周波数分布を示している。このヒストグラムは、正規分布の確率密度関数に測定結果のμ、σを代入した曲線とほぼ一致し、歪度の１０チップ平均は０．００５５、尖度の１０チップ平均は０．０２５である。これから、チップ内遅延ばらつきは、正規分布に従っていることが分かる。
【００１４】
非特許文献５では、ＦＰＧＡにおいてチップ内ばらつきを利用する、領域に応じた機能割り当て（ｒｅｇｉｏｎ ｒｅｌｏｃａｔｉｏｎ）、複数コンフィグレーション（ｍｕｌｔｉｐｌｅ ｃｏｎｆｉｇｕｒａｔｉｏｎｓ）、クリティカルパス再構成（ｃｒｉｔｉｃａｌ ｐａｔｈ ｒｅｃｏｎｆｉｇｕｒａｔｉｏｎ）の三つの手法が開示されている。
【００１５】
領域に応じた機能割り当ては、デバイス特性がチップ上をなめらかに変動するシステマティックばらつきに適している。システマティックばらつきが支配的であると、デバイス特性はチップ上の位置によって変化する。このように、隣接する素子のばらつきに相関があれば、遅延ばらつきの測定によって各チップのばらつきマップを得る事は容易になる。複数コンフィグレーションとクリティカルパス再構成では、比較的長いクリティカルパスをもつ機能ブロックを、システマティックばらつきによって高速になっている領域に割り当てることにより、ランダムばらつきによる回路性能の低下を防止している。
【００１６】
しかしながら、図２２に示すように、現在の微細プロセスでは位置相関の無いランダムばらつきが支配的である。無相関なランダムばらつきが支配的であると、これらの素子を構成している個々のトランジスタの特性は、全て異なったものとなる。例えば、スイッチブロックを構成する各々のスイッチはそれぞれ異なった速度となる。
【００１７】
したがって、領域に応じた機能割り当ての手法では、個々の論理ブロックやスイッチブロック、コネクションブロックの性能を予測し、個々のスイッチの速度ばらつきを測定するのは非常に困難となる。非特許文献６において指摘されているように、チップ毎に最適な配置を行うために詳細なばらつき情報を得ることは難しいため、測定したばらつきマップを基にしてチップ毎に最適なコンフィグレーションを得ることは不可能である。
【００１８】
このため、ランダムばらつきによる速度、歩留まりの低下を改善する手法としては、クリティカルパス再構成および複数コンフィグレーションが適している。
【００１９】
図２４は、複数コンフィグレーションの概念図である。非特許文献７では、ＭＥＣＰＣｓ（Ｍｕｔｕａｌｌｙ Ｅｘｃｌｕｓｉｖｅ Ｃｒｉｔｉｃａｌ Ｐａｔｈ Ｃｏｎｆｉｇｕｒａｔｉｏｎｓ）と呼ばれる複数コンフィグレーションの手法を提案している。これはほぼ同じ性能の複数のコンフィグレーションを用意する。コンフィグレーションは、クリティカルパスが前に生成したコンフィグレーションのクリティカルパスによって既に用いられている素子を用いないように配線される。ここで生成したコンフィグレーションをＦＰＧＡに搭載し、タイミング制約を満たすコンフィグレーションが見つかるまでタイミング検証が行われる。
【００２０】
図２５は、クリティカルパス再構成の概念図である。クリティカルパス再構成は、全てのチップで初期構成を同一にする。タイミング制約を満たさないクリティカルパスを再配線し、タイミング検証を行う。全てのクリティカルパスがタイミング制約を満たすか、ある回数を超えるまで再配線およびタイミング検証を繰り返す。
【００２１】
複数コンフィグレーションでは全てのコンフィグレーションについてテストを行う。クリティカルパス数が多くなると、クリティカルパスがタイミング制約に違反する確率も大きくなる。
【００２２】
一方、クリティカルパス再構成では、タイミング制約を満たしたクリティカルパスは固定され、タイミング制約に違反したパスのみ再配線される。個々のチップのランダムばらつきに合わせてコンフィグレーションは徐々に最適化される。
【００２３】
図２６は、従来の半導体デバイス９１の構成を示すブロック図である。半導体デバイス９１は、フィールドプログラマブルデバイスによって構成されており、基板２を備えている。基板２には、複数のＣＬＢ９３ａ〜ＣＬＢ９３ｏがマトリックス状に配置されている。また、ＳＢ９４ａ〜９４ｈが、４個のＣＬＢに囲まれる位置に設けられている。互いに隣接するＣＬＢ９３間には、複数本のトラック５が設けられ、各ＳＢ９４は、互いに隣接するＣＬＢ９３間のトラック５のうちの１本と、互いに隣接する他のＣＬＢ９３間のトラック５のうちの１本とを接続する。
【００２４】
ＳＢ９４は、ｉｓｌａｎｄ−ｓｔｙｌｅアーキテクチャの一般的なＦＰＧＡを開示している非特許文献８に開示されているスイッチブロックである。図２７は、ＳＢ９４の構造を示す概略図であり、ＣＬＢ間の配線トラックを４本とする。配線トラックＬ１は配線トラックＴ１、Ｒ１、Ｂ１と接続することができ、同様に、各々の配線トラックは３方向の配線トラックと接続することができる。このように、ＳＢ９４では、スイッチブロックの自由度Ｆｓは３となる。ここで、自由度とは、各々の配線トラックが接続可能な他の配線トラックの数を指す（非特許文献９参照）。
【００２５】
図２８は、クリティカルパスのトラック入れ替えを示す概念図である。クリティカルパスがタイミング制約に違反しているとき、図２６に示す配線経路変更部６は、ＣＬＢ間のパスを隣接する配線トラックに再配線する。隣接する配線トラックに再配線したとき、遅延が改善されるような再配線のみ受け入れる。
【００２６】
また、再配線を実行するために、どのパスが最適パス（クリティカルパス）であるかを知る必要がある。図２９において、ＣＬＢ９３ａ〜ＣＬＢ９３ｅ〜ＣＬＢ９３ｉ〜ＣＬＢ９３ｌのパス、およびＣＬＢ９３ｄ〜ＣＬＢ９３ｋ〜ＣＬＢ９３ｏのパスにおけるクリティカルパスを探索する場合を考える。
【００２７】
図３０は、Ｐａｔｈ−Ｄｅｌａｙ法によるクリティカルパス探索方法を示す説明図である。Ｐａｔｈ−Ｄｅｌａｙ法は、非特許文献１０および非特許文献１１などに開示されている一般的な探索方法である。Ｐａｔｈ−Ｄｅｌａｙ法では、ＣＬＢ９３ａ〜ＣＬＢ９３ｅ〜ＣＬＢ９３ｉ〜ＣＬＢ９３ｌのクリティカルパスを探索する場合、ＣＬＢ９３ａを信号伝送起点（ＳＲＣ）として、ＣＬＢ９３ｌを信号伝送終点（ＳＩＮＫ）とする。また、ＣＬＢ間の遅延時間を正確に測定するために、クロック周期を変えた測定が行われる。これは、クロック周期を少しずつ変化させて、ＣＬＢ間でどこまで正常に信号が伝送できるかを測定する方法である。
【非特許文献１】Ｍ． Ｃｈａｏ， Ｌ． Ｗａｎｇ， Ｋ． Ｃｈｅｎｇ， ａｎｄ Ｓ． Ｋｕｎｄｕ． Ｓｔａｔｉｃ Ｓｔａｔｉｓｔｉｃａｌ ｔｉｍｉｎｇ Ａｎａｌｙｓｉｓ ｆｏｒ Ｌａｔｃｈ−ｂａｓｅｄ Ｐｉｐｅｌｉｎｅ Ｄｅｓｉｇｎ．Ｐｒｏｃｅｅｄｉｎｇｓ ｏｆ ｔｈｅ Ｉｎｉｔｅｒｎａｔｉｏｎａｌ Ｃｏｎｆｅｒｅｎｃｅ ｏｆ Ｃｏｍｐｕｔｅｒ Ａｉｄｅｄ Ｄｅｓｉｇｎ， ｐａｇｅｓ ４６８−４７２， ２００４．
【非特許文献２】Ｍ． Ｓｕｍｉｔａ， Ｓ． Ｓａｋｉｙａｍａ， Ｍ． Ｋｉｎｏｓｈｉｔａ， Ｙ． Ａｒａｋｉ， Ｙ． Ｉｋｅｄａ， ａｎｄ Ｋ． Ｆｕｋｕｏｋａ． Ｍｉｘｅｄ ｂｏｄｙ−ｂｉａｓ ｔｅｃｈｎｉｑｕｅｓ ｗｉｔｈ ￣ｘｅｄ Ｖｔ ａｎｄ Ｉｄｓ ｇｅｎｅｒａｔｉｏｎ ｃｉｒｃｕｉｔｓ． ＩＥＥＥ Ｉｎｔｅｒｎａｔｉｏｎａｌ Ｓｏｌｉｄ−Ｓｔａｔｅ Ｃｉｒｃｕｉｔｓ Ｃｏｎｆｅｒｅｎｃｅ，ＸＶＩＩ, ｐａｇｅｓ １５８−１５９， ２００４．
【非特許文献３】Ｓ． Ｏｈｋａｗａ， Ｍ． Ａｏｋｉ， ａｎｄ Ｈ． Ｍａｓｕｄａ． Ａｎａｌｙｓｉｓ ａｎｄ Ｃｈａｒａｃｔｅｒｉｚａｔｉｏｎ ｏｆ Ｄｅｖｉｃｅ Ｖａｒｉａｔｉｏｎｓ ｉｎ ａｎ ＬＳＩ Ｃｈｉｐ Ｕｓｉｎｇ ａｎ Ｉｎｔｅｇｒａｔｅｄ Ｄｅｖｉｃｅ Ｍａｔｒｉｘ Ａｒｒａｙ． ＩＥＥＥ Ｔｒａｎｓ． ｏｎ Ｓｅｍｉｃｏｎｄｕｃｔｏｒ Ｍａｎｕｆａｃｔｕｒｉｎｇ，Ｖｏｌ． １７， Ｎｏ． ２， ｐａｇｅｓ １５５−１６５， ２００４．
【非特許文献４】Ｋ． Ｋａｔｓｕｋｉ， Ｍ． Ｋｏｔａｎｉ， Ｋ． Ｋｏｂａｙａｓｈｉ， ａｎｄ Ｈ． Ｏｎｏｄｅｒａ． Ａ Ｙｉｅｌｄ ａｎｄ Ｓｐｅｅｄ Ｅｎｈａｎｃｅｍｅｎｔ Ｓｃｈｅｍｅ ｕｎｄｅｒ Ｗｉｔｈｉｎ−ｄｉｅ Ｖａｒｉａｔｉｏｎｓ ｏｎ ９０ｎｍ ＬＵＴ Ａｒｒａｙ． Ｉｎ Ｐｒｏｃｅｅｄｉｎｇｓ ｏｆ ＩＥＥＥ ２００５ Ｃｕｓｔｏｍ Ｉｎｔｅｇｒａｔｅｄ Ｃｉｒｃｕｉｔｓ Ｃｏｎｆｅｒｅｎｃｅ， ｐａｇｅｓ ６０１−６０４， ２００５．
【非特許文献５】Ｐ． Ｓｅｄｃｏｌｅ ａｎｄ Ｐ． Ｃｈｅｕｎｇ． Ｐａｒａｍｅｔｒｉｃ ｙｉｅｌｄ ｉｎ ＦＰＧＡｓ ｄｕｅ ｔｏ ｗｉｔｈｉｎ−ｄｉｅ ｄｅｌａｙ ｖａｒｉａｔｉｏｎｓ： ａ ｑｕａｎｔｉｔａｔｉｖｅ ａｎａｌｙｓｉｓ． Ｐｒｏｃｅｅｄｉｎｇｓ ｏｆ ｔｈｅ ２００７ ＡＣＭ／ＳＩＧＤＡ １５ｔｈ ｉｎｔｅｒｎａｔｉｏｎａｌ ｓｙｍｐｏｓｉｕｍ ｏｎ Ｆｉｅｌｄ ｐｒｏｇｒａｍｍａｂｌｅ ｇａｔｅ ａｒｒａｙｓ， ｐａｇｅｓ １７８−１８７，２００７．
【非特許文献６】Ｌ． Ｃｈｅｎｇ， Ｊ． Ｘｉｏｎｇ， Ｌ． Ｈｅ， ａｎｄ Ｍ． Ｈｕｔｔｏｎ． ＦＰＧＡ Ｐｅｒｆｏｒｍａｎｃｅ Ｏｐｔｉｍｉｚａｔｉｏｎ ｖｉａ Ｃｈｉｐｗｉｓｅ Ｐｌａｃｅｍｅｎｔ Ｃｏｎｓｉｄｅｒｉｎｇ Ｐｒｏｃｅｓｓ Ｖａｒｉａｔｉｏｎｓ． Ｐｒｏｃｅｅｄｉｎｇｓ ｏｆ ２００６ Ｉｎｔｅｒｎａｔｉｎａｌ Ｃｏｎｆｅｒｅｎｃｅ ｏｎ Ｆｉｅｌｄ Ｐｒｏｇｒａｍｍａｂｌｅ Ｌｏｇｉｃ ａｎｄ Ａｐｐｌｉｃａｔｉｏｎｓ， ｐａｇｅｓ ４４−４９， ２００６．
【非特許文献７】Ｙ． Ｍａｔｓｕｍｏｔｏ， Ｍ． Ｈｉｏｋｉ， Ｔ． Ｋａｗａｎａｍｉ， Ｔ． Ｔｓｕｔｓｕｍｉ， Ｋ． Ｎａｋａｇａｗａ， Ｔ． Ｓｅｋｉｋａｗａ， ａｎｄ Ｈ． Ｋｏｉｋｅ． Ｐｅｒｆｏｒｍａｎｃｅ ａｎｄ Ｙｉｅｌｄ Ｅｎｈａｎｃｅｍｅｎｔ ｏｆ ＦＰＧＡｓ ｗｉｔｈ Ｗｉｔｈｉｎ−ｄｉｅ Ｖａｒｉａｔｉｏｎ ｕｓｉｎｇ Ｍｕｌｔｉｐｌｅ Ｃｏｎ￣ｇｕｒａｔｉｏｎｓ． Ｉｎｔｅｒｎａｔｉｏｎａｌ Ｓｙｍｐｏｓｉｕｍ ｏｎ Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ Ｇａｔｅ Ａｒｒａｙｓ， ｐａｇｅｓ １６９−１７７， ２００７．
【非特許文献８】Ｙ．−Ｗ． Ｃｈａｎｇ， Ｄ． Ｆ． Ｗｏｎｇ， ａｎｄ Ｃ． Ｋ． Ｗｏｎｇ． Ｕｎｉｖｅｒｓａｌ ｓｗｉｔｃｈ ｍｏｄｕｌｅｓ ｆｏｒ ｆｐｇａ ｄｅｓｉｇｎ． ＡＣＭ Ｔｒａｎｓ． Ｄｅｓ． Ａｕｔｏｍ． Ｅｌｅｃｔｒｏｎ． Ｓｙｓｔ．， １（１）：８０−１０１， １９９６．
【非特許文献９】Ｊ． Ｒｏｓｅ， Ｓ． Ｂｒｏｗｎ， ”Ｆｌｅｘｉｂｉｌｉｔｙ ｏｆ ｉｎｔｅｒｃｏｎｎｅｃｔｉｏｎ ｓｔｒｕｃｔｕｒｅｓ ｆｏｒ ｆｉｅｌｄ−ｐｒｏｇｒａｍｍａｂｌｅ ｇａｔｅ ａｒｒａｙｓ” ＩＥＥＥ Ｊｏｕｒｎａｌ ｏｆ Ｓｏｌｉｄ−Ｓｔａｔｅ Ｃｉｒｃｕｉｔｓ， Ｖｏｌｕｍｅ： ２６， Ｉｓｓｕｅ： ３， ｐｐ． ２７７−２８２， １９９１．
【非特許文献１０】Ｓ． Ｂｏｓｅ， Ｐ． Ａｇｒａｗａｌ， ａｎｄ Ｖ．Ｄ． Ａｇｒａｗａｌ， ”Ａ ｒａｔｅｄ−ｃｌｏｃｋ ｔｅｓｔ ｍｅｔｈｏｄ ｆｏｒ ｐａｔｈ ｄｅｌａｙ ｆａｕｌｔｓ，” ＩＥＥＥ Ｔｒａｎｓａｃｔｉｏｎｓ ｏｎ Ｖｅｒｙ Ｌａｒｇｅ Ｓｃａｌｅ Ｉｎｔｅｇｒａｔｉｏｎ （ＶＬＳＩ） Ｓｙｓｔｅｍｓ， ３２３−３３１．
【非特許文献１１】Ｈ． Ｃｈａｎｇ， Ｊ．Ａ． Ａｂｒａｈａｍ， ”Ｄｅｌａｙ ｔｅｓｔ ｔｅｃｈｎｉｑｕｅｓ ｆｏｒ ｂｏｕｎｄａｒｙ ｓｃａｎ ｂａｓｅｄ ａｒｃｈｉｔｅｃｔｕｒｅｓ，” １９９２ ＩＥＥＥ Ｃｕｓｔｏｍ Ｉｎｔｅｇｒａｔｅｄ Ｃｉｒｃｕｉｔｓ Ｃｏｎｆｅｒｅｎｃｅ．
【発明の開示】
【発明が解決しようとする課題】
【００２８】
しかしながら、従来のクリティカルパス再構成手法では、タイミング制約を満たすようコンフィグレーションを再構成していく事が難しいという問題がある。
【００２９】
図３１（ａ）は、初期配線における接続関係を示す概略図であり、５つのパスＡ〜Ｅがスイッチブロックを通っている。Ｐａｔｈ Ａがクリティカルパス、その他はクリティカルパスではないとする。ここで、Ｐａｔｈ Ａがタイミング制約に違反しているため、トラック１からトラック０に再配線する場合を考える。
【００３０】
図３１（ｂ）は、図２７に示すＦｓ＝３のＳＢ９４を用いた場合における再配線後の接続関係を示す概略図である。Ｐａｔｈ Ａをトラック１からトラック０に再配線すると、Ｐａｔｈ Ｂ、Ｃもパス全体をトラック１および０に再配線しなければならない。これによって、さらに他のスイッチブロックで他のパスの再配線の必要が生じ、配線トポロジーの変更が生じる可能性がある。したがって、回路のパス遅延分布が変化し、新たなクリティカルパスが生じる可能性がある。
【００３１】
また、図３２は、半導体デバイス９１における再配線の接続関係を示す概略図である。図３２（ａ）は、初期配線を示しており、（ｂ）は、経路変更後の配線を示している。矢印に示すように、クリティカルパスＡのトラックを入れ替えることにより、パスＢ，Ｃ，Ｄも再配線が必要となる。このため、遅延が増加する可能性がある。
【００３２】
さらに、図３０に示すＰａｔｈ−Ｄｅｌａｙ法では、複数経路の最短経路を抽出するには、各パスの遅延の絶対値を知る必要がある。例えば、ＣＬＢ９３ｄ〜ＣＬＢ９３ｋ〜ＣＬＢ９３ｏのパスでは、ＣＬＢ９３ｄ〜ＣＬＢ９３ｋおよびＣＬＢ９３ｋ〜ＣＬＢ９３ｏの２つの区間があり、各区間に２つの配線経路が存在する。したがって、ＣＬＢ９３ｄ〜ＣＬＢ９３ｏには、計２２＝４つの配線経路が存在するため、各配線経路の遅延の絶対値を知るために、４回の測定が必要となる。同様に、ＣＬＢ９３ａ〜ＣＬＢ９３ｅ〜ＣＬＢ９３ｉ〜ＣＬＢ９３ｌのパスでは、ＣＬＢ９３ａ〜ＣＬＢ９３ｅ、ＣＬＢ９３ｅ〜ＣＬＢ９３ｉおよびＣＬＢ９３ｉ〜ＣＬＢ９３ｌの３つの区間があり、各区間に２つの配線経路が存在する。したがって、ＣＬＢ９３ａ〜ＣＬＢ９３ｌには、計２３＝８つの配線経路が存在するため、各配線経路の遅延の絶対値を知るために、８回の測定が必要となる。このように多くの測定回数を必要とするため、測定コストが増大してしまうという問題がある。
【００３４】
本発明は上記の問題点に鑑みてなされたものであり、その目的は、複数の演算回路間のクリティカルパスの測定コストを抑えることができる半導体デバイスを実現することにある。
【課題を解決するための手段】
【００４２】
本発明に係る半導体デバイスは、上記課題を解決するために、マトリックス状に配置された複数個の演算回路と、前記複数個の演算回路のうち互いに隣接する４個の演算回路のうちの互いに隣接する２個の間を通り抜けるように配置された複数本の配線トラックと、前記４個の演算回路によって囲まれる位置に設けられ、前記互いに隣接する２個の演算回路の間の複数本の配線トラックのうちの１本と、互いに隣接する他の２個の演算回路の間の複数本の配線トラックのうちの１本とを接続するスイッチブロックと、前記複数個の演算回路のうちの１つから他の１つに信号を伝送するために、それぞれ前記配線トラックと前記スイッチブロックとによって構成された第１配線経路及び第２配線経路の遅延を比較するために前記演算回路のうちの他の１つに設けられた第１遅延比較器と、前記複数個の演算回路のうちの他の１つからさらに他の１つに信号を伝送するために、それぞれ前記配線トラックと前記スイッチブロックとによって構成された第３配線経路及び第４配線経路の遅延を比較するために前記演算回路のうちのさらに他の１つに設けられた第２遅延比較器とを備えたことを特徴としている。
【００４３】
複数個の演算回路のうちの１つを信号伝送起点とし、当該演算回路のうちの他の１つを経由して、当該演算回路のうちのさらに他の１つを信号伝送終点とする経路のクリティカルパスを探索する場合、従来のＰａｔｈ−Ｄｅｌａｙ法では、２２＝４回の測定回数が必要であった。これに対し、上記の構成によれば、１回目の測定において、第１遅延比較器が第１配線経路及び第２配線経路の遅延を比較し、２回目の測定において、第２遅延比較器が第３配線経路及び第４配線経路の遅延を比較する。すなわち、クリティカルパスの探索に必要な測定回数は２回で済み、遅延の絶対値を測定する必要がない。したがって、複数の演算回路間のクリティカルパスの測定コストを抑えることができる半導体デバイスを実現できるという効果を奏する。
【００４４】
本発明に係る半導体デバイスでは、前記第１遅延比較器及び第２遅延比較器は、ＳＲラッチによって構成されていることが好ましい。
【００４５】
上記の構成によれば、第１遅延比較器及び第２遅延比較器は、入力信号のうちいずれが先に到達したかが判別でき、２つのＮＡＮＤで構成可能である。したがって、回路面積の増加が少なくて済む。
【００４６】
本発明に係る半導体デバイスでは、前記演算回路のうちの他の１つ及びさらに他の１つは、前記ＳＲラッチの前段に設けられてクラスタ化されたＬＵＴを有していることが好ましい。
【００４７】
上記の構成によれば、ＬＵＴをインバータで構成することで、演算回路を信号伝送起点にすることができ、ＬＵＴをＮＡＮＤで構成することで、演算回路を信号伝送終点とすることができる。
【００４８】
本発明に係る半導体デバイスでは、各演算回路は、可変論理ブロックによって構成されていてもよい。
【発明の効果】
【００５０】
本発明に係る半導体デバイスは、以上のように、マトリックス状に配置された複数個の演算回路と、前記複数個の演算回路のうち互いに隣接する４個の演算回路のうちの互いに隣接する２個の間を通り抜けるように配置された複数本の配線トラックと、前記４個の演算回路によって囲まれる位置に設けられ、前記互いに隣接する２個の演算回路の間の複数本の配線トラックのうちの１本と、互いに隣接する他の２個の演算回路の間の複数本の配線トラックのうちの１本とを接続するスイッチブロックと、前記複数個の演算回路のうちの１つから他の１つに信号を伝送するために、それぞれ前記配線トラックと前記スイッチブロックとによって構成された第１配線経路及び第２配線経路の遅延を比較するために前記演算回路のうちの他の１つに設けられた第１遅延比較器と、前記複数個の演算回路のうちの他の１つからさらに他の１つに信号を伝送するために、それぞれ前記配線トラックと前記スイッチブロックとによって構成された第３配線経路及び第４配線経路の遅延を比較するために前記演算回路のうちのさらに他の１つに設けられた第２遅延比較器とを備えているので、複数の演算回路間のクリティカルパスの測定コストを抑えることができる半導体デバイスを実現できるという効果を奏する。
【発明を実施するための最良の形態】
【００５１】
本発明の一実施形態について図１ないし図１６に基づいて説明すると以下の通りである。
【００５２】
図１は、本実施形態に係る半導体デバイス１の構成を示すブロック図である。半導体デバイス１は、図２６に示す半導体デバイス９１において、ＣＬＢ９３ａ〜９３ｏをＣＬＢ３ａ〜３ｏに置き換え、ＳＢ９４ａ〜９４ｈをＳＢ４ａ〜４ｈに置き換えた構成である。ＳＢ９４ａ〜９４ｈの自由度Ｆｓが３であったのに対し、ＳＢ４ａ〜４ｈの自由度Ｆｓは６となっている。なお、図１では、図１９に示すＣＢの図示を省略している。
【００５３】
図２は、ＳＢ４の接続関係を示す概略図である。図２７に示すＳＢ９４と比較すると、ＳＢ４のトラックＬ１は、トラックＴ１、Ｒ１、Ｂ１に加え、トラックＴ０、Ｒ０、Ｂ０と接続することができる。同様に、各トラックは他の６つのトラックと接続可能となっている。
【００５４】
図３は、Ｆｓ＝６のＳＢ４を用いた場合における、図３１（ａ）の初期配線からの再配線後の接続関係を示す概略図である。Ｆｓ＝３のＳＢ９４を用いた場合は、図３１（ｂ）に示すように、Ｐａｔｈ Ａをトラック１からトラック０に再配線すると、Ｐａｔｈ Ｂ、Ｃもパス全体をトラック１および０に再配線しなければならない。一方、図３では、Ｐａｔｈ Ａの再配線により、Ｐａｔｈ Ｂのみ再配線するだけで、他のＰａｔｈ Ｃ〜Ｅは再配線する必要が無い。このため、他のスイッチブロックでパスの再配線の必要が生じる可能性は低くなり、コンフィグレーションの再構成が容易になる。
【００５５】
また、図４（ａ）は、Ｆｓ＝６のＳＢ４を用いた場合における初期配線を示す概略図であり、図４（ｂ）は、再配線後の接続関係を示す概略図である。図４（ａ）は、図３２（ａ）と同一である。この場合、Ｐａｔｈ Ａのトラック変更によってＰａｔｈ Ｂ、Ｃ全体の再配線の必要はなく、Ｐａｔｈ Ｂのごく一部が再配線されるだけである。したがって、クリティカルパスの再配線による他のパスへの影響はごくわずかであり、トラック入れ替えによる回路のパス遅延分布への影響は小さい。このように、スイッチブロックの自由度を３から６に増やすことによって、タイミング制約に違反したクリティカルパスをトラック変更によって再配線する事が容易になる。
【００５６】
このように、スイッチブロックの自由度Ｆｓを増やすことによって連鎖的なパスのトラック変更を抑制することができるため、コンフィグレーションの再構成が容易になる。本実施形態では、Ｆｓ＝３（図５（ａ））からＦｓ＝６（図５（ｂ））に増やす場合について説明したが、一部の配線トラックについてＦｓ＝９としてもよい（図５（ｃ））。
【００５７】
図５（ｃ）は、一部の配線トラックについてＦｓ＝９であるＳＢ１４を示す概略図である。スイッチブロック内の点は接続スイッチを示している。ＳＢ１４では、トラックＬ０、Ｌ３、Ｂ０、Ｂ３、Ｒ０、Ｒ３、Ｔ０、Ｔ３についてはＦｓ＝６であり、トラックＬ１、Ｌ２、Ｂ１、Ｂ２、Ｒ１、Ｒ２、Ｔ１、Ｔ２についてはＦｓ＝９である。このように、配線の自由度をさらに上げることにより、ばらつきを用いた遅延削減の効果を上げることができる。また、Ｆｓを９以上の３の倍数に設定してもよく、遅延削減の効果をさらに上げることができる。
【００５８】
一方、スイッチブロックの自由度を高くすると余分な回路が必要になる。トラックとトラックとの間にＮＭＯＳスイッチが設けられるので、配線トラックが４本の場合、Ｆｓ＝３のスイッチブロックを構成するのに必要なスイッチ数は２４（＝６×４）個、Ｆｓ＝６のスイッチブロックを構成するのに必要なスイッチ数は４８（＝６×４×２）個のスイッチが必要となる。Ｆｓ＝６のスイッチブロックではトラック０とトラック１、トラック２とトラック３を入れ替えることができるが、従来のＣＭＯＳやＮＭＯＳスイッチで構成されているスイッチブロックでは、Ｆｓ＝６にすると面積が倍になる。微細プロセスでは、このようなバッファリングしないスイッチを用いると、信号の減衰やスルーレートの悪化が問題となる。
【００５９】
そこで、図６に示す、ｂｕｆｐアーキテクチャのスイッチを用いると、面積ペナルティは非常に小さくなる。Ｆｓ＝６のとき、Ｆｓ＝３に比べ、中央にある１２個のＮＭＯＳスイッチの数（図６（ａ））は倍の２４個になる（図６（ｂ））が、他の素子は同じ構成である。
【００６０】
また、表１は、図６に示すスイッチブロックにおけるＮＭＯＳスイッチ数、面積および遅延の関係を示している。ＮＭＯＳスイッチ数は、Ｆｓに比例するので２倍になるが、面積および遅延は、それぞれ１８．５％、５．０％にとどまり、面積オーバーヘッドが小さいことが分かる。
【００６１】
【表１】
0004783387.tif 000002
【００６２】
続いて、トラック入れ替え手続きについて説明する。
【００６３】
図７は、トラック入れ替えによるクリティカルパス再構成のフローチャートである。製造プロセスの後（ステップＳ１）、ばらつきを考えずに従来の配置配線ツールによって初期コンフィグレーションを作成する（ステップＳ２）。これは全てのチップに共通のコンフィグレーションとなる。クリティカルパス再構成手法では、クリティカルパスになり得るパスを再配線するので、どのパスがクリティカルパスになる可能性があるのか推定する必要がある（ステップＳ３）。推定したクリティカルパスの候補の遅延を測定し、遅延制約に違反していれば（ステップＳ４において「ｆａｉｌ」）、トラック入れ替えによって再配線を行う（ステップＳ５）。再配線した後、再度遅延測定を行い（ステップＳ６）、入れ替え先のトラックもまたクリティカルパスの候補によって使用されていれば（ステップＳ６において「ｐａｓｓ」）、入れ替えは行わない（ステップＳ７）。遅延制約に違反したパスはトポロジーを変え再配線してもよく（ステップＳ８）、全てのクリティカルパス候補が遅延制約を満たすことにより最適化を完了させてもよい。なお、ステップＳ５のトラック入れ替えは、図８に示すように、隣接する２トラック間で入れ替えが行われる。
【００６４】
続いて、本実施形態におけるクリティカルパスの検索方法について説明する。
【００６５】
図３０に示すように、従来のＰａｔｈ−Ｄｅｌａｙ法では、ＣＬＢ９３ａ〜ＣＬＢ９３ｌのクリティカルパスを抽出するために、８回の測定が必要であった。これに対し、本実施形態では、遅延比較器を用いてクリティカルパスを探索する。
【００６６】
図９は、本実施形態に係るクリティカルパス探索方法の説明図である。ＣＬＢ３ａ〜ＣＬＢ３ｅ〜ＣＬＢ３ｉ〜ＣＬＢ３ｌのパスおよびＣＬＢ３ｄ〜ＣＬＢ３ｋ〜ＣＬＢ３ｏのパスにおけるクリティカルパスを探索する場合、図９（ａ）に示すように、１回目の測定において、ＣＬＢ３ａ〜ＣＬＢ３ｅ、ＣＬＢ３ｉ〜ＣＬＢ３ｌおよびＣＬＢ３ｄ〜ＣＬＢ３ｋの各区間における２つのパスの遅延を比較する。このとき、ＣＬＢ３ａ、ＣＬＢ３ｉおよびＣＬＢ３ｄが信号伝送起点（ＳＲＣ）となり、信号伝送終点となるＣＬＢ３ｅ、ＣＬＢ３ｌおよびＣＬＢ３ｋのそれぞれに、遅延比較器（ＤＤ、第１遅延比較器）が設けられる。遅延比較器は、各区間における２つの配線経路（第１配線経路、第２配線経路）の遅延を比較する。これにより、各区間の経路を、図９（ｂ）における破線に示すように選択する。
【００６７】
さらに、２回目の測定において、ＣＬＢ３ｅ〜ＣＬＢ３ｉおよびＣＬＢ３ｋ〜ＣＬＢ３ｏの各区間における２つのパスの遅延を比較する。このとき、ＣＬＢ３ｅおよびＣＬＢ３ｋが信号伝送起点（ＳＲＣ）となり、信号伝送終点となるＣＬＢ３ｉおよびＣＬＢ３ｏのそれぞれに、遅延比較器（ＤＤ、第２遅延比較器）が設けられる。遅延比較器は、各区間における２つの配線経路（第３配線経路、第４配線経路）の遅延を比較して、各区間の経路を選択する。
【００６８】
以上のように、２回の測定でＣＬＢ３ａ〜ＣＬＢ３ｅ〜ＣＬＢ３ｉ〜ＣＬＢ３ｌのパスおよびＣＬＢ３ｄ〜ＣＬＢ３ｋ〜ＣＬＢ３ｏのパスにおけるクリティカルパスが探索できる。したがって、従来のＰａｔｈ−Ｄｅｌａｙ法に比べ、大幅に測定回数を減らすことができるため、測定コストを抑えることができる。
【００６９】
続いて、遅延比較器が組み込まれるＣＬＢの詳細な構成について説明する。
【００７０】
図１０は、ＣＬＢ３の構成を示す回路図である。ＣＬＢ３は、パスＡ・Ｂから信号が入力され、パスＱＡ・ＱＢに信号を出力する。ＣＬＢ３は、２つのクラスタ化されたＬＵＴ３１ａ・３１ｂ、ＳＲラッチ３２、２つのＤＦＦ３３ａ・３３ｂおよび２つのセレクタ３４ａ・３４ｂを有している。ＬＵＴ３１ａ・３１ｂは、それぞれパスＡ・Ｂに接続されている。ＬＵＴ３１ａ・３１ｂのからの信号は、ＳＲラッチ３２に出力されるとともに、それぞれセレクタ３４ａ・３４ｂにも出力される。ＳＲラッチからの信号の一方は、ＤＦＦ３３ａを介してセレクタ３４ａに出力され、ＳＲラッチからの信号の他方は、ＤＦＦ３３ｂを介してセレクタ３４ｂに出力される。セレクタ３４ａからの信号は、パスＱＡに出力されると共に、ＬＵＴ３１ａまたはＬＵＴ３１ｂにも出力される。同様に、セレクタ３４ｂからの信号は、パスＱＢに出力されると共に、ＬＵＴ３１ａ・３１ｂにも出力される。
【００７１】
図９における各測定において、ＣＬＢ３が信号伝送起点（ＳＲＣ）となる場合、図１１（ａ）に示すように、ＬＵＴ３１ａ・３１ｂは、インバータで構成される。セレクタ３４ａ・３４ｂは、それぞれＤＦＦ３３ａ・３３ｂからの信号を選択する。セレクタ３４ａ・３４ｂからの信号は、それぞれパスＱＡ・ＱＢに出力されるとともに、インバータであるＬＵＴ３１ａまたはＬＵＴ３１ｂに出力される。なお、図１１（ａ）では、ＳＲラッチ３２は省略されているが、ＳＲラッチ３２がＤＦＦ３３ａ・３３ｂにクロックを１回印加することにより、ＣＬＢ３からパスＱＡ・ＱＢに同時に信号が出力される。
【００７２】
また、ＣＬＢ３は信号伝送終点（遅延比較器モード）となる場合、図１１（ｂ）に示すように、ＬＵＴ３１ａ・３１ｂは、ＮＡＮＤで構成される。セレクタ３４ａ・３４ｂは、それぞれＬＵＴ３１ａ・３１ｂからの信号を選択する。セレクタ３４ａ・３４ｂからの信号は、それぞれパスＱＡ・ＱＢに出力されるとともに、ＬＵＴ３１ｂ・３１ａに出力される。図１１（ｂ）においても、ＳＲラッチ３２は省略されている。
【００７３】
ＣＬＢ３が信号伝送終点となる場合の動作について、図１２に基づいて説明する。図１１（ｂ）に示す遅延比較器モードのＣＬＢ３は、図１２に示すフリップフロップと等価となる。
【００７４】
初期状態では、図１２（ａ）に示すように、パスＡ・Ｂからの入力は０：０であるので、パスＱＡ・ＱＢへの出力は１：１となる。続いて、図１２（ｂ）に示すように、パスＡからの入力が先に１となったとすると、パスＱＡ・ＱＢへの出力は０：１となる。さらに、図１２（ｃ）に示すように、パスＢからの入力も１となっても、パスＱＡ・ＱＢへの出力は０：１のまま変化しない。逆に、パスＢからの入力が先に１となったとすると、パスＱＡ・ＱＢへの出力は１：０となり、後にパスＡからの入力が１となっても、パスＱＡ・ＱＢへの出力は１：０のまま変化しない。このように、遅延比較器モードのＣＬＢ３はパスＡ・Ｂのいずれに信号が先に到着したか判別できる。
【００７５】
したがって、信号伝送起点と信号伝送終点との間の経路長が異なっていても、複数の経路を同時に測定することができる。ＳＲラッチ３２を設けない場合、回路オーバーヘッド無しに遅延比較器として機能するが、３０ｐｓ以下の遅延を判別するのは難しい。一方、ＳＲラッチ３２を設けることにより、１ｐｓ以下の遅延も判別することができるようになり、従来のＰａｔｈ−Ｄｅｌａｙ法に比べ比較性能を格段に高めることができる。
【００７６】
なお、ＳＲラッチ３２によって、ＬＵＴ３１ａ・３１ｂとＤＦＦ３３ａ・３３ｂとの間の遅延が増大するが、ＳＲラッチ３２での遅延の全体の遅延に対する割合は少ないので、影響は微小である。例えば、図２８に示す経路を比較する場合、途中のＣＬＢ３は、ＬＵＴのみ用い、ＦＦは使用していない。このように、ＳＲラッチ３２をＦＦの直前に組み込んでいるため、信号はＳＲラッチ３２を通過しない。したがって、信号伝送終点のＣＬＢ３においてのみ、遅延が増加することとなる。
【００７７】
続いて、統計的ＭＡＸ演算によるクリティカルパスの推定について説明する。
【００７８】
パス遅延はプロセスばらつきによりある分布でばらつくので、静的遅延解析によって得られた最大遅延パスだけではなく、クリティカルパスになりうるパス全てを再構成する必要がある。
【００７９】
図１３は、クリティカルパスの推定方法を示すグラフである。回路遅延分布の平均をｄｃｉｒｃｕｉｔとし、遅延値がｄｃｉｒｃｕｉｔを上回る可能性のあるパスをクリティカルパス候補とする。また、ｄｉ、σｉをパスｉの平均遅延および標準偏差、ｄｌｏｎｇｅｓｔ、σｌｏｎｇｅｓｔを最長パスの平均遅延および標準偏差とし、ｄｉ＋３σｉ＞ｄｌｏｎｇｅｓｔ−3σｌｏｎｇｅｓｔを満たすパスｉを副クリティカルパス候補とする。ｄｃｉｒｃｕｉｔは、Ｃｌａｒｋの手法（Ｃ． Ｅ． Ｃｌａｒｋ． Ｔｈｅ ｇｒｅａｔｅｓｔ ｏｆ ａ ￣ｎｉｔｅ ｓｅｔ ｏｆ ｒａｎｄｏｍ ｖａｒｉａｂｌｅｓ． Ｏｐｅｒａｔｉｏｎｓ Ｒｅｓｅａｒｃｈ， ９（２）：１４５−１６２， １９６１．を参照）を用いて副クリティカルパス候補の分布の統計的ＭＡＸ演算によって求める。ｄｉ＋３σｉ＞ｄｃｉｒｃｕｉｔを満たすパスｉがクリティカルパス候補となる。この方法で求めたクリティカルパス候補に対しクリティカルパス再構成を行う。
【００８０】
トラック入れ替えによるクリティカルパス再構成手法をＶＰＲ（Ｖ． Ｂｅｔｚ ａｎｄ Ｊ． Ｒｏｓｅ． ＶＰＲ： Ａ ｎｅｗ ｐａｃｋｉｎｇ， ｐｌａｃｅｍｅｎｔ ａｎｄ ｒｏｕｔｉｎｇ ｔｏｏｌ ｆｏｒ ＦＰＧＡ ｒｅｓｅａｒｃｈ． Ｉｎ ｐｒｏｃ． ｏｆ Ｉｎｔ． Ｗｏｒｋｓｈｏｐ ｏｎ Ｆｉｅｌｄ Ｐｒｏｇｒａｍｍａｂｌｅ Ｌｏｇｉｃ Ａｐｐｌｉｃａｔｉｏｎｓ， ｐａｇｅｓ ２１３−２２２， １９９７．を参照）に実装し、ＬＧＳｙｎｔｈ９３ ベンチマーク回路ｍｕｌｔ１６ｂ、ｄａｉｏを配置配線した。モンテカルロシミュレーションによって速度および歩留まり向上効果の評価を行った。
【００８１】
本実験においては、図７に示されているステップＳ８の概略配線変更のフローは実装しておらず、再構成回数は一回のみである。なお、再構成を繰り返すことにより、より大きな性能向上効果が期待できる。
【００８２】
ここで仮定するＦＰＧＡアーキテクチャはｉｓｌａｎｄ−ｓｔｙｌｅのアーキテクチャであり、ＣＬＢには４入力のＬＵＴが一つ含まれる。配線セグメント同士は、図２８に示すｂｕｆｐアーキテクチャのスイッチブロックによって接続され、セグメント長は１である。ベンチマーク回路は最小サイズのアレイに配置し、配線のチャンネル幅は最小チャンネル幅の１．２倍とした。実験ではスイッチブロックおよびコネクションブロックのスイッチの抵抗、容量がばらつくと仮定した。速度および歩留まり向上効果は１０，０００回のモンテカルロシミュレーションによって求めた。クリティカルパス再構成手法では、あるタイミング制約に違反したクリティカルパスを再配線する。本実験では、タイミング制約をμｃｉｒｃｕｉｔ＋ｉσｃｉｒｃｕｉｔ（ｉ＝１，２，３）とし、遅延値がこの値より大きくなる回路についてクリティカルパス再構成を行った。μｃｉｒｃｕｉｔ、σｃｉｒｃｕｉｔは、それぞれ回路遅延分布の平均値および標準偏差である。
【００８３】
図１４（ａ）は、ｍｕｌｔ１６ｂの初期コンフィグレーションによる回路遅延のヒストグラムであり、図１４（ｂ）は、トラック入れ替えによるクリティカルパス再構成を一回行ったときの回路遅延分布を示すヒストグラムである。図１４（ｂ）に示すヒストグラムにより、タイミング制約に違反したチップが再構成されている様子が確認できた。例えば、遅延制約を５０％の歩留まりを達成する速度と定義した場合、遅延制約を満たさないパスを配線自由度を用いて入れ替えることで、遅延制約を満たさないデバイスのうち半数を遅延制約を満たすように再構成することができる。また、ばらつきが大きくなると速度向上の効果が高くなり，今後のデバイスの微細化によりその効果はさらに大きくなる。
【００８４】
表２は、μ／σ＝１０％、ｄｓｐｅｃ＝μｃｉｒｃｕｉｔ＋σｃｉｒｃｕｉｔのときの速度・歩留まり向上を示しており、ｍｕｌｔ１６ｂ、ｄａｉｏでは性能が向上していることが分かる。
【００８５】
ここで、トポロジー変更による再配線機能を実装することにより、２回以上再配線を繰り返せば、さらなる最適化が可能である。このように、より多くの再構成を行う事で、さらなる性能向上を見込むことができる。
【００８６】
【表２】
0004783387.tif 000003
【００８７】
また、表３に、ｍｕｌｔ１６ｂ、ｄａｉｏのプロセスばらつきの幅μ／σ、要求速度ｄｓｐｅｃに対する速度および歩留まり向上を示す。歩留まりは要求仕様での歩留まりで比較し、速度向上は歩留まりが９９．８７％となる遅延値で比較している。表３から、歩留まりが最大２６．６２％向上し、速度が最大５．８１％向上していることが分かる。
【００８８】
【表３】
0004783387.tif 000004
【００８９】
また、図１５は、表３のうち、ｍｕｌｔ１６ｂのプロセスのばらつきの幅μ／σ＝２％、４％および１０％のそれぞれにおけるｄｓｐｅｃ＝μ＋σ、μ＋２σ、μ＋３σに対する歩留まり向上を示すグラフである。いずれの場合も、要求速度で１００％近い歩留まりを達成していることが分かる。
【００９０】
図１６は、回路のばらつき幅に対する速度向上を示すグラフであり、（ａ）は、ｍｕｌｔ１６ｂプロセスの場合、（ｂ）は、ｄａｉｏプロセスの場合を示している。ばらつき幅が大きくなるとより高速な素子が存在することになるので、ばらつきを利用したクリティカルパス再構成手法では、再構成後の回路性能向上はプロセスばらつきの拡大に従ってより大きくなることが分かる。
【００９１】
本発明は上述した実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能である。すなわち、請求項に示した範囲で適宜変更した技術的手段を組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【産業上の利用可能性】
【００９２】
本発明は、マトリックス状に配置された複数個の演算回路を備え、演算回路間の配線経路が変更可能に構成された半導体デバイスに好適に適用できる。
【図面の簡単な説明】
【００９３】
【図１】本発明の実施形態に係る半導体デバイスの構成を示すブロック図である。
【図２】図１に示す半導体デバイスが備えるスイッチブロックの接続関係を示す概略図である。
【図３】図２に示すスイッチブロックを用いた場合における、図３１（ａ）の初期配線からの再配線後の接続関係を示す概略図である。
【図４】（ａ）は、図２に示すスイッチブロックを用いた場合における初期配線を示す概略図であり、（ｂ）は、再配線後の接続関係を示す概略図である。
【図５】（ａ）は、Ｆｓ＝３のスイッチブロックの構成を示す概念図であり、（ｂ）は、Ｆｓ＝６のスイッチブロックの構成を示す概念図であり、（ｃ）は、Ｆｓ＝６および９のスイッチブロックの構成を示す概念図である。
【図６】（ａ）は、Ｆｓ＝３のスイッチブロックの構成を示す回路図であり、（ｂ）は、Ｆｓ＝６のスイッチブロックの構成を示す回路図である。
【図７】本発明に係るトラック入れ替えによるクリティカルパス再構成を示すフローチャートである。
【図８】隣接する２トラック間で入れ替えを示す説明図である。
【図９】本発明の実施形態に係るクリティカルパス探索方法の説明図であり、（ａ）は、１回目の測定を示しており、（ｂ）は、２回目の測定を示している。
【図１０】図１に示す半導体デバイスが備えるＣＬＢの構成を示す回路図である。
【図１１】図１に示す半導体デバイスが備えるＣＬＢの構成を示す回路図であり、（ａ）は、信号の起点モードの場合を示しており、（ｂ）は、遅延比較器モードの場合を示している。
【図１２】ＣＬＢが遅延比較器モードの場合の動作を示す等価回路図である。
【図１３】本発明に係るクリティカルパスの推定方法を示すグラフである。
【図１４】（ａ）は、ｍｕｌｔ１６ｂの初期コンフィグレーションによる回路遅延のヒストグラムであり、（ｂ）は、トラック入れ替えによるクリティカルパス再構成を一回行ったときの回路遅延分布を示すヒストグラムである。
【図１５】ｍｕｌｔ１６ｂのプロセスのばらつきの幅μ／σ＝２％、４％および１０％のそれぞれにおけるｄｓｐｅｃ＝μ＋σ、μ＋２σ、μ＋３σに対する歩留まり向上を示すグラフである。
【図１６】回路のばらつき幅に対する速度向上を示すグラフであり、（ａ）は、ｍｕｌｔ１６ｂプロセスの場合、（ｂ）は、ｄａｉｏプロセスの場合を示している。
【図１７】チップの性能とチップ数の分布を示すグラフである。
【図１８】（ａ）は、試作ＦＰＧＡの全体構造を示す概略図であり、（ｂ）は、当該ＦＰＧＡを備えるチップの写真である。
【図１９】図１８に示すＦＰＧＡの構造を示す概略図である。
【図２０】（ａ）は、上記ＦＰＧＡに設けられるＣＬＢの構成を示す回路図であり、（ｂ）は、当該ＣＬＢに設けられるＤＦＦの構成を示す回路図である。
【図２１】（ａ）は、リングオシレータの構成例を示す回路図であり、（ｂ）は、リングオシレータを用いて論理ブロックの性能を判別する方法を示す概念図である。
【図２２】上記試作ＦＰＧＡのばらつき測定結果を示す概略図である。
【図２３】上記試作ＦＰＧＡのばらつき測定結果を示すヒストグラムである。
【図２４】従来技術を示すものであり、複数コンフィグレーションの概念図である。
【図２５】従来技術を示すものであり、クリティカルパス再構成の概念図である。
【図２６】従来の半導体デバイスの構成を示すブロック図である。
【図２７】図２６に示す半導体デバイスが備えるスイッチブロックの構造を示す概略図である。
【図２８】従来の半導体デバイスにおける、クリティカルパスのトラック入れ替えを示す概念図である。
【図２９】クリティカルパス探索方法を示す説明図である。
【図３０】Ｐａｔｈ−Ｄｅｌａｙ法によるクリティカルパス探索方法を示す説明図である。
【図３１】（ａ）は、スイッチブロックにおける初期配線における接続関係を示す概略図であり、（ｂ）は、図２７に示すスイッチブロックを用いた場合における再配線後の接続関係を示す概略図である。
【図３２】図２７に示すスイッチブロックにおける再配線の接続関係を示す概略図であり、（ａ）は、初期配線を示しており、（ｂ）は、経路変更後の配線を示している。
【符号の説明】
【００９４】
１    半導体デバイス
３、３ａ〜３ｏ    可変論理ブロック（演算回路）
４、４ａ〜４ｈ、１４    スイッチブロック
５    トラック（配線トラック）
６    配線経路変更部（配線経路変更手段）
３１ａ、３１ｂ    ＬＵＴ
３２    ＳＲラッチ
【図１】
0004783387.tif 000005
【図２】
0004783387.tif 000006
【図３】
0004783387.tif 000007
【図４】
0004783387.tif 000008
【図５】
0004783387.tif 000009
【図６】
0004783387.tif 000010
【図７】
0004783387.tif 000011
【図８】
0004783387.tif 000012
【図９】
0004783387.tif 000013
【図１０】
0004783387.tif 000014
【図１１】
0004783387.tif 000015
【図１２】
0004783387.tif 000016
【図１３】
0004783387.tif 000017
【図１４】
0004783387.tif 000018
【図１５】
0004783387.tif 000019
【図１６】
0004783387.tif 000020
【図１７】
0004783387.tif 000021
【図１９】
0004783387.tif 000022
【図２０】
0004783387.tif 000023
【図２１】
0004783387.tif 000024
【図２２】
0004783387.tif 000025
【図２３】
0004783387.tif 000026
【図２４】
0004783387.tif 000027
【図２５】
0004783387.tif 000028
【図２６】
0004783387.tif 000029
【図２７】
0004783387.tif 000030
【図２８】
0004783387.tif 000031
【図２９】
0004783387.tif 000032
【図３０】
0004783387.tif 000033
【図３１】
0004783387.tif 000034
【図３２】
0004783387.tif 000035
【図１８】
0004783387.tif 000036