(57)【特許請求の範囲】
【請求項１】
入力信号と制御信号がそれぞれ入力される複数の入力部と、
前記複数の入力部の出力を互いに接続したバスと、
前記バスからのバス信号を入力として信号を保持するラッチ回路を有する出力部と、
前記複数の入力部の制御入力端子からの制御信号に基づいて、バスがフローティング状態であるか否かを検出し、検出結果に応じて出力部制御信号を出力部に送出するフローティング状態検出部と、を備え、
前記ラッチ回路は、
クロック信号と、前記フローティング状態検出部から出力された出力部制御信号と、を入力して出力信号を生成するＯＲ回路と、
前記ラッチ回路内に設けられ、クロック信号に応じて動作し、保持する信号を更新するタイミングを制御する第１のスイッチ部と、
前記第１のスイッチ部と、前記バスとの間に設けられ、前記ＯＲ回路の出力信号に応じて動作し、前記第１のスイッチ部と前記バスの接続状態を制御することにより、前記ラッチ回路で保持された信号を前記バスへ出力するか否かを制御する第２のスイッチ部と、を備える、
バス回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はバス回路に関し、特にバスがフローティング状態となるのを防止するバス回路に関する。
【背景技術】
【０００２】
スリーステートバッファ（トライステートバッファ）を含む入力部と、バスとを備えるバス回路において、いずれの入力部からもバスに出力されない場合がある。すなわち、すべての入力部からハイインピーダンスが出力されている状態である。このとき、バスは電気的に不安定な状態（フローティング状態）となる。
【０００３】
例えば、ＣＭＯＳ回路がバスに接続されている場合、バスのフローティング状態が続くと、ＣＭＯＳ回路に貫通電流が流れる場合がある。すなわち、バスのフローティング状態は、消費電力の増大や、ＣＭＯＳ回路の破壊を招く恐れがある。そのため、すべての入力部からハイインピーダンスが出力されている場合であっても、バスがフローティング状態とならないよう、バスをＨ状態またはＬ状態に設定しておく必要がある。
【０００４】
特許文献１には、中間電位検出回路を備えるスリーステートバス電位固定回路に関する技術が開示されている。これによると、バス電位固定用に専用のＤラッチを設け、直前までバスに載っていたデータをＤラッチに保持する。バスがフローティング状態となる場合には保持されたデータをバスに返す。そのため、バスがフローティング状態となるのを回避するのに加え、バス上の電位の変化が最小限となり、消費電力の削減を図ることができる。
【０００５】
特許文献２では、バス上にデータ保持回路を設けるバス回路に関する技術について開示されている。これによると、バス上に設けられた信号保持回路でバス出力信号を保持する。バスがフローティング状態となる場合には、保持されたデータによりバス出力信号が保持される。したがって、バスがフローティング状態となるのを回避することができる。
【０００６】
特許文献３には、バスにラッチ機能を持たせる技術が開示されている。これによると、ラッチ回路を省略できるためバス回路のハードウェア量が削減し、データ転送の高速化を図ることができる。
【０００７】
特許文献４には、プルアップまたはプルダウン抵抗器を用いないバス電位安定化回路に関する技術が開示されている。これによると、複数の回路ユニットのいずれもが選択されない非通信時には固定データ出力部が選択され、主回路ユニットの入力回路に強制的に固定データを入力する。これにより、バスがフローティング状態となるのを回避することができる。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００４−０４８４０７号公報
【特許文献２】特開平０５−２１６８１８号公報
【特許文献３】特開２００８−１７７７１２号公報
【特許文献４】特開２００２−０７６８７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、特許文献１及び特許文献２に開示された技術では、既存の回路とは別にデータ保持回路を設けている。そのため、バス配線容量を増加させてしまい、バスのデータ転送性能の悪化を招くことや、バス回路の面積を増大させてしまうという問題がある。
【００１０】
また、図６に関連するバス回路の構成例を示す。この回路において、データ保持回路６はバス５０上に設けられている。すなわち、既存の回路とは別にデータ保持回路６を設けている。そのため、バス配線容量を増加させてしまい、バスのデータ転送性能の悪化を招くことや、バス回路の面積を増大させてしまうという問題がある。
【００１１】
本発明は、このような問題点を解決するためになされたものであり、バス面積を削減し、バス配線容量の増加を抑え、バスのフローティング状態を回避する際の消費電力を低減するバス回路を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明は、入力端子からそれぞれ入力信号が入力され、制御入力端子からそれぞれ制御信号が入力される複数の入力部と、前記複数の入力部の出力を互いに接続したバスと、前記バスからのバス信号を入力として信号を保持するラッチ回路を有する出力部、とを備え、前記バスがフローティング状態である場合に、前記出力部のラッチ回路に保持された信号を前記バスに出力する、バス回路である。
【発明の効果】
【００１３】
本発明により、バス面積を削減し、バス配線容量の増加を抑え、バスのフローティング状態を回避する際の消費電力を低減するバス回路を提供することができる。
【図面の簡単な説明】
【００１４】
【図１】実施の形態１にかかるバス回路の図である。
【図２】実施の形態１にかかる他のバス回路の図である。
【図３】実施の形態１にかかるタイムチャートの図である。
【図４】実施の形態２にかかるバス回路の図である。
【図５】実施の形態２にかかるラッチ回路の図である。
【図６】関連するバス回路の図である。
【発明を実施するための形態】
【００１５】
実施の形態１．
以下、図面を参照して本実施の形態について説明する。
図１は、本実施の形態におけるバス回路の回路図を示したものである。
バス回路は、入力部１、２、３と、バス５０と、出力部５を備える。ここで、バス５０は、信号の入力元となる入力部１、入力部２、入力部３と、それぞれ接続している。また、バス５０は出力部５と接続している。
また図２は、本実施の形態における他のバス回路の回路図を示したものである。このバス回路は図１で示したバス回路に加え、フローティング状態検出部４を備える。また、出力部５においてスイッチ部２００を備える。フローティング状態検出部４は、信号の入力元となる入力部１、入力部２、入力部３とそれぞれ接続している。また、フローティング状態検出部４は、信号の出力先となる出力部５と接続している。
【００１６】
入力部１は、ラッチ回路１０１と、ラッチ回路１０１の出力を入力とし、ＥＮＢ１を制御信号として入力するスリーステートバッファ２０１とを備えている。
【００１７】
ラッチ回路１０１は、入力信号ＤＡＴＡ１と、クロック信号ＣＬＫが入力される。そして、ラッチ回路１０１は、入力信号ＤＡＴＡ１に基づく信号をスリーステートバッファ２０１に出力する。
典型的には、入力信号ＤＡＴＡ１は、任意に定めた"１"または"０"の信号である。また、クロック信号ＣＬＫは、一定時間ごとにＨ状態とＬ状態が繰り返される信号である。
ラッチ回路１０１はクロック信号ＣＬＫにより、ラッチ回路１０１において入力信号ＤＡＴＡ１をラッチするタイミングや、ラッチ回路１０１から出力信号を出力するタイミングを制御する。なお、ラッチ回路１０１はクロック信号ＣＬＫがＬ状態の場合に、入力信号ＤＡＴＡ１をラッチするものとする。
【００１８】
スリーステートバッファ２０１は、ラッチ回路１０１から出力された信号と、制御信号ＥＮＢ１が入力される。そして、スリーステートバッファ２０１は、ラッチ回路１０１から出力された信号に基づいて、バス５０にバス信号を出力する。
ここで、スリーステートバッファ２０１は、典型的には、制御信号ＥＮＢ１が"１"の場合にはＯＮ状態となり、バス出力信号をバス５０に出力する。すなわち、制御信号ＥＮＢ１が"１"の場合に、入力信号ＤＡＴＡ１に基づく信号が、バス５０に送出される。
また、制御信号ＥＮＢ１が"０"の場合には、スリーステートバッファ２０１はＯＦＦ状態となり、スリーステートバッファ２０１は、ハイインピーダンスをバス５０に出力する。ハイインピーダンスとは、電気的に"０"でも"１"でもない状態であり、バス５０上の信号に影響を与えないように電気的にバスから切り離された状態である。
【００１９】
ここで、入力部２及び、入力部３も、入力部１と同様に構成され、入力部１と同様に動作する。但し、入力部の数は限定されない。
【００２０】
ここで、各入力部１、２、３のスリーステートバッファ２０１、２０２、２０３の制御信号ＥＮＢ１、ＥＮＢ２、ＥＮＢ３はＣＬＫに同期している。また、スリーステートバッファ２０１、２０２、２０３は排他的に制御されている。すなわち、同時に２つ以上のＥＮＢが "１"とならない。したがって、入力部１、入力部２及び入力部３から送出される信号が、バス５０上で衝突することはない。
したがって、バス回路の通常動作時は、必ずいずれか１つの入力部が選ばれ、バス５０を通過する。すなわち、いずれか１つの入力信号ＤＡＴＡに基づくバス信号がバス５０に入力され、バス５０はバス信号に基づく電位に設定される。
【００２１】
入力部１、入力部２及び入力部３のすべてが電気的にバス５０から切り離された場合、制御信号ＥＮＢ１、ＥＮＢ２及びＥＮＢ３が、全て"０"であるディスイネーブル状態となる。すなわち、各入力部１、２、３からの入力信号ＤＡＴＡ１、ＤＡＴＡ２、ＤＡＴＡ３がバス５０に出力されない状態であり、このとき、全てのスリーステートバッファからはハイインピーダンスがバス５０に出力され、バス５０はフローティング状態となる。
【００２２】
フローティング状態検出部４は、ＮＯＲ回路３００を備える。ＮＯＲ回路３００は、入力部１からの制御信号ＥＮＢ１と、入力部２からの制御信号ＥＮＢ２と入力部３からの制御信号ＥＮＢ３を入力する。また、ＮＯＲ回路３００は制御信号ＥＮＢ１、ＥＮＢ２、ＥＮＢ３に基づいて出力部制御信号ＣＮＴを出力する。
全ての制御信号ＥＮＢ１、ＥＮＢ２及びＥＮＢ３が"０"のディスイネーブル状態となった場合には出力部制御信号ＣＮＴは"１"となり、出力部制御信号ＣＮＴがフローティング状態検出部４から出力部５に出力される。
【００２３】
出力部５は、ラッチ回路１００と、スイッチ部２００を備える。スイッチ部２００は、例えばトランスファーゲート回路である。
ラッチ回路１００は、バス回路の通常動作時においてバス５０を通過したバス信号と、クロック信号ＣＬＫが入力される。そして、ラッチ回路１００は、バス信号に基づく出力信号ＤＡＴＡ０を出力する。典型的には、ラッチ回路１００はバス信号を、クロック信号ＣＬＫがＨ状態の場合にラッチする。
【００２４】
例えば、入力部１が選択された場合には、制御信号ＥＮＢ１は"１"となる。これにより、ラッチ回路１０１に保持されている入力信号ＤＡＴＡ１に基づく信号が、スリーステートバッファ２０１を介してバス５０に送出され、さらに、バス５０から出力部５のラッチ回路１００に送出される。
なお、選択されなかった入力部２、及び入力部３における制御信号ＥＮＢ２、ＥＮＢ３は"０"となり、スリーステートバッファ２０２、２０３からバス５０にハイインピーダンスが送出される。その結果、入力部２及び入力部３は、電気的にバス５０から切り離される。
【００２５】
出力部５は、スイッチ部２００を介して、ラッチ回路１００の出力部と入力部を接続している。
出力部５のスイッチ部２００は、出力部制御信号ＣＮＴによって制御される。スイッチ部２００は、出力部制御信号ＣＮＴが"０"の場合に、ＯＦＦ状態となり閉ざされる。すなわち、スイッチ部２００は、いずれかの入力部からバス５０にバス信号が入力されている場合には、ＯＦＦ状態である。
一方、出力部制御信号ＣＮＴが"１"の場合にはＯＮ状態となり、ラッチ回路１００に保持されている信号がバス５０上に送られる。ここで、ＣＮＴが"１"の場合とは、入力部からバス５０にバス信号が入力されていない状態である。この状態では、スイッチ部２００がＯＮ状態となることにより、ラッチ回路１００に保持されている信号がバス５０上に送られる。これにより、バス５０はラッチ回路１００から送出された信号に対応して、直前までの電位状態を維持する。これにより、バス５０がフローティング状態となるのは回避される。
【００２６】
図３に、本実施形態におけるバス回路の動作のタイムチャートを示す。ここで、図２及び図３を参照して、動作の説明を行う。
【００２７】
図３において、時刻Ｔ０〜Ｔ２の区間は、制御信号ＥＮＢ１は"１"、制御信号ＥＮＢ２及びＥＮＢ３は"０"となっている。したがって、入力部１が選択されており、入力信号ＤＡＴＡ１に基づいてラッチ回路１０１に保持された信号は、スリーステートバッファ２０１を介し、バス信号としてバス５０に入力される。
時刻Ｔ０〜Ｔ１において、ラッチ回路１０１に保持された信号は"０"であり、バス５０に与えられている信号は"０"となる。また、時刻Ｔ１〜Ｔ２において、ラッチ回路１０１に保持された信号は"１"であり、時刻Ｔ１のタイミングでバス５０に与えられている信号は"０"から"１"に変更される。
【００２８】
なお、スリーステートバッファ２０２及び２０３において、制御信号ＥＮＢ２及びＥＮＢ３が"０"である。このため、スリーステートバッファ２０２及び２０３からは、ハイインピーダンスがバス５０へ出力されている。すなわち、入力部２及び入力部３はバス５０から電気的に切り離された状態である。
【００２９】
バス５０上の電位は、時刻Ｔ２において、スリーステートバッファ２０１から出力された"１"に対応する電位に設定される。また、信号"１"がラッチ回路１００に保持される。
【００３０】
時刻Ｔ２〜Ｔ５の区間では、時刻Ｔ２において制御信号ＥＮＢ１が"１"から"０"に変更される。このとき、ＥＮＢ２、ＥＮＢ３も"０"のまま変更されず、全ての制御信号が"０"であるディスイネーブル状態であり、バス５０は未使用状態となる。すなわち、バス５０がフローティング状態となる。
【００３１】
このとき、スリーステートバッファ２０１、２０２、２０３の出力はいずれもハイインピーダンスとなり、ＮＯＲ回路３００の出力部制御信号ＣＮＴは"１"となる。したがって、出力部５のスイッチ部２００がＯＮ状態となり、ラッチ回路１００に保持されている信号がバス５０に戻される。
その結果、バス５０上の電位は"１"に対応する電位に設定され、フローティング状態が回避される。
ここでラッチ回路１００に保持され、バス５０に戻される"１"は、ＣＮＴが"１"となる時刻Ｔ２まで、バス５０に保持されていた値である。バス５０は、この値に対応する電位を維持することにより、その直前までとの電位の変化を抑えることができる。
【００３２】
次に時刻Ｔ５〜Ｔ７の区間における動作を説明する。
時刻Ｔ５では、再び制御信号ＥＮＢ１が"１"となるため、入力信号ＤＡＴＡ１に基づきラッチ回路１０１に保持されている信号"０"が、スリーステートバッファ２０１を介してバス５０に送出される。この信号は、時刻Ｔ６においてラッチ回路１００に保持される。
【００３３】
時刻Ｔ６では時刻Ｔ２と同様に制御信号ＥＮＢ１が"１"から"０"に変更される。また、制御信号ＥＮＢ２及びＥＮＢ３も"０"のまま変更されていない。したがって、全ての制御信号が"０"であるディスイネーブル状態である。
そのため、スリーステートバッファ２０１、２０２、２０３の出力はいずれもハイインピーダンスとなる。また、フローティング状態検出部４のＮＯＲ回路３００の出力部制御信号ＣＮＴは"１"となる。
ＣＮＴが"１"となることにより、出力部５のスイッチ部２００がＯＮされ、ラッチ回路１００に保持されている信号がバス５０に戻される。これにより、時刻Ｔ６〜Ｔ７におけるバス５０のバス信号は"０"となる。ここで、ラッチ回路１００に保持されていた値"０"は、ＣＮＴ＝"１"となる時刻Ｔ６まで、バスに載っていた値である。バス５０は、この信号に対応する電位を維持することにより、その直前までとの電位の変化を抑えることができる。
【００３４】
本実施形態によれば、すべての入力部からのバス５０にバス信号が入力されない場合に、出力部５に保持されている信号をバス５０に戻すことにより、バス５０がフローティング状態となるのを回避することができる。
【００３５】
また、本実施の形態によれば、バス回路の消費電力を削減することができる。これは、バス５０がフローティング状態となるのを回避するために与えられる信号は、固定値ではないからである。すなわち、バス５０がフローティング状態になる直前の値を使用しており、バス５０の電位の変化を最小限に抑えることができるためである。
バス配線容量の増加を抑え、バス回路のデータ転送性能の悪化を防ぐことができる。また、バス回路の面積を削減できる。これは、バス５０がフローティング状態となるのを回避するために使用する信号に、既存の回路に保持されている信号を使うことで、バス５０に信号保持用の回路を設ける必要がないためである。
【００３６】
なお、本実施形態では、バスのビット幅を１ビットとして表わしているが、一般的なデータを扱う場合は、複数ビットのバス構成となる。たとえば８バイトデータを扱う場合には、６４ビット分を束ねたデータバス構成となるため上記の効果は大きくなる。更にこのデータバスを、幾つか組み合わせてクロスバを構成する場合には、クロスバの規模に比例して効果も大きくなる。
【００３７】
実施の形態２．
次に、他の実施の形態について、図面を参照して詳細に説明する。図４は、本発明の他の実施の形態にかかるバス回路を示したものである。
図４に示すバス回路において、出力部５以外の部分は、基本的に実施の形態１の図２で示した回路と同様である。なお、本実施の形態にかかるバス回路において、出力部５はスイッチ部２００を備えない。また、出力部５は、ラッチ回路１００の出力部と入力部を接続していない。
ここで、実施の形態１で示した符号と同一の符号は、同一または相当部分を示しており、説明を省略する。
【００３８】
図５にラッチ回路１００の構造を示す。
図５に示すように、ラッチ回路１００は、インバータ回路５６、５７、５９、６０、６１及びＯＲ回路５８を備える。
インバータ回路５６は、クロック信号ＣＬＫを入力する。また、インバータ回路５７は、インバータ回路５６の出力信号を入力する。ここで、インバータ回路５６の出力信号をＣＫＢ、インバータ回路５７の出力信号をＣＫＴとする。
インバータ回路６１は、クロック信号ＣＬＫを入力し、クロック信号ＣＬＫを反転させる。インバータ回路６１は、反転したクロック信号ＣＬＫをＯＲ回路５８に出力する。
ＯＲ回路５８は、出力部制御信号ＣＮＴと、インバータ回路６１の出力信号を入力する。
インバータ回路５９は、ＯＲ回路５８の出力信号を入力する。また、インバータ回路６０は、インバータ回路５９の出力信号を入力する。ここで、インバータ回路５９の出力信号をＣＴＢ、インバータ回路６０の出力信号をＣＴＴとする。
【００３９】
また、ラッチ回路１００は、第１のスイッチ部５１と、第２のスイッチ部５４と、インバータ回路５２、５３、５５を備える。ここで、第１のスイッチ部５１及び第２のスイッチ部５４は、例えばトランスファーゲート回路である。
第１のスイッチ部５１、インバータ回路５３及びインバータ回路５５により、信号をラッチする。第１のスイッチ部５１は、ＣＫＴ及びＣＫＢにより制御される。いずれかの入力部１、２、３からバス５０にバス信号の入力がある場合には、バス５０を介して、ラッチ回路１００にバス信号がラッチされる。
【００４０】
インバータ回路５２は、バス５０からの入力に基づく信号を、ラッチ回路１００から出力信号ＤＡＴＡ０として出力する。インバータ回路５２は、ラッチ回路１００の入力部と信号をラッチする回路部とを接続しているノードと、出力部との間に設けられている。なお、信号をラッチする回路部とは、第１のスイッチ部５１、インバータ回路５３及びインバータ回路５５を備えた回路部である。
【００４１】
第２のスイッチ部５４は、一方の端部がバス５０と接続されている。また、第２のスイッチ部５４は、ＣＴＢ及びＣＴＴにより制御される。これにより、出力部制御信号ＣＮＴが"１"の場合に、これにより、第２のスイッチ部５４が常に開かれることとなる。
したがって、バス５０がフローティング状態となった場合にラッチ回路１００に保持していたデータをバス５０に戻すことができ、バス５０のフローティング状態を防止することができる。
【００４２】
本実施態様によれば、実施の形態１におけるスイッチ部２００と、スイッチ部２００を介してラッチ回路１００の出力部と入力部を接続する回路を設ける必要がなく、バス配線容量を更に削減することができる。
【００４３】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【符号の説明】
【００４４】
１    入力部
２    入力部
３    入力部
４    フローティング状態検出部
５    出力部
６    データ保持回路
５０    バス
５１    第１のスイッチ部
５２    インバータ回路
５３    インバータ回路
５４    第２のスイッチ部
５５    インバータ回路
５６    インバータ回路
５７    インバータ回路
５８    ＯＲ回路
５９    インバータ回路
６０    インバータ回路
６１    インバータ回路
１００    ラッチ回路
１０１    ラッチ回路
１０２    ラッチ回路
１０３    ラッチ回路
２００    スイッチ部
２０１    スリーステートバッファ
２０２    スリーステートバッファ
２０３    スリーステートバッファ
３００    ＮＯＲ回路
５００    スイッチ部
５０１    インバータ回路
５０２    インバータ回路
【図１】
0005489211.tif 000002
【図２】
0005489211.tif 000003
【図３】
0005489211.tif 000004
【図４】
0005489211.tif 000005
【図５】
0005489211.tif 000006
【図６】
0005489211.tif 000007