(57)【要約】  本発明は、抵抗変化素子で構成されたクロスバースイッチをキャラクタライズする工数を削減する数値情報生成装置を提供する。数値情報生成装置において、入力部は、抵抗変化素子で構成された、複数のクロスバースイッチを含むプログラマブル論理集積回路の情報を入力する。計算部は、複数のクロスバースイッチのそれぞれについて、他のクロスバースイッチの負荷容量の影響が排除された遅延であるベース遅延と、他のクロスバースイッチのファンアウトの影響により生じる遅延である補正遅延と、を計算する。さらに、計算部は、複数のクロスバースイッチのそれぞれの遅延を、複数のクロスバースイッチのそれぞれに対応するベース遅延と補正遅延に基づき計算する。
2019221124.tif 000002
【特許請求の範囲】
【請求項１】
抵抗変化素子で構成された、複数のクロスバースイッチを含むプログラマブル論理集積回路の情報を入力する、入力部と、
前記複数のクロスバースイッチのそれぞれについて、他のクロスバースイッチの負荷容量の影響が排除された遅延であるベース遅延と、他のクロスバースイッチのファンアウトの影響により生じる遅延である補正遅延と、を計算する、計算部と、
を備え、
前記計算部は、前記複数のクロスバースイッチのそれぞれの遅延を、前記複数のクロスバースイッチのそれぞれに対応する前記ベース遅延と前記補正遅延に基づき計算する、数値情報生成装置。
【請求項２】
前記計算部は、
前記複数のクロスバースイッチ間の抵抗値に応じて、静的タイミング解析を実行する際のネットリストに算出されるリーフセルの発生手法を切り替える、請求項１に記載の数値情報生成装置。
【請求項３】
前記計算部は、
前記複数のクロスバースイッチ間の抵抗値と前記複数のクロスバースイッチのそれぞれのファンアウト数の総和に基づき、静的タイミング解析を実行する際のネットリストに算出されるリーフセルの発生手法を切り替える、請求項２に記載の数値情報生成装置。
【請求項４】
前記計算部は、
前記ベース遅延に相当するリーフセルを発生させると共に、前記補正遅延に相当するリーフセルを前記ベース遅延に相当するリーフセルに従属するリーフセルとして発生させる、請求項２又は３に記載の数値情報生成装置。
【請求項５】
前記複数のクロスバースイッチは、１つの能動素子から電力の供給を受ける請求項１乃至４のいずれか一項に記載の数値情報生成装置。
【請求項６】
前記能動素子は、バッファ回路である、請求項５に記載の数値情報生成装置。
【請求項７】
前記プログラマブル論理集積回路は、各クロスバースイッチ間にハイインピーダンス状態を保持することができる素子を備える、請求項１乃至６のいずれか一項に記載の数値情報生成装置。
【請求項８】
前記計算部により計算された前記複数のクロスバースイッチのそれぞれの遅延に関する情報を、外部に出力する、出力部をさらに備える、請求項１乃至７のいずれか一項に記載の数値情報生成装置。
【請求項９】
コンピュータを用いて、
抵抗変化素子で構成された、複数のクロスバースイッチを含むプログラマブル論理集積回路の情報を入力するステップと、
前記複数のクロスバースイッチのそれぞれについて、他のクロスバースイッチの負荷容量の影響が排除された遅延であるベース遅延と、他のクロスバースイッチのファンアウトの影響により生じる遅延である補正遅延と、を計算するステップと、
前記複数のクロスバースイッチのそれぞれの遅延を、前記複数のクロスバースイッチのそれぞれに対応する前記ベース遅延と前記補正遅延に基づき計算するステップと、
を含む数値情報生成方法。
【請求項１０】
コンピュータに、
抵抗変化素子で構成された、複数のクロスバースイッチを含むプログラマブル論理集積回路の情報を入力する処理と、
前記複数のクロスバースイッチのそれぞれについて、他のクロスバースイッチの負荷容量の影響が排除された遅延であるベース遅延と、他のクロスバースイッチのファンアウトの影響により生じる遅延である補正遅延と、を計算する処理と、
前記複数のクロスバースイッチのそれぞれの遅延を、前記複数のクロスバースイッチのそれぞれに対応する前記ベース遅延と前記補正遅延に基づき計算する処理と、
を実行させるプログラム。
【請求項１１】
請求項１０記載のプログラムを記録したコンピュータ可読記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願についての記載）
本発明は、日本国特許出願：特願２０１８−０９３４６２号（２０１８年０５月１５日出願）の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は、数値情報生成装置、数値情報生成方法及びプログラムに関する。
【背景技術】
【０００２】
半導体集積回路は、半導体基板に形成されたトランジスタと、トランジスタを接続するために半導体基板の上層に形成された配線構造を備えて構成される。トランジスタや配線のパターンは、集積回路の設計段階で決められており、半導体集積回路製造後に、トランジスタ同士の接続を変更することは不可能である。【０００３】
ＦＰＧＡ（Field Programmable Gate Array）などのプログラマブル論理集積回路は、論理演算回路の動作や、論理演算回路の接続をメモリに記憶することで、論理動作や配線の接続の変更を可能にしている。ここで、構成情報の記憶を行うメモリ素子として、ＳＲＡＭ（Static Random Access Memory）セル、アンチフューズ、フローティングゲートＭＯＳ（Metal Oxide Semiconductor）トランジスタなどを用いている。【０００４】
これらのメモリ素子はトランジスタと同じ層に形成されているため、非常に大きな面積オーバヘッドが生じる。その結果、プログラマブル論理集積回路のチップ面積が大きくなり、製造コストが上昇する、という問題がある。また、論理演算回路同士の接続を変更する配線スイッチの面積が大きくなるために、チップ面積に占める論理演算回路の割合が低くなってしまう、という問題がある。この使用効率の低下により、ＦＰＧＡに実装される回路の動作速度の低下や動作電力の増大を招く。【０００５】
製造後に配線接続構成の変更を可能とし、製造後に回路の不具合の修正や仕様の変更を可能とし、さらにチップ面積の縮小や電力性能比の向上を図ることを目的として、配線層に形成可能な抵抗変化素子を利用したプログラマブル論理集積回路が提案されている。【０００６】
例えば、特許文献１や特許文献２に開示されるプログラマブル論理集積回路は、第１の配線層と、その上部に形成される第２の配線層との間に、金属イオンを含有する固体電解質材料から構成される抵抗変化素子を有する構造になっている。抵抗変化素子の両端に順バイアス、あるいは逆バイアスを印加することによりその抵抗値を変えることができ、低抵抗状態（オン状態）と高抵抗状態（オフ状態）の比は１０の５乗、あるいはそれ以上となる。すなわち、当該抵抗変化素子は、第１の配線と第２の配線とを電気的に接続、あるいは切断できるスイッチ手段として機能する。【０００７】
通常、プログラマブル論理集積回路における配線の接続／切断においては、ＳＲＡＭセルと、スイッチ機能を有する１個のトランジスタから構成されるスイッチセルが利用されている。一方、抵抗変化素子はメモリ機能とスイッチ機能を実現できるため、スイッチセルを１個の抵抗変化素子で実現できるようになる。【０００８】
特許文献１によると、第１の配線群と第２の配線群の各交点に抵抗変化素子を配置することで、第１の配線群の任意の配線と、第２の配線群の任意の配線を自在に接続可能なクロスバースイッチ回路を非常にコンパクトなサイズで構成できる。その結果、チップ面積の大幅な縮小化や、論理演算回路の使用効率の改善による性能向上が期待できる。また、抵抗変化素子のオン／オフ状態は、集積回路の通電が遮断された状態でも保持されるため、プログラマブル論理集積回路の電源を投入する度に回路構成情報をロードする手間を省くことができる、という利点もある。【０００９】
半導体集積回路の設計では、通常、ハードウェア記述言語などを用いて論理仕様を表現し、これを元に設計ツールを用いて論理合成を行う。論理合成によって得られた回路の機能や動作速度の検証を行うまでが一連の工程となる。動作速度の検証には、静的タイミング解析（Static Timing Analysis、ＳＴＡと略す）を用いることが主流である。【００１０】
ＳＴＡは回路動作のテストパターンを使わずに、当該回路における全ての信号伝播経路の遅延を計算して所望のクロック周波数で動作するかを検証する方法である。具体的には、当該回路に存在するＤ型フリップフロップ（Ｄ型Flip-Flop、ＤＦＦと略す）のような順序回路から次段の順序回路までの信号伝播経路（ネットリスト）を全て抜き出す。その後、当該ネットリストを通過する時間（遅延）を計算する。各ネットリストにおける遅延が、最終段に存在する順序回路のセットアップ時間やホールド時間の条件（タイミング制約）に違反するか否かを判定して、動作周波数を求める。【００１１】
ＳＴＡで計算するネットリストは、例えば図９に示すように、ＤＦＦ１からセル１〜５を経由してＤＦＦ２までの接続を有する。セル１〜５は電源回路を含むゲートレベルの回路であり、論理と遅延及び電力の情報を有する。以降、ＤＦＦ１、２やセル１〜５のようなセルは、ＳＴＡ検証等のキャラクラタイズを行うためのネットリスト上の最小単位回路でありリーフセルと呼ぶ。図９のネットリストを信号が伝播するときの遅延は、ＤＦＦ１とセル１〜５までのリーフセルの遅延を積算して求められ、ＤＦＦ２のタイミング制約を満たすか否かの計算が行われる（総和手法）。リーフセルの遅延やタイミング制約、及び電力は、ｓｐｉｃｅ(simulation program with integrated circuit emphasis)に代表される回路シミュレータを用いて求められる。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特許第４３５６５４２号公報
【特許文献２】国際公開第２０１２／０４３５０２号
【発明の概要】
【発明が解決しようとする課題】
【００１３】
なお、上記先行技術文献の各開示を、本書に引用をもって繰り込むものとする。以下の分析は、本発明者らによってなされたものである。【００１４】
ＡＳＩＣ（Application Specific Integrated Circuit）などでは、ゲート素子とゲート素子の接続は多岐に渡り、接続配線の抵抗及び容量は各接続により異なる。そのため、入力及び出力容量は一定にはならず、リーフセルの遅延や電力は、入力容量と出力容量の組み合わせによる２次元の行列となる。ＳＴＡにて、計算上のネットリストの遅延を求めるためには、当該ネットリストを構成するリーフセルごとに入力容量と出力容量の計算を行わなければならず、そのようなツールの開発には多くの工数を要する。【００１５】
ＦＰＧＡ（Field Programmable Gate Array）は、図１０（Ａ）に示すように、演算を行うロジックブロック２０２と信号線、その信号線の接続を担うルーティングスイッチブロック２０３（「スイッチブロック」とも略記される）を含むセルロジックブロック２０１（Cell Logic Block、ＣＬＢと略記される、Configurable Logic Block（構成可能論理ブロック）ともいう ）を、図１０（Ｂ）に示すように、タイル状（マトリクス状）に配置して構成される。ＣＬＢ間は、ＣＬＢ間配線２０４で接続される。プログラマブル論理集積回路では、ロジックブロック２０２内の不図示のルックアップテーブル（Look Up Table：ＬＵＴ）やスイッチブロック２０３の配線接続の設定を行うことで、所望の動作を行う回路を得る。プログラマブル論理集積回路におけるゲート素子間の接続は一義的に決まり、ゲート間配線の抵抗及び容量も一定であるため、各ゲート素子の入力及び出力容量は一定として遅延を求めることができる。すなわち、プログラマブル論理集積回路のＳＴＡにおいては、接続による入出力容量を計算させなくて良く、比較的開発工数の少ないツールを用いることができる。【００１６】
それに対して、抵抗変化素子を用いたプログラマブル論理集積回路の場合には、多少の工夫が必要になる。すなわち、スイッチブロックにおけるオン状態の抵抗変化素子の数によって出力負荷容量が変化するため、その出力負荷の種類に応じたリーフセルを用意しなければならない。抵抗変化素子を用いたスイッチブロックでは、オン状態の抵抗変化素子からの出力信号を整流するために、該抵抗変化素子の後段にバッファが配置される（バッファはボルテージフォロワ等で構成してもよい）。当該バッファを、電源素子（信号源）として、隣接ＣＬＢに接続する配線と、その配線に接続するスイッチブロック内の抵抗変化素子をルーティングのリーフセルとして遅延を計算する。【００１７】
図１１（Ａ）に、スイッチブロック（図１０（Ａ）の２０３）を構成する、抵抗変化素子を用いたクロスバースイッチの一例を示す。スイッチブロック２０３（クロスバースイッチブロック）内の不図示のＳＭＵＸ（Switch Multiplexer）は、セルロジックブロックＣＬＢ間の信号パスの切替えを行う。なお、スイッチブロック（クロスバースイッチブロック）２０３内の不図示のスイッチＩＭＵＸ（Input Multiplexer）は、図１０（Ａ）のロジックブロック２０２内のＬＵＴへの信号入力の切替えを行う。図１１（Ａ）では、第一の方向の配線ｉｎ０―３と、第一の方向と直交する第二の方向の配線ｏｕｔ０―３の各交点に抵抗変化素子が配設された４×４のマトリックス構成が示されている。（０、０）に位置する抵抗変化素子がオン状態（黒い四角）、その他の抵抗変化素子はオフ状態（斜線の四角）とすると、ｉｎ０から伝わる信号を、（０、０）の抵抗変化素子を介してｏｕｔ０に出力するクロスバースイッチになる。各抵抗変化素子は図１１（Ｂ）に示すような等価回路となる。抵抗変化素子は、抵抗（可変抵抗）Ｒ（ＮＢ）と該抵抗の一端に接続される容量Ｃ（ＮＢ）からなる。なお、Ｒ（ＮＢ），Ｃ（ＮＢ）のＮＢは、イオン伝導型スイッチNanoBridge（ＮＥＣの日本における登録商標）を表している。図１１（Ａ）のクロスバースイッチは図１１（Ｃ）に示す等価回路となる。なお、図１１（Ｃ）の等価回路では、図１１（Ｂ）の可変抵抗は斜め矢印を省略した抵抗のシンボルで表されている。オフ状態の抵抗変化素子は、例えば、１０の６乗Ohmレベルの抵抗値をとるため、配線ｏｕｔ１、２、３は配線及び抵抗変化素子の容量だけが観測される（図１１（Ｃ）では容量Ｃ１―３で表されている）。また、オン状態の抵抗変化素子を介するｏｕｔ０は、例えば、１０の３乗レベルの抵抗と、（０、１）、（０、２）、（０、３）の抵抗変化素子の容量と配線容量が観測される（図１１（Ｃ）では容量Ｃ０と抵抗Ｒ（ＮＢ）で表されている）。なお、ＯＮ＿ＮＢは、オン状態の抵抗変化素子を表している。なお、抵抗変化素子は、イオン伝導型に限定されるものでなく、遷移金属酸化物を用いた抵抗変化素子であってもよい。【００１８】
図１２に、ルーティングスイッチブロックのクロスバースイッチＳＭＵＸをキャラクタライズ（静的タイミング解析を行うために、単位回路毎の遅延等を含む遅延情報ライブラリを構築するための準備）するためのバッファｂｕｆ０を起点とした回路構成の一例を示す。図１２において、バッファｂｕｆ０は、セルロジックブロックＣＬＢ０に位置され、クロスバースイッチＳＭＵＸ０内の一つの抵抗変化素子を介する信号を隣接するＣＬＢに伝送する。バッファｂｕｆ０は次段のＣＬＢにとっては電源素子として扱われる。当該クロスバースイッチＳＭＵＸ０は４つ先のセルロジックブロックＣＬＢ３まで信号を伝送するセグメント長４の構造を有する。ＣＬＢ０に隣接する次段のＣＬＢ１のクロスバースイッチＳＭＵＸ１の出力Ｓｅｇ１は、オン状態の抵抗変化素子の数に応じて増加し、該オン状態の抵抗変化素子の数ＦＯ１が、隣接する次段のＣＬＢ１のファンアウト数（１つの出力端子に接続される複数の後段回路の入力端子数）となる。ＣＬＢの出力容量は、クロスバースイッチＳＭＵＸ１〜４のそれぞれのファンアウト数ＦＯ１〜４に依存する。【００１９】
クロスバースイッチ間の抵抗が小さければ、クロスバースイッチＳＭＵＸ１の出力Ｓｅｇ１の遅延Ｄ１、Ｓｅｇ２の遅延Ｄ２、Ｓｅｇ３の遅延Ｄ３、Ｓｅｇ４の遅延Ｄ４はＤ１≒Ｄ２≒Ｄ３≒Ｄ４となる。そのため、各遅延は（ＦＯ１＋ＦＯ２＋ＦＯ３＋ＦＯ４）の一次元の関数となる。しかしながら、各ＣＬＢ間配線には、配線抵抗と容量ＲＣ＿ＣＬＢ１〜４、及び、抵抗変化素子を用いたＦＰＧＡに必要なトランスミッションゲートＴＭＧ１〜４が存在する。各ＣＬＢのスイッチブロックを接続する配線には、あるＣＬＢの抵抗変化素子を書き込む際に、当該ＣＬＢ以外のＣＬＢの抵抗変化素子に書き込み電圧がかかるのを防ぐために、ハイインピーダンス状態（ＴＭＧがオフ状態）を作ることができる素子としてトランスミッションゲートＴＭＧを設置する必要がある。トランスミッションゲートＴＭＧは、例えば、１ｋΩ（kiloohm）程度のオン抵抗値を有するため、Ｓｅｇ１〜４の遅延差に与える影響が大きく、クロスバースイッチＳＭＵＸ１〜４の出力Ｓｅｇ１〜４の遅延値は同一にはならない。【００２０】
そのため、各クロスバースイッチＳＭＵＸ１〜４の出力Ｓｅｇ１〜４の遅延Ｄ１〜４は、ＳＭＵＸ１〜４のそれぞれのファンアウト数ＦＯ１〜４がそれぞれ独立した変数の組み合わせで求める必要が生じる。その組み合わせの数は、クロスバースイッチの最大出力数が増加するほど、当該バッファの担うセグメント長が長くなるほど膨大となる。例えば、各クロスバースイッチＳＭＵＸ１〜４の最大出力数を３２とすると、図１２の回路構成において、バッファｂｕｆ０の遅延Ｄ１〜４は、３２×３２×３２×３２＝１、０４８、５７６通りにもなる。このため、クロスバースイッチのキャラクタライズとしては、手間が掛かりすぎる。【００２１】
本発明は、上記事情に鑑みて創案されたものであって、抵抗変化素子で構成されたクロスバースイッチをキャラクタライズする工数の削減に寄与する数値情報生成装置、数値情報生成方法及びプログラムを提供することを主たる目的とする。
【課題を解決するための手段】
【００２２】
本開示の第１の視点によれば、抵抗変化素子で構成された、複数のクロスバースイッチを含むプログラマブル論理集積回路の回路情報を入力する入力部と、前記複数のクロスバースイッチのそれぞれについて、他のクロスバースイッチの負荷容量の影響が排除された遅延であるベース遅延と、他のクロスバースイッチのファンアウトの影響により生じる遅延である補正遅延と、を計算する計算部と、を備え、前記計算部は、前記複数のクロスバースイッチのそれぞれの遅延を、前記複数のクロスバースイッチのそれぞれに対応する前記ベース遅延と前記補正遅延に基づき計算する、数値情報生成装置が提供される。【００２３】
本開示の第２の視点によれば、コンピュータにより抵抗変化素子で構成された、複数のクロスバースイッチを含むプログラマブル論理集積回路の情報を入力するステップと、前記複数のクロスバースイッチのそれぞれについて、他のクロスバースイッチの負荷容量の影響が排除された遅延であるベース遅延と、他のクロスバースイッチのファンアウトの影響により生じる遅延である補正遅延と、を計算するステップと、前記複数のクロスバースイッチのそれぞれの遅延を、前記複数のクロスバースイッチのそれぞれに対応する前記ベース遅延と前記補正遅延に基づき計算するステップと、を含む数値情報生成方法が提供される。【００２４】
本開示の第３の視点によれば、コンピュータに、抵抗変化素子で構成された、複数のクロスバースイッチを含むプログラマブル論理集積回路の情報を入力する処理と、前記複数のクロスバースイッチのそれぞれについて、他のスイッチの負荷容量の影響が排除された遅延であるベース遅延と、他のクロスバースイッチのファンアウトの影響により生じる遅延である補正遅延と、を計算する処理と、前記複数のクロスバースイッチそれぞれの遅延を、前記複数のクロスバースイッチそれぞれに対応する前記ベース遅延と前記補正遅延に基づき計算する処理と、を実行させるプログラムが提供される。
本開示によれば、上記プログラムを記録した、コンピュータ可読記憶媒体が提供される。記憶媒体は、半導体メモリ、ハードディスク、磁気記録媒体、光記録媒体等の非トランジェント（non-transient）なものとすることができる。本発明は、コンピュータプログラム製品として具現することも可能である。
【発明の効果】
【００２５】
本開示の各視点によれば、抵抗変化素子で構成されたクロスバースイッチをキャラクタライズする工数の削減に寄与する数値情報生成装置、数値情報生成方法及びプログラムが、提供される。
【図面の簡単な説明】
【００２６】
【図１】一実施形態の概要を説明するための図である。
【図２】第１の実施形態に係る数値情報生成装置の処理構成の一例を示す図である。
【図３】第１の実施形態に係る数値情報生成装置のハードウェア構成の一例を示す図である。
【図４】第１の実施形態を説明する図であり、バッファｂｕｆ０を基点としたスイッチブロックのリーフセルを計算する回路の一例を示す図である。
【図５】（Ａ）、（Ｂ）は第１の実施形態において、総和手法における遅延Ｄ１〜Ｄ４の最大差分の一例を示す図である。
【図６】第１の実施形態を説明する図であり、ＣＬＢ１のベース遅延Ｄ＿Ｓｅｇ１を求めるための回路の一例を示す図である。
【図７】第１の実施形態を説明する図であり、クロスバースイッチＳＭＵＸ１を含むＳＴＡ計算上のネットリストの一例を示す図である。
【図８】第１の実施形態に係る遅延計算部の動作の一例を示すフローチャートである。
【図９】ＳＴＡ計算上のネットリストの一例を示す図である。
【図１０】（Ａ）、（Ｂ）は、セルロジックブロックと、セルロジックブロックを複数配置したプログラマブル論理集積回路の一例を示す図である。
【図１１】（Ａ）はプログラマブル再構成論理集積回路を構成するクロスバースイッチの一例を示す図、（Ｂ）は抵抗変化素子の等価回路を示す図、（Ｃ）は（Ａ）のクロスバースイッチの等価回路を示す図である。
【図１２】バッファｂｕｆ０を基点としたスイッチブロックのリーフセルを計算する回路の一例を示す図である。
【発明を実施するための形態】
【００２７】
初めに、一実施形態の概要について説明する。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、この概要の記載はなんらの限定を意図するものではない。また、各図におけるブロック間の接続線は、双方向及び単方向の双方を含む。一方向矢印については、主たる信号（データ）の流れを模式的に示すものであり、双方向性を排除するものではない。さらに、本願開示に示す回路図、ブロック図、内部構成図、接続図などにおいて、明示は省略するが、入力ポート及び出力ポートが各接続線の入力端及び出力端のそれぞれに存在する。入出力インターフェイスも同様である。
【００２８】
一実施形態に係る数値情報生成装置１００は、入力部１０１と、計算部１０２と、を備える（図１参照）。入力部１０１は、抵抗変化素子で構成された、複数のクロスバースイッチを含むプログラマブル論理集積回路の情報を入力する。計算部１０２は、複数のクロスバースイッチのそれぞれについて、他のクロスバースイッチの負荷容量の影響が排除された遅延であるベース遅延と、他のクロスバースイッチのファンアウトの影響により生じる遅延である補正遅延と、を計算する。さらに、計算部１０２は、複数のクロスバースイッチのそれぞれの遅延を、該複数のクロスバースイッチそれぞれに対応するベース遅延と補正遅延に基づき計算する。
【００２９】
上記数値情報生成装置１００は、抵抗変化素子を用いたプログラマブル論理集積回路において、クロスバースイッチ間の抵抗によって、ＳＴＡ計算上のネットリストに算出されるリーフセルの発生手法を切り替える。具体的には、クロスバースイッチ間の抵抗がクロスバースイッチの遅延に大きく影響し、計算した遅延の誤差が許容できないと判断される場合には、上記数値情報生成装置１００は、ベース遅延と補正遅延を用いた遅延計算手法を用いる。ベース遅延と補正遅延を用いた遅延計算手法は、各クロスバースイッチにおけるファンアウト数による膨大な数の組み合わせの計算に変えて、各クロスバースイッチに生じる遅延の性質に着目し、必要な計算量を削減している。具体的には、各クロスバースイッチに生じる遅延は、特定のクロスバースイッチ自身のファンアウトの影響により生じる遅延（ベース遅延）と他のクロスバースイッチのファンアウトに影響される遅延に分離可能であり、各遅延それぞれの和が各クロスバースイッチの遅延として計算される。その結果、出力容量が多岐に亘る抵抗変化素子を用いたプログラマブル論理集積回路のルーティングに関わるクロスバースイッチのキャラクタライズの工数が誤差を抑えつつ低減される。
【００３０】
以下に具体的な実施の形態について、図面を参照してさらに詳しく説明する。なお、各実施形態において同一構成要素には同一の符号を付し、その説明を省略する。
【００３１】
［第１の実施形態］
第１の実施形態について、図面を用いてより詳細に説明する。
【００３２】
図２は、第１の実施形態に係る数値情報生成装置１０の処理構成（処理モジュール）の一例を示す図である。図２を参照すると、数値情報生成装置１０は、回路情報入力部１１と、遅延計算部１２と、結果出力部１３と、を含んで構成される。
【００３３】
回路情報入力部１１は、数値情報の算出対象となる回路（キャラクタライズの対象となる回路）のネットリストを入力する。より具体的には、回路情報入力部１１は、抵抗変化素子で構成された、複数のクロスバースイッチを含むプログラマブル論理集積回路の回路情報を入力する。回路情報入力部１１は、例えば、図１２に示すような回路情報を取得する。
【００３４】
遅延計算部１２は、複数のクロスバースイッチそれぞれの遅延を計算する。遅延計算部１２の動作については後述する。なお、数値情報生成装置１０において、クロスバースイッチの回路に関するキャラクタライズに関して、遅延以外の情報は、任意の既存（公知）の技術を用いて算出する。当該技術に関しては、本願開示の実施に直接関係せず、又、当業者にとって明らかであるのでその説明を省略する。
【００３５】
結果出力部１３は、遅延計算部１２による計算結果（遅延情報）を外部に出力する手段である。例えば、結果出力部１３は、計算結果を印刷する、あるいは、液晶パネル等に表示してもよいし、ＵＳＢ（Universal Serial Bus）メモリ等の外部デバイスに書き込んでもよい。
【００３６】
続いて、第１の実施形態に係る数値情報生成装置１０のハードウェア構成について説明する。図３は、数値情報生成装置１０のハードウェア構成の一例を示す図である。数値情報生成装置１０は、所謂、情報処理装置（コンピュータ）により実現され、図３に例示する構成を備える。例えば、数値情報生成装置１０は、内部バスにより相互に接続される、ＣＰＵ（Central Processing Unit）２１、メモリ２２、入出力インターフェイス２３及び通信手段であるＮＩＣ（Network Interface Card）２４等を備える。
【００３７】
なお、図３に示す構成は、数値情報生成装置１０のハードウェア構成を限定する趣旨ではない。数値情報生成装置１０には、図示しないハードウェアも含まれていてもよいし、必要に応じてＮＩＣ２４等を備えていなくともよい。
【００３８】
メモリ２２は、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）、ＨＤＤ（Hard Disk Drive）等の少なくともいずれかを含む。
【００３９】
入出力インターフェイス２３は、図示しない入出力装置のインターフェイスとなる手段である。入出力装置には、例えば、表示装置、操作デバイス等が含まれる。表示装置は、例えば、液晶ディスプレイ等である。操作デバイスは、例えば、キーボードやマウス等である。
【００４０】
上述の数値情報生成装置１０の各処理モジュールは、例えば、メモリ２２に格納されたプログラムをＣＰＵ２１が実行することで実現される。また、そのプログラムは、ネットワークを介してダウンロードするか、あるいは、プログラムを記憶した記憶媒体を用いて、更新することができる。さらに、上記処理モジュールは、半導体チップにより実現されてもよい。即ち、上記処理モジュールが行う機能を何らかのハードウェア、及び／又は、ソフトウェアで実行する手段があればよい。
【００４１】
次に、ＣＬＢのファンアウト数とクロスバースイッチの遅延の関係について説明する。
【００４２】
図４は、クロスバースイッチ（スイッチブロック）をキャラクタライズするためのバッファｂｕｆ０を起点とした回路の一例を示す図である。図４において、セルロジックブロックＣＬＢ０に位置するバッファｂｕｆ０は、クロスバースイッチＳＭＵＸ０内の一つの抵抗変化素子を通った信号を伝送し、セルロジックブロックＣＬＢ１〜４にそれぞれ位置するクロスバースイッチＳＭＵＸ１〜４に接続する。クロスバースイッチＳＭＵＸ０〜４は、抵抗変化素子で構成されたスイッチブロックであり、抵抗変化素子の抵抗状態によって、配線接続の切り替えを担う。各ＣＬＢのクロスバースイッチＳＭＵＸ１〜４の出力Ｓｅｇ１〜４の数は、オン状態の抵抗変化素子の数に等しく増加し、オン状態の抵抗変化素子の数ＦＯ１〜ＦＯ４が各クロスバースイッチのファンアウト数となる。
【００４３】
Total F/O = FO1 + FO2 + FO3 + FO4        ・・・  （１）
【００４４】
以降の説明では、上記式（１）のようにＳＭＵＸ１〜４におけるファンアウトの総和をＴｏｔａｌ  Ｆ／Ｏと表記する。また、ＳＭＵＸ１〜４の出力Ｓｅｇ１〜４の遅延をそれぞれＤ１、Ｄ２、Ｄ３、Ｄ４と表記する。
【００４５】
図５（Ａ）、（Ｂ）は、総和手法における遅延Ｄ１〜Ｄ４の最大誤差（％）を説明するための図である。図４におけるＣＬＢ間抵抗ＲＣ＿ＣＬＢ１〜４及びＣＬＢ内抵抗ＲＣ＿ｉｎ１〜４と、Ｔｏｔａｌ  Ｆ／Ｏが遅延に及ぼす影響として、Ｔｏｔａｌ  Ｆ／Ｏが図５（Ａ）と図５（Ｂ）で一致するときの遅延Ｄ１〜４の最大差分（％）を示す。
【００４６】
図５（Ａ）は、ＣＬＢ間抵抗をそれぞれ変動させた場合の遅延に関する誤差を示している。図５（Ｂ）は、ＣＬＢ内抵抗をそれぞれ変動させた場合の遅延に関する誤差を示している。最大差分（％）は、Ｔｏｔａｌ  Ｆ／Ｏの関数として遅延を計算したときの誤差となる。半導体集積回路を製造するプロセスにて、例えば製造ロットやチップ間のトランジスタの閾値や層間膜厚などのばらつきを考慮すると、遅延のばらつきとして５％は許容しても良い範囲として考えられる。このため、本実施形態では、クロスバースイッチのキャラクタライズにおける遅延誤差を５％以内に収めることとする。つまり、クロスバースイッチをキャラクタライズする際の誤差は、５％までは許容されるものとする。
【００４７】
図５（Ａ）、（Ｂ）において、Ｔｏｔａｌ  Ｆ／Ｏが大きく、配線抵抗が大きい範囲が遅延誤差５％以上の領域（図５（Ａ）、（Ｂ）の濃い灰色の領域）となっている。ここで、抵抗変化素子を用いたプログラマブル論理集積回路に必要なトランスミッションゲートは、図６に示すように配置される（図中ＴＭＧ１〜４）。この場合、トランスミッションゲートＴＭＧ１〜４は１ｋΩ程度のオン抵抗値を有するため、ＣＬＢ間配線抵抗は１０００Ω以上となる。図５（Ａ）によれば、１０００Ω以上のＣＬＢ間配線抵抗について、Ｔｏｔａｌ  Ｆ／Ｏ（５〜１１）のいずれについても、遅延誤差は５％以上となる。従って、総和手法により遅延Ｄ１〜Ｄ４を算出すると、許容される誤差（例えば、５％）を満たすことができない。
【００４８】
このため、第１の実施形態では、次に述べる手法によって遅延Ｄ１〜４を求める。また、ＣＬＢ内配線抵抗は１００Ω以下となるため、同一ＣＬＢからの出力は、当該ＣＬＢ内のファンアウトの総和を変数とした遅延を使用して良い。また、このときのクロスバースイッチは、縦方向３２列、横方向３２行の配線を有し、抵抗変化素子をその各交点に配置した構造とする。但し、クロスバースイッチの配線構造は上記（３２列×３２行）に限定されるものでないことは勿論である。
【００４９】
次に、遅延計算部１２の動作に関する詳細を説明する。
【００５０】
遅延計算部１２は、複数のクロスバースイッチそれぞれについて、他のクロスバースイッチの負荷容量の影響が排除された遅延であるベース遅延と、他のクロスバースイッチのファンアウトの影響により生じる遅延である補正遅延と、を計算する。その後、遅延計算部１２は、複数のクロスバースイッチのそれぞれの遅延を、対応するベース遅延と補正遅延に基づき計算する。
【００５１】
その際、遅延計算部１２は、複数のクロスバースイッチ間の抵抗値に応じて、静的タイミング解析を実行する際のネットリストに算出されるリーフセルの発生手法を切り替える。具体的には、遅延計算部１２は、トータルファンアウト数及びＣＬＢ間配線抵抗の値に応じて、クロスバースイッチの遅延算出に関する手法を切り替える。
【００５２】
例えば、遅延計算部１２は、トータルファンアウト数及びＣＬＢ間配線の抵抗値によりクロスバースイッチの遅延誤差が大きい場合（例えば、遅延誤差が５％を超える場合）には、下記に説明する手法（ベース遅延及び補正遅延を用いる手法）により遅延を計算する。一方、遅延計算部１２は、クロスバースイッチの遅延誤差が小さいと想定される場合（例えば、遅延誤差が５％以下の場合）には、上記の総和手法により遅延を計算する。なお、図５（Ａ）に示すような、トータルファンアウト、ＣＬＢ間配線抵抗及び遅延誤差に関する情報は、予め数値情報生成装置１０の内部に格納され、遅延計算部１２が参照可能に構成される。
【００５３】
ここでは、遅延計算部１２は、図６に示す回路のクロスバースイッチの遅延を計算するものとして以下の説明を行う。特に、遅延計算部１２は、１つの能動素子（図６の例ではＣＬＢ０のバッファｂｕｆ０；バッファ回路）から電力の供給（信号の伝達）を受けるクロスバースイッチＳＭＵＸ１〜４の遅延を計算する。
【００５４】
また、図６には、各クロスバースイッチ間（ＳＭＵＸ０、１、ＳＭＵＸ１、２、ＳＭＵＸ２、３、ＳＭＵＸ３、４）に、ハイインピーダンス状態を保持することができる素子であるトランスミッションゲートＴＭＧ（ＴＭＧ１〜４）が配置されている。上述のように、トランスミッションゲートＴＭＧのオン抵抗値は、１０００Ω以上であることから、図５（Ａ）によれば、トータルファンアウト数によらず、遅延誤差は、基準（５％）を超える。従って、遅延計算部１２は、総和手法を使わず、以下の方法によりクロスバースイッチの遅延を計算する。
【００５５】
はじめに、遅延計算部１２は、キャラクタライズの対象となるクロスバースイッチを含むセルロジックブロックＣＬＢ１における出力Ｓｅｇ１のベース遅延Ｄ＿Ｓｅｇ１を求める。ベース遅延Ｄ＿Ｓｅｇは、上述のように、他のセルロジックブロックＣＬＢに配置されたクロスバースイッチの負荷容量の影響を排除した結果のクロスバースイッチの出力Ｓｅｇにおける遅延である。
【００５６】
遅延計算部１２は、図６に示すように、セルロジックブロックＣＬＢ２−４のファンアウト：ＦＯ２＝ＦＯ３＝ＦＯ４＝０とし、セルロジックブロックＣＬＢ１におけるファンアウトＦＯ１を１〜３２のように変動させてシミュレーション（ｓｐｉｃｅ等を用いた遅延の計算）を行う。以降の説明では、ファンアウトＦＯ１を変数としているため、セルロジックブロックＣＬＢ１のベース遅延をＤ＿Ｓｅｇ１（ＦＯ１）と記述する。同様に、遅延計算部１２は、セルロジックブロックＣＬＢ２のベース遅延Ｄ＿Ｓｅｇ２（ＦＯ２）を、セルロジックブロックＣＬＢ１、３、４のファンアウト：ＦＯ１＝ＦＯ３＝ＦＯ４＝０とし、セルロジックブロックＣＬＢ２のファンアウト：ＦＯ２を１〜３２と変動させて求める。同様に、遅延計算部１２は、セルロジックブロックＣＬＢ３のベース遅延Ｄ＿Ｓｅｇ３（ＦＯ３）を、セルロジックブロックＣＬＢ１、２、４のファンアウト：ＦＯ１＝ＦＯ２＝ＦＯ４＝０として、セルロジックブロックＣＬＢ３のファンアウト：ＦＯ３を１〜３２と変動させて求める。遅延計算部１２は、セルロジックブロックＣＬＢ４のベース遅延Ｄ＿Ｓｅｇ４（ＦＯ４）を、セルロジックブロックＣＬＢ１−３のファンアウト：ＦＯ１＝ＦＯ２＝ＦＯ３＝０として、セルロジックブロックＣＬＢ４のファンアウト：ＦＯ４を１〜３２と変動させて求める。
【００５７】
次に、遅延計算部１２は、各セルロジックブロックＣＬＢにおける補正遅延を求める。補正遅延とは、上述のように、他のセルロジックブロックＣＬＢに配置されたクロスバースイッチのファンアウトの影響により生じる遅延である。
【００５８】
例えば、クロスバースイッチＳＭＵＸ１のオン状態の抵抗変化素子数がＦＯ１＝ｘのとき、クロスバースイッチＳＭＵＸ１の容量と抵抗は、セルロジックブロックＣＬＢ１の遅延Ｄ１だけでなく、セルロジックブロックＣＬＢ２、３、４の遅延：Ｄ２、Ｄ３、Ｄ４のそれぞれに影響を及ぼす。そこで、遅延計算部１２は、セルロジックブロックＣＬＢ２−４のファンアウト：ＦＯ２＝ＦＯ３＝ＦＯ４＝１として、セルロジックブロックＣＬＢ１のファンアウト：ＦＯ１を０〜３２まで変動させ、遅延Ｄ１＿１（ＦＯ１）、Ｄ２＿１（ＦＯ１）、Ｄ３＿１（ＦＯ１）、Ｄ４＿１（ＦＯ１）を計算する。クロスバースイッチＳＭＵＸ１のオン状態の抵抗変化素子数がＦＯ１＝ｘのとき、ＦＯ１に関わる遅延Ｄ２の補正遅延ΔＤ＿ｓｅｇ２（ＦＯ１＝ｘ）は（２）式の通りに求める（ｘは０〜３２）。
【００５９】
ΔD_seg2(FO1=x) = D2_1(FO1=x) − D2_1(FO1=0)        ・・・  (2)
【００６０】
同様に、クロスバースイッチＳＭＵＸ１のオン状態の抵抗変化素子数がＦＯ１＝ｘ（ｘは０〜３２）のとき、ＦＯ１に関わる補正遅延ΔＤ＿ｓｅｇ３（ＦＯ１＝ｘ）、ΔＤ＿ｓｅｇ４（ＦＯ１＝ｘ）はそれぞれ、（３）式、（４）式の通りに求められる。
【００６１】
ΔD_seg3(FO1=x) = D3_1(FO1=x) − D3_1(FO1=0)        ・・・  (3)
ΔD_seg4(FO1=x) = D4_1(FO1=x) − D4_1(FO1=0)        ・・・  (4)
【００６２】
また、クロスバースイッチＳＭＵＸ２のオン状態の抵抗変化素子数がＦＯ２＝ｘ（ｘは０〜３２）のとき、該ＳＭＵＸ２の容量と抵抗が、遅延Ｄ１、Ｄ３、Ｄ４にもたらす補正遅延ΔＤ＿ｓｅｇ１（ＦＯ２＝ｘ）、ΔＤ＿ｓｅｇ３（ＦＯ２＝ｘ）、ΔＤ＿ｓｅｇ４（ＦＯ２＝ｘ）はそれぞれ（５）、（６）、（７）式の通りに求められる。
【００６３】
ΔD_seg1(FO2=x) = D1_1(FO2=x) − D1_1(FO2=0)     ・・・  (5)
ΔD_seg3(FO2=x) = D3_1(FO2=x) − D3_1(FO2=0)     ・・・  (6)
ΔD_seg4(FO2=x) = D4_1(FO2=x) − D4_1(FO2=0)     ・・・  (7)
【００６４】
クロスバースイッチＳＭＵＸ３のオン状態の抵抗変化素子数がＦＯ３＝ｘ（ｘは０〜３２）のとき、該ＳＭＵＸ３の容量と抵抗が、遅延Ｄ１、Ｄ２、Ｄ４にもたらす補正遅延ΔＤ＿ｓｅｇ１（ＦＯ３＝ｘ）、ΔＤ＿ｓｅｇ２（ＦＯ３＝ｘ）、ΔＤ＿ｓｅｇ４（ＦＯ３＝ｘ）はそれぞれ（８）、（９）、（１０）式の通りに求められる。
【００６５】
ΔD_seg1(FO3=x) = D1_1(FO3=x) − D1_1(FO3=0)     ・・・  (8)
ΔD_seg2(FO3=x) = D2_1(FO3=x) − D2_1(FO3=0)     ・・・  (9)
ΔD_seg4(FO3=x) = D4_1(FO3=x) − D4_1(FO3=0)     ・・・  (10)
【００６６】
クロスバースイッチＳＭＵＸ４のオン状態の抵抗変化素子数がＦＯ４＝ｘのとき、ＳＭＵＸ４の容量と抵抗が、遅延Ｄ１、Ｄ２、Ｄ３にもたらす補正遅延ΔＤ＿ｓｅｇ１（ＦＯ４＝ｘ）、ΔＤ＿ｓｅｇ２（ＦＯ４＝ｘ）、ΔＤ＿ｓｅｇ３（ＦＯ４＝ｘ）はそれぞれ（１１）、（１２）、（１３）式の通りに求められる。
【００６７】
ΔD_seg1(FO4=x) = D1_1(FO4=x) − D1_1(FO4=0)     ・・・  (11)
ΔD_seg2(FO4=x) = D2_1(FO4=x) − D2_1(FO4=0)     ・・・  (12)
ΔD_seg3(FO4=x) = D3_1(FO4=x) − D3_1(FO4=0)     ・・・  (13)
【００６８】
なお、上記説明では、補正遅延を算出する際に各クロスバースイッチＳＭＵＸのファンアウト数を「１」に設定しているが、当該ファンアウト数は例示であって、補正遅延の算出に用いるファンアウト数は限定する趣旨ではない。例えば、ベース遅延のリーフセルのファンアウト数が小さい場合には、各クロスバースイッチＳＭＵＸのファンアウト数を小さく設定した方が補正遅延のリーフセルの誤差が小さくなる。そのため、遅延計算部１２は、初めに、クロスバースイッチＳＭＵＸのファンアウト数を小さく設定（例えば、ＦＯ２＝ＦＯ３＝ＦＯ４＝１）し、キャラクタライズした結果の誤差が所定範囲（例えば、５％以内）に収まれば、当該小さく設定したファンアウト数による遅延情報を用いる。誤差が所定範囲に収まっていなければ、遅延計算部１２は、各クロスバースイッチＳＭＵＸのファンアウト数を大きく設定（例えば、ＦＯ２＝ＦＯ３＝ＦＯ４＝４）した上で補正遅延を算出し、誤差が所定範囲に収まっているか否かを検証する。遅延計算部１２は、このような処理を繰り返すことで、適切な補正遅延を算出する。
【００６９】
遅延計算部１２は、以上の計算より、遅延Ｄ１、Ｄ２、Ｄ３、Ｄ４はベース遅延と補正遅延の和として、（１４）、（１５）、（１６）、（１７）式の通り求めることができる。
【００７０】
D1 = D_Seg1(FO1) + ΔD_seg1(FO2) + ΔD_seg1(FO3) + ΔD_seg1(FO4) ・・・ (14)
D2 = D_Seg2(FO2) + ΔD_seg2(FO1) + ΔD_seg2(FO3) + ΔD_seg2(FO4) ・・・ (15)
D3 = D_Seg3(FO3) + ΔD_seg3(FO1) + ΔD_seg3(FO2) + ΔD_seg3(FO4) ・・・ (16)
D4 = D_Seg4(FO4) + ΔD_seg4(FO1) + ΔD_seg4(FO2) + ΔD_seg4(FO3) ・・・ (17)
【００７１】
遅延計算部１２は、上記の式（１４）〜（１７）に関する計算結果を、図６に示す各クロスバースイッチＳＭＵＸ１−４の遅延情報Ｄ１−４として結果出力部１３に引き渡す。上記遅延情報は結果出力部１３から出力される。
【００７２】
上記遅延計算部１２の動作をまとめると図８に示すフローチャートのとおりとなる。
【００７３】
初めに、遅延計算部１２は、図５に示すような情報を参照し、トータルファンアウト数及びＣＬＢ間配線抵抗の値から想定される遅延誤差が基準（例えば、５％）を満たすか否かを判定する（ステップＳ１０１）。基準を満たす場合（ステップＳ１０１、Ｙｅｓ分岐）には、遅延計算部１２は、既存の手法である総和手法によりクロスバースイッチの遅延情報を算出する（ステップＳ１０２）。
【００７４】
遅延誤差が基準を満たさない場合（ステップＳ１０１、Ｎｏ分岐）には、遅延計算部１２は、ベース遅延を計算する（ステップＳ１０３）。その後、遅延計算部１２は、補正遅延を計算し（ステップＳ１０４）、ベース遅延と補正遅延に基づきクロスバースイッチの遅延情報を計算する（ステップＳ１０５）。
【００７５】
このように、遅延計算部１２は、複数のクロスバースイッチ間の抵抗値と複数のクロスバースイッチそれぞれのファンアウト数の総和に基づき、静的タイミング解析を実行する際のネットリストに算出されるリーフセルの発生手法を切り替える。
【００７６】
ここで、例えば、式（１４）は、ＳＴＡ計算上のネットリストとして、クロスバースイッチＳＭＵＸ１の遅延Ｄ１は、図７に示すように、記述（表現）できることを示す。なお、図７は、セル１からバッファｂｕｆ０を通り、クロスバースイッチＳＭＵＸ１を通るパスを計算するネットリストを示す。バッファｂｕｆ０から信号が伝わるクロスバースイッチはＳＭＵＸ１〜４の４つであり、それぞれが出力を持つと、ベース遅延としてのリーフセルと、補正遅延１〜３の３つのバッファの論理を有するリーフセルが発生する。つまり、遅延計算部１２は、ベース遅延に相当するリーフセルを発生させると共に、補正遅延に相当するリーフセルをベース遅延に相当するリーフセルに従属するリーフセルとしてネットリスト（伝搬経路上）に発生させる。
【００７７】
上記の例では、ベース遅延のリーフセルとして、Ｄ＿ｓｅｇ１、Ｄ＿ｓｅｇ２、Ｄ＿Ｓｅｇ３、Ｄ＿Ｓｅｇ４が各３２種類となり、３２×４＝１２８種類となる。クロスバースイッチＳＭＵＸ１を通るパスで発生させる補正遅延のリーフセルΔＤ＿ｓｅｇ１は、ＦＯ２、ＦＯ３、ＦＯ４にそれぞれ依存するリーフセルが各３２種類であるから、３２×３＝９６種類となる。同様に、クロスバースイッチＳＭＵＸ２、ＳＭＵＸ３、ＳＭＵＸ４を通るパスで発生させる補正遅延リーフセルΔＤ＿ｓｅｇ２、ΔＤ＿ｓｅｇ３、ΔＤ＿ｓｅｇ４は、各９６種類となり、補正遅延リーフセルは全部で、９６×４＝３８４種類となる。
【００７８】
従って、ルーティングに関わるリーフセルの数は、１２８＋３８４＝５１２個となり、本実施形態の手法を用いることで、大幅に削減することが可能となる。本実施形態の手法は、スイッチブロックの信号を伝送するバッファ一つあたりの担うスイッチブロックや、スイッチブロックの最大出力数に関わらず、用いることが可能であり、それらの数が増えるほど効果を発揮する。
【００７９】
また、第１の実施形態に係る遅延計算部１２は、補正遅延のリーフセルの使用有無をＴｏｔａｌ  Ｆ／Ｏに応じて使い分けしている。その結果、クロスバースイッチ（スイッチブロック）のキャラクタライズの精度を維持することができる。
【００８０】
さらに、前述の通り、クロスバースイッチＳＭＵＸ１のオン状態の抵抗変化素子数がＦＯ１＝ｘのとき、クロスバースイッチＳＭＵＸ１の容量と抵抗は、遅延Ｄ１だけでなく、遅延Ｄ２〜Ｄ４それぞれに影響を及ぼす。しかし、図５（Ａ）、（Ｂ）に示すように、ＦＯ２、ＦＯ３、ＦＯ４の総和が小さい場合と大きい場合では、影響度合いが異なる。そこで、遅延計算部１２は、ファンアウトの総和が大きい場合に、上記説明した手法により、遅延を計算してもよい。
【００８１】
例えば、上記説明では、遅延計算部１２は、補正遅延を算出する際に、セルロジックブロックＣＬＢ２−４のファンアウト：ＦＯ２＝ＦＯ３＝ＦＯ４＝１として、セルロジックブロックＣＬＢ１のファンアウト：ＦＯ１を０〜３２まで変動させている。しかし、遅延計算部１２は、セルロジックブロックＣＬＢ２−４のファンアウト：ＦＯ２＝ＦＯ３＝ＦＯ４＝４とし、セルロジックブロックＣＬＢ１のファンアウト：ＦＯ１を０〜３２まで変動させて、セルロジックブロックＣＬＢ１−４の遅延Ｄ１＿４（ＦＯ１）、Ｄ２＿４（ＦＯ１）、Ｄ３＿４（ＦＯ１）、Ｄ４＿４（ＦＯ１）を計算してもよい。ＦＯ１に関わるＤ２の補正遅延ΔＤ＿ｓｅｇ２（ＦＯ１＝ｘ）、ΔＤ＿ｓｅｇ２（ＦＯ１＝ｘ）、ΔＤ＿ｓｅｇ３（ＦＯ１＝ｘ）、ΔＤ＿ｓｅｇ４（ＦＯ１＝ｘ）は、それぞれ（１８）〜（２０）式の通りに求める。
【００８２】
ΔD_seg2(FO1=x) = D2_4(FO1=x) − D2_4(FO1=0)    ・・・  (18)
ΔD_seg3(FO1=x) = D3_4(FO1=x) − D3_4(FO1=0)    ・・・  (19)
ΔD_seg4(FO1=x) = D4_4(FO1=x) − D4_4(FO1=0)    ・・・  (20)
【００８３】
同様に、クロスバースイッチＳＭＵＸ２〜４に関わる補正遅延ΔＤ＿ｓｅｇ１（ＦＯ２＝ｘ）、ΔＤ＿ｓｅｇ３（ＦＯ２＝ｘ）、ΔＤ＿ｓｅｇ４（ＦＯ２＝ｘ）、ΔＤ＿ｓｅｇ１（ＦＯ３＝ｘ）、ΔＤ＿ｓｅｇ２（ＦＯ３＝ｘ）、ΔＤ＿ｓｅｇ４（ＦＯ３＝ｘ）、ΔＤ＿ｓｅｇ１（ＦＯ４＝ｘ）、ΔＤ＿ｓｅｇ２（ＦＯ４＝ｘ）、ΔＤ＿ｓｅｇ３（ＦＯ４＝ｘ）はそれぞれ（２１）〜（２９）式の通りに求める。遅延Ｄ１、Ｄ２、Ｄ３、Ｄ４は（１４）〜（１７）式で求める。
【００８４】
ΔD_seg1(FO2=x) = D1_4(FO2=x) − D1_4(FO2=0)    ・・・  (21)
ΔD_seg3(FO2=x) = D3_4(FO2=x) − D3_4(FO2=0)    ・・・  (22)
ΔD_seg4(FO2=x) = D4_4(FO2=x) − D4_4(FO2=0)    ・・・  (23)
ΔD_seg1(FO3=x) = D1_4(FO3=x) − D1_4(FO3=0)    ・・・  (24)
ΔD_seg2(FO3=x) = D2_4(FO3=x) − D2_4(FO3=0)    ・・・  (25)
ΔD_seg4(FO3=x) = D4_4(FO3=x) − D4_4(FO3=0)    ・・・  (26)
ΔD_seg1(FO4=x) = D1_4(FO4=x) − D1_4(FO4=0)    ・・・  (27)
ΔD_seg2(FO4=x) = D2_4(FO4=x) − D2_4(FO4=0)    ・・・  (28)
ΔD_seg3(FO4=x) = D3_4(FO4=x) − D3_4(FO4=0)    ・・・  (29)
【００８５】
以上のように、第１の実施形態に係る数値情報生成装置１０は、クロスバースイッチにおける遅延をベース遅延と補正遅延に分離し、各遅延（ベース遅延、補正遅延）を別々に計算することでクロスバースイッチの遅延に関する計算量を削減する。また、数値情報生成装置１０は、ＣＬＢ間配線抵抗及びトータルファンアウト数に応じて、各クロスバースイッチにおけるファンアウトを独立した変数として扱うか否かを決定している。ファンアウト数を独立した変数として扱うことで、総和手法では誤差が大きくなり過ぎる場合でも算出した遅延を適切な誤差範囲に収めることができる。つまり、ファンアウト数やＣＬＢ間配線抵抗に応じて、クロスバースイッチの遅延を計算する際の手法を切り替える事で算出する遅延の誤差を抑制している。
【００８６】
［変形例］
上記実施形態にて説明した数値情報生成装置１０の構成等は例示であって、その構成等を限定する趣旨ではない。数値情報生成装置１０は、遅延を計算するモジュール（遅延計算部１２）だけでなく、当該計算された遅延を用いて静的タイミング解析（ＳＴＡ）を実行するようなモジュールが含まれていてもよい。
【００８７】
上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
（付記１）
上述の第１の視点に係る数値情報生成装置のとおりである。
（付記２）
前記計算部は、
前記複数のスイッチ間の抵抗値に応じて、静的タイミング解析を実行する際のネットリストに算出されるリーフセルの発生手法を切り替える、好ましくは付記１に記載の数値情報生成装置。
（付記３）
前記計算部は、
前記複数のスイッチ間の抵抗値と前記複数のスイッチそれぞれのファンアウト数の総和に基づき、静的タイミング解析を実行する際のネットリストに算出されるリーフセルの発生手法を切り替える、好ましくは付記２に記載の数値情報生成装置。
（付記４）
前記計算部は、
前記ベース遅延に相当するリーフセルを発生させると共に、前記補正遅延に相当するリーフセルを前記ベース遅延に相当するリーフセルに従属するリーフセルとして発生させる、好ましくは付記２又は３に記載の数値情報生成装置。
（付記５）
前記複数のスイッチは、１つの能動素子から電力の供給を受ける好ましくは付記１乃至４のいずれか一に記載の数値情報生成装置。
（付記６）
前記能動素子は、バッファ回路である、好ましくは付記５に記載の数値情報生成装置。
（付記７）
前記プログラマブル論理集積回路は、各スイッチ間にハイインピーダンス状態を保持することができる素子を備える、好ましくは付記１乃至６のいずれか一に記載の数値情報生成装置。
（付記８）
前記計算部により計算された前記複数のスイッチそれぞれの遅延に関する情報を、外部に出力する、出力部をさらに備える、好ましくは付記１乃至７のいずれか一に記載の数値情報生成装置。
（付記９）
上述の第２の視点に係る数値情報生成方法のとおりである。
（付記１０）
上述の第３の視点に係るプログラムのとおりである。
（付記１１）
複数のロジックブロックと、
複数の第一配線と、複数の第二配線の接続を切り替える複数の抵抗変化素子が行列配置される複数のスイッチブロックを備えたプログラマブル論理集積回路において、
前記プログラマブル集積回路の信号波形伝播性能を解析する静的タイミング解析を行うための計算上の伝播経路を作製する手法であって、
前記静的タイミング解析で用いる前記プログラマブル論理集積回路のキャラクタライズ方法。
（付記１２）
付記１１に記載の静的タイミング解析を行うための計算上の伝播経路において、
前記スイッチブロックに電力を供給する能動素子のキャラクタライズ手法であって、
電力を供給するスイッチブロックの数と一致する数のセルを
前記伝播経路に発生させる手法。
（付記１３）
付記１１に記載の静的タイミング解析を行うための計算上の伝播経路において、
前記スイッチブロック間の配線負荷により
前記スイッチブロックの総出力数によってキャラクタライズを行う手法と、
付記１２に記載の手法を切り替える前記静的タイミング解析計算上の伝播経路を作製する手法。
（付記１４）
付記１２に記載の従属セルの計算方法。
（付記１５）
付記１に記載のプログラマブル論理集積回路において、
前記ルーティングスイッチブロックと隣接するルーティングスイッチブロック間にハイインピーダンス状態を保持することができる素子を挿入したことを特徴とするプログラマブル論理集積回路における、
前記プログラマブル集積回路の信号波形伝播性能を解析する静的タイミング解析を行うための伝播経路を作製する手法であって、
前記静的タイミング解析で用いる前記プログラマブル論理集積回路のキャラクタライズ方法。
（付記１６）
付記１４に記載の静的タイミング解析を行うための伝播経路において、
前記スイッチブロックに電力を供給する能動素子のキャラクタライズ手法であって、
電力を供給するスイッチブロックの数と一致する数のセルを
前記伝播経路に発生させる手法。
（付記１７）
付記１６に記載の従属セルの計算方法。
なお、付記９の形態及び付記１０の形態は、付記１の形態と同様に、付記２の形態〜付記８の形態に展開することが可能である。
【００８８】
なお、引用した上記の特許文献等の各開示は、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の全開示の枠内において種々の開示要素（各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む）の多様な組み合わせ、ないし、選択（部分的削除を含む）が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
【符号の説明】
【００８９】
１０、１００  数値情報生成装置
１１  回路情報入力部
１２  遅延計算部
１３  結果出力部
２１  ＣＰＵ（Central Processing Unit）
２２  メモリ
２３  入出力インターフェイス
２４  ＮＩＣ（Network Interface Card）
１０１  入力部
１０２  計算部
２０１  セルロジックブロック（ＣＬＢ）
２０２  ロジックブロック
２０３  ルーティングスイッチブロック
２０４  ＣＬＢ間配線
【図１】
2019221124.tif 000003
【図２】
2019221124.tif 000004
【図３】
2019221124.tif 000005
【図４】
2019221124.tif 000006
【図５】
2019221124.tif 000007
【図６】
2019221124.tif 000008
【図７】
2019221124.tif 000009
【図８】
2019221124.tif 000010
【図９】
2019221124.tif 000011
【図１０】
2019221124.tif 000012
【図１１】
2019221124.tif 000013
【図１２】
2019221124.tif 000014
【国際調査報告】
2019221124.tif 000015
2019221124.tif 000016
2019221124.tif 000017