(第1の実施形態)
図1は第1の実施形態によるインターフェース回路の構成例を示す図であり、図2は図1のインターフェース回路の動作例を示すタイミングチャートである。インターフェース回路は、パラレルインターフェースの半導体集積回路であり、例えば、DDR1、DDR2、DDR3、PCI、LVCMOS等のパラレルインターフェース回路である。
バッファ129〜131は、クロックツリーを構成する。クロック信号CK1は、バッファ129に入力される。クロック信号CK2は、バッファ130から出力される。クロック信号CK3は、バッファ131から出力される。フリップフロップ122は、ロジック回路121からクロック信号を入力し、クロック信号CK2の立ち下がりエッジに同期して、クロック信号ACKを出力する。n個のフリップフロップ101〜10nは、それぞれ、ロジック回路121からn個の入力信号を入力し、クロック信号CK2の立ち上がりエッジに同期して、n個の入力信号A1〜Anを出力する。
入出力バッファ123は、電源電圧端子が電源電圧ノードIO_VDD及びIO_VDEに接続され、基準電位端子が基準電位ノードIO_VSSに接続され、クロック信号ACKを増幅し、クロック信号BCKを出力する。基準電位ノードIO_VSSは、外部基準電位ノードVSS(例えば0V)に接続される。電源電圧ノードIO_VDDは、外部電源電圧ノードVDDに接続される。n個の入出力バッファ(第1のバッファ)111〜11nは、それぞれ、電源電圧端子が電源電圧ノードIO_VDD及びIO_VDEに接続され、基準電位端子が基準電位ノードIO_VSSに接続され、n個の入力信号A1〜Anを増幅し、信号B1〜Bnを出力する。
制御回路126は、第1の制御回路127及び第2の制御回路128を有する。第2の制御回路128は、バッファ148及びレベルシフト回路149を有し、クロック信号CK1を高圧側にレベルシフトし、クロック信号CNTLを出力する。昇圧回路125は、クロック信号CNTLの周期で、内部コンデンサの充電及び放電を繰り返すことにより、第1の電源電圧ノードVDEの電圧を昇圧し、その昇圧した電圧を第2の電源電圧ノードVDE1に出力する。
スイッチ124は、pチャネル電界効果トランジスタのシャントトランジスタであり、第2の電源電圧ノードVDE1及び電源電圧ノードIO_VDE間に接続される。すなわち、スイッチ124は、第2の電源電圧ノードVDE1及び入出力バッファ111〜11n,123の電源電圧端子間に接続される。具体的には、トランジスタ124は、ゲートに制御信号φが入力され、ソースが第2の電源電圧ノードVDE1に接続され、ドレインが電源電圧ノードIO_VDEに接続される。第1の電源電圧ノードVDEは、パッケージの寄生インダクタLpを介して電源電圧ノードIO_VDEに接続される。スイッチ124がオフになると、電源電圧ノードIO_VDEには、第1の電源電圧ノードVDEのみから電源電圧が供給される。これに対し、スイッチ124がオンになると、電源電圧ノードIO_VDEには、第1の電源電圧ノードVDE及び第2の電源電圧ノードVDE1の両方から電源電圧が供給される。電源電圧ノードIO_VDEは、入出力バッファ111〜11n及び入出力バッファ123の電源電圧端子に共通に接続される。
第1の制御回路127は、2分周器132、インバータ133、遅延器150及びレベルシフト回路147を有する。遅延器150は、相互に遅延時間が異なる5個(説明のため5個の遅延素子を考える)の遅延素子(バッファ)141〜145及びセレクタ146を有する。2分周器132は、クロック信号CK3を2分周し、その2分周したクロック信号を出力する。インバータ133は、2分周器132の出力信号を論理反転した信号C1を出力する。遅延素子141は、クロック信号C1を1番短い第1の遅延時間遅延させた信号を出力する。遅延素子142は、クロック信号C1を2番目に短い第2の遅延時間遅延させた信号を出力する。遅延素子143は、クロック信号C1を3番目に短い第3の遅延時間遅延させた信号を出力する。遅延素子144は、クロック信号C1を4番目に短い第4の遅延時間遅延させた信号を出力する。遅延素子145は、クロック信号C1を5番目に短い第5の遅延時間遅延させた信号を出力する。セレクタ146は、選択信号に応じて、複数の遅延素子141〜145の出力信号の中から1つを選択し、選択した出力信号C2をレベルシフト回路147に出力する。すなわち、セレクタ146は、選択信号に応じて、複数の遅延時間の中から1つを選択して遅延時間を設定する。レベルシフト回路147は、セレクタ146により選択された信号C2を高圧側にレベルシフトし、制御信号φを出力する。スイッチ124は、制御信号φがローレベルになるとオンし、制御信号φがハイレベルになるとオフする。
図3は、昇圧回路125の内部構成及びその周辺回路の例を示す図である。昇圧回路125は、インダクタL、nチャネル電界効果トランジスタMN1,MN2及びコンデンサCを有する。トランジスタMN2は、ダイオードとして機能する。トランジスタMN2のダイオードは、ゲートがアノードになり、ソース及びドレインがカソードになる。すなわち、トランジスタMN2のダイオードは、アノードがインダクタL及びトランジスタMN1に接続され、カソードがコンデンサC及びスイッチ124に接続される。トランジスタMN1は、クロック信号CNTLがハイレベルになるとオンし、クロック信号CNTLがローレベルになるとオフする。トランジスタMN1のオン抵抗は、100Ω以上である。クロック信号CNTLがローレベルになると、トランジスタMN1がオフし、コンデンサCには、第1の電源電圧ノードVDEからインダクタL及びトランジスタ(ダイオード)MN2を介して、LC共振により、第1の電源電圧ノードVDEより高い電圧に充電される。これに対して、クロック信号CNTLがハイレベルになると、トランジスタMN1がオンし、コンデンサCは放電する。コンデンサCは、クロック信号CNTLの周期で充電及び放電を繰り返し、第1の電源電圧ノードVDEの電圧よりも高い略一定の電圧を保持し、その保持した電圧を第2の電源電圧ノードVDE1に出力する。昇圧回路125は、第1の電源電圧ノードVDEの電圧を昇圧し、その昇圧した電圧を第2の電源電圧ノードVDE1に出力する。第2の電源電圧ノードVDE1の電圧は、第1の電源電圧ノードVDEの電圧よりも高い。
昇圧回路125は、SSNによるL×dI/dtの電源電圧の変化量を抑えるように設計する。具体的には、昇圧回路125は、チップ内部のMOSダイオードMN2、コンデンサC、及び配線層で作成されるインダクタLを有する。昇圧電圧の飽和電圧は、集積回路の信頼性で保証可能な定格電圧以下にする必要があり、かつ、SSNのノイズ変動に追従できるスイッチング速度を実現する必要がある。信号CNTLは、SSNを発生させているインターフェース回路のクロック信号BCKの動作周波数の2〜4倍程度に設定する。例えば、信号CNTLの周波数は、クロック信号CK1の周波数と同じである。その場合、クロック信号BCKの周期をtCKとすると、クロック信号CK1及びCNTLの周期はtCK/2である。すなわち、クロック信号CK1及びCNTLの周波数は、クロック信号BCKの周波数の2倍である。
図4は、昇圧回路125内のインダクタLのインダクタンス値に応じた昇圧電圧の時間変化を示すタイムチャートである。縦軸は第2の電源電圧ノードVDE1の電圧を示し、横軸は時間を示す。電圧401はインダクタLのインダクタンス値が0.5nHの時の電圧、電圧402はインダクタLのインダクタンス値が5nHの時の電圧、電圧403はインダクタLのインダクタンス値が50nHの時の電圧を示す。インダクタLのインダクタンス値が大きければ大きいほど、昇圧電圧は急峻に飽和電圧に達する。インダクタンス値は、50nHが好ましい。
オンチップインダクタLは、外形が大きいため、チップ外部の外部電源である第1の電源電圧ノードVDEから、パッケージを経由してシリコン内部に至る経路で、合計して50nH程度のインダクタンスを段階的に形成しても良い。
MOSダイオードMN2はnチャネル電界効果トランジスタで形成したダイオードであり、ゲートとバルクを印加電圧側とし、ソースとドレインを負荷側として接続する。負荷側には、コンデンサCを接続する。インダクタLのインダクタンス値が50nHの場合、昇圧回路125の出力ノードVDE1の電圧は、LC共振の最大値の電圧であり、コンデンサCの値を基に、次式(2)で表される。ここで、MはMOSダイオードMN2の並列度を示すパラメータである。CはnFのオーダーであり、2.5nFの場合は2.5を代入する。
VDE1=−2×10-6×M2+{(−0.0001×C+5×10-5)×M
+(4.1787×C( -0.0143 ))} ・・・(2)
図5は、式(2)の並列度M及びコンデンサCの値に応じた第2の電源電圧ノードVDE1の電圧[V]を示す図である。集積回路の信頼性上の耐圧を例えば、4.1Vと仮定したとき、その電圧以上の不適切領域がハッチで示す領域503である。続いて、SSNの改善として、標準的なI/O電源電圧(3.3V)を中心として、どの程度の電源変動を救済したいかという観点で、500mVの変動をカバーしたいとすると、3.3+0.5=3.8Vを下限限界として、ハッチで示す領域501が設定される。領域501及び503以外の領域502の中から、デバイスサイズが最小となるパラメータを決定する。この例では、コンデンサCの大きさは1nFであり、MOSダイオードMN2の並列度Mは200と決定される。
外部の第1の電源電圧ノードVDEは、入出力バッファ111〜11n,123に対して、2系統のパスで接続可能になっている。2系統のうちの第1の系統のパスは、第1の電源電圧ノードVDEから、パッケージの寄生インダクタLpを介して入出力バッファ111〜11n,123に入るパスである。2系統のうちの第2の系統のパスは、第1の電源電圧ノードVDEから、昇圧回路125を経由して第2の電源電圧ノードVDE1で昇圧され、スイッチ124を介して入出力バッファ111〜11n,123に入るパスである。
図7(B)は、入力信号A1がローレベルからハイレベルに変化したときの入出力バッファ111の動作を示す図である。入出力バッファ111は、内部回路711、pチャネル電界効果トランジスタ712及びnチャネル電界効果トランジスタ713を有する。pチャネル電界効果トランジスタ712及びnチャネル電界効果トランジスタ713は、最終段のインバータを構成する。pチャネル電界効果トランジスタ712は、ソースが電源電圧ノードIO_VDEに接続され、ゲートが内部回路711に接続され、ドレインが出力端子を介して外部負荷コンデンサ714に接続される。nチャネル電界効果トランジスタ713は、ドレインが出力端子を介して外部負荷コンデンサ714に接続され、ゲートが内部回路711に接続され、ソースが基準電位ノードVSSに接続される。入力信号A1がローレベルからハイレベルに変化すると、pチャネル電界効果トランジスタ712がオンし、nチャネル電界効果トランジスタ713がオフする。この場合、電源電圧ノードIO_VDEのSSNを抑制するため、スイッチ124をオンにする。すると、2個の電流パス721及び722により、外部負荷コンデンサ714に電流が流れる。電流パス721は、第1の電源電圧ノードVDEから、寄生インダクタLp及びトランジスタ712を介して、外部負荷コンデンサ714に流れる電流パスである。電流パス722は、第2の電源電圧ノードVDE1から、スイッチ124及びトランジスタ712を介して、外部負荷トランジスタ714に流れる電流パスである。これにより、入力信号A1がローレベルからハイレベルに変化すると、pチャネル電界効果トランジスタ712がオンし、信号B1もローレベルからハイレベルに変化する。
図7(C)は、入力信号A1がハイレベルからローレベルに変化したときの入出力バッファ111の動作を示す図である。入力信号A1がハイレベルからローレベルに変化すると、pチャネル電界効果トランジスタ712がオフし、nチャネル電界効果トランジスタ713がオンする。この場合、スイッチ124がオフになる。電流パス723により、外部負荷コンデンサ714からトランジスタ713を介して基準電位ノードVSSに電流が流れる。これにより、入力信号A1がハイレベルからローレベルに変化すると、nチャネル電界効果トランジスタ713がオンし、信号B1もハイレベルからローレベルに変化する。
図6(A)は、スイッチ124が常にオフの場合の電圧波形例を示す図である。SSNのノイズ発生のメカニズムを説明する。図6(A)では、入力信号A1の35ns付近の立ち上がりエッジで、図7(B)に示すように、入出力バッファ111内の最終段のpチャネル電界効果トランジスタ712がオンとなり、電源電圧ノードIO_VDEの電圧は第1の電源電圧ノードVDEの電圧(例えば3.3V)よりも低くなる。入力信号A1の44ns付近の立ち下がりエッジでは、図7(C)に示すように、入出力バッファ111内の最終段のnチャネル電界効果トランジスタ713がオンとなり、基準電位ノードIO_VSSの電位は外部基準電位ノードVSSの電位(例えば0V)よりも高くなる。
図6(B)は、制御信号φに応じてスイッチ124を制御する場合の電圧波形例を示す図である。スイッチ124がオフの状態では、昇圧回路125の出力ノードVDE1は、上記のクロック信号CNTLによるポンピング動作で飽和電圧(無負荷で4.09V)に達する。スイッチ124の制御信号φは、入力信号A1の周波数と同一であり、かつ、入力信号A1よりも位相をずらした信号である。
入力信号A1がローレベルからハイレベルに遷移し、図7(B)に示すように、入出力バッファ111内の最終段のpチャネル電界効果トランジスタ712がオンとなり、入出力バッファ111の出力端子に接続される伝送路及び外部負荷コンデンサ714の充電が始まり、電源電圧ノードIO_VDEの電圧が下がり始める。それと共に、制御信号φをハイレベルからローレベルに切り換えることによりスイッチ124をオンさせ、昇圧回路125の出力ノードVDE1と電源電圧ノードIO_VDEとを直結させる。これにより、37ns付近では、図6(B)の電源電圧ノードIO_VDEの電圧は、図6(A)の電源電圧ノードIO_VDEの電圧より落ち込みが小さくなっており、第2の電源電圧ノードVDE1からの給電が起こっているといえる。
入力信号A1がハイレベルからローレベルに遷移するタイミング(44.5ns付近)の後、図7(C)に示すように、入出力バッファ111内の最終段のnチャネル電界効果トランジスタ713がオンとなり、電流パス723により伝送路及び外部負荷コンデンサ714の電流が基準電位ノードIO_VSSに放電して流れる。このとき、入出力バッファ111内の最終段のpチャネル電界効果トランジスタ712がオフであり、電源電圧ノードIO_VDEの電圧の揺れは、第1の電源電圧ノードVDE及び電源電圧ノードIO_VDE間の電源供給経路のLSI、パッケージ及びプリント基板を含めた共振インピーダンスで振動することとなる。
図7(A)は、スイッチ制御の有無に応じた電源電圧ノードIO_VDEの電圧の比較例を示す図である。電圧IO_VDE1は、制御信号φに応じてスイッチ124を制御したときの電源電圧ノードIO_VDEの電圧を示す。電圧IO_VDE2は、スイッチ124が常にオフのときの電源電圧ノードIO_VDEの電圧を示す。入力信号A1がローレベルからハイレベルに遷移した後の37ns付近において、電圧IO_VDE1は、電圧IO_VDE2よりも落ち込みが小さく、SSNが低減されている。
制御信号φの前半周期701では、入出力バッファ111内のpチャネル電界効果トランジスタ712がオンし、外部負荷コンデンサ714を充電する際に発生するSSNのノイズΔVは、Lp×dI/dtに比例する。そこで、ノイズΔVの分だけ昇圧回路125の出力ノードVDE1から電流を補充してもらうように、スイッチ124をオンする。制御信号φの後半周期702では、入出力バッファ111内のpチャネル電界効果トランジスタ712が外部負荷コンデンサ714の放電パス723には寄与しておらず、電源電圧ノードIO_VDEの電圧は電源電圧ノードIO_VDEの電源網が持つ閉回路の共振で揺れる。
本実施形態では、入力信号A1がローレベルからハイレベルに変化した際に、SSNによるLp×dI/dtの逆起電力分、電源電圧が劣ってしまう分を補うように、電源電圧ノードIO_VDEの電圧変動を抑制するようにスイッチ124をオン/オフ制御する。
図8は、図1及び図3のレベルシフト回路147の構成例を示す回路図である。以下、レベルシフト回路147の構成例を説明するが、レベルシフト回路149もレベルシフト回路147と同様の構成を有する。レベルシフト回路147は、反転差動アンプ及び駆動能力増幅バッファを有し、電源電圧ノードIO_VDD,IO_VDE及び基準電位ノードIO_VSSに接続される。レベルシフト回路147は、インバータ801,802、nチャネル電界効果トランジスタMN3,MN4、pチャネル電界効果トランジスタMP3,MP4及び駆動能力増幅バッファ803を有する。駆動能力増幅バッファ803は、3段のインバータを有する。
nチャネル電界効果トランジスタMN3のゲートは、インバータ801を介して入力信号INを入力する。nチャネル電界効果トランジスタMN4のゲートは、インバータ801及び802を介して入力信号INを入力する。トランジスタMN3及びMN4の入力信号は、相互に相補の関係にあり、一方がハイレベルであれば、他方がローレベルである。入力信号INがハイレベルである場合、トランジスタMN3はオフ、トランジスタMN4はオンとなる。トランジスタMN4がオンになるので、ノードBの電位は基準電位ノードIO_VSSの電位に落ちて行く。また、トランジスタMN3がオフであるので、ノードAの電位は、プルアップ抵抗と同等の働きをするトランジスタMP3により、電源電圧ノードIO_VDEの電位に持ち上がる。ノードAの電位が電源電圧ノードIO_VDEに上がると、トランジスタMP4は強固にオフ状態になる。この一連の動作は、トランジスタMP3及びMP4のお互いが助け合うように動作することから、トランジスタMP3とMP4、トランジスタMN3とMP4は、トランジスタ性能が等しくなるように回路設計を行う。ノードBのローレベルは、入力信号INのハイレベルと異なる(反転差動アンプという名前である由縁)ため、駆動能力増強の意味でも3段のインバータを使った駆動能力増幅バッファ803により、出力信号OUTを入力信号INの論理にあわせる(反転差動アンプ+反転バッファ=正)。
図1及び図2において、インターフェース回路のサイクルタイムをtCKで表すと、同期クロック信号CK1は、サイクルタイムtCKの1/2の周期tCK/2になる。第2の制御回路128は、バッファ148及びレベルシフト回路149を有し、tCK/2の周期のクロック信号CK1の振幅を電源電圧IO_VDEの電圧まで増幅し、クロック信号CNTLを出力する。
外部インターフェース回路のACタイミングを調整しているフリップフロップ101〜10n,122に入るクロック信号CK2は、クロックツリーを伝わってパラレルインターフェース回路の信号ビット数(データ+コマンド+制御信号+クロック)分だけファンアウトしている。
フリップフロップ101〜10nの出力信号は、入出力バッファ111〜11nの入力端子に直結されており、クロック信号CK2の立ち上がりエッジに同期して入出力バッファ111〜11nに取り込まれる。フリップフロップ122の出力信号は、入出力バッファ123の入力端子にのみ接続され、クロック信号CK2の立ち下がりエッジに同期して変化する。このとき、クロック信号BCKの周期はtCKとなる。
第1の制御回路127は、クロック信号CK3を1/2分周した後に、その信号を反転し、遅延器150で遅らせた後に、レベルシフト回路147を使って電源電圧ノードIO_VDEの電圧まで振幅を増幅し、制御信号φを出力する。入力信号A1と制御信号φとの位相関係は重要であり、入力信号A1の立ち上がりエッジに対する制御信号φの立り下がりエッジの遅延時間Δtは、後述の最適な遅延時間が存在する。入出力バッファ111の出力信号B1がローレベル(L)からハイレベル(H)に変化する期間203では、制御信号φは、前もってハイレベルになっている必要がある。その後、制御信号φがハイレベルからローレベルに変化し、ローレベル期間202ではスイッチ124がオンし、2系統の電流パス721及び722(図7(B))が設けられる。
図9(A)は図1のインターフェース回路の一部の回路の構成例を示す図であり、図9(B)は図9(A)の回路の電圧波形例を示す図であり、図9(C)は図9(A)の回路の電流波形例を示す図である。図9(C)の電流ILは、図9(A)の電流IL1及びIL2の合成電流を示す。
入出力バッファ111の出力端子には、伝送路901が接続されている。パッケージ寄生インダクタLp1は、外部電源電圧ノードVDD及び内部電源電圧ノードIO_VDD間に接続されている。また、パッケージ寄生インダクタLp2は、外部基準電位ノードVSS及び内部基準電位ノードIO_VSS間に接続されている。
ここでは、制御信号φを理想系で与えている場合の回路の動作メカニズムを説明するために電流の流れを示す。入力信号A1がローレベルからハイレベルに変化すると、出力信号B1もローレベルからハイレベルに変化する。このとき、電源電圧ノードIO_VDEを通って、伝送路901及び外部負荷コンデンサ714(図7(B))に充電電流IL1が流れる。実際には、多ビットの同時スイッチングであるので、第1の電源電圧ノードVDEからの給電流IVDE及び第2の電源電圧ノードVDE1からの給電流ISPの合計電流量は、充電電流IL1よりも数倍多くなる。
入力信号A1がローレベルからハイレベルに変化し、適切な遅延時間Δtで、制御信号φがハイレベルからローレベルに変化すると、スイッチ124がオンとなり、第2の電源電圧ノードVDE1の昇圧電圧からの電流ISPの供給が始まる。電流IVDE及びISPの正負の向きが変化するのは、電源電圧ノードIO_VDEが基準となる3.3V(代表値)に比べ、オーバーシュート及びアンダーシュートしながら変化するためであり、電源電圧ノードIO_VDEの電圧がオーバーシュートしている場合は第1の電源電圧ノードVDEに電流が向かい(負の電流)、電源電圧ノードIO_VDEの電圧がアンダーシュートしている場合には第1の電源電圧ノードVDEから負荷に向かって正の電流が流れていることになる。
入力信号A1がハイレベルからローレベルに変化すると、電流IL2が外部負荷コンデンサ714(図7(C))から伝送路901を介して基準電位ノードVSSに流れる。
図10は、入力信号A1に対する制御信号φの遅延時間Δtのシミュレーション結果を示す図である。図2、図6(B)、図9(A)に示すように、入力信号A1がローレベルからハイレベルに変化してから遅延時間Δt経過後に、制御信号φがハイレベルからローレベルに変化する。図10の横軸は、インターフェース回路のサイクルタイムtCK[ns](図2)を示す。遅延時間1001は、横軸のサイクルタイムtCKに対する最適な遅延時間Δtを示す。電源電圧差1002は、最適な遅延時間1001における電源電圧ノードIO_VDEの最大値と最小値との差分[V]を示す。シミュレーションの結果、遅延時間1001は、短すぎても長すぎても不適切であり、最適値が存在することが分かった。図1の遅延器150は、サイクルタイムtCKに対する最適な遅延時間Δtを記憶するテーブルを有し、インターフェース回路のサイクルタイムtCKを基に遅延時間Δtを決定し、その決定した遅延時間Δtに対応する遅延素子141〜145をセレクタ146により選択する。遅延素子141〜145の中の選択された遅延素子の遅延時間は、上記の決定した遅延時間Δtに対応する。SSNは、同時同方向のスイッチングが重なった時がワーストケースであるため、インターフェース回路の入力データA1の遷移方向は考えずに、インターフェース回路の最高周波数だけで考えて回路設計を行う。実際の集積回路装置の動作においても、インターフェース回路のサイクルタイム(動作周波数)tCKからテーブルルックアップ的に遅延時間Δtを決める。第1の制御回路127は、入出力バッファ111の入力信号A1がローレベルからハイレベルに立ち上がると、遅延時間Δt経過後にスイッチ124をオフからオンに切り換える。
図21(A)は、図1の遅延器150の入出力信号を示す図である。遅延器150は、入力信号C1、6ビットのサイクルタイムtCK、システムクロック信号CLKs及び更新信号UDを入力し、信号C2を出力する。
図21(B)は、図21(A)の遅延器150内のレジスタ2101及び遅延コード生成回路2102の構成例を示す図である。レジスタ2101は、更新信号UDがハイレベルになると、システムクロック信号CLKsに同期して、6ビットのサイクルタイムtCKをラッチし、ラッチしたサイクルタイムtCKを遅延コード生成回路2102に出力する。サイクルタイムtCKは、6ビット2進数の整数で表現され、例えば「000100」は4nsを示し、「100110」は38nsを示す。遅延コード生成回路2102は、図21(C)のテーブルを有し、レジスタ2101により出力されるサイクルタイムtCKを入力し、3ビットの遅延コードDLY_CODE[0],DLY_CODE[1],DLY_CODE[2]を出力する。
図21(C)は、図21(B)の遅延コード生成回路2102内のテーブルの構成例を示す図である。テーブルは、図10の遅延時間1001に対応し、サイクルタイムtCKに対応する3ビットの遅延コードDLY_CODE[0],DLY_CODE[1],DLY_CODE[2]を記憶する。テーブルには、遅延コードDLY_CODE[0],DLY_CODE[1],DLY_CODE[2]に対応する遅延時間Δtを示す。遅延コード生成回路2102は、サイクルタイムtCKを入力すると、サイクルタイムtCKに対応する3ビットの遅延コードDLY_CODE[0],DLY_CODE[1],DLY_CODE[2]を出力する。
図22(A)は、図21(A)の遅延器150内の選択信号生成回路の構成例を示す図である。選択信号生成回路は、図21(B)の遅延コード生成回路2102から遅延コードDLY_CODE[0],DLY_CODE[1],DLY_CODE[2]を入力する。
論理積(AND)回路2201は、遅延コードDLY_CODE[0],DLY_CODE[1],DLY_CODE[2]がすべて「0」のときにハイレベルの選択信号SEL0を出力し、それ以外ではローレベルの選択信号SEL0を出力する。インバータ2211は、選択信号SEL0の論理反転信号を選択信号XSEL0として出力する。
論理積回路2202は、遅延コードDLY_CODE[0]が「1」、遅延コードDLY_CODE[1]及びDLY_CODE[2]が「0」のときにハイレベルの選択信号SEL1を出力し、それ以外ではローレベルの選択信号SEL1を出力する。インバータ2212は、選択信号SEL1の論理反転信号を選択信号XSEL1として出力する。
論理積回路2203は、遅延コードDLY_CODE[0]及びDLY_CODE[2]が「0」、遅延コードDLY_CODE[1]が「1」のときにハイレベルの選択信号SEL2を出力し、それ以外ではローレベルの選択信号SEL2を出力する。インバータ2213は、選択信号SEL2の論理反転信号を選択信号XSEL2として出力する。
論理積回路2204は、遅延コードDLY_CODE[0]及び遅延コードDLY_CODE[1]が「1」、遅延コードDLY_CODE[2]が「0」のときにハイレベルの選択信号SEL3を出力し、それ以外ではローレベルの選択信号SEL3を出力する。インバータ2214は、選択信号SEL3の論理反転信号を選択信号XSEL3として出力する。
論理積回路2205は、遅延コードDLY_CODE[0]及び遅延コードDLY_CODE[1]が「0」、遅延コードDLY_CODE[2]が「1」のときにハイレベルの選択信号SEL4を出力し、それ以外ではローレベルの選択信号SEL4を出力する。インバータ2215は、選択信号SEL4の論理反転信号を選択信号XSEL4として出力する。
論理積回路2206は、遅延コードDLY_CODE[0]及びDLY_CODE[2]が「1」、遅延コードDLY_CODE[1]が「0」のときにハイレベルの選択信号SEL5を出力し、それ以外ではローレベルの選択信号SEL5を出力する。インバータ2216は、選択信号SEL5の論理反転信号を選択信号XSEL5として出力する。
論理積回路2207は、遅延コードDLY_CODE[0]が「0」、遅延コードDLY_CODE[1]及びDLY_CODE[2]が「1」のときにハイレベルの選択信号SEL6を出力し、それ以外ではローレベルの選択信号SEL6を出力する。インバータ2217は、選択信号SEL6の論理反転信号を選択信号XSEL6として出力する。
図22(B)は、図21(A)の遅延器150内の遅延素子2221〜2227及びCMOSスイッチ2231〜2237の構成例を示す図である。遅延素子2221〜2227は図1の遅延素子141〜145に対応し、CMOSスイッチ2231〜2237は図1のセレクタ146に対応する。遅延素子2221は入力信号C1を0.12nsの遅延時間Δt遅延し、遅延素子2222は入力信号C1を0.25nsの遅延時間Δt遅延し、遅延素子2223は入力信号C1を1.5nsの遅延時間Δt遅延し、遅延素子2224は入力信号C1を1.63nsの遅延時間Δt遅延し、遅延素子2225は入力信号C1を1.75nsの遅延時間Δt遅延し、遅延素子2226は入力信号C1を2.00nsの遅延時間Δt遅延し、遅延素子2227は入力信号C1を2.13nsの遅延時間Δt遅延する。
CMOSスイッチ2231〜2237は、それぞれ、選択信号SEL0〜SEL6がハイレベルになるとオンし、選択信号SEL0〜SEL6がローレベルになるとオフする。選択信号SEL0〜SEL6のうちのいずれか1つだけがハイレベルになり、残りはローレベルになる。選択信号SEL0〜SEL6がそれぞれハイレベルになると、それぞれ、遅延素子2221〜2227の出力信号が出力信号C2として出力される。すなわち、遅延器150は、サイクルタイムtCKに応じて、遅延素子2221〜2227のうちのいずれか1個を選択し、選択した遅延素子の出力信号を出力信号C2として出力する。第1の制御回路127は、選択信号SEL0〜SEL6に応じて、複数の遅延時間0.12ns〜2.13nsの中から1つを選択して遅延時間Δtを設定することができる。
図11(A)はスイッチ124が常にオフの場合の回路動作波形例を示す図であり、図11(B)は制御信号φに応じてスイッチ124が動作する場合の回路動作波形例を示す図である。図11(A)の場合、入力信号A1が入力され、それから遅れること2.5nsほど経ってから信号B1が入出力バッファ111から出力される。図9(A)の伝送路901の末端の信号E1は、それから更に500ps程度遅れて後段のデバイスに到達する。波形では、出力信号B1の波形に段や乱れが生じているが、これは抵抗が低く、LとCで特性が決定付けられる伝送路901の特有の現象で、線路のインピーダンス整合条件・信号反射現象から生じるものである。電源電圧ノードIO_VDEは、入力信号A1がローレベルからハイレベルに変化した時点、ハイレベルからローレベルに変化した時点で大きく揺らいでいるが、ハイレベル区間(図7(B)のpチャネル電界効果トランジスタ712がオンで負荷コンデンサ714を充電)、ローレベル区間(図7(C)のnチャネル電界効果トランジスタ713がオンで負荷コンデンサ714が放電)での電源電圧ノードIO_VDEの揺れの特徴が読み取りにくい。
これに対し、図11(B)の場合、入力信号A1が入力され、それから遅れること2.5nsほど経ってから信号B1が入出力バッファ111から出力される。信号B1が入出力バッファ111から出力される時間よりも少しだけ短い遅延時間Δtで、制御信号φがハイレベルからローレベルに変化する。制御信号φがローレベルになると、スイッチ124がオンとなり、第2の電源電圧ノードVDE1と電源電圧ノードIO_VDEがスイッチ124を介して接続される。この結果、第2の電源電圧ノードVDE1が電源電圧ノードIO_VDEを補う形で、電源電圧が供給され、図11(A)の場合に比べて、電源電圧ノードIO_VDEの電圧が揺れない波形を実現することができる。
図12(A)は、出力信号B1の電圧波形例を示す図である。出力信号1201は制御信号φに応じてスイッチ124が動作する場合の出力信号B1であり、出力信号1202はスイッチ124が常にオフの場合の出力信号B1である。出力信号1202の時の電源電圧ノードIO_VDEの電圧の方が電圧波形1201の時の電源電圧ノードIO_VDEの電圧よりも電源品質が悪いために、電源電圧ノードIO_VDEに乗る電源電圧のオーバーシュート及びアンダーシュートが出力信号1202の波形にも転写されている。出力信号1201の波形では、電源電圧ノードIO_VDEが回路機構により安定化されているため、出力信号1201にノイズが現れてくることはない。波形に出る段々は、伝送路901の特有のものであり、取り除くことは出来ない。
図12(B)は、図9(A)の伝送路901の末端の信号E1の電圧波形例を示す図である。電圧波形1211は制御信号φに応じてスイッチ124が動作する場合の信号E1の電圧波形であり、電圧波形1212はスイッチ124が常にオフの場合の信号E1の電圧波形である。
伝送路末端信号E1の波形は、伝送路901がローパスフィルタとして働くため、出力信号B1に乗る品質の悪い高周波のツノは全て取り除かれ、角の取れた波形となる。伝送路末端信号1212の波形に比べ、伝送路末端信号1211の波形の方がVcc/2のハイレベル幅が長く確保できていることが読み取れる。ハイレベル幅が改善した理由は、ハイレベルを維持しているのは、図7(B)のpチャネル電界効果トランジスタ712がオンしている動作で、pチャネル電界効果トランジスタ712が電源電圧ノードIO_VDEに接続されているからである。本実施形態は、電源電圧ノードIO_VDE側の回路補償技術であって、基準電位ノードIO_VSS側の品質改善となる図7(C)のnチャネル電界効果トランジスタ713の動作によるローレベル幅を救うものではない。ただし、ハイレベル幅が理想的になれば、おのずとローレベル幅が狭まり、伝送路末端信号1211のデューティ比は50%に近づく。
(第2の実施形態)
図13は第2の実施形態によるインターフェース回路の構成例を示す図であり、図14は図13のインターフェース回路の動作例を示すタイミングチャートである。図13の回路は、図1の回路に対して、FIFOレジスタ1300〜130n、2ビットシフトレジスタ1311〜131n、デコーダ1321〜132n、多数決回路1331、レジスタ1332及びインバータ1333を追加したものである。以下、本実施形態が第1の実施形態と異なる点を説明する。
第1の制御回路127は、2ビットレジスタ1311〜131n、デコーダ1321〜132n、多数決回路1331、レジスタ1332、インバータ1333、遅延器150及びレベルシフト回路147を有する。インバータ1333は、クロック信号CK1を論理反転したクロック信号CK4を出力する。
FOFOレジスタ1300は、クロック信号CK1に同期して、外部クロック信号をフリップフロップ122に出力する。FOFOレジスタ1301〜130nは、クロック信号CK1に同期して、入力信号をフリップフロップ101〜10nに出力する。例えば、FIFOレジスタ1301は、入力信号D1を出力する。2ビットシフトレジスタ1311〜131nは、それぞれ、クロック信号CK1に同期して、FIFOレジスタ1301〜130nの出力信号をビットシフトし、2ビットの信号を記憶する。例えば、2ビットシフトレジスタ1311は、入力シリアル信号D1を入力し、2ビットのパラレル信号D2及びD3を出力する。デコーダ1321〜132nは、それぞれ、2ビットシフトレジスタ1311〜131nの出力信号を入力し、信号D1の立ち上がりエッジ又は立ち下がりエッジを検出し、検出信号D41〜D4nを出力する。信号D1がハイレベル(H)からローレベル(L)に変化すると、各検出信号D41〜D4nがハイレベルになり、信号D1がローレベル(L)からハイレベル(H)に変化すると、各検出信号D41〜D4nがローレベルになる。多数決回路1331は、検出信号D41〜D4nを入力し、n個の入力信号D1のうちのハイレベルからローレベルに変化している信号が多いときにはハイレベルの信号D5を出力し、ローレベルからハイレベルに変化している信号が多いときにはローレベルの信号D5を出力する。レジスタ1332は、クロック信号CK4に同期して、信号D5をラッチし、ラッチした信号D6を遅延器150に出力する。遅延器150は、サイクルタイムtCKに応じた遅延時間Δtで、信号D6を遅延し、出力する。レベルシフト回路147は、遅延器150の出力信号をレベルシフトし、制御信号φをスイッチ124に出力する。第2の制御回路128は、クロック信号CK1を入力し、クロック信号CNTLを出力する。
図13では、入出力バッファ111のみを示すが、図1と同様に、実際には入出力バッファ112〜11nも接続されている。FIFOレジスタ1300〜130nとフリップフロップ101〜10n,122は、共に周期がtCK/2のクロック信号CK1に同期して動作する。2ビットシフトレジスタ1311〜131nは、FIFOレジスタ1301〜130nの出力信号D1を入力し、前回のデータD2及び今回のデータD3の2ビットデータを出力する。デコーダ1321〜132nは、前回のデータD2と今回のデータD3とを比較し、データの変化がハイレベルからローレベルへの変化、又はローレベルからハイレベルへの変化を検出し、検出信号D41〜D4nを出力する。検出信号D41〜D4nは、例えば、16ビットバスの場合には16信号分になる。
SSNの動作は、信号内の同時同方向の遷移数に依存するため、ハイレベルからローレベルへの遷移とローレベルからハイレベルへの遷移のいずれが多かったかを多数決回路1331で判定する。同数の場合は、引き分けとし、ローレベルからローレベルへの遷移及びハイレベルからハイレベルへの遷移と同様に、制御しないものとする。多数決回路1331は、多数決をとって、1本の信号D5を出力する。レジスタ1332は、クロック信号CK4に同期して、信号D5をラッチし、ラッチした信号を信号D6として出力する。信号D6は、遅延器150及びレベルシフト回路149を介して、制御信号φとして出力される。第1の実施形態と同様に、制御信号φは、入力信号D1に対して最適な遅延時間Δtを有する。
図14を参照しながら、図13の回路の動作を説明する。FIFOレジスタ1300〜130nは、パラレルインターフェース回路の場合、ビット数+制御信号数分だけ存在し、クロック信号CK1に同期して動作する。2ビットシフトレジスタ1311〜131nは、クロック信号CK1に同期して、前回の1ビットデータD2と今回の1ビットデータD3を蓄え、前回のデータD2と今回のデータD3を出力する。
データ遷移方向デコーダ1321〜132nは、それぞれ、2ビットシフトレジスタ1311〜131nの出力データD2,D3をクロック信号CK4のエッジで取得し、信号D1の遷移がハイレベルからローレベルへの遷移、ローレベルからハイレベルへの遷移のいずれであるかを検出する。ここで、ハイレベルからハイレベルへの遷移及びローレベルからローレベルへの遷移については、SSNの発生要因には成り得ないために考えない。
データ遷移方向デコーダ出力信号D41〜D4nは、ハイレベルからローレベルへの遷移方向又はローレベルからハイレベルへの遷移方向であった場合に、クロック信号CK4に同期して出力される。
多数決回路1331は、データ遷移方向がパラレルポートの総ビット数の半分よりも大きいか小さいかを判別する。例えば、図22(A)の回路と同様に、5ビットの場合、3ビットの組み合わせ論理でハイレベルを検出できるように3入力論理積回路で全ての信号の組み合わせ論理を作成し、続いてその論理積回路の結果を論理和回路で演算することにより、多数決回路1331を構成することができる。レジスタ1332は、多数決回路1331の出力信号D5を入力し、クロック信号CK4に同期して、信号D6を遅延器150に出力する。遅延器150以降の動作は、第1の実施形態と同様である。
図15は、図13の2ビットシフトレジスタ1311,1312及びデコーダ1321,1322の構成例を示す図である。2ビットシフトレジスタ1311,1312及びデコーダ1321,1322の構成例を説明するが、2ビットシフトレジスタ1313〜131n及びデコーダ1323〜132nの構成も同様である。2ビットシフトレジスタ1311及び1312は、それぞれ、レジスタ1501及び1502を有する。デコーダ1321及び1322は、それぞれ、論理積回路1503,1504、pチャネル電界効果トランジスタ1505、nチャネル電界効果トランジスタ1506及びレジスタ1507を有する。
2ビットシフトレジスタ1311の入力端子dinに、ローレベルからハイレベルに立ち上がる信号が入力される場合を例に説明する。その場合、レジスタ1501はハイレベルの信号を出力し、レジスタ1502はローレベルの信号を出力する。すると、論理積回路1503はローレベルの信号を出力し、論理積回路1504はハイレベルの信号を出力する。すると、レジスタ1507は、ローレベルの信号を入力し、ローレベルの信号を出力する。このように、ローレベルからハイレベルに立ち上がる信号が2ビットシフトレジスタ1311に入力されると、デコーダ1321はローレベルの信号を出力する。
次に、2ビットシフトレジスタ1312の入力端子dinに、ハイレベルからローレベルに立ち下がる信号が入力される場合を例に説明する。その場合、レジスタ1501はローレベルの信号を出力し、レジスタ1502はハイレベルの信号を出力する。すると、論理積回路1503はハイレベルの信号を出力し、論理積回路1504はローレベルの信号を出力する。すると、レジスタ1507は、ハイレベルの信号を入力し、ハイレベルの信号を出力する。このように、ハイレベルからローレベルに立ち下がる信号が2ビットシフトレジスタ1312に入力されると、デコーダ1322はハイレベルの信号を出力する。
図16は、図13の多数決回路1331の動作例を説明するためのタイミングチャートである。8個のデコーダ1321〜1328を有する場合を例に説明する。デコーダ1321〜1328は、クロック信号CK4の立ち上がりエッジに同期して、信号D41〜D48を出力する。多数決回路1331は、信号D41〜D48を入力し、クロック信号CK1の立ち上がりエッジに同期して、信号D5を出力する。8ビットパラレルインターフェース回路の場合、多数決回路1331の閾値は、8÷2+1=5である。多数決回路1331は、信号D41〜D48のうちの5個以上の信号がハイレベルであるときにはハイレベルを出力し、5個未満の信号がハイレベルであるときにはローレベルを出力する。
8個の信号D1のうち、5個以上の信号がハイレベルからローレベルに立ち下がったときには、多数決回路1331はハイレベルの信号D5を出力する。すると、遅延時間Δt経過後、制御信号φはハイレベルになり、スイッチ124はオフする。
これに対し、8個の信号D1のうち、4個以上の信号がローレベルからハイレベルに立ち上がったときには、多数決回路1331はローレベルの信号D5を出力する。すると、遅延時間Δt経過後、制御信号φはローレベルになり、スイッチ124はオンする。
第1の制御回路127は、複数の入出力バッファ111〜11nの入力信号の遷移方向に応じて、スイッチ124を制御する。これにより、電源電圧ノードIO_VDEのノイズを低減し、出力信号B1〜B8のノイズを低減することができる。
(第3の実施形態)
図17は、第3の実施形態によるインターフェース回路の構成例を示す図である。図17の回路は、図1の回路に対して、2分周器1701、バッファ1702及び出力バッファ(第2のバッファ)1704を追加し、第1の制御回路127の構成を変更したものである。以下、本実施形態が第1の実施形態と異なる点を説明する。
2分周器1701は、クロック信号CK1を2分周して出力する。バッファ1702は、2分周器1701の出力信号を増幅して出力する。フリップフロップ101〜10nは、バッファ1702の出力信号の立ち上がりエッジに同期して動作する。フリップフロップ122は、バッファ1702の出力信号の立ち下がりエッジに同期して動作する。出力バッファ1704は、入出力バッファ111の出力信号B1を増幅して出力する。
第1の制御回路127は、否定論理積(NAND)回路1703及びレベルシフト回路147を有する。否定論理積回路1703は、出力バッファ1704の出力信号及び信号A1の否定論理積信号を出力する。レベルシフト回路147は、第1の実施形態と同様に、否定論理積回路1703の出力信号をレベルシフトし、制御信号φをスイッチ124に出力する。
本実施形態は、第1の実施形態に対して、スイッチ124の制御信号φの生成方法が異なる。本実施形態のパラレルインターフェース回路は、入出力バッファ111及び出力バッファ1704を有する双方向入出力バッファを有する。図17では、簡略化のため1ビットの出力バッファ1704のみを示すが、すべてのビットに出力バッファを設けることができる。双方向入出力バッファは、入出力バッファ111と出力バッファ1704が半導体チップ内部の信号B1のノードを共有化している。出力バッファ1704の出力信号は、出力バッファ1704のスイッチングによる応答遅延と、入出力バッファ111のスイッチングによる応答遅延との和の遅延を有するため、実際の伝送路負荷が接続された場合のリアルな遅延を伺い知ることが出来る。
否定論理積回路1703は、入出力バッファ111の入力信号A1と、出力バッファ1704の出力信号との否定論理積信号を出力する。レベルシフト回路147は、否定論理積回路1703の出力信号をレベルシフトして、制御信号φをスイッチ124に出力することにより、第1の実施形態に対して、部品点数の削減が行える。
図18(A)は図17の回路の一部の回路を示し、図18(B)は図18(A)の回路の動作例を示すタイミングチャートであり、図18(C)は図18(A)の回路のシミュレーション結果を示す波形図である。レベルシフト回路147は、図8と同じ構成を有する。信号A1は、入出力バッファ111の入力信号である。信号X1は、出力バッファ1704の出力信号である。信号n2001は、否定論理積回路1703の出力信号である。信号n2002は、pチャネル電界効果トランジスタMP4のドレイン及びnチャネル電界効果トランジスタMN4のドレインの相互接続点の信号である。制御信号φは、スイッチ124の制御信号である。
本実施形態では、否定論理積回路1703は、入出力バッファ111の入力信号A1と出力バッファ1704の出力信号X1との否定論理積信号n2001を出力する。信号n2002は、信号n2001に対して、論理反転し、1.2Vの振幅から3.3Vの振幅にレベルシフトした信号である。制御信号φは、信号n2002を論理反転した信号である。これにより、制御信号φは、入力信号A1に対して遅延時間Δtの遅延を有する。
本実施形態は、インターフェース回路の動作タイミングが100MHz(ダブルデータレートの場合には200Mbps)以下と低い場合に適用できる。入出力バッファ111の入力信号A1とそれより少しだけ遅れて戻ってくる信号X1との否定論理積信号n2001は、ずれているお互いの信号A1及びX1のハイレベルパルス幅の重なり部分で、ローレベル幅が生み出される。高速になると、そもそもの信号A1のハイレベル幅に比べ、入出力バッファ111の遅延と出力バッファ1704の遅延との和が大きくなるため、ハイレベル幅の重なりが細くなり、制御信号φのローレベル幅が狭くなり、スイッチ124がオンになって電源電圧ノードIO_VDEの変動を抑える期間が短くなり、効果が出にくい。
図19は、図17の回路のシミュレーション結果を示す波形図である。電圧IO_VDE1は、制御信号φに応じてスイッチ124を制御した場合の電源電圧ノードIO_VDEの電圧を示す。電圧IO_VDE2は、スイッチ124が常にオフの場合の電源電圧ノードIO_VDEの電圧を示す。第1の制御回路127は、入出力バッファ111の入力信号A1及び出力バッファ1704の出力信号X1を基にスイッチ124の制御信号φを生成する。スイッチ制御した電圧IO_VDE1は、スイッチ制御しない電圧IO_VDE2に比べ、電源電圧ノードIO_VDEの電圧変動が抑制されていることがよくわかる。
図20(A)は第2の実施形態の制御信号φに応じてスイッチ124を制御した場合のシミュレーション結果を示す波形図であり、図20(B)はスイッチ124が常にオフの場合のシミュレーション結果を示す波形図である。図20(C)は、167MHzにおける伝送路末端信号E1(図9(A))のシミュレーション結果を示す波形図である。波形2001は、図20(A)の場合の伝送路末端信号E1の電圧波形であり、アイマスク2003に対して広くなっている。波形2002は、図20(B)の場合の伝送路末端信号E1の電圧波形であり、アイマスク2003に対して狭くなっている。
第1〜第3の実施形態によれば、スイッチ124を制御することにより、入出力バッファ111〜11nが同時同方向スイッチングをする際の電源電圧ノードIO_VDEの電圧変動を抑えることができる。特に、入力信号A1に対する制御信号φの遅延時間Δtを適切に設定することが重要である。
遅延時間Δtが適切に設定されると、電源電圧ノードIO_VDEの電圧の揺れは最小になり、スイッチ制御した伝送路末端信号E1の波形2001は、スイッチ制御しない伝送路末端信号E1の波形2002よりもアイパターンが開く傾向にある。このアイパターンの開きは、セットアップ側のマージンを大きく広げる効果があり、外部インターフェース回路の高速化を実現することができる。
図20(D)は、高速伝送の250MHzにおける伝送路末端信号E1(図9(A))のシミュレーション結果を示す波形図である。波形2011は、制御信号φに応じてスイッチ124を制御した場合の伝送路末端信号E1の電圧波形であり、アイマスク2013に対して広くなっている。波形2012は、スイッチ124が常にオフの場合の伝送路末端信号E1の電圧波形であり、アイマスク2013に対して狭くなっている。スイッチ制御しない波形2012は、SSNの影響でアイパターンが潰れている。これに対し、スイッチ制御した波形2011は、高速伝送においても波形が綺麗になっている。このように、本実施形態は、伝送不可能だと思われていたLVCMOS伝送においても、高速化の壁を乗り越えられる可能性を持っている。
第1〜第3の実施形態によれば、スイッチ124をオンすることにより、入出力バッファ111等は、第1の電源電圧ノードVDE及び第2の電源電圧ノードVDE1から電源電圧の供給を受けることにより、ノイズを低減することができる。
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。