以下、実施の形態に従って本発明を詳細に説明する。
図1に、本発明を具備するアイパターン評価装置1の一実施形態例を図示する。
本実施形態例のアイパターン評価装置1は、データ列ファイル10と、伝送路モデル記憶部11と、波形シミュレータ12と、プロットデータファイル13と、マスクスペック記憶部14と、アイパターン評価部15と、ディスプレイ16とを備える。
データ列ファイル10は、図2に示すような1か0をとる信号の時系列データで構成されるデータ列を記憶する。
伝送路モデル記憶部11は、設計対象装置の備える受信デバイスに接続される伝送路の数学的モデルを記憶する。
波形シミュレータ12は、伝送路モデル記憶部11の記憶する伝送路モデルに基づいて、データ列ファイル10の記憶するデータ列の伝送波形をシミュレートすることで、時間と波形電圧値との対応関係について記述するプロットデータを生成する。
プロットデータファイル13は、波形シミュレータ12の生成した図3に示すようなプロットデータを記憶する。
マスクスペック記憶部14は、アイパターンの品質評価基準となる図19に示すようなマスクのスペックを記憶する。
アイパターン評価部15は、プロットデータファイル13の記憶するプロットデータから2クロック周期分の長さを持つ波形信号片を順次切り出してディスプレイ16に重畳表示することで、図18に示すようなアイパターンを生成してディスプレイ16に表示する波形表示部150と、波形表示部150の生成するアイパターンがマスクスペック記憶部14の記憶するマスクに対して持っているマージンを算出してその算出結果をディスプレイ16に表示するマージン算出部151とを備えることで、アイパターンを生成してディスプレイ16に表示するとともに、アイパターンがマスクに対して持っているマージンを算出してその算出結果をディスプレイ16に表示する。
図4ないし8に、アイパターン評価部15の実行するフローチャートの一例を図示する。
ここで、図4に示すフローチャートは、アイパターン評価部15の実行する全体的な処理についてのフローチャートである。また、図5および図6に示すフローチャートは、図4に示すフローチャートのステップS10で実行する処理についての詳細なフローチャートである。また、図7に示すフローチャートは、図4に示すフローチャートのステップS30で実行する処理についての詳細なフローチャートである。また、図8に示すフローチャートは、図4に示すフローチャートのステップS40で実行する処理についての詳細なフローチャートである。
次に、これらのフローチャートに従って、図1のように構成される本実施形態例のアイパターン評価装置1の実行する処理について詳細に説明する。
〔1〕全体的な処理
アイパターン評価部15は、アイパターンがマスクに対して持っているマージンを算出する場合には、図4のフローチャートに示すように、先ず最初に、ステップS10で、アイパターン開口の時間軸上の中心位置を割り出すことで、アイパターンの中心位置を算出する。
続いて、ステップS20で、算出したアイパターンの中心位置にマスクの中心位置を配置することを想定して、その配置下でのマスクの持つ各特徴点の時間座標値および電圧座標値を算出することでマスクを作成する。
受信デバイスを提供するメーカから図19に示すようなマスクが提示される場合には、アイパターンの中心位置として算出した位置にこのマスクの中心位置を配置することを想定して、その配置下でのマスクの持つ各特徴点r点,s点,t点,u点,p点,q点の時間座標値および電圧座標値を算出するのである。
続いて、ステップS30で、時間軸上に存在しないマスクの持つ各特徴点について電圧軸マージンを算出して、それに基づいて、最終的な電圧軸マージンを算出する。
受信デバイスを提供するメーカから図19に示すようなマスクが提示される場合には、時間軸上に存在しない各特徴点r点,s点,t点,u点について電圧軸マージンを算出して、それに基づいて、最終的な電圧軸マージンを算出するのである。
続いて、ステップS40で、時間軸上に存在するマスクの持つ各特徴点について時間軸マージンを算出して、それに基づいて、最終的な時間軸マージンを算出する。
受信デバイスを提供するメーカから図19に示すようなマスクが提示される場合には、時間軸上に存在する各特徴点p点,q点について時間軸マージンを算出して、それに基づいて、最終的な時間軸マージンを算出するのである。
続いて、ステップS50で、ステップS30で算出した最終的な電圧軸マージンと、ステップS40で算出した最終的な時間軸マージンとをディスプレイ16に表示して、処理を終了する。
〔1−1〕アイパターン中心位置の算出処理
次に、図5および図6のフローチャートに従って、図4のフローチャートのステップS10で実行するアイパターン中心位置の算出処理について説明する。
アイパターン評価部15は、図4のフローチャートのステップS10に進むことでアイパターン中心位置の算出処理に入ると、図5および図6のフローチャートに示すように、先ず最初に、ステップS100で、プロットデータファイル13から開始周期のプロットデータ(2クロック周期分のプロットデータ)を読み出し、その中から電圧値(電圧座標値)が±Vthに入るプロットデータを抽出する。ここで、Vthはゼロ値近傍に設定される閾値である。
ここで、図18から分かるように、ステップS100で抽出することになる電圧値が±Vthに入るプロットデータが存在しない場合があるが、この場合には、次の周期のプロットデータ(2クロック周期分のプロットデータ)を読み出していくことになる。
続いて、ステップS101で、抽出したプロットデータの中から最小の時間値(時間座標値)を持つものを抽出して、その時間値を変数“最小時間”に代入する。
続いて、ステップS102で、プロットデータファイル13に記憶される最終周期のプロットデータ(2クロック周期分のプロットデータ)まで処理を行ったのか否かを判断して、最終周期のプロットデータまで処理を行っていないことを判断するときには、ステップS103に進んで、プロットデータファイル13から次の周期のプロットデータ(2クロック周期分のプロットデータ)を読み出し、その中から電圧値が±Vthに入るプロットデータを抽出する。
ここで、図18から分かるように、ステップS103で抽出することになる電圧値が±Vthに入るプロットデータが存在しない場合があるが、この場合には、次の周期のプロットデータ(2クロック周期分のプロットデータ)を読み出していくことになる。
続いて、ステップS104で、抽出したプロットデータの中から最小の時間値を持つものを抽出する。
続いて、ステップS105で、抽出したプロットデータの時間値が変数“最小時間”の値よりも小さいのか否かを判断し、続くステップS106で、小さいという判断結果が得られたのかを判断する。
この判断処理に従って、抽出したプロットデータの時間値が変数“最小時間”の値よりも小さいことを判断するときには、ステップS107に進んで、抽出したプロットデータの時間値に従って変数“最小時間”の値を書き換えてから、ステップS102の処理に戻る。
一方、この判断処理に従って、抽出したプロットデータの時間値が変数“最小時間”の値よりも大きいことを判断するときには、ステップS107の処理を行わずに、直ちにステップS102の処理に戻る。
このようにして、ステップS102〜ステップS107の処理を繰り返していくことで、ステップS102で、プロットデータファイル13に記憶される最終周期のプロットデータまで処理を行ったことを判断すると、ステップS108に進んで、変数“最小時間”の値を最小時間として決定する。
続いて、ステップS109で、プロットデータファイル13から開始周期のプロットデータ(2クロック周期分のプロットデータ)を読み出し、その中から電圧値が±Vthに入るプロットデータを抽出する。
ここで、図18から分かるように、ステップS109で抽出することになる電圧値が±Vthに入るプロットデータが存在しない場合があるが、この場合には、次の周期のプロットデータ(2クロック周期分のプロットデータ)を読み出していくことになる。
続いて、ステップS110で、抽出したプロットデータの中から最大の時間値を持つものを抽出して、その時間値を変数“最大時間”に代入する。
続いて、ステップS111で、プロットデータファイル13に記憶される最終周期のプロットデータ(2クロック周期分のプロットデータ)まで処理を行ったのか否かを判断して、最終周期のプロットデータまで処理を行っていないことを判断するときには、ステップS112に進んで、プロットデータファイル13から次の周期のプロットデータ(2クロック周期分のプロットデータ)を読み出し、その中から電圧値が±Vthに入るプロットデータを抽出する。
ここで、図18から分かるように、ステップS112で抽出することになる電圧値が±Vthに入るプロットデータが存在しない場合があるが、この場合には、次の周期のプロットデータ(2クロック周期分のプロットデータ)を読み出していくことになる。
続いて、ステップS113で、抽出したプロットデータの中から最大の時間値を持つものを抽出する。
続いて、ステップS114で、抽出したプロットデータの時間値が変数“最大時間”の値よりも大きいのか否かを判断し、続くステップS115で、大きいという判断結果が得られたのか否かを判断する。
この判断処理に従って、抽出したプロットデータの時間値が変数“最大時間”の値よりも大きいことを判断するときには、ステップS116に進んで、抽出したプロットデータの時間値に従って変数“最大時間”の値を書き換えてから、ステップS111の処理に戻る。
一方、この判断処理に従って、抽出したプロットデータの時間値が変数“最大時間”の値よりも小さいことを判断するときには、ステップS116の処理を行わずに、直ちにステップS111の処理に戻る。
このようにして、ステップS111〜ステップS116の処理を繰り返していくことで、ステップS111で、プロットデータファイル13に記憶される最終周期のプロットデータまで処理を行ったことを判断すると、ステップS117に進んで、変数“最大時間”の値を最大時間として決定する。
続いて、ステップS118で、ステップS108で決定した最小時間とステップS117で決定した最大時間との間の中間位置を求めて、それをアイパターンの中心位置と決定して、処理を終了する。
このようにして、アイパターン評価部15は、図4のフローチャートのステップS10に進むことでアイパターン中心位置の算出処理に入ると、ステップS100〜ステップS108の処理に従って、図9中に示す最小時間の時間座標値を求めるとともに、ステップS109〜ステップS117の処理に従って、図9中に示す最大時間の時間座標値を求めて、その2つの中間位置(=(最小時間+最大時間)/2)を求めることで、図9中に示すアイパターンの中心位置を算出するように処理するのである。
〔1−2〕マスク作成処理
図4のフローチャートのステップS10の処理に従ってアイパターンの中心位置が算出されると、前述したように、図4のフローチャートのステップS20の処理に従って、算出したアイパターンの中心位置にマスクの中心位置を配置することで、図10に示すような形でマスクが作成されることになる。
〔1−3〕電圧軸マージンの算出処理
次に、図7のフローチャートに従って、図4のフローチャートのステップS30で実行する電圧軸マージンの算出処理について説明する。
この電圧軸マージンの算出処理に入る前に、図4のフローチャートのステップS20の処理に従って、マスクの持つ各特徴点の時間座標値および電圧座標値が算出されており、この電圧軸マージンの算出処理では、それらの特徴点の内の時間軸上に存在しない特徴点について図7のフローチャートの処理を実行して、その実行により求められる各特徴点の電圧軸マージンから最終的な電圧軸マージンを算出するという処理を実行する。
すなわち、受信デバイスを提供するメーカから図19に示すようなマスクが提示される場合には、各特徴点r点,s点,t点,u点について図7のフローチャートの処理を実行して、その実行により求められる各特徴点の電圧軸マージンから最終的な電圧軸マージンを算出するという処理を実行するのである。
アイパターン評価部15は、時間軸上に存在しない1つの特徴点を選択して、それについて電圧軸マージンの算出処理に入ると、図7のフローチャートに示すように、先ず最初に、ステップS300で、特徴点に最も近いプロットデータの時間位置を特定する。
図3に示すように、各周期のプロットデータ(2クロック周期分のプロットデータ)は一定の時間間隔でサンプリングされた波形電圧値で構成されて、その先頭からの相対的な時間値に従ってアイパターンを形成すべくプロットされることになり、これにより、図11に示すように、特徴点に最も近いプロットデータの時間位置が一意に決められることから、その時間位置を特定するのである。
続いて、ステップS301で、プロットデータファイル13から開始周期のプロットデータ(2クロック周期分のプロットデータ)を読み出し、その読み出したプロットデータの中から、特徴点のマスク電圧の正負に応じて処理対象のプロットデータ部分を抽出する。
図19に示す特徴点r点,s点のマスク電圧は正の電圧であることから、図12(a)に示すように、正の電圧値を持つプロットデータ部分を処理対象として抽出し、一方、図19に示す特徴点t点,u点のマスク電圧は負の電圧であることから、図12(b)に示すように、負の電圧値を持つプロットデータ部分を処理対象として抽出するのである。
ここで、図18から分かるように、ステップS301で抽出することになる処理対象のプロットデータ部分が存在しない場合があるが、この場合には、次の周期のプロットデータ(2クロック周期分のプロットデータ)を読み出していくことになる。
続いて、ステップS302で、ステップS301で抽出したプロットデータ部分を処理対象として、そのプロットデータ部分に含まれているステップS300で特定した時間位置にあるプロットデータを抽出することで、特徴点に最も近い時間位置のプロットデータの電圧値を抽出する。
続いて、ステップS303で、特徴点のマスク電圧と抽出した電圧値との差分電圧値を算出して、変数“最小差分電圧値”に代入する。このとき、抽出した電圧値がアイパターンに入り込む場合には、算出する差分電圧値の符号を負とし、抽出した電圧値がアイパターンに入り込まない場合には、算出する差分電圧値の符号を正として、差分電圧値を算出する。
続いて、ステップS304で、プロットデータファイル13に記憶される最終周期のプロットデータ(2クロック周期分のプロットデータ)まで処理を行ったのか否かを判断して、最終周期のプロットデータまで処理を行っていないことを判断するときには、ステップS305に進んで、プロットデータファイル13から次の周期のプロットデータ(2クロック周期分のプロットデータ)を読み出し、ステップS301の処理と同様の処理に従って、その読み出したプロットデータの中から、特徴点のマスク電圧の正負に応じて処理対象のプロットデータ部分を抽出する。
ここで、図18から分かるように、ステップS305で抽出することになる処理対象のプロットデータ部分が存在しない場合があるが、この場合には、次の周期のプロットデータ(2クロック周期分のプロットデータ)を読み出していくことになる。
続いて、ステップS306で、ステップS305で抽出したプロットデータ部分を処理対象として、そのプロットデータ部分に含まれているステップS300で特定した時間位置にあるプロットデータを抽出することで、特徴点に最も近い時間位置のプロットデータ電圧値を抽出する。
続いて、ステップS307で、特徴点のマスク電圧値と抽出した電圧値との差分電圧値を算出する。このとき、抽出した電圧値がアイパターンに入り込む場合には、算出する差分電圧値の符号を負とし、抽出した電圧値がアイパターンに入り込まない場合には、算出する差分電圧値の符号を正として、差分電圧値を算出する。
続いて、ステップS308で、算出した差分電圧値が変数“最小差分電圧値”の値よりも小さいのか否かを判断し、続くステップS309で、小さいという判断結果が得られたのか否かを判断する。このとき、通常の数学的論理に従って、正の符号の差分電圧値よりも負の符号の差分電圧値の方が小さいと判断し、また、両方とも負の符号の差分電圧値である場合には、絶対値の大きい差分電圧値の方が小さいと判断することで、この判断処理を実行する。
この判断処理に従って、算出した差分電圧値が変数“最小差分電圧値”の値よりも小さいことを判断するときには、ステップS310に進んで、算出した差分電圧値に従って変数“最小差分電圧値”の値を書き換えてから、ステップS304の処理に戻る。
一方、この判断処理に従って、算出した差分電圧値が変数“最小差分電圧値”の値よりも大きいことを判断するときには、ステップS310の処理を行わずに、直ちにステップS304の処理に戻る。
このようにして、ステップS304〜ステップS310の処理を繰り返していくことで、ステップS304で、プロットデータファイル13に記憶される最終周期のプロットデータまで処理を行ったことを判断すると、ステップS311に進んで、変数“最小差分電圧値”の値を、処理を行った特徴点の電圧軸マージンとして決定する。
時間軸上に存在しない特徴点が複数ある場合には、アイパターン評価部15は、それらの各特徴点についてこの図7のフローチャートの処理を実行し、これにより、それらの各特徴点について電圧軸方向のマージンを算出することになる。
これから、アイパターン評価部15は、このようにして算出した各特徴点についての電圧軸方向のマージンに基づいて、例えば、それらのマージンの中の最小のものを特定して、それを電圧軸方向のマージンとして決定することになる。
前述したように、プロットデータがアイパターンに入り込む場合には、差分電圧値の符号を負として算出し、プロットデータがアイパターンに入り込まない場合には、差分電圧値の符号を正として算出するようにしていることから、各特徴点について算出した電圧軸方向のマージンの最小のものを特定して、それを最終的な電圧軸マージンとする場合、プロットデータがアイパターンに入り込む場合には、最もアイパターンに入り込んだ差分電圧値が最終的な電圧軸マージンとして算出され、プロットデータがアイパターンに入り込まない場合には、最もアイパターンに近づく差分電圧値が最終的な電圧軸マージンとして算出されることになる。
〔1−4〕時間軸マージンの算出処理
次に、図8のフローチャートに従って、図4のフローチャートのステップS40で実行する時間軸マージンの算出処理について説明する。
この時間軸マージンの算出処理に入る前に、図4のフローチャートのステップS20の処理に従って、マスクの持つ各特徴点の時間座標値および電圧座標値が算出されており、この時間軸マージンの算出処理では、それらの特徴点の内の時間軸上に存在する特徴点について図8のフローチャートの処理を実行して、その実行により求められる各特徴点の時間軸マージンから最終的な時間軸マージンを算出するという処理を実行する。
すなわち、受信デバイスを提供するメーカから図19に示すようなマスクが提示される場合には、各特徴点p点,q点について図8のフローチャートの処理を実行して、その実行により求められる各特徴点の時間軸マージンから最終的な時間軸マージンを算出するという処理を実行するのである。
アイパターン評価部15は、時間軸上に存在する1つの特徴点を選択して、それについて時間軸マージンの算出処理に入ると、図8のフローチャートに示すように、先ず最初に、ステップS400で、プロットデータファイル13から開始周期のプロットデータ(2クロック周期分のプロットデータ)を読み出し、その読み出したプロットデータの中から、電圧値が±Vthに入り、かつ特徴点の時間位置に応じて処理対象のプロットデータ部分を抽出する。
図19に示す特徴点p点の時間位置はアイパターンの中心位置よりも時間的に前側であることから、図13(a)に示すように、電圧値が±Vthに入り、かつアイパターンの中心位置よりも時間的に前にあるプロットデータ部分を処理対象として抽出し、一方、図19に示す特徴点q点の時間位置はアイパターンの中心位置よりも時間的に後側であることから、図13(b)に示すように、電圧値が±Vthに入り、かつアイパターンの中心位置よりも時間的に後にあるプロットデータ部分を処理対象として抽出するのである。
ここで、図18から分かるように、ステップS400で抽出することになるプロットデータ部分が存在しない場合があるが、この場合には、次の周期のプロットデータ(2クロック周期分のプロットデータ)を読み出していくことになる。
続いて、ステップS401で、ステップS400で抽出したプロットデータ部分を処理対象として、そのプロットデータ部分に含まれている電圧値が最もゼロに近いプロットデータを特定して、そのプロットデータの時間値を抽出する。
続いて、ステップS402で、特徴点の時間値と抽出した時間値との差分時間値を算出し、変数“最小差分時間値”に代入する。このとき、抽出した時間値がアイパターンに入り込む場合には、算出する差分時間値の符号を負とし、抽出した時間値がアイパターンに入り込まない場合には、算出する差分時間値の符号を正として、差分時間値を算出する。
続いて、ステップS403で、プロットデータファイル13に記憶される最終周期のプロットデータ(2クロック周期分のプロットデータ)まで処理を行ったのか否かを判断して、最終周期のプロットデータまで処理を行っていないことを判断するときには、ステップS404に進んで、プロットデータファイル13から次の周期のプロットデータ(2クロック周期分のプロットデータ)を読み出し、ステップS400の処理と同様の処理に従って、その読み出したプロットデータの中から、電圧値が±Vthに入り、かつ特徴点の時間位置に応じて処理対象のプロットデータ部分を抽出する。
ここで、図18から分かるように、ステップS404で抽出することになるプロットデータ部分が存在しない場合があるが、この場合には、次の周期のプロットデータ(2クロック周期分のプロットデータ)を読み出していくことになる。
続いて、ステップS405で、ステップS404で抽出したプロットデータ部分を処理対象として、そのプロットデータ部分に含まれている電圧値が最もゼロに近いプロットデータを特定して、そのプロットデータの時間値を抽出する。
続いて、ステップS406で、特徴点の時間値と抽出した時間値との差分時間値を算出する。このとき、抽出した時間値がアイパターンに入り込む場合には、算出する差分時間値の符号を負とし、抽出した時間値がアイパターンに入り込まない場合には、算出する差分時間値の符号を正として、差分時間値を算出する。
続いて、ステップS407で、算出した差分時間値が変数“最小差分時間値”の値よりも小さいのか否かを判断し、続くステップS408で、小さいという判断結果が得られたのか否かを判断する。このとき、通常の数学的論理に従って、正の符号の差分時間値よりも負の符号の差分時間値の方が小さいと判断し、また、両方とも負の符号の差分時間値である場合には、絶対値の大きい差分時間値の方が小さいと判断することで、この判断処理を実行する。
この判断処理に従って、算出した差分時間値が変数“最小差分時間値”の値よりも小さいことを判断するときには、ステップS409に進んで、算出した差分時間値に従って変数“最小差分時間値”の値を書き換えてから、ステップS403の処理に戻る。
一方、この判断処理に従って、算出した差分時間値が変数“最小差分時間値”の値よりも大きいことを判断するときには、ステップS409の処理を行わずに、直ちにステップS403の処理に戻る。
このようにして、ステップS403〜ステップS409の処理を繰り返していくことで、ステップS403で、プロットデータファイル13に記憶される最終周期のプロットデータまで処理を行ったことを判断すると、ステップS410に進んで、変数“最小差分時間値”の値を、処理を行った特徴点の時間軸マージンとして決定する。
時間軸上に存在する特徴点が複数ある場合には、アイパターン評価部15は、それらの各特徴点についてこの図8のフローチャートの処理を実行し、これにより、それらの各特徴点について時間軸方向のマージンを算出することになる。
これから、アイパターン評価部15は、このようにして算出した各特徴点について時間軸方向のマージンに基づいて、例えば、それらのマージンの中の最小のものを特定して、それを時間軸方向のマージンとして決定することになる。
前述したように、プロットデータがアイパターンに入り込む場合には、差分時間値の符号を負として算出し、プロットデータがアイパターンに入り込まない場合には、差分時間値の符号を正として算出するようにしていることから、各特徴点について算出した時間軸方向のマージンの最小のものを特定して、それを最終的な時間軸マージンとする場合、プロットデータがアイパターンに入り込む場合には、最もアイパターンに入り込んだ差分時間値が最終的な時間軸マージンとして算出され、プロットデータがアイパターンに入り込まない場合には、最もアイパターンに近づく差分時間値が最終的な時間軸マージンとして算出されることになる。
このようにして、アイパターン評価部15は、図4ないし8のフローチャートを実行することで、シミュレータにより生成されるアイパターンが品質評価基準となるマスクに対して持っているマージンを自動的に算出することを実現するのである。
そして、アイパターン評価部15は、このマージンの算出にあたって、受信デバイスに組み込まれるクロック・データ・リカバリの特性を考慮して、品質評価基準となるマスクをアイパターン開口の時間軸上の中心位置に配置してマージンを算出することで、実際に受信デバイスが動作する際に要求される正確なマージンの算出を実現するのである。
以上に説明した実施形態例では、特徴点に最も近いプロットデータを抽出することで、アイパターン中心位置の算出処理(〔1−1〕で説明した処理)、電圧軸マージンの算出処理(〔1−3〕で説明した処理)および時間軸マージンの算出処理(〔1−4〕で説明した処理)を実行するという構成を採ったが、マージン算出処理の精度を高めるために、直線補間手法に従って特徴点位置におけるプロットデータの時間値や電圧値を推定して、それに基づいて、アイパターン中心位置の算出処理や電圧軸マージンの算出処理や時間軸マージンの算出処理を実行する方法を用いるようにしてもよい。
図14ないし17に、この方法を用いる場合に、アイパターン評価部15の実行するフローチャートの一例を図示する。
ここで、図14および図15に示すフローチャートは、図4に示すフローチャートのステップS10で実行する処理についての詳細なフローチャートである。また、図16に示すフローチャートは、図4に示すフローチャートのステップS30で実行する処理についての詳細なフローチャートである。また、図17に示すフローチャートは、図4に示すフローチャートのステップS40で実行する処理についての詳細なフローチャートである。
次に、これらのフローチャートに従って、この方法を用いる場合に実行するアイパターン評価装置1の実行する処理について詳細に説明する。
〔2−1〕アイパターン中心位置の算出処理
アイパターン評価部15は、図14および図15のフローチャートに従ってアイパターンの中心位置を算出する場合には、図4のフローチャートのステップS10に進むことでアイパターン中心位置の算出処理に入ると、先ず最初に、ステップS100aで、プロットデータファイル13から開始周期のプロットデータ(2クロック周期分のプロットデータ)を読み出し、その中から0V(時間軸)を交差する2つの連続プロットデータを抽出する。
続いて、ステップS101aで、抽出した2つの連続プロットデータの直線補間式を導出して時間軸との交点を算出し、その算出した時間値を変数“最小時間”に代入する。
ここで、図18から分かるように、ステップS100aで抽出することになる0V(時間軸)を交差する2つの連続プロットデータが存在しない場合があるが、この場合には、次の周期のプロットデータ(2クロック周期分のプロットデータ)を読み出していくことになる。
続いて、ステップS102aで、プロットデータファイル13に記憶される最終周期のプロットデータ(2クロック周期分のプロットデータ)まで処理を行ったのか否かを判断して、最終周期のプロットデータまで処理を行っていないことを判断するときには、ステップS103aに進んで、プロットデータファイル13から次の周期のプロットデータ(2クロック周期分のプロットデータ)を読み出し、その中から0V(時間軸)を交差する2つの連続プロットデータを抽出する。
続いて、ステップS104aで、抽出した2つの連続プロットデータの直線補間式を導出して時間軸との交点を算出することで、その交点の時間値を算出する。
ここで、図18から分かるように、ステップS103aで抽出することになる0V(時間軸)を交差する2つの連続プロットデータが存在しない場合があるが、この場合には、次の周期のプロットデータ(2クロック周期分のプロットデータ)を読み出していくことになる。
続いて、ステップS105aで、算出した交点の時間値が変数“最小時間”の値よりも小さいのか否かを判断し、続くステップS106aで、小さいという判断結果が得られたのかを判断する。
この判断処理に従って、算出した交点の時間値が変数“最小時間”の値よりも小さいことを判断するときには、ステップS107aに進んで、算出した交点の時間値に従って変数“最小時間”の値を書き換えてから、ステップS102aの処理に戻る。
一方、この判断処理に従って、算出した交点の時間値が変数“最小時間”の値よりも大きいことを判断するときには、ステップS107aの処理を行わずに、直ちにステップS102aの処理に戻る。
このようにして、ステップS102a〜ステップS107aの処理を繰り返していくことで、ステップS102aで、プロットデータファイル13に記憶される最終周期のプロットデータまで処理を行ったことを判断すると、ステップS108aに進んで、変数“最小時間”の値を最小時間として決定する。
続いて、ステップS109aで、プロットデータファイル13から開始周期のプロットデータ(2クロック周期分のプロットデータ)を読み出し、その中から0V(時間軸)を交差する2つの連続プロットデータを抽出する。
続いて、ステップS110aで、抽出した2つの連続プロットデータの直線補間式を導出して時間軸との交点を算出し、その算出した時間値を変数“最大時間”に代入する。
ここで、図18から分かるように、ステップS109aで抽出することになる0V(時間軸)を交差する2つの連続プロットデータが存在しない場合があるが、この場合には、次の周期のプロットデータ(2クロック周期分のプロットデータ)を読み出していくことになる。
続いて、ステップS111aで、プロットデータファイル13に記憶される最終周期のプロットデータ(2クロック周期分のプロットデータ)まで処理を行ったのか否かを判断して、最終周期のプロットデータまで処理を行っていないことを判断するときには、ステップS112aに進んで、プロットデータファイル13から次の周期のプロットデータ(2クロック周期分のプロットデータ)を読み出し、その中から0V(時間軸)を交差する2つの連続プロットデータを抽出する。
続いて、ステップS113aで、抽出した2つの連続プロットデータの直線補間式を導出して時間軸との交点を算出することで、その交点の時間値を算出する。
ここで、図18から分かるように、ステップS112aで抽出することになる0V(時間軸)を交差する2つの連続プロットデータが存在しない場合があるが、この場合には、次の周期のプロットデータ(2クロック周期分のプロットデータ)を読み出していくことになる。
続いて、ステップS114aで、算出した交点の時間値が変数“最大時間”の値よりも大きいのか否かを判断し、続くステップS115aで、大きいという判断結果が得られたのかを判断する。
この判断処理に従って、算出した交点の時間値が変数“最大時間”の値よりも大きいことを判断するときには、ステップS116aに進んで、算出した交点の時間値に従って変数“最大時間”の値を書き換えてから、ステップS111aの処理に戻る。
一方、この判断処理に従って、算出した交点の時間値が変数“最大時間”の値よりも小さいことを判断するときには、ステップS116aの処理を行わずに、直ちにステップS111aの処理に戻る。
このようにして、ステップS111a〜ステップS116aの処理を繰り返していくことで、ステップS111aで、プロットデータファイル13に記憶される最終周期のプロットデータまで処理を行ったことを判断すると、ステップS117aに進んで、変数“最大時間”の値を最大時間として決定する。
続いて、ステップS118aで、ステップS108aで決定した最小時間とステップS117aで決定した最大時間との間の中間位置を求めて、それをアイパターンの中心位置として処理を終了する。
このようにして、アイパターン評価部15は、図4のフローチャートのステップS10に進むことでアイパターン中心位置の算出処理に入ると、直線補間手法に従って時間軸と交差するプロットデータの時間値を推定することで、図9中に示す最小時間の時間座標値および最大時間の時間座標値を求めて、図9中に示すアイパターンの中心位置を算出するように処理するのである。
〔2−2〕マスク作成処理
図4のフローチャートのステップS10の処理に従ってアイパターンの中心位置が算出されると、前述したように、図4のフローチャートのステップS20の処理に従って、算出したアイパターンの中心位置にマスクの中心位置を配置することで、図10に示すような形でマスクが作成されることになる。
〔2−3〕電圧軸マージンの算出処理
アイパターン評価部15は、図16のフローチャートに従って電圧軸マージンを算出する場合には、図4のフローチャートのステップS30に進むことで、時間軸上に存在しない1つの特徴点を選択して、それについて電圧軸マージンの算出処理に入ると、先ず最初に、ステップS300aで、特徴点に隣接する2つのプロットデータの時間位置を特定する。
図3に示すように、各周期のプロットデータ(2クロック周期分のプロットデータ)は一定の時間間隔でサンプリングされた波形電圧値で構成されて、その先頭からの相対的な時間値に従ってアイパターンを形成すべくプロットされることになり、これにより、特徴点に隣接する2つのプロットデータの時間位置が一意に決められることから、その時間位置を特定するのである。
続いて、ステップS301aで、プロットデータファイル13から開始周期のプロットデータ(2クロック周期分のプロットデータ)を読み出し、その読み出したプロットデータの中から、特徴点のマスク電圧の正負に応じて処理対象のプロットデータ部分を抽出する。
図19に示す特徴点r点,s点のマスク電圧は正の電圧であることから、図12(a)に示すように、正の電圧値を持つプロットデータ部分を処理対象として抽出し、一方、図19に示す特徴点t点,u点のマスク電圧は負の電圧であることから、図12(b)に示すように、負の電圧値を持つプロットデータ部分を処理対象として抽出するのである。
ここで、図18から分かるように、ステップS301aで抽出することになる処理対象のプロットデータ部分が存在しない場合があるが、この場合には、次の周期のプロットデータ(2クロック周期分のプロットデータ)を読み出していくことになる。
続いて、ステップS302aで、ステップS301aで抽出したプロットデータ部分を処理対象として、そのプロットデータ部分に含まれているステップS300aで特定した時間位置にある2つの連続プロットデータを抽出して、その2つの連続プロットデータの直線補間式を導出して特徴点の時間位置との交点を算出することで、その交点の電圧値を算出する。
続いて、ステップS303aで、特徴点のマスク電圧と算出した交点の電圧値との差分電圧値を算出し、変数“最小差分電圧値”に代入する。このとき、算出した交点の電圧値がアイパターンに入り込む場合には、算出する差分電圧値の符号を負とし、算出した交点の電圧値がアイパターンに入り込まない場合には、算出する差分電圧値の符号を正として、差分電圧値を算出する。
続いて、ステップS304aで、プロットデータファイル13に記憶される最終周期のプロットデータ(2クロック周期分のプロットデータ)まで処理を行ったのか否かを判断して、最終周期のプロットデータまで処理を行っていないことを判断するときには、ステップS305aに進んで、プロットデータファイル13から次の周期のプロットデータ(2クロック周期分のプロットデータ)を読み出し、ステップS301aの処理と同様の処理に従って、その読み出したプロットデータの中から、特徴点のマスク電圧の正負に応じて処理対象のプロットデータ部分を抽出する。
ここで、図18から分かるように、ステップS305aで抽出することになる処理対象のプロットデータ部分が存在しない場合があるが、この場合には、次の周期のプロットデータ(2クロック周期分のプロットデータ)を読み出していくことになる。
続いて、ステップS306aで、ステップS305aで抽出したプロットデータ部分を処理対象として、そのプロットデータ部分に含まれているステップS300aで特定した時間位置にある2つの連続プロットデータを抽出して、その2つの連続プロットデータの直線補間式を導出して特徴点の時間位置との交点を算出することで、その交点の電圧値を算出する。
続いて、ステップS307aで、特徴点のマスク電圧と算出した交点の電圧値との差分電圧値を算出する。このとき、算出した交点の電圧値がアイパターンに入り込む場合には、算出する差分電圧値の符号を負とし、算出した交点の電圧値がアイパターンに入り込まない場合には、算出する差分電圧値の符号を正として、差分電圧値を算出する。
続いて、ステップS308aで、算出した差分電圧値が変数“最小差分電圧値”の値よりも小さいのか否かを判断し、続くステップS309aで、小さいという判断結果が得られたのか否かを判断する。このとき、通常の数学的論理に従って、正の符号の差分電圧値よりも負の符号の差分電圧値の方が小さいと判断し、また、両方とも負の符号の差分電圧値である場合には、絶対値の大きい差分電圧値の方が小さいと判断することで、この判断処理を実行する。
この判断処理に従って、算出した差分電圧値が変数“最小差分電圧値”の値よりも小さいことを判断するときには、ステップS310aに進んで、算出した差分電圧値に従って変数“最小差分電圧値”の値を書き換えてから、ステップS304aの処理に戻る。
一方、この判断処理に従って、算出した差分電圧値が変数“最小差分電圧値”の値よりも大きいことを判断するときには、ステップS310aの処理を行わずに、直ちにステップS304aの処理に戻る。
このようにして、ステップS304a〜ステップS310aの処理を繰り返していくことで、ステップS304aで、プロットデータファイル13に記憶される最終周期のプロットデータまで処理を行ったことを判断すると、ステップS311aに進んで、変数“最小差分電圧値”の値を、処理を行った特徴点の電圧軸マージンとして決定する。
時間軸上に存在しない特徴点が複数ある場合には、アイパターン評価部15は、それらの各特徴点についてこの図16のフローチャートの処理を実行し、これにより、それらの各特徴点について電圧軸方向のマージンを算出することになる。
これから、アイパターン評価部15は、このようにして算出した各特徴点について電圧軸方向のマージンに基づいて、例えば、それらのマージンの中の最小のものを特定して、それを電圧軸方向のマージンとして決定することになる。
〔2−4〕時間軸マージンの算出処理
アイパターン評価部15は、図17のフローチャートに従って時間軸マージンを算出する場合には、図4のフローチャートのステップS40に進むことで、時間軸上に存在する1つの特徴点を選択して、それについて時間軸マージンの算出処理に入ると、先ず最初に、ステップS400aで、プロットデータファイル13から開始周期のプロットデータ(2クロック周期分のプロットデータ)を読み出し、その読み出したプロットデータの中から、特徴点の時間位置に応じて処理対象のプロットデータ部分を抽出する。
図19に示す特徴点p点の時間位置はアイパターンの中心位置よりも時間的に前側であることから、図13(a)に示すように、アイパターンの中心位置よりも時間的に前にあるプロットデータ部分を処理対象として抽出し、一方、図19に示す特徴点q点の時間位置はアイパターンの中心位置よりも時間的に後側であることから、図13(b)に示すように、アイパターンの中心位置よりも時間的に後ろにあるプロットデータ部分を処理対象として抽出するのである。
ここで、図18から分かるように、ステップS400aで抽出することになる処理対象のプロットデータ部分が存在しない場合があるが、この場合には、次の周期のプロットデータ(2クロック周期分のプロットデータ)を読み出していくことになる。
続いて、ステップS401aで、ステップS400aで抽出したプロットデータ部分を処理対象として、抽出したプロットデータ部分の中から0V(時間軸)を交差する2つの連続プロットデータを抽出して、その2つの連続プロットデータの直線補間式を導出して時間軸との交点を算出することで、その交点の時間値を算出する。
続いて、ステップS402aで、特徴点の時間値と算出した交点の時間値との差分時間値を算出し、変数“最小差分時間値”に代入する。このとき、算出した交点の時間値がアイパターンに入り込む場合には、算出する差分時間値の符号を負とし、算出した交点の時間値がアイパターンに入り込まない場合には、算出する差分時間値の符号を正として、差分時間値を算出する。
続いて、ステップS403aで、プロットデータファイル13に記憶される最終周期のプロットデータ(2クロック周期分のプロットデータ)まで処理を行ったのか否かを判断して、最終周期のプロットデータまで処理を行っていないことを判断するときには、ステップS404aに進んで、プロットデータファイル13から次の周期のプロットデータ(2クロック周期分のプロットデータ)を読み出し、ステップS400aの処理と同様の処理に従って、その読み出したプロットデータの中から、特徴点の時間位置に応じて処理対象のプロットデータ部分を抽出する。
ここで、図18から分かるように、ステップS404aで抽出することになる処理対象のプロットデータ部分が存在しない場合があるが、この場合には、次の周期のプロットデータ(2クロック周期分のプロットデータ)を読み出していくことになる。
続いて、ステップS405aで、ステップS400aで抽出したプロットデータ部分を処理対象として、抽出したプロットデータ部分の中から0V(時間軸)を交差する2つの連続プロットデータを抽出して、その2つの連続プロットデータの直線補間式を導出して時間軸との交点を算出することで、その交点の時間値を算出する。
続いて、ステップS406aで、特徴点の時間値と算出した交点の時間値との差分時間値を算出する。このとき、算出した交点の時間値がアイパターンに入り込む場合には、算出する差分時間値の符号を負とし、算出した交点の時間値がアイパターンに入り込まない場合には、算出する差分時間値の符号を正として、差分時間値を算出する。
続いて、ステップS407aで、算出した差分時間値が変数“最小差分時間値”の値よりも小さいのか否かを判断し、続くステップS408aで、小さいという判断結果が得られたのか否かを判断する。このとき、通常の数学的論理に従って、正の符号の差分時間値よりも負の符号の差分時間値の方が小さいと判断し、また、両方とも負の符号の差分時間値である場合には、絶対値の大きい差分時間値の方が小さいと判断することで、この判断処理を実行する。
この判断処理に従って、算出した差分時間値が変数“最小差分時間値”の値よりも小さいことを判断するときには、ステップS409aに進んで、算出した差分時間値に従って変数“最小差分時間値”の値を書き換えてから、ステップS403aの処理に戻る。
一方、この判断処理に従って、算出した差分時間値が変数“最小差分時間値”の値よりも大きいことを判断するときには、ステップS409aの処理を行わずに、直ちにステップS403aの処理に戻る。
このようにして、ステップS403a〜ステップS409aの処理を繰り返していくことで、ステップS403aで、プロットデータファイル13に記憶される最終周期のプロットデータまで処理を行ったことを判断すると、ステップS410aに進んで、変数“最小差分時間値”の値を、処理を行った特徴点の時間軸マージンとして決定する。
時間軸上に存在する特徴点が複数ある場合には、アイパターン評価部15は、それらの各特徴点についてこの図17のフローチャートの処理を実行し、これにより、それらの各特徴点について時間軸方向のマージンを算出することになる。
これから、アイパターン評価部15は、このようにして算出した各特徴点について時間軸方向のマージンに基づいて、例えば、それらのマージンの中の最小のものを特定して、それを時間軸方向のマージンとして決定することになる。
このようにして、アイパターン評価部15は、図14ないし17のフローチャートを実行する場合には、直線補間手法に従って特徴点位置におけるプロットデータの時間値や電圧値を推定して、それに基づいて、アイパターン中心位置の算出処理や電圧軸マージンの算出処理や時間軸マージンの算出処理を実行することから、シミュレータにより生成されるアイパターンがマスクに対して持っているマージンを高精度に算出することができるようになる。
図1乃至19を参照して前述したアイマージンの算出処理においては、受信デバイスを提供するメーカから提示されるマスク(図19を参照)の中心位置をアイパターンの中心位置に配置して、アイパターンとマスクとの間のマージンを算出する。すなわち、電圧軸方向のマスクの中心位置をゼロ値に固定し、時間軸方向のマスクの中心位置をアイパターンの1周期の中心の位置に固定している。このようなアイマージンの算出処理は、一般的な受信デバイスのクロックデータリカバリ回路、差動入力バッファの機能に対応するものである。
しかし、マスクの規定方法は、業界内で統一されているわけではなく、例えば、マスクの配置位置を固定せずに動かして算出されるマージンが受信デバイスの仕様を満たすことを要求するメーカもある。
上述したような、マスクの中心位置をアイパターンの中心位置に配置してマージンを算出する手法では、算出されたマージンが受信デバイスの仕様を満たさない場合、伝送路の要素部品に高価なものを用いる等して、伝送路の設計変更をし、受信デバイスの仕様を満たすマージンを確保する必要がある。
ここで、マスクの配置位置を固定せずに、マスクの配置位置を移動させながらマージンを算出し、算出されたマージンが最大である配置位置におけるマージンをユーザに提供することができれば、過剰なマージンの確保を防止することができ、その結果、伝送路の要素部品により安価なものを採用できる可能性が増え、コストダウン設計をもたらすことができる。以下に説明する本発明のアイパターン評価装置の他の実施形態例は、マスクの配置位置を移動させながらマージンを算出することを可能とする。
図20は、本発明のアイパターン評価装置の他の実施形態例を示す図である。図20に示すアイパターン評価装置2は、データ列ファイル10、伝送路モデル記憶部11、波形シミュレータ12、プロットデータファイル13、マスクスペック記憶部14、ディスプレイ16、マスク配置位置設定部21、アイパターン評価部22を備える。また、アイパターン評価部22は、波形表示部150、マージン算出部220を備える。図20に示すアイパターン評価装置2の構成要素のうち、図1を参照して前述したアイパターン評価装置1の構成要素と同一の符号が付けられたものは、アイパターン評価装置1の構成要素と同様である。
マスク配置位置設定部21は、ユーザの指定入力に従って、マスクの(中心の)配置位置に関するモードを設定する。具体的には、マスク配置位置設定部21は、図21を参照して後述するマスク配置位置設定画面をディスプレイ16に表示し、該マスク配置位置設定画面上におけるユーザの選択操作に応じて、マスクの配置位置に関するモードを設定する。すなわち、マスク配置位置設定部21は、マスクの配置位置をアイパターンの中心の位置とするモード(第1のモード)に設定するか、又はマスクの配置位置に制限を設けないモードに設定する。マスクの配置位置に制限を設けないモードは、例えば、マスクの電圧軸方向(電圧軸に沿った方向)の配置位置(マスクの電圧軸方向の中心位置)をゼロ値に固定するがマスクの時間軸方向(時間軸に沿った方向)の配置位置に制限を設けないモード(第2のモード)、マスクの時間軸方向の配置位置(マスクの時間軸方向の中心位置)をアイパターンの1周期の中心位置に固定するがマスクの電圧軸方向の配置位置に制限を設けないモード(第3のモード)、マスクの時間軸方向の配置位置及び電圧軸方向の配置位置に制限を設けないモード(第4のモード)である。マスクの電圧軸方向の中心位置は、例えば、マスク上の最大電圧座標値と最小電圧座標値とを加えて2で除算して得られる電圧座標値に対応するマスク上の点の電圧軸方向の位置である。また、マスクの時間軸方向の中心位置は、例えば、マスク上の最大時間座標値と最小時間座標値とを加えて2で除算して得られる時間座標値に対応するマスク上の点の時間軸方向の位置である。
アイパターン評価部22は、アイパターンを生成してディスプレイ16に表示するとともに、波形表示部150が生成するアイパターンがマスクスペック記憶部14が記憶するマスクに対して持っているマージンを算出してその算出結果をディスプレイ16に表示する。アイパターン評価部22が備える波形表示部150は、図1を参照して前述した波形表示部150と同様に、プロットデータファイル13の記憶するプロットデータから2クロック周期分の長さを持つ波形信号片を順次切り出してディスプレイ16に重畳表示することで、前述した図18に示すようなアイパターンを生成してディスプレイ16に表示する。
マージン算出部220は、マスク配置位置設定部21によって、マスクの配置位置に関するモードが上記第1のモードに設定された場合に、例えば前述した図7又は図16に示すフローチャートに従って、マスクの特徴点の電圧軸マージン(特徴点の電圧座標値と該特徴点に対応付けられる波形信号片個所の電圧座標値との差分)を算出して、それに基づいて最終的な電圧軸マージンを算出して出力する。また、マージン算出部220は、例えば前述した図8又は図17に示すフローチャートに従って、マスクの特徴点の時間軸マージン(特徴点の時間座標値と該特徴点に対応付けられる波形信号片個所の時間座標値との差分)を算出して、それに基づいて最終的な時間軸マージンを算出して出力する。
また、マージン算出部220は、マスク配置位置設定部21によって、マスクの配置位置に関するモードがマスクの配置位置に制限を設けないモードに設定された場合に、マスクの配置位置を移動させながら、波形表示部150の生成するアイパターンがマスクスペック記憶部14の記憶するマスクに対して持っているマージンを算出してその算出結果をディスプレイ16に表示する。具体的には、マスク配置位置設定部21によって、マスクの配置位置に関するモードが上記第2のモードに設定された場合に、マージン算出部220は、マスクの電圧軸方向の配置位置をゼロ値に固定したままマスクの時間軸方向の配置位置を時間軸に沿って1ステップ(所定の時間)ずつ移動させる。例えば、マージン算出部220は、マスクの時間軸方向の配置位置を、マスクの一部がアイパターンの開口に入り始める位置に初期設定し、該初期設定された配置位置から該マスクがアイパターンに出始める配置位置まで、該マスクの時間軸方向の配置位置を移動させる。
マージン算出部220は、移動先の各配置位置におけるマスクの各特徴点の時間軸マージン(特徴点の時間座標値と該特徴点に対応付けられる波形信号片個所の時間座標値との差分)を算出する。マージン算出部220は、該時間軸マージンが最小である特徴点の時間軸マージンが最大となるマスクの配置位置を選択配置位置として選択する。そして、マージン算出部220は、該選択された選択配置位置における最終的な時間軸マージンと最終的な電圧軸マージンとを算出してその算出結果をディスプレイ16に出力する。マージン算出部220は、選択配置位置における各特徴点の時間軸マージンのうち最小のものを最終的な時間軸マージンとする。また、マージン算出部220は、選択配置位置における各特徴点の電圧軸マージンのうち最小のものを最終的な電圧軸マージンとする。
マスク配置位置設定部21によって、マスクの配置位置に関するモードが上記第3のモードに設定された場合、マージン算出部220は、マスクの時間軸方向の配置位置をアイパターンの1周期の中心位置に固定したままマスクの電圧軸方向の配置位置を電圧軸に沿って所定のステップ(所定の電圧値)ずつ移動させる。例えば、マージン算出部220は、マスクの電圧軸方向の配置位置を、マスクの一部がアイパターンの開口に入り始める位置に初期設定し、該初期設定された配置位置から該マスクがアイパターンから出始める配置位置まで、該マスクの電圧軸方向の配置位置を移動させる。マージン算出部220は、移動先の各配置位置におけるマスクの各特徴点の電圧軸マージン(特徴点の電圧座標値と該特徴点に対応付けられる波形信号片個所の電圧座標値との差分)を算出する。マージン算出部220は、該電圧軸マージンが最小である特徴点の電圧軸マージンが最大となるマスクの配置位置を選択配置位置として選択する。そして、マージン算出部220は、選択されたマスクの配置位置における最終的な時間軸マージンと最終的な電圧軸マージンとを算出してその算出結果をディスプレイ16に出力する。
マスク配置位置設定部21によって、マスクの配置位置に関するモードが上記第4のモードに設定された場合、マージン算出部220は、マスクの配置位置を電圧軸及び時間軸に沿って所定のステップずつ移動させる。マージン算出部220は、マスクの配置位置を電圧軸に沿って移動させる際には、マスクの電圧軸方向の配置位置を所定の電圧値分移動させ、マスクの配置位置を時間軸に沿って移動させる際には、マスクの時間軸方向の配置位置を所定の時間分移動させる。マージン算出部220は、例えば、マスクがアイパターンの開口内の全領域を通過することになるまで、マスクの配置位置を移動させる。マスクの配置位置の移動経路は、予め決められた任意の経路とすることができる。そして、マージン算出部220は、移動先の各配置位置におけるマスクの各特徴点の電圧軸マージンと時間軸マージンとの二乗和を算出する。マージン算出部220は、二乗和が最小である特徴点に対応する二乗和が最大となるマスクの配置位置を選択配置位置として選択する。そして、マージン算出部220は、選択された選択配置位置における最終的な時間軸マージンと最終的な電圧軸マージンとを算出して、その算出結果をディスプレイ16に出力する。
図21は、マスク配置位置設定画面の例を示す図である。図21に示すマスク配置位置設定画面上には、マスク100と、マスクの時間軸方向の配置位置に制限を設けるか否かを設定するための領域(時間軸方向配置位置制限設定領域)200と、マスクの電圧軸方向の配置位置に制限を設けるか否かを設定するための領域(電圧軸方向配置位置制限設定領域)201とが表示される。図21中のマスク100上の、r点、s点、p点、q点、t点、u点は、マスク100の特徴点である。ユーザが、時間軸方向配置位置制限設定領域200に記述された「1周期の中心」を選択すると、マスクの時間軸方向の配置位置をアイパターンの1周期の中心位置に固定することが設定され、ユーザが、「なし」を選択すると、マスクの時間軸方向の配置位置に制限を設けないことが設定される。ユーザが、電圧軸方向配置位置制限設定領域201に記述された「0V中心」を選択すると、マスクの電圧軸方向の配置位置がゼロ値(0V)に固定することが設定され、ユーザが、「なし」を選択すると、マスクの電圧軸方向の配置位置に制限を設けないことが設定される。
すなわち、ユーザが、時間軸方向配置位置制限設定領域200に記述された「1周期の中心」と電圧軸方向配置位置制限設定領域201に記述された「0V中心」を選択すると、マスク配置位置設定部21が、マスクの配置位置に関するモードを前述した第1のモードに設定する。ユーザが、時間軸方向配置位置制限設定領域200に記述された「なし」と電圧軸方向配置位置制限設定領域201に記述された「0V中心」を選択すると、マスク配置位置設定部21が、マスクの配置位置に関するモードを前述した第2のモードに設定する。ユーザが、時間軸方向配置位置制限設定領域200に記述された「1周期の中心」と電圧軸方向配置位置制限設定領域201に記述された「なし」を選択すると、マスク配置位置設定部21が、マスクの配置位置に関するモードを前述した第3のモードに設定する。ユーザが、時間軸方向配置位置制限設定領域200に記述された「なし」と電圧軸方向配置位置制限設定領域201に記述された「なし」を選択すると、マスク配置位置設定部21が、マスクの配置位置に関するモードを前述した第4のモードに設定する。
図22は、マスクの配置位置に関するモードの設定処理フローの一例を示す図である。マスク配置位置設定部21は、図21に示すマスク配置位置設定画面上におけるユーザの選択操作に従って、マスクの電圧軸方向の配置位置、時間軸方向の配置位置に制限を設けることが選択されたか否かを判断し、マスクの配置位置に関するモードを該判断結果に応じたモードに設定する。まず、マスク配置位置設定部21が、マスクの電圧軸方向の配置位置に制限を設けることが選択されたか(図21中の電圧軸方向配置位置制限設定領域201に記述された「0V中心」が選択されたか)を判断する(ステップS500)。マスク配置位置設定部21が、マスクの電圧軸方向の配置位置に制限を設けることが選択されていないと判断した場合はステップS504に進む。マスク配置位置設定部21が、マスクの電圧軸方向の配置位置に制限を設けることが選択されたと判断した場合、マスク配置位置設定部21が、マスクの時間軸方向の配置位置に制限を設けることが選択されたか(時間軸方向配置位置制限設定領域200に記述された「1周期の中心」が選択されたか)を判断する(ステップS501)。マスク配置位置設定部21が、マスクの時間軸方向の配置位置に制限を設けることが選択されたと判断した場合、マスク配置位置設定部21が、マスクの配置位置に関するモードを第1のモードに設定する(ステップS502)。マスク配置位置設定部21が、マスクの時間軸方向の配置位置に制限を設けることが選択されていないと判断した場合、マスク配置位置設定部21が、マスクの配置位置に関するモードを第2のモードに設定する(ステップS503)。
ステップS504において、マスク配置位置設定部21が、マスクの時間軸方向の配置位置に制限を設けることが選択されたかを判断する(ステップS504)。マスク配置位置設定部21が、マスクの時間軸方向の配置位置に制限を設けることが選択されたと判断した場合、マスク配置位置設定部21が、マスクの配置位置に関するモードを第3のモードに設定する(ステップS505)。マスク配置位置設定部21が、マスクの時間軸方向の配置位置に制限を設けることが選択されていないと判断した場合、マスク配置位置設定部21が、マスクの配置位置に関するモードを第4のモードに設定する(ステップS506)。
以下に、マスクの配置位置について設定されたそれぞれのモードに応じたマージン算出処理について説明する。マスク配置位置設定部21がマスクの配置位置に関するモードを第1のモードに設定した場合、マージン算出部220は、前述した図7又は図16に示すフローチャート、図8又は図17に示すフローチャートに従ってマージン算出処理を実行し、該実行結果に基づいて最終的なマージンを算出して出力する。従って、マスク配置位置設定部21がマスクの配置位置に関するモードを第1のモードに設定した場合のマージン算出処理についての説明は省略する。
図23は、マスクの配置位置について第2のモードが設定された場合のマージン算出部によるマージン算出処理フローの一例を示す図である。なお、例えば、マスクの配置位置が、該マスクがアイパターンの開口に収まらないような配置位置である場合は、マージン算出部220は、後述するステップS602における配置位置対応時間軸マージンの算出処理を実行しないものとする。
まず、マージン算出部220が、マスクの配置位置を初期設定する(ステップS601)。具体的には、マージン算出部220が、図24中に示すように、マスク100の電圧軸方向の中心位置(特徴点p点及び特徴点q点の電圧軸方向の位置)をゼロ値(0V)に設定するとともに、マスク100の時間軸方向の中心位置(p点の時間座標値とq点の時間座標値とを加えて2で除算して得られる時間座標値に対応するマスク上の点の時間軸方向の位置)を、マスク100の一部がアイパターンの開口に入り始める位置に配置する。図24中の点線部の時間座標値が、マスク100の時間軸方向の中心位置を示す。なお、この例では、図26を参照して後述するように、ステップS603において、マスク100を右方向に移動させるものとする。
マージン算出部220が、現在のマスクの配置位置に対応する時間軸マージン(配置位置対応時間軸マージン)を算出する(ステップS602)。具体的には、マージン算出部220が、現在の配置位置のマスクの各特徴点の時間軸マージン(特徴点の時間座標値と該特徴点に対応付けられる波形信号片個所の時間座標値との差分)を算出し、算出された時間軸マージンが最小である特徴点の時間軸マージンを配置位置対応時間軸マージンとする。
例えば、マスクの現在の配置位置が、図25中に示すような配置位置であるとする。マージン算出部220は、r点の時間軸マージンmr、s点の時間軸マージンms、p点の時間軸マージンmp、q点の時間軸マージンmq、t点の時間軸マージンmt、u点の時間軸マージンmuを算出する。マージン算出部220は、例えば、図8に示すフローチャートを参照して前述した特徴点の時間軸マージンの決定処理と同様の処理を実行して、mp、mqを算出する。また、マージン算出部220は、例えば、各周期のプロットデータについて、電圧座標値がr点の電圧座標値に最も近い波形信号片個所の時間座標値を特定し、該特定された時間座標値とr点の時間座標値との差分を算出し、算出された各差分のうちの最小値をmrとして算出する。マージン算出部220は、上記mrの算出手法と同様の手法を用いて、ms、mt、muを算出する。そして、マージン算出部220は、算出されたmr、ms、mp、mt、muのうち、最も値が小さいmpを現在のマスクの配置位置に対応する時間軸マージン(配置位置対応時間軸マージン)とする。
なお、マージン算出部220が、電圧軸座標がマスクの電圧方向の中心位置に該当するp点とq点についてのみ時間軸マージンを算出し、値が小さいほうの時間軸マージンを配置位置対応時間軸マージンとするようにしてもよい。
次に、マージン算出部220が、マスクの配置位置を時間軸方向に1ステップ移動させる(ステップS603)。図26は、マスクの配置位置の移動を説明する図である。マージン算出部220は、マスク100の電圧軸方向の中心位置(特徴点p点及び特徴点q点の電圧軸方向の位置)を0Vに固定したまま、図26中の点線で示すルートに沿って、1ステップずつ、マスク100がアイパターンの開口101から出始めるまで、例えば図中の矢印の方向(右方向)にマスク100を移動させる。
マージン算出部220が、配置位置対応時間軸マージンの算出を終了するかを判断する(ステップS604)。具体的には、マージン算出部220は、マスクの配置位置が、該マスクがアイパターンの開口から出始める配置位置であるかを判断する。マスクの配置位置が、該マスクがアイパターンの開口から出始める配置位置である場合、マージン算出部220は、配置位置対応時間軸マージンの算出を終了すると判断する。
マスクの配置位置が、該マスクがアイパターンの開口から出始める配置位置でない場合、マージン算出部220は、配置位置対応時間軸マージンの算出を終了しないと判断する。
マージン算出部220が、配置位置対応時間軸マージンの算出を終了しないと判断した場合は、ステップS602に戻る。マージン算出部220が、配置位置対応時間軸マージンの算出を終了すると判断した場合、マージン算出部220は、算出された配置位置対応時間軸マージンのうち、最も大きい配置位置対応時間軸マージンに対応するマスクの配置位置を選択配置位置として選択する(ステップS605)。そして、マージン算出部220は、選択配置位置における時間軸マージン、電圧軸マージンを算出する(ステップS606)。具体的には、マージン算出部220は、選択配置位置における各特徴点の時間軸マージンのうち最小のものを、該選択配置位置における時間軸マージンとして算出する。また、マージン算出部220は、該選択配置位置における各特徴点の電圧軸マージンのうち最小のものを、該選択配置位置における電圧軸マージンとして算出する。
図27は、マスクの配置位置について第3のモードが設定された場合のマージン算出部によるマージン算出処理フローの一例を示す図である。なお、例えば、マスクの配置位置が、該マスクがアイパターンの開口に収まらないような配置位置である場合は、マージン算出部220は、後述するステップS702における配置位置対応電圧軸マージンの算出処理を実行しないものとする。
まず、マージン算出部220が、マスクの配置位置を初期設定する(ステップS701)。具体的には、マージン算出部220が、例えば、図28中に示すように、マスク100の時間軸方向の中心位置をアイパターンの1周期の中心位置(図28中の点線に対応する時間軸方向の位置)に設定するとともに、マスク100の電圧軸方向の配置位置を、マスク100の一部がアイパターンの開口に入り始める位置に設定する。なお、この例では、図30を参照して後述するように、ステップS703において、マスク100を上方向に移動させるものとする。
マージン算出部220が、現在のマスクの配置位置に対応する電圧軸マージン(配置位置対応電圧軸マージン)を算出する(ステップS702)。具体的には、マージン算出部220が、現在の配置位置のマスクの各特徴点の電圧軸マージン(特徴点の電圧座標値と該特徴点に対応付けられる波形信号片個所の電圧座標値との差分)を算出し、算出された電圧軸マージンが最小である特徴点の電圧軸マージンを配置位置対応電圧軸マージンとする。
例えば、マスクの現在の配置位置が、図29中に示すような配置位置であるとする。マージン算出部220は、r点の電圧軸マージンmr’、s点の電圧軸マージンms’、p点の電圧軸マージンmp’、q点の電圧軸マージンmq’、t点の電圧軸マージンmt’、u点の電圧軸マージンmu’を算出する。マージン算出部220は、例えば、図7に示すフローチャートを参照して前述した特徴点の電圧軸マージンの決定処理と同様の処理を実行して、mr’、ms’、mt’、mu’を算出する。また、マージン算出部220は、例えば、各周期のプロットデータについて、時間座標値がp点の時間座標値に最も近い波形信号片個所の電圧座標値を特定し、該特定された電圧座標値とp点の電圧座標値との差分を算出し、算出された各差分のうちの最小値をmp’として算出する。マージン算出部220は、上記mp’の算出手法と同様の手法を用いてmq’を算出する。そして、マージン算出部220は、算出されたmr’、ms’、mp’、mt’、mu’のうち、最も値が小さいmt’を現在のマスクの配置位置に対応する電圧軸マージン(配置位置対応電圧軸マージン)とする。
なお、マージン算出部220が、電圧軸座標がマスクの電圧方向の中心位置に該当しない特徴点であるr点、s点、t点、u点についてのみ電圧軸マージンを算出し、算出された電圧軸マージンのうち、最も値が小さい電圧軸マージンを配置位置対応電圧軸マージンとするようにしてもよい。
次に、マージン算出部220が、マスクの配置位置を電圧軸方向に1ステップ移動させる(ステップS703)。図30は、マスクの配置位置の移動を説明する図である。マージン算出部220は、マスク100の時間軸方向の中心位置をアイパターンの1周期の中心位置に固定したまま、図30中の点線で示すルートに沿って、1ステップずつ、マスク100がアイパターンの開口101から出始めるまで、例えば図中の矢印の方向(上方向)にマスク100を移動させる。
マージン算出部220が、配置位置対応電圧軸マージンの算出を終了するかを判断する(ステップS704)。具体的には、マージン算出部220は、マスクの配置位置が、マスク100がアイパターンの開口101から出始める配置位置であるかを判断する。マスクの配置位置が、マスク100がアイパターンの開口101から出始める配置位置である場合、マージン算出部220は、配置位置対応電圧軸マージンの算出を終了すると判断する。
マスクの配置位置が、マスク100がアイパターンの開口101から出始める配置位置でない場合、マージン算出部220は、配置位置対応電圧軸マージンの算出を終了しないと判断する。
マージン算出部220が、配置位置対応時間軸マージンの算出を終了しないと判断した場合は、ステップS702に戻る。マージン算出部220が、配置位置対応時間軸マージンの算出を終了すると判断した場合、マージン算出部220は、算出された配置位置対応電圧軸マージンのうち、最も大きい配置位置対応電圧軸マージンに対応するマスクの配置位置を選択配置位置として選択する(ステップS705)。そして、マージン算出部220は、選択配置位置における時間軸マージン、電圧軸マージンを算出する(ステップS706)。マージン算出部220は、選択配置位置における各特徴点の時間軸マージンのうち最小のものを該選択配置位置における時間軸マージンとして算出する。また、マージン算出部220は、該選択配置位置における各特徴点の電圧軸マージンのうち最小のものを該配置位置における電圧軸マージンとして算出する。
図31は、マスクの配置位置について第4のモードが設定された場合のマージン算出部によるマージン算出処理フローの一例を示す図である。なお、例えば、マスクの配置位置が、該マスクがアイパターンの開口に収まらないような配置位置である場合は、マージン算出部220は、後述するステップS802における時間軸マージンと電圧軸マージンの算出処理、ステップS803における配置位置対応二乗和の算出処理を実行しないものとする。
まず、マージン算出部220が、マスクの配置位置を初期設定する(ステップS801)。具体的には、マージン算出部220が、例えば、図32中に示すように、マスク100の電圧軸方向の中心位置、マスク100の時間軸方向の中心位置を、予め決められた任意の配置位置に設定する。
マージン算出部220が、現在の配置位置のマスクの各特徴点についての時間軸マージンと電圧軸マージンとを算出する(ステップS802)。そして、マージン算出部220が、算出された時間軸マージンと電圧軸マージンとの二乗和を算出し、算出された二乗和が最小である特徴点に対応する二乗和を、現在のマスクの配置位置に対応する二乗和(配置位置対応二乗和)として算出する(ステップS803)。次に、マージン算出部220が、マスクの配置位置を時間軸方向又は電圧軸方向に1ステップ移動させる(ステップS804)。図33は、マスクの配置位置の移動を説明する図である。マージン算出部220は、例えば、図33中の点線の矢印で示すルートに沿って、1ステップずつ、マスク100がアイパターンの開口101の全ての領域を通過することになるまでマスク100を移動させる。
マージン算出部220が、配置位置対応二乗和の算出を終了するかを判断する(ステップS805)。具体的には、マージン算出部220は、該マスクがアイパターンの開口101の全ての領域を通過したかを判断する。マージン算出部220が、マスク100がアイパターンの開口101の全ての領域を通過したと判断した場合、マージン算出部220は、配置位置対応二乗和の算出を終了すると判断する。
マージン算出部220が、マスク100が通過していないアイパターンの開口101の領域があると判断した場合、マージン算出部220は、マージン算出部220は、配置位置対応時間二乗和の算出を終了しないと判断する。
マージン算出部220が、配置位置対応二乗和の算出を終了しないと判断した場合は、ステップS802に戻る。マージン算出部220が、配置位置対応二乗和の算出を終了すると判断した場合、マージン算出部220は、上記ステップS803において算出された、配置位置対応二乗和のうち、最も大きい配置位置対応二乗和に対応するマスクの配置位置を選択配置位置として選択する(ステップS806)。そして、マージン算出部220は、選択配置位置における時間軸マージン、電圧軸マージンを算出する(ステップS807)。具体的には、マージン算出部220は、選択配置位置における各特徴点の時間軸マージンのうち最小のものを、該選択配置位置における時間軸マージンとして算出する。また、マージン算出部220は、該選択配置位置における各特徴点の電圧軸マージンのうち最小のものを、該選択配置位置における電圧軸マージンとして算出する。