以下、実施形態について、図面を用いて説明する。
図1は、終端抵抗調整回路および終端抵抗調整回路を有する装置の一実施形態を示す。図1に示す装置10は、2ビットの入力データD(D1、D0)の値に対応する電圧レベルを有する出力信号DOUTを生成する送信回路70と、送信回路70の終端抵抗の値を調整する終端抵抗調整回路20とを有する。送信回路70および終端抵抗調整回路20は、例えば、サーバ等の情報処理装置または通信システムの基幹装置等に搭載される。
送信回路70は、2ビットの振幅変調である4PAMを実行し、2ビットの入力データD1、D0を振幅変調する。これにより、送信回路70は、2ビットの入力データD1、D0で表される4つの値にそれぞれ対応する4つの電圧レベルの信号を1本の信号線で受信回路に伝送できる。4PAMの信号は、例えば、2ビットの入力データDのうちの下位ビットのデータD0と上位ビットのデータD1とを、1:2の比率で加算することにより生成される。
例えば、送信回路70は、入力データD0を受ける複数の駆動回路80と、入力データD1を受ける複数の駆動回路81とを有する。なお、図1では、図を見やすくするために、駆動回路80、81のうちの1つを除いて、内部の要素(例えば、P型のMOSトランジスタMP10等)および端子名の記載を省略している。
複数の駆動回路80は、互いに接続された入力端子INで入力データD0を受け、互いに独立した制御信号CNTEP0をそれぞれの端子ENPで受け、互いに独立した制御信号CNTEN0をそれぞれの端子ENNで受ける。なお、図1では、図を見やすくするために、互いに独立した制御信号CNTEP0を1つの信号線で示し、互いに独立した制御信号CNTEN0を1つの信号線で示している。複数の駆動回路80の各々は、端子ENPで受けた制御信号CNTEP0および端子ENNで受けた制御信号CNTEN0に基づいて、駆動可能な状態または駆動しない状態に設定される。駆動可能な状態の駆動回路80は、入力端子INで受けた入力データD0のレベル(値)に基づいて、出力端子OUTを駆動する。
例えば、各駆動回路80は、P型のMOSトランジスタMP10、MP20、N型のMOSトランジスタMN10、MN20および抵抗R10を有する。以下、P型のMOSトランジスタおよびN型のMOSトランジスタは、単に、トランジスタとも称される。
トランジスタMP10、MP20、MN20、MN10は、電源電圧VDDが供給される電源線(以下、電源線VDDとも称する)と接地電圧VSSが供給される接地線(以下、接地線VSSとも称する)との間に直列に接続される。トランジスタMP10のゲートは端子ENPに接続され、トランジスタMP20、MN20のゲートは入力端子INに接続され、トランジスタMN10のゲートは端子ENNに接続される。また、トランジスタMP20、MN20のドレインは、抵抗R10の一端に接続される。そして、抵抗R10の他端は、出力端子OUTに接続される。
トランジスタMP10は、制御信号CNTEP0を端子ENPを介してゲートで受け、受けた制御信号CNTEP0の値(レベル)に応じて、導通状態であるオン状態と非導通状態であるオフ状態とのいずれかに設定される。また、トランジスタMN10は、制御信号CNTEN0を端子ENNを介してゲートで受け、受けた制御信号CNTEN0の値(レベル)に応じて、オン状態とオフ状態とのいずれかに設定される。
例えば、端子ENPが低論理レベル(例えば、0)に設定された駆動回路80では、トランジスタMP10はオン状態に設定され、端子ENNが高論理レベル(例えば、1)に設定された駆動回路80では、トランジスタMN10はオン状態に設定される。また、低論理レベルの入力データD0を入力端子INで受けた駆動回路80では、トランジスタMP20がオン状態になり、トランジスタMN20がオフ状態になる。なお、高論理レベルの入力データD0を入力端子INで受けた駆動回路80では、トランジスタMP20がオフ状態になり、トランジスタMN20がオン状態になる。
したがって、低論理レベルの制御信号CNTEP0を受けた駆動回路80は、低論理レベルの入力データD0を受けたときに駆動する状態(駆動可能な状態)に設定される。すなわち、低論理レベルの入力データD0を受けた場合に駆動する駆動回路80では、対応する制御信号CNTEP0は、低論理レベルに設定される。換言すれば、低論理レベルの入力データD0を受けた場合に駆動しない駆動回路80では、対応する制御信号CNTEP0は、高論理レベルに設定される。
また、高論理レベルの制御信号CNTEN0を受けた駆動回路80は、高論理レベルの入力データD0を受けたときに駆動する状態(駆動可能な状態)に設定される。すなわち、高論理レベルの入力データD0を受けた場合に駆動する駆動回路80では、対応する制御信号CNTEN0は、高論理レベルに設定される。換言すれば、高論理レベルの入力データD0を受けた場合に駆動しない駆動回路80では、対応する制御信号CNTEN0は、低論理レベルに設定される。このように、駆動回路80の使用数は、端子ENPに転送される制御信号CNTEPおよび端子ENNに転送される制御信号CNTENにより制御される。
例えば、端子ENPが低論理レベルに設定された駆動回路80は、低論理レベルの入力データD0を入力端子INで受けた場合、電源線VDDと出力端子OUTとの間を導通状態にし、接地線VSSと出力端子OUTとの間を非導通状態にする。この場合、電源線VDDと出力端子OUTとの間に配置されたトランジスタMP10、MP20および抵抗R10は、駆動回路80の終端抵抗として機能する。例えば、駆動回路80の終端抵抗の値は、トランジスタMP10のオン抵抗とトランジスタMP20のオン抵抗と抵抗R10とを合成した合成抵抗の値である。なお、端子ENPが高論理レベルに設定された駆動回路80では、トランジスタMP10がオフ状態になるため、トランジスタMP10、MP20は、入力データD0が低論理レベルの場合でも、終端抵抗として機能しない。
また、例えば、端子ENNが高論理レベルに設定された駆動回路80は、高論理レベルの入力データD0を入力端子INで受けた場合、電源線VDDと出力端子OUTとの間を非導通状態にし、接地線VSSと出力端子OUTとの間を導通状態にする。この場合、接地線VSSと出力端子OUTとの間に配置されたトランジスタMN10、MN20および抵抗R10は、駆動回路80の終端抵抗として機能する。例えば、駆動回路80の終端抵抗の値は、トランジスタMN10のオン抵抗とトランジスタMN20のオン抵抗と抵抗R10とを合成した合成抵抗の値である。なお、端子ENNが低論理レベルに設定された駆動回路80では、トランジスタMN10がオフ状態になるため、トランジスタMN10、MN20は、入力データD0が高論理レベルの場合でも、終端抵抗として機能しない。
複数の駆動回路80の出力端子OUTが互いに接続されているため、複数の駆動回路80の終端抵抗は、並列に接続される。また、低論理レベルの入力データD0を受けても駆動しない状態に設定されていた駆動回路80は、入力端子INで受けた入力データD0のレベルに拘わらず、電源線VDDと出力端子OUTとの間を非導通状態に維持する。同様に、高論理レベルの入力データD0を受けても駆動しない状態に設定されていた駆動回路80は、入力端子INで受けた入力データD0のレベルに拘わらず、接地線VSSと出力端子OUTとの間を非導通状態に維持する。
このため、並列に接続された複数の駆動回路80の終端抵抗の合成値は、駆動可能な状態の駆動回路80の終端抵抗を並列に接続した合成抵抗の値に等しい。以下、駆動可能な状態の駆動回路80の終端抵抗を並列に接続した合成抵抗は、駆動回路80の合成抵抗とも称される。駆動回路80の合成抵抗は、送信回路70の終端抵抗の一部として機能する。したがって、駆動可能な状態の駆動回路80の数(すなわち、駆動回路80の使用数)を調整することにより、送信回路70の終端抵抗の値を調整することができる。
駆動回路81は、入力データD1、制御信号CNTEP1、CNTEN1を入力データD0、制御信号CNTEP0、CNTEN0の代わりに受けることを除いて、駆動回路80と同一または同様である。例えば、端子ENPが低論理レベルに設定された駆動回路81は、低論理レベルの入力データD1を入力端子INで受けた場合、電源線VDDと出力端子OUTとの間を導通状態にし、接地線VSSと出力端子OUTとの間を非導通状態にする。この場合、電源線VDDと出力端子OUTとの間に配置されたトランジスタMP10、MP20および抵抗R10は、駆動回路81の終端抵抗として機能する。
また、端子ENNが高論理レベルに設定された駆動回路81は、高論理レベルの入力データD1を入力端子INで受けた場合、電源線VDDと出力端子OUTとの間を非導通状態にし、接地線VSSと出力端子OUTとの間を導通状態にする。この場合、接地線VSSと出力端子OUTとの間に配置されたトランジスタMN10、MN20および抵抗R10は、駆動回路81の終端抵抗として機能する。以下、駆動可能な状態の駆動回路81の終端抵抗を並列に接続した合成抵抗は、駆動回路81の合成抵抗とも称される。駆動回路81の合成抵抗は、送信回路70の終端抵抗の一部として機能する。したがって、駆動可能な状態の駆動回路81の数(すなわち、駆動回路81の使用数)を調整することにより、送信回路70の終端抵抗の値を調整することができる。
駆動回路80の出力端子OUTと駆動回路81の出力端子OUTとは互いに接続される。したがって、送信回路70の終端抵抗の値は、駆動回路80の合成抵抗と駆動回路81の合成抵抗とを並列に接続した合成抵抗の値である。すなわち、送信回路70の終端抵抗の値は、2ビットの入力データD(D1、D0)のビット毎に駆動回路81、80の使用数を調整することにより調整される。
なお、終端抵抗として機能するトランジスタMP、MNは、入力データD1、D0の値によって切り替わる。例えば、入力データD1、D0が”00”である場合、駆動回路81、80内のトランジスタMP10、MP20および抵抗R10が、送信回路70の終端抵抗として機能する。入力データD1、D0が”01”である場合、駆動回路81内のトランジスタMP10、MP20および抵抗R10と、駆動回路80内のトランジスタMN10、MN20および抵抗R10とが、送信回路70の終端抵抗として機能する。入力データD1、D0が”10”である場合、駆動回路81内のトランジスタMN10、MN20および抵抗R10と、駆動回路80内のトランジスタMP10、MP20および抵抗R10とが、送信回路70の終端抵抗として機能する。入力データD1、D0が”11”である場合、駆動回路81、80内のトランジスタMN10、MN20および抵抗R10が、送信回路70の終端抵抗として機能する。
また、出力信号DOUTの電圧レベル(出力端子OUTの電圧)が変化した場合、MOSトランジスタ(例えば、トランジスタMP10、MP20、MN10、MN20)のオン抵抗の値が変化し、各駆動回路80、81の終端抵抗の値が変化する場合がある。このため、送信回路70の終端抵抗の値は、入力データD1、D0の値に拘わらず所定の範囲(例えば、50±5Ω等)に収まるように、制御信号CNTEP0、CNTEN0、CNTEP1、CNTEN1によって、調整される。
さらに、駆動回路80の合成抵抗の値および駆動回路81の合成抵抗の値は、入力データD1用の駆動回路81の駆動力が入力データD0用の駆動回路80の駆動力の2倍になるように調整される。例えば、駆動回路80の合成抵抗の値は、駆動回路81の合成抵抗の値の約2倍になるように調整される。駆動回路80の合成抵抗の値が入力データD1、D0の値に拘わらず駆動回路81の合成抵抗の値の2倍で安定している場合、出力信号DOUTの各電圧レベルの差は互いに等しくなる。例えば、2ビットの入力データD1、D0で表される4つの値にそれぞれ対応する4つの電圧レベルが9/12*VDD、7/12*VDD、5/12*VDD、3/12*VDDで安定し、4つの電圧レベルの差は、1/6*VDDになる。なお、”*”は、乗算を示している。
送信回路70の終端抵抗の値は、例えば、装置10の製造時(より詳細には、製造工程の試験時)または装置10の電源投入時等に、終端抵抗調整回路20により調整される。
終端抵抗調整回路20は、例えば、モニタ回路30、電圧生成回路40、比較回路50および制御回路60を有する。モニタ回路30は、駆動回路80、81の終端抵抗と同じ特性を有する出力抵抗を含む擬似回路32と、擬似回路32の出力端子OUTに負荷電流ILを供給する電流源34、36とを有する。擬似回路32の出力端子OUTは、電流源34、36および比較回路50に接続される。
擬似回路32は、P型のMOSトランジスタMP12、MP22、N型のMOSトランジスタMN12、MN22および抵抗R12を有する。トランジスタMP12、MP22、MN12、MN22および抵抗R12のそれぞれの電気的特性は、駆動回路80のトランジスタMP10、MP20、MN20、MN10および抵抗R10のそれぞれの電気的特性と同一または同様である。例えば、トランジスタMP12のゲート長とゲート幅の比は、トランジスタMP10のゲート長とゲート幅の比と一致またはほぼ一致する。トランジスタMP22のゲート長とゲート幅の比は、トランジスタMP20のゲート長とゲート幅の比と一致またはほぼ一致する。トランジスタMN12のゲート長とゲート幅の比は、トランジスタMN10のゲート長とゲート幅の比と一致またはほぼ一致する。トランジスタMN22のゲート長とゲート幅の比は、トランジスタMN20のゲート長とゲート幅の比と一致またはほぼ一致する。抵抗R12の電気的特性は、抵抗R10の電気的特性と同一または同様である。
トランジスタMP12、MP22、MN22、MN12は、電源線VDDと接地線VSSとの間に直列に接続される。トランジスタMP12は、ゲートが接地線VSSに接続され、オン状態に設定される。トランジスタMP22、MN22のゲートは、入力端子INに接続され、制御データCNTDを制御回路60から受ける。また、トランジスタMP22、MN22のドレインは、抵抗R12の一端に接続される。抵抗R12の他端は、擬似回路32の出力端子OUTに接続される。
このように、擬似回路32は、駆動可能な状態に予め設定され、入力端子INで受けた制御データCNTDのレベル(値)に基づいて、出力端子OUTを駆動する。例えば、擬似回路32は、低論理レベルの制御データCNTDを入力端子INで受けた場合、電源線VDDと出力端子OUTとの間を導通状態にし、接地線VSSと出力端子OUTとの間を非導通状態にする。この場合、負荷電流ILは、電源線VDDからトランジスタMP12、MP22、抵抗R12および出力端子OUTを介して電流源36に引き込まれる。したがって、電源線VDDと出力端子OUTとの間に配置されたトランジスタMP12、MP22および抵抗R12は、擬似回路32の出力抵抗として機能する。例えば、擬似回路32の出力抵抗の値は、トランジスタMP12のオン抵抗とトランジスタMP22のオン抵抗と抵抗R12とを合成した合成抵抗の値である。
また、例えば、擬似回路32は、高論理レベルの制御データCNTDを入力端子INで受けた場合、電源線VDDと出力端子OUTとの間を非導通状態にし、接地線VSSと出力端子OUTとの間を導通状態にする。この場合、負荷電流ILは、電流源34から出力端子OUT、抵抗R12、トランジスタMN22、MN12を介して接地線VSSに流し込まれる。したがって、接地線VSSと出力端子OUTとの間に配置されたトランジスタMN12、MN22および抵抗R12は、擬似回路32の出力抵抗として機能する。例えば、擬似回路32の出力抵抗の値は、トランジスタMN12のオン抵抗とトランジスタMN22のオン抵抗と抵抗R12とを合成した合成抵抗の値である。
電流源34は、擬似回路32の出力端子OUTに流し込む負荷電流ILの量を、制御回路60から受ける制御信号CNTIPに基づいて調整する。電流源36は、擬似回路32の出力端子OUTから引き抜く負荷電流ILの量を、制御回路60から受ける制御信号CNTINに基づいて調整する。
電圧生成回路40は、送信回路70に供給される2ビットの入力データD1、D0により表される4つの値にそれぞれ対応する4つの参照電圧VREF0、VREF1、VREF2、VREF3を生成する。例えば、参照電圧VREF0は、送信回路70の入力データD1、D0が”00”のときの出力信号DOUTの電圧レベル(約9/12*VDD)に対応する。参照電圧VREF1は、入力データD1、D0が”01”のときの出力信号DOUTの電圧レベル(約7/12*VDD)に対応する。参照電圧VREF2は、入力データD1、D0が”10”のときの出力信号DOUTの電圧レベル(約5/12*VDD)に対応する。参照電圧VREF3は、入力データD1、D0が”11”のときの出力信号DOUTの電圧レベル(約3/12*VDD)に対応する。電圧生成回路40で生成された参照電圧VREF0、VREF1、VREF2、VREF3は、比較回路50に供給される。
比較回路50は、擬似回路32の出力端子OUTから出力されるモニタ電圧VMONをモニタ回路30から受け、複数の参照電圧VREF0、VREF1、VREF2、VREF3を電圧生成回路40から受ける。そして、比較回路50は、モニタ電圧VMONと複数の参照電圧VREF0、VREF1、VREF2、VREF3とをそれぞれ比較し、それぞれの比較結果を示す比較結果情報DCOMを制御回路60に出力する。比較結果情報DCOMにより、参照電圧VREF0、VREF1、VREF2、VREF3の各々とモニタ電圧VMONとの大小関係が分かる。すなわち、モニタ電圧VMONが参照電圧VREF0、VREF1、VREF2、VREF3のどのあたりにあるかが分かる。
制御回路60は、制御データCNTDを低論理レベルまたは高論理レベルに設定して擬似回路32を駆動させるとともに、制御信号CNTIP、CNTINを用いて負荷電流ILの量を変化させる。例えば、制御回路60は、制御データCNTDを低論理レベルに設定した場合、モニタ電圧VMONが参照電圧VREF2以下になるまで、擬似回路32の出力端子OUTから引く抜く負荷電流ILの量を0から増加させる。また、例えば、制御回路60は、制御データCNTDを高論理レベルに設定した場合、モニタ電圧VMONが参照電圧VREF1を超えるまで、擬似回路32の出力端子OUTに流し込む負荷電流ILの量を0から増加させる。
また、制御回路60は、比較回路50から受ける比較結果情報DCOMが変化したときの負荷電流ILの量に基づいて、擬似回路32の出力抵抗の値をモニタ電圧VMONの複数のレベル毎に算出する。比較結果情報DCOMが変化するタイミングは、負荷電流ILの量の変化に伴い変化するモニタ電圧VMONのレベルが各参照電圧VREFを通過するタイミングに対応する。例えば、制御回路60は、比較結果情報DCOMが変化したときのモニタ電圧VMONのレベルを、比較結果情報DCOMの変化前後の比較結果に基づいて、参照電圧VREF0、VREF1、VREF2、VREF3のいずれかに特定する。
そして、制御回路60は、比較結果情報DCOMが変化したときの負荷電流ILの量(電流源34または電流源36の電流量)とモニタ電圧VMONのレベル(特定した参照電圧VREF)とに基づいて、擬似回路32の出力抵抗の値を算出する。これにより、モニタ電圧VMONのレベルが参照電圧VREF0、VREF1、VREF2、VREF3のときの擬似回路32の出力抵抗の値が、それぞれ算出される。
このように、制御回路60は、擬似回路32の出力抵抗の値を、2ビットの入力データD1、D0で表される値にそれぞれ対応する4つの電圧レベル毎に算出する。そして、制御回路60は、モニタ電圧VMONの複数のレベル毎に算出した擬似回路32の出力抵抗の値に基づいて、2ビットの入力データD1、D0のビット毎に駆動回路81、80の使用数を調整する。
制御回路60は、駆動回路80の合成抵抗の値と駆動回路81の合成抵抗の値との比が2:1になるように、各駆動回路80、81の使用数を設定する。例えば、送信回路70の終端抵抗の規定値が50Ωの場合、駆動回路80の合成抵抗の値は、150(=50*(1+2))Ωになるように調整され、駆動回路81の合成抵抗の値は、75(=50*(1+2)/2)Ωになるように調整される。
例えば、制御回路60は、複数の参照電圧VREFに対応する複数の電圧レベルでの駆動回路80の合成抵抗の値の平均が150Ωに最も近づく駆動回路80の使用数を算出する。そして、制御回路60は、複数の駆動回路80のうち、算出した使用数と同じ数の駆動回路80を駆動可能な状態にする制御信号CNTEN0、CNTEP0を生成する。また、制御回路60は、複数の参照電圧VREFに対応する複数の電圧レベルでの駆動回路81の合成抵抗の値の平均が75Ωに最も近づく駆動回路81の使用数を算出する。そして、制御回路60は、複数の駆動回路81のうち、算出した使用数と同じ数の駆動回路81を駆動可能な状態にする制御信号CNTEP1、CNTEN1を生成する。
このように、制御回路60は、モニタ電圧VMONの複数のレベル毎に算出した擬似回路32の出力抵抗の値に基づいて2ビットの入力データD(D1、D0)のビット毎に駆動回路81、80の使用数を調整して、送信回路70の終端抵抗の値を調整する。擬似回路32の出力抵抗の値を算出する際のモニタ電圧VMONの複数のレベルは、複数の参照電圧VREFに対応しているため、2ビットの入力データDの複数のパターン(以下、入力パターンとも称する)に対応する。
すなわち、終端抵抗調整回路20は、複数の入力パターンで算出した擬似回路32の出力抵抗の値を用いて、駆動回路81、80の使用数を個別に調整する。これにより、送信回路70の終端抵抗の値を適切に調整できる。例えば、駆動回路81の合成抵抗の値と駆動回路80の合成抵抗の値との比の変動(入力パターンの変化に伴う変動)は、1つの入力パターンに基づいて駆動回路80、81の使用数を調整した場合に比べて抑制される。
なお、終端抵抗調整回路20および送信回路70の構成(すなわち、装置10の構成)は、図1に示す例に限定されない。例えば、送信回路70は、3ビット以上の入力データDを振幅変調して出力信号DOUTを生成してもよい。この場合、送信回路70は、入力データDのビット毎に駆動回路80と同一または同様な複数の駆動回路を有する。そして、終端抵抗調整回路20は、入力データDのビット毎に駆動回路の使用数を調整して、送信回路70の終端抵抗の値を調整する。
また、駆動回路80、81の構成は、図1に示す例に限定されない。例えば、駆動回路80、81は、低論理レベルの入力データD0を入力端子INで受けたときに、電源線VDDと出力端子OUTとの間を非導通状態にし、接地線VSSと出力端子OUTとの間を導通状態にしてもよい。この場合、駆動回路80、81は、高論理レベルの入力データD0を入力端子INで受けたときに、電源線VDDと出力端子OUTとの間を導通状態にし、接地線VSSと出力端子OUTとの間を非導通状態にする。
以上、図1に示す実施形態では、終端抵抗調整回路20は、駆動回路80、81の使用数を、モニタ電圧VMONの複数のレベル毎に算出した出力抵抗の値(複数の入力パターンに対応する出力抵抗の値)に基づいて、個別に調整する。これにより、駆動回路81の合成抵抗の値と駆動回路80の合成抵抗の値との比の変動(入力パターンの変化に伴う変動)は、1つの入力パターンに基づいて駆動回路80、81の使用数を調整した場合に比べて抑制される。この結果、1つの入力パターンに基づいて駆動回路80、81の使用数を調整した場合に比べて、送信回路70から出力される出力信号DOUTの各電圧レベルの差のばらつきが大きくなること(送信波形の特性劣化)を抑制することができる。このように、図1に示す実施形態では、送信回路70の終端抵抗の値を適切に調整することができる。
図2は、終端抵抗調整回路および終端抵抗調整回路を有する装置の別の実施形態を示す。図1で説明した要素と同一または同様の要素については、同一または同様の符号を付し、これ等については、詳細な説明を省略する。図2に示す装置10Aは、差動送信回路72と、差動送信回路72の終端抵抗の値を調整する終端抵抗調整回路20Aとを有する。差動送信回路72および終端抵抗調整回路20Aは、例えば、サーバ等の情報処理装置または通信システムの基幹装置等に搭載される。
差動送信回路72は、差動の入力データDを受け、差動の出力信号DOUT(DOUTp、DOUTn)を受信装置等(図示せず)に出力する。入力データD0pは、入力データD0nの反転信号であり、入力データD1pは、入力データD1nの反転信号である。例えば、差動送信回路72は、送信回路70n、70pを有する。送信回路70n、70pの構成は、図1に示した送信回路70の構成と同一または同様である。
送信回路70nは、4PAMを実行し、2ビットの入力データD1n、D0nの値に対応する電圧レベルを有する出力信号DOUTnを生成する。例えば、送信回路70nは、入力データD0nを受ける複数の駆動回路80nと、入力データD1nを受ける複数の駆動回路81nとを有する。駆動回路80nは、図1に示した入力データD0の代わりに入力データD0nを受けることを除いて、図1に示した駆動回路80と同一または同様である。駆動回路81nは、図1に示した入力データD1の代わりに入力データD1nを受けることを除いて、図1に示した駆動回路81と同一または同様である。
送信回路70pは、4PAMを実行し、2ビットの入力データD1p、D0pの値に対応する電圧レベルを有する出力信号DOUTpを生成する。例えば、送信回路70pは、入力データD0pを受ける複数の駆動回路80pと、入力データD1pを受ける複数の駆動回路81pとを有する。駆動回路80pは、図1に示した入力データD0の代わりに入力データD0pを受けることを除いて、図1に示した駆動回路80と同一または同様である。駆動回路81pは、図1に示した入力データD1の代わりに入力データD1pを受けることを除いて、図1に示した駆動回路81と同一または同様である。
送信回路70nの終端抵抗の値は、2ビットの入力データD(D1n、D0n)のビット毎に駆動回路81n、80nの使用数を調整することにより調整される。なお、図2に示す例では、駆動回路80pの使用数は、駆動回路80nの使用数と一緒に同じ数に調整され、駆動回路81pの使用数は、駆動回路81nの使用数と一緒に同じ数に調整される。以下、駆動回路80n、80pは、駆動回路80とも称され、駆動回路81n、81pは、駆動回路81とも称される。
終端抵抗調整回路20Aは、例えば、モニタ回路30、電圧生成回路40、比較回路50および制御回路60Aを有する。モニタ回路30、電圧生成回路40および比較回路50は、図1に示したモニタ回路30、電圧生成回路40および比較回路50と同一または同様である。
制御回路60Aは、電流検出部62、抵抗計算部64およびコード計算部66を有する。電流検出部62は、制御データCNTD、制御信号CNTIP、CNTINをモニタ回路30に出力し、比較結果情報DCOMを比較回路50から受ける。例えば、電流検出部62は、制御データCNTDを低論理レベルまたは高論理レベルに設定してモニタ回路30内の図4に示す擬似回路32を駆動させる。また、電流検出部62は、制御信号CNTIP、CNTINを用いてモニタ回路30内の図4に示す電流源34、36を制御して負荷電流ILの量を変化させる。
そして、電流検出部62は、比較回路50から受ける比較結果情報DCOMが変化したときの負荷電流ILの量を示す電流情報IST(ISTP1、ISTP2、ISTP3、ISTN1、ISTN2、ISTN3)を、抵抗計算部64に出力する。なお、電流検出部62の動作の詳細は、図5で説明する。
抵抗計算部64は、電流検出部62から受けた電流情報ISTに基づいて、擬似回路32の出力抵抗の値をモニタ電圧VMONの複数のレベル毎に算出する。そして、抵抗計算部64は、モニタ電圧VMONの複数のレベル毎に算出した擬似回路32の出力抵抗の値を示す抵抗情報RMP(RMP1、RMP2、RMP3)、RMN(RMN1、RMN2、RMN3)を、コード計算部66に出力する。抵抗情報RMP、RMNの算出方法は、図6で説明する。
コード計算部66は、抵抗計算部64から受けた抵抗情報RMP、RMNに基づいて、制御信号CNTE(CNTEN0、CNTEN1、CNTEP0、CNTEP1)を生成する。例えば、コード計算部66は、駆動回路80、81の使用数(駆動可能な状態にする駆動回路80、81の数)を、2ビットの入力データDのビット毎に抵抗情報RMP、RMNに基づいて算出する。そして、コード計算部66は、算出した使用数と同じ数の駆動回路80、81を駆動可能な状態にする制御信号CNTEを生成し、生成した制御信号CNTEを差動送信回路72に出力する。駆動回路80、81の使用数の算出方法等は、図6で説明する。
なお、終端抵抗調整回路20Aおよび差動送信回路72の構成(すなわち、装置10Aの構成)は、図2に示す例に限定されない。例えば、各送信回路70(70n、70p)は、3ビット以上の入力データDを振幅変調して出力信号DOUTを生成してもよい。この場合、各送信回路70は、入力データDのビット毎に駆動回路80nと同一または同様な複数の駆動回路を有する。そして、終端抵抗調整回路20Aは、入力データDのビット毎に駆動回路の使用数を調整して、各送信回路70の終端抵抗の値を調整する。また、装置10Aは、シングルエンド入力の送信回路(送信回路70n、70pの一方が差動送信回路72から省かれた回路)を、差動送信回路72の代わりに有してもよい。
図3は、MOSトランジスタのオン抵抗の特性の一例を示す。図3の横軸は、出力電圧(出力信号DOUTの電圧レベル)を示し、図3の縦軸は、図1に示したトランジスタMP10、MP20、MN10、MN20等のMOSトランジスタのオン抵抗の値を示す。図3の一点鎖線は、2ビットの入力データDの各入力パターン(11、10、01、00)に対応する出力電圧を示す。P型のMOSトランジスタのオン抵抗(図3に示したPMOS)は、出力電圧が高くなるほど小さくなり、N型のMOSトランジスタのオン抵抗(図3に示したNMOS)は、出力電圧が高くなるほど大きくなる。したがって、出力信号DOUTの電圧レベル(出力電圧)が変化した場合、MOSトランジスタ(例えば、トランジスタMP10、MP20、MN10、MN20)のオン抵抗の値が変化し、各駆動回路80、81の終端抵抗の値が変化する場合がある。
図4は、図2に示したモニタ回路30、電圧生成回路40および比較回路50の一例を示す。なお、図4では、制御データCNTD、制御信号CNTIP、CNTINおよび比較結果情報DCOMの流れを分かりやすくするために、図2に示した制御回路60A内の電流検出部62も記載している。
モニタ回路30の構成は、図1に示したモニタ回路30と同一である。電流源34は、予め設定された量の基準電流(例えば、図6に示す電流I0)に制御信号CNTIPの値を乗じた量の負荷電流ILを、擬似回路32の出力端子OUTに流し込む。また、電流源36は、予め設定された量の基準電流(例えば、図6に示す電流I0)に制御信号CNTINの値を乗じた量の負荷電流ILを、擬似回路32の出力端子OUTから引き抜く。
電圧生成回路40は、電源線VDDと接地線VSSとの間に直列に接続された抵抗Rr0、Rr1、Rr2、Rr3、Rr4を有する。電圧生成回路40は、抵抗Rr0、Rr1、Rr2、Rr3、Rr4による抵抗分圧により、参照電圧VREF0、VREF1、VREF2、VREF3を生成する。例えば、抵抗Rr0、Rr1、Rr2、Rr3、Rr4の比は、”Rr0:Rr1:Rr2:Rr3:Rr4=3:2:2:2:3”で表される。この場合、抵抗Rr0と抵抗Rr1との接続ノードから出力される参照電圧VREF0は、9/12*VDDになる。抵抗Rr1と抵抗Rr2との接続ノードから出力される参照電圧VREF1は、7/12*VDDになる。抵抗Rr2と抵抗Rr3との接続ノードから出力される参照電圧VREF2は、5/12*VDDになる。抵抗Rr3と抵抗Rr4との接続ノードから出力される参照電圧VREF3は、3/12*VDDになる。
比較回路50は、4個の比較器COM(COM0、COM1、COM2、COM3)を有する。比較器COM0、COM1、COM2、COM3は、モニタ回路30からモニタ電圧VMONを受ける。また、比較器COM0、COM1、COM2、COM3は、電圧生成回路40から参照電圧VREF0、VREF1、VREF2、VREF3をそれぞれ受ける。そして、各比較器COM(COM0、COM1、COM2、COM3)は、モニタ電圧VMONと参照電圧VREFとを比較し、比較結果を示す比較結果情報DCOM(DCOM0、DCOM1、DCOM2、DCOM3)を電流検出部62に出力する。
例えば、比較器COM0は、モニタ電圧VMONが参照電圧VREF0より高い場合、論理値”1”の比較結果情報DCOM0を電流検出部62に出力する。すなわち、比較器COM0は、モニタ電圧VMONが参照電圧VREF0以下の場合、論理値”0”の比較結果情報DCOM0を電流検出部62に出力する。
比較器COM1は、モニタ電圧VMONが参照電圧VREF1より高い場合、論理値”1”の比較結果情報DCOM1を電流検出部62に出力する。また、比較器COM1は、モニタ電圧VMONが参照電圧VREF1以下の場合、論理値”0”の比較結果情報DCOM1を電流検出部62に出力する。
比較器COM2は、モニタ電圧VMONが参照電圧VREF2より高い場合、論理値”1”の比較結果情報DCOM2を電流検出部62に出力する。また、比較器COM2は、モニタ電圧VMONが参照電圧VREF2以下の場合、論理値”0”の比較結果情報DCOM2を電流検出部62に出力する。
比較器COM3は、モニタ電圧VMONが参照電圧VREF3より高い場合、論理値”1”の比較結果情報DCOM3を電流検出部62に出力する。また、比較器COM3は、モニタ電圧VMONが参照電圧VREF3以下の場合、論理値”0”の比較結果情報DCOM3を電流検出部62に出力する。なお、モニタ回路30、電圧生成回路40および比較回路50の構成は、図4に示す例に限定されない。
図5は、図2に示した終端調整回路20Aの動作の一例を示す。図5に示す動作は、ハードウェアのみで実現されてもよく、ハードウェアをソフトウェアにより制御することにより実現されてもよい。図5では、制御回路60A(特に、電流検出部62)の動作を中心に説明する。
ステップS100では、電流検出部62は、制御データCNTDを0(低論理レベル)に設定し、制御信号CNTIP、CNTINの値を0に設定する。これにより、モニタ電圧VMONは、電源電圧VDDに等しい電圧(または、ほぼ等しい電圧)になる。したがって、比較結果情報DCOMは、ステップS100の処理が実行されることにより、1111になる。なお、図5では、比較結果情報DCOMの0ビット目(最下位ビット)は、比較結果情報DCOM0を示し、比較結果情報DCOMの1ビット目は、比較結果情報DCOM1を示し、比較結果情報DCOMの2ビット目は、比較結果情報DCOM2を示す。そして、比較結果情報DCOMの3ビット目(最上位ビット)は、比較結果情報DCOM3を示す。ステップS100の処理が実行された後、ステップS110の処理が実行される。
ステップS110では、電流検出部62は、制御信号CNTINの値をインクリメントする(CNTIN=CNTIN+1)。これにより、予め設定された量の基準電流(例えば、図6に示す電流I0)に制御信号CNTINの値を乗じた量の負荷電流ILが、擬似回路32の出力端子OUTから引き抜かれる。モニタ電圧VMONは、出力端子OUTから引き抜く負荷電流ILの増加に伴い低下する。ステップS110の処理が実行された後、ステップS120の処理が実行される。
ステップS120では、電流検出部62は、比較結果情報DCOMが1110か否かを判定する。例えば、モニタ電圧VMONが参照電圧VREF0より高い電圧から参照電圧VREF0以下に変化した場合、比較結果情報DCOMは、1111から1110に変化する。
比較結果情報DCOMが1110である場合、電流検出部62の動作は、ステップS130に移る。なお、ステップS130以降の処理(例えば、ステップS300の処理等)では、比較結果情報DCOMが1111から1110に変化したときのモニタ電圧VMONのレベル(電圧値)は、参照電圧VREF0に等しいとして処理される。
一方、比較結果情報DCOMが1110でない場合(すなわち、比較結果情報DCOMが1111である場合)、電流検出部62の動作は、ステップS110に戻る。すなわち、ステップS130の処理は、モニタ電圧VMONが参照電圧VREF0より高い電圧から参照電圧VREF0以下に変化した場合に実行される。
ステップS130では、電流検出部62は、電流情報ISTN3を制御信号CNTINの値に設定する。すなわち、電流情報ISTN3は、比較結果情報DCOMが1111から1110に変化したときの制御信号CNTINの値に設定される。ステップS130の処理が実行された後、ステップS140の処理が実行される。
ステップS140では、電流検出部62は、制御信号CNTINの値をインクリメントする(CNTIN=CNTIN+1)。ステップS140の処理が実行された後、ステップS150の処理が実行される。
ステップS150では、電流検出部62は、比較結果情報DCOMが1100か否かを判定する。例えば、モニタ電圧VMONが参照電圧VREF1より高い電圧から参照電圧VREF1以下に変化した場合、比較結果情報DCOMは、1110から1100に変化する。
比較結果情報DCOMが1100である場合、電流検出部62の動作は、ステップS160に移る。なお、ステップS160以降の処理(例えば、ステップS300の処理等)では、比較結果情報DCOMが1110から1100に変化したときのモニタ電圧VMONのレベル(電圧値)は、参照電圧VREF1に等しいとして処理される。
一方、比較結果情報DCOMが1100でない場合(すなわち、比較結果情報DCOMが1110である場合)、電流検出部62の動作は、ステップS140に戻る。
ステップS160では、電流検出部62は、電流情報ISTN2を制御信号CNTINの値に設定する。すなわち、電流情報ISTN2は、比較結果情報DCOMが1110から1100に変化したときの制御信号CNTINの値に設定される。ステップS160の処理が実行された後、ステップS170の処理が実行される。
ステップS170では、電流検出部62は、制御信号CNTINの値をインクリメントする(CNTIN=CNTIN+1)。ステップS170の処理が実行された後、ステップS180の処理が実行される。
ステップS180では、電流検出部62は、比較結果情報DCOMが1000か否かを判定する。例えば、モニタ電圧VMONが参照電圧VREF2より高い電圧から参照電圧VREF2以下に変化した場合、比較結果情報DCOMは、1100から1000に変化する。
比較結果情報DCOMが1000である場合、電流検出部62の動作は、ステップS190に移る。なお、ステップS190以降の処理(例えば、ステップS300の処理等)では、比較結果情報DCOMが1100から1000に変化したときのモニタ電圧VMONのレベル(電圧値)は、参照電圧VREF2に等しいとして処理される。
一方、比較結果情報DCOMが1000でない場合(すなわち、比較結果情報DCOMが1100である場合)、電流検出部62の動作は、ステップS170に戻る。
ステップS190では、電流検出部62は、電流情報ISTN1を制御信号CNTINの値に設定する。すなわち、電流情報ISTN1は、比較結果情報DCOMが1100から1000に変化したときの制御信号CNTINの値に設定される。ステップS190の処理が実行された後、ステップS200の処理が実行される。
ステップS200では、電流検出部62は、制御データCNTDを1(高論理レベル)に設定し、制御信号CNTIP、CNTINの値を0に設定する。これにより、モニタ電圧VMONは、接地電圧VSSに等しい電圧(または、ほぼ等しい電圧)になる。したがって、比較結果情報DCOMは、ステップS200の処理が実行されることにより、0000になる。ステップS200の処理が実行された後、ステップS210の処理が実行される。
ステップS210では、電流検出部62は、制御信号CNTIPの値をインクリメントする(CNTIP=CNTIP+1)。これにより、予め設定された量の基準電流(例えば、図6に示す電流I0)に制御信号CNTIPの値を乗じた量の負荷電流ILが、擬似回路32の出力端子OUTに流し込まれる。モニタ電圧VMONは、出力端子OUTに流し込む負荷電流ILの増加に伴い上昇する。ステップS210の処理が実行された後、ステップS220の処理が実行される。
ステップS220では、電流検出部62は、比較結果情報DCOMが1000か否かを判定する。例えば、モニタ電圧VMONが参照電圧VREF3以下から参照電圧VREF3より高い電圧に変化した場合、比較結果情報DCOMは、0000から1000に変化する。
比較結果情報DCOMが1000である場合、電流検出部62の動作は、ステップS230に移る。なお、ステップS230以降の処理(例えば、ステップS300の処理等)では、比較結果情報DCOMが0000から1000に変化したときのモニタ電圧VMONのレベル(電圧値)は、参照電圧VREF3に等しいとして処理される。
一方、比較結果情報DCOMが1000でない場合(すなわち、比較結果情報DCOMが0000である場合)、電流検出部62の動作は、ステップS210に戻る。すなわち、ステップS230の処理は、モニタ電圧VMONが参照電圧VREF3以下から参照電圧VREF3より高い電圧に変化した場合に実行される。
ステップS230では、電流検出部62は、電流情報ISTP3を制御信号CNTIPの値に設定する。すなわち、電流情報ISTP3は、比較結果情報DCOMが0000から1000に変化したときの制御信号CNTIPの値に設定される。ステップS230の処理が実行された後、ステップS240の処理が実行される。
ステップS240では、電流検出部62は、制御信号CNTIPの値をインクリメントする(CNTIP=CNTIP+1)。ステップS240の処理が実行された後、ステップS250の処理が実行される。
ステップS250では、電流検出部62は、比較結果情報DCOMが1100か否かを判定する。例えば、モニタ電圧VMONが参照電圧VREF2以下から参照電圧VREF2より高い電圧に変化した場合、比較結果情報DCOMは、1000から1100に変化する。
比較結果情報DCOMが1100である場合、電流検出部62の動作は、ステップS260に移る。なお、ステップS260以降の処理(例えば、ステップS300の処理等)では、比較結果情報DCOMが1000から1100に変化したときのモニタ電圧VMONのレベル(電圧値)は、参照電圧VREF2に等しいとして処理される。
一方、比較結果情報DCOMが1100でない場合(すなわち、比較結果情報DCOMが1000である場合)、電流検出部62の動作は、ステップS240に戻る。
ステップS260では、電流検出部62は、電流情報ISTP2を制御信号CNTIPの値に設定する。すなわち、電流情報ISTP2は、比較結果情報DCOMが1000から1100に変化したときの制御信号CNTIPの値に設定される。ステップS260の処理が実行された後、ステップS270の処理が実行される。
ステップS270では、電流検出部62は、制御信号CNTIPの値をインクリメントする(CNTIP=CNTIP+1)。ステップS270の処理が実行された後、ステップS280の処理が実行される。
ステップS280では、電流検出部62は、比較結果情報DCOMが1110か否かを判定する。例えば、モニタ電圧VMONが参照電圧VREF1以下から参照電圧VREF1より高い電圧に変化した場合、比較結果情報DCOMは、1100から1110に変化する。
比較結果情報DCOMが1110である場合、電流検出部62の動作は、ステップS290に移る。なお、ステップS290以降の処理(例えば、ステップS300の処理等)では、比較結果情報DCOMが1100から1110に変化したときのモニタ電圧VMONのレベル(電圧値)は、参照電圧VREF1に等しいとして処理される。
一方、比較結果情報DCOMが1110でない場合(すなわち、比較結果情報DCOMが1100である場合)、電流検出部62の動作は、ステップS270に戻る。
ステップS290では、電流検出部62は、電流情報ISTP1を制御信号CNTIPの値に設定する。すなわち、電流情報ISTP1は、比較結果情報DCOMが1100から1110に変化したときの制御信号CNTIPの値に設定される。ステップS290の処理が実行された後、ステップS300の処理が実行される。
ステップS300では、制御回路60Aは、電流情報ISTP1−ISTP3、ISTN1−ISTN3等を用いて、制御信号CNTEP0、CNTEP1、CNTEN0、CNTEN1を算出する。制御信号CNTEP0、CNTEP1、CNTEN0、CNTEN1の算出方法は、図6で説明する。なお、終端調整回路20Aの動作は、図5に示す例に限定されない。
図6は、駆動回路80、81の使用数を算出する際に使用される計算式の一例を示す。図6以降では、擬似回路32の出力抵抗に、抵抗情報RM(RMP1、RMP2、RMP3、RMN1、RMN2、RMN3)と同じ符号を付して説明する場合もある。
モニタ電圧VMONの各出力レベルにおける擬似回路32の出力抵抗RM(RMP1、RMP2、RMP3、RMN1、RMN2、RMN3)は、図6に示すように、式(1)−式(6)でそれぞれ表される。
RMP1=(7/12*VDD)/(I0*ISTN1) ・・・(1)
RMP2=(5/12*VDD)/(I0*ISTN2) ・・・(2)
RMP3=(3/12*VDD)/(I0*ISTN3) ・・・(3)
RMN1=(7/12*VDD)/(I0*ISTP1) ・・・(4)
RMN2=(5/12*VDD)/(I0*ISTP2) ・・・(5)
RMN3=(3/12*VDD)/(I0*ISTP3) ・・・(6)
なお、電流I0は、制御信号CNTIP、CNTINの1ステップあたりの電流を示す。例えば、電流I0は、予め設定された量の基準電流である。また、電流情報ISTP1−ISTP3、ISTN1−ISTN3は、図5に示した動作により決定される。
出力抵抗RMP1は、モニタ電圧VMONが参照電圧VREF2(=5/12*VDD)に等しい(または、ほぼ等しい)ときの電源線VDDと出力端子OUTとの間の抵抗を示す。すなわち、出力抵抗RMP1は、2ビットの入力データDの入力パターン(11、10、01、00)のうち、入力データD1、D0が”10”である場合の1つの駆動回路80の終端抵抗に対応する。
出力抵抗RMP2は、モニタ電圧VMONが参照電圧VREF1(=7/12*VDD)に等しい(または、ほぼ等しい)ときの電源線VDDと出力端子OUTとの間の抵抗を示す。すなわち、出力抵抗RMP1は、入力データD1、D0が”01”である場合の1つの駆動回路81の終端抵抗に対応する。
出力抵抗RMP3は、モニタ電圧VMONが参照電圧VREF0(=9/12*VDD)に等しい(または、ほぼ等しい)ときの電源線VDDと出力端子OUTとの間の抵抗を示す。すなわち、出力抵抗RMP3は、入力データD1、D0が”00”である場合の1つの駆動回路80の終端抵抗と1つの駆動回路81の終端抵抗とに対応する。
出力抵抗RMN1は、モニタ電圧VMONが参照電圧VREF1(=7/12*VDD)に等しい(または、ほぼ等しい)ときの接地線VSSと出力端子OUTとの間の抵抗を示す。すなわち、出力抵抗RMN1は、入力データD1、D0が”01”である場合の1つの駆動回路80の終端抵抗に対応する。
出力抵抗RMN2は、モニタ電圧VMONが参照電圧VREF2(=5/12*VDD)に等しい(または、ほぼ等しい)ときの接地線VSSと出力端子OUTとの間の抵抗を示す。すなわち、出力抵抗RMN2は、入力データD1、D0が”10”である場合の1つの駆動回路81の終端抵抗に対応する。
出力抵抗RMN3は、モニタ電圧VMONが参照電圧VREF3(=3/12*VDD)に等しい(または、ほぼ等しい)ときの接地線VSSと出力端子OUTとの間の抵抗を示す。すなわち、出力抵抗RMN3は、入力データD1、D0が”11”である場合の1つの駆動回路80の終端抵抗と1つの駆動回路81の終端抵抗とに対応する。
例えば、抵抗計算部64は、電流検出部62から受けた電流情報ISTP1−ISTP3、ISTN1−ISTN3を式(1)−式(6)に代入して、各出力抵抗RMP1、RMP2、RMP3、RMN1、RMN2、RMN3を算出する。
駆動回路80の使用数PTE0、NTE0、駆動回路81の使用数PTE1、NTE1と出力抵抗RMとの関係は、送信回路70の終端抵抗の規定値が50Ωの場合、式(7)−式(14)で表される。制御信号CNTEP0、CNTEP1、CNTEN0、CNTEN1により設定されるそれぞれの使用数は、使用数PTE0、PTE1、NTE0、NTE1にそれぞれ対応する。なお、式(7)−式(14)の関係を満たす使用数PTE0、NTE0、PTE1、NTE1は、整数になるとは限らないため、実際に設定する使用数と異なる場合もある。
(RMP3/PTE0+RMP1/PTE0)/2=150 ・・・(7)
PTE0=(RMP3+RMP1)/300 ・・・(8)
(RMP3/PTE1+RMP2/PTE1)/2=75 ・・・(9)
PTE1=(RMP3+RMP2)/150 ・・・(10)
(RMN3/NTE0+RMN1/NTE0)/2=150 ・・・(11)
NTE0=(RMN3+RMN1)/300 ・・・(12)
(RMN3/NTE1+RMN2/NTE1)/2=75 ・・・(13)
NTE1=(RMN3+RMN2)/150 ・・・(14)
使用数PTE0は、トランジスタMP10がオン状態に設定される駆動回路80の数を示す。例えば、式(7)は、入力データD1、D0が”00”のときの”PTE0”個の駆動回路80の終端抵抗の合成値と入力データD1、D0が”10”のときの”PTE0”個の駆動回路80の終端抵抗の合成値との平均値が150Ωであることを示す。トランジスタMP10がオン状態に設定される駆動回路80の数PTE0は、式(7)を変形することより、式(8)で表される。
使用数PTE1は、トランジスタMP10がオン状態に設定される駆動回路81の数を示す。例えば、式(9)は、入力データD1、D0が”00”のときの”PTE1”個の駆動回路81の終端抵抗の合成値と入力データD1、D0が”01”のときの”PTE1”個の駆動回路81の終端抵抗の合成値との平均値が75Ωであることを示す。トランジスタMP10がオン状態に設定される駆動回路81の数PTE1は、式(9)を変形することより、式(10)で表される。
使用数NTE0は、トランジスタMN10がオン状態に設定される駆動回路80の数を示す。例えば、式(11)は、入力データD1、D0が”11”のときの”NTE0”個の駆動回路80の終端抵抗の合成値と入力データD1、D0が”01”のときの”NTE0”個の駆動回路80の終端抵抗の合成値との平均値が150Ωであることを示す。トランジスタMN10がオン状態に設定される駆動回路80の数NTE0は、式(11)を変形することより、式(12)で表される。
使用数NTE1は、トランジスタMN10がオン状態に設定される駆動回路81の数を示す。例えば、式(11)は、入力データD1、D0が”11”のときの”NTE1”個の駆動回路81の終端抵抗の合成値と入力データD1、D0が”10”のときの”NTE1”個の駆動回路81の終端抵抗の合成値との平均値が75Ωであることを示す。トランジスタMN10がオン状態に設定される駆動回路81の数NTE1は、式(13)を変形することより、式(14)で表される。
例えば、コード計算部66は、抵抗計算部64から受けた出力抵抗RMP1−RMP3、RMN1−RMN3を式(8)、式(10)、式(12)、式(14)に代入して、各使用数PTE0、PTE1、NTE0、NTE1を算出する。そして、コード計算部66は、使用数PTE0に最も近い整数を、トランジスタMP10をオン状態に設定する駆動回路80の数に決定し、決定した使用数をサーモメータコードに変換して制御信号CNTEP0を生成する。サーモメータコードは、例えば、複数の駆動回路80(制御信号CNTEP1、CNTEN1では、複数の駆動回路81)の各々に対応する各ビットが駆動回路80の使用また未使用のいずれかを示すコードである。
例えば、送信回路70nがq個(qは2以上の整数)の駆動回路80を有する場合、qビットの制御信号CNTEP0のうち、決定した使用数(使用数PTE0に最も近い整数)と同じ数のビットが0に設定される。制御信号CNTEP1、CNTEN0、CNTEN1も、制御信号CNTEP0と同様の方法により、使用数PTE1、NTE0、NTE1に基づいて生成される。
このように、制御回路60Aは、モニタ電圧VMONの複数のレベル毎に算出した擬似回路32の出力抵抗RMの値に基づいて2ビットの入力データD(D1、D0)のビット毎に駆動回路81、80の使用数を調整して、送信回路72の終端抵抗の値を調整する。すなわち、終端抵抗調整回路20Aは、2ビットの入力データDの複数の入力パターン毎に算出した擬似回路32の出力抵抗RMの値を用いて、駆動回路81、80の使用数を個別に調整する。これにより、1つの入力パターンに基づいて駆動回路80、81の使用数を調整した場合に比べて、駆動回路81の終端抵抗の合成値と駆動回路80の終端抵抗の合成値との比の変動(入力パターンの変化に伴う変動)を抑制することができる。
さらに、図6に示す例では、制御回路60Aは、送信回路72の終端抵抗のうち、電源線VDDに接続される第1終端抵抗と接地線VSSに接続される第2終端抵抗のそれぞれの値を個別に調整する。これにより、第1終端抵抗と第2終端抵抗とが独立に調整されない場合に比べて、駆動回路81、80の使用数を、式(7)、式(9)、式(11)、式(13)を満たす使用数に近づけることができる。すなわち、送信回路72の終端抵抗の値を適切に調整することができる。
図7は、4PAMにより生成される信号波形の一例を示す。理想的な波形は、駆動回路80の合成抵抗の値が入力データD1、D0の値に拘わらず駆動回路81の合成抵抗の値の2倍で安定している場合の4PAMの信号波形を示す。理想的な波形では、出力信号DOUTの各電圧レベルの差は互いに等しくなる。例えば、2ビットの入力データD1、D0で表される4つの値にそれぞれ対応する4つの電圧レベル(9/12*VDD、7/12*VDD、5/12*VDD、3/12*VDD)の差は、1/6*VDDになる。
比較例1は、駆動回路80の合成抵抗の値が駆動回路81の合成抵抗の値の2倍より小さい場合の4PAMの信号波形を示し、比較例2は、駆動回路80の合成抵抗の値が駆動回路81の合成抵抗の値の2倍より大きい場合の4PAMの信号波形を示す。比較例1および比較例2では、出力信号DOUTの各電圧レベルの差がばらつく。
図2に示した終端抵抗調整回路20Aは、駆動回路80の合成抵抗の値が入力データD1、D0の値に拘わらず駆動回路81の合成抵抗の値の約2倍で安定するように、駆動回路80、81の使用数を調整する。すなわち、終端抵抗調整回路20Aは、送信回路70n、70pから出力される出力信号DOUTの信号波形が図7に示す理想的な波形に近づくように、駆動回路80、81の使用数を調整する。
以上、図2から図7に示す実施形態においても、図1に示した実施形態と同様の効果を得ることができる。例えば、終端抵抗調整回路20Aは、駆動回路80、81の使用数を、モニタ電圧VMONの複数のレベル毎に算出した出力抵抗RMP1、RMP2、RMP3、RMN1、RMN2、RMN3に基づいて、個別に調整する。これにより、駆動回路81の合成抵抗の値と駆動回路80の合成抵抗の値との比の変動(入力パターンの変化に伴う変動)は、1つの入力パターンに基づいて駆動回路80、81の使用数を調整した場合に比べて抑制される。このように、終端抵抗調整回路20Aは、送信回路72の終端抵抗の値を適切に調整できる。
さらに、終端抵抗調整回路20Aは、トランジスタMP10をオン状態にする駆動回路80の数と、トランジスタMN10をオン状態にする駆動回路80の数とを個別に設定する。また、終端抵抗調整回路20Aは、トランジスタMP10をオン状態にする駆動回路81の数と、トランジスタMN10をオン状態にする駆動回路81の数とを個別に設定する。これにより、終端抵抗調整回路20Aは、送信回路72の終端抵抗のうち、電源線VDDに接続される第1終端抵抗と接地線VSSに接続される第2終端抵抗のそれぞれの値を個別に調整できる。この結果、送信回路72の終端抵抗の値をMOSトランジスタの特性に合わせて適切に調整することができる。
図8は、終端抵抗調整回路および終端抵抗調整回路を有する装置の別の実施形態を示す。図1から図7で説明した要素と同一または同様の要素については、同一または同様の符号を付し、これ等については、詳細な説明を省略する。図8に示す装置10Bは、差動送信回路74と、差動送信回路74の終端抵抗の値を調整する終端抵抗調整回路20Bとを有する。差動送信回路74および終端抵抗調整回路20Bは、例えば、サーバ等の情報処理装置または通信システムの基幹装置等に搭載される。
差動送信回路74は、差動の入力データDを受け、差動の出力信号DOUT(DOUTp、DOUTn)を受信装置等(図示せず)に出力する。入力データD0pは、入力データD0nの反転信号であり、入力データD1pは、入力データD1nの反転信号であり、入力データD2pは、入力データD2nの反転信号である。
例えば、差動送信回路74は、送信回路76n、76pを有する。送信回路76nの構成は、入力データD2用の駆動回路82nが図2に示した送信回路70nに追加されたことを除いて、送信回路70nの構成と同一または同様である。また、送信回路76pは、入力データD0n、D1n、D2nの代わりに入力データD0p、D1p、D2pを受け、出力信号DOUTnの代わりに出力信号DOUTpを出力することを除いて、送信回路76nと同一または同様である。
送信回路76nは、8PAM(8-level pulse amplitude modulation)を実行し、3ビットの入力データD2n、D1n、D0nで表される8つの値に対応する8つの電圧レベルのいずれかを有する出力信号DOUTnを生成する。図8に示した括弧内の8PAMの信号波形は、8PAMにより生成される信号の波形の一例を示す。例えば、”000”の入力データD(D2n、D1n、D0n)に対応する出力信号DOUTnの電圧レベルは、21/28*VDDである。”001”の入力データDに対応する出力信号DOUTnの電圧レベルは、19/28*VDDであり、”010”の入力データDに対応する出力信号DOUTnの電圧レベルは、17/28*VDDである。”011”の入力データDに対応する出力信号DOUTnの電圧レベルは、15/28*VDDであり、”100”の入力データDに対応する出力信号DOUTnの電圧レベルは、13/28*VDDである。”101”の入力データDに対応する出力信号DOUTnの電圧レベルは、11/28*VDDであり、”110”の入力データDに対応する出力信号DOUTnの電圧レベルは、9/28*VDDである。”111”の入力データDに対応する出力信号DOUTnの電圧レベルは、7/28*VDDである。
例えば、送信回路76nは、入力データD0nを受ける複数の駆動回路80nと、入力データD1nを受ける複数の駆動回路81nと、入力データD2nを受ける複数の駆動回路82nとを有する。駆動回路80n、81nの構成は、図2に示した駆動回路80n、81nと同一または同様である。また、駆動回路82nは、入力データD0n、制御信号CNTEP0、CNTEN0の代わりに、入力データD2n、制御信号CNTEP2、CNTEN2を受けることを除いて、駆動回路80nと同一または同様である。駆動回路80n、81n、82nの出力端子OUTは、互いに接続される。
したがって、送信回路76nの終端抵抗の値は、3ビットの入力データD(D2n、D1n、D0n)のビット毎に駆動回路82n、81n、80nの使用数を調整することにより調整される。以下、駆動回路80nは、駆動回路80とも称され、駆動回路81nは、駆動回路81とも称され、駆動回路82nは、駆動回路82とも称される。
終端抵抗調整回路20Bは、制御信号CNTE(CNTEN0−CNTEN2、CNTEP0−CNTEP2)を用いて、駆動回路82、81、80のそれぞれの使用数を調整する。これにより、送信回路76n、76pの終端抵抗の値が調整される。終端抵抗調整回路20Bの詳細は、図9に示す。
なお、終端抵抗調整回路20Bおよび差動送信回路74の構成(すなわち、装置10Bの構成)は、図8に示す例に限定されない。例えば、各送信回路76(76n、76p)は、4ビット以上の入力データDを振幅変調して出力信号DOUTを生成してもよい。この場合、各送信回路76は、入力データDのビット毎に駆動回路80nと同一または同様な複数の駆動回路を有する。そして、終端抵抗調整回路20Bは、入力データDのビット毎に駆動回路の使用数を調整して、各送信回路76の終端抵抗の値を調整する。また、装置10Bは、シングルエンド入力の送信回路(送信回路76n、76pの一方が差動送信回路74から省かれた回路)を、差動送信回路74の代わりに有してもよい。
図9は、図8に示した終端抵抗調整回路20Bの一例を示す。終端抵抗調整回路20Bは、例えば、モニタ回路30、電圧生成回路40A、比較回路50Aおよび制御回路60Bを有する。
モニタ回路30は、図4に示したモニタ回路30と同一または同様である。例えば、モニタ回路30は、駆動回路80の終端抵抗と同じ特性を有する出力抵抗を含む疑似回路32と、電流源34、36とを有する。電流源34は、予め設定された量の基準電流(例えば、図6に示した電流I0)に制御信号CNTIPの値を乗じた量の負荷電流ILを、擬似回路32の出力端子OUTに流し込む。また、電流源36は、予め設定された量の基準電流(例えば、図6に示した電流I0)に制御信号CNTINの値を乗じた量の負荷電流ILを、擬似回路32の出力端子OUTから引き抜く。
電圧生成回路40Aは、送信回路76に供給される3ビットの入力データD2、D1、D0により表される8つの値にそれぞれ対応する8つの参照電圧VREF(VREF0、VREF1、・・・、VREF6、VREF7)を生成する。なお、電圧生成回路40Aは、生成する参照電圧VREF(VREF1−VREF7)の数を除いて、図4に示した電圧生成回路40と同様である。
例えば、電圧生成回路40Aは、電源線VDDと接地線VSSとの間に直列に接続された9個の抵抗Rra(Rra0、Rra1、Rra2、・・・、Rra6、Rra7、Rra8)を有する。そして、電圧生成回路40Aは、9個の抵抗Rraによる抵抗分圧により、8つの参照電圧VREF(VREF0、VREF1、・・・、VREF6、VREF7)を生成する。例えば、抵抗Rra0、Rra1の比は、”Rra0:Rra1=7:2”で表される。また、例えば、抵抗Rra8は、抵抗Rra0と同じ抵抗値(または、ほぼ同じ抵抗値)であり、9個の抵抗Rraのうちの抵抗Rra0、Rra8を除く7個の抵抗Rraは、互いに同じ抵抗値(または、ほぼ同じ抵抗値)である。
この場合、抵抗Rra0と抵抗Rra1との接続ノードから出力される参照電圧VREF0は、21/28*VDDになる。抵抗Rra1と抵抗Rra2との接続ノードから出力される参照電圧VREF1は、19/28*VDDになる。また、抵抗Rra6と抵抗Rra7との接続ノードから出力される参照電圧VREF6は、9/28*VDDになる。抵抗Rra7と抵抗Rra8との接続ノードから出力される参照電圧VREF3は、7/28*VDDになる。
比較回路50Aは、比較器COMの数を除いて、図4に示した比較回路50と同一または同様である。例えば、比較回路50は、8個の比較器COM(COM0、COM1、・・・、COM6、COM7)を有し、8つの比較結果情報DCOM(DCOM0、DCOM1、・・・、DCOM6、DCOM7)を制御回路60Bの電流検出部62Aに出力する。
例えば、比較器COM0−COM7は、モニタ回路30からモニタ電圧VMONを受ける。また、比較器COM0−COM7は、電圧生成回路40から参照電圧VREF0−VREF7をそれぞれ受ける。そして、各比較器COM(COM0−COM7)は、モニタ電圧VMONと参照電圧VREFとを比較し、比較結果を示す比較結果情報DCOM(DCOM0、DCOM1、・・・、DCOM6、DCOM7)を電流検出部62Aに出力する。
例えば、比較器COM0は、モニタ電圧VMONが参照電圧VREF0より高い場合、論理値”1”の比較結果情報DCOM0を電流検出部62Aに出力する。すなわち、比較器COM0は、モニタ電圧VMONが参照電圧VREF0以下の場合、論理値”0”の比較結果情報DCOM0を電流検出部62Aに出力する。
比較器COM1は、モニタ電圧VMONが参照電圧VREF1より高い場合、論理値”1”の比較結果情報DCOM1を電流検出部62Aに出力する。また、比較器COM1は、モニタ電圧VMONが参照電圧VREF1以下の場合、論理値”0”の比較結果情報DCOM1を電流検出部62Aに出力する。
比較器COM6は、モニタ電圧VMONが参照電圧VREF6より高い場合、論理値”1”の比較結果情報DCOM6を電流検出部62Aに出力する。また、比較器COM6は、モニタ電圧VMONが参照電圧VREF6以下の場合、論理値”0”の比較結果情報DCOM6を電流検出部62Aに出力する。
比較器COM7は、モニタ電圧VMONが参照電圧VREF7より高い場合、論理値”1”の比較結果情報DCOM7を電流検出部62Aに出力する。また、比較器COM7は、モニタ電圧VMONが参照電圧VREF7以下の場合、論理値”0”の比較結果情報DCOM7を電流検出部62Aに出力する。
制御回路60Bは、比較回路50Aから受ける比較結果情報DCOMのビット数および差動送信回路74に出力する制御信号CNTEの数を除いて、図2に示した制御回路60Aと同一または同様である。例えば、制御回路60Bは、電流検出部62A、抵抗計算部64Aおよびコード計算部66Aを有する。
電流検出部62Aは、比較回路50Aから受ける比較結果情報DCOMのビット数および抵抗計算部64Aに出力する電流情報IST(ISTP1−ISTP7、ISTN1−ISTN7)の数を除いて、図2に示した電流検出部62と同一または同様である。
抵抗計算部64Aは、電流検出部62Aから受ける電流情報ISTの数およびコード計算部66Aに出力する抵抗情報RMP(RMP1−RMP7)、RMN(RMN1−RMN7)の数を除いて、図2に示した抵抗計算部64と同一または同様である。例えば、抵抗計算部64Aは、電流検出部62Aから受けた電流情報ISTに基づいて、擬似回路32の出力抵抗の値をモニタ電圧VMONの8つのレベル毎に算出する。そして、抵抗計算部64Aは、モニタ電圧VMONの8つのレベル毎に算出した擬似回路32の出力抵抗の値を示す抵抗情報RMP1−RMP7、RMN1−RMN7を、コード計算部66Aに出力する。
コード計算部66Aは、抵抗計算部64Aから受ける抵抗情報RMP、RMNの数および差動送信回路74に出力する制御信号CNTEの数を除いて、図2に示したコード計算部66と同一または同様である。例えば、コード計算部66Aは、抵抗計算部64Aから受けた抵抗情報RMP、RMNに基づいて、3ビットの入力データDの各ビットに対応する駆動回路80、81、82のそれぞれの使用数を算出する。そして、コード計算部66Aは、算出した使用数と同じ数の駆動回路80、81、82を駆動可能な状態にする制御信号CNTE(CNTEN0−CNTEN2、CNTEP0−CNTEP2)を生成し、生成した制御信号CNTEを差動送信回路74に出力する。
なお、終端抵抗調整回路20Bの構成は、図9に示す例に限定されない。例えば、終端抵抗調整回路20Bは、4ビット以上の入力データDを振幅変調して出力信号DOUTを生成する送信回路の終端抵抗の値を調整してもよい。入力データDのビット数がmビット(mは、2以上の整数)である場合、例えば、電圧生成回路40Aは、2のm乗個の参照電圧VREFを等間隔になるように生成にする。また、比較回路50Aは、2のm乗個の参照電圧VREFの各々とモニタ電圧VMONとをそれぞれ比較し、2のm乗個の比較結果DCOMを制御回路60Bに出力する。
mビットの入力データDの値j(j=0、1、・・・、2m−1)に対応する参照電圧VREFをVREFjとした場合、比較結果情報DCOMは、モニタ電圧VMONが参照電圧VREFjより高い電圧から参照電圧VREFj以下に変化したときに変化する。あるいは、比較結果情報DCOMは、モニタ電圧VMONが参照電圧VREFj以下から参照電圧VREFjより高い電圧に変化したときに変化する。
モニタ電圧VMONが参照電圧VREFj(j=0、1、・・・、2m−2)より高い電圧から参照電圧VREFj以下に変化したときの制御信号CNTINの値は、電流情報ISTNi(i=2m−1−j)に設定される。また、モニタ電圧VMONが参照電圧VREFj(j=2m−1、2m−2、・・・、1)以下から参照電圧VREFjより高い電圧に変化したときの制御信号CNTINの値は、電流情報ISTPi(i=j)に設定される。
モニタ電圧VMONの各出力レベルにおける擬似回路32の出力抵抗RMPi(i=1、2、・・・、2m−1)に流れる負荷電流ILNiは、制御信号CNTIP、CNTINの1ステップあたりの電流I0を用いて、”I0*ISTNi”で表される。また、モニタ電圧VMONの各出力レベルにおける擬似回路32の出力抵抗RMNi(i=1、2、・・・、2m−1)に流れる負荷電流ILPiは、”I0*ISTPi”で表される。
そして、出力抵抗RMPi、RMNi(i=1、2、・・・、2m−1)は、負荷電流ILNi(=I0*ISTNi)、ILPi(=I0*ISTPi)を用いて、式(15)、式(16)でそれぞれ表される。
RMPi=(3/4−i/(2*(2m−1)))*VDD/ILNi ・・・(15)
RMNi=(3/4−i/(2*(2m−1)))*VDD/ILPi ・・・(16)
例えば、m=2の場合、図6で説明した式(1)−式(6)が導かれる。また、m=3の場合、出力抵抗RMP1、RMP2、RMP7(出力抵抗RMP1−RMP7のうちの一例)は、式(17)、式(18)、式(19)で表される。出力抵抗RMN1、RMN2、RMN7(出力抵抗RMN1−RMN7のうちの一例)は、式(20)、式(21)、式(22)で表される。
RMP1=19/28*VDD/ILN1 ・・・(17)
RMP2=17/28*VDD/ILN2 ・・・(18)
RMP7=7/28*VDD/ILN7 ・・・(19)
RMN1=19/28*VDD/ILP1 ・・・(20)
RMN2=17/28*VDD/ILP2 ・・・(21)
RMN7=7/28*VDD/ILP7 ・・・(22)
mビットの入力データの各ビットに対応する駆動回路の使用数PTEk、NTEk(k=0、1、・・・、m−1)は、送信回路76の終端抵抗の規定値が50Ωの場合、式(23)、式(24)でそれぞれ表される。
PTEk=Σ(RMPx/(50*(2m−1)*(2m−1−k))) ・・・(23)
NTEk=Σ(RMNx/(50*(2m−1)*(2m−1−k))) ・・・(24)
なお、式中のxは、RMPi、RMNiのiを2進数で表したときのkビット目(最下位ビットは、0ビット目)が1となる組み合わせである。例えば、m=3、k=1の場合、式(23)、式(24)は、x=111、110、011、010(すなわち、i=7、6、3、2)の4個の加算となる。
m=2の場合、図6で説明した式(8)、式(10)、式(12)、式(14)が導かれる。また、m=3の場合、駆動回路の使用数PTEk、NTEk(k=0、1、2)は、式(25)−式(30)でそれぞれ表される。
PTE0=(RMP7+RMP5+RMP3+RMP1)/1400 ・・・(25)
PTE1=(RMP7+RMP6+RMP3+RMP2)/700 ・・・(26)
PTE2=(RMP7+RMP6+RMP5+RMP4)/350 ・・・(27)
NTE0=(RMN7+RMN5+RMN3+RMN1)/1400 ・・・(28)
NTE1=(RMN7+RMN6+RMN3+RMN2)/700 ・・・(29)
NTE2=(RMN7+RMN6+RMN5+RMN4)/350 ・・・(30)
ここで、RMPiのiを2進数で表した場合の各ビットの反転値は、mビットの入力データDの値に対応し、RMNiのiを2進数で表した場合の各ビットの値は、mビットの入力データDの各ビットの値に対応する。したがって、使用数PTEkは、mビットの入力データDのうちのkビット目が0になる複数の入力パターンのそれぞれに対応する複数のレベルの出力抵抗RMPの値の平均に基づいて算出される。また、使用数NTEkは、mビットの入力データDのうちのkビット目が1になる複数の入力パターンのそれぞれに対応する複数のレベルの出力抵抗RMNの値の平均に基づいて算出される。
コード計算部66Aは、例えば、式(25)−式(27)に基づいて算出した使用数PTE0、PTE1、PTE2の各々に最も近い整数を、トランジスタMP10をオン状態に設定する駆動回路80、81、82の数(使用数)に決定する。そして、コード計算部66Aは、決定した使用数をサーモメータコードに変換して制御信号CNTEP0、CNTEP1、CNTEP2を生成する。また、コード計算部66Aは、式(28)−式(30)に基づいて算出した使用数NTE0、NTE1、NTE2の各々に最も近い整数を、トランジスタMN10をオン状態に設定する駆動回路80、81、82の数(使用数)に決定する。そして、コード計算部66Aは、決定した使用数をサーモメータコードに変換して制御信号CNTEN0、CNTEN1、CNTEN2を生成する。
以上、図8から図9に示す実施形態においても、図2から図7に示した実施形態と同様の効果を得ることができる。例えば、終端抵抗調整回路20Bは、駆動回路80、81、82の使用数を、モニタ電圧VMONの複数のレベル毎に算出した出力抵抗RMP1−RMP7、RMN1−RMN7に基づいて、個別に調整する。これにより、駆動回路82の合成抵抗の値と、駆動回路81の合成抵抗の値と駆動回路80の合成抵抗の値との比の変動(入力パターンの変化に伴う変動)は、1つの入力パターンに基づいて駆動回路80、81、82の使用数を調整した場合に比べて抑制される。これにより、送信回路76の終端抵抗の値を適切に調整することができる。
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。