(57)【要約】【課題】寄生インピーダンスに起因する反射の影響を抑制して精度の高い出力信号を生成することが可能な半導体装置及びその制御方法を提供すること。【解決手段】一実施の形態によれば、半導体装置１は、入力信号ＩＮをドライブして出力信号ＯＵＴを生成するドライバ１３と、立ち上がり中の出力信号ＯＵＴの電圧を異なるタイミングでサンプリングしてホールドする複数のサンプルホールド回路１４＿１〜１４＿ｎと、複数のサンプルホールド回路１４＿１〜１４＿ｎのそれぞれによってホールドされた複数の電圧を比較する比較部と、比較部による比較結果に基づいてドライバ１３のドライブ能力を制御する制御部と、を備える。【選択図】図１
2019047330.tif 000002
【特許請求の範囲】
【請求項１】
入力信号をドライブして出力信号を生成するドライバと、
第１レベルから第２レベルに変化する前記出力信号の電圧、を異なるタイミングでサンプリングしてホールドする複数のサンプルホールド回路と、
前記複数のサンプルホールド回路のそれぞれによってホールドされた複数の電圧を比較する比較部と、
前記比較部による比較結果に基づいて、前記ドライバのドライブ能力を制御する制御部と、
を備えた半導体装置。
【請求項２】
前記比較部は、前記複数の電圧のうち遅いタイミングでサンプリングされた電圧ほど前記第２レベルに近い値を示すか否かを比較する、
請求項１に記載の半導体装置。
【請求項３】
前記制御部は、前記比較部によって、前記複数の電圧のうち遅いタイミングでサンプリングされた電圧ほど前記第２レベルに近い値を示すことが否と判定された場合、前記ドライバのドライブ能力を切り替える、
請求項２に記載の半導体装置。
【請求項４】
前記制御部は、前記比較部によって、前記複数の電圧のうち遅いタイミングでサンプリングされた電圧ほど前記第２レベルに近い値を示すことが否と判定された場合、前記ドライバのドライブ能力を低くする、
請求項２に記載の半導体装置。
【請求項５】
前記比較部は、
前記複数のサンプルホールド回路のうち第１のサンプルホールド回路群によってホールドされた複数の電圧と、前記複数のサンプルホールド回路のうち、前記第１のサンプルホールド回路群よりも早いタイミングでそれぞれサンプリングを行った第２のサンプルホールド回路群、によってホールドされた複数の電圧と、をそれぞれ比較する複数のコンパレータを有し、
前記制御部は、前記複数のコンパレータによる複数の比較結果に基づいて、前記ドライバのドライブ能力を制御する、
請求項１に記載の半導体装置。
【請求項６】
前記制御部は、前記複数のコンパレータによる複数の比較結果のうちの何れかが期待値と異なる場合、前記ドライバのドライブ能力を切り替える、
請求項５に記載の半導体装置。
【請求項７】
前記制御部は、前記複数のコンパレータによる複数の比較結果のうちの何れかが期待値と異なる場合、前記ドライバのドライブ能力を低くする、
請求項５に記載の半導体装置。
【請求項８】
前記第１レベルはＬレベルであって、前記第２レベルはＨレベルであって、
前記制御部は、テストモード時に、前記入力信号の電圧を前記第１レベルから前記第２レベルに変化させる第１テストモードに加えて、前記入力信号の電圧を前記第２レベルから前記第１レベルに変化させる第２テストモードを、選択可能に構成され、
前記制御部は、前記第１テストモード時に、前記複数のコンパレータによる複数の比較結果のうちの何れかが期待値と異なる場合、前記ドライバのドライブ能力を低くし、かつ、前記第２テストモード時に、前記複数のコンパレータによる複数の比較結果のうちの何れかが期待値と異なる場合、前記ドライバのドライブ能力を低くする、
請求項１に記載の半導体装置。
【請求項９】
前記入力信号を生成する信号生成回路をさらに備え、
前記制御部は、テストモード時に、前記入力信号の電圧を前記第１レベルから前記第２レベルに変化させるように前記信号生成回路を制御する、
請求項１に記載の半導体装置。
【請求項１０】
テストモード時に、前記ドライバが前記入力信号のドライブを開始したことに応じて、前記複数のサンプルホールド回路にサンプリング動作させるための複数のサンプリング信号を、それぞれ異なるタイミングでアクティブにするサンプリング調整回路をさらに備えた、
請求項１に記載の半導体装置。
【請求項１１】
前記複数のサンプルホールド回路のうち前記制御部によって指定された数のサンプルホールド回路に対してのみ前記サンプリング信号を出力するサンプリング数調整回路、をさらに備えた、
請求項１０に記載の半導体装置。
【請求項１２】
前記出力信号の電圧が前記第１レベルから前記第２レベルに向けて変化を開始してから前記第２レベルに達するまでの期間を測定する測定回路をさらに備え、
前記サンプリング数調整回路は、前記複数のサンプルホールド回路のうち前記測定回路による測定結果に基づいて指定された数のサンプルホールド回路に対してのみ前記サンプリング信号を出力する、
請求項１１に記載の半導体装置。
【請求項１３】
前記制御部によって指定された間隔で前記複数のサンプリング信号をアクティブにするサンプリング間隔調整回路をさらに備えた、
請求項１０に記載の半導体装置。
【請求項１４】
前記出力信号の電圧が前記第１レベルから前記第２レベルに向けて変化を開始してから前記第２レベルに達するまでの期間を測定する測定回路をさらに備え、
前記サンプリング間隔調整回路は、前記測定回路による測定結果に基づいて指定された間隔で前記複数のサンプリング信号をアクティブにする、
請求項１３に記載の半導体装置。
【請求項１５】
前記制御部によって決定された前記ドライバのドライブ能力の設定値、が格納されるドライブ能力設定回路をさらに備え、
前記ドライブ能力設定回路に格納されたドライブ能力の設定値に基づいて、前記ドライバのドライブ能力が制御される、
請求項１に記載の半導体装置。
【請求項１６】
前記制御部は、前記複数のコンパレータによる複数の比較結果のうち所定数以上の比較結果が期待値と異なる場合、前記ドライバのドライブ能力を切り替える、
請求項１に記載の半導体装置。
【請求項１７】
前記制御部は、前記複数のコンパレータによる複数の比較結果のうち期待値と異なる比較結果の数に応じた変更度合いで、前記ドライバのドライブ能力を切り替える、
請求項１に記載の半導体装置。
【請求項１８】
第１レベルから第２レベルに変化するドライバの出力信号の電圧、を異なるタイミングで複数サンプリングしてサンプリングした複数の電圧をホールドし、
ホールドされた前記複数の電圧のうち遅いタイミングでサンプリングされた電圧ほど前記第２レベルに近い値を示すか否かを比較し、
その比較結果に基づいて、前記ドライバのドライブ能力を制御する、
半導体装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置及びその制御方法に関し、例えば寄生インピーダンスに起因する反射の影響を抑制して精度の高い出力信号を生成するのに適した半導体装置及びその制御方法に関する。
【背景技術】
【０００２】
マイコン等の半導体装置は、周辺装置を正確に動作させるために、クロック信号等の出力信号を精度良く生成することが求められている。
【０００３】
しかしながら、半導体装置の出力信号には、例えば、半導体装置と、当該半導体装置の出力信号を受ける受信装置と、の間を接続する配線の寄生インピーダンスに起因した意図しない反射が発生する可能性がある。この意図しない反射が発生すると、半導体装置の出力信号は、信号遷移（例えば立ち上がり）に対して遷移方向とは逆方向に一時的に変動してしまう。そのため、半導体装置は、精度の高い出力信号を生成することができないという問題があった。
【０００４】
関連する技術が特許文献１に開示されている。特許文献１に開示されたクロックジェネレータは、ＰＬＬ回路の出力をドライブして外部に出力する出力バッファと、出力バッファの出力波形をサンプリングしてコード化するＡＤ変換回路と、ＡＤ変換回路によりコード化された出力バッファの出力波形（実波形）と、理想波形と、を比較するコンパレータと、を備え、コンパレータの比較結果に基づいて、出力バッファの駆動能力が調整されている。それにより、このクロックジェネレータは、出力バッファの出力波形を理想波形に近づけることができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１０−１５４０１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１の構成は、出力信号の信号遷移時の傾き（スルーレート）を調整するにすぎず、反射の影響による出力信号の一時的な変動を抑制することを想定していない。そのため、特許文献１の構成は、例えば、出力信号の立ち上がり時において、出力信号が反射の影響を受けて遷移方向とは逆方向に一時的に変動した場合、出力信号の傾きが理想の傾きより小さいと誤判定しまい、出力信号の傾きを大きくしようとして出力ドライバの駆動能力を大きく（即ち、出力ドライバの抵抗値を小さく）制御してしまう。その結果、反射がさらに大きくなってしまう。つまり、特許文献１の構成では、寄生インピーダンスに起因する反射の影響を抑制することができないため、精度の高い出力信号を生成することができないという問題があった。その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００７】
一実施の形態によれば、半導体装置は、入力信号をドライブして出力信号を生成するドライバと、第１レベルから第２レベルに変化する前記出力信号の電圧、を異なるタイミングでサンプリングしてホールドする複数のサンプルホールド回路と、前記複数のサンプルホールド回路のそれぞれによってホールドされた複数の電圧を比較する比較部と、前記比較部による比較結果に基づいて、前記ドライバのドライブ能力を制御する制御部と、を備える。
【０００８】
また、他の実施の形態によれば、半導体装置の制御方法は、第１レベルから第２レベルに変化するドライバの出力信号の電圧、を異なるタイミングで複数サンプリングしてサンプリングした複数の電圧をホールドし、ホールドされた前記複数の電圧のうち遅いタイミングでサンプリングされた電圧ほど前記第２レベルに近い値を示すか否かを比較し、その比較結果に基づいて、前記ドライバのドライブ能力を制御する。
【発明の効果】
【０００９】
前記一実施の形態によれば、寄生インピーダンスに起因する反射の影響を抑制して精度の高い出力信号を生成することが可能な半導体装置及びその制御方法を提供することができる。
【図面の簡単な説明】
【００１０】
【図１】実施の形態１にかかる半導体装置が搭載された半導体システムの構成例を示す図である。
【図２】図１に示す半導体装置に設けられたドライブ能力設定回路及びドライバの第１の具体的構成例を示す図である。
【図３】図１に示す半導体装置に設けられたドライブ能力設定回路及びドライバの第２の具体的構成例を示す図である。
【図４】図１に示す半導体装置の動作を示すフローチャートである。
【図５】図１に示す半導体装置の理想的な出力信号の立ち上がり時における、サンプリングタイミングと、サンプリングされた電圧と、の関係を示す図である。
【図６】図１に示す半導体装置の理想的でない出力信号の立ち上がり時における、サンプリングタイミングと、サンプリングされた電圧と、の関係を示す図である。
【図７】理想的な出力信号の立ち上がり波形と、理想的でない出力信号の立ち上がり波形と、の違いを示す図である。
【図８】実施の形態２にかかる半導体装置が搭載された半導体システムの構成例を示す図である。
【図９】図８に示す半導体装置に設けられたドライブ能力設定回路及びドライバの第１の具体的構成例を示す図である。
【図１０】図８に示す半導体装置に設けられたドライブ能力設定回路及びドライバの第２の具体的構成例を示す図である。
【図１１】図８に示す半導体装置の動作を示すフローチャートである。
【図１２】図８に示す半導体装置の理想的な出力信号の立ち上がり時における、サンプリングタイミングと、サンプリングされた電圧と、の関係を示す図である。
【図１３】図８に示す半導体装置の理想的でない出力信号の立ち上がり時における、サンプリングタイミングと、サンプリングされた電圧と、の関係を示す図である。
【図１４】理想的な出力信号の立ち上がり波形と、理想的でない出力信号の立ち上がり波形と、の違いを示す図である。
【図１５】実施の形態３にかかる半導体装置が搭載された半導体システムの構成例を示す図である。
【図１６】測定期間が出力信号の立ち上がり期間よりも長い場合における測定期間の調整方法を説明するための図である。
【図１７】測定期間が出力信号の立ち上がり期間よりも短い場合における測定期間の調整方法を説明するための図である。
【図１８】実施の形態４にかかる半導体装置が搭載された半導体システムの構成例を示す図である。
【図１９】測定期間が出力信号の立ち上がり期間よりも長い場合における測定期間の調整方法を説明するための図である。
【図２０】測定期間が出力信号の立ち上がり期間よりも短い場合における測定期間の調整方法を説明するための図である。
【図２１】実施の形態５にかかる半導体装置が搭載された半導体システムの構成例を示す図である。
【発明を実施するための形態】
【００１１】
説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、様々な処理を行う機能ブロックとして図面に記載される各要素は、ハードウェア的には、ＣＰＵ、メモリ、その他の回路で構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
【００１２】
また、上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  ＰＲＯＭ）、フラッシュＲＯＭ、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００１３】
＜実施の形態１＞
図１は、実施の形態１にかかる半導体装置１が搭載された半導体システムＳＹＳ１の構成例を示す図である。半導体システムＳＹＳ１は、例えばマイクロコンピュータである半導体装置１と、半導体装置１の出力信号を受ける受信装置１００と、を備える。半導体装置１と受信装置１００とは、配線Ｗ１を介して接続されている。
【００１４】
半導体装置１は、ＣＰＵ(Central Processing Unit)１１と、信号生成回路１２と、ドライバ１３と、ｎ（ｎは２以上の整数）個のサンプルホールド回路１４＿１〜１４＿ｎと、ｎ個のコンパレータ１５＿１〜１５＿ｎと、比較結果格納部１６と、ＰＬＬ回路１７と、サンプリング調整回路１８と、ドライブ能力設定回路１９と、バスＢ１と、を備える。なお、本実施の形態では、ｎ＝８である場合を例に説明する。即ち、本実施の形態では、半導体装置１に、８個のサンプルホールド回路１４＿１〜１４＿８及び８個のコンパレータ１５＿１〜１５＿８が設けられている場合を例に説明する。
【００１５】
ＣＰＵ１１（制御部）は、図示しないメモリ等に格納されたプログラムを読み取って所定の処理を行う。信号生成回路１２は、ＣＰＵ１１からの指示を受けて入力信号ＩＮを生成する。
【００１６】
ドライバ１３は、入力信号ＩＮをドライブして出力信号ＯＵＴとして出力する。出力信号ＯＵＴは、外部出力端子Ｔ１を介して半導体装置１の外部に出力されるとともに、半導体装置１の内部においてフィードバックされる。なお、ドライバ１３は、サンプリング調整回路１８からのイネーブル信号ＥＮがアクティブの場合に動作し、ドライブ能力設定回路１９からの設定信号Ｓ１によってドライブ能力の設定を行う。
【００１７】
サンプリング調整回路１８は、サンプルホールド回路１４＿１〜１４＿８にサンプリング動作させるためのサンプリング信号Ａ１〜Ａ８を生成する。ここで、サンプリング調整回路１８は、ＣＰＵ１１からの指示を受けて、サンプリング信号Ａ１〜Ａ８をそれぞれ異なるタイミングでアクティブにする。サンプリング信号Ａ１〜Ａ８がアクティブになる間隔は、例えばＰＬＬ回路１７によって生成されるクロック信号の周期に比例し、例えば５ｎｓ程度である。
【００１８】
また、サンプリング調整回路１８は、ＣＰＵ１１からの指示を受けて、ドライバ１３の動作開始を許可するためのイネーブル信号ＥＮ、及び、比較結果格納部１６に格納された８個の比較結果Ｈ１〜Ｈ８を一斉に出力するためのトリガ信号ＴＲＧを生成する。
【００１９】
サンプルホールド回路１４＿１〜１４＿８は、それぞれ、サンプリング信号Ａ１〜Ａ８がアクティブになったタイミングで、ドライバ１３の出力信号ＯＵＴの電圧をサンプリングしてホールドする。
【００２０】
コンパレータ１５＿１〜１５＿８は、比較部を構成しており、サンプルホールド回路１４＿１〜１４＿８のそれぞれによってホールドされた複数の電圧を比較する。
【００２１】
具体的には、コンパレータ１５＿１は、サンプルホールド回路１４＿１によってホールドされた出力信号ＯＵＴの電圧と、接地電圧ＧＮＤと、を比較して比較結果Ｈ１を出力する。コンパレータ１５＿２〜１５＿８は、それぞれ、サンプルホールド回路１４＿２〜１４＿８（第１のサンプルホールド回路群）によってホールドされた出力信号ＯＵＴの電圧（第１の電圧群）と、それより１つ早いタイミングでサンプリングを行ったサンプルホールド回路１４＿１〜１４＿７（第２のサンプルホールド回路群）によってホールドされた出力信号ＯＵＴの電圧（第２の電圧群）と、を比較して比較結果Ｈ２〜Ｈ８を出力する。これらの比較結果Ｈ１〜Ｈ８は、何れも、比較結果格納部１６に格納される。
【００２２】
例えば、コンパレータ１５＿１は、サンプルホールド回路１４＿１によってホールドされた出力信号ＯＵＴの電圧が接地電圧ＧＮＤ以上の場合、Ｈレベル（値１）の比較結果Ｈ１を出力し、接地電圧ＧＮＤ未満の場合、Ｌレベル（値０）の比較結果を出力する。
【００２３】
また、コンパレータ１５＿ｉ（ｉは２〜ｎの整数）は、サンプルホールド回路１４＿ｉによってホールドされた出力信号ＯＵＴの電圧が、それより１つ早いタイミングでサンプリングを行ったサンプルホールド回路１４＿（ｉ−１）によってホールドされた出力信号ＯＵＴの電圧以上の場合、Ｈレベル（値１）の比較結果Ｈｉを出力する。他方、コンパレータ１５＿ｉ（ｉは２〜ｎの整数）は、サンプルホールド回路１４＿ｉによってホールドされた出力信号ＯＵＴの電圧が、それより１つ早いタイミングでサンプリングを行ったサンプルホールド回路１４＿（ｉ−１）によってホールドされた出力信号ＯＵＴの電圧未満の場合、Ｌレベル（値０）の比較結果Ｈｉを出力する。
【００２４】
比較結果格納部１６に格納された比較結果Ｈ１〜Ｈ８は、サンプリング調整回路１８からのトリガ信号ＴＲＧがアクティブになると同時に一斉に出力される。そして、比較結果格納部１６から出力された比較結果Ｈ１〜Ｈ８は、バスＢ１を介して、ＣＰＵ１１に転送される。
【００２５】
ＣＰＵ１１は、比較結果格納部１６から転送された比較結果Ｈ１〜Ｈ８に基づいて、ドライバ１３のドライブ能力を設定するための設定情報（設定値）を出力する。この設定情報は、バスＢ１を介して、ドライブ能力設定回路１９に転送される。ドライブ能力設定回路１９は、この設定情報を、設定信号Ｓ１としてドライバ１３に対して出力する。それにより、ドライバ１３のドライブ能力が設定される。
【００２６】
（ドライブ能力設定回路１９及びドライバ１３の第１の具体的構成例）
図２は、ドライブ能力設定回路１９及びドライバ１３の第１の具体的構成例を、それぞれ、ドライブ能力設定回路１９ａ及びドライバ１３ａとして示す図である。
【００２７】
ドライブ能力設定回路１９ａは、ドライブ能力記憶レジスタ１９１と、ＤＡ変換回路１９３と、を備える。
【００２８】
ドライブ能力記憶レジスタ１９１は、ＣＰＵ１１から転送されてきた、ドライバ１３ａのドライブ能力を設定するための設定情報、を記憶する。ＤＡ変換回路１９３は、ドライブ能力記憶レジスタ１９１に記憶された設定情報を、アナログ信号に変換して設定信号Ｓ１として出力する。
【００２９】
ドライバ１３ａは、否定論理積回路（以下、単にＮＡＮＤ回路と称す）ＮＤ１と、否定論理和回路（以下、単にＮＯＲ回路と称す）ＮＲ１と、ボルテージフォロアＶＦ１と、定電流回路Ｉ１と、抵抗素子Ｒ１と、ＰチャネルＭＯＳトランジスタ（以下、単にトランジスタと称す）ＭＰ１と、ＮチャネルＭＯＳトランジスタ（以下、単にトランジスタと称す）ＭＮ１と、を備える。
【００３０】
ＮＡＮＤ回路ＮＤ１は、入力信号ＩＮと、イネーブル信号ＥＮと、の否定論理積を出力する。具体的には、ＮＡＮＤ回路ＮＤ１は、イネーブル信号ＥＮがインアクティブ（Ｌレベル）の場合、入力信号ＩＮのレベルに関わらずＨレベルの信号を出力し、イネーブル信号ＥＮがアクティブ（Ｈレベル）の場合、入力信号ＩＮのレベルを論理反転させて出力する。
【００３１】
ＮＯＲ回路ＮＲ１は、入力信号ＩＮと、イネーブル信号ＥＮの反転信号と、の否定論理和を出力する。具体的には、ＮＯＲ回路ＮＲ１は、イネーブル信号ＥＮがインアクティブ（Ｌレベル）の場合、入力信号ＩＮのレベルに関わらずＬレベルの信号を出力し、イネーブル信号ＥＮがアクティブ（Ｈレベル）の場合、入力信号ＩＮのレベルを論理反転させて出力する。
【００３２】
ボルテージフォロアＶＦ１は、ＮＡＮＤ回路ＮＤ１の出力がＬレベルの場合に駆動され、ドライブ能力設定回路１９ａから出力された設定信号Ｓ１を、電圧レベルを変えずに出力する。抵抗素子Ｒ１及び定電流回路Ｉ１は、電源電圧端子ＶＣＣと接地電圧端子ＧＮＤとの間に直列に設けられている。ここで、定電流回路Ｉ１には、ボルテージフォロアＶＦ１の出力電圧（即ち、設定信号Ｓ１の電圧）に応じた電流値の電流が流れる。それにより、抵抗素子Ｒ１及び定電流回路Ｉ１間のノードＮ１１の電圧が制御される。
【００３３】
トランジスタＭＰ１では、ソースが電源電圧端子ＶＣＣに接続され、ドレインが出力ノードＮ１に接続され、ゲートにノードＮ１１の電圧が印加されている。トランジスタＭＮ１では、ソースが接地電圧端子ＧＮＤに接続され、ドレインが出力ノードＮ１に接続され、ゲートにＮＯＲ回路ＮＲ１の出力が印加されている。出力ノードＮ１の電圧は、出力信号ＯＵＴとして出力される。
【００３４】
例えば、イネーブル信号ＥＮがインアクティブ（Ｌレベル）の場合、ＮＡＮＤ回路ＮＤ１がＨレベル、ＮＯＲ回路ＮＲ１がＬレベルになるため、入力信号ＩＮのレベルに関わらず、トランジスタＭＰ１，ＭＮ１は何れもオフする。そのため、出力端子ＯＵＴはＨｉＺ状態となる。
【００３５】
それに対し、イネーブル信号ＥＮがアクティブ（Ｈレベル）の場合において、入力信号ＩＮが立ち上がると、ＮＡＮＤ回路ＮＤ１がＬレベルを示すため、ボルテージフォロアＶＦ１が駆動される。それにより、定電流源Ｉ１には、ボルテージフォロアＶＦ１の出力電圧（即ち、設定信号Ｓ１の電圧）に応じた電流値の電流が流れる。この電流は、定電流源Ｉ１に直列接続された抵抗素子Ｒ１にも流れる。そのため、トランジスタＭＰ１のゲート（ノードＮ１１）には、抵抗素子Ｒ１に流れる電流の電流値と、抵抗素子Ｒ１の抵抗値と、によって決まる電圧値の電圧が印加される。それにより、トランジスタＭＰ１は、設定信号Ｓ１に応じたオン抵抗でオンする。一方、このとき、ＮＯＲ回路ＮＲ１がＬレベルを示すため、トランジスタＭＮ１はオフする。トランジスタＭＰ１が設定信号Ｓ１に応じたオン抵抗でオンし、トランジスタＭＮ１がオフするため、出力信号ＯＵＴは、設定信号Ｓ１に応じた駆動能力で立ち上がる。このようにして、出力信号ＯＵＴの立ち上がり時におけるドライバ１３ａの駆動能力が制御される。なお、入力信号ＩＮが立ち下がると、ＮＡＮＤ回路ＮＤ１がＨレベル、ＮＯＲ回路ＮＲ１がＨレベルになるため、トランジスタＭＰ１はオフし、かつ、トランジスタＭＮ１はオンする。それにより、出力信号ＯＵＴも立ち下がる。
【００３６】
（ドライブ能力設定回路１９及びドライバ１３の第２の具体的構成例）
図３は、ドライブ能力設定回路１９及びドライバ１３の第２の具体的構成例を、それぞれ、ドライブ能力設定回路１９ｂ及びドライバ１３ｂとして示す図である。
【００３７】
ドライブ能力設定回路１９ｂは、ドライブ能力記憶レジスタ１９１を備える。ドライブ能力記憶レジスタ１９１は、ＣＰＵ１１から転送されてきた、ドライバ１３ｂのドライブ能力を設定するための設定情報、を記憶するとともに、記憶したデジタルの設定情報を、設定信号Ｓ１として出力する。
【００３８】
ドライバ１３ｂは、ＮＡＮＤ回路ＮＤ１と、スイッチ素子ＳＷ１＿１〜ＳＷ１＿ｐ（ｐは２以上の整数）と、トランジスタＭＰ１＿１〜ＭＰ１＿ｐと、トランジスタＭＮ１と、を備える。
【００３９】
スイッチ素子ＳＷ１＿１〜ＳＷ１＿ｐは、電源電圧端子ＶＣＣと、トランジスタＭＰ１＿１〜ＭＰ１＿ｐのそれぞれのソースと、の間に設けられ、設定信号Ｓ１の値に応じてオンオフの制御を行う。トランジスタＭＰ１＿１〜ＭＰ１＿ｐは、それぞれ、スイッチ素子ＳＷ１＿１〜ＳＷ１＿ｐと、出力ノードＮ１と、の間に設けられ、ＮＡＮＤ回路ＮＤ１の出力に応じてオンオフの制御を行う。トランジスタＭＮ１では、ソースが接地電圧端子ＧＮＤに接続され、ドレインが出力ノードＮ１に接続され、ゲートにＮＡＮＤ回路ＮＤ１の出力が印加されている。出力ノードＮ１の電圧は、出力信号ＯＵＴとして出力される。
【００４０】
ここで、ドライブ能力設定回路１９ｂからの設定信号Ｓ１の値に基づいて、スイッチ素子ＳＷ１＿１〜ＳＷ１＿ｐのうちオンするスイッチ素子の数が制御される。オンするスイッチ素子の数が多いほど、電源電圧端子ＶＣＣから出力端子ＯＵＴに向けて流れる電流の値は大きくなり、オンするスイッチ素子の数が少ないほど、電源電圧端子ＶＣＣから出力端子ＯＵＴに向けて流れる電流の値は小さくなる。つまり、出力信号ＯＵＴの立ち上がり時におけるドライバ１３ｂの駆動能力が制御される。
【００４１】
（半導体装置１の動作）
続いて、図４を用いて、半導体装置１の動作について説明する。
図４は、半導体装置１の動作を示すフローチャートである。なお、以下では、ｎ＝８である場合を例に説明する。即ち、以下では、半導体装置１に、８個のサンプルホールド回路１４＿１〜１４＿８及び８個のコンパレータ１５＿１〜１５＿８が設けられている場合を例に説明する。
【００４２】
まず、通常動作モード前のテストモードにおいて、ＣＰＵ１１は、ドライバ１３のドライブ能力を設定するための設定情報の初期値“１０００００００”を、ドライブ能力設定回路１９に転送する（ステップＳ１０１）。ドライブ能力設定回路１９は、この設定情報の初期値を、設定信号Ｓ１として、ドライバ１３に対して出力する。それにより、ドライバ１３のドライブ能力は、最小ドライブ能力と最大ドライブ能力との間の中間値付近に設定される。
【００４３】
その後、信号生成回路１２は、ＣＰＵ１１からの指示を受けて、入力信号ＩＮをＬレベル（接地電圧ＧＮＤレベル）に初期化し（ステップＳ１０２）、その後、Ｈレベル（電源電圧ＶＣＣレベル）に遷移させる（ステップＳ１０３）。ただし、このとき、イネーブル信号ＥＮがインアクティブ（例えばＬレベル）であるため、ドライバ１３は入力信号ＩＮの駆動を行わない。
【００４４】
その後、サンプリング調整回路１８は、ＣＰＵ１１からの指示を受けて、イネーブル信号ＥＮをアクティブにする（ステップＳ１０４）。それにより、ドライバ１３は入力信号ＩＮの駆動を開始する。具体的には、ドライバ１３は、ＬレベルからＨレベルに遷移する（即ち、立ち上がる）入力信号ＩＮを駆動して、出力信号ＯＵＴとして出力する。
【００４５】
サンプリング調整回路１８は、イネーブル信号ＥＮをアクティブにした後、サンプリング信号Ａ１〜Ａ８を異なるタイミングでアクティブにする。サンプルホールド回路１４＿１〜１４＿８は、それぞれ、サンプリング信号Ａ１〜Ａ８がアクティブになったタイミングで、ＬレベルからＨレベルに遷移中の出力信号ＯＵＴの電圧Ｖ１〜Ｖ８をサンプリングしてホールドする（ステップＳ１０５）。
【００４６】
コンパレータ１５＿１〜１５＿８により構成された比較部は、サンプルホールド回路１４＿１〜１４＿８によってホールドされた電圧Ｖ１〜Ｖ８のうち遅いタイミングでサンプリングされた電圧ほど電源電圧ＶＣＣレベルに近い値を示すか否かを比較する（ステップＳ１０６）。
【００４７】
具体的には、コンパレータ１５＿１は、サンプルホールド回路１４＿１によってホールドされた出力信号ＯＵＴの電圧Ｖ１と、接地電圧ＧＮＤと、を比較して、比較結果Ｈ１を出力する（ステップＳ１０６）。コンパレータ１５＿２〜１５＿８は、それぞれ、サンプルホールド回路１４＿２〜１４＿８によってホールドされた出力信号ＯＵＴの電圧Ｖ２〜Ｖ８と、それより１つ早いタイミングでサンプリングを行ったサンプルホールド回路１４＿１〜１４＿７によってホールドされた出力信号ＯＵＴの電圧Ｖ１〜Ｖ７と、を比較して、比較結果Ｈ２〜Ｈ８を出力する（ステップＳ１０６）。これらの比較結果Ｈ１〜Ｈ８は、何れも、比較結果格納部１６に格納される。
【００４８】
サンプリング調整回路１８は、比較結果Ｈ１〜Ｈ８の全てが比較結果格納部１６に格納された後、トリガ信号ＴＲＧをアクティブにする。それにより、比較結果格納部１６に格納された比較結果Ｈ１〜Ｈ８は、一斉に読み出され、ＣＰＵ１１に転送される（ステップＳ１０７）。
【００４９】
例えば、図５に示すように、出力信号ＯＵＴが反射の影響を受けていない理想的な立ち上がり波形を示す場合、サンプリング信号Ａ１〜Ａ８がアクティブになるタイミングｔＡ１〜ｔＡ８における出力信号ＯＵＴの電圧Ｖ１〜Ｖ８の関係は、ＧＮＤ＜Ｖ１＜Ｖ２＜Ｖ３＜Ｖ４＜Ｖ５＜Ｖ６＜Ｖ７＜Ｖ８、となる。そのため、コンパレータ１５＿１〜１５＿８の比較結果Ｈ１〜Ｈ８は、何れも値１（期待値）、即ち、値“１１１１１１１１”を示す。
【００５０】
上述のように、比較結果Ｈ１〜Ｈ８が値“１１１１１１１１”を示す場合（ステップＳ１０８のＹＥＳ）、出力信号ＯＵＴが反射の影響を受けていない理想的な立ち上がり波形を示すことから、ＣＰＵ１１は、ドライブ能力設定回路１９に格納されている設定情報を固定させる。それにより、ドライバ１３のドライブ能力が確定する。
【００５１】
それに対し、例えば、図６に示すように、出力信号ＯＵＴが反射の影響を受けて立ち上がり方向とは逆方向に一時的に変動している場合、サンプリング信号Ａ１〜Ａ８がアクティブになるタイミングｔＡ１〜ｔＡ８における出力信号ＯＵＴの電圧Ｖ１〜Ｖ８の関係は、例えばＧＮＤ＜Ｖ１＜Ｖ２＜“Ｖ４”＜“Ｖ３”＜Ｖ５＜Ｖ６＜Ｖ７＜Ｖ８、となる。そのため、コンパレータ１５＿１〜１５＿８の比較結果Ｈ１〜Ｈ８のうち、比較結果Ｈ４が値０を示し、それ以外の比較結果Ｈ１〜Ｈ３，Ｈ５〜Ｈ８が何れも値１、即ち、値“１１１０１１１１”を示す。
【００５２】
上述のように、比較結果Ｈ１〜Ｈ８が値“１１１１１１１１”を示さない場合、換言すると、比較結果Ｈ１〜Ｈ８のうち何れか一つでも値０を示す場合（ステップＳ１０８のＮＯ）、出力信号ＯＵＴが反射の影響を受けて立ち上がり方向とは逆方向に一時的に変動することから、ＣＰＵ１１は、ドライブ能力設定回路１９に格納されている設定情報を更新する。具体的には、ＣＰＵ１１は、ドライブ能力設定回路１９に格納されている設定情報を、例えば値“１０００００００”から値１だけカウントダウンさせて値“０１１１１１１１”に更新する。それにより、ドライバ１３のドライブ能力は、直前に設定されていたドライブ能力よりも小さくなる。換言すると、ドライバ１３の抵抗値は、直前に設定されていた抵抗値よりも大きくなる。
【００５３】
ここで、ドライバ１３の出力インピーダンスをＺｏ、配線Ｗ１等の寄生インピーダンスをＺとすると、反射係数Γは、以下のように表すことができる。
反射係数Γ＝（Ｚｏ−Ｚ）／（Ｚｏ＋Ｚ）  ・・・（１）
【００５４】
式（１）より、Ｚ＞Ｚｏの場合、即ち、ドライバ１３の出力インピーダンスＺｏが寄生インピーダンスＺよりも小さい場合、反射係数Γが負の値を示すことがわかる。反射係数Γが負の値を示す場合、出力信号ＯＵＴが反射の影響を受けて立ち上がり方向とは逆方向に一時的に変動してしまうおそれがある。
【００５５】
そこで、本実施の形態では、比較結果Ｈ１〜Ｈ８のうち何れか一つでも値０を示す場合、ドライバ１３のドライブ能力を小さくして（即ち、ドライバ１３の抵抗値を大きくして）、ドライバ１３の出力インピーダンスＺｏを寄生インピーダンスＺに近づける（理想的には同じ値にする）ことにより、反射係数Γをできるだけ小さくしている。
【００５６】
ドライバ１３のドライブ能力が再設定された後、比較結果Ｈ１〜Ｈ８が値“１１１１１１１１”を示すまで、ステップＳ１０１〜Ｓ１０９の処理が繰り返される。そして、比較結果Ｈ１〜Ｈ８が値“１１１１１１１１”を示した場合（ステップＳ１０８のＹＥＳ）、出力信号ＯＵＴが反射の影響を受けていない理想的な立ち上がり波形を示すことから、ＣＰＵ１１は、ドライブ能力設定回路１９に格納されている設定情報を固定させる。それにより、ドライバ１３のドライブ能力が確定する。このとき、出力信号ＯＵＴの立ち上がり波形は、図７に示すように理想的な波形に補正されている。
【００５７】
このように、本実施の形態にかかる半導体装置１は、出力信号ＯＵＴが反射の影響を受けて立ち上がり方向とは逆方向に一時的に変動した場合、ドライバ１３のドライブ能力を小さくして、ドライバ１３の出力インピーダンスを寄生インピーダンスに近づけることにより、反射係数Γをできるだけ小さくしている。それにより、本実施の形態にかかる半導体装置１は、寄生インピーダンスに起因する反射の影響を抑制することができるため、精度の高い出力信号ＯＵＴを生成することができる。その結果、例えば顧客基板上においてＥＭＣやデータ誤送信を抑制することができる。
【００５８】
なお、特許文献１の構成は、出力信号の信号遷移時の傾き（スルーレート）を調整するにすぎず、反射の影響による出力信号の一時的な変動を抑制することを想定していない。そのため、特許文献１の構成は、例えば、出力信号の立ち上がり時において、出力信号が反射の影響を受けて立ち上がり方向とは逆方向に一時的に変動した場合、出力信号の傾きが理想の傾きより小さいと誤判定しまい、出力信号の傾きを大きくしようとして出力ドライバの駆動能力を大きく（即ち、出力ドライバの抵抗値を小さく）制御してしまう。その結果、反射係数Γがさらに大きくなってしまう。つまり、特許文献１の構成では、寄生インピーダンスに起因する反射の影響を抑制することができないため、精度の高い出力信号を生成することができない。それに対し、本実施の形態にかかる半導体装置１は、そのような問題は生じない。
【００５９】
本実施の形態では、比較結果Ｈ１〜Ｈ８のうち何れか一つでも値０を示す場合に、ドライバ１３のドライブ能力が変更される場合を例に説明したが、これに限られない。比較結果Ｈ１〜Ｈ８のうち予め決められた複数個以上が値０を示す場合にのみ、ドライバ１３のドライブ能力が変更されてもよい。
【００６０】
また、本実施の形態では、比較結果Ｈ１〜Ｈ８のうち何れか一つでも値０を示す場合には、値０を示す比較結果の数に関わらず、一定の変更度合いでドライバ１３のドライブ能力が変更される場合を例に説明したが、これに限られない。例えば、値０を示す比較結果の数に応じた変更度合いで、ドライバ１３のドライブ能力が変更されてもよい。具体的には、値０を示す比較結果の数が多いほど、大きな変更度合いで、ドライバ１３のドライブ能力が変更されてもよい。
【００６１】
さらに、本実施の形態では、入力信号ＩＮをＬレベルからＨレベルに遷移させた後に、イネーブル信号ＥＮをアクティブにする場合を例に説明したが、これに限られない。入力信号ＩＮをＬレベルからＨレベルに遷移させる前に、イネーブル信号ＥＮをアクティブにする構成であってもよい。
【００６２】
＜実施の形態２＞
図８は、実施の形態２にかかる半導体装置２が搭載された半導体システムＳＹＳ２の構成例を示す図である。半導体システムＳＹＳ２は、例えばマイクロコンピュータである半導体装置２と、半導体装置２の出力信号を受ける受信装置１００と、を備える。半導体装置２と受信装置１００とは、配線Ｗ１を介して接続されている。
【００６３】
半導体装置１では、反射の影響を受けたドライバ１３の出力信号ＯＵＴの立ち上がり波形を理想波形となるように調整していた。それに対し、半導体装置２では、反射の影響を受けたドライバ２３（ドライバ１３に対応）の出力信号ＯＵＴの立ち上がり波形を理想波形となるように調整するだけでなく、出力信号ＯＵＴの立ち下がり波形を理想波形となるように調整している。以下、具体的に説明する。
【００６４】
半導体装置２は、ＣＰＵ２１と、信号生成回路２２と、ドライバ２３と、サンプルホールド回路２４＿１〜２４＿ｎと、コンパレータ２５＿１〜２５＿ｎと、比較結果格納部２６と、ＰＬＬ回路２７と、サンプリング調整回路２８と、ドライブ能力設定回路２９と、バスＢ２と、スイッチ素子ＳＷ２と、を備える。本実施の形態では、ｎ＝８である場合を例に説明する。即ち、本実施の形態では、半導体装置２に、８個のサンプルホールド回路２４＿１〜２４＿８及び８個のコンパレータ２５＿１〜２５＿８が設けられている場合を例に説明する。
【００６５】
ここで、ＣＰＵ２１、信号生成回路２２、ドライバ２３、サンプルホールド回路２４＿１〜２４＿８、コンパレータ２５＿１〜２５＿８、比較結果格納部２６、ＰＬＬ回路２７、サンプリング調整回路２８、ドライブ能力設定回路２９、及び、バスＢ２は、それぞれ、ＣＰＵ１１、信号生成回路１２、ドライバ１３、サンプルホールド回路１４＿１〜１４＿８、コンパレータ１５＿１〜１５＿８、比較結果格納部１６、ＰＬＬ回路１７、サンプリング調整回路１８、ドライブ能力設定回路１９、及び、バスＢ１に対応する。即ち、半導体装置２は、半導体装置１と比較して、スイッチ素子ＳＷ２をさらに備えている。
【００６６】
スイッチ素子ＳＷ２は、コンパレータ１５＿１の反転入力端子を、ＣＰＵ１１からの指示に基づいて、接地電圧端子ＧＮＤ及び電源電圧端子ＶＣＣの何れかに接続する。例えば、出力信号ＯＵＴの立ち上がり波形を理想波形となるように調整するモードの場合、スイッチ素子ＳＷ２は、コンパレータ１５＿１の反転入力端子を、接地電圧端子ＧＮＤに接続する。他方、出力信号ＯＵＴの立ち下がり波形を理想波形となるように調整するモードの場合、スイッチ素子ＳＷ２は、コンパレータ１５＿１の非反転入力端子を、電源電圧端子ＶＣＣに接続する。
【００６７】
ドライブ能力設定回路２９は、出力信号ＯＵＴの立ち上がり時におけるドライブ能力の設定情報（設定値）、及び、出力信号ＯＵＴの立ち下がり時におけるドライブ能力の設定情報（設定値）、をそれぞれ格納する。そして、ドライブ能力設定回路２９は、これら２つの設定情報をそれぞれ設定信号Ｓ１，Ｓ２として出力する。それにより、出力信号ＯＵＴの立ち上がり時及び立ち下がり時のそれぞれのドライバ２３のドライブ能力が設定される。
【００６８】
（ドライブ能力設定回路２９及びドライバ２３の第１の具体的構成例）
図９は、ドライブ能力設定回路２９及びドライバ２３の第１の具体的構成例を、それぞれ、ドライブ能力設定回路２９ａ及びドライバ２３ａとして示す図である。
【００６９】
ドライブ能力設定回路２９ａは、ドライブ能力記憶レジスタ２９１，２９２と、ＤＡ変換回路２９３，２９４と、を備える。
【００７０】
ドライブ能力記憶レジスタ２９１は、ＣＰＵ２１から転送されてきた、出力信号ＯＵＴの立ち上がり時におけるドライバ２３ａのドライブ能力の設定情報、を記憶する。ＤＡ変換回路２９３は、ドライブ能力記憶レジスタ２９１に記憶された設定情報を、アナログ信号に変換して設定信号Ｓ１として出力する。
【００７１】
ドライブ能力記憶レジスタ２９２は、ＣＰＵ２１から転送されてきた、出力信号ＯＵＴの立ち下がり時におけるドライバ２３ａのドライブ能力の設定情報、を記憶する。ＤＡ変換回路２９４は、ドライブ能力記憶レジスタ２９２に記憶された設定情報を、アナログ信号に変換して設定信号Ｓ２として出力する。
【００７２】
ドライバ２３ａは、ＮＡＮＤ回路ＮＤ１と、ＮＯＲ回路ＮＲ１と、ボルテージフォロアＶＦ１，ＶＦ２と、定電流回路Ｉ１，Ｉ２と、抵抗素子Ｒ１，Ｒ２と、トランジスタＭＰ１と、トランジスタＭＮ１と、を備える。
【００７３】
ＮＡＮＤ回路ＮＤ１は、入力信号ＩＮと、イネーブル信号ＥＮと、の否定論理積を出力する。具体的には、ＮＡＮＤ回路ＮＤ１は、イネーブル信号ＥＮがインアクティブ（Ｌレベル）の場合、入力信号ＩＮのレベルに関わらずＨレベルの信号を出力し、イネーブル信号ＥＮがアクティブ（Ｈレベル）の場合、入力信号ＩＮのレベルを論理反転させて出力する。
【００７４】
ＮＯＲ回路ＮＲ１は、入力信号ＩＮと、イネーブル信号ＥＮの反転信号と、の否定論理和を出力する。具体的には、ＮＯＲ回路ＮＲ１は、イネーブル信号ＥＮがインアクティブ（Ｌレベル）の場合、入力信号ＩＮのレベルに関わらずＬレベルの信号を出力し、イネーブル信号ＥＮがアクティブ（Ｈレベル）の場合、入力信号ＩＮのレベルを論理反転させて出力する。
【００７５】
ボルテージフォロアＶＦ１は、ＮＡＮＤ回路ＮＤ１の出力がＬレベルの場合に駆動され、ドライブ能力設定回路２９ａから出力された設定信号Ｓ１を、電圧レベルを変えずに出力する。抵抗素子Ｒ１及び定電流回路Ｉ１は、電源電圧端子ＶＣＣと接地電圧端子ＧＮＤとの間に直列に設けられている。ここで、定電流回路Ｉ１には、ボルテージフォロアＶＦ１の出力電圧（即ち、設定信号Ｓ１の電圧）に応じた電流値の電流が流れる。それにより、抵抗素子Ｒ１及び定電流回路Ｉ１間のノードＮ１１の電圧が制御される。
【００７６】
ボルテージフォロアＶＦ２は、ＮＯＲ回路ＮＲ１の出力がＨレベルの場合に駆動され、ドライブ能力設定回路２９ａから出力された設定信号Ｓ２を、電圧レベルを変えずに出力する。定電流回路Ｉ２及び抵抗素子Ｒ２は、電源電圧端子ＶＣＣと接地電圧端子ＧＮＤとの間に直列に設けられている。ここで、定電流回路Ｉ２には、ボルテージフォロアＶＦ２の出力電圧（即ち、設定信号Ｓ２の電圧）に応じた電流値の電流が流れる。それにより、定電流回路Ｉ２及び抵抗素子Ｒ２間のノードＮ１２の電圧が制御される。
【００７７】
トランジスタＭＰ１では、ソースが電源電圧端子ＶＣＣに接続され、ドレインが出力ノードＮ１に接続され、ゲートにノードＮ１１の電圧が印加されている。トランジスタＭＮ１では、ソースが接地電圧端子ＧＮＤに接続され、ドレインが出力ノードＮ１に接続され、ゲートにノードＮ１２の電圧が印加されている。出力ノードＮ１の電圧は、出力信号ＯＵＴとして出力される。
【００７８】
例えば、イネーブル信号ＥＮがインアクティブ（Ｌレベル）の場合、ＮＡＮＤ回路ＮＤ１がＨレベル、ＮＯＲ回路ＮＲ１がＬレベルになるため、入力信号ＩＮのレベルに関わらず、トランジスタＭＰ１，ＭＮ１は何れもオフする。そのため、出力端子ＯＵＴはＨｉＺ状態となる。
【００７９】
それに対し、イネーブル信号ＥＮがアクティブ（Ｈレベル）の場合において、入力信号ＩＮが立ち上がると、設定信号Ｓ１に応じた駆動能力で出力信号ＯＵＴも立ち上がり、入力信号ＩＮが立ち下がると、設定信号Ｓ２に応じた駆動能力で出力信号ＯＵＴも立ち下がる。
【００８０】
具体的には、イネーブル信号ＥＮがアクティブ（Ｈレベル）の場合において、入力信号ＩＮが立ち上がると、ＮＡＮＤ回路ＮＤ１がＬレベルを示すため、ボルテージフォロアＶＦ１が駆動される。それにより、定電流源Ｉ１には、ボルテージフォロアＶＦ１の出力電圧（即ち、設定信号Ｓ１の電圧）に応じた電流値の電流が流れる。この電流は、定電流源Ｉ１に直列接続された抵抗素子Ｒ１にも流れる。そのため、トランジスタＭＰ１のゲート（ノードＮ１１）には、抵抗素子Ｒ１に流れる電流の電流値と、抵抗素子Ｒ１の抵抗値と、によって決まる電圧値の電圧が印加される。それにより、トランジスタＭＰ１は、設定信号Ｓ１に応じたオン抵抗でオンする。一方、このとき、ＮＯＲ回路ＮＲ１がＬレベルを示すため、ボルテージフォロアＶＦ２の駆動が停止される。それにより、定電流源Ｉ２には電流が流れなくなる。それにより、トランジスタＭＮ１のゲート電圧（ノードＮ１２の電圧）が接地電圧にプルダウンされるため、トランジスタＭＮ１はオフする。トランジスタＭＰ１が設定信号Ｓ１に応じたオン抵抗でオンし、トランジスタＭＮ１がオフするため、出力信号ＯＵＴは、設定信号Ｓ１に応じた駆動能力で立ち上がる。このようにして、出力信号ＯＵＴの立ち上がり時におけるドライバ１３ａの駆動能力が制御される。
【００８１】
また、イネーブル信号ＥＮがアクティブ（Ｈレベル）の場合において、入力信号ＩＮが立ち下がると、ＮＯＲ回路ＮＲ１がＨレベルを示すため、ボルテージフォロアＶＦ２が駆動される。それにより、定電流源Ｉ２には、ボルテージフォロアＶＦ２の出力電圧（即ち、設定信号Ｓ２の電圧）に応じた電流値の電流が流れる。この電流は、定電流源Ｉ２に直列接続された抵抗素子Ｒ２にも流れる。そのため、トランジスタＭＮ１のゲート（ノードＮ１２）には、抵抗素子Ｒ２に流れる電流の電流値と、抵抗素子Ｒ２の抵抗値と、によって決まる電圧値の電圧が印加される。それにより、トランジスタＭＮ１は、設定信号Ｓ２に応じたオン抵抗でオンする。一方、このとき、ＮＡＮＤ回路ＮＤ１がＨレベルを示すため、ボルテージフォロアＶＦ１の駆動が停止される。それにより、定電流源Ｉ１には電流が流れなくなる。それにより、トランジスタＭＰ１のゲート電圧（ノードＮ１１の電圧）が電源電圧にプルアップされるため、トランジスタＭＰ１はオフする。トランジスタＭＮ１が設定信号Ｓ２に応じたオン抵抗でオンし、トランジスタＭＰ１がオフするため、出力信号ＯＵＴは、設定信号Ｓ２に応じた駆動能力で立ち下がる。このようにして、出力信号ＯＵＴの立ち下がり時におけるドライバ１３ａの駆動能力が制御される。
【００８２】
（ドライブ能力設定回路２９及びドライバ２３の第２の具体的構成例）
図１０は、ドライブ能力設定回路２９及びドライバ２３の第２の具体的構成例を、それぞれ、ドライブ能力設定回路２９ｂ及びドライバ２３ｂとして示す図である。
【００８３】
ドライブ能力設定回路２９ｂは、ドライブ能力記憶レジスタ２９１，２９２を備える。ドライブ能力記憶レジスタ２９１は、ＣＰＵ２１から転送されてきた、出力信号ＯＵＴの立ち上がり時におけるドライバ２３ｂのドライブ能力の設定情報、を記憶するとともに、記憶したデジタルの設定情報を、設定信号Ｓ１として出力する。ドライブ能力記憶レジスタ２９２は、ＣＰＵ２１から転送されてきた、出力信号ＯＵＴの立ち下がり時におけるドライバ２３ｂのドライブ能力の設定情報、を記憶するとともに、記憶したデジタルの設定情報を、設定信号Ｓ２として出力する。
【００８４】
ドライバ２３ｂは、ＮＡＮＤ回路ＮＤ１と、ＡＮＤ回路ＡＤ１と、セレクタＳＬ１と、スイッチ素子ＳＷ１＿１〜ＳＷ１＿ｐと、トランジスタＭＰ１＿１〜ＭＰ１＿ｐと、スイッチ素子ＳＷ２＿１〜ＳＷ２＿ｑ（ｑは２以上の整数）と、トランジスタＭＮ１＿１〜ＭＮ１＿ｑと、を備える。
【００８５】
ＮＡＮＤ回路ＮＤ１は、入力信号ＩＮと、イネーブル信号ＥＮと、の否定論理積を出力する。具体的には、ＮＡＮＤ回路ＮＤ１は、イネーブル信号ＥＮがインアクティブ（Ｌレベル）の場合、入力信号ＩＮのレベルに関わらずＨレベルの信号を出力し、イネーブル信号ＥＮがアクティブ（Ｈレベル）の場合、入力信号ＩＮのレベルを論理反転させて出力する。
【００８６】
ＡＮＤ回路ＡＤ１は、入力信号ＩＮの反転信号と、イネーブル信号ＥＮと、の論理積を出力する。具体的には、ＡＮＤ回路ＡＤ１は、イネーブル信号ＥＮがインアクティブ（Ｌレベル）の場合、入力信号ＩＮのレベルに関わらずＬレベルの信号を出力し、イネーブル信号ＥＮがアクティブ（Ｈレベル）の場合、入力信号ＩＮのレベルを論理反転させて出力する。
【００８７】
セレクタＳＬ１は、出力信号ＯＵＴの立ち上がり波形を調整するモードか、出力信号ＯＵＴの立ち下がり波形を調整するモードかに応じて、ＮＡＮＤ回路ＮＤ１の出力、及び、ＡＮＤ回路ＡＤ１の出力の何れかを選択して出力する。具体的には、セレクタＳＬ１は、出力信号ＯＵＴの立ち上がり波形を調整するモードの場合、ＮＡＮＤ回路ＮＤ１の出力を選択して出力し、出力信号ＯＵＴの立ち下がり波形を調整するモードの場合、ＡＮＤ回路ＡＤ１の出力を選択して出力する。
【００８８】
スイッチ素子ＳＷ１＿１〜ＳＷ１＿ｐは、電源電圧端子ＶＣＣと、トランジスタＭＰ１＿１〜ＭＰ１＿ｐのそれぞれのソースと、の間に設けられ、設定信号Ｓ１の値に応じてオンオフの制御を行う。トランジスタＭＰ１＿１〜ＭＰ１＿ｐは、それぞれ、スイッチ素子ＳＷ１＿１〜ＳＷ１＿ｐと、出力ノードＮ１と、の間に設けられ、セレクタＳＬ１の出力に応じてオンオフの制御を行う。
【００８９】
スイッチ素子ＳＷ２＿１〜ＳＷ２＿ｑは、出力ノードＮ１と、トランジスタＭＮ１＿１〜ＭＮ１＿ｑのそれぞれのドレインと、の間に設けられ、設定信号Ｓ２の値に応じてオンオフの制御を行う。トランジスタＭＮ１＿１〜ＭＮ１＿ｑは、それぞれ、スイッチ素子ＳＷ２＿１〜ＳＷ２＿ｑと、接地電圧端子ＧＮＤと、の間に設けられ、セレクタＳＬ１の出力に応じてオンオフの制御を行う。
【００９０】
出力ノードＮ１の電圧は、出力信号ＯＵＴとして出力される。
【００９１】
ここで、ドライブ能力設定回路２９ｂからの設定信号Ｓ１の値に基づいて、スイッチ素子ＳＷ１＿１〜ＳＷ１＿ｐのうちオンするスイッチ素子の数が制御される。オンするスイッチ素子の数が多いほど、電源電圧端子ＶＣＣから出力端子ＯＵＴに向けて流れる電流の値は大きくなり、オンするスイッチ素子の数が少ないほど、電源電圧端子ＶＣＣから出力端子ＯＵＴに向けて流れる電流の値は小さくなる。つまり、出力信号ＯＵＴの立ち上がり時におけるドライバ２３ｂの駆動能力が制御される。
【００９２】
また、ドライブ能力設定回路２９ｂからの設定信号Ｓ２の値に基づいて、スイッチ素子ＳＷ２＿１〜ＳＷ２＿ｑのうちオンするスイッチ素子の数が制御される。オンするスイッチ素子の数が多いほど、出力端子ＯＵＴから接地電圧端子ＧＮＤに向けて流れる電流の値は大きくなり、オンするスイッチ素子の数が少ないほど、出力端子ＯＵＴから接地電圧端子ＧＮＤに向けて流れる電流の値は小さくなる。つまり、出力信号ＯＵＴの立ち下がり時におけるドライバ２３ｂの駆動能力が制御される。
【００９３】
半導体装置２のその他の構成については、半導体装置１の場合と同様であるため、その説明を省略する。
【００９４】
（半導体装置２の動作）
続いて、図１１を用いて、半導体装置２の動作について説明する。
図１１は、半導体装置２の動作を示すフローチャートである。なお、以下では、ｎ＝８である場合を例に説明する。即ち、以下では、半導体装置２に、８個のサンプルホールド回路２４＿１〜２４＿８及び８個のコンパレータ２５＿１〜２５＿８が設けられている場合を例に説明する。
【００９５】
まず、通常動作モード前の第１のテストモードにおいて、出力信号ＯＵＴの立ち上がり波形が理想的な波形となるように調整が行われる。なお、このとき、スイッチ素子ＳＷ２によってコンパレータ１５＿１の反転入力端子は接地電圧端子ＧＮＤに接続されている。
【００９６】
具体的には、図４に示すステップＳ１０１〜Ｓ１１０と同様の処理が行われる。ここでは、出力信号ＯＵＴの立ち上がり時におけるドライバ２３のドライブ能力を調整することによって、出力信号ＯＵＴの立ち上がり波形が理想的な波形となるように調整される。その後、ドライブ能力設定回路２９に格納されている設定情報のうち、出力信号ＯＵＴの立ち上がり時におけるドライバ２３のドライブ能力の設定情報（即ち、ドライブ能力記憶レジスタ２９１の値）、が固定される。
【００９７】
続いて、通常動作モード前の第２のテストモードにおいて、出力信号ＯＵＴの立ち下がり波形が理想的な波形となるように調整が行われる。なお、このとき、スイッチ素子ＳＷ２によってコンパレータ１５＿１の反転入力端子は電源電圧端子ＶＣＣに接続されている。以下、具体的に説明する。
【００９８】
まず、ＣＰＵ２１は、ドライバ２３のドライブ能力を設定するための設定情報の初期値“１０００００００”を、ドライブ能力設定回路２９に転送する（ステップＳ２０１）。ドライブ能力設定回路２９は、この設定情報の初期値を、設定信号Ｓ２として、ドライバ２３に対して出力する。それにより、ドライバ２３のドライブ能力は、最小ドライブ能力と最大ドライブ能力との間の中間値付近に設定される。
【００９９】
その後、信号生成回路２２は、ＣＰＵ２１からの指示を受けて、入力信号ＩＮをＨレベル（電源電圧ＶＣＣレベル）に初期化し（ステップＳ２０２）、その後、Ｌレベル（接地電圧ＧＮＤレベル）に遷移させる（ステップＳ２０３）。ただし、このとき、イネーブル信号ＥＮがインアクティブ（例えばＬレベル）であるため、ドライバ２３は入力信号ＩＮの駆動を行わない。
【０１００】
その後、サンプリング調整回路２８は、ＣＰＵ２１からの指示を受けて、イネーブル信号ＥＮをアクティブにする（ステップＳ２０４）。それにより、ドライバ２３は入力信号ＩＮの駆動を開始する。具体的には、ドライバ２３は、ＨレベルからＬレベルに遷移する（即ち、立ち下がる）入力信号ＩＮを駆動して、出力信号ＯＵＴとして出力する。
【０１０１】
サンプリング調整回路２８は、イネーブル信号ＥＮをアクティブにした後、サンプリング信号Ａ１〜Ａ８を異なるタイミングでアクティブにする。サンプルホールド回路２４＿１〜２４＿８は、それぞれ、サンプリング信号Ａ１〜Ａ８がアクティブになったタイミングで、ＨレベルからＬレベルに遷移中の出力信号ＯＵＴの電圧Ｖ１〜Ｖ８をサンプリングしてホールドする（ステップＳ２０５）。
【０１０２】
コンパレータ２５＿１〜２５＿８により構成された比較部は、サンプルホールド回路２４＿１〜２４＿８によってホールドされた電圧Ｖ１〜Ｖ８のうち遅いタイミングでサンプリングされた電圧ほど接地電圧ＧＮＤレベルに近い値を示すか否かを比較する（ステップＳ２０６）。
【０１０３】
具体的には、コンパレータ２５＿１は、サンプルホールド回路２４＿１によってホールドされた出力信号ＯＵＴの電圧Ｖ１と、電源電圧ＶＣＣと、を比較して、比較結果Ｈ１を出力する（ステップＳ２０６）。コンパレータ２５＿２〜２５＿８は、それぞれ、サンプルホールド回路２４＿２〜２４＿８によってホールドされた出力信号ＯＵＴの電圧Ｖ２〜Ｖ８と、それより１つ早いタイミングでサンプリングを行ったサンプルホールド回路２４＿１〜２４＿７によってホールドされた出力信号ＯＵＴの電圧Ｖ１〜Ｖ７と、を比較して、比較結果Ｈ２〜Ｈ８を出力する（ステップＳ２０６）。これらの比較結果Ｈ１〜Ｈ８は、何れも、比較結果格納部２６に格納される。
【０１０４】
サンプリング調整回路２８は、比較結果Ｈ１〜Ｈ８の全てが比較結果格納部２６に格納された後、トリガ信号ＴＲＧをアクティブにする。それにより、比較結果格納部２６に格納された比較結果Ｈ１〜Ｈ８は、一斉に読み出され、ＣＰＵ２１に転送される（ステップＳ２０７）。
【０１０５】
例えば、図１２に示すように、出力信号ＯＵＴが反射の影響を受けていない理想的な立ち下がり波形を示す場合、サンプリング信号Ａ１〜Ａ８がアクティブになるタイミングｔＡ１〜ｔＡ８における出力信号ＯＵＴの電圧Ｖ１〜Ｖ８の関係は、ＶＣＣ＞Ｖ１＞Ｖ２＞Ｖ３＞Ｖ４＞Ｖ５＞Ｖ６＞Ｖ７＞Ｖ８、となる。そのため、コンパレータ２５＿１〜２５＿８の比較結果Ｈ１〜Ｈ８は、何れも値（期待値）０、即ち、値“００００００００”を示す。
【０１０６】
上述のように、比較結果Ｈ１〜Ｈ８が値“００００００００”を示す場合（ステップＳ２０８のＹＥＳ）、出力信号ＯＵＴが反射の影響を受けていない理想的な立ち下がり波形を示すことから、ＣＰＵ２１は、ドライブ能力設定回路２９に格納されている設定情報のうち、出力信号ＯＵＴの立ち下がり時におけるドライバ２３のドライブ能力の設定情報（即ち、ドライブ能力記憶レジスタ２９２の値）、を固定させる。それにより、出力信号ＯＵＴの立ち下がり時におけるドライブ能力が確定する。
【０１０７】
それに対し、例えば、図１３に示すように、出力信号ＯＵＴが反射の影響を受けて立ち下がり方向とは逆方向に一時的に変動している場合、サンプリング信号Ａ１〜Ａ８がアクティブになるタイミングｔＡ１〜ｔＡ８における出力信号ＯＵＴの電圧Ｖ１〜Ｖ８の関係は、例えばＶＣＣ＞Ｖ１＞Ｖ２＞“Ｖ４”＞“Ｖ３”＞Ｖ５＞Ｖ６＞Ｖ７＞Ｖ８、となる。そのため、コンパレータ２５＿１〜２５＿８の比較結果Ｈ１〜Ｈ８のうち、比較結果Ｈ４が値１を示し、それ以外の比較結果Ｈ１〜Ｈ３，Ｈ５〜Ｈ８が何れも値０、即ち、値“０００１００００”を示す。
【０１０８】
上述のように、比較結果Ｈ１〜Ｈ８が値“００００００００”を示さない場合、換言すると、比較結果Ｈ１〜Ｈ８のうち何れか一つでも値１を示す場合（ステップＳ２０８のＮＯ）、出力信号ＯＵＴが反射の影響を受けて立ち下がり方向とは逆方向に一時的に変動することから、ＣＰＵ２１は、ドライブ能力設定回路２９に格納されている設定情報のうち、出力信号ＯＵＴの立ち下がり時におけるドライバ２３のドライブ能力の設定情報を更新する。具体的には、ＣＰＵ２１は、ドライブ能力設定回路２９に設けられたドライブ能力記憶レジスタ２９２の値を、例えば値“１０００００００”から値１だけカウントアップさせて値“１００００００１”に更新する。それにより、出力信号ＯＵＴの立ち下がり時におけるドライバ２３のドライブ能力は、直前に設定されていたドライブ能力よりも小さくなる。換言すると、出力信号ＯＵＴの立ち下がり時におけるドライバ２３の抵抗値は、直前に設定されていた抵抗値よりも大きくなる。
【０１０９】
ここで、前述のように、ドライバ２３の出力インピーダンスをＺｏ、配線Ｗ１等の寄生インピーダンスをＺとすると、式（１）の反射係数Γ＝（Ｚｏ−Ｚ）／（Ｚｏ＋Ｚ）が成り立つ。そのため、Ｚ＞Ｚｏの場合、即ち、ドライバ１３の出力インピーダンスＺｏが寄生インピーダンスＺよりも小さい場合、反射係数Γが負の値を示す。反射係数Γが負の値を示す場合、出力信号ＯＵＴが反射の影響を受けて立ち下がり方向とは逆方向に一時的に変動してしまうおそれがある。
【０１１０】
そこで、本実施の形態では、比較結果Ｈ１〜Ｈ８のうち何れか一つでも値１を示す場合、出力信号ＯＵＴの立ち下がり時におけるドライバ２３のドライブ能力を小さくして（即ち、出力信号ＯＵＴの立ち下がり時におけるドライバ２３の抵抗値を大きくして）、ドライバ２３の出力インピーダンスＺｏを寄生インピーダンスＺに近づける（理想的には同じ値にする）ことにより、反射係数Γをできるだけ小さくしている。
【０１１１】
出力信号ＯＵＴの立ち下がり時におけるドライバ２３のドライブ能力が再設定された後、比較結果Ｈ１〜Ｈ８が値“００００００００”を示すまで、ステップＳ２０１〜Ｓ２０９の処理が繰り返される。そして、比較結果Ｈ１〜Ｈ８が値“００００００００”を示した場合（ステップＳ２０８のＹＥＳ）、出力信号ＯＵＴが反射の影響を受けていない理想的な立ち下がり波形を示すことから、ＣＰＵ２１は、ドライブ能力設定回路２９に格納されている設定情報のうち、出力信号ＯＵＴの立ち下がり時におけるドライバ２３のドライブ能力の設定情報（即ち、ドライブ能力記憶レジスタ２９２の値）、を固定させる。それにより、出力信号ＯＵＴの立ち下がり時におけるドライブ能力が確定する。このとき、出力信号ＯＵＴの立ち下がり波形は、図１４に示すように理想的な波形に補正されている。
【０１１２】
このように、本実施の形態にかかる半導体装置２は、出力信号ＯＵＴが反射の影響を受けて立ち上がり方向とは逆方向に一時的に変動した場合のみならず、出力信号ＯＵＴが反射の影響を受けて立ち下がり方向とは逆方向に一時的に変動した場合にも、ドライバ２３のドライブ能力を小さくして、ドライバ２３の出力インピーダンスを寄生インピーダンスに近づけることにより、反射係数Γをできるだけ小さくしている。それにより、本実施の形態にかかる半導体装置２は、寄生インピーダンスに起因する反射の影響を抑制することができるため、精度の高い出力信号ＯＵＴを生成することができる。その結果、例えば顧客基板上においてＥＭＣやデータ誤送信を抑制することができる。
【０１１３】
本実施の形態では、出力信号ＯＵＴの立ち上がり時における比較結果Ｈ１〜Ｈ８のうち何れか一つでも値０を示す場合に、ドライバ２３のドライブ能力が変更される場合を例に説明したが、これに限られない。出力信号ＯＵＴの立ち上がり時における比較結果Ｈ１〜Ｈ８のうち予め決められた複数個以上が値０を示す場合にのみ、ドライバ２３のドライブ能力が変更されてもよい。同様に、出力信号ＯＵＴの立ち下がり時における比較結果Ｈ１〜Ｈ８のうち何れか一つでも値１を示す場合に、ドライバ２３のドライブ能力が変更される場合を例に説明したが、これに限られない。出力信号ＯＵＴの立ち下がり時における比較結果Ｈ１〜Ｈ８のうち予め決められた複数個以上が値１を示す場合にのみ、ドライバ２３のドライブ能力が変更されてもよい。
【０１１４】
また、本実施の形態では、出力信号ＯＵＴの立ち上がり時における比較結果Ｈ１〜Ｈ８のうち何れか一つでも値０を示す場合には、値０を示す比較結果の数に関わらず、一定の変更度合いでドライバ２３のドライブ能力が変更される場合を例に説明したが、これに限られない。例えば、値０を示す比較結果の数に応じた変更度合いで、ドライバ２３のドライブ能力が変更されてもよい。同様に、本実施の形態では、出力信号ＯＵＴの立ち下がり時における比較結果Ｈ１〜Ｈ８のうち何れか一つでも値１を示す場合には、値１を示す比較結果の数に関わらず、一定の変更度合いでドライバ２３のドライブ能力が変更される場合を例に説明したが、これに限られない。例えば、値１を示す比較結果の数に応じた変更度合いで、ドライバ２３のドライブ能力が変更されてもよい。
【０１１５】
さらに、本実施の形態では、出力信号ＯＵＴの立ち上がり波形の調整時において、入力信号ＩＮをＬレベルからＨレベルに遷移させた後に、イネーブル信号ＥＮをアクティブにする場合を例に説明したが、これに限られない。入力信号ＩＮをＬレベルからＨレベルに遷移させる前に、イネーブル信号ＥＮをアクティブにする構成であってもよい。同様に、出力信号ＯＵＴの立ち下がり波形の調整時において、入力信号ＩＮをＨレベルからＬレベルに遷移させた後に、イネーブル信号ＥＮをアクティブにする場合を例に説明したが、これに限られない。入力信号ＩＮをＨレベルからＬレベルに遷移させる前に、イネーブル信号ＥＮをアクティブにする構成であってもよい。
【０１１６】
＜実施の形態３＞
図１５は、実施の形態３にかかる半導体装置３が搭載された半導体システムＳＹＳ３の構成例を示す図である。半導体システムＳＹＳ３は、例えばマイクロコンピュータである半導体装置３と、半導体装置３の出力信号を受ける受信装置１００と、を備える。半導体装置３と受信装置１００とは、配線Ｗ１を介して接続されている。
【０１１７】
半導体装置３は、ＣＰＵ３１と、信号生成回路３２と、ドライバ３３と、サンプルホールド回路３４＿１〜３４＿ｎと、コンパレータ３５＿１〜３５＿ｎと、比較結果格納部３６と、ＰＬＬ回路３７と、サンプリング調整回路３８と、サンプリング数調整回路３８１と、ドライブ能力設定回路３９と、バスＢ３と、を備える。本実施の形態では、ｎ＝８である場合を例に説明する。即ち、本実施の形態では、半導体装置３に、８個のサンプルホールド回路３４＿１〜３４＿８及び８個のコンパレータ３５＿１〜３５＿８が設けられている場合を例に説明する。
【０１１８】
ここで、ＣＰＵ３１、信号生成回路３２、ドライバ３３、サンプルホールド回路３４＿１〜３４＿８、コンパレータ３５＿１〜３５＿８、比較結果格納部３６、ＰＬＬ回路３７、サンプリング調整回路３８、ドライブ能力設定回路３９、及び、バスＢ３は、それぞれ、ＣＰＵ１１、信号生成回路１２、ドライバ１３、サンプルホールド回路１４＿１〜１４＿８、コンパレータ１５＿１〜１５＿８、比較結果格納部１６、ＰＬＬ回路１７、サンプリング調整回路１８、ドライブ能力設定回路１９、及び、バスＢ１に対応する。即ち、半導体装置３は、半導体装置１と比較して、サンプリング数調整回路３８１をさらに備えている。
【０１１９】
サンプリング数調整回路３８１は、８つのサンプリング信号Ａ１〜Ａ８の中から、ＣＰＵ３１からの指示により指定された数のサンプリング信号を出力する。サンプリング数調整回路３８１から出力されるサンプリング信号の数は、例えば、出力信号ＯＵＴの立ち上がりに要する時間に基づいて決定される。具体的には、サンプリング信号の数は、出力信号ＯＵＴの立ち上がりに要する時間が短いほど少なくなり、出力信号ＯＵＴの立ち上がりに要する時間が長いほど多くなる。
【０１２０】
なお、出力信号ＯＵＴの立ち上がりに要する時間とは、出力信号ＯＵＴがＬレベルからＨレベルに向けて変化を開始してからＨレベルに達するまでの時間であって、例えば、イネーブル信号ＥＮがアクティブになってから、出力信号ＯＵＴが電源電圧ＶＣＣ又はその付近の所定電圧に達するまで、の時間を測定することによって求めることができる。
【０１２１】
なお、出力信号ＯＵＴの立ち上がり時間を測定する機能は、ＣＰＵ３１が有していてもよいし、サンプリング数調整回路３８１が有していてもよい。あるいは、出力信号ＯＵＴの立ち上がり時間を測定する測定回路が別途設けられていてもよい。
【０１２２】
例えば、図１６に示すように、出力信号ＯＵＴの立ち上がりに要する時間が短い場合において、サンプリング数が多すぎる場合、出力信号ＯＵＴの立ち上がり後の波形が意図せず検出されてしまう可能性がある。そこで、半導体装置３は、サンプリング数調整回路３８１を用いることにより、使用するサンプリング信号の数を制限する。図１６の例では、半導体装置３は、サンプリング数調整回路３８１を用いることにより、使用するサンプリング信号を５つのサンプリング信号Ａ１〜Ａ５のみに制限している。なお、このとき使用されないサンプリング信号Ａ６〜Ａ８に対応する比較結果Ｈ６〜Ｈ８は、何れも、出力信号ＯＵＴが理想的に立ち上がっていることを示す値である値１に固定される。
【０１２３】
また、図１７に示すように、出力信号ＯＵＴの立ち上がりに要する時間が長い場合において、サンプリング数が少なすぎる場合、出力信号ＯＵＴの立ち上がりが完了する前にサンプリングが終了してしまい、出力信号ＯＵＴの立ち上がり波形の後半部分が十分に検出されない可能性がある。そこで、半導体装置３は、サンプリング数調整回路３８１を用いることにより、使用するサンプリング信号の数を調整する。図１７の例では、半導体装置３は、サンプリング数調整回路３８１を用いることにより、使用するサンプリング信号を８つのサンプリング信号Ａ１〜Ａ８に調整している。
【０１２４】
このように、本実施の形態にかかる半導体装置３は、サンプリング数調整回路３８１を用いることにより、出力信号ＯＵＴの立ち上がりに要する時間に対応する数のサンプリング信号を出力している。それにより、本実施の形態にかかる半導体装置３は、出力信号ＯＵＴの立ち上がり波形の誤検出や未検出を減らすことができるため、出力信号ＯＵＴの立ち上がり波形を精度良く検出することができる。その結果、本実施の形態にかかる半導体装置３は、寄生インピーダンスに起因する反射の影響を抑制して精度の高い出力信号を生成することができる。それにより、例えば顧客基板上においてＥＭＣやデータ誤送信を抑制することができる。
【０１２５】
本実施の形態では、サンプリング数調整回路３８１が、出力信号ＯＵＴの立ち上がり波形の調整時にサンプリング信号の数を調整する場合を例に説明したが、これに限られない。サンプリング数調整回路３８１は、出力信号ＯＵＴの立ち下がり波形の調整時にサンプリング信号の数を調整してもよい。
【０１２６】
＜実施の形態４＞
図１８は、実施の形態４にかかる半導体装置４が搭載された半導体システムＳＹＳ４の構成例を示す図である。半導体システムＳＹＳ４は、例えばマイクロコンピュータである半導体装置４と、半導体装置４の出力信号を受ける受信装置１００と、を備える。半導体装置４と受信装置１００とは、配線Ｗ１を介して接続されている。
【０１２７】
半導体装置４は、ＣＰＵ４１と、信号生成回路４２と、ドライバ４３と、サンプルホールド回路４４＿１〜４４＿ｎと、コンパレータ４５＿１〜４５＿ｎと、比較結果格納部４６と、ＰＬＬ回路４７と、サンプリング調整回路４８と、サンプリング間隔調整回路４８１と、ドライブ能力設定回路４９と、バスＢ４と、を備える。本実施の形態では、ｎ＝８である場合を例に説明する。即ち、本実施の形態では、半導体装置４に、８個のサンプルホールド回路４４＿１〜４４＿８及び８個のコンパレータ４５＿１〜４５＿８が設けられている場合を例に説明する。
【０１２８】
ここで、ＣＰＵ４１、信号生成回路４２、ドライバ４３、サンプルホールド回路４４＿１〜４４＿８、コンパレータ４５＿１〜４５＿８、比較結果格納部４６、ＰＬＬ回路４７、サンプリング調整回路４８、ドライブ能力設定回路４９、及び、バスＢ４は、それぞれ、ＣＰＵ１１、信号生成回路１２、ドライバ１３、サンプルホールド回路１４＿１〜１４＿８、コンパレータ１５＿１〜１５＿８、比較結果格納部１６、ＰＬＬ回路１７、サンプリング調整回路１８、ドライブ能力設定回路１９、及び、バスＢ１に対応する。即ち、半導体装置４は、半導体装置１と比較して、サンプリング間隔調整回路４８１をさらに備えている。
【０１２９】
サンプリング間隔調整回路４８１は、例えばＣＰＵ４１からの指示に基づいて、サンプリング信号Ａ１〜Ａ８がアクティブになる間隔を調整する。サンプリング信号Ａ１〜Ａ８がアクティブになる間隔は、例えば、出力信号ＯＵＴの立ち上がりに要する時間に基づいて決定される。具体的には、当該間隔は、出力信号ＯＵＴの立ち上がりに要する時間が短いほど小さくなり、出力信号ＯＵＴの立ち上がりに要する時間が長いほど大きくなる。
【０１３０】
なお、出力信号ＯＵＴの立ち上がりに要する時間とは、出力信号ＯＵＴがＬレベルからＨレベルに向けて変化を開始してからＨレベルに達するまでの時間であって、例えば、イネーブル信号ＥＮがアクティブになってから、出力信号ＯＵＴが電源電圧ＶＣＣ又はその付近の所定電圧に達するまで、の時間を測定することによって求めることができる。
【０１３１】
なお、出力信号ＯＵＴの立ち上がり時間を測定する機能は、ＣＰＵ４１が有していてもよいし、サンプリング間隔調整回路４８１が有していてもよい。あるいは、出力信号ＯＵＴの立ち上がり時間を測定する測定回路が別途設けられていてもよい。
【０１３２】
例えば、図１９に示すように、出力信号ＯＵＴの立ち上がりに要する時間が短い場合において、サンプリング間隔が狭すぎる場合、出力信号ＯＵＴの立ち上がり後の波形が意図せず検出されてしまう可能性がある。そこで、半導体装置４は、サンプリング間隔調整回路４８１を用いることにより、サンプリング信号Ａ１〜Ａ８がアクティブになる間隔を広くしている。
【０１３３】
また、図２０に示すように、出力信号ＯＵＴの立ち上がりに要する時間が長い場合において、サンプリング間隔が広すぎる場合、出力信号ＯＵＴの立ち上がりが完了する前にサンプリングが終了してしまい、出力信号ＯＵＴの立ち上がり波形の後半部分が十分に検出されない可能性がある。そこで、半導体装置４は、サンプリング間隔調整回路４８１を用いることにより、サンプリング信号Ａ１〜Ａ８がアクティブになる間隔を狭くしている。
【０１３４】
このように、本実施の形態にかかる半導体装置４は、サンプリング間隔調整回路４８１を用いることにより、出力信号ＯＵＴの立ち上がりに要する時間に応じてサンプリング信号Ａ１〜Ａｎがアクティブになる間隔を調整している。それにより、本実施の形態にかかる半導体装置４は、出力信号ＯＵＴの立ち上がり波形の誤検出や未検出を減らすことができるため、出力信号ＯＵＴの立ち上がり波形を精度良く検出することができる。その結果、本実施の形態にかかる半導体装置４は、寄生インピーダンスに起因する反射の影響を抑制して精度の高い出力信号を生成することができる。それにより、例えば顧客基板上においてＥＭＣやデータ誤送信を抑制することができる。
【０１３５】
本実施の形態では、サンプリング間隔調整回路４８１が、出力信号ＯＵＴの立ち上がり波形の調整時に、サンプリング信号Ａ１〜Ａｎがアクティブになる間隔を調整する場合を例に説明したが、これに限られない。サンプリング間隔調整回路４８１は、出力信号ＯＵＴの立ち下がり波形の調整時に、サンプリング信号Ａ１〜Ａｎがアクティブになる間隔を調整してもよい。
【０１３６】
また、サンプリング数調整回路３８１と、サンプリング間隔調整回路４８１と、は組み合わせて用いられてもよい。
【０１３７】
＜実施の形態５＞
図２１は、実施の形態４にかかる半導体装置５が搭載された半導体システムＳＹＳ５の構成例を示す図である。半導体システムＳＹＳ５は、例えばマイクロコンピュータである半導体装置５と、半導体装置５の出力信号を受ける受信装置１００と、を備える。半導体装置５と受信装置１００とは、配線Ｗ１を介して接続されている。
【０１３８】
半導体装置５は、ＣＰＵ５１と、信号生成回路５２と、ドライバ５３と、サンプルホールド回路５４＿１〜５４＿ｎと、コンパレータ５５＿１〜５５＿ｎと、比較結果格納部５６と、ＰＬＬ回路５７と、サンプリング調整回路５８と、ドライブ能力設定回路５９と、バスＢ５と、を備える。本実施の形態では、ｎ＝８である場合を例に説明する。即ち、本実施の形態では、半導体装置５に、８個のサンプルホールド回路５４＿１〜５４＿８及び８個のコンパレータ５５＿１〜５５＿８が設けられている場合を例に説明する。
【０１３９】
ここで、ＣＰＵ５１、信号生成回路５２、ドライバ５３、サンプルホールド回路５４＿１〜５４＿８、コンパレータ５５＿１〜５５＿８、比較結果格納部５６、ＰＬＬ回路５７、サンプリング調整回路５８、ドライブ能力設定回路５９、及び、バスＢ５は、それぞれ、ＣＰＵ１１、信号生成回路１２、ドライバ１３、サンプルホールド回路１４＿１〜１４＿８、コンパレータ１５＿１〜１５＿８、比較結果格納部１６、ＰＬＬ回路１７、サンプリング調整回路１８、ドライブ能力設定回路１９、及び、バスＢ１に対応する。
【０１４０】
半導体装置５は、半導体装置１と比較して、外部出力端子Ｔ１に加えて、外部入力端子Ｔ２をさらに備える。
【０１４１】
ドライバ５３は、入力信号ＩＮをドライブして出力信号ＯＵＴとして出力する。出力信号ＯＵＴは、外部出力端子Ｔ１を介して半導体装置５の外部に出力される。そして、半導体装置５の外部に出力された出力信号ＯＵＴは、配線Ｗ１を介して、受信装置１００に供給される。
【０１４２】
ここで、例えば半導体装置１は、配線Ｗ１の配線抵抗が大きい場合、受信装置１００近傍での反射を観測しにくい可能性がある。そこで、半導体装置５は、受信装置１００の入力端子に供給される出力信号ＯＵＴを、配線Ｗ１を介さずに、外部入力端子Ｔ２を介して半導体装置５の内部にフィードバックさせる。そして、半導体装置５の内部にフィードバックされた出力信号ＯＵＴは、サンプルホールド回路５４＿１〜５４＿８に入力される。
【０１４３】
半導体装置５のその他の構成については、半導体装置１の場合と同様であるため、その説明を省略する。
【０１４４】
このように、本実施の形態にかかる半導体装置５は、受信装置１００に供給される出力信号ＯＵＴを、配線Ｗ１の経路とは異なる経路を介してフィードバックさせる。それにより、本実施の形態にかかる半導体装置５は、配線Ｗ１の配線抵抗が大きい場合でも、出力信号ＯＵＴが受信装置１００から受ける反射の影響を精度良く抑制することができる。なお、本実施の形態にかかる半導体装置５のフィードバック構成は、半導体装置１のみならず、半導体装置２〜４にも採用されることができる。
【０１４５】
以上のように、上記実施の形態１〜５に係る半導体装置１〜５は、ドライバの出力信号ＯＵＴが反射の影響を受けて遷移方向とは逆方向に一時的に変動した場合、当該ドライバのドライブ能力を小さくして、当該ドライバの出力インピーダンスを寄生インピーダンスに近づけることにより、反射係数Γをできるだけ小さくしている。それにより、上記実施の形態にかかる半導体装置１〜５は、寄生インピーダンスに起因する反射の影響を抑制することができるため、精度の高い出力信号ＯＵＴを生成することができる。その結果、例えば顧客基板上においてＥＭＣやデータ誤送信を抑制することができる。
【０１４６】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
【０１４７】
例えば、上記の実施の形態に係る半導体装置では、半導体基板、半導体層、拡散層（拡散領域）などの導電型（ｐ型もしくはｎ型）を反転させた構成としてもよい。そのため、ｎ型、及びｐ型の一方の導電型を第１の導電型とし、他方の導電型を第２の導電型とした場合、第１の導電型をｐ型、第２の導電型をｎ型とすることもできるし、反対に第１の導電型をｎ型、第２の導電型をｐ型とすることもできる。
【符号の説明】
【０１４８】
１〜５  半導体装置
１１  ＣＰＵ
１２  信号生成回路
１３  ドライバ
１３ａ，１３ｂ  ドライバ
１４＿１〜１４＿８  サンプルホールド回路
１５＿１〜１５＿８  コンパレータ
１６  比較結果格納部
１７  ＰＬＬ回路
１８  サンプリング調整回路
１９  ドライブ能力設定回路
１９ａ，１９ｂ  ドライブ能力設定回路
２１  ＣＰＵ
２２  信号生成回路
２３，２３ａ，２３ｂ  ドライバ
２４＿１〜２４＿８  サンプルホールド回路
２５＿１〜２５＿８  コンパレータ
２６  比較結果格納部
２７  ＰＬＬ回路
２８  サンプリング調整回路
２９，２９ａ，２９ｂ  ドライブ能力設定回路
３１  ＣＰＵ
３２  信号生成回路
３３  ドライバ
３４＿１〜３４＿８  サンプルホールド回路
３５＿１〜３５＿８  コンパレータ
３６  比較結果格納部
３７  ＰＬＬ回路
３８  サンプリング調整回路
３９  ドライブ能力設定回路
４１  ＣＰＵ
４２  信号生成回路
４３  ドライバ
４４＿１〜４４＿８  サンプルホールド回路
４５＿１〜４５＿８  コンパレータ
４６  比較結果格納部
４７  ＰＬＬ回路
４８  サンプリング調整回路
４９  ドライブ能力設定回路
５１  ＣＰＵ
５２  信号生成回路
５３  ドライバ
５４＿１〜５４＿８  サンプルホールド回路
５５＿１〜５５＿８  コンパレータ
５６  比較結果格納部
５７  ＰＬＬ回路
５８  サンプリング調整回路
５９  ドライブ能力設定回路
１００  受信装置
１９１  ドライブ能力記憶レジスタ
１９３  ＤＡ変換回路
２９１，２９２  ドライブ能力記憶レジスタ
２９３，２９４  ＤＡ変換回路
３８１  サンプリング数調整回路
４８１  サンプリング間隔調整回路
ＡＤ１  論理積回路（ＡＮＤ回路）
ＶＦ１，ＶＦ２  ボルテージフォロア
Ｂ１〜Ｂ５  バス
Ｉ１，Ｉ２  定電流回路
ＭＮ１  ＮチャネルＭＯＳトランジスタ
ＭＮ１＿１〜ＭＮ１＿ｑ  ＮチャネルＭＯＳトランジスタ
ＭＰ１  ＰチャネルＭＯＳトランジスタ
ＭＰ１＿１〜ＭＰ１＿ｐ  ＰチャネルＭＯＳトランジスタ
ＮＤ１  否定論理積回路（ＮＡＮＤ回路）
ＮＲ１  否定論理和回路（ＮＯＲ回路）
Ｒ１，Ｒ２  抵抗素子
ＳＬ１  セレクタ
ＳＷ１＿１〜ＳＷ１＿ｐ  スイッチ素子
ＳＷ２＿１〜ＳＷ２＿ｑ  スイッチ素子
ＳＷ２  スイッチ素子
ＳＹＳ１〜ＳＹＳ５  半導体システム
Ｔ１  外部出力端子
Ｔ２  外部入力端子
【図１】
2019047330.tif 000003
【図２】
2019047330.tif 000004
【図３】
2019047330.tif 000005
【図４】
2019047330.tif 000006
【図５】
2019047330.tif 000007
【図６】
2019047330.tif 000008
【図７】
2019047330.tif 000009
【図８】
2019047330.tif 000010
【図９】
2019047330.tif 000011
【図１０】
2019047330.tif 000012
【図１１】
2019047330.tif 000013
【図１２】
2019047330.tif 000014
【図１３】
2019047330.tif 000015
【図１４】
2019047330.tif 000016
【図１５】
2019047330.tif 000017
【図１６】
2019047330.tif 000018
【図１７】
2019047330.tif 000019
【図１８】
2019047330.tif 000020
【図１９】
2019047330.tif 000021
【図２０】
2019047330.tif 000022
【図２１】
2019047330.tif 000023