(57)【要約】【課題】複数の出力回路の出力インピーダンスのバラツキを抑える。【解決手段】半導体装置であって、複数の出力回路と、前記複数の出力回路の出力インピーダンスを基準値に設定するためのキャリブレーション信号を生成するキャリブレーション回路とを有する。前記複数の出力回路は、それぞれ、前記キャリブレーション信号を補正する補正回路と、その出力インピーダンスを前記補正回路で補正された前記キャリブレーション信号に応じた値にする出力バッファとを有する。【選択図】図１
2011041209.tif 000002
【特許請求の範囲】
【請求項１】
複数の出力回路と、
前記複数の出力回路の出力インピーダンスを基準値に設定するためのキャリブレーション信号を生成するキャリブレーション回路とを備え、
前記複数の出力回路は、それぞれ、
前記キャリブレーション信号を補正する補正回路と、
その出力インピーダンスを前記補正回路で補正された前記キャリブレーション信号に応じた値にする出力バッファとを有する
半導体装置。
【請求項２】
請求項１に記載の半導体装置において、
前記複数の出力回路は、いずれも同一の構成を有している
半導体装置。
【請求項３】
請求項１に記載の半導体装置において、
前記キャリブレーション回路は、前記複数の出力回路の１つと実質的に同一の回路を有する
半導体装置。
【請求項４】
請求項３に記載の半導体装置において、
前記補正回路は、前記補正回路が属する前記出力回路に対する補正信号に従って、前記キャリブレーション信号を補正する
半導体装置。
【請求項５】
請求項４に記載の半導体装置において、
前記複数の出力回路にそれぞれ対応する複数のレジスタを更に備え、
前記補正回路に対応する前記レジスタは、入力されたレジスタ制御信号を格納し、前記補正信号として出力する
半導体装置。
【請求項６】
請求項５に記載の半導体装置において、
前記レジスタ制御信号は、前記レジスタに対応する前記出力回路の出力インピーダンスの測定結果に従って、前記半導体装置の外部から入力される
半導体装置。
【請求項７】
請求項５に記載の半導体装置において、
前記レジスタ制御信号は、前記レジスタに対応する前記出力回路から出力される出力信号のデューティ比の測定結果に従って、前記半導体装置の外部から入力される
半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、出力インピーダンスを調整可能である出力回路を有する半導体装置に関する。
【背景技術】
【０００２】
ＣＰＵやメモリで代表される半導体装置間で行われるデータ転送の高速化が、近年強く要求されている。データ転送の高速化を実現するためには、転送に用いられる信号の品質を高く保つことが必要である。
【０００３】
信号の品質劣化を引き起こす要因として、信号のクロストークや反射がある。クロストークは、伝送路設計時に、信号配線間の間隔を広くし、複数の信号配線が並走する区間を短くすることにより抑えられる。反射は伝送系のインピーダンスを精度よくマッチングさせることにより抑えられる。
【０００４】
このように、出力バッファのインピーダンス調整は、高速データ伝送のために非常に重要である。出力バッファのインピーダンスは製造のプロセス条件や特性バラツキの影響を受けるので、高速データ転送を行う規格の１つであるＤＤＲ３（Double-data-rate 3）インタフェースでは、インタフェース回路は、インピーダンスが調整可能である出力バッファとキャリブレーション回路とを有する。キャリブレーション回路により、インタフェース回路の外部にある基準抵抗素子の抵抗値と出力バッファのインピーダンスとが同じになるように調整される。
【０００５】
例えばＤＤＲ３では、出力回路には、インピーダンスがマッチングした状態でのデータ出力機能の他に、ＯＤＴ（On Die Termination）機能が要求されている。ＯＤＴとは、出力回路を終端抵抗として使用することである。しかし、通常は、データ出力時とＯＤＴ動作時とでは異なる出力インピーダンスが用いられるので、データ出力時とＯＤＴ動作時のそれぞれのためにキャリブレーションを行わなければならない。このため、回路規模及びキャリブレーション時間が増大している。
【０００６】
そこで、必要な数の単位バッファを並列に用いることにより、回路規模及びキャリブレーション時間の削減を図った回路が、特許文献１に記載されている。この回路では、活性化する単位バッファの数を、データ出力時とＯＤＴ動作時とで変えることにより、必要な出力インピーダンスを実現している。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００６−２０３４０５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
回路の動作周波数が上昇すると、より精度の高いインピーダンスマッチングが必要となる。一方、ＤＤＲ３のような多ビットの並列転送には、キャリブレーションが必要となる出力回路が多数必要であるので、各出力回路の出力インピーダンスのバラツキは増大する。また、回路の微細化は各出力回路の特性バラツキを更に大きくする。このため、精度の高いインピーダンス調整はますます困難になってきている。
【０００９】
本発明は、複数の出力回路の出力インピーダンスのバラツキを抑えることを目的とする。
【課題を解決するための手段】
【００１０】
本発明の実施形態による半導体装置は、複数の出力回路と、前記複数の出力回路の出力インピーダンスを基準値に設定するためのキャリブレーション信号を生成するキャリブレーション回路とを有する。前記複数の出力回路は、それぞれ、前記キャリブレーション信号を補正する補正回路と、その出力インピーダンスを前記補正回路で補正された前記キャリブレーション信号に応じた値にする出力バッファとを有する。
【００１１】
これによると、各出力回路が補正回路を有しているので、各出力バッファの出力インピーダンスを独立して補正することができる。このため、各出力バッファの出力インピーダンスのバラツキを抑えることができる。
【発明の効果】
【００１２】
本発明の実施形態によれば、複数の出力回路の出力インピーダンスのバラツキを抑えることができるので、多ビットの高速並列転送が可能になる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施形態に係る半導体装置の構成の例を示すブロック図である。
【図２】図１の出力バッファの構成例を示すブロック図である。
【図３】図２の単位出力バッファの構成例を示す回路図である。
【図４】図１のキャリブレーション回路の構成例を示すブロック図である。
【図５】図１のＺＱＣＡＬ補正回路の構成例を示すブロック図である。
【図６】図１のＺＱＣＡＬ補正回路の出力を示す説明図である。
【図７】図１の半導体装置における出力インピーダンス調整処理の例を示すフローチャートである。
【図８】値を低下させていく場合の出力インピーダンスの変化の例を示すグラフである。
【図９】値を増大させていく場合の出力インピーダンスの変化の例を示すグラフである。
【図１０】図１の半導体装置におけるデューティ比調整処理の例を示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下、本発明の実施形態を、図面を参照しながら説明する。
【００１５】
図１は、本発明の実施形態に係る半導体装置の構成の例を示すブロック図である。図１の半導体装置１００は、レジスタ１０２Ａ，１０２Ｂ，１０２Ｃ，…と、キャリブレーション回路１１０と、出力回路１２０Ａ，１２０Ｂ，１２０Ｃ，…とを有している。端子ＺＱには、基準抵抗８が接続されている。
【００１６】
出力回路１２０Ａ，１２０Ｂ，１２０Ｃ，…は、いずれも同一の構成を有している。出力回路１２０Ａは、出力バッファ１２２Ａと、ＺＱＣＡＬ補正回路１２４Ａとを有し、出力回路１２０Ｂは、出力バッファ１２２Ｂと、ＺＱＣＡＬ補正回路１２４Ｂとを有し、出力回路１２０Ｃは、出力バッファ１２２Ｃと、ＺＱＣＡＬ補正回路１２４Ｃとを有している。
【００１７】
レジスタ１０２Ａ，１０２Ｂ，１０２Ｃ，…は、半導体装置１００の外部から入力されたレジスタ制御信号ＲＣ０，ＲＣ１，ＲＣ２，…の値をそれぞれ格納し、コード補正信号ＣＡＬＡ０，ＣＡＬＡ１，ＣＡＬＡ２，…としてそれぞれ出力する。これらのレジスタ１０２Ａ，１０２Ｂ，…は、出力回路１２０Ａ，１２０Ｂ，…にそれぞれ対応している。レジスタ１０２Ａ，１０２Ｂ，…は、例えば不揮発性のメモリで実現される。キャリブレーション回路１１０は、出力回路１２０Ａ，１２０Ｂ，…を基準値に設定するためのキャリブレーション信号ＺＱＣＡＬを生成して、ＺＱＣＡＬ補正回路１２４Ａ，１２４Ｂ，…に出力する。
【００１８】
ＺＱＣＡＬ補正回路１２４Ａは、キャリブレーション信号ＺＱＣＡＬを、出力回路１２０Ａに対応するコード補正信号ＣＡＬＡ０に従って補正し、補正されたキャリブレーション信号をビットキャリブレーション信号ＣＡＬＢ０として出力バッファ１２２Ａに出力する。ＺＱＣＡＬ補正回路１２４Ｂは、キャリブレーション信号ＺＱＣＡＬを、出力回路１２０Ｂに対応するコード補正信号ＣＡＬＡ１に従って補正し、補正されたキャリブレーション信号をビットキャリブレーション信号ＣＡＬＢ１として出力バッファ１２２Ｂに出力する。ＺＱＣＡＬ補正回路１２４Ｃは、キャリブレーション信号ＺＱＣＡＬを、出力回路１２０Ｃに対応するコード補正信号ＣＡＬＡ２に従って補正し、補正されたキャリブレーション信号をビットキャリブレーション信号ＣＡＬＢ２として出力バッファ１２２Ｃに出力する。
【００１９】
出力バッファ１２２Ａは、端子ＤＱ０に接続されており、その出力インピーダンスをビットキャリブレーション信号ＣＡＬＢ０に応じた値にする。出力バッファ１２２Ｂは、端子ＤＱ１に接続されており、その出力インピーダンスをビットキャリブレーション信号ＣＡＬＢ１に応じた値にする。出力バッファ１２２Ｃは、端子ＤＱ２に接続されており、その出力インピーダンスをビットキャリブレーション信号ＣＡＬＢ２に応じた値にする。データを出力する場合には、出力バッファ１２２Ａ，１２２Ｂ，１２２Ｃは、入力されたデータ信号Ｄ０，Ｄ１，Ｄ２の値をそれぞれ出力する。
【００２０】
図２は、図１の出力バッファ１２２Ａの構成例を示すブロック図である。出力バッファ１２２Ａは、単位出力バッファ１３１，１３２，…，１３８と、プリバッファ１３９とを有している。プリバッファ１３９は、データ信号Ｄ０及びビットキャリブレーション信号ＣＡＬＢ０に従ってバッファ制御信号ｃｎｔＰ１〜ｃｎｔＰ８，ｃｎｔＮ１〜ｃｎｔＮ８を生成して出力する。単位出力バッファ１３１〜１３８は、いずれも同様に構成されている。
【００２１】
バッファ制御信号ｃｎｔＰ１〜ｃｎｔＰ８は単位出力バッファ１３１〜１３８に対応し、バッファ制御信号ｃｎｔＮ１〜ｃｎｔＮ８は単位出力バッファ１３１〜１３８に対応している。単位出力バッファ１３１は、対応するバッファ制御信号ｃｎｔＰ１及びｃｎｔＮ１によって制御される。他の単位出力バッファ１３２〜１３８も同様に、対応するバッファ制御信号によって制御される。単位出力バッファ１３１〜１３８の出力ノードは、端子ＤＱ０に接続されている。
【００２２】
ここでは、単位出力バッファ１３１〜１３８の出力インピーダンスは、いずれも、バッファ制御信号ｃｎｔＰ１〜ｃｎｔＰ８，ｃｎｔＮ１〜ｃｎｔＮ８によって２４０Ωにキャリブレーションされるものとする。単位出力バッファ１３１〜１３８は並列に接続されているので、そのうちの活性化されている単位出力バッファの数を変えることにより、出力バッファ１２２Ａの出力インピーダンスを２４０Ω〜２４０／８Ωの範囲に設定することができる。このように、ビットキャリブレーション信号ＣＡＬＢ０と、並列に接続される単位出力バッファの数の変更により、出力インピーダンスのフレキシブルな調整が可能となる。
【００２３】
図３は、図２の単位出力バッファ１３１の構成例を示す回路図である。単位出力バッファ１３１は、プルアップ回路１４０と、プルダウン回路１５０とを有している。プルアップ回路１４０は、ＰＭＯＳ（p-channel Metal Oxide Semiconductor）トランジスタ１４１，１４２，１４３，１４４，１４５，１４６と、抵抗１４８とを有している。プルダウン回路１５０は、ＮＭＯＳ（n-channel Metal Oxide Semiconductor）トランジスタ１５１，１５２，１５３，１５４，１５５，１５６と、抵抗１５８とを有している。
【００２４】
ＰＭＯＳトランジスタ１４１〜１４６は並列に接続され、ＮＭＯＳトランジスタ１５１〜１５６は並列に接続されている。抵抗１４８の一端はＰＭＯＳトランジスタ１４１〜１４６のドレインに接続され、他端は端子ＺＱ０に接続されている。抵抗１５８の一端はＮＭＯＳトランジスタ１５１〜１５６のドレインに接続され、他端は端子ＺＱ０に接続されている。ＰＭＯＳトランジスタ１４１〜１４６の数、ＮＭＯＳトランジスタ１５１〜１５６の数は一例であって、他の数であってもよい。抵抗１４８，１５８は省略してもよい。
【００２５】
バッファ制御信号ｃｎｔＰ１〜ｃｎｔＰ８，ｃｎｔＮ１〜ｃｎｔＮ８は、いずれも、例えば６ビットの信号であるとする。バッファ制御信号ｃｎｔＰ１の各ビットを、最下位ビットから順にｃｎｔＰ１＜０＞，ｃｎｔＰ１＜１＞，ｃｎｔＰ１＜２＞，…，ｃｎｔＰ１＜５＞で表し、これらをまとめてｃｎｔＰ１＜５：０＞で表すこととする。他のバッファ制御信号ｃｎｔＰ２〜ｃｎｔＰ８，ｃｎｔＮ１〜ｃｎｔＮ８等についても同様である。ＰＭＯＳトランジスタ１４１〜１４６のゲートには、バッファ制御信号ｃｎｔＰ１＜０＞〜ｃｎｔＰ１＜５＞がそれぞれ与えられ、ＮＭＯＳトランジスタ１５１〜１５６のゲートには、バッファ制御信号ｃｎｔＮ１＜０＞〜ｃｎｔＮ１＜５＞がそれぞれ与えられている。
【００２６】
ＰＭＯＳトランジスタ１４１〜１４６のそれぞれのＷ／Ｌ比（ゲート長Ｌに対するゲート幅Ｗの比）は、２のべき乗となるように重み付けされているとする。ここでは、ＰＭＯＳトランジスタ１４１〜１４６のＷ／Ｌ比を、それぞれ“１”，“２”，“４”，“８”，“１６”，“３２”とする。同様に、ＮＭＯＳトランジスタ１５１〜１５６のＷ／Ｌ比を、それぞれ“１”，“２”，“４”，“８”，“１６”，“３２”とする。ここでいうＷ／Ｌ比は、同種のトランジスタの間での相対値である。この場合、６ビットのバッファ制御信号ｃｎｔＰ１＜５：０＞及びｃｎｔＮ１＜５：０＞で出力インピーダンスを段階的に制御可能である。
【００２７】
図４は、図１のキャリブレーション回路１１０の構成例を示すブロック図である。キャリブレーション回路１１０は、プルアップ回路１１１と、カウンタ１１４，１１５と、抵抗１１６，１１７と、コンパレータ１１８，１１９と、バッファ１６０とを有している。バッファ１６０は、プルアップ回路１６２と、プルダウン回路１６４とを有している。プルアップ回路１１１，１６２は、図３のプルアップ回路１４０と同様に構成されており、プルダウン回路１６４は、図３のプルダウン回路１５０と同様に構成されている。すなわち、バッファ１６０は、図３の単位出力バッファ１３１と実質的に同一の回路である。
【００２８】
抵抗１１６及び１１７は、同一の抵抗値を有しており、両者が接続されたノードＡの電位は１／２＊ＶＤＤとなる。この電位は、コンパレータ１１８，１１９に反転入力として与えられている。プルアップ回路１１１と基準抵抗８とが、端子ＺＱを介して直列に接続されている。
【００２９】
コンパレータ１１８は、ノードＡの電位と端子ＺＱの電位とを比較し、その比較結果ＣＯＭＰ１をカウンタ１１４に出力する。カウンタ１１４は、比較結果ＣＯＭＰ１が“Ｈ”（高電位）である場合にはカウントアップを続け、比較結果ＣＯＭＰ１が“Ｌ”（低電位）である場合にはカウントダウンを続け、カウント値を出力信号ＺＱＣＡＬＰとして出力する。
【００３０】
出力信号ＺＱＣＡＬＰは、図３のバッファ制御信号ｃｎｔＰ１＜５：０＞に対応している。プルアップ回路１１１内の並列に接続されたＰＭＯＳトランジスタのうち、オンになるトランジスタが、出力信号ＺＱＣＡＬＰにより制御される。例えば、比較結果ＣＯＭＰ１が“Ｈ”であり、出力信号ＺＱＣＡＬＰの値が大きくなると、プルアップ回路１１１の抵抗値が大きくなるので、端子ＺＱの電位が下がる。このため、端子ＺＱの電位がノードＡの電位に近づく。
【００３１】
このような制御により、ノードＡの電位と端子ＺＱの電位とが等しくなり、出力信号ＺＱＣＡＬＰは一定になる。このように、端子ＺＱの電位をノードＡの電位である１／２＊ＶＤＤに一致させることにより、基準抵抗８に対してプルアップ回路１１１がキャリブレーションされる。このときの制御信号ＺＱＣＡＬＰはプルアップ回路１６２にも入力される。
【００３２】
プルダウン回路１６４についても、キャリブレーションされたプルアップ回路１６２を用いて、同様にキャリブレーションを行う。すなわち、コンパレータ１１９は、ノードＡの電位とノードＢの電位とを比較し、その比較結果ＣＯＭＰ２をカウンタ１１５に出力する。カウンタ１１５は、比較結果ＣＯＭＰ２が“Ｈ”である場合にはカウントアップを続け、比較結果ＣＯＭＰ２が“Ｌ”である場合にはカウントダウンを続け、カウント値を出力信号ＺＱＣＡＬＮとして出力する。
【００３３】
出力信号ＺＱＣＡＬＮは、図３のバッファ制御信号ｃｎｔＮ１＜５：０＞に対応している。プルダウン回路１６４内の並列に接続されたＮＭＯＳトランジスタのうち、オンになるトランジスタが、出力信号ＺＱＣＡＬＮにより制御される。例えば、比較結果ＣＯＭＰ２が“Ｈ”であり、出力信号ＺＱＣＡＬＮの値が大きくなると、プルダウン回路１６４の抵抗値が小さくなるので、ノードＢの電位が下がる。このため、ノードＢの電位がノードＡの電位に近づく。
【００３４】
このような制御により、ノードＡの電位とノードＢの電位とが等しくなり、出力信号ＺＱＣＡＬＮは一定になる。プルアップ回路１６２及びプルダウン回路１６４に対するキャリブレーションに用いられた出力信号ＺＱＣＡＬＰ及びＺＱＣＡＬＮが、キャリブレーション信号ＺＱＣＡＬとして各出力回路１２０Ａ，１２０Ｂ，…に出力される。
【００３５】
図５は、図１のＺＱＣＡＬ補正回路１２４Ａの構成例を示すブロック図である。ＺＱＣＡＬ補正回路１２４Ａは、６ビットの加減算回路であって、図３の単位出力バッファ１３１に対応した構成を有している。ＺＱＣＡＬ補正回路１２４Ａは、加減算器１７０と、リミット回路１８０とを有している。加減算器１７０は、排他的論理和（ＸＯＲ）回路１７２Ａ，１７２Ｂ，…，１７２Ｅ，１７２Ｆと、全加算器１７４Ａ，１７４Ｂ，…，１７４Ｅ，１７４Ｆとを有している。リミット回路１８０は、ＸＯＲ回路１８２と、セレクタ１８４，１８６とを有している。
【００３６】
図６は、図１のＺＱＣＡＬ補正回路１２４Ａの出力を示す説明図である。図５の加減算器１７０は、キャリブレーション信号ＺＱＣＡＬ＜５：０＞とコード補正信号ＣＡＬＡ０＜５：０＞とが入力されると、演算結果Ｓ＜５：０＞を出力する。ここで、ＣＡＬＡ０＜５＞は、加算又は減算の選択信号として用いられ、キャリーＣ５は、加算時及び減算時のオーバーフローフラグである。
【００３７】
図６のように、リミット回路１８０は、加算時（ＣＡＬＡ０＜５＞＝０）にオーバーフローが生じると（Ｃ５＝１）、ビットキャリブレーション信号ＣＡＬＢ０＜５：０＞の全ビットを“Ｈ”に固定し、減算時（ＣＡＬＡ０＜５＞＝１）にオーバーフローが生じると（Ｃ５＝０）、ビットキャリブレーション信号ＣＡＬＢ０＜５：０＞の全ビットを“Ｌ”に固定する。これにより、オーバーフローが生じた場合に出力インピーダンスが不連続にならないようにしている。リミット回路１８０は、その他の場合には、演算結果Ｓ＜５：０＞をそのまま出力する。ＺＱＣＡＬ補正回路１２４Ａの構成は一般的な加減算回路と同様であるので、ＺＱＣＡＬ補正回路１２４Ａについてのこれ以上の詳細な説明は省略する。
【００３８】
図７は、図１の半導体装置１００における出力インピーダンス調整処理の例を示すフローチャートである。例として、図１の出力回路１２０Ａの出力インピーダンスを２４０Ωに補正する場合について説明する。コード補正信号ＣＡＬＡ０＜５：０＞の初期値は“０”であるとするが、回路構成や設定フローに応じて、他の適した値を初期値として用いてもよい。
【００３９】
例として、初期状態での出力インピーダンスが２４０Ωより大きい場合について説明する。まず、出力インピーダンスを測定し、測定値を所望の値である２４０Ωと比較する（Ｓ１１０）。出力インピーダンスが２４０Ωより大きい場合にはＳ１２０に進み、その他の場合にはＳ１２１に進む。Ｓ１２０では、レジスタ制御信号ＲＣ０によってコード補正信号ＣＡＬＡ０＜５＞に“１”を設定し、ＺＱＣＡＬ補正回路１２４Ａを、キャリブレーション信号ＺＱＣＡＬの値に対して減算を行うモードにする。
【００４０】
Ｓ１３０では、レジスタ制御信号ＲＣ０によってコード補正信号ＣＡＬＡ０＜５：０＞の値を０ｘ０００００１（０ｘは１６進数を表す）だけ増加させる。ＺＱＣＡＬ補正回路１２４Ａは、キャリブレーション信号ＺＱＣＡＬの値からコード補正信号ＣＡＬＡ０＜５：０＞の値を減算し、減算結果をビットキャリブレーション信号ＣＡＬＢ０として出力する。
【００４１】
Ｓ１４０では、その状態で再度、出力インピーダンス測定を行い、測定値を２４０Ωと比較する。出力インピーダンスが２４０Ωより大きい場合にはＳ１５０に進み、その他の場合にはＳ１５１に進む。Ｓ１５０では、コード補正信号ＣＡＬＡ０＜５＞が１であるか否かを判定する。コード補正信号ＣＡＬＡ０＜５＞＝１である場合にはＳ１３０に戻り、その他の場合は処理を終了する。
【００４２】
Ｓ１３０に戻る場合には、レジスタ制御信号ＲＣ０によってコード補正信号ＣＡＬＡ０＜５：０＞の値を０ｘ０００００１だけ増加させ、コード補正信号ＣＡＬＡ０＜５：０＞＝０ｘ１０００１０にする。すると、ＺＱＣＡＬ補正回路１２４Ａから出力されるビットキャリブレーション信号ＣＡＬＢ０の値が減少する。このとき、図２のプリバッファ１３９は、各単位出力バッファの出力インピーダンスが低下するように、バッファ制御信号ｃｎｔＰ１〜ｃｎｔＰ８，ｃｎｔＮ１〜ｃｎｔＮ８を生成する。その後、Ｓ１３０，Ｓ１４０，Ｓ１５０の繰り返しにより、出力インピーダンスを徐々に低下させていく。
【００４３】
出力インピーダンスが２４０Ω以下になると、Ｓ１５１において、コード補正信号ＣＡＬＡ０＜５＞が１であるか否かを判定する。コード補正信号ＣＡＬＡ０＜５＞が１である場合には、初期状態で２４０Ωより大きかった出力インピーダンスが２４０Ω以下になったことがわかるので、処理を終了する。その他の場合には、Ｓ１３０に戻る。
【００４４】
図８は、値を低下させていく場合の出力インピーダンスの変化の例を示すグラフである。以上で説明したように、初期状態で出力インピーダンスが２４０Ωより大きい場合には、コード補正信号ＣＡＬＡ０＜４：０＞の値が大きくなると出力インピーダンスが低下する。図８の場合、コード補正信号ＣＡＬＡ０＜４：０＞の値が“９”のとき、出力インピーダンスが２４０Ω以下になる。このとき、コード補正信号ＣＡＬＡ０＜４：０＞の値としては“８”を選択してもよい。
【００４５】
初期状態での出力インピーダンスが２４０Ω以下である場合には、図７のＳ１２１で、コード補正信号ＣＡＬＡ０＜５＞に“０”を設定し、ＺＱＣＡＬ補正回路１２４Ａを、キャリブレーション信号ＺＱＣＡＬの値に対して加算を行うモードにする。その後、Ｓ１３０，Ｓ１４０，Ｓ１５１の繰り返しにより、出力インピーダンスを徐々に増大させていく。出力インピーダンスが２４０Ωを上回ると、Ｓ１５０において、コード補正信号ＣＡＬＡ０＜５＞が１であるか否かを判定する。コード補正信号ＣＡＬＡ０＜５＞が０である場合には、初期状態で２４０Ωより小さかった出力インピーダンスが２４０Ωより大きくなったことがわかるので、処理を終了する。このように、レジスタ制御信号ＲＣ０は、レジスタ１０２Ａに対応する出力回路１２０Ａの出力インピーダンスの測定結果に従って、半導体装置１００の外部から入力される。
【００４６】
図９は、値を増大させていく場合の出力インピーダンスの変化の例を示すグラフである。以上で説明したように、初期状態で出力インピーダンスが２４０Ω以下である場合には、コード補正信号ＣＡＬＡ０＜４：０＞の値が大きくなると出力インピーダンスが増大する。図９の場合、コード補正信号ＣＡＬＡ０＜４：０＞の値が“６”のとき、出力インピーダンスが２４０Ωを上回る。このとき、コード補正信号ＣＡＬＡ０＜４：０＞の値としては“５”を選択してもよい。
【００４７】
図７のフローを図１の他の出力回路１２０Ｂ，１２０Ｃ，…についても同様に行う。これにより、各出力回路の出力インピーダンスを最適化することができ、端子ＤＱ０，ＤＱ１，ＤＱ２，…から並列に出力される複数のビットの高速転送が可能になる。
【００４８】
図７に示す処理では、出力インピーダンスを２４０Ωに合わせることを目的としたが、同様の処理により様々な応用が可能である。例えばＤＤＲ３規格では、ＤＤＲ３メモリに入力されるクロックのデューティ比が厳しく規定されている。出力インピーダンスが変化すると、それに伴い出力信号の立ち上り／立ち下り時間が変化する。これを利用して、出力信号のデューティ比を所望の値に設定することができる。
【００４９】
図１０は、図１の半導体装置１００におけるデューティ比調整処理の例を示すフローチャートである。簡単のため、図１０では、信号の立ち下り時間は変えずに、信号の立ち上がり時間のみを調整する場合について示している。例として、図１の出力回路１２０Ａの出力信号のデューティ比を５０％にする場合について説明する。コード補正信号ＣＡＬＡ０＜５：０＞の初期値は“０”であるとするが、回路構成や設定フローに応じて、他の適した値を初期値として用いてもよい。
【００５０】
例として、初期状態での出力信号のデューティ比が５０％より大きい場合について説明する。まず、出力信号のデューティ比を測定し、測定値を所望の値である５０％と比較する（Ｓ２１０）。出力信号のデューティ比が５０％より大きい場合にはＳ２２０に進み、その他の場合にはＳ２２１に進む。Ｓ２２０では、レジスタ制御信号ＲＣ０によってコード補正信号ＣＡＬＡ０＜５＞に“０”を設定し、ＺＱＣＡＬ補正回路１２４Ａを、キャリブレーション信号ＺＱＣＡＬの値に対して加算を行うモードにする。
【００５１】
Ｓ２３０では、レジスタ制御信号ＲＣ０によってコード補正信号ＣＡＬＡ０＜５：０＞の値を０ｘ０００００１だけ増加させる。ＺＱＣＡＬ補正回路１２４Ａは、キャリブレーション信号ＺＱＣＡＬの値にコード補正信号ＣＡＬＡ０＜５：０＞の値を加算し、加算結果をビットキャリブレーション信号ＣＡＬＢ０として出力する。
【００５２】
Ｓ２４０では、その状態で再度、出力信号のデューティ比の測定を行い、測定値を５０％と比較する。出力信号のデューティ比が５０％より大きい場合にはＳ２５０に進み、その他の場合にはＳ２５１に進む。Ｓ２５０では、コード補正信号ＣＡＬＡ０＜５＞が０であるか否かを判定する。コード補正信号ＣＡＬＡ０＜５＞＝０である場合にはＳ２３０に戻り、その他の場合は処理を終了する。
【００５３】
Ｓ２３０に戻る場合には、レジスタ制御信号ＲＣ０によってコード補正信号ＣＡＬＡ０＜５：０＞の値を０ｘ０００００１だけ増加させ、コード補正信号ＣＡＬＡ０＜５：０＞＝０ｘ００００１０にする。すると、ＺＱＣＡＬ補正回路１２４Ａから出力されるビットキャリブレーション信号ＣＡＬＢ０の値が増加する。このとき、図２のプリバッファ１３９は、各単位出力バッファの出力インピーダンスが増大するように、バッファ制御信号ｃｎｔＰ１〜ｃｎｔＰ８，ｃｎｔＮ１〜ｃｎｔＮ８を生成する。その後、Ｓ２３０，Ｓ２４０，Ｓ２５０の繰り返しにより、出力信号のデューティ比を徐々に低下させていく。
【００５４】
出力信号のデューティ比が５０％以下になると、Ｓ２５１において、コード補正信号ＣＡＬＡ０＜５＞が０であるか否かを判定する。コード補正信号ＣＡＬＡ０＜５＞が０である場合には、初期状態で５０％より大きかった出力信号のデューティ比が５０％以下になったことがわかるので、処理を終了する。その他の場合には、Ｓ２３０に戻る。
【００５５】
初期状態での出力信号のデューティ比が５０％以下である場合には、図１０のＳ２２１で、コード補正信号ＣＡＬＡ０＜５＞に“１”を設定し、ＺＱＣＡＬ補正回路１２４Ａを、キャリブレーション信号ＺＱＣＡＬの値に対して減算を行うモードにする。その後、Ｓ２３０，Ｓ２４０，Ｓ２５１の繰り返しにより、出力信号のデューティ比を徐々に増大させていく。出力信号のデューティ比が５０％を上回ると、Ｓ２５０において、コード補正信号ＣＡＬＡ０＜５＞が０であるか否かを判定する。コード補正信号ＣＡＬＡ０＜５＞が１である場合には、初期状態で５０％より小さかった出力信号のデューティ比が５０％より大きくなったことがわかるので、処理を終了する。このように、レジスタ制御信号ＲＣ０は、レジスタ１０２Ａに対応する出力回路１２０Ａの出力信号のデューティ比の測定結果に従って、半導体装置１００の外部から入力される。
【００５６】
図１０のフローを図１の他の出力回路１２０Ｂ，１２０Ｃ，…についても同様に行う。これにより、各出力回路の出力信号のデューティ比を最適値に揃えることができ、端子ＤＱ０，ＤＱ１，ＤＱ２，…から並列に出力される複数のビットの高速転送が可能になる。
【００５７】
図７の処理におけるインピーダンス測定や、図１０の処理における出力信号のデューティ比測定は、例えば半導体検査装置を端子ＤＱ０，ＤＱ１，ＤＱ２，…に接続することによって行う。これらの測定を他の方法によって行ってもよい。
【００５８】
例えばこの半導体検査装置がインピーダンス測定やデューティ比測定の測定結果に従ってレジスタ制御信号ＲＣ０，ＲＣ１，…を生成することによって、レジスタ１０２Ａ，１０２Ｂ，…に値が設定される。これに代えて、半導体装置１００の外部のマイクロプロセッサ等が、このような測定結果に従ってコード補正信号ＣＡＬＡ０，ＣＡＬＡ１，…を生成して、ＺＱＣＡＬ補正回路１２４Ａ，１２４Ｂ，…を直接制御するようにしてもよい。
【００５９】
図１０と同様のフローによって、デューティ比に代えて各出力回路の出力信号のスルーレートを対象にして制御を行い、各出力回路の出力信号のスルーレートを最適値に揃えるようにしてもよい。
【００６０】
以上のように、図１の半導体装置１００においては、出力回路１２０Ａ，１２０Ｂ，…がＺＱＣＡＬ補正回路１２４Ａ，１２４Ｂ，…をそれぞれ有し、ＺＱＣＡＬ補正回路１２４Ａ，１２４Ｂ，…が、全出力回路に対して共通に出力されるキャリブレーション信号ＺＱＣＡＬをそれぞれ補正している。このため、出力回路毎に出力インピーダンスを最適に設定することができる。したがって、複数のビットを並列に出力する場合に、出力インピーダンスのバラツキを抑えることができるので、多ビットの高速並列転送が可能になる。
【００６１】
本発明の多くの特徴及び優位性は、記載された説明から明らかであり、よって添付の特許請求の範囲によって、本発明のそのような特徴及び優位性の全てをカバーすることが意図される。更に、多くの変更及び改変が当業者には容易に可能であるので、本発明は、図示され記載されたものと全く同じ構成及び動作に限定されるべきではない。したがって、全ての適切な改変物及び等価物は本発明の範囲に入るものとされる。
【産業上の利用可能性】
【００６２】
以上説明したように、本発明の実施形態によると、多ビットの高速並列転送が可能になるので、本発明は、出力回路を有する半導体装置等について有用である。
【符号の説明】
【００６３】
１０２Ａ，１０２Ｂ，１０２Ｃ  レジスタ
１１０  キャリブレーション回路
１２０Ａ，１２０Ｂ，１２０Ｃ  出力回路
１２２Ａ，１２２Ｂ，１２２Ｃ  出力バッファ
１２４Ａ，１２４Ｂ，１２４Ｃ  ＺＱＣＡＬ補正回路
【図１】
2011041209.tif 000003
【図２】
2011041209.tif 000004
【図３】
2011041209.tif 000005
【図４】
2011041209.tif 000006
【図５】
2011041209.tif 000007
【図６】
2011041209.tif 000008
【図７】
2011041209.tif 000009
【図８】
2011041209.tif 000010
【図９】
2011041209.tif 000011
【図１０】
2011041209.tif 000012