(57)【特許請求の範囲】
【請求項１】
コンピュータによって実行され、メモリ容量が予め決められたメモリマクロが設定されたチップ上に、メモリインスタンスを割り当てる半導体集積回路の設計方法において、
１つのメモリマクロに対して、動作周波数が同一の複数のメモリインスタンスを割り当てるステップと、
第１クロック信号の周波数を逓倍した第２クロック信号を前記複数のメモリインスタンスに出力する逓倍器を配置するステップと、
前記複数のメモリインスタンスのうちアクティブとなるメモリインスタンスを、前記第１クロック信号に同期して選択する制御回路を配置するステップと、
を具備する半導体集積回路の設計方法。
【請求項２】
請求項１に記載の半導体集積回路の設計方法において、
前記複数のメモリインスタンスを割り当てるステップは、前記複数のメモリインスタンスに、共通のアドレス信号線を設定するステップを備え、
前記制御回路を配置するステップは、前記複数のメモリインスタンスの各々に対するアドレス信号を前記第１クロック信号に同期して選択し、前記アドレス信号線に出力する入力制御回路を配置するステップを備える
半導体集積回路の設計方法。
【請求項３】
請求項２に記載の半導体集積回路の設計方法において、
前記複数のメモリインスタンスを割り当てるステップは、
前記複数のメモリインスタンスとして、第１メモリインスタンスと第２メモリインスタンスとを割り当てるステップと、
前記第１メモリインスタンスに対し、前記メモリマクロにおける上位ビット側のデータ信号線を割り当てるステップと、
前記第２メモリインスタンスに対し、前記メモリマクロにおける下位ビット側のデータ信号線を割り当てるステップと、
を備える半導体集積回路の設計方法。
【請求項４】
請求項２に記載の半導体集積回路の設計方法において、
前記複数のメモリインスタンスを割り当てるステップは、
前記複数のメモリインスタンスとして、第１メモリインスタンスと第２メモリインスタンスとを割り当てるステップと、
前記第１メモリインスタンスと前記第２メモリインスタンスに対し、共通のデータ信号線を割り当てるステップと、
前記第１メモリインスタンスに対し、上位側のワード線を割り当てるステップと、
前記第２メモリインスタンスに対し、下位側のワード線を割り当てるステップと、
前記第１クロック信号が入力されるアドレス信号線を前記第１メモリインスタンスと前記第２メモリインスタンスに割り当てるステップと、
を備え、
前記アドレス信号線に入力される第１クロック信号に同期してアクティブとなるワード線が切り替えられる
半導体集積回路の設計方法。
【請求項５】
請求項１から４のいずれか１項に記載の半導体集積回路の設計方法において、
前記制御回路を配置するステップは、前記複数のメモリインスタンスの各々から出力されたデータ信号を、前記第１クロック信号に同期して読み出す出力制御回路を配置するステップを備える
半導体集積回路の設計方法。
【請求項６】
請求項１から５のいずれか１項に記載の半導体集積回路の設計方法をコンピュータに実行させる半導体集積回路の設計プログラム。
【請求項７】
動作周波数が同一の複数のインスタンスが割り当てられた１つのメモリマクロに対応し、前記複数のインスタンスに対応する複数のメモリ領域を有するメモリと、
第１クロック信号の周波数を逓倍した第２クロック信号を前記複数のメモリ領域に出力する逓倍器と、
前記複数のメモリ領域においてアクティブとなるデータ信号線を、前記第１クロック信号に同期して選択する制御回路と、
を具備する半導体集積回路。
【請求項８】
請求項７に記載の半導体集積回路において、
前記複数のメモリ領域は、共通のアドレス信号線に接続され、
前記制御回路は、前記複数のメモリ領域の各々に対するアドレス信号を前記第１クロック信号に同期して選択し、前記アドレス信号線に出力する入力制御回路備える
半導体集積回路。
【請求項９】
請求項８に記載の半導体集積回路において、
前記複数のメモリ領域は、第１メモリ領域と第２メモリ領域とを含み、
前記第１メモリ領域は、前記メモリマクロにおける上位ビット側のデータ信号線に接続され、
前記第２メモリ領域は、前記メモリマクロにおける下位ビット側のデータ信号線に接続される
半導体集積回路。
【請求項１０】
請求項８に記載の半導体集積回路において、
前記複数のメモリ領域は、共通のデータ信号線に接続される第１メモリ領域と第２メモリ領域とを含み、
前記第１メモリ領域は、上位側のワード線に接続され、
前記第２メモリ領域は、下位側のワード線に接続され、
前記第１メモリ領域と前記第２メモリ領域は、前記第１クロック信号が入力されるアドレス信号線に共通接続され、
前記メモリは、前記アドレス信号線に入力される第１クロック信号に同期して、アクティブとなるワード線を切り替える
半導体集積回路。
【請求項１１】
請求項７から１０のいずれか１項に記載の半導体集積回路、
前記制御回路は、前記複数のメモリ領域の各々から出力されたデータ信号を、前記第１クロック信号に同期して読み出す出力制御回路を備える
半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリマクロを備える半導体集積回路、その設計方法、及び設計プログラムに関する。
【背景技術】
【０００２】
ストラクチャードＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）やＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）などでは、チップ上に搭載するメモリインスタンスの数、チップ全体のメモリ容量（メモリサイズ）、メモリインスタンス毎（に対応するメモリセルアレイ）のメモリ容量（メモリサイズ）は、予め製品毎に決められた値が設定されている。
【０００３】
セルベースＩＣやゲートアレイなどの一般的なＡＳＩＣでは、回路構成上必要なメモリマクロがチップ上にアサインされる場合、メモリインスタンス（メモリセルアレイに利用されるメモリ領域）はメモリマクロに対して１対１でアサインされることが一般的である。また、大規模なメモリマクロをチップ上にアサインする際、小規模な複数のメモリマクロに分割し、周辺回路を付加して複数のインスタンスをアサインすることも一般的な回路技術として知られている。この場合、複数の小規模メモリマクロが複数のインスタンスに１対１でアサインされることとなる。
【０００４】
例えば、５１２Ｗ＊３２ｂ（ワード線５１２本、データ線３２ビット）のメモリマクロが１０個搭載されたチップの場合、回路構成上５１２Ｗ＊１６ｂ以下のＲＡＭを最大１０個搭載することができる。すなわち、このチップにアサイン可能なメモリインスタンス毎のメモリ容量は、最大５１２Ｗ＊１６ｂ、アサイン可能なメモリインスタンス数は最大１０となる。
【０００５】
一方、特開２００５−０８５３４４号公報や特開平０７−０８４９８７号公報には、倍速クロックを用いてメモリマクロのポート数が拡張された半導体集積回路が記載されている（特許文献１、２参照）。
【特許文献１】特開２００５−０８５３４４号公報
【特許文献２】特開平０７−０８４９８７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
図１、図２Ａ及び図２Ｂを参照して、ユーザからの要望に応じた半導体記憶装置を作成する場面について説明する。一例として、図１に示すように、チップ上のメモリマクロ配置領域１００に、５１２Ｗ＊３２ｂのメモリマクロＭ１、Ｍ２が２つ設定されている製品について説明する。
【０００７】
従来技術では、１つのメモリマクロに対してアサイン可能なメモリインスタンスは１つである。このため、メモリマクロＭ１、Ｍ２にアサイン可能なメモリインスタンスの数は合計２個となる。この場合、３つ以上のメモリインスタンスを２つのメモリマクロＭ１、Ｍ２にアサインすることができない。又、メモリマクロのメモリサイズは、メモリマクロ毎に設定されている。図１の例では、メモリマクロＭ１、Ｍ２のそれぞれに設定されたメモリサイズは５１２Ｗ＊３２ｂであり、このメモリサイズより大きいメモリインスタンスをメモリマクロＭ１、Ｍ２に割り当てることはできない。ただし、メモリマクロが５１２Ｗ＊３２ｂより小さい２つのメモリマクロに分割可能である場合、分割された２つのメモリマクロをメモリインスタンスＩ１、Ｉ２に割り当てることは可能である。
【０００８】
一方、ユーザからは、様々な回路構成のメモリマクロをチップ上に搭載することが要求される。回路構成上５１２Ｗ＊３２ｂのメモリが２つ搭載されたチップ（製品）が要求された場合は問題ないが、インスタンスに設定値とは異なるメモリサイズのメモリや、設定されたメモリマクロ数より多い数のメモリを搭載したチップが所望される場合が多々ある。例えば、回路構成上５１２Ｗ＊１６ｂのメモリを２個搭載した半導体集積回路が要求される場合がある。このような要求に対し、従来では図２Ａに示すように、メモリマクロＭ１、Ｍ２のそれぞれに５１２Ｗ＊１６ｂのメモリインスタンスＩＩ１、Ｉ２がアサインされる。この場合、メモリマクロＭ１、Ｍ２のそれぞれ、５１２Ｗ＊１６ｂに相当する領域Ｒ１、Ｒ２が使用されずに残る。すなわち、チップ上に搭載可能なメモリ容量の約半分（ここでは、５１２Ｗ＊３２ｂ）の領域が、メモリとして使用できない領域となる。
【０００９】
又、ユーザから回路構成上、２５６Ｗ＊３２ｂのメモリを２個搭載した半導体集積回路が要求された場合、図２Ｂに示すように、メモリマクロＭ１、Ｍ２のそれぞれに２５６Ｗ＊３２ｂのメモリインスタンスＩＩ３、Ｉ４がアサインされた半導体集積回路が提供される。この場合、メモリインスタンスＩ１、Ｉ２のそれぞれに、２５６Ｗ＊３２ｂに相当する領域Ｒ３、Ｒ４が使用されずに残る。すなわち、図２Ａに示す例と同様にチップ上に搭載可能なメモリ容量の約半分（ここでは、５１２Ｗ＊３２ｂ）の領域が、メモリとして使用できない領域となる。
【００１０】
このように、従来技術では、５１２Ｗ＊３２ｂのメモリマクロを配置可能な領域がチップ上に存在していても、この領域を効率良く回路構成上のメモリマクロに利用することができない。更に、全てのメモリマクロにメモリインスタンスをアサインした場合、回路構成上のメモリマクロを追加できる領域があってもインスタンス不足によりメモリセルを追加することができない。このため、ユーザが更なる３つめのメモリマクロの追加を希望しても、従来技術では、その要求に応じた半導体集積回路を提供することができない。
【課題を解決するための手段】
【００１１】
以下に、［発明を実施するための最良の形態］で使用される番号・符号を括弧付きで用いて、［課題を解決するための手段］を説明する。この番号・符号は、［特許請求の範囲］の記載と［発明を実施するための最良の形態］の記載との対応関係を明らかにするために付加されたものであるが、［特許請求の範囲］に記載されている発明の技術的範囲の解釈に用いてはならない。
【００１２】
本発明による半導体集積回路の設計方法は、コンピュータによって実行され、メモリ容量が予め決められたメモリマクロが設定されたチップ上に、メモリインスタンスを割り当てる。本発明による半導体集積回路の設計方法は、１つのメモリマクロ（１０１）に対して、動作周波数が同一の複数のメモリインスタンス（Ｉ１０、Ｉ２０）を割り当てるステップと、第１クロック信号（ＣＬＫｘ１）の周波数を逓倍した第２クロック信号（ＣＬＫｘ２）を複数のメモリインスタンス（Ｉ１０、Ｉ２０）に出力する逓倍器（１０３）を配置するステップと、複数のメモリインスタンス（Ｉ１０、Ｉ２０）のうちアクティブとなるメモリインスタンスを、第１クロック信号（ＣＬＫｘ１）に同期して選択する制御回路（１０４、１０５）を配置するステップとを具備する。
【００１３】
このように、動作クロックを逓倍し、第１クロック信号（ＣＬＫｘ１）に同期して動作領域を選択することで、複数のインスタンス（Ｉ１０、Ｉ２０）を１つのメモリマクロ（１０１）に割り当てることができる。
【００１４】
本発明による半導体集積回路（１）は、メモリ（１０１）と、逓倍器（１０３）と、制御回路とを具備する。メモリ（１０１）は、複数のインスタンス（Ｉ１０、Ｉ２０）に対応する複数のメモリ領域を有する。逓倍器（１０３）は、第１クロック信号（ＣＬＫｘ１）の周波数を逓倍した第２クロック信号（ＣＬＫｘ２）を複数のメモリ領域に出力する。制御回路は、複数のメモリ領域においてアクティブとなるデータ信号線を、第１クロック信号に同期して選択する。
【００１５】
このように、メモリ（１０１）は、逓倍器（１０３）によって逓倍された第２クロック信号（ＣＬＫ２）によって動作し、第１クロック信号（ＣＬＫｘ１）に同期して動作領域が選択される。これにより、複数のインスタンス（Ｉ１０、Ｉ２０）を１つのメモリマクロ（１０１）に割り当てた半導体集積回路（１）が実現される。
【００１６】
本発明による半導体集積回路の設計方法は、コンピュータによって実行される半導体集積回路設計プログラムによって実現されることが好ましい。
【発明の効果】
【００１７】
本発明による半導体集積回路設計方法、半導体集積回路設計プログラム、及び半導体集積回路によれば、メモリマクロ配置領域を効率的に使用してメモリを配置することができる。
【発明を実施するための最良の形態】
【００１８】
以下、添付図面を参照して、本発明による半導体チップ１、及び半導体集積回路設計装置１０の実施の形態を説明する。本実施の形態では、半導体集積回路設計装置１０としてストラクチャードＡＳＩＣの設計を行う半導体集積設計装置を一例に説明する。尚、図面において同一、又は類似の参照符号は、同一、類似、又は等価な構成要素を示している。
【００１９】
図３を参照して、本発明による半導体集積回路設計装置１０の実施の形態における構成を説明する。図３は、本発明による半導体集積回路設計装置１０の実施の形態における構成図である。図３を参照して、半導体集積回路設計装置１０は、バス１６を介して相互に接続されるＣＰＵ１１と、ＲＡＭ１２と、記憶装置１３と、入力装置１４と、出力装置１５とを具備する。記憶装置１３はハードディスクやメモリ等の外部記憶装置である。又、入力装置１４は、キーボードやマウス等のユーザによって操作されることで、各種データをＣＰＵ１１や記憶装置１３に出力する。出力装置１５は、モニタやプリンタに例示され、ＣＰＵ１１から出力される回路解析の結果をユーザに対し視認可能に出力する。
【００２０】
ＣＰＵ１１は、入力装置１４からの入力に応答して、記憶装置１３内の半導体集積回路設計プログラム２３を実行し、回路設計処理（ここでは、メモリマクロの配置処理）を行う。この際、記憶装置１３からの各種データやプログラムはＲＡＭ１２に一時格納され、ＣＰＵ１１は、ＲＡＭ１２内のデータを用いて各種処理を実行する。
【００２１】
記憶装置１３は、制御回路配置用データ２１、メモリマクロ配置用データ２２、半導体集積回路設計プログラム２３を格納している。制御回路配置用データ２１は、周辺装置マクロや、周辺装置領域１１０を指定する位置データ等を含み、後述する入力制御回路１０４や、出力制御回路１０５等の周辺装置マクロを周辺装置領域１１０に配置するために用いられる。メモリマクロ配置用データ２２は、メモリマクロや、メモリマクロ配置領域１００を指定する位置データを含み、ＲＡＭ等に例示されるメモリマクロ１０１をメモリマクロ配置領域１００に配置するために用いられる。
【００２２】
半導体集積回路設計プログラム２３は、ＣＰＵ１１によって実行されることで、設計対象の半導体集積回路１（以下、半導体チップ１と称す）上に設定されたメモリマクロ１０１にインスタンスをアサインする機能を有する。メモリマクロ及びインスタンスは、ハードウェア記述言語（Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ  ：  ＨＤＬ）で記述される。
【００２３】
従来技術では、１つのメモリマクロに対し１つのメモリインスタンスがアサインされているが、本発明による半導体集積回路設計装置１０は、１つのメモリマクロに対し複数のメモリインスタンスをアサインすることができる。半導体集積回路設計装置１０は、以下の実施の形態で示すようにメモリマクロ１０１、及び周辺回路マクロ（逓倍器１０３、入力制御回路１０４、出力制御回路１０５）を設定することで、メモリマクロに対する複数のメモリインスタンスの割り当てを実現する。以下では、１つのメモリマクロに対し２つのメモリインスタンスがアサインされる半導体チップ１、及びその設計方法について、２つの実施の形態によって説明する。
【００２４】
図４は、本発明による半導体集積回路設計装置１０によって設計された半導体チップ１の平面図である。半導体チップ１は、周囲に外部電極に接続するパッドを有する半導体基板上に、メモリマクロ配置領域１００と周辺装置配置領域１０１とが設定される。メモリマクロ配置領域１００には、メモリマクロ１０１が配置され、周辺装置配置領域１１０には、逓倍器１０３、入力制御回路１０４、出力制御回路１０５が設けられる。
【００２５】
逓倍器１０３は、入力されるクロック信号ＣＬＫｘ１の周波数を逓倍（例えば２逓倍）してクロック信号ＣＬＫｘ２としてメモリマクロ１０１に出力する。以下に示す実施の形態では２逓倍のクロック信号ＣＬＫが出力されるものとして説明する。逓倍器１０３は、半導体チップ１上の他の領域に設けられた逓倍器（他の機能マクロにおける逓倍器）でも構わない。あるいは、メモリマクロ１０１に入力される逓倍されたクロック信号ＣＬＫｘ２は、パッドを介して外部から入力されたクロック信号でも構わない。
【００２６】
入力制御回路１０４は、入力されるクロック信号ＣＬＫｘ１に同期して、入力されるデータ信号ＤＩ、アドレス信号ＡＤ、チップセレクト信号ＣＥＮ、及びコマンド信号を、メモリマクロ１０１にアサインされた複数のメモリインスタンス（１つでも良い）のそれぞれに選択的に出力する。以下に示す実施の形態では、ライトコマンドに応じて出力されたライトイネーブル信号ＷＥＮがコマンド信号として入力される。
【００２７】
メモリマクロ１０１は、少なくとも１つのメモリインスタンスによってアサインされ、逓倍器１０３で逓倍されたクロック信号ＣＬＫｘ２に同期してデータの書き込み・読み出し・消去が行われる。この際、メモリインスタンス毎に、入力制御回路１０４から選択的に出力されたデータ信号ＤＩ、アドレス信号ＡＤ、チップセレクト信号ＣＥＮ、及びコマンド信号に応じてデータの書き込み・読み出し・消去が行われる。
【００２８】
出力制御回路１０５は、入力されるクロック信号ＣＬＫ×１及びコマンド信号（例えばライトイネーブル信号ＷＥＮ）に応じてメモリマクロ１０１から出力されるデータ信号ＤＯの出力周期を変更する。出力制御回路１０５は、クロック信号ＣＬＫｘ２に同期してメモリマクロ１０１から読み出されたデータをクロック信号ＣＬＫｘ１に同期して外部に取り出す。
【００２９】
１．第１の実施の形態
図５から図８を参照して、本発明による半導体チップ１の第１の実施の形態を説明する。本実施の形態における半導体チップ１は、メモリサイズが５１２Ｗ＊３２ｂのメモリマクロＭ１、Ｍ２が設定されたメモリマクロ配置領域１００を備えるものとする。
【００３０】
図５は、メモリマクロ配置領域１００に設定されたメモリマクロＭ１、Ｍ２と、メモリマクロＭ１にアサインされるメモリインスタンスＩ１０、Ｉ２０を示す概念図である。第１の実施の形態では、１つのメモリマクロＭ１（メモリマクロ１０１）に、メモリサイズが５１２Ｗ＊１６ｂである２つのメモリインスタンスＩ１０、Ｉ２０がアサインされることで、回路構成上のメモリが形成される。図５を参照して、第１の実施の形態におけるメモリマクロ１０１は、５１２Ｗ＊３２ｂのメモリサイズに相当するメモリセルアレイを備え、そのメモリセルアレイの上位ビット側（０から１５ビット）がメモリインスタンスＩ１０、下位ビット側（１６から３１ビット）がメモリインスタンスＩ２０に割り当てられる。
【００３１】
次に、メモリマクロＭ１（メモリマクロ１０１）に割り当てられるメモリインスタンスＩ１０、２０について説明する。メモリインスタンスＩ１０には、データ信号ＤＩ＿Ａ［１５：０］、及びアドレス信号ＡＤ＿Ａ［８：０］が入力される。データ信号ＤＩ＿Ａ［１５：０］は、メモリマクロ１０１における上位ビットのデータ入力信号線ＤＩ［１５：０］に入力され、アドレス信号ＡＤ＿Ａ［８：０］によって指定されたアドレスに書き込まれる。又、アドレス信号ＡＤ＿Ａ［８：０］で指定されたアドレスからデータ信号ＤＯ＿Ａ［１５：０］が読み出される。
【００３２】
一方、メモリインスタンスＩ２０には、データ信号ＤＩ＿Ｂ［１５：０］、及びアドレス信号ＡＤ＿Ｂ［８：０］が入力される。データ信号ＤＩ＿Ｂ［１５：０］は、メモリマクロ１０１における下位ビットのデータ入力信号線ＤＩ［３１：１６］に入力され、アドレス信号ＡＤ＿Ｂ［８：０］によって指定されたアドレスに書き込まれる。又、アドレス信号ＡＤ＿Ｂ［８：０］で指定されたアドレスからデータ信号ＤＯ＿Ｂ［３１：１６］が読み出される。
【００３３】
第１の実施の形態では、アドレス信号ＡＤ＿Ａ［８：０］とアドレス信号ＤＩ＿Ｂ［８：０］は、入力制御回路１０４によって選択的にメモリマクロ１０１に入力される。このため、入力されるデータ信号ＤＩ＿Ａ［１５：０］とデータ信号ＤＩ＿Ｂ［１５：０］も選択的にメモリマクロ１０１に書き込まれる。又、メモリ１０１から出力されるデータ信号ＤＩ＿Ａ［１５：０］とデータ信号ＤＩ＿Ｂ［１５：０］は、出力制御回路１０５によって選択的に外部装置（図示なし）に出力される。
【００３４】
このように本実施の形態では、１つのメモリマクロＭ１（メモリマクロ１０１）に２つのメモリインスタンスＩ１０、Ｉ２０がアサインされる。図６は、第１の実施の形態におけるメモリマクロ１０１と、周辺回路マクロ（逓倍器１０３、入力制御回路１０４、出力制御回路１０５）の構成の詳細を示すブロック図である。図６を参照して、１つのメモリマクロに２つのインスタンスをアサインするためのメモリマクロ１０１と周辺回路マクロの構成の詳細を説明する。
【００３５】
入力制御回路１０４は、セレクタ１１１、１１２、ＡＮＤ回路１１３、１１４を備える。データ信号ＤＩは、上位ビット側のデータ入力信号線ＤＩ［１５：０］に入力されるデータ信号ＤＩ＿Ａ［１５：０］と、下位ビット側のデータ入力信号線ＤＩ［３１：１６］に入力されるデータ信号ＤＩ＿Ｂ［１５：０］とを含む。アドレス信号ＡＤは、セレクタ１１１を介してアドレス信号線ＤＩ［８：０］に入力されるアドレス信号ＡＤ＿Ａ［８：０］とアドレス信号ＡＤ＿Ｂ［８：０］とを含む。チップセレクト信号ＣＥＮは、セレクタ１１２を介してチップセレクト信号線ＣＥＮに入力されるチップセレクト信号ＣＥＮ＿Ａとチップセレクト信号ＣＥＮ＿Ｂとを含む。ライトイネーブル信号ＷＥＮは、ＡＮＤ回路１１３を介して上位ビット側のライトイネーブル信号線ＷＥＮ［１５：０］に入力されるライトイネーブル信号ＷＥＮ＿Ａ［１５：０］と、下位ビット側のライトイネーブル信号線ＷＥＮ［３１：１６］に入力されるライトイネーブル信号ＷＥＮ＿Ｂ［１５：０］とを含む。
【００３６】
セレクタ１２１は、入力されるアドレス信号ＡＤ＿Ａ［８：０］とアドレス信号ＡＤ＿Ｂ［８：０］のどちらか一方をクロック信号ＣＬＫｘ１に応じて選択してメモリマクロ１０１のアドレス信号線ＡＤ［８：０］に出力する。詳細には、セレクタ１１１は、クロック信号ＣＬＫｘ１の立ち上がりに応じてアドレス信号ＡＤ＿Ｂ［８：０］を選択し、立ち下りに応じてアドレス信号ＡＤ＿Ａ［８：０］を選択してアドレス信号線ＡＤ［８：０］に出力する。
【００３７】
セレクタ１１２は、メモリインスタンスＩ１０を選択するチップセレクタ信号ＣＥＮ＿Ａと、メモリインスタンスＩ２０を選択するチップセレクタ信号ＣＥＮ＿Ｂのどちらか一方をクロック信号ＣＬＫｘ１に応じて選択し、メモリマクロ１０１のチップセレクト信号線ＣＥＮに出力する。詳細には、セレクタ１１２は、クロック信号ＣＬＫｘ１の立ち上がりに応じてチップセレクタ信号ＣＥＮ＿Ｂを選択し、立ち下りに応じてチップセレクト信号ＣＥＮ＿Ａ選択してチップセレクト信号線ＣＥＮに出力する。
【００３８】
ＡＮＤ回路１１３は、メモリインスタンスＩ１０に対応するライトイネーブル信号ＷＥＮ＿Ａ［１５：０］とクロック信号ＣＬＫｘ１の反転信号との論理積を、メモリマクロ１０１における上位ビットのライトイネーブル信号ＷＥＮ［１５：０］線に入力する。ＡＮＤ回路１１４は、メモリインスタンスＩ２０に対応するライトイネーブル信号ＷＥＮ＿Ｂ［１５：０］とクロック信号ＣＬＫｘ１との論理積を、メモリマクロ１０１における下位ビットのライトイネーブル信号ＷＥＮ［３１：１６］に入力する。
【００３９】
逓倍器１０３は、入力されるクロック信号ＣＬＫｘ１を２逓倍したクロック信号ＣＬＫｘ２を、メモリマクロ１０１の制御クロックＣＬＫとして入力する。
【００４０】
出力制御回路１０５は、ＡＮＤ回路１１５、１１７、ラッチ回路１１６、１１８を備える。ラッチ回路１１６は、メモリマクロ１０１における上位ビットのデータ出力信号線ＤＯ［１５：０］とＡＮＤ回路１１５とに接続される。ラッチ回路１１６は、ＡＮＤ回路１１５からの出力、すなわちイネーブル信号ＷＥＮ＿Ａ［１５：０］とクロック信号ＣＬＫｘ１との論理積に応じて、データ出力信号線ＤＯ［１５：０］からのデータ信号ＤＯ＿Ａ［１５：０］をラッチする。又、メモリマクロ１０１から読み出したデータを確実にラッチするため、ＡＮＤ回路１１５と、ラッチ回路１１６との間に遅延回路を挿入しても良い。
【００４１】
ラッチ回路１１８は、メモリマクロ１０１における下位ビットのデータ出力信号線ＤＯ［３１：１６］とＡＮＤ回路１１７とに接続される。ラッチ回路１１８は、ＡＮＤ回路１１７からの出力、すなわちイネーブル信号ＷＥＮ＿Ｂ［１５：０］とクロック信号ＣＬＫｘ１との論理積に応じて、データ出力信号線ＤＯ［３１：１６］からのデータ信号ＤＯ＿Ｂ［１５：０］をラッチする。又、メモリマクロ１０１から読み出したデータを確実にラッチするため、ＡＮＤ回路１１７と、ラッチ回路１１８との間に遅延回路を挿入しても良い。
【００４２】
以上のように、メモリインスタンスＩ１０は、上位ビット側のデータ入力信号線ＤＩ［１５：０］及びデータ出力信号線ＤＯ［１５：０］によってデータの書き込み及び読み出しが行われる。又、メモリインスタンスＩ２０は、下位ビット側のデータ入力信号線ＤＩ［３１：１６］及びデータ出力信号線ＤＯ［３１：１６］によってデータの書き込み及び読み出しが行われる。又、メモリインスタンスＩ１０、Ｉ２０は、共通のアドレス信号線ＡＤ［８：０］を、クロック信号ＣＬＫｘ１に同期して交互に使用する。この際、メモリマクロ１０１に対するデータの書き込み、読み出しは、逓倍されたクロック信号ＣＬＫｘ２に同期して行われる。
【００４３】
ライト動作において、データ信号ＤＩは、クロック信号ＣＬＫｘ２に同期してメモリマクロ１０１内のメモリインスタンスＩ１０、Ｉ２０に交互に書き込まれる。又、メモリインスタンスＩ１０、Ｉ２０内のデータは、逓倍されたクロック信号ＣＬＫｘ２に同期して交互に出力され、出力制御回路１０５から、クロック信号ＣＬＫｘ１に同期して交互に読み出される。図７及び図８を参照して、図６に示すメモリマクロ１０１及び周辺回路マクロの動作の詳細を説明する。
【００４４】
図７は、第１の実施の形態におけるメモリマクロ１０１へのライト動作における入力動作を示すタイミングチャートである。図７を参照して、第１の実施の形態におけるメモリマクロ１０１への入力動作の詳細を説明する。ここで、クロック信号ＣＬＫｘ１は時刻Ｔ１において立ち上がり、時刻Ｔ２において立ち下がるものとする。
【００４５】
時刻Ｔ１において、クロック信号ＣＬＫｘ１の立ち上がりに応答して、チップセレクト信号ＣＥＮ＿Ｂとアドレス信号ＡＤ＿Ｂ［８：０］がメモリマクロ１０１に入力される。これにより、メモリインスタンスＩ２０の入力信号（データ信号線Ｄ［３１：１６］）における所定のアドレスがアクティブとなる。この際、下位ビット側のライトイネーブル信号線ＷＥＮ［３１：１６］に入力されるＷＥＮ＿Ｂ［１５：０］によって、メモリインスタンスＩ２０が書き込み可能となる。
【００４６】
時刻Ｔ２において、クロック信号ＣＬＫｘ２の立ち上がりに応答して、チップセレクト信号ＣＥＮ＿Ａとアドレス信号ＡＤ＿Ａ［８：０］がメモリマクロ１０１に入力される。これにより、メモリインスタンスＩ１０の入力信号（データ信号線Ｄ［１５：０］）における所定のアドレスがアクティブとなる。この際、上位ビット側のライトイネーブル信号線ＷＥＮ［１５：０］に入力されるＷＥＮ＿Ａ［１５：０］によって、メモリインスタンスＩ１０が書き込み可能となる。
【００４７】
メモリマクロ１０１では、逓倍されたクロック信号ＣＬＫｘ２に同期してデータ入力信号線ＤＩ［１５：０］、ＤＩ［３１：１６］に入力されるデータ信号ＤＩが交互に書き込まれる。ここでは、クロック信号ＣＬＫｘ２の立ち上がりに同期して、書き込み可能となったデータ入力信号線ＤＩ［３１：１６］に入力されたデータ信号ＤＩ＿Ｂ［１５：０］が、メモリインスタンスＩ２０スに書き込まれる（時刻Ｔ１）。又、クロック信号ＣＬＫｘ２の立ち下がりに応答して、書き込み可能となったデータ入力信号線ＤＩ［１５：０］に入力されたデータ信号ＤＩ＿Ａ［１５：０］が、メモリインスタンスＩ１０に書き込まれる（時刻Ｔ２）。
【００４８】
以上のように、クロック信号ＣＬＫｘ２に同期してメモリインスタンスＩ１０、２０にデータ（ライトデータ）が交互に書き込まれる。
【００４９】
図８は、メモリマクロ１０１からデータを読み出す動作を示すタイミングチャートである。図８を参照して、メモリマクロ１０１からの出力動作の詳細を説明する。ここで、クロック信号ＣＬＫｘ１は時刻Ｔ３において立ち上がり、時刻Ｔ４において立ち下がるものとする。
【００５０】
時刻Ｔ３において、クロック信号ＣＬＫｘ１の立ち上がりに応答して、チップセレクト信号ＣＥＮ＿Ｂとアドレス信号ＡＤ＿Ｂ［８：０］がメモリマクロ１０１に入力される。これにより、メモリインスタンスＩ２０の出力信号（データ出力信号線ＤＯ［３１：１６」）における所定のアドレスがアクティブとなる。この際、下位ビット側のライトイネーブル信号線ＷＥＮ［３１：１６］に入力されるＷＥＮ＿Ｂ［１５：０］によって、メモリインスタンスＩ２０が読み出し可能となる。
【００５１】
時刻Ｔ４において、クロック信号ＣＬＫｘ１の立ち下がりに応答して、チップセレクト信号ＣＥＮ＿Ａとアドレス信号ＡＤ＿Ａ［８：０］がメモリマクロ１０１に入力される。これにより、メモリインスタンスＩ１０の出力信号（データ出力信号線ＤＯ［１５：０」）における所定のアドレスがアクティブとなる。この際、上位ビット側のライトイネーブル信号線ＷＥＮ［１５：０］に入力されるＷＥＮ＿Ａ［１５：０］によって、メモリインスタンスＩ１０が読み出し可能となる。
【００５２】
メモリマクロ１０１からは、逓倍されたクロック信号ＣＬＫｘ２に同期して、データ出力信号線ＤＯ［１５：０］、ＤＯ［３１：１６］からデータ信号が交互に読み出される。ここでは、クロック信号ＣＬＫｘ２の立ち上がりに同期して、読み出し可能となったデータ出力信号線ＤＯ［３１：１６］からメモリインスタンスＩ２０内のデータ（データ信号ＤＯ＿Ｂ［１５：０］）が出力される（時刻Ｔ２）。又、クロック信号ＣＬＫｘ２の立ち下がりに同期して、読み出し可能となったデータ出力信号線ＤＯ［１５：０］からメモリインスタンスＩ１０内のデータ（データ信号ＤＯ＿Ａ［１５：０］）が出力される（時刻Ｔ４）。
【００５３】
時刻Ｔ３において、ラッチ１１８は、ＡＮＤ回路１１７の出力、すなわち、クロック信号ＣＬＫｘ１の立ち上がりに応じて、読み出し可能となったデータ出力信号線ＤＯ［３１：１６］から出力されるデータ信号ＤＯ＿Ｂ［１５：０］をラッチし、外部装置（図示なし）に出力する。又、時刻Ｔ４において、ラッチ１１６は、ＡＮＤ回路１１５の出力、すなわち、クロック信号ＣＬＫｘ１の立ち下がりに応じて、読み出し可能となったデータ出力信号線ＤＯ［１５：０］から出力されるデータ信号ＤＯ＿Ａ［１５：０］をラッチし、外部装置（図示なし）に出力する。
【００５４】
以上のように、クロック信号ＣＬＫｘ２に同期してメモリインスタンスＩ１０、Ｉ２０から交互に読み出されたデータ（リードデータ）は、クロック信号ＣＬＫｘ１に同期して出力制御回路１０５から外部装置（図示なし）に出力される。
【００５５】
以上のように、共通のクロック信号ＣＬＫｘ１に応じてアクティブにするメモリマクロを選択する選択回路（入力制御回路１０４）と逓倍されたクロック信号ＣＬＫｘ２によって動作するメモリマクロ１０１とによって、同一のインスタンスに複数のメモリマクロをアサインすることが可能となる。
【００５６】
第１の実施の形態では、図５に示すように、メモリマクロＭ１（５１２Ｗ＊３２ｂ）に２つのメモリインスタンスＩ１０、Ｉ２０（２５６Ｗ＊１６ｂ×２）をアサインすることができるため、メモリマクロＭ２（５１２Ｗ＊３２ｂ）の全てが利用可能となる。このため、従来技術に比べて、インスタンスを効率良く割り当てることができ、メモリマクロを有効に活用することができる。
【００５７】
２．第２の実施の形態
図９から図１２を参照して、本発明による半導体チップ１の第２の実施の形態を説明する。本実施の形態における半導体チップ１は、第１の実施の形態と同様に、メモリサイズが５１２Ｗ＊３２ｂのメモリマクロＭ１、Ｍ２が設定されたメモリマクロ配置領域１００を備えるものとする。
【００５８】
図９は、メモリマクロ配置領域１００に設定されたメモリマクロＭ１、Ｍ２と、メモリマクロＭ１にアサインされるメモリインスタンスＩ３０、Ｉ４０を示す概念図である。第２の実施の形態では、１つのメモリマクロＭ１（メモリマクロ１０１）に、メモリサイズが２５６Ｗ＊３２ｂである２つのメモリインスタンスＩ３０、Ｉ４０がアサインされることで、回路構成上のメモリが形成される。図９を参照して、第２の実施の形態におけるメモリマクロ１０１は、５１２Ｗ＊３２ｂのメモリサイズに相当するメモリセルアレイを備え、そのメモリセルアレイの上位側のワード線（２５６Ｗ）がメモリインスタンスＩ３０、下位側のワード線（２５６Ｗ）がメモリインスタンスＩ４０にそれぞれ割り当てられる。
【００５９】
次に、メモリマクロＭ１（メモリマクロ１０１）に割り当てられるメモリインスタンスＩ１０、２０について説明する。メモリインスタンスＩ３０には、入力制御装置１０４によって選択されたデータ信号ＤＩ＿Ａ［３１：０］、及びアドレス信号ＡＤ＿Ａ［７：０］が入力される。データ信号ＤＩ＿Ａ［３１：０］は、メモリマクロ１０１のデータ入力信号線ＤＩ［３１：０］に入力され、アドレス信号ＡＤ＿Ａ［７：０］によって指定されたアドレスに書き込まれる。又、アドレス信号ＡＤ＿Ａ［７：０］で指定されたアドレスからデータ信号ＤＯ＿Ａ［３１：０］が読み出される。
【００６０】
一方、メモリインスタンスＩ４０には、入力制御装置１０４によって選択されたデータ信号ＤＩ＿Ｂ［３１：０］、及びアドレス信号ＡＤ＿Ｂ［７：０］が入力される。データ信号ＤＩ＿Ｂ［３１：０］は、メモリマクロ１０１のデータ入力信号線ＤＩ［３１：０］に入力され、アドレス信号ＡＤ＿Ｂ［７：０］によって指定されたアドレスに書き込まれる。又、アドレス信号ＡＤ＿Ｂ［７：０］で指定されたアドレスからデータ信号ＤＯ＿Ｂ［３１：０］が読み出される。
【００６１】
第２の実施の形態では、データ信号ＤＩ＿Ａ［３１：０］及びアドレス信号ＡＤ＿Ａ［８：０］と、データ信号ＤＩ＿Ｂ［３１：０］及びアドレス信号ＤＩ＿Ｂ［８：０］とが、入力制御回路１０４によって選択的にメモリマクロ１０１に入力される。このため、入力されるデータ信号ＤＩ＿Ａ［３１：０］とデータ信号ＤＩ＿Ｂ［３１：０］は、選択的にメモリマクロに書き込まれる。又、メモリマクロ１０１から出力されるデータ信号ＤＩ＿Ａ［１５：０］とデータ信号ＤＩ＿Ｂ［１５：０］は、出力制御回路１０５によって選択的に外部装置（図示なし）に出力される。
【００６２】
このように本実施の形態では、１つのメモリマクロＭ１（メモリマクロ１０１）にアサインされたメモリインスタンスＩ３０、Ｉ４０がアサインされる。図１０は、第２の実施の形態におけるメモリマクロ１０１と、周辺回路マクロ（逓倍器１０３、入力制御回路１０４、出力制御回路１０５）の構成の詳細を示すブロック図である。図１０を参照して、第２の実施の形態におけるメモリマクロ１０１と周辺回路マクロの構成の詳細を説明する。
【００６３】
入力制御回路１０４は、セレクタ１２１、１２２、１２３、１２４を備える。データ信号ＤＩは、セレクタ１２１を介してデータ入力信号線ＤＩ［３１：０］に入力されるデータ信号ＤＩ＿Ａ［３１：０］とデータ信号ＤＩ＿Ｂ［３１：０］とを含む。アドレス信号ＡＤは、セレクタ１２２を介してアドレス信号線ＤＩ［７：０］に入力されるアドレス信号ＡＤ＿Ａ［７：０］とアドレス信号ＡＤ＿Ｂ［７：０］とを含む。チップセレクト信号ＣＥＮは、セレクタ１２３を介してチップセレクト信号線ＣＥＮに入力されるチップセレクト信号ＣＥＮ＿Ａとチップセレクト信号ＣＥＮ＿Ｂとを含む。ライトイネーブル信号ＷＥＮは、セレクタ１２４を介してライトイネーブル信号線ＷＥＮ［３１：０］に入力されるライトイネーブル信号ＷＥＮ＿Ａ［３１：０］とライトイネーブル信号ＷＥＮ＿Ｂ［３１：０］とを含む。
【００６４】
セレクタ１２１は、入力されるデータ信号ＤＩ＿Ａ［３１：０］とデータ信号ＤＩ＿Ｂ［３１：０］のどちらか一方をクロック信号ＣＬＫｘ１に応じて選択してメモリマクロ１０１のデータ入力信号線ＤＩ［３１：０］に出力する。詳細には、セレクタ１２１は、クロック信号ＣＬＫｘ１の立ち上がりに応じてデータ信号ＤＩ＿Ｂ［３１：０］を選択し、立ち下りに応じてデータ信号ＤＩ＿Ａ［３１：０］を選択してデータ入力信号線ＤＩ［３１：０］に出力する。
【００６５】
セレクタ１２２は、入力されるアドレス信号ＡＤ＿Ａ［７：０］とアドレス信号ＡＤ＿Ｂ［７：０］のどちらか一方をクロック信号ＣＬＫｘ１に応じて選択してメモリマクロ１０１のアドレス信号線ＡＤ［７：０］に出力する。詳細には、セレクタ１２２は、クロック信号ＣＬＫｘ１の立ち上がりに応じてアドレス信号ＡＤ＿Ｂ［７：０］を選択し、立ち下りに応じてアドレス信号ＡＤ＿Ａ［７：０］を選択してアドレス信号線ＡＤ［７：０］に出力する。
【００６６】
セレクタ１２３は、メモリインスタンスＩ３０を選択するチップセレクタ信号ＣＥＮ＿Ａと、メモリインスタンスＩ４０を選択するチップセレクタ信号ＣＥＮ＿Ｂのどちらか一方をクロック信号ＣＬＫｘ１に応じて選択し、メモリマクロ１０１のチップセレクト信号線ＣＥＮに出力する。詳細には、セレクタ１２３は、クロック信号ＣＬＫｘ１の立ち上がりに応じてチップセレクタ信号ＣＥＮ＿Ｂを選択し、立ち下りに応じてチップセレクト信号ＣＥＮ＿Ａ選択してチップセレクト信号線ＣＥＮに出力する。
【００６７】
セレクタ１２４は、入力されるライトイネーブル信号ＷＥＮ＿Ａ［３１：０］とライトイネーブル信号ＷＥＮ＿Ｂ［３１：０］のどちらか一方をクロック信号ＣＬＫｘ１に応じて選択してメモリマクロ１０１のライトイネーブル信号線ＷＥＮ［３１：０］に出力する。詳細には、セレクタ１２４は、クロック信号ＣＬＫｘ１の立ち上がりに応じてライトイネーブル信号ＷＥＮ＿Ｂ［３１：０］を選択し、立ち下りに応じてライトイネーブル信号ＷＥＮ＿Ａ［３１：０］を選択してライトイネーブル信号線ＷＥＮ［３１：０］に出力する。
【００６８】
逓倍器１０３は、入力されるクロック信号ＣＬＫｘ１を２逓倍したクロック信号ＣＬＫｘ２を、メモリマクロ１０１の制御クロックＣＬＫとして入力する。又、クロック信号ＣＬＫｘ１は、メモリマクロ１０１における最上位のアドレス信号線ＡＤ８に入力される。このため、メモリマクロ１０１における５１２Ｗのうち、上位側ワード線２５６Ｗと下位側ワード線２５６Ｗの一方をクロック信号ＣＬＫｘ１に同期して交互に選択することができる。
【００６９】
出力制御回路１０５は、ＡＮＤ回路１２５、１２７、１２９、１３１、フリップフロップ回路（Ｆ／Ｆ）１２６、１３０、ラッチ回路１２８、１３８を備える。
【００７０】
ＡＮＤ回路１２５は、メモリインスタンスＩ３０に対応するライトイネーブル信号ＷＥＮ＿Ａ［３１：０］、クロック信号ＣＬＫｘ１の反転信号、及びクロック信号ＣＬＫｘ２の論理積をＦ／Ｆ１２６に出力する。Ｆ／Ｆ回路１２６は、メモリマクロ１０１のデータ出力信号線ＤＯ［３１：０］とＡＮＤ回路１２５とに接続される。Ｆ／Ｆ１２６は、ＡＮＤ回路１１５からの出力に応じて、データ出力信号線ＤＯ［３１：０］からのデータ信号をラッチ回路１２８に出力する。すなわち、Ｆ／Ｆ１２６は、クロック信号ＣＬＫｘ１の反転信号に同期してデータ出力信号線ＤＯ［３１：０」からのデータ信号ＤＯ＿Ａ［３１：０］を読み出し、ラッチ回路１２８に出力する。
【００７１】
ＡＮＤ回路１２７は、メモリインスタンスＩ３０に対応するライトイネーブル信号ＷＥＮ＿Ａ［３１：０］とクロック信号ＣＬＫｘ１との論理積をラッチ回路１２８に出力する。ラッチ回路１２８は、Ｆ／Ｆ１２６とＡＮＤ回路１２７に接続され、ＡＮＤ回路１２７からの出力信号に応じてＦ／Ｆ１２６から出力されるデータ信号ＤＯ＿Ａ［３１：０］をラッチする。又、Ｆ／Ｆ１２６で読み出したデータを確実にラッチするため、ＡＮＤ回路１２７と、ラッチ回路１２８との間に遅延回路を挿入しても良い。
【００７２】
ＡＮＤ回路１２９は、メモリインスタンスＩ４０に対応するライトイネーブル信号ＷＥＮ＿Ａ［３１：０］、クロック信号ＣＬＫｘ１、及びクロック信号ＣＬＫｘ２の論理積をＦ／Ｆ１３０に出力する。Ｆ／Ｆ回路１３０は、メモリマクロ１０１のデータ出力信号線ＤＯ［３１：０］とＡＮＤ回路１２９とに接続される。Ｆ／Ｆ１３０は、ＡＮＤ回路１２９からの出力に応じて、データ出力信号線ＤＯ［３１：０］からのデータ信号をラッチ回路１３２に出力する。すなわち、Ｆ／Ｆ１３０は、クロック信号ＣＬＫｘ１に同期してデータ出力信号線ＤＯ［３１：０」からのデータ信号ＤＯ＿Ｂ［３１：０］を読み出し、ラッチ回路１３２に出力する。
【００７３】
ＡＮＤ回路１３１は、メモリインスタンスＩ４０に対応するライトイネーブル信号ＷＥＮ＿Ａ［３１：０］とクロック信号ＣＬＫｘ１との論理積をラッチ回路１３２に出力する。ラッチ回路１３２は、Ｆ／Ｆ１３０とＡＮＤ回路１３１に接続され、ＡＮＤ回路１３１からの出力信号に応じてＦ／Ｆ１３０から出力されるデータ信号ＤＯ＿Ｂ［３１：０］をラッチする。又、Ｆ／Ｆ１３０で読み出したデータを確実にラッチするため、ＡＮＤ回路１３１と、ラッチ回路１３２との間に遅延回路を挿入しても良い。
【００７４】
以上のように、メモリインスタンスＩ３０、Ｉ４０は共通のデータ入力信号線ＤＩ［３１：０］及びデータ出力信号線ＤＯ［３１：０］を利用してデータの書き込み及び読み出しが行う。この際、メモリインスタンスＩ３０は、データ入力信号線ＤＩ［３１：０］及びデータ出力信号線ＤＯ［３１：０］における上位側ワード線（２５６Ｗ）によってデータの読み出し及び書き込みが行われる。又、メモリインスタンスＩ４０は、データ入力信号線ＤＩ［３１：０］及びデータ出力信号線ＤＯ［３１：０］における下位側のワード線（２５６Ｗ）によってデータの読み出し及び書き込みが行われる。アドレスの切り替えは、最上位のアドレス線ＡＤ８に入力されるクロック信号ＣＬＫｘ１に同期して決定する。又、メモリマクロ１０１に対するデータの書き込み、読み出しは、逓倍されたクロック信号ＣＬＫｘ２に同期して行われる。
【００７５】
ライト動作において、データ信号ＤＩは、逓倍されたクロック信号ＣＬＫｘ２に同期してメモリマクロ１０１内のメモリインスタンスＩ３０、Ｉ４０に交互に書き込まれる。又、逓倍されたクロック信号ＣＬＫｘ２に応じて出力されたメモリインスタンスＩ３０、Ｉ４０のデータは、出力制御回路１０５から、クロック信号ＣＬＫｘ１に同期して交互に読み出される。図１１及び図１２を参照して、図１０に示すメモリマクロ１０１及び周辺回路マクロの動作の詳細を説明する。
【００７６】
図１１は、第２の実施の形態におけるメモリマクロ１０１へのライト動作における入力動作を示すタイミングチャートである。図７を参照して、第２の実施の形態におけるメモリマクロ１０１への入力動作の詳細を説明する。ここで、クロック信号ＣＬＫｘ１は時刻Ｔ５において立ち上がり、時刻Ｔ６において立ち下がるものとする。
【００７７】
時刻Ｔ５において、アドレス信号線ＡＤ８に入力されるクロック信号ＣＬＫｘ１の立ち上がりに応じて、下位側のワード線（２５６Ｗ）がアクティブとなる。この際、クロック信号ＣＬＫｘ１の立ち上がりに応答して、メモリマクロ１０１にはチップセレクト信号ＣＥＮ＿Ｂとアドレス信号ＡＤ＿Ｂ［７：０］、及びデータ信号ＤＩ＿Ｂ［３１：０］が入力される。これにより、メモリインスタンスＩ４０側の入力信号（データ信号線Ｄ［３１：０］）における所定のアドレスがアクティブとなる。更に、ライトイネーブル信号線ＷＥＮ［３１：０］に入力されるＷＥＮ＿Ｂ［３１：０］によって、メモリインスタンスＩ４０が書き込み可能となる。
【００７８】
時刻Ｔ６において、アドレス信号線ＡＤ８に入力されるクロック信号ＣＬＫｘ１の立ち下りに応じて、上位側のワード線（２５６Ｗ）がアクティブとなる。この際、クロック信号ＣＬＫｘ１の立ち下りに応答して、メモリマクロ１０１にはチップセレクト信号ＣＥＮ＿Ａとアドレス信号ＡＤ＿Ａ［７：０］、及びデータ信号ＤＩ＿Ａ［３１：０］が入力される。これにより、メモリインスタンスＩ３０側の入力信号（データ信号線Ｄ［３１：０］）における所定のアドレスがアクティブとなる。更に、ライトイネーブル信号線ＷＥＮ［３１：０］に入力されるＷＥＮ＿Ａ［３１：０］によって、メモリインスタンスＩ４０が書き込み可能となる。
【００７９】
メモリマクロ１０１では、逓倍されたクロック信号ＣＬＫｘ２に同期してデータ入力信号線ＤＩ［３１：０］に入力されるデータ信号ＤＩが書き込まれる。ここでは、クロック信号ＣＬＫｘ２の立ち上がりに同期して、書き込み可能となったデータ入力信号線ＤＩ［３１：０］に入力されたデータ信号ＤＩ＿Ｂ［１５：０］が、メモリインスタンスＩ４０に書き込まれる（時刻Ｔ５）。又、クロック信号ＣＬＫｘ２の立ち下がりに応答して、書き込み可能となったデータ入力信号線ＤＩ［３１：０］に入力されたデータ信号ＤＩ＿Ａ［１５：０］が、メモリインスタンスＩ３０に書き込まれる（時刻Ｔ６）。
【００８０】
図１２は、メモリマクロ１０１からデータを読み出す動作を示すタイミングチャートである。図１２を参照して、メモリマクロ１０１からの出力動作の詳細を説明する。ここで、クロック信号ＣＬＫｘ１は時刻Ｔ７において立ち上がり、時刻Ｔ８において立ち下がるものとする。
【００８１】
時刻Ｔ７において、アドレス信号線ＡＤ８に入力されるクロック信号ＣＬＫｘ１の立ち上がりに応じて、下位側のワード線（２５６Ｗ）がアクティブとなる。この際、クロック信号ＣＬＫｘ１の立ち上がりに応答して、メモリマクロ１０１にはチップセレクト信号ＣＥＮ＿Ｂとアドレス信号ＡＤ＿Ｂ［７：０］、及びデータ信号ＤＩ＿Ｂ［３１：０］が入力される。これにより、メモリインスタンスＩ４０側の入力信号（データ信号線Ｄ［３１：０］）における所定のアドレスがアクティブとなる。更に、ライトイネーブル信号線ＷＥＮ［３１：０］に入力されるＷＥＮ＿Ｂ［３１：０］によって、メモリインスタンスＩ４０における所定のアドレスが読み出し可能となる。
【００８２】
時刻Ｔ８において、アドレス信号線ＡＤ８に入力されるクロック信号ＣＬＫｘ１の立ち下がりに応じて、上位側のワード線（２５６Ｗ）がアクティブとなる。この際、クロック信号ＣＬＫｘ１の立ち下がりに応答して、メモリマクロ１０１にはチップセレクト信号ＣＥＮ＿Ａとアドレス信号ＡＤ＿Ａ［７：０］、及びデータ信号ＤＩ＿Ａ［３１：０］が入力される。これにより、メモリインスタンスＩ３０側の入力信号（データ信号線Ｄ［３１：０］）における所定のアドレスがアクティブとなる。更に、ライトイネーブル信号線ＷＥＮ［３１：０］に入力されるＷＥＮ＿Ａ［３１：０］によって、メモリインスタンスＩ３０が所定のアドレスが読み出し可能となる。
【００８３】
メモリマクロ１０１からは、逓倍されたクロック信号ＣＬＫｘ２に同期して、データ出力信号線ＤＯ［３１：０］からデータ信号が読み出される。ここでは、クロック信号ＣＬＫｘ２の立ち上がりに同期して、読み出し可能となったデータ出力信号線ＤＯ［３１：０］の下位側のワード線（２５６Ｗ）からメモリインスタンスＩ４０内のデータ（データ信号ＤＯ＿Ｂ［１５：０］）が出力される（時刻Ｔ７）。又、クロック信号ＣＬＫｘ２の立ち下がりに応答して、読み出し可能となったデータ出力信号線ＤＯ［３２：０］の上位側のワード線（２５６Ｗ）からメモリインスタンスＩ３０内のデータ（データ信号ＤＯ＿Ａ［１５：０］）が出力される（時刻Ｔ８）。
【００８４】
時刻Ｔ７において、Ｆ／Ｆ１３０はクロック信号ＣＬＫｘ１の立ち上がりに同期して、読み出し可能となったデータ出力信号線ＤＯ［３１：０］からのデータ信号ＤＯ＿Ｂ［３１：０］を取り込み、ラッチ回路１３２に出力する。ラッチ回路１３２は、クロック信号ＣＬＫｘ１の立ち上がりに同期してＦ／Ｆ１３０から出力されるデータ信号ＤＯ＿Ｂ［３１：０］をラッチして、外部装置（図示なし）に出力する。又、時刻Ｔ８において、Ｆ／Ｆ１２６はクロック信号ＣＬＫｘ１の立ち下がりに同期して、読み出し可能となったデータ出力信号線ＤＯ［３１：０］からのデータ信号ＤＯ＿Ｂ［３１：０］を取り込み、ラッチ回路１２８に出力する。ラッチ回路１２８は、クロック信号ＣＬＫｘ１の立ち下がりに同期してＦ／Ｆ１２６から出力されるデータ信号ＤＯ＿Ｂ［３１：０］をラッチして、外部装置（図示なし）に出力する。
【００８５】
以上のように、クロック信号ＣＬＫｘ２に同期してメモリインスタンスＩ３０、Ｉ４０から交互に読み出されたデータ（リードデータ）は、クロック信号ＣＬＫｘ１に同期して出力制御回路１０５から外部装置（図示なし）に出力される。
【００８６】
本発明による半導体チップ１によれば、２つのインスタンスの動作クロックが共通である場合、当該インスタンスに入力されるクロック信号、すなわちメモリマクロの動作クロックを２倍にし、データ信号やアドレス信号の入力及び出力を制御する入力制御回路１０４及び出力制御回路１０５によて制御することで、メモリマクロに複数のインスタンス（ここでは２つ）をアサインすることができる。このため、設定されたメモリマクロ配置領域１００を効率的に使用してメモリマクロを有効に活用することができる。
【００８７】
例えば、図１に示すように２つのメモリマクロＭ１、Ｍ２が設定されている場合、従来技術では、２つのメモリマクロＭ１、Ｍ２に、２つのメモリインスタンスＩ１、Ｉ２がアサインされるため、２つ以上のインスタンスを割り当てることができなかった。又、メモリマクロＭ１、Ｍ２のそれぞれにおける半分のメモリサイズしかアサインされていないため、メモリとして使用不可能な５１２Ｗ＊３２ｂ分の領域を無駄にしていた。
【００８８】
一方、本発明による半導体チップ１では、図５あるいは図９に示すように、１つのメモリマクロＭ１に２つのメモリインスタンスＩ１０、Ｉ２０（メモリインスタンスＩ３０、Ｉ４０）がアサインされる。このため、メモリマクロＭ２にはインスタンスがアサインされず、更なるインスタンスの追加にも対応できる。又、１つのインスタンスに複数のメモリマクロをアサインできることから、効率良くメモリ領域を利用でき、従来技術で問題となっていたメモリマクロの不足を解消することができる。
【００８９】
以上、本発明の実施の形態を詳述してきたが、具体的な構成は上記実施の形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。又、第１の実施の形態と第２の実施の形態とを、その要旨を逸脱しない範囲で組み合せることも可能である。
【図面の簡単な説明】
【００９０】
【図１】図１は、半導体集積回路に設定されたメモリマクロ配置領域に設定されたメモリマクロの一例を示す概念図である。
【図２Ａ】図２Ａは、従来技術によってインスタンスが割り当てられたメモリマクロの一例を示す概念図である。
【図２Ｂ】図２Ｂは、従来技術によってインスタンスが割り当てられたメモリマクロの一例を示す概念図である。
【図３】図３は、本発明による半導体集積回路設計装置の構成を示す図である。
【図４】図４は、本発明による半導体集積回路設計装置によって設計された半導体集積回路の構成を示す平面図である。
【図５】図５は、本発明による半導体集積回路設計装置によってインスタンスが割り当てられたメモリマクロの一例を示す概念図である。
【図６】図６は、本発明による半導体集積回路設計装置によって設計されたメモリマクロ及び周辺装置マクロの第１の実施の形態における構成を示す図である。
【図７】図７は、第１の実施の形態におけるメモリマクロ及び周辺回路マクロの書き込み動作を示すタイミングチャートである。
【図８】図８は、第１の実施の形態におけるメモリマクロ及び周辺回路マクロの読み出し動作を示すタイミングチャートである。
【図９】図９は、本発明による半導体集積回路設計装置によってインスタンスが割り当てられたメモリマクロの一例を示す概念図である。
【図１０】図１０は、本発明による半導体集積回路設計装置によって設計されたメモリマクロ及び周辺装置マクロの第２の実施の形態における構成を示す図である。
【図１１】図１１は、第２の実施の形態におけるメモリマクロ及び周辺回路マクロの書き込み動作を示すタイミングチャートである。
【図１２】図１２は、第２の実施の形態におけるメモリマクロ及び周辺回路マクロの読み出し動作を示すタイミングチャートである。
【符号の説明】
【００９１】
１：半導体集積回路
１０：半導体集積回路設計装置
１１：ＣＰＵ
１２：ＲＡＭ
１３：記憶装置
１４：入力装置
１５：出力装置
２１：制御回路配置用データ
２２：メモリマクロ配置用データ
２３：半導体集積回路設計プログラム
１００：メモリマクロ配置領域
１０１、Ｍ１、Ｍ２：メモリマクロ
１０３：逓倍器
１０４：入力制御回路
１０５：出力制御回路
１１０：周辺装置配置領域
Ｉ１、Ｉ２、Ｉ３、Ｉ４、Ｉ１０、Ｉ２０、Ｉ３０、Ｉ４０：メモリインスタンス
【図１】
0005196538.tif 000002
【図２Ａ】
0005196538.tif 000003
【図２Ｂ】
0005196538.tif 000004
【図３】
0005196538.tif 000005
【図４】
0005196538.tif 000006
【図５】
0005196538.tif 000007
【図６】
0005196538.tif 000008
【図７】
0005196538.tif 000009
【図８】
0005196538.tif 000010
【図９】
0005196538.tif 000011
【図１０】
0005196538.tif 000012
【図１１】
0005196538.tif 000013
【図１２】
0005196538.tif 000014