(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-04-01
(45)【発行日】2022-04-11
(54)【発明の名称】数値情報生成装置、数値情報生成方法及びプログラム
(51)【国際特許分類】
G06F 30/3312 20200101AFI20220404BHJP
H01L 21/82 20060101ALI20220404BHJP
H01L 21/8239 20060101ALI20220404BHJP
H01L 27/105 20060101ALI20220404BHJP
H01L 45/00 20060101ALI20220404BHJP
H01L 49/00 20060101ALI20220404BHJP
G06F 119/12 20200101ALN20220404BHJP
【FI】
G06F30/3312
H01L21/82 A
H01L27/105 448
H01L45/00 Z
H01L49/00 Z
G06F119:12
(21)【出願番号】P 2020519858
(86)(22)【出願日】2019-05-14
(86)【国際出願番号】 JP2019019137
(87)【国際公開番号】W WO2019221124
(87)【国際公開日】2019-11-21
【審査請求日】2020-11-12
(31)【優先権主張番号】P 2018093462
(32)【優先日】2018-05-15
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】520041932
【氏名又は名称】ナノブリッジ・セミコンダクター株式会社
(74)【代理人】
【識別番号】110001519
【氏名又は名称】特許業務法人太陽国際特許事務所
(72)【発明者】
【氏名】多田 あゆ香
(72)【発明者】
【氏名】阪本 利司
(72)【発明者】
【氏名】宮村 信
(72)【発明者】
【氏名】辻 幸秀
(72)【発明者】
【氏名】根橋 竜介
(72)【発明者】
【氏名】白 旭
【審査官】堀井 啓明
(56)【参考文献】
【文献】国際公開第2017/038095(WO,A1)
【文献】特開2009-025891(JP,A)
【文献】特開2002-015024(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 30/00-30/398
H01L 21/82
H01L 21/8239
H01L 45/00
H01L 49/00
(57)【特許請求の範囲】
【請求項1】
抵抗変化素子で構成された、複数のクロスバースイッチを含むプログラマブル論理集積回路の情報を入力する、入力部と、
前記複数のクロスバースイッチのそれぞれについて、他のクロスバースイッチの負荷容量の影響が排除された遅延であるベース遅延と、他のクロスバースイッチのファンアウトの影響により生じる遅延である補正遅延と、を計算する、計算部と、
を備え、
前記計算部は、前記複数のクロスバースイッチのそれぞれの遅延を、前記複数のクロスバースイッチのそれぞれに対応する前記ベース遅延と前記補正遅延に基づき計算
し、
前記複数のクロスバースイッチ間の抵抗値に応じて、静的タイミング解析を実行する際のネットリストに算出されるリーフセルの発生手法を切り替える、数値情報生成装置。
【請求項2】
前記計算部は、
前記複数のクロスバースイッチ間の抵抗値と前記複数のクロスバースイッチのそれぞれのファンアウト数の総和に基づき、静的タイミング解析を実行する際のネットリストに算出されるリーフセルの発生手法を切り替える、請求項
1に記載の数値情報生成装置。
【請求項3】
前記計算部は、
前記ベース遅延に相当するリーフセルを発生させると共に、前記補正遅延に相当するリーフセルを前記ベース遅延に相当するリーフセルに従属するリーフセルとして発生させる、請求項
1又は
2に記載の数値情報生成装置。
【請求項4】
前記複数のクロスバースイッチは、1つの能動素子から電力の供給を受ける請求項1乃至
3のいずれか一項に記載の数値情報生成装置。
【請求項5】
前記能動素子は、バッファ回路である、請求項
4に記載の数値情報生成装置。
【請求項6】
前記プログラマブル論理集積回路は、各クロスバースイッチ間にハイインピーダンス状態を保持することができる素子を備える、請求項1乃至
5のいずれか一項に記載の数値情報生成装置。
【請求項7】
前記計算部により計算された前記複数のクロスバースイッチのそれぞれの遅延に関する情報を、外部に出力する、出力部をさらに備える、請求項1乃至
6のいずれか一項に記載の数値情報生成装置。
【請求項8】
コンピュータを用いて、
抵抗変化素子で構成された、複数のクロスバースイッチを含むプログラマブル論理集積回路の情報を入力するステップと、
前記複数のクロスバースイッチのそれぞれについて、他のクロスバースイッチの負荷容量の影響が排除された遅延であるベース遅延と、他のクロスバースイッチのファンアウトの影響により生じる遅延である補正遅延と、を計算するステップと、
前記複数のクロスバースイッチのそれぞれの遅延を、前記複数のクロスバースイッチのそれぞれに対応する前記ベース遅延と前記補正遅延に基づき計算するステップと、
前記複数のクロスバースイッチ間の抵抗値に応じて、静的タイミング解析を実行する際のネットリストに算出されるリーフセルの発生手法を切り替えるステップと、
を含む数値情報生成方法。
【請求項9】
コンピュータに、
抵抗変化素子で構成された、複数のクロスバースイッチを含むプログラマブル論理集積回路の情報を入力する処理と、
前記複数のクロスバースイッチのそれぞれについて、他のクロスバースイッチの負荷容量の影響が排除された遅延であるベース遅延と、他のクロスバースイッチのファンアウトの影響により生じる遅延である補正遅延と、を計算する処理と、
前記複数のクロスバースイッチのそれぞれの遅延を、前記複数のクロスバースイッチのそれぞれに対応する前記ベース遅延と前記補正遅延に基づき計算する処理と、
前記複数のクロスバースイッチ間の抵抗値に応じて、静的タイミング解析を実行する際のネットリストに算出されるリーフセルの発生手法を切り替える処理と、
を実行させるプログラム。
【請求項10】
請求項
9記載のプログラムを記録したコンピュータ可読記録媒体。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願についての記載)
本発明は、日本国特許出願:特願2018-093462号(2018年05月15日出願)の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は、数値情報生成装置、数値情報生成方法及びプログラムに関する。
【背景技術】
【0002】
半導体集積回路は、半導体基板に形成されたトランジスタと、トランジスタを接続するために半導体基板の上層に形成された配線構造を備えて構成される。トランジスタや配線のパターンは、集積回路の設計段階で決められており、半導体集積回路製造後に、トランジスタ同士の接続を変更することは不可能である。
【0003】
FPGA(Field Programmable Gate Array)などのプログラマブル論理集積回路は、論理演算回路の動作や、論理演算回路の接続をメモリに記憶することで、論理動作や配線の接続の変更を可能にしている。ここで、構成情報の記憶を行うメモリ素子として、SRAM(Static Random Access Memory)セル、アンチフューズ、フローティングゲートMOS(Metal Oxide Semiconductor)トランジスタなどを用いている。
【0004】
これらのメモリ素子はトランジスタと同じ層に形成されているため、非常に大きな面積オーバヘッドが生じる。その結果、プログラマブル論理集積回路のチップ面積が大きくなり、製造コストが上昇する、という問題がある。また、論理演算回路同士の接続を変更する配線スイッチの面積が大きくなるために、チップ面積に占める論理演算回路の割合が低くなってしまう、という問題がある。この使用効率の低下により、FPGAに実装される回路の動作速度の低下や動作電力の増大を招く。
【0005】
製造後に配線接続構成の変更を可能とし、製造後に回路の不具合の修正や仕様の変更を可能とし、さらにチップ面積の縮小や電力性能比の向上を図ることを目的として、配線層に形成可能な抵抗変化素子を利用したプログラマブル論理集積回路が提案されている。
【0006】
例えば、特許文献1や特許文献2に開示されるプログラマブル論理集積回路は、第1の配線層と、その上部に形成される第2の配線層との間に、金属イオンを含有する固体電解質材料から構成される抵抗変化素子を有する構造になっている。抵抗変化素子の両端に順バイアス、あるいは逆バイアスを印加することによりその抵抗値を変えることができ、低抵抗状態(オン状態)と高抵抗状態(オフ状態)の比は10の5乗、あるいはそれ以上となる。すなわち、当該抵抗変化素子は、第1の配線と第2の配線とを電気的に接続、あるいは切断できるスイッチ手段として機能する。
【0007】
通常、プログラマブル論理集積回路における配線の接続/切断においては、SRAMセルと、スイッチ機能を有する1個のトランジスタから構成されるスイッチセルが利用されている。一方、抵抗変化素子はメモリ機能とスイッチ機能を実現できるため、スイッチセルを1個の抵抗変化素子で実現できるようになる。
【0008】
特許文献1によると、第1の配線群と第2の配線群の各交点に抵抗変化素子を配置することで、第1の配線群の任意の配線と、第2の配線群の任意の配線を自在に接続可能なクロスバースイッチ回路を非常にコンパクトなサイズで構成できる。その結果、チップ面積の大幅な縮小化や、論理演算回路の使用効率の改善による性能向上が期待できる。また、抵抗変化素子のオン/オフ状態は、集積回路の通電が遮断された状態でも保持されるため、プログラマブル論理集積回路の電源を投入する度に回路構成情報をロードする手間を省くことができる、という利点もある。
【0009】
半導体集積回路の設計では、通常、ハードウェア記述言語などを用いて論理仕様を表現し、これを元に設計ツールを用いて論理合成を行う。論理合成によって得られた回路の機能や動作速度の検証を行うまでが一連の工程となる。動作速度の検証には、静的タイミング解析(Static Timing Analysis、STAと略す)を用いることが主流である。
【0010】
STAは回路動作のテストパターンを使わずに、当該回路における全ての信号伝播経路の遅延を計算して所望のクロック周波数で動作するかを検証する方法である。具体的には、当該回路に存在するD型フリップフロップ(D型Flip-Flop、DFFと略す)のような順序回路から次段の順序回路までの信号伝播経路(ネットリスト)を全て抜き出す。その後、当該ネットリストを通過する時間(遅延)を計算する。各ネットリストにおける遅延が、最終段に存在する順序回路のセットアップ時間やホールド時間の条件(タイミング制約)に違反するか否かを判定して、動作周波数を求める。
【0011】
STAで計算するネットリストは、例えば
図9に示すように、DFF1からセル1~5を経由してDFF2までの接続を有する。セル1~5は電源回路を含むゲートレベルの回路であり、論理と遅延及び電力の情報を有する。以降、DFF1、2やセル1~5のようなセルは、STA検証等のキャラクラタイズを行うためのネットリスト上の最小単位回路でありリーフセルと呼ぶ。
図9のネットリストを信号が伝播するときの遅延は、DFF1とセル1~5までのリーフセルの遅延を積算して求められ、DFF2のタイミング制約を満たすか否かの計算が行われる(総和手法)。リーフセルの遅延やタイミング制約、及び電力は、spice(simulation program with integrated circuit emphasis)に代表される回路シミュレータを用いて求められる。
【先行技術文献】
【特許文献】
【0012】
【文献】特許第4356542号公報
【文献】国際公開第2012/043502号
【発明の概要】
【発明が解決しようとする課題】
【0013】
なお、上記先行技術文献の各開示を、本書に引用をもって繰り込むものとする。以下の分析は、本発明者らによってなされたものである。
【0014】
ASIC(Application Specific Integrated Circuit)などでは、ゲート素子とゲート素子の接続は多岐に渡り、接続配線の抵抗及び容量は各接続により異なる。そのため、入力及び出力容量は一定にはならず、リーフセルの遅延や電力は、入力容量と出力容量の組み合わせによる2次元の行列となる。STAにて、計算上のネットリストの遅延を求めるためには、当該ネットリストを構成するリーフセルごとに入力容量と出力容量の計算を行わなければならず、そのようなツールの開発には多くの工数を要する。
【0015】
FPGA(Field Programmable Gate Array)は、
図10(A)に示すように、演算を行うロジックブロック202と信号線、その信号線の接続を担うルーティングスイッチブロック203(「スイッチブロック」とも略記される)を含むセルロジックブロック201(Cell Logic Block、CLBと略記される、Configurable Logic Block(構成可能論理ブロック)ともいう )を、
図10(B)に示すように、タイル状(マトリクス状)に配置して構成される。CLB間は、CLB間配線204で接続される。プログラマブル論理集積回路では、ロジックブロック202内の不図示のルックアップテーブル(Look Up Table:LUT)やスイッチブロック203の配線接続の設定を行うことで、所望の動作を行う回路を得る。プログラマブル論理集積回路におけるゲート素子間の接続は一義的に決まり、ゲート間配線の抵抗及び容量も一定であるため、各ゲート素子の入力及び出力容量は一定として遅延を求めることができる。すなわち、プログラマブル論理集積回路のSTAにおいては、接続による入出力容量を計算させなくて良く、比較的開発工数の少ないツールを用いることができる。
【0016】
それに対して、抵抗変化素子を用いたプログラマブル論理集積回路の場合には、多少の工夫が必要になる。すなわち、スイッチブロックにおけるオン状態の抵抗変化素子の数によって出力負荷容量が変化するため、その出力負荷の種類に応じたリーフセルを用意しなければならない。抵抗変化素子を用いたスイッチブロックでは、オン状態の抵抗変化素子からの出力信号を整流するために、該抵抗変化素子の後段にバッファが配置される(バッファはボルテージフォロワ等で構成してもよい)。当該バッファを、電源素子(信号源)として、隣接CLBに接続する配線と、その配線に接続するスイッチブロック内の抵抗変化素子をルーティングのリーフセルとして遅延を計算する。
【0017】
図11(A)に、スイッチブロック(
図10(A)の203)を構成する、抵抗変化素子を用いたクロスバースイッチの一例を示す。スイッチブロック203(クロスバースイッチブロック)内の不図示のSMUX(Switch Multiplexer)は、セルロジックブロックCLB間の信号パスの切替えを行う。なお、スイッチブロック(クロスバースイッチブロック)203内の不図示のスイッチIMUX(Input Multiplexer)は、
図10(A)のロジックブロック202内のLUTへの信号入力の切替えを行う。
図11(A)では、第一の方向の配線in0―3と、第一の方向と直交する第二の方向の配線out0―3の各交点に抵抗変化素子が配設された4×4のマトリックス構成が示されている。(0、0)に位置する抵抗変化素子がオン状態(黒い四角)、その他の抵抗変化素子はオフ状態(斜線の四角)とすると、in0から伝わる信号を、(0、0)の抵抗変化素子を介してout0に出力するクロスバースイッチになる。各抵抗変化素子は
図11(B)に示すような等価回路となる。抵抗変化素子は、抵抗(可変抵抗)R(NB)と該抵抗の一端に接続される容量C(NB)からなる。なお、R(NB),C(NB)のNBは、イオン伝導型スイッチNanoBridge(NECの日本における登録商標)を表している。
図11(A)のクロスバースイッチは
図11(C)に示す等価回路となる。なお、
図11(C)の等価回路では、
図11(B)の可変抵抗は斜め矢印を省略した抵抗のシンボルで表されている。オフ状態の抵抗変化素子は、例えば、10の6乗Ohmレベルの抵抗値をとるため、配線out1、2、3は配線及び抵抗変化素子の容量だけが観測される(
図11(C)では容量C1―3で表されている)。また、オン状態の抵抗変化素子を介するout0は、例えば、10の3乗レベルの抵抗と、(0、1)、(0、2)、(0、3)の抵抗変化素子の容量と配線容量が観測される(
図11(C)では容量C0と抵抗R(NB)で表されている)。なお、ON_NBは、オン状態の抵抗変化素子を表している。なお、抵抗変化素子は、イオン伝導型に限定されるものでなく、遷移金属酸化物を用いた抵抗変化素子であってもよい。
【0018】
図12に、ルーティングスイッチブロックのクロスバースイッチSMUXをキャラクタライズ(静的タイミング解析を行うために、単位回路毎の遅延等を含む遅延情報ライブラリを構築するための準備)するためのバッファbuf0を起点とした回路構成の一例を示す。
図12において、バッファbuf0は、セルロジックブロックCLB0に位置され、クロスバースイッチSMUX0内の一つの抵抗変化素子を介する信号を隣接するCLBに伝送する。バッファbuf0は次段のCLBにとっては電源素子として扱われる。当該クロスバースイッチSMUX0は4つ先のセルロジックブロックCLB3まで信号を伝送するセグメント長4の構造を有する。CLB0に隣接する次段のCLB1のクロスバースイッチSMUX1の出力Seg1は、オン状態の抵抗変化素子の数に応じて増加し、該オン状態の抵抗変化素子の数FO1が、隣接する次段のCLB1のファンアウト数(1つの出力端子に接続される複数の後段回路の入力端子数)となる。CLBの出力容量は、クロスバースイッチSMUX1~4のそれぞれのファンアウト数FO1~4に依存する。
【0019】
クロスバースイッチ間の抵抗が小さければ、クロスバースイッチSMUX1の出力Seg1の遅延D1、Seg2の遅延D2、Seg3の遅延D3、Seg4の遅延D4はD1≒D2≒D3≒D4となる。そのため、各遅延は(FO1+FO2+FO3+FO4)の一次元の関数となる。しかしながら、各CLB間配線には、配線抵抗と容量RC_CLB1~4、及び、抵抗変化素子を用いたFPGAに必要なトランスミッションゲートTMG1~4が存在する。各CLBのスイッチブロックを接続する配線には、あるCLBの抵抗変化素子を書き込む際に、当該CLB以外のCLBの抵抗変化素子に書き込み電圧がかかるのを防ぐために、ハイインピーダンス状態(TMGがオフ状態)を作ることができる素子としてトランスミッションゲートTMGを設置する必要がある。トランスミッションゲートTMGは、例えば、1kΩ(kiloohm)程度のオン抵抗値を有するため、Seg1~4の遅延差に与える影響が大きく、クロスバースイッチSMUX1~4の出力Seg1~4の遅延値は同一にはならない。
【0020】
そのため、各クロスバースイッチSMUX1~4の出力Seg1~4の遅延D1~4は、SMUX1~4のそれぞれのファンアウト数FO1~4がそれぞれ独立した変数の組み合わせで求める必要が生じる。その組み合わせの数は、クロスバースイッチの最大出力数が増加するほど、当該バッファの担うセグメント長が長くなるほど膨大となる。例えば、各クロスバースイッチSMUX1~4の最大出力数を32とすると、
図12の回路構成において、バッファbuf0の遅延D1~4は、32×32×32×32=1、048、576通りにもなる。このため、クロスバースイッチのキャラクタライズとしては、手間が掛かりすぎる。
【0021】
本発明は、上記事情に鑑みて創案されたものであって、抵抗変化素子で構成されたクロスバースイッチをキャラクタライズする工数の削減に寄与する数値情報生成装置、数値情報生成方法及びプログラムを提供することを主たる目的とする。
【課題を解決するための手段】
【0022】
本開示の第1の視点によれば、抵抗変化素子で構成された、複数のクロスバースイッチを含むプログラマブル論理集積回路の回路情報を入力する入力部と、前記複数のクロスバースイッチのそれぞれについて、他のクロスバースイッチの負荷容量の影響が排除された遅延であるベース遅延と、他のクロスバースイッチのファンアウトの影響により生じる遅延である補正遅延と、を計算する計算部と、を備え、前記計算部は、前記複数のクロスバースイッチのそれぞれの遅延を、前記複数のクロスバースイッチのそれぞれに対応する前記ベース遅延と前記補正遅延に基づき計算する、数値情報生成装置が提供される。
【0023】
本開示の第2の視点によれば、コンピュータにより抵抗変化素子で構成された、複数のクロスバースイッチを含むプログラマブル論理集積回路の情報を入力するステップと、前記複数のクロスバースイッチのそれぞれについて、他のクロスバースイッチの負荷容量の影響が排除された遅延であるベース遅延と、他のクロスバースイッチのファンアウトの影響により生じる遅延である補正遅延と、を計算するステップと、前記複数のクロスバースイッチのそれぞれの遅延を、前記複数のクロスバースイッチのそれぞれに対応する前記ベース遅延と前記補正遅延に基づき計算するステップと、を含む数値情報生成方法が提供される。
【0024】
本開示の第3の視点によれば、コンピュータに、抵抗変化素子で構成された、複数のクロスバースイッチを含むプログラマブル論理集積回路の情報を入力する処理と、前記複数のクロスバースイッチのそれぞれについて、他のスイッチの負荷容量の影響が排除された遅延であるベース遅延と、他のクロスバースイッチのファンアウトの影響により生じる遅延である補正遅延と、を計算する処理と、前記複数のクロスバースイッチそれぞれの遅延を、前記複数のクロスバースイッチそれぞれに対応する前記ベース遅延と前記補正遅延に基づき計算する処理と、を実行させるプログラムが提供される。
本開示によれば、上記プログラムを記録した、コンピュータ可読記憶媒体が提供される。記憶媒体は、半導体メモリ、ハードディスク、磁気記録媒体、光記録媒体等の非トランジェント(non-transient)なものとすることができる。本発明は、コンピュータプログラム製品として具現することも可能である。
【発明の効果】
【0025】
本開示の各視点によれば、抵抗変化素子で構成されたクロスバースイッチをキャラクタライズする工数の削減に寄与する数値情報生成装置、数値情報生成方法及びプログラムが、提供される。
【図面の簡単な説明】
【0026】
【
図1】一実施形態の概要を説明するための図である。
【
図2】第1の実施形態に係る数値情報生成装置の処理構成の一例を示す図である。
【
図3】第1の実施形態に係る数値情報生成装置のハードウェア構成の一例を示す図である。
【
図4】第1の実施形態を説明する図であり、バッファbuf0を基点としたスイッチブロックのリーフセルを計算する回路の一例を示す図である。
【
図5】(A)、(B)は第1の実施形態において、総和手法における遅延D1~D4の最大差分の一例を示す図である。
【
図6】第1の実施形態を説明する図であり、CLB1のベース遅延D_Seg1を求めるための回路の一例を示す図である。
【
図7】第1の実施形態を説明する図であり、クロスバースイッチSMUX1を含むSTA計算上のネットリストの一例を示す図である。
【
図8】第1の実施形態に係る遅延計算部の動作の一例を示すフローチャートである。
【
図9】STA計算上のネットリストの一例を示す図である。
【
図10】(A)、(B)は、セルロジックブロックと、セルロジックブロックを複数配置したプログラマブル論理集積回路の一例を示す図である。
【
図11】(A)はプログラマブル再構成論理集積回路を構成するクロスバースイッチの一例を示す図、(B)は抵抗変化素子の等価回路を示す図、(C)は(A)のクロスバースイッチの等価回路を示す図である。
【
図12】バッファbuf0を基点としたスイッチブロックのリーフセルを計算する回路の一例を示す図である。
【発明を実施するための形態】
【0027】
初めに、一実施形態の概要について説明する。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、この概要の記載はなんらの限定を意図するものではない。また、各図におけるブロック間の接続線は、双方向及び単方向の双方を含む。一方向矢印については、主たる信号(データ)の流れを模式的に示すものであり、双方向性を排除するものではない。さらに、本願開示に示す回路図、ブロック図、内部構成図、接続図などにおいて、明示は省略するが、入力ポート及び出力ポートが各接続線の入力端及び出力端のそれぞれに存在する。入出力インターフェイスも同様である。
【0028】
一実施形態に係る数値情報生成装置100は、入力部101と、計算部102と、を備える(
図1参照)。入力部101は、抵抗変化素子で構成された、複数のクロスバースイッチを含むプログラマブル論理集積回路の情報を入力する。計算部102は、複数のクロスバースイッチのそれぞれについて、他のクロスバースイッチの負荷容量の影響が排除された遅延であるベース遅延と、他のクロスバースイッチのファンアウトの影響により生じる遅延である補正遅延と、を計算する。さらに、計算部102は、複数のクロスバースイッチのそれぞれの遅延を、該複数のクロスバースイッチそれぞれに対応するベース遅延と補正遅延に基づき計算する。
【0029】
上記数値情報生成装置100は、抵抗変化素子を用いたプログラマブル論理集積回路において、クロスバースイッチ間の抵抗によって、STA計算上のネットリストに算出されるリーフセルの発生手法を切り替える。具体的には、クロスバースイッチ間の抵抗がクロスバースイッチの遅延に大きく影響し、計算した遅延の誤差が許容できないと判断される場合には、上記数値情報生成装置100は、ベース遅延と補正遅延を用いた遅延計算手法を用いる。ベース遅延と補正遅延を用いた遅延計算手法は、各クロスバースイッチにおけるファンアウト数による膨大な数の組み合わせの計算に変えて、各クロスバースイッチに生じる遅延の性質に着目し、必要な計算量を削減している。具体的には、各クロスバースイッチに生じる遅延は、特定のクロスバースイッチ自身のファンアウトの影響により生じる遅延(ベース遅延)と他のクロスバースイッチのファンアウトに影響される遅延に分離可能であり、各遅延それぞれの和が各クロスバースイッチの遅延として計算される。その結果、出力容量が多岐に亘る抵抗変化素子を用いたプログラマブル論理集積回路のルーティングに関わるクロスバースイッチのキャラクタライズの工数が誤差を抑えつつ低減される。
【0030】
以下に具体的な実施の形態について、図面を参照してさらに詳しく説明する。なお、各実施形態において同一構成要素には同一の符号を付し、その説明を省略する。
【0031】
[第1の実施形態]
第1の実施形態について、図面を用いてより詳細に説明する。
【0032】
図2は、第1の実施形態に係る数値情報生成装置10の処理構成(処理モジュール)の一例を示す図である。
図2を参照すると、数値情報生成装置10は、回路情報入力部11と、遅延計算部12と、結果出力部13と、を含んで構成される。
【0033】
回路情報入力部11は、数値情報の算出対象となる回路(キャラクタライズの対象となる回路)のネットリストを入力する。より具体的には、回路情報入力部11は、抵抗変化素子で構成された、複数のクロスバースイッチを含むプログラマブル論理集積回路の回路情報を入力する。回路情報入力部11は、例えば、
図12に示すような回路情報を取得する。
【0034】
遅延計算部12は、複数のクロスバースイッチそれぞれの遅延を計算する。遅延計算部12の動作については後述する。なお、数値情報生成装置10において、クロスバースイッチの回路に関するキャラクタライズに関して、遅延以外の情報は、任意の既存(公知)の技術を用いて算出する。当該技術に関しては、本願開示の実施に直接関係せず、又、当業者にとって明らかであるのでその説明を省略する。
【0035】
結果出力部13は、遅延計算部12による計算結果(遅延情報)を外部に出力する手段である。例えば、結果出力部13は、計算結果を印刷する、あるいは、液晶パネル等に表示してもよいし、USB(Universal Serial Bus)メモリ等の外部デバイスに書き込んでもよい。
【0036】
続いて、第1の実施形態に係る数値情報生成装置10のハードウェア構成について説明する。
図3は、数値情報生成装置10のハードウェア構成の一例を示す図である。数値情報生成装置10は、所謂、情報処理装置(コンピュータ)により実現され、
図3に例示する構成を備える。例えば、数値情報生成装置10は、内部バスにより相互に接続される、CPU(Central Processing Unit)21、メモリ22、入出力インターフェイス23及び通信手段であるNIC(Network Interface Card)24等を備える。
【0037】
なお、
図3に示す構成は、数値情報生成装置10のハードウェア構成を限定する趣旨ではない。数値情報生成装置10には、図示しないハードウェアも含まれていてもよいし、必要に応じてNIC24等を備えていなくともよい。
【0038】
メモリ22は、RAM(Random Access Memory)、ROM(Read Only Memory)、HDD(Hard Disk Drive)等の少なくともいずれかを含む。
【0039】
入出力インターフェイス23は、図示しない入出力装置のインターフェイスとなる手段である。入出力装置には、例えば、表示装置、操作デバイス等が含まれる。表示装置は、例えば、液晶ディスプレイ等である。操作デバイスは、例えば、キーボードやマウス等である。
【0040】
上述の数値情報生成装置10の各処理モジュールは、例えば、メモリ22に格納されたプログラムをCPU21が実行することで実現される。また、そのプログラムは、ネットワークを介してダウンロードするか、あるいは、プログラムを記憶した記憶媒体を用いて、更新することができる。さらに、上記処理モジュールは、半導体チップにより実現されてもよい。即ち、上記処理モジュールが行う機能を何らかのハードウェア、及び/又は、ソフトウェアで実行する手段があればよい。
【0041】
次に、CLBのファンアウト数とクロスバースイッチの遅延の関係について説明する。
【0042】
図4は、クロスバースイッチ(スイッチブロック)をキャラクタライズするためのバッファbuf0を起点とした回路の一例を示す図である。
図4において、セルロジックブロックCLB0に位置するバッファbuf0は、クロスバースイッチSMUX0内の一つの抵抗変化素子を通った信号を伝送し、セルロジックブロックCLB1~4にそれぞれ位置するクロスバースイッチSMUX1~4に接続する。クロスバースイッチSMUX0~4は、抵抗変化素子で構成されたスイッチブロックであり、抵抗変化素子の抵抗状態によって、配線接続の切り替えを担う。各CLBのクロスバースイッチSMUX1~4の出力Seg1~4の数は、オン状態の抵抗変化素子の数に等しく増加し、オン状態の抵抗変化素子の数FO1~FO4が各クロスバースイッチのファンアウト数となる。
【0043】
Total F/O = FO1 + FO2 + FO3 + FO4 ・・・ (1)
【0044】
以降の説明では、上記式(1)のようにSMUX1~4におけるファンアウトの総和をTotal F/Oと表記する。また、SMUX1~4の出力Seg1~4の遅延をそれぞれD1、D2、D3、D4と表記する。
【0045】
図5(A)、(B)は、総和手法における遅延D1~D4の最大誤差(%)を説明するための図である。
図4におけるCLB間抵抗RC_CLB1~4及びCLB内抵抗RC_in1~4と、Total F/Oが遅延に及ぼす影響として、Total F/Oが
図5(A)と
図5(B)で一致するときの遅延D1~4の最大差分(%)を示す。
【0046】
図5(A)は、CLB間抵抗をそれぞれ変動させた場合の遅延に関する誤差を示している。
図5(B)は、CLB内抵抗をそれぞれ変動させた場合の遅延に関する誤差を示している。最大差分(%)は、Total F/Oの関数として遅延を計算したときの誤差となる。半導体集積回路を製造するプロセスにて、例えば製造ロットやチップ間のトランジスタの閾値や層間膜厚などのばらつきを考慮すると、遅延のばらつきとして5%は許容しても良い範囲として考えられる。このため、本実施形態では、クロスバースイッチのキャラクタライズにおける遅延誤差を5%以内に収めることとする。つまり、クロスバースイッチをキャラクタライズする際の誤差は、5%までは許容されるものとする。
【0047】
図5(A)、(B)において、Total F/Oが大きく、配線抵抗が大きい範囲が遅延誤差5%以上の領域(
図5(A)、(B)の濃い灰色の領域)となっている。ここで、抵抗変化素子を用いたプログラマブル論理集積回路に必要なトランスミッションゲートは、
図6に示すように配置される(図中TMG1~4)。この場合、トランスミッションゲートTMG1~4は1kΩ程度のオン抵抗値を有するため、CLB間配線抵抗は1000Ω以上となる。
図5(A)によれば、1000Ω以上のCLB間配線抵抗について、Total F/O(5~11)のいずれについても、遅延誤差は5%以上となる。従って、総和手法により遅延D1~D4を算出すると、許容される誤差(例えば、5%)を満たすことができない。
【0048】
このため、第1の実施形態では、次に述べる手法によって遅延D1~4を求める。また、CLB内配線抵抗は100Ω以下となるため、同一CLBからの出力は、当該CLB内のファンアウトの総和を変数とした遅延を使用して良い。また、このときのクロスバースイッチは、縦方向32列、横方向32行の配線を有し、抵抗変化素子をその各交点に配置した構造とする。但し、クロスバースイッチの配線構造は上記(32列×32行)に限定されるものでないことは勿論である。
【0049】
次に、遅延計算部12の動作に関する詳細を説明する。
【0050】
遅延計算部12は、複数のクロスバースイッチそれぞれについて、他のクロスバースイッチの負荷容量の影響が排除された遅延であるベース遅延と、他のクロスバースイッチのファンアウトの影響により生じる遅延である補正遅延と、を計算する。その後、遅延計算部12は、複数のクロスバースイッチのそれぞれの遅延を、対応するベース遅延と補正遅延に基づき計算する。
【0051】
その際、遅延計算部12は、複数のクロスバースイッチ間の抵抗値に応じて、静的タイミング解析を実行する際のネットリストに算出されるリーフセルの発生手法を切り替える。具体的には、遅延計算部12は、トータルファンアウト数及びCLB間配線抵抗の値に応じて、クロスバースイッチの遅延算出に関する手法を切り替える。
【0052】
例えば、遅延計算部12は、トータルファンアウト数及びCLB間配線の抵抗値によりクロスバースイッチの遅延誤差が大きい場合(例えば、遅延誤差が5%を超える場合)には、下記に説明する手法(ベース遅延及び補正遅延を用いる手法)により遅延を計算する。一方、遅延計算部12は、クロスバースイッチの遅延誤差が小さいと想定される場合(例えば、遅延誤差が5%以下の場合)には、上記の総和手法により遅延を計算する。なお、
図5(A)に示すような、トータルファンアウト、CLB間配線抵抗及び遅延誤差に関する情報は、予め数値情報生成装置10の内部に格納され、遅延計算部12が参照可能に構成される。
【0053】
ここでは、遅延計算部12は、
図6に示す回路のクロスバースイッチの遅延を計算するものとして以下の説明を行う。特に、遅延計算部12は、1つの能動素子(
図6の例ではCLB0のバッファbuf0;バッファ回路)から電力の供給(信号の伝達)を受けるクロスバースイッチSMUX1~4の遅延を計算する。
【0054】
また、
図6には、各クロスバースイッチ間(SMUX0、1、SMUX1、2、SMUX2、3、SMUX3、4)に、ハイインピーダンス状態を保持することができる素子であるトランスミッションゲートTMG(TMG1~4)が配置されている。上述のように、トランスミッションゲートTMGのオン抵抗値は、1000Ω以上であることから、
図5(A)によれば、トータルファンアウト数によらず、遅延誤差は、基準(5%)を超える。従って、遅延計算部12は、総和手法を使わず、以下の方法によりクロスバースイッチの遅延を計算する。
【0055】
はじめに、遅延計算部12は、キャラクタライズの対象となるクロスバースイッチを含むセルロジックブロックCLB1における出力Seg1のベース遅延D_Seg1を求める。ベース遅延D_Segは、上述のように、他のセルロジックブロックCLBに配置されたクロスバースイッチの負荷容量の影響を排除した結果のクロスバースイッチの出力Segにおける遅延である。
【0056】
遅延計算部12は、
図6に示すように、セルロジックブロックCLB2-4のファンアウト:FO2=FO3=FO4=0とし、セルロジックブロックCLB1におけるファンアウトFO1を1~32のように変動させてシミュレーション(spice等を用いた遅延の計算)を行う。以降の説明では、ファンアウトFO1を変数としているため、セルロジックブロックCLB1のベース遅延をD_Seg1(FO1)と記述する。同様に、遅延計算部12は、セルロジックブロックCLB2のベース遅延D_Seg2(FO2)を、セルロジックブロックCLB1、3、4のファンアウト:FO1=FO3=FO4=0とし、セルロジックブロックCLB2のファンアウト:FO2を1~32と変動させて求める。同様に、遅延計算部12は、セルロジックブロックCLB3のベース遅延D_Seg3(FO3)を、セルロジックブロックCLB1、2、4のファンアウト:FO1=FO2=FO4=0として、セルロジックブロックCLB3のファンアウト:FO3を1~32と変動させて求める。遅延計算部12は、セルロジックブロックCLB4のベース遅延D_Seg4(FO4)を、セルロジックブロックCLB1-3のファンアウト:FO1=FO2=FO3=0として、セルロジックブロックCLB4のファンアウト:FO4を1~32と変動させて求める。
【0057】
次に、遅延計算部12は、各セルロジックブロックCLBにおける補正遅延を求める。補正遅延とは、上述のように、他のセルロジックブロックCLBに配置されたクロスバースイッチのファンアウトの影響により生じる遅延である。
【0058】
例えば、クロスバースイッチSMUX1のオン状態の抵抗変化素子数がFO1=xのとき、クロスバースイッチSMUX1の容量と抵抗は、セルロジックブロックCLB1の遅延D1だけでなく、セルロジックブロックCLB2、3、4の遅延:D2、D3、D4のそれぞれに影響を及ぼす。そこで、遅延計算部12は、セルロジックブロックCLB2-4のファンアウト:FO2=FO3=FO4=1として、セルロジックブロックCLB1のファンアウト:FO1を0~32まで変動させ、遅延D1_1(FO1)、D2_1(FO1)、D3_1(FO1)、D4_1(FO1)を計算する。クロスバースイッチSMUX1のオン状態の抵抗変化素子数がFO1=xのとき、FO1に関わる遅延D2の補正遅延ΔD_seg2(FO1=x)は(2)式の通りに求める(xは0~32)。
【0059】
ΔD_seg2(FO1=x) = D2_1(FO1=x) - D2_1(FO1=0) ・・・ (2)
【0060】
同様に、クロスバースイッチSMUX1のオン状態の抵抗変化素子数がFO1=x(xは0~32)のとき、FO1に関わる補正遅延ΔD_seg3(FO1=x)、ΔD_seg4(FO1=x)はそれぞれ、(3)式、(4)式の通りに求められる。
【0061】
Δ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)
【0062】
また、クロスバースイッチSMUX2のオン状態の抵抗変化素子数がFO2=x(xは0~32)のとき、該SMUX2の容量と抵抗が、遅延D1、D3、D4にもたらす補正遅延ΔD_seg1(FO2=x)、ΔD_seg3(FO2=x)、ΔD_seg4(FO2=x)はそれぞれ(5)、(6)、(7)式の通りに求められる。
【0063】
Δ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)
【0064】
クロスバースイッチSMUX3のオン状態の抵抗変化素子数がFO3=x(xは0~32)のとき、該SMUX3の容量と抵抗が、遅延D1、D2、D4にもたらす補正遅延ΔD_seg1(FO3=x)、ΔD_seg2(FO3=x)、ΔD_seg4(FO3=x)はそれぞれ(8)、(9)、(10)式の通りに求められる。
【0065】
Δ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)
【0066】
クロスバースイッチSMUX4のオン状態の抵抗変化素子数がFO4=xのとき、SMUX4の容量と抵抗が、遅延D1、D2、D3にもたらす補正遅延ΔD_seg1(FO4=x)、ΔD_seg2(FO4=x)、ΔD_seg3(FO4=x)はそれぞれ(11)、(12)、(13)式の通りに求められる。
【0067】
Δ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)
【0068】
なお、上記説明では、補正遅延を算出する際に各クロスバースイッチSMUXのファンアウト数を「1」に設定しているが、当該ファンアウト数は例示であって、補正遅延の算出に用いるファンアウト数は限定する趣旨ではない。例えば、ベース遅延のリーフセルのファンアウト数が小さい場合には、各クロスバースイッチSMUXのファンアウト数を小さく設定した方が補正遅延のリーフセルの誤差が小さくなる。そのため、遅延計算部12は、初めに、クロスバースイッチSMUXのファンアウト数を小さく設定(例えば、FO2=FO3=FO4=1)し、キャラクタライズした結果の誤差が所定範囲(例えば、5%以内)に収まれば、当該小さく設定したファンアウト数による遅延情報を用いる。誤差が所定範囲に収まっていなければ、遅延計算部12は、各クロスバースイッチSMUXのファンアウト数を大きく設定(例えば、FO2=FO3=FO4=4)した上で補正遅延を算出し、誤差が所定範囲に収まっているか否かを検証する。遅延計算部12は、このような処理を繰り返すことで、適切な補正遅延を算出する。
【0069】
遅延計算部12は、以上の計算より、遅延D1、D2、D3、D4はベース遅延と補正遅延の和として、(14)、(15)、(16)、(17)式の通り求めることができる。
【0070】
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)
【0071】
遅延計算部12は、上記の式(14)~(17)に関する計算結果を、
図6に示す各クロスバースイッチSMUX1-4の遅延情報D1-4として結果出力部13に引き渡す。上記遅延情報は結果出力部13から出力される。
【0072】
上記遅延計算部12の動作をまとめると
図8に示すフローチャートのとおりとなる。
【0073】
初めに、遅延計算部12は、
図5に示すような情報を参照し、トータルファンアウト数及びCLB間配線抵抗の値から想定される遅延誤差が基準(例えば、5%)を満たすか否かを判定する(ステップS101)。基準を満たす場合(ステップS101、Yes分岐)には、遅延計算部12は、既存の手法である総和手法によりクロスバースイッチの遅延情報を算出する(ステップS102)。
【0074】
遅延誤差が基準を満たさない場合(ステップS101、No分岐)には、遅延計算部12は、ベース遅延を計算する(ステップS103)。その後、遅延計算部12は、補正遅延を計算し(ステップS104)、ベース遅延と補正遅延に基づきクロスバースイッチの遅延情報を計算する(ステップS105)。
【0075】
このように、遅延計算部12は、複数のクロスバースイッチ間の抵抗値と複数のクロスバースイッチそれぞれのファンアウト数の総和に基づき、静的タイミング解析を実行する際のネットリストに算出されるリーフセルの発生手法を切り替える。
【0076】
ここで、例えば、式(14)は、STA計算上のネットリストとして、クロスバースイッチSMUX1の遅延D1は、
図7に示すように、記述(表現)できることを示す。なお、
図7は、セル1からバッファbuf0を通り、クロスバースイッチSMUX1を通るパスを計算するネットリストを示す。バッファbuf0から信号が伝わるクロスバースイッチはSMUX1~4の4つであり、それぞれが出力を持つと、ベース遅延としてのリーフセルと、補正遅延1~3の3つのバッファの論理を有するリーフセルが発生する。つまり、遅延計算部12は、ベース遅延に相当するリーフセルを発生させると共に、補正遅延に相当するリーフセルをベース遅延に相当するリーフセルに従属するリーフセルとしてネットリスト(伝搬経路上)に発生させる。
【0077】
上記の例では、ベース遅延のリーフセルとして、D_seg1、D_seg2、D_Seg3、D_Seg4が各32種類となり、32×4=128種類となる。クロスバースイッチSMUX1を通るパスで発生させる補正遅延のリーフセルΔD_seg1は、FO2、FO3、FO4にそれぞれ依存するリーフセルが各32種類であるから、32×3=96種類となる。同様に、クロスバースイッチSMUX2、SMUX3、SMUX4を通るパスで発生させる補正遅延リーフセルΔD_seg2、ΔD_seg3、ΔD_seg4は、各96種類となり、補正遅延リーフセルは全部で、96×4=384種類となる。
【0078】
従って、ルーティングに関わるリーフセルの数は、128+384=512個となり、本実施形態の手法を用いることで、大幅に削減することが可能となる。本実施形態の手法は、スイッチブロックの信号を伝送するバッファ一つあたりの担うスイッチブロックや、スイッチブロックの最大出力数に関わらず、用いることが可能であり、それらの数が増えるほど効果を発揮する。
【0079】
また、第1の実施形態に係る遅延計算部12は、補正遅延のリーフセルの使用有無をTotal F/Oに応じて使い分けしている。その結果、クロスバースイッチ(スイッチブロック)のキャラクタライズの精度を維持することができる。
【0080】
さらに、前述の通り、クロスバースイッチSMUX1のオン状態の抵抗変化素子数がFO1=xのとき、クロスバースイッチSMUX1の容量と抵抗は、遅延D1だけでなく、遅延D2~D4それぞれに影響を及ぼす。しかし、
図5(A)、(B)に示すように、FO2、FO3、FO4の総和が小さい場合と大きい場合では、影響度合いが異なる。そこで、遅延計算部12は、ファンアウトの総和が大きい場合に、上記説明した手法により、遅延を計算してもよい。
【0081】
例えば、上記説明では、遅延計算部12は、補正遅延を算出する際に、セルロジックブロックCLB2-4のファンアウト:FO2=FO3=FO4=1として、セルロジックブロックCLB1のファンアウト:FO1を0~32まで変動させている。しかし、遅延計算部12は、セルロジックブロックCLB2-4のファンアウト:FO2=FO3=FO4=4とし、セルロジックブロックCLB1のファンアウト:FO1を0~32まで変動させて、セルロジックブロックCLB1-4の遅延D1_4(FO1)、D2_4(FO1)、D3_4(FO1)、D4_4(FO1)を計算してもよい。FO1に関わるD2の補正遅延ΔD_seg2(FO1=x)、ΔD_seg2(FO1=x)、ΔD_seg3(FO1=x)、ΔD_seg4(FO1=x)は、それぞれ(18)~(20)式の通りに求める。
【0082】
Δ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)
【0083】
同様に、クロスバースイッチSMUX2~4に関わる補正遅延ΔD_seg1(FO2=x)、ΔD_seg3(FO2=x)、ΔD_seg4(FO2=x)、ΔD_seg1(FO3=x)、ΔD_seg2(FO3=x)、ΔD_seg4(FO3=x)、ΔD_seg1(FO4=x)、ΔD_seg2(FO4=x)、ΔD_seg3(FO4=x)はそれぞれ(21)~(29)式の通りに求める。遅延D1、D2、D3、D4は(14)~(17)式で求める。
【0084】
Δ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)
【0085】
以上のように、第1の実施形態に係る数値情報生成装置10は、クロスバースイッチにおける遅延をベース遅延と補正遅延に分離し、各遅延(ベース遅延、補正遅延)を別々に計算することでクロスバースイッチの遅延に関する計算量を削減する。また、数値情報生成装置10は、CLB間配線抵抗及びトータルファンアウト数に応じて、各クロスバースイッチにおけるファンアウトを独立した変数として扱うか否かを決定している。ファンアウト数を独立した変数として扱うことで、総和手法では誤差が大きくなり過ぎる場合でも算出した遅延を適切な誤差範囲に収めることができる。つまり、ファンアウト数やCLB間配線抵抗に応じて、クロスバースイッチの遅延を計算する際の手法を切り替える事で算出する遅延の誤差を抑制している。
【0086】
[変形例]
上記実施形態にて説明した数値情報生成装置10の構成等は例示であって、その構成等を限定する趣旨ではない。数値情報生成装置10は、遅延を計算するモジュール(遅延計算部12)だけでなく、当該計算された遅延を用いて静的タイミング解析(STA)を実行するようなモジュールが含まれていてもよい。
【0087】
上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
(付記1)
上述の第1の視点に係る数値情報生成装置のとおりである。
(付記2)
前記計算部は、
前記複数のスイッチ間の抵抗値に応じて、静的タイミング解析を実行する際のネットリストに算出されるリーフセルの発生手法を切り替える、好ましくは付記1に記載の数値情報生成装置。
(付記3)
前記計算部は、
前記複数のスイッチ間の抵抗値と前記複数のスイッチそれぞれのファンアウト数の総和に基づき、静的タイミング解析を実行する際のネットリストに算出されるリーフセルの発生手法を切り替える、好ましくは付記2に記載の数値情報生成装置。
(付記4)
前記計算部は、
前記ベース遅延に相当するリーフセルを発生させると共に、前記補正遅延に相当するリーフセルを前記ベース遅延に相当するリーフセルに従属するリーフセルとして発生させる、好ましくは付記2又は3に記載の数値情報生成装置。
(付記5)
前記複数のスイッチは、1つの能動素子から電力の供給を受ける好ましくは付記1乃至4のいずれか一に記載の数値情報生成装置。
(付記6)
前記能動素子は、バッファ回路である、好ましくは付記5に記載の数値情報生成装置。
(付記7)
前記プログラマブル論理集積回路は、各スイッチ間にハイインピーダンス状態を保持することができる素子を備える、好ましくは付記1乃至6のいずれか一に記載の数値情報生成装置。
(付記8)
前記計算部により計算された前記複数のスイッチそれぞれの遅延に関する情報を、外部に出力する、出力部をさらに備える、好ましくは付記1乃至7のいずれか一に記載の数値情報生成装置。
(付記9)
上述の第2の視点に係る数値情報生成方法のとおりである。
(付記10)
上述の第3の視点に係るプログラムのとおりである。
(付記11)
複数のロジックブロックと、
複数の第一配線と、複数の第二配線の接続を切り替える複数の抵抗変化素子が行列配置される複数のスイッチブロックを備えたプログラマブル論理集積回路において、
前記プログラマブル集積回路の信号波形伝播性能を解析する静的タイミング解析を行うための計算上の伝播経路を作製する手法であって、
前記静的タイミング解析で用いる前記プログラマブル論理集積回路のキャラクタライズ方法。
(付記12)
付記11に記載の静的タイミング解析を行うための計算上の伝播経路において、
前記スイッチブロックに電力を供給する能動素子のキャラクタライズ手法であって、
電力を供給するスイッチブロックの数と一致する数のセルを
前記伝播経路に発生させる手法。
(付記13)
付記11に記載の静的タイミング解析を行うための計算上の伝播経路において、
前記スイッチブロック間の配線負荷により
前記スイッチブロックの総出力数によってキャラクタライズを行う手法と、
付記12に記載の手法を切り替える前記静的タイミング解析計算上の伝播経路を作製する手法。
(付記14)
付記12に記載の従属セルの計算方法。
(付記15)
付記1に記載のプログラマブル論理集積回路において、
前記ルーティングスイッチブロックと隣接するルーティングスイッチブロック間にハイインピーダンス状態を保持することができる素子を挿入したことを特徴とするプログラマブル論理集積回路における、
前記プログラマブル集積回路の信号波形伝播性能を解析する静的タイミング解析を行うための伝播経路を作製する手法であって、
前記静的タイミング解析で用いる前記プログラマブル論理集積回路のキャラクタライズ方法。
(付記16)
付記14に記載の静的タイミング解析を行うための伝播経路において、
前記スイッチブロックに電力を供給する能動素子のキャラクタライズ手法であって、
電力を供給するスイッチブロックの数と一致する数のセルを
前記伝播経路に発生させる手法。
(付記17)
付記16に記載の従属セルの計算方法。
なお、付記9の形態及び付記10の形態は、付記1の形態と同様に、付記2の形態~付記8の形態に展開することが可能である。
【0088】
なお、引用した上記の特許文献等の各開示は、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の全開示の枠内において種々の開示要素(各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む)の多様な組み合わせ、ないし、選択(部分的削除を含む)が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
【符号の説明】
【0089】
10、100 数値情報生成装置
11 回路情報入力部
12 遅延計算部
13 結果出力部
21 CPU(Central Processing Unit)
22 メモリ
23 入出力インターフェイス
24 NIC(Network Interface Card)
101 入力部
102 計算部
201 セルロジックブロック(CLB)
202 ロジックブロック
203 ルーティングスイッチブロック
204 CLB間配線