(57)【特許請求の範囲】
【請求項１】
CADを用いて設計した設計対象回路の回路構成データを格納した回路構成データ格納手段と、前記設計対象回路に所望の動作を行わせる為にハードウェア記述言語で記述した動作手順データを格納した動作手順データ格納手段とを備え、前記動作手順データに従って、前記設計対象回路の機能検証を行う回路の機能検証システムにおいて、
前記設計対象回路の回路構成データは、原稿に対向配置した読取手段を、基準サイクルから生成した基本クロックに同期して主走査方向と副走査方向に移動させつつ前記原稿を読み取る画像処理回路の回路構成データであり、
前記動作手順データ格納手段からハードウェア記述言語で記述した動作手順データを読み出して、テストパターンを生成すると共に、
前記主走査方向の開始位置を示す第１の信号と、前記主走査方向の有効領域を示す第２の信号と、前記副走査方向の有効領域を示す第３の信号との大きさ及び動作タイミングを指示し、
更に、前記第１の信号に対し前記基本クロックからの遅延量を設定し、前記第２の信号に対し前記第１の信号の前記遅延量設定後のアクティブからの開始位置を設定し、前記第３の信号に対し前記第１の信号との同期または非同期を設定する動作制御手段を備え、
ユーザが、前記基本クロックに対する設定命令と開始命令と終了命令とを、前記動作手順データ格納手段にハードウェア記述言語で記述しておき、
前記動作制御手段は、前記動作手順データ格納手段に格納した前記各命令に基づき、前記テストパターンにおける前記基本クロックの記述を生成することを特徴とする回路の機能検証システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、回路の機能検証システムに関し、特にCADを用いて設計した回路の機能検証を行う場合に、検証に伴う作業負荷を軽減した回路の機能検証システムに関する。
【０００２】
【従来の技術】
回路設計は、近年爆発的にその規模を増大し、LSIの開発にいたっては単純なロジックの組み合わせによる設計が困難になっている。それを補うため、現在ではCADに頼って行われることが通常となっている。回路自体の記述はVerilog−HDLやVHDLなどのハードウエア記述言語（HDL）により構築され、その規模の大きさより、当然ながらLSIの１チップに盛り込まれる機能は多岐にわたり、その検証も困難を極めることとなっている。
【０００３】
ここで、従来の大規模集積回路（LSI）の検証について説明する。
図１７は、設計対象回路と、該設計対象回路の周辺とのＩ／Ｆ（インタフェース）の例を示すブロック図である。
図１７に示すように、周辺回路ＡおよびＢは設計対象回路と接続されており、この場合、周辺回路Ａより信号を入力されて周辺回路Ｂへと出力し、何らかの動作を行う。この場合、設計対象回路の検証として要求されるのは、周辺回路Ａから出される入力を設計対象回路へ与えた場合、周辺回路Ｂへ所望の出力がなされるかどうかで判断される。但し、前述の事項は実装された回路の話であるため、この話を設計中のHDLレベルで行なうためには、設計対象回路に入力するデータ自体をHDL記述上で生成し、その出力データが所望のものと一致するかどうかで行わなければならない。
【０００４】
この方法としては、図１８のテストベンチの構成イメージに示すように、テストパターンの生成を設計者が直接テストベンチとしてHDL記述することで行ない、その出力を波形表示ツールで確認するケース（図１８（ａ））と、HDL記述のテストパターンを生成可能な波形表示ツールなどで記述し、出力も波形表示ツールで行なうケース（図１８（ｂ））がある。この場合、図１８（ａ），（ｂ）ともに実際に設計対象回路に対して検証を行なうテストベンチ自体が、テストパターンとなるため、テストパターンの数だけ、テストベンチの生成を行なわなくてはならなくなる。
【０００５】
【発明が解決しようとする課題】
しかしながら、これら従来の回路設計の検証方法において、図１８（ａ）の場合、設計者は逐一すべての入力信号の変化についてHDL記述を行なう必要があり、膨大な作業量および記述量を必要となるのは不可避である。
更に設計対象回路が持つ機能が多岐にわたる場合、その機能の確認を網羅できるだけの大きさのパターンか、もしくは、必要なパターンの数だけ作業を繰り返さなくてはならない。そのため、可能ならば図１８（ｂ）の波形表示ツールを使用して波形ツールにて入力信号を生成することにより、作業量を軽減する方法を取るのが通常である。この場合、視覚的に意図する入力を確認しながらの作業となるため、意図する入力信号を生成するための後戻りが少ない効果もある。但し、この場合においてもパターンが変わると、波形の入力を一からやり直すため、機能が多い大規模回路であればあるほど、検証作業の負荷が大きくなってくる。
【０００６】
そこで本発明の課題は、CADを用いて設計した回路の機能検証を行う場合に、検証に伴う作業負荷を軽減した回路の機能検証システムを提供することである。
【０００７】
【課題を解決するための手段】
前記課題を解決するために請求項１の発明は、CADを用いて設計した設計対象回路の回路構成データを格納した回路構成データ格納手段（設計対象回路101）と、前記設計対象回路に所望の動作を行わせる為にハードウェア記述言語で記述した動作手順データを格納した動作手順データ格納手段（動作手順ファイル200）とを備え、前記動作手順データに従って、前記設計対象回路の機能検証を行う回路の機能検証システムにおいて、
前記設計対象回路の回路構成データは、原稿に対向配置した読取手段を、基準サイクル（図５(a)）から生成した基本クロック（図５(a)のclk）に同期して主走査方向と副走査方向に移動させつつ前記原稿を読み取る画像処理回路の回路構成データであり、
前記動作手順データ格納手段からハードウェア記述言語で記述した動作手順データを読み出して、テストパターンを生成すると共に、
前記主走査方向の開始位置を示す第１の信号（図４、図５（ｂ）のxlsync）と、前記主走査方向の有効領域を示す第２の信号（xlgate）と、前記副走査方向の有効領域を示す第３の信号（xfgate）との大きさ及び動作タイミングを指示し、
更に、前記第１の信号に対し前記基本クロックからの遅延量（図５(b)の遅延Ｄ）を設定し、前記第２の信号に対し前記第１の信号の前記遅延量設定後のアクティブからの開始位置（図５(b)の開始Ｉ）を設定し、前記第３の信号に対し前記第１の信号との同期または非同期を設定する動作制御手段（102）を備え、
ユーザ（検証者）が、前記基本クロックに対する設定命令（set）と開始命令（start）と終了命令（end）とを、前記動作手順データ格納手段にハードウェア記述言語で記述しておき、
前記動作制御手段は、前記動作手順データ格納手段に格納した前記各命令に基づき、前記テストパターンにおける前記基本クロックの記述を生成することを特徴とする。
【０００８】
このようにすれば、テストパターンの全範囲にわたって繰り返し現れるクロックの記述を３行だけ（クロックの設定（set），開始（start），終了（end））で表すことが可能となるので、設計対象回路の作成，変更，追加を容易に素早く行なうことができ、検証に伴う作業負荷を軽減することが可能となる。
また、例えば、第１の信号（xlsync）の有効幅が変わった場合、第２の信号（xlgate），第３の信号（xfgate）は、第１の信号（xlsync）に追従して発生するため、設定（set）の項目の幅Ｅの値を変更するだけでテストパターンの形状が変更できるので、その出力を波形表示ツールにて確認し、検証を容易に素早く行なうことが可能となる。
【００１２】
【発明の実施の形態】
以下、本発明を図示の実施の形態に基づいて説明する。
（Ｉ）第１の実施の形態
（I-1）本実施の形態の概要説明
本実施の形態の構成を図１（ａ）に示す。設計対象回路101は検証のターゲットとしてCAD上で設計された回路であり、この設計対象回路101の動作を確認するために、テストベンチ100（後述）が構成されている。
【００１３】
動作制御手段102は、ユーザーが準備した動作手順ファイル200（後述）を受け取って、その内容に従って、入力Ｉ／Ｆ103および出力Ｉ／Ｆ104に命令を出し、テストベンチ全体を動作させる。入力Ｉ／Ｆ103は、動作制御手段102より受けた命令に従い、設計対象回路101へ信号を入力する。出力Ｉ／Ｆ104は、動作制御手段102より受けた命令に従い、設計対象回路101より信号を受け取る。動作手順ファイル200は、検証者がテストベンチ100を動作させるためのコマンド群（後述）を表記し、これを動作制御手段102に読み込ませて動作させる。
【００１４】
（I-2）本実施の形態の詳細説明
このテストベンチ100の動作を更に説明するために、設計対象回路101が前記図１７に示したように、上流に周辺回路Ａを一つ、下流に周辺回路Ｂを一つ持っている画像処理用の回路である場合を例にとって考える（図１（ｂ）参照）。
図２および図３は、コピー機や画像読取装置（スキャナ）などで原稿画像を読み取る場合の信号群のイメージを示している。ここで原稿読み取り面に置かれた原稿は、スキャナ内部の光源およびミラーが走査していく方向の画像を副走査方向として読み取られ、主走査方向は光源から発した光をミラー、および下流に位置するレンズ（図示せず）を通して順次収束，反射されて、一ライン分の画像データとしてイメージラインセンサ（ＣＣＤ）により読み取られる。
【００１５】
この場合、各画素の画像データとしての位置を示すために、上記副走査方向・主走査方向を示す制御信号として、副走査方向の有効領域を示す信号としてxfgate、主走査方向の有効領域を示す信号としてxlgate、更に主走査方向の開始位置の合図として、xlsyncの信号がある。これらを時間軸に置き換えて信号化したイメージを図４のデータ,制御信号のタイミング例として示す。
上記のような画像信号を扱う設計対象回路101に対する検証は、実際には、この図４に示すような波形を確認することで実現することが可能となる。つまり、ある仕様を満たす入力信号群を想定して設計対象回路101に入力し、その際に設計対象回路101より出力される出力信号群が意図した結果になるかどうかで、設計対象回路101が正しく設計されているかどうかが確認できることになる。
【００１６】
ここで、本実施の形態が、前記確認動作を行なう仕組みを説明する。設計対象回路101は図１（ｂ）に示したシステム上の位置付けより、入出力Ｉ／Ｆが決められているため、それに従ってテストベンチ100の入力Ｉ／Ｆおよび出力Ｉ／Ｆは必然的に決定される。入力Ｉ／Ｆ103は、設計対象回路101に対して、上記入力画像データを把握しており、画像データのフォーマット形式やそれを制御するための入力制御信号群：xfgate，xlgate，xlsyncの大きさや動作のタイミングは動作制御手段102より指示され、その他それら信号の発生指示,停止指示そして画像データの発生指示，停止指示を受ける。
【００１７】
同様に出力Ｉ／Ｆ104も信号の受け取りに関して動作制御手段102より指示を受ける。動作制御手段102は、検証者がそれぞれの検証仕様に則って作成された動作手順ファイル200を読み込み、その命令先（入力Ｉ／Ｆ103,出力Ｉ／Ｆ104、もしくは動作制御手段102自身）および命令内容（信号仕様の指示，信号の発生指示，信号の停止指示）を解釈し、入力手段に対する命令であれば、入力Ｉ／Ｆ102に、出力手段に対する命令であれば出力Ｉ／Ｆ104へ命令を送る。
また、動作制御手段102自身への命令としては、テストベンチ100および設計対象回路101全体を管理する基本動作信号（基本クロック）の信号仕様の指示，発生指示や、テストベクター（ツールに読み込ませる波形。テストパターンの記述例、＠0sipuIPUPbusOUTfile：//bus）を波形表示ツールに対応した形式としてファイル出力すること、およびテストパターンの終了指示がある。これらすべての命令情報は、検証者によって動作手順ファイル200に書かれている。
【００１８】
命令情報を挙げると、次の通りである。
・基本クロック仕様：クロックの周期、ハイレベル周期、発生命令
・xfgate仕様：fgateの周期、クロックに対するタイミング、発生命令、停止命令
・xlgate仕様：lgateの周期、クロックに対するタイミング、lsyncとの位置関係、発生命令、停止命令
・xlsync仕様：xlsyncの周期、クロックに対するタイミング、発生命令、停止命令
・データ入力のタイミング指示
・データ出力のタイミング指示
・テストベクターの波形表示用出力の指示
・テストパターンの終了指示
【００１９】
これらの命令情報により、テストベンチ100は信号を設定することで、色々な種類のテスト仕様に対してテストパターンを作ることが容易になり、一度、設計対象回路101に対してテストベンチ100を構築すれば、後の種々仕様にあわせたテストパターンは動作手順ファイル200を作成するだけで行なうことが可能となる。
【００２０】
以下に動作手順ファイル200の具体的な例を示す。図５は上記で示された命令情報のうち、クロック，xlsync，xlgate，xfgateについて、各画像制御信号の命令情報例を示している。以降、この図５を元に説明を行なっていく。
図５(a)はクロック(clk)の命令情報の例を示している。クロックに同期して動作する同期回路の設計においては、先ず、全ての動作の基本となる基準サイクル値が決定され、その範囲の中で検証が行なわれる。
【００２１】
クロック（clk）の指定には、以下のものが挙げられる。
(1) クロックの設定
[▲１▼動作時間] [▲２▼形式] [▲３▼動作対象] clk名 [▲４▼動作種類] [▲５▼同期] [▲６▼遅延A]
[▲７▼幅B] [▲８▼サイクルC]
▲１▼動作時間：基準サイクル数で表示する命令動作の時間を示す
▲２▼形式：動作時間の種類を表す、相対／絶対指定
ｚ(0) → 指定された動作時間の絶対位置で動作する
ｓ(1) → 指定された動作時間の前回のコマンド発行から、相対的な遅れを示す
▲３▼動作対象：動作するテストベンチの内容（入力Ｉ／Ｆ、出力Ｉ／Ｆなど）を示す
▲４▼動作種類：clkの動作の内容を表す→上記内容は"Set"他に、Start,Stopなどがある
▲５▼同期：基準サイクルに対するに対するclkの同期(0)／非同期(1)を表す
同期モード：基準サイクルの立ち上がりエッジを動作基本とする
非同期モード：startを合図として、▲７▼幅と▲８▼サイクルだけで動作する
▲６▼遅延A：基準サイクルからの遅延量(ns)
▲７▼幅B：生成クロックのHi幅(ns)
▲８▼サイクルC：生成クロックのサイクル幅(ns)
【００２２】
(2) クロックのスタート
[▲１▼ 動作時間] [▲２▼形式]  [▲３▼動作対象] clk  [▲４▼動作種類]
▲４▼動作種類→ここでは"Start"
Startが発生した基準サイクルからSetの内容に従ってclkを発生する
【００２３】
(3) クロックの停止
[▲１▼ 動作時間] [▲２▼形式]  [▲３▼動作対象] clk  [▲４▼動作種類]
▲４▼動作種類→ここでは"Stop"
Stopが発生した次の基準サイクルから、停止する
このようなパターンで一行ずつ記述してくことで、テストパターンの全範囲にわたって繰り返し現れるクロックの記述を３行だけ（クロックの設定（SET），開始（start），終了（end））で表すことが可能となる。即ち、具体的には図6，図１０（b），図１３に３行の内、次の２行が示されており、
＠０ｚSYSclksetSync2  20  40//clkset
＠０ｚSYSclkstart//clkstart
残りは、＠０ｚSYSclkend//clkstart  である。
つまり、この３行により、クロック動作の「設定（SET），開始（start），終了（end）」を指示することができる。
【００２４】
このclkと同様に、図５（ｂ）ではxlsync，xlgateの指定を示している。基本的にこれらの制御信号は▲１▼〜▲３▼までが同じ形式であり、その後のxlsyncの形式を示すと以下の如くなる。
(1)xlsyncの設定
xlsync名 [▲４▼動作種類] [▲５▼遅延D] [▲７▼幅E] [▲８▼サイクルF]
▲４▼動作種類：xlsyncの動作の内容を示す→設定は"Set"
▲５▼遅延D：clkからの遅延量(ns)
▲６▼幅E：xlsyncのLow（アクティブ）幅(clk数)
▲７▼サイクルF：xlsyncのサイクル幅(clk数)
【００２５】
(2)xlsyncのスタート
xlsync名 [▲４▼動作種類]
▲４▼動作種類→ここでは"Start"
Startが指定された次のclkの立ち上がりエッジを基準として発生する
【００２６】
(3)xlsyncの停止
xlsync名 [▲４▼動作種類]
▲４▼動作種類→ここでは"Stop"
Stopが指定されたら、インアクティブの場合はそのままHigh、アクティブの場合は、指定された幅Eを終了した後にHighとして終了する
これにより、clkに同期して、周期的な動きを繰り返す形状の波形を1行の記述（Set）で指定することが可能となる。
【００２７】
また、xlgateについては、以下の如くなる。
(1)xlgateｃの設定
xlgate名 [▲４▼動作種類] [▲５▼遅延Ｇ] [▲７▼幅Ｈ] [▲８▼開始I]
▲４▼動作種類：xlgateの動作の内容を示す→設定は"Set"
▲５▼遅延G：clkからの遅延量(ns)
▲６▼幅H：xlgateのLow（アクティブ）幅(clk数)
▲７▼開始I：xlsyncアクティブからのxlgate開始（アクティブ）位置（clk数）
【００２８】
(2)xlgateのスタート
xlgate名 [▲４▼動作種類]
▲４▼動作種類→ここでは"Start"
Startが指定された次のxlsyncの立ち下がり(アクティブ)を基準として発生する
【００２９】
(3) xlgateの停止
xlgate名 [▲４▼動作種類]
▲４▼動作種類→ここでは"Stop"
インアクティブの場合はそのまま停止、アクティブの場合は、そのアクティブが終了後、そのまま停止
このように設定することにより、周期的な形状の波形に追従した形の波形を容易に指定することが可能になる。
【００３０】
更に、図５（ｃ）では、xfgateについての波形の指定を示している。この指定形式の例を示すと、以下の如くなる。
(1)xfgateｃの設定
xfgate名 [▲４▼動作種類] [▲５▼同期] [▲６▼遅延Ｊ] [▲７▼幅Ｋ]
▲４▼動作種類：xfgateの動作の内容を示す→設定は"Set"
▲５▼同期：xlsyncに対するに対するxfgateの同期(0)／非同期(1)を表す
同期モード：xlsyncの立ち下がりエッジを動作基本とする
非同期モード：start後のclkを合図として、▲７▼幅と▲８▼サイクルだけで動作する
▲６▼遅延G：clkからの遅延量(ns)
▲７▼幅H：xfgateのLow（アクティブ）幅
同期モード：幅はxlsync数
非同期モード：幅はclk数
【００３１】
(2)xfgateのスタート
xfgate名 [▲４▼動作種類]
▲４▼動作種類→ここでは"Start"
同期モード：Start指定後の最初のxlsyncより発生
非同期モード：Start指定後の最初のclkより発生
このように指定でき、これにより、任意のタイミング、または、周期的な動きを繰り返す形状の波形に追従して、一度だけアクティブになる波形を一行で指定することが可能になる。これら信号に関する動作をまとめて、図６に示す動作手順ファイル200を作成すれば、そのファイル一枚で、テストパターンを簡潔に表記することが可能になる。
【００３２】
例えば、この動作手順ファイル200により、xlsyncの有効幅が変わった場合、直接HDLによって記述する場合には、全てのxlsyncの記述を変更、そして、波形ツールによる記述でも、繰り返しパターンの波形に対応していないツールだと全てのxlsyncの変化点で、また、繰り返し対応していたとすれば、xlsyncの修正は容易だが、それに附随して動作する、xlgate，xfgateについては、いずれの場合も修正を余儀なくされる。
【００３３】
一方、上記のようなテストベンチ構成による場合には、xlgate，xfgateはxlsyncに追従して発生するため、"Set"の項目の幅Ｅの値を変更するだけでテストパターンの形状が変更でき、その出力を波形表示ツールにて確認し、検証を容易に素早く行なうことが可能となる。
【００３４】
（II）第２の実施の形態
図７に本実施の形態のブロック図を示す。
設計対象回路101は検証のターゲットとしてCAD上で設計された回路であり、この設計対象回路101の動作を確認するために、テストベンチ100が構成されている。動作制御手段102は、ユーザーが準備した動作手順ファイル200を受け取って、その内容に従って、入力Ｉ／Ｆ103および出力Ｉ／Ｆ104，制御設定手段105に命令を出し、テストベンチ全体を動作させる。
【００３５】
入力Ｉ／Ｆ103は動作制御手段102より受けた命令に従い、設計対象回路101へ信号を入力する。
出力Ｉ／Ｆ104は、動作制御手段102より受けた命令に従い、設計対象回路101より信号を受け取る。
制御設定手段105は、動作制御手段102より設定命令がくると、予め読み込んだ制御手順ファイル201を必要な分だけ読み込んで設計対象回路101へ設定を行なう。
動作手順ファイル200は検証者がテストベンチ100を動作させるためのコマンド群を表記し、これを動作制御手段102に読み込ませて動作させる。制御手順ファイル201は検証者が設計対象回路101に設定をするコマンド群を表記し、これを動作制御手段105へ読み込ませて設定を行なう。
【００３６】
更に本実施の形態について説明する。複雑な機能と、そのバリエーションを有する設計対象回路101は、通常そのバリエーションをCPUからの命令によって設定されることで動作を実現する。このイメージを図８のシステム上の検証対象回路の位置付け例に示す。図８で設計対象回路101に命令を送るCPUとのＩ／Ｆ信号は、通常アドレスAddres，入力データDataIn，出力データDataOut，チップセレクトXCS，ライトイネーブルXWR，リードイネーブルXRDによって行われる。
【００３７】
CPUからのライト，リードの関係は図９に示したとおりであり、ライト期間は、アドレスとチップセレクト（以下、制御信号はLowアクティブ）がアクティブの時に、入力データを設定し、ライトイネーブルをアクティブにし、リード期間はアドレスとチップセレクトがアクティブの時に、リードイネーブルをアクティブにすれば出力データを読み込めるようになっているもので、依存するCPUやＩ／Ｆによって多少の違いはあるにしろ、ライト／リード事の信号の関係は以上のような仕様によって決定される。
【００３８】
本実施の形態はこのCPU動作も保証するシステムであり、図７の動作制御手段105は、制御手順ファイル201に指定されたデータをもとに、設計対象回路101へ制御命令の信号を設定する。検証者によって作成される制御手順ファイル201の情報は、次の通りである。
設計対象回路101へのリードもしくはライトの指定
設定するアドレス情報
設定するデータ情報（但し、リード時には必要なし）
【００３９】
この組み合わせで一つの命令として機能し、この組み合わせが、設計対象回路101へ命令する数だけのセット数羅列されている。この際、動作制御手段105がいつ設計対象回路101へ命令を送るかのタイミングは、動作手順ファイル200に記述され、それを受け取った動作制御手段102がタイミングをはかって、動作制御手段105へ命令をすることで実現する。つまり、検証者が準備する動作手順ファイル200および制御手順ファイル201により、信号の時間的動作および、設計対象回路101に対するコマンド設定を容易に行なうことを可能とする。
【００４０】
以下に制御手順ファイル201と動作手順ファイル200の具体的な例を示しながら説明する。図９に示したCPUとのＩ／Ｆの実現手段の例として、以下のような制御手順ファイルを示す。この場合、CPUの命令を伝えるための信号のセット、つまり｛Addresｓ、DataIn、XCS、XWR、XRD，DataOut｝のタイミングは、設計対象回路101とCPUとのＩ／Ｆによって予め決定されているため、動作時に必要となるのは以下の項目として指定する。
【００４１】
[▲１▼リードイネーブル] [▲２▼ライトイネーブル] [▲３▼レジスタ名] [▲４▼データ値]
▲１▼リードイネーブル：XRD信号のHigh(1)/Low(0)を指定
▲２▼ライトイネーブル：XWR信号のHigh(1)/Low(0)を指定
▲３▼レジスタ名：レジスタ名指定→変換テーブルを持ってアドレスに変換する
▲４▼反復回数：CPUアクセス時のアドレス幅を指定
但し、動作手順ファイル200での指定で、同期／非同期の場合は
同期：幅をclk数で指定
非同期：幅をns単位で指定
【００４２】
また、その命令をどの時点で行なうかについては、タイミングを指定する動作手順ファイル200にて、以下のように行なう。
[▲１▼動作時間] [▲２▼形式] [▲３▼動作対象] CPU req [▲４▼反復回数] [▲５▼リクエスト幅]
▲１▼／▲２▼／▲３▼は、制御信号の指定内容と同じ
▲４▼反復回数
▲５▼リクエスト幅
【００４３】
これらの具体例を以下に示す。
図１０（ａ）に示す制御手順ファイル201を準備し、CPUからのレジスタ設定内容を記述し、そのタイミングを図１０（ｂ）に示す動作手順ファイル200で行なうことで、CPUからのアクセスに関するテストを行なうことが可能になる。
また、CPUの設定に関する変更も、これらのファイルの指定を変更するだけで済むこととなる。
【００４４】
（III）第３の実施の形態
本実施の形態のブロック図を図１１に示す。
設計対象回路101は検証のターゲットとしてCAD上で設計された回路であり、この設計対象回路101の動作を確認するために、テストベンチ100が構成されている。動作制御手段102は、ユーザーが準備した動作手順ファイル200を受け取って、その内容に従って、入力Ｉ／Ｆ103および出力Ｉ／Ｆ104、制御設定手段105に命令を出し、テストベンチ全体を動作させる。
【００４５】
入力Ｉ／Ｆ103は動作制御手段102より受けた命令に従い、外部の画像データファイルを取り込んで設計対象回路101へ信号として画像データを入力する。
出力Ｉ／Ｆ104は、動作制御手段102より受けた命令に従い、設計対象回路101より信号を受け取る。
制御設定手段105は、動作制御手段102より設定命令がくると、予め読み込んだ制御手順ファイル201を必要な分だけ読み込んで設計対象回路101へ設定を行なう。
動作手順ファイル200は検証者がテストベンチ100を動作させるためのコマンド群を表記し、これを動作制御手段102に読み込ませて動作させる。
制御手順ファイル201は検証者が設計対象回路101に設定をするコマンド群を表記し、これを動作制御手段105へ読み込ませて設定を行なう。
【００４６】
この入力Ｉ／Ｆ103が受ける入力画像ファイルの情報には、次の通りである。
入力画像ファイルのデータ形式
画像データの情報（Ｘ方向、Ｙ方向の大きさ）
設計対象回路101へデータを入力する際の形式（４ビットパッキングなど）
これらは動作手順ファイル200において予め指定しておくことで、それを動作制御手段102が読み込んで入力Ｉ／Ｆ103へ通知し、画像データの入力開始、および終了を指示する。これにより、可視的な入力情報を設計対象回路101に入力して検証することが可能となる。
【００４７】
以下に画像イメージを入力する際の設定手段例を示す。これを動作手順ファイル200で指定し、ベクター化した入力画像イメージを準備することで画像データの入力が容易になる。
【００４８】
(1)入力画像イメージの指定
[▲１▼動作時間] [▲２▼形式] [▲３▼動作対象] area [▲４▼主走査サイズ] [▲５▼副走査サイズ]
▲１▼／▲２▼／▲３▼は、制御信号、CPU信号と同じ
▲４▼主走査サイズ：入力画像の主走査サイズ
▲５▼副走査サイズ；
(2)入力画像のスタート
[▲１▼動作時間] [▲２▼形式] [▲３▼動作対象] rd [▲４▼遅延] [▲５▼主走査開始] [▲６▼画像フォーマット]
▲１▼／▲２▼／▲３▼は、制御信号、CPU信号と同じ
▲４▼遅延：画像データ開始のclkからの遅延量(ns)
▲５▼主走査開始：画像データ開始のxlsyncからの遅延量(clk)
▲６▼画像フォーマット：画像フォーマット種類
※画像フォーマット種類：
８ビット多値(0)、８ビット多値F/L分割(1)、２ビット多値パッキング(2)、
二値パッキング(3)、８ビット多値E/Ｏ(４)、４ビット多値Ｅ/Ｏ(５)、
８ビット多値F/L(L側反転)分割(６)、二値4画素パッキング2分割（上位4ビット下位4ビット）(7)
【００４９】
ここで、図１２は入力画像イメージと設計対象回路101へ実際に入力する画像の関係を表している。401のようなイメージを入れたい場合、波形ツールなどでは402のようなデータの列を直接指定していかなくてはならなく、またその場合は入力するイメージも掴み難いが、このように直接画像ファイルを入れるようにした場合、視覚的に入力画像データを捉えられる為、特に普通紙サイズに近い、大規模な画像の検証を行なうには直感的に判断し易くなる。図１３に、具体的な動作手順ファイル200の指定の例を示す。
この指定により、例えば、同じような制御信号郡やCPU命令を用いて、異なるサイズやフォーマットの画像を検証したい場合も、areaやrdの命令を変更したり、読み込ませる画像ファイルを入れ替えるだけで容易にテストパターンの作成が出来ることになる。
【００５０】
（IV）第４の実施の形態
本実施の形態のブロック図を図１４に示す。
設計対象回路101は検証のターゲットとしてCAD上で設計された回路であり、この設計対象回路101の動作を確認するために、テストベンチ100が構成されている。
動作制御手段102は、ユーザーが準備した動作手順ファイル200を受け取って、その内容に従って、入力Ｉ／Ｆ103および出力Ｉ／Ｆ104、制御設定手段105に命令を出し、テストベンチ全体を動作させる。
入力Ｉ／Ｆ103は動作制御手段102より受けた命令に従い、外部の画像データファイルを取り込んで設計対象回路101へ信号として画像データを入力する。
【００５１】
出力Ｉ／Ｆ104は、動作制御手段102より受けた命令に従い、設計対象回路101より信号を受け取って画像データファイルとして出力することを可能とする。
制御設定手段105は、動作制御手段102より設定命令がくると、予め読み込んだ制御手順ファイル201を必要な分だけ読み込んで設計対象回路101へ設定を行なう。
動作手順ファイル200は検証者がテストベンチ100を動作させるためのコマンド群を表記し、これを動作制御手段102に読み込ませて動作させる。
制御手順ファイル201は検証者が設計対象回路101に設定をするコマンド群を表記し、これを動作制御手段105へ読み込ませて設定を行なう。
【００５２】
この出力Ｉ／Ｆ104が受ける出力画像ファイルの情報には、
出力画像ファイルのデータ形式
設計対象回路101からデータを出力する際の形式（４ビットパッキングなど）
などがあり、これらは動作手順ファイル200において予め指定しておくことで、それを動作制御手段102が読み込んで入力Ｉ／Ｆ103へ通知し、画像データの入力開始が指示されることで、xfgateおよびxlgateのアクティブ期間に従って、受け取った出力データ信号を画像データファイルとして出力する。
【００５３】
これにより、検証者は、波形による仕様の確認のみならず、入力画像と出力画像を見比べることで、マクロ的な大きさを持つ画像の検証のみならず、特に、副走査方向の変化については、波形で追うことが難しいこともあり、画像の視覚的な検証を飛躍的に容易にすることが可能となる。
【００５４】
以下に、画像イメージ出力の指定の例と、図１５に設計対象回路101から出力データと出力画像イメージの関係例を示す。
(1) 出力画像イメージの指定
[▲１▼ 動作時間] [▲２▼形式] [▲３▼動作対象] wr [▲４▼出力画像フォーマット]
▲１▼／▲２▼／▲３▼は、制御信号、CPU信号、入力画像イメージと同じ
▲４▼出力画像フォーマット：入力画像イメージのフォーマットと同じ
【００５５】
図１５では、図１２にて設計対象回路101に入れた画像が、反転されて出力した場合を示している。この場合、特に画像サイズが大きくなった場合、一次元的な波形を追い掛けて主走査、特に副走査にまたがる二次元的な入力と出力を比較するのが大きな作業になるのに対して、入出力の画像データで視認し、重ね合わせで比較することに、威力が発揮される。
また、図１６に示すように、これら指定により、画像イメージを入力して、出力を波形で確認するのに加え、画像データ出力のフォーマット形式の設定も容易であり、メンテナンス性も高いことがわかる。
【００５６】
【発明の効果】
以上説明したように本発明によれば、以下の効果を発揮することができる。請求項１によれば、テストパターンの作成，変更，追加を容易に素早く行なうことができる。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態のブロック図であって、（ａ）は全体構成図、（ｂ）設計対象回路の構成図である。
【図２】同実施の形態における原稿と制御信号の関係を示す図である。
【図３】同実施の形態における画像走査の具体例を示す図である。
【図４】同実施の形態におけるデータとタイミングの例を示すタイムチャートである。
【図５】同実施の形態における各種命令情報を示す図であって、（ａ）はクロックの命令情報、（ｂ）はxlsync，xlgateの命令情報、（ｃ）はxfgateの命令情報である。
【図６】同実施の形態における動作手順ファイルに格納したプログラムである。
【図７】本発明の第２の実施の形態のブロック図である。
【図８】同実施の形態におけるシステム上の検証対象回路の位置付けを示す図である。
【図９】同実施の形態におけるCPUとのＩ／Ｆのタイミングを示す図であって、（ａ）は書き込みタイミング、（ｂ）は読み出しタイミングである。
【図１０】同実施の形態におけるプログラムであって、（ａ）はレジスタ設定内容の記述、（ｂ）はCPUからタイミングである。
【図１１】本発明の第３の実施の形態のブロック図である。
【図１２】同実施の形態における入力画像イメージと設計対象回路への入力画像データの関係を示す図である。
【図１３】同実施の形態におけるプログラムである。
【図１４】本発明の第４の実施の形態のブロック図である。
【図１５】同実施の形態における設計対象回路からの出力データと出力画像イメージの関係を示す図である。
【図１６】同実施の形態におけるプログラムである。
【図１７】従来のシステム上の検証対象回路の位置付けを示す図である。
【図１８】従来のテストベンチを説明するモデルの概念図であって、（ａ）は直接テストベンチを生成するモデル、（ｂ）はツールによりテストベンチを生成するモデルである。
【符号の説明】
１００…テストベンチ
１０１…設計対象回路
１０２…動作制御手段
１０３…入力I/F
１０４…出力I/F
１０５…制御設定手段
２００…動作手順ファイル
２０１…制御手順ファイル
２０２…入力画像ファイル
２０３…出力画像ファイル
４０１…入力画像イメージ
４０２…設計対象回路への画像データ
【図１】
0004146097.tif 000002
【図２】
0004146097.tif 000003
【図３】
0004146097.tif 000004
【図４】
0004146097.tif 000005
【図５】
0004146097.tif 000006
【図６】
0004146097.tif 000007
【図７】
0004146097.tif 000008
【図８】
0004146097.tif 000009
【図９】
0004146097.tif 000010
【図１０】
0004146097.tif 000011
【図１１】
0004146097.tif 000012
【図１２】
0004146097.tif 000013
【図１３】
0004146097.tif 000014
【図１４】
0004146097.tif 000015
【図１５】
0004146097.tif 000016
【図１６】
0004146097.tif 000017
【図１７】
0004146097.tif 000018
【図１８】
0004146097.tif 000019