(57)【要約】【課題】  非同期動作が可能でポート数に制約のない非同期制御回路と半導体集積回路装置を提供する。【解決手段】  非同期制御回路において、互いに非同期で発生される複数のアクセス要求信号と上記複数のアクセス要求信号のそれぞれに対応した複数の入力信号とを受けて少なくとも１つのアクセス要求に対応して起動され、その起動状態で１ないし複数のアクセス要求の中から１つのアクセス要求を選択し、それに対応した入力信号を受け付けて、メモリに対して当該入力信号を伝え、当該入力信号に対応した動作終了後に未実行のアクセス要求に対応した入力信号の受け付けを行って上記メモリ回路をアクセスする。【選択図】  図６
2005044334.tif 000002
【特許請求の範囲】
【請求項１】
複数のアクセス要求信号と上記複数のアクセス要求信号のそれぞれに対応した複数の入力信号とを受け、上記複数のアクセス要求信号のうち少なくとも１つのアクセス要求に対応して起動され、その起動状態での１ないし複数のアクセス要求に対して所定の１つのアクセス要求に対応した上記入力信号の受け付けを行い、所定の回路動作を実行する回路機能ブロックに当該入力信号を伝え、当該入力信号に対応した動作終了後に未実行のアクセス要求に対応した上記入力信号の受け付けを行うことを特徴とする非同期制御回路。
【請求項２】
請求項１において、
上記複数のアクセス要求信号は、それぞれが非同期で発生されるクロック信号又はタイミング信号であることを特徴とする非同期制御回路。
【請求項３】
請求項２において、
上記起動状態での複数のアクセス要求のうち予め決められた優先順位の高い１つのアクセス要求を選択する優先順位設定回路を備えてなることを特徴とする非同期制御回路。
【請求項４】
請求項３において、
上記非同期制御回路は、複数からなる第１フリップフロップ回路と論理和回路及び第３フリップフロップ回路とを備え、
上記複数のアクセス要求信号は、それに対応した上記複数からなる第１フリップフロップ回路にセット入力信号としてそれぞれ供給され、
上記第１フリップフロップ回路の出力信号は、上記論理和回路と優先順位設定回路とに伝えられ、
上記論理和回路の出力信号は、上記第３フリップフロップ回路に伝えられ、
上記第３フリップフロップ回路は、上記論理和回路の出力信号によりセットされ、そのセット出力信号により上記優先順位設定回路の出力を有効とするとともに、上記第１フリップフロップ回路の出力信号の上記論理和回路への伝達を停止させ、
上記優先順位設定回路は、１つのアクセス要求を選択してそれに対応した上記第１フリップフロップ回路をリセットするとともに上記入力信号を上記回路機能ブロックに伝え、  上記第３フリップフロップ回路は、上記回路機能ブロックの動作終了タイミングに対応してリセットされることを特徴とする非同期制御回路。
【請求項５】
請求項４において、
上記優先順位設定回路は、最下位の優先順位を除く上記第１フリップフロップ回路の出力信号を受ける第２フリップフロップ回路を備え、
上記第２フリップフロップ回路は、上記論理和回路の出力信号により上記第１フリップフロップ回路の出力信号を取り込み、
上記第２フリップフロップ回路の出力信号は、それより下位の優先順位のアクセス要求の非選択に用いられることを特徴とする非同期制御回路。
【請求項６】
非同期制御回路と、
メモリ回路とを備え、
上記非同期制御回路は、複数のアクセス要求信号と上記複数のアクセス要求信号のそれぞれに対応した複数の入力信号とを受け、上記複数のアクセス要求信号のうち少なくとも１つのアクセス要求に対応して起動され、その起動状態での１ないし複数のアクセス要求に対して所定の１つのアクセス要求に対応した入力信号の受け付けを行って上記メモリ回路に当該入力信号を伝え、当該入力信号に対応したメモリ回路の動作終了後に未実行のアクセス要求に対応した入力信号の受け付けを行い、
上記メモリ回路は、上記非同期制御回路を介してアクセスされることを特徴とする半導体集積回路装置。
【請求項７】
請求項６において、
上記複数のアクセス要求信号に対応した複数の入力ラッチと、出力ラッチとを更に備え、
上記受け付けられたアクセス要求に対応した入力信号は、上記入力ラッチに取り込まれたものがメモリ回路に伝えられ、
上記アクセス要求に対応した読み出し信号は、上記出力ラッチ回路に取り込まれるものであることを特徴とする半導体集積回路装置。
【請求項８】
請求項７において、
上記複数のアクセス要求信号は、それぞれが非同期で発生されるクロック信号又はタイミング信号であることを特徴とする半導体集積回路装置。
【請求項９】
請求項８において、
上記非同期制御回路は、起動状態での複数のアクセス要求のうち予め決められた優先順位の高い１つのアクセス要求を選択する優先順位設定回路を備えてなることを特徴とする半導体集積回路装置。
【請求項１０】
請求項９において、
上記非同期制御回路は、複数からなる第１フリップフロップ回路と論理和回路及び第３フリップフロップ回路とを備え、
上記複数のアクセス要求信号は、それに対応した上記複数からなる第１フリップフロップ回路にセット入力信号としてそれぞれ供給され、
上記第１フリップフロップ回路の出力信号は、上記論理和回路と優先順位設定回路とに伝えられ、
上記論理和回路の出力信号は、上記第３フリップフロップ回路に伝えられ、
上記第３フリップフロップ回路は、上記論理和回路の出力信号によりセットされ、そのセット出力信号により上記優先順位設定回路の出力を有効とするとともに、上記第１フリップフロップ回路の出力信号の上記論理和回路への伝達を停止させ、
上記優先順位設定回路は、１つのアクセス要求を選択してそれに対応した上記第１フリップフロップ回路をリセットするとともに上記入力信号を上記メモリ回路に伝え、
上記第３フリップフロップ回路は、上記メモリ回路の動作終了タイミングに対応してリセットされることを特徴とする半導体集積回路装置。
【請求項１１】
請求項１０において、
上記優先順位設定回路は、最下位の優先順位を除く上記第１フリップフロップ回路の出力信号を受ける第２フリップフロップ回路を備え、
上記第２フリップフロップ回路は、上記論理和回路の出力信号により上記第１フリップフロップ回路の出力信号を取り込み、
上記第２フリップフロップ回路の出力信号は、それより下位の優先順位のアクセス要求の非選択に用いられることを特徴とする半導体集積回路装置。
【請求項１２】
請求項１０において、
上記非同期制御回路は、上記メモリ回路のサイクル時間レプリカ回路を備え、  上記サイクル時間レプリカ回路は、上記論理和回路の出力信号を受け、設定された上記メモリ回路のサイクル時間の経過後に上記第３フリップフロップ回路のリセット信号を形成することを特徴とする半導体集積回路装置。
【請求項１３】
請求項６ないし１２のいずれかにおいて、
上記メモリ回路は、１ポートのスタティック型ＲＡＭであることを特徴とする半導体集積回路装置。
【請求項１４】
請求項１３において、
上記複数のアクセス要求信号は、３以上であり、それぞれの周波数が異なるものであることを特徴とする半導体集積回路装置。
【請求項１５】
請求項１４において、
上記非同期制御回路により選択されたアクセス要求信号に応答して、上記メモリ回路に伝えられるアドレス信号を生成するアドレス発生回路を備えてなることを特徴とする半導体集積回路装置。
【請求項１６】
請求項５において、
上記第２フリップフロップ回路又は第３フリップフロップ回路は、メタステーブル状態でオフセット電圧を持つ一対の出力信号を形成する第１ラッチ回路と、上記出力信号のオフセット電圧を増幅する増幅回路とを含むことを特徴とする非同期制御回路。
【請求項１７】
請求項１１において、
上記第２フリップフロップ回路又は第３フリップフロップ回路は、メタステーブル状態の無い論理出力を形成するものであることを特徴とする半導体集積回路装置。
【請求項１８】
請求項１７において、
上記第２フリップフロップ回路又は第３フリップフロップ回路は、メタステーブル状態でオフセット電圧を持つ一対の出力信号を形成する第１ラッチ回路と、上記出力信号のオフセット電圧を増幅する増幅回路とを含むことを特徴とする半導体集積回路装置。
【請求項１９】
請求項１８において、
上記増幅回路は、上記第１ラッチ回路の一対の出力信号を受ける差動形態の一対の入力端子を持ち、上記第１ラッチ回路の動作タイミング信号の遅延信号によって動作する第２ラッチ回路を含んでなることを特徴とする半導体集積回路装置。
【請求項２０】
請求項１８において、
上記第１ラッチ回路は、
第１ＮチャネルＭＯＳＦＥＴ及び第１ＰチャネルＭＯＳＦＥＴからなる第１ＣＭＯＳインバータ回路と、
第２ＮチャネルＭＯＳＦＥＴ及び第２ＰチャネルＭＯＳＦＥＴからなる第２ＣＭＯＳインバータ回路と、
上記第１ＮチャネルＭＯＳＦＥＴと並列形態に接続され、ゲートに非同期入力信号とクロック信号との論理信号が入力される第３ＮチャネルＭＯＳＦＥＴと、
上記第１及び第２ＮチャネルＭＯＳＦＥＴのソースに回路の接地電位を供給する第４ＮチャネルＭＯＳＦＥＴと、
プリチャージＭＯＳＦＥＴと、
上記論理信号を形成するゲート回路とを備え、
上記第１ＣＭＯＳインバータ回路と第２ＣＭＯＳインバータ回路の入力と出力とは交差接続されて一対の出力端子に結合され、
上記プリチャージＭＯＳＦＥＴは、上記一対の出力端子と電源電圧との間に設けられ、クロック信号が一方のレベルにあるときにオン状態となって上記出力端子を電源電圧にプリチャージし、
上記第４ＮチャネルＭＯＳＦＥＴは、上記クロック信号が上記一方のときにはオフ状態で他方のレベルにあるときにオン状態となり、
上記ゲート回路は、上記クロック信号が一方のレベルにあるときに非同期入力信号に対応した信号を伝え、他方のレベルにあるときには上記第３ＭＯＳＦＥＴをオフ状態にさせる論理信号を出力し、
上記第１ＮチャネルＭＯＳＦＥＴは、上記第２ＮチャネルＭＯＳＦＥＴに比べて前記オフセット電圧に対応してコンダクタンスが小さく形成されてなることを特徴とする半導体集積回路装置。
【請求項２１】
請求項１９において、
上記第２ラッチ回路は、
第３ＣＭＯＳインバータ回路と、
第４ＣＭＯＳインバータ回路と、
上記第３及び第４ＣＭＯＳインバータ回路を構成するＮチャネルＭＯＳＦＥＴのソースに回路の接地電位を供給する第５ＮチャネルＭＯＳＦＥＴと、
上記第１ラッチ回路からの一対の出力信号を取り込むスイッチＭＯＳＦＥＴとを備え、
上記第１ＣＭＯＳインバータ回路と第２ＣＭＯＳインバータ回路の入力と出力とが交差接続されて一対の入出力端子を持ち、
上記スイッチＭＯＳＦＥＴは、上記遅延信号が一方のレベルにあるときにオン状態となって上記第１ラッチ回路の一対の出力端子と第２ラッチ回路の一対の入出力端子とを接続し、
上記第５ＮチャネルＭＯＳＦＥＴは、上記遅延信号によって上記第１ラッチ回路の出力信号よりも遅れてオン状態となることを特徴とする半導体集積回路装置。
【請求項２２】
請求項２１において、
第３ラッチ回路を更に備え、
上記第３ラッチ回路は、上記クロック信号が一方のレベルにあるとき、上記第２ラッチ回路の一対の出力信号を保持するものであることを特徴とする半導体集積回路装置。
【請求項２３】
非同期入力信号とクロック信号とを受け、メタステーブル状態でオフセット電圧を持つ一対の出力信号を形成する第１ラッチ回路と、
上記出力信号のオフセット電圧を増幅する増幅回路とを含み、
上記増幅回路を通して上記クロック信号に同期化された出力信号を得る同期化回路を備えてなることを特徴とする半導体集積回路装置。
【請求項２４】
請求項２３において、
上記第１ラッチ回路は、
第１ＮチャネルＭＯＳＦＥＴ及び第１ＰチャネルＭＯＳＦＥＴからなる第１ＣＭＯＳインバータ回路と、
第２ＮチャネルＭＯＳＦＥＴ及び第２ＰチャネルＭＯＳＦＥＴからなる第２ＣＭＯＳインバータ回路と、
上記第１ＮチャネルＭＯＳＦＥＴと並列形態に接続され、ゲートに非同期入力信号とクロック信号との論理信号が入力される第３ＮチャネルＭＯＳＦＥＴと、
上記第１及び第２ＮチャネルＭＯＳＦＥＴのソースに回路の接地電位を供給する第４ＮチャネルＭＯＳＦＥＴと、
プリチャージＭＯＳＦＥＴと、
上記論理信号を形成するゲート回路とを備え、
上記第１ＣＭＯＳインバータ回路と第２ＣＭＯＳインバータ回路の入力と出力とは交差接続されて一対の出力端子に結合され、
上記プリチャージＭＯＳＦＥＴは、上記一対の出力端子と電源電圧との間に設けられ、クロック信号が一方のレベルにあるときにオン状態となって上記出力端子を電源電圧にプリチャージし、
上記第４ＮチャネルＭＯＳＦＥＴは、上記クロック信号が上記一方のときにはオフ状態で他方のレベルにあるときにオン状態となり、
上記ゲート回路は、上記クロック信号が一方のレベルにあるときに非同期入力信号に対応した信号を伝え、他方のレベルにあるときには上記第３ＭＯＳＦＥＴをオフ状態にさせる論理信号を出力し、
上記第１ＮチャネルＭＯＳＦＥＴは、上記第２ＮチャネルＭＯＳＦＥＴに比べて前記オフセット電圧に対応してコンダクタンスが小さく形成されてなることを特徴とする半導体集積回路装置。
【請求項２５】
請求項２３において、
上記増幅回路は、上記第１ラッチ回路の一対の出力信号を受ける差動形態の一対の入力端子を持ち、上記第１ラッチ回路の動作タイミング信号の遅延信号によって動作する第２ラッチ回路を含んでなることを特徴とする半導体集積回路装置。
【請求項２６】
請求項２５において、
上記第２ラッチ回路は、
第３ＣＭＯＳインバータ回路と、
第４ＣＭＯＳインバータ回路と、
上記第３及び第４ＣＭＯＳインバータ回路を構成するＮチャネルＭＯＳＦＥＴのソースに回路の接地電位を供給する第５ＮチャネルＭＯＳＦＥＴと、
上記第１ラッチ回路からの一対の出力信号を取り込むスイッチＭＯＳＦＥＴとを備え、
上記第１ＣＭＯＳインバータ回路と第２ＣＭＯＳインバータ回路の入力と出力とが交差接続されて一対の入出力端子を持ち、
上記スイッチＭＯＳＦＥＴは、上記クロック信号の遅延信号が一方のレベルにあるときにオン状態となって上記第１ラッチ回路の一対の出力端子と第２ラッチ回路の一対の入出力端子とを接続し、
上記第５ＮチャネルＭＯＳＦＥＴは、上記遅延信号によって第１ラッチ回路の出力信号よりも遅れてオン状態となるものであることを特徴とする半導体集積回路装置。
【請求項２７】
請求項２６において、
上記第２ラッチ回路の一対の入出力端子の信号をそれぞれ受ける第５、第６インバータ回路と、
上記第５、第６インバータ回路の出力信号をそれぞれ受ける第７，第８インバータ回路と、
上記第５インバータ回路の出力信号がゲートに供給されたＮチャネルＭＯＳＦＥＴと上記第８インバータ回路の出力信号がゲートに供給されたＰチャネルＭＯＳＦＥＴとからなる第１トライステート出力回路と、
上記第６インバータ回路の出力信号がゲートに供給されたＮチャネルＭＯＳＦＥＴと上記第７インバータ回路の出力信号がゲートに供給されたＰチャネルＭＯＳＦＥＴとからなる第２トライスート出力回路と、
上記第１出力回路と第２出力回路の出力端子に一対の入出力端子が接続された第３ラッチ回路とを更に備えてなることを特徴とする半導体集積回路装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、非同期制御回路と半導体集積回路装置に関し、例えば１ポートのメモリ回路を複数のポートから非同期でアクセスする回路制御技術に利用して有効な技術に関するものである。
【背景技術】
【０００２】
マルチポートＳＲＡＭ（スタティック型ランダム・アクセス・メモリ）は、メモリセルにポート数分のアクセストランジスタ及びワード線やビット線が必要とされるため、１ポートＳＲＡＭに比べて面積が非常に大きくなる。そこで、１ポートＳＲＡＭコアにＮ回アクセスすることによりＮポートメモリの機能を擬似的に実現する同期型疑似マルチポートＳＲＡＭが特開２０００−５７７７５公報により提案され、２つのポート毎に別クロックを用い、そのクロック間のタイミングを任意とした非同期型デュアルポートＳＲＡＭが特開２０００−３０４６０公報より提案されている。
【特許文献１】特開２０００−５７７７５
【特許文献２】特開２０００−３０４６０
【発明の開示】
【発明が解決しようとする課題】
【０００３】
上記のようにマルチポートＳＲＡＭは、メモリセルルにポート数分のアクセストランジスタが必要とされるため、１ポートＳＲＡＭに比べて面積が非常に大きくなる。加えてその設計工数は全く別のメモリコアを設計する時とほとんど変わらない。これに対して、特許文献１の同期型疑似マルチポートＳＲＡＭでは、ポート間に共通のクロックを用いるものであるため、例えばポート毎に異なる周波数のクロックでメモリアクセスを行うようなポート間非同期動作を実現することができない。上記特許文献２の非同期型デュアルポートＳＲＡＭでは、２つのポートのうちいずれか早くメモリアクセスの要求があったポートを選別するために位相比較回路を用いているためにポート数が２つに限定されてしまい、３ポートや４ポートなどの非同期動作を実現することができない。
【０００４】
この発明の目的は、非同期動作が可能でポート数に制約のない非同期制御回路と、それを搭載した半導体集積回路装置を提供することにある。この発明の他の目的は、使い勝手がよく、柔軟に信号処理システムに組み込むことが可能な非同期制御回路を提供することにある。この発明の更に他の目的は、高速化を図りつつ、メタステーブル状態の無い論理出力を形成することができる同期化回路を備えた半導体集積回路装置を提供することにある。この発明の前記ならびにそのほかの目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００５】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば、下記の通りである。すなわち、非同期制御回路として、互いに非同期で発生される複数のアクセス要求信号と上記複数のアクセス要求信号のそれぞれに対応した複数の入力信号とを受けて少なくとも１つのアクセス要求に対応して起動し、その起動状態で１ないし複数のアクセス要求の中から１つのアクセス要求を選択し、それに対応した入力信号を受け付けて、所定の回路動作を実行する回路機能ブロックに対して当該入力信号を伝え、当該入力信号に対応した動作終了後に未実行のアクセス要求に対応した入力信号の受け付けを行う。
【０００６】
半導体集積回路装置に非同期制御回路とメモリ回路とを設け、上記非同期制御回路は、互いに非同期で発生される複数のアクセス要求信号と上記複数のアクセス要求信号のそれぞれに対応した複数の入力信号とを受けて少なくとも１つのアクセス要求に対応して起動し、その起動状態で１ないし複数のアクセス要求の中から１つのアクセス要求を選択し、それに対応した入力信号を受け付けて、上記メモリ回路に対して当該入力信号を伝え、当該入力信号に対応した動作終了後に未実行のアクセス要求に対応した入力信号の受け付けを行う。
【０００７】
半導体集積回路装置に形成される同期化回路として、非同期入力信号とクロック信号とを受ける第１ラッチ回路の一対の出力信号に、メタステーブル状態でオフセット電圧を持つように設定し、上記クロック信号の遅延信号で動作する増幅回路で上記記出力信号のオフセット電圧を増幅し、上記クロック信号に同期化された出力信号を得る。
【発明の効果】
【０００８】
小面積でポート数に制約が無い非同期制御動作を実現できチップ性能を向上させることができる。既存の１ポートＳＲＡＭ等の設計データをそのまま利用でき設計工数の低減を図ることができる。高速動作が可能でメタステーブル状態の無い論理出力信号を形成することができる。
【発明を実施するための最良の形態】
【０００９】
図１には、この発明に係る非同期型疑似マルチポートメモリの一実施例の概念図が示されている。この実施例の非同期型疑似マルチポートメモリは、非同期制御回路と１ポートＳＡＲＡＭとを組み合わせて、等価的にＮポートＳＲＡＭを実現するものである。上記非同期制御回路は、クロックＣＫ１〜ＣＫｎと、それぞれのクロックＣＫ１〜ＣＫｎに対応して入力されるアドレス信号Ａ１（０：ｉ）〜Ａｎ（０：ｉ）及びデータ信号Ｄ１（０：ｊ）〜Ｄｎ（０：ｊ）を受け、１ポートＳＲＡＭとの間でハンドシェイクプロトコルによって信号のやり取りを行うことにより、等価的にＮポートＳＲＡＭを実現する。
【００１０】
ここで、アドレス信号の（０：ｉ）は、０〜ｉからなるｉ＋１ビットであることを示し、データ信号の（０：ｊ）は、０〜ｊからなるｊ＋１ビットであることを示している。上記クロックＣＫ１ないしＣＫｎは、メモリ回路側からみると、アクセス要求信号であり、例えば、チップセレクト信号ＣＳやチップイネーブル信号ＣＥも実質的には上記クロックＣＫと回路機能的には同じと見做される。
【００１１】
この実施例では、クロックＣＫ１〜ＣＫｎは、それぞれが非同期で発生される。つまり、互いに異なる周波数や位相のタイミング信号であり、ポート数１ないしｎは、３以上の複数を想定しており、３以上のクロックＣＫがほぼ同時に入力され、あるいはそれらの位相が微小に異なり、非同期制御回路内での回路素子のバラツキや信号伝播遅延時間の変動等に対しても誤動作しないようハザードフリーにする必要がある。このため、前記特許文献２に示されているような位相比較回路を利用することができず、上記のようなハザードフリーの要求を満足する新規な非同期制御回路の開発が必要となるものである。
【００１２】
図２には、図１の非同期制御回路に要求されるクロック競合関係を説明するためのタイミング図が示されている。図２（ａ）の例は、ＣＫ発生の抑止を必要とする例である。先に発生したクロックＣＫ１によりメモリアクセスが開始され、かかるＣＫ１に対応したメモリアクセスが終了する前にクロックＣＫ２が入力されると、本来はクロックＣＫ１でのメモリアクセス終了後までクロックＣＫ２のメモリアクセスを待たせることが必要であるが、回路遅延の存在等によりクロックＣＫ１とＣＫ２が微妙なタイミング差で発生してＲＡＭのクロック端子ＲＡＭ−ＣＫにダブルクロックが発生してしまうという問題である。このようなダブルクロックは、後のクロックＣＫ２によるメモリアクセスが無視されてしまう。
【００１３】
図２（ｂ）の例は、クリティカルレースの回避を必要とする例である。クロックＣＫ１とＣＫ２とがほぼ同時に入力されたとき、先に入力されたクロックＣＫ１のメモリアクセス終了後に、クロックＣＫ２のメモリアクセス要求が実行されるべきであるが、クロックＣＫ１とＣＫ２の微妙なタイミング差により後に実行させるべきクロックＣＫ２によるアクセス要求が消失してしまう。
【００１４】
図３には、この発明に係る非同期型疑似マルチポートメモリの一実施例の基本的なブロック図が示されている。この実施例の非同期型疑似マルチポートメモリは、非同期制御回路と入力ラッチ＆セレクタと、出力ラッチ及び１ポートＳＲＡＭとから構成される。上記入力ラッチ＆セレクタと出力ラッチは、上記非同期制御回路に含まれるようにしてもよい。このように入力ラッチ＆セレクタと出力ラッチを非同期制御回路に含ませる構成は、図１の非同期制御回路に対応するものである。
【００１５】
上記非同期制御回路は、クロックＣＫ１〜ＣＫｎを受けて１ポートＳＲＡＭに対してはメモリアクセスの実行要求を送出し、入力ラッチ＆セレクタと出力セレクタに対しては上記実行要求に対応したポートを選択するような制御信号を供給して、セレクタにより選択された１つのアドレス信号Ａ（０：ｉ）とデータＤ（０：ｊ）を１ポートＳＲＡＭに供給する。１ポートＳＲＡＭは、上記実行要求を受けて上記アドレス信号Ａ（０：ｉ）によりメモリセルを選択し、書き込み動作なら上記入力ラッチに保持されたデータＤ（０：ｊ）をメモリセルに書き込み、読み出しならば選択されたメモリセルの読み出しデータＱ（０：ｊ）を上記出力ラッチに出力し、当該メモリアクセス終了に対応した実行完了を非同期制御回路に伝える。このように非同期制御回路と１ポートＳＲＡＭとの間では、メモリアクセスの実行要求と、それに対応したメモリアクセスの実行完了とからなるハンドシェイクプロトコルにより結合されている。
【００１６】
非同期制御回路は、２ポート以上の同時入力を含むクロック入力を受け付け、入力ラッチはそれに対応したアドレスやデータといった入力信号を保持する。上記非同期制御回路では、上記複数のクロック入力があると、その中から１つのクロックを選択し、このクロックに対応して上記セレクタを制御して入力ラッチに保持されているアドレスやデータＡ（０：ｉ）とデータＤ（０：ｊ）を上記１ポートＳＲＡＭに供給する。
【００１７】
図４には、この発明に係る非同期型疑似マルチポートメモリの動作を説明するための簡易タイミング図が示されている。クロックＣＫ１とＣＫ２とがほぼ同時に入力されると、クロックＣＫ１に対応した入力ラッチＡ１には、アドレス信号Ａｎが保持され、クロックＣＫ２に対応した入力ラッチＡ２には、アドレス信号Ａｍが保持される。図示しないが、書き込み動作のときにはクロックＣＫ１に対応した入力ラッチＤ１には書き込みデータＤｎが保持され、クロックＣＫ２に対応した入力ラッチＤ２には書き込みデータＤｍが保持される。
【００１８】
ほぼ同時に２つのクロックＣＫ１とＣＫ２とが入力されたときには、クロックＣＫ１とＣＫ２の位相差を厳密に判定するのではなく、予め決められた優先順位に従ってクロックＣＫ１が選択されて、１ポートＳＲＡＭのクロック端子ＳＲＡＭ−ＣＫには実行要求としてのクロックが供給される。上記非同期制御回路により上記クロックＣＫ１に対応した入力ラッチのポート１が選択されて、上記入力ラッチＡ１に保持されたアドレス信号Ａｎが１ポートＳＲＡＭのアドレス端子Ａに与えられ、メモリセルの選択動作が行われる。上記アドレス信号Ａｎの読み出し動作が指示されたなら、１ポートＳＲＡＭは上記アドレス信号Ａｎに対応したメモリセルを選択して読み出し信号Ｑｎを出力ラッチに出力する。このような出力ラッチへのデータＱｎの出力動作が終了すると、上記実行要求に対応した実行完了（Ｄｏｎｅ）を非同期制御回路に送り返す。
【００１９】
非同期制御回路は、未実行のクロックＣＫ２の存在により、それに対応した実行要求を１ポートＳＲＡＭのクロック端子ＳＲＡＭ−ＣＫに供給するとともに、かかるクロックＣＫ２に対応した入力ラッチのポート２を選択して、上記入力ラッチＡ２に保持されたアドレス信号Ａｍを１ポートＳＲＡＭのアドレス端子Ａに供給する。１ポートＳＲＡＭでは、上記アドレス信号Ａｍに対応したメモリセルの選択動作が行われる。上記アドレス信号Ａｍの読み出し動作が指示されたなら、１ポートＳＲＡＭは上記アドレス信号Ａｍに対応したメモリセルを選択して読み出し信号Ｑｍを出力ラッチに出力する。このような出力ラッチへのデータＱｍの出力動作が終了すると、上記実行要求に対応した実行完了（Ｄｏｎｅ）を非同期制御回路に送り返す。
【００２０】
図５には、この発明に係る非同期型疑似マルチポートメモリの他の一実施例の基本的なブロック図が示されている。この実施例の非同期型疑似マルチポートメモリは、図３の実施例の変形例であり、サイクル時間レプリカ回路が新たに設けられる。このサイクル時間レプリカ回路は、１ポートＳＲＡＭに対するメモリアクセスの実行要求を受けて、メモリサイクルに対応した遅延時間の経過後に実行完了信号を生成して、上記非同期制御回路に送り返す。このように非同期制御回路は、上記サイクルレプリカ回路との間でハンドシェイクプロトコルを行うこととなるので、非同期制御回路と１ポートＳＲＡＭとの間では疑似ハンドシェイクプロトコルとなる。
【００２１】
このような疑似ハンドシェイクプロトコルの採用によって、１ポートＳＲＡＭにおいては、前記図３の実施例のようなハンドシェイクプロトコルのための実行完了信号を生成する機能を設けることが必要なく、一般的な１ポートＳＲＡＭを用いることができる。つまり、非同期制御回路と１ポートＳＲＡＭとを１つの半導体集積回路装置で構成する場合には、上記１ポートＳＲＡＭの部分は、既存の１ポートＳＲＡＭの設計データをそのまま流用することができる。これにより、非同期制御回路の部分だけを要求されるポート数に対応して設計すればよく、非同期型疑似マルチポートメモリの開発時間の短縮化を図ることができる。
【００２２】
図６には、この発明に係る非同期制御回路の一実施例の回路図が示されている。この実施例は、デュアルポート（２ポート）のハザートフリー非同期制御回路に向けられており、３種のレジスタ（フリップフロップ回路）と２種の組み合わせ論理回路（イベント発生回路、プライオリティエンコーダ）から構成される。入力部に設けられたレジスタはＳＲ（セット／リセット）−フリップフロップ回路ＦＦ１Ａ，ＦＦ１Ｂで構成され、２つのポートＡとＢからの対応するクロックＣＫＡ及びＣＫＢによりセットされる。
【００２３】
上記フリップフロップ回路ＦＦ１Ａ，ＦＦ１Ｂの出力信号ＡとＢは、イベント発生回路を構成する組み合わせ論理回路に伝えられる。上記イベント発生回路は、上記フリップフロップ回路ＦＦ１Ａ，ＦＦ１Ｂの出力信号ＡとＢの論理和信号（Ａ＋Ｂ）を形成するものであり、特に制限されないが、ナンド（ＮＡＮＤ）ゲート回路Ｇ１とＧ２及びＧ３から構成される。このイベント発生回路は、イベントの受け付けを行うレジスタに伝えられるとともに、クロックＣＫとして１ポートＳＲＡＭに伝えられる。上記レジスタは、ＳＲ（セット／リセット）−フリップフロップ回路ＦＦ３で構成される。
【００２４】
上記イベント発生回路を構成するナンドゲート回路Ｇ１とＧ２の一方の入力には、フリップフロップ回路ＦＦ１Ａ，ＦＦ１Ｂの出力信号ＡとＢがそれぞれ供給され、他方の入力には上記イベントの受け付けを行うフリップフロップ回路ＦＦ３の反転出力信号が供給される。つまり、フリップフロップ回路ＦＦ３がセットされると、上記ナンドゲート回路Ｇ１とＧ２に供給されるゲート制御信号がロウレベルとなり、入力の受け付けが停止されられる。
【００２５】
この実施例では、ポートＡはポートＢに対して優先順位が高くされる。つまり、レジスタを構成するフリップフロップ回路ＦＦ２のクロック端子ｃｋには上記イベント発生回路の出力信号が伝えられ、データ端子ｄには、上記ポートＡに対応したフリップフロップ回路ＦＦ１Ａの出力信号Ａを受けるゲート回路Ｇ１により反転された出力信号が伝えられる。これにより、イベントが発生した時点でゲート回路Ｇ１を通したフリップフロップ回路ＦＦ１Ａのセット／リセットを判定し、フリップフロップ回路ＦＦ１Ａがセット状態ならポートＡが選択され、フリップフロップ回路ＦＦ１Ａがリセット状態ならポートＢが選択される。つまり、ポートＢはポートＡからクロックＣＫＡが入力されないときだけ選択される。
【００２６】
上記フリップフロップ回路ＦＦ２の出力信号Ｐとその反転信号とは、プライオリティエンコーダを構成するナンドゲート回路Ｇ４とＧ５の一方の入力に供給される。このゲート回路Ｇ４とＧ５の他方の入力には、上記イベントの受け付けを行うレジスタであるフリップフロップ回路ＦＦ３の出力信号Ｅが供給される。上記フリップフロップ回路ＦＦ２の出力信号Ｐは、ポート選択信号ＣＰとして図示しない入力ラッチのセレクタに伝えられる。例えば、図４に示した制御信号とは逆に、ポート選択信号ＣＰがロウレベルならポートＡが選択され、ポート選択信号ＣＰがハイレベルならポートＢが選択される。
【００２７】
上記ゲート回路Ｇ４の出力信号は、インバータ回路ＩＶ１により反転されて、上記フリップフロップ回路ＦＦ１Ｂのリセット端子Ｒに入力され、上記ゲート回路Ｇ５の出力信号は、インバータ回路ＩＶ２によって反転されて、上記フリップフロップ回路ＦＦ１Ａのリセット端子Ｒに入力される。上記のようにフリップフロップ回路ＦＦ２の出力信号Ｐがロウレベルのときには、ポートＡが選択されるので、その受け付け完了を示し上記ゲート回路Ｇ５の出力信号により、それに対応したフリップフロップ回路ＦＦ１Ａをリセットして、次の受け付けを可能にする。また、フリップフロップ回路ＦＦ２の出力信号Ｐがハイレベルのときには、ポートＢが選択されるので、その受け付け完了を示し上記ゲート回路Ｇ４の出力信号により、それに対応したフリップフロップ回路ＦＦ１Ｂをリセットして、次の受け付けを可能にする。
【００２８】
この実施例では、タイミング保証Ａとして、上記フリップフロップ回路ＦＦ２のクロック端子ＣＫには、遅延回路ＤＬ１を通してイベント発生回路の出力信号が伝えられる。これは、次に説明するが、ゲート回路Ｇ１の出力信号をイベント発生出力により確実に取り込むようにするタイミング保証を行うものである。また、タイミング保証Ｂとして、上記フリップフロップ回路ＦＦ３の出力信号Ｅが遅延回路ＤＬ２により遅延されて、上記ゲート回路Ｇ４、Ｇ５のゲート制御信号として伝えられる。これは、次に説明するが、フリップフロップ回路ＦＦ２の状態を正しく判定するためのものである。
【００２９】
図７には、この発明に係る非同期制御回路の動作の一例を説明するための状態遷移図が示されている。同図においてＡＢＰＥに対応した４ビット情報は、図６の実施例回路における各レジスタ、つまりフリップフロップ回路ＦＦ１Ａの出力信号Ａ、ＦＦ１Ｂの出力信号Ｂ、ＦＦ２の出力信号Ｐ及びＦＦ３の出力信号Ｅに対応している。ＡＢＰＥ＝００００の初期状態で、Ｂポートへのアクセス要求に対応したクロックＣＫＢの立ち上がりにより、状態ＡＢＰＥ＝０１００に変化する。この状態０１００によりイベント発生回路は、フリップフロップ回路ＦＦ２とＦＦ３の状態を上記ポートへのアクセスに対応して変化させる。
【００３０】
同図には、上記Ｂポートへのアクセス要求の途中に、それより優先順位の高いポートＡへのアクセス要求が発生してクロックＣＫＡがハイレベルに変化したときに、タイミング保証Ａは、優先順位の高いポートＡが無視されて０１０１となる誤動作を防止する。つまり、フリップフロップ回路ＦＦ２のクロック端子ＣＫに伝えられるイベント信号は、遅延回路ＤＬ１により遅延されて、フリップフロップ回路ＦＦ１Ａへのセット状態が正しく反映される。
【００３１】
また、ポートＢへの要求がフリップフロップ回路ＦＦ２により受け付けられ、その後にポートＡへの要求によってＡＢＰＥ＝１１１１の状態から、プライオリィイエンコーダにより実行待ちのポートＡがリセットされて状態０１１１にされてしまうという誤動作を防止するものである。つまり、上記フリップフロップ回路ＦＦ２により受け付けされたポートが正しくプライオリィイエンコーダの出力に反映されるよう、フリップフロップ回路ＦＦ３の出力信号Ｅが遅延回路ＤＬ２により遅延されて、タイミング保証Ｂが行われることにより、上記フリップフロップ回路ＦＦ２により受け付けされた最新情報が正しくプライオリィイエンコーダの出力に反映される。
【００３２】
上記遅延回路ＤＬ１やＤＬ２は、インバータ回路のような遅延回路を用いるものの他、その伝達経路に設けられるゲート回路Ｇ３〜Ｇ５それ自体、あるいはそれらを接続する配線長やかかる配線の寄生容量を考慮して上記信号伝達経路の信号遅延が、それと競合関係にある信号遅延との関係で上記のような遅延時間を持つようにするものであれば何であってもよい。
【００３３】
図８には、この発明に係る非同期制御回路の動作の一例を説明するための状態遷移図が示されている。同図は、前記図６の実施例回路に対応しており、ＡＢＰＥに対応した４ビット情報は、図７の実施例と同様に図６の各レジスタ、つまりフリップフロップ回路ＦＦ１Ａの出力信号Ａ、ＦＦ１Ｂの出力信号Ｂ、ＦＦ２の出力信号Ｐ及びＦＦ３の出力信号Ｅに対応している。
【００３４】
同図において、黒背景の白抜き文字で、かつ下線を付した状態は、安定状態を示している。黒背景の白抜き文字で、かつ下線が無いものは準安定状態を示している。この準安定状態は、選択されたポートへのメモリアクセス等の動作中であり、かかるメモリアクセスの完了信号Ｄｏｎｅにより遷移が発生する。太線による矢印はレーシングを伴う遷移を示している。
【００３５】
例えば、ＡＢＰＥ＝００００の初期状態からポートＡへのクロックＣＫＡが入力されると１０００のように、ポートＡ，Ｂの両方に対して同時にクロックＣＫＡとＣＫＢが入力されると１１００、ポートＢへのクロックＣＫＢが入力されると０１００のようにそれぞれ変化する。最も単純な動作は、次の通りである。ポートＡへのクロックＣＫＡが入力されてそれが選択され、１ポートＳＲＡＭにメモリアクセスが行われ、それの動作が完了するまで他ポートＢから何もアクセス要求がないときには、細線の矢印に沿って状態１０００→１００１→０００１→Ｄｏｎｅ→００００に戻る。ポートＢへのクロックＣＫＢが入力されてそれが選択され、１ポートＳＲＡＭにメモリアクセスが行われ、それの動作が完了するまで他ポートＡから何もアクセス要求がないときには、細線の矢印に沿って状態０１００→０１１０→０１１１→００１１→Ｄｏｎｅ→００１０で安定する。
【００３６】
このように、安定状態は００００と００１０の２通りがあり、フリップフロップ回路ＦＦ２がセットされた状態で、ポートＡからアクセスによりフリップフロップ回路ＦＦ２の出力Ｐが１→０になるまでの間に、フリップフロップ回路ＦＦ３の出力Ｅがハイレベルになると、前記のようにプライオリィイエンコーダによりポートＢが選択されたと誤判定して、ポートＢに対応したフリップフロップ回路ＦＦ１Ｂをリセットさせてしまう。このとき、Ｂポートからアクセス要求あると、それが無効にされてしまうという誤動作が生じるが、前記のようなタイミング保証Ｂによって、そのような問題が生じない。
【００３７】
この実施例では、上記準安定状態や遷移状態のときにクロックＣＫＡ又はＣＫＢが変化したときにも、同図のように状態遷移が生じて、最終的には００００又は００１０の２つの状態に安定し、正しく決められた優先順位に従ってポートの選択動作が実施される。この実施例では、最終的にはフリップフロップ回路ＦＦ３の出力信号によりフリップフロップ回路ＦＦ２の状態が判定され、その状態に応じて優先順位の高いポートが選択されるので、ポート数に無関係に正しく１つのポートを選択することができる。
【００３８】
上記のようにポートレジスタ（ＦＦ２）に取り込まれた情報から、プライオリティエンコ―ダにより実行ポートが決定され、実行ポートに対応したリクエスト受け付けレジスタＦＦ１がリセットされる。１ポートＳＲＡＭコアの実行完了時にはＤone 信号がアサートされ、フリップフロップ回路ＦＦ３がリセットされることにより、イベント発生回路のゲートＧ１，Ｇ２のゲートが開いて未実行のリクエスト要求が残っていれば、その次要求が引き続き実行に移される。
【００３９】
この実施例のハザードフリー非同期制御回路は、複数からなるクロックＣＫの入力を受けてその中からアクセス要求のある１つを選択し、１ポートＳＲＡＭに実行要求と対応するポートの実行アドレスおよびデータを出力する。ＳＲＡＭコアは実行が終った時に非制御回路に完了信号を出し、非制御回路は対応するポートの出力ラッチにデータを保持し、次の実行待ちのアドレスおよびデータを要求信号と共に再び出力する。即ち、非制御回路とＳＲＡＭコアは１種のハンドシェイク通信を行っている。
【００４０】
ただし、このようなＳＲＡＭコアのメモリ動作が終った時に非制御回路に完了信号を出力する方式では、ＳＲＡＭコアに実行可能状態となつた事を検出し、非制御回路に報告する機構が必要となり、既存のＳＲＡＭコアをそのまま流用することができない。従って前記図５の実施例のように、ＳＲＡＭコアのサイクル時間を模擬するレプリカ回路を追加し、非制御回路間で非同期通信を行うことにより、擬似的にハンドシェイク通信を実現している。１ポートＳＲＡＭと同等な面積でマルチポートＳＲＡＭを実現できるため、面積低減が可能となり、図５の実施例では、１ポートＳＲＡＭ部分をそのまま再利用できるから設計工数低減も図られる。
【００４１】
図９には、この発明に係る非同期制御回路の他の一実施例の回路図が示されている。この実施例は、４ポートのハザートフリー非同期制御回路に向けられており、入力部に設けられたレジスタは、４つのポートＡ，Ｂ，Ｃ，Ｄに対応して設けられるＳＲ−フリップフロップ回路ＦＦ１Ａ，ＦＦ１Ｂ，ＦＦ１Ｃ及びＦＦ１Ｄで構成され、対応するクロックＣＫＡ，ＣＫＢ，ＣＫＣ及びＣＫＤによりセットされる。
【００４２】
上記フリップフロップ回路ＦＦ１Ａ，ＦＦ１Ｂ，ＦＦ１Ｃ，ＦＦ１Ｄの出力信号Ａ，Ｂ，Ｃ，Ｄは、イベント発生回路を構成するゲート回路Ｇ１１〜Ｇ１７からなる組み合わせ論理回路に伝えられる。上記イベント発生回路は、上記フリップフロップ回路ＦＦ１Ａ，ＦＦ１Ｂ，ＦＦ１Ｃ，ＦＦ１Ｄの出力信号Ａ，Ｂ，Ｃ，Ｄの反転された論理和信号（Ａ＋Ｂ＋Ｃ＋Ｄ）を形成する。このイベント発生回路の出力信号は、イベントの受け付けを行うレジスタであるフリップフロップ回路ＦＦ３とポートレジスタであるフリップフロップ回路ＦＦ２Ａ，ＦＦ２Ｂ及びＦＦ２Ｃに伝えられるとともに、出力インバータ回路ＩＶ１１により反転されて１ポートＳＲＡＭにクロックＣＫとして伝えられる。
【００４３】
上記イベント発生回路を構成するナンドゲート回路Ｇ１１〜Ｇ１４の一方の入力には、フリップフロップ回路ＦＦ１Ａ，ＦＦ１Ｂ，ＦＦ１Ｃ，ＦＦ１Ｄの出力信号Ａ，Ｂ，Ｃ，Ｄがそれぞれ供給され、他方の入力には上記イベントの受け付けを行うフリップフロップ回路ＦＦ３の反転出力信号が供給される。つまり、フリップフロップ回路ＦＦ３がセットされると、上記ナンドゲート回路Ｇ１１，Ｇ１２，Ｇ１３及びＧ１４に供給されるゲート制御信号がロウレベルとなり、入力の受け付けが停止されられる。
【００４４】
この実施例では、ポートＡ、ポートＢ、ポートＣ、ポートＤの順番に優先順位が高くされる。つまり、ポートレジスタを構成するフリップフロップ回路ＦＦ２Ａ，ＦＦ２Ｂ，ＦＦ２Ｃのクロック端子ｃｋには上記イベント発生回路の出力信号が伝えられる。上記フリップフロップ回路ＦＦ２Ａのデータ端子ｄには、上記ポートＡに対応したフリップフロップ回路ＦＦ１Ａの出力信号Ａを受けるゲート回路Ｇ１１により反転された出力信号が伝えられる。上記フリップフロップ回路ＦＦ２Ｂのデータ端子ｄには、上記ポートＢに対応したフリップフロップ回路ＦＦ１Ｂの出力信号Ｂを受けるゲート回路Ｇ１２により反転された出力信号が伝えられる。上記ポートＣに対応したフリップフロップ回路ＦＦ１Ｃの出力信号Ｃを受けるゲート回路Ｇ１３により反転された出力信号が伝えられる。
【００４５】
イベントが発生した時点でゲート回路Ｇ１１〜Ｇ１３を通したフリップフロップ回路ＦＦ１Ａ〜ＦＦ１Ｃのセット／リセットを判定し、フリップフロップ回路ＦＦ１Ａがセット状態ならポートＡが選択され、上記フリップフロップ回路ＦＦ１Ａがリセット状態でフリップフロップ回路ＦＦ１Ｂがセット状態ならポートＢが選択され、上記フリップフロップ回路ＦＦ１ＡとＦＦ１Ｂがリセット状態でフリップフロップ回路ＦＦ１Ｃがリセット状態ならポートＣが選択され、上記フリップフロップ回路ＦＦ１Ａ，ＦＦ１Ｂ及びＦＦ１Ｃがリセット状態ならポートＤが選択される。つまり、イベントが発生したにも関わらず、上記３つのフリップフロップ回路ＦＦ１Ａ，ＦＦ１Ｂ及びＦＦ１Ｃがリセット状態であるということは、フリップフロップ回路ＦＦ１Ｄがセット状態であると判定するものである。      
【００４６】
上記のような優先順位に従ったポートの選択を行うために、上記フリップフロップ回路ＦＦ２Ａ〜ＦＦ２Ｃの出力信号ｑと、その反転信号がプライオリティエンコーダを構成するゲート回路Ｇ２１〜Ｇ２４に伝えられる。これらのゲート回路Ｇ２１〜Ｇ２４のうち、優先順位に従って１つの出力信号がロウレベルの選択状態にされる。これらのゲート回路Ｇ２１〜Ｇ２４の出力信号は上記イベント受け付けレジスタであるフリップフロップ回路ＦＦ３の出力信号によりゲートが制御されるゲート回路Ｇ２５〜Ｇ２８を通して、それぞれに対応する上記フリップフロップ回路ＦＦ１Ａ〜ＦＦ１Ｄのリセット端子に伝えられる。これにより、入力部のフリップフロップ回路ＦＦ１Ａ〜ＦＦ１Ｄのうち、前記図６の実施例と同様に選択されたポートに対応したものがリセットされる。
【００４７】
上記ゲート回路Ｇ２１ないしＧ２４は、出力用のインバータ回路ＩＶ１２〜ＩＶ１５を通し出力される。つまり、上記優先順位に対応して４つのゲート回路Ｇ２１〜Ｇ２４のうち１つの出力信号がロウレベルとなり、それが上記インバータ回路ＩＶ１２〜ＩＶ１５の対応したものにより反転されて出力される。これにより、ポート選択信号ＣＰＡ〜ＣＰＤのうちハイレベルにされたものが図示しない入力ラッチのセレクタを選択することとなる。この実施例では、前記図６に示したようなタイミング保証Ａ及びタイミング保証Ｂのための遅延回路は省略されているが、回路の動作条件に応じて適宜にもうければよい。この場合、タイミング保証Ａは、イベント発生回路の論理和出力を形成するゲート回路Ｇ１５、Ｇ１６，Ｇ１７での信号遅延を利用することにより実現することもできる。
【００４８】
図１０には、この発明に係る非同期型疑似４ポートＳＲＡＭの一実施例の全体ブロック図が示されている。同図の各回路ブロックは、公知の半導体集積回路の製造技術によって、単結晶シリコンのような１個の半導体基板上において形成される。この実施例の非同期型疑似４ポートＳＲＡＭは、１ポートＳＲＡＭと非同期制御回路とが組み合わされて構成される。また、入力回路としてはそれぞれがポート数に対応して設けられる制御信号入力用（ｗｅ１〜ｗｅ４）、書き込みデータ用（ｄ１〜ｄ４）及びアドレス用（ａ１〜ａ４）の各入力ラッチとセレクタ及び出力回路としてポート数に対応したデータ出力用（ｑ１〜ｑ４）の出力ラッチとが設けられる。
【００４９】
出力ラッチは、同図に拡大図として例示的に示されているように、ナンドゲート回路Ｇ３１〜Ｇ３４から構成されるイネーブル端子Ｅが設けられたセット／リセット−フリップフロップ回路から構成される。イネーブル端子Ｅには、選択された制御信号ｗｅとポート選択信号ｃｐ１〜ｃｐ４の論理信号が伝えられ、選択されたポートが読み出し動作のとき、それに対応した出力ラッチが有効とされて、センスアンプの出力信号が取り込まれる。      
【００５０】
１ポートＳＲＡＭは、特に制限されないが、１Ｋワード×７２ビット構成の同期ＳＲＡＭから構成される。それ故、メモリアレイは、デコーダにより７２個のメモリセルが選択され、選択されたメモリセルの記憶情報は、センスアンプにより増幅されて７２ビットの単位で、選択されたポートに対応した出力ラッチに出力される。書き込みドライバは、上記書き込みデータを受けて、選択されたポートに対応したデータがメモリアレイに書き込まれる。
【００５１】
この発明に係る非同期制御回路は、４つのポートから非同期で入力されるクロックｃｋ１〜ｃｋ４を受け、同時に複数のポートからクロックが供給されたときには優先順位に従って１つのポートを選択して同期ＳＲＡＭにクロックｃｋ、制御信号ｗｅ及びアドレスａを供給する。書き込み動作なら書き込みデータｄも取り込まれる。読み出し動作なら上記アドレスａにより選択されたメモリセルからの読み出し信号がデータ出力ｑとして出力される。非同期制御回路は、上記同期ＳＲＡＭに対応したサイクル時間レプリカ回路により形成された同期ＳＲＡＭの動作完了信号ｄｏｎｅを受け、未実行のポートからのアクセスを引き続いて順次に実行する。
【００５２】
図１１には、この発明に係る非同期型疑似４ポートＳＲＡＭの一実施例のチップブロック図が示されている。この実施例では、データ入力とデータ出力とが共通のデータ端子／ｉｏ１〜／ｉｏ４を用いて行われる。これに対応して、出力イーブル端子／ｏｅ１〜／ｏｅ４が設けられ、３状態出力機能を持つ出力バッファの動作制御信号とされる。出力イネーブル信号／ｏｅ１ないし／ｏｅ４がロウレベルのイーブルにされた出力バッファ回路の動作が有効とされて、対応する外部端子／ｉｏ１〜／ｉｏ４からデータが出力される。
【００５３】
ブラックボックスで示した内部回路は、前記非同期制御回路、サイクル時間レプリカ回路や入力ラッチ、セレクタ及び１ポートの同期ＳＲＡＭと出力ラッチとから構成される。外部端子／ｉｏ１〜／ｉｏ４から入力された書き込みデータは、書き込みデータ入力ｄ１〜ｄ４として上記ブラックボックスに設けられた入力ラッチに入力される。アドレス信号ａ１〜ａ４は、アドレス入力バッファを通して対応する入力ラッチに入力される。リードライト制御信号／ｒｗ１〜／ｒｗ４は、制御入力バッファを通して対応する入力ラッチに入力される。クロック端子ｃｋ１ないしｃｋ４に対応してクロックイネーブル端子／ｃｅ１ないし／ｃｅ４が設けられ、入力バッファを兼ねたゲート回路によりこれらの論理積が採られてブラックボックス内の非同期制御回路に伝えられるクロック信号ｃｋ１〜ｃｋ４が生成される。
【００５４】
図１２には、この発明に係る非同期型疑似４ポートＳＲＡＭの一実施例のピン配置図が示されている。この実施例の非同期型疑似４ポートＳＲＡＭは、ＢＧＡ(Ball Grid Array) パッケージに搭載される。図１１に示したようなチップが搭載される部分の中央部を除いて、半田ボール等からなる外部端子がグリッド状に配置され、上記４つのポートに対応したアドレス端子ａ１〜ａ４、データ端子ＩＯ１〜ＩＯ４、クロックイネーブル端子／ｃｅ１〜ｃｅ４、出力イネーブル端子／ｏｅ１〜／ｏｅ４、リードライト制御端子／ｒｗ１〜／ｒｗ４、クロック端子ｃｋ１〜ｃｋ４、及び複数が分散されて設けられた電源端子ｖｄｄと接地端子ｇｎｄが同図のように割り当てられる。
【００５５】
図１３には、図１２に示したＢＧＡパッケージの裏面図が示されている。図１２のピン配置図に対応して、半田ボール等からなる外部端子がグリッド状に配置されている様子が示されている。この実施例では、図１２において空き端子にも半田ボールが設けられる。      
【００５６】
図１４には、この発明に係る非同期型疑似４ポートＳＲＡＭの他の一実施例のチップブロック図が示されている。この実施例では、４つのポートうち２つのポートがランダム入出力用とされ、２つのポートがシリアル入出力用とされる。ランダム入出力用には、クロックｃｋ１とｃｋ２に対応した２つのポートが用いられる。これに対して、クロックｃｋ３とｃｋ４に対応した２つのポートがシリアル入出力用とされる。シリアル入出力のためにアドレスカウンタ１と２が設けられ、クロックｃｋ３とｃｋ４により上記アドレスカウンタ１と２のアドレス歩進動作が実行され、かかるアドレスカウンタ１と２により形成されたアドレス信号がアドレスａ３とａ４として対応するポートの入力ラッチに取り込まれる。
【００５７】
上記ポート１と２及び上記アドレスカウンタによりアドレス信ａ３とａ４を生成する部分を除いた部分は、前記図１１の実施例と同じ構成とされる。上記ポート３と４は、クロックイネーブル／ｃｅ３と／ｃｅ４を有効として、クロックｃｋ３とｃｋ４を入力するだけで、それぞれアドレスが＋１されて書き込み又は読み出しが実施される。これにより、連続したアドレスでのメモリセルの選択動作が行われるので、データのシリアル入力とシリアル出力とが可能になるものである。
【００５８】
ポート１〜３の３つのポートをランダム入出力用とし、残り１つのポート４をシリアル入出力用としてもよい。３つのポートを用いてメモリアレイにランダムにデータの書き換えを行い、１つのポートから順次にそれを出力させることができる。例えば、上記３つのポートを用いて画像や文字を更新し、表示装置の動作に合わせて上記１つのシリアルポートから定期的に表示データを出力させることができる。この場合、表示動作が画像や文字の更新に対して遅いときには上記シリアル用のポートの優先順位を最下位とすればよいし、表示動作を優先させるときには、上記シリアル用のポートの優先順位を最上位とすればよい。
【００５９】
図１５には、この発明に係る非同期型疑似マルチポートメモリの更に他の一実施例の基本的なブロック図が示されている。この実施例の非同期型疑似マルチポートメモリは、図５の実施例の変形例であり、非同期制御回路から非同期通信用インターフェイスを実現する制御信号ＤＲeady1 〜ＤＲeadyn が設けられる。この制御信号ＤＲeady1 〜ＤＲeadyn は、実行ポートの処理終了信号であり、ユーザー論理とマクロセルとの非同期通信を可能とするものである。
【００６０】
上記制御信号ＤＲeady1 〜ＤＲeadyn は、非同期型疑似マルチポートメモリをアクセスするマイクロプロセッサや上記ユーザー論理等は、例えば上記信号ＤＲeady1 を受けて次アクセスが許可されるようにしてもよい。１ないしｎポートに対して均等にメモリアクセスの機会を割り当てる場合には、未実行の最下位順位
のメモリアクセスの終了を待って上記信号ＤＲeady1 〜ＤＲeadyn が非同期制御回路からマイクロプロセッサやユーザー論理に返される。あるいは、上記制御信号ＤＲeady1 によって有効なデータが出力ラッチにあることを上記マイクロプロセッサやユーザー論理等に知らせるようにするものとしてもよい。上記ｎポートに対して均等にメモリアクセスの機会を割り当てる構成は、メモリアクセスを行うマイクロプロセッサやユーザー論理等において、メモリアクセスの要求をメモリサイクルのｎ倍の周期により行うようにすることでも実現できる。
【００６１】
図１６には、この発明に係る非同期型疑似マルチポートメモリを用いた信号処理システムの一実施例の概略ブロック図が示されている。図１６（ａ）の構成は、２ポートＳＲＡＭに前記非同期制御回路が組み込まれる。マイクロプロセッサＣＰＵ１は、２つのポートのうち１つのポートを占有してメモリアクセスを行う。これに対して、残り１つのポートは、非同期制御回路を介して２つのマイクロプロセッサＣＰ２とＣＰ３が非同期でメモリアクセスを行うようにするものである。この構成により、２ポートＳＲＡＭを用いつつ、等価的に３ポートＳＲＡＭを実現できる。この発明に係る非同期制御回路は、１ポートＳＲＡＭとの組み合わせに限定されるものではなく、１を含むＮポートのＳＲＡＭに非同期制御回路を組み込んで、Ｍポート（Ｍ＞Ｎ）の非同期ＳＲＡＭを実現することができるものである。この信号処理システムでは、互いにシステムクロックの異なるＣＰＵ１〜ＣＰＵ間でデータの授受を行うようにすることができる。
【００６２】
図１６（ｂ）では、非同期制御回路と演算器とを組み合わせて２つのマイクロプロセッサＣＰ１とＣＰ２により演算器を共用することができる。例えば、演算器としては除算器のように使用頻度が比較的少なく、演算結果が得られるまで多数のサイクル数を有するものに有益である。ＣＰＵ１又はＣＰＵ２は、互いに非同期で乗算命令を共用された演算器に送り、他の信号処理を行いながら演算結果が出たときにそれを取り出すことができるのでシステム構成が簡単で効率のよい信号処理が可能となる。このように非同期制御回路により制御される回路は、メモリ回路の他、信号入力とそれに対応した信号出力を行うものであれば何であってもよい。
【００６３】
図１７には、この発明に係る非同期制御回路に用いられるフリップフロップ回路の一実施例のブロック図が示されている。前記図６及び図９において、フリップフロップ回路ＦＦ２やＦＦ２Ａ〜ＦＦ２Ｃとして一般的なフリップフロップ回路を用いた場合には、メタステーブル状態（準安定状態）が発生する。つまり、フリップフロップ回路のように帰還ループを持って２つの安定状態を有する回路では、２つの安定状態の他にメタステーブル状態又は準安定状態と呼ばれる中間レベルにおいて一定の確率で安定することが知られている。このメタステーブル状態又は準安定状態は、通常ノイズや電源変動等により最終的には上記２つのいずれかの状態に安定するという一時的なものである。しかしながら、上記メタステーブル状態では中間レベルを出力してしまうので、前記図６の回路では、ゲート回路Ｇ４とＧ５の持つ論理しきい値電圧との関係で、ハイレベル／ロウレベルの相補関係であるはずのフリップフロップ回路ＦＦ２の出力信号が共に同じハイレベル又はロウレベルの入力信号と判定されてしまうような誤動作が発生する。このことは、図９のゲート回路Ｇ２１〜Ｇ２４においても同様である。
【００６４】
そこで、この実施例では、前記図６又は図９のフリップフロップ回路ＦＦ２、ＦＦ２Ａ〜ＦＦ２Ｃとしてメタステーブル状態を回避した同期化回路を用いるようにするものである。つまり、フリップフロップ回路２０と２１を用い、前記図６のイメンド発生回路からの非同期信号を前段のフリップフロップ回路２０のデータ端子Ｄに供給し、クロック端子には遅延回路ＤＬを通したクロック信号を供給する。そして、後段のフリップフロップ回路２１のデータ端子Ｄには、前段のフリップフロップ回路２０の出力信号Ｑを入力し、クロック端子には遅延回路ＤＬにより遅延させたクロック信号を供給する。この２段同期化回路では、前記のようにメタステーブル状態が通常ノイズや電源変動等により上記２つのいずれかの状態に安定するという特徴を利用したものであり、そのために遅延回路ＤＬは上記２つのいずれかの状態に安定するのに要する時間だけ遅らせた時間に設定される。このような２段同期化回路２０，２１を用いることにより、前記疑似マルチポートメモリでの誤動作を防止することができる。
【００６５】
図１８には、この発明に係る同期化回路の一実施例のブロック図が示されている。図１７の同期化回路では、メタステーブル状態が通常ノイズや電源変動等により上記２つのいずれかの状態に安定することを利用するものであり、そのために比較的長い遅延時間で後段側のフリップフロップ回路２１を動作させることが必要となる。このため、上記遅延時間だけ非同期信号の取り込みが遅れてしまい、マルチポートメモリに適用した場合にはメモリアクセス時間が長くなってしまう。そこで、この実施例では、非同期信号を高速に取り込むよう工夫されたものである。
【００６６】
非同期入力信号は、１段目としてのラッチ（又はフリップフロップ）回路１０のデータ端子Ｄに入力される。クロックは、クロック端子ＣＬＫに供給される。このようなラッチ回路１０においては、前記のようにある確率によってメタステーブル状態が発生する。ただし、このラッチ回路１０においては、メタステーブル状態においては、非反転出力Ｑと反転出力／Ｑから出力される出力信号に意図的に一定のオフセット電圧Ｖｏｆｆを持つように設定されている。そして、上記ラッチ回路１０の一対の出力端子Ｑと／Ｑは、増幅回路２０の一対の入力端子に供給されて増幅される。この増幅動作は、特に制限されないが、上記クロックが遅延回路３０によって遅延させられたタイミング信号によって増幅動作を開始するようにされる。
【００６７】
図１９には、この発明に係る同期化回路の一実施例の回路図が示されている。この実施例の同期化回路は２段のラッチ回路と出力ラッチ回路で構成され、１段目のラッチ回路は差動出力となっており、また２段目ラッチ回路は差動入力となっている。１段目のラッチ回路の差動出力と２段目のラッチ回路の差動入力は、２段目のラッチ回路と同一タイミングで制御されるＰチャネルＭＯＳＦＥＴＭＰ５，ＭＰ６で接続されている。また、２段目のラッチ回路は出力データを保持するための出力ラッチ回路に接続されている。
【００６８】
１段目のラッチ回路は入力と出力が交差接続された２個のＣＭＯＳインバータ回路が用いられる。一方のＣＭＯＳインバータ回路は、ＮチャネルＭＯＳＦＥＴＭＮ１とＰチャネルＭＯＳＦＥＴＭＰ１で構成される。他方のＣＭＯＳインバータ回路は、ＮチャネルＭＯＳＦＥＴＭＮ２とＰチャネルＭＯＳＦＥＴＭＰ２で構成される。上記ＰチャネルＭＯＳＦＥＴＭＰ１とＭＰ２のソースは、電源電圧ｖｄｄが供給される。ＮチャネルＭＯＳＦＥＴＭＮ１とＭＮ２のソースと回路の接地電位との間には、ＮチャネルＭＯＳＦＥＴＭＮ４が設けられる。そして、上記入力と出力とが交差接続された一対の入出力ノードと電源電圧ｖｄｄとの間には、プリチャージ又はプルアップ用のＰチャネルＭＯＳＦＥＴＭＰ３とＭＰ４が設けられている。上記一方のＣＭＯＳインバータ回路を構成するＮチャネルＭＯＳＦＥＴＭＮ１には、入力信号を受けるＮチャネルＭＯＳＦＥＴＭＮ３が並列形態に設けられる。このＭＯＳＦＥＴＭＮ３のゲートには、ノアゲート回路ＮＯＲを通して非同期入力信号Ｄとクロック信号ＣＬＫが供給される。そして、ＮチャネルＭＯＳＦＥＴＭＮ４及び上記ＰチャネルＭＯＳＦＥＴＭＰ３とＭＰ４のゲートには、クロック信号ＣＬＫが供給されている。
【００６９】
クロック信号ＣＬＫがロウレベルの場合は、ＰチャネルＭＯＳＦＥＴＭＰ３、ＭＰ４により上記ラッチ形態の２つのＣＭＯＳインバータ回路の交差接続された入力と出力は、電源電圧ｖｄｄのようなハイレベルにチャージアップ又はプルアップされる。この実施例では、メタステーブル状態で一対の出力信号にオフセット電圧Ｖｏｆｆを持たせるように上記一方のＣＭＯＳインバータ回路のＮチャネルＭＯＳＦＥＴＭＮ１は、他方のＣＭＯＳインバータ回路のＮチャネルＭＯＳＦＥＴＮＭ２に比べて１／１０程度の小さなサイズ（小さなコンダクタンス）にされている。
【００７０】
非同期入力信号Ｄがハイレベルの場合は、ノアゲート回路ＮＯＲの出力信号がロウレベルとなっており、ＮチャネルＭＯＳＦＥＴＭＮ３はオフ状態になっている。クロック信号ＣＬＫがロウレベルからハイレベルに変化すると、上記ＰチャネルＭＯＳＦＥＴＭＰ３とＭＰ４がオフ状態となり、上記ＮチャネルＭＯＳＦＥＴＭＮ４がオン状態になり、ＮチャネルＭＯＳＦＥＴＭＮ２のドレイン電圧の変化はＮチャネルＭＯＳＦＥＴＭＮ１に比べて速いため、ＮチャネルＭＯＳＦＥＴＭＮ１はオフ状態、ＮチャネルＭＯＳＦＥＴＭＮ２はオン状態になり、上記ロウレベルの非同期入力信号に対応したデータを保持することができる。
【００７１】
非同期入力信号Ｄがロウレベルの場合は、ノアゲート回路ＮＯＲの出力信号がハイレベルとなっており、ＮチャネルＭＯＳＦＥＴＭＮ３がオン状態となっている。このため、クロック信号ＣＬＫがロウレベルからハイレベルに変化して、上記ＰチャネルＭＯＳＦＥＴＭＰ３とＭＰ４がオフ状態となり、上記ＮチャネルＭＯＳＦＥＴＭＮ４がオン状態になると、上記ＮチャネルＭＯＳＦＥＴＭＮ３のオン状態に対応してＮチャネルＭＯＳＦＥＴＭＮ２がオフ状態、ＮチャネルＭＯＳＦＥＴＭＮ１がオン状態となり、上記とは逆のデータを保持することができる。この保持状態では、上記ノアゲート回路ＮＯＲの出力信号のロウレベルによってＮチャネルＭＯＳＦＥＴＭＮ３はオフ状態にされて、上記ＮチャネルＭＯＳＦＥＴＭＮ１とＭＮ２のオン／オフに対応したデータ保持が行われる。
【００７２】
クロック信号ＣＬＫに対して非同期信号Ｄがほぼ同時に入力された場合は、ＮチャネルＭＯＳＦＥＴＭＮ１とＭＮ２に流れる電流が釣り合い、暫くの間、メタステーブル状態（準安定状態）になる可能性がある。このようなメタステーブル状態（準安定状態）は、クロックＣＬＫの周波数と非同期入力信号を発生する回路の周波数が異なる場合に、ある一定の頻度で発生することが予想される。この実施例では、上記準安定状態が発生した場合には、ＮチャネルＭＯＳＦＥＴＭＮ１のサイズがＮチャネルＭＯＳＦＥＴＭＮ２に比べて小さいため、両ＭＯＳＦＥＴに同じ電流を流すためには、必ずＮチャネルＭＯＳＦＥＴＭＮ１のゲート電圧は、ＮチャネルＭＯＳＦＥＴＭＮ２のゲート電圧より高い電圧になるものである。このことは、ラッチ回路の非反転出力信号（Ｑ）と反転出力信号（／Ｑ）からなる出力信号には一定のオフセット電圧Ｖｏｆｆを持つことを意味する。このようにして、１段目のラッチ回路においては、メタステーブル状態が発生しても、非反転出力（ポジ）信号と反転出力（ネガ）信号の出力信号間ではＮチャネルＭＯＳＦＥＴＭＮ１とＭＮ２のサイズの比に対応した電位差が発生させられる。
【００７３】
２段目のラッチ回路は、上記オフセット電圧Ｖｏｆｆをセンスするための増幅回路であり、特に制限されないが、高感度で低消費電力とするためにラッチ回路が利用される。このラッチ回路は、ＮチャネルＭＯＳＦＥＴＭＮ５とＰチャネルＭＯＳＦＥＴＭＰ７で構成される一方のＣＭＯＳインバータ回路と、ＮチャネルＭＯＳＦＥＴＭＮ６とＰチャネルＭＯＳＦＥＴＭＰ８で構成される他方のＣＭＯＳインバータ回路の入力と出力とが交差接続されて構成される。上記ＰチャネルＭＯＳＦＥＴＭＰ７とＭＰ８のソースは、電源電圧ｖｄｄが供給される。ＮチャネルＭＯＳＦＥＴＭＮ５とＭＮ６のソースと回路の接地電位との間には、ＮチャネルＭＯＳＦＥＴＭＮ７が設けられる。上記ラッチ回路の一対の入力端子には、上記１段目のラッチ回路の一対の出力端子とＰチャネルＭＯＳＦＥＴＭＰ５とＭＰ６により接続されている。そして、上記ＰチャネルＭＯＳＦＥＴＭＰ５とＭＰ６及びＮチャネルＭＯＳＦＥＴＭＮ７ゲートには、ディレイ回路ＤＬＹで遅延させられた信号ＤＣＬＫが供給される。このようなラッチ回路を利用しているので、上記オフセット電圧Ｖｏｆｆを取り込むためにクロック信号ＣＬＫをディレイ回路ＤＬＹで遅延させた信号ＤＣＬＫで動作させられる。
【００７４】
つまり、遅延時間だけ遅れて信号ＤＣＬＫがロウレベルからハイレベルに変化すると、ＰチャネルＭＯＳＦＥＴＭＰ５とＭＰ６のオフ状態になり、仮にメタステーブル状態が発生した場合でも前記オフセット電圧Ｖｏｆｆが２段目のラッチ回路の入力に取り込まれている。上記信号ＤＣＬＫのハイレベルによりＮチャネルＭＯＳＦＥＴＭＮ７がオン状態になる。２段目のラッチ回路のＮチャネルＭＯＳＦＥＴＭＮ５とＭＮ６は同じ大きさ、ＰチャネルＭＯＳＦＥＴＭＰ７とＭＰ８も同じ大きさのＭＯＳＦＥＴにしている。つまり、入力オフセットはプロセセスバラツキに対応した小さいものに設計してある。この２段目のラッチ回路は、例えばダイナミック型メモリのセンスアンプと同様にノードＮ１とＮ２の電位差を増幅するように動作する。
【００７５】
実際の回路では、前記のチップ内のプロセスばらつきで、この２段目のラッチ回路の入力電圧にオフセットばらつきが存在する。しかし、１段目のラッチ回路でメタステーブル状態が発生したときの出力電位差であるオフセット電圧Ｖｏｆｆは、２段目ラッチ回路の入力オフセット電圧ばらつきより大きくなるように設計されているので、１段目のラッチ回路でメタステーブル状態（準安定状態）が発生した場合でも、２段目のラッチ回路で上記オフセット電圧Ｖｏｆｆを増幅して安定出力状態に対応した一方の論理レベルに確定させることができる。上記遅延回路ＤＬＹの遅延時間は、１段目のラッチ回路でのメタステーブル状態でのオフセット電圧Ｖｏｆｆを第２ラッチ回路に取り込むに必要な極く短い時間でよいので、言い換えるならば、前記図１７の同期化回路のようにメタステーブル状態が解消されるであろう時間まで待たなくてよいので、前記図１７の同期化回路のような遅延時間の大幅な増加を無くす事が可能である。
【００７６】
上記第１段目及び第２段目のラッチ回路は、クロックＣＬＫに対応して動作／非動作（プリチャージ又はリセット期間）を有する。このため、非動作期間において、その直前に取り込んだ非同期信号（メタステーブル状態を含む）を保持するために、出力ラッチ回路が設けられる。出力ラッチ回路は、上記２段目のラッチ回路の一対のノードＮ１とＮ２の信号は、インバータ回路ＩＮＶ１とＩＮＶ２に入力される。このインバータ回路ＩＮＶ１とＩＮＶ２の出力信号は、一方においてＮチャネルＭＯＳＦＥＴＭＮ８とＭＮ９のゲートに伝えられる。上記インバータ回路ＩＮＶ１とＩＮＶ２の出力信号は、他方においてインバータ回路ＩＮＶ４とＩＮＶ３に交差的に入力されて、反転出力信号がＰチャネルＭＯＳＦＥＴＭＰ９とＭＰ１０のゲートに伝えられる。上記ＮチャネルＭＯＳＦＥＴＭＮ８とＭＰ９及び上記ＮチャネルＭＯＳＦＥＴＭＮ９とＭＰ１０は、電源電圧ｖｄｄと回路の接地電位ｖｓｓとの間にそれぞれ直列接続されてトライステート出力回路を構成する。上記ＭＯＳＦＥＴＭＮ８とＭＰ９の共通接続されたドレイン出力信号と、上記ＭＯＳＦＥＴＭＮ９とＭＰ１０の共通接続されたドレイン出力信号とは、インバータ回路ＩＮＶ５とＩＮＶ６の入力と出力とが交差接続されてなるラッチ回路に伝えられる。このラッチ回路の一方の出力信号は、インバータ回路ＩＮＶ７を通して同期化信号を得る出力端子Ｑに伝えられる。
【００７７】
クロック信号ＣＬＫがロウレベルのプリチャージ（リセット）期間では、前記ノードＮ１とＮ２が共にハイレベルにプリチャージされる。それ故、インバータ回路ＩＮＶ１とＩＮＶ２の出力信号が共にロウレベルにされるので、上記トライステート出力回路を構成するＮチャネルＭＯＳＦＥＴＭＮ８とＭＮ９はオフ状態にされる。また、インバータ回路ＩＮＶ３とＩＮＶ４の出力信号は共にハイレベルにされので、上記トライステート出力回路を構成するＰチャネルＭＯＳＦＥＴＭＮ９とＭＮ１０はオフ状態にされる。したがって、上記クロック信号ＣＬＫがロウレベルのときには、これら２つのトライステート出力回路は、共に出力がハイインピーダンス状態にされるので、上記インバータ回路ＩＮＶ５とＩＮＶ６からなるラッチ回路は、上記プリチャージ以前の状態を保持して出力させる。
【００７８】
クロック信号ＣＬＫがハイレベルにされると、非同期信号Ｄに対応して上記１段目及び２段目のラッチ回路ではノードＮ１とＮ２を２値レベルに確定させる。例えば、ノードＮ１がハイレベルで、ノードＮ２がロウレベルならＰチャネルＭＯＳＦＥＴＭＰ９とＮチャネルＭＯＳＦＥＴＭＮ９がオン状態となり、ＰチャネルＭＯＳＦＥＴＭＰ１０とＮチャネルＭＯＳＦＥＴＭＮ８がオフ状態となって、ＭＯＳＦＥＴＭＰ９とＭＮ８からなる出力回路からはハイレベルが、ＭＯＳＦＥＴＭＰ１０とＭＮ９からなる出力回路からはロウレベルが出力されるので、インバータ回路ＩＮＶ５とＩＮＶ６からなるラッチ回路にはそれに対応した信号を取り込んで、出力端子Ｑからロウレベルを出力させる。逆に、ノードＮ１がロウレベルで、ノードＮ２がハイレベルなら上記とは出力端子Ｑからはハイレベルが出力される。
【００７９】
図２０には、図１９の同期化回路のメタステーブル状態での動作を説明するための波形図が示されている。クロック信号ＣＬＫの立ち上がりに対して非同期信号Ｄがほぼ同時に入力され、例えば、ロウレベルからハイレベルのようなレベル遷移状態であることによってＮチャネルＭＯＳＦＥＴＭＮ１とＭＮ２に流れる電流が釣り合ってメタステーブル状態となっても、オフセット電圧Ｖｏｆｆが発生されるように回路設計が行われているので、それが２段目のラッチ回路ノードＮ１とＮ２に伝えられる。クロック信号ＣＬＫの遅延信号ＤＣＬＫのハイレベルにより、２段目のラッチ回路が増幅動作を開始して上記オフセット電圧Ｖｏｆｆに対応してノードＮ２を論理ハイレベルに、ノードＮ１を論理ロウレベルに確定させる。したがって、出力ラッチ回路がロウレベルの出力信号を保持していた状態なら、上記遅延信号ＤＣＬＫに対応して出力端子Ｑがロウレベルからハイレベルに変化して、同期化された出力信号を得ることができる。なお、このようなメタステーブル状態の無い論理出力信号（Ｑ）は、必ずしも正しい論理レベルであるとは限らない。つまり、この実施例の同期化回路は、メタステーブル状態の無い論理出力信号を形成することに意味があり、前記のような論理的な誤動作を防止する上で有益なものである。
【００８０】
図２１には、この発明に係る同期化回路を使用した非同期マルチポートメモリの他の一実施例のブロック図が示されている。アドレス入力１、データ入力１、制御入力１はクロック１に同期しており、アドレス入力２、データ入力２、制御入力２はクロック２に同期している。クロック１またはクロック２が入力されると、どちらのクロックが入力されたかを同期化回路８によって確定し、その信号を元にセレクタ１２〜１４とフリップフロップ１６、１７を動作させるクロック信号をポート選択制御回路１１が生成する。ポート選択制御回路１１の詳細は、前記図６に示した回路と同一である。
【００８１】
同期化回路８として、通常のフリップフロップ回路を使用した場合は、フリップフロップ回路に前記のようなメタステーブル状態（準安定状態）が発生した場合には論理回路に矛盾が発生して前記のような誤動作が発生する。そこで、前記図１７のように２段のフリップフロップ回路を用い、メタステーブル状態が解消するまで待つようにすると遅延時間が増加してしまう。前記図１９図に示したような同期化回路を使った場合は、図１７の２段構成のラッチ回路を用いた同期化回路に比べてタイミングマージンを小さくすることが可能となり、高速な非同期擬似マルチポートメモリを実現することができる。このため、高速メモリにおいても、回路を２重化したマルチポートメモリと比べて高集積な擬似マルチポートメモリを実現することができ、半導体メモリの低コスト化が可能となる。
【００８２】
図２２には、この発明の他の一実施例のブロック図が示されている。この実施例では、非同期入力信号とシステムクロックは、前記図１８又は図１９に示したような同期化回路４０に入力される。そして、出力信号Ｑは、組合せ論理回路４１に供給され、その出力信号が上記システムクロックで動作するフリップフロップ回路４２に取り込まれる。論理信号処理回路の基本構成はフリップフロップＦＦ−論理段−フリップフロップＦＦを単位とする組み合わせで構成され、上記フリップフロップＦＦに対してクロックパルスが供給される。論理段の入力側に設けられたフリップフロップＦＦに保持された信号は、クロックパルスに同期してかかる論理段に入力される。論理段では、入力信号に対応して論理処理を行ない、出力側に設けられたフリップフロップＦＦの入力端子に伝える。出力側のフリップフロップＦＦは、次のクロックパルスに同期して上記論理段での出力信号を取り込み保持する。このようにして、クロックパルスに同期した論理シーケンスが実行される。この実施例の同期化回路を非同期入力信号の取り込みに用いると、非同期入力に対して、前記図１７のような同期化回路を用いた場合のように１クロック分の遅延なく信号処理を直ちに行うようにすることができる。この場合、遅延回路ＤＬＹでの遅延時間分だけ組合せ論理回路４１に伝えられる入力信号が若干遅くなるので、その分を補うように論理段での信号遅延が短くなるように設計すればよい。
【００８３】
以上本発明者によってなされた発明を、前記実施形態に基づき具体的に説明したが、本発明は、前記実施形態に限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能である。例えば、前記のイベント発生回路やプライオリティエンコーダの具体的構成は、前記のような機能を実現するものであれば何であってもよい。ｎポートに対して均等にメモリアクセスの機会を割り当てる必要はない。例えば、優先順位の高いマイクロプロセッサやユーザー論理等からメモリアクセスが常に行われ、優先順位の低いマイクロプロセッサやユーザー論理等は、空き状態のときにのみアクセスが許されるようにするものであってもよい。メモリアクセスを行う装置としては、上記マイクロプロセッサやユーザー論理の他、表示動作を行う制御装置や直接メモリアクセス制御装置等何であってもよい。
【００８４】
前記図１９の実施例回路において、１段目のラッチ回路は、ＰチャネルＭＯＳＦＥＴ側に前記のようなオフセット出力電圧Ｖｏｆｆを発生させるようなサイズ比を持たせ、入力信号をＰチャネルＭＯＳＦＥＴで受けるようにしてもよい。この場合のプリチャージレベルは、回路の接地電位のようなロウレベルにされる。したがって、出力信号を２段目のラッチ回路に伝えるスイッチＭＯＳＦＥＴは、ＮチャネルＭＯＳＦＥＴが用いられる。また、このスイッチＭＯＳＦＥＴとしては、ＰチャネルＭＯＳＦＥＴとＮチャネルＭＯＳＦＥＴとを並列接続したＣＭＯＳスイッチを用いるものであってもよい。２段目のラッチ回路は、単に増幅回路で構成してもよい。例えば、クロック信号ＣＬＫのハイレベルで動作状態にされる差動増幅回路を利用することもできる。このような差動回路を用いた場合には、上記遅延回路ＤＬＹを省略することができる。上記のような差動回路を用いた場合には、出力信号を電源電圧ｖｄｄ対応したハイレベルと回路の接地電位に対応したロウレベルに変換する出力回路が設けられる。この発明は、非同期制御回路とそれを用いた非同期マルチポートメモリ等の半導体集積回路装置に広く利用できる。
【００８５】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば、下記のとおりである。非同期制御回路として、互いに非同期で発生される複数のアクセス要求信号と上記複数のアクセス要求信号のそれぞれに対応した複数の入力信号とを受けて少なくとも１つのアクセス要求に対応して起動し、その起動状態で１ないし複数のアクセス要求の中から１つのアクセス要求を選択し、それに対応した入力信号を受け付けて、所定の回路動作を実行する回路機能ブロックに対して当該入力信号を伝え、当該入力信号に対応した動作終了後に未実行のアクセス要求に対応した入力信号の受け付けを行うことにより、非同期動作を実現しつつポート数に制約のなくすることができる。
【００８６】
半導体集積回路装置に非同期制御回路とメモリ回路とを設け、上記非同期制御回路は、互いに非同期で発生される複数のアクセス要求信号と上記複数のアクセス要求信号のそれぞれに対応した複数の入力信号とを受けて少なくとも１つのアクセス要求に対応して起動し、その起動状態で１ないし複数のアクセス要求の中から１つのアクセス要求を選択し、それに対応した入力信号を受け付けて、所定の回路動作を実行する回路機能ブロックに対して当該入力信号を伝え、当該入力信号に対応した動作終了後に未実行のアクセス要求に対応した入力信号の受け付けを行って上記メモリ回路をアクセスすることにより、小面積の非同期動作でポート数に制約のない多ポートメモリを実現できる。
【図面の簡単な説明】
【００８７】
【図１】この発明に係る非同期型疑似マルチポートメモリの一実施例を示す概念図である。
【図２】図１の非同期制御回路に要求されるクロック競合関係を説明するためのタイミング図である。
【図３】この発明に係る非同期型疑似マルチポートメモリの一実施例を示す基本的なブロック図である。
【図４】この発明に係る非同期型疑似マルチポートメモリの動作を説明するための簡易タイミング図である。
【図５】この発明に係る非同期型疑似マルチポートメモリの他の一実施例を示す基本的なブロック図である。
【図６】この発明に係る非同期制御回路の一実施例を示す回路図である。
【図７】この発明に係る非同期制御回路の動作の一例を説明するための状態遷移図である。
【図８】この発明に係る非同期制御回路の動作の一例を説明するための状態遷移図である。
【図９】この発明に係る非同期制御回路の他の一実施例を示す回路図である。
【図１０】この発明に係る非同期型疑似４ポートＳＲＡＭの一実施例を示す全体ブロック図である。
【図１１】この発明に係る非同期型疑似４ポートＳＲＡＭの一実施例を示すチップブロック図である。
【図１２】この発明に係る非同期型疑似４ポートＳＲＡＭの一実施例を示すピン配置図である。
【図１３】図１２に示したＢＧＡパッケージの裏面図である。
【図１４】この発明に係る非同期型疑似４ポートＳＲＡＭの他の一実施例を示すチップブロック図である。
【図１５】この発明に係る非同期型疑似マルチポートメモリの更に他の一実施例を示す基本的なブロック図である。
【図１６】この発明に係る非同期型疑似マルチポートメモリを用いた信号処理システムの一実施例を示す概略ブロック図である。
【図１７】この発明に係る非同期制御回路に用いられるフリップフロップ回路の一実施例を示すブロック図である。
【図１８】この発明に係る同期化回路の一実施例を示すブロック図である。
【図１９】この発明に係る同期化回路の一実施例を示す回路図である。
【図２０】図１９の同期化回路のメタステーブル状態での動作を説明するための波形図である。
【図２１】この発明に係る同期化回路を使用した非同期マルチポートメモリの他の一実施例を示すブロック図である。
【図２２】この発明の他の一実施例を示すブロック図である。
【符号の説明】
【００８８】
ＦＦ１Ａ〜ＦＦ１Ｄ…フリップフロップ回路（入力部）、ＦＦ２，ＦＦ２Ａ〜ＦＦ２Ｃ…フリップフロップ回路（ポートレジスタ）、ＦＦ３…フリップフロップ回路、Ｇ１〜Ｇ３４…ゲート回路、ＩＶ１〜ＩＶ１５…インバータ回路、ＤＬ１，ＤＬ２…遅延回路、ＣＰＵ１〜ＣＰＵ３…マイクロプロセッサ（ユーザー論理）、
１〜６、８…同期化回路、９…ゲート回路、１１…ポート選択制御回路、１６、１７、２０〜２１、４２…フリップフロップ、１２〜１４：セレクタ、１５…クロック同期形メモリ、１０…１段目のラッチ回路、２０…増幅回路、３０…遅延回路、ＭＮ１〜ＭＮ９…ＮチャネルＭＯＳＦＥＴ、ＭＰ１〜ＭＰ１０…ＰチャネルＭＯＳＦＥＴ、ＮＯＲ…ノアゲート回路、ＤＬＹ…遅延回路、ＩＮＶ１〜ＩＮＶ７…インバータ回路。
【図１】
2005044334.tif 000003
【図２】
2005044334.tif 000004
【図３】
2005044334.tif 000005
【図４】
2005044334.tif 000006
【図５】
2005044334.tif 000007
【図６】
2005044334.tif 000008
【図７】
2005044334.tif 000009
【図８】
2005044334.tif 000010
【図９】
2005044334.tif 000011
【図１０】
2005044334.tif 000012
【図１１】
2005044334.tif 000013
【図１２】
2005044334.tif 000014
【図１３】
2005044334.tif 000015
【図１４】
2005044334.tif 000016
【図１５】
2005044334.tif 000017
【図１６】
2005044334.tif 000018
【図１７】
2005044334.tif 000019
【図１８】
2005044334.tif 000020
【図１９】
2005044334.tif 000021
【図２０】
2005044334.tif 000022
【図２１】
2005044334.tif 000023
【図２２】
2005044334.tif 000024