以下、本発明の好適な実施の形態について詳細に説明する。なお以下に説明する本実施形態は特許請求の範囲に記載された本発明の内容を不当に限定するものではなく、本実施形態で説明される構成の全てが本発明の解決手段として必須であるとは限らない。
1.表示ドライバ
図1に、本実施形態の検証シミュレータの検証対象デバイスの一例である表示ドライバ510の構成例を示す。なお表示ドライバ510の構成は図1に限定されるものではなく、種々の変形実施が可能である。また本実施形態の検証シミュレータの検証対象デバイスは、表示ドライバ510には限定されず、種々のデバイスを採用できる。例えば検証対象デバイスは、ベースバンドエンジン、アプリケーションプロセッサ、画像処理コントローラなどのホストデバイスであってもよい。
表示パネル512は、複数のデータ線(ソース線)と、複数の走査線(ゲート線)と、データ線及び走査線により特定される複数の画素を有する。そして各画素領域における電気光学素子(狭義には、液晶素子)の光学特性を変化させることで、表示動作を実現する。この表示パネル512は、TFT、TFDなどのスイッチング素子を用いたアクティブマトリクス方式のパネルにより構成できる。なお表示パネル512は、アクティブマトリクス方式以外のパネルであってもよいし、液晶パネル以外のパネル(有機ELパネル等)であってもよい。
表示メモリ520(RAM)は画像データを記憶する。メモリセルアレイ522は複数のメモリセルを含み、少なくとも1フレーム(1画面)分の画像データ(表示データ)を記憶する。ローアドレスデコーダ524(MPU/LCDローアドレスデコーダ)はローアドレスについてのデコード処理を行い、メモリセルアレイ522のワード線の選択処理を行う。カラムアドレスデコーダ526(MPUカラムアドレスデコーダ)はカラムアドレスについてのデコード処理を行い、メモリセルアレイ522のビット線の選択処理を行う。ライト/リード回路528(MPUライト/リード回路)はメモリセルアレイ522への画像データのライト処理や、メモリセルアレイ522からの画像データのリード処理を行う。
ロジック回路540(例えば自動配置配線回路)は、表示タイミングやデータ処理タイミングを制御するための表示制御信号を生成する。このロジック回路540は例えばゲートアレイ(G/A)などの自動配置配線により形成できる。制御回路542は各種制御信号を生成したり、装置全体の制御を行う。表示タイミング制御回路544は表示タイミングの制御信号を生成し、表示メモリ520から表示パネル512側への画像データの読み出しを制御する。
内部インターフェース回路545(ドライバ側インターフェース回路)は、外部デバイス(ホストデバイス等)とのインターフェース処理を行う回路であり、ホストインターフェース回路546、RGBインターフェース回路548を含む。ホスト(MPU)インターフェース回路546は、ホストからのアクセス毎に内部パルスを発生して表示メモリ520にアクセスするホストインターフェースを実現する。RGBインターフェース回路548は、ドットクロックにより動画のRGBデータを表示メモリ520に書き込むRGBインターフェースを実現する。なおホストインターフェース回路546、RGBインターフェース回路548のいずれか一方のみを設ける構成としてもよい。或いは、カメラデバイス等とのインターフェースを実現するYUVインターフェース回路を設けてもよい。或いは、シリアルバスを介した高速シリアル転送を実現する高速シリアルインターフェース回路を設けてもよい。この高速シリアル転送では、シリアルバスの差動信号線を電流駆動又は電圧駆動することにより、外部デバイス(ホストデバイス等)との間での高速シリアル転送が実現される。
データドライバ550は、表示パネル512のデータ線を駆動するためのデータ信号を生成する回路である。具体的にはデータドライバ550は、表示メモリ520から画像データである階調データを受け、階調電圧生成回路610から複数(例えば64段階)の階調電圧(基準電圧)を受ける。そして、これらの複数の階調電圧の中から、階調データに対応する電圧を選択して、データ信号(データ電圧)として表示パネル512の各データ線に出力する。
走査ドライバ570は表示パネルの走査線を駆動するための走査信号を生成する回路である。具体的には、内蔵するシフトレジスタにおいて信号(イネーブル入出力信号)を順次シフトし、このシフトされた信号をレベル変換した信号を、走査信号(走査電圧)として表示パネル512の各走査線に出力する。なお走査ドライバ570に、走査アドレス生成回路やアドレスデコーダを含ませ、走査アドレス生成回路が走査アドレスを生成して出力し、アドレスデコーダが走査アドレスのデコード処理を行うことで、走査信号を生成してもよい。
電源回路590は各種の電源電圧を生成する回路である。具体的には、入力電源電圧や内部電源電圧を、内蔵する昇圧回路が含む昇圧用キャパシタや昇圧用トランジスタを用いてチャージポンプ方式で昇圧する。そして昇圧により得られた電圧を電源電圧として、データドライバ550、走査ドライバ570、階調電圧生成回路610に供給する。
階調電圧生成回路610(γ補正回路)は階調電圧を生成する回路である。具体的には、内蔵する電圧分割回路(選択用電圧生成回路)が分割電圧を生成し、内蔵する階調電圧生成回路が、生成された分割電圧の中から例えば64個(64階調)の階調電圧を選択して、データドライバ550に出力する。
2.検証シミュレータ
図1に示す表示ドライバ510などの検証対象デバイスの動作を検証する場合に、これまでの検証シミュレーション手法では、図2(A)に示すように、Verilogの記述を用いてテストパターン(テスト入力情報)を(1、0)のバイナリデータで作成して、検証対象デバイスモデル2に入力していた。或いは、テストパターンの信号タイミングをタスク記述し、それを繰り返し使用することで、信号入力の簡略化を図っていた。なお検証対象デバイスモデル2は、検証対象デバイスの動作が記述されたモデルである。
しかしながら、検証対象デバイスである表示ドライバの仕様は、年々、複雑になって来ており、テストパターンをバイナリデータの信号入力で作成することは、非現実的になっている。またタスク記述を用いる手法においても、複数の形式のインターフェース信号の記述を個別に用意してしまうと、仕様毎に異なるテストパターンの記述が必要になってしまう。このためテストパターンの管理が煩雑化するなどの問題が生じる。
そこで本実施形態では図2(B)(C)に示すように、検証対象デバイスの外部デバイスが含む外部インターフェース回路の動作が記述された外部インターフェース回路モデル130を用意する。即ち検証対象デバイスモデル2の内部インターフェース回路モデルに入力されるインターフェース信号を生成する外部インターフェース回路モデル130を用意する。またテスト入力情報150(テストベンチ)に、検証対象デバイスのレジスタに設定されるべきコマンドが記述されたコマンドファイル152を含ませる。
そしてコマンドファイル152を外部インターフェース回路モデル130に入力し、コマンドファイルに基づき外部インターフェース回路モデル130により生成されたインターフェース信号のデータ(バイナリデータ)を、検証対象デバイスモデル2に入力するシミュレーション処理を行う。例えば図2(B)では、外部インターフェース回路モデル130により、第1の形式のインターフェース信号のデータが生成されて、検証対象デバイスモデル2に入力されている。一方、図2(C)では、外部インターフェース回路モデル130により、第2の形式のインターフェース信号のデータが生成されて、検証対象デバイスモデル2に入力されている。
このように本実施形態の手法では、外部インターフェース回路モデル130を設けることで、様々な形式のインターフェース信号のデータを生成して、検証対象デバイスモデル2に入力することに成功している。
図3に本実施形態の手法を実現できる検証シミュレータの構成例を示し、図4に、検証シミュレータのシミュレーション環境の例を示す。なお以下では、検証対象デバイスが表示ドライバである場合を主に例に取り説明を行う。
図3において、記憶部200は、表示ドライバ、表示パネル、外部デバイス(ホストデバイス)などのデバイスの動作が記述されたモデルの情報を記憶する。この記憶部200の機能は、検証用のワークステーション(広義にはコンピュータシステム)に組み込まれるメモリ(RAM)やハードディスクなどのハードウェアにより実現される。また記憶部200にその情報が記憶されるモデルとしては、Verilogのビヘイビア(Behavior)モデルなどの抽象度が高いビヘイビアレベルのモデルや、ビヘイビアレベルより抽象度が低いRTL(Register Transfer Level)のモデルや、RTLよりも抽象度が低いネットリストなどの論理レベルのモデルを用いることができる。
シミュレーション処理部210(シミュレーション実行部)は、記憶部200に記憶されたモデルと、テスト入力情報150とに基づいて、検証対象デバイスのシミュレーション処理を行う。このシミュレーション処理部210の機能は、検証用ワークシステムに組み込まれるCPUなどのハードウェアと、検証用ソフトウェアにより実現できる。そして検証用ソフトウェアとしては、Verilogなどの論理シミュレーションのソフトウェアを使用してもよいし、SPICEなどのアナログシミュレーションのソフトウェアを使用したり、論理シミュレーションのソフトウェアとアナログシミュレーションのソフトウェアを混在させたものを使用してもよい。
テスト入力情報150(テストベンチ、テストデータ)は、コマンドファイル152を含むことができる。このコマンドファイル152には、表示ドライバ(広義には検証対象デバイス)を動作させるためのコマンドとレジスタ(コマンドレジスタ)に設定されるべきパラメータが記述されている。即ちコマンドファイル152には、これらのコマンドが羅列されて記述される。またテスト入力情報150は、RGBデータなどの画像データ154を含むことができる。この画像データ154は、テスト入力用の画像データファイル156から抽出できる。
シミュレーション処理部210が出力する画像データファイル160は、テスト入力情報150が含む画像データ154により表示パネルに表示されるべき画像を、検証用ワークステーションの表示装置(CRT、モニタ)に表示するためのものである。この画像データファイル160としては、ASCII形式で最も簡単なPPM(Portable Pix Map)の画像形式などを用いることができる。PPMを用いればUNIXのユーティリティソフトなどにより、ワークステーションの表示装置に画像データを容易に表示できる。
図4に示すようにシミュレーション環境を構成するモデルとしては、表示ドライバの動作が記述された表示ドライバモデル10や、表示ドライバにより駆動される表示パネルの動作が記述された表示パネルモデル90がある。また表示ドライバの外部デバイスが含む外部インターフェース回路(ホスト側インターフェース回路)の動作が記述された外部インターフェース回路モデル130がある。なお表示ドライバの初期状態を設定するための不揮発性メモリ(EEPROM)の動作が記述された不揮発性メモリモデルを用いてもよい。また外部インターフェース回路を含む外部デバイスとしては、MPU(Micro Processor Unit)、ベースバンドエンジン、アプリケーションプロセッサ、画像処理コントローラ(表示コントローラ)などのデバイス(ホストデバイス)がある。
図4では表示ドライバモデル10は、データ信号を出力するデータドライバの動作が記述されたデータドライバモデル20を含む。また走査信号を出力する走査ドライバの動作が記述された走査ドライバモデル30や、画像データである階調データを記憶する表示メモリの動作が記述された表示メモリモデル40を含む。また表示ドライバモデル10は、電源回路の動作が記述された電源回路モデル50や、階調電圧を生成する階調電圧生成回路の動作が記述された階調電圧生成回路モデル60や、表示制御信号を少なくとも生成するロジック回路の動作が記述されたロジック回路モデル70を含む。またMPUインターフェース回路やRGBインターフェース回路やYUVインターフェース回路や高速シリアルインターフェース回路などの内部インターフェース回路の動作が記述された内部インターフェース回路モデル80を含む。
そして本実施形態では図3のシミュレーション処理部210が、テスト入力情報150と表示ドライバモデル10と表示パネルモデル90に基づいてシミュレーション処理を行う。具体的には、コマンドファイル152を外部インターフェース回路モデル130に入力し、コマンドファイル152に基づき外部インターフェース回路モデル130により生成された所与の形式のインターフェース信号のデータを、検証対象デバイスモデルである表示ドライバモデル10に入力するシミュレーション処理を行う。
この場合に、外部インターフェース回路モデル130によりデータを生成できるインターフェース信号としては、MPUインターフェース信号、RGBインターフェース信号がある。或いはシリアルインターフェース信号(CMOSレベルのシリアルインターフェース信号、差動シリアルインターフェース信号)やYUVインターフェース信号などがある。そしてシミュレーション処理部210は、外部インターフェース回路モデル130により生成されたMPUインターフェース信号、RGBインターフェース信号、シリアルインターフェース信号及びYUVインターフェース信号の少なくとも1つのインターフェース信号のデータを、検証対象デバイスモデルである表示ドライバモデル10に入力するシミュレーション処理を行う。
図4に示すように本実施形態によれば、表示パネルモデル90、外部インターフェース回路モデル130などの周辺デバイスのモデルを加えた実装イメージでのシステムシミュレーションを実現できる。また表示ドライバ内部のアナログブロック(データドライバ、走査ドライバ、階調電圧生成回路、電源回路等)を、Verilogのビヘイビアモデルなどでモデル化している。またシミュレーション結果の変換を行い、表示イメージでの視覚検証を可能にしている。
具体的には外部インターフェース回路モデル130(MPUモデル)に、テストベンチとして記述されたコマンドファイル152(MPUコマンド)を入力し、外部インターフェース回路モデル130の変換処理により、MPUインターフェース信号やRGBインターフェース信号などのインターフェース信号のデータを生成する。そして、表示ドライバモデル10の端子に、インターフェース信号のバイナリデータを入力する。同様に、画面に表示させる画像データ154も、外部インターフェース回路モデル130を介して表示ドライバモデル10に入力する。この画像データ154としては例えばRGBフォーマットのデータを使用する。なおYUVフォーマットのデータを使用してもよい。
また表示ドライバの内部ブロックは、ロジック回路(ゲートアレイ)以外は、アナログ回路を含むアナログブロックが大半を占める。そしてアナログブロックは、ネットリスト出力によるVerilogの論理シミュレーションでは正しい動作を検証できないため、ブロックレベルの動作を記述したVerilogのビヘイビアモデルを使用する。このアナログブロックのビヘイビアモデルの作り方により、アナログ動作の検証レベルが変わってくるが、本実施形態では、例えばパワーオンシーケンスなどのアナログ制御動作を、論理シミュレーションで検証可能にしている。
具体的にはアナログブロックのビヘイビアモデルの特殊表現としては以下のものがある。例えばデータドライバでは表示メモリからの階調データをD/A変換して、階調電圧であるデータ電圧を発生させている。しかしながら、階調電圧値はアナログ値であり、論理シミュレーターでは表現できない。そこで図4では、表示メモリモデル40からの画像データである例えば6ビット(広義にはNビット)の各階調データを、データドライバモデル20に設けられた仮想的な各内部レジスタに格納する。そして各内部レジスタに格納された階調データに対して変換処理(極性反転処理、RGB反転処理或いは減色モード処理等)を行い、変換処理が行われた後の階調データを、データ信号のデータとして表示パネルモデル90に入力する。
また表示パネルの走査信号に出力される走査電圧値はアナログ値であり、論理シミュレーションでは表現できない。そこで走査ドライバモデル30では、走査電圧(選択電圧)の発生を論理「1」で表現している。
また昇圧動作による発生電圧の電位差はアナログ値であり、論理シミュレーションでは表現できない。そこで電源回路モデル50では、昇圧条件を判定し、昇圧電圧の発生を論理「1」で表現している。即ち昇圧条件が満たされると、論理「1」を出力するようにしている。同様に抵抗分割により得られる階調電圧値はアナログ値であり、論理シミュレーションでは表現できない。そこで階調電圧生成回路モデル60では、動作条件を判定し、階調電圧の発生を論理「1」で表現している。即ち動作条件が満たされると、論理「1」を出力するようにしている。そして電源回路や階調電圧生成回路が正常に動作していないと、これらの回路から信号を受けて動作するデータドライバや走査ドライバが動作しないように、データドライバや走査ドライバのビヘイビアモデルを作成する。即ち電源回路モデル50や階調電圧生成回路モデル60から論理「1」が出力されていないと動作を開始しないようなモデルに、データドライバモデル20や走査ドライバモデル30を作成する。こうすることで、パワーオンシーケンスなどのアナログ制御動作が、論理シミュレーションで検証可能になる。
なお図4では、ロジック回路モデル70として、ロジック回路(ゲートアレイ)のネットリストを使用している。即ちロジック回路(図1の540)は、アナログ要素を含まず、ネットリストをそのままVerilog等の論理シミュレータに入力できる。またロジック回路の構成、動作は、仕様により随時変更される。従って、ロジック回路モデル70については、ロジック回路のネットリストをそのまま使用してVerilog等の論理シミュレーションを行うようにする。こうすることでシミュレーション精度を向上できると共に、様々な仕様の表示ドライバに対して本実施形態の検証シミュレーション手法を容易に適用できるようになる。なお内部インターフェース回路モデル80についても、少なくともその一部に内部インターフェース回路のネットリストを使用するようにしてもよい。
3.外部インターフェース回路モデルを用いる手法の詳細
次に、外部インターフェース回路モデル130を用いる本実施形態の手法の詳細について説明する。図5にコマンドファイル152の一例を示す。図5のC1に示すIMODEは、インターフェースモードを指定するコマンドである。外部インターフェース回路モデル130では、このIMODEで指定される形式のインターフェース信号のデータが生成され、表示ドライバモデル10に入力される。例えば図5のC1では、16ビットのバス幅で、RAMのリード、ライトが可能なMPUインターフェース信号のモードが指定されている。
図5のC2に示すCmdVDDONは、VDDのレギュレータを動作状態にし、内部の基準電圧発生回路を起動するためのコマンドである。C3に示すCmdSoftResetは、ハードリセットを行うことなくハードリセットと同様のリセット(ソフトリセット)を行うためのコマンドである。C4に示すCmdSetPwrCtlは、電源回路の機能のオン、オフや能力を制御する電源設定を行うためのコマンドであり、電源設定の詳細についてはパラメータで指定される。C5に示すCmdSetPtlPwrCtlは、パーシャル表示時の非表示領域及びフロントポーチ期間の電源設定を行うためのコマンドであり、電源設定の詳細についてはパラメータで指定される。
C6に示すCmdSetScanModは、走査ドライバのスキャンモードを設定するためのコマンドであり、例えばパラメータにより順方向スキャンや逆方向スキャンが設定される。C7に示すCmdSetAltDrvは、交流駆動の状態を設定するためのコマンドであり、例えばパラメータにより1ライン反転駆動、2ライン反転駆動、フレーム反転駆動、インターレス駆動が設定される。C8に示すCmdSleepOutは、自動オンシーケンスを実行するためのコマンドである。C9に示すCmdWrRamは、表示メモリであるRAMへのライトコマンドである。C10に示すTaskFillMemは画像データを指定して送るためのコマンドである。C11に示すCmdOnDispは、表示パネルをオンにするためのコマンドであり、このコマンドにより、表示メモリに格納された画像データが階調電圧に変換され、表示パネルへの画像表示が開始する。C12、C13に示すCmdPartialInは、パーシャル表示状態の設定を行うためのコマンドであり、パラメータによりパーシャル開始ラインやパーシャル終了ラインなどが設定される。なおC14、C15はウェイト時間を指定するためのものである。
図5に示すようなコマンドファイル152に記述されたコマンドにより、表示ドライバ(検証対象デバイス)の動作モードが指定される。そして、これらのコマンドで指定される動作モードに表示ドライバを設定するためのインターフェース信号のデータが、表示ドライバモデル10に入力されるようになる。
図6(A)(B)にMPUインターフェース信号の例を示す。図6(A)はライト時の例であり、図6(B)はリード時の例である。図6(A)(B)や図7(A)に示すように、データ/コマンド識別信号A0が「0」(ローレベル)でライト信号XWR(Xは負論理を表す)が「0」である場合には、コマンドライトが行われ、信号A0が「0」でリード信号XRDが「0」である場合には、リビジョンリードが行われる。また信号A0が「1」(ハイレベル)で信号XWRが「0」である場合には、RAMライト(表示メモリへの画像データのライト)又はコマンドパラメータのライトが行われ、信号A0が「1」で信号XRDが「0」である場合には、RAMリード(表示メモリからの画像データのリード)が行われる。
図6(C)にシリアルインターフェース信号の例を示す。図6(C)はライト時のシリアルインターフェース信号の例である。図6(C)において、D/Cはデータとコマンドを識別を意味し、Cnはコマンドのビットnを意味する。またPnはコマンドパラメータのビットnを意味する。9ビットのシリアルデータ(1パケット)の転送中は、チップセレクト信号XCSを「0」に保つ必要があり、1パケットの転送中に信号XCSを「1」にすると、転送中のパケットはキャンセルされる。そして再び信号XCSを「0」にすることで、パケットの再転送の受け付け状態になる。
図6(D)にRGBインターフェース信号の例を示す。RGBインターフェースは動画表示に最適なインターフェースであり、表示メモリへの画像データのライトが行われる。図6(D)に示すように、RGBインターフェースでは、表示タイミング基準クロック信号にDOTCLKを用いる。また垂直同期信号VSYNCIの立ち下がりエッジの検出後、水平同期信号HSYNCの立ち下がりエッジを検出した時点で、強制的にフレーム先頭(バックポーチの1ライン目)に同期を行う。バックポーチライン数、表示ライン数は、表示ドライバのレジスタへのコマンドで設定する。またRGBインターフェースでは、信号VSYNCI、HSYNC、ENABLE、画像データD17〜D0は、クロック信号DOTCLKの立ち下がりエッジで読み込まれる。そして信号ENABLEが「0」の期間でのみ、1画素(RGB)の画像データを表示メモリに書き込む。
なお外部インターフェース回路モデル130により生成できるインターフェース信号は、図6(A)〜(D)に示すようなMPUインターフェース信号、シリアルインターフェース信号、RGBインターフェース信号に限定されない。例えば図6(E)に示すようなYUVインターフェース信号(カメラインターフェース信号)を生成するようにしてもよい。
図6(E)はカメラデータが8ビットのYUVフォーマットである場合の信号CMVREF、CMHREF、CMDAT[7:0]の波形例である。ここでCMVREF、CMHREFは、各々、垂直同期信号、水平同期信号に相当する。またカメラデータであるCMDAT[7:0]は、図示しないクロック信号CMCLKINにより取り込まれる。
表示ドライバがYUV−RGBの変換回路を有する場合には図6(E)のYUVインターフェース信号が用いられる。そしてカメラデバイスから出力されるYUVデータを表示ドライバに入力し、表示ドライバのYUV−RGB変換回路を用いてRGBデータに変換して表示メモリに書き込む。
またシリアルインターフェース信号は図6(C)に示すようなCMOS電圧レベルの信号に限定されず、差動信号等を用いた小振幅のシリアル信号(LVDS)であってもよい。これにより高速シリアル転送を実現できる。
即ち、一般的な携帯電話機は、電話番号入力や文字入力のためのボタンが設けられる第1の機器部分と、LCD(Liquid Crystal Display)やカメラデバイスが設けられる第2の機器部分と、第1、第2の機器部分を接続するヒンジなどの接続部分により構成される。従って、第1の機器部分に設けられる第1の回路基板と、第2の機器部分に設けられる第2の回路基板との間のデータ転送を、小振幅の差動信号を用いた高速シリアル転送により行えば、接続部分を通る配線の本数を減らすことができ、設計の自由度を広げることができると共に、EMIノイズの低減を図れる。
図8(A)(B)にMDDI規格の高速シリアル転送手法の例を示す。なお本実施形態における高速シリアル転送手法は図8(A)(B)に限定されるものではなく、採用される規格に応じて種々の手法を採用できる。
図8(A)において、物理層回路340(トランシーバ)はホストデバイスに内蔵され、物理層回路330は表示ドライバに内蔵される。また336、342、344はトランスミッタ回路であり、332、334、346はレシーバ回路である。また338、348はウェイクアップ検出回路である。ホスト側のトランスミッタ回路342は差動ストローブ信号STB+/−を駆動する。そしてクライアント側のレシーバ回路332は、駆動により抵抗RT1の両端に発生した電圧を増幅し、ストローブ信号STB_Cを後段の回路に出力する。またホスト側のトランスミッタ回路344はデータ信号DATA+/−を駆動する。そしてクライアント側のレシーバ回路334は、駆動により抵抗RT2の両端に発生した電圧を増幅し、データ信号DATA_C_HCを後段の回路に出力する。
図8(B)に示すように送信側は、データ信号DATAとクロック信号CLKの排他的論理和をとることで、ストローブ信号STBを生成し、このSTBを高速シリアルバスを介して受信側に送信する。そして受信側は、受信したデータ信号DATAとストローブ信号STBとの排他的論理和をとることで、クロック信号CLKを再生する。
図8(A)で説明したような高速シリアルインターフェース回路を表示ドライバに内蔵させた場合、これをテストするために設計者は、図8(B)に示すようなテストパターンを作成する必要がある。しかしながら、高速シリアル転送ではデータがシリアル化されて転送されるため、データの意味を設計者が直感的に認識することは難しく、有効なテストパターンの作成は困難である。
この点、本実施形態によれば、設計者が図5に示すようなコマンドファイルを作成して入力すれば、図8(B)に示すような波形の高速シリアルインターフェース信号が自動的に生成されるようになるため、設計者の検証作業の労力を大幅に低減できる。
図9(A)(B)に外部インターフェース回路モデル130の構成例を示す。図9(A)は、図6(A)(B)のMPUインターフェース信号や図6(C)のシリアルインターフェース信号の生成を実現するモデルの例である。なお図6(D)のRGBインターフェース信号の生成についても同様のモデルにより実現できる。
コマンド処理タスク部132は、テスト入力情報150(コマンドファイル、画像データ)に基づいてコマンドレベルのタスク処理を行う。具体的にはコマンドとパラメータの識別処理を行う。またインターフェースモード指定コマンド(IMODE)により指定されるインターフェースが、パラレル転送なのかシリアル転送なのかを識別したり、ライトなのかリードなのかを識別する処理を行う。
信号生成タスク部134は、コマンド処理タスク部132からの変数レベルでの入力を受け、信号レベルでの処理を行う。即ち入力されたコマンドファイルのコマンドや画像データに基づいて、タイミング等を考慮しながら、インターフェース信号XCS、XRES、A0、XRD、XWR、IF1、IF2、IF3、DATA[N:0]、SCL、SDに対してバイナリデータ「1」「0」の割り振りを行う。これにより図6(A)(B)(C)に示すようなMPUインターフェース信号、シリアルインターフェース信号のデータが生成されて、表示ドライバモデル10に入力されるようになる。
なお図7(B)にインターフェース選択信号IF1、IF2、IF3の意味を示す。例えば図5のC1に示すインターフェースモード指定コマンドIMODEにより、16ビット幅のパラレル転送のインターフェースモードが指定されると、図7(B)に示すように信号IF1、IF2、IF3が「0」に設定されて表示ドライバモデル10に入力される。図7(B)の18ビットパラレル、8ビットパラレル、9ビットパラレル、9ビットシリアルについても同様である。
図9(B)は、図8(A)(B)で説明した高速シリアルインターフェース信号の生成を実現するモデルの例である。
コマンド処理タスク部133は、テスト入力情報に基づいてコマンドレベルのタスク処理を行う。具体的には、レジスタアクセスパケット(コマンドやコマンドパラメータの転送用パケット)なのか、ビデオパケット(画像データ転送用パケット)なのかを識別する処理を行う。またライトなのかリードなのかを識別する処理を行う。
信号生成タスク部135は、コマンド処理タスク部133からの変数レベルでの入力を受け、信号レベルでの処理を行う。即ち入力されたコマンドファイルのコマンドや画像データに基づいて、タイミング等を考慮しながら、高速シリアルインターフェース信号DATA+、DATA−、STB+、STB−、ENABLEに対してバイナリデータ「1」「0」の割り振りを行う。これにより図8(A)(B)で説明した高速シリアルインターフェース信号のデータが生成されて、表示ドライバモデル10に入力されるようになる。
以上のような外部インターフェース回路モデル130を用いる本実施形態の手法によれば以下の利点がある。即ちVerilog記述やタスク記述を用いてテストパターンを生成する手法では、検証対象デバイスの仕様が複雑になるにつれて、テストパターンの作成が非現実的になったり、テストパターンの管理が繁雑化するなどの問題があった。
これに対して外部インターフェース回路モデル130を用いる本実施形態の手法によれば、設計者が簡単なモード設定を行うことで、様々なMPUタイプ(C80系、68系)、転送モード(パラレル転送、シリアル転送)、バス幅(8、9、16、18ビット)のインターフェース信号のデータが自動生成されて、表示ドライバモデル10に入力されるようになる。従ってテスト入力情報(テストパターン)の作成の工数を大幅に減らすことができ、開発期間の短縮化を図れる。
また、設計者が、図5に示すようなコマンドが羅列されたコマンドファイルを作成するだけで、図6(A)〜(E)に示すような様々なタイプのインターフェース信号が生成されるようになる。即ち設計者は、表示ドライバの設計仕様書に従ったコマンドを記述して、図5に示すようなコマンドファイルを作成するだけで、様々なタイプのインターフェース信号が自動生成される。従って設計者は、Verilogの記述フォーマットを熟知していなくても、容易にテスト入力情報を作成できるようになり、テスト入力情報の作成を容易化できる。
また同じ画像データを用いながら、コマンドファイルのコマンド記述を変えるだけで、異なる形式の様々なインターフェース信号のデータが自動生成されるようになるため、テスト入力情報の作成工数の更なる低減化を図れる。
4.内部レジスタを利用したシミュレーション
図10にデータドライバ550、階調電圧生成回路610の詳細な構成例を示す。データドライバ550は、各データ線(SS1、SS2・・・)毎に設けられたドライバセル552を含む。そしてこのドライバセル552は、データラッチ&変換回路554、制御回路556、D/A変換回路558、オペアンプ部560、出力回路562を含む。
データラッチ&変換回路554は、表示メモリ520からの階調データGD1[5:0]をラッチする。またデータラッチ&変換回路554はRGB反転処理を行う。即ちRGBデータの並びを、R、G、Bの順の並びからB、G、Rの順の並びに変更する処理などを行う。これにより、実装形態が異なる様々なタイプの表示パネルに対応できるようになる。
制御回路556は、D/A変換回路558、オペアンプ部560、出力回路562に対する各種の制御信号を生成したり、階調データに対するデータ変換処理を行う。具体的には、D/A変換回路558、オペアンプ部560、出力回路562への制御信号を用いて、パワーセーブ処理を行ったり、階調データに対する極性反転処理、減色モード処理を行う。例えば極性反転処理では、正極性期間で「63」、「62」、「61」の階調データを、負極性期間では例えば「0」、「1」、「2」に設定する。また減色モードでは、階調データにより表現される表示色数を例えば8色に切り替える処理を行う。
D/A変換回路558はデジタルの階調データをアナログのデータ電圧にD/A変換する回路である。具体的には階調電圧生成回路610からの階調電圧の中から、デジタルの階調データに対応する電圧を選択することで、D/A変換を実現する。
オペアンプ部560は、データ信号(データ電圧)のインピーダンス変換処理を行う。このオペアンプ部560は、例えばオペアンプOP(演算増幅器)、スイッチング素子SWを含む。例えばスイッチング素子SWがオンになると、D/A変換回路558によりデータ線SS1が直接駆動されるDAC駆動が行われる。これにより、DAC駆動や、オペアンプ+DAC駆動が実現される。
出力回路562はデータ線SS1の電圧設定などを行う。例えば表示パネルの表示オフコマンドが入力された場合に、D/A変換回路558やオペアンプ部560を用いてデータ線SS1の電圧を設定すると、電荷の充放電に時間がかかるため、データ線SS1の電圧がローレベル又はハイレベルに設定されるのに長時間を要してしまう。そこで、このような場合には、出力回路562が直接にデータ線SS1の電圧をローレベル又はハイレベルに設定する。このようにすれば、表示パネルの表示オフコマンドが入力された場合に、表示パネルを直ぐに白表示(ノーマリーホワイト液晶の場合)等にすることが可能になる。
階調電圧生成回路610(γ補正回路)は、電圧分割回路612(選択用電圧生成回路)、階調電圧選択回路614を含む。電圧分割回路612は、電源回路590(図1参照)で生成された高電圧の電源電圧VDDH、VSSHに基づいて、分割電圧VS0〜VS255(選択用電圧)を出力する。具体的には電圧回路612は、直列に接続された複数の抵抗素子を有するラダー抵抗回路を含む。そしてVDDH、VSSHを、このラダー抵抗回路により分割した電圧を、分割電圧VS0〜VS255として出力する。階調電圧選択回路614は、ロジック回路540(図1参照)により調整レジスタ616に設定された階調特性の調整データに基づいて、分割電圧VS0〜VS255の中から、例えば64階調の場合には64個の電圧を選択して、階調電圧V0〜V63として出力する。このようにすれば表示パネルに応じた最適な階調特性(γ補正特性)の階調電圧を生成できる。
さて図10のデータドライバ550や階調電圧生成回路610はアナログ回路を含む。また階調電圧生成回路610により生成される階調電圧やデータ線SS1に出力されるデータ電圧は、アナログ値であり、デジタル論理シミュレーションでは表現できない。
そこで本実施形態では、データドライバ550や階調電圧生成回路610を、Verilogのビヘイビアモデルなどによりモデル化して、シミュレーション処理を行うようにしている。
具体的には図11に示すように、各データ線毎に6ビット(広義にはNビット。N>2)のデータ信号のデータ(バイナリデータ)を、データドライバモデル20から表示パネルモデル90に入力するシミュレーション処理を行う。即ち実回路レベルのデータ線を介さずに、各データ線毎に6ビットのデータ信号のデータを表示パネルモデル90に入力するようにする。このようにすれば、Verilogのようなデジタル論理シミュレーションを用いて、表示ドライバの検証を行うことが可能になり、表示ドライバの実動作に近い動作検証が可能になる。
更に具体的には図11に示すように、データドライバモデル20に仮想的な内部レジスタ22を設ける。この内部レジスタ22は、各データ線毎に設けられる6ビット(Nビット)のレジスタである。
そして表示メモリモデル40からの6ビット(Nビット)の階調データを、各データ線毎に設けられた各内部レジスタ22に格納し、格納された6ビットの階調データをデータ信号のデータとして、表示パネルモデル90に入力するシミュレーション処理を行う。具体的には表示パネルモデル90が、データドライバモデル20の内部レジスタ22のデータを参照する形態で、各データ線毎に6ビットのパラレルデータをデータドライバモデル20から表示パネルモデル90に転送する。このようなデータの参照による転送は、Verilog記述を利用して容易に実現できる。
図11において表示パネルモデル90は、データキャプチャ部92、極性反転部94、画像データファイル作成部96を含む。
ここでデータキャプチャ部92は、表示パネルの全ての画素分の内部レジスタ(全ての画素に対応する内部レジスタ)を有している。そして表示ドライバモデル10からの走査信号GS1のデータが「1」から「0」に変化すると、データキャプチャ部92に設けられた全画素分の内部レジスタのうち、GS1に対応する内部レジスタに対して、データドライバモデル20の内部レジスタ22からのデータ(パラレルの階調データ)を格納してキャプチャする。同様に、表示ドライバモデル10からの走査信号GS2のデータが「1」から「0」に変化すると、データキャプチャ部92に設けられた全画素分の内部レジスタのうち、GS2に対応する内部レジスタに対して、データドライバモデル20の内部レジスタ22からのデータを格納してキャプチャする。
極性反転部94は、表示ドライバモデル10からの信号FR(極性反転信号)に基づいて、データキャプチャ部92の内部レジスタに格納されたデータに対して極性反転処理を行う。即ち信号FRの極性を判定してデータ(画像データ)の正転/反転処理を行う。そして画像データファイル作成部96は、表示ドライバモデル10からの信号VSYNC(垂直同期信号)をトリガとして、画像データファイル160を生成して出力する。
図12に、図11のシミュレーション処理のフローチャートを示す。まず表示メモリモデル40が階調データを出力する(ステップS1)。すると、D/A変換回路やオペアンプ部用の制御信号をトリガとして、階調データを、データドライバモデル20の内部レジスタ22に格納する(ステップS2)。
次に内部レジスタ22に格納された階調データに対してRGB反転処理、極性反転処理、減色モード処理などの変換処理を実行する(ステップS3)。即ち図10のデータラッチ&変換回路554で行われるRGB反転処理(RGBからBGRに変換する処理)や、制御回路556で行われる極性反転処理、減色モード(8色モード)処理を実行する。そして変換処理後の階調データを、データ線出力端子に出力せずに内部レジスタ22に格納する(ステップS4)。そして内部レジスタ22を介して階調データを表示パネルモデル90に渡す。
図11、図12の手法によれば、仮想的な内部レジスタ22を設けるだけで、データドライバのアナログ動作を擬似的にシミュレーションできる。従って図4に示すような実装イメージでのシステムシミュレーションを、Verilogなどのデジタル論理シミュレーションを用いて実現できる。従って、簡素なモデルを使用しながらも、アナログ制御動作などをデジタル論理シミュレーションで検証できるようになり、検証効率を向上できる。
5.ソケットモデルを利用したシミュレーション
図11、図12の手法では、データドライバモデル20として内部レジスタ22を用いた簡素なモデルを使用できるという利点がある。しかしながら、データドライバの実回路のネットリストを使用していないため、検証精度の点で劣るという不利点がある。即ち、ビヘイビアモデル自身が疑似モデルである以上、設計者が表示ドライバの動作仕様を誤認したり、誤った動作モデルを作成してしまう可能性があり、検証の正当性を十分に保証できないという不利点がある。
一方、データドライバなどのアナログブロックの動作モデルを、アナログ記述言語AHDLにより作成する手法も考えられる。この手法では、アナログブロックがアナログ的な振る舞いをするようになるため、アナログ動作の作り込みについては問題はなくなるが、モデルである以上、仕様の誤認という問題は残ってしまう。また図4に示すようなシステムシミュレーションを実現しようとした場合に、検証シミュレーションの形態を、デジタル論理シミュレーションからミックス・シグナルシミュレーションに切り替えなければならなくなる。そしてミックス・シグナルシミュレーションは、シミュレーション時間が膨大になるため、表示ドライバの全てのファンクションを検証するのには不向きである。
そこで図13で説明する手法では、アナログブロックをデジタル論理シミュレーション用のネットリストで構成し、本来はアナログ値として扱われるべき階調電圧をシリアルデータとして扱うことで、表示ドライバの全体的なシステムシミュレーションをデジタル論理シミュレーションで実現している。
具体的にはデータドライバなどのアナログブロック全体をモデル化するのではなく、必要最小限のアナログ回路だけをモデル化する手法(部分モデル化)を採用する。アナログブロックといえども、内部の制御回路等はロジック回路で構成されているため、その部分はスケマチックより出力されたVerilogのネットリストを使用し、必要最小限のアナログ回路についてだけ擬似的な動作モデルを作成する。こうすれば、アナログモデルの単位が小さくなるため、仕様を誤認してモデル動作記述を行ってしまう確率も低くなり、検証精度を向上できる。
例えば図10のデータドライバ550において、オペアンプ部560のオペアンプOPだけをVerilogのビヘイビアモデルで記述してシミュレーションを実行し、その他の回路(データラッチ&変換回路、制御回路、D/A変換回路、出力回路等)については、スケマチックより出力したVerilogのネットリストとVerilogのライブラリを使用してシミュレーションを実行する。この手法によれば、データドライバ550の内部の制御回路については、設計者が意図した動作を確実に行うようになるため、モデルに起因する異常動作はほとんど生じなくなり、検証精度を向上できる。
また、前述のように、階調電圧生成回路610からの階調電圧は、Verilogのデジタル論理シミュレーションでは表現できない。そこで階調電圧のデータとしてシリアルデータのフォーマットを使用して、データドライバモデル20から出力できるようにするために、ソケットモデル110というモデルを導入する。そしてシリアルの階調電圧データをソケットモデル110内において階調電圧数分だけ生成し、そのシリアルの階調電圧データをラダー抵抗モデルを介して階調電圧生成回路モデル60(γモデル)に供給する(仮想接続)。階調電圧生成回路モデル60はデータドライバモデル20に対して階調電圧を供給しているため、データドライバモデル20は、階調電圧生成回路モデル60からのシリアルの階調電圧データをハンドリングできる。そこで、階調電圧生成回路モデル60から供給されたシリアル階調電圧データを、階調データに基づいてデータドライバモデル20内において選択し、ソケットモデル110内でシリアル/パラレル変換を行い、表示パネルモデル90に供給する。
具体的には図13に示すように、表示ドライバモデル10と表示パネルモデル90との間に仮想的に設けられたソケットモデル110が用意される。このソケットモデル110(仮想接続モデル)は、表示ドライバモデル10と表示パネルモデル90を仮想的に接続するモデルである。
そしてソケットモデル110により生成されたシリアルの階調電圧データを階調電圧生成回路モデル60を介してデータドライバモデル20に入力する。そしてデータドライバモデル20からのシリアルのデータをソケットモデル110に入力してパラレルのデータに変換し、変換により得られたパラレルのデータをデータ信号のデータとして表示パネルモデル90に入力するシミュレーション処理を行う。
例えば図13においてソケットモデル110は、シフト用クロック生成部112、クロック数カウント部114、シリアル階調電圧データ生成部116、シリアル/パラレル変換部118、内部レジスタ120を含む。シフト用クロック生成部112はシフト用クロックを生成し、クロック数カウント部114は、シフト用クロックのクロック数をカウントする。シリアル階調データ生成部116は、クロック数カウント部114からのカウント値に基づいて動作し、シリアルの階調電圧データを生成する。即ち階調電圧V0〜V63の各々に対応するバイナリのシリアル階調電圧データを生成する。例えば階調電圧V0、V1、V2、V3に対応するシリアル階調電圧として、各々、(000000)、(000001)、(000010)、(0000011)などを生成する。そして生成されたシリアル階調電圧データの各々を、V0〜V63のノードの各々に供給する。これはVerilogを利用した仮想接続により実現できる。
ネットリストで構成されるD/A変換回路558は、表示メモリモデル40からの階調データに基づいて、V0〜V63のノードのうち階調データに対応するノードを選択する。例えば正極性期間では、階調データが「63」である場合にはV63のノードが選択され、階調データが「62」である場合にはV62のノードが選択される。一方、極性反転の負極性期間では、階調データが「63」である場合にはV0のノードが選択され、階調データが「62」である場合にはV1のノードが選択される。そして、選択されたノードに供給されているシリアル階調電圧データが、D/A変換回路558、オペアンプ部560、出力回路562を介してデータ線に出力され、ソケットモデル110に再入力される。
ソケットモデル110のシリアル/パラレル変換回路118は、クロック数カウント部114からのカウント値に基づいて動作し、データ線に出力されたシリアル階調電圧データのシリアル/パラレル変換を行い、64階調のパラレルデータに復元する。そして得られたパラレルデータは内部レジスタ120に格納される。そして内部レジスタ120に格納されたパラレルデータは、図11、図12で説明した手法と同様の手法で、ソケットモデル110から表示パネルモデル90に転送される。即ち表示パネルモデル90が内部レジスタ120を参照することで、内部レジスタ120のパラレルデータが、表示パネルモデル90のデータキャプチャ部92に設けられた内部レジスタに格納される。
なお、図13では、クロック数カウント部114からのカウント値に基づいて、シリアル階調電圧データ生成部116とシリアル/パラレル変換部118が動作する。このようにすれば、シリアル階調電圧データ生成部116とシリアル/パラレル変換部118が同期して動作するようになり、適正なシリアル/パラレル変換を実現できる。即ちシリアル/パラレル変換部118は、データドライバモデル20からのシリアルデータの区切り(シリアル階調電圧データと次のシリアル階調電圧データとの区切り)を適正に判断して、シリアル/パラレル変換を行えるようになる。
図13の手法によれば、データドライバモデル20の回路は、オペアンプなどの一部の回路を除いて、ネットリストにより構成される。従って、アナログ動作モデルの不具合を原因とするシミュレーションの誤動作を効果的に防止できる。また階調電圧データの信号を、階調電圧生成回路からデータドライバの回路を通った信号として観測できるため、階調電圧生成回路やデータドライバを実回路レベルで正確に検証できるようになる。
例えば表示パネルの表示オフコマンドが入力されると、出力回路562は、データ線SS1の電圧を直接にローレベル又はハイレベルに設定する動作を行う。この出力回路562の動作については、図11、図12の手法により検証することは難しい。
これに対して図13の手法では、シリアル階調電圧データが、V0〜V63のノードからD/A変換回路558、オペアンプ部560、出力回路562を介してデータ線に出力される。従って、表示オフコマンドの入力時における出力回路562の動作についても正確に検証できるようになり、検証精度を向上できる。
なお図14(A)に示すように、シリアル階調電圧データの作成時において、シリアル階調電圧データに対して付加データを付加するようにしてもよい。即ちシリアルデータとして、シリアル階調電圧データの他に付加データを準備し、シリアル階調電圧データと付加データとを合わせたパケットデータをソケットモデル110内にて生成する。具体的にはシリアル階調電圧データ生成部116がパケットデータを生成する。この場合の付加データは、例えばRGB識別データや極性反転識別データの少なくとも1つを含むことができる。ここでRGB識別データは、シリアル階調電圧データがR、G、Bデータのいずれなのかを識別するためのデータである。また極性反転識別データは、極性反転の正極性と負極性を識別するためのデータである。
そしてソケットモデル110からのシリアルの階調電圧データと付加データを、階調電圧生成回路モデル60を介してデータドライバモデル20に入力し、ソケットモデル110において付加データを分離するシミュレーション処理を行う。即ち、生成されたシリアルデータ(シリアル階調電圧データ及び付加データ)は、V0〜V63のノードからD/A変換回路558、オペアンプ部560、出力回路562を介してデータ線に出力されて、ソケットモデル110に取り込まれる。そしてソケットモデル110内においてパケット解析が行われ、シリアルデータから階調電圧データと付加データが分離される。そして分離された付加データに基づいて、階調電圧データに対する種々の変換処理(RGB分離処理、極性反転処理)が行われる。
例えば図14(B)に示すように、低温ポリシリコンパネル(以下、LTPSパネルと呼ぶ)では、表示ドライバ510側において、データ信号へのR、G、Bデータの多重化処理が行われ、表示パネル512側において、多重化されたR、G、Bデータが分離される。具体的には、スイッチング信号SM1R、SM1G、SM1Bによってオン、オフ制御されるスイッチング素子TM1R、TM1G、TM1B(トランジスタ)により、データ線SS1のデータ信号に対してR、G、Bデータが時分割に多重化される。そしてスイッチング信号SD1R、SD1G、SD1Bによってオン、オフ制御されるスイッチング素子TD1R、TD1G、TD1B(トランジスタ)により、多重化されたR、G、Bデータが分離されて、R、G、Bの各画素の供給される。
このようなLTPSパネルにおいては、付加データであるRGB識別データを用いることで、多重化処理や分離処理の動作についても検証が可能になる。具体的には図14(C)に示すように、ソケットモデル110内に、シリアル/パラレル変換部118の代わりにシリアル/パラレル変換&分離部119を設け、内部レジスタ120の代わりにR用、G用、B用の内部レジスタ120R、120G、120Bを設ける。そしてシリアル/パラレル変換&分離部119がシリアルデータから付加データを分離する。そして付加データのRGB識別データがRデータを示していた場合には、その付加データと対となる階調電圧データをR用の内部レジスタ120Rに格納する。同様に、付加データのRGB識別データがGデータ、Bデータを示していた場合には、その付加データと対となる階調電圧データをG用、B用の内部レジスタ120G、120Bに格納する。
また表示パネルモデル90(データキャプチャ部)にもR用、G用、B用の内部レジスタ93R、93G、93Bを設ける。そしてソケットモデル110の内部レジスタ120R、120G、120Bに格納された階調電圧データ(パラレルデータ)は、各々、表示パネルモデル90の内部レジスタ93R、93G、93Bに転送されて格納される。この場合に、内部レジスタ93R、93G、93Bのいずれに階調電圧データを格納するかは、図14(B)のスイッチング信号SD1R、SD1G、SD1Bを用いることで実現できる。なお付加データである極性反転識別データは、例えば表示パネルモデル90が図11に示すような極性反転部94を有していない場合等に、有効利用できる。即ちこの場合には、付加データに含まれる極性反転識別データに基づいて、付加データと対となる階調電圧データの極性反転処理を行えばよい。
6.表示パネルモデル
本実施形態の表示パネルモデル90では、表示ドライバモデル10から入力されたデータを表示画像データに変換する処理が行われる。例えば図15に示すように、表示パネルモデル90が、表示ドライバモデル10からのシミュレーション結果であるデータ信号SS1、SS2、SS3・・・のデータと走査信号GS1、GS2・・・のデータを受ける。そしてこれらのデータに基づいて、表示パネルの各画素(データ信号と走査信号で特定される画素)での画像データを求め、求められた各画素での画像データを含む画像データファイル160を作成する。即ち図15に示すように表示パネルイメージの画像ダンプファイルを作成する。
より具体的には図15のA1、A2に示すように、走査ドライバモデル30からの走査信号の立ち下がりエッジをトリガとして、表示パネルモデル90の内部レジスタが、階調データである画像データR[5:0]、G[5:0]、B[5:0]を表示ドライバモデル10から取り込む。次に、コモン信号(信号FR)の極性(正極性、負極性)を判断して、内部レジスタに取り込まれた画像データの正転/反転処理を行う。次に、垂直同期信号(信号VSYNC)をトリガとして、画像データファイル160を作成して、出力する。
図16に画像データファイル160の一例を示す。なお本実施形態の画像データファイル160は図16のフォーマットに限定されず、種々の変形実施が可能である。
図16の画像データファイル160は、PPM(Portable Pix Map)と呼ばれるASCII形式で最も簡単な画像フォーマットのファイルである。具体的には画像データファイル160は、フォーマット識別子(P1:2値ASCII、P2:グレースケールASCII、P3:フルカラーASCII)、画像サイズ(横、縦)、階調数(最大色調値)、画像データ(10進の階調値で表されたRGBの画像データ)を含む。そしてシミュレーション終了後に、作成された画像データファイル160を、UNIXのユーティリティソフト等を用いてワークステーションの表示装置の画面に画像表示して、表示ドライバの動作検証を行う。このようにすれば、シミュレーション結果を、表示画像という形で視覚的に瞬時に捉えることが可能になる。また複雑な制御信号の全てを波形表示で目視確認しなくても済むため、設計効率を向上できる。また仕様を熟知した設計者でも発見が困難なバグについても、発見が可能になる。また細かな動作仕様を理解していない設計者でも検証作業に携わることが可能になり、作業の分業化が可能になる。
なお、上記のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語(検証対象デバイス、Nビット等)と共に記載された用語(表示ドライバ、6ビット等)は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。
また検証シミュレータの構成や検証シミュレーション手法も本実施形態で説明したものに限定されるものでない。例えばシミュレーション結果データを画像データファイルとして出力しない手法や、内部レジスタやソケットモデルを利用しない手法を採用してもよい。またシミュレーション手法も、Verilogなどのデジタル論理シミュレーション手法に限定されるものではない。