(57)【要約】【課題】本発明は、高速にドライバストレングスの調整を行うことが出来、また一度ドライバストレングスの調整を行なった後も、温度や電圧といった外部要因に基づいたドライバストレングスの再調整が可能となるドライバストレングス調整回路、半導体集積回路、及びドライバストレングスの調整方法を提供することを課題とする。【解決手段】コード情報を、電圧、温度、プロセスばらつきと対応づけてテーブルに記憶する。変化する温度／電圧、及びプロセスばらつき情報を用いてテーブルを参照してコード情報を求めドライバストレングスの調整を行う。【選択図】図１
2010178262.tif 000002
【特許請求の範囲】
【請求項１】
半導体集積回路の端子のドライバストレングスの調整を行うドライバストレングス調整回路において、
前記端子の状態を計測する計測部と、
前記端子の状態とドライバストレングスを決定するコード情報を関連づけて記憶するコードテーブル部と、
前記計測部による計測結果から前記コードテーブル部を参照し、前記コード情報に基づいてドライバストレングスの調整を行うコードテーブルコントローラ部と、
を備えることを特徴とするドライバストレングス調整回路。
【請求項２】
前記端子の状態は、前記端子のドライバの温度情報を含むことを特徴とする請求項１に記載のドライバストレングス調整回路。
【請求項３】
前記端子の状態は、前記端子のドライバの電圧情報を含むことを特徴とする請求項１に記載のドライバストレングス調整回路。
【請求項４】
前記コードテーブルコントローラ部は、前記半導体集積回路のプロセスばらつき情報を記憶するプロセスばらつき情報レジスタを備え、前記計測部による計測結果に加え、前記プロセスばらつき情報レジスタ内の設定値をも考慮して前記コードテーブル部を参照することを特徴とする請求項１に記載のドライバストレングス調整回路。
【請求項５】
前記プロセスばらつき情報レジスタは、前記半導体集積回路のチップが生成されたウエハのプロセスばらつき情報が設定されていることを特徴とする請求項４に記載のドライバストレングス調整回路。
【請求項６】
前記コードテーブルコントローラ部は、前記計測部による計測結果と前記プロセスばらつき情報レジスタ内の設定値から前記コードテーブル部のアドレスを生成し、当該アドレスを用いて前記コードテーブル部を参照することを特徴とする請求項４に記載のドライバストレングス調整回路。
【請求項７】
前記コードテーブルコントローラ部は、前記端子のドライバの前記半導体集積回路を構成するチップ上での位置に対応した複数の前記プロセスばらつき情報レジスタを備え、前記計測部による計測結果に加え、ドライバストレングスの調整を行う端子のドライバの位置に対応した前記プロセスばらつき情報レジスタ内の設定値をも考慮して前記コードテーブル部を参照することを特徴とする請求項４に記載のドライバストレングス調整回路。
【請求項８】
前記コードテーブルコントローラ部は、前記コード情報に基づいて、前記端子のドライバを構成するＰｃｈトランジスタとＮｃｈトランジスタの並列度を変更することによりドライバストレングスの調整を行うことを特徴とする請求項１に記載のドライバストレングス調整回路。
【請求項９】
端子のドライバストレングスの調整を行う半導体集積回路において、
前記端子の状態を計測する計測部と、
前記端子の状態とドライバストレングスを決定するコード情報を関連づけて記憶するコードテーブル部と、
前記計測部による計測結果から前記コードテーブル部を参照し、前記コード情報に基づいてドライバストレングスの調整を行うコードテーブルコントローラ部と、
を備えることを特徴とする半導体集積回路。
【請求項１０】
端子のドライバストレングスの調整を行うドライバストレングスの調整方法であって
前記端子の状態を計測し、
前記計測結果から、前記端子の状態とドライバストレングスを決定するコード情報を関連づけて記憶するコードテーブル部を参照し、前記コード情報に基づいてドライバストレングスの調整を行う、
ことを特徴とする半導体集積回路のドライストレングス調整方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路に関し、更に詳しくは半導体集積回路のドライバストレングスの調整を行う技術に関する。
【背景技術】
【０００２】
半導体集積回路の動作周波数が年々高くなっていくに従い、半導体集積回路の入力、出力、若しくは入出力端子のドライバストレングスを調整することが行われるようになってきている。ドライバストレングスの調整とは、半導体集積回路内部の出力ドライバ若しくは入力ドライバのインピーダンス値を調整し、出力（若しくは入力）端子のドライバを構成するプルアップ抵抗とプルダウン抵抗の抵抗値が等しくなるように電圧を補正するものである。
【０００３】
図２４はドライバストレングスの調整を行う、従来のドライバストレングス調整回路の構成図である。
図２４のドライバストレングス調整回路１００は、基準抵抗生成部１１０、キャリブレーション部１２０、コード検出部１３０、駆動力比較部１４０及び不図示の制御部を備えている。
【０００４】
また同図中、電圧ＶＤＥは、インターフェースを駆動する電圧であり、ＶＳＳは、電圧の基準となる一般的にゼロポイントの接地電圧値である。また外付け抵抗１５０は、半導体集積回路外部に接続される精度の高い抵抗器である。
【０００５】
基準抵抗生成部１１０は、外付け抵抗１５０の抵抗値を内部の基準抵抗１１１にコピーするものである。基準抵抗生成部１１０を構成する基準抵抗１１１−１〜１１１−３は、ゲートに入力される電圧レベルによりソースとドレインの間の抵抗値が可変となるトランジスタである。また比較器１１２−１〜１１２−２は、一方にＶＤＥ／２の電圧値が入力されており、もう一方の入力の値との比較結果に基づいて出力値を変化させるものである。
【０００６】
キャリブレーション部１２０は、基準抵抗生成部１１０で生成された基準抵抗を１／ｎにするものである。キャリブレーション部１２０は、電圧ＶＤＥでプルアップされ、並列に設けられた第１のターゲット抵抗１２１−１〜１２１−ｎ、電圧ＶＤＥでプルアップされ、並列に設けられた第１のターゲット抵抗１２１−１〜１２１−ｎ、接地電圧ＶＳＳでプルダウンされ、並列に設けられた第２のターゲット抵抗１２２−１〜１２２−ｎ、第１のターゲット抵抗１２１−１〜１２１−ｎと共通線１２５の間のＯＮ／ＯＦＦを切替える第１のスイッチ１２３、及び第２のターゲット抵抗１２２−１〜１２２−ｎと共通線１２５の間のＯＮ／ＯＦＦを切替える第２のスイッチ１２４を備えている。
【０００７】
コード検出部１３０は、入力若しくは出力のドライバの抵抗値を検出するものである。コード検出部１３０は、電圧ＶＤＥでプルアップされた複数のＰｃｈトランジスタ１３１−１〜１３１−ｍ、接地電圧ＶＳＳでプルダウンされた複数のＮｃｈトランジスタ１３２−１〜１３２−ｍ、Ｐｃｈトランジスタ１３１−１〜１３１−ｍそれぞれを共通線１２５とＯＮ／ＯＦＦする複数の第３のスイッチ１３３−１〜１３３−ｍ、及びＮｃｈトランジスタ１３２−１〜１３２−ｍそれぞれを共通線１２５とＯＮ／ＯＦＦする複数の第４のスイッチ１３４−１〜１３４−ｍを備えている。
【０００８】
駆動力比較部１４０は、共通線の電圧がＶＤＥ／２の電圧値になるのを検出するものである。駆動力比較部１４０は、一方の入力がＶＤＥ／２でもう一方の入力が共通線１２５に接続され、比較結果を不図示の制御部に出力する比較器１４１を備えている。
【０００９】
このような構成のドライバストレングス調整回路１００による、従来のドライバストレングス調整方法を以下に示す。
半導体集積回路の入力、出力若しくは入出力端子のドライバストレングスを調整する際、ドライバストレングス調整回路１００は、まず比較器１１２−１によって、外付け抵抗１５０の抵抗値を、基準抵抗１１１−１及び１１１−２にコピーする。比較器１１２−１の一方の入力には電圧値ＶＤＥ／２が入力されておりもう一方の入力には電圧ＶＤＥでプルアップされた外付け抵抗１５０と基準抵抗１１１−１の接続点の電圧値が入力されているので、ゲート電圧の調整によって外付け抵抗１５０と基準抵抗１１１−１の抵抗比を１対１にする。これにより外付け抵抗１５０の抵抗値が基準抵抗１１１−１にコピーされる。同様に、比較器１１２−２によって、外付け抵抗１５０の値が基準抵抗１１１−２と基準抵抗１１１−３にコピーされる。
【００１０】
ターゲット抵抗１２１−１〜１２１−ｎ及び１２２−１〜１２２−ｎは、基準抵抗１１１−１〜１１１−３と同様、ゲートに入力する電圧レベルにより抵抗値が決定されるトランジスタである。よってキャリブレーション部１２０において、基準抵抗値１１１−３のゲート電圧と同じ電圧値が、ターゲット抵抗１２１−１〜１２１−ｎに加えられるので、基準抵抗値１１１−３の抵抗値が、各ターゲット抵抗１２１−１〜１２１−ｎにコピーされる。ターゲット抵抗１２１−１〜１２１−ｎは並列接続されているので、ターゲット抵抗１２１−１〜１２１−ｎ全体では、基準抵抗１１１−３の抵抗値の１／ｎとなる。
【００１１】
同様に基準抵抗値１１１−２のゲート電圧と同じ電圧値が、ターゲット抵抗１２２−１〜１２２−ｎに加えられるので、基準抵抗値１１１−２の抵抗値が、各ターゲット抵抗１２２−１〜１２２−ｎにコピーされる。ターゲット抵抗１２２−１〜１２２−ｎは並列接続されているので、ターゲット抵抗１２２−１〜１２２−ｎ全体では、基準抵抗１１１−２の抵抗値の１／ｎとなる。
【００１２】
次に不図示の制御部は、まずスイッチ１２３をＯＮ、スイッチ１２４をＯＦＦとし、またスイッチ１３３−１〜１３３−ｍ及びスイッチ１３４−１〜１３４−ｍを全てＯＦＦとする。その状態から制御部は、スイッチ１３４−１〜１３４−ｍを１つずつＯＮにしながら駆動力比較部１４０の比較器１４１の出力をモニタする。そして制御部は、比較器１４１の出力が“Ｈ”となったとき、すなわちターゲット抵抗１２１−１〜１２１−ｎによる抵抗値と、スイッチ１３４がＯＮとなっている全てのＮｃｈトランジスタ１３２−１〜１３２−ｍによる抵抗値が一致したときの、スイッチ１３４−１〜１３４−ｍのＯＮ／ＯＦＦ状態を示すコードをレジスタに記憶する。
【００１３】
同様にＰｃｈトランジスタ１３１については、制御部は、まずスイッチ１２３をＯＦＦ、スイッチ１２４をＯＮとし、またスイッチ１３３−１〜１３３−ｍ及びスイッチ１３４−１〜１３４−ｍを全てＯＦＦとする。その状態から制御部は、スイッチ１３３−１〜１３３−ｍを１つずつＯＮにしながら駆動力比較部１４０の比較器１４１の出力をモニタする。そして制御部は、比較器１４１の出力が“Ｈ”となったとき、すなわちターゲット抵抗１２２−１〜１２２−ｎによる抵抗値と、スイッチ１３３がＯＮとなっている全てのＰｃｈトランジスタ１３１による抵抗値が一致したときのスイッチ１３３−１〜１３３−ｍのＯＮ／ＯＦＦ状態を示すコードをレジスタに記憶する。
【００１４】
そして制御部はレジスタに記憶された、スイッチ１３３−１〜１３３−ｍとスイッチ１３４−１〜１３４−ｍのＯＮ／ＯＦＦ状態を示すコードに基づいて、ドライバストレングスの調整対象となっている端子のドライバを構成するＰｃｈトランジスタとＮｃｈトランジスタの動作本数を制御しドライバストレングスを調整する。
【００１５】
上記したレジスタ内のコードは、温度や電圧等の外部環境の変化によって半導体集積回路内のＮｃｈ／Ｐｃｈトランジスタの出力抵抗が変化しない限り使用される。
上記の通りのドライバストレングス調整を適時実施することにより、プロセス・電圧・温度によらず、一定なドライバストレングスを得ることができる。
【００１６】
ドライバストレングスの調整方法が開示されているものとしては、例えば特許文献１には、メモリに対して出力されるメモリ制御信号を定期的にモニタし、その結果に基づいてドライバストレングスを調節するメモリインターフェース回路が開示されている。
【００１７】
また特許文献２には、外部からの指示に基づいて、出力バッファを制御して出力インピーダンスまたはスルーレートを調整することが出来る半導体集積回路のバッファ回路が開示されている。
【００１８】
更に特許文献３には、図２４のドライバストレングス調整回路１００と同様、外部基準抵抗器を利用して駆動回路のインピーダンスを調整することが出来る半導体集積回路が開示されている。
【先行技術文献】
【特許文献】
【００１９】
【特許文献１】特開平１０−５００７０号公報
【特許文献２】特開２００３−１８８７０５号公報
【特許文献３】特開２００５−６５２４９号公報
【発明の概要】
【発明が解決しようとする課題】
【００２０】
しかし従来のドライバストレングスの調整方法は、半導体集積回路の起動時の初期設定としてドライバストレングスを調整することが出来るが、ドライバストレングスの調整には時間がかかるので、一度設定した後、半導体集積回路を動作させながら適時調整することは出来ない。
【００２１】
ドライバストレングスの調整に時間がかかってしまう理由の詳細は、以下に示す通りである。
（１）基準抵抗生成部１１０の比較器１１２は、比較する対象の抵抗値が大きい場合、出力する電圧の調整レンジが大きくなるため、出力値が収束するのに時間を要する。
（２）基準抵抗生成部１１０からキャリブレーション部１２０に抵抗値をコピーする時に使用するゲート電圧レベルは、
基準抵抗生成部１１０がすべての信号において共通で、タイミングが厳しい部分は調整するための機能部位が個別にある。よって基準抵抗生成部１１０で生成されるゲート電圧は、キャリブレーション部１２０の全てのターゲット抵抗１２１−１〜１２１−ｎ及び１２２−１〜１２２−ｎの入力負荷をすべて駆動させる必要があり、そのための時間がかかる。
（３）コード検出部１３０のＰｃｈトランジスタ１３１とＮｃｈトランジスタ１３２の抵抗値を合わせる際、比較器１４１の出力をモニタしながら、スイッチ１３３−１〜１３３−ｍ若しくはスイッチ１３４−１〜１３４−ｍのＯＮ／ＯＦＦを切替えて適切な状態を探索する。このスイッチの切替え及びその結果を示す比較器１４１の出力のモニタリングにも時間を要する。
【００２２】
上記（１）〜（３）を総合した時間は、一般的に約数百ｎｓになる。
本発明は、高速にドライバストレングスの調整が可能なドライバストレングス調整回路、半導体集積回路、及びドライバストレングスの調整方法を提供することを課題とする。
【００２３】
また一度ドライバストレングスの調整を行なった後も、データのバースト転送毎、あるいはバースト転送中に温度や電圧といった外部要因に基づいたドライバストレングスの再調整が可能なドライバストレングス調整回路、半導体集積回路、及びドライバストレングスの調整方法を提供することを課題とする。
【課題を解決するための手段】
【００２４】
本発明によるドライバストレングス調整回路は、半導体集積回路の端子のドライバストレングスの調整を行うことを前提とし、計測部、コードテーブル部、及びコードテーブルコントローラ部を備える。
【００２５】
計測部は、前記端子の状態を計測する。
コードテーブル部は、前記端子の状態とドライバストレングスを決定するコード情報を関連づけて記憶する。
【００２６】
コードテーブルコントローラ部は、前記計測部による計測結果から前記コードテーブル部を参照し、前記コード情報に基づいてドライバストレングスの調整を行う。
また本発明による半導体集積回路は、端子のドライバストレングスの調整を行う半導体集積回路において、前記端子の状態を計測する計測部と、前記端子の状態とドライバストレングスを決定するコード情報を関連づけて記憶するコードテーブル部と、前記計測部による計測結果から前記コードテーブル部を参照し、前記コード情報に基づいてドライバストレングスの調整を行うコードテーブルコントローラ部と、を備えることを特徴とする。
【００２７】
更に本発明によるドライバストレングスの調整方法は、端子のドライバストレングスの調整を行うドライバストレングスの調整方法であって、前記端子の状態を計測し、前記計測結果から、前記端子の状態とドライバストレングスを決定するコード情報を関連づけて記憶するコードテーブル部を参照し、前記コード情報に基づいてドライバストレングスの調整を行う、ことを特徴とする。
【発明の効果】
【００２８】
本発明によれば、高速にドライバストレングスの調整を行うことが出来る。
また一度ドライバストレングスの調整を行なった後も、データのバースト転送毎、あるいはバースト転送中に温度や電圧といった外部要因に基づいたドライバストレングスの再調整が可能となる。
【図面の簡単な説明】
【００２９】
【図１】本実施形態におけるドライバストレングス調整回路の構成概略を示す図である。
【図２】本実施形態におけるドライバストレングス調整回路のドライバ部によるドライバストレングスの調整の仕方を示す図である。
【図３】コードテーブルコントローラの第１の構成例を示す図である。
【図４】コードテーブルコントローラの第２の構成例を示す図である。
【図５】本実施形態におけるドライバストレングス調整回路の動作フローの概略を示す図である。
【図６】コードテーブルの構成例を示すイメージ図である。
【図７】アドレスレジスタに設定されるアドレスのビットマップのイメージ図である。
【図８】コードテーブルをメモリ上に配置したときのメモリマップを示す図（その１）である。
【図９】コードテーブルをメモリ上に配置したときのメモリマップを示す図（その２）である。
【図１０】コードテーブルをメモリ上に配置したときのメモリマップを示す図（その３）である。
【図１１】コードテーブルへコード情報を書き込む際のコードテーブルコントローラとテスターとの関係を示す図である。
【図１２】ドライバストレングス調整回路にテスターで情報を書き込む際のシーケンスを示す図である。
【図１３】第１の構成のコントロールロジックがコードテーブルからコード情報を読み出す際の処理を示すイメージ図である。
【図１４】第１の構成のコントロールロジックがコードテーブルからコード情報を読み出す際の処理を示すシーケンス図である。
【図１５】複数のプロセスばらつき情報レジスタを持つ意味を示す図である。
【図１６】コードテーブルへコード情報を書き込む際の第２の構成のコードテーブルコントローラとテスターとの関係を示す図である。
【図１７】第２の構成のコントロールロジックがドライバストレングス調整回路にテスターで情報を書き込む際のシーケンスを示す図である。
【図１８】第２の構成のコントロールロジックによるドライバストレングスの調整を行うためにコードテーブルの読出し処理のイメージ図である。
【図１９】第２の構成のコントロールロジックがコードテーブルからコード情報を読み出す際の処理を示すシーケンス図である。
【図２０】本実施形態における半導体集積回路が適用されるシステムの例を示す図である。
【図２１】ドライバストレングスを調整することによって、種々の出力波形の問題を解決する例を示している。
【図２２】本実施形態におけるドライバストレングスの調整方法を適用したことによるタイミングマージンの改善を示す図である。
【図２３】（ａ）は本実施形態によるノイズ関係の効果、（ｂ）はスルーレートに対する効果を示す図である。
【図２４】従来のドライバストレングス調整回路の構成図である。
【発明を実施するための形態】
【００３０】
以下に図面を参照しながら本発明の一実施形態について説明する。
従来のドライバストレングスの調整方法は、上述したように外付け抵抗を用い、その外付け抵抗の値を基準にし、最終的にドライバを構成するＰｃｈ／Ｎｃｈトランジスタに外付け抵抗の抵抗値に基づいた一定の抵抗値をコピーする。
【００３１】
それに対して本実施形態におけるドライバストレングスの調整回路は、コードテーブルを備え、温度や端子のドライバ電圧等のドライバストレングスに関連する要因によってこのコードテーブルを参照することによって、設定する設定値を求める。
【００３２】
図１に本実施形態におけるドライバストレングス調整回路２００の構成概略を示す。
本実施形態におけるドライバストレングス調整回路２００は、コードテーブル２１０、コードテーブルコントローラ２２０、ドライバ部２３０−１〜２３０−ｎ、温度計測部２４０、及び電圧計測部２５０を有している。
【００３３】
コードテーブル２１０は、本実施形態におけるドライバストレングス調整回路２００を搭載した半導体集積回路のチップの温度やドライバストレングスの調整対象となっている端子の電圧及びプロセスばらつき情報と対応づけて、各ドライバ部２３０−１〜２３０−
ｎに設定するドライバストレングスを示すコードを記憶するテーブルである。コードテーブルコントローラ２２０は、温度計測部２４０や電圧計測部２５０から通知される温度や電圧の情報及びプロセスばらつき情報に基づいて、コードテーブル２１０を参照し、対応するコードの発行を依頼する。そしてコードテーブルコントローラ２２０は、コードテーブル２１０から得たコードを各ドライバ部２３０−１〜２３０−ｎに設定するコントローラである。ドライバ部２３０−１〜２３０−ｎは、ドライバストレングスの調整対象となっている端子を構成する入力若しくは出力のドライバ及びドライバストレングスの調整のための制御部である。このドライバ部２３０−１〜２３０−ｎは、コードテーブルコントローラ２２０から設定されるコードによって端子の入力若しくは出力ドライバを構成するＰｃｈ／Ｎｃｈトランジスタによって生成される抵抗値を変更する。温度計測部２４０は、本実施形態におけるドライバストレングス調整回路２００を搭載した半導体集積回路のチップの温度若しくはドライバストレングスの調整対象となっている端子の温度を計測してコートテーブルコントローラ２２０に通知するものである。電圧計測部２５０は、ドライバストレングスの調整対象となっている端子の電圧値を計測してコートテーブルコントローラ２２０に通知するものである。
【００３４】
このような構成において、本実施形態におけるドライバストレングス調整回路２００は、温度計測部２４０から通知される温度情報、電圧計測部２５０から通知される電圧情報及びドライバストレングスの調整対象となっている端子の位置から得られるプロセスばらつき情報を用いて、対応するコードの情報をコードテーブル２１０から得る。そしてコードテーブルコントローラ２２０は、このコードをドライバストレングスの調整対象となっている端子のドライバ部２３０に設定することにより、その端子のドライバストレングスを調整する。
【００３５】
このように本実施形態におけるドライバストレングス調整回路２００では、各種情報によってコードテーブルを参照するだけで、設定するコードが得られるので、高速なドライバストレングスの調整を実現することが出来る。またドライバストレングスの調整に時間がかからないので、半導体集積回路の初期設定時のみならず、動作途中においてもドライバストレングスの調整を行うことが出来る。
【００３６】
図２に本実施形態におけるドライバストレングス調整回路２００のドライバ部２３０によるドライバストレングスの調整の仕方を示す。
ドライバ部２３０は、１乃至複数のドライバストレングス調整対象の端子毎に設けられ、コードテーブルコントローラ２２０によって設定されたコード情報によって対応する端子のドライバストレングスを調整する。
【００３７】
図２に示すように、ドライバ部２３０は、複数のＰｃｈトランジスタとＮｃｈトランジスタがそれぞれ共通線に並列に接続され、不図示の制御部がコードテーブルコントローラ２２０によって設定されたコード情報に基づいて、各ＰｃｈトランジスタとＮｃｈトランジスタそれぞれを接続しているスイッチのＯＮ／ＯＦＦを切替えて並列度を調整する構成となっている。
【００３８】
ドライバ部２３０は、ドライバ部２３０に設定された設定値に基づいて、各端子のドライバを構成するＰｃｈ／Ｎｃｈトランジスタの接続数を調整する。これによって、各端子のドライバストレングスが調整される。
【００３９】
次にコードテーブルコントローラ２２０について説明する。
図３は、コードテーブルコントローラ２２０の第１の構成例を示す図である。
同図においてコードテーブルコントローラ２２０ａは、コントロールロジック２２１ａ、プロセスばらつき情報レジスタ２２２、及びアドレスレジスタ２２３を有している。
【００４０】
コントロールロジック２２１ａは、コードテーブルコントローラ２２０全体の制御を行うコントローラである。プロセスばらつき情報レジスタ２２２ａは、コントロールロジック２２１内に構成されるレジスタで、本実施形態におけるドライバストレングス調整回路２００ａを搭載した半導体集積回路が形成された半導体ウエハ毎のプロセスのばらつきについての情報を記憶するものである。アドレスレジスタ２２３は、コードテーブル２１０を参照する際に用いるコードテーブル２１０上でのアドレス値を記憶するレジスタである。
【００４１】
このような構成において、コードテーブルコントローラ２２０ａは、コントロールロジックが、温度計測部２４０からの温度情報、電圧計測部２５０からの電圧情報及びプロセスばらつき情報レジスタ２２２ａ内のプロセスばらつき情報を用いてコードテーブル２１０の参照アドレスを生成しこれをアドレスレジスタ２２３に設定する。コードテーブルコントローラ２２０ａは、このアドレスレジスタ２２３に設定されているアドレス値を用いてコードテーブル２１０を参照し、ドライバ部２３０に設定するドライバストレングスの調整用のコードを得る。
【００４２】
図４は、コードテーブルコントローラ２２０の第２の構成例を示す図である。
図４に示す第２の構成のコードテーブルコントローラ２２０ｂは、図３の第１の構成のコードテーブルコントローラ２２０ａと同様、コントロールロジック２２１、アドレスレジスタ２２３を備えている。また複数のプロセスばらつき情報レジスタ２２２ｂ−１〜２２２ｂ−ｍと、セレクタ２２４、及び複数のコードモードレジスタ２２５−１〜２２５−ｎを有している。
【００４３】
複数のプロセスばらつき情報レジスタ２２２ｂ−１〜２２２ｂ−ｍは、半導体ウエハのばらつきではなく、ドライバストレングスの調整対象となっている端子のドライバの位置毎のばらつき情報を記憶するものである。またコードモードレジスタ２２５−１〜２２５−ｎは、各ドライバ部２３０−１〜２３０−ｎ毎に設けられ、各ドライバ部２３０−１〜２３０−ｎに設定するコードを記憶するものである。セレクタ２２４は、コードテーブル２１０から読み出したコードを格納するコードモードレジスタ２２５−１〜２２５−ｎを選択するものである。
【００４４】
このような構成のコードテーブルコントローラ２２０ｂでは、温度計測部２４０からの温度情報、電圧計測部２５０からの電圧情報及びドライバストレングスの調整の調整を行う端子のドライバの位置情報に対応するプロセスばらつき情報レジスタ２２２ｂ−１〜２２２ｂ−ｍから読み出したプロセスばらつき情報を用いて、コードテーブル２１０の参照アドレスを生成しこれをアドレスレジスタ２２３に設定する。コードテーブルコントローラ２２０ａは、このアドレスレジスタ２２３に設定されているアドレス値を用いてコードテーブル２１０を参照し、ドライバ部２３０に設定するドライバストレングスの調整用のコードを得る。そしてコントロールロジック２２１は、制御信号でセレクタ２２４を制御し、コードテーブル２１０から読み出したコードを、ドライバストレングスの調整対象となっているドライバ部２３０−１〜２３０−ｎに対応するコードモードレジスタ２２５−１〜２２５−ｎに格納する。そしてコードテーブルコントローラ２２０ｂは、各コードモードレジスタ２２５−１〜２２５−ｎ内のコードを対応するドライバ部２３０−１〜２３０−ｎに設定してドライバストレングスの調整を行う。
【００４５】
このように第２の構成のコードテーブルコントローラ２２０ｂでは、温度や電圧の情報の他に、ドライバストレングスの調整を行う端子のチップ上の位置におけるプロセスばらつきをも考慮して、ドライバストレングスの調整の調整を行うことが出来る。
【００４６】
次に本実施形態におけるドライバストレングス調整回路２００による動作フローの概略を説明する。
図５は、本実施形態におけるドライバストレングス調整回路２００の動作フローの概略を示す図である。
【００４７】
ドライバストレングス調整回路２００における動作フローは、図５（ａ）に示す準備時のフローと、同図（ｂ）に示すドライバストレングス調整フローに分けられる。
図５（ａ）の準備時のフローは、本実施形態におけるドライバストレングス調整回路２００を搭載した半導体集積回路に対してテストを行うときに実行される処理を示している。
【００４８】
また図５（ｂ）のドライバストレングスの調整フローは、本実施形態におけるドライバストレングス調整回路２００を搭載した半導体集積回路が使用されている最中にドライバストレングスの調整を行う処理を示している。
【００４９】
図５（ａ）の準備時のフローでは、半導体集積回路のチップが作られたウエハ単位のプロセスばらつき情報若しくはチップ上の複数の位置でのプロセスばらつき情報を半導体集積回路のテスト工程で測定する。プロセスばらつきの測定方法としては、テスト工程で用いる汎用テスターを用いる他、インバータを用いたリングオシレータの周波数を測定する方法や測長が考えられる。そしてテスト工程で用いるテスターによって、測定結果に基づくコードを図３のプロセスばらつき情報レジスタ２２２ａ若しくは図５のプロセスばらつき情報レジスタ２２２ｂ−１〜２２２ｂ−ｍに設定する。
【００５０】
また別途シミュレーションによって、プロセスのばらつき（Ｐ）、電圧（Ｖ）、及び温度（Ｔ）が種々の値のときの最適なドライバストレングスの設定値を求める。
このドライバストレングスの設定値は、例えばプロセスばらつきに関するライブラリを元にプロセス温度・電圧毎にシミュレーションを実施することによって求めることが出来る。
【００５１】
まずプロセスばらつきに関するライブラリを元に温度や電圧の値を可変してシミュレーションを実施する。そしてシミュレーションの結果から、オーバーシュート・アンダーシュート等の波形品質及びタイミングに対して問題ないか確認する。そしてシミュレーションの結果から、波形の品質、タイミング的に最も良いドライバストレングスの値を決定する。そしてこのドライバストレングスの値を、プロセス、温度、電圧毎にまとめる。
【００５２】
このドライバストレングスの値は、コード情報をとして、コードテーブル２１０に設定、記憶される。このコードテーブル２１０へのコード情報の設定は、半導体集積回路のチップの生成時にマスクＲＯＭ等として記憶させたり、あるいはテスト工程においてテスターによってメモリに書き込むことによって行われる。
【００５３】
そして図５（ｂ）に示すドライバストレングスの調整フローでは、温度計測部２４０からの温度情報や電圧計測部２５０からの電圧情報、及びプロセスばらつき情報レジスタ２２２の設定値からコードテーブル２１０を参照してコード情報を求め、これをドライバ部２３０に設定することにより、高速なドライバストレングスの調整を実現することが出来る。
【００５４】
次にコードテーブル２１０の構成について説明する。
図６はコードテーブル２１０の構成例を示すイメージ図である。
本例では、コードテーブル２１０はプロセスばらつき情報毎に設けられ、図６は、プロセスばらつき情報が０Ｈ（Ｈは１６進数を表す。以下同じ）のコードテーブル２１０を示
している。なお本例ではプロセスばらつき情報は０Ｈ〜ＦＨの１６段階あるので、本実施形態におけるドライバストレングス調整回路２００は、各プロセスばらつき情報の段階毎に図６のようなコードテーブル２１０を１６種類備えている。
【００５５】
図６のコードテーブル２１０は、ドライバを構成するＰｃｈ／Ｎｃｈのトランジスタ毎に横軸に０．００Ｖ〜２．５５Ｖの端子のドライバ電圧の範囲が０．０１Ｖ単位で、また縦軸に−１２８℃〜１２７℃の温度範囲が１℃単位で設けられ、これらの温度や電圧に対応するコード情報が設定されているテーブルとなっている。
【００５６】
このような構成のコードテーブル２１０において、コードテーブルコントローラ２２０から、プロセスばらつき情報、温度情報、及び電圧情報が通知されると、プロセスばらつき情報で対応するコードテーブル２１０を選択し、そのコードテーブル２１０を温度情報及び電圧情報で参照することによって得られるコード情報をコードテーブルコントローラ２２０に返す。そしてコードテーブルコントローラ２２０は、このコード情報をドライバストレングスの調整対象となっている端子のドライバ部２３０に設定する。
【００５７】
よって本実施形態におけるドライバストレングス調整回路２００では、プロセスばらつき情報、温度情報及び電圧情報が決まれば、一意にドライバストレングスを調整するコード情報が求まる。よって、従来のドライバストレングスの調整方法に比して格段に高速にドライバストレングスの調整を行うことが出来る。したがって半導体集積回路が動作中であっても、あるいはデータのバースト転送中であってもドライバストレングスの調整を行うことが出来る。
【００５８】
次にアドレスレジスタ２２３に設定されるアドレスについて説明する。
図７は、アドレスレジスタ２２３に設定されるアドレスのビットマップのイメージ図である。
【００５９】
同図において、アドレスレジスタ２２３に設定されるアドレスは、ビット０からビット７までが温度情報、ビット８からビット１５までが電圧情報、ビット１６がＰｃｈ／Ｎｃｈトランジスタ、ビット１７からビット２０までがプロセスばらつき情報を表している。
【００６０】
このようなアドレスによって対応するコードが得られるように、図６のコードテーブル２１０は、図８のようにメモリ上に配置される。
図８乃至図１０は、図６のコードテーブル２１０をメモリ上に配置したときのメモリマップを示す図である。
【００６１】
図８はＯＦＦＳＥＴとして００Ｈ〜ＦＦＨを取ることにより、プロセスばらつき情報０ＨのＰｃｈトランジスタで端子のドライバ電圧が０．００Ｖ、０．０１Ｖ、・・・、２．５５Ｖ、〜プロセスばらつき情報がＦＨのＮｃｈトランジスタで端子のドライバ電圧が２．５５Ｖのときの−１２８℃〜１２７℃の範囲の温度値に対応するコード情報のメモリマップを示している。この場合、２５６個のメモリマップとして表現されている。
【００６２】
なお同図では、本実施形態での温度範囲である−１２８℃〜１２７℃の温度を、２の補数で表した数である値７ＦＨ〜００Ｈ〜８０Ｈを温度のアドレス値として用いている。したがって温度計測部２４０からの温度情報が通知されれば、コードテーブルコントローラ２２０は、それを２の補数に直すだけでコードテーブル２１０のアドレス値が求まる。
【００６３】
図９は、コードテーブル２１０をＰｃｈトランジスタとＮｃｈトランジスタ毎に分けた示した場合のメモリマップを示す図である。
同図では、コードテーブル２１０のメモリマップは、アドレス値のビット１６を０とし
たＰｃｈトランジスタのコード情報のコードマップと、アドレス値のビット１６を１としたＮｃｈトランジスタのコード情報のコードマップが示されている。
【００６４】
同図の各コードマップは、ビット１５〜８が電圧、ビット７〜０が温度によるアドレス値と対応しているコード情報が記憶されている。
図１０は、コードテーブル２１０をプロセスばらつき情報で分けて示した場合のメモリマップを示す図である。
【００６５】
同図では、コードテーブル２１０のメモリマップは、ＯＦＦＳＥＴとして０Ｈ〜ＦＨを取ることによって、プロセスばらつき情報が０Ｈのプロセスマップからプロセスばらつき情報がＦＨのプロセスマップまでの、１６のプロセスマップとして表現されている。
【００６６】
なお図７に示したアドレス値のうちビット０からビット７には、上述したように温度情報の２の補数を、ビット８からビット１５には電圧値の値を１００倍した後２進数に変換したものを用い、ビット１６にはＰｃｈ／Ｎｃｈトランジスタかで１／０を決めることによって求まる。また図１０でＯＦＦＳＥＴとなっている値はプロセスばらつき情報をそのまま用いればよい。
【００６７】
次に図５（ａ）に示したコードテーブル２１０へのコード情報を設定する際の処理について説明する。
図１１はコードテーブル２１０へコード情報を書き込む際のコードテーブルコントローラ２２０ａとテスター３００との関係を示す図である。
【００６８】
同図において、半導体集積回路をテストするテスター等３００は、コードテーブル２１０へのコード情報の書き込みを、コードテーブルコントローラ２２０ａのコントロールロジック２２１ａを介して行う。
【００６９】
なお図１１は、図３示したようにコントロールロジック２２１ａがプロセスばらつき情報レジスタ２２２ａを１つ備える場合を例として示している。
同図中信号ＷＥは、コードをコードテーブル２１０へ書き込む際のテスター等３００からの書き込みイネーブルを示す制御信号である。アドレスは、コード情報を書き込むコードテーブル２１０のアドレス情報を示す信号である。コードは、テスター等３００からコードテーブル２１０へ書き込まれる、ドライバストレングスの調整情報に用いられるコード情報である。プロセスばらつき情報は、コントロールロジック２２１ａ内のプロセスばらつき情報レジスタ２２２ａに設定される情報である。
【００７０】
同図において、コントロールロジック２２１ａは、テスター３００によってＷＥ信号が入力されてコードテーブル２１０への書き込みが指示されると、コードテーブル２１０に対して書き込み制御信号を出力する。またアドレスレジスタは、テスター３００によって設定されたアドレス値に基づいてコードテーブル２１０の対応番地を指定する。またテスター３００からコントロールロジック２２１ａに対して、プロセスばらつき情報が入力されると、これはプロセスばらつき情報レジスタ２２２ａに設定される。
【００７１】
図１２は、ドライバストレングス調整回路２００にテスター３００で情報を書き込む際のシーケンスを示す図である。
図１２に示すようにテスター３００は、コードテーブル２１０にコード情報を書き込む際、まずコントロールロジック２２１ａに対して信号ＷＥを出力すると共にアドレスレジスタ２２３にコードテーブル２１０上の書き込みを行うアドレスを示すアドレス値を設定する。するとコントロールロジック２２１ａはコードテーブル２１０に対して書き込み制御信号を送り、またアドレスレジスタ２２３に設定されたアドレス値によってコードテー
ブル２１０の書き込み対象の位置を指定する。このような状態からテスター３００は、コード情報をコードテーブル２１０に書き込む。またコントロールロジック２２１ａ内のプロセスばらつき情報レジスタ２２２ａにプロセスばらつき情報がセットされる。
【００７２】
図１２の例１では電圧１．７０Ｖ、温度０℃、Ｐｃｈ、及びプロセスばらつき情報０Ｈの条件でコードテーブル２１０にコード情報４Ｈを書き込む場合を示している。この場合、プロセスばらつき情報０Ｈがテスター３００によってプロセスばらつき情報レジスタ２２２ａに書き込まれる。上記電圧・温度・トランジスタのＰｃｈ／Ｎｃｈの条件情報及びプロセスばらつき情報から求められたコードテーブル２１０のアドレス値００００ＡＡＨがアドレスレジスタ２２３に設定され、このアドレス値に対応するコードテーブル２１０の位置にコード情報４Ｈが書き込まれる。
【００７３】
また例２の場合には、電圧１．９０Ｖ、温度−２５℃、Ｎｃｈ、及びプロセスばらつき情報ＦＨの条件でコードテーブル２１０にコード情報７Ｈを書き込む場合を示している。この場合、プロセスばらつき情報７Ｈがテスター３００によってプロセスばらつき情報レジスタ２２２ａに書き込まれる。また上記電圧・温度・トランジスタのＰｃｈ／Ｎｃｈの条件情報及びプロセスばらつき情報から求められたコードテーブル２１０のアドレス値１Ｆ８３ＢＥＨがアドレスレジスタ２２３に設定され、このアドレス値に対応するコードテーブル２１０の位置にコード情報７Ｈが書き込まれる。
【００７４】
次に本実施形態におけるドライバストレングス調整回路２００を搭載した半導体集積回路が、動作途中にドライバストレングスの調整を行う場合について説明する。
図１３は、ドライバストレングス調整回路２００が半導体集積回路の動作途中にドライバストレングスの調整を行う際に、コントロールロジック２２１ａがコードテーブル２１０からコード情報を読み出す際の処理を示すイメージ図である。
【００７５】
なお図１３は、図３に示したようにコントロールロジック２２１ａがプロセスばらつき情報レジスタ２２２ａを１つ備える場合を例として示している。
同図中ＴＥＭＰは、温度計測部２４０から通知される温度情報を、またＶＯＬは電圧計測部２５０から通知される電圧情報を示している。
【００７６】
温度計測部２４０からの温度情報や電圧計測部２５０からの電圧情報は、コードテーブルコントローラ２２０ａのコントロールロジック２２１ａに通知される。コントロールロジック２２１ａは、この温度情報、電圧情報及びプロセスばらつき情報レジスタ２２２ａ内のプロセスばらつき情報からコードテーブル２１０のアドレス情報を生成し、これをアドレスレジスタ２２３にセットする。これにより、コードテーブル２１０から対応するコード情報が読み出され、コードモードレジスタ２２５に格納される。
【００７７】
図１４は、図１３に示したドライバストレングス調整回路２００が半導体集積回路の動作途中にドライバストレングスの調整を行う際に、コントロールロジック２２１がコードテーブル２１０からコード情報を読み出す際の処理を示すシーケンス図である。
【００７８】
図１４に示すように半導体集積回路の動作時は、リアルタイムで温度や電圧の情報が温度計測部２４０及び電圧計測部２５０からコントロールロジック２２１ａに通知される。これらの情報及びプロセスばらつき情報レジスタ２２２ａの設定値を元に、コントロールロジック２２１ａは、アドレス値を生成しこれをアドレスレジスタ２２３にセットする。このレジスタ値によってコードテーブル２１０の対応アドレス内のコード情報が読み出され、コードモードレジスタ２２５にセットされる。そしてこのコードモードレジスタ２２５にセットされたコード情報がドライバ部２３０にセットされる。
【００７９】
図１４の例１では、電圧情報が１．７０Ｖ、温度情報が０℃、ドライバの対象トランジスタがＰｃｈトランジスタ、プロセスばらつき情報が０Ｈの場合を例として示している。この場合、温度計測部２４０からは温度情報として００Ｈが、また電圧計測部２５０からは電圧情報としてＡＡＨがコントロールロジック２２１ａに通知される。コントロールロジック２２１ａは、これらの情報とＰｃｈであること及びプロセスばらつき情報レジスタ２２２ａ内のプロセスばらつき情報０Ｈからアドレス値００００ＡＡＨを生成し、これをアドレスレジスタ２２３にセットする。これにより、コードテーブル２１０のアドレス００００ＡＡＨの位置からコード情報４Ｈが読み出され、これがコードモードレジスタ２２５にセットされる。
【００８０】
また同図の例２の場合には、電圧情報が１．９０Ｖ、温度情報が−２５℃、ドライバの対象トランジスタがＮｃｈトランジスタ、プロセスばらつき情報がＦＨの場合を例として示している。この場合、温度計測部２４０からは温度情報として８３Ｈが、また電圧計測部２５０からは電圧情報としてＢＥＨがコントロールロジック２２１ａに通知される。コントロールロジック２２１ａは、これらの情報とＮｃｈであること及びプロセスばらつき情報レジスタ２２２ａ内のプロセスばらつき情報ＦＨからアドレス値１Ｆ８３ＢＥＨを生成し、これをアドレスレジスタ２２３にセットする。これにより、コードテーブル２１０のアドレス１Ｆ８３ＢＥＨの位置からコード情報７Ｈが読み出され、これがコードモードレジスタ２２５にセットされる。
【００８１】
これにより本実施形態におけるドライバストレングス調整回路２００ａは、温度・電圧の変化に合わせて端子のドライバストレングスの調整を実現することが出来る。またこのドライバストレングスの調整は、従来に比して高速に行うことが出来るので、ドライバストレングス調整回路２００ａを搭載した半導体集積回路が稼働時やデータ転送時においても、ドライバストレングスの調整を行うことが出来る。
【００８２】
次に図４に示したようにコントロールロジック２２１が複数のプロセスばらつき情報レジスタ２２２ｂ−１〜２２２ｂ−ｍを備える場合のコードテーブル２１０及びプロセスばらつき情報レジスタ２２２ｂ−１〜２２２ｂ−ｍへの情報の設定処理について説明する。
【００８３】
図１５は、複数のプロセスばらつき情報レジスタ２２２ｂ−１〜２２２ｂ−ｍを持つ意味を示す図である。同図は、４つのプロセスばらつき情報レジスタ２２２ｂ−１〜２２２ｂ−４を備える場合を示している。この場合、本実施形態における半導体集積回路を構成するチップを４つの部分に分け、それぞれの部分のプロセスばらつき情報を４つのプロセスばらつき情報レジスタ２２２ｂ−１〜２２２ｂ−４に格納する。
【００８４】
同図（ａ）では、半導体集積回路の端子４０１をそのチップ４００上の位置によって右上の１つ以上の端子４０１−１、左上の１つ以上の端子４０１−２、右下の１つ以上の端子４０１−３、及び左下の１つ以上の端子４０１−４に分ける。そしてチップの右上、右下、左上、及び左下の位置でのプロセスばらつきを計測し、この計測結果に基づいたプロセスばらつき情報をコードテーブルコントローラ２２０のプロセスばらつき情報レジスタ２２２ｂ−１〜２２２ｂ−４に格納する。
【００８５】
そして半導体集積回路稼働時に各端子４０１−１〜４０１−４のドライバストレングスを調整する場合は、コードテーブルコントローラ２２０は、各端子周辺の温度や電圧、及びその端子に対応するプロセスばらつき情報レジスタ２２２ｂ−１〜２２２ｂ−４内のプロセスばらつき情報に基づいてコードテーブル２１０からコードをセレクタ２２４に出力させる。またコードテーブルコントローラ２２０は、コードテーブル２１０から読み出したコード情報をドライバストレングスの調整を行う端子に対応する位置のコードモードレジスタに出力するように制御信号によってセレクタ２２４を制御する。
これにより、各端子の位置に基づいたプロセスばらつき情報を用いたドライバストレングスの調整を行うことが出来る。
【００８６】
図１６は、複数のプロセスばらつき情報レジスタ２２２ｂ−１〜２２２ｂ−ｍを備える際の、コードテーブル２１０へコード情報を書き込む際のコードテーブルコントローラ２２０ｂとテスター３００との関係を示す図である。
【００８７】
同図において、半導体集積回路をテストするテスター等３００は、コードテーブル２１０へのコード情報の書き込みをコードテーブルコントローラ２２０ｂのコントロールロジック２２１ｂを介して行う。
【００８８】
この図１６のイメージ図と図１１のイメージ図を比較すると、図１６の場合、コードテーブル２１０へのコード情報の書き込みについては図１１の場合と同じである。しかしコントロールロジック２２１ｂが複数のプロセスばらつき情報レジスタ２２２ｂ−１〜２２２ｂ−ｍを備えているので、これら複数のプロセスばらつき情報レジスタ２２２ｂ−１〜２２２ｂ−ｍ全てにコード値を設定しなければならない。したがってテスター３００は各プロセスばらつき情報レジスタ２２２ｂ−１〜２２２ｂ−ｍに設定するプロセスばらつき情報を順次コントロールロジック２２１ｂに出力し、コントロールロジック２２１ｂはこのコード値をプロセスばらつき情報レジスタ２２２ｂ−１〜２２２ｂ−ｍのうちの対応するものに設定する。
【００８９】
図１７は、コントロールロジック２２１ｂがプロセスばらつき情報レジスタ２２２ｂ−１〜２２２ｂ−ｍを複数備える構成のドライバストレングス調整回路２００ｂにテスター３００で情報を書き込む際のシーケンスを示す図である。
【００９０】
図１７に示すように、テスター３００がコードテーブル２１０にコード情報を書き込む際のシーケンスは、図１２の場合と同じである。そして図１７では、このコードテーブル２１０への書き込みと同時に、コードテーブル２１０に書き込んだ情報に対応するプロセスばらつき情報のコード値を、複数のプロセスばらつき情報レジスタ２２２ｂ−１〜２２２ｂ−ｍのうち対応するものにセットする。
【００９１】
図１７の例１では電圧１．７０Ｖ、温度０℃、Ｐｃｈ、及びプロセスばらつき情報０Ｈの条件でコードテーブル２１０にコード情報４Ｈを書き込むと共に複数のプロセスばらつき情報レジスタ２２２ｂ−１〜２２２ｂ−ｍのうち、チップの右上部分に構成されているドライバに対応するものにプロセスばらつき情報０Ｈを書き込む場合を示している。この場合、プロセスばらつき情報０Ｈが、テスター３００によってプロセスばらつき情報レジスタ２２２ｂ−１〜２２２ｂ−ｍの内、ドライバのチップ上の右上の位置にドライバが構成されているものに対応するものに書き込まれる。
【００９２】
また例２の場合には、電圧１．９０Ｖ、温度−２５℃、Ｎｃｈ、及びプロセスばらつき情報ＦＨの条件でコードテーブル２１０にコード情報７Ｈを書き込むと共に複数のプロセスばらつき情報レジスタ２２２ｂ−１〜２２２ｂ−ｍのうち、チップの右下部分に構成されているドライバに対応するものにプロセスばらつき情報ＦＨを書き込む場合を示している。この場合、プロセスばらつき情報ＦＨが、テスター３００によってプロセスばらつき情報レジスタ２２２ｂ−１〜２２２ｂ−ｍの内、ドライバのチップ上の右下の位置にドライバが構成されているものに対応するものに書き込まれる。
【００９３】
これにより、本実施形態におけるドライバストレングス調整回路２００ｂを備える半導体集積回路のチップ内でプロセスばらつきが異なる場合においても、複数のプロセスばらつき情報レジスタ２２２ｂ−１〜２２２ｂ−ｍに各位置におけるプロセスばらつきを記憶
させることが出来る。これによりチップ内でプロセスにおけるばらつきに合わせてドライバストレングスを調整できるようになり、ドライバストレングスの変動をよりなくすことができる。
【００９４】
次にコントロールロジック２２１ｂが複数のプロセスばらつき情報レジスタ２２２ｂ−１〜２２２ｂ−ｍを備える構成のときの、ドライバストレングスの調整を行うためにコードテーブル２１０の読出し処理について説明する。
【００９５】
図１８は、コントロールロジック２２１ｂが複数のプロセスばらつき情報レジスタ２２２ｂ−１〜２２２ｂ−ｍを備える構成のときの、ドライバストレングスの調整を行うためにコードテーブル２１０の読出しを行う処理のイメージ図である。
【００９６】
同図の場合は、コントロールロジック２２１ｂは、４つのプロセスばらつき情報レジスタ２２２ｂ−１〜２２２ｂ−４を備えている場合を例として示している。この４つのプロセスばらつき情報レジスタ２２２ｂ−１〜２２２ｂ−４のうち、プロセスばらつき情報レジスタ２２２ｂ−１は、半導体集積回路を構成するチップの右上部分のプロセスばらつき情報を格納するもので、ドライバストレングスの調整対象となっている端子のドライバがチップ上の右上部分にある場合に用いられる。またプロセスばらつき情報レジスタ２２２ｂ−２は、チップの左上部分のプロセスばらつき情報を格納するもので、ドライバストレングスの調整対象となっている端子のドライバがチップ上の左上部分にある場合に用いられる。プロセスばらつき情報レジスタ２２２ｂ−３は、半導体集積回路を構成するチップの右下部分のプロセスばらつき情報を格納するもので、ドライバストレングスの調整対象となっている端子のドライバがチップ上の右下部分にある場合に用いられる。プロセスばらつき情報レジスタ２２２ｂ−４は、半導体集積回路を構成するチップの左下部分のプロセスばらつき情報を格納するもので、ドライバストレングスの調整対象となっている端子のドライバがチップ上の左下部分にある場合に用いられる。
【００９７】
またコードモードレジスタ２２５−１〜２２５−４は、プロセスばらつき情報レジスタ２２２ｂ−１〜２２２ｂ−４と対応して設けられる。コードモードレジスタ２２５−１は、ドライバが半導体集積回路のチップの右上にある端子のドライバストレングスの調整のためにドライバ部２３０に設定されるコード情報がセットされるレジスタである。またコードモードレジスタ２２５−２は、ドライバが半導体集積回路のチップの左上にある端子のドライバストレングスの調整のためにドライバ部２３０に設定されるコード情報がセットされるレジスタである。コードモードレジスタ２２５−３は、ドライバが半導体集積回路のチップの右下にある端子のドライバストレングスの調整のためにドライバ部２３０に設定されるコード情報がセットされるレジスタである。
コードモードレジスタ２２５−４は、ドライバが半導体集積回路のチップの左下にある端子のドライバストレングスの調整のためにドライバ部２３０に設定されるコード情報がセットされるレジスタである。
【００９８】
セレクタ２２４は、コントロールロジック２２１からの制御信号に基づいて、コードテーブル２１０から読み出したコード情報をセットするコードモードレジスタ２２５を選択するものである。コントロールロジック２２１は、ドライバストレングスの調整対象となっている端子の位置に基づいて、制御信号をセレクタ２２４に送り、コードモードレジスタ２２５−１〜２２５−４の内から１つを選択させる。
【００９９】
図１９は、図１８に示した複数のプロセスばらつき情報レジスタ２２２ｂ−１〜２２２ｂ−４を備えるドライバストレングス調整回路２００ｂが半導体集積回路の動作途中にドライバストレングスの調整を行う際に、コントロールロジック２２１ｂがコードテーブル２１０からコード情報を読み出す際の処理を示すシーケンス図である。
【０１００】
図１９に示すように半導体集積回路の動作時は、リアルタイムで温度や電圧の情報が温度計測部２４０及び電圧計測部２５０からコントロールロジック２２１ｂに通知される。またコントロールロジック２２１ｂは、複数のプロセスばらつき情報レジスタ２２２ｂ−１〜２２２ｂ−４のうち、ドライバストレングスの調整を行う端子のドライバの位置に対応するものに設定されているプロセスばらつき情報を読み出す。そしてこのプロセスばらつき情報、温度情報及び電圧情報を元に、コントロールロジック２２１ｂは、アドレス値を生成しこれをアドレスレジスタ２２３にセットする。このレジスタ値によってコードテーブル２１０の対応アドレス内のコード情報が読み出され、セレクタ２２４に入力される。コントロールロジック２２１ｂは、ドライバストレングスの調整対象の端子のドライバの位置に基づいて制御信号をセレクタ２２４に出力する。セレクタ２２４は、この制御信号に基づいて、複数のコードモードレジスタ２２５−１〜２２５−ｎの内から１つを選択して、コードテーブル２１０から入力されたコード情報をセットする。各コードモードレジスタ２２５−１〜２２５−４にセットされたコード情報は、ドライバストレングスの調整対象の端子に対応するドライバ部２３０にセットされて、ドライバストレングスの調整が行われる。
【０１０１】
図１９の例１では、電圧情報が１．７０Ｖ、温度情報が０℃、ドライバの対象トランジスタがＰｃｈトランジスタ、プロセスばらつき情報が０Ｈ、ドライバストレングスの調整の端子のドライバの位置がチップの右上の場合を例として示している。この場合、温度計測部２４０からは温度情報として０００Ｈが、また電圧計測部２５０からは電圧情報としてＡＡ０Ｈがコントロールロジック２２１ｂに通知される。コントロールロジック２２１ｂは、これらの情報とＰｃｈであること及びドライバの位置が右上に対応するプロセスばらつき情報レジスタ２２２−１内のプロセスばらつき情報０Ｈからアドレス値００００ＡＡＨを生成し、これをアドレスレジスタ２２３にセットする。これにより、コードテーブル２１０のアドレス００００ＡＡＨの位置からコード情報４Ｈが読み出され、これがセレクタ２２４に入力される。またコントロールロジック２２１ｂは、制御信号としてチップの右上を示す０Ｈをセレクタ２２４に送る。セレクタ２２４は、この制御信号に基づいて右上のコードモードレジスタ２２５−１を選択し、コードテーブル２１０から入力されたコード情報をこのコードモードレジスタ２２５−１にセットする。
【０１０２】
このように複数のプロセスばらつき情報レジスタ２２２ｂ−１〜２２２ｂ−ｍを備えるドライバストレングス調整回路２００ｂによれば、チップ内のプロセスばらつきをも考慮したドライバストレングスの調整を実現することが出来る。またこのドライバストレングスの調整は、従来のものに比して高速に行うことが出来るので、半導体集積回路が動作中やデータ転送中であっても行うことが出来る。
【０１０３】
図２０は、本実施形態における半導体集積回路が適用されるシステムの例を示す図である。
同図のシステム６００は、Ｈｏｓｔ  ＣＰＵ６１０、グラフィックディスプレーコントローラ（ＧＤＣ）６２０、及びＬＣＤ６３０より構成され、Ｈｏｓｔ  ＣＰＵ６１０の指示に基づいてＧＤＣ６２０がＬＣＤ６３０に画像を表示するものである。このうち本実施形態におけるドライバストレングス調整回路は、ＧＤＣ６２０が搭載している。
【０１０４】
Ｈｏｓｔ  ＣＰＵ６１０は、ＳＤＲＡＭ６１１をワークメモリにしてＧＤＣ６２０に対して画像表示の指示を行う。ＧＤＣ６２０は、外部に接続されたＳＤＲＡＭ６２７をキャッシュメモリとして、Ｈｏｓｔ  ＣＰＵ６１０からの指示に基づいて外部入力ビデオ信号を加工してＬＣＤ６３０に画像表示を行う。
【０１０５】
ＧＤＣ６２０は、Ｈｏｓｔ  ＣＰＵ６１０とやりとりを行うホストコントローラ６２１、外部入力ビデオ信号を受信するキャプチャーコントローラ６２２、ＬＣＤ６３０に画像表示を行うディスプレーコントローラ６２３、ＳＤＲＡＭ６２７とのやりとりを行う外部メモリコントローラ６２４、画像データの展開等を行ってＬＣＤ６３０に表示する画像データを生成する画像エンジン６２５、及びドライバストレングス調整回路６２６を備えている。
【０１０６】
ドライバストレングス調整回路６２６は、これまで述べてきたようなＧＤＣ６２０の端子のドライバストレングス調整を行うが、このドライバストレングスの調整の対象となるのは、高速データ転送が行われるＨｏｓｔ  ＣＰＵ６１０とホストコントローラ６２１の間、ディスプレーコントローラ６２３とＬＣＤ６３０との間、及びＳＤＲＡＭ６２７と外部メモリコントローラ６２４との間で用いられる端子のドライバストレングスの調整を行う。
【０１０７】
このＧＤＣ６２０は、本実施形態におけるドライバストレングス調整回路６２６により、高速なデータ転送に対応でき、またＧＤＣ６２０が稼働中に温度や電圧の変化が生じても、それに対応したドライバストレングスの調整を行うことが出来る。
【０１０８】
次に本実施形態におけるドライバストレングス調整方法による出力波形の変化について説明する。
図２１は、ドライバストレングスを調整することによって、種々の出力波形の問題を解決する例を示している。
【０１０９】
温度や電圧の変化によって、本実施形態における半導体集積回路の出力波形がオーバーシュートしているときは、ドライバストレングスを低くすることによって、出力先の半導体集積回路の規格内に収まる。またアンダーシュートしているときも、ドライバストレングスを低くすることによって、出力先の半導体集積回路の規格内に収まる。
【０１１０】
またスルーレートに問題があるときは、ドライバストレングスを高くすることによって出力先の半導体集積回路の規格内に収まる。出力信号の振幅が低いときもドライバストレングスを高くすることによって出力先の半導体集積回路の規格内に収まる。
【０１１１】
本実施形態の方法によればドライバストレングスを常に一定に保つことが出来るので、出力波形の品質は、オーバーシュート／アンダーシュート、スルーレート、及び振幅を一定とすることが出来、波形品質を向上することが出来る。
【０１１２】
次に本実施形態におけるドライバストレングス調整方法による出力波形のタイミングマージンの変化について説明する。
図２２は、本実施形態におけるドライバストレングスの調整方法を適用したことによるタイミングマージンの改善を示す図である。
【０１１３】
従来は稼働中にドライバストレングスが変化してしまうので、図２２の７０１に示す従来のようにＰｃｈトランジスタ側とＮｃｈトランジスタ側とでドライバストレングスが異なる場合には、タイミングマージンは、ＤＱＳと／ＤＱＳのクロスポイントとＤＱの確定点が一致しなくなる方向に変化するため、ＤＱ−ＤＱＳスキューの分だけ有効データの時間が減少してしまう。
【０１１４】
本実施形態におけるドライバストレングスの調整方法を適用した半導体集積回路の出力波形は、稼働中に温度や電圧の変化が生じてもドライバストレングスは変化しない。したがってスルーレートが一定となり、作動信号ＤＱＳと／ＤＱＳのクロスポイントが変動し
ない。
【０１１５】
よって図２２の７０２に示すように、ＤＱ−ＤＱＳスキューが最小となり有効データの時間が最大となる。したがってタイミングマージンが向上する。
次に本実施形態におけるドライバストレングス調整方法による同時スイッチングノイズに対する効果について説明する。
【０１１６】
本実施形態におけるドライバストレングス調整方法を適用すると、ドライバストレングスが一定であることから、ドライバストレングスの高さ及びスルーレートが一定となる．したがって、同時スイッチングノイズについては、電源やＧＮＤへのノイズの大きさと、電源やＧＮＤノイズから受ける影響時間が一定となる。
【０１１７】
図２３（ａ）はノイズ関係の効果、同図（ｂ）はスルーレートに対する効果を示している。
同図（ａ）に示すように、ドライバストレングスを高くするとその分単位時間当たりの電流量が多くなるので、同時スイッチングノイズが大きくなる。しかしスルーレートに関しては、同図（ｂ）に示すようにドライバストレングスを高くするとその分ノイズから影響を受ける時間が短くなる。
【０１１８】
またドライバストレングスが一定である場合、同時スイッチングノイズは、周囲環境の変化によらず常に一定である。
よって、ドライバストレングスが一定であれば、同時スイッチングノイズとそのノイズが他の信号に対して与える遅延の影響に対して向上する。
【０１１９】
また、本実施形態におけるドライバストレングス調整方法を適用すれば、信号の品質に対する効果以外にもドライバストレングスが一定であることから、半導体集積回路の設計・開発時において上記した信号の品質を考慮して設計・開発する必要がないため、設計・開発における制約条件が緩和されることにつながり、設計期間・設計コストを削減することが出来るという効果も得られる。
【０１２０】
以上の実施形態に関し、更に以下の付記を開示する。
（付記１）
半導体集積回路の端子のドライバストレングスの調整を行うドライバストレングス調整回路において、
前記端子の状態を計測する計測部と、
前記端子の状態とドライバストレングスを決定するコード情報を関連づけて記憶するコードテーブル部と、
前記計測部による計測結果から前記コードテーブル部を参照し、前記コード情報に基づいてドライバストレングスの調整を行うコードテーブルコントローラ部と、
を備えることを特徴とするドライバストレングス調整回路。
（付記２）
前記端子の状態は、前記端子のドライバの温度情報を含むことを特徴とする付記１に記載のドライバストレングス調整回路。
（付記３）
前記端子の状態は、前記端子のドライバの電圧情報を含むことを特徴とする付記１に記載のドライバストレングス調整回路。
（付記４）
前記コードテーブルコントローラ部は、前記半導体集積回路のプロセスばらつき情報を記憶するプロセスばらつき情報レジスタを備え、前記計測部による計測結果に加え、前記プロセスばらつき情報レジスタ内の設定値をも考慮して前記コードテーブル部を参照する
ことを特徴とする付記１に記載のドライバストレングス調整回路。
（付記５）
前記プロセスばらつき情報レジスタは、前記半導体集積回路のチップが生成されたウエハのプロセスばらつき情報が設定されていることを特徴とする付記４に記載のドライバストレングス調整回路。
（付記６）
前記コードテーブルコントローラ部は、前記計測部による計測結果と前記プロセスばらつき情報レジスタ内の設定値から前記コードテーブル部のアドレスを生成し、当該アドレスを用いて前記コードテーブル部を参照することを特徴とする付記４に記載のドライバストレングス調整回路。
（付記７）
前記コードテーブルは、前記端子のドライバの温度、前記端子のドライバの電圧、ドライバストレングスの調整対象となるトランジスタがＰｃｈであるかＮｃｈであるか、及び前記端子のドライバのプロセスばらつき情報と、前記コード情報を関連づけて記憶することを特徴とする付記１に記載のドライバストレングス調整回路。
（付記８）
前記コードテーブルコントローラ部は、前記端子のドライバの前記半導体集積回路を構成するチップ上での位置に対応した複数の前記プロセスばらつき情報レジスタを備え、前記計測部による計測結果に加え、ドライバストレングスの調整を行う端子のドライバの位置に対応した前記プロセスばらつき情報レジスタ内の設定値をも考慮して前記コードテーブル部を参照することを特徴とする付記４に記載のドライバストレングス調整回路。
（付記９）
前記コードテーブルコントローラ部は、前記コード情報に基づいて、前記端子のドライバを構成するＰｃｈトランジスタとＮｃｈトランジスタの並列度を変更することによりドライバストレングスの調整を行うことを特徴とする付記１に記載のドライバストレングス調整回路。
（付記１０）
端子のドライバストレングスの調整を行う半導体集積回路において、
前記端子の状態を計測する計測部と、
前記端子の状態とドライバストレングスを決定するコード情報を関連づけて記憶するコードテーブル部と、
前記計測部による計測結果から前記コードテーブル部を参照し、前記コード情報に基づいてドライバストレングスの調整を行うコードテーブルコントローラ部と、
を備えることを特徴とする半導体集積回路。
（付記１１）
端子のドライバストレングスの調整を行うドライバストレングスの調整方法であって
前記端子の状態を計測し、
前記計測結果から、前記端子の状態とドライバストレングスを決定するコード情報を関連づけて記憶するコードテーブル部を参照し、前記コード情報に基づいてドライバストレングスの調整を行う、
ことを特徴とする半導体集積回路のドライストレングス調整方法。
【符号の説明】
【０１２１】
１００、２００、６２６  ドライバストレングス調整回路
１１０  基準抵抗生成部
１１１  基準抵抗
１１２、１４１  比較器
１２０  キャリブレーション部
１２１  第１のターゲット抵抗
１２２  第２のターゲット抵抗
１２３  第１のスイッチ
１２４  第２のスイッチ
１２５  共通線
１３０  コード検出部
１３１  Ｐｃｈトランジスタ
１３２  Ｎｃｈトランジスタ
１３３  第３のスイッチ
１３４  第４のスイッチ
１４０  駆動力比較部
１５０  外付け抵抗
２１０  コードテーブル
２２０  コードテーブルコントローラ
２３０  ドライバ部
２４０  温度計測部
２５０  電圧計測部
２２１  コントロールロジック
２２２  プロセスばらつき情報レジスタ
２２３  アドレスレジスタ
２２４  セレクタ
２２５  コードモードレジスタ
３００  テスター
４００  チップ
４０１  端子
６１０  Ｈｏｓｔ  ＣＰＵ
６２０  グラフィックディスプレーコントローラ
６２１  ホストコントローラ
６２２  キャプチャーコントローラ
６２３  ディスプレーコントローラ
６２４  外部メモリコントローラ
６２５  画像エンジン
６３０  ＬＣＤ
【図１】
2010178262.tif 000003
【図２】
2010178262.tif 000004
【図３】
2010178262.tif 000005
【図４】
2010178262.tif 000006
【図５】
2010178262.tif 000007
【図６】
2010178262.tif 000008
【図７】
2010178262.tif 000009
【図８】
2010178262.tif 000010
【図９】
2010178262.tif 000011
【図１０】
2010178262.tif 000012
【図１５】
2010178262.tif 000013
【図２０】
2010178262.tif 000014
【図２１】
2010178262.tif 000015
【図２２】
2010178262.tif 000016
【図２４】
2010178262.tif 000017
【図１１】
2010178262.tif 000018
【図１２】
2010178262.tif 000019
【図１３】
2010178262.tif 000020
【図１４】
2010178262.tif 000021
【図１６】
2010178262.tif 000022
【図１７】
2010178262.tif 000023
【図１８】
2010178262.tif 000024
【図１９】
2010178262.tif 000025
【図２３】
2010178262.tif 000026