以下、本発明の好適な実施の形態について詳細に説明する。なお以下に説明する本実施形態は特許請求の範囲に記載された本発明の内容を不当に限定するものではなく、本実施形態で説明される構成の全てが本発明の解決手段として必須であるとは限らない。
1.表示ドライバ
図1に、本実施形態の検証シミュレータの検証対象デバイスである表示ドライバ510の構成例を示す。なお表示ドライバ510の構成は図1に限定されるものではなく、種々の変形実施が可能である。
表示パネル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から複数(例えば33段階)の階調電圧(基準電圧)を受ける。そして、これらの複数の階調電圧の中から、階調データに対応する階調電圧を選択して、データ信号(データ電圧)として表示パネル512の各データ線に出力する。
走査ドライバ570は表示パネルの走査線を駆動するための走査信号を生成する回路である。具体的には、内蔵するシフトレジスタにおいて信号(イネーブル入出力信号)を順次シフトし、このシフトされた信号をレベル変換した信号を、走査信号(走査電圧)として表示パネル512の各走査線に出力する。なお走査ドライバ570に、走査アドレス生成回路やアドレスデコーダを含ませ、走査アドレス生成回路が走査アドレスを生成して出力し、アドレスデコーダが走査アドレスのデコード処理を行うことで、走査信号を生成してもよい。
電源回路590は各種の電源電圧を生成する回路である。具体的には、入力電源電圧や内部電源電圧を、内蔵する昇圧回路が含む昇圧用キャパシタや昇圧用トランジスタを用いてチャージポンプ方式で昇圧する。そして昇圧により得られた電圧を電源電圧として、データドライバ550、走査ドライバ570、階調電圧生成回路610に供給する。
階調電圧生成回路610(γ補正回路)は階調電圧を生成する回路である。具体的には、内蔵する電圧分割回路(選択用電圧生成回路)が分割電圧を生成し、内蔵する階調電圧生成回路が、生成された分割電圧の中から例えば33個(33階調)の階調電圧を選択して、データドライバ550に出力する。
2.検証シミュレータ
図2に本実施形態の検証シミュレータの構成例を示し、図3に検証シミュレータのシミュレーション環境の例を示す。
図2において、記憶部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(登録商標)のユーティリティソフトなどにより、ワークステーションの表示装置に画像データを容易に表示できる。
図3に示すようにシミュレーション環境を構成するモデルとしては、表示ドライバの動作が記述された表示ドライバモデル10や、表示ドライバにより駆動される表示パネルの動作が記述された表示パネルモデル90がある。また表示ドライバの外部デバイスが含む外部インターフェース回路(ホスト側インターフェース回路)の動作が記述された外部インターフェース回路モデル130がある。
なお表示ドライバの初期状態を設定するための不揮発性メモリ(EEPROM)の動作が記述された不揮発性メモリモデルを用いてもよい。また外部インターフェース回路を含む外部デバイスとしては、MPU(Micro Processor Unit)、ベースバンドエンジン、アプリケーションプロセッサ、画像処理コントローラ(表示コントローラ)などのデバイス(ホストデバイス)がある。
図3では表示ドライバモデル10は、データ信号(階調電圧データ)を出力するデータドライバの動作が記述されたデータドライバモデル20を含む。また走査信号を出力する走査ドライバの動作が記述された走査ドライバモデル30や、画像データである階調データを記憶する表示メモリの動作が記述された表示メモリモデル40を含む。また表示ドライバモデル10は、電源回路の動作が記述された電源回路モデル50や、階調電圧を生成する階調電圧生成回路の動作が記述された階調電圧生成回路モデル60や、表示制御信号を少なくとも生成するロジック回路の動作が記述されたロジック回路モデル70を含む。またMPUインターフェース回路やRGBインターフェース回路やYUVインターフェース回路や高速シリアルインターフェース回路などの内部インターフェース回路の動作が記述された内部インターフェース回路モデル80を含む。
そして本実施形態では、表示ドライバモデル10が、階調データに対してFRC(Frame Rate Control)処理を施しFRC処理後の階調データに対応する階調電圧を出力するデータドライバの動作が記述されたデータドライバモデル20を含む。またデータドライバモデル20(表示ドライバモデル10)は、階調データが入力され、FRC処理後の階調データに対応した階調電圧(FRC処理後の階調データによりデータドライバから出力されるべき階調電圧)の期待値データを出力するルックアップテーブルを含む。
そして図2のシミュレーション処理部210は、テスト入力情報150と表示ドライバモデル10に基づいてシミュレーション処理を行う。具体的には、データドライバモデル20及びルックアップテーブルに階調データを入力し、FRC処理後の階調データに対応してデータドライバモデル20から出力された階調電圧データと、ルックアップテーブルから出力された階調電圧の期待値データとの自動コンペアを行う。
更に具体的には本実施形態では、ルックアップテーブルとして、各データ線毎に複数のルックアップテーブルが用意される。即ちデータドライバモデル20の中に、各データ線毎に複数のルックアップテーブル(ルックアップテーブルのインスタンス)が記述される。またデータドライバモデル20では、FRC制御信号を生成するFRC制御回路と、FRC制御信号と階調データの下位ビット(例えば最下位ビット、或いは最下位及びその上位ビット)に基づき階調データに対してFRC処理を施すFRC処理回路の動作が記述される。例えば、データドライバのうちFRC制御回路とFRC処理回路については、ネットリスト(インバータ、NAND、NOR等のネットリスト)を使用する。そしてシミュレーション処理部210は、FRC制御信号に基づいて、複数のルックアップテーブルの中からFRC制御信号やデータ反転信号に対応したルックアップテーブルを選択し、選択されたルックアップテーブルから出力された階調電圧の期待値データと、データドライバモデル20から出力された階調電圧データとをコンペアする。そしてシミュレーション処理部210は、階調電圧の期待値データとデータドライバモデル20からの階調電圧データとが異なっていた場合には、各データ線(サブピクセル)毎のエラーメッセージが記述されたエラーメッセージファイルを作成して出力する。
またシミュレーション処理部210は、各データ線毎にNビット(N>2)の階調電圧データ(データ信号)を、データドライバモデル20から表示パネルモデル90に入力するシミュレーション処理を行うようにしてもよい。具体的にはシミュレーション処理部210は、FRC処理後のNビットの階調データを、データ線毎に設けられた仮想的な内部レジスタに格納し、格納されたNビットの階調データを、階調電圧データ(データ信号)として表示パネルモデル90に入力する。
図3に示すように本実施形態によれば、表示パネルモデル90、外部インターフェース回路モデル130などの周辺デバイスのモデルを加えた実装イメージでのシステムシミュレーションを実現できる。また表示ドライバ内部のアナログブロックを、Verilogのビヘイビアモデルなどでモデル化している。またシミュレーション結果の変換を行い、表示イメージでの視覚検証を可能にしている。
具体的には外部インターフェース回路モデル130(MPUモデル)に、テストベンチとして記述されたコマンドファイル152(MPUコマンド)を入力し、外部インターフェース回路モデル130の変換処理により、MPUインターフェース信号やRGBインターフェース信号などのインターフェース信号のデータを生成する。そして、表示ドライバモデル10の端子に、インターフェース信号のバイナリデータを入力する。同様に、画面に表示させる画像データ154も、外部インターフェース回路モデル130を介して表示ドライバモデル10に入力する。この画像データ154としては例えばRGBフォーマットのデータを使用する。なおYUVフォーマットのデータを使用してもよい。
また表示ドライバの内部ブロックは、ロジック回路(ゲートアレイ)以外は、アナログ回路を含むアナログブロックが大半を占める。そしてアナログブロックは、ネットリスト出力によるVerilogの論理シミュレーションでは正しい動作を検証できないため、ブロックレベルの動作を記述したVerilogのビヘイビアモデルを使用する。このアナログブロックのビヘイビアモデルの作り方により、アナログ動作の検証レベルが変わってくるが、本実施形態では、例えばパワーオンシーケンスなどのアナログ制御動作を、論理シミュレーションで検証可能にしている。
具体的にはアナログブロックのビヘイビアモデルの特殊表現としては以下のものがある。例えばデータドライバでは表示メモリからの階調データをD/A変換して、階調電圧であるデータ電圧を発生させている。しかしながら、階調電圧値はアナログ値であり、論理シミュレーターでは表現できない。そこでFRC処理後の階調データを、データドライバモデル20に設けられた仮想的な各内部レジスタに格納する。そして各内部レジスタに格納された階調データを、階調電圧データとして表示パネルモデル90に入力する。
また表示パネルの走査信号に出力される走査電圧値はアナログ値であり、論理シミュレーションでは表現できない。そこで走査ドライバモデル30では、走査電圧(選択電圧)の発生を論理「1」で表現している。
また昇圧動作による発生電圧の電位差はアナログ値であり、論理シミュレーションでは表現できない。そこで電源回路モデル50では、昇圧条件を判定し、昇圧電圧の発生を論理「1」で表現している。即ち昇圧条件が満たされると、論理「1」を出力するようにしている。同様に抵抗分割により得られる階調電圧値はアナログ値であり、論理シミュレーションでは表現できない。そこで階調電圧生成回路モデル60では、動作条件を判定し、階調電圧の発生を論理「1」で表現している。即ち動作条件が満たされると、論理「1」を出力するようにしている。そして電源回路や階調電圧生成回路が正常に動作していないと、これらの回路から信号を受けて動作するデータドライバや走査ドライバが動作しないように、データドライバや走査ドライバのビヘイビアモデルを作成する。即ち電源回路モデル50や階調電圧生成回路モデル60から論理「1」が出力されていないと動作を開始しないようなモデルに、データドライバモデル20や走査ドライバモデル30を作成する。こうすることで、パワーオンシーケンスなどのアナログ制御動作が、論理シミュレーションで検証可能になる。
なお図3では、ロジック回路モデル70として、ロジック回路(ゲートアレイ)のネットリストを使用している。即ちロジック回路(図1の540)は、アナログ要素を含まず、ネットリストをそのままVerilog等の論理シミュレータに入力できる。またロジック回路の構成、動作は、仕様により随時変更される。従って、ロジック回路モデル70については、ロジック回路のネットリストをそのまま使用してVerilog等の論理シミュレーションを行うようにする。こうすることでシミュレーション精度を向上できると共に、様々な仕様の表示ドライバに対して本実施形態の検証シミュレーション手法を容易に適用できるようになる。なお内部インターフェース回路モデル80についても、少なくともその一部に内部インターフェース回路のネットリストを使用するようにしてもよい。
3.データドライバの構成
図4にデータドライバ550の詳細な構成例を示す。データドライバ550は、各データ線(SS1、SS2・・・)毎に設けられたドライバセル552と、FRC制御回路551を含む。そしてこのドライバセル552は、データラッチ回路554、FRC処理回路556、D/A変換回路558、出力回路(オペアンプ部)562を含む。
データ線SS1に対応して設けられたデータラッチ回路554は、表示メモリ520からの6ビットの階調データGD1[5:0]をラッチする。
FRC制御回路551はFRC制御信号FRCCを生成する。このFRC制御信号FRCCは第1、第2のFRC制御信号FRC_A、FRC_Bを含むことができる。FRC処理回路556はFRC制御信号FRCCと、階調データGD1[5:0]の下位ビット(例えば下位2ビット或いは最下位ビット)に基づき、階調データGD1[5:0]に対してFRC処理を施す。
D/A変換回路558はFRC処理後の階調データ(例えば5ビットの階調データ)をアナログの階調電圧(データ電圧)にD/A変換する。具体的には階調電圧生成回路610からの階調電圧の中から、FRC処理後の階調データに対応する電圧を選択することで、D/A変換を実現する。
出力回路562は、データ信号(階調電圧)のインピーダンス変換処理を行う。例えば出力回路562は、オペアンプやスイッチ素子を含み、オペアンプによるデータ線SS1の駆動や、D/A変換回路558によりデータ線SS1を直接駆動するDAC駆動を行う。また出力回路562はデータ線SS1の電圧設定等も行う。例えば表示パネルの表示オフコマンドが入力された場合に、データ線SS1の電圧をローレベル等に設定する。このようにすれば、表示パネルの表示オフコマンドが入力された場合に、表示パネルを直ぐに白表示(ノーマリーホワイト液晶の場合)等にすることが可能になる。
なお図4に示すように、データ線SS1、SS2、SS3の各々は、画素を構成するR、G、Bの各サブピクセル(ドット)に割り当てられ、データ線SS4、SS5、SS6の各々も、画素を構成するR、G、Bの各サブピクセルに割り当てられる。他のデータ線も同様である。
4.FRC方式
次にFRC方式について説明する。FRC方式は、画素(又はサブ画素)の輝度を時間差を設けて変更することで、少ないビットの数の階調データで、より多くの階調数で画像を表現する技術である。例えば、ある画素に着目した場合に、輝度が低い階調GS1の画素を表示した後に、輝度が高い階調GS2の画素を表示させる。こうすることで、その画素を見る人に対し、階調GS1、GS2の中間の階調である階調GS3の輝度で表示されたように見せかけることができる。このようなFRCを実現する場合、各画素(各サブ画素)の輝度の調整の仕方を定義するFRCパターンが用いられる。
図5に、FRC制御回路551(広義には制御回路)により生成される第1、第2のFRC制御信号FRC_A、FRC_Bの信号波形例を示す。これらのFRC制御信号FRC_A、FRC_Bは、垂直同期信号(フレーム信号)FRと水平同期信号(ラッチパルス信号)LPに基づき生成され(FR、LPに基づき変化し)、互いに逆位相の信号となっている。そしてFRC制御信号FRC_Aは、信号線SS1(R)、SS2(G)、SS3(B)に対応するFRC処理回路556に入力され、FRC制御信号FRC_Bは、信号線SS4(R)、SS5(G)、SS6(B)に対応するFRC処理回路556に入力される。他のFRC処理回路556についても同様である。これらのFRC制御信号FRC_A、FRC_Bにより、明パターンと暗パターンを切り替えることで、FRC方式の駆動が実現される。
図6では、輝度を高くする画素と輝度を低くする画素が隣接するように定義された、いわゆる市松模様のFRCパターンFP1、FP2が画面全体に仮想的に配置される。また図6では、横グラデーション画像(元画像)の表示パターンDISP1として、水平方向及び垂直方向に並ぶ10画素×10画素の画像を示している。即ち、図6において各画素の階調データが0、1、2、・・・9の順に、水平方向に連続的に変化している。このような表示パターンDISP1に対し、互いに要素データが反転した関係にある市松模様のFRCパターンFP1、FP2を用いてFRC処理を行う場合を考える。FRCパターンFP1、FP2では、斜線が施されない正方形の部分が「明パターン」を示し、斜線が施された正方形の部分が「暗パターン」を示す。
図6において、表示パターンDISP1に対してFRCパターンFP1を用いたFRC処理後の表示パターンをFDISP1とし、表示パターンDISP1に対してFRCパターンFP2を用いたFRC処理後の表示パターンをFDISP2とする。表示パターンFDISP1、FDISP2では、輝度を低くする処理が行われた画素の階調データを四角で囲み、輝度を高くする処理が行われた画素の階調データを丸で囲んで示している。
このようなFRC処理後の表示パターンFDISP1、FDISP2を用いて交互に表示パネルが駆動される。この際、画面全体において、輝度を高くする処理が行われた画素と輝度を低くする処理が行われる画素が、時間的にも空間的にも分散されるため、画質劣化を防止できる。
図6のFRCパターンFP1、FP2は図5のFRC制御信号FRC_A、FRC_Bにより実現される。
例えば第1の垂直走査期間の第1の水平走査期間では、図5のE1に示すように、信号FRC_Aは、明パターンを指示するHレベルになり、信号FRC_Bは、暗パターンを指示するLレベルになる。そして図4に示すように、信号線SS1、SS2、SS3に対応するFRC処理回路556には、信号FRC_Aが入力され、信号線SS4、SS5、SS6に対応するFRC処理回路556には、信号FRC_Bが入力される。従って図6のF1に示すように、信号線SS1、SS2、SS3に対応する第1の画素は、信号FRC_AがHレベルであるため、明パターンに設定される。また、図6のF2に示すように、信号線SS4、SS5、SS6に対応する第2の画素は、信号FRC_BがLレベルであるため、暗パターンに設定される。
また第1の垂直走査期間の第2の水平走査期間では、図5のE2に示すように、信号FRC_Aは、暗パターンを指示するLレベルになり、信号FRC_Bは、明パターンを指示するHレベルになる。従って図6のF3に示すように、信号線SS1、SS2、SS3に対応する第11の画素は、信号FRC_AがLレベルであるため、暗パターンに設定される。また、図6のF4に示すように、信号線SS4、SS5、SS6に対応する第12の画素は、信号FRC_BがHレベルであるため、明パターンに設定される。
また第2の垂直走査期間の第1の水平走査期間では、図5のE3に示すように、信号FRC_Aは、暗パターンを指示するLレベルになり、信号FRC_Bは、明パターンを指示するHレベルになる。従って図6のF5に示すように、信号線SS1、SS2、SS3に対応する第1の画素は、信号FRC_AがLレベルであるため、暗パターンに設定される。また図6のF6に示すように、信号線SS4、SS5、SS6に対応する第2の画素は、信号FRC_BがHレベルであるため、明パターンに設定される。
また第2の垂直走査期間の第2の水平走査期間では、図5のE4に示すように、信号FRC_Aは、明パターンを指示するHレベルになり、信号FRC_Bは、暗パターンを指示するLレベルになる。従って図6のF7に示すように、信号線SS1、SS2、SS3に対応する第11の画素は、信号FRC_AがHレベルであるため、明パターンに設定される。また、図6のF8に示すように、信号線SS4、SS5、SS6に対応する第12の画素は、信号FRC_BがLレベルであるため、暗パターンに設定される。
図6の表示パターンFDISP1、FDISP2を生成するためのFRC処理は、階調データの最下位ビット(LSB)をカットする処理や、階調データをインクリメントする処理により実現される。例えば図7(A)にFRC処理回路556、D/A変換回路558、出力回路562の構成例を示す。
図7(B)の真理値表に示すように、階調データの最下位ビットのデータD0が0の場合には、インクリメント回路INCCに入力される制御信号CTLはLベルになる。また階調データの下位2ビットのデータD1、D0が、各々、0、1の場合には、制御信号CTLは信号FRCCと同じ電圧レベルの信号になる。一方、階調データの下位2ビットのデータD0、D1が、各々、1、1の場合には、制御信号CTLは信号FRCCの反転信号になる。
インクリメント回路INCCは、制御信号CTLがHレベルである場合には、6ビットの階調データD5〜D0を1だけインクリメントし、インクリメントデータSUM5〜SUM0を出力する。
またインクリメント回路INCCは、制御信号CTLがLレベルである場合には、6ビットの階調データD5〜D0をそのままインクリメントデータSUM5〜SUM0として出力する。
そしてインクリメントデータSUM5〜SUM0のうち、最下位ビット(LSB)はカットされて、上位5ビットのデータSUM5〜SUM1が、FRC処理後のデータとして、D/A変換回路558を構成する電圧セレクタVSELに入力される。
例えば階調データD5〜D0が(000011b)であり、信号FRCCがLレベルであると、図7(B)から明らかなように制御信号CTLはHレベルになる。するとインクリメント回路INCCは、階調データ(000011b)を1だけインクリメントし、インクリメントデータSUM5〜SUM0は(000100b)になる。従って、FRC処理後の階調データSUM5〜SUM1は、(000100b)の最下位ビットがカットされて、(00010b)=2になる。
また階調データD5〜D0が(000011b)であり、信号FRCCがHレベルであると、図7(B)から明らかなように制御信号CTLはLレベルになる。するとインクリメント回路INCCは、階調データ(000011b)を、そのままインクリメントデータSUM5〜SUM0として出力する。従って、FRC処理後の階調データSUM5〜SUM1は、(000011b)の最下位ビットがカットされて、(00001b)=1になる。
5.データドライバモデル
図8に本実施形態のデータドライバモデル20の例を示す。なお図8ではデータ線SS1に対応する部分の構成を示しているが、他のデータ線SS2、SS3・・・における構成も図8と同様である。
図8のデータドライバモデル20では、階調データに対してFRC処理を施し、FRC処理後の階調データに対応する階調電圧を出力するデータドライバの動作が記述されている。具体的にはデータドライバモデル20では、信号FRCC(FRC_A、FRC_B)を生成するFRC制御回路551や、信号FRCCと階調データGD1[5:0]の下位ビットに基づき階調データに対してFRC処理を施すFRC処理回路556等のモデルとして、これらの回路のネットリスト(インバータ、NAND、NOR等のロジックのネットリスト)が使用される。またデータラッチ回路554のモデルについても、ネットリストを使用できる。一方、D/A変換回路558、出力回路562のモデルについては、ネットリストを使用してもよいし、後述するように内部回路で代用したり、ビヘイビアモデルを使用してもよい。
またデータドライバモデル20は、階調データGD1[5:0]が入力され、FRC処理後の階調データに対応した階調電圧の期待値データを出力するルックアップテーブルLUTを含む。そしてデータドライバモデル20(データラッチ回路24)及びルックアップテーブルLUTに階調データGD1[5:0]が入力される。そしてデータドライバモデル20(出力回路、内部レジスタ)から出力された階調電圧データと、ルックアップテーブルLUTから出力された階調電圧の期待値データのコンペアが行われ、コンペア結果(エラーメッセージファイル)が出力される。
図9(A)(B)、図10(A)(B)にルックアップテーブルLUT1、LUT2、LUT3、LUT4の例を示す。このように本実施形態では、各データ線毎に複数のルックアップテーブルLUT1、LUT2、LUT3、LUT4(ルックアップテーブルのインスタンス)が用意される。
図9(A)のルックアップテーブルLUT1は、FRC制御信号FRCC、データ反転信号INVが、各々、Hレベル、Lレベルである場合のテーブルであり、図9(B)のルックアップテーブルLUT2は、信号FRCC、INVが、各々、Lレベル、Lレベルである場合のテーブルである。また図10(A)のルックアップテーブルLUT3は、信号FRCC、INVが、各々、Hレベル、Hレベルである場合のテーブルであり、図10(B)のルックアップテーブルLUT4は、信号FRCC、INVが、各々、Lレベル、Hレベルである場合のテーブルである。
そしてシミュレーション処理部210は、信号FRCCに基づいて、複数のルックアップテーブルLUT1〜LUT4の中から信号FRCCの電圧レベルに対応したルックアップテーブルを選択する。例えば信号FRCCがHレベルである場合には図9(A)、図10(A)のルックアップテーブルLUT1、LUT3が選択され、信号FRCCがLレベルである場合には図9(B)、図10(B)のルックアップテーブルLUT2、LUT4が選択される。そして選択されたルックアップテーブルの期待値データと階調電圧データとのコンペアが行われる。
またシミュレーション処理部210は、階調データの反転を指示するデータ反転信号INVに基づいて、複数のルックアップテーブルLUT1〜LUT4の中から信号INVの電圧レベルに対応したルックアップテーブルを選択する。例えば信号INVがLレベルである場合には図9(A)、(B)のルックアップテーブルLUT1、LUT2が選択され、信号INVがHレベルである場合には図10(A)、(B)のルックアップテーブルLUT3、LUT4が選択される。そして選択されたルックアップテーブルの期待値データと階調電圧データとのコンペアが行われる。
例えば図9(A)のルックアップテーブルLUT1は、階調データが入力されると、図7(A)(B)で説明したFRC処理回路556のFRC処理後の階調データに対応する期待値データを出力する。例えば階調データが(000000b)である場合には、FRC処理後の階調データは(00000b)になるため、期待値データとして0を出力する。また階調データが(000001b)である場合には、FRC処理後の階調データは(00001b)になるため、期待値データとして1を出力する。即ちルックアップテーブルLUT1には、信号FRCC、INVがHレベル、Lレベルである場合のFRC処理後の階調データに対応する期待値データが、予め計算されて記憶される。他のルックアップテーブルLUT2、LUT3、LUT4も同様である。
図11に本実施形態により出力されるエラーメッセージファイルの例を示す。本実施形態ではルックアップテーブルからの期待値データとデータドライバモデル20からの階調電圧データ(階調電圧値)が異なっていた場合に、図11に示すようなエラーメッセージファイルが出力される。このエラーメッセージファイルでは、R、G、Bの各サブピクセル単位で、期待値データと階調電圧データの不一致エラーが表示される。従って表示ドライバの設計者は、このエラーメッセージファイルを見ることで、どのサブピクセルにおいて不一致エラーが生じたかを知ることでき、検証作業を効率化できる。
例えば本実施形態の比較例の手法として、1フレーム分の画像データの期待値データを予め作成しておき、この期待値データと、出力された1フレーム分の階調電圧データとを比較する手法が考えられる。
しかしながら、この手法には、スクロールコマンドやパーシャルコマンドが発行された場合の期待値データの生成が困難であるという問題がある。
これに対して本実施形態では、データドライバモデル20の内部にルックアップテーブルLUTが設けられ、このルックアップテーブルLUTからの期待値データと階調電圧データのコンペアが行われる。従って、期待値データと階調電圧データとのコンペアがライン単位で自動的に行われるようになるため、スクロールコマンドやパーシャルコマンドが発行されたような場合にも、問題なく検証を実現できる。
また本実施形態では、シミュレーション処理を実行するのと同時に、期待値データとFRC処理後の階調電圧データとの自動コンペアが行われるため、検証効率を向上できる。
また本実施形態では、自動コンペアの結果が図11のようなエラーメッセージファイルで出力される。従って回路設計者は、このエラーメッセージファイルを見ることで、どのサブピクセル(画素、データ線)で、期待値データと階調電圧データの不一致エラーが発生したのかを、容易に特定できる。そして、その特定場所や不一致エラーの状態から、回路の設計ミスを発見できるため、設計効率を向上できる。
また本実施形態では、ルックアップテーブルLUTが、データドライバの他の回路の動作記述と同様に、データドライバモデル20に記述される。従って、データ線(サブピクセル)単位での期待値データと階調電圧データのコンペアが確実に行われるようになり、検証精度を向上できる。
6.内部レジスタ
図4のD/A変換回路558、出力回路562、階調電圧生成回路610はアナログ回路を含む。また階調電圧生成回路610により生成される階調電圧やデータ線SS1に出力される階調電圧は、アナログ値であり、デジタル論理シミュレーションでは表現することが難しい。
そこで本実施形態では、図12に示すように、データドライバモデル20に仮想的な内部レジスタ22を設ける。この内部レジスタ22は、各データ線毎に設けられる例えば5ビット(広義にはNビット)のレジスタである。そしてFRC処理後の階調データを、各データ線毎に設けられた各内部レジスタ22に格納し、格納された階調データを階調電圧データ(データ信号のデータ)として、表示パネルモデル90に入力する。具体的には表示パネルモデル90が、データドライバモデル20の内部レジスタ22のデータを参照する形態で、各データ線毎に5ビットのパラレルデータをデータドライバモデル20から表示パネルモデル90に転送する。このようなデータの参照による転送は、Verilog記述を利用して容易に実現できる。
図12において表示パネルモデル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を生成して出力する。
図13に、本実施形態のシミュレーション処理のフローチャートを示す。まず表示メモリモデルが階調データを出力する(ステップS1)。次に、FRC制御信号とデータ反転信号によりルックアップテーブルを選択する(ステップS2)。即ち図9(A)〜図10(B)のルックアップテーブルLUT1〜LUT4の中から、FRC制御信号とデータ反転信号の状態に対応したルックアップテーブルを選択する。
次に、選択されたルックアップテーブルと階調データに基づき、階調電圧の期待値データを決定する(ステップS3)。そしてデータドライバモデルのFRC処理回路等により、階調電圧データを出力する(ステップS4)。
次に、ルックアップテーブルからの期待値データと、データドライバモデルからの階調電圧データのコンペアを行い、異なっていれば図11に示すようなエラーメッセージファイルを作成して出力する(ステップS5)。また図12で説明したように、階調電圧データを内部レジスタに格納して、表示パネルモデルに渡す(ステップS6)。
図12、図13の手法によれば、仮想的な内部レジスタ22を設けるだけで、データドライバのアナログ動作を擬似的にシミュレーションできる。従って図3に示すような実装イメージでのシステムシミュレーションを、Verilogなどのデジタル論理シミュレーションを用いて実現できる。従って、簡素なモデルを使用しながらも、アナログ制御動作などをデジタル論理シミュレーションで検証できるようになり、検証効率を向上できる。
7.表示パネルモデル
本実施形態の表示パネルモデル90では、表示ドライバモデル10から入力されたデータを表示画像データに変換する処理が行われる。例えば図14に示すように、表示パネルモデル90が、表示ドライバモデル10からのシミュレーション結果であるデータ信号SS1、SS2、SS3・・・のデータと走査信号GS1、GS2・・・のデータを受ける。そしてこれらのデータに基づいて、表示パネルの各画素(データ信号と走査信号で特定される画素)での画像データを求め、求められた各画素での画像データを含む画像データファイル160を作成する。即ち図14に示すように表示パネルイメージの画像ダンプファイルを作成する。
より具体的には図14のA1、A2に示すように、走査ドライバモデル30からの走査信号の立ち下がりエッジをトリガとして、表示パネルモデル90の内部レジスタが、階調データ(階調電圧データ)である画像データを表示ドライバモデル10から取り込む。次に、コモン信号(信号FR)の極性(正極性、負極性)を判断して、内部レジスタに取り込まれた画像データの正転/反転処理を行う。次に、垂直同期信号(信号VSYNC)をトリガとして、画像データファイル160を作成して、出力する。
図15に画像データファイル160の一例を示す。なお本実施形態の画像データファイル160は図15のフォーマットに限定されず、種々の変形実施が可能である。
図15の画像データファイル160は、PPM(Portable Pix Map)と呼ばれるASCII形式で最も簡単な画像フォーマットのファイルである。具体的には画像データファイル160は、フォーマット識別子(P1:2値ASCII、P2:グレースケールASCII、P3:フルカラーASCII)、画像サイズ(横、縦)、階調数(最大色調値)、画像データ(10進の階調値で表されたRGBの画像データ)を含む。そしてシミュレーション終了後に、作成された画像データファイル160を、UNIX(登録商標)のユーティリティソフト等を用いてワークステーションの表示装置の画面に画像表示して、表示ドライバの動作検証を行う。このようにすれば、シミュレーション結果を、表示画像という形で視覚的に瞬時に捉えることが可能になる。また複雑な制御信号の全てを波形表示で目視確認しなくても済むため、設計効率を向上できる。また仕様を熟知した設計者でも発見が困難なバグについても、発見が可能になる。また細かな動作仕様を理解していない設計者でも検証作業に携わることが可能になり、作業の分業化が可能になる。
8.外部インターフェース回路モデル
これまでの検証シミュレーション手法では、論理検証言語の1つであるVerilogの記述を用いて、テストパターン(テスト入力情報)を(1、0)のバイナリデータで作成していた。或いは、テストパターンの信号タイミングをタスク記述し、それを繰り返し使用することで、信号入力の簡略化を図っていた。
しかしながら、検証対象デバイスである表示ドライバの仕様は、年々、複雑になって来ており、テストパターンをバイナリデータの信号入力で作成することは、非現実的になっている。またタスク記述を用いる手法においても、複数の形式のインターフェース信号の記述を個別に用意してしまうと、仕様毎に異なるテストパターンの記述が必要になってしまう。このためテストパターンの管理が煩雑化するなどの問題が生じる。
そこで本実施形態では図2、図3に示すように、表示ドライバ(検証対象デバイス)の外部デバイス(ホストデバイス)が含む外部インターフェース回路の動作が記述された外部インターフェース回路モデル130を用意する。即ち内部インターフェース回路モデル80に入力されるインターフェース信号を生成する外部インターフェース回路モデル130を用意する。またテスト入力情報150(テストベンチ)に、表示ドライバのレジスタに設定されるべきコマンドが記述されたコマンドファイル152を含ませる。
そしてコマンドファイル152を外部インターフェース回路モデル130に入力し、コマンドファイルに基づき外部インターフェース回路モデル130により生成されたインターフェース信号のデータ(バイナリデータ)を、表示ドライバモデル10に入力するシミュレーション処理を行う。この場合、外部インターフェース回路モデル130によりデータを生成できるインターフェース信号としては、MPUインターフェース信号、RGBインターフェース信号がある。或いはシリアルインターフェース信号(CMOSレベルのシリアルインターフェース信号、差動シリアルインターフェース信号)やYUVインターフェース信号であってもよい。
例えば図16にコマンドファイル152の一例を示す。図16のC1に示すIMODEは、インターフェースモードを指定するコマンドである。外部インターフェース回路モデル130では、このIMODEで指定される形式のインターフェース信号のデータが生成され、表示ドライバモデル10に入力される。例えば図16のC1では、16ビットのバス幅で、RAMのリード、ライトが可能なMPUインターフェース信号のモードが指定されている。
図16のC2に示すCmdVDDONは、VDDのレギュレータを動作状態にし、内部の基準電圧発生回路を起動するためのコマンドである。C3に示すCmdSoftResetは、ハードリセットを行うことなくハードリセットと同様のリセット(ソフトリセット)を行うためのコマンドである。C4に示すCmdSetPwrCtlは、電源回路の機能のオン、オフや能力を制御する電源設定を行うためのコマンドであり、電源設定の詳細についてはパラメータで指定される。C5に示すCmdSetPtlPwrCtlは、パーシャル表示時の非表示領域及びフロントポーチ期間の電源設定を行うためのコマンドであり、電源設定の詳細についてはパラメータで指定される。
C6に示すCmdSetScanModは、走査ドライバのスキャンモードを設定するためのコマンドであり、例えばパラメータにより順方向スキャンや逆方向スキャンが設定される。C7に示すCmdSetAltDrvは、交流駆動の状態を設定するためのコマンドであり、例えばパラメータにより1ライン反転駆動、2ライン反転駆動、フレーム反転駆動、インターレス駆動が設定される。C8に示すCmdSleepOutは、自動オンシーケンスを実行するためのコマンドである。C9に示すCmdWrRamは、表示メモリであるRAMへのライトコマンドである。C10に示すTaskFillMemは画像データを指定して送るためのコマンドである。C11に示すCmdOnDispは、表示パネルをオンにするためのコマンドであり、このコマンドにより、表示メモリに格納された画像データがPWMデータ信号に変換され、表示パネルへの画像表示が開始する。C12、C13に示すCmdPartialInは、パーシャル表示状態の設定を行うためのコマンドであり、パラメータによりパーシャル開始ラインやパーシャル終了ラインなどが設定される。なおC14、C15はウェイト時間を指定するためのものである。
本実施形態では図16に示すようなコマンドファイル152に記述されたコマンドにより、表示ドライバ(検証対象デバイス)の動作モードが指定される。そして、これらのコマンドで指定される動作モードに表示ドライバを設定するためのインターフェース信号のデータが、表示ドライバモデル10に入力されるようになる。
図17(A)(B)にMPUインターフェース信号の例を示す。図17(A)はライト時の例であり、図17(B)はリード時の例である。図17(A)(B)に示すように、データ/コマンド識別信号A0が「0」(ローレベル)でライト信号XWR(Xは負論理を表す)が「0」である場合には、コマンドライトが行われ、信号A0が「0」でリード信号XRDが「0」である場合には、リビジョンリードが行われる。また信号A0が「1」(ハイレベル)で信号XWRが「0」である場合には、RAMライト(表示メモリへの画像データのライト)又はコマンドパラメータのライトが行われ、信号A0が「1」で信号XRDが「0」である場合には、RAMリード(表示メモリからの画像データのリード)が行われる。
図17(C)にシリアルインターフェース信号の例を示す。図17(C)はライト時のシリアルインターフェース信号の例である。図17(C)において、D/Cはデータとコマンドを識別を意味し、Cnはコマンドのビットnを意味する。またPnはコマンドパラメータのビットnを意味する。9ビットのシリアルデータ(1パケット)の転送中は、チップセレクト信号XCSを「0」に保つ必要があり、1パケットの転送中に信号XCSを「1」にすると、転送中のパケットはキャンセルされる。そして再び信号XCSを「0」にすることで、パケットの再転送の受け付け状態になる。
図17(D)にRGBインターフェース信号の例を示す。RGBインターフェースは動画表示に最適なインターフェースであり、表示メモリへの画像データのライトが行われる。図17(D)に示すように、RGBインターフェースでは、表示タイミング基準クロック信号にDOTCLKを用いる。また垂直同期信号VSYNCIの立ち下がりエッジの検出後、水平同期信号HSYNCの立ち下がりエッジを検出した時点で、強制的にフレーム先頭(バックポーチの1ライン目)に同期を行う。バックポーチライン数、表示ライン数は、表示ドライバのレジスタへのコマンドで設定する。またRGBインターフェースでは、信号VSYNCI、HSYNC、ENABLE、画像データD17〜D0は、クロック信号DOTCLKの立ち下がりエッジで読み込まれる。そして信号ENABLEが「0」の期間でのみ、1画素(RGB)の画像データを表示メモリに書き込む。
なお外部インターフェース回路モデル130により生成できるインターフェース信号は、図17(A)〜(D)に示すようなMPUインターフェース信号、シリアルインターフェース信号、RGBインターフェース信号に限定されない。例えば図17(E)に示すようなYUVインターフェース信号(カメラインターフェース信号)を生成するようにしてもよい。またシリアルインターフェース信号は図17(C)に示すようなCMOS電圧レベルの信号に限定されず、差動信号等を用いた小振幅のシリアル信号(LVDS)であってもよい。
図18(A)(B)に外部インターフェース回路モデル130の構成例を示す。図18(A)は、図17(A)(B)のMPUインターフェース信号や図17(C)のシリアルインターフェース信号の生成を実現するモデルの例である。なお図17(D)のRGBインターフェース信号の生成についても同様のモデルにより実現できる。
コマンド処理タスク部132は、テスト入力情報150(コマンドファイル、画像データ)に基づいてコマンドレベルのタスク処理を行う。具体的にはコマンドとパラメータの識別処理を行う。またインターフェースモード指定コマンド(IMODE)により指定されるインターフェースが、パラレル転送なのかシリアル転送なのかを識別したり、ライトなのかリードなのかを識別する処理を行う。
信号生成タスク部134は、コマンド処理タスク部132からの変数レベルでの入力を受け、信号レベルでの処理を行う。即ち入力されたコマンドファイルのコマンドや画像データに基づいて、タイミング等を考慮しながら、インターフェース信号XCS、XRES、A0、XRD、XWR、IF1、IF2、IF3、DATA[N:0]、SCL、SDに対してバイナリデータ「1」「0」の割り振りを行う。これにより図17(A)(B)(C)に示すようなMPUインターフェース信号、シリアルインターフェース信号のデータが生成されて、表示ドライバモデル10に入力されるようになる。なお図18(B)は、高速シリアルインターフェース信号の生成を実現するモデルの例である。
以上のような外部インターフェース回路モデル130を用いる本実施形態の手法によれば以下の利点がある。即ちVerilog記述やタスク記述を用いてテストパターンを生成する手法では、検証対象デバイスの仕様が複雑になるにつれて、テストパターンの作成が非現実的になったり、テストパターンの管理が繁雑化するなどの問題があった。
これに対して外部インターフェース回路モデル130を用いる本実施形態の手法によれば、設計者が簡単なモード設定を行うことで、様々なMPUタイプ(C80系、68系)、転送モード(パラレル転送、シリアル転送)、バス幅(8、9、16、18ビット)のインターフェース信号のデータが自動生成されて、表示ドライバモデル10に入力されるようになる。従ってテスト入力情報(テストパターン)の作成の工数を大幅に減らすことができ、開発期間の短縮化を図れる。
また、設計者が、図16に示すようなコマンドが羅列されたコマンドファイルを作成するだけで、図17(A)〜(E)に示すような様々なタイプのインターフェース信号が生成されるようになる。即ち設計者は、表示ドライバの設計仕様書に従ったコマンドを記述して、図16に示すようなコマンドファイルを作成するだけで、様々なタイプのインターフェース信号が自動生成される。従って設計者は、Verilogの記述フォーマットを熟知していなくても、容易にテスト入力情報を作成できるようになり、テスト入力情報の作成を容易化できる。
また同じ画像データを用いながら、コマンドファイルのコマンド記述を変えるだけで、異なる形式の様々なインターフェース信号のデータが自動生成されるようになるため、テスト入力情報の作成工数の更なる低減化を図れる。
なお、上記のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語と共に記載された用語は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。
また検証シミュレータの構成や検証シミュレーション手法も本実施形態で説明したものに限定されるものでない。例えばシミュレーション結果データを画像データファイルとして出力しない手法や、外部インターフェース回路モデルを利用しない手法を採用してもよい。またシミュレーション手法も、Verilogなどのデジタル論理シミュレーション手法に限定されるものではない。