(57)【要約】【課題】  マスタとスレーブとでバスのビット幅や動作周波数が異なっている場合であっても、信号が正しく伝達されていることを保証することができるマスタ・スレーブシステムを提供する。【解決手段】  マスタ１２＿１からの出力信号を非同期式の第１のＦＩＦＯ１４に入力するとともに、そのマスタ１２＿１から出力されバス１３を経由してきたスレーブ１１＿１への入力信号を非同期式の第２のＦＩＦＯ１５に入力し、これら第１，第２のＦＩＦＯ１４，１５から出力される、互いに対応する出力信号どうしを比較器１６で逐次比較し、不一致が検出された場合はエラー信号ＥＲＲを出力する。【選択図】  図１
2009145960.tif 000002
【特許請求の範囲】
【請求項１】
指示を受けて動作するスレーブと該スレーブに動作を指示するマスタとがバスを介して接続されてなるマスタ・スレーブシステムであって、
前記マスタからの、前記スレーブに向けた、前記バスに送り込まれる前の出力信号が入力される非同期式の第１のＦＩＦＯと、
前記マスタから出力され前記バスを経由してきた前記スレーブへの入力信号が入力される非同期式の第２のＦＩＦＯと、
前記第１のＦＩＦＯと前記第２のＦＩＦＯから出力される、互いに対応する出力信号どうしを比較する比較器とを備えたことを特徴とするマスタ・スレーブシステム。
【請求項２】
前記マスタからの、前記スレーブに向けた、前記バスに送り込まれる前の出力信号が前記第１のＦＩＦＯに入力される時刻を該出力信号に対応づけて該第１のＦＩＦＯに入力するとともに、前記マスタから出力され前記バスを経由してきた前記スレーブへの入力信号が前記第２のＦＩＦＯに入力される時刻を該入力信号に対応づけて該第２のＦＩＦＯに入力する第１のタイマをさらに備え、
前記比較器は、前記第１のＦＩＦＯと前記第２のＦＩＦＯから出力される、互いに対応する出力信号どうしを比較するとともに、該互いに対応する出力信号にそれぞれ対応づけられた時刻どうしの差分を求め、その差分の最大値と最小値を保持するものであることを特徴とする請求項１記載のマスタ・スレーブシステム。
【請求項３】
前記比較器による、前記互いに対応する出力信号どうしの不一致が検出された時点を起点として、該比較器による次の不一致が検出されるまでの時間を計測する第２のタイマを備えたことを特徴とする請求項１又は２記載のマスタ・スレーブシステム。
【請求項４】
当該マスタ・スレーブシステムは、前記マスタからの出力信号のデータ幅と前記スレーブへの入力信号のデータ幅が異なるものであって、前記第１のＦＩＦＯと前記第２のＦＩＦＯのうちの一方のＦＩＦＯの前段に、データ幅を変換するデータ幅変換回路を備えたことを特徴とする請求項１から３のうちいずれか１項記載のマスタ・スレーブシステム。
【請求項５】
当該マスタ・スレーブシステムは、前記マスタが複数存在しこれら複数のマスタが共通のバスに接続されてなるものであって、
前記第１のＦＩＦＯの前段に、前記複数のマスタのうちの第１のマスタからの出力信号が入力される非同期式のＦＩＦＯと、該ＦＩＦＯからの出力信号と第２のマスタからの出力信号とのうちの一方を選択するセレクタと、該セレクタからの出力信号が入力される非同期式のＦＩＦＯとの順に、非同期式のＦＩＦＯとセレクタとが交互に配置され、最終のセレクタからの出力信号が前記第１のＦＩＦＯに入力されるように接続された第１の信号入力経路を有することを特徴とする請求項１から４のうちいずれか１項記載のマスタ・スレーブシステム。
【請求項６】
当該マスタ・スレーブシステムは、前記スレーブが複数存在しこれら複数のスレーブが共通のバスに接続されてなるものであって、
前記第２のＦＩＦＯの前段に、前記複数のスレーブのうちの第１のスレーブへの入力信号が入力される非同期式のＦＩＦＯと、該ＦＩＦＯからの出力信号と第２のスレーブへの入力信号とのうちの一方を選択するセレクタと、該セレクタからの出力信号が入力される非同期式のＦＩＦＯとの順に、非同期式のＦＩＦＯとセレクタとが交互に配置され、最終のセレクタからの出力信号が前記第２のＦＩＦＯに入力されるように接続された第２の信号入力経路を有することを特徴とする請求項１から５のうちいずれか１項記載のマスタ・スレーブシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、指示を受けて動作するスレーブとそのスレーブに動作を指示するマスタとがバスを介して接続されてなるマスタ・スレーブシステムに関する。
【背景技術】
【０００２】
従来より、マイクロプロセッサやメモリなどの機能が１チップに集積されたＳＯＣ（Ｓｙｓｔｅｍ  Ｏｎ  Ｃｈｉｐ：システム  オン  チップ）が知られている。このようなＳＯＣには、上述したマスタ・スレーブシステムが構築されており、大規模なＳＯＣの開発においては、マスタ・スレーブシステムも複雑化かつ高速化している。例えば、マスタ・スレーブシステムのバスのビット幅がマスタとスレーブとで異なっていたり、マスタとスレーブとで動作周波数が異なっていたりする場合が多い。また、マスタからスレーブに信号が単に正しく伝達されるだけでなく、一定の時間内に伝達されること（以下、レイテンシ制約という）も重要な要件とされ、このレイテンシ制約を満たせなければ不具合とされる。従って、マスタ・スレーブシステムの複雑化かつ高速化に伴って、論理的，物理的な不具合の発生する確率が従来に比べて飛躍的に高くなってきている。
【０００３】
また、近年、半導体集積回路の微細化に伴い、α線などの外的要因等に起因して、その半導体集積回路内に組み込まれたマスタ・スレーブシステムにおいて、信号の伝達を正しく行なうことができないケースが増えてきている。このように様々な要因により、マスタ・スレーブシステムにおいて、マスタからバスを介してスレーブに向けて信号が正しく伝達されていることを保証する何らかの仕組みが必要である。
【０００４】
ここで、特許文献１に、２つのＣＰＵに同じプログラムを与えて同じ動作をさせ、それら出力どうしを比較し、不一致が検出された場合、外部へのデータの出力を停止することにより、データ転送の信頼性が高められた技術が提案されている。
【特許文献１】特開２００６−３３８０９４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ここで、上述した特許文献１に提案された技術を適用して、マスタとスレーブに同じプログラムを与えて動作させ、それらマスタとスレーブから出力される出力信号どうしを比較し、不一致が検出された場合は、マスタ・スレーブシステムにおいて信号が正しく伝達されていないと判定することが考えられる。しかし、マスタとスレーブとでバスのビット幅や動作周波数が異なる場合は、このような技術を適用することは困難である。
【０００６】
本発明は、上記事情に鑑み、マスタとスレーブとでバスのビット幅や動作周波数が異なっている場合であっても、信号が正しく伝達されていることを保証することができるマスタ・スレーブシステムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成する本発明のマスタ・スレーブシステムは、指示を受けて動作するスレーブとそのスレーブに動作を指示するマスタとがバスを介して接続されてなるマスタ・スレーブシステムであって、
上記マスタからの、上記スレーブに向けた、上記バスに送り込まれる前の出力信号が入力される非同期式の第１のＦＩＦＯと、
上記マスタから出力され上記バスを経由してきた上記スレーブへの入力信号が入力される非同期式の第２のＦＩＦＯと、
上記第１のＦＩＦＯと上記第２のＦＩＦＯから出力される、互いに対応する出力信号どうしを比較する比較器とを備えたことを特徴とする。
【０００８】
本発明のマスタ・スレーブシステムは、マスタからの出力信号を非同期式の第１のＦＩＦＯに入力するとともに、そのマスタから出力されバスを経由してきたスレーブへの入力信号を非同期式の第２のＦＩＦＯに入力し、これら第１，第２のＦＩＦＯから出力される、互いに対応する出力信号どうしを比較するものである。このため、マスタからの出力信号を伝達するバスとスレーブへの入力信号を伝達するバスとで、それらバスのビット幅が異なっている場合や、マスタとスレーブとで動作周波数が異なっている場合であっても、第１，第２のＦＩＦＯにより非同期で行なわれる先入れ動作および先出し動作により、互いに異なるビット幅や動作周波数に対応することができる。従って、マスタとスレーブとでバスのビット幅や動作周波数が異なっている場合であっても、信号が正しく伝達されていることを保証することができる。
【０００９】
ここで、上記マスタからの、上記スレーブに向けた、上記バスに送り込まれる前の出力信号が上記第１のＦＩＦＯに入力される時刻をその出力信号に対応づけてその第１のＦＩＦＯに入力するとともに、上記マスタから出力され上記バスを経由してきた上記スレーブへの入力信号が上記第２のＦＩＦＯに入力される時刻をその入力信号に対応づけてその第２のＦＩＦＯに入力する第１のタイマをさらに備え、
上記比較器は、上記第１のＦＩＦＯと上記第２のＦＩＦＯから出力される、互いに対応する出力信号どうしを比較するとともに、その互いに対応する出力信号にそれぞれ対応づけられた時刻どうしの差分を求め、その差分の最大値と最小値を保持するものであることが好ましい。
【００１０】
このようにすると、互いに対応する出力信号どうしを比較した結果、一致していると判定した場合であっても、互いに対応する出力信号にそれぞれ対応づけられた時刻どうしの差分が一定の時間を超えている場合は、マスタからスレーブに信号が一定の時間内に伝達されるというレイテンシ制約を満たしていないと判定することができる。こうすることにより、レイテンシ制約を満たしていることを保証することができる。
【００１１】
また、上記比較器による、上記互いに対応する出力信号どうしの不一致が検出された時点を起点として、その比較器による次の不一致が検出されるまでの時間を計測する第２のタイマを備えたことも好ましい態様である。
【００１２】
このようにすると、比較器で検出される不一致が頻繁に発生しているか否かを知ることができる。
【００１３】
さらに、当該マスタ・スレーブシステムは、上記マスタからの出力信号のデータ幅と上記スレーブへの入力信号のデータ幅が異なるものであって、上記第１のＦＩＦＯと上記第２のＦＩＦＯのうちの一方のＦＩＦＯの前段に、データ幅を変換するデータ幅変換回路を備えたことも好ましい。
【００１４】
このようにすると、マスタとスレーブとの間でビット幅が異なっており、またマスタとスレーブとで動作周波数が異なっている場合であっても、データ幅変換回路でデータ幅が変換され、また第１，第２のＦＩＦＯにより非同期で行なわれる先入れ動作および先出し動作により、互いに異なるビット幅や動作周波数に対応することができる。従って、マスタとスレーブとでバスのビット幅や動作周波数が異なっている場合であっても、信号が正しく伝達されていることを保証することができる。
【００１５】
また、当該マスタ・スレーブシステムは、上記マスタが複数存在しこれら複数のマスタが共通のバスに接続されてなるものであって、
上記第１のＦＩＦＯの前段に、上記複数のマスタのうちの第１のマスタからの出力信号が入力される非同期式のＦＩＦＯと、そのＦＩＦＯからの出力信号と第２のマスタからの出力信号とのうちの一方を選択するセレクタと、そのセレクタからの出力信号が入力される非同期式のＦＩＦＯとの順に、非同期式のＦＩＦＯとセレクタとが交互に配置され、最終のセレクタからの出力信号が上記第１のＦＩＦＯに入力されるように接続された第１の信号入力経路を有することも好ましい。
【００１６】
このように接続された第１の信号入力経路を有すると、複数のマスタのうちのいずれかのマスタからの出力信号を第１のＦＩＦＯに格納することができる。このようにすることで、本発明のマスタ・スレーブシステムが組み込まれたＬＳＩの製造後であっても、例えば外部ピンを経由して、検証したいマスタを自在に指定することができる。
【００１７】
さらに、当該マスタ・スレーブシステムは、上記スレーブが複数存在しこれら複数のスレーブが共通のバスに接続されてなるものであって、
上記第２のＦＩＦＯの前段に、上記複数のスレーブのうちの第１のスレーブへの入力信号が入力される非同期式のＦＩＦＯと、そのＦＩＦＯからの出力信号と第２のスレーブへの入力信号とのうちの一方を選択するセレクタと、そのセレクタからの出力信号が入力される非同期式のＦＩＦＯとの順に、非同期式のＦＩＦＯとセレクタとが交互に配置され、最終のセレクタからの出力信号が上記第２のＦＩＦＯに入力されるように接続された第２の信号入力経路を有することも好ましい態様である。
【００１８】
このように接続された第２の信号入力経路を有すると、複数のスレーブのうちのいずれかのスレーブへの入力信号を第２のＦＩＦＯに格納することができる。このようにすることで、本発明のマスタ・スレーブシステムが組み込まれたＬＳＩの製造後であっても、例えば外部ピンを経由して、検証したいスレーブを自在に指定することができる。
【発明の効果】
【００１９】
本発明のマスタ・スレーブシステムによれば、マスタとスレーブとでバスのビット幅や動作周波数が異なっている場合であっても、信号が正しく伝達されていることを保証することができる。
【発明を実施するための最良の形態】
【００２０】
以下、図面を参照して本発明の実施の形態を説明する。
【００２１】
図１は、本発明の第１実施形態のマスタ・スレーブシステムの構成を示す図である。
【００２２】
図１に示すマスタ・スレーブシステム１には、指示を受けて動作するスレーブ１１＿１，１１＿２，１１＿３が備えられている。また、このマスタ・スレーブシステム１には、スレーブ１１＿１，１１＿２，１１＿３に動作を指示するマスタ１２＿１，１２＿２，１２＿３が備えられている。スレーブ１１＿１，１１＿２，１１＿３とマスタ１２＿１，１２＿２，１２＿３とは、バス１３を介して接続されている。
【００２３】
さらに、マスタ・スレーブシステム１には、マスタ１２＿１からの、スレーブ１１＿１に向けた、バス１３に送り込まれる前の出力信号が入力される非同期式の第１のＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）１４が備えられている。
【００２４】
また、マスタ・スレーブシステム１には、マスタ１２＿１から出力されバス１３を経由してきたスレーブ１１＿１への入力信号が入力される非同期式の第２のＦＩＦＯ１５が備えられている。
【００２５】
さらに、マスタ・スレーブシステム１には、第１のＦＩＦＯ１４と第２のＦＩＦＯ１５から出力される、互いに対応する出力信号どうしを比較する比較器１６が備えられている。詳細には、この比較器１６は、これらの出力信号どうしを逐次比較し、不一致が検出された場合はエラー信号ＥＲＲを出力する。
【００２６】
図２は、図１に示す第１のＦＩＦＯの書き込み用ポートおよび読み出し用ポートにおける信号を示す図、図３は、図２に示す第１のＦＩＦＯの動作を説明するためのタイミング図である。
【００２７】
尚、図１に示す第２のＦＩＦＯ１５の各ポートにおける信号および動作も、以下に説明する第１のＦＩＦＯ１４の各ポートにおける信号および動作と同じである。
【００２８】
図２に示す第１のＦＩＦＯ１４は、非同期で先入れ動作と先出し動作とを行なう８段のデータバッファであり、図２の左側には書き込み用ポートの信号が示されており、また図２の右側には読み出し用ポートの信号が示されている。図２に示す第１のＦＩＦＯ１４には、図３に示す書き込み用のクロックＷＣＬＫおよび読み出し用のクロックＲＣＬＫが入力される。また、マスタ１２＿１からの出力信号ＷＤ（出力データ）が入力される。最初の時点では、第１のＦＩＦＯ１４には、マスタ１２＿１からの出力データは格納されておらず、従って出力データがフルの状態にある場合に‘Ｈ’レベルとなるフル信号ＦＵＬＬは‘Ｌ’レベルにある。また、エンプティ信号ＥＭＰＴＹは、この第１のＦＩＦＯ１４が空の状態であることを示す‘Ｈ’レベルにある。また、図３に示すＦＩＦＯデータ格納数は０である。
【００２９】
ここで、第１のＦＩＦＯ１４に、書き込み許可信号ＷＥとして‘Ｈ’レベルが入力される。次いで、マスタ１２＿１から出力データＷＤ０，ＷＤ１，ＷＤ２，ＷＤ３が順次に入力される。これにより、第１のＦＩＦＯ１４には４つのデータが格納される。このため、第１のＦＩＦＯ１４のデータ格納数は４になる。また、エンプティ信号ＥＭＰＴＹが‘Ｌ’レベルになるとともに、‘Ｈ’レベルの読み出し許可信号ＲＥが入力される。すると、第１のＦＩＦＯ１４に格納されている出力データＷＤ０，ＷＤ１，ＷＤ２，ＷＤ３が、出力データＷＤ０から順に読み出される。先ず、出力データＷＤ０がデータＲＤ０として読み出され、これにより第１のＦＩＦＯ１４のデータ格納数は３になる。次いで、出力データＷＤ１がデータＲＤ１として読み出され、これにより第１のＦＩＦＯ１４のデータ格納数は２になる。ここで、出力データＷＤ４が入力されるとともに、出力データＷＤ２がデータＲＤ２として読み出される。従って、第１のＦＩＦＯ１４のデータ格納数は２の状態のままである。次いで、出力データＷＤ５が入力される。すると、第１のＦＩＦＯ１４のデータ格納数は３になる。次いで、出力データＷＤ３がデータＲＤ３として読み出され、データ格納数は２になり、さらに出力データＷＤ４がデータＲＤ４として読み出され、データ格納数は１になる。
【００３０】
次いで、出力データＷＤ６が入力される。このため、データ格納数は再び２になり、さらに出力データＷＤ５がデータＲＤ５として読み出されるため、データ格納数は１になる。次いで、出力データＷＤ７が入力されるため、データ格納数は２になる。さらに、出力データＷＤ６がデータＲＤ６として読み出されてデータ格納数は１になり、最後に出力データＷＤ７がデータＲＤ７として読み出されてデータ格納数は０になる。このように、第１のＦＩＦＯ１４では、マスタ１２＿１からの出力データを格納するための先入れ動作と、格納された出力データを読み出すための先出し動作とが非同期で行なわれる。尚、ここでは、マスタ１２＿１からの出力データが格納される第１のＦＩＦＯ１４の先入れ動作と先出し動作とが非同期で行なわれる例について説明したが、マスタ１２＿１から出力されバス１３を経由してきたスレーブ１１＿１への入力信号（入力データ）が入力される第２のＦＩＦＯ１５の先入れ動作と先出し動作も、この第１のＦＩＦＯ１４の動作と同様にして非同期で行なわれる。
【００３１】
第１のＦＩＦＯ１４から出力される出力信号と、その信号に対応して出力される第２のＦＩＦＯ１５から出力される出力信号とは比較器１６に入力され、比較器１６では、これら出力信号どうしが逐次比較され、不一致が検出された場合はエラー信号ＥＲＲが出力される。
【００３２】
第１実施形態のマスタ・スレーブシステム１は、マスタ１２＿１からの出力信号を非同期式の第１のＦＩＦＯ１４に入力するとともに、そのマスタ１２＿１から出力されバス１３を経由してきたスレーブ１１＿１への入力信号を非同期式の第２のＦＩＦＯ１５に入力し、これら第１，第２のＦＩＦＯ１４，１５から出力される、互いに対応する出力信号どうしを比較器１６で逐次比較し、不一致が検出された場合はエラー信号ＥＲＲを出力するものである。このため、マスタ１２＿１からの出力信号を伝達するバスとスレーブ１１＿１への入力信号を伝達するバスとで、それらバスのビット幅が異なっている場合や、マスタ１２＿１とスレーブ１１＿１とで動作周波数が異なっている場合であっても、第１，第２のＦＩＦＯ１４，１５により非同期で行なわれる先入れ動作および先出し動作により、互いに異なるビット幅や動作周波数に対応することができる。従って、マスタ１２＿１とスレーブ１１＿１とでバスのビット幅や動作周波数が異なっている場合であっても、信号が正しく伝達されていることを保証することができる。
【００３３】
また、第１実施形態のマスタ・スレーブシステム１は、上述した第１，第２のＦＩＦＯ１４，１５を備えたことにより、マスタ１２＿１およびスレーブ１１＿１の動作周波数の選択幅を広げることができるとともに、マスタ１２＿１から出力される出力信号とスレーブ１１＿１に入力される入力信号との間で発生する遅延時間を吸収することができ、従ってマスタ１２＿１とスレーブ１１＿１の配置・配線を自在にレイアウトすることができ、回路設計の面でも難易度が下がるという効果を有する。
【００３４】
図４は、本発明の第２実施形態のマスタ・スレーブシステムの構成を示す図である。
【００３５】
尚、前述した図１に示すマスタ・スレーブシステム１における構成要素と同じ構成要素には同一の符号を付し、異なる点について説明する。
【００３６】
図４に示すマスタ・スレーブシステム２には、上述したマスタ１２＿１，１２＿２，１２＿３とスレーブ１１＿１，１１＿２，１１＿３とバス１３とに加えて、タイマ２１と、第１，第２のＦＩＦＯ２４，２５と、比較器２６と、レイテンシ＿ｍａｘレジスタ２７と、レイテンシ＿ｍｉｎレジスタ２８とが備えられている。尚、タイマ２１は、本発明の第１のタイマの一例に相当するものである。
【００３７】
タイマ２１は、現在時刻をカウントするフリーランカウンタであり、このタイマ２１は、マスタ１２＿１からの、スレーブ１１＿１に向けた、バス１３に送り込まれる前の出力信号が第１のＦＩＦＯ２４に入力される時刻をその出力信号に対応づけて第１のＦＩＦＯ２４に入力する。また、マスタ１２＿１から出力されバス１３を経由してきたスレーブ１１＿１への入力信号が第２のＦＩＦＯ２５に入力される時刻をその入力信号に対応づけて第２のＦＩＦＯ２５に入力する。
【００３８】
比較器２６は、第１のＦＩＦＯ２４と第２のＦＩＦＯ２５から出力される、互いに対応する出力信号どうしを比較するとともに、上記互いに対応する出力信号にそれぞれ対応づけられた時刻どうしの差分を求めるものである。比較器２６では、互いに対応する出力信号どうしを比較した結果、一致していると判定した場合であっても、互いに対応する出力信号にそれぞれ対応づけられた時刻どうしの差分が一定の時間を超えている場合は、レイテンシ制約を満たしていないと判定して、エラー信号ＥＲＲを出力する。このようにすることにより、レイテンシ制約を満たしていることを保証することができる。
【００３９】
また、比較器２６からは、上記差分の値を示すレイテンシ値Ｌが出力される。このレイテンシ値Ｌは、レイテンシ＿ｍａｘレジスタ２７およびレイテンシ＿ｍｉｎレジスタ２８に入力される。ここで、レイテンシ＿ｍａｘレジスタ２７には、現在までのレイテンシ値Ｌの最大値が格納される。一方、レイテンシ＿ｍｉｎレジスタ２８には、現在までのレイテンシ値Ｌの最小値が格納される。これらレイテンシ値Ｌの最大値，最小値により、実際にどの程度のレイテンシで信号の転送が行なわれているのかを知ることができる。尚、レイテンシ＿ｍａｘレジスタ２７に格納されたレイテンシ値Ｌの最大値が所定の値を超えていた場合は、このマスタ・スレーブシステム２は不具合であるとされる。
【００４０】
図５は、本発明の第３実施形態のマスタ・スレーブシステムの構成を示す図である。
【００４１】
図５に示すマスタ・スレーブシステム３は、図１に示すマスタ・スレーブシステム１と比較し、タイマ３１とエラータイムレジスタ３２が追加されている点が異なっている。
【００４２】
タイマ３１は、本発明にいう第２のタイマの一例に相当するものであり、このタイマ３１は、比較器１６による、互いに対応する出力信号どうしの不一致が検出された時点を起点として、比較器１６による次の不一致が検出されるまでの時間を計測する役割りを担うものである。具体的には、このタイマ３１は、フリーランカウンタであり、最大値までカウントするとそこでストップするカウンタであり、エラータイムレジスタ３２に向けて現在計測している時刻を出力する。
【００４３】
エラータイムレジスタ３２には、タイマ３１からの時刻と比較器１６からのエラー信号ＥＲＲが入力される。このエラータイムレジスタ３２は、比較器１６からのエラー信号ＥＲＲを受けた時点におけるタイマ３１の時刻（エラーが検出された時点の時刻）を格納する。この時点でタイマ３１はリセットされ、再び次の不一致が検出されるまでの時間の計測を開始する。ここで、再度比較器１６で不一致が検出されてエラー信号ＥＲＲが出力されると、その時点におけるタイマ３１の時刻がエラータイムレジスタ３２に格納される。このようにすることにより、比較器１６で検出される不一致が頻繁に発生しているか否かを知ることができる。尚、頻繁に発生している場合は、このマスタ・スレーブシステム３は不具合であるとされる。
【００４４】
図６は、本発明の第４実施形態のマスタ・スレーブシステムの構成を示す図である。
【００４５】
図６に示すマスタ・スレーブシステム４には、バス幅が６４ビットで且つ２６６ＭＨｚの周波数で動作するスレーブ４１＿１，４１＿２，４１＿３が備えられている。また、このマスタ・スレーブシステム４には、バス幅が３２ビットで且つ２００ＭＨｚの周波数で動作するマスタ４２＿１，４２＿２，４２＿３が備えられている。
【００４６】
また、マスタ・スレーブシステム４には、マスタ４２＿１からの、スレーブ４１＿１に向けた、バス１３に送り込まれる前の出力信号が入力される非同期式の第１のＦＩＦＯ４４が備えられている。第１のＦＩＦＯ４４には、２００ＭＨｚの周波数と２６６ＭＨｚの周波数のクロック信号が入力される。また、第１のＦＩＦＯ４４の前段には、データ幅を３２ビットから６４ビットに変換するデータ幅変換回路４７が備えられている。
【００４７】
さらに、マスタ・スレーブシステム４には、マスタ４２＿１から出力されバス１３を経由してきたスレーブ４１＿１への入力信号が入力される非同期式の第２のＦＩＦＯ４５が備えられている。また、第１のＦＩＦＯ４４と第２のＦＩＦＯ４５から出力される、互いに対応する出力信号どうしを比較する比較器４６が備えられている。さらに、図７、図８を参照して説明を続ける。
【００４８】
図７は、図６に示す第１のＦＩＦＯおよびデータ幅変換回路を示す図、図８は、図６に示すデータ幅変換回路の構成を示す図である。
【００４９】
図７に示すデータ幅変換回路４７には、クロック信号ＣＬＫとして２００ＭＨｚの周波数のクロック信号が入力される。また、第１のＦＩＦＯ４４には、クロック信号ＷＣＬＫとして上記２００ＭＨｚの周波数のクロック信号が入力される。さらに、第１のＦＩＦＯ４４には、クロック信号ＲＣＬＫとして２６６ＭＨｚの周波数のクロック信号が入力される。
【００５０】
また、データ幅変換回路４７には、マスタ４２＿１からの３２ビットの出力データＷＤ[３１：０]が入力される。さらに、このデータ幅変換回路４７には、書き込みアドレスのうちの２ビット目のアドレスＷＡ[２]が入力される。ここで、アドレスＷＡ[２]が０の場合は、マスタ４２＿１からの最初の３２ビットの出力データＷＤ[３１：０]であることを示し、アドレスＷＡ[２]が１の場合は、マスタ４２＿１からの次の３２ビットの出力データＷＤ[３１：０]であることを示す。
【００５１】
さらに、データ幅変換回路４７には、マスタ４２＿１からの３２ビットの出力データＷＤ[３１：０]（８ビット×４バイト）のうちどの部分の出力データの書き込みを許可するのかを示すバイトイネーブル信号ＢＥ[３：０]が入力される。ＢＥ[０]がＷＤ[７：０]、ＢＥ[１]がＷＤ[１５：８]、ＢＥ[２]がＷＤ[２３：１６]、ＢＥ[３]がＷＤ[３１：２４]に対応する。
【００５２】
また、図８に示すように、データ幅変換回路４７には、書き込み制御回路４７＿１と、８個のバッファ４７＿２０，…，４７＿２７と、読み出し制御回路４７＿３とが備えられている。バッファ４７＿２０，…，４７＿２７には、それぞれ、バイト[７：０]を格納するバッファ部４７＿２０ａおよびエンプティビットｅｍｐｔｙ４７＿２０ｂ，…，バイト[６３：５６]を格納するバッファ部４７＿２７ａおよびエンプティビットｅｍｐｔｙ４７＿２７ｂが備えられている。書き込み制御回路４７＿１では、上記アドレスＷＡ[２]およびバイトイネーブル信号ＢＥ[３：０]により、８つのバッファ４７＿２０，…，４７＿２７のうちのどのバッファに、マスタ４２＿１からの出力データを書き込むのかを決定し、決定したバッファのバッファ部に出力データを書き込むとともに、そのバッファのエンプティビットｅｍｐｔｙに０を書き込む。ここで、バイトイネーブル信号ＢＥ[３：０]の複数のビットが１になっている場合、複数のバッファのバッファ部およびエンプティビットｅｍｐｔｙに同時に書き込まれることとなる。
【００５３】
ここで、マスタ４２＿１からの出力データの終了を示す転送終了信号ｆｉｎｉｓｈがアサートされるか、８つのバッファ４７＿２０，…，４７＿２７全てのエンプティビットｅｍｐｔｙ４７＿２０ｂ，…，４７＿２７ｂが０になったとき、読み出し制御回路４７＿３は、各バッファ４７＿２０，…，４７＿２７の出力データを、読み出しデータＲＤ[６３：０]として出力する。また、エンプティビットｅｍｐｔｙ４７＿２０ｂ，…，４７＿２７ｂを、出力バイトイネーブルデータＢＥ＿ｏｕｔ[７：０]として出力する。また、読み出し制御回路４７＿３は、第１のＦＩＦＯ４４への出力データ書き込み許可信号ＷＥ＿ＦＩＦＯを出力（アサート）し、読み出しデータＲＤ[６３：０]および出力バイトイネーブルデータＢＥ＿ｏｕｔ[７：０]を第１のＦＩＦＯ４４に出力する。このようにして、データ幅変換回路４７で、データ幅を３２ビットから６４ビットに変換する。
【００５４】
第４実施形態のマスタ・スレーブシステム４では、２００ＭＨｚの周波数で動作するマスタ４２＿１からの３２ビットの出力信号を伝達するバスと、２６６ＭＨｚの周波数で動作するスレーブ４１＿１への６４ビットの入力信号を伝達するバスとの間でデータ転送が行なわれる。このように、マスタ４２＿１とスレーブ４１＿１との間でビット幅が異なっており、またマスタ４２＿１とスレーブ４１＿１とで動作周波数が異なっている場合であっても、データ幅変換回路４７でデータ幅が３２ビットから６４ビットに変換され、また第１，第２のＦＩＦＯ４４，４５により非同期で行なわれる先入れ動作および先出し動作により、互いに異なるビット幅や動作周波数に対応することができる。従って、マスタ４２＿１とスレーブ４１＿１とでバスのビット幅や動作周波数が異なっている場合であっても、信号が正しく伝達されていることを保証することができる。
【００５５】
図９は、本発明の第５実施形態のマスタ・スレーブシステムの構成を示す図である。
【００５６】
図９に示すマスタ・スレーブシステム５は、第１のＦＩＦＯ１４の前段に、３つのマスタ１２＿１，１２＿２，１２＿３のうちのマスタ１２＿１からの出力信号が入力される非同期式のＦＩＦＯ５１と、そのＦＩＦＯ５１からの出力信号とマスタ１２＿２からの出力信号とのうちの一方を選択するセレクタ５２と、そのセレクタ５２からの出力信号が入力される非同期式のＦＩＦＯ５３と、そのＦＩＦＯ５３からの出力信号とマスタ１２＿３からの出力信号とのうちの一方を選択するセレクタ５４との順に、非同期式のＦＩＦＯとセレクタとが交互に配置され、最終のセレクタ５４からの出力信号が第１のＦＩＦＯ１４に入力されるように接続された第１の信号入力経路を有する。ここで、ＦＩＦＯ５１，５２は、各マスタ１２＿１，１２＿２，１２＿３間の動作速度調整用および互いにかけ離れた位置にレイアウトされた場合であっても信号のタイミングを調整することができるように設けられている。
【００５７】
また、このマスタ・スレーブシステム５は、第２のＦＩＦＯ１５の前段に、３つのスレーブ１１＿１，１１＿２，１１＿３のうちのスレーブ１１＿１への入力信号が入力される非同期式のＦＩＦＯ５５と、そのＦＩＦＯ５５からの出力信号とスレーブ１１＿２への入力信号とのうちの一方を選択するセレクタ５６と、そのセレクタ５６からの出力信号が入力される非同期式のＦＩＦＯ５７と、そのＦＩＦＯ５７からの出力信号とスレーブ１１＿３への入力信号とのうちの一方を選択するセレクタ５８との順に、非同期式のＦＩＦＯとセレクタとが交互に配置され、最終のセレクタ５８からの出力信号が第２のＦＩＦＯ１５に入力されるように接続された第２の信号入力経路を有する。ここで、ＦＩＦＯ５５，５７は、各スレーブ１１＿１，１１＿２，１１＿３間の動作速度調整用および互いにかけ離れた位置にレイアウトされた場合であっても信号のタイミングを調整することができるように設けられている。
【００５８】
第５実施形態のマスタ・スレーブシステム５は、上記第１の信号入力経路を有するため、比較対象マスタ（検証したいマスタ）を選択可能にすることができる。即ち、３つのマスタ１２＿１，１２＿２，１２＿３のうちのいずれか１つのマスタからの出力信号を第１のＦＩＦＯ１４に格納することができる。また、上記第２の信号入力経路を有するため、比較対象スレーブ（検証したいスレーブ）を選択可能にすることができる。即ち、３つのスレーブ１１＿１，１１＿２，１１＿３のうちのいずれか１つのスレーブへの入力信号を第２のＦＩＦＯ１５に格納することができる。このようにすることで、このマスタ・スレーブシステム５が組み込まれたＬＳＩの製造後であっても、例えば外部ピンを経由して、検証したいマスタやスレーブを自在に指定することができる。
【図面の簡単な説明】
【００５９】
【図１】本発明の第１実施形態のマスタ・スレーブシステムの構成を示す図である。
【図２】図１に示す第１のＦＩＦＯの書き込み用ポートおよび読み出し用ポートにおける信号を示す図である。
【図３】図２に示す第１のＦＩＦＯの動作を説明するためのタイミング図である。
【図４】本発明の第２実施形態のマスタ・スレーブシステムの構成を示す図である。
【図５】本発明の第３実施形態のマスタ・スレーブシステムの構成を示す図である。
【図６】本発明の第４実施形態のマスタ・スレーブシステムの構成を示す図である。
【図７】図６に示す第１のＦＩＦＯおよびデータ幅変換回路を示す図である。
【図８】図６に示すデータ幅変換回路の構成を示す図である。
【図９】本発明の第５実施形態のマスタ・スレーブシステムの構成を示す図である。
【符号の説明】
【００６０】
１，２，３，４，５  マスタ・スレーブシステム
１１＿１，１１＿２，１１＿３，４１＿１，４１＿２，４１＿３  スレーブ
１２＿１，１２＿２，１２＿３，４２＿１，４２＿２，４２＿３  マスタ
１３  バス
１４，２４，４４  第１のＦＩＦＯ
１５，２５，４５  第２のＦＩＦＯ
１６，２６，４６  比較器
２１，３１  タイマ
２７  レイテンシ＿ｍａｘレジスタ
２８  レイテンシ＿ｍｉｎレジスタ
３２  エラータイムレジスタ
４７  データ幅変換回路
４７＿１  書き込み制御回路
４７＿３  読み出し制御回路
４７＿２０，…，４７＿２７  バッファ
４７＿２０ａ，…，４７＿２７ａ  バッファ部
４７＿２０ｂ，…，４７＿２７ｂ  エンプティビットｅｍｐｔｙ
５１，５３，５５，５７  ＦＩＦＯ
５２，５４，５６，５８  セレクタ
【図１】
2009145960.tif 000003
【図２】
2009145960.tif 000004
【図３】
2009145960.tif 000005
【図４】
2009145960.tif 000006
【図５】
2009145960.tif 000007
【図６】
2009145960.tif 000008
【図７】
2009145960.tif 000009
【図８】
2009145960.tif 000010
【図９】
2009145960.tif 000011