(57)【要約】【課題】同時動作が頻繁に行われる環境下でも適切に動作可能な出力バッファの駆動能力を選択することができる駆動能力制御回路を提供する。【解決手段】駆動能力制御回路は、出力バッファの駆動能力を設定する駆動能力設定回路と、出力バッファを同時動作させるパターンデータを保持するパターンデータ保持回路と、パターンデータを、ライトデータとして、設定された駆動能力で出力バッファから出力して第２の半導体集積回路へライトし、第２の半導体集積回路へライトされたライトデータを、リードデータとして、第２の半導体集積回路からリードするように制御するメモリ制御回路と、ライトデータとリードデータとを比較し、両者が一致した場合に、設定された駆動能力を選択候補として記憶するデータ比較回路と、記憶された選択候補の駆動能力の中から、あらかじめ設定された条件に対応する駆動能力を選択する駆動能力選択回路と、駆動能力制御回路の全体の動作を制御する全体制御回路とを備える。【選択図】図２
2015156549.tif 000002
【特許請求の範囲】
【請求項１】
記憶回路を備える第２の半導体集積回路にデータをライトする場合に同時動作する２以上の出力バッファを備える第１の半導体集積回路において、前記出力バッファの駆動能力を制御する駆動能力制御回路であって、
前記出力バッファの駆動能力を設定する駆動能力設定回路と、
前記出力バッファを同時動作させるパターンデータを保持するパターンデータ保持回路と、
前記パターンデータを、ライトデータとして、前記設定された駆動能力で前記出力バッファから出力して前記第２の半導体集積回路の記憶回路へライトし、前記第２の半導体集積回路の記憶回路へライトされたライトデータを、リードデータとして、前記第２の半導体集積回路の記憶回路からリードするように、前記第２の半導体集積回路の動作を制御するメモリ制御回路と、
前記ライトデータと前記リードデータとを比較し、前記ライトデータと前記リードデータとが一致した場合に、前記設定された駆動能力を選択候補として記憶するデータ比較回路と、
前記記憶された選択候補の駆動能力の中から、あらかじめ設定された条件に対応する駆動能力を選択する駆動能力選択回路と、
前記駆動能力制御回路の全体の動作を制御する全体制御回路とを備え、
前記全体制御回路は、前記出力バッファの駆動能力を、前記出力バッファに設定可能な駆動能力の最小値から最大値まで１段階ずつ強く、または、最大値から最小値まで１段階ずつ弱く変更して設定した場合に前記記憶された選択候補の駆動能力の中から、前記あらかじめ設定された条件に対応する駆動能力を選択し、前記選択された駆動能力を前記出力バッファに設定するように制御するものであることを特徴とする駆動能力制御回路。
【請求項２】
記憶回路および前記記憶回路に記憶されたデータを出力する場合に同時動作する２以上の出力バッファを備える第２の半導体集積回路の記憶回路から前記データをリードする第１の半導体集積回路において、前記出力バッファの駆動能力を制御する駆動能力制御回路であって、
前記第２の半導体集積回路は、
前記出力バッファの駆動能力を設定する駆動能力設定回路を備え、
前記第１の半導体集積回路は、
前記出力バッファを同時動作させるパターンデータを保持するパターンデータ保持回路と、
前記パターンデータを、ライトデータとして、前記第２の半導体集積回路の記憶回路へライトし、前記設定された駆動能力で前記出力バッファから出力される、前記第２の半導体集積回路の記憶回路へライトされたライトデータを、リードデータとして、前記第２の半導体集積回路の記憶回路からリードするように、前記第２の半導体集積回路の動作を制御するメモリ制御回路と、
前記ライトデータと前記リードデータとを比較し、前記ライトデータと前記リードデータとが一致した場合に、前記設定された駆動能力を選択候補として記憶する比較回路と、
前記記憶された選択候補の駆動能力の中から、あらかじめ設定された条件に対応する駆動能力を選択する駆動能力選択回路と、
前記駆動能力制御回路の全体の動作を制御する全体制御回路とを備え、
前記全体制御回路は、前記パターンデータを、前記ライトデータとして、前記第２の半導体集積回路の記憶回路へライトし、前記出力バッファの駆動能力を、前記出力バッファに設定可能な駆動能力の最小値から最大値まで１段階ずつ強く、または、最大値から最小値まで１段階ずつ弱く変更して設定した場合に前記記憶された選択候補の駆動能力の中から、前記あらかじめ設定された条件に対応する駆動能力を選択し、前記選択された駆動能力を前記出力バッファに設定するように制御するものであることを特徴とする駆動能力制御回路。
【請求項３】
記憶回路を備える第２の半導体集積回路にデータをライトする場合に同時動作する２以上の出力バッファを備える第１の半導体集積回路において、前記出力バッファの駆動能力を制御する駆動能力制御方法であって、
前記出力バッファの駆動能力を、前記出力バッファに設定可能な駆動能力の最小値または最大値に設定する第１ステップと、
前記出力バッファを同時動作させるパターンデータを、ライトデータとして、前記設定された駆動能力で前記出力バッファから出力して前記第２の半導体集積回路の記憶回路へライトする第２ステップと、
前記第２の半導体集積回路の記憶回路へライトされたライトデータを、リードデータとして、前記第２の半導体集積回路の記憶回路からリードする第３ステップと、
前記ライトデータと前記リードデータとを比較し、前記ライトデータと前記リードデータとが一致した場合に、前記設定された駆動能力を選択候補として記憶する第４ステップと、
前記出力バッファの駆動能力を１段階強くまたは弱く変更することができるかできないかを判定する第５ステップと、
前記第５ステップにおいて、前記出力バッファの駆動能力を１段階強くまたは弱く変更することができる場合に、前記出力バッファの駆動能力を１段階強くまたは弱く変更して設定し、前記第２〜第５ステップを繰り返し行う第６ステップと、
前記第５ステップにおいて、前記出力バッファの駆動能力を１段階強くまたは弱く変更することができない場合に、前記記憶された選択候補の駆動能力の中から、あらかじめ設定された条件に対応する駆動能力を選択する第７ステップと、
前記出力バッファの駆動能力を、前記選択された駆動能力に設定する第８ステップとを含むことを特徴とする駆動能力制御方法。
【請求項４】
記憶回路および前記記憶回路に記憶されたデータを出力する場合に同時動作する２以上の出力バッファを備える第２の半導体集積回路の記憶回路から前記データをリードする第１の半導体集積回路において、前記出力バッファの駆動能力を制御する駆動能力制御方法であって、
前記出力バッファを同時動作させるパターンデータを、ライトデータとして、前記第２の半導体集積回路の記憶回路へライトする第１ステップと、
前記出力バッファの駆動能力を、前記出力バッファに設定可能な駆動能力の最小値または最大値に設定する第２ステップと、
前記設定された駆動能力で前記出力バッファから出力される、前記第２の半導体集積回路の記憶回路へライトされたライトデータを、リードデータとして、前記第２の半導体集積回路の記憶回路からリードする第３ステップと、
前記ライトデータと前記リードデータとを比較し、前記ライトデータと前記リードデータとが一致した場合に、前記設定された駆動能力を選択候補として記憶する第４ステップと、
前記出力バッファの駆動能力を１段階強くまたは弱く変更することができるかできないかを判定する第５ステップと、
前記第５ステップにおいて、前記出力バッファの駆動能力を１段階強くまたは弱く変更することができる場合に、前記出力バッファの駆動能力を１段階強くまたは弱く変更して設定し、前記第３〜第５ステップを繰り返し行う第６ステップと、
前記第５ステップにおいて、前記出力バッファの駆動能力を１段階強くまたは弱く変更することができない場合に、前記記憶された選択候補の駆動能力の中から、あらかじめ設定された条件に対応する駆動能力を選択する第７ステップと、
前記出力バッファの駆動能力を、前記選択された駆動能力に設定する第８ステップとを含むことを特徴とする駆動能力制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路が備える、半導体集積回路から半導体メモリにデータをライトする場合に同時動作する２以上の出力バッファの駆動能力（ドライバビリティ）を制御する、もしくは、半導体メモリが備える、半導体メモリから半導体集積回路にデータをリードする場合に同時動作する２以上の出力バッファの駆動能力を制御する駆動能力制御回路および駆動能力制御方法に関するものである。
【背景技術】
【０００２】
半導体集積回路の出力バッファの駆動能力を制御する装置に関する先行技術文献として、特許文献１，２がある。
【０００３】
特許文献１には、出力バッファ部の出力信号の周波数をモニタし、そのモニタ結果に応じて能力選択信号を生成し、生成された能力選択信号により、異なる駆動能力の複数の出力回路を適宜選択し、選択された出力回路により、半導体装置から供給される入力信号を所定の駆動能力で駆動することにより、１個の半導体装置で、各種の駆動周波数に応じた最適な出力バッファ駆動能力を自動的に得るものが記載されている。
【０００４】
特許文献２には、バッファ回路の入出力信号間の位相を検出し、その位相差に相当する電圧によって、バッファ回路の駆動電流を制御するための制御信号を発生し、発生された制御信号によって、負荷に最適な駆動電流を供給するように、つまり、入出力間の遅延時間が長くなると駆動電流が増加し、短くなると駆動電流が減少するようにバッファ回路を制御することが記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平６−１３２８０７号公報
【特許文献２】特開平８−３３５８３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１，２のように、従来の技術では、出力バッファ単体の動作を基に駆動能力が制御されており、複数の出力バッファが同時動作する場合に適した駆動能力については考慮されていなかった。
【０００７】
本発明の目的は、前記従来技術の問題点を解消し、同時動作が頻繁に行われる環境下でも適切に動作可能な出力バッファの駆動能力を選択することができる駆動能力制御回路および駆動能力制御方法を提供することにある。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明は、記憶回路を備える第２の半導体集積回路にデータをライトする場合に同時動作する２以上の出力バッファを備える第１の半導体集積回路において、前記出力バッファの駆動能力を制御する駆動能力制御回路であって、
前記出力バッファの駆動能力を設定する駆動能力設定回路と、
前記出力バッファを同時動作させるパターンデータを保持するパターンデータ保持回路と、
前記パターンデータを、ライトデータとして、前記設定された駆動能力で前記出力バッファから出力して前記第２の半導体集積回路の記憶回路へライトし、前記第２の半導体集積回路の記憶回路へライトされたライトデータを、リードデータとして、前記第２の半導体集積回路の記憶回路からリードするように、前記第２の半導体集積回路の動作を制御するメモリ制御回路と、
前記ライトデータと前記リードデータとを比較し、前記ライトデータと前記リードデータとが一致した場合に、前記設定された駆動能力を選択候補として記憶するデータ比較回路と、
前記記憶された選択候補の駆動能力の中から、あらかじめ設定された条件に対応する駆動能力を選択する駆動能力選択回路と、
前記駆動能力制御回路の全体の動作を制御する全体制御回路とを備え、
前記全体制御回路は、前記出力バッファの駆動能力を、前記出力バッファに設定可能な駆動能力の最小値から最大値まで１段階ずつ強く、または、最大値から最小値まで１段階ずつ弱く変更して設定した場合に前記記憶された選択候補の駆動能力の中から、前記あらかじめ設定された条件に対応する駆動能力を選択し、前記選択された駆動能力を前記出力バッファに設定するように制御するものであることを特徴とする駆動能力制御回路を提供するものである。
【０００９】
また、本発明は、記憶回路および前記記憶回路に記憶されたデータを出力する場合に同時動作する２以上の出力バッファを備える第２の半導体集積回路の記憶回路から前記データをリードする第１の半導体集積回路において、前記出力バッファの駆動能力を制御する駆動能力制御回路であって、
前記第２の半導体集積回路は、
前記出力バッファの駆動能力を設定する駆動能力設定回路を備え、
前記第１の半導体集積回路は、
前記出力バッファを同時動作させるパターンデータを保持するパターンデータ保持回路と、
前記パターンデータを、ライトデータとして、前記第２の半導体集積回路の記憶回路へライトし、前記設定された駆動能力で前記出力バッファから出力される、前記第２の半導体集積回路の記憶回路へライトされたライトデータを、リードデータとして、前記第２の半導体集積回路の記憶回路からリードするように、前記第２の半導体集積回路の動作を制御するメモリ制御回路と、
前記ライトデータと前記リードデータとを比較し、前記ライトデータと前記リードデータとが一致した場合に、前記設定された駆動能力を選択候補として記憶する比較回路と、
前記記憶された選択候補の駆動能力の中から、あらかじめ設定された条件に対応する駆動能力を選択する駆動能力選択回路と、
前記駆動能力制御回路の全体の動作を制御する全体制御回路とを備え、
前記全体制御回路は、前記パターンデータを、前記ライトデータとして、前記第２の半導体集積回路の記憶回路へライトし、前記出力バッファの駆動能力を、前記出力バッファに設定可能な駆動能力の最小値から最大値まで１段階ずつ強く、または、最大値から最小値まで１段階ずつ弱く変更して設定した場合に前記記憶された選択候補の駆動能力の中から、前記あらかじめ設定された条件に対応する駆動能力を選択し、前記選択された駆動能力を前記出力バッファに設定するように制御するものであることを特徴とする駆動能力制御回路を提供する。
【００１０】
また、本発明は、記憶回路を備える第２の半導体集積回路にデータをライトする場合に同時動作する２以上の出力バッファを備える第１の半導体集積回路において、前記出力バッファの駆動能力を制御する駆動能力制御方法であって、
前記出力バッファの駆動能力を、前記出力バッファに設定可能な駆動能力の最小値または最大値に設定する第１ステップと、
前記出力バッファを同時動作させるパターンデータを、ライトデータとして、前記設定された駆動能力で前記出力バッファから出力して前記第２の半導体集積回路の記憶回路へライトする第２ステップと、
前記第２の半導体集積回路の記憶回路へライトされたライトデータを、リードデータとして、前記第２の半導体集積回路の記憶回路からリードする第３ステップと、
前記ライトデータと前記リードデータとを比較し、前記ライトデータと前記リードデータとが一致した場合に、前記設定された駆動能力を選択候補として記憶する第４ステップと、
前記出力バッファの駆動能力を１段階強くまたは弱く変更することができるかできないかを判定する第５ステップと、
前記第５ステップにおいて、前記出力バッファの駆動能力を１段階強くまたは弱く変更することができる場合に、前記出力バッファの駆動能力を１段階強くまたは弱く変更して設定し、前記第２〜第５ステップを繰り返し行う第６ステップと、
前記第５ステップにおいて、前記出力バッファの駆動能力を１段階強くまたは弱く変更することができない場合に、前記記憶された選択候補の駆動能力の中から、あらかじめ設定された条件に対応する駆動能力を選択する第７ステップと、
前記出力バッファの駆動能力を、前記選択された駆動能力に設定する第８ステップとを含むことを特徴とする駆動能力制御方法を提供する。
【００１１】
また、本発明は、記憶回路および前記記憶回路に記憶されたデータを出力する場合に同時動作する２以上の出力バッファを備える第２の半導体集積回路の記憶回路から前記データをリードする第１の半導体集積回路において、前記出力バッファの駆動能力を制御する駆動能力制御方法であって、
前記出力バッファを同時動作させるパターンデータを、ライトデータとして、前記第２の半導体集積回路の記憶回路へライトする第１ステップと、
前記出力バッファの駆動能力を、前記出力バッファに設定可能な駆動能力の最小値または最大値に設定する第２ステップと、
前記設定された駆動能力で前記出力バッファから出力される、前記第２の半導体集積回路の記憶回路へライトされたライトデータを、リードデータとして、前記第２の半導体集積回路の記憶回路からリードする第３ステップと、
前記ライトデータと前記リードデータとを比較し、前記ライトデータと前記リードデータとが一致した場合に、前記設定された駆動能力を選択候補として記憶する第４ステップと、
前記出力バッファの駆動能力を１段階強くまたは弱く変更することができるかできないかを判定する第５ステップと、
前記第５ステップにおいて、前記出力バッファの駆動能力を１段階強くまたは弱く変更することができる場合に、前記出力バッファの駆動能力を１段階強くまたは弱く変更して設定し、前記第３〜第５ステップを繰り返し行う第６ステップと、
前記第５ステップにおいて、前記出力バッファの駆動能力を１段階強くまたは弱く変更することができない場合に、前記記憶された選択候補の駆動能力の中から、あらかじめ設定された条件に対応する駆動能力を選択する第７ステップと、
前記出力バッファの駆動能力を、前記選択された駆動能力に設定する第８ステップとを含むことを特徴とする駆動能力制御方法を提供する。
【発明の効果】
【００１２】
本発明によれば、第１の半導体集積回路が第２の半導体集積回路にデータをライトする場合に、第１の半導体集積回路が備える出力バッファが同時動作する場合であっても、第１の半導体集積回路がデータを第２の半導体集積回路に正しくライトすることができる選択候補の駆動能力の中から、あらかじめ設定された条件に対応する駆動能力に設定することができる。
同様に、本発明によれば、第１の半導体集積回路が第２の半導体集積回路からデータをリードする場合に、第２の半導体集積回路が備える出力バッファが同時動作する場合であっても、第１の半導体集積回路がデータを第２の半導体集積回路から正しくリードすることができる選択候補の駆動能力の中から、あらかじめ設定された条件に対応する駆動能力に設定することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の駆動能力制御回路を備えるシステムの構成を表す一実施形態の回路図である。
【図２】図１に示す駆動能力制御回路の内部の構成を表すブロック図である。
【図３】半導体集積回路が備える出力バッファの駆動能力を制御する場合の動作を表す一例のフローチャートである。
【図４】半導体メモリが備える出力バッファの駆動能力を制御する場合の動作を表す一例のフローチャートである。
【発明を実施するための形態】
【００１４】
以下に、添付の図面に示す好適実施形態に基づいて、本発明の駆動能力制御回路および駆動能力制御方法を詳細に説明する。
【００１５】
図１は、本発明の駆動能力制御回路を備えるシステムの構成を表す一実施形態の回路図、図２は、図１に示す駆動能力制御回路の内部の構成を表すブロック図である。図１に示すシステム１０は、半導体集積回路（本発明の第１の半導体集積回路）１２と、半導体メモリ（本発明の第２の半導体集積回路）１４とを備えている。両者の間は、データ信号DQ、アドレス信号Addr、および、データのライトおよびリードを制御するコントロール信号Ctrlにより互いに接続されている。
【００１６】
半導体集積回路１２は、２以上のビットからなるデータ信号DQ、アドレス信号Addr、および、コントロール信号Ctrlを介して半導体メモリ１４とデータのライトおよびリードを行うものであり、例えば、ASIC（Application Specific Integrated Circuit：特定用途向け集積回路）で構成される。半導体集積回路１２は、半導体メモリ１４にデータをライトする場合に同時動作する２以上の入出力バッファ１６、駆動能力制御回路１８等を備えている。
【００１７】
また、半導体メモリ１４は、例えば、DRAM(Dynamic Random Access Memory：ダイナミック・ランダム・アクセス・メモリ)である。半導体メモリ１４は、半導体集積回路１２によりリードされたデータを出力する場合に同時動作する２以上の入出力バッファ２０、駆動能力設定回路３６等を備えている。
【００１８】
駆動能力制御回路１８は、半導体集積回路１２が備える入出力バッファ１６の出力バッファ１６ａ、および、半導体メモリ１４が備える入出力バッファ２０の出力バッファ２０ａの駆動能力を制御するものである。駆動能力制御回路１８は、図２に示すように、駆動能力設定回路２２と、パターンデータ保持回路２４と、メモリ制御回路と、データ比較回路２６と、駆動能力選択回路２８と、全体制御回路３０とを備えている。
【００１９】
駆動能力設定回路２２は、出力バッファ１６ａの駆動能力を設定するものである。
駆動能力設定回路２２は、出力バッファ１６ａに設定可能な範囲内で駆動能力を設定することができる。
出力バッファ１６ａは、例えば、駆動能力設定回路２２から出力される駆動能力設定信号に応じて、その出力信号（ライトデータ）の駆動電圧変化時間が変更されることにより、その駆動能力を変更することが可能なものである。
【００２０】
パターンデータ保持回路２４は、データを半導体集積回路１２から半導体メモリ１４にライトする場合に出力バッファ１６ａを同時動作させるパターンデータ、および、データを半導体メモリ１４から半導体集積回路１２にリードする場合に出力バッファ２０ａを同時動作させるパターンデータの少なくとも一方を保持するものである。
システム１０において、半導体集積回路１２から半導体メモリ１４へのデータのライト、および、半導体メモリ１４から半導体集積回路１２へのデータのリードのシミュレーションを行うことにより、あらかじめ設定された所定の時間にわたって、出力バッファ１６ａ、２０ａの同時動作ノイズを最大とすることができるパターンデータを作成することができる。作成されたパターンデータをあらかじめパターンデータ保持回路２４に保持しておく。
パターンデータは、例えば、出力バッファ１６ａが１０ビットのデータを出力する場合、ノイズを受ける側のヴィクティム（Victim）と呼ばれる１０ビットのデータ（例えば、Victim = 1101010001）、および、ノイズを与える側のアグレッサー（Aggressor）と呼ばれる１０ビットのデータ（例えば、Aggressor = 1000111000）からなる（擬似）ランダムパターンを使用することができる。
【００２１】
メモリ制御回路は、パターンデータを、ライトデータとして、半導体集積回路１２から半導体メモリ１４へライトしたり、半導体メモリ１４へライトされたライトデータを、リードデータとして、半導体メモリ１４から半導体集積回路１２へリードしたりするように、半導体メモリ１４の動作を制御するものである。
メモリ制御回路は、図２に示すメモリ制御回路本体３２と、図１に示す５つのマルチプレクサ３４ａ、３４ｂ、３４ｃ、３４ｄ、３４ｅとを備えている。
【００２２】
メモリ制御回路本体３２には、パターンデータ保持回路２４からパターンデータが入力される。メモリ制御回路本体３２からは、パターンデータがライトデータとして出力され、かつ、メモリ制御信号として、通常動作モードと駆動能力設定モードとを切り替える切替制御信号、駆動能力設定モード時に、通常動作モード時のライトデータ、出力バッファ１６ａの出力制御信号、アドレス信号Addrおよびコントロール信号Ctrlに相当する、パターンデータ、および、その他の信号が出力される。
【００２３】
マルチプレクサ３４ａ、３４ｂ、３４ｃ、３４ｄ、３４ｅは、メモリ制御回路本体３２から出力されるメモリ制御信号の制御により、半導体集積回路１２の通常動作モード時の各信号と、これらに対応する出力バッファ１６ａの駆動能力設定モード時の各信号とを切り替えるものである。マルチプレクサ３４ａ、３４ｂ、３４ｃ、３４ｄ、３４ｅは、それぞれ、出力バッファ１６ａのライトデータ、出力制御信号およびその反転信号、半導体メモリ１４の動作を制御するアドレス信号Addrおよびコントロール信号Ctrlの信号線に設けられている。
【００２４】
例えば、ライトデータの信号線に設けられたマルチプレクサ３４ａの一方の入力端子には、図示していない半導体集積回路１２の内部回路から通常動作モード時のライトデータが入力され、他方の入力端子には、メモリ制御回路本体３２から駆動能力設定モード時のパターンデータが入力され、制御入力端子にはメモリ制御回路本体３２から切替制御信号が入力される。マルチプレクサ３４ａの出力信号は、出力バッファ１６ａの直前に設けられたFF（フリップフロップ）３８のデータ入力端子に入力される。他のマルチプレクサ３４ｂ、３４ｃ、３４ｄ、３４ｅについても同様である。
【００２５】
マルチプレクサ３４ａ、３４ｂ、３４ｃ、３４ｄ、３４ｅからは、切替制御信号に応じて、通常動作モード時には、通常動作モード時の各信号が出力され、駆動能力設定モード時には、駆動能力設定モード時の各信号が出力される。従って、駆動能力制御回路１８は、半導体集積回路１２の動作モードを、通常動作モードから駆動能力設定モードに切り替えることにより、出力バッファ１６ａのライトデータ、出力バッファ１６ａの出力制御信号およびその反転信号、アドレス信号Addr、コントロール信号Ctrlを制御することができる。
【００２６】
続いて、データ比較回路２６は、ライトデータとリードデータとを比較し、両者が一致した場合に、駆動能力設定回路２２により設定された駆動能力を選択候補として記憶するものである。
【００２７】
駆動能力選択回路２８は、データ比較回路２６により記憶された選択候補の駆動能力の中から、あらかじめ設定された条件に対応する駆動能力を選択するものである。
選択候補の駆動能力の中からどの駆動能力を選択するのかは、ユーザが優先する目的によりあらかじめ設定しておくことができる。例えば、消費電力やオーバーシュート／アンダーシュートによる誤動作を懸念する場合は、選択候補の駆動能力の中で最小のものを選択するように設定しておくことができる。また、目的に応じて、選択候補の駆動能力の中の真ん中の駆動能力を選択したり、最大のものを選択したりするように設定しておくこともできる。
つまり、あらかじめ設定された条件とは、前述のように、ユーザが優先する目的に応じて選択される駆動能力を設定するための条件である。あらかじめ設定された条件として、例えば、選択候補の駆動能力の中で最小のものを選択することが設定された場合、駆動能力選択回路２８は、選択候補の駆動能力の中で最小のものを選択する。
【００２８】
全体制御回路３０は、駆動能力制御回路１８の全体の動作、つまり、駆動能力設定回路２２、３６、パターンデータ保持回路２４、メモリ制御回路、データ比較回路２６、駆動能力選択回路２８等の動作を制御するものである。
【００２９】
また、半導体メモリ１４が備える駆動能力設定回路３６は、半導体メモリ１４が備える出力バッファ２０ａの駆動能力を設定するものである。
駆動能力設定回路３６は、駆動能力設定回路２２と同様の機能を備えている。全体制御回路３０の制御により、メモリ制御回路が、例えば、出力バッファ２０ａの駆動能力の設定データを、半導体メモリ１４が備えるレジスタ等に書き込むことにより、駆動能力設定回路３６から、レジスタに書き込まれた駆動能力の設定データに応じた駆動能力設定信号が出力され、この駆動能力設定信号に応じて、出力バッファ２０ａの駆動能力を変更することができる。
【００３０】
次に、図３に示すフローチャートを参照しながら、駆動能力制御回路１８により、半導体集積回路１２の出力バッファ１６ａの駆動能力を制御する場合の動作を説明する。
【００３１】
まず、全体制御回路３０の制御により、駆動能力設定回路２２が、例えば、出力バッファ１６ａの駆動能力を最小値に設定する（ステップS1）。
【００３２】
続いて、全体制御回路３０の制御により、メモリ制御回路が、パターンデータ保持回路２４に保持されたパターンデータを、ライトデータとして、駆動能力設定回路２２により設定された駆動能力で出力バッファ１６ａから順次出力して半導体メモリ１４へライトする（ステップS2）。
【００３３】
この場合、同時動作ノイズが最大となるように、シングルライトよりもバーストライトを行う方が望ましい。従って、ライトデータを半導体メモリ１４にライトする場合、駆動能力設定回路２２により設定された出力バッファ１６ａの駆動能力によっては、正しいライトデータをライトすることができない場合があり得る。
【００３４】
続いて、全体制御回路３０の制御により、メモリ制御回路が、半導体メモリ１４へライトされたライトデータを、リードデータとして、半導体メモリ１４から順次リードする（ステップS3）。
【００３５】
この場合、半導体メモリ１４の出力バッファ２０ａの駆動能力を、半導体メモリ１４から確実に正しいリードデータを出力することができる駆動能力、例えば、その最大値に仮設定しておく。半導体メモリ１４から確実に正しいリードデータを出力することができる駆動能力は、例えば、シミュレーションにより求めることができる。
また、リード時の同時動作ノイズの影響を減らし、半導体集積回路１２が半導体メモリ１４から確実に正しいリードデータをリードすることができるように、バーストリードではなくシングルリードを行う方が望ましい。
【００３６】
続いて、全体制御回路３０の制御により、データ比較回路２６が、ライトデータとリードデータとを比較する（ステップS4）。
【００３７】
ここで、ライトデータとリードデータとが一致した場合（ステップS5で‘Y’）、データ比較回路２６は、駆動能力設定回路２２により設定された出力バッファ１６ａの駆動能力を選択候補として記憶する（ステップS6）。
一方、両者が一致しない場合（ステップS5で‘N’）、次のステップS7に進む。
【００３８】
続いて、全体制御回路３０が、出力バッファ１６ａの駆動能力を１段階強く変更して設定することができるかできないかを判定する（ステップS7）。
【００３９】
ここで、出力バッファ１６ａの駆動能力を１段階強く変更して設定することができる場合（ステップS7で‘Y’）、全体制御回路３０の制御により、駆動能力設定回路２２が、出力バッファ１６ａの駆動能力を１段階強く変更して設定して（ステップS8）、ステップS2へ戻り前述の動作を繰り返す。
【００４０】
一方、出力バッファ１６ａの駆動能力を１段階強く変更して設定することができない場合（ステップS7で‘N’）、全体制御回路３０の制御により、駆動能力選択回路２８が、データ比較回路２６に記憶された選択候補の駆動能力中から、あらかじめ設定された条件に対応する駆動能力を選択する（ステップS9）。
駆動能力選択回路２８は、あらかじめ設定された条件として、例えば、消費電力およびEMIリスクの低減のために、選択候補の駆動能力の中から最小のものを選択するように設定されている場合、これに応じて、選択候補の中から最小の駆動能力を選択する。
【００４１】
最後に、全体制御回路３０の制御により、駆動能力設定回路２２が、出力バッファ１６ａの駆動能力を、選択候補の駆動能力の中から選択された最小の駆動能力に設定する（ステップS10）。
【００４２】
このように、駆動能力制御回路１８では、半導体集積回路１２が半導体メモリ１４にデータをライトする場合に、半導体集積回路１２が備える出力バッファ１６ａが同時動作する場合であっても、半導体集積回路１２がデータを半導体メモリ１４に正しくライトすることができる選択候補の駆動能力の中から、あらかじめ設定された条件に対応する駆動能力、例えば、最小の駆動能力に設定することができる。
【００４３】
次に、図４に示すフローチャートを参照しながら、駆動能力制御回路１８により、半導体メモリ１４の出力バッファ２０ａの駆動能力を制御する場合の動作を説明する。
【００４４】
まず、全体制御回路３０の制御により、メモリ制御回路が、パターンデータ保持回路２４に保持されたパターンデータを、ライトデータとして、半導体メモリ１４へライトする（ステップS11）。
【００４５】
この場合、半導体集積回路１２の出力バッファ１６ａの駆動能力を、半導体メモリ１４へ確実に正しいライトデータを出力することができる駆動能力、例えば、その最大値に仮設定しておく。半導体メモリ１４へ確実に正しいライトデータを出力することができる駆動能力は、例えば、シミュレーションにより求めることができる。
また、ライト時の同時動作ノイズの影響を減らし、半導体集積回路１２が半導体メモリ１４へ確実に正しいライトデータをライトすることができるように、バーストライトではなくシングルライトを行う方が望ましい。
【００４６】
続いて、全体制御回路３０の制御により、駆動能力設定回路３６が、例えば、出力バッファ２０ａの駆動能力を最小値に設定する（ステップS12）。
【００４７】
続いて、全体制御回路３０の制御により、メモリ制御回路が、駆動能力設定回路３６により設定された駆動能力で出力バッファ２０ａから出力される、半導体メモリ１４へライトされたライトデータを、リードデータとして、半導体メモリ１４から順次リードする（ステップS13）。
【００４８】
この場合、同時動作ノイズが最大となるように、シングルリードよりもバーストリードする方が望ましい。従って、リードデータを半導体メモリ１４からリードする場合、駆動能力設定回路３６により設定された出力バッファ２０ａの駆動能力によっては、正しいリードデータをリードすることができない場合があり得る。
【００４９】
続いて、全体制御回路３０の制御により、データ比較回路２６が、ライトデータとリードデータとを比較する（ステップS14）。
【００５０】
ここで、ライトデータとリードデータとが一致した場合（ステップS15で‘Y’）、データ比較回路２６は、駆動能力設定回路３６により設定された出力バッファ２０ａの駆動能力を選択候補として記憶する（ステップS16）。
一方、両者が一致しない場合（ステップS15で‘N’）、次のステップS17に進む。
【００５１】
続いて、全体制御回路３０が、出力バッファ２０ａの駆動能力を１段階強く変更して設定することができるかできないかを判定する（ステップS17）。
【００５２】
ここで、出力バッファ２０ａの駆動能力を１段階強く変更して設定することができる場合（ステップS17で‘Y’）、全体制御回路３０の制御により、駆動能力設定回路３６が、出力バッファ２０ａの駆動能力を１段階強く変更して設定して（ステップS18）、ステップS13へ戻り前述の動作を繰り返す。
【００５３】
一方、出力バッファ２０ａの駆動能力を１段階強く変更して設定することができない場合（ステップS17で‘N’）、全体制御回路３０の制御により、駆動能力選択回路２８が、データ比較回路２６に記憶された選択候補の駆動能力中から、あらかじめ設定された条件に対応する駆動能力を選択する（ステップS19）。
駆動能力選択回路２８は、あらかじめ設定された条件として、例えば、消費電力およびEMIリスクの低減のために、選択候補の駆動能力の中から最小のものを選択することが設定されている場合、これに応じて、選択候補の中から最小の駆動能力を選択する。
【００５４】
最後に、全体制御回路３０の制御により、駆動能力設定回路３６が、出力バッファ２０ａの駆動能力を、選択候補の駆動能力の中から選択された最小の駆動能力に設定する（ステップS20）。
【００５５】
このように、駆動能力制御回路１８では、半導体集積回路１２が半導体メモリ１４からデータをリードする場合に、半導体メモリ１４が備える出力バッファ２０ａが同時動作する場合であっても、半導体集積回路１２がデータを半導体メモリ１４から正しくリードすることができる選択候補の駆動能力の中から、あらかじめ設定された条件に対応する駆動能力、例えば、最小の駆動能力に設定することができる。
【００５６】
なお、本発明は、第２の半導体集積回路として、半導体メモリ１４に限らず、半導体集積回路１２からライトされるデータを記憶し、リードされるデータを出力する記憶回路を備える各種の半導体集積回路に適用することが可能である。
また、駆動能力設定回路２２，３６は、それぞれ、出力バッファ１６ａ、２０ａの駆動能力を最初に最大値に設定し、その後、駆動能力を１段階ずつ弱く変更して設定することを繰り返すようにしてもよい。
【００５７】
本発明は、基本的に以上のようなものである。
以上、本発明について詳細に説明したが、本発明は上記実施形態に限定されず、本発明の主旨を逸脱しない範囲において、種々の改良や変更をしてもよいのはもちろんである。
【符号の説明】
【００５８】
１０  システム
１２  半導体集積回路
１４  半導体メモリ
１６、２０  入出力バッファ
１６ａ、２０ａ  出力バッファ
１８  駆動能力制御回路
２２、３６  駆動能力設定回路
２４  パターンデータ保持回路
２６  データ比較回路
２８  駆動能力選択回路
３０  全体制御回路
３２  メモリ制御回路本体
３４ａ、３４ｂ、３４ｃ、３４ｄ、３４ｅ  マルチプレクサ
３８  フリップフロップ
【図１】
2015156549.tif 000003
【図２】
2015156549.tif 000004
【図３】
2015156549.tif 000005
【図４】
2015156549.tif 000006