(57)【要約】【課題】１つの実施形態は、例えば、外部接続の自由度を向上できるインターフェース回路及びシステムを提供することを目的とする。【解決手段】１つの実施形態によれば、複数のユニットを有するインターフェース回路が提供される。複数のユニットのそれぞれは、クロックインターフェースと、データインターフェースと、セレクタとを有する。クロックインターフェースは、クロックを受けて転送する。データインターフェースは、データを受けて転送する。セレクタは、データインターフェースがクロックに同期してデータを転送するように、クロックを選択してデータインターフェースへ供給する。【選択図】図１
2015043170.tif 000002
【特許請求の範囲】
【請求項１】
複数のユニットを備え、
前記複数のユニットのそれぞれは、
クロックを受けて転送するクロックインターフェースと、
データを受けて転送するデータインターフェースと、
前記データインターフェースがクロックに同期してデータを転送するように、クロックを選択して前記データインターフェースへ供給するセレクタと、
を有し、
前記複数のユニットにおける第１のユニットのセレクタは、前記第１のユニットの前記クロックインターフェースから転送されたクロックを常に選択して前記第１のユニットのデータインターフェースへ供給し、
前記複数のユニットにおける第２のユニットのセレクタは、前記第１のユニットの前記クロックインターフェースから転送されたクロックと前記第２のユニットの前記クロックインターフェースから転送されたクロックとのいずれかを選択して前記第２のユニットのデータインターフェースへ供給し、
前記複数のユニットにおける第３のユニットのセレクタは、前記第１のユニットの前記クロックインターフェースから転送されたクロックと前記第２のユニットの前記クロックインターフェースから転送されたクロックと前記第３のユニットの前記クロックインターフェースから転送されたクロックとのいずれかを選択して前記第３のユニットのデータインターフェースへ供給し、
前記複数のユニットでは、前記第１のユニットが前記第２のユニットよりチップエッジに沿った方向における中央側に配置され、前記第１のユニットが前記第３のユニットよりチップエッジに沿った方向における中央側に配置され、前記第２のユニットが前記第３のユニットよりチップエッジに沿った方向における中央側に配置される
インターフェース回路。
【請求項２】
複数のユニットを備え、
前記複数のユニットのそれぞれは、
クロックを受けて転送するクロックインターフェースと、
データを受けて転送するデータインターフェースと、
前記データインターフェースがクロックに同期してデータを転送するように、クロックを選択して前記データインターフェースへ供給するセレクタと、
を有する
インターフェース回路。
【請求項３】
前記複数のユニットにおける第１のユニットのセレクタは、前記第１のユニットの前記クロックインターフェースから転送されたクロックを常に選択して前記第１のユニットのデータインターフェースへ供給する
請求項２に記載のインターフェース回路。
【請求項４】
前記複数のユニットにおける第２のユニットのセレクタは、前記第１のユニットの前記クロックインターフェースから転送されたクロックと前記第２のユニットの前記クロックインターフェースから転送されたクロックとのいずれかを選択して前記第２のユニットのデータインターフェースへ供給する
請求項２又は３に記載のインターフェース回路。
【請求項５】
前記複数のユニットでは、第１の優先度で選択されるクロックを転送するクロックインターフェースを有するユニットが、前記第１の優先度より低い第２の優先度で選択されるクロックを転送するクロックインターフェースを有するユニットよりも中央側に配置される
請求項２から４のいずれか１項に記載のインターフェース回路。
【請求項６】
前記複数のユニットでは、前記第１のユニットが前記第２のユニットよりチップエッジに沿った方向における中央側に配置される
請求項５に記載のインターフェース回路。
【請求項７】
前記複数のユニットにおける第３のユニットのセレクタは、前記第１のユニットの前記クロックインターフェースから転送されたクロックと前記第２のユニットの前記クロックインターフェースから転送されたクロックと前記第３のユニットの前記クロックインターフェースから転送されたクロックとのいずれかを選択して前記第３のユニットのデータインターフェースへ供給し、
前記複数のユニットでは、前記第１のユニット及び前記第２のユニットがそれぞれ前記第３のユニットよりチップエッジに沿った方向における中央側に配置される
請求項２から５のいずれか１項に記載のインターフェース回路。
【請求項８】
コントローラと、
外部モジュールからクロック及びデータを受ける、請求項２から７のいずれか１項に記載のインターフェース回路と、
前記外部モジュールからのクロックを用いて、前記インターフェース回路から前記コントローラへデータを転送するバスと、
を備えたシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、インターフェース回路及びシステムに関する。
【背景技術】
【０００２】
インターフェース回路は、システムに対して、外部モジュールが外部接続される際にインターフェース動作を行う。例えば、外部モジュールがインターフェース回路に接続され、外部モジュールからクロック及びデータがインターフェース回路経由でシステムのコントローラ等へ転送される。このとき、外部接続の自由度を向上することが望まれる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−９７３０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
１つの実施形態は、例えば、外部接続の自由度を向上できるインターフェース回路及びシステムを提供することを目的とする。
【課題を解決するための手段】
【０００５】
１つの実施形態によれば、複数のユニットを有するインターフェース回路が提供される。複数のユニットのそれぞれは、クロックインターフェースと、データインターフェースと、セレクタとを有する。クロックインターフェースは、クロックを受けて転送する。データインターフェースは、データを受けて転送する。セレクタは、データインターフェースがクロックに同期してデータを転送するように、クロックを選択してデータインターフェースへ供給する。
【図面の簡単な説明】
【０００６】
【図１】実施形態にかかるインターフェース回路が適用されたシステムの構成を示す図。
【図２】実施形態にかかるインターフェース回路の回路構成（ファームウェアＦＷ１選択時）を示す図。
【図３】実施形態における複数のユニットのレイアウト構成及びクロックの伝送経路（ファームウェアＦＷ１選択時）を示す図。
【図４】実施形態にかかるインターフェース回路の回路構成（ファームウェアＦＷ２選択時）を示す図。
【図５】実施形態における複数のユニットのレイアウト構成及びクロックの伝送経路（ファームウェアＦＷ２選択時）を示す図。
【図６】実施形態にかかるインターフェース回路の回路構成（ファームウェアＦＷ３選択時）を示す図。
【図７】実施形態における複数のユニットのレイアウト構成及びクロックの伝送経路（ファームウェアＦＷ３選択時）を示す図。
【図８】基本の形態にかかるインターフェース回路が適用されたシステムの構成を示す図。
【発明を実施するための形態】
【０００７】
以下に添付図面を参照して、実施形態にかかるインターフェース回路を詳細に説明する。なお、この実施形態により本発明が限定されるものではない。
【０００８】
（実施形態）
実施形態にかかるインターフェース回路１００について説明する前に、基本の形態にかかるインターフェース回路１について説明する。
【０００９】
インターフェース回路１は、システムに対して外部モジュールが外部接続される際にインターフェース動作を行う。例えば、インターフェース回路１は、図８に示すシステムＳＹＳ１に実装される。システムＳＹＳ１は、例えば、携帯端末のシステム、又はパーソナルコンピュータのシステムである。システムＳＹＳ１には、外部モジュールＯＭが外部接続される。外部モジュールＯＭは、例えば、カメラモジュール又はコントローラモジュールである。
【００１０】
具体的には、システムＳＹＳ１は、バス２、インターフェース回路１、コントローラ３、メモリ４、及びインターフェース（Ｉ／Ｆ）６を備える。
【００１１】
バス２は、インターフェース回路１、コントローラ３、メモリ４、及びインターフェース（Ｉ／Ｆ）６を相互に接続して信号を転送する。バス２は、外部モジュールＯＭからクロックを受けて、そのクロックに同期して信号（クロック、データ）を転送する。すなわち、バス２は、外部モジュールＯＭから受けたクロックに同期して転送動作を行うバス規格に従ったものである。このようなバス規格は、例えば、ＭＩＰＩ（Ｍｏｂｉｌｅ  Ｉｎｄｕｓｔｒｙ  Ｐｒｏｃｅｓｓｏｒ  Ｉｎｔｅｒｆａｃｅ）、ＭＤＤＩ（Ｍｏｂｉｌｅ  Ｄｉｓｐｌａｙ  Ｄｉｇｉｔａｌ  Ｉｎｔｅｒｆａｃｅ）、又はＩ２Ｃ（Ｉｎｔｅｒ−Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）などである。例えば、バス２は、クロック用のバス２ｃ及びデータ用のバス２ｄを含む。
【００１２】
インターフェース回路１は、外部モジュールＯＭからクロック及びデータを受け、受けたクロック及びデータをバス２経由でコントローラ３等へ転送する。
【００１３】
例えば、外部モジュールＯＭがカメラモジュールである場合、カメラモジュールは、レンズ、イメージセンサ、及びクロックジェネレータ等を有する。カメラモジュールは、クロックに同期して被写体を撮像し、撮像された画像（静止画又は動画）の画像データとクロックとをインターフェース回路１へ供給する。このとき、インターフェース回路１は、例えば、カメラシリアルインターフェースである。
【００１４】
あるいは、例えば、外部モジュールＯＭがコントローラモジュールである場合、コントローラモジュールは、コントローラ、及びクロックジェネレータ等を有する。コントローラモジュールは、クロックに同期して制御動作を行い、コントローラ３に指示すべき制御内容を決定し、決定された制御内容に従った制御データとクロックとをインターフェース回路１へ供給する。このとき、インターフェース回路１は、例えば、コントローラシリアルインターフェースである。
【００１５】
インターフェース回路１は、出力端子ＯＴ１を介してバス２に接続されているとともに、複数の入力端子ＩＴ１〜ＩＴ４の少なくとも一部を介して外部モジュールＯＭが外部接続される。複数の入力端子ＩＴ１〜ＩＴ４は、上記のバス規格に対応して、クロック用の入力端子ＩＴ１とデータ用の入力端子ＩＴ２〜ＩＴ４とを含む。図８では、クロック用の入力端子ＩＴ１とデータ用の入力端子ＩＴ２とを介して外部モジュールＯＭが接続された状態が例示されている。
【００１６】
例えば、インターフェース回路１は、物理層インターフェース（ＰＨＹ）１１及び転送部１２を有する。
【００１７】
物理層インターフェース１１は、外部モジュールＯＭからクロック及びデータを受け、受けたクロック及びデータを転送部１２へ出力する。物理層インターフェース１１は、クロックインターフェースＣＩＦ及びデータインターフェースＤＩＦａ〜ＤＩＦｃを有する。
【００１８】
クロックインターフェースＣＩＦは、入力端子ＩＴ１を介して外部モジュールＯＭからクロックを受ける。クロックインターフェースＣＩＦは、そのクロックに同期して、クロックを転送する。すなわち、クロックインターフェースＣＩＦは、受けたクロックを転送動作用のクロックとして用いるとともに、クロック自体を転送する。クロックインターフェースＣＩＦは、例えば、クロックに同期して信号（クロック）を転送する複数段のシフトレジスタ（図示せず）を用いて構成することができる。シフトレジスタの各段は、例えば、Ｄラッチ（図示せず）などを用いることができる。クロックインターフェースＣＩＦは、転送されたクロックを、転送部１２へ出力するとともに、データインターフェースＤＩＦａ〜ＤＩＦｃへそれぞれ出力する。クロックインターフェースＣＩＦは、クロックを受けて転送する伝送レーンとして機能するので、クロックレーンとも呼ばれる。
【００１９】
データインターフェースＤＩＦａは、入力端子ＩＴ２を介して外部モジュールＯＭからデータを受け、クロックインターフェースＣＩＦからクロックを受ける。データインターフェースＤＩＦａは、クロックに同期して、データを転送する。データインターフェースＤＩＦａは、例えば、クロックに同期してデータを転送する複数段のシフトレジスタ（図示せず）を用いて構成することができる。シフトレジスタの各段は、例えば、Ｄラッチ（図示せず）などを用いることができる。データインターフェースＤＩＦａは、転送されたデータを、転送部１２へ出力する。データインターフェースＤＩＦａは、データを受けて転送する伝送レーンとして機能するので、データレーンとも呼ばれる。
【００２０】
なお、データインターフェースＤＩＦｂ，ＤＩＦｃについても、データインターフェースＤＩＦａと同様である。
【００２１】
転送部１２は、クロック及びデータを物理層インターフェース１１から受ける。転送部１２は、クロック及びデータをそれぞれ出力端子ＯＴ１経由でバス２へ出力する。転送部１２は、転送レーンＴＬ０を有する。
【００２２】
転送レーンＴＬ０は、端子ＴＬ０ａを介してクロックインターフェースＣＩＦからクロックを受け、端子ＴＬ０ｂ〜ＴＬ０ｄを介してデータインターフェースＤＩＦａ〜ＤＩＦｃからデータを受ける。転送レーンＴＬ０は、クロックを転送してクロック用のバス２ｃへ出力し、データを転送してデータ用のバス２ｄへ出力する。転送レーンＴＬ０は、例えば、複数のデータを受けた場合、調停処理を行って処理順を決定し、決定された処理順に従って、複数のデータを順次にデータ用のバス２ｄへ出力する。処理順は、例えば、端子ＴＬ０ｂ〜ＴＬ０ｄについてサイクリックに（ラウンドロビン的に）選択するものでもよいし、ＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ，  Ｆｉｒｓｔ  Ｏｕｔ）的に選択するものでもよい。
【００２３】
コントローラ３は、ファームウェアＦＷに従って、システムＳＹＳ１の各部を制御する。コントローラ３は、レジスタ５を有する。ファームウェアＦＷは、予め、インターフェース６を介してメモリ４に書き込まれている。コントローラ３は、システムＳＹＳ１が起動された際に、ファームウェアＦＷをメモリ４から読み出して、読み出されたファームウェアＦＷに従って制御信号群ＣＳを生成し、生成された制御信号群ＣＳをレジスタ５に格納する。コントローラ３は、制御信号群ＣＳを用いて、データを処理したり各種の制御を行ったりする。
【００２４】
例えば、外部モジュールＯＭがカメラモジュールである場合、コントローラ３は、インターフェース回路１からバス２経由で画像データを受け、画像データに対して画像処理を施し、処理後の画像データをメモリ４等に格納する。
【００２５】
あるいは、例えば、外部モジュールＯＭがコントローラモジュールである場合、コントローラ３は、インターフェース回路１からバス２経由で制御データを受け、制御データに従って制御動作（例えば、外部モジュールＯＭにおけるコントローラとの協調制御動作など）を行う。
【００２６】
なお、システムＳＹＳ１では、図８に示すように、バス２、インターフェース回路１−１、コントローラ３、メモリ４、レジスタ５、及びインターフェース（Ｉ／Ｆ）６が１つのチップＣＨＩＰ１に搭載されている。
【００２７】
システムＳＹＳ１では、インターフェース回路１−１に複数の外部モジュールＯＭ−１〜ＯＭ−４を外部接続したいと要求されることがある。このとき、バス規格の制約により、複数の外部モジュールＯＭ−１〜ＯＭ−４を、それぞれ、クロックインターフェース及びデータインターフェースに接続する必要がある。しかし、インターフェース回路１−１には、１つのクロックインターフェースＣＩＦしか設けられていないため、バス規格に従いながら複数の外部モジュールＯＭ−１〜ＯＭ−４を外部接続することが困難である。すなわち、インターフェース回路１−１は、１つの外部モジュールＯＭ−１しか接続できず、外部接続の個数について自由度が低い傾向にある。
【００２８】
バス規格に従いながらこの要求を満たすためには、システムＳＹＳ１に対して、足りないクロックインターフェースＣＩＦの個数分、インターフェース回路を追加する必要がある。例えば、インターフェース回路１−２〜１−４を追加する必要がある。このとき、インターフェース回路１−１は、既にチップＣＨＩＰ１に搭載されているので、追加するインターフェース回路１−２〜１−４は、それぞれ、別のチップＣＨＩＰ２〜ＣＨＩＰ４に搭載させて追加する必要がある。この場合、複数のインターフェース回路１−１〜１−４の全体としてチップ面積が増大しやすく、複数のインターフェース回路１−１〜１−４をシステムＳＹＳ１の筐体内にコンパクトに実装することが困難になる。
【００２９】
そこで、実施形態では、図１に示すように、インターフェース回路１００の構成を工夫することで、チップ面積の増大を抑制しながら外部接続の個数についての自由度を向上させることを目指す。以下では、基本の形態と異なる部分を中心に説明する。
【００３０】
具体的には、システムＳＹＳ１００は、複数のインターフェース回路１−１〜１−４（図８参照）に代えて、１つのインターフェース回路１００を備える。インターフェース回路１００は、外部接続される外部モジュールＯＭの個数に応じて、内部的な構成を切り替えることができる（図２、図４、図６参照）。
【００３１】
なお、システムＳＹＳ１００では、図１に示すように、バス２、インターフェース回路１００、コントローラ３、メモリ４、及びインターフェース（Ｉ／Ｆ）６が１つのチップＣＨＩＰ１００に搭載されている。
【００３２】
インターフェース回路１００は、図２に示すように、物理層インターフェース１１及び転送部１２（図８参照）に代えて、物理層インターフェース（ＰＨＹ）１１１及び転送部１１２を備える。
【００３３】
物理層インターフェース１１１は、複数のユニットＵＮ０〜ＵＮ３を有する。転送部１１２は、複数の転送レーンＴＬ０〜ＴＬ３を有する。複数の転送レーンＴＬ０〜ＴＬ３は、複数のユニットＵＮ０〜ＵＮ３に対応している。
【００３４】
まず、複数のユニットＵＮ０〜ＵＮ３において共通する構成について説明する。
【００３５】
各ユニットＵＮ０〜ＵＮ３は、クロックインターフェースＣＩＦ０〜ＣＩＦ３、データインターフェースＤＩＦ０〜ＤＩＦ３、及びセレクタＳＬ０〜ＳＬ３を有する。
【００３６】
各クロックインターフェースＣＩＦ０，ＣＩＦ１，ＣＩＦ２，ＣＩＦ３は、その入力ノードＣＩＦ０ａ，ＣＩＦ１ａ，ＣＩＦ２ａ，ＣＩＦ３ａが、対応する入力端子ＩＴｃ１，ＩＴｃ２，ＩＴｃ３，ＩＴｃ４に接続されている。各クロックインターフェースＣＩＦ０，ＣＩＦ１，ＣＩＦ２，ＣＩＦ３は、対応する入力端子ＩＴｃ１，ＩＴｃ２，ＩＴｃ３，ＩＴｃ４を介してクロックを受けた場合に、クロックを転送する。各クロックインターフェースＣＩＦ０，ＣＩＦ１，ＣＩＦ２，ＣＩＦ３は、制御ノードＣＩＦ０ｂ，ＣＩＦ１ｂ，ＣＩＦ２ｂ，ＣＩＦ３ｂで受けた制御信号に応じて、入力ノードＣＩＦ０ａ，ＣＩＦ１ａ，ＣＩＦ２ａ，ＣＩＦ３ａをイネーブル状態とディスエーブル状態とで切り替えることができる。
【００３７】
各データインターフェースＤＩＦ０，ＤＩＦ１，ＤＩＦ２，ＤＩＦ３は、その入力ノードＤＩＦ０ａ，ＤＩＦ１ａ，ＤＩＦ２ａ，ＤＩＦ３ａが、対応する入力端子ＩＴｄ１，ＩＴｃ２，ＩＴｃ３，ＩＴｄ４に接続されており、そのクロックノードＤＩＦ０ｂ，ＤＩＦ１ｂ，ＤＩＦ２ｂ，ＤＩＦ３ｂが、対応するセレクタＳＬ０，ＳＬ１，ＳＬ２，ＳＬ３の出力側に接続されている。各データインターフェースＤＩＦ０，ＤＩＦ１，ＤＩＦ２，ＤＩＦ３は、対応する入力端子ＩＴｄ１，ＩＴｃ２，ＩＴｃ３，ＩＴｄ４を介してデータを受けた場合に、クロックノードＤＩＦ０ｂ，ＤＩＦ１ｂ，ＤＩＦ２ｂ，ＤＩＦ３ｂで受けたクロックに同期してデータを転送する。各データインターフェースＤＩＦ０，ＤＩＦ１，ＤＩＦ２，ＤＩＦ３は、制御ノードＤＩＦ０ｃ，ＤＩＦ１ｃ，ＤＩＦ２ｃ，ＤＩＦ３ｃで受けた制御信号に応じて、入力ノードＤＩＦ０ａ，ＤＩＦ１ａ，ＤＩＦ２ａ，ＤＩＦ３ａをイネーブル状態とディスエーブル状態とで切り替えることができる。
【００３８】
各セレクタＳＬ０，ＳＬ１，ＳＬ２，ＳＬ３は、その出力ノードＳＬ０ａ，ＳＬ１ａ，ＳＬ２ａ，ＳＬ３ａが、対応するデータインターフェースＤＩＦ０，ＤＩＦ１，ＤＦＩ２，ＤＩＦ３に接続されている。各セレクタＳＬ０，ＳＬ１，ＳＬ２，ＳＬ３は、クロックを選択して、対応するデータインターフェースＤＩＦ０，ＤＩＦ１，ＤＦＩ２，ＤＩＦ３へクロックを供給する。これにより、データインターフェースＤＩＦ０，ＤＩＦ１，ＤＦＩ２，ＤＩＦ３がクロックに同期してデータを転送するようにすることができる。各セレクタＳＬ０，ＳＬ１，ＳＬ２，ＳＬ３は、制御ノードＳＬ０ｃ，ＳＬ１ｃ，ＳＬ２ｃ，ＳＬ３ｃで受けた制御信号に応じて、セレクト動作を行い、クロックを選択する。
【００３９】
次に、複数のユニットＵＮ０〜ＵＮ３において異なる構成について説明する。
【００４０】
ユニットＵＮ０におけるクロックインターフェースＣＩＦ０は、その出力ノードＣＩＦ０ｃが、転送レーンＴＬ０及びセレクタＳＬ０〜ＳＬ３に接続されている。ユニットＵＮ０におけるセレクタＳＬ０は、その入力ノードＳＬ０ｂが、クロックインターフェースＣＩＦ０の出力ノードＣＩＦ０ｃに接続され、他のクロックインターフェースＣＩＦ１，ＣＩＦ２，ＣＩＦ３の出力ノードＣＩＦ１ｃ，ＣＩＦ２ｃ，ＣＩＦ３ｃに接続されていない。これにより、ユニット（第１のユニット）ＵＮ０におけるセレクタＳＬ０は、ユニットＵＮ０のクロックインターフェースＣＩＦ０から転送されたクロックを常に選択してユニットＵＮ０のデータインターフェースＤＩＦ０へ供給する。
【００４１】
ユニットＵＮ１におけるクロックインターフェースＣＩＦ１は、その出力ノードＣＩＦ１ｃが、転送レーンＴＬ１及びセレクタＳＬ１に接続されている。ユニットＵＮ１におけるセレクタＳＬ１は、その入力ノードＳＬ１ｃ，ＳＬ１ｂが、クロックインターフェースＣＩＦ０の出力ノードＣＩＦ０ｃ又はクロックインターフェースＣＩＦ１の出力ノードＣＩＦ１ｃに接続され、残りのクロックインターフェースＣＩＦ２，ＣＩＦ３の出力ノードＣＩＦ２ｃ，ＣＩＦ３ｃに接続されていない。これにより、ユニット（第２のユニット）ＵＮ１におけるセレクタＳＬ１は、ユニット（第１のユニット）ＵＮ０のクロックインターフェースＣＩＦ０から転送されたクロックとユニット（第２のユニット）ＵＮ１のクロックインターフェースＣＩＦ１から転送されたクロックとのいずれかを選択してユニット（第２のユニット）ＵＮ１のデータインターフェースＤＩＦ１へ供給する。
【００４２】
ユニットＵＮ２におけるクロックインターフェースＣＩＦ２は、その出力ノードＣＩＦ２ｃが、転送レーンＴＬ２及びセレクタＳＬ２，ＳＬ３に接続されている。ユニットＵＮ２におけるセレクタＳＬ２は、その入力ノードＳＬ２ｃ，ＳＬ２ｂが、クロックインターフェースＣＩＦ０の出力ノードＣＩＦ０ｃ又はクロックインターフェースＣＩＦ２の出力ノードＣＩＦ２ｃに接続され、残りのクロックインターフェースＣＩＦ１，ＣＩＦ３の出力ノードＣＩＦ１ｃ，ＣＩＦ３ｃに接続されていない。これにより、ユニット（第２のユニット）ＵＮ２におけるセレクタＳＬ２は、ユニット（第１のユニット）ＵＮ０のクロックインターフェースＣＩＦ０から転送されたクロックとユニット（第２のユニット）ＵＮ２のクロックインターフェースＣＩＦ２から転送されたクロックとのいずれかを選択してユニット（第２のユニット）ＵＮ２のデータインターフェースＤＩＦ２へ供給する。
【００４３】
ユニットＵＮ３におけるクロックインターフェースＣＩＦ３は、その出力ノードＣＩＦ３ｃが、転送レーンＴＬ３及びセレクタＳＬ３に接続されている。ユニットＵＮ３におけるセレクタＳＬ３は、その入力ノードＳＬ３ｄ，ＳＬ３ｃ，ＳＬ３ｂが、クロックインターフェースＣＩＦ０の出力ノードＣＩＦ０ｃ、クロックインターフェースＣＩＦ２の出力ノードＣＩＦ２ｃ、又はクロックインターフェースＣＩＦ３の出力ノードＣＩＦ３ｃに接続され、残りのクロックインターフェースＣＩＦ１の出力ノードＣＩＦ１ｃに接続されていない。これにより、ユニット（第３のユニット）ＵＮ３のセレクタＳＬ３は、ユニット（第１のユニット）ＵＮ０のクロックインターフェースＣＩＦ０から転送されたクロックとユニット（第２のユニット）ＵＮ２のクロックインターフェースＣＩＦ２から転送されたクロックとユニット（第３のユニット）ＵＮ３のクロックインターフェースＣＩＦ３から転送されたクロックとのいずれかを選択してユニット（第３のユニット）ＵＮ３のデータインターフェースＤＩＦ３へ供給する。
【００４４】
次に、インターフェース回路１００の内部的な構成の切り替えについて説明する。
【００４５】
例えば、図１に示すように、外部接続される外部モジュールＯＭの個数の候補に対応して、システムＳＹＳ１００にインストールされる候補となる複数のファームウェアＦＷ１〜ＦＷ３が準備されている。ユーザは、インターフェース回路１００に外部接続すべき外部モジュールＯＭの個数に応じて、複数のファームウェアＦＷ１〜ＦＷ３のいずれかを選択してインターフェース６経由でメモリ４に書き込む。
【００４６】
例えば、図２に示すように、インターフェース回路１００に４個の外部モジュールＯＭ−１〜ＯＭ−４を接続したい場合、ファームウェアＦＷ１が選択されインターフェース６（図１参照）経由でメモリ４に書き込まれる。図２は、ファームウェアＦＷ１が選択された場合におけるインターフェース回路１００の回路構成を示す図である。コントローラ３は、システムＳＹＳ１００が起動された際に、ファームウェアＦＷ１をメモリ４から読み出して、ファームウェアＦＷ１に従った制御信号群ＣＳ１をレジスタ５に格納する。コントローラ３は、レジスタ５に格納された制御信号群ＣＳ１に従って、４個の外部モジュールＯＭ−１〜ＯＭ−４を接続するための構成に切り替えるように、インターフェース回路１００を制御する。例えば、コントローラ３は、インターフェース回路１００において、図２に実線で示すラインをアクティブにするとともに、図２に一点鎖線で示すラインをノンアクティブにするように、インターフェース回路１００を制御する。
【００４７】
具体的には、セレクタＳＬ０は、ファームウェアＦＷ１に応じてコントローラ３から受けた制御信号に従って、入力ノードＳＬ０ｂ及び他の入力ノード（図示せず）のうち入力ノードＳＬ０ｂを選択する。これにより、セレクタＳＬ０は、ユニットＵＮ０のクロックインターフェースＣＩＦ０から転送されたクロックを選択してユニットＵＮ０のデータインターフェースＤＩＦ０へ出力ノードＳＬ０ａ経由で供給する。
【００４８】
セレクタＳＬ１は、ファームウェアＦＷ１に応じてコントローラ３から受けた制御信号に従って、複数の入力ノードＳＬ１ｂ，ＳＬ１ｃのうち入力ノードＳＬ１ｂを選択する。これにより、セレクタＳＬ１は、ユニットＵＮ１のクロックインターフェースＣＩＦ１から転送されたクロックを選択してユニットＵＮ１のデータインターフェースＤＩＦ１へ出力ノードＳＬ１ａ経由で供給する。例えば、セレクタＳＬ１は、入力ノードＳＬ１ｃをハイインピーダンス状態にし、クロックインターフェースＣＩＦ０に接続されたラインのうち一点鎖線の部分をノンアクティブにする。
【００４９】
セレクタＳＬ２は、ファームウェアＦＷ１に応じてコントローラ３から受けた制御信号に従って、複数の入力ノードＳＬ２ｂ，ＳＬ２ｃのうち入力ノードＳＬ２ｂを選択する。これにより、セレクタＳＬ２は、ユニットＵＮ２のクロックインターフェースＣＩＦ２から転送されたクロックを選択してユニットＵＮ２のデータインターフェースＤＩＦ２へ出力ノードＳＬ２ａ経由で供給する。例えば、セレクタＳＬ２は、入力ノードＳＬ２ｃをハイインピーダンス状態にし、クロックインターフェースＣＩＦ０に接続されたラインのうち一点鎖線の部分をノンアクティブにする。
【００５０】
セレクタＳＬ３は、ファームウェアＦＷ１に応じてコントローラ３から受けた制御信号に従って、複数の入力ノードＳＬ３ｂ〜ＳＬ３ｄのうち入力ノードＳＬ３ｂを選択する。これにより、セレクタＳＬ３は、ユニットＵＮ３のクロックインターフェースＣＩＦ３から転送されたクロックを選択してユニットＵＮ３のデータインターフェースＤＩＦ３へ出力ノードＳＬ３ａ経由で供給する。例えば、セレクタＳＬ３は、入力ノードＳＬ３ｃをハイインピーダンス状態にし、クロックインターフェースＣＩＦ２に接続されたラインのうち一点鎖線の部分をノンアクティブにする。セレクタＳＬ３は、入力ノードＳＬ３ｄをハイインピーダンス状態にし、クロックインターフェースＣＩＦ０に接続されたラインのうち一点鎖線の部分をノンアクティブにする。
【００５１】
転送レーンＴＬ０は、ファームウェアＦＷ１に応じてコントローラ３から受けた制御信号に従って、クロックインターフェースＣＩＦ０に接続された入力ノードＴＬ０ａとデータインターフェースＤＩＦ０に接続された入力ノードＴＬ０ｂとをイネーブルする。転送レーンＴＬ０は、制御信号に従って、データインターフェースＤＩＦ１〜ＤＩＦ３に接続された入力ノードＴＬ０ｃ〜ＴＬ０ｅをそれぞれディスエーブルする。例えば、転送レーンＴＬ０は、入力ノードＴＬ０ｃ〜ＴＬ０ｅをそれぞれハイインピーダンス状態にし、データインターフェースＤＩＦ１〜ＤＩＦ３に接続されたラインのうち一点鎖線の部分をノンアクティブにする。
【００５２】
転送レーンＴＬ１は、ファームウェアＦＷ１に応じてコントローラ３から受けた制御信号に従って、クロックインターフェースＣＩＦ１に接続された入力ノードＴＬ１ａとデータインターフェースＤＩＦ１に接続された入力ノードＴＬ０ｃとをイネーブルする。転送レーンＴＬ１は、制御信号に従って、データインターフェースＤＩＦ２に接続された入力ノードＴＬ１ｂをディスエーブルする。例えば、転送レーンＴＬ１は、入力ノードＴＬ１ｂをハイインピーダンス状態にし、データインターフェースＤＩＦ２に接続されたラインのうち一点鎖線の部分をノンアクティブにする。
【００５３】
転送レーンＴＬ２は、ファームウェアＦＷ１に応じてコントローラ３から受けた制御信号に従って、クロックインターフェースＣＩＦ２に接続された入力ノードＴＬ２ａとデータインターフェースＤＩＦ２に接続された入力ノードＴＬ２ｂとをイネーブルする。転送レーンＴＬ２は、制御信号に従って、データインターフェースＤＩＦ３に接続された入力ノードＴＬ２ｃをディスエーブルする。例えば、転送レーンＴＬ２は、入力ノードＴＬ２ｃをハイインピーダンス状態にし、データインターフェースＤＩＦ３に接続されたラインのうち一点鎖線の部分をノンアクティブにする。
【００５４】
転送レーンＴＬ３は、ファームウェアＦＷ１に応じてコントローラ３から受けた制御信号に従って、クロックインターフェースＣＩＦ３に接続された入力ノードＴＬ３ａとデータインターフェースＤＩＦ３に接続された入力ノードＴＬ３ｂとをイネーブルする。
【００５５】
このとき、複数のユニットＵＮ０〜ＵＮ３のレイアウトは、図３に示すように構成されている。図３は、ファームウェアＦＷ１が選択された場合における複数のユニットＵＮ０〜ＵＮ３のレイアウト構成及びクロックの伝送経路を示す図である。
【００５６】
複数のユニットＵＮ０，ＵＮ１，ＵＮ２，ＵＮ３は、それぞれ、例えば、図３に示すようなユニット配置領域ＡＵＮ０，ＡＵＮ１，ＡＵＮ２，ＡＵＮ３に配置される。複数のユニットＵＮ０〜ＵＮ３は、チップＣＨＩＰ１００においてチップエッジＣＥ近傍に配置される。複数のユニット配置領域ＡＵＮ０〜ＡＵＮ３は、チップエッジＣＥ近傍において、チップエッジＣＥに沿った方向に配列される。複数のユニット配置領域ＡＵＮ０〜ＡＵＮ３は、チップエッジＣＥ近傍において、チップエッジＣＥに沿った方向に配列される。例えば、図３に示すように、チップエッジＣＥに沿って図３における左から右へ、ユニット配置領域ＡＵＮ１，ＡＵＮ０，ＡＵＮ２，ＡＵＮ３が順に配列されている。すなわち、複数のユニットＵＮ０〜ＵＮ３の配列において、ユニットＵＮ０及びユニットＵＮ２が、ユニットＵＮ１及びユニットＵＮ３よりチップエッジＣＥに沿った方向における中央側に配置されている。
【００５７】
各ユニット配置領域ＡＵＮ０〜ＡＵＮ３では、例えば、クロックインターフェース配置領域ＡＣＩＦ０〜ＡＣＩＦ３がデータインターフェース配置領域ＡＤＩＦ０〜ＡＤＩＦ３を間にしてセレクタ配置領域ＡＳＬ０〜ＡＳＬ３の反対側に配されている。クロックインターフェース配置領域ＡＣＩＦ０〜ＡＣＩＦ３は、それぞれ、クロックインターフェースＣＩＦ０〜ＣＩＦ３（図２参照）が配置される領域である。データインターフェース配置領域ＡＤＩＦ０〜ＡＤＩＦ３は、それぞれ、データインターフェースＤＩＦ０〜ＤＩＦ３（図２参照）が配置される領域である。セレクタ配置領域ＡＳＬ０〜ＡＳＬ３は、それぞれ、セレクタＳＬ０〜ＳＬ３（図２参照）が配置される領域である。データインターフェース配置領域ＡＤＩＦ０〜ＡＤＩＦ３は、チップエッジＣＥに沿った方向において、クロックインターフェース配置領域ＡＣＩＦ０〜ＡＣＩＦ３及びセレクタ配置領域ＡＳＬ０〜ＡＳＬ３の間に配されている。すなわち、複数のユニットＵＮ０〜ＵＮ３は、同様なレイアウト構成を繰り返し配置することで実現可能である。
【００５８】
インターフェース回路１００の内部的な構成が図２に示すように切り替えられている場合、クロックの伝送経路を模式的に示すと、図３に矢印で示すようになる。なお、実際には、レイアウト上の制約やプロセス上の制約などによりクロックは必ずしも平面的且つ直線的に伝送されるわけではないが、図３では、クロックが伝送される方向を直線近似した場合の伝送経路を所定の平面（例えば、半導体基板の表面）に投影して直線的に矢印で示している。また、図３では、クロックの伝送経路上で分岐するノードを模式的に△で示している。
【００５９】
例えば、クロックインターフェース配置領域ＡＣＩＦ０〜ＡＣＩＦ３に配置されたクロックインターフェースＣＩＦ０〜ＣＩＦ３のそれぞれにクロックが入力される。そして、クロックインターフェースＣＩＦ０〜ＣＩＦ３から転送されたクロックは、転送レーンＴＬ０〜ＴＬ３（図２参照）へ出力される。それとともに、クロックインターフェースＣＩＦ０〜ＣＩＦ３から転送されたクロックは、セレクタ配置領域ＡＳＬ０〜ＡＳＬ３に配置されたセレクタＳＬ０〜ＳＬ３（図２参照）のセレクト動作により、データインターフェース配置領域ＡＤＩＦ０〜ＡＤＩＦ３に配置されたデータインターフェースＤＩＦ０〜ＤＩＦ３（図２参照）へ出力される。
【００６０】
このとき、各ユニット配置領域ＡＵＮ０〜ＡＵＮ３内のレイアウト構成、すなわち各ユニットＵＮ０〜ＵＮ３のレイアウト構成が同様であるので、チップエッジＣＥに沿った方向におけるクロックの伝送経路（伝送配線）の長さＳＴＬ０〜ＳＴＬ３を各ユニット配置領域ＡＵＮ０〜ＡＵＮ３の間で互いに略均等にすることができる。これにより、各ユニットＵＮ０〜ＵＮ３の間で特性（例えば、伝送時間など）を容易に揃えることができる。
【００６１】
あるいは、例えば、図４に示すように、インターフェース回路１００に２個の外部モジュールＯＭ−１，ＯＭ−２を接続したい場合、ファームウェアＦＷ２が選択されインターフェース６（図１参照）経由でメモリ４に書き込まれる。図４は、ファームウェアＦＷ２が選択された場合におけるインターフェース回路１００の回路構成を示す図である。コントローラ３は、システムＳＹＳ１００が起動された際に、ファームウェアＦＷ２をメモリ４から読み出して、ファームウェアＦＷ２に従った制御信号群ＣＳ２をレジスタ５に格納する。コントローラ３は、レジスタ５に格納された制御信号群ＣＳ２に従って、２個の外部モジュールＯＭ−１，ＯＭ−２を接続するための構成に切り替えるように、インターフェース回路１００を制御する。例えば、コントローラ３は、インターフェース回路１００において、図４に実線で示すラインをアクティブにするとともに、図４に一点鎖線で示すラインをノンアクティブにするように、インターフェース回路１００を制御する。
【００６２】
具体的には、セレクタＳＬ０は、ファームウェアＦＷ２に応じてコントローラ３から受けた制御信号に従って、入力ノードＳＬ０ｂ及び他の入力ノード（図示せず）のうち入力ノードＳＬ０ｂを選択する。これにより、セレクタＳＬ０は、ユニットＵＮ０のクロックインターフェースＣＩＦ０から転送されたクロックを選択してユニットＵＮ０のデータインターフェースＤＩＦ０へ出力ノードＳＬ０ａ経由で供給する。
【００６３】
セレクタＳＬ１は、ファームウェアＦＷ２に応じてコントローラ３から受けた制御信号に従って、複数の入力ノードＳＬ１ｂ，ＳＬ１ｃのうち入力ノードＳＬ１ｃを選択する。これにより、セレクタＳＬ１は、ユニットＵＮ０のクロックインターフェースＣＩＦ０から転送されたクロックを選択してユニットＵＮ１のデータインターフェースＤＩＦ１へ出力ノードＳＬ１ａ経由で供給する。例えば、セレクタＳＬ１は、入力ノードＳＬ１ｂをハイインピーダンス状態にし、クロックインターフェースＣＩＦ１に接続されたラインのうち一点鎖線の部分をノンアクティブにする。
【００６４】
セレクタＳＬ２は、ファームウェアＦＷ２に応じてコントローラ３から受けた制御信号に従って、複数の入力ノードＳＬ２ｂ，ＳＬ２ｃのうち入力ノードＳＬ２ｂを選択する。これにより、セレクタＳＬ２は、ユニットＵＮ２のクロックインターフェースＣＩＦ２から転送されたクロックを選択してユニットＵＮ２のデータインターフェースＤＩＦ２へ出力ノードＳＬ２ａ経由で供給する。例えば、セレクタＳＬ２は、入力ノードＳＬ２ｃをハイインピーダンス状態にし、クロックインターフェースＣＩＦ０に接続されたラインのうち一点鎖線の部分をノンアクティブにする。
【００６５】
セレクタＳＬ３は、ファームウェアＦＷ２に応じてコントローラ３から受けた制御信号に従って、複数の入力ノードＳＬ３ｂ〜ＳＬ３ｄのうち入力ノードＳＬ３ｃを選択する。これにより、セレクタＳＬ３は、ユニットＵＮ２のクロックインターフェースＣＩＦ２から転送されたクロックを選択してユニットＵＮ３のデータインターフェースＤＩＦ３へ出力ノードＳＬ３ａ経由で供給する。例えば、セレクタＳＬ３は、入力ノードＳＬ３ｂをハイインピーダンス状態にし、クロックインターフェースＣＩＦ３に接続されたラインのうち一点鎖線の部分をノンアクティブにする。セレクタＳＬ３は、入力ノードＳＬ３ｄをハイインピーダンス状態にし、クロックインターフェースＣＩＦ０に接続されたラインのうち一点鎖線の部分をノンアクティブにする。
【００６６】
クロックインターフェースＣＩＦ１は、ファームウェアＦＷ２に応じてコントローラ３から受けた制御信号に従って、入力ノードＣＩＦ１ａをディスエーブルする。例えば、クロックインターフェースＣＩＦ１は、入力ノードＣＩＦ１ａをハイインピーダンス状態にし、入力端子ＩＴｃ２に接続されたラインと入力端子ＩＴｃ２とをノンアクティブにする。
【００６７】
クロックインターフェースＣＩＦ３は、ファームウェアＦＷ２に応じてコントローラ３から受けた制御信号に従って、入力ノードＣＩＦ３ａをディスエーブルする。例えば、クロックインターフェースＣＩＦ３は、入力ノードＣＩＦ３ａをハイインピーダンス状態にし、入力端子ＩＴｃ４に接続されたラインと入力端子ＩＴｃ４とをノンアクティブにする。
【００６８】
転送レーンＴＬ０は、ファームウェアＦＷ２に応じてコントローラ３から受けた制御信号に従って、クロックインターフェースＣＩＦ０に接続された入力ノードＴＬ０ａとデータインターフェースＤＩＦ０，ＤＩＦ１に接続された入力ノードＴＬ０ｂ，ＴＬ０ｃとをイネーブルする。転送レーンＴＬ０は、制御信号に従って、データインターフェースＤＩＦ２，ＤＩＦ３に接続された入力ノードＴＬ０ｄ，ＴＬ０ｅをそれぞれディスエーブルする。例えば、転送レーンＴＬ０は、入力ノードＴＬ０ｄ，ＴＬ０ｅをそれぞれハイインピーダンス状態にし、データインターフェースＤＩＦ２，ＤＩＦ３に接続されたラインのうち一点鎖線の部分をノンアクティブにする。
【００６９】
転送レーンＴＬ１は、ファームウェアＦＷ２に応じてコントローラ３から受けた制御信号に従って、クロックインターフェースＣＩＦ１に接続された入力ノードＴＬ１ａとデータインターフェースＤＩＦ１，ＤＩＦ２に接続された入力ノードＴＬ１ｂ，ＴＬ１ｃとをディスエーブルする。例えば、転送レーンＴＬ１は、入力ノードＴＬ１ａをハイインピーダンス状態にし、クロックインターフェースＣＩＦ１に接続されたラインのうち一点鎖線の部分をノンアクティブにする。転送レーンＴＬ１は、入力ノードＴＬ１ｂ，ＴＬ１ｃをハイインピーダンス状態にし、データインターフェースＤＩＦ１，ＤＩＦ２に接続されたラインのうち一点鎖線の部分をノンアクティブにする。
【００７０】
転送レーンＴＬ２は、ファームウェアＦＷ２に応じてコントローラ３から受けた制御信号に従って、クロックインターフェースＣＩＦ２に接続された入力ノードＴＬ２ａとデータインターフェースＤＩＦ２，ＤＩＦ３に接続された入力ノードＴＬ２ｂ，ＴＬ２ｃとをイネーブルする。
【００７１】
転送レーンＴＬ３は、ファームウェアＦＷ２に応じてコントローラ３から受けた制御信号に従って、クロックインターフェースＣＩＦ３に接続された入力ノードＴＬ３ａとデータインターフェースＤＩＦ３に接続された入力ノードＴＬ３ｂとをディスエーブルする。例えば、転送レーンＴＬ３は、入力ノードＴＬ３ａをハイインピーダンス状態にし、クロックインターフェースＣＩＦ３に接続されたラインのうち一点鎖線の部分をノンアクティブにする。転送レーンＴＬ３は、入力ノードＴＬ３ｂをハイインピーダンス状態にし、データインターフェースＤＩＦ３に接続されたラインのうち一点鎖線の部分をノンアクティブにする。
【００７２】
なお、インターフェース回路１００では、各外部モジュールＯＭ−１，ＯＭ−２に対して、データインターフェース（データレーン）を２レーン設けることができるので、データ転送レートを容易に向上できる。
【００７３】
また、インターフェース回路１００では、クロックインターフェースＣＩＦ０，ＣＩＦ２のクロックが選択され、クロックインターフェースＣＩＦ１，ＣＩＦ３のクロックが非選択である。図２及び図４を比較すると、インターフェース回路１００では、クロックを選択する際の優先度について、下記の数式１が成り立つことが分かる。
（クロックインターフェースＣＩＦ０，ＣＩＦ２のクロックの優先度）
＞（クロックインターフェースＣＩＦ１，ＣＩＦ３のクロックの優先度）
・・・（数式１）
【００７４】
なお、クロックを選択する際の優先度とは、インターフェース回路１００に外部接続される外部モジュールＯＭの個数が変更される際に、どのクロックインターフェースからのクロックをセレクタが優先的に選択するのかを決定するための指標である。例えば、クロックインターフェースＣＩＦ０，ＣＩＦ２のクロックは、外部接続される外部モジュールＯＭが４個の場合（図２の場合）と外部接続される外部モジュールＯＭが２個の場合（図４の場合）とで一貫して選択されている。一方、クロックインターフェースＣＩＦ１，ＣＩＦ３のクロックは、外部接続される外部モジュールＯＭが４個の場合（図２の場合）に選択されているが、外部接続される外部モジュールＯＭが２個の場合（図４の場合）にどのセレクタからも選択されていない。すなわち、クロックを選択する際の優先度について、上記の数式１が成り立つことが分かる。
【００７５】
インターフェース回路１００の内部的な構成が図４に示すように切り替えられている場合、クロックの伝送経路は、図５に矢印で示すようになる。図５は、ファームウェアＦＷ２が選択された場合における複数のユニットＵＮ０〜ＵＮ３のレイアウト構成及びクロックの伝送経路を示す図である。なお、図５では、クロックが伝送される方向を直線近似した場合の伝送経路を所定の平面（例えば、半導体基板の表面）に投影して直線的に矢印で示している。また、図５では、クロックの伝送経路上で分岐するノードを模式的に△で示している。
【００７６】
例えば、クロックインターフェース配置領域ＡＣＩＦ０，ＡＣＩＦ２に配置されたクロックインターフェースＣＩＦ０，ＣＩＦ２のそれぞれにクロックが入力される。そして、クロックインターフェースＣＩＦ０から転送されたクロックは、転送レーンＴＬ０（図４参照）へ出力される。それとともに、クロックインターフェースＣＩＦ０から転送されたクロックは、セレクタ配置領域ＡＳＬ０，ＡＳＬ１に配置されたセレクタＳＬ０，ＳＬ１（図２参照）のセレクト動作により、データインターフェース配置領域ＡＤＩＦ０，ＡＤＩＦ１に配置されたデータインターフェースＤＩＦ０，ＤＩＦ１（図４参照）へ出力される。クロックインターフェースＣＩＦ２から転送されたクロックは、転送レーンＴＬ２（図４参照）へ出力される。それとともに、クロックインターフェースＣＩＦ２から転送されたクロックは、セレクタ配置領域ＡＳＬ２，ＡＳＬ３に配置されたセレクタＳＬ２，ＳＬ３（図４参照）のセレクト動作により、データインターフェース配置領域ＡＤＩＦ２，ＡＤＩＦ３に配置されたデータインターフェースＤＩＦ２，ＤＩＦ３（図４参照）へ出力される。
【００７７】
このとき、ユニット配置領域ＡＵＮ０，ＡＵＮ２が、ユニット配置領域ＡＵＮ１，ＡＵＮ３よりもチップエッジＣＥに沿った方向における中央側に配置される。すなわち、優先度の高いクロックを転送するクロックインターフェースＣＩＦ０，ＣＩＦ２を有するユニットＵＮ０，ＵＮ２が、より低い優先度で選択されるクロックを転送するクロックインターフェースＣＩＦ１，ＣＩＦ３を有するユニットＵＮ１，ＵＮ３よりもチップエッジＣＥに沿った方向における中央側に配置される。これにより、各ユニットＵＮ０〜ＵＮ３のクロックの伝送経路（伝送配線）の長さＳＴＬ０〜ＳＴＬ３のうち、少なくともユニットＵＮ０，ＵＮ２，ＵＮ３のクロックの伝送経路の長さＳＴＬ０，ＳＴＬ２，ＳＴＬ３を互いに略均等にすることができる。また、ユニットＵＮ０，ＵＮ２，ＵＮ３のクロックの伝送経路の長さＳＴＬ０，ＳＴＬ２，ＳＴＬ３と、ユニットＵＮ１のクロックの伝送経路の長さＳＴＬ１との差をユニット１個に対応したものに抑えることができる。これにより、各ユニットＵＮ０〜ＵＮ３の間で特性（例えば、伝送時間など）を容易に揃えることができる。
【００７８】
あるいは、例えば、図６に示すように、インターフェース回路１００に１個の外部モジュールＯＭ−１を接続したい場合、ファームウェアＦＷ３が選択されインターフェース６（図１参照）経由でメモリ４に書き込まれる。図６は、ファームウェアＦＷ３が選択された場合におけるインターフェース回路１００の回路構成を示す図である。コントローラ３は、システムＳＹＳ１００が起動された際に、ファームウェアＦＷ３をメモリ４から読み出して、ファームウェアＦＷ３に従った制御信号群ＣＳ３をレジスタ５に格納する。コントローラ３は、レジスタ５に格納された制御信号群ＣＳ３に従って、１個の外部モジュールＯＭ−１を接続するための構成に切り替えるように、インターフェース回路１００を制御する。例えば、コントローラ３は、インターフェース回路１００において、図６に実線で示すラインをアクティブにするとともに、図６に一点鎖線で示すラインをノンアクティブにするように、インターフェース回路１００を制御する。
【００７９】
具体的には、セレクタＳＬ０は、ファームウェアＦＷ３に応じてコントローラ３から受けた制御信号に従って、入力ノードＳＬ０ｂ及び他の入力ノード（図示せず）のうち入力ノードＳＬ０ｂを選択する。これにより、セレクタＳＬ０は、ユニットＵＮ０のクロックインターフェースＣＩＦ０から転送されたクロックを選択してユニットＵＮ０のデータインターフェースＤＩＦ０へ出力ノードＳＬ０ａ経由で供給する。
【００８０】
セレクタＳＬ１は、ファームウェアＦＷ３に応じてコントローラ３から受けた制御信号に従って、複数の入力ノードＳＬ１ｂ，ＳＬ１ｃのうち入力ノードＳＬ１ｃを選択する。これにより、セレクタＳＬ１は、ユニットＵＮ０のクロックインターフェースＣＩＦ０から転送されたクロックを選択してユニットＵＮ１のデータインターフェースＤＩＦ１へ出力ノードＳＬ１ａ経由で供給する。例えば、セレクタＳＬ１は、入力ノードＳＬ１ｂをハイインピーダンス状態にし、クロックインターフェースＣＩＦ１に接続されたラインのうち一点鎖線の部分をノンアクティブにする。
【００８１】
セレクタＳＬ２は、ファームウェアＦＷ３に応じてコントローラ３から受けた制御信号に従って、複数の入力ノードＳＬ２ｂ，ＳＬ２ｃのうち入力ノードＳＬ２ｃを選択する。これにより、セレクタＳＬ２は、ユニットＵＮ０のクロックインターフェースＣＩＦ０から転送されたクロックを選択してユニットＵＮ２のデータインターフェースＤＩＦ２へ出力ノードＳＬ２ａ経由で供給する。例えば、セレクタＳＬ２は、入力ノードＳＬ２ｂをハイインピーダンス状態にし、クロックインターフェースＣＩＦ２に接続されたラインのうち一点鎖線の部分をノンアクティブにする。
【００８２】
セレクタＳＬ３は、ファームウェアＦＷ３に応じてコントローラ３から受けた制御信号に従って、複数の入力ノードＳＬ３ｂ〜ＳＬ３ｄのうち入力ノードＳＬ３ｄを選択する。これにより、セレクタＳＬ３は、ユニットＵＮ０のクロックインターフェースＣＩＦ０から転送されたクロックを選択してユニットＵＮ３のデータインターフェースＤＩＦ３へ出力ノードＳＬ３ａ経由で供給する。例えば、セレクタＳＬ３は、入力ノードＳＬ３ｂをハイインピーダンス状態にし、クロックインターフェースＣＩＦ３に接続されたラインのうち一点鎖線の部分をノンアクティブにする。セレクタＳＬ３は、入力ノードＳＬ３ｃをハイインピーダンス状態にし、クロックインターフェースＣＩＦ２に接続されたラインのうち一点鎖線の部分をノンアクティブにする。
【００８３】
クロックインターフェースＣＩＦ１は、ファームウェアＦＷ３に応じてコントローラ３から受けた制御信号に従って、入力ノードＣＩＦ１ａをディスエーブルする。例えば、クロックインターフェースＣＩＦ１は、入力ノードＣＩＦ１ａをハイインピーダンス状態にし、入力端子ＩＴｃ２に接続されたラインと入力端子ＩＴｃ２とをノンアクティブにする。
【００８４】
クロックインターフェースＣＩＦ２は、ファームウェアＦＷ３に応じてコントローラ３から受けた制御信号に従って、入力ノードＣＩＦ２ａをディスエーブルする。例えば、クロックインターフェースＣＩＦ２は、入力ノードＣＩＦ２ａをハイインピーダンス状態にし、入力端子ＩＴｃ３に接続されたラインと入力端子ＩＴｃ３とをノンアクティブにする。
【００８５】
クロックインターフェースＣＩＦ３は、ファームウェアＦＷ３に応じてコントローラ３から受けた制御信号に従って、入力ノードＣＩＦ３ａをディスエーブルする。例えば、クロックインターフェースＣＩＦ３は、入力ノードＣＩＦ３ａをハイインピーダンス状態にし、入力端子ＩＴｃ４に接続されたラインと入力端子ＩＴｃ４とをノンアクティブにする。
【００８６】
転送レーンＴＬ０は、ファームウェアＦＷ３に応じてコントローラ３から受けた制御信号に従って、クロックインターフェースＣＩＦ０に接続された入力ノードＴＬ０ａとデータインターフェースＤＩＦ０〜ＤＩＦ３に接続された入力ノードＴＬ０ｂ〜ＴＬ０ｅとをイネーブルする。
【００８７】
転送レーンＴＬ１は、ファームウェアＦＷ３に応じてコントローラ３から受けた制御信号に従って、クロックインターフェースＣＩＦ１に接続された入力ノードＴＬ１ａとデータインターフェースＤＩＦ１，ＤＩＦ２に接続された入力ノードＴＬ１ｂ，ＴＬ１ｃとをディスエーブルする。例えば、転送レーンＴＬ１は、入力ノードＴＬ１ａをハイインピーダンス状態にし、クロックインターフェースＣＩＦ１に接続されたラインのうち一点鎖線の部分をノンアクティブにする。転送レーンＴＬ１は、入力ノードＴＬ１ｂ，ＴＬ１ｃをハイインピーダンス状態にし、データインターフェースＤＩＦ１，ＤＩＦ２に接続されたラインのうち一点鎖線の部分をノンアクティブにする。
【００８８】
転送レーンＴＬ２は、ファームウェアＦＷ３に応じてコントローラ３から受けた制御信号に従って、クロックインターフェースＣＩＦ２に接続された入力ノードＴＬ２ａとデータインターフェースＤＩＦ２，ＤＩＦ３に接続された入力ノードＴＬ２ｂ，ＴＬ２ｃとをディスエーブルする。例えば、転送レーンＴＬ２は、入力ノードＴＬ２ａをハイインピーダンス状態にし、クロックインターフェースＣＩＦ１に接続されたラインのうち一点鎖線の部分をノンアクティブにする。転送レーンＴＬ２は、入力ノードＴＬ２ｂ，ＴＬ２ｃをハイインピーダンス状態にし、データインターフェースＤＩＦ２，ＤＩＦ３に接続されたラインのうち一点鎖線の部分をノンアクティブにする。
【００８９】
転送レーンＴＬ３は、ファームウェアＦＷ３に応じてコントローラ３から受けた制御信号に従って、クロックインターフェースＣＩＦ３に接続された入力ノードＴＬ３ａとデータインターフェースＤＩＦ３に接続された入力ノードＴＬ３ｂとをディスエーブルする。例えば、転送レーンＴＬ３は、入力ノードＴＬ３ａをハイインピーダンス状態にし、クロックインターフェースＣＩＦ１に接続されたラインのうち一点鎖線の部分をノンアクティブにする。転送レーンＴＬ３は、入力ノードＴＬ３ｂをハイインピーダンス状態にし、データインターフェースＤＩＦ３に接続されたラインのうち一点鎖線の部分をノンアクティブにする。
【００９０】
なお、インターフェース回路１００では、外部モジュールＯＭ−１に対して、データインターフェース（データレーン）を４レーン設けることができるので、データ転送レートを容易に向上できる。
【００９１】
また、インターフェース回路１００では、クロックインターフェースＣＩＦ０のクロックが選択され、クロックインターフェースＣＩＦ１〜ＣＩＦ３のクロックが非選択である。図２、図４、及び図６を比較すると、インターフェース回路１００では、クロックを選択する際の優先度について、下記の数式２が成り立つことが分かる。
（クロックインターフェースＣＩＦ０のクロックの優先度）
＞（クロックインターフェースＣＩＦ２のクロックの優先度）
＞（クロックインターフェースＣＩＦ０，ＣＩＦ３のクロックの優先度）
・・・（数式２）
【００９２】
なお、クロックを選択する際の優先度とは、インターフェース回路１００に外部接続される外部モジュールＯＭの個数が変更される際に、どのクロックインターフェースからのクロックをセレクタが優先的に選択するのかを決定するための指標である。例えば、クロックインターフェースＣＩＦ０のクロックは、外部接続される外部モジュールＯＭが４個の場合（図２の場合）と外部接続される外部モジュールＯＭが２個の場合（図４の場合）と外部接続される外部モジュールＯＭが１個の場合（図６の場合）とで一貫して選択されている。クロックインターフェースＣＩＦ２のクロックは、外部接続される外部モジュールＯＭが４個の場合（図２の場合）と外部接続される外部モジュールＯＭが２個の場合（図４の場合）とで一貫して選択されているが、外部接続される外部モジュールＯＭが１個の場合（図６の場合）にどのセレクタからも選択されていない。また、クロックインターフェースＣＩＦ１，ＣＩＦ３のクロックは、外部接続される外部モジュールＯＭが４個の場合（図２の場合）に選択されているが、外部接続される外部モジュールＯＭが２個の場合（図４の場合）及び外部接続される外部モジュールＯＭが１個の場合（図６の場合）にどのセレクタからも選択されていない。すなわち、クロックを選択する際の優先度について、上記の数式２が成り立つことが分かる。
【００９３】
すなわち、クロックの優先度が高いとは、インターフェース回路１００に外部接続される外部モジュールＯＭの個数が変更されても各ユニットのセレクタから選択されやすいことを示している。
【００９４】
ここで、インターフェース回路１００において転送動作を行うクロックインターフェースの数を少なくできればインターフェース回路１００の消費電力を低減できるため好ましい。しかし、インターフェース回路１００に複数の外部モジュールＯＭが外部接続される場合、複数の外部モジュールＯＭのそれぞれから供給されるクロックの周期が異なる可能性がある。このとき、ある外部モジュールＯＭから供給されたデータを異なる外部モジュールＯＭのクロックを用いて転送してしまうと、そのデータを適正なタイミングで転送することが困難になり、データ化け等の転送エラーが発生する可能性がある。そこで、ある外部モジュールＯＭから供給されたデータの転送に用いるクロックはその同じ外部モジュールＯＭから供給されたクロックとする必要がある。その制約のもとで、転送動作を行うクロックインターフェースの数を可能な限り少なくするために、本実施形態では、クロックを選択する際の優先度という指標を導入し、その指標に従って各セレクタのセレクト動作を制御している。
【００９５】
インターフェース回路１００の内部的な構成が図６に示すように切り替えられている場合、クロックの伝送経路は、図７に矢印で示すようになる。図７は、ファームウェアＦＷ３が選択された場合における複数のユニットＵＮ０〜ＵＮ３のレイアウト構成及びクロックの伝送経路を示す図である。なお、図７では、クロックが伝送される方向を直線近似した場合の伝送経路を所定の平面（例えば、半導体基板の表面）に投影して直線的に矢印で示している。また、図７では、クロックの伝送経路上で分岐するノードを模式的に△で示している。
【００９６】
例えば、クロックインターフェース配置領域ＡＣＩＦ０に配置されたクロックインターフェースＣＩＦ０にクロックが入力される。そして、クロックインターフェースＣＩＦ０から転送されたクロックは、転送レーンＴＬ０（図６参照）へ出力される。それとともに、クロックインターフェースＣＩＦ０から転送されたクロックは、セレクタ配置領域ＡＳＬ０〜ＡＳＬ３に配置されたセレクタＳＬ０〜ＳＬ３（図６参照）のセレクト動作により、データインターフェース配置領域ＡＤＩＦ０〜ＡＤＩＦ３に配置されたデータインターフェースＤＩＦ０〜ＤＩＦ３（図６参照）へ出力される。
【００９７】
このとき、ユニット配置領域ＡＵＮ０，ＡＵＮ２が、ユニット配置領域ＡＵＮ１，ＡＵＮ３よりもチップエッジＣＥに沿った方向における中央側に配置される。すなわち、優先度の高いクロックを転送するクロックインターフェースＣＩＦ０，ＣＩＦ２を有するユニットＵＮ０，ＵＮ２が、より低い優先度で選択されるクロックを転送するクロックインターフェースＣＩＦ１，ＣＩＦ３を有するユニットＵＮ１，ＵＮ３よりもチップエッジＣＥに沿った方向における中央側に配置される。さらに、ユニット配置領域ＡＵＮ０，ＡＵＮ２を比較すると、ユニット配置領域ＡＵＮ０がユニット配置領域ＡＵＮ２よりもチップエッジＣＥに沿った方向における中央側に配置されている。すなわち、ユニットＵＮ２より優先度の高いユニットＵＮ０の方が、ユニットＵＮ２よりもチップエッジＣＥに沿った方向における中央側に配置される。これにより、各ユニットＵＮ０〜ＵＮ３のクロックの伝送経路（伝送配線）の長さＳＴＬ０〜ＳＴＬ３のうち、少なくともユニットＵＮ０，ＵＮ２のクロックの伝送経路の長さＳＴＬ０，ＳＴＬ２を互いに略均等にすることができ、少なくともユニットＵＮ１，ＵＮ３のクロックの伝送経路の長さＳＴＬ１，ＳＴＬ３を互いに略均等にすることができる。また、ユニットＵＮ０，ＵＮ２のクロックの伝送経路の長さＳＴＬ０，ＳＴＬ２と、ユニットＵＮ１，ＵＮ３のクロックの伝送経路の長さＳＴＬ１，ＳＴＬ３との差をユニット１個に対応したものに抑えることができる。これにより、各ユニットＵＮ０〜ＵＮ３の間で特性（例えば、伝送時間など）を容易に揃えることができる。
【００９８】
以上のように、実施形態では、インターフェース回路１００において、複数のユニットＵＮ０〜ＵＮ３のそれぞれが、クロックインターフェースＣＩＦ０〜ＣＩＦ３、データインターフェースＤＩＦ０〜ＤＩＦ３、及びセレクタＳＬ０〜ＳＬ３を有する。セレクタＳＬ０〜ＳＬ３は、データインターフェースＤＩＦ０〜ＤＩＦ３がクロックに同期してデータを転送するように、クロックを選択してデータインターフェースＤＩＦ０〜ＤＩＦ３へ供給する。これにより、インターフェース回路１００は、外部接続される外部モジュールＯＭの個数に応じて、内部的な構成を切り替えることができる。したがって、別のチップＣＨＩＰ２〜ＣＨＩＰ４（図８参照）を追加することなくインターフェース回路１００に複数の外部モジュールＯＭ−１〜ＯＭ−４を外部接続させることができるので、チップ面積の増大を抑制しながら外部接続の個数についての自由度を向上できる。
【００９９】
また、実施形態では、インターフェース回路１００の複数のユニットＵＮ０〜ＵＮ３において、ユニットＵＮ０のセレクタＳＬ０は、ユニットＵＮ０のクロックインターフェースＣＩＦ０から転送されたクロックを常に選択してユニットＵＮ０のデータインターフェースＤＩＦ０へ供給する。ユニットＵＮ１，ＵＮ２のセレクタＳＬ１，ＳＬ２は、ユニットＵＮ０のクロックインターフェースＣＩＦ０から転送されたクロックとユニットＵＮ１，ＵＮ２のクロックインターフェースＣＩＦ１，ＣＩＦ２から転送されたクロックとのいずれかを選択してユニットＵＮ１，ＵＳ２のデータインターフェースＤＩＦ１，ＤＩＦ２へ供給する。ユニットＵＮ３のセレクタＳＬ３は、ユニットＵＮ０のクロックインターフェースＣＩＦ０から転送されたクロックとユニットＵＮ２のクロックインターフェースＣＩＦ２から転送されたクロックとユニットＵＮ３のクロックインターフェースＣＩＦ３から転送されたクロックとのいずれかを選択してユニットＵＮ３のデータインターフェースＤＩＦ３へ供給する。これにより、外部接続される外部モジュールＯＭの個数に応じて内部的な構成を切り替えるようにインターフェース回路１００を構成することができる。
【０１００】
また、実施形態では、インターフェース回路１００において、優先度の高いクロックを転送するクロックインターフェースを有するユニットが、より低い優先度で選択されるクロックを転送するクロックインターフェースを有するユニットよりもチップエッジに沿った方向における中央側に配置される。例えば、ユニットＵＮ０がユニットＵＮ２よりもチップエッジに沿った方向における中央側に配置される。例えば、ユニットＵＮ０がユニットＵＮ１，ＵＮ３よりもチップエッジに沿った方向における中央側に配置される。例えば、ユニットＵＮ２がユニットＵＮ１，ＵＮ３よりもチップエッジに沿った方向における中央側に配置される。これにより、インターフェース回路１００に外部接続される外部モジュールの個数が変わった場合に、各ユニットＵＮ０〜ＵＮ３のクロックの伝送経路の長さＳＴＬ０〜ＳＴＬ３を互いに略均等にでき、あるいは、互いの差をユニット１個に対応したものに抑えることができる。これにより、インターフェース回路１００に外部接続される外部モジュールの個数が変わった場合に、各ユニットＵＮ０〜ＵＮ３の間で特性（例えば、伝送時間など）を容易に揃えることができる。
【０１０１】
また、実施形態では、インターフェース回路１００が１つのチップＣＨＩＰ１００に搭載されている。例えば、コントローラ３、インターフェース回路１００、及びバス３は、１つのチップＣＨＩＰ１００に搭載されている。これにより、チップ面積の増大を容易に抑制できる。
【０１０２】
なお、インターフェース回路１００には、３個の外部モジュールが外部接続されてもよい。このとき、例えば、ユニットＵＮ０，ＵＮ１が図２に示す構成に切り替えられ、ユニットＵＮ２，ＵＮ３が図４に示す構成に切り替えられてもよい。あるいは、例えば、ユニットＵＮ０，ＵＮ１が図４に示す構成に切り替えられ、ユニットＵＮ２，ＵＮ３が図２に示す構成に切り替えられてもよい。あるいは、インターフェース回路１００は、図４に示す構成に切り替えられた状態で、ユニットＵＮ０に外部モジュールＯＭ−１が接続され、ユニットＵＮ１〜ＵＮ３に外部モジュールＯＭ−２が接続されてもよい。
【０１０３】
あるいは、インターフェース回路１００は、外部接続が要求される外部モジュールの個数に応じて４個より多くのユニットを備えてもよい。この場合も、上記と同様の考え方で、外部接続される外部モジュールＯＭの個数に応じて、内部的な構成を切り替えることができる。
【０１０４】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１０５】
１，１００  インターフェース回路、ＳＹＳ１，ＳＹＳ１００  システム。
【図１】
2015043170.tif 000003
【図２】
2015043170.tif 000004
【図３】
2015043170.tif 000005
【図４】
2015043170.tif 000006
【図５】
2015043170.tif 000007
【図６】
2015043170.tif 000008
【図７】
2015043170.tif 000009
【図８】
2015043170.tif 000010