(57)【要約】【課題】  未使用のアドレス端子を無くすことで半導体集積回路の製品コストを削減し、アクセス可能な外部メモリの容量を増加する。【課題を解決するための手段】  データ制御ユニット４０は、データ端子ＤＴの所定数をモード信号ＭＤに応じて有効にし、外部データ信号ＤＴのバス幅を変更する。アドレス制御ユニット３０は、コントローラ１０から出力される内部アドレス信号ＩＡのうち所定数のビットをモード信号ＭＤに応じて選択し、外部アドレス信号ＡＤＤとして出力する。具体的には、アドレス制御ユニット３０は、外部データ信号ＤＴのバス幅がモード信号ＭＤに応じて増加されるときに、内部アドレス信号ＩＡのうち上位側のビットを選択する。このため、未使用の外部アドレス端子ＡＤＤが生じることを防止でき、アクセス可能な外部メモリの容量を増加できる。【解決手段】  【選択図】    図１
2005228205.tif 000002
【特許請求の範囲】
【請求項１】
外部メモリをアクセスするための内部アドレス信号を出力するコントローラと、
複数のデータ端子のうち所定数をモード信号に応じて有効にし、有効なデータ端子を介して前記外部メモリに対して外部データ信号を入出力するとともに、前記外部データ信号を前記コントローラに対して入出力するために、前記外部データ信号を前記コントローラに対応するバス幅の内部データ信号に変換するデータ制御ユニットと、
前記内部アドレス信号のうち連続する所定数（固定値）のビットを前記モード信号に応じて選択し、選択したビットで構成されるアドレス信号を外部アドレス信号として前記外部メモリに出力するアドレス制御ユニットとを備え、
前記アドレス制御ユニットは、前記外部データ信号のバス幅が前記モード信号に応じて順次増加するときに、前記内部アドレス信号のうち上位側のビットを順次選択することを特徴とする半導体集積回路。
【請求項２】
請求項１記載の半導体集積回路において、
前記モード信号は、前記外部データ信号のバス幅（２のｍ乗ビット）を示す信号であり、
前記アドレス制御ユニットは、前記内部アドレス信号の連続するｎビットを選択し、前記”ｍ”が１増加する毎に、選択する前記内部アドレス信号のビット群を１ビットずつ上位にずらすことを特徴とする半導体集積回路。
【請求項３】
請求項２記載の半導体集積回路において、
連続する複数ビットの前記内部アドレス信号のいずれかを前記モード信号に応じて選択し、前記外部アドレス信号のビットにそれぞれ対応する複数のセレクタを備えていることを特徴とする半導体集積回路。
【請求項４】
請求項１記載の半導体集積回路において、
前記モード信号は、前記外部データ信号のバス幅（２のｍ乗ビット）を示す信号であり、
前記アドレス制御ユニットは、前記内部アドレス信号の連続するｎビット（固定値）を選択し、前記ｎビットは、前記内部アドレス信号の所定のビットを常に前記外部アドレス信号として出力する固定ビットと、前記内部アドレス信号の互いに異なるビットのいずれかを前記モード信号に応じて選択し、選択したビットを前記外部アドレス信号として出力する可変ビットとで構成され、前記”ｍ”が１増加する毎に、前記可変ビットの下位側ビットを前記固定ビットの最上位ビットに連続する上位側ビットに切り替えることを特徴とする半導体集積回路。
【請求項５】
請求項４記載の半導体集積回路において、
前記外部アドレス信号の下位側のビットにそれぞれ対応し、２ビットの前記内部アドレス信号のいずれかを前記モード信号に応じて選択する少なくとも一つのセレクタを備えていることを特徴とする半導体集積回路。
【請求項６】
請求項１記載の半導体集積回路において、
前記モード信号が示す論理値を保持するバス幅切替レジスタと、
前記バス幅切替レジスタに保持される論理値を前記コントローラにより書き換えるために、前記コントローラから出力される書き換えデータを前記バス幅切替レジスタに伝達するデータバスとを備え、
前記アドレス制御ユニットおよび前記データ制御ユニットは、前記バス幅切替レジスタに保持されている論理値に応じて動作することを特徴とする半導体集積回路。
【請求項７】
請求項６記載の半導体集積回路において、
前記モード信号を半導体集積回路の外部から受けるモード端子を備え、
前記バス幅切替レジスタに保持される論理値は、前記コントローラにより書き換えられるまで前記モード端子に供給される前記モード信号に応じて設定されることを特徴とする半導体集積回路。
【請求項８】
請求項６記載の半導体集積回路において、
所定の論理値が予めプログラムされ、この論理値に応じて前記モード信号を出力するプログラム回路を備え、
前記バス幅切替レジスタに保持される論理値は、前記コントローラにより書き換えられるまで前記プログラム回路から出力される前記モード信号に応じて設定されることを特徴とする半導体集積回路。
【請求項９】
請求項１記載の半導体集積回路において、
前記モード信号を半導体集積回路の外部から受けるモード端子を備えていることを特徴とする半導体集積回路。
【請求項１０】
請求項１記載の半導体集積回路において、
所定の論理値が予めプログラムされ、この論理値に応じて前記モード信号を出力するプログラム回路を備えていることを特徴とする半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体メモリをアクセスするためのアドレス信号を出力する半導体集積回路に関する。
【背景技術】
【０００２】
一般に、マイクロコンピュータ等の半導体集積回路は、アドレス信号を出力するアドレス端子を有している（例えば、特許文献１参照）。アドレス端子の数（アドレスのビット数）は、半導体集積回路毎に決められている。例えば、４ｋのメモリ領域をアクセスするために、１２ビットのアドレス端子が必要であり、８ｋのメモリ領域をアクセスするために、１３ビットのアドレス端子が必要である。
【特許文献１】特開昭６２−２５６１４５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
マイクロコンピュータ等が半導体メモリをアクセスするために出力するアドレス信号のビット数は、製品毎に固定されている。一方、メモリ容量が同じ場合、データ信号のビット数（バス幅）の多い半導体メモリ（例えば、×１６ビット）をアクセスするためのアドレス信号のビット数は、データ信号のビット数の少ない半導体メモリ（例えば、×８ビット）をアクセスするためのアドレス信号のビット数より少ない。このため、データ信号のビット数が８ビットおよび１６ビットの両方に対応するマイクロコンピュータに、データ信号のビット数が１６ビットの半導体メモリを接続する場合、マイクロコンピュータのアドレス端子は、１ビットが未使用になる。同様に、データ信号のビット数が８ビット、１６ビットおよび３２ビットに対応するマイクロコンピュータに、データ信号のビット数が３２ビットの半導体メモリを接続する場合、マイクロコンピュータのアドレス端子は、２ビットが未使用になる。
【０００４】
半導体集積回路のチップコストは、チップサイズが大きくなるほど高くなる。チップサイズは、端子数の増加に依存して大きくなる。このため、未使用のアドレス端子を半導体集積回路上に形成することは、チップコストにとって不利である。すなわち、半導体集積回路の製品コストは、実際のアクセスでは使用しないアドレス端子の存在により増加してしまう。
【０００５】
さらに、従来のマイクロコンピュータでは、データ信号のバス幅が大きい半導体メモリがマイクロコンピュータに接続される場合に、上述の未使用のアドレス端子を利用して、容量のより大きい半導体メモリを接続することができない。
【０００６】
本発明の目的は、未使用のアドレス端子を無くすことで、半導体集積回路の製品コストを削減することにある。
【０００７】
本発明の別の目的は、アドレスの端子数を変えずに、異なる容量の半導体メモリをアクセスすることにある。
【課題を解決するための手段】
【０００８】
上記目的を達成するために本発明の一つの側面によれば、データ制御ユニットは、複数のデータ端子のうち所定数をモード信号に応じて有効にする。データ制御ユニットは、有効なデータ端子を介して外部メモリに対して外部データ信号を入出力するとともに、外部データ信号をコントローラに対して入出力するために、外部データ信号をコントローラに
対応するバス幅の内部データ信号に変換する。アドレス制御ユニットは、コントローラから出力される内部アドレス信号のうち所定数（固定値）のビットをモード信号に応じて選択し、外部メモリをアクセスするために、選択したビットで構成されるアドレス信号を外部アドレス信号として外部メモリに出力する。具体的には、アドレス制御ユニットは、外部データ信号のバス幅がモード信号に応じて順次増加されるときに、内部アドレス信号のうち上位側のビットを順次選択する。
【０００９】
データ信号のバス幅が増える場合に、外部アドレス信号として出力する内部アドレス信号のビットを、半導体集積回路内部で切り替えることで、未使用の外部アドレス端子が生じることを防止でき、使用しない外部アドレス端子により製品コストが増加することを防止できる。さらに、アクセス可能な外部メモリの容量を増加できる。すなわち、アドレスの端子数を変えずに、異なる容量の半導体メモリをアクセスできる。
【００１０】
上記側面において好ましい例では、モード信号は、外部データ信号のバス幅（２のｍ乗ビット）を示す信号である。アドレス制御ユニットは、内部アドレス信号の連続するｎビットを選択し、”ｍ”が１増加する毎に、選択する内部アドレス信号のビット群を１ビットずつ上位にずらす。このため、簡易な制御で外部アドレス信号として出力する内部アドレス信号を切り替えできる。
【００１１】
上記側面において好ましい例では、外部アドレス信号のビットにそれぞれ対応する複数のセレクタは、連続する複数ビットの内部アドレス信号のいずれかをモード信号に応じて選択する。このため、簡易な回路構成で外部アドレス信号として出力する内部アドレス信号を切り替えできる。
【００１２】
上記側面において好ましい例では、モード信号は、外部データ信号のバス幅（２のｍ乗ビット）を示す信号である。アドレス制御ユニットは、内部アドレス信号の連続するｎビットを選択し、”ｍ”が１増加する毎に、可変ビットの下位側ビットを固定ビットの最上位ビットに連続する上位側ビットに切り替える。ここで、ｎビットは、内部アドレス信号の所定のビットを常に外部アドレス信号として出力する固定ビットと、内部アドレス信号の互いに異なるビットのいずれかをモード信号に応じて選択し、選択したビットを外部アドレス信号として出力する可変ビットとで構成される。内部アドレス信号のビットの一部（固定ビット）を常に外部アドレス信号として出力することで、より簡易な制御で外部アドレス信号として出力する内部アドレス信号を切り替えできる。
【００１３】
上記側面において好ましい例では、少なくとも一つのセレクタは、外部アドレス信号の下位側のビットにそれぞれ対応し、２ビットの前記内部アドレス信号のいずれかを前記モード信号に応じて選択する。このため、最小限のセレクタにより外部アドレス信号として出力する内部アドレス信号を切り替えできる。
【００１４】
上記側面において好ましい例では、バス幅切替レジスタは、モード信号が示す論理値を保持する。データバスは、バス幅切替レジスタに保持される論理値をコントローラにより書き換えるために、コントローラから出力される書き換えデータをバス幅切替レジスタに伝達する。アドレス制御ユニットおよびデータ制御ユニットは、バス幅切替レジスタに保持されている論理値に応じて動作する。バス幅切替レジスタにモード信号を保持することで、モード信号の論理値をソフトウエアにより書き換えできる。このため、ユーザの仕様変更等にも容易に対応できる。
【００１５】
上記側面において好ましい例では、モード端子は、モード信号を半導体集積回路の外部から受ける。バス幅切替レジスタに保持される論理値は、コントローラにより書き換えられるまで、モード端子に供給されるモード信号に応じて設定される。このため、モード信
号の論理値をハードウエアだけでなく、ソフトウエアによっても設定できる。例えば、モード信号の初期値をハードウエアによりモード端子に供給し、必要に応じてバス幅切替レジスタに保持された初期値をソフトウエアにより書き換えることで、ユーザフレンドリなメモリシステムを構築できる。
【００１６】
上記側面において好ましい例では、プログラム回路は、予めプログラムされた所定の論理値に応じてモード信号を出力する。バス幅切替レジスタに保持される論理値は、コントローラにより書き換えられるまでプログラム回路から出力されるモード信号に応じて設定される。このため、モード信号の論理値（初期値）を半導体集積回路の製造工程において設定でき、その後、モード信号の論理値をユーザシステム上でソフトウエアによって書き換えできる。
【００１７】
上記側面において好ましい例では、モード端子は、モード信号を半導体集積回路の外部から受ける。このため、外部アドレス信号として使用する内部アドレス信号のビットを半導体集積回路の外部から容易に設定できる。
【００１８】
上記側面において好ましい例では、プログラム回路は、所定の論理値が予めプログラムされ、この論理値に応じてモード信号を出力する。このため、モード信号の論理値（初期値）を半導体集積回路の製造工程において設定できる。
【発明の効果】
【００１９】
本発明の半導体集積回路では、未使用の外部アドレス端子が生じることを防止でき、使用しない外部アドレス端子により製品コストが増加することを防止できる。さらに、アクセス可能な外部メモリの容量を増加できる。すなわち、アドレスの端子数を変えずに、異なる容量の半導体メモリをアクセスできる。
【発明を実施するための最良の形態】
【００２０】
以下、本発明の実施形態を図面を用いて説明する。図中の二重丸は、外部端子を示している。図中、太線で示した信号線は、複数本で構成されている。太線が接続されているブロックの一部は、複数の回路で構成されている。外部端子を介して供給される信号には、端子名と同じ符号を使用する。信号が伝達される信号線には、信号名と同じ符号を使用する。末尾に"X"の付く信号は、負論理を示している。
【００２１】
図１は、本発明の半導体集積回路の第１の実施形態を示している。この半導体集積回路は、ＣＰＵを内蔵するロジックＬＳＩとして形成されている。ロジックＬＳＩは、ＣＰＵコア１０（コントローラ）、バス幅切替レジスタ２０、アドレス制御ユニット３０およびデータ制御ユニット４０を有している。特に図示していないが、ロジックＬＳＩは、この他にもタイマ、シリアルインタフェース、Ａ／Ｄコンバータ等の周辺機能、および内蔵ＲＯＭ等を搭載している。
【００２２】
ＣＰＵコア１０は、内蔵ＲＯＭ、または外部端子を介して接続される外部メモリに書き込まれたプログラムを読み込み、実行することで動作する。ＣＰＵコア１０は、書き込み動作を実行するときに、内部アドレスバスおよび内部データバスに内部アドレス信号ＩＡ（ＩＡ０−１４）および内部データ信号ＩＤ（ＩＤ０−３１）をそれぞれ出力し、書き込み信号ＷＲ０Ｘ−ＷＲ３Ｘの少なくともいずれかを低レベルにアサートする。ＣＰＵコア１０は、読み出し動作を実行するときに、内部アドレス信号ＩＡ０−１４を出力し、読み出し信号ＲＤＸを低レベルにアサートする。
【００２３】
バス幅切替レジスタ２０は、モード端子で受けるモード信号ＭＤ（ＭＤ１−０）の論理レベルを保持し、保持しているレベルを内部モード信号ＩＭＤ（ＩＭＤ１−０）として出
力する。バス幅切替レジスタ２０は、内部アドレスバスＩＡおよび内部データバスＩＤに接続されており、メモリマップトＩ／Ｏとして割り当てられている。このため、ＣＰＵコア１０が内部アドレスバスＩＡにバス幅切替レジスタ２０を示すアドレス信号および内部書き込み信号ＩＷＲＸを出力し、内部データバスＩＤに所定の値（書き換えデータ）を出力することで、バス幅切替レジスタ２０に保持されている値は書き換えられる。また、ＣＰＵコア１０は、試験モード中等に、内部読み出し信号ＩＲＤＸを出力し、内部アドレスバスＩＡにバス幅切替レジスタ２０を示すアドレスを出力することで、バス幅切替レジスタ２０に保持されている値（バス幅の設定値）を内部データバスＩＡを介して読み出すことができる。バス幅切替レジスタ２０に保持される論理値は、ＣＰＵコア１０により書き換えられるまで、モード端子に供給されるモード信号ＭＤ１−０に応じて設定される。
【００２４】
アドレス制御ユニット３０は、バス幅切替レジスタ２０に保持されている論理値を示す内部モード信号ＩＭＤ１−０に応じて、ＣＰＵコア１０から供給される内部アドレス信号ＩＡ０−１４のうち連続する１２ビットを選択し、選択したビットを、外部アドレス信号ＡＤＤ（ＡＤＤ０−１１）としてアドレス端子に出力する。
【００２５】
データ制御ユニット４０は、読み出し動作中に、バス幅切替レジスタ２０に保持されている論理値を示す内部モード信号ＩＭＤ１−０に応じて、データ端子群ＤＴ０−７、ＤＴ８−１５、ＤＴ１６−２３、ＤＴ２４−３１、．．．、ＤＴ５６−６３にそれぞれ入力される外部データ信号（読み出しデータ）を、３２ビットの内部データ信号Ｄ０−３１に変換し、ＣＰＵコア１０に出力する。また、データ制御ユニット４０は、書き込み動作中に、内部モード信号ＩＭＤ１−０に応じて、ＣＰＵコア１０から出力される内部データ信号Ｄ０−３１（書き込みデータ）を、外部データ信号ＤＴ０−７、ＤＴ８−１５、ＤＴ１６−２３、ＤＴ２４−３１、．．．、ＤＴ５６−６３に振り分け、外部端子に出力する。
【００２６】
なお、モード信号ＭＤ１−０の論理が”００”、”０１”、”１０”、”１１”のとき、ロジックＬＳＩは、外部データ信号ＤＴのバス幅を８ビット、１６ビット、３２ビット、６４ビットにそれぞれ設定し、外部データ端子ＤＴ０−７、ＤＴ０−１５、ＤＴ０−３１、ＤＴ０−６３をそれぞれ有効にする。
【００２７】
図２は、図１に示したアドレス制御ユニット３０の詳細を示している。アドレス制御ユニット３０は、切替デコーダ４２および外部アドレス信号ＡＤＤ０−１１のビットにそれぞれ対応するセレクタ４４を有している。
【００２８】
切替デコーダ４２は、内部モード信号ＩＭＤ１−０のレベルに応じて、デコード信号ＤＥＣ０−３（ＤＥＣ）のいずれかを低レベルから高レベルに変化させる。例えば、内部モード信号ＩＭＤ１−０の論理が”００”、”０１”、”１０”、”１１”のとき、デコード信号ＤＥＣ０、ＤＥＣ１、ＤＥＣ２、ＤＥＣ３のみがそれぞれ高レベルに変化する。
【００２９】
各セレクタ４４は、４ビットの内部アドレス信号ＩＡ（例えば、ＩＡ１１−１４）のうち高レベルのデコード信号ＤＥＣに対応する１ビットを選択し、選択したビットを外部アドレス信号ＡＤＤとして出力する。対応する外部アドレス信号ＡＤＤのビットが互いに隣接するセレクタ４４が受ける内部アドレス信号ＩＡの４ビットのうち３ビットは、互いに重複している。
【００３０】
図３は、図２に示したアドレス制御ユニット３０の動作を示している。上述したように、モード信号ＭＤ１−０の論理が”００”、”０１”、”１０”、”１１”のとき、ロジックＬＳＩは、外部データ信号ＤＴのバス幅をそれぞれ８ビット（２の３乗ビット；１バイト）、１６ビット（２の４乗ビット；２バイト）、３２ビット（２の５乗ビット；４バイト）、６４ビット（２の６乗ビット；８バイト）に設定する。すなわち、モード信号Ｍ
Ｄ１−０は、外部データ信号ＤＴのバス幅（２のｍ乗ビット）を示す信号である。モード信号ＭＤ１−０の論理が”００”、”０１”、”１０”、”１１”のとき、ロジックＬＳＩは、１つのアドレスで、１バイト、２バイト、４バイト、８バイトのデータをそれぞれ読み書きする。
【００３１】
アドレス制御ユニット３０は、モード信号ＭＤ１−０の論理が”００”、”０１”、”１０”、”１１”のとき、１２ビットの内部アドレス信号ＩＡ１１−０、ＩＡ１２−１、ＩＡ１３−２、ＩＡ１４−３を外部アドレス信号ＡＤＤ１１−０としてそれぞれ出力する。このように、モード信号ＭＤ１−０に応じて外部データ信号ＤＴのバス幅が順次増加するときに、内部アドレス信号ＩＡのうち上位側のビットが順次選択される。より詳細には、アドレス制御ユニット３０は、内部アドレス信号ＩＡの連続する１２ビットを常に選択し、外部データ信号ＤＴの２のｍ乗ビットの”ｍ”が１増加する毎に、選択する内部アドレス信号ＩＡのビット群を１ビットずつ上位にずらす。
【００３２】
ロジックＬＳＩがアクセス可能なメモリ容量は、モード信号ＭＤ１−０の論理が”００”、”０１”、”１０”、”１１”のとき、それぞれ４ｋＢ（キロバイト）、８ｋＢ、１６ｋＢ、３２ｋＢになる。このように、外部データ信号ＤＴのバス幅が増えるときに、外部アドレスＡＤＤとして出力する内部アドレス信号ＩＡのビットを上位側にシフトすることで、未使用のアドレス端子を無くすことができ、さらに、アクセス可能なメモリ容量を増やすことができる。
【００３３】
図４は、第１の実施形態のロジックＬＳＩにＳＲＡＭ（外部メモリ）を接続する例を示している。この例では、１２ビットのアドレス端子（４ｋのアドレス空間）と８ビット（１バイト）のデータ端子とを有する４ｋバイトのＳＲＡＭ５０が、システム基板上でロジックＬＳＩに接続されている。ＳＲＡＭのアドレス端子およびデータ端子は、ロジックＬＳＩのアドレス端子ＡＤＤ０−１１およびデータ端子ＤＴ０−７に接続される。このとき、システム基板は、”論理００”のモード信号ＭＤ１−０をロジックＬＳＩに常時供給する。このため、ロジックＬＳＩは、有効な外部データ信号ＤＴのバス幅が８ビット（ＤＴ０−７）であると認識して動作する。アドレス制御ユニット３０は、モード信号ＭＤ１−０に応じて、ＣＰＵコア１０から出力される内部アドレス信号ＩＡ０−１１をアドレス信号ＡＤＤ０−１１として出力する。なお、未使用のデータ端子ＤＴ８−６３は、例えばポート端子等として使用される。
【００３４】
ＣＰＵコア１０は、ＳＲＡＭからデータを読み出すときに、読み出し信号ＲＤＸをアサートし、ＳＲＡＭにデータを書き込むときに、書き込み信号ＷＲ０Ｘをアサートする。読み出し動作および書き込み動作は、ともに８ビット単位で実行される。
【００３５】
図５は、第１の実施形態のロジックＬＳＩに別のＳＲＡＭ（外部メモリ）を接続する例を示している。この例では、１２ビットのアドレス端子（４ｋのアドレス空間）と１６ビット（４バイト）のデータ端子とを有する８ｋバイトのＳＲＡＭ５２が、システム基板上でロジックＬＳＩに接続されている。ＳＲＡＭのアドレス端子およびデータ端子は、ロジックＬＳＩのアドレス端子ＡＤＤ０−１１およびデータ端子ＤＴ０−１５に接続される。このとき、システム基板は、”論理０１”のモード信号ＭＤ１−０をロジックＬＳＩに常時供給する。このため、ロジックＬＳＩは、有効な外部データ信号ＤＴのバス幅が１６ビット（ＤＴ０−１５）であると認識して動作する。アドレス制御ユニット３０は、モード信号ＭＤ１−０に応じて、ＣＰＵコア１０から出力される内部アドレス信号ＩＡ１−１２をアドレス信号ＡＤＤ０−１１として出力する。なお、未使用のデータ端子ＤＴ１６−６３は、例えばポート端子等として使用される。
【００３６】
ＣＰＵコア１０は、ＳＲＡＭからデータを読み出すときに、読み出し信号ＲＤＸをアサ
ートし、１６ビット単位で読み出し動作を実行する。また、ＣＰＵコア１０は、ＳＲＡＭにデータを書き込むときに、書き込み信号ＷＲ０Ｘ、ＷＲ１Ｘの少なくともいずれかをアサートする。書き込み動作は、書き込み信号ＷＲ０Ｘ、ＷＲ１Ｘの一方がアサートされたときに、８ビット単位で実行され、書き込み信号ＷＲ０Ｘ、ＷＲ１Ｘの両方が同時にアサートされたときに、１６ビット単位で実行される。
【００３７】
図６は、第１の実施形態のロジックＬＳＩに別のＳＲＡＭ（外部メモリ）を接続する例を示している。この例では、１２ビットのアドレス端子（４ｋのアドレス空間）と３２ビット（４バイト）のデータ端子とを有する１６ｋバイトのＳＲＡＭ５４が、システム基板上でロジックＬＳＩに接続されている。ＳＲＡＭのアドレス端子およびデータ端子は、ロジックＬＳＩのアドレス端子ＡＤＤ０−１１およびデータ端子ＤＴ０−３１に接続される。このとき、システム基板は、”論理１０”のモード信号ＭＤ１−０をロジックＬＳＩに常時供給する。このため、ロジックＬＳＩは、有効な外部データ信号ＤＴのバス幅が３２ビット（ＤＴ０−３１）であると認識して動作する。アドレス制御ユニット３０は、モード信号ＭＤ１−０に応じて、ＣＰＵコア１０から出力される内部アドレス信号ＩＡ２−１３をアドレス信号ＡＤＤ０−１１として出力する。なお、未使用のデータ端子ＤＴ３２−６３は、例えばポート端子等として使用される。
【００３８】
ＣＰＵコア１０は、ＳＲＡＭからデータを読み出すときに、読み出し信号ＲＤＸをアサートし、３２ビット単位で読み出し動作を実行する。また、ＣＰＵコア１０は、ＳＲＡＭにデータを書き込むときに、書き込み信号ＷＲ０Ｘ〜ＷＲ３Ｘの少なくともいずれかをアサートする。書き込み動作は、例えば、書き込み信号ＷＲ０Ｘ〜ＷＲ３Ｘのいずれかがアサートされたときに、８ビット単位で実行され、全ての書き込み信号ＷＲ０Ｘ〜ＷＲ３Ｘが同時にアサートされたときに、３２ビット単位で実行される。
【００３９】
図７は、第１の実施形態のロジックＬＳＩに別のＳＲＡＭ（外部メモリ）を接続する例を示している。この例では、１２ビットのアドレス端子（４ｋのアドレス空間）と６４ビット（８バイト）のデータ端子とを有する３２ｋバイトのＳＲＡＭ５６が、システム基板上でロジックＬＳＩに接続されている。ＳＲＡＭのアドレス端子およびデータ端子は、ロジックＬＳＩのアドレス端子ＡＤＤ０−１１およびデータ端子ＤＴ０−６３に接続される。このとき、システム基板は、”論理１１”のモード信号ＭＤ１−０をロジックＬＳＩに常時供給する。このため、ロジックＬＳＩは、有効な外部データ信号ＤＴのバス幅が６４ビット（ＤＴ０−６３）であると認識して動作する。アドレス制御ユニット３０は、モード信号ＭＤ１−０に応じて、ＣＰＵコア１０から出力される内部アドレス信号ＩＡ３−１４をアドレス信号ＡＤＤ０−１１として出力する。
【００４０】
ＣＰＵコア１０は、ＳＲＡＭからデータを読み出すときに、読み出し信号ＲＤＸをアサートし、６４ビット単位で読み出し動作を実行する。また、ＣＰＵコア１０は、ＳＲＡＭにデータを書き込むときに、書き込み信号ＷＲ０Ｘ〜ＷＲ３Ｘの少なくともいずれかをアサートする。書き込み動作は、例えば、書き込み信号ＷＲ０Ｘ〜ＷＲ３Ｘのいずれかがアサートされたときに、１６ビット単位で実行され、全ての書き込み信号ＷＲ０Ｘ〜ＷＲ３Ｘが同時にアサートされたときに、６４ビット単位で実行される。すなわち、書き込み動作の最小単位は１６ビットである。上述した図４〜図６と同様に、書き込み動作の最小単位を８ビットにする場合、８本の書き込み信号ＷＲＸを出力可能なＣＰＵコアを用いればよい。
【００４１】
以上、本実施形態では、データ信号ＤＴのバス幅が増える場合に、外部アドレス信号ＡＤＤとして出力する内部アドレス信号ＩＡのビットを、ロジックＬＳＩ内部で切り替えるため、未使用の外部アドレス端子ＡＤＤが生じることを防止できる。この結果、使用しない外部アドレス端子ＡＤＤによりロジックＬＳＩのチップコストが増加することを防止で
きる。さらに、アクセス可能な外部メモリの容量を増加できる。
【００４２】
簡易なセレクタ４４により、外部データ信号のバス幅（２のｍ乗ビット）の”ｍ”が１増加する毎に、選択する内部アドレス信号ＩＡのビット群を１ビットずつ上位にずらすことができる。すなわち、簡易な制御で外部アドレス信号ＡＤＤとして出力する内部アドレス信号ＩＡを切り替えできる。
【００４３】
バス幅切替レジスタ２０に保持されたモード信号ＭＤ１−０の論理を、ＣＰＵコア１０により書き換えできる。すなわち、モード信号ＭＤ１−０の論理値をソフトウエアにより容易に書き換えでき、ユーザの仕様変更等にも容易に対応できる。また、バス幅切替レジスタ２０に保持されたモード信号ＭＤ１−０の論理を、ＣＰＵコア１０により読み出すことができる。このため、例えば、ロジックＬＳＩの試験工程等でバス幅切替レジスタ２０の動作試験を容易に実施できる。
【００４４】
モード信号ＭＤ１−０を受けるモード端子を形成することで、モード信号ＭＤ１−０の論理値をハードウエアにより初期設定できる。例えば、モード信号ＭＤ１−０の初期値をロジックＬＳＩが搭載されるシステム基板からモード端子に供給し、必要に応じてバス幅切替レジスタ２０に保持された初期値をＣＰＵコア１０が実行するソフトウエアにより書き換えることで、ユーザフレンドリなメモリシステムを構築できる。
【００４５】
図８は、本発明の半導体集積回路の第２の実施形態を示している。第１の実施形態で説明した要素と同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。この実施形態の半導体集積回路は、ＣＰＵを内蔵するロジックＬＳＩとして形成されている。
【００４６】
ロジックＬＳＩは、第１の実施形態のロジックＬＳＩのアドレス制御ユニット３０の代わりにアドレス制御ユニット３０Ａを有している。その他の構成は、第１の実施形態とほぼ同じである。アドレス制御ユニット３０Ａは、第１の実施形態のアドレス制御ユニット３０と同様に、内部アドレス信号ＩＡ０−１４および内部モード信号ＩＭＤ１−０を受け、外部アドレス信号ＡＤＤ０−１１を出力する。
【００４７】
図９は、図８に示したアドレス制御ユニット３０Ａの詳細を示している。アドレス制御ユニット３０Ａは、切替デコーダ４６および外部アドレス信号ＡＤＤ０、ＡＤＤ１、ＡＤＤ２にそれぞれ対応するセレクタ４８を有している。１５ビットの内部アドレス信号ＩＡ０−１４は、外部アドレス信号ＡＤＤ３−１１として常に出力される固定ビットＩＡ３−１１と、モード信号ＭＤ１−０に応じて切り替えられ、セレクタ４８から外部アドレス信号ＡＤＤ０−２として出力される可変ビットＩＡ０／１２、ＩＡ１／１３、ＩＡ２／１４とで構成される。
【００４８】
切替デコーダ４６は、内部モード信号ＩＭＤ１−０のレベルに応じて、所定の論理レベルの選択信号ＳＥＬ（ＳＥＬ０−３）を出力する。選択信号ＳＥＬ０は、外部アドレス信号ＡＤＤ０を出力するセレクタ４８に供給される。選択信号ＳＥＬ１は、外部アドレス信号ＡＤＤ１を出力するセレクタ４８に供給される。選択信号ＳＥＬ２は、外部アドレス信号ＡＤＤ２を出力するセレクタ４８に供給される。選択信号ＳＥＬ３は、この実施形態では使用されない。
【００４９】
各セレクタ４８は、固定ビットＩＡ３−１１より下位側のビットＩＡ０（またはＩＡ１−２）と固定ビットＩＡ３−１１より上位側のビットＩＡ１２（またはＩＡ１３−１４）とを受け、選択信号ＳＥＬの論理レベルに応じて受けた内部アドレス信号ＩＡＤのいずれかを外部アドレス信号ＡＤＤとして出力する。例えば、図の中央のセレクタ４８は、選択
信号ＳＥＬ１が高レベルのとき、内部アドレス信号ＩＡＤ１を選択し、選択した信号を外部アドレス信号ＡＤＤ１として出力する。
【００５０】
図１０は、図９に示したアドレス制御ユニット３０Ａの動作を示している。モード信号ＭＤ１−０の論理値と外部データ信号ＤＴのバス幅との関係は、第１の実施形態と同じである。切替デコーダ４６は、モード信号ＭＤ１−０の論理が００、０１、１０、１１のとき、選択信号ＳＥＬ２−０を、それぞれ”ＨＨＨ”、”ＨＨＬ”、”ＨＬＬ”、”ＬＬＬ”に設定する。
【００５１】
モード信号ＭＤ１−０が”論理００”のとき、内部アドレス信号ＩＡ２−０が外部アドレス信号ＡＤＤ２−０として出力される。モード信号ＭＤ１−０が”論理０１”のとき、内部アドレス信号ＩＡ２−１、１２が外部アドレス信号ＡＤＤ２−０として出力される。モード信号ＭＤ１−０が”論理１０”のとき、内部アドレス信号ＩＡ２、１３、１２が外部アドレス信号ＡＤＤ２−０として出力される。モード信号ＭＤ１−０が”論理１１”のとき、内部アドレス信号ＩＡ１４、１３、１２が外部アドレス信号ＡＤＤ２−０として出力される。
【００５２】
このように、セレクタ４８は、内部アドレス信号ＩＡの互いに異なるビットＩＡ２／ＩＡ１４、ＩＡ１／ＩＡ１３、ＩＡ０／ＩＡ１２のいずれかを、モード信号ＭＤ１−０に応じて出力する。換言すれば、セレクタ４８は、外部データ信号ＤＴの２のｍ乗ビットの”ｍ”が１増加する毎に（例えば、８ビットから１６ビット）、可変ビットの下位ビット（例えば、ＩＡ０）を固定ビットの最上位ビットＩＡ１１に連続する上位ビット（例えば、ＩＡ１２）に切り替える。外部アドレス端子ＡＤＤ２−０は、内部アドレス信号ＩＡ２／ＩＡ１４、ＩＡ１／ＩＡ１３、ＩＡ０／ＩＡ１２の兼用端子としてそれぞれ機能する。
【００５３】
ロジックＬＳＩがアクセス可能なメモリ容量は、第１の実施形態と同じであり、モード信号ＭＤ１−０の論理が００、０１、１０、１１のとき、それぞれ４ｋＢ（キロバイト）、８ｋＢ、１６ｋＢ、３２ｋＢである。このように、この実施形態では、最小限の数のセレクタ４８により、内部アドレス信号ＩＡのビットと外部アドレスＡＤＤのビットの対応付けの変更が可能である。
【００５４】
この実施形態においても、上述した第１の実施形態と同様の効果を得ることができる。さらに、この実施形態では、内部アドレス信号ＩＡのビットを固定ビットＩＡ１１−３と可変ビットＩＡ０／１２、ＩＡ１／１３、ＩＡ２／１４とで構成し、可変ビットのみに対応するセレクタ４８を形成する。このため、最小限の数のセレクタ４８により、外部アドレス信号ＡＤＤとして出力する内部アドレス信号ＩＡを切り替えできる。この結果、ロジックＬＳＩのチップサイズを小さくできる。
【００５５】
図１１は、本発明の半導体集積回路の第３の実施形態を示している。第１の実施形態で説明した要素と同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。この実施形態の半導体集積回路は、ＣＰＵを内蔵するロジックＬＳＩとして形成されている。
【００５６】
この実施形態のロジックＬＳＩは、第１の実施形態のロジックＬＳＩのバス幅切替レジスタ２０を有していない。このため、モード端子を介して受信するモード信号ＭＤ１−０は、アドレス制御ユニット３０およびデータ制御ユニット４０に直接供給される。換言すれば、ロジックＬＳＩのデータバスの幅は、ロジックＬＳＩを搭載するシステム基板により設定される。その他の構成は、第１の実施形態と同じである。
【００５７】
この実施形態においても、上述した第１の実施形態と同様の効果を得ることができる。
さらに、この実施形態では、モード端子ＭＤにより、モード信号ＭＤ１−０の論理値をロジックＬＳＩの外部から容易に設定できる。
【００５８】
図１２は、本発明の半導体集積回路の第４の実施形態を示している。第１の実施形態で説明した要素と同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。この実施形態の半導体集積回路は、ＣＰＵを内蔵するロジックＬＳＩとして形成されている。
【００５９】
ロジックＬＳＩは、第１の実施形態のロジックＬＳＩのバス幅切替レジスタ２０の代わりにバス幅切替レジスタ２０Ｃを有している。その他の構成は、第１の実施形態とほぼ同じである。バス幅切替レジスタ２０Ｃは、ロジックＬＳＩの外部端子に接続されておらず、ＣＰＵコア１０のみによって読み書き可能である。換言すれば、ロジックＬＳＩのデータバスの幅は、ＣＰＵコア１０が実行するプログラムにより設定される。具体的には、ロジックＬＳＩのパワーオンリセット直後、データバスの幅は、８ビットに設定されている（デフォルト値）。ＣＰＵコア１０は、パワーオンリセット後のパワーオンシーケンス中に、データバスの幅を示すデータを外部メモリ等から読み込み、このデータをバス幅切替レジスタ２０Ｃに書き込む。
【００６０】
この実施形態においても、上述した第１の実施形態と同様の効果を得ることができる。
【００６１】
図１３は、本発明の半導体集積回路の第５の実施形態を示している。第１の実施形態で説明した要素と同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。この実施形態の半導体集積回路は、ＣＰＵを内蔵するロジックＬＳＩとして形成されている。
【００６２】
ロジックＬＳＩは、第１の実施形態のモード信号ＭＤ１−０を受ける外部端子の代わりに、ヒューズ回路２０Ｄを有している。その他の構成は、第１の実施形態とほぼ同じである。ヒューズ回路２０Ｄは、図示しない一組のヒューズとヒューズのプログラム状態に応じて論理１または論理０をモード信号ＭＤ１−０として出力する制御回路とを有している。ヒューズ回路２０Ｄが出力するモード信号ＭＤ１−０の論理レベルは、ヒューズのプログラム状態に応じて、ロジックＬＳＩのパワーオンリセット期間に設定される。ヒューズ回路２０Ｄは、ロジックＬＳＩの製造工程においてプログラムされる。
【００６３】
この実施形態においても、上述した第１の実施形態と同様の効果を得ることができる。さらに、この実施形態では、モード信号ＭＤ１−０の論理値（初期値）を半導体集積回路の製造工程において設定できる。
【００６４】
なお、上述した第５実施形態では、バス幅切替レジスタ２０Ｄが、ヒューズ回路２０Ｄから出力されるモード信号ＭＤ１−０の論理値を保持する例について述べた。本発明はかかる実施形態に限定されるものではない。第１の実施形態と同様に、バス幅切替レジスタに保持される論理値をＣＰＵコア１０により読み書き可能にしてもよい。この場合、モード信号ＭＤ１−０の論理値（初期値）をロジックＬＳＩの製造工程において設定でき、その後、モード信号ＭＤ１−０の論理値をロジックＬＳＩおよび半導体メモリが搭載されるユーザシステム上でソフトウエアによって書き換えできる。
【００６５】
以上の実施形態において説明した発明を整理して、付記として開示する。
（付記１）
外部メモリをアクセスするための内部アドレス信号を出力するコントローラと、
複数のデータ端子のうち所定数をモード信号に応じて有効にし、有効なデータ端子を介して前記外部メモリに対して外部データ信号を入出力するとともに、前記外部データ信号
を前記コントローラに対して入出力するために、前記外部データ信号を前記コントローラに対応するバス幅の内部データ信号に変換するデータ制御ユニットと、
前記内部アドレス信号のうち連続する所定数（固定値）のビットを前記モード信号に応じて選択し、選択したビットで構成されるアドレス信号を外部アドレス信号として前記外部メモリに出力するアドレス制御ユニットとを備え、
前記アドレス制御ユニットは、前記外部データ信号のバス幅が前記モード信号に応じて順次増加するときに、前記内部アドレス信号のうち上位側のビットを順次選択することを特徴とする半導体集積回路。
【００６６】
（付記２）
付記１記載の半導体集積回路において、
前記モード信号は、前記外部データ信号のバス幅（２のｍ乗ビット）を示す信号であり、
前記アドレス制御ユニットは、前記内部アドレス信号の連続するｎビットを選択し、前記”ｍ”が１増加する毎に、選択する前記内部アドレス信号のビット群を１ビットずつ上位にずらすことを特徴とする半導体集積回路。
（付記３）
付記２記載の半導体集積回路において、
連続する複数ビットの前記内部アドレス信号のいずれかを前記モード信号に応じて選択し、前記外部アドレス信号のビットにそれぞれ対応する複数のセレクタを備えていることを特徴とする半導体集積回路。
【００６７】
（付記４）
付記３記載の半導体集積回路において、
前記外部アドレス信号のビットが互いに隣接する前記セレクタが受ける前記内部アドレス信号のビットの一部は、重複していることを特徴とする半導体集積回路。
（付記５）
付記１記載の半導体集積回路において、
前記モード信号は、前記外部データ信号のバス幅（２のｍ乗ビット）を示す信号であり、
前記アドレス制御ユニットは、前記内部アドレス信号の連続するｎビット（固定値）を選択し、前記ｎビットは、前記内部アドレス信号の所定のビットを常に前記外部アドレス信号として出力する固定ビットと、前記内部アドレス信号の互いに異なるビットのいずれかを前記モード信号に応じて選択し、選択したビットを前記外部アドレス信号として出力する可変ビットとで構成され、前記”ｍ”が１増加する毎に、前記可変ビットの下位側ビットを前記固定ビットの最上位ビットに連続する上位側ビットに切り替えることを特徴とする半導体集積回路。
【００６８】
（付記６）
付記５記載の半導体集積回路において、
前記外部アドレス信号の下位側のビットにそれぞれ対応し、２ビットの前記内部アドレス信号のいずれかを前記モード信号に応じて選択する少なくとも一つのセレクタを備えていることを特徴とする半導体集積回路。
（付記７）
付記６記載の半導体集積回路において、
各セレクタは、前記固定ビットより下位側のビットと前記固定ビットより上位側のビットとを受けることを特徴とする半導体集積回路。
【００６９】
（付記８）
付記１記載の半導体集積回路において、
前記モード信号が示す論理値を保持するバス幅切替レジスタと、
前記バス幅切替レジスタに保持される論理値を前記コントローラにより書き換えるために、前記コントローラから出力される書き換えデータを前記バス幅切替レジスタに伝達するデータバスとを備え、
前記アドレス制御ユニットおよび前記データ制御ユニットは、前記バス幅切替レジスタに保持されている論理値に応じて動作することを特徴とする半導体集積回路。
（付記９）
付記８記載の半導体集積回路において、
前記モード信号を半導体集積回路の外部から受けるモード端子を備え、
前記バス幅切替レジスタに保持される論理値は、前記コントローラにより書き換えられるまで前記モード端子に供給される前記モード信号に応じて設定されることを特徴とする半導体集積回路。
【００７０】
（付記１０）
付記８記載の半導体集積回路において、
前記バス幅切替レジスタに保持される論理値を前記コントローラにより読み出すために、前記論理値を前記コントローラに伝達するデータバスを備えていることを特徴とする半導体集積回路。
（付記１１）
付記８記載の半導体集積回路において、
所定の論理値が予めプログラムされ、この論理値に応じて前記モード信号を出力するプログラム回路を備え、
前記バス幅切替レジスタに保持される論理値は、前記コントローラにより書き換えられるまで前記プログラム回路から出力される前記モード信号に応じて設定されることを特徴とする半導体集積回路。
【００７１】
（付記１２）
付記１記載の半導体集積回路において、
前記モード信号を半導体集積回路の外部から受けるモード端子を備えていることを特徴とする半導体集積回路。
（付記１３）
付記１記載の半導体集積回路において、
所定の論理値が予めプログラムされ、この論理値に応じて前記モード信号を出力するプログラム回路を備えていることを特徴とする半導体集積回路。
【００７２】
以上、本発明について詳細に説明してきたが、上記の実施形態およびその変形例は発明の一例に過ぎず、本発明はこれに限定されるものではない。本発明を逸脱しない範囲で変形可能であることは明らかである。
【図面の簡単な説明】
【００７３】
【図１】本発明の半導体集積回路の第１の実施形態を示すブロック図である。
【図２】図１に示したアドレス制御ユニットの詳細を示すブロック図である。
【図３】図２に示したアドレス制御ユニットの動作を示す説明図である。
【図４】第１の実施形態のロジックＬＳＩにＳＲＡＭを接続する例を示すブロック図である。
【図５】第１の実施形態のロジックＬＳＩに別のＳＲＡＭを接続する例を示すブロック図である。
【図６】第１の実施形態のロジックＬＳＩに別のＳＲＡＭを接続する例を示すブロック図である。
【図７】第１の実施形態のロジックＬＳＩに別のＳＲＡＭを接続する例を示すブロック図である。
【図８】本発明の半導体集積回路の第２の実施形態を示すブロック図である。
【図９】図８に示したアドレス制御ユニットの詳細を示すブロック図である。
【図１０】図９に示したアドレス制御ユニットの動作を示す説明図である。
【図１１】本発明の半導体集積回路の第３の実施形態を示すブロック図である。
【図１２】本発明の半導体集積回路の第４の実施形態を示すブロック図である。
【図１３】本発明の半導体集積回路の第５の実施形態を示すブロック図である。
【符号の説明】
【００７４】
１０  ＣＰＵコア
２０、２０Ｃ  バス幅切替レジスタ
２０Ｄ  ヒューズ回路
３０、３０Ａ  アドレス制御ユニット
４０  データ制御ユニット
４２  切替デコーダ
４４  セレクタ
４６  切替デコーダ
４８  セレクタ
５０、５２、５４、５６  ＳＲＡＭ
ＡＤＤ  外部アドレス信号
ＤＴ０−６３  外部データ信号
ＩＡ０−１４  内部アドレス信号
ＩＤ０−３１  内部データ信号
ＩＭＤ０−１  内部モード信号
ＲＤＸ  読み出し信号
ＷＲ０Ｘ−ＷＲ３Ｘ  書き込み信号
【図１】
2005228205.tif 000003
【図２】
2005228205.tif 000004
【図３】
2005228205.tif 000005
【図４】
2005228205.tif 000006
【図５】
2005228205.tif 000007
【図６】
2005228205.tif 000008
【図７】
2005228205.tif 000009
【図８】
2005228205.tif 000010
【図９】
2005228205.tif 000011
【図１０】
2005228205.tif 000012
【図１１】
2005228205.tif 000013
【図１２】
2005228205.tif 000014
【図１３】
2005228205.tif 000015