(57)【要約】【課題】バス駆動回路のバッファの駆動能力を信号線の遅延差に応じて適宜制御することによって、信号線間の遅延差を補正でき、バスのレイアウトを変更させることなく回路変更に対応することができ、設計負荷を低減させ、かつ信号線の遅延差による誤動作を防止できる半導体回路を実現する。【解決手段】送信部１２によってバス２０を介してデータを送信し、受信部３２によって受信したデータがシリアルデータに変換され、シリアル信号線５０を介してデータ送信部１０に返送され、遅延判断部１４によって、送信データと返送されたデータとを比較し、当該比較の結果に従ってバス２０の複数の信号線のうち、他の信号より遅延が大きく、それによって転送データに誤りが生じたビットを検出し、当該検出の結果に従って、バッファの駆動能力を適宜制御して信号線の間の遅延差を補正し、遅延差による転送データの誤りを防止できる。【選択図】    図１
2004319890.tif 000002
【特許請求の範囲】
【請求項１】
駆動回路を介してバスに送信データを出力する送信部と、上記バスを介して送信されたデータを受信する受信部とを含む半導体回路において、上記バスの伝搬遅延を補正する半導体回路であって、
上記受信部によって受信した受信データをシリアルデータに変換して、シリアル信号線を介して上記送信部に送信するシリアル送信部と、
上記シリアル送信部によって送信された上記シリアルデータを受信し、当該受信データと上記バスに出力された上記送信データとを比較し、当該比較の結果に応じて上記バスの信号線の遅延差を判断し、当該遅延差を補正するため上記駆動回路の駆動能力を制御する遅延制御部と
を有する半導体回路。
【請求項２】
上記遅延制御部は、上記受信したシリアルデータと上記送信データとをビットごとに比較し、当該比較の結果に応じて、上記送信データの各ビットに対応する上記駆動回路の駆動能力を制御する
請求項１記載の半導体回路。
【請求項３】
上記遅延制御部は、上記受信したシリアルデータと上記送信データとをビットごとに比較し、当該比較結果に応じて、上記受信したシリアルデータと上記送信データのうち、値が異なるビットに対応する上記駆動回路の駆動能力を通常より大きく制御する
請求項２記載の半導体回路。
【請求項４】
上記駆動回路は、上記送信データを増幅して上記バスを構成する信号線に出力する第１のバッファと、
上記第１のバッファと並列に接続され、上記遅延制御部からの制御信号に応じて動作または非動作状態に制御され、動作時に上記送信データを増幅して上記信号線に出力する第２のバッファと
が上記バスの各信号線ごとに設けられている
請求項１記載の半導体回路。
【請求項５】
上記制御部は、上記受信したシリアルデータと上記送信データとをビットごとに比較し、当該比較結果に応じて、上記受信したシリアルデータと上記送信データのうち、値が異なるビットに対応する上記駆動回路の上記第２のバッファを動作状態に制御する
請求項４記載の半導体回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、バスを介してデータを転送する半導体回路において、データの転送先に転送されたデータの各ビットの遅延差を検出し、当該検出結果に応じてバス駆動回路の駆動能力を制御し、ビット間の遅延差を補正する半導体回路に関するものである。
【０００２】
【従来の技術】
バスを介して複数ビットからなるデータを送信する半導体回路において、バスの各信号線の配置、または信号線の間の容量結合などによって、隣接する信号線の間で異なる遅延特性が生じてしまうことがある。バスの各信号線の間の遅延差が転送信号の誤りを生じ、半導体装置の誤動作を引き起こすこともある。
【０００３】
従来では、バスの隣接する配線間の容量の差異によって信号の遅延差を解消するために、バスの各信号線の配線の寸法を調整する方法、またはバスに遅延回路を設ける方法などが採用されている。
図３は、バス信号線のレイアウトの一例を示す概念図である。図示のように、信号線の間の容量結合による影響を打ち消すため、ｎビットの転送データに対応するｎ本の信号線のうち、両側の信号線が他の信号線よりわずか長めに配線されている。これは、両側の配線、即ち、図３に示す０ビットとｎ−１ビットに対応する信号線は、片方にのみ他の信号線が隣接して配置されているいるので、信号線間の容量結合が他の信号線に較べて小さく、このため、０ビットとｎ−１ビットの伝搬遅延が他のビットに較べて小さいからである。
【０００４】
図３に示すように、両側の信号線が他の信号線よりわずかに長めに配線することにより、これらの信号線の遅延時間がわずかに長くなる。これによって、他の信号線の遅延時間との差が補正される。
【０００５】
【特許文献１】
特開平２００２−２４６５５７号公報
【特許文献２】
特許平２００２−０３３４５７号公報
【０００６】
【発明が解決しようとする課題】
ところで、上述した従来の半導体回路では、回路構成の変更などによってバス配線のレイアウトに変更が生じてしまう場合、各信号線の間の容量結合が変化し、各信号線の遅延特性が変わる。このため、信号線間の遅延差を補正するために、各信号線の伝搬遅延を計算し直しレイアウト設計をやり直す必要が生じる。このため、設計段階において作業負荷が大きくなり、さらに回路構成がわずかな変化でもバス信号線のレイアウトに影響を与えることがあり、配線のレイアウトが不安定になる。
【０００７】
本発明は、かかる事情に鑑みてなされたものであり、その目的は、バスの信号線に設けられている信号線駆動回路の駆動能力を信号線の遅延時間差に応じて適宜制御することによって、信号線間の遅延差を補正でき、バスのレイアウトを変更させることなく回路変更に対応することができ、設計負荷を低減させ、かつ信号線の遅延差による誤動作を防止できる半導体回路を提供することにある。
【０００８】
【課題を解決するための手段】
上記目的を達成するため、本発明の半導体回路は、駆動回路を介してバスに送信データを出力する送信部と、上記バスを介して送信されたデータを受信する受信部とを含む半導体回路において、上記バスの伝搬遅延を補正する半導体回路であって、上記受信部によって受信した受信データをシリアルデータに変換して、シリアル信号線を介して上記送信部に送信するシリアル送信部と、上記シリアル送信部によって送信された上記シリアルデータを受信し、当該受信データと上記バスに出力された上記送信データとを比較し、当該比較の結果に応じて上記バスの信号線の遅延差を判断し、当該遅延差を補正するため上記駆動回路の駆動能力を制御する遅延制御部とを有する。
【０００９】
また、本発明では、好適には、上記遅延制御部は、上記受信したシリアルデータと上記送信データとをビットごとに比較し、当該比較の結果に応じて、上記送信データの各ビットに対応する上記駆動回路の駆動能力を制御する。
【００１０】
また、本発明では、好適には、上記遅延制御部は、上記受信したシリアルデータと上記送信データとをビットごとに比較し、当該比較結果に応じて、上記受信したシリアルデータと上記送信データのうち、値が異なるビットに対応する上記駆動回路の駆動能力を通常より大きく制御する。
【００１１】
また、本発明では、好適には、上記駆動回路には、上記送信データを増幅して上記バスを構成する信号線に出力する第１のバッファと、上記第１のバッファと並列に接続され、上記遅延制御部からの制御信号に応じて動作または非動作状態に制御され、動作時に上記送信データを増幅して上記信号線に出力する第２のバッファとが上記バスの各信号線ごとに設けられている。
【００１２】
さらに、本発明では、好適には、上記制御部は、上記受信したシリアルデータと上記送信データとをビットごとに比較し、当該比較結果に応じて、上記受信したシリアルデータと上記送信データのうち、値が異なるビットに対応する上記駆動回路の上記第２のバッファを動作状態に制御する。
【００１３】
本発明によれば、送信部によって駆動回路を介してバスに送信データが出力され、バスを介して転送される送信データが受信部によって受信される。受信されたデータがシリアル信号線を介して上記送信部に返送される。送信部において、受信したシリアルデータと上記送信データとが比較され、当該比較結果に応じて、バスの信号線の遅延差を判断できるので、当該判断結果に基づき上記駆動回路を構成するバッファの駆動能力を適宜制御することにより、バスの信号線の間の遅延差が補正され、信号線の遅延差によって生じた転送データの誤りを防止できる。
【００１４】
【発明の実施の形態】
図１は本発明に係る半導体回路の一実施形態を示す構成図である。
図示のように、本実施形態の半導体回路はデータ送信部１０、バス２０、データ受信部３０、バス２０の各信号線を駆動するバス駆動回路４０、及びシリアル信号線５０を有している。
【００１５】
データ送信部１０は、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ  ）、またはＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）などの処理回路であり、データ受信部３０は、例えば、ＣＰＵまたはＤＳＰからの制御命令またはデータに応じて処理を行う周辺回路などである。バス２０は、ＣＰＵまたはＤＳＰからデータ受信部３０に制御命令またはデータを転送するための信号線からなり、転送するデータのビット数に応じて、複数本の信号線が設けられている。
【００１６】
以下、図１を参照しつつ、本実施形態の半導体回路の各構成部分について説明する。
まず、データ送信部１０の各構成部分について説明する。
図１に示すように、データ送信部１０は、送信部１２、遅延制御部１４、レジスタ１６、及びシリアル受信部１８を有し、データ受信部３０は、受信部３２とシリアル転送部３４とを有している。
【００１７】
送信部１２は、制御命令またはデータをバス駆動回路４０を介して、バス２０に出力する。送信部１２によって出力される制御命令またはデータがバス２０を介してデータ受信部３０に転送される。
【００１８】
遅延制御部１４は、送信部１２によってバス２０に送信したデータと、シリアル受信部１８によって受信したデータとを比較し、当該比較の結果に応じて、データ受信部３０に転送された複数ビットのデータのうち、他のビットより遅延が大きく、それによって受信データに誤りが生じたビットを判断する。当該判断の結果に従って、遅延制御データＤ１４を生成し、レジスタ１６に出力する。
【００１９】
レジスタ１６は、遅延制御部１４から入力される遅延補正データＤ１４を保持し、保持したデータをバス駆動回路４０の各バッファに出力する。これに応じて、バス駆動回路４０の各バッファの駆動能力が制御されるので、他の信号線より遅延時間が大きく、データ受信部３０に到達したとき遅延差により誤りが生じたビットを伝搬する信号線に対応するバッファの駆動能力を大きく制御することによって、他の信号線との遅延差を補正でき、遅延差による伝搬誤差を回避する。
【００２０】
シリアル受信部１８は、シリアル信号線５０を介して転送されてきたシリアルデータを受信し、受信データを遅延制御部１４に出力する。
【００２１】
バス２０は、ｎビット（ｎは整数、ｎ≧１）のデータを転送するためのｎ本の信号線からなる。
【００２２】
次に、データ受信部３０の各構成部分について説明する。
図１に示すように、データ受信部３０は、受信部３２とシリアル転送部３４を有している。
【００２３】
受信部３２は、バス２０を介して入力されたデータを受信する。そして、受信部３２は受信したデータをシリアル転送部３４に出力する。
シリアル転送部３４は、受信部３２によって受信したデータをシリアルデータに変換して、シリアル信号線５０を介してデータ送信部１０に送信する。
【００２４】
本実施形態の遅延制御回路において、データ受信部３０では、受信部３２によって受信したデータをシリアルデータに変換して、シリアル信号線５０を介してデータ送信部１０に送信するので、バスを用いる並列のデータ転送に較べて、信号線の遅延特性の差によって生じる誤りを回避できる。このため、データ送信部１０の遅延制御部１４において、データ受信部３０に到達したデータと同一のデータを用いてバス２０の各信号線の遅延差を判断することができ、当該判断の結果に従って遅延補正データＤ１４を生成して、レジスタ１６に出力する。これによって、バス２０の各信号線の遅延差を正しく判断でき、判断結果に基づきバス信号線の遅延差による影響を回避でき、バス２０によるデータ転送の信頼性を改善できる。
【００２５】
次いで、バス駆動回路４０の構成について説明する。
バス駆動回路４０は、図示のようにバス２０の各信号線に設けられているｎ個のバッファ４０−１，４０−２，…，４０−ｎからなる。バス駆動回路４０に設けられているそれぞれのバッファは、データ送信部１０のレジスタ１６からの制御データＤＣ−１，ＤＣ−２，…，ＤＣ−ｎによって駆動能力が制御される。
【００２６】
バス駆動回路４０を構成するバッファ４０−１，４０−２，…，４０−ｎは同じ構成を有しているので、ここで、バッファ４０−１を例にその構成についてさらに詳しく説明する。
【００２７】
図２は、バッファ４０−１の一構成例を示す回路図である。
図示のように、バッファ４０−１は、インバータ４２、制御データＤＣ−１によって動作または非動作状態に制御されるインバータ４４、及び制御データＤＣ−１の論理反転データをインバータ４４に供給するインバータ４６を有している。
【００２８】
インバータ４２は、図２に示すように、ｐＭＯＳトランジスタＰ１とｎＭＯＳトランジスタＮ１によって構成されているＭＯＳインバータである。インバータ４２の入力端子が図１に示す送信部１２の出力端子に接続され、その出力端子がバス２０の信号線２０−１に接続されている。
【００２９】
インバータ４４は、図示のように、ｐＭＯＳトランジスタＰ２，Ｐ３及びｎＭＯＳトランジスタＮ２，Ｎ３によって構成されている。ｐＭＯＳトランジスタＰ２とｎＭＯＳトランジスタＮ２のゲート同士が共通に接続され、当該接続点がインバータ４４の入力端子を形成する。また、ｐＭＯＳトランジスタＰ２とｎＭＯＳトランジスタＮ２のドレイン同士が共通に接続され、当該接続点がインバータ４４の出力端子を形成する。
図２に示すように、インバータ４４の入力端子は、インバータ４２の入力端子に接続され、インバータ４４の出力端子は、インバータ４２の出力端子に接続されている。即ち、インバータ４４と４２が並列に接続されている。
【００３０】
ｐＭＯＳトランジスタＰ３は、ｐＭＯＳトランジスタＰ２と電源電圧ＶＤＤの供給端子との間に接続され、ｎＭＯＳトランジスタＮ３は、ｎＭＯＳトランジスタＮ２と接地電位との間に接続されている。ｐＭＯＳトランジスタＰ３のゲートがレジスタ１６に接続され、ｎＭＯＳトランジスタＮ３のゲートがインバータ４６の出力端子に接続され、インバータ４６の入力端子がレジスタ１６に接続されている。
【００３１】
このため、トランジスタＰ３とＮ３は、レジスタ１６に保持されている制御データＤＣ−１によって導通または遮断状態に制御される。例えば、レジスタ１６に保持されている制御データＤＣ−１が０のとき、トランジスタＰ３のゲートがローレベルに保持され、トランジスタＮ３のゲートがハイレベルに保持されるので、トランジスタＰ３とＮ３がともに導通状態にあり、インバータ４４が動作状態に制御される。逆に、レジスタ１６に保持されている制御データＤＣ−１が１のとき、トランジスタＰ３のゲートがハイレベルに保持され、トランジスタＮ３のゲートがローレベルに保持されるので、トランジスタＰ３とＮ３がともに遮断状態にあり、インバータ４４が非動作状態に制御される。
【００３２】
インバータ４４が動作状態にあるとき、バッファ４０−１は、並列に接続されている二つのインバータ４２と４４によって形成され、その駆動能力が大きく制御され、バス２０の信号線２０−１に転送されるデータの遅延が小さく制御される。一方、インバータ４４が非動作状態にあるとき、バッファ４０−１は、インバータ４２のみで形成され、その駆動能力が小さく制御され、信号線２０−１に転送されるデータの遅延が大きくなる。
【００３３】
上述のように、レジスタ１６に保持されている制御データＤＣ−１に応じて、バッファ４０−１の駆動能力が制御される。
本実施形態の遅延制御回路において、バス駆動回路４０は、バス２０の信号線の本数に応じて設けられているｎ個のバッファ４０−１，４０−２，…，４０−ｎによって構成されている。このため、レジスタ１６に、例えばｎビットの制御データＤＣ−１，ＤＣ−２，…，ＤＣ−ｎを格納することによって、バス駆動回路４０のすべてのバッファをそれぞれ独立に制御することができる。
【００３４】
次に、上述した構成を有する本実施形態の半導体回路の動作について説明する。
半導体回路において、データ送信部１０の送信部１２によって出力される送信データがバス駆動回路４０を介してバス２０に出力される。そして、バス２０によって送信データがデータ受信部３０に転送される。データ受信部３０において、受信部３２によってバス２０を介して転送されてきたデータが受信され、受信データがシリアル転送部３４に出力される。
【００３５】
シリアル転送部３４において、受信部３２によって受信したデータがシリアルデータに変換され、シリアル信号線５０を介してデータ送信部１０に返送される。データ送信部１０において、シリアル受信部１８によって、シリアル信号線５０によって転送されてきたシリアルデータが受信され、これがパラレルのデータに変換され、遅延制御部１４に出力される。
【００３６】
遅延制御部１４において、送信部１２によってバス２０に送信したデータとシリアル受信部１８から入力したデータと比較される。当該比較の結果、両方のデータが一致している場合、バス２０の各信号線の伝搬遅延特性がほぼ一致し、データ送信部１０によって送信したデータがバス２０を介して正しくデータ受信部３０に伝搬されたことが分かる。この場合、バス駆動回路４０のすべてのバッファに通常の駆動能力をもつように遅延制御データＤ１４を生成し、レジスタ１６に書き込む。このとき、バッファ１６のすべてのビットが、例えば、１に設定される。これに応じて、それぞれのバッファ４０−１，４０−２，…４０−ｎのうち、図２に示すインバータ４２のみが動作し、インバータ４４が非動作状態に制御される。
【００３７】
一方、遅延制御回路１４による比較の結果、送信部１２によって送信したデータとシリアル受信部１８によって受信したデータが一致しないとき、両方のデータが異なるビットを検出することによって、バス２０によって転送されたｎビットのデータのうち、信号線の遅延差によって誤りが生じたビットを判断することができる。この判断結果に基づいて、バス２０のｎ本の信号線のうち他の信号線よりも伝搬遅延が大きい信号線を判断できる。このため、これらの信号線にデータを出力するバッファの駆動能力を大きく制御することによって、バス２０の信号線の間の遅延差を補正でき、データ受信部３０に到達したデータに生じた誤りを防止できる。
【００３８】
具体的に、例えば、遅延制御回路１４において、比較の結果、送信部１２の送信データとシリアル受信部１８の受信データとの間で、異なるビットが検出されたとき、そのビットに対応した遅延制御データＤ１４のビットを０に設定し、それ以外のビットを１に設定する。制御データＤ１４がレジスタ１６に出力され、レジスタ１６に保持される。そして、レジスタ１６に保持されている遅延制御データＤ１４に応じて、バス駆動回路４０のｎ個のバッファがそれぞれ制御される。例えば、遅延制御データＤ１４のうち、１となるビットに対応したバッファのうち、一つのインバータ（図２に示すインバータ４２に相当するもの）のみが動作し、一方、遅延制御データＤ１４のうち、０となるビットに対応したバッファにおいて両方のインバータ（図２に示すインバータ４２と４４に相当するもの）がともに動作するので、その駆動能力がインバータ一つのみ動作するバッファに較べて大きく制御される。このため、信号線の間の遅延差が保持され、当該遅延差によって生じた転送データの誤りを防止できる。
【００３９】
以上説明したように、本実施形態の半導体回路において、データ送信部１０の送信部１２によってバス２０を介してデータを送信し、データ受信部３０の受信部３２によって受信したデータがシリアルデータに変換され、シリアル信号線５０を介してデータ送信部１０に返送される。データ送信部１０の遅延判断部１４によって、送信部１２の送信データと返送されたデータとを比較し、当該比較の結果に従ってバス２０の複数の信号線のうち、他の信号より遅延が大きく、それによって伝搬されたデータに誤りが生じたビットが検出される。当該検出の結果に従って、バス駆動回路４０のそれぞれのバッファの駆動能力を適宜制御すれば、バス２０の信号線の間の遅延差を補正することができ、遅延差によって生じた転送データの誤りを防止できる。
【００４０】
なお、上述した遅延判断及び当該判断結果に応じた遅延補正の処理は、すべてのバスに対して所定の時間間隔で行うか、または回路の所定の動作時間、例えば、電源投入後初期化のときに行うことによって、回路の動作状態に応じてバスの遅延特性の変化を逐一把握でき、それに従ってバス駆動回路のそれぞれのバッファの駆動能力が適宜制御することによって、バスの信号線の間の遅延差を常に最小となるように制御することができ、遅延差によって生じた転送データの誤りを防止できる。
【００４１】
【発明の効果】
以上説明したように、本発明の半導体回路によれば、バスの信号線の遅延差を検出し、検出の結果に基づきバス駆動回路のバッファの駆動能力を適宜制御することによって、信号線の遅延差を補正でき、それによって生じたデータの誤りを防止できる利点がある。
また、本発明の半導体回路によれば、バスの遅延差の経時的な変化にも対応でき、半導体回路の使用状況などによってバスの遅延特性が変化しても、遅延特性の変化を逐一判断することができ、それに応じてバス駆動回路のバッファの駆動能力を適宜制御することで、遅延特性の変化を補正でき、バスの遅延特性の変化によって生じるデータの誤差を防止できる。
【図面の簡単な説明】
【図１】本発明に係る半導体回路の一実施形態を示す構成図である。
【図２】本実施形態の半導体回路を構成するバッファの一例を示す回路図である。
【図３】従来のバスのレイアウトを示す図である。
【符号の説明】
１０…データ送信部、１２…送信部、１４…遅延制御部、１６…レジスタ、１８…シリアル受信部、
２０…バス、２０−１，２０−２，…，２０−ｎ…バスの信号線
３０…データ受信部、３２…受信部、３４…シリアル転送部、
４０…バス駆動回路、４０−１，４０−２，…，４０−ｎ…バッファ、
５０…シリアル信号線。
【図１】
2004319890.tif 000003
【図２】
2004319890.tif 000004
【図３】
2004319890.tif 000005