(57)【要約】【課題】検証対象の回路が実装された半導体デバイスから観測対象の記憶素子の値をより効率よく読み出すことができる回路検証装置を提供すること。【解決手段】第一番号および第二番号の組合せによって識別される複数の記憶素子を有する半導体デバイス５０４に実装する回路を表す回路データ１００と、観測対象の記憶素子が記載された観測記憶素子リスト１０２と、半導体デバイス５０４内の各記憶素子の第一番号および第二番号を含む番号データベース１０１とを格納したデータ格納部１１０と、観測記憶素子リスト１０２および番号データベース１０１に基づいて、観測対象の各記憶素子の配置配線後の第一番号が連続するよう制約情報１０４を生成する制約情報生成部１０３と、制約情報１０４および回路データ１００に基づいて配置配線を行い、半導体デバイス５０４に書き込む書込データ１０６を生成する配置配線部１０５と、を備える。【選択図】      図１
2011227751.tif 000002
【特許請求の範囲】
【請求項１】
第一番号および第二番号の組合せによって識別される複数の記憶素子を有し、前記第一番号を含む読出制御情報が入力されると、入力された第一番号から連続する第一番号に対応する各記憶素子の値を出力する半導体デバイスに検証対象の回路を書き込むための書込データを生成する回路検証用書込データ生成装置であって、
前記回路がハードウェア記述言語によって記述された回路データと、前記回路データに含まれる記憶素子のうち観測対象となる１つ以上の記憶素子が記載された観測記憶素子リストと、前記半導体デバイス内の各記憶素子の第一番号および第二番号を表す番号情報を含む番号データベースとを格納したデータ格納部と、
前記観測記憶素子リストおよび前記番号データベースに基づいて、前記観測記憶素子リストに記載された各記憶素子の配置配線後の第一番号が連続するよう配置配線を制約する制約情報を生成する制約情報生成部と、
前記制約情報および前記回路データに基づいて配置配線を行い、前記半導体デバイスに書き込む書込データを生成する配置配線部と、
を備えた回路検証用書込データ生成装置。
【請求項２】
前記半導体デバイス内で前記記憶素子の物理的配置に従って前記第一番号が連続するとき、
前記番号データベース内に含まれる各記憶素子の番号情報を、前記第一番号に基づいて所定の分割数の区画に分け、連続する第一番号の番号情報を各区画からそれぞれ選択する番号データベース選択部をさらに備え、
前記制約情報生成部は、前記観測記憶素子リストに記載された各記憶素子に対して、前記番号データベース選択部によって選択された番号情報の記憶素子がマッピングされるよう前記制約情報を生成することを特徴とする請求項１に記載の回路検証用書込データ生成装置。
【請求項３】
前記観測記憶素子リストに記載された記憶素子のうち組合せ回路のみで接続できるものが同一の部分リストに含まれるよう前記観測記憶素子リストを前記分割数の部分リストに分割する観測記憶素子リスト分割部をさらに備え、
前記制約情報生成部は、前記各部分リストに含まれる記憶素子に対して、前記番号データベース選択部によって前記各区画から選択された番号情報の記憶素子がそれぞれマッピングされるよう前記制約情報を生成することを特徴とする請求項２に記載の回路検証用書込データ生成装置。
【請求項４】
前記観測記憶素子リスト分割部は、前記観測記憶素子リストに記載された記憶素子のうち組合せ回路のみで接続できるものに基づいて前記観測対象の記憶素子をグループ分けし、前記各グループに含まれる記憶素子の個数の多い順に該グループに含まれる記憶素子を、前記分割数の部分リストのうち既に割り当てた記憶素子の個数が最も少ない部分リストに順次割り当てることにより、前記観測記憶素子リストを前記分割数の部分リストに分割することを特徴とする請求項３に記載の回路検証用書込データ生成装置。
【請求項５】
前記観測記憶素子リストを優先度に基づいて並び替える観測記憶素子順序変更部をさらに備え、
前記制約情報生成部は、前記観測記憶素子順序変更部によって並び替えられた前記観測記憶素子リストおよび前記番号データベースに基づいて、並び替えられた前記観測対象の各記憶素子の配置配線後の第一番号が連続するよう前記制約情報を生成することを特徴とする請求項１から請求項４のいずれかに記載の回路検証用書込データ生成装置。
【請求項６】
前記半導体デバイスにおいて前記回路の実装によって使用される回路面積の使用比率を解析し、解析した使用比率に所定の乗率を乗じた配置比率を出力する面積解析部をさらに備え、
前記番号データベース選択部は、前記番号データベースに格納された番号情報のうち前記配置比率分の番号情報を前記第一番号に基づいて前記分割数の区画に分け、各区画から前記番号情報の選択を行うことを特徴とする請求項２から請求項５のいずれかに記載の回路検証用書込データ生成装置。
【請求項７】
第一番号および第二番号の組合せによって識別される複数の記憶素子と、前記第一番号を含む読出制御情報が入力されると、入力された第一番号から連続する第一番号に対応する各記憶素子の値を読み出す読出部と、を有する半導体デバイスを用いて回路を検証する回路検証装置であって、
前記回路がハードウェア記述言語によって記述された回路データと、前記半導体デバイス内の各記憶素子の第一番号および第二番号を表す番号情報を含む番号データベースとを格納したデータ格納部と、
前記回路データに含まれる記憶素子を解析する回路データ解析部と、
前記回路データ解析部によって解析された記憶素子の一覧を外部に出力し、出力した記憶素子の一覧に基づき前記観測憶記憶素子リストを外部から取得して前記データ格納部に格納させる観測記憶素子リスト取得部と、
前記観測記憶素子リストおよび前記番号データベースに基づいて、前記観測記憶素子リストに記載された各記憶素子の配置配線後の第一番号が連続するよう配置配線を制約する制約情報を生成する制約情報生成部と、
前記制約情報および前記回路データに基づいて配置配線を行い、前記半導体デバイスに書き込む書込データを生成する配置配線部と、
前記書込データを前記半導体デバイスに書き込むプログラム部と、
前記半導体デバイス内の記憶素子の値に応じて前記半導体デバイスの動作を停止させるブレーク条件を外部から取得するブレーク条件取得部と、
前記ブレーク条件に基づいて前記半導体デバイスに供給するクロック信号を制御するクロック制御部と、
前記半導体デバイスの読出部を制御して前記観測対象の各記憶素子の値の読み出しを行う読出制御部と、
を備えた回路検証装置。
【請求項８】
前記半導体デバイス内で前記記憶素子の物理的配置に従って前記第一番号が連続するとき、
前記番号データベース内に含まれる各記憶素子の番号情報を、前記第一番号に基づいて所定の分割数の区画に分け、連続する第一番号の番号情報を各区画からそれぞれ選択する番号データベース選択部をさらに備え、
前記制約情報生成部は、前記観測記憶素子リストに記載された各記憶素子に対して、前記番号データベース選択部によって選択された番号情報の記憶素子がマッピングされるよう前記制約情報を生成することを特徴とする請求項７に記載の回路検証装置。
【請求項９】
第一番号および第二番号の組合せによって識別される複数の記憶素子と、前記第一番号を含む読出制御情報が入力されると、入力された第一番号から連続する第一番号に対応する各記憶素子の値を読み出す読出部と、を有する半導体デバイスを用いて回路を検証する回路検証装置が、
前記回路がハードウェア記述言語によって記述された回路データと、前記半導体デバイス内の各記憶素子の第一番号および第二番号を表す番号情報を含む番号データベースとをデータ格納部に格納し、
前記回路データに含まれる記憶素子を解析し、
解析した記憶素子の一覧を外部に出力し、出力した記憶素子の一覧に基づき前記観測憶記憶素子リストを外部から取得して前記データ格納部に格納し、
前記観測記憶素子リストおよび前記番号データベースに基づいて、前記観測記憶素子リストに記載された各記憶素子の配置配線後の第一番号が連続するよう配置配線を制約する制約情報を生成し、
前記制約情報および前記回路データに基づいて配置配線を行い、前記半導体デバイスに書き込む書込データを生成し、
前記書込データを前記半導体デバイスに書き込み、
前記半導体デバイス内の記憶素子の値に応じて前記半導体デバイスの動作を停止させるブレーク条件を外部から取得し、
前記半導体デバイスにクロック信号を供給して動作させ、
前記ブレーク条件に基づいて前記半導体デバイスに供給するクロック信号を停止させ、
前記半導体デバイスの読出部を制御して前記観測対象の各記憶素子の値を読み出す、
回路検証方法。
【請求項１０】
第一番号および第二番号の組合せによって識別される複数の記憶素子を有し、前記第一番号を含む読出制御情報が入力されると、入力された第一番号から連続する第一番号に対応する各記憶素子の値を出力する半導体デバイスに検証対象の回路を書き込むための書込データを生成する回路検証用書込データ生成装置に、
前記回路がハードウェア記述言語によって記述された回路データと、前記回路データに含まれる記憶素子のうち観測対象となる１つ以上の記憶素子が記載された観測記憶素子リストと、前記半導体デバイス内の各記憶素子の第一番号および第二番号を表す番号情報を含む番号データベースとをデータ格納部に格納させるデータ格納ステップと、
前記観測記憶素子リストおよび前記番号データベースに基づいて、前記観測記憶素子リストに記載された各記憶素子の配置配線後の第一番号が連続するよう配置配線を制約する制約情報を生成する制約情報生成ステップと、
前記制約情報および前記回路データに基づいて配置配線を行い、前記半導体デバイスに書き込む書込データを生成する配置配線ステップと、
を実行させる回路検証用書込データ生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、回路を検証する回路検証装置および方法、ならびに、検証対象の回路を半導体デバイスに書き込むための書込データを生成する回路検証用書込データ生成装置および方法に関する。
【背景技術】
【０００２】
半導体技術の進歩により、半導体デバイス（論理ＬＳＩ（Large Scale Integrated Circuit））の集積度は年々向上し、大規模システムを１チップに集積することが可能になってきている。しかしながら、半導体デバイスの製造コストは、極めて高価であるとともに、その製造には多くの時間を必要とするため、製造前に十分な検証を行うことが重要である。
【０００３】
半導体デバイスに実装する回路の検証は、設計の様々なフェーズで行われる。設計プロセスは、初期設計における抽象的なレベルから、最終段階における詳細な製造レベルまで多くの段階を踏む。各設計段階では、レベルに応じた論理情報が取り扱われる。例えば初期設計段階では入出力関係程度を確定する抽象レベルの論理情報、機能設計段階では論理各部の機能を確定する機能レベルの論理情報、そして、最終的な詳細設計段階では論理構造を確定する構造レベルの論理情報が取り扱われる。一般に使用される各種ハードウェア記述言語（ＳｙｓｔｅｍＣ, ＳｙｓｔｅｍＶｅｒｉｌｏｇ，Ｖｅｒｉｌｏｇ−ＨＤＬ、ＶＨＤＬ等）により、上述の種々の設計段階の論理情報を表現することが可能である。
【０００４】
このような半導体デバイスや複数の半導体デバイスを使用したシステムに実装する回路を各段階において検証する回路検証装置には、ソフトウェアシミュレータによるもの、ハードウェアエミュレータによるもの、および実際の半導体デバイスを利用したものがある。
【０００５】
ソフトウェアシミュレータによる回路検証装置は、ハードウェア記述言語で記述された論理情報をコンピュータプログラムとして実行するため、種々の設計段階において使用可能である。さらに、ソフトウェアシミュレータによる回路検証装置は、回路の動作をコンピュータプログラムとして実行しているため、ハードウェア記述言語におけるすべての変数の値等を容易に観測できるという利点を持っている。
【０００６】
一方、実際の半導体デバイスやハードウェアエミュレータによる回路検証装置は、ハードウェアを用いることによりソフトウェアシミュレータよりも論理演算を高速に実行することが可能である。ハードウェアエミュレータには、例えばＦＰＧＡ（Field Programmable Gate Array）やＦＰＩＤ（Field Programmable Interconnect Device）などの、検証対象の回路を書き換え可能な半導体デバイスが用いられる。
【０００７】
しかしながら、実際の半導体デバイスやハードウェアエミュレータによる回路検証装置では、コストやハードウェア的な制約等からすべての信号を観測することが困難であり、回路をデバッグすることが困難であるという問題点がある。
【０００８】
この問題点を解決する回路検証装置として、ＦＰＧＡが有するリードバックという機能を、ＪＴＡＧ（Joint Test Action Group、ＩＥＥＥ１１４９．１）を通じて制御することで、特別なハードウェアのサポートなしにＦＰＧＡに実装された任意の記憶素子の値を読み出すものがある（例えば、特許文献１の段落００５５、特許文献２の段落００８５参照）。このような回路検証装置は、ＦＰＧＡベースの回路検証装置における上述の観測性の問題を緩和している。
【０００９】
ここで、このような回路検証装置で利用されるＦＰＧＡについて、非特許文献１に記載されたものを一例として説明する。このＦＰＧＡは、第一番号および第二番号の組合せによって一意に識別可能な複数の記憶素子を含む。このＦＰＧＡにおいて、第一番号は、非特許文献１のチャプター８、図８−８に示された、Ｌｏｇｉｃ  Ｌｏｃａｔｉｏｎ  ＦｉｌｅにおけるＦｒａｍｅ  Ａｄｄｒｅｓｓに該当する。また、第二番号は、このＬｏｇｉｃ  Ｌｏｃａｔｉｏｎ  ＦｉｌｅにおけるＦｒａｍｅ  Ｏｆｆｓｅｔに該当する。
【００１０】
なお、これらの第一番号および第二番号の組合せによって識別される記憶素子はフリップフロップ、ラッチ、メモリまたはレジスタ等によって構成されている。
【００１１】
また、このＦＰＧＡは、その第一番号を含むＦＰＧＡの読出制御情報（非特許文献１のＣｈａｐｔｅｒ８，Ｔａｂｌｅ８−５を参照）にしたがって制御されることで、第一番号に対応する全ての記憶素子の値をＦＰＧＡの外部に出力する。具体的には、このＦＰＧＡから第一番号を利用して記憶素子の値を読み出す動作は、ステップ１：デバイス停止命令(ＪＳＨＵＴＤＯＷＮコマンド)でＦＰＧＡの機能を停止させ、ステップ２：読み出す第一番号を指定し、ステップ３：何フレーム読み出すかを指定し、ステップ４：読出命令で第一番号に対応する記憶素子の値を読み出し、最後に、ステップ５：デバイス開始命令（ＪＳＴＡＲＴコマンド）で一度停止させたＦＰＧＡの機能を再開する流れとなる。
【００１２】
ここで、１フレームは、１つの第一番号に対応する全ての記憶素子の値によって構成される。また、上述の読出制御情報に従ってＦＰＧＡ内部の記憶素子を読み出す動作をリードバック動作という。
【００１３】
例えば、各記憶素子に対して図２のような第一番号および第二番号が割り当てられている場合、このＦＰＧＡは、第一番号０ｘ２を含む読出制御情報に基づいて制御されると、位置Ｘ１Ｙ２、Ｘ１Ｙ３，Ｘ２Ｙ０に配置された記憶素子の値を出力する。ただし、ＸｎＹｍは、ＦＰＧＡにおけるＸ座標がｎ、Ｙ座標がｍを表す。
【００１４】
また、このＦＰＧＡでは、１回のリードバック動作によって連続する第一番号の記憶素子の値を読み出すことができる。例えば、読み出し対象の２つの記憶素子の第一番号が１つは３で、もう１つは４といったように連続している場合、リードバック動作のステップ３においてフレーム数を２とすることにより、これらの２つの記憶素子の値は一回の一連動作で読み出される。
【先行技術文献】
【特許文献】
【００１５】
【特許文献１】特開２００５−１７４３４９号公報
【特許文献２】特願２００６−５５３０６３号公報
【非特許文献】
【００１６】
【非特許文献１】ザイリンクス株式会社、Ｖｉｒｔｅｘ−４、コンフィグレーションガイド
【発明の概要】
【発明が解決しようとする課題】
【００１７】
しかしながら、特許文献１や特許文献２に記載の回路検証装置は、観測対象の記憶素子の第一番号が非連続（例えば、１つは３で、もう１つは５）であれば、リードバック動作を複数回実行して読み出す必要があり、読出動作の効率性に課題があった。
【００１８】
本発明は、上述の課題を解決するためになされたもので、検証対象の回路が実装された半導体デバイスから観測対象の記憶素子の値をより効率よく読み出すことができる回路検証装置および回路検証用書込データ生成装置を提供することを目的とする。
【課題を解決するための手段】
【００１９】
本発明の回路検証用書込データ生成装置は、第一番号および第二番号の組合せによって識別される複数の記憶素子を有し、前記第一番号を含む読出制御情報が入力されると、入力された第一番号から連続する第一番号に対応する各記憶素子の値を出力する半導体デバイスに検証対象の回路を書き込むための書込データを生成する回路検証用書込データ生成装置であって、前記回路がハードウェア記述言語によって記述された回路データと、前記回路データに含まれる記憶素子のうち観測対象となる１つ以上の記憶素子が記載された観測記憶素子リストと、前記半導体デバイス内の各記憶素子の第一番号および第二番号を表す番号情報を含む番号データベースとを格納したデータ格納部と、前記観測記憶素子リストおよび前記番号データベースに基づいて、前記観測記憶素子リストに記載された各記憶素子の配置配線後の第一番号が連続するよう配置配線を制約する制約情報を生成する制約情報生成部と、前記制約情報および前記回路データに基づいて配置配線を行い、前記半導体デバイスに書き込む書込データを生成する配置配線部と、を備えている。
【００２０】
また、本発明の回路検証用書込データ生成プログラムは、第一番号および第二番号の組合せによって識別される複数の記憶素子を有し、前記第一番号を含む読出制御情報が入力されると、入力された第一番号から連続する第一番号に対応する各記憶素子の値を出力する半導体デバイスに検証対象の回路を書き込むための書込データを生成する回路検証用書込データ生成装置に、前記回路がハードウェア記述言語によって記述された回路データと、前記回路データに含まれる記憶素子のうち観測対象となる１つ以上の記憶素子が記載された観測記憶素子リストと、前記半導体デバイス内の各記憶素子の第一番号および第二番号を表す番号情報を含む番号データベースとをデータ格納部に格納させるデータ格納ステップと、前記観測記憶素子リストおよび前記番号データベースに基づいて、前記観測記憶素子リストに記載された各記憶素子の配置配線後の第一番号が連続するよう配置配線を制約する制約情報を生成する制約情報生成ステップと、前記制約情報および前記回路データに基づいて配置配線を行い、前記半導体デバイスに書き込む書込データを生成する配置配線ステップと、を実行させる。
【００２１】
また、本発明の回路検証装置は、第一番号および第二番号の組合せによって識別される複数の記憶素子と、前記第一番号を含む読出制御情報が入力されると、入力された第一番号から連続する第一番号に対応する各記憶素子の値を読み出す読出部と、を有する半導体デバイスを用いて回路を検証する回路検証装置であって、前記回路がハードウェア記述言語によって記述された回路データと、前記半導体デバイス内の各記憶素子の第一番号および第二番号を表す番号情報を含む番号データベースとを格納したデータ格納部と、前記回路データに含まれる記憶素子を解析する回路データ解析部と、前記回路データ解析部によって解析された記憶素子の一覧を外部に出力し、出力した記憶素子の一覧に基づき前記観測憶記憶素子リストを外部から取得して前記データ格納部に格納させる観測記憶素子リスト取得部と、前記観測記憶素子リストおよび前記番号データベースに基づいて、前記観測記憶素子リストに記載された各記憶素子の配置配線後の第一番号が連続するよう配置配線を制約する制約情報を生成する制約情報生成部と、前記制約情報および前記回路データに基づいて配置配線を行い、前記半導体デバイスに書き込む書込データを生成する配置配線部と、前記書込データを前記半導体デバイスに書き込むプログラム部と、前記半導体デバイス内の記憶素子の値に応じて前記半導体デバイスの動作を停止させるブレーク条件を外部から取得するブレーク条件取得部と、前記ブレーク条件に基づいて前記半導体デバイスに供給するクロック信号を制御するクロック制御部と、前記半導体デバイスの読出部を制御して前記観測対象の各記憶素子の値の読み出しを行う読出制御部と、を備えている。
【００２２】
また、本発明の回路検証方法は、第一番号および第二番号の組合せによって識別される複数の記憶素子と、前記第一番号を含む読出制御情報が入力されると、入力された第一番号から連続する第一番号に対応する各記憶素子の値を読み出す読出部と、を有する半導体デバイスを用いて回路を検証する回路検証装置が、前記回路がハードウェア記述言語によって記述された回路データと、前記半導体デバイス内の各記憶素子の第一番号および第二番号を表す番号情報を含む番号データベースとをデータ格納部に格納し、前記回路データに含まれる記憶素子を解析し、解析した記憶素子の一覧を外部に出力し、出力した記憶素子の一覧に基づき前記観測憶記憶素子リストを外部から取得して前記データ格納部に格納し、前記観測記憶素子リストおよび前記番号データベースに基づいて、前記観測記憶素子リストに記載された各記憶素子の配置配線後の第一番号が連続するよう配置配線を制約する制約情報を生成し、前記制約情報および前記回路データに基づいて配置配線を行い、前記半導体デバイスに書き込む書込データを生成し、前記書込データを前記半導体デバイスに書き込み、前記半導体デバイス内の記憶素子の値に応じて前記半導体デバイスの動作を停止させるブレーク条件を外部から取得し、前記半導体デバイスにクロック信号を供給して動作させ、前記ブレーク条件に基づいて前記半導体デバイスに供給するクロック信号を停止させ、前記半導体デバイスの読出部を制御して前記観測対象の各記憶素子の値を読み出す。
【発明の効果】
【００２３】
検証対象の回路が実装された半導体デバイスから観測対象の記憶素子の値をより効率よく読み出すことのできる回路検証装置および回路検証用書込データ生成装置を提供することができる。
【図面の簡単な説明】
【００２４】
【図１】本発明の第１の実施の形態としての回路検証用書込データ生成装置の構成を示すブロック図である。
【図２】本発明の第１の実施の形態における番号データベースの一例を示す図である。
【図３】本発明の第１の実施の形態における制約情報の一例を示す図である。
【図４】本発明の第１の実施の形態としての回路検証用書込データ生成装置の動作を説明するフローチャートである。
【図５】本発明の第２の実施の形態としての回路検証装置の構成を示すブロック図である。
【図６】本発明の第２の実施の形態における半導体デバイスが有する読出ユニットの構成の一例を示す図である。
【図７】本発明の第２の実施の形態としての回路検証装置の動作を説明するフローチャートである。
【図８】本発明の第３の実施の形態としての回路検証用書込データ生成装置の構成を示すブロック図である。
【図９】本発明の第３の実施の形態における半導体デバイスが有する記憶素子の第一番号の並び順の一例を示す図である。
【図１０】本発明の第４の実施の形態としての回路検証用書込データ生成装置の構成を示すブロック図である。
【図１１】本発明の第４の実施の形態としての回路検証用書込データ生成装置が、観測対象の記憶素子を、組合せ回路のみで結合されたグループに分ける動作を説明するフローチャートである。
【図１２】本発明の第４の実施の形態としての回路検証用書込データ生成装置が、組合せ回路のみで結合されたグループを組み合わせて分割リストを生成する動作を説明するフローチャートである。
【図１３】本発明の第４の実施の形態において組合せ回路のみで結合された観測対象の記憶素子のグループを説明する図である。
【図１４】本発明の第４の実施の形態としての回路検証用書込データ生成装置が、図１２に示したフローチャートにしたがって動作する例を説明する図である。
【図１５】本発明の第５の実施の形態としての回路検証用書込データ生成装置の構成を示すブロック図である。
【図１６】本発明の第６の実施の形態としての回路検証用書込データ生成装置の構成を示すブロック図である。
【発明を実施するための形態】
【００２５】
（第１の実施の形態）
以下、本発明の第１の実施の形態について、図面を参照して詳細に説明する。
【００２６】
本発明の第１の実施の形態としての回路検証用書込データ生成装置１０の構成を図１に示す。図１において、回路検証用書込データ生成装置１０は、半導体デバイス５０４に書き込むための本発明の書込データとしてのコンフィグレーションデータを生成する装置である。また、回路検証用書込データ生成装置１０は、格納部１１０、制約情報生成部１０３、および配置配線部１０５を備えている。
【００２７】
ここで、回路検証用書込データ生成装置１０は、記憶装置に格納されたプログラムモジュールをＣＰＵ（Central Processing Unit）によって実行する汎用的なコンピュータ装置によって構成される。また、データ格納部１１０は、コンピュータ装置の記憶装置によって構成され、制約情報生成部１０３および配置配線部１０５は、コンピュータ装置の記憶装置にプログラムモジュールとして格納されＣＰＵによって実行される。なお、回路検証用書込データ生成装置１０を構成する各部は、各機能を有する個別の装置によって構成されていてもよい。
【００２８】
データ格納部１１０は、回路データ１００、番号データベース１０１および観測記憶素子リスト１０２を格納している。
【００２９】
回路データ１００は、検証対象の回路を表すデータであり、後述の配置配線部１０５に入力可能なデータである。
【００３０】
また、回路データ１００は、ハードウェア記述言語により記述されている。例えば、回路データ１００は、Ｖｅｒｉｌｏｇ−ＨＤＬやＶＨＤＬにより記述されていてもよく、ＳｙｓｔｅｍＣなどのより高位な記述言語により記述されていてもよい。
【００３１】
番号データベース１０１は、半導体デバイス５０４内部にある各記憶素子をそれぞれ識別する第一番号および第二番号を表す番号情報を格納している。
【００３２】
ここで、番号データベース１０１の一例を図２に示す。図２において、番号データベース１０１は、記憶素子の位置を表す情報に第一番号および第二番号を表す番号情報を対応付けて格納している。なお、図２において、記憶素子の位置を表す情報としてのＸｉＹｊ（ｉ，ｊは０以上の整数）は、半導体デバイス５０４内におけるＸ座標がｉおよびＹ座標がｊであることを表している。
【００３３】
また、番号データベース１０１は、これらの番号情報を第一番号に基づく順序で格納している。図２では、番号データベース１０１は、上から順に、まず第一番号０ｘ０を有する記憶素子の番号情報を３つ連続して並べ、続いて、この第一番号に連続する第一番号０ｘ１を有する記憶素子の番号情報を３つ連続して並べ、以降同様に第一番号を連続させて番号情報を格納している。
【００３４】
観測記憶素子リスト１０２には、回路データ１００に記述された記憶素子のうち、半導体デバイス５０４を動作させたときに観測対象となる各記憶素子が記載されている。
【００３５】
例えば、仮に回路データ１００に１０個のインスタンス"ＩＮＳＴ０"から"ＩＮＳＴ９"が記述され、各インスタンスに"ＦＦ０"から"ＦＦ９"の１０個の記憶素子が記述されているとする。この場合、観測対象となる記憶素子が各インスタンスの"ＦＦ２"であれば、観測記憶素子リスト１０２には、"ＩＮＳＴ０／ＦＦ２"、"ＩＮＳＴ１／ＦＦ２"…"ＩＮＳＴ９／ＦＦ２"の１０個の記憶素子が記載される。
【００３６】
制約情報生成部１０３は、観測記憶素子リスト１０２に記載された記憶素子の配置配線後の第一番号が連続するよう配置配線を制約する制約情報１０４を生成する。すなわち、制約情報生成部１０３は、観測記憶素子リスト１０２に記載された記憶素子に、半導体デバイス５０４内の記憶素子が第一番号に基づく順序でマッピングされるよう制約情報１０４を生成する。
【００３７】
具体的には、制約情報生成部１０３は、番号データベース１０１に第一番号に基づく順序で格納された番号情報を順次選択し、選択した番号情報が表す記憶素子が観測対象の各記憶素子に順次マッピングされるように制約情報１０４を生成する。
【００３８】
つまり、制約情報生成部１０３は、観測対象の記憶素子の個数が同一の第一番号を有する記憶素子より少ない場合、観測対象の各記憶素子に同一の第一番号を有する記憶素子がそれぞれマッピングされるよう制約情報１０４を生成する。また、観測対象の記憶素子の個数が同一の第一番号を有する記憶素子より多い場合、制約情報生成部１０３は、同一の第一番号の記憶素子がマッピングできなかった観測対象の各記憶素子に、１つ大きい値の第一番号の記憶素子がそれぞれマッピングされるよう制約情報１０４を生成する。さらに、この１つ大きい値の第一番号の記憶素子がマッピングできなかった観測対象の記憶素子があれば、制約情報生成部１０３は、これらに２つ大きい第一番号の記憶素子がマッピングされるよう制約情報１０４を生成する。このように、制約情報生成部１０３は、観測対象の記憶素子の個数が多い場合には、同一または連続する第一番号の記憶素子を観測対象の各記憶素子にマッピングしていくよう制約情報１０４を生成する。
【００３９】
制約情報１０４の一例を図３に示す。この制約情報１０４は、後述の配置配線部１０５がザイリンクス社のＩＳＥ  Ｆｏｕｎｄａｔｉｏｎというツールによって構成されている場合の記述例である。
【００４０】
図３において、「ＩＮＳＴ  "ＩＮＳＴ０／ＦＦ２"  ＬＯＣ＝ＳＬＩＣＥ＿Ｘ０Ｙ０；」という記述は、観測対象の記憶素子"ＩＮＳＴ０／ＦＦ２に対して、Ｘ０Ｙ０の位置にある記憶素子がマッピングされるよう制約することを表している。このように、図３の制約情報１０４は、前述の１０個の観測対象の記憶素子（"ＩＮＳＴ０／ＦＦ２"、"ＩＮＳＴ１／ＦＦ２"…"ＩＮＳＴ９／ＦＦ２"）に対して、図２の番号データベース１０１の上から順番に記憶素子がそれぞれマッピングされるよう制約することを表している。
【００４１】
配置配線部１０５は、回路データ１００と制約情報１０４とを入力として、半導体デバイス５０４用のコンフィグレーションデータ１０６を生成する。例えば、半導体デバイス５０４がザイリンクス社のＦＰＧＡである場合、配置配線部１０５は、前述のＩＳＥ  Ｆｏｕｎｄａｔｉｏｎによって構成されていてもよい。
【００４２】
なお、配置配線部１０５を構成するツールに入力可能なデータがネットリスト等の特定の形式（例えばＥＤＩＦ形式；ＥＤＩＦ＝Ｅｌｅｃｔｒｏｎｉｃ  Ｄｅｓｉｇｎ  Ｉｎｔｅｒｃｈａｎｇｅ  Ｆｏｒｍａｔ）のみである場合、配置配線部１０５は、ＳｙｓｔｅｍＣからネットリストに変換する高位合成ツールやＶｅｒｉｌｏｇ−ＨＤＬやＶＨＤＬからネットリストに変換する合成ツールなどをさらに含んでいてもよい。
【００４３】
半導体デバイス５０４は、検証対象となる回路データ１００を書き込み可能な半導体デバイスである。半導体デバイス５０４には、回路データ１００が配置配線されたコンフィグレーションデータ１０６に基づく回路が実装される。
【００４４】
また、半導体デバイス５０４は、第一番号および第二番号の組合せによってそれぞれ識別される複数の記憶素子を有している。これらの記憶素子は、レジスタやラッチ、メモリなどによって構成される。
【００４５】
また、半導体デバイス５０４は、第一番号を含む読出制御情報５０１に従って制御されることにより、指定された第一番号から連続する第一番号に対応する各記憶素子の値を出力する。
【００４６】
以上のように構成された回路検証用書込データ生成装置１０の動作について図４を参照して説明する。
【００４７】
まず、データ格納部１１０が、番号データベース１０１を格納する。このとき、データ格納部１１０は、番号データベース１０１が半導体デバイス５０４のベンダーから提供されていればそれを利用してもよい。一方、データ格納部１１０は、ベンダーから提供された番号データベース１０１がない場合は番号データベース１０１を作成して格納する（ステップＳ４０１）。
【００４８】
例えば、半導体デバイス５０４としてザイリンクス社のＦＰＧＡを用いる場合、各記憶素子を識別するための番号情報は前述のＬｏｇｉｃ  Ｌｏｃａｔｉｏｎ  Ｆｉｌｅに格納されている。Ｌｏｇｉｃ  Ｌｏｃａｔｉｏｎ  Ｆｉｌｅには半導体デバイス５０４で使用されている記憶素子に関する情報のみ出力されているため、データ格納部１１０は、すべての記憶素子を利用する回路データと該ファイルを用いて番号データベース１０１を構築すればよい。
【００４９】
次に、データ格納部１１０は、検証対象となる回路データ１００を格納する（ステップＳ４０２）。この回路データ１００は、どのようなハードウェア記述言語で記述されていてもよい。
【００５０】
次に、データ格納部１１０は、観測対象となる記憶素子が記載された観測記憶素子リスト１０２を格納する（ステップＳ４０３）。一般的には、観測記憶素子リスト１０２は、回路データ１００の検証やデバッグを行う使用者によってあらかじめ準備される。
【００５１】
次に、制約情報生成部１０３が、番号データベース１０１と観測記憶素子リスト１０２とに基づいて、制約情報１０４を生成する（ステップＳ４０４）。
【００５２】
次に、配置配線部１０５が、回路データ１００と制約情報１０４とに基づいて配置配線を行い、半導体デバイス５０４用のコンフィグレーションデータ１０６を生成する（ステップＳ４０５）。
【００５３】
以上で、回路検証用書込データ生成装置１０は、半導体デバイス５０４用のコンフィグレーションデータ１０６を生成する動作を終了する。
【００５４】
次に、本発明の第１の実施の形態の効果について説明する。
【００５５】
本発明の第１の実施の形態としての回路検証用書込データ生成装置は、半導体デバイスに検証対象の回路を書き込むための書込データとして、検証時に観測対象の記憶素子の値をより効率よく読み出すことのできる書込データを生成することができる。
【００５６】
その理由は、回路検証用書込データ生成装置が、観測対象の各記憶素子が連続した第一番号を持つように配置配線を行ってコンフィグレーションデータを生成するからである。これにより、このコンフィグレーションデータが書き込まれた半導体デバイスから観測対象の各記憶素子の値を読み出す時には、連続する第一番号を有する観測対象の各記憶素子の値を同時に読み出すことができ、読出動作の回数を少なくすることができるからである。
【００５７】
さらに、本発明の第１の実施の形態としての回路検証用書込データ生成装置は、読出動作の回数を少なくするコンフィグレーションデータを生成することにより、検証時の半導体デバイスの動作の停止および開始の回数を減らすことができる。
【００５８】
（第２の実施の形態）
次に、本発明の第２の実施の形態について、図面を参照して詳細に説明する。
【００５９】
本発明の第２の実施の形態としての回路検証装置２は、本発明の第１の実施の形態としての回路検証用書込データ生成装置１０を全体制御部２０として利用して回路を検証する装置である。
【００６０】
回路検証装置２の構成を図５に示す。なお、図５において、本発明の第１の実施の形態と同一の構成には同一の符号を付して詳細な説明を省略する。
【００６１】
回路検証装置２は、全体制御部２０と、プログラムユニット５０９と、読出制御ユニット５０６と、クロック制御ユニット５０７とを含み、半導体デバイス５０４に接続されている。また、全体制御部２０は、回路検証用書込データ生成装置１０と同一の構成に加えて、ユーザインタフェース（ユーザＩ／Ｆ）部５００と、中央制御部５０２と、回路解析部５０８とを有している。
【００６２】
ここで、全体制御部２０は、本発明の第１の実施の形態としての回路検証用書込データ生成装置１０と同様に汎用的なコンピュータ装置によって構成される。また、中央制御部５０２および回路解析部５０８は、全体制御部２０を構成するコンピュータ装置の記憶装置にプログラムモジュールとして格納され、ＣＰＵによって実行される。また、ユーザＩ／Ｆ部５００は、全体制御部２０を構成するコンピュータ装置の記憶装置にプログラムモジュールとして格納されＣＰＵによって実行される回路および入出力装置によって構成される。
【００６３】
また、プログラムユニット５０９と、読出制御ユニット５０６と、クロック制御ユニット５０７とは、集積回路によって構成される。なお、クロック制御ユニット５０７は、全体制御部２０を構成するコンピュータ装置によって構成されてもよい。
【００６４】
また、プログラムユニット５０９および中央制御部５０２は、本発明のプログラム部の一実施形態を構成する。また、読出制御ユニット５０６および中央制御部５０２は、本発明の読出制御部の一実施形態を構成する。また、クロック制御ユニット５０７および中央制御部５０２は、本発明のクロック制御部の一実施形態を構成する。
【００６５】
ユーザＩ／Ｆ部５００は、キーボードやマウスなどの入力装置と、ディスプレイなどの表示装置とを有している。ここで、ユーザＩ／Ｆ部５００は、本発明の観測記憶素子リスト取得部およびブレーク条件取得部の一実施形態を構成している。
【００６６】
ユーザＩ／Ｆ部５００は、３つの機能を有している。１つ目は、後述の回路解析部５０８によって解析された回路データ１００内部にあるすべての記憶素子に基づいて観測記憶素子リスト１０２を取得してデータ格納部１１０に格納することである。ユーザＩ／Ｆ部５００は、回路データ１００内の記憶素子の一覧を表示装置に表示し、そのうち観測対象となる記憶素子を使用者に入力装置から選択させ、その結果を観測記憶素子リスト１０２としてデータ格納部１１０に格納する。
【００６７】
ユーザＩ／Ｆ部５００が備える２つ目の機能は、読出制御ユニット５０６が半導体デバイス５０４から読み出した記憶素子の値を表示することである。このとき、ユーザＩ／Ｆ部５００は、記憶素子の値を単純に０か１かで表示するのではなく、バス信号をまとめて表示したり、今まで読み出した値と組み合わせて波形図などとして表示してもよい。これにより、よりよい回路検証装置を提供することができる。
【００６８】
ユーザＩ／Ｆ部５００が備える３つ目の機能は、半導体デバイス５０４の動作を停止させるためのブレーク条件やクロックの開始指示を入力装置を介して使用者から取得することである。
【００６９】
回路解析部５０８は、Ｖｅｒｉｌｏｇ−ＨＤＬやＶＨＤＬ、ＳｙｓｔｅｍＣなどで記載された回路データ１００を入力とし、回路データ１００内に記載された全ての記憶素子を解析する。そして、回路解析部５０８は、解析した記憶素子を表す情報（一例として記憶素子の名前や階層パス）を、ユーザＩ／Ｆ部５００に渡す。この記憶素子を表す情報は、観測記憶素子リスト１０２を作成するときに利用されたり、読出結果を表示するときに利用される。
【００７０】
プログラムユニット５０９は、中央制御部５０２の制御の基に、配置配線部１０５が出力した半導体デバイス５０４のコンフィグレーションデータ１０６を半導体デバイス５０４にプログラムする（書き込みを行う）。これにより、半導体デバイス５０４は、プログラムユニット５０９がプログラムしたコンフィグレーションデータ１０６に従って動作する。
【００７１】
なお、半導体デバイス５０４への書き込みは、半導体デバイス５０４のベンダーによって独自なため、プログラムユニット５０９は主に半導体デバイス５０４のメーカから提供されるのが一般的である。
【００７２】
半導体デバイス５０４は、本発明の第１の実施の形態において説明したように、書き込み可能な半導体デバイスである。
【００７３】
ここで、半導体デバイス５０４の構成について、ザイリンクス社のＦＰＧＡを一例に説明するが、本発明における半導体デバイスはこれに限らず、第一番号と第二番号の組合せによって識別可能な複数の記憶素子を有し、第一番号を含む読出制御情報５０１に従って、第一番号が連続する記憶素子の値を出力する半導体デバイスであれば良い。
【００７４】
半導体デバイス５０４は、内部の記憶素子の値を読み出す読出ユニット５０５を有している。この読出ユニット５０５は、後述の読出制御ユニット５０６から供給される読出制御情報５０１に従って半導体デバイス５０４を制御することで、読出制御情報５０１に含まれる第一番号から連続する第一番号の各記憶素子の値を取得し、外部に供給する。
【００７５】
読出ユニット５０５の構成の一例を図６に示す。半導体デバイス５０４内部の各記憶素子６００．１．１−６００．Ｍ．Ｎに対してセレクタ６０１と６０１．１−６０１．Ｍが接続される。このときＮは１フレームに含まれる記憶素子のビット数である。この例の場合、読出ユニット５０５は、読出制御ユニット５０６から第一番号およびフレーム数を含む読出制御情報５０１を表すビット列を受け取り、そのビット列に含まれる第一番号からフレーム数分の第一番号までに対応する記憶素子の値を出力端子に出力するように動作する。
【００７６】
例えば、第一番号Ｘに関する記憶素子６００．Ｘ．１−６００．Ｘ．Ｎの値を読み出す場合には、読出ユニット５０５は、始めにインクリメンタＡ６０２の値を１にして、セレクタ６０１．Ｓ（Ｓは１からＭまでの値）の出力に記憶素子６００．Ｓ．１の値を出力するように制御する。次に読出ユニット５０５は、インクリメンタＢ６０３の値を与えられた第一番号Ｘにして、セレクタ６０１．Ｘの出力（記憶素子６００．Ｘ．１の値）が読出ユニット５０５に与えられるよう制御する。次に、読出ユニット５０５は、インクリメンタＡ６０２の値を２に増加して、記憶素子６００．Ｘ．２の値が読出ユニット５０５に与えられるように制御する。読出ユニット５０５は、インクリメンタＡ６０２の値をＮまで順次増加してこの動作を繰り返すことで１フレーム分の記憶素子６００．Ｘ．１−６００．Ｘ．Ｎの値を読出ユニット５０５に与えるよう半導体デバイス５０４を制御し、その結果を出力端子に出力する。そして、読出ユニット５０５は、インクリメンタＢ６０３の値を１増加させて、再度インクメンタＡ６０２を１からＮまで動作させることで、次のフレーム（Ｘ＋１）に関する記憶素子６００．（Ｘ＋１）．１−６００．（Ｘ＋１）．Ｎの値を出力する。読出ユニット５０５は、与えられたフレーム数分のフレームを読み出すまで上述の動作を繰り返す。
【００７７】
読出制御ユニット５０６は、中央制御部５０２の制御の基に、第一番号およびフレーム数を含む読出制御情報５０１に基づいて、半導体デバイス５０４内部の読出ユニット５０５を制御するユニットである。例えば、ザイリンクス社のＦＰＧＡの場合、読出制御ユニット５０６は、ＪＴＡＧ（ＩＥＥＥ  １１４９．１）およびＳｅｌｅｃｔＭＡＰ（登録商標）を使用して、半導体デバイス５０４のＪＴＡＧ端子やＳｅｌｅｃｔＭＡＰ端子を読出制御情報５０１に従って制御することにより、読出ユニット５０５を制御する。
【００７８】
クロック制御ユニット５０７は、中央制御部５０２の制御の基に、半導体デバイス５０４にクロック信号の供給を開始したり停止したりするユニットである。
【００７９】
また、クロック制御ユニット５０７は、半導体デバイス５０４の出力端子の値に基づいてクロックの供給を停止したりする機能（ブレーク条件の設定機能）や指定されたサイクル数分のクロックを供給する機能を有している。
【００８０】
これにより、クロック制御ユニット５０７は、１クロックサイクル単位で記憶素子の観測を制御したり、指定された時点で半導体デバイス５０４の動作を停止させたりすることができ、より良い回路検証装置を提供することができる。
【００８１】
また、クロック制御ユニット５０７は、半導体デバイス５０４内部にＣＰＵやＤＳＰ（Digital Signal Processor）などソフトウェアによって動作する回路が実装されている場合は、そのプログラムカウンタを利用してクロックの供給や停止を制御してもよい。また、クロック制御ユニット５０７は、メモリ内の特定のアドレスへの書き込みや読み込みを検出してクロックの供給や停止を制御してもよい。また、クロック制御ユニット５０７は、ブレークポイントに到達した回数を検出してクロックの供給や停止を制御してもよい。これにより、よりより回路検証装置を提供することができる。
【００８２】
ここで、クロック制御ユニット５０７に設定可能なブレーク条件（クロック供給を停止する条件）の一例を以下に示す。
１）ある信号の値が特定の値になった場合
２）ある信号の値が特定の値の範囲または範囲外になった場合
３）１）または２）が指定した回数発生した場合
４）内部の一つもしくは複数のＣＰＵやＤＳＰ等、ソフトウェアによって動作する装置においてブレークが発生した場合
５）または複数の信号に対して上記条件を組み合わせた場合
などが挙げられる。
【００８３】
クロック制御ユニット５０７は、これらのいずれか、もしくは、複数の条件に基づきクロックを停止可能であってもよい。これにより、より良い回路検証装置を提供することが可能となる。また、クロック制御ユニット５０７は、書き換え可能な半導体デバイス５０４内の様々な信号をブレーク条件として利用することにより、より細かい制御を行うことが可能となる。
【００８４】
以上のように構成された回路検証装置２の動作について、図７のフローチャートを参照して詳細に説明する。
【００８５】
まず、回路解析部５０８が、回路データ１００に記載された記憶素子の名前を取得し、ユーザＩ／Ｆ部５００に渡す（ステップＳ７０１）。
【００８６】
次に、ユーザＩ／Ｆ部５００が、ステップＳ７０１で取得した記憶素子の名前を表示装置を介して使用者に提示し、半導体デバイス５０４から読み出す観測対象の記憶素子の名前を入力装置を介して取得する（ステップＳ７０２）。そして、ユーザＩ／Ｆ部５００は、取得した情報に基づいて観測記憶素子リスト１０２を生成し、データ格納部１１０に格納する。
【００８７】
このとき、ユーザＩ／Ｆ部５００は、ステップＳ７０１で取得した記憶素子を回路の階層構造を利用してＧＵＩ（Graphical User Interface）を用いて表示することで、使用者の使い勝手を向上させることができる。なお、半導体デバイス５０４から読み出す観測対象の記憶素子の名前がすでに決定されていれば、このステップは省いても良い。
【００８８】
次に、制約情報生成部１０３が、番号データベース１０１と観測記憶素子リスト１０２とに基づいて制約情報１０４を生成する（ステップＳ７０３）。
【００８９】
次に、配置配線部１０５が、回路データ１００と制約情報１０４とに基づいて、半導体デバイス５０４用のコンフィグレーションデータ１０６を生成する（ステップＳ７０４）。
【００９０】
次に、プログラムユニット５０９が、ステップＳ７０４で作成したコンフィグレーションデータ１０６を半導体デバイス５０４に書き込む（ステップＳ７０５）。さらに、プログラムユニット５０９は、書き込みが終了したら回路を正常に動作させるためのリセット等をこのステップで行う。
【００９１】
次に、ユーザＩ／Ｆ部５００は、クロック制御ユニット５０７のブレーク条件を入力装置を介して取得する。このとき、半導体デバイス５０４のクロックは停止中である（ステップＳ７０６）。
【００９２】
次に、クロック制御ユニット５０７が、クロックを半導体デバイス５０４に供給する（ステップＳ７０７）。これにより、ステップＳ７０５で半導体デバイス５０４に実装された回路は、その動作を開始する。
【００９３】
次に、クロック制御ユニット５０７が半導体デバイス５０４に供給するクロックを停止する（ステップＳ７０８）。ここで、クロック制御ユニット５０７は、ユーザＩ／Ｆ部５００を介して強制的なクロック停止の指示を取得した場合や、ステップＳ７０６で設定されたブレーク条件が成立した場合などにクロックを停止する。
【００９４】
次に、読出制御ユニット５０６が、観測記憶素子リスト１０２に書かれているすべての記憶素子の値を、当該記憶素子の第一番号を含む読出制御情報５０１に基づく制御を行って取得する（ステップＳ７０９）。読出制御ユニット５０６は、取得した値をユーザＩ／Ｆ部５００に渡す。
【００９５】
そして、ユーザＩ／Ｆ部５００は、観測対象の記憶素子の名前とその値を表示装置に出力する。このとき、ユーザＩ／Ｆ部５００は、前回取得した記憶素子の値を利用して、波形図などを表示装置に出力してもよい。また、ユーザＩ／Ｆ部５００は、これらの情報を表示装置に表示する代わりに、ＶＣＤ（Ｖａｌｕｅ  Ｃｈａｎｇｅ  Ｄｕｍｐ，ＩＥＥＥ  １３６４）ファイル等のファイルとして出力してもよい。
【００９６】
次に、ユーザＩ／Ｆ部５００が、再び動作を開始するか、動作を終了するかを表す情報を入力装置を介して取得する（ステップＳ７１０）。ここで、使用者によって再び動作することが選択された場合、回路検証装置２は、再度ステップＳ７０６からの動作を実行し、そうでない場合は動作を終了する。
【００９７】
以上で、回路検証装置２は動作を終了する。
【００９８】
次に、本発明の第２の実施の形態の効果について説明する。
【００９９】
本発明の第２の実施の形態としての回路検証装置は、検証対象の回路が実装された半導体デバイスから観測対象の記憶素子の値をより効率よく読み出すことができる。
【０１００】
その理由は、観測対象の各記憶素子が連続する第一番号を持つように配置配線したコンフィグレーションデータを半導体デバイスに書き込むことにより、観測対象の記憶素子の値を読み出すのに必要な読出動作の回数を少なくすることができるからである。
【０１０１】
さらに、本発明の第２の実施の形態としての回路検証装置は、観測対象の各記憶素子の値を読み出すのに必要な読出動作の回数を少なくすることにより、検証時の半導体デバイスの動作の停止および開始の回数を減らすことができる。
【０１０２】
また、本発明の第２の実施の形態としての回路検証装置は、半導体デバイスから観測対象の記憶素子を効率よく読み出すための、デバッグしやすい環境を使用者に提供することができる。
【０１０３】
その理由は、ブレーク条件取得部としてのユーザＩ／Ｆ部を有することで、使用者が読出したいタイミングで観測対象の記憶素子の値を高速に読み出せるためである。
【０１０４】
また、本発明の第２の実施の形態としての回路検証装置は、半導体デバイスにおける記憶素子の観測性をより向上させることができる。
【０１０５】
その理由は、観測記憶素子リスト取得部としてのユーザＩ／Ｆ部を有することで、半導体デバイスに実装される回路データにおける全ての記憶素子を観測対象として選択可能にするためである。
【０１０６】
（第３の実施の形態）
次に、本発明の第３の実施の形態について、図面を参照して詳細に説明する。
【０１０７】
本発明の第３の実施の形態としての回路検証用書込データ生成装置３０は、図９のように第一番号が半導体デバイス内の物理的配置に従って順序良く配置されている場合に好適である。
【０１０８】
このような場合に本発明の第１の実施の形態を適用すると、観測対象の記憶素子が番号データベースに格納された順序に従って配置されるため、図９では左下から順に配置されることになる。したがって多くの記憶素子を観測する場合、観測対象の記憶素子が左側に偏ってしまい、左側の配線性に課題が生じる。また、これにより半導体デバイスの動作速度を低下させる場合も考えられる。
【０１０９】
本発明の第３の実施の形態は、このような場合にも、読出動作を効率化しながら半導体デバイスの配線性および動作速度を低下させない第１の実施の形態の変形例として説明される。
【０１１０】
まず、本発明の第３の実施の形態としての回路検証用書込データ生成装置３０の構成を図８に示す。
【０１１１】
本発明の第３の実施の形態としての回路検証用書込データ生成装置３０は、本発明の第１の実施の形態としての回路検証用書込データ生成装置１０と同一の構成のうち、制約情報生成部１０３に替えて制約情報生成部３０３を備え、番号データベース選択部８００をさらに備えている。なお、図８において、本発明の第１の実施の形態と同一の構成には同一の符号を付して詳細な説明を省略する。
【０１１２】
ここで、制約情報生成部３０３および番号データベース選択部８００は、回路検証用書込データ生成装置３０を構成するコンピュータの記憶装置にプログラムモジュールとして格納され、ＣＰＵによって実行される。
【０１１３】
番号データベース選択部８００は、あらかじめ定められた分割数８０２、観測記憶素子リスト１０２、および番号データベース１０１に基づいて、選択番号データベース８０１を生成する。
【０１１４】
具体的には、番号データベース選択部８００は、まず、半導体デバイス５０４に含まれる複数の記憶素子を、その物理的配置に基づき第一番号が並んでいる軸（図９の場合はＹ軸）で、所定の分割数８０２で略等分に分割する（図９は分割数８０２が３のときの分割線を示す）。
【０１１５】
そして、番号データベース選択部８００は、観測記憶素子リスト１０２にある記憶素子の個数を数え、これも分割数８０２で割り、その答えをＮとする。例えば、観測記憶素子リスト１０２にある記憶素子が３０個で、分割数８０２が３の場合はＮ＝１０（＝３０／３）となる。このとき、観測対象の記憶素子の個数を分割数８０２で割り切れない場合は商を切りあげるようにする。
【０１１６】
そして、番号データベース選択部８００は、番号データベース１０１を読み込み、各分割線の最初（図９の場合は０，３０，６０）からＮ個ずつの番号情報を取得し、選択した番号情報を選択番号データベース８０１に書き込む。すなわち、番号データベース選択部８００は、「Ｎ×分割数８０２」個分の番号情報を第一番号に基づく順序で選択番号データベース８０１に書き込む。その後、番号データベース選択部８００は、番号データベース１０１に残されたデータを、選択番号データベース８０１に続けて書き込んでも書き込まなくてもどちらでもよい。
【０１１７】
なお、番号データベース選択部８００は、各区画から厳密にＮ個ずつの番号情報を選択しなくてもよく、選択した番号情報の合計が、観測記憶素子リスト１０２にある記憶素子の個数以上となるようにすればよい。
【０１１８】
制約情報生成部３０３は、観測記憶素子リスト１０２に記載された各記憶素子に対して、選択番号データベース８０１に格納された番号情報の記憶素子がマッピングされるよう制約情報１０４を生成する。
【０１１９】
以上のように構成された回路検証用書込データ生成装置３０の動作は、本発明の第１の実施の形態と同様に図４を用いて説明されるが、本発明の第１の実施の形態とは、ステップＳ４０１およびＳ４０４における動作が異なる。
【０１２０】
ステップＳ４０１において、データ格納部１１０が番号データベース１０１を格納した後、番号データベース選択部８００が選択番号データベース８０１を生成する。
【０１２１】
ステップＳ４０４において、制約情報生成部３０３は、番号データベース１０１の代わりに選択番号データベース８０１に基づいて観測記憶素子リスト１０２に記載された記憶素子に関する制約情報１０４を生成する。
【０１２２】
以上で、回路検証用書込データ生成装置３０の動作の説明を終了する。
【０１２３】
次に、本発明の第３の実施の形態の効果について説明する。
【０１２４】
本発明の第３の実施の形態としての回路検証用書込データ生成装置は、記憶素子の第一番号が半導体デバイス内の物理的配置に従って順序良く配置されている場合に、観測対象の記憶素子の読出動作を効率化するのに伴って配線性が低下することを避けるコンフィグレーションデータを生成することができる。
【０１２５】
その理由は、あらかじめ定められた分割数で分割した番号データベースの各区画から同一または連続する第一番号の記憶素子の番号情報を選択した選択番号データベースを生成しておくためである。この選択番号データベースと観測記憶素子リストとから生成する制約情報により、例えば、３０個の観測対象の記憶素子は、第一番号が０から９の位置と、３０から３９の位置、６０から６９の位置に配置されるコンフィグレーションデータを生成することになる。
【０１２６】
これにより、本発明の第３の実施の形態としての回路検証用書込データ生成装置は、読出動作の効率化に伴う配線性の低下を避けられるため、読出動作を効率化しながら半導体デバイスの動作速度を向上させ、さらに配置配線にかかる時間も短縮することが可能になる。
【０１２７】
なお、本発明の第３の実施の形態において、分割数が大きすぎると読出動作の効率化に影響が出るため、読出動作を効率化しつつ配線性を低下させない適切な分割数があらかじめ設定される。
【０１２８】
（第４の実施の形態）
次に、本発明の第４の実施の形態について、図面を参照して詳細に説明する。
【０１２９】
本発明の第４の実施の形態は、３２ビットカウンタなどのように記憶素子が密に結合している部分が回路データに含まれる場合に好適である。
【０１３０】
このような場合に本発明の第３の実施の形態を適用すると、記憶素子が密に結合しているにも関わらず、これらを遠くに配置するようなコンフィグレーションデータを生成し半導体デバイスの動作速度を低下させる可能性も考えられる。
【０１３１】
本発明の第４の実施の形態は、このような場合にも読出動作を効率化しながら半導体デバイスの動作速度を低下させない第３の実施の形態の変形例として説明される。
【０１３２】
まず、本発明の第４の実施の形態としての回路検証用書込データ生成装置４０の構成を図１０に示す。なお、図１０において、本発明の第１の実施の形態と同一の構成には同一の符号を付して詳細な説明を省略する。
【０１３３】
回路検証用書込データ生成装置４０は、本発明の第１の実施の形態と同一の構成のうち、制約情報生成部１０３に替えて制約情報生成部４０３を備え、観測記憶素子リスト分割部１００１をさらに備えている。
【０１３４】
ここで、制約情報生成部４０３および観測記憶素子リスト分割部１００１は、回路検証用書込データ生成装置４０を構成するコンピュータの記憶装置にプログラムモジュールとして格納され、ＣＰＵによって実行される。
【０１３５】
観測記憶素子リスト分割部１００１は、回路データ１００と観測記憶素子リスト１０２と所定の分割数８０２とを入力とし、観測対象の記憶素子の部分リスト１００２を出力するものである。
【０１３６】
観測記憶素子リスト分割部１００１は、観測記憶素子リスト１０２に記載された記憶素子のうち密に結合しているものが１つの部分リスト１００２に含まれるよう、観測記憶素子リスト１０２を複数の部分リスト１００２に分割する。
【０１３７】
具体的には、観測記憶素子リスト分割部１００１は、密に結合している複数の記憶素子を１つのグループとして観測対象の記憶素子をグループ分けする。そして、観測記憶素子リスト分割部１００１は、含まれる記憶素子が多いグループから順に、各グループに含まれる記憶素子を、既に割り当てられた記憶素子が最も少ない部分リスト１００２に割り当てる。
【０１３８】
制約情報生成部４０３は、分割された各部分リスト１００２に対して、番号データベース選択部８００によって選択された各区画の番号情報が第一番号に基づく順序でそれぞれマッピングされるよう制約情報１０４を生成する。
【０１３９】
以上のように構成された回路検証用書込データ生成装置４０の動作は、本発明の第３の実施の形態と同様に図４を用いて説明されるが、本発明の第３の実施の形態とは、ステップＳ４０３およびステップＳ４０４における動作が異なる。
【０１４０】
ステップＳ４０３において、データ格納部１１０が観測記憶素子リスト１０２を格納した後、観測記憶素子リスト分割部１００１が、観測記憶素子リスト１０２を分割数８０２の部分リスト１００２に分割する。
【０１４１】
ステップＳ４０３において、観測記憶素子リスト分割部１００１が観測記憶素子リスト１０２を分割する動作について図１１〜図１２を用いて説明する。
【０１４２】
まず、観測記憶素子リスト分割部１００１が、観測記憶素子リスト１０２に記載された記憶素子のうちまだグループに割り当てられていないものがあるか否かを判断する（ステップＳ１１０１）。
【０１４３】
ここで、まだ割り当てられていない記憶素子があると判断した場合、観測記憶素子リスト分割部１００１は、新しいグループＡを生成する（ステップＳ１１０２）。
【０１４４】
次に、観測記憶素子リスト分割部１００１は、まだ割り当てられていない記憶素子の中からランダムに１つの記憶素子を選択し、グループＡを割り当てる（ステップＳ１１０３）。
【０１４５】
次に、観測記憶素子リスト分割部１００１は、まだグループが割り当てられていない記憶素子のうち、グループＡに含まれる記憶素子と組合せ回路のみで結合されたものがあるか否かを判断する（ステップＳ１１０４）。
【０１４６】
ここで、グループＡに含まれる記憶素子と組合回路のみで結合されたものがあると判断した場合、観測記憶素子リスト分割部１００１は、該当する記憶素子にグループＡを割り当てる（ステップＳ１１０５）。そして、観測記憶素子リスト分割部１００１は、ステップＳ１１０４を再度実行する。
【０１４７】
ステップＳ１１０４で、グループＡに含まれる記憶素子と組合回路のみで結合されたものがないと判断した場合、観測記憶素子リスト分割部１００１は、ステップＳ１１０１からの動作を再度実行する。
【０１４８】
ステップＳ１１０１において、まだグループが割り当てられていない記憶素子がないと判断した場合、観測記憶素子リスト分割部１００１は、グループ分けの動作を終了する。
【０１４９】
このようにしてグループ分けされた観測記憶素子の一例を図１３に示す。なお、図１３では、記憶素子をＦＦと表記している。図１３において、観測対象の記憶素子は組合せ回路を経て、同グループ内の観測対象の記憶素子に接続されている一方、別のグループへは組合せ回路のみでは接続されていない（ただし、非観測対象の記憶素子を介して接続されている可能性はある）。
【０１５０】
次に、観測記憶素子リスト分割部１００１は、記憶素子のグループができたら、これらのグループを組合せて分割数８０２の部分リスト１００２を生成する。例えば、図１１の動作により、記憶素子のグループとして｛５，３，７，４，６，３｝といった６つのグループが生成されたとする。ここで、波括弧内の数字（例えば「５」）は記憶素子をその数だけ（例えば５つ）含むグループを表しているものとする。
【０１５１】
観測記憶素子リスト分割部１００１は、これらのグループを組み合わせて分割数３の部分リストにする時は｛１０（＝７＋３）、９（＝６＋３）、９（＝５＋４）｝といったように、含まれる記憶素子の個数の和が略等しくなるように３つの分割リストに分ける。
【０１５２】
もっとも、この問題はＮＰ困難な「部分和問題」と似ているため、正確に解くためには現在のところ全ての組合せにおいて総当たりする必要がある。本実施の形態において、観測記憶素子リスト分割部１００１は、厳密に各部分リスト１００２に含まれる記憶素子の個数の和を同一にする必要性はないため、図１２に示すような近似アルゴリズムを使用して分割数８０２の部分リスト１００２を生成してもよい。
【０１５３】
図１２では、まず、観測記憶素子リスト分割部１００１が、部分リストＡ１〜Ａｎ（ｎは分割数）の空リストを生成する（ステップＳ１２０１）。
【０１５４】
次に、観測記憶素子リスト分割部１００１が、図１１の動作によって生成された密に結合する記憶素子の各グループを、含まれる記憶素子の個数の多い順に並べ替える（ステップＳ１２０２）。
【０１５５】
次に、観測記憶素子リスト分割部１００１は、並べ替えた順に各グループに含まれる記憶素子を、部分リストＡ１〜Ａｎのうち既に割り当てられた記憶素子の個数が最も少ない部分リストに割り当てる（ステップＳ１２０３）。
【０１５６】
以上で、観測記憶素子リスト分割部１００１は、部分リスト１００２を生成する動作を終了する。
【０１５７】
例えば、図１１の動作により、密に結合する記憶素子のグループが｛５，３，７，４，６，３｝のように生成されたときに、観測記憶素子リスト分割部１００１がこれらを組み合わせて部分リスト１００２を生成する動作例について図１４を用いて説明する。なお、分割数は３とする。
【０１５８】
ここでは、まず、（ａ）に示すように、観測記憶素子リスト分割部１００１が、部分リストＡ１〜Ａ３の空リストを生成する（ステップＳ１２０１）。
【０１５９】
次に、（ａ）に示すように、観測記憶素子リスト分割部１００１が、密に結合する記憶素子の集合｛５，３，７，４，６，３｝を、含まれる記憶素子の個数順に｛７，６，５，４，３，３｝並べ替える（ステップＳ１２０２）。
【０１６０】
次に、（ｂ）に示すように、観測記憶素子リスト分割部１００１が、含まれる記憶素子の個数が最も多いグループ｛７｝を、部分リストＡ１〜Ａ３のうち、既に割り当てられた記憶素子の個数が最も少ない部分リストに割り当てる（ステップＳ１２０３）。なお、ここでは、まだ部分リストＡ１〜Ａ３にいずれの記憶素子も割り当てられておらず、既に割り当てられた記憶素子の個数は全ての部分リストにおいてゼロで等しい。この場合、観測記憶素子リスト分割部１００１は、グループ｛７｝をどの部分リストに割り当てても良いが、ここでは部分リストＡ１に割り当てたものとする。
【０１６１】
同様に、（ｃ）、（ｄ）に示すように、観測記憶素子リスト分割部１００１が、含まれる記憶素子の個数が次に多いグループ｛６｝、｛５｝を、部分リストＡ２、Ａ３にそれぞれ割り当てる（ステップＳ１２０３）。
【０１６２】
次に、（ｅ）に示すように、観測記憶素子リスト分割部１００１が、含まれる記憶素子の個数が次に多いグループ｛４｝を、部分リストＡ１〜Ａ３のうち、既に割り当てられた記憶素子の個数が最も少ない部分リストＡ３に割り当てる（ステップＳ１２０３）。
【０１６３】
次に、（ｆ）、（ｇ）に示すように、観測記憶素子リスト分割部１００１が、含まれる記憶素子の個数が次に多い順に各グループについてステップＳ１２０３を繰り返し、部分リストＡ１〜Ａ３に全ての記憶素子を割り当てる。
【０１６４】
このようにして、ステップＳ４０３において、観測記憶素子リスト分割部１００１は、観測記憶素子リスト１０２から部分リスト１００２を生成する。
【０１６５】
ステップＳ４０４では、制約情報生成部４０３が、ステップＳ４０２で分割した各部分リスト１００２および選択番号データベース８０１に基づいて、制約情報１０４を生成する。このとき、選択番号データベース８０１から、第３の実施の形態にある「Ｎ×分割数８０２」個分の番号情報を第一番号に基づく順序で求めるのではなく、部分リスト１００２にある各記憶素子の数ずつの番号情報を各区画から第一番号に基づく順序で求める。
【０１６６】
例えば、図１４に例示した部分リストＡ１〜Ａ３と、図９で説明した各区画から選択された選択番号データベース８０１に基づいて、制約情報生成部４０３が制約情報１０４を生成する例について説明する。
【０１６７】
この場合、制約情報生成部４０３は、部分リストＡ１に含まれる観測対象の記憶素子に対して、１つ目の区画（図９の場合は第一番号が０から始まる区画）から１０個選択されて選択番号データベース８０１に格納されている番号情報が表す記憶素子を、第一番号が連続するようマッピングする制約情報１０４を生成する。
【０１６８】
同様に、制約情報生成部４０３は、部分リストＡ２およびＡ３にそれぞれ含まれる観測対象の記憶素子に対して、２つ目および３つ目の区画（図９の場合は第一番号が３０から始まる区画および６０から始まる区画）からそれぞれ９個選択されて選択番号データベース８０１に格納されている番号情報が表す記憶素子を、第一番号が連続するようにそれぞれマッピングする制約を制約情報１０４に追加する。
【０１６９】
以上で、回路検証用書込データ生成装置４０の動作の説明を終了する。
【０１７０】
次に、本発明の第４の実施の形態の効果について説明する。
【０１７１】
本発明の第４の実施の形態としての回路検証用書込データ生成装置は、３２ビットカウンタなど密に結合している部分が回路データに含まれる場合に、観測対象の記憶素子の値の読出動作の効率化による半導体デバイスの動作速度の低下を防止するコンフィグレーションデータを生成することができる。
【０１７２】
その理由は、回路データの密に結合している部分に基づいて観測記憶素子リストを分割数の部分リストに分割し、各部分リストの記憶素子に対して、分割数に分割した番号データベースの各区画から選択した番号情報の記憶素子をマッピングする制約情報を生成するためである。これにより、密に結合した複数の記憶素子に物理的に離れた記憶素子をマッピングする可能性が低くなるからである。
【０１７３】
なお、本発明の第４の実施の形態において、観測記憶素子リスト分割部１００１が、図１１および図１２に示したフローに従って観測記憶素子リスト１０２を部分リスト１００２に分割する例について説明したが、本発明において、観測記憶素子リスト分割部は、観測対象の記憶素子のうち密に結合するもの同士が同一の部分リストに含まれるように分割することができれば、他のアルゴリズムによって部分リストに分割してもよい。また、組み合わせ回路のみで接続されるものを「密に結合」していると判断しているが、たとえば、それを記憶素子の段数X段以内としてもよい。
【０１７４】
（第５の実施の形態）
次に、本発明の第５の実施の形態について、図面を参照して詳細に説明する。
【０１７５】
本発明の第５の実施の形態としての回路検証用書込データ生成装置５０の構成を図１５に示す。なお、図１５において、本発明の第１の実施の形態と同一の構成には同一の符号を付して詳細な説明を省略する。
【０１７６】
回路検証用書込データ生成装置５０は、本発明の第１の実施の形態と同一の構成のうち、制約情報生成部１０３に替えて制約情報生成部５０３を備え、観測記憶素子順序変更部１３０２をさらに備えている。
【０１７７】
ここで、制約情報生成部５０３および観測記憶素子順序変更部１３０２は、回路検証用書込データ生成装置５０を構成するコンピュータ装置の記憶装置にプログラムモジュールとして格納され、ＣＰＵによって実行される。
【０１７８】
観測記憶素子順序変更部１３０２は、観測対象の各記憶素子に対する優先度１３０１に基づいて、観測記憶素子リスト１０２に記載された記憶素子の順序を並べ替え、変更観測記憶素子リスト１３０３を生成する。なお、観測記憶素子順序変更部１３０２は、この優先度１３０１を、回路検証用書込データ生成装置５０を構成するコンピュータ装置の入力装置を介して取得しても良い。
【０１７９】
制約情報生成部５０３は、変更観測記憶素子リスト１３０３に記載された順に観測対象の各記憶素子に、番号データベース１０１に基づいて第一番号が同一または連続する記憶素子がマッピングされるよう制約情報１０４を生成する。
【０１８０】
以上のように構成された回路検証用書込データ生成装置５０の動作は、本発明の第１の実施の形態と同様に図４を用いて説明されるが、本発明の第１の実施の形態とは、ステップＳ４０３およびＳ４０４における動作が異なる。
【０１８１】
ステップＳ４０３において、データ格納部１１０が観測記憶素子リスト１０２を格納した後、観測記憶素子順序変更部１３０２が、変更観測記憶素子リスト１３０３を生成する。
【０１８２】
ステップＳ４０４では、制約情報生成部５０３が、変更観測記憶素子リスト１３０３および番号データベース１０１に基づいて、制約情報１０４を生成する。
【０１８３】
以上で、回路検証用書込データ生成装置５０の動作の説明を終了する。
【０１８４】
次に、本発明の第５の実施の形態の効果について説明する。
【０１８５】
本発明の第５の実施の形態としての回路検証用書込データ生成装置は、無駄な読出動作を減らすことができ、読出動作をさらに効率化するコンフィグレーションデータを生成することができる。
【０１８６】
その理由は、観測する頻度の低い記憶素子に、頻繁に観測する記憶素子と同一または連続する第一番号の記憶素子をマッピングすることがないためである。したがって、観測する頻度の低い記憶素子を頻繁に読み出してしまうことがないからである。また、観測する頻度の低い記憶素子を、頻繁に観測する記憶素子と同時に読み出さないように半導体デバイスを停止および開始する必要がなく、オーバヘッドを減らすことができるからである。
【０１８７】
（第６の実施の形態）
次に、本発明の第６の実施の形態について、図面を参照して詳細に説明する。
【０１８８】
まず、本発明の第６の実施の形態としての回路検証用書込データ生成装置６０の構成を図１６に示す。なお、図１６において、本発明の第３の実施の形態と同一の構成には同一の符号を付して詳細な説明を省略する。
【０１８９】
回路検証用書込データ生成装置６０は、本発明の第３の実施の形態と同一の構成のうち、番号データベース選択部８００に替えて番号データベース選択部１６００を備え、面積解析部１６０１をさらに備えている。
【０１９０】
なお、番号データベース選択部１６００および面積解析部１６０１は、回路検証用書込データ生成装置６０を構成するコンピュータ装置の記憶装置に格納され、ＣＰＵによって実行される。
【０１９１】
面積解析部１６０１は、回路データ１００を入力とし、その回路が半導体デバイス５０４の何パーセントの面積を使用するかを表す使用比率を解析する。そして、面積解析部１６０１は、解析した使用比率に所定の乗率１６０２を乗じて、その値を配置比率１６０３として記憶する。例えば、面積解析部１６０１は、回路データ１００が半導体デバイス５０４の３３％の面積を使用し、乗率１６０２が２の場合、配置比率１６０３として６６％を算出する。なお、乗率１６０２はあらかじめ定められ、設定される値に応じて配線の混雑度が変化する。
【０１９２】
また、番号データベース選択部１６００は、配置比率１６０３に基づいて番号データベース１０１から番号情報を選択する。本発明の第３の実施の形態における番号データベース選択部８００が半導体デバイス５０４すべての領域を分割したのに対して、番号データベース選択部１６００は、半導体デバイス５０４の全領域のうち配置比率１６０３分の領域を分割数８０２の区画に分割する。そして、番号データベース選択部１６００は、番号データベース選択部８００と同様に各区画から同一または連続する第一番号の番号情報を選択し、合計が観測記憶素子の数以上の番号情報を選択する。番号データベース選択部１６００は、選択した番号情報によって選択番号データベース８０１を生成する。
【０１９３】
例えば、配置比率１６０３が６６％で、分割数８０２が３の場合について、図９の例を用いて説明する。このとき、番号データベース選択部１６００は、図９において第一番号が６０−８９は利用せず、６６％に当たる０から５９を３等分し、０−１０、２０−２９、４０−４９の各区画に含まれる記憶素子の番号情報を選択するようにする。
【０１９４】
以上のように構成された回路検証用書込データ生成装置６０の動作は、本発明の第３の実施の形態と同様に図４を用いて説明されるが、本発明の第３の実施の形態とは、ステップＳ４０１における動作が異なる。
【０１９５】
ステップＳ４０１において、データ格納部１１０が番号データベース１０１を格納した後、面積解析部１６０１が配置比率１６０３を算出する。そして、番号データベース選択部１６００が、配置比率１６０３に基づいて選択番号データベース８０１を生成する。
【０１９６】
以上で、回路検証用書込データ生成装置６０の動作の説明を終える。
【０１９７】
次に、本発明の第６の実施の形態の効果について説明する。
【０１９８】
本発明の第６の実施の形態としての回路検証用書込データ生成装置は、読出動作の効率化と半導体デバイスの動作速度の向上とを両立させるコンフィグレーションデータを生成することができる。
【０１９９】
その理由を述べるため、半導体デバイスの動作速度と配線の混雑度の関係についてまず説明する。一般的に、半導体デバイスにおいて、配線が予め定められているため、混雑度の高い部分は、迂回経路の利用など半導体デバイスの動作速度を低下させることになる。一方で、混雑度を抑えるために記憶素子を遠くに配置することは、遠くに配置した記憶素子間に配線を引く必要があり、これも動作速度を低下させる原因となる。
【０２００】
したがって、本発明の第６の実施の形態としての回路検証用書込データ生成装置は、回路データが半導体デバイスに実装される面積の使用比率を算出しておき、この使用比率に所定の乗数を乗じた配置比率の領域に観測対象の記憶素子を配置することにより、動作速度の観点から適度な混雑度で回路データを実装するコンフィグレーションデータを生成するからである。また、このようにしても、観測対象の記憶素子に割り当てられる記憶素子の第一番号は分割数以上には分割されないので、読出動作の効率化をも実現できるからである。
【０２０１】
換言すると、本発明の第６の実施の形態としての回路検証用書込データ生成装置は、観測対象の記憶素子を、間隔を空けすぎることもなく適度な物理的な近さで配置するコンフィグレーションデータを生成することができ、読出動作の高速化に寄与するだけでなく、高速に動作する回路の生成にも寄与することができる。
【０２０２】
なお、上述した本発明の各実施の形態において、図４を用いて説明した各実施の形態の動作は、本発明の回路検証用書込データ生成プログラムを構成する。
【０２０３】
また、上述した各実施の形態は、適宜組み合わせて実施されることが可能である。
【０２０４】
また、本発明は、上述した各実施の形態に限定されず、様々な態様で実施されることが可能である。
【０２０５】
また、上記の各実施の形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
（付記１）
第一番号および第二番号の組合せによって識別される複数の記憶素子を有し、前記第一番号を含む読出制御情報が入力されると、入力された第一番号から連続する第一番号に対応する各記憶素子の値を出力する半導体デバイスに検証対象の回路を書き込むための書込データを生成する回路検証用書込データ生成装置であって、
前記回路がハードウェア記述言語によって記述された回路データと、前記回路データに含まれる記憶素子のうち観測対象となる１つ以上の記憶素子が記載された観測記憶素子リストと、前記半導体デバイス内の各記憶素子の第一番号および第二番号を表す番号情報を含む番号データベースとを格納したデータ格納部と、
前記観測記憶素子リストおよび前記番号データベースに基づいて、前記観測記憶素子リストに記載された各記憶素子の配置配線後の第一番号が連続するよう配置配線を制約する制約情報を生成する制約情報生成部と、
前記制約情報および前記回路データに基づいて配置配線を行い、前記半導体デバイスに書き込む書込データを生成する配置配線部と、
を備えた回路検証用書込データ生成装置。
（付記２）
前記半導体デバイス内で前記記憶素子の物理的配置に従って前記第一番号が連続するとき、
前記番号データベース内に含まれる各記憶素子の番号情報を、前記第一番号に基づいて所定の分割数の区画に分け、連続する第一番号の番号情報を各区画からそれぞれ選択する番号データベース選択部をさらに備え、
前記制約情報生成部は、前記観測記憶素子リストに記載された各記憶素子に対して、前記番号データベース選択部によって選択された番号情報の記憶素子がマッピングされるよう前記制約情報を生成することを特徴とする付記１に記載の回路検証用書込データ生成装置。
（付記３）
前記観測記憶素子リストに記載された記憶素子のうち組合せ回路のみで接続できるものが同一の部分リストに含まれるよう前記観測記憶素子リストを前記分割数の部分リストに分割する観測記憶素子リスト分割部をさらに備え、
前記制約情報生成部は、前記各部分リストに含まれる記憶素子に対して、前記番号データベース選択部によって前記各区画から選択された番号情報の記憶素子がそれぞれマッピングされるよう前記制約情報を生成することを特徴とする付記２に記載の回路検証用書込データ生成装置。
（付記４）
前記観測記憶素子リスト分割部は、前記観測記憶素子リストに記載された記憶素子のうち組合せ回路のみで接続できるものに基づいて前記観測対象の記憶素子をグループ分けし、前記各グループに含まれる記憶素子の個数の多い順に該グループに含まれる記憶素子を、前記分割数の部分リストのうち既に割り当てた記憶素子の個数が最も少ない部分リストに順次割り当てることにより、前記観測記憶素子リストを前記分割数の部分リストに分割することを特徴とする付記３に記載の回路検証用書込データ生成装置。
（付記５）
前記観測記憶素子リストを優先度に基づいて並び替える観測記憶素子順序変更部をさらに備え、
前記制約情報生成部は、前記観測記憶素子順序変更部によって並び替えられた前記観測記憶素子リストおよび前記番号データベースに基づいて、並び替えられた前記観測対象の各記憶素子の配置配線後の第一番号が連続するよう前記制約情報を生成することを特徴とする付記１から付記４のいずれかに記載の回路検証用書込データ生成装置。
（付記６）
前記半導体デバイスにおいて前記回路の実装によって使用される回路面積の使用比率を解析し、解析した使用比率に所定の乗率を乗じた配置比率を出力する面積解析部をさらに備え、
前記番号データベース選択部は、前記番号データベースに格納された番号情報のうち前記配置比率分の番号情報を前記第一番号に基づいて前記分割数の区画に分け、各区画から前記番号情報の選択を行うことを特徴とする付記２から付記５のいずれかに記載の回路検証用書込データ生成装置。
（付記７）
第一番号および第二番号の組合せによって識別される複数の記憶素子と、前記第一番号を含む読出制御情報が入力されると、入力された第一番号から連続する第一番号に対応する各記憶素子の値を読み出す読出部と、を有する半導体デバイスを用いて回路を検証する回路検証装置であって、
前記回路がハードウェア記述言語によって記述された回路データと、前記半導体デバイス内の各記憶素子の第一番号および第二番号を表す番号情報を含む番号データベースとを格納したデータ格納部と、
前記回路データに含まれる記憶素子を解析する回路データ解析部と、
前記回路データ解析部によって解析された記憶素子の一覧を外部に出力し、出力した記憶素子の一覧に基づき前記観測憶記憶素子リストを外部から取得して前記データ格納部に格納させる観測記憶素子リスト取得部と、
前記観測記憶素子リストおよび前記番号データベースに基づいて、前記観測記憶素子リストに記載された各記憶素子の配置配線後の第一番号が連続するよう配置配線を制約する制約情報を生成する制約情報生成部と、
前記制約情報および前記回路データに基づいて配置配線を行い、前記半導体デバイスに書き込む書込データを生成する配置配線部と、
前記書込データを前記半導体デバイスに書き込むプログラム部と、
前記半導体デバイス内の記憶素子の値に応じて前記半導体デバイスの動作を停止させるブレーク条件を外部から取得するブレーク条件取得部と、
前記ブレーク条件に基づいて前記半導体デバイスに供給するクロック信号を制御するクロック制御部と、
前記半導体デバイスの読出部を制御して前記観測対象の各記憶素子の値の読み出しを行う読出制御部と、
を備えた回路検証装置。
（付記８）
前記半導体デバイス内で前記記憶素子の物理的配置に従って前記第一番号が連続するとき、
前記番号データベース内に含まれる各記憶素子の番号情報を、前記第一番号に基づいて所定の分割数の区画に分け、連続する第一番号の番号情報を各区画からそれぞれ選択する番号データベース選択部をさらに備え、
前記制約情報生成部は、前記観測記憶素子リストに記載された各記憶素子に対して、前記番号データベース選択部によって選択された番号情報の記憶素子がマッピングされるよう前記制約情報を生成することを特徴とする付記７に記載の回路検証装置。
（付記９）
第一番号および第二番号の組合せによって識別される複数の記憶素子と、前記第一番号を含む読出制御情報が入力されると、入力された第一番号から連続する第一番号に対応する各記憶素子の値を読み出す読出部と、を有する半導体デバイスを用いて回路を検証する回路検証装置が、
前記回路がハードウェア記述言語によって記述された回路データと、前記半導体デバイス内の各記憶素子の第一番号および第二番号を表す番号情報を含む番号データベースとをデータ格納部に格納し、
前記回路データに含まれる記憶素子を解析し、
解析した記憶素子の一覧を外部に出力し、出力した記憶素子の一覧に基づき前記観測憶記憶素子リストを外部から取得して前記データ格納部に格納し、
前記観測記憶素子リストおよび前記番号データベースに基づいて、前記観測記憶素子リストに記載された各記憶素子の配置配線後の第一番号が連続するよう配置配線を制約する制約情報を生成し、
前記制約情報および前記回路データに基づいて配置配線を行い、前記半導体デバイスに書き込む書込データを生成し、
前記書込データを前記半導体デバイスに書き込み、
前記半導体デバイス内の記憶素子の値に応じて前記半導体デバイスの動作を停止させるブレーク条件を外部から取得し、
前記半導体デバイスにクロック信号を供給して動作させ、
前記ブレーク条件に基づいて前記半導体デバイスに供給するクロック信号を停止させ、
前記半導体デバイスの読出部を制御して前記観測対象の各記憶素子の値を読み出す、
回路検証方法。
（付記１０）
第一番号および第二番号の組合せによって識別される複数の記憶素子を有し、前記第一番号を含む読出制御情報が入力されると、入力された第一番号から連続する第一番号に対応する各記憶素子の値を出力する半導体デバイスに検証対象の回路を書き込むための書込データを生成する回路検証用書込データ生成装置に、
前記回路がハードウェア記述言語によって記述された回路データと、前記回路データに含まれる記憶素子のうち観測対象となる１つ以上の記憶素子が記載された観測記憶素子リストと、前記半導体デバイス内の各記憶素子の第一番号および第二番号を表す番号情報を含む番号データベースとをデータ格納部に格納させるデータ格納ステップと、
前記観測記憶素子リストおよび前記番号データベースに基づいて、前記観測記憶素子リストに記載された各記憶素子の配置配線後の第一番号が連続するよう配置配線を制約する制約情報を生成する制約情報生成ステップと、
前記制約情報および前記回路データに基づいて配置配線を行い、前記半導体デバイスに書き込む書込データを生成する配置配線ステップと、
を実行させる回路検証用書込データ生成プログラム。
（付記１１）
前記半導体デバイス内で前記記憶素子の物理的配置に従って前記第一番号が連続するとき、
前記番号データベース内に含まれる各記憶素子の番号情報を、前記第一番号に基づいて所定の分割数の区画に分け、連続する第一番号の番号情報を各区画からそれぞれ選択する番号データベース選択ステップをさらに実行させ、
前記制約情報生成ステップにおいて、前記観測記憶素子リストに記載された各記憶素子に対して、前記番号データベース選択部によって選択された番号情報の記憶素子がマッピングされるよう前記制約情報を生成することを特徴とする付記１０に記載の回路検証用書込データ生成プログラム。
【符号の説明】
【０２０６】
２    回路検証装置
１０、３０、４０、５０、６０    回路検証用書込データ生成装置
２０    全体制御部
１００    回路データ
１０１    番号データベース
１０２    観測記憶素子リスト
１０３、３０３、４０３、５０３  制約情報生成部
１０４    制約情報
１０５    配置配線部
１０６    コンフィグレーションデータ
１１０    データ格納部
５００    ユーザＩ／Ｆ部
５０１    読出制御情報
５０２    中央制御部
５０４    半導体デバイス
５０５    読出ユニット
５０６    読出制御ユニット
５０７    クロック制御ユニット
５０８    回路解析部
５０９    プログラムユニット
８００、１６００    番号データベース選択部
８０１    選択番号データベース
８０２    分割数
１００１    観測記憶素子リスト分割部
１００２    部分リスト
１３０１    優先度
１３０２    観測記憶素子順序変更部
１３０３    変更観測記憶素子リスト
１６００    番号データベース選択部
１６０１    面積解析部
１６０２    乗率
１６０３    配置比率
【図１】
2011227751.tif 000003
【図２】
2011227751.tif 000004
【図３】
2011227751.tif 000005
【図４】
2011227751.tif 000006
【図５】
2011227751.tif 000007
【図６】
2011227751.tif 000008
【図７】
2011227751.tif 000009
【図８】
2011227751.tif 000010
【図９】
2011227751.tif 000011
【図１０】
2011227751.tif 000012
【図１１】
2011227751.tif 000013
【図１２】
2011227751.tif 000014
【図１３】
2011227751.tif 000015
【図１４】
2011227751.tif 000016
【図１５】
2011227751.tif 000017
【図１６】
2011227751.tif 000018