(57)【要約】  信頼性の高いプログラマブル論理集積回路を提供するため、本発明の設計支援システムは、抵抗変化素子を備えるプログラマブル論理集積回路に実装する回路の設計を支援する設計支援システムであって、抵抗変化素子の状態の変更回数を示す書き換え履歴情報を生成する書き換え履歴情報生成手段と、書き換え履歴情報に基づいて、回路に含まれるスイッチの摩耗コストを算出する摩耗コスト生成手段と、摩耗コストを含む評価関数に基づいて、回路の配線を実施する配線手段とを有する。
2018139408.tif 000002
【特許請求の範囲】
【請求項１】
抵抗変化素子を備えるプログラマブル論理集積回路に実装する回路の設計を支援する設計支援システムであって、
前記抵抗変化素子の状態の変更回数を示す書き換え履歴情報を生成する書き換え履歴情報生成手段と、
前記書き換え履歴情報に基づいて、前記回路に含まれるスイッチの摩耗コストを算出する摩耗コスト生成手段と、
前記摩耗コストを含む評価関数に基づいて、前記回路の配線を実施する配線手段と
を有する設計支援システム。
【請求項２】
請求項１に記載の設計支援システムにおいて、
前記摩耗コスト生成手段は、前記変更回数である書き換え回数Ｎに対する摩耗コスト関数Ｆ（Ｎ）を用いて前記摩耗コストを算出し、
前記摩耗コスト関数は、増加する区間を含む
設計支援システム。
【請求項３】
請求項１に記載の設計支援システムにおいて、
前記摩耗コスト生成手段は、前記変更回数である書き換え回数Ｎに対する摩耗コスト関数Ｆ（Ｎ）を用いて前記摩耗コストを算出し、
前記摩耗コスト関数は、下方向に凸型の関数であり、かつ、増加する区間を含む
設計支援システム。
【請求項４】
請求項１に記載の設計支援システムにおいて、
前記摩耗コスト生成手段は、前記変更回数である書き換え回数Ｎに対する摩耗コスト関数Ｆ（Ｎ）を用いて前記摩耗コストを算出し、
前記摩耗コスト関数は、ステップ状に変化する区間を含む
設計支援システム。
【請求項５】
請求項１から４のいずれか１項に記載の設計支援システムにおいて、
前記摩耗コスト生成手段または前記配線手段は、前記プログラマブル論理集積回路へコンフィグレーションを行った回数と、前記プログラマブル論理集積回路内の前記抵抗変化素子の位置と、前記摩耗コストがステップ状に変化する書き換え回数である閾値回数を超えて書き換えが必要な抵抗変化素子の数と、前記配線の可否と、遅延時間とのうち少なくとも１つの情報に応じて、前記閾値回数を設定する
設計支援システム。
【請求項６】
請求項１から５のいずれか１項に記載の設計支援システムにおいて、
前記配線手段は、前記摩耗コストに加え、遅延コストおよび混雑コストを含む評価関数に基づいて、配線を実施する
設計支援システム。
【請求項７】
請求項１から６のいずれか１項に記載の設計支援システムにおいて、
前記摩耗コスト生成手段は、前記変更回数である書き換え回数Ｎに対する摩耗コスト関数Ｆ（Ｎ）を用いて前記摩耗コストを算出し、
前記摩耗コスト関数は、前記抵抗変化素子の故障率または故障率を遅延コスト若しくは混雑コストと比較可能な値にスケールした値である
設計支援システム。
【請求項８】
請求項１から７のいずれか１項に記載の設計支援システムにおいて、
前記摩耗コストに基づいて混雑コストを算出し、前記混雑コストを含む評価関数に基づいて、前記抵抗変化素子の配置を実施する配置手段
を有する設計支援システム。
【請求項９】
請求項１から８のいずれか１項に記載の設計支援システムにおいて、
前記プログラマブル論理集積回路に既に実装された第１の構成情報と、前記配線手段が配線を行った第２の構成情報とに基づいて、前記第１の構成情報から前記第２の構成情報へ変更する場合に書き換えが発生する抵抗変化素子の総数を第１のカウント数としてカウントし、前記第２の構成情報と等価な第３の構成情報を生成し、前記第１の構成情報と前記第３の構成情報とに基づいて、前記第１の構成情報から前記第３の構成情報へ変更する場合に書き換えが発生する抵抗変化素子の総数を第２のカウント数としてカウントし、前記第２のカウント数が前記第１のカウント数よりも少ない場合、前記第３の構成情報を出力する等価回路解析手段を
有する設計支援システム。
【請求項１０】
抵抗変化素子を備えるプログラマブル論理集積回路に実装する回路の設計を支援する設計支援方法であって、
前記抵抗変化素子の状態の変更回数を示す書き換え履歴情報を生成し、
前記書き換え履歴情報に基づいて、前記回路に含まれるスイッチの摩耗コストを算出し、
前記摩耗コストを含む評価関数に基づいて、前記回路の配線を実施する
設計支援方法。
【請求項１１】
請求項１から９のいずれか１項に記載の設計支援システムにおいて、
前記変更回数または前記摩耗コストの情報を表示する表示装置を有する、
設計支援システム。
【請求項１２】
請求項１から９のいずれか１項に記載の設計支援システムにおいて、
前記摩耗コストを設定可能な入出力装置を有する、
設計支援システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、回路設計を支援する設計支援システムおよび設計支援方法に関する。
【背景技術】
【０００２】
ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）等のプログラマブル論理集積回路は、論理要素と、入出力要素と、接続要素とから構成される。論理要素は、プログラマブルな論理演算機能を提供する。論理要素として、例えば、組み合わせ回路を実現するルックアップテーブルとデータを保持するフリップフロップとセレクタとから構成されるロジックブロックが用いられる。入出力要素は、デバイス外部との間のプログラマブルな入出力機能を提供する。接続要素は、論理要素や入出力要素の間のプログラマブルな接続機能を提供する。これにより、ユーザは複数のロジックブロックを任意に組み合わせることで、プログラマブル論理集積回路に所望の論理回路を形成することができる。所望の論理回路を形成するために必要な情報（構成情報）は、プログラマブル論理集積回路が備えるメモリ素子に保存される。構成情報を記憶するメモリ素子には、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）セル、アンチフューズ、フローティングゲートＭＯＳ（Ｍｅｔａｌ−Ｏｘｉｄｅ−Ｓｅｍｉｃｏｎｄｕｃｔｏｒ）トランジスタ等が用いられる。【０００３】
これらのメモリ素子やロジックブロック同士を変更可能に接続するスイッチは、一般的に、多数のトランジスタから成るロジックブロックと同層に形成される。これが大きな面積オーバーヘッドの要因となる。これにより、プログラマブル論理集積回路のチップ面積が大きくなり、製造コストが上昇してしまう。また、メモリ素子やスイッチのレイアウト面積が大きくなることで、チップ面積に占めるロジックブロックの割合が低下してしまう。【０００４】
そこで、レイアウト面積の増大を抑制しつつ、製造後のロジックブロック同士の接続を変更可能にするスイッチとして、配線層に形成可能な抵抗変化素子を用いたプログラマブル論理集積回路が提案されている。例えば、特許文献１、特許文献２および非特許文献１に記載されたプログラマブル論理集積回路は、第１の配線層と、その上部に形成される第２の配線層との間に、金属イオンを含有する固体電解質材料から成る抵抗変化素子が配置された構成である。抵抗変化素子は、その両端に順方向または逆方向にバイアス電圧を印加することで抵抗値を変化させることが可能であり、低抵抗状態（オン状態）と高抵抗状態（オフ状態）との比が１０の５乗またはそれ以上となる。すなわち、抵抗変化素子が、第１の配線と第２の配線とを電気的に接続または切断するスイッチとして機能する。【０００５】
広く利用されているプログラマブル論理集積回路における配線の接続および切断には、メモリ素子であるＳＲＡＭセルと、スイッチ機能を備えた１つのトランジスタを有するスイッチセルとが利用されている。一方、抵抗変化素子は、メモリ機能とスイッチ機能との両方を備えているため、１つの抵抗変化素子でスイッチセルを実現することができる。【０００６】
特許文献１に記載された半導体装置では、第１の配線群と、第１の配線群と交差する第２の配線群との各交点に抵抗変化素子が配置されている。これにより、第１の配線群の任意の配線と第２の配線群の任意の配線とを接続または切断できるクロスバスイッチをコンパクトなサイズで実現することができる。その結果、チップ面積の大幅な縮小やロジックブロックの使用効率の改善によるプログラマブル論理集積回路の性能向上が期待できる。【０００７】
また、抵抗変化素子のオンまたはオフの状態は、プログラマブル論理集積回路に対する電源供給が停止しても保持される。そのため、電源を投入するたびに構成情報をロードする手間を省くことができるという利点もある。【０００８】
他の先行技術文献として特許文献４ないし６がある。特許文献４に記載された配線方法は、問題のあるネットに絞って隣接スペーシング条件を与え、ネットリストに基づいて配線違反とならない隣接スペーシング条件を与えて配線処理を実行する。特許文献５に記載の最適配置・配線方法は、指定したクロック信号のディレイが最小となるパスを検索し、最適な論理ブロックの位置と決定し、最適な配線を求める。特許文献６に記載の自動レイアウト方法は、回路の配線に重みを付して、重みと配線長との積の総和を求め、総和が最小となるように配線する。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特許第４３５６５４２号公報
【特許文献２】国際公開第２０１２／０４３５０２号
【特許文献３】特開２０１６−１７０７０３号公報
【特許文献４】特開２００６−１５５１２０号公報
【特許文献５】特開平０８−０８７５３７号公報
【特許文献６】特開平０５−０８２６４９号公報
【非特許文献】
【００１０】
【非特許文献１】M. Miyamura et al., "Low-power programmable-logic cell arrays using nonvolatile complementary atom switch", 15th International symposium on Quality Electronic Design (ISQED), pp. 330-334, March 3-5, 2014
【非特許文献２】Xiao-Yu Hu, et al., "Write amplification analysis in flash-based solid state drives", Proceedings of SYSTOR 2009: The Israeli Experimental Systems Conference (SYSTOR: ACM International Systems and Storage Conference), Article No. 10, pp. 1-9, 2009
【発明の概要】
【発明が解決しようとする課題】
【００１１】
上述したような抵抗変化素子は、書き換え可能な回数に制限がある。抵抗変化素子を繰り返し書き換えると、劣化してしまい、最終的に書き換えができなくなってしまう。このため、一部の抵抗変化素子に書き込みが集中すると、プログラマブル論理集積回路は、より早期に故障し、所望の論理回路を形成できなくなってしまう。【００１２】
関連する技術として、メモリへの書き込みを平準化するウェアレベリング手法が知られている。例えば、非特許文献２に記載されたＳＳＤ（Ｓｏｌｉｄ−Ｓｔａｔｅ  ｄｒｉｖｅ）は、コントローラとフラッシュメモリとを備え、コントローラが論理アドレスで指定されたユーザデータをアドレス変換し、物理アドレスで指定されたフラッシュメモリへ書き込む。【００１３】
また、例えば、特許文献３には、同じメモリラインへ繰り返し書き込みを行うことでメモリセルが劣化することを回避するために、書き込み先を分散させるように論理アドレスとメモリラインとの対応関係を制御する記憶装置が記載されている。【００１４】
非特許文献２に記載された技術は、アドレス変換により、データが保存される物理的な位置の自由度を向上できる。しかしながら、この技術をプログラマブル論理集積回路にそのまま適用することは困難である。なぜなら、プログラマブル論理集積回路におけるデータは、データが保存された物理的位置近傍のロジックブロックの論理演算機能やロジックブロック間の接続状態を規定するため、一部のデータの物理的位置を単に移動すると所望の論理回路を形成できなくなってしまうからである。特許文献３に記載された技術についても同様であり、回路の接続関係の整合性をとるものではない。【００１５】
本発明の目的は、上記課題を解決する設計支援システムおよび設計支援方法を提供することにある。
【課題を解決するための手段】
【００１６】
本発明の一形態における設計支援システムは、
抵抗変化素子を備えるプログラマブル論理集積回路に実装する回路の設計を支援する設計支援システムであって、
前記抵抗変化素子の状態の変更回数を示す書き換え履歴情報を生成する書き換え履歴情報生成手段と、
前記書き換え履歴情報に基づいて、前記回路に含まれるスイッチの摩耗コストを算出する摩耗コスト生成手段と、
前記摩耗コストを含む評価関数に基づいて、前記回路の配線を実施する配線手段と
を有する。【００１７】
また、本発明の一形態における設計支援方法は、
抵抗変化素子を備えるプログラマブル論理集積回路に実装する回路の設計を支援する設計支援方法であって、
前記抵抗変化素子の状態の変更回数を示す書き換え履歴情報を生成し、
前記書き換え履歴情報に基づいて、前記回路に含まれるスイッチの摩耗コストを算出し、
前記摩耗コストを含む評価関数に基づいて、前記回路の配線を実施する。
【発明の効果】
【００１８】
以上説明したように、本発明においては、信頼性の高いプログラマブル論理集積回路を提供することができる。
【図面の簡単な説明】
【００１９】
【図１】本発明の設計支援システムの第１の実施の形態を示す図である。
【図２】図１に示した設計支援システムにおける設計支援方法の一例を説明するためのフローチャートである。
【図３】本発明の設計支援システムの第２の実施の形態を示す図である。
【図４】第２の実施の形態において図３に示した設計支援システムが備える設計支援ツール群の一構成例を示す図である。
【図５】図３に示した設計支援システムにおける設計支援方法の一例を説明するためのフローチャートである。
【図６Ａ】図４に示した摩耗コスト生成ツールが摩耗コストを算出する際の摩耗コスト関数の第１の例を示す図である。
【図６Ｂ】図４に示した摩耗コスト生成ツールが摩耗コストを算出する際の摩耗コスト関数の第２の例を示す図である。
【図６Ｃ】図４に示した摩耗コスト生成ツールが摩耗コストを算出する際の摩耗コスト関数の第３の例を示す図である。
【図７】図４に示した配置配線ツールが行う配置配線手順の一例を説明するためのフローチャートである。
【図８】図３に示したプログラマブル論理集積回路が備える、２つのロジックブロックとそれを接続する配線リソースとの一例を示す模式図である。
【図９】接続要求に対応する、既配線経路および代替配線経路を示す有向グラフである。
【図１０】書き換え回数Ｎに対する摩耗コストを示す摩耗コスト関数Ｆ（Ｎ）の一例を示す図である。
【図１１】本発明の設計支援システムの第３の実施の形態における配置配線手順の一例を説明するためのフローチャートである。
【図１２】本発明の設計支援システムの第４の実施の形態における配置配線手順の一例を説明するためのフローチャートである。
【図１３】第５の実施の形態において図３に示した設計支援システムが備える設計支援ツール群の一構成例を示す図である。
【図１４】第５の実施の形態における設計支援方法の一例を説明するためのフローチャートである。
【図１５Ａ】回路Ａが実装されたプログラマブル論理集積回路の一例を示す模式図である。
【図１５Ｂ】構成情報に基づいて回路Ｂが実装される場合のプログラマブル論理集積回路の一例を示す模式図である。
【図１５Ｃ】等価回路解析後の修正された構成情報に基づいて回路Ｂが実装される場合のプログラマブル論理集積回路の一例を示す模式図である。
【発明を実施するための形態】
【００２０】
以下に本発明の実施の形態について図面を参照して説明する。
（第１の実施の形態）
図１は、本発明の設計支援システムの第１の実施の形態を示す図である。本形態における設計支援システムは、抵抗変化素子を備えるプログラマブル論理集積回路に実装する回路の設計を支援する。本形態における設計支援システムは図１に示すように、書き換え履歴情報生成部１１０と、摩耗コスト生成部１２０と、配線部１３０とを有する。
【００２１】
書き換え履歴情報生成部１１０は、抵抗変化素子の状態の変更回数を示す書き換え履歴情報を生成する。摩耗コスト生成部１２０は、書き換え履歴情報生成部１１０が生成した書き換え履歴情報に基づいて、回路に含まれるスイッチの摩耗コストを算出する。配線部１３０は、摩耗コストを含む評価関数に基づいて、回路の配線を実施する。
【００２２】
以下に、図１に示した設計支援システムにおける設計支援方法について説明する。図２は、図１に示した設計支援システムにおける設計支援方法の一例を説明するためのフローチャートである。
【００２３】
まず、書き換え履歴情報生成部１１０は、プログラマブル論理集積回路が具備する抵抗変化素子の状態の変更回数を示す書き換え履歴情報を生成する（ステップＳ１）。すると、摩耗コスト生成部１２０が、書き換え履歴情報生成部１１０が生成した書き換え履歴情報に基づいて、プログラマブル論理集積回路に実装する回路に含まれるスイッチの摩耗コストを算出する（ステップＳ２）。続いて、配線部１３０が、摩耗コストを含む評価関数に基づいて、プログラマブル論理集積回路に実装する回路の配線を実施する（ステップＳ３）。
【００２４】
このように、第１の実施の形態は、抵抗変化素子の状態の変更回数に基づいて、摩耗コストを算出し、摩耗コストを含んだ評価関数に基づいて、回路の配線を実施する。そのため、第１の実施の形態は、信頼性の高いプログラマブル論理集積回路を提供することができる。
（第２の実施の形態）
図３は、本発明の設計支援システムの第２の実施の形態を示す図である。本形態における設計支援システム２０１は、図３に示すように、構成情報転送装置３０１と接続されている。また、設計支援システム２０１は、構成情報転送装置３０１を介してプログラマブル論理集積回路４０１と接続されている。これらの接続は、有線を用いるものであっても良いし、無線を用いるものであっても良い。また、接続における信号の通信方式は特に規定しない。なお、プログラマブル論理集積回路４０１および構成情報転送装置３０１は、アプリケーション・ボードとして設計支援システム２０１に搭載されていても良い。
【００２５】
設計支援システム２０１は、例えば、コンピュータシステムによって実現されるものである。設計支援システム２０１は、図３に示すように、演算装置２１１と、記憶装置２２１と、表示装置２３１と、入出力装置２４１とを有する。演算装置２１１と、記憶装置２２１と、表示装置２３１と、入出力装置２４１とは、互いにバス２５１を介して接続されている。
【００２６】
演算装置２１１は、記憶装置２２１にあらかじめ格納されているプログラムに従って処理を実行することで、設計支援システム２０１全体の動作を制御する。また、演算装置２１１は、記憶装置２２１にあらかじめ格納されているプログラムに従って処理を実行することで、後述する設計支援ツール群の機能を実現する。
【００２７】
記憶装置２２１は、設計情報やプログラムを格納するメモリ等の記憶媒体である。設計情報は、プログラマブル論理集積回路４０１に実装する、設計者が作成する回路の動作記述情報、制約条件情報などを含む。この設計情報には、後述する演算装置２１１の処理結果であるネットリスト情報、配置配線情報、プログラマブル論理集積回路４０１のリソース情報や構成情報、書き換え履歴情報等を含む。
【００２８】
表示装置２３１は、設計支援ツールの命令入力画面や設計支援ツールが行った処理結果を表示する。表示装置２３１は、後述する抵抗変化素子の書き換え回数や摩耗コストの情報を表示する。表示方法としては、統計処理後のデータのグラフ表示、フロアプランナー上でのカラー表示を含む。これらの表示をユーザが確認することで、例えば、ユーザは、書き換え回数（変更回数）が大きなところを避けたフロアプランを作成することができる。
【００２９】
入出力装置２４１は、キーボード、マウス、タッチパネル等の入力装置、および構成情報転送装置３０１、並びに印刷装置等の出力装置と、信号やデータを送受信するインタフェース回路である。入出力装置２４１は、後述する摩耗コストを設定する機能をユーザに提供する。ユーザは、この機能を利用することで、遅延時間や面積を優先した配線または摩耗が最小となる配線を設定することができる。また、入出力装置２４１は、後述するステップ状に変化する摩耗コスト関数の閾値回数を設定する機能をユーザに提供する。ユーザは、この機能を利用することで、遅延時間や面積を優先した配線または摩耗が最小となる配線を設定することができる。
【００３０】
構成情報転送装置３０１は、設計支援システム２０１およびプログラマブル論理集積回路４０１と接続され、設計支援システム２０１とプログラマブル論理集積回路４０１との間の構成情報などのデータ伝送を制御する。例えば、構成情報転送装置３０１は、設計支援システム２０１から送信された構成情報等のデータを受信し、プログラマブル論理集積回路４０１のデータ入出力仕様の送信データに変換して転送する。また、構成情報転送装置３０１は、プログラマブル論理集積回路４０１から出力された構成情報等のデータを受信し、設計支援システム２０１のデータ入出力仕様の送信データに変換して転送する。
【００３１】
図４は、第２の実施の形態において図３に示した設計支援システム２０１が備える設計支援ツール群の一構成例を示す図である。本形態において図３に示した設計支援システム２０１が備える設計支援ツール群１０１は、図４に示すように、書き換え履歴情報生成ツール１１１と、摩耗コスト生成ツール１２１と、配置配線ツール１３１と、論理合成ツール１４１とを有する。これらのツールは、図３に示した記憶装置２２１にあらかじめ格納されており、演算装置２１１が記憶装置２２１から読み出して実行するものである。
【００３２】
論理合成ツール１４１は、設計者が入出力装置２４１を用いて入力した動作記述情報および遅延・電力などの制約条件情報を参照して、回路の論理合成を行う論理合成部である。設計者は、論理合成ツール１４１を用いてネットリストを得ることができる。ネットリストは、プログラマブル論理集積回路４０１が備える論理要素を用いて作成される。ネットリストは、論理要素および論理要素間の接続情報である。
【００３３】
配置配線ツール１３１は、配置部および配線部である。配置配線ツール１３１は、プログラマブル論理集積回路４０１の論理要素や配線リソース等のリソース情報を生成する。
【００３４】
配置配線ツール１３１は、プログラマブル論理集積回路４０１のリソース情報に基づいて、ネットリストに含まれる論理要素を仮想的に配置・配線する。設計者は、配置配線ツール１３１を用いて構成情報を得ることができる。
【００３５】
書き換え履歴情報生成ツール１１１は、プログラマブル論理集積回路４０１から読み出された構成情報に基づいて、デバイス固有の書き換え履歴情報を生成する書き換え履歴情報生成部である。書き換え履歴情報は、プログラマブル論理集積回路４０１が備える論理要素や接続要素に含まれる抵抗変化素子の状態であるアドレス情報と変更（書き換え）回数を示す書き換え回数情報とを含む。
【００３６】
摩耗コスト生成ツール１２１は、書き換え履歴情報生成ツール１１１が生成した書き換え履歴情報に基づいて、回路に含まれるスイッチ等のデバイス固有の摩耗コストを生成する摩耗コスト生成部である。摩耗コスト生成ツール１２１は、書き換え回数Ｎに対する摩耗コスト関数Ｆ（Ｎ）を用いて摩耗コストを算出する。摩耗コストは、配置配線ツール１３１へ供給され、次回の配置配線の際に利用される。
【００３７】
以下に、図３に示した設計支援システム２０１における設計支援方法について説明する。図５は、図３に示した設計支援システム２０１における設計支援方法の一例を説明するためのフローチャートである。図３に示した設計支援システム２０１は、論理合成工程、配置配線工程、書き換え履歴生成工程、及び摩耗コスト生成工程を順に行う。ここでは、回路Ａがすでに実装されたプログラマブル論理集積回路４０１に、回路Ａと異なる回路Ｂを実装する場合の処理について説明する。
【００３８】
まず、設計支援システム２０１には、Ｖｅｒｉｌｏｇ−ＨＤＬ（Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）やＶＨＤＬ（Ｖｅｒｙ  ｈｉｇｈ−ｓｐｅｅｄ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ  Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）等のハードウェア記述言語を用いて設計者が作成した回路Ｂの動作記述ファイルが、入出力装置２４１を用いて入力される（ステップＳ１１）。
【００３９】
論理合成ツール１４１が、入力された動作記述ファイルを論理合成し（ステップＳ１２）、ネットリストを生成する（ステップＳ１３）。ネットリストは、プログラマブル論理集積回路４０１が備える論理要素を用いて生成される。論理合成ツール１４１は、設計者があらかじめ設定したタイミング制約情報を満たすように回路を最適化する。
【００４０】
続いて、配置配線ツール１３１は、プログラマブル論理集積回路４０１に実装する回路の配置配線処理を実行し（ステップＳ１４）、構成情報を生成する（ステップＳ１５）。配置配線ツール１３１は、後述する摩耗コストに基づいて配置配線処理を行うという特徴を有する。
【００４１】
回路Ｂの構成情報が決定すると、入出力装置２４１に対する設計者の操作に基づいて、構成情報転送装置３０１が設計支援システム２０１およびプログラマブル論理集積回路４０１と接続される。これにより、設計支援システム２０１とプログラマブル論理集積回路４０１との通信経路が確立する。決定した構成情報は、設計支援システム２０１から構成情報転送装置３０１を介してプログラマブル論理集積回路４０１へ送信される。プログラマブル論理集積回路４０１は、構成情報転送装置３０１から構成情報を受信すると、コンフィグレーション動作を開始する。全ての構成情報のコンフィグレーション動作が完了すると、プログラマブル論理集積回路４０１は、回路Ｂが実装された状態となる。
【００４２】
すると、書き換え履歴情報生成ツール１１１は、プログラマブル論理集積回路４０１が有する各抵抗変化素子のアドレス情報と、各抵抗変化素子の状態の書き換え回数を示す情報とが含まれる書き換え履歴情報を生成する（ステップＳ１６）。書き換え履歴情報生成ツール１１１は、コンフィグレーション後にプログラマブル論理集積回路４０１から読み出された構成情報（回路Ｂ）と回路Ａの構成情報とを比較し、その差分をとることで書き換え履歴情報を更新する。なお、書き換え履歴情報生成ツール１１１は、回路Ａの構成情報を、回路Ｂの構成情報のコンフィグレーションに先立ち読み出す等して、あらかじめ入手する。
【００４３】
続いて、摩耗コスト生成ツール１２１は、書き換え履歴情報に基づいて、各抵抗変化素子のアドレス情報と各抵抗変化素子の摩耗コストを示す情報とが含まれる摩耗コストを生成する（ステップＳ１７）。生成された摩耗コストは、配置配線ツール１３１へ供給され、次回の配置配線の際に利用される。
【００４４】
図６Ａは、図４に示した摩耗コスト生成ツール１２１が摩耗コストを算出する際の摩耗コスト関数の第１の例を示す図である。図６Ａは、摩耗コストが書き換え回数とともに大きくなる（増加する）摩耗コスト関数を示している。摩耗コスト関数として、抵抗変化素子の故障率または後述する遅延コストや混雑コストと比較可能な値に故障率をスケールした値が利用されうる。ここで、故障率は、ある書き換え回数Ｎまで動作してきた抵抗変化素子のうち、次の書き換えで故障する割合である。図６Ａに示した摩耗コスト関数の一例は、形状パラメータが１よりも大きな場合のワイブル分布の故障率関数である。一般的にワイブル分布の故障率関数λ（ｔ）は、
λ（ｔ）＝（ｍ／η＾ｍ）ｔ＾（ｍ−１）
の式で与えられる。この式において、ｍは形状パラメータ（ワイブル係数）、ηは尺度パラメータと呼ばれる。
【００４５】
図６Ｂは、図４に示した摩耗コスト生成ツール１２１が摩耗コストを算出する際の摩耗コスト関数の第２の例を示す図である。図６Ｂは、摩耗コストが書き換え回数に対して下方向に凸型に増加する区間を含んだ摩耗コスト関数を示している。摩耗コスト関数として、抵抗変化素子の故障率または後述する遅延コストや混雑コストと比較可能な値に故障率をスケールした値が利用されうる。図６Ｂに示した摩耗コスト関数の一例は、形状パラメータが２よりも大きな場合のワイブル分布の故障率関数である。
【００４６】
摩耗コスト関数として、抵抗変化素子の故障率または後述する遅延コストや混雑コストと比較可能な値に故障率をスケールした値を利用する利点は、配置配線における評価関数と、プログラマブル論理集積回路４０１の故障率とを関連付けることができる点である。
【００４７】
ここで、プログラマブル論理集積回路４０１の故障は、プログラマブル論理集積回路４０１を構成する複数の抵抗変化素子のうち、１つの抵抗変化素子が故障したときと定義する。このような系は、信頼性面で直列系である。直列系の全体の故障率は、構成要素の故障率の総和である。このため、配置配線における評価関数を摩耗コストの総和とすることで、評価関数をプログラマブル論理集積回路４０１の故障率と関連付けることができる。配置配線における評価関数を最小化することにより、プログラマブル論理集積回路４０１の故障率を最小化することができる。
【００４８】
図６Ｃは、図４に示した摩耗コスト生成ツール１２１が摩耗コストを算出する際の摩耗コスト関数の第３の例を示す図である。図６Ｃは、摩耗コストが書き換え回数に対してステップ状に変化する摩耗コスト関数を示している。ここでは、摩耗コストが変化する書き換え回数を閾値回数と定義する。閾値回数よりも少ない書き換え回数における摩耗コストは、遅延コストや混雑コストと比較可能な値が利用される。閾値回数よりも多い書き換え回数における摩耗コストは、遅延コストや混雑コストに比べ、大きな値が設定されうる。
【００４９】
摩耗コスト生成ツール１２１または配置配線ツール１３１は、プログラマブル論理集積回路４０１へコンフィグレーションを行った回数に応じて、閾値回数を設定しても良い。また、摩耗コスト生成ツール１２１または配置配線ツール１３１は、プログラマブル論理集積回路４０１内の抵抗変化素子の位置に応じて、閾値回数を設定しても良い。摩耗コスト生成ツール１２１または配置配線ツール１３１は、配置配線工程において、その閾値回数を超えて書き換えが必要な抵抗変化素子の数や、配線できたか否か、遅延時間などの配線結果の情報に基づいて、閾値回数を設定しても良い。
【００５０】
摩耗コスト関数として、ステップ関数を用いる利点は、配置配線の結果に応じた制御が行いやすい点である。また、閾値回数を抵抗変化素子の書き換え保証回数と設定し、かつ、閾値回数よりも多い書き換え回数における摩耗コストを十分大きな値に設定することにより、書き換え保証回数以上の素子の利用を禁止することができる。また、故障した抵抗変化素子の閾値回数を０とし、かつ、閾値回数よりも多い書き換え回数における摩耗コストを十分大きな値に設定することにより、故障した抵抗変化素子の利用を禁止することができる。
【００５１】
図７は、図４に示した配置配線ツール１３１が行う配置配線手順の一例を説明するためのフローチャートである。配置配線ツール１３１は、リソース情報生成工程、配置工程、配線工程、及び摩耗コストに基づく再配線工程を順に行う。
【００５２】
配置配線ツール１３１は、リソース情報生成工程において、論理要素や配線リソース等のリソース情報を生成する（ステップＳ２１）。リソース情報は、ある論理要素の識別番号と、その論理要素の構成情報を保存する抵抗変化素子の識別番号とを一組とした情報を含んでいても良い。また、リソース情報は、ある配線リソースの識別番号と、その配線リソースと接続している抵抗変化素子の識別番号とがリンクした情報として、例えば、配線リソースの有向グラフまたは無向グラフを含んでいても良い。また、抵抗変化素子の識別番号とアドレス情報との紐づけにより、各抵抗変化素子の摩耗コストを取得できるようにしても良い。
【００５３】
配置配線ツール１３１は、配置工程において、ネットリストに含まれる各論理要素をプログラマブル論理集積回路４０１の配置スロットに割り当てる（ステップＳ２２）。スロットとは、論理要素を配置する場所である。配置配線ツール１３１は、例えば、仮想配線長の総和を評価値（評価関数）として用いて、これを最小化する配置を探索する。ここで、ネットの仮想配線長は、そのネットに含まれるすべての論理要素のスロット位置を囲う矩形のｘ軸、ｙ軸方向の長さの和である。
【００５４】
配置配線ツール１３１は、配線工程において、ネットリストに含まれる各論理要素がどの配線リソースを利用して接続するかを決定する（ステップＳ２３）。例えば、配置配線ツール１３１は、遅延時間を最小化することと、配線経路が見つからないことを避けることとを実現するために、遅延コストと混雑コストとを含んだ評価関数を用い、これを最小化する配線を探索する。ここで、遅延コストは、配線経路の遅延時間に基づいて算出される。混雑コストは、ある配線リソースに対し、競合しているネットの数に基づいて算出される。配置配線ツール１３１が、混雑コストを徐々に上げながら、繰り返し配線を行うことで、競合が解消されていく。競合が解消されない場合、配置配線ツール１３１は、論理複製など他の手順を行いうる。
【００５５】
配置配線ツール１３１は、摩耗コストに基づいた再配線工程において、各ネットの既配線経路と代替経路とに対して、摩耗コストを含む評価関数を用いて評価し、再配線を行う（ステップＳ２４）。ここで、代替経路は、他のネットの配線経路へ影響を及ぼさない範囲で探索される。
【００５６】
以下に、摩耗コストに基づいた配線処理について説明する。図８は、図３に示したプログラマブル論理集積回路４０１が備える、２つのロジックブロックとそれを接続する配線リソースとの一例を示す模式図である。図８に示した論理要素としてのロジックブロックは、２つの入力端子と１つの出力端子とを備える。図８に示した配線リソースは、２つのクロスバスイッチと２つのバッファ回路とから構成される。
【００５７】
クロスバスイッチは列方向に延伸した４つの列配線と、行方向に延伸した４つの行配線と、列配線と行配線との交差部に位置する抵抗変化素子とから構成される。クロスバスイッチは、抵抗変化素子を用いて、列配線の任意の配線と行配線の任意の配線とを接続または切断することができる。
【００５８】
クロスバスイッチＸＢ０は、列配線Ａ０，Ａ１を入力線として用いて、列配線Ｙ０をロジックブロックＬＢ０の出力端子と接続し、列配線Ｃ０を接地する。クロスバスイッチＸＢ０は、行配線Ｉ０，Ｉ１を出力線として用いて、ロジックブロックＬＢ０の入力端子と接続する。クロスバスイッチＸＢ０は、行配線Ｂ０，Ｂ１を出力配線として用いて、それぞれバッファ回路ＢＵＦ０，ＢＵＦ１の入力端子と接続する。
【００５９】
クロスバスイッチＸＢ１は、列配線Ａ２，Ａ３を入力線として用いて、それぞれバッファ回路ＢＵＦ０，ＢＵＦ１の出力端子と接続する。クロスバスイッチＸＢ１は、列配線Ｙ１をロジックブロックＬＢ１の出力端子と接続し、列配線Ｃ１を接地する。クロスバスイッチＸＢ１は、行配線Ｉ２，Ｉ３を出力線として用いて、ロジックブロックＬＢ１の入力端子と接続する。クロスバスイッチＸＢ１は、行配線Ｂ２，Ｂ３を出力配線として用いる。
【００６０】
ここでは、配置配線ツール１３１が、配線工程において、ＬＢ０の出力端子Ｙ０から、ＬＢ１の入力端子Ｉ２，Ｉ３のどちらか一方への接続要求に応じて、既配線経路として、配線Ｙ０、抵抗変化素子Ｅ０、配線Ｂ０、バッファ回路ＢＵＦ０、配線Ａ２、抵抗変化素子Ｅ２、配線Ｉ２の順に既に配線している場合を考える。摩耗コストに基づいた配線処理を行うに当たり、配置配線ツール１３１は、配線リソースグラフに基づいて、代替経路を探索する。ここで、関連する抵抗変化素子はＥ０，Ｅ１，Ｅ２，Ｅ３，Ｅ４，Ｅ５である。
【００６１】
図９は、接続要求に対応する、既配線経路および代替配線経路を示す有向グラフである。図９において、丸で示されたノードは配線、矢印付の実線で示されたエッジは抵抗変化素子またはバッファ回路を示している。エッジには、抵抗変化素子の書き換え回数を付記した。
【００６２】
図９において、代替配線経路は３つある。代替配線経路１は、配線Ｙ０、抵抗変化素子Ｅ０、配線Ｂ０、バッファ回路ＢＵＦ０、配線Ａ２、抵抗変化素子Ｅ３、配線Ｉ３から構成される配線経路である。代替配線経路２は、配線Ｙ０、抵抗変化素子Ｅ１、配線Ｂ１、バッファ回路ＢＵＦ１、配線Ａ３、抵抗変化素子Ｅ４、配線Ｉ２から構成される配線経路である。代替配線経路３は、配線Ｙ０、抵抗変化素子Ｅ１、配線Ｂ１、バッファ回路ＢＵＦ１、配線Ａ３、抵抗変化素子Ｅ５、配線Ｉ３から構成される配線経路である。
【００６３】
配線経路に１つの抵抗変化素子が含まれている場合には、抵抗変化素子の書き換えを分散させる方法として、書き換え回数が最も少ない抵抗変化素子を経由する配線経路を優先して選ぶことは合理的な方法と考えられる。しかしながら、配線経路に複数の抵抗変化素子が含まれている場合、抵抗変化素子の書き換えを分散させる方法は必ずしも自明ではない。
【００６４】
図９を参照すると、書き換え回数が最も少ない抵抗変化素子はＥ２であるため、Ｅ２を含む既配線経路が最適な候補の１つと考えられる。しかしながら、既配線経路は、書き換え回数が最も多い抵抗変化素子Ｅ０が含まれるというデメリットもある。したがって、配線経路に複数の抵抗変化素子が含まれている場合にも、適切に配線経路を選択する方法が必要である。
【００６５】
抵抗変化素子の書き換えを分散させる方法として、本発明では、配置配線ツール１３１は、摩耗コストを含む評価関数に基づいて、配線を実施する。例えば、配置配線ツール１３１は、配線経路に含まれる抵抗変化素子の摩耗コストの和が最小のものを採用する。
【００６６】
図１０は、書き換え回数Ｎに対する摩耗コストを示す摩耗コスト関数Ｆ（Ｎ）の一例を示す図である。ここで、摩耗コスト関数Ｆ（Ｎ）として、ワイブル分布に基づく故障率を用いる。図１０に示した例では、形状パラメータを１０、平均書き込み可能回数を２０００とした。この場合、既配線経路の摩耗コストの和は１Ｅ−６、代替配線経路１の摩耗コストの和は２Ｅ−６、代替配線経路２の摩耗コストの和は４．１Ｅ−７、代替配線経路３の摩耗コストは３．８Ｅ−８である。代替配線経路３の摩耗コストの和が最小であるため、配置配線ツール１３１は代替配線経路として代替配線経路３を選択する。
【００６７】
以上説明したように、本実施の形態の抵抗変化素子を備えるプログラマブル論理集積回路４０１に実装する回路の設計を支援する設計支援システム２０１は、プログラマブル論理集積回路４０１の抵抗変化素子の書き換え回数を平準化することができる。さらに、設計支援システム２０１は、摩耗コストを含む評価関数に基づいて、配線を実施する。これにより、配線経路に複数の抵抗変化素子が含まれている場合であっても、適切に配線経路を選択することが可能である。そのため、本実施の形態によれば、信頼性の高いプログラマブル論理集積回路を提供することができる。
（第３の実施の形態）
以下に、本発明の設計支援システムの第３の実施の形態について説明する。本形態における設計支援システムの構成は、第２の実施の形態と同様であるため、その構成要素は、図３および図４に示したものを使用して説明する。
【００６８】
以下に、本発明の設計支援システムの第３の実施の形態における配置配線手順について説明する。図１１は、本発明の設計支援システムの第３の実施の形態における配置配線手順の一例を説明するためのフローチャートである。配置配線ツール１３１は、リソース情報生成工程、配置工程、及び摩耗コストを考慮した配線工程を順に行う。本実施の形態における配置配線手順のリソース情報生成工程（ステップＳ３１）および配置工程（ステップＳ３２）は、第２の実施の形態におけるものと同じであるため、説明は省略する。
【００６９】
配置配線ツール１３１は、摩耗コストを考慮した配線工程において、ネットリストに含まれる各論理要素がどの配線リソースを利用して接続するかを決定する（ステップＳ３３）。配置配線ツール１３１は、遅延コストおよび混雑コストに加え、摩耗コストを含む評価関数を用いて、これを最小化する配線を探索する。ここで、遅延コストは、配線経路の遅延時間に基づいて算出される。混雑コストは、ある配線リソースに対して、競合しているネットの数に基づいて算出される。摩耗コストは、第２の実施の形態と同様に、摩耗コスト生成ツール１２１を用いて生成される。配置配線ツール１３１が、混雑コストを徐々に上げながら、繰り返し配線を行うことで、競合が解消されていく。競合が解消されない場合、配置配線ツール１３１は、論理複製、及び摩耗コストの修正など他の手順を行いうる。
【００７０】
以上説明したように、本実施の形態の抵抗変化素子を備えるプログラマブル論理集積回路４０１に実装する回路の設計を支援する設計支援システム２０１は、プログラマブル論理集積回路４０１の抵抗変化素子の書き換えを平準化できる。さらに、本実施の形態の設計支援システム２０１は、遅延コストと、混雑コストと、摩耗コストとを含んだ評価関数を用いて一括して配線を行う。そのため、第２の実施の形態と比較して、配線経路の選択肢が増え、より最適な配線経路を選択することができる。
（第４の実施の形態）
以下に、本発明の設計支援システムの第４の実施の形態について説明する。本形態における設計支援システムの構成は、第２の実施の形態と同様であるため、その構成要素は、図３および図４に示したものを使用して説明する。
【００７１】
以下に、本発明の設計支援システムの第４の実施の形態における配置配線手順について説明する。図１２は、本発明の設計支援システムの第４の実施の形態における配置配線手順の一例を説明するためのフローチャートである。配置配線ツール１３１は、リソース情報生成工程、摩耗コストを考慮した配置工程、及び摩耗コストを考慮した配線工程を順に行う。本実施の形態における配置配線手順のリソース情報生成工程（ステップＳ４１）および摩耗コストを考慮した配線工程（ステップＳ４３）は第３の実施の形態におけるものと同じであるため、説明は省略する。
【００７２】
配置配線ツール１３１は、配置工程において、ネットリストに含まれる各論理要素をプログラマブル論理集積回路４０１の配置スロットに割り当てる。配置配線ツール１３１は、仮想配線長の総和と混雑コストとから構成される評価関数を用いて、これを最小化する配置を探索する。ここで、混雑コストは、例えば、ある配置スロットから、他の配置スロットへの配線可能な配線経路のうち、各配線経路の遅延時間や摩耗コストがある基準値以下である配線経路数に基づいて算出される。混雑コストは、配線経路数が少ないほど大きくなるように設定する。これにより、摩耗コストが高い抵抗変化素子を含んだ配線経路は、配線経路数に含まれにくくなり、混雑コストが上昇する。ある配置スロット間の混雑コストが上昇すると、配置配線ツール１３１は、より評価関数が小さい、代替の配置を探索しうる。
【００７３】
以上説明したように、本実施の形態の抵抗変化素子を備えるプログラマブル論理集積回路４０１に実装する回路の設計を支援する設計支援システム２０１は、プログラマブル論理集積回路４０１の抵抗変化素子の書き換えを平準化できる。さらに、本実施の形態の設計支援システム２０１は、遅延時間や摩耗コストに基づいて配置スロット間の配線の混雑コストを算出し、仮想配線長の総和と混雑コストとから構成される評価関数を最小化する。そのため、抵抗変化素子の書き換えを平準化する最適な配置を選択することができる。
（第５の実施の形態）
以下に、本発明の設計支援システムの第５の実施の形態について説明する。本形態における設計支援システムの構成は、第２の実施の形態と同様であるため、その構成要素は、図３に示したものを使用して説明する。
【００７４】
図１３は、第５の実施の形態において図３に示した設計支援システム２０１が備える設計支援ツール群の一構成例を示す図である。本形態において図３に示した設計支援システム２０１が備える設計支援ツール群１０２は、図１３に示すように、書き換え履歴情報生成ツール１１２と、摩耗コスト生成ツール１２２と、配置配線ツール１３２と、論理合成ツール１４２と、等価回路解析ツール１５２とを有する。これらのツールは、図３に示した記憶装置２２１にあらかじめ格納されており、演算装置２１１が記憶装置２２１から読み出して実行するものである。
【００７５】
図１３に示した、第５の実施の形態における設計支援ツール群１０２の論理合成ツール１４２、配置配線ツール１３２、書き換え履歴情報生成ツール１１２、及び摩耗コスト生成ツール１２２は、図４に示した、第２の実施の形態における設計支援ツール群１０１の論理合成ツール１４１、配置配線ツール１３１、書き換え履歴情報生成ツール１１１、及び摩耗コスト生成ツール１２１と、それぞれ同じであるため、説明は省略する。ここでは、回路Ａがすでに実装されたプログラマブル論理集積回路４０１に、回路Ａと異なる回路Ｂを実装する場合の処理について説明する。
【００７６】
等価回路解析ツール１５２は、プログラマブル論理集積回路４０１にすでに実装された回路Ａの構成情報と、配置配線ツール１３２が出力した回路Ｂの構成情報とに基づいて、不要な書き換えを低減するような最適化を行い、修正後の回路Ｂの構成情報を出力する。
【００７７】
この最適化は、以下のように行われる。まず、等価回路解析ツール１５２は、回路Ａの構成情報と、回路Ｂの構成情報とに基づいて、回路Ａから回路Ｂへ変更する際に書き換えが発生する抵抗変化素子の総数を第１のカウント数として算出する。続いて、等価回路解析ツール１５２は、回路Ｂの構成情報を修正して回路Ｂと等価な回路の構成情報を生成する。等価回路解析ツール１５２は、回路Ａの構成情報と、回路Ｂと等価な回路の構成情報とに基づいて、回路Ａから回路Ｂと等価な回路へ変更する際に書き換えが発生する抵抗変化素子の総数を第２のカウント数として算出する。等価回路解析ツール１５２は、第２のカウント数が第１のカウント数よりも少ない場合、回路Ｂと等価な回路の構成情報を出力する。
【００７８】
以下に、本形態における設計支援方法について説明する。図１４は、第５の実施の形態における設計支援方法の一例を説明するためのフローチャートである。第５の実施の形態における設計支援システム２０１は、論理合成工程、配置配線工程、等価回路解析工程、書き換え履歴生成工程、及び摩耗コスト生成工程を順に行う。第５の実施の形態における設計支援方法（論理設計手順）の論理合成工程（ステップＳ５１〜Ｓ５２）、配置配線工程（ステップＳ５３〜Ｓ５４）、書き換え履歴生成工程（ステップＳ５９）および摩耗コスト生成工程（ステップＳ６０）は、第２の実施の形態における処理と同じであるため、説明は省略する。
【００７９】
等価回路解析ツール１５２は、回路Ａの構成情報と、配置配線ツール１３２が出力した回路Ｂの構成情報とを取得する（ステップＳ５５〜Ｓ５６）。等価回路解析ツール１５２は、取得した回路Ａの構成情報と回路Ｂの構成情報とに基づいて、不要な書き換えを低減するような最適化を行い、修正後の回路Ｂの構成情報を出力する（ステップＳ５７〜Ｓ５８）。一般的に配置配線ツールは、配線工程において、ネットリストに含まれる各論理要素がどの配線リソースを利用して接続するかを決定する。しかしながら、一般的に配置配線ツールは、利用しない配線リソースや、ロジックブロックのドントケアビット等に対して、不要な書き換えを低減するような最適化を行わない。ここで、ドントケアビットは、そのビットの値を変更しても、ロジックブロックが実現する論理機能が変更しないビットである。等価回路解析ツール１５２は、このような利用しない配線リソースや、ロジックブロックのドントケアビットに対して、等価回路を解析し、不要な書き換えを低減するような最適化を行う。
【００８０】
以下に、等価回路解析工程について、具体例を挙げて説明する。
【００８１】
図１５Ａは、回路Ａが実装されたプログラマブル論理集積回路４０１の一例を示す模式図である。図１５Ｂは、構成情報に基づいて回路Ｂが実装される場合のプログラマブル論理集積回路４０１の一例を示す模式図である。図１５Ｃは、等価回路解析後の修正された構成情報に基づいて回路Ｂが実装される場合のプログラマブル論理集積回路４０１の一例を示す模式図である。
【００８２】
図１５Ａを参照すると、プログラマブル論理集積回路４０１が備える、２つのロジックブロックとそれを接続する配線リソースとを示す模式図が示されている。論理要素としてのロジックブロックは、２つの入力端子と１つの出力端子を備える。図１５Ａに示されている配線リソースは、２つのクロスバスイッチと２つのバッファ回路とから構成される。
【００８３】
クロスバスイッチは列方向に延伸した４つの列配線と、行方向に延伸した４つの行配線と、列配線と行配線の交差部に位置する抵抗変化素子とから構成される。クロスバスイッチは、抵抗変化素子を用いて、列配線の任意の配線と行配線の任意の配線とを接続または切断できる。
【００８４】
クロスバスイッチＸＢ０は、列配線Ａ０，Ａ１を入力線として用いて、列配線Ｙ０をロジックブロックＬＢ０の出力端子と接続し、列配線Ｃ０を接地する。クロスバスイッチＸＢ０は、行配線Ｉ０，Ｉ１を出力線として用いて、ロジックブロックＬＢ０の入力端子と接続する。クロスバスイッチＸＢ０は、行配線Ｂ０，Ｂ１を出力配線として用いて、それぞれバッファ回路ＢＵＦ０，ＢＵＦ１の入力端子と接続する。
【００８５】
クロスバスイッチＸＢ１は、列配線Ａ２，Ａ３を入力線として用いて、それぞれバッファ回路ＢＵＦ０，ＢＵＦ１の出力端子と接続する。クロスバスイッチＸＢ１は、列配線Ｙ１をロジックブロックＬＢ１の出力端子と接続し、列配線Ｃ１を接地する。クロスバスイッチＸＢ１は、行配線Ｉ２，Ｉ３を出力線として用いて、ロジックブロックＬＢ１の入力端子と接続する。クロスバスイッチＸＢ１は、行配線Ｂ２，Ｂ３を出力配線として用いる。
【００８６】
図１５Ａに示すように、回路Ａが実装されたプログラマブル論理集積回路４０１は、配線経路１として、配線Ｙ０、抵抗変化素子Ｅ０、配線Ｂ０、バッファ回路ＢＵＦ０、配線Ａ２、抵抗変化素子Ｅ２、配線Ｉ２の順に配線されている。抵抗変化素子Ｅ０，Ｅ２が低抵抗状態に設定され、信号を導通する。
【００８７】
図１５Ｂに示すように、構成情報に基づいて回路Ｂが実装される場合のプログラマブル論理集積回路４０１は、配線経路２として、配線Ｃ０、抵抗変化素子Ｅ１、配線Ｂ０、バッファ回路ＢＵＦ０、配線Ａ２の順に配線される。さらに、配線Ｃ１、抵抗変化素子Ｅ３、配線I２の順に配線される。配線抵抗変化素子Ｅ１、Ｅ３が低抵抗状態に設定され、信号を導通する。配線Ｃ０，Ｃ１が接地され、配線Ｂ０、Ｉ２は回路Ｂでは信号の伝搬には利用されない。配線経路１から配線経路２への変更に際して、抵抗変化素子Ｅ０，Ｅ２の２ビットを低抵抗状態から高抵抗状態へ変更するリセット動作、および抵抗変化素子Ｅ１，Ｅ３の２ビットを高抵抗状態から低抵抗状態へ変更するセット動作が発生する。
【００８８】
図１５Ｃに示すように、等価回路解析後の修正された構成情報に基づいて回路Ｂが実装される場合のプログラマブル論理集積回路４０１は、配線経路３として、配線Ｃ０、抵抗変化素子Ｅ１、配線Ｂ０、バッファ回路ＢＵＦ０、配線Ａ２、抵抗変化素子Ｅ２、配線Ｉ２の順に配線されている。抵抗変化素子Ｅ１，Ｅ２が低抵抗状態に設定され、信号を導通する。配線Ｃ０は接地され、配線Ｂ０，Ｉ２は回路Ｂでは信号の伝搬に利用されない。配線経路１から配線経路３への変更に際して、抵抗変化素子Ｅ０の１ビットを低抵抗状態から高抵抗状態へ変更するリセット動作、および抵抗変化素子Ｅ１の１ビットを高抵抗状態から低抵抗状態へ変更するセット動作が発生する。したがって、配線経路３は、配線経路２と比較して、抵抗変化素子の不要な書き換えを低減することができる。
【００８９】
なお、上記の説明では、書き換えが発生する抵抗変化素子の総数に基づいて、最適な等価回路の選択を行ったが、書き換えが発生する抵抗変化素子の摩耗コストに基づいて、最適な等価回路を選択しても良い。また、上記の説明では、等価回路を解析して行う最適化の対象を配線リソースとしたが、ロジックブロックのドントケアビットを対象としても良い。
【００９０】
以上説明したように、本実施の形態の抵抗変化素子を備えるプログラマブル論理集積回路４０１に実装する回路の設計を支援する設計支援システムは、プログラマブル論理集積回路４０１の抵抗変化素子の書き換えを平準化することができる。さらに、等価回路解析ツール１５２は、プログラマブル論理集積回路４０１に既に実装された構成情報と、配置配線ツール１３２が出力した構成情報とに基づいて、等価回路を解析し、不要な書き換えを低減するような最適化を行う。そのため、抵抗変化素子の不要な書き換えを低減することができる。
【００９１】
以上、本発明の好ましい実施の形態を説明したが、本発明はこれに限定されるものではない。請求の範囲に記載した発明の範囲内で、種々の変形が可能であり、それらも本発明の範囲に含まれることはいうまでもない。例えば、プログラマブル論理集積回路に含まれる抵抗変化素子の一部をＳＲＡＭ等の他のメモリ素子に置き換えても良い。また、プログラマブル論理集積回路に含まれる抵抗変化素子の一部をパストランジスタとＳＲＡＭ等の他のメモリ素子とを組み合わせた回路に置き換えても良い。また、各構成要素に各機能（処理）それぞれを分担させて説明したが、この割り当ては上述したものに限定しない。また、構成要素の構成についても、上述した形態はあくまでも例であって、これに限定しない。
【００９２】
上述した設計支援システムに設けられた各構成要素が行う処理は、目的に応じてそれぞれ作製された論理回路で行うようにしても良い。また、処理内容を手順として記述したコンピュータプログラム（以下、プログラムと称する）を設計支援システムにて読取可能な記録媒体に記録し、この記録媒体に記録されたプログラムを設計支援システムに読み込ませ、実行するものであっても良い。設計支援システムにて読取可能な記録媒体とは、フロッピー（登録商標）ディスク、光磁気ディスク、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）、Ｂｌｕ−ｒａｙ（登録商標）  Ｄｉｓｃなどの移設可能な記録媒体の他、設計支援システムに内蔵されたＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等のメモリやＨＤＤ（Ｈａｒｄ  Ｄｉｓｃ  Ｄｒｉｖｅ）等を指す。この記録媒体に記録されたプログラムは、設計支援システムに設けられたＣＰＵにて読み込まれ、ＣＰＵの制御によって、上述したものと同様の処理が行われる。ここで、ＣＰＵは、プログラムが記録された記録媒体から読み込まれたプログラムを実行するコンピュータとして動作するものである。
【００９３】
上記の実施の形態の一部または全部は、以下の付記のようにも記載され得るが、以下には限られない。
（付記１）
抵抗変化素子を備えるプログラマブル論理集積回路に実装する回路の設計を支援する設計支援システムであって、
前記抵抗変化素子の状態の変更回数を示す書き換え履歴情報を生成する書き換え履歴情報生成手段と、
前記書き換え履歴情報に基づいて、前記回路に含まれるスイッチの摩耗コストを算出する摩耗コスト生成手段と、
前記摩耗コストを含む評価関数に基づいて、前記回路の配線を実施する配線手段と
を有する設計支援システム。
（付記２）
前記摩耗コスト生成手段は、前記変更回数である書き換え回数Ｎに対する摩耗コスト関数Ｆ（Ｎ）を用いて前記摩耗コストを算出し、
前記摩耗コスト関数は、増加する区間を含む、
付記１に記載の設計支援システム。
（付記３）
前記摩耗コスト生成手段は、前記変更回数である書き換え回数Ｎに対する摩耗コスト関数Ｆ（Ｎ）を用いて前記摩耗コストを算出し、
前記摩耗コスト関数は、下方向に凸型の関数であり、かつ、増加する区間を含む、
付記１に記載の設計支援システム。
（付記４）
前記摩耗コスト生成手段は、前記変更回数である書き換え回数Ｎに対する摩耗コスト関数Ｆ（Ｎ）を用いて前記摩耗コストを算出し、
前記摩耗コスト関数は、ステップ状に変化する区間を含む、
付記１に記載の設計支援システム。
（付記５）
前記摩耗コスト生成手段または前記配線手段は、前記プログラマブル論理集積回路へコンフィグレーションを行った回数と、前記プログラマブル論理集積回路内の前記抵抗変化素子の位置と、前記摩耗コストがステップ状に変化する書き換え回数である閾値回数を超えて書き換えが必要な抵抗変化素子の数と、前記配線の可否と、遅延時間とのうち少なくとも１つの情報に応じて、前記閾値回数を設定する、
付記１から４のいずれか１に記載の設計支援システム。
（付記６）
前記配線手段は、前記摩耗コストに加え、遅延コストおよび混雑コストを含む評価関数に基づいて、配線を実施する、
付記１から５のいずれか１に記載の設計支援システム。
（付記７）
前記摩耗コスト生成手段は、前記変更回数である書き換え回数Ｎに対する摩耗コスト関数Ｆ（Ｎ）を用いて前記摩耗コストを算出し、
前記摩耗コスト関数は、前記抵抗変化素子の故障率または故障率を遅延コスト若しくは混雑コストと比較可能な値にスケールした値である、
付記１から６のいずれか１に記載の設計支援システム。
（付記８）
前記摩耗コストに基づいて混雑コストを算出し、前記混雑コストを含む評価関数に基づいて、前記抵抗変化素子の配置を実施する配置手段を有する、
付記１から７のいずれか１に記載の設計支援システム。
（付記９）
前記プログラマブル論理集積回路に既に実装された第１の構成情報と、前記配線手段が配線を行った第２の構成情報とに基づいて、前記第１の構成情報から前記第２の構成情報へ変更する場合に書き換えが発生する抵抗変化素子の総数を第１のカウント数としてカウントし、前記第２の構成情報と等価な第３の構成情報を生成し、前記第１の構成情報と前記第３の構成情報とに基づいて、前記第１の構成情報から前記第３の構成情報へ変更する場合に書き換えが発生する抵抗変化素子の総数を第２のカウント数としてカウントし、前記第２のカウント数が前記第１のカウント数よりも少ない場合、前記第３の構成情報を出力する等価回路解析手段を有する、
付記１から８のいずれか１に記載の設計支援システム。
（付記１０）
抵抗変化素子を備えるプログラマブル論理集積回路に実装する回路の設計を支援する設計支援方法であって、
前記抵抗変化素子の状態の変更回数を示す書き換え履歴情報を生成し、
前記書き換え履歴情報に基づいて、前記回路に含まれるスイッチの摩耗コストを算出し、
前記摩耗コストを含む評価関数に基づいて、前記回路の配線を実施する
設計支援方法。
（付記１１）
前記変更回数または前記摩耗コストの情報を表示する表示装置を有する、
付記１から９のいずれか１項に記載の設計支援システム。
（付記１２）
前記摩耗コストを設定可能な入出力装置を有する、
付記１から９のいずれか１項に記載の設計支援システム。
【００９４】
以上、上述した実施形態を模範的な例として本発明を説明した。しかしながら、本発明は、上述した実施形態には限定されない。即ち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
【００９５】
この出願は、２０１７年  １月２６日に出願された日本出願特願２０１７−０１１９７５を基礎とする優先権を主張し、その開示のすべてをここに取り込む。
【符号の説明】
【００９６】
１０１，１０２    設計支援ツール群
１１０    書き換え履歴情報生成部
１１１，１１２    書き換え履歴情報生成ツール
１２０    摩耗コスト生成部
１２１，１２２    摩耗コスト生成ツール
１３０    配線部
１３１，１３２    配置配線ツール
１４１，１４２    論理合成ツール
１５２    等価回路解析ツール
２０１    設計支援システム
２１１    演算装置
２２１    記憶装置
２３１    表示装置
２４１    入出力装置
２５１    バス
３０１    構成情報転送装置
４０１    プログラマブル論理集積回路
【図１】
2018139408.tif 000003
【図２】
2018139408.tif 000004
【図３】
2018139408.tif 000005
【図４】
2018139408.tif 000006
【図５】
2018139408.tif 000007
【図６Ａ】
2018139408.tif 000008
【図６Ｂ】
2018139408.tif 000009
【図６Ｃ】
2018139408.tif 000010
【図７】
2018139408.tif 000011
【図８】
2018139408.tif 000012
【図９】
2018139408.tif 000013
【図１０】
2018139408.tif 000014
【図１１】
2018139408.tif 000015
【図１２】
2018139408.tif 000016
【図１３】
2018139408.tif 000017
【図１４】
2018139408.tif 000018
【図１５Ａ】
2018139408.tif 000019
【図１５Ｂ】
2018139408.tif 000020
【図１５Ｃ】
2018139408.tif 000021
【国際調査報告】
2018139408.tif 000022
2018139408.tif 000023