(57)【特許請求の範囲】
【請求項１】
第１クロック信号に同期してデータの書き込みを行い、第２クロック信号に同期してデータの読み出しを行うメモリ装置であって、
前記第１クロック信号に同期した書き込み要求信号が入力されると、前記書き込み要求信号を前記第２クロック信号に同期化した読み出し待ち信号を出力し、前記第２クロック信号に同期した読み出し要求信号が入力されると、前記読み出し要求信号を前記第１クロック信号に同期化した書き込み待ち信号を出力する要求調停部と、
前記書き込み待ち信号が出力されていないことを条件に生成される書き込みイネーブル信号が前記第１クロック信号に同期して入力されると、前記第１クロック信号を選択して出力し、前記読み出し待ち信号が出力されていないことを条件に生成される読み出しイネーブル信号が前記第２クロック信号に同期して入力されると、前記第２クロック信号を選択して出力するクロック選択部と、
前記書き込みイネーブル信号が入力されると、前記クロック選択部において選択されたクロック信号に同期して、書き込みポインタに応じたアドレスにデータを書き込み、前記読み出しイネーブル信号が入力されると、前記クロック選択部において選択されたクロック信号に同期して、読み出しポインタに応じたアドレスからデータを読み出すメモリ部と、
前記書き込みイネーブル信号が入力されると、前記クロック選択部において選択されたクロック信号に同期して前記書き込みポインタを更新する書き込みポインタ更新部と、
前記読み出しイネーブル信号が入力されると、前記クロック選択部において選択されたクロック信号に同期して前記読み出しポインタを更新する読み出しポインタ更新部と、
前記書き込みポインタ及び前記読み出しポインタに基づいて、前記メモリ部に蓄積されたデータの数に関わる状態信号を生成する状態信号生成部と
を有することを特徴とするメモリ装置。
【請求項２】
前記要求調停部は、
前記読み出し要求信号を前記第１クロック信号に同期化する第１同期化部と、
前記書き込み要求信号を前記第２クロック信号に同期化する第２同期化部と、
前記読み出し要求信号を前記第１クロック信号に同期化した信号（以下、「第１同期化信号」と記す。）が前記第１同期化部において出力される場合に、前記第２同期化部への前記書き込み要求信号の入力を抑止する、又は、前記書き込み要求信号を前記第２クロック信号に同期化した信号（以下、「第２同期化信号」と記す。）が前記第２同期化部において出力される場合に、前記第１同期化部への前記読み出し要求信号の入力を抑止する調停制御部とを含む
ことを特徴とする請求項１に記載のメモリ装置。
【請求項３】
前記調停制御部は、前記書き込み要求信号が入力された場合、前記第１同期化信号が前記第１同期化部において出力されていないことを条件として、前記書き込み要求信号を前記第１クロック信号に同期して保持するとともに、当該保持した書き込み要求信号を前記第２同期化部へ入力し、前記書き込み要求信号を保持しているときは、前記書き込み待ち信号の出力を抑止し、前記書き込み要求信号の入力が終了すると、前記書き込み要求信号の保持を解除し、前記書き込み要求信号を保持していないときは、前記第１同期化部の前記第１同期化信号に応じた前記書き込み待ち信号を出力する
ことを特徴とする請求項２に記載のメモリ装置。
【請求項４】
前記調停制御部は、前記読み出し要求信号が入力された場合、前記第２同期化信号が前記第２同期化部において出力されていないことを条件として、前記読み出し要求信号を前記第２クロック信号に同期して保持するとともに、当該保持した読み出し要求信号を前記第１同期化部へ入力し、前記読み出し要求信号を保持しているときは、前記読み出し待ち信号の出力を抑止し、前記読み出し要求信号の入力が終了すると、前記読み出し要求信号の保持を解除し、前記読み出し要求信号を保持していないときは、前記第２同期化部の前記第２同期化信号に応じた前記読み出し待ち信号を出力する
ことを特徴とする請求項２に記載のメモリ装置。
【請求項５】
前記調停制御部は、前記第２同期化部から前記第２同期化信号が出力された場合、前記読み出し要求信号が入力されていないことを条件として、前記第２同期化信号を前記第２クロック信号に同期して保持するとともに、当該保持した第２同期化信号を前記読み出し待ち信号として出力し、前記第２同期化信号を保持しているときは、前記第１同期化部への前記読み出し要求信号の入力を抑止し、前記第２同期化部からの前記第２同期化信号の出力が終了すると、前記第２同期化信号の保持を解除するとともに前記読み出し待ち信号の出力を終了し、前記第２同期化信号を保持していないときは、入力される前記読み出し要求信号に応じた信号を前記第１同期化部に入力する
ことを特徴とする請求項２に記載のメモリ装置。
【請求項６】
前記調停制御部は、前記第１同期化部から前記第１同期化信号が出力された場合、前記書き込み要求信号が入力されていないことを条件として、前記第１同期化信号を前記第１クロック信号に同期して保持するとともに、当該保持した第１同期化信号を前記書き込み待ち信号として出力し、前記第１同期化信号を保持しているときは、前記第２同期化部への前記書き込み要求信号の入力を抑止し、前記第１同期化部からの前記第１同期化信号の出力が終了すると、前記第１同期化信号の保持を解除するとともに前記書き込み待ち信号の出力を終了し、前記第１同期化信号を保持していないときは、入力される前記書き込み要求信号に応じた信号を前記第２同期化部に入力する
ことを特徴とする請求項２に記載のメモリ装置。
【請求項７】
前記クロック選択部において選択されたクロック信号に同期してそれぞれ動作し、スキャンテストを実施する場合においてシリアルデータを転送するシフトレジスタを構成するように縦続接続される複数のフリップフロップを含んでおり、
前記クロック選択部は、
前記複数のフリップフロップが前記シフトレジスタを構成する第１の動作モードにおいては、前記第１クロック信号又は前記第２クロック信号の何れか一方を選択して出力し、
前記複数のフリップフロップにそれぞれデータを保持させる第２の動作モードにおいては、前記書き込みイネーブル信号が入力される場合に前記第１クロック信号を選択して出力し、前記読み出しイネーブル信号が入力される場合に前記第２クロック信号を選択して出力する
ことを特徴とする請求項１乃至６のいずれか一項に記載のメモリ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、異なるクロック信号に同期して読み出しと書き込みが行われるメモリ装置に係り、例えば、非同期ＦＩＦＯメモリ装置に関するものである。
【背景技術】
【０００２】
ＦＩＦＯメモリ装置は、データを一時的に蓄積するバッファとして一般的に使用されている。特に、異なるクロック信号に同期した回路ブロック間でデータをやり取りする場合などにおいては、読み出しと書き込みが非同期でも動作可能な非同期ＦＩＦＯメモリ装置が使用される。
【０００３】
図１６は、特許文献１に記載される従来の非同期ＦＩＦＯメモリ装置の構成を示す図である。
一般にＦＩＦＯメモリ装置は、書き込み先のアドレス（書き込みポインタ）を生成するカウンタと、読み出し先のアドレス（読み出しポインタ）を生成するカウンタをそれぞれ備えるとともに、書き込みポインタと読み出しポインタの比較回路を備える。この比較回路は、現在の記憶状態（満状態／空状態）やデータ蓄積数を示す信号を生成する。
図１６に示す従来の非同期ＦＩＦＯメモリ装置３は、書き込み用のクロック信号ＷＣＬＫに基づいて動作する回路領域（ＷＣＬＫドメイン）と、読み出し用のクロック信号ＲＣＬＫに基づいて動作する回路領域（ＲＣＬＫドメイン）を有する。書き込みポインタを生成するカウンタ３２＿１はＷＣＬＫドメインに設けられ、読み出しポインタを生成するカウンタ３３＿１はＲＣＬＫドメインに設けられている。書き込みポインタと読み出しポインタがそれぞれ別のクロックドメインで生成されることから、比較回路もそれぞれのクロックドメインに独立して設けられている（３２＿５，３３＿５）。
【０００４】
また、図１６に示す非同期ＦＩＦＯメモリ装置３では、２つのクロックドメインにそれぞれ設けられた比較回路（３２＿５，３３＿５）において書き込みポインタと読み出しポインタを比較する必要があることから、別のクロックドメインで生成されたポインタを同期化するための同期化回路が各クロックドメインに設けられている（３２＿２，３３＿２）。
【０００５】
更に、図１６に示す非同期ＦＩＦＯメモリ装置３のカウンタ３２＿１，３３＿１では、書き込みポインタ，読み出しポインタがグレイコードとして生成される。複数のビットが同時に変化し得るコード（バイナリコード等）の場合、同期化の際に全く異なる順番のコードへ誤って変換される可能性があるが、１ビットずつしか変化しないコード（グレイコード，ジョンソン・カウンタによるコードなど）は、そのような誤変換が生じないという利点がある。ただし、グレイコードはバイナリコードに比べてビット長が長く、そのままで比較処理を行うと回路規模が大きくなるため、図１６に示す非同期ＦＩＦＯメモリ装置３では、比較回路（３２＿５，３３＿５）に入力される各ポインタをグレイコードからバイナリコードへ変換する回路が設けられている（３２＿３，３２＿４，３３＿３，３３＿４）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１０−２６８３０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
図１６に示す非同期ＦＩＦＯメモリ装置３では、２つのクロックドメイン（ＷＣＬＫドメイン，ＲＣＬＫドメイン）にそれぞれポインタ生成用のカウンタ（３２＿１，３３＿１）と比較回路（３２＿５，３３＿５）が設けられていることから、互いに他方のクロックドメインで生成されたポインタを参照するための同期化回路（３２＿２，３３＿２）が必要となる。また、多ビットのポインタを同期化することによる誤変換を防ぐため、グレイコードからバイナリコードへの変換回路（３２＿３，３２＿４，３３＿３，３３＿４）も必要となる。従って、回路規模が大きくなり、設計が複雑化するという問題がある。
【０００８】
本発明はかかる事情に鑑みてなされたものであり、その目的は、異なるクロック信号に同期して読み出しと書き込みを行うことが可能でありながら、回路規模を小さくすることができるメモリ装置を提供することにある。
【課題を解決するための手段】
【０００９】
本発明に係るメモリ装置は、第１クロック信号に同期してデータの書き込みを行い、第２クロック信号に同期してデータの読み出しを行うメモリ装置であって、前記第１クロック信号に同期した書き込み要求信号が入力されると、前記書き込み要求信号を前記第２クロック信号に同期化した読み出し待ち信号を出力し、前記第２クロック信号に同期した読み出し要求信号が入力されると、前記読み出し要求信号を前記第１クロック信号に同期化した書き込み待ち信号を出力する要求調停部と、前記書き込み待ち信号が出力されていないことを条件に生成される書き込みイネーブル信号が前記第１クロック信号に同期して入力されると、前記第１クロック信号を選択して出力し、前記読み出し待ち信号が出力されていないことを条件に生成される読み出しイネーブル信号が前記第２クロック信号に同期して入力されると、前記第２クロック信号を選択して出力するクロック選択部と、前記書き込みイネーブル信号が入力されると、前記クロック選択部において選択されたクロック信号に同期して、書き込みポインタに応じたアドレスにデータを書き込み、前記読み出しイネーブル信号が入力されると、前記クロック選択部において選択されたクロック信号に同期して、読み出しポインタに応じたアドレスからデータを読み出すメモリ部と、前記書き込みイネーブル信号が入力されると、前記クロック選択部において選択されたクロック信号に同期して前記書き込みポインタを更新する書き込みポインタ更新部と、前記読み出しイネーブル信号が入力されると、前記クロック選択部において選択されたクロック信号に同期して前記読み出しポインタを更新する読み出しポインタ更新部と、前記書き込みポインタ及び前記読み出しポインタに基づいて、前記メモリ部に蓄積されたデータの数に関わる状態信号を生成する状態信号生成部とを有することを特徴とする。
【００１０】
上記メモリ装置では、前記第１クロック信号に同期した書き込み要求信号が入力されると、前記書き込み要求信号を前記第２クロック信号に同期化した読み出し待ち信号が前記要求調停部から出力され、前記読み出し待ち信号が出力される間は、前記読み出しイネーブル信号の生成が待機される。前記第２クロック信号に同期した読み出し要求信号が入力されると、前記読み出し要求信号を前記第１クロック信号に同期化した書き込み待ち信号が前記要求調停部から出力され、前記書き込み待ち信号が出力される間は、前記書き込みイネーブル信号の生成が待機される。前記書き込みイネーブル信号が入力されると、前記書き込みクロック信号が前記クロック選択部において選択され、この選択された書き込みクロック信号に同期して、前記メモリ部へのデータの書き込みが行われる。前記読み出しイネーブル信号が入力されると、前記読み出しクロック信号が前記クロック選択部において選択され、この選択された読み出しクロック信号に同期して、前記メモリ部からのデータの読み出しが行われる。
このように、上記メモリ装置では、書き込み動作を有効にする書き込みイネーブル信号と、読み出し動作を有効にする読み出しイネーブル信号とが競合しないように、両者の入力のタイミングが調停される。
そして、上記メモリ装置では、前記メモリ部、前記書き込みポインタ更新部、前記読み出しポインタ更新部及び前記状態信号生成部が、前記クロック選択部において選択された単一のクロック信号に同期して動作する。
そのため、上記メモリ装置では、ポインタ（書き込みポインタ，読み出しポインタ）を同期化するための回路や、ポインタのコードを変換する回路が不要になる。また、状態信号を生成する回路を、書き込み側と読み出し側にそれぞれ設ける必要がない。
【００１１】
好適に、前記要求調停部は、前記読み出し要求信号を前記第１クロック信号に同期化する第１同期化部と、前記書き込み要求信号を前記第２クロック信号に同期化する第２同期化部と、調停制御部とを含む。前記調停制御部は、前記読み出し要求信号を前記第１クロック信号に同期化した信号（以下、「第１同期化信号」と記す。）が前記第１同期化部において出力される場合に、前記第２同期化部への前記書き込み要求信号の入力を抑止してもよいし、或いは、前記書き込み要求信号を前記第２クロック信号に同期化した信号（以下、「第２同期化信号」と記す。）が前記第２同期化部において出力される場合に、前記第１同期化部への前記読み出し要求信号の入力を抑止してもよい。
【００１２】
上記の構成によれば、前記第１同期化信号を前記書き込み待ち信号として出力し、前記第２同期化信号を前記読み出し待ち信号として出力することが可能であるとともに、前記書き込み待ち信号と前記読み出し待ち信号とが競合して書き込み動作と読み出し動作の両方が待機状態となることを防止できる。
【００１３】
好適に、前記調停制御部は、前記書き込み要求信号が入力された場合、前記第１同期化信号が前記第１同期化部において出力されていないことを条件として、前記書き込み要求信号を前記第１クロック信号に同期して保持するとともに、当該保持した書き込み要求信号を前記第２同期化部へ入力し、前記書き込み要求信号を保持しているときは、前記書き込み待ち信号の出力を抑止し、前記書き込み要求信号の入力が終了すると、前記書き込み要求信号の保持を解除し、前記書き込み要求信号を保持していないときは、前記第１同期化部の前記第１同期化信号に応じた前記書き込み待ち信号を出力してよい。
【００１４】
上記の構成によれば、前記第１同期化信号が前記第１同期化部において出力されていないときに前記書き込み要求信号が入力された場合、前記書き込み要求信号が前記第１クロック信号に同期して前記調停制御部に保持されるとともに、当該保持された書き込み要求信号が前記第２同期化部へ入力される。前記調停制御部において前記書き込み要求信号が保持されている間は、記書き込み待ち信号の出力が抑止される。前記書き込み要求信号の入力が終了すると、前記調停制御部において前記書き込み要求信号の保持が解除される。前記調停制御部において前記書き込み要求信号が保持されていない場合、前記第１同期化部の前記第１同期化信号に応じた前記書き込み待ち信号が前記調停制御部から出力される。前記調停制御部において前記書き込み要求信号が保持されていないときに前記第１同期化信号が前記第１同期化部において出力された場合は、前記第１同期化信号の出力が続く間、前記調停制御部において前記書き込み要求信号が保持されなくなるため、前記第２同期化部への前記書き込み要求信号の入力が抑止される。
【００１５】
好適に、前記調停制御部は、前記読み出し要求信号が入力された場合、前記第２同期化信号が前記第２同期化部において出力されていないことを条件として、前記読み出し要求信号を前記第２クロック信号に同期して保持するとともに、当該保持した読み出し要求信号を前記第１同期化部へ入力し、前記読み出し要求信号を保持しているときは、前記読み出し待ち信号の出力を抑止し、前記読み出し要求信号の入力が終了すると、前記読み出し要求信号の保持を解除し、前記読み出し要求信号を保持していないときは、前記第２同期化部の前記第２同期化信号に応じた前記読み出し待ち信号を出力してよい。
【００１６】
上記の構成によれば、前記第２同期化信号が前記第２同期化部において出力されていないときに前記読み出し要求信号が入力された場合、前記読み出し要求信号が前記第２クロック信号に同期して前記調停制御部に保持されるとともに、当該保持され読み出し要求信号が前記第１同期化部へ入力される。前記調停制御部において前記読み出し要求信号が保持されている間は、前記読み出し待ち信号の出力が抑止される。前記読み出し要求信号の入力が終了すると、前記調停制御部において前記読み出し要求信号の保持が解除される。前記調停制御部において前記読み出し要求信号が保持されていない場合、前記第２同期化部の前記第２同期化信号に応じた前記読み出し待ち信号が前記調停制御部から出力される。前記調停制御部において前記読み出し要求信号が保持されていないときに前記第２同期化信号が前記第２同期化部において出力された場合は、前記第２同期化信号の出力が続く間、前記調停制御部において前記読み出し要求信号が保持されなくなるため、前記第１同期化部への前記読み出し要求信号の入力が抑止される。
【００１７】
好適に、前記調停制御部は、前記第２同期化部から前記第２同期化信号が出力された場合、前記読み出し要求信号が入力されていないことを条件として、前記第２同期化信号を前記第２クロック信号に同期して保持するとともに、当該保持した第２同期化信号を前記読み出し待ち信号として出力し、前記第２同期化信号を保持しているときは、前記第１同期化部への前記読み出し要求信号の入力を抑止し、前記第２同期化部からの前記第２同期化信号の出力が終了すると、前記第２同期化信号の保持を解除するとともに前記読み出し待ち信号の出力を終了し、前記第２同期化信号を保持していないときは、入力される前記読み出し要求信号に応じた信号を前記第１同期化部に入力してよい。
【００１８】
上記の構成によれば、前記読み出し要求信号が入力されていないときに前記第２同期化部から前記第２同期化信号が出力された場合、前記調停制御部において前記第２同期化信号が前記第２クロック信号に同期して保持されるとともに、当該保持された第２同期化信号が前記読み出し待ち信号として出力される。前記調停制御部において前記第２同期化信号が保持されている間は、前記第１同期化部への前記読み出し要求信号の入力が抑止される。前記第２同期化部からの前記第２同期化信号の出力が終了すると、前記調停制御部において前記第２同期化信号の保持が解除されるとともに、前記読み出し待ち信号の出力が終了する。前記調停制御部において前記第２同期化信号が保持されていない場合、入力される前記読み出し要求信号に応じた信号が前記第１同期化部に入力される。前記調停制御部において前記第２同期化信号が保持されていないときに前記読み出し要求信号が入力された場合は、前記読み出し要求信号の入力が続く間、前記調停制御部において前記第２同期化信号が保持されなくなるため、前記読み出し待ち信号の出力が抑止される。
【００１９】
好適に、前記調停制御部は、前記第１同期化部から前記第１同期化信号が出力された場合、前記書き込み要求信号が入力されていないことを条件として、前記第１同期化信号を前記第１クロック信号に同期して保持するとともに、当該保持した第１同期化信号を前記書き込み待ち信号として出力し、前記第１同期化信号を保持しているときは、前記第２同期化部への前記書き込み要求信号の入力を抑止し、前記第１同期化部からの前記第１同期化信号の出力が終了すると、前記第１同期化信号の保持を解除するとともに前記書き込み待ち信号の出力を終了し、前記第１同期化信号を保持していないときは、入力される前記書き込み要求信号に応じた信号を前記第２同期化部に入力してよい。
【００２０】
上記の構成によれば、前記書き込み要求信号が入力されていないときに前記第１同期化部から前記第１同期化信号が出力された場合、前記調停制御部において前記第１同期化信号が前記第１クロック信号に同期して保持されるとともに、当該保持された第１同期化信号が前記書き込み待ち信号として出力される。前記調停制御部において前記第１同期化信号が保持されている間は、前記第２同期化部への前記書き込み要求信号の入力が抑止される。前記第１同期化部からの前記第１同期化信号の出力が終了すると、前記調停制御部において前記第１同期化信号の保持が解除されるとともに前記書き込み待ち信号の出力が終了する。前記調停制御部において前記第１同期化信号が保持されていない場合、入力される前記書き込み要求信号に応じた信号が前記第２同期化部に入力される。前記調停制御部において前記第１同期化信号が保持されていないときに前記書き込み要求信号が入力された場合は、前記書き込み要求信号の入力が続く間、前記調停制御部において前記第１同期化信号が保持されなくなるため、前記書き込み待ち信号の出力が抑止される。
【００２１】
好適に、上記メモリ装置は、前記クロック選択部において選択されたクロック信号に同期してそれぞれ動作し、スキャンテストを実施する場合においてシリアルデータを転送するシフトレジスタを構成するように縦続接続される複数のフリップフロップを含んでよい。この場合、前記クロック選択部は、前記複数のフリップフロップが前記シフトレジスタを構成する第１の動作モードにおいては、前記第１クロック信号又は前記第２クロック信号の何れか一方を選択して出力してよい。また、前記クロック選択部は、前記複数のフリップフロップにそれぞれデータを保持させる第２の動作モードにおいては、前記書き込みイネーブル信号が入力される場合に前記第１クロック信号を選択して出力し、前記読み出しイネーブル信号が入力される場合に前記第２クロック信号を選択して出力してよい。
【発明の効果】
【００２２】
本発明によれば、メモリ部、書き込みポインタ更新部、読み出しポインタ更新部及び状態信号の生成部が、クロック選択部において選択された単一のクロック信号に同期して動作することから、従来のメモリ装置のようなポインタの同期化やコード変換が不要となり、状態信号生成部を書き込み系と読み出し系にそれぞれ設ける必要がないため、回路規模を小さくすることができる。
【図面の簡単な説明】
【００２３】
【図１】本発明の実施形態に係る非同期ＦＩＦＯメモリ装置の入出力信号の一例を示す図である。
【図２】本発明の実施形態に係る非同期ＦＩＦＯメモリ装置の構成の一例を示す図である。
【図３】本発明の第１の実施形態に係る非同期ＦＩＦＯメモリ装置における要求調停部の構成の一例を示す図である。
【図４】第１の実施形態に係る非同期ＦＩＦＯメモリ装置の動作の一例を説明するためのタイミング図であり、書き込み処理及び読み出し処理がそれぞれ待たされずに実行される場合を示す。
【図５】第１の実施形態に係る非同期ＦＩＦＯメモリ装置の動作の一例を説明するためのタイミング図であり、先行する読み出し処理のために書き込み処理が待たされる場合を示す。
【図６】第１の実施形態に係る非同期ＦＩＦＯメモリ装置の動作の一例を説明するためのタイミング図であり、先行する書き込み処理のために読み出し処理が待たされる場合を示す。
【図７】本発明の第２の実施形態に係る非同期ＦＩＦＯメモリ装置における要求調停部の構成の一例を示す図である。
【図８】第２の実施形態に係る非同期ＦＩＦＯメモリ装置の動作の一例を説明するためのタイミング図であり、先行する書き込み処理のために読み出し処理が待たされる場合を示す。
【図９】第２の実施形態に係る非同期ＦＩＦＯメモリ装置の動作の一例を説明するためのタイミング図であり、先行する読み出し処理のために書き込み処理が待たされる場合を示す。
【図１０】本発明の第３の実施形態に係る非同期ＦＩＦＯメモリ装置における要求調停部の構成の一例を示す図である。
【図１１】第３の実施形態に係る非同期ＦＩＦＯメモリ装置の動作の一例を説明するためのタイミング図であり、先行する書き込み処理のために読み出し処理が待たされる場合を示す。
【図１２】第３の実施形態に係る非同期ＦＩＦＯメモリ装置の動作の一例を説明するためのタイミング図であり、先行する読み出し処理のために書き込み処理が待たされる場合を示す。
【図１３】本発明の第４の実施形態に係る非同期ＦＩＦＯメモリ装置の構成の一例を示す図である。
【図１４】第４の実施形態に係る非同期ＦＩＦＯメモリ装置におけるクロック選択部の構成の一例を示す図である。
【図１５】クロック・ゲーティング回路の一例を示す図である。
【図１６】従来の非同期ＦＩＦＯメモリ装置の構成を示す図である。
【発明を実施するための形態】
【００２４】
＜第１の実施形態＞
本発明の第１の実施形態として、本発明が適用された非同期ＦＩＦＯメモリ装置について説明する。
【００２５】
図１は、第１の実施形態に係る非同期ＦＩＦＯメモリ装置１の入出力信号の一例を示す図である。
非同期ＦＩＦＯメモリ装置１において入出力される信号は、書き込みクロック信号ＷＣＬＫに同期したものと、読み出しクロック信号ＲＣＬＫに同期したものとに分かれている。書き込み要求信号ＷＲＥＱ、書き込みイネーブル信号ＷＥＮ、書き込みデータＷＤ及び書き込み待ち機能有効信号Ｗ＿ＷＡＩＴ＿ＥＮは、書き込みクロック信号ＷＣＬＫに同期した入力信号であり、書き込み待ち信号Ｗ＿ＷＡＩＴ及び書き込み状態信号Ｗ＿ＮＵＭ／ＦＵＬＬは、書き込みクロック信号ＷＣＬＫに同期した出力信号である。他方、読み出し要求信号ＲＲＥＱ、読み出しイネーブル信号ＲＥＮ及び読み出し待ち機能有効信号Ｒ＿ＷＡＩＴ＿ＥＮは、読み出しクロック信号ＲＣＬＫに同期した入力信号であり、読み出しデータＲＤ、読み出し待ち信号Ｒ＿ＷＡＩＴ及び読み出し状態信号Ｒ＿ＮＵＭ／ＦＵＬＬは、読み出しクロック信号ＲＣＬＫに同期した出力信号である。
【００２６】
非同期ＦＩＦＯメモリ装置１にデータＷＤを書き込む場合、書き込み側の装置は、書き込み要求信号ＷＲＥＱを非同期ＦＩＦＯメモリ装置１へ事前に入力する。非同期ＦＩＦＯメモリ装置１は、書き込み要求信号ＷＲＥＱを読み出しクロック信号ＲＣＬＫに同期化し、後述する読み出し待ち信号Ｒ＿ＷＡＩＴとして読み出し側の装置に出力する。
【００２７】
書き込み側の装置は、非同期ＦＩＦＯメモリ装置１に書き込み要求信号ＷＲＥＱを入力してから一定時間が経過した後、非同期ＦＩＦＯメモリ装置１から書き込み待ち信号Ｗ＿ＷＡＩＴが出力されているか否か確認する。書き込み待ち信号Ｗ＿ＷＡＩＴが出力されていない場合、書き込み側の装置は、非同期ＦＩＦＯメモリ装置１に書き込みイネーブル信号ＷＥＮを入力する。非同期ＦＩＦＯメモリ装置１は、書き込みイネーブル信号ＷＥＮが入力されると、書き込みクロック信号ＷＣＬＫに同期してデータＷＤを取り込み、記憶領域に格納する。非同期ＦＩＦＯメモリ装置１から書き込み待ち信号Ｗ＿ＷＡＩＴが出力されている場合、書き込み側の装置は、書き込み待ち信号Ｗ＿ＷＡＩＴの出力が終わる（ネゲートする）まで、非同期ＦＩＦＯメモリ装置１への書き込みイネーブル信号ＷＥＮの入力を待機させる。
【００２８】
一方、非同期ＦＩＦＯメモリ装置１からデータＲＤを読み出す場合、読み出し側の装置は、読み出し要求信号ＲＲＥＱを非同期ＦＩＦＯメモリ装置１へ事前に入力する。非同期ＦＩＦＯメモリ装置１は、読み出し要求信号ＲＲＥＱを書き込みクロック信号ＷＣＬＫに同期化し、上述した書き込み待ち信号Ｗ＿ＷＡＩＴとして書き込み側の装置に出力する。
【００２９】
読み出し側の装置は、非同期ＦＩＦＯメモリ装置１に読み出し要求信号ＲＲＥＱを入力してから一定時間が経過した後、非同期ＦＩＦＯメモリ装置１から読み出し待ち信号Ｒ＿ＷＡＩＴが出力されているか否かを確認する。読み出し待ち信号Ｒ＿ＷＡＩＴが出力されていない場合、読み出し側の装置は、非同期ＦＩＦＯメモリ装置１に読み出しイネーブル信号ＲＥＮを入力する。非同期ＦＩＦＯメモリ装置１は、読み出しイネーブル信号ＲＥＮが入力されると、読み出しクロック信号ＲＣＬＫに同期して記憶領域からデータＲＤを読み出す。非同期ＦＩＦＯメモリ装置１から読み出し待ち信号Ｒ＿ＷＡＩＴが出力されている場合、読み出し側の装置は、読み出し待ち信号Ｒ＿ＷＡＩＴの出力が終わる（ネゲートする）まで、非同期ＦＩＦＯメモリ装置１への読み出しイネーブル信号ＲＥＮの入力を待機させる。
【００３０】
書き込み動作を待機させる書き込み待ち信号Ｗ＿ＷＡＩＴは、上述したように、読み出し要求信号ＲＲＥＱを書き込みクロック信号ＷＣＬＫに同期化した信号である。読み出し側の装置は、非同期ＦＩＦＯメモリ装置１において読み出し要求信号ＲＲＥＱを書き込み待ち信号Ｗ＿ＷＡＩＴへ同期化する時間が充分に確保されるように、読み出し要求信号ＲＲＥＱを読み出しイネーブル信号ＲＥＮよりも充分前に非同期ＦＩＦＯメモリ装置１へ入力する。また、読み出し側の装置は、イネーブル信号ＲＥＮの入力が終了するまで、読み出し要求信号ＲＲＥＱの入力を保持する。これにより、読み出しイネーブル信号ＲＥＮの入力時には書き込み待ち信号Ｗ＿ＷＡＩＴが書き込み側の装置へ出力されるため、読み出し時に書き込みが行われることを防止できる。
書き込み待ち機能有効信号Ｗ＿ＷＡＩＴ＿ＥＮは、この書き込み待ち信号Ｗ＿ＷＡＩＴの出力を有効又は無効に設定する信号である。書き込み待ち機能有効信号Ｗ＿ＷＡＩＴ＿ＥＮが無効状態の場合、非同期ＦＩＦＯメモリ装置１は書き込み待ち信号Ｗ＿ＷＡＩＴの出力を停止する。
【００３１】
読み出し動作を待機させる読み出し待ち信号Ｒ＿ＷＡＩＴは、上述したように、書き込み要求信号ＷＲＥＱを読み出しクロック信号ＲＣＬＫに同期化した信号である。書き込み側の装置は、非同期ＦＩＦＯメモリ装置１おいて書き込み要求信号ＷＲＥＱを読み出し待ち信号Ｒ＿ＷＡＩＴへ同期化する時間が充分に確保されるように、書き込み要求信号ＷＲＥＱを書き込みイネーブル信号ＷＥＮよりも充分前に非同期ＦＩＦＯメモリ装置１へ入力する。また、書き込み側の装置は、書き込みイネーブル信号ＷＥＮの入力が終了するまで、書き込み要求信号ＷＲＥＱの入力を保持する。これにより、書き込みイネーブル信号ＷＥＮの入力時には読み出し待ち信号Ｒ＿ＷＡＩＴが読み出し側の装置へ出力されるため、書き込み時に読み出しが行われることを防止できる。
読み出し待ち機能有効信号Ｒ＿ＷＡＩＴ＿ＥＮは、この読み出し待ち信号Ｒ＿ＷＡＩＴの出力を有効又は無効に設定する信号である。読み出し待ち機能有効信号Ｒ＿ＷＡＩＴ＿ＥＮが無効状態の場合、非同期ＦＩＦＯメモリ装置１は読み出し待ち信号Ｒ＿ＷＡＩＴの出力を停止する。
【００３２】
書き込み状態信号Ｗ＿ＮＵＭ／ＦＵＬＬ及び読み出し状態信号Ｒ＿ＮＵＭ／ＦＵＬＬは、非同期ＦＩＦＯメモリ装置１に蓄積されるデータの数に関わる状態を示す信号である。書き込み状態信号Ｗ＿ＮＵＭ／ＦＵＬＬは、メモリ部３０に蓄積された（或いは書き込み可能な）データの数や、メモリ部３０に書き込み可能なデータ数の上限（満状態）に達しているか否かなどを示す。読み出し状態信号Ｒ＿ＮＵＭ／ＦＵＬＬは、メモリ部３０に蓄積された（或いは読み出し可能な）データの数や、メモリ部３０から読み出し可能なデータ数の下限（空状態）に達しているか否かなどを示す。書き込み側の装置や読み出し側の装置は、これらの信号に基づいて、非同期ＦＩＦＯメモリ装置１におけるデータの書き込みと読み出しを制御する。
【００３３】
図２は、第１の実施形態に係る非同期ＦＩＦＯメモリ装置１の構成の一例を示す図である。
非同期ＦＩＦＯメモリ装置１は、例えば図２に示すように、要求調停部１０と、クロック選択部２０と、メモリ部３０と、書き込みポインタ更新部４０と、読み出しポインタ更新部５０と、状態信号生成部６０を有する。
【００３４】
要求調停部１０は、書き込み動作と読み出し動作の競合が防止されるように調停を行う回路であり、書き込み側の装置から入力される書き込み要求信号ＷＲＥＱと読み出し側の装置から入力される読み出し要求信号ＲＲＥＱとに応じて、書き込み時には読み出し処理を待機させる書き込み要求信号ＷＲＥＱを出力し、読み出し時には書き込み処理を待機させる書き込み待ち信号Ｗ＿ＷＡＩＴを出力する。
【００３５】
すなわち、要求調停部１０は、書き込みクロック信号ＷＣＬＫに同期した書き込み要求信号ＷＲＥＱが書き込み側の装置によって入力されると、書き込み要求信号ＷＲＥＱを読み出しクロック信号ＲＣＬＫに同期化し、読み出し待ち信号Ｒ＿ＷＡＩＴとして読み出し側の装置に出力する。また、要求調停部１０は、読み出しクロック信号ＲＣＬＫに同期した読み出し要求信号ＲＲＥＱが読み出し側の装置によって入力されると、読み出し要求信号ＲＲＥＱを書き込みクロック信号ＷＣＬＫに同期化し、書き込み待ち信号Ｗ＿ＷＡＩＴとして書き込み側の装置に出力する。
【００３６】
要求調停部１０は、読み出し待ち信号Ｒ＿ＷＡＩＴと書き込み待ち信号Ｗ＿ＷＡＩＴの両方が同時に出力されることによって読み出しと書き込みの両方が待機状態となることを防止するため、読み出し待ち信号Ｒ＿ＷＡＩＴ又は書き込み待ち信号Ｗ＿ＷＡＩＴの何れか一方を他方よりも優先して出力する。例えば、要求調停部１０は、一方の信号を出力する場合に他方の信号の出力を抑止する。
【００３７】
図３は、第１の実施形態に係る非同期ＦＩＦＯメモリ装置１における要求調停部１０の構成の一例を示す図である。図３に示す要求調停部１０は、第１同期化部１１と、第２同期化部１２と、調停制御部１５を有する。
【００３８】
第１同期化部１１は、読み出し側の装置から入力される読み出し要求信号ＲＲＥＱを書き込みクロック信号ＷＣＬＫに同期化し、書き込み待ち信号Ｗ＿ＷＡＩＴとして出力する。
第２同期化部１２は、書き込み側の装置から調停制御部１５を介して入力される書き込み要求信号ＷＲＥＱを読み出しクロック信号ＲＣＬＫに同期化し、読み出し待ち信号Ｒ＿ＷＡＩＴとして出力する。
【００３９】
調停制御部１５は、読み出し要求信号ＲＲＥＱを書き込みクロック信号ＷＣＬＫに同期化した信号が第１同期化部１１において出力される場合に、第２同期化部１２への書き込み要求信号ＷＲＥＱの入力を抑止する。図３の例において、調停制御部１５は論理積の演算を行うゲート回路であり、第１同期化部１１の出力値を論理反転した信号と書き込み要求信号ＷＲＥＱとの論理積を第２同期化部１２に入力する。第１同期化部１１の出力値が「０」の場合、書き込み要求信号ＷＲＥＱはそのまま第２同期化部１２に入力されるが、第１同期化部１１の出力値が「１」になると（書き込み待ち信号Ｗ＿ＷＡＩＴが出力されると）、書き込み要求信号ＷＲＥＱの入力の有無にかかわらず第２同期化部１２の入力信号は「０」となる。これにより、読み出し要求信号ＲＲＥＱと書き込み要求信号ＷＲＥＱが共に入力された場合は、書き込み待ち信号Ｗ＿ＷＡＩＴの出力が優先されて、書き込み処理が待機状態となる。
【００４０】
なお、図３に示す要求調停部１０では、読み出し要求信号ＲＲＥＱを書き込み要求信号ＷＲＥＱに優先させるように調停制御部１５が設けられているが、本実施形態の他の例では、書き込み要求信号ＷＲＥＱを読み出し要求信号ＲＲＥＱに優先させるように調停制御部１５を設けてもよい。例えば、図３と同様なゲート回路を第１同期化部１１の入力側に設けて、第２同期化部１２から読み出し待ち信号Ｒ＿ＷＡＩＴが出力される場合に、第１同期化部１１への読み出し要求信号ＲＲＥＱの入力を抑止するようにしてもよい。
以上が、要求調停部１０の説明である。
【００４１】
図２の説明に戻る。
クロック選択部２０は、書き込みクロック信号ＷＣＬＫ又は読み出しクロック信号ＲＣＬＫの何れか一方を選択し、選択クロック信号ＭＵＸ＿ＣＬＫとして出力する回路である。すなわち、クロック選択部２０は、書き込み側の装置から書き込みクロック信号ＷＣＬＫに同期して書き込みイネーブル信号ＷＥＮが入力されると、書き込みクロック信号ＷＣＬＫを選択して出力し、読み出し側の装置から読み出しクロック信号ＲＣＬＫに同期して読み出しイネーブル信号ＲＥＮが入力されると、読み出しクロック信号ＲＣＬＫを選択して出力する。
【００４２】
メモリ部３０は、書き込み側の装置から書き込みイネーブル信号ＷＥＮが入力されると、選択クロック信号ＭＵＸ＿ＣＬＫに同期して、書き込みポインタＷＰに応じたアドレスにデータＷＤを書き込む。また、メモリ部３０は、読み出し側の装置から読み出しイネーブル信号ＲＥＮが入力されると、選択クロック信号ＭＵＸ＿ＣＬＫに同期して、読み出しポインタＲＰに応じたアドレスからデータＲＤを読み出す。
【００４３】
書き込みポインタ更新部４０は、メモリ部３０におけるデータＷＤの書き込み先のアドレスを指定する書き込みポインタＷＰを生成する回路であり、メモリ部３０においてデータＷＤの書き込みが行われる度に書き込みポインタＷＰを更新する。すなわち、書き込みポインタ更新部４０は、書き込み側の装置から書き込みイネーブル信号ＷＥＮが入力されると、選択クロック信号ＭＵＸ＿ＣＬＫに同期して書き込みポインタＷＰを更新する。
【００４４】
読み出しポインタ更新部５０は、メモリ部３０におけるデータＲＤの読み出し元のアドレスを指定する読み出しポインタＲＰを生成する回路であり、メモリ部３０においてデータＲＤの読み出しが行われる度に読み出しポインタＲＰを更新する。すなわち、読み出しポインタ更新部５０は、読み出し側の装置から読み出しイネーブル信号ＲＥＮが入力されると、選択クロック信号ＭＵＸ＿ＣＬＫに同期して読み出しポインタＲＰを更新する。
【００４５】
書き込みポインタ更新部４０及び読み出しポインタ更新部５０は、例えばバイナリコードを生成するカウンタを用いて構成される。
【００４６】
状態信号生成部６０は、書き込みポインタＷＰ及び読み出しポインタＲＰに基づいて、メモリ部３０に蓄積されるデータの数に関わる状態信号（書き込み状態信号Ｗ＿ＮＵＭ／ＦＵＬＬ，読み出し状態信号Ｒ＿ＮＵＭ／ＦＵＬＬ）を生成する。
【００４７】
状態信号生成部６０は、データの書き込みが行われる場合（要求調停部１０から読み出し待ち信号Ｒ＿ＷＡＩＴが出力される場合）、書き込みクロック信号ＷＣＬＫに同期した状態信号を出力し、データの読み出しが行われる場合（要求調停部１０から書き込み待ち信号Ｗ＿ＷＡＩＴが出力される場合）は、読み出しクロック信号ＲＣＬＫに同期した状態信号を出力する。
従って、書き込み側の装置は、書き込み待ち信号Ｗ＿ＷＡＩＴが出力される期間を除いて、書き込みクロック信号ＷＣＬＫに同期した（若しくは静的に変化しない）書き込み状態信号Ｗ＿ＮＵＭ／ＦＵＬＬを状態信号生成部６０から取得できる。
また、読み出し側の装置は、読み出し待ち信号Ｒ＿ＷＡＩＴが出力される期間を除いて、読み出しクロック信号ＲＣＬＫに同期した（若しくは静的に変化しない）読み出し状態信号Ｒ＿ＮＵＭ／ＦＵＬＬを状態信号生成部６０から取得できる。
【００４８】
ここで、上述した構成を有する第１の実施形態に係る非同期ＦＩＦＯメモリ装置１の動作について、図４〜図６のタイミング図を参照して説明する。
【００４９】
まず、図４のタイミング図を参照して、書き込み処理及び読み出し処理がそれぞれ待たされずに実行される場合の動作を説明する。
【００５０】
書き込み側の装置は、書き込みを行う場合、まず書き込みクロック信号ＷＣＬＫの供給を開始し、次いで、書き込み要求信号ＷＲＥＱ（図４（Ｂ））と書き込み用のデータＷＤ（図４（Ｄ））を非同期ＦＩＦＯメモリ装置１に入力する（ｔ１１）。要求調停部１０は書き込み要求信号ＷＲＥＱを入力するが、このとき読み出し側の装置から読み出しクロック信号ＲＣＬＫが供給されていないため、読み出し待ち信号Ｒ＿ＷＡＩＴ（図４（Ｊ））を出力しない。
【００５１】
書き込み要求信号ＷＲＥＱの入力を開始してから一定時間が経過すると（ｔ１２）、書き込み側の装置は、書き込み待ち信号Ｗ＿ＷＡＩＴ（図４（Ｅ））が出力されているか否かを判定する。書き込み待ち信号Ｗ＿ＷＡＩＴが出力されていないため、書き込み側の装置は、書き込みイネーブル信号ＷＥＮ（図４（Ｃ））を非同期ＦＩＦＯメモリ装置１に入力する。
【００５２】
書き込みイネーブル信号ＷＥＮを入力したクロック選択部２０は、書き込みクロック信号ＷＣＬＫを選択クロック信号ＭＵＸ＿ＣＬＫ（図４（Ｌ））として出力する（ｔ１３）。メモリ部３０は、この選択クロック信号ＭＵＸ＿ＣＬＫに同期して、書き込み側の装置から供給された書き込み用のデータＷＤを書き込みポインタＷＰに応じたアドレスに格納する。また、このとき、書き込みポインタ更新部４０は、選択クロック信号ＭＵＸ＿ＣＬＫ（書き込みクロック信号ＷＣＬＫ）に同期して書き込みポインタＷＰを更新する。書き込みポインタＷＰが更新されると、状態信号生成部６０は、新たな書き込みポインタＷＰに応じた状態信号（図４（Ｋ））を生成する。データの書き込みが行われたため、状態信号が示すデータ蓄積数は「Ｎ」から「Ｎ＋１」へ増える。
【００５３】
書き込み側の装置は、データの書き込みが終わると、書き込み要求信号ＷＲＥＱ及び書き込みイネーブル信号ＷＥＮをネゲートするとともに、非同期ＦＩＦＯメモリ装置１への書き込みクロック信号ＷＣＬＫの供給を停止する。
【００５４】
読み出し側の装置は、読み出しを行う場合、まず非同期ＦＩＦＯメモリ装置１へ読み出しクロック信号ＲＣＬＫの供給を開始し、次いで、読み出し要求信号ＲＲＥＱ（図４（Ｇ））を非同期ＦＩＦＯメモリ装置１に入力する（ｔ１４）。要求調停部１０は読み出し要求信号ＲＲＥＱを入力するが、このとき書き込み側の装置から書き込みクロック信号ＷＣＬＫが供給されていないため、書き込み待ち信号Ｗ＿ＷＡＩＴ（図４（Ｅ））を出力しない。
【００５５】
読み出し要求信号ＲＲＥＱの入力を開始してから一定時間が経過すると（ｔ１５）、読み出し側の装置は、読み出し待ち信号Ｒ＿ＷＡＩＴ（図４（Ｊ））が出力されているか否かを判定する。読み出し待ち信号Ｒ＿ＷＡＩＴは出力されていないため、読み出し側の装置は、読み出しイネーブル信号ＲＥＮを非同期ＦＩＦＯメモリ装置１に入力する。
【００５６】
読み出しイネーブル信号ＲＥＮを入力したクロック選択部２０は、読み出しクロック信号ＲＣＬＫを選択クロック信号ＭＵＸ＿ＣＬＫ（図４（Ｌ））として出力する（ｔ１６）。メモリ部３０は、この選択クロック信号ＭＵＸ＿ＣＬＫに同期して、読み出しポインタＲＰに応じたアドレスからデータＲＤを読み出し、読み出し側の装置へ出力する。また、このとき、読み出しポインタ更新部５０は、選択クロック信号ＭＵＸ＿ＣＬＫ（読み出しクロック信号ＲＣＬＫ）に同期して読み出しポインタＲＰを更新する。読み出しポインタＲＰが更新されると、状態信号生成部６０は、新たな読み出しポインタＲＰに応じた状態信号（図４（Ｋ））を生成する。データの読み出しが行われたため、状態信号が示すデータ蓄積数は「Ｎ＋１」から「Ｎ」へ減る。
【００５７】
読み出し側の装置は、データの読み出しが終わると、読み出し要求信号ＲＲＥＱ及び読み出しイネーブル信号ＲＥＮをネゲートするとともに、非同期ＦＩＦＯメモリ装置１への読み出しクロック信号ＲＣＬＫの供給を停止する。
【００５８】
次に、図５のタイミング図を参照して、先行する読み出し処理のために書き込み処理が待たされる場合の動作を説明する。
【００５９】
図５の例では、先に読み出し側の装置から読み出し要求信号ＲＲＥＱ（図５（Ｇ））が発生する（ｔ２１）。読み出し要求信号ＲＲＥＱが発生した後、書き込み側の装置が書き込みクロック信号ＷＣＬＫの供給を開始する（ｔ２２）。非同期ＦＩＦＯメモリ装置１の要求調停部１０は、読み出し要求信号ＲＲＥＱを書き込みクロック信号ＷＣＬＫに同期化し、書き込み待ち信号Ｗ＿ＷＡＩＴ（図５（Ｅ））として書き込み側の装置に出力する（ｔ２３）。要求調停部１０は、例えば２クロック周期で読み出し要求信号ＲＲＥＱの同期化を行う（ｔ２２，ｔ２３）。
【００６０】
書き込み側の装置は、書き込みクロック信号ＷＣＬＫの供給を開始した後、書き込み要求信号ＷＲＥＱ（図５（Ｂ））を発生する（ｔ２４）。ただし、要求調停部１０から書き込み待ち信号Ｗ＿ＷＡＩＴ（図５（Ｅ））が出力されている間、書き込み側の装置は、非同期ＦＩＦＯメモリ装置１への書き込みイネーブル信号ＷＥＮ（図５（Ｃ））の入力を待機させる。
【００６１】
書き込み側の装置から書き込み要求信号ＷＲＥＱが入力されたとき、要求調停部１０は既に書き込み待ち信号Ｗ＿ＷＡＩＴを出力している。そのため、要求調停部１０は、書き込み要求信号ＷＲＥＱを読み出しクロック信号ＲＣＬＫに同期化せず、読み出し待ち信号Ｒ＿ＷＡＩＴ（図５（Ｊ））を出力しない（ｔ２５，ｔ２６）。すなわち、第２同期化部１２への書き込み要求信号ＷＲＥＱの入力が調停制御部１５によって抑止されるため（図３）、第２同期化部１２は読み出し待ち信号Ｒ＿ＷＡＩＴを出力しない。
【００６２】
読み出し側の装置は、読み出し要求信号ＲＲＥＱの入力を開始してから一定時間経過後、読み出しイネーブル信号ＲＥＮ（図５（Ｈ））を非同期ＦＩＦＯメモリ装置１に入力する（ｔ２７）。読み出しイネーブル信号ＲＥＮを入力したクロック選択部２０は、読み出しクロック信号ＲＣＬＫを選択クロック信号ＭＵＸ＿ＣＬＫ（図５（Ｌ））として出力する（ｔ２８）。メモリ部３０は、この選択クロック信号ＭＵＸ＿ＣＬＫに同期して、読み出しポインタＲＰに応じたアドレスからデータＲＤを読み出し、読み出し側の装置に出力する。読み出しポインタ更新部５０は、選択クロック信号ＭＵＸ＿ＣＬＫ（読み出しクロック信号ＲＣＬＫ）に同期して読み出しポインタＲＰを更新する。読み出しポインタＲＰが更新されると、状態信号生成部６０は、新たな読み出しポインタＲＰに応じた状態信号（図５（Ｋ））を生成する。データの読み出しが行われたため、状態信号が示すデータ蓄積数は「Ｎ」から「Ｎ−１」へ減る。読み出し側の装置は、データＲＤの読み出しが終わると、読み出し要求信号ＲＲＥＱ及び読み出しイネーブル信号ＲＥＮをネゲートするとともに、非同期ＦＩＦＯメモリ装置１への読み出しクロック信号ＲＣＬＫの供給を停止する。
【００６３】
要求調停部１０は、読み出し側の装置からの読み出し要求信号ＲＲＥＱの入力が終了すると（ｔ２８）、書き込みクロック信号ＷＣＬＫの２クロック周期後に、書き込み待ち信号Ｗ＿ＷＡＩＴの出力を終了する（ｔ２１０）。書き込み待ち信号Ｗ＿ＷＡＩＴの出力が終了すると、書き込み側の装置は、書き込みイネーブル信号ＷＥＮを非同期ＦＩＦＯメモリ装置１に入力する（ｔ２１１）。書き込みイネーブル信号ＷＥＮを入力したクロック選択部２０は、書き込みクロック信号ＷＣＬＫを選択クロック信号ＭＵＸ＿ＣＬＫ（図５（Ｌ））として出力する（ｔ２１２）。メモリ部３０は、この選択クロック信号ＭＵＸ＿ＣＬＫに同期して、書き込み側の装置から供給された書き込み用のデータＷＤを書き込みポインタＷＰに応じたアドレスに格納する。書き込みポインタ更新部４０は、選択クロック信号ＭＵＸ＿ＣＬＫ（書き込みクロック信号ＷＣＬＫ）に同期して書き込みポインタＷＰを更新する。書き込みポインタＷＰが更新されると、状態信号生成部６０は、新たな書き込みポインタＷＰに応じた状態信号（図５（Ｋ））を生成する。データの書き込みが行われたため、状態信号が示すデータ蓄積数は「Ｎ−１」から「Ｎ」へ増える。書き込み側の装置は、データの書き込みが終わると、書き込み要求信号ＷＲＥＱ及び書き込みイネーブル信号ＷＥＮをネゲートするとともに、非同期ＦＩＦＯメモリ装置１への書き込みクロック信号ＷＣＬＫの供給を停止する。
【００６４】
次に、図６のタイミング図を参照して、先行する書き込み処理のために読み出し処理が待たされる場合の動作を説明する。
【００６５】
図６の例では、先に書き込み側の装置から書き込み要求信号ＷＲＥＱ（図６（Ｂ））が発生する（ｔ３１）。書き込み要求信号ＷＲＥＱが発生した後、読み出し側の装置が読み出しクロック信号ＲＣＬＫの供給を開始する（ｔ３２）。非同期ＦＩＦＯメモリ装置１の要求調停部１０は、書き込み要求信号ＷＲＥＱを読み出しクロック信号ＲＣＬＫに同期化し、読み出し待ち信号Ｒ＿ＷＡＩＴ（図６（Ｊ））として読み出し側の装置に出力する（ｔ３３）。要求調停部１０は、読み出し要求信号ＲＲＥＱと同様に、例えば２クロック周期で書き込み要求信号ＷＲＥＱの同期化を行う（ｔ３２，ｔ３３）。
【００６６】
読み出し側の装置は、読み出しクロック信号ＲＣＬＫの供給を開始した後、読み出し要求信号ＲＲＥＱ（図６（Ｇ））を発生する（ｔ３６）。ただし、要求調停部１０から読み出し待ち信号Ｒ＿ＷＡＩＴが出力されているため、読み出し側の装置は、非同期ＦＩＦＯメモリ装置１への読み出しイネーブル信号ＲＥＮの入力を待機させる。
【００６７】
書き込み側の装置は、書き込み要求信号ＷＲＥＱの入力を開始してから一定時間経過後、書き込みイネーブル信号ＷＥＮ（図６（Ｃ））を非同期ＦＩＦＯメモリ装置１に入力する（ｔ３４）。書き込みイネーブル信号ＷＥＮを入力したクロック選択部２０は、書き込みクロック信号ＷＣＬＫを選択クロック信号ＭＵＸ＿ＣＬＫ（図６（Ｌ））として出力する（ｔ３５）。メモリ部３０は、この選択クロック信号ＭＵＸ＿ＣＬＫに同期して書き込み側の装置からデータＷＤを取り込み、書き込みポインタＷＰに応じたアドレスにデータＷＤを格納する。書き込みポインタ更新部４０は、選択クロック信号ＭＵＸ＿ＣＬＫ（書き込みクロック信号ＷＣＬＫ）に同期して書き込みポインタＷＰを更新する。書き込みポインタＷＰが更新されると、状態信号生成部６０は、新たな書き込みポインタＷＰに応じた状態信号（図６（Ｋ））を生成する。データの書き込みが行われたため、状態信号が示すデータ蓄積数は「Ｎ」から「Ｎ＋１」へ増える。書き込み側の装置は、データＷＤの書き込みが終わると、書き込み要求信号ＷＲＥＱ及び書き込みイネーブル信号ＷＥＮをネゲートするとともに、非同期ＦＩＦＯメモリ装置１への書き込みクロック信号ＷＣＬＫの供給を停止する。
【００６８】
要求調停部１０は、書き込み側の装置からの書き込み要求信号ＷＲＥＱの入力が終了すると（ｔ３５）、読み出しクロック信号ＲＣＬＫの２クロック周期後に、読み出し待ち信号Ｒ＿ＷＡＩＴの出力を終了する（ｔ３８）。読み出し待ち信号Ｒ＿ＷＡＩＴの出力が終了すると、読み出し側の装置は、読み出しイネーブル信号ＲＥＮを非同期ＦＩＦＯメモリ装置１に入力する（ｔ３９）。読み出しイネーブル信号ＲＥＮを入力したクロック選択部２０は、読み出しクロック信号ＲＣＬＫを選択クロック信号ＭＵＸ＿ＣＬＫ（図６（Ｌ））として出力する（ｔ３１０）。メモリ部３０は、この選択クロック信号ＭＵＸ＿ＣＬＫに同期して、読み出しポインタＲＰに応じたアドレスに格納されたデータＲＤを読み出し、読み出し側の装置に出力する。読み出しポインタ更新部５０は、選択クロック信号ＭＵＸ＿ＣＬＫ（読み出しクロック信号ＲＣＬＫ）に同期して読み出しポインタＲＰを更新する。読み出しポインタＲＰが更新されると、状態信号生成部６０は、新たな読み出しポインタＲＰに応じた状態信号（図６（Ｋ)）を生成する。データの読み出しが行われたため、状態信号が示すデータ蓄積数は「Ｎ＋１」から「Ｎ」へ減る。読み出し側の装置は、データの読み出しが終わると、読み出し要求信号ＲＲＥＱ及び読み出しイネーブル信号ＲＥＮをネゲートするとともに、非同期ＦＩＦＯメモリ装置１への読み出しクロック信号ＲＣＬＫの供給を停止する。
【００６９】
以上説明したように、本実施形態に係る非同期ＦＩＦＯメモリ装置１によれば、書き込みクロック信号ＷＣＬＫに同期した書き込み要求信号ＷＲＥＱが書き込み側の装置から入力されると、書き込み要求信号ＷＲＥＱを読み出しクロック信号ＲＣＬＫに同期化した読み出し待ち信号Ｒ＿ＷＡＩＴが要求調停部１０から読み出し側の装置へ出力され、この読み出し待ち信号Ｒ＿ＷＡＩＴが出力される間は、読み出し側の装置において読み出しイネーブル信号ＲＥＮの生成が待機される。また、読み出しクロック信号ＲＣＬＫに同期した読み出し要求信号ＲＲＥＱが読み出し側の装置から入力されると、読み出し要求信号ＲＲＥＱを書き込みクロック信号ＷＣＬＫに同期化した書き込み待ち信号Ｗ＿ＷＡＩＴが要求調停部１０から書き込み側の装置へ出力され、この書き込み待ち信号Ｗ＿ＷＡＩＴが出力される間は、書き込み側の装置において書き込みイネーブル信号ＷＥＮの生成が待機される。書き込み側の装置から書き込みイネーブル信号ＷＥＮが入力されると、書き込みクロック信号ＷＣＬＫがクロック選択部２０において選択クロック信号ＭＵＸ＿ＣＬＫとして選択され、読み出し側の装置から読み出しイネーブル信号ＲＥＮが入力されると、読み出しクロック信号ＲＣＬＫがクロック選択部２０において選択クロック信号ＭＵＸ＿ＣＬＫとして選択される。
このように、本実施形態に係る非同期ＦＩＦＯメモリ装置１によれば、書き込み動作を有効にする書き込みイネーブル信号ＷＥＮと、読み出し動作を有効にする読み出しイネーブル信号ＲＥＮとが競合しないように、両者の入力タイミングが調停されることから、クロック選択部２０においては、グリッチのない単一の選択クロック信号ＭＵＸ＿ＣＬＫが生成される。
そして、本実施形態に係る非同期ＦＩＦＯメモリ装置１では、メモリ部３０，書き込みポインタ更新部４０，読み出しポインタ更新部５０及び状態信号生成部６０が、クロック選択部２０において生成された単一の選択クロック信号ＭＵＸ＿ＣＬＫに同期して動作する。
そのため、従来の非同期ＦＩＦＯメモリ装置（図１６）のように、書き込みポインタを読み出しクロック信号に同期化する回路や、読み出しポインタを書き込みクロック信号に同期化する回路が不要であり、また、ポインタの同期化に伴う誤変換を防止する対策としてグレイコード等を用いなくてもよいことから、グレイコード等からバイナリコードへ変換を行うための回路が不要である。更に、状態信号（データ蓄積数，満状態，空状態等を示す信号）を生成する回路を、書き込み側と読み出し側にそれぞれ設けなくてもよい。
従って、本実施形態に係る非同期ＦＩＦＯメモリ装置１は、従来の装置に比べて回路規模を大幅に小さくすることができるとともに、構成がシンプルになり、設計が容易となる。
【００７０】
また、従来の非同期ＦＩＦＯメモリ装置は、書き込み側のクロックドメインと読み出し側のクロックドメインにそれぞれ状態信号（データ蓄積数，満状態，空状態等を示す信号）を生成する回路が設けられている。各クロックドメインにおいて状態信号を生成するためには、他方のクロックドメインで生成されたポインタを同期化する必要がある。ところが、消費電力やノイズの発生を抑えるためにクロック信号を一時的に停止するような制御を行うと、そのクロックドメインでは他方のクロックドメインのポインタを同期化して取得できないため、正しい状態信号が得られないという問題が生じる。例えば、ＦＩＦＯの蓄積状態に応じたイベント発生又は解除を読み出し側や書き込み側に通知するようなシステムの場合、それぞれのクロックドメインで常に正しい状態信号を生成する必要があるため、両方のクロック信号を常に供給しなくてはならない。
これに対し、本実施形態に係る非同期ＦＩＦＯメモリ装置１では、書き込みクロック信号ＷＣＬＫに同期して動作する書き込みポインタ更新部４０が生成した書き込みポインタＷＰと、読み出しクロック信号ＲＣＬＫに同期して動作する読み出しポインタ更新部５０が生成した読み出しポインタＲＰとが、状態信号生成部６０において状態信号の生成にそのまま使用される（同期化せずに使用される）。そのため、書き込みクロック信号ＷＣＬＫと読み出しクロック信号ＲＣＬＫの一方が一時的に停止した状態でも、正しい状態信号を生成することができる。従って、ＦＩＦＯの蓄積状態を常時監視するようなシステムにおいても、クロック信号を一時的に停止する制御が可能である。
【００７１】
＜第２の実施形態＞
次に、本発明の第２の実施形態について説明する。
上述した第１の実施形態に係る非同期ＦＩＦＯメモリ装置１では、要求調停部１０において読み出し要求信号ＲＲＥＱ又は書き込み要求信号ＷＲＥＱの一方が他方に対して優先するように制御が行われている。そのため、例えば読み出し要求信号ＲＲＥＱが優先されている場合には、先に書き込み要求信号ＷＲＥＱが発生した場合でも、後から発生した読み出し要求信号ＲＲＥＱによって書き込み待ち信号Ｗ＿ＷＡＩＴが出力され、書き込み処理が待たされてしまう可能性がある。
これに対し、本実施形態に係る非同期ＦＩＦＯメモリ装置１では、常に一方の要求（読み出し要求，書き込み要求）のみが優先されるのではなく、時間的に早く発生した要求の方が優先され易くなる。
【００７２】
第２の実施形態に係る非同期ＦＩＦＯメモリ装置１は、図２に示す非同期ＦＩＦＯメモリ装置１と同様の構成を有しているが、要求調停部１０の内部構成は図３に示すものと異なっている。
【００７３】
図７は、第２の実施形態に係る非同期ＦＩＦＯメモリ装置における要求調停部１０の構成の一例を示す図である。図７に示す要求調停部１０は、図３に示す要求調停部１０と同様な第１同期化部１１及び１２を有するとともに、調停制御部１３を有する。
【００７４】
調停制御部１３は、書き込み側の装置から書き込み要求信号ＷＲＥＱが入力された場合、読み出し要求信号ＲＲＥＱを書き込みクロック信号ＷＣＬＫに同期化した信号Ｓ１１（以下、同期化信号Ｓ１１と記す場合がある。）が第１同期化部１１において出力されていないことを条件として、書き込み要求信号ＷＲＥＱを書き込みクロック信号ＷＣＬＫに同期して保持するとともに、当該保持した書き込み要求信号ＷＲＥＱ（Ｓ１３）を第２同期化部１２へ入力する。これにより、書き込み要求信号ＷＲＥＱを同期化した読み出し待ち信号Ｒ＿ＷＡＩＴが読み出し側の装置に出力されるため、読み出し側の装置において読み出し処理が待機される状態となる。
【００７５】
調停制御部１３は、書き込み要求信号ＷＲＥＱを保持している場合、書き込み側の装置への書き込み待ち信号Ｗ＿ＷＡＩＴの出力を抑止する。書き込み要求信号ＷＲＥＱの保持後に読み出し要求信号ＲＲＥＱの同期化信号Ｓ１１が第１同期化部１１から出力されても、調停制御部１３が書き込み待ち信号Ｗ＿ＷＡＩＴの出力を抑止するため、書き込み処理が進行する。
【００７６】
調停制御部１３は、書き込み要求信号ＷＲＥＱの入力が終了すると、書き込み要求信号ＷＲＥＱの保持を解除する。これにより、第２同期化部１２からの読み出し待ち信号Ｒ＿ＷＡＩＴの出力が終了するため、読み出し側の装置において読み出し処理が可能となる。
【００７７】
調停制御部１３は、書き込み要求信号ＷＲＥＱを保持していないときは、第１同期化部１１の同期化信号Ｓ１１に応じた書き込み待ち信号Ｗ＿ＷＡＩＴを書き込み側の装置に出力する。読み出し要求信号ＲＲＥＱを同期化した同期化信号Ｓ１１が出力されているときに後から書き込み要求信号ＷＲＥＱが入力されても、調停制御部１３は書き込み要求信号ＷＲＥＱを保持しないため、第２同期化部１２から読み出し待ち信号Ｒ＿ＷＡＩＴが出力されず、読み出し処理が進行する。
【００７８】
調停制御部１３は、例えば図７において示すように、論理ゲート回路１３１,１３２，１３３，１３５とフリップフロップ１３４を有する。
論理ゲート回路１３１は、第１同期化部１１の出力信号を論理反転した信号と書き込み要求信号ＷＲＥＱとの論理積を出力する。
論理ゲート回路１３２は、論理ゲート回路１３１の出力信号とフリップフロップ１３４に保持された信号との論理和を出力する。
論理ゲート回路１３３は、論理ゲート回路１３２の出力信号と書き込み要求信号ＷＲＥＱとの論理積を出力する。
フリップフロップ１３４は、論理ゲート回路１３３の出力信号を書き込みクロック信号ＷＣＬＫに同期して保持する。フリップフロップ１３４が保持する信号は、第２同期化部１２に入力される。
論理ゲート回路１３５は、フリップフロップ１３４に保持された信号を論理反転した信号と第１同期化部１１の出力信号との論理積を、書き込み待ち信号Ｗ＿ＷＡＩＴとして出力する。
【００７９】
ここで、上述した調停制御部１３を有する第２の実施形態に係る非同期ＦＩＦＯメモリ装置１の動作について、図８，図９のタイミング図を参照して説明する。
【００８０】
まず、図８のタイミング図を参照して、先行する書き込み処理のために読み出し処理が待たされる場合の動作を説明する。
【００８１】
図８の例では、先に読み出し側の装置から読み出し要求信号ＲＲＥＱ（図８（Ｉ））が発生し（ｔ４１）、その後に書き込み側の装置から書き込み要求信号ＷＲＥＱ（図８（Ｂ））が発生する（ｔ４２）。書き込み要求信号ＷＲＥＱが調停制御部１３に入力されたとき、読み出し要求信号ＲＲＥＱは未だ同期化されておらず、同期化信号Ｓ１１（図８（Ｆ)）として第１同期化部１１から出力されていない。そのため、調停制御部１３は、次の書き込みクロック信号ＷＣＬＫの立ち上がり（ｔ４３）に同期して書き込み要求信号ＷＲＥＱを保持し、信号Ｓ１３（図８（Ｃ））として第２同期化部１２に入力する。
【００８２】
書き込み要求信号ＷＲＥＱを保持した信号Ｓ１３が出力された後（ｔ４３）、第１同期化部１１は、読み出し要求信号ＲＲＥＱの同期化信号Ｓ１１（図８（Ｆ））を出力する。調停制御部１３は、このとき既に書き込み要求信号ＷＲＥＱを保持しているため、同期化信号Ｓ１１を書き込み待ち信号Ｗ＿ＷＡＩＴとして書き込み側の装置に出力しない。
【００８３】
第２同期化部１２は、調停制御部１３に信号Ｓ１３として保持された書き込み要求信号ＷＲＥＱ（図８（Ｃ））を、２クロック周期（ｔ４４，ｔ４５）で読み出しクロック信号ＲＣＬＫに同期化し、読み出し待ち信号Ｒ＿ＷＡＩＴ（図８（Ｌ））として読み出し側の装置に出力する。これにより、読み出し側の装置において読み出しイネーブル信号ＲＥＮの入力が待機される。
【００８４】
書き込み要求信号ＷＲＥＱ（図８（Ｂ））の入力から一定時間が経過したとき（ｔ４６）、調停制御部１３から書き込み待ち信号Ｗ＿ＷＡＩＴ（図８（Ｇ））が出力されていないため、書き込み側の装置は書き込みイネーブル信号ＷＥＮ（図８（Ｄ））を発生する。書き込みイネーブル信号ＷＥＮを入力したクロック選択部２０は、書き込みクロック信号ＷＣＬＫを選択クロック信号ＭＵＸ＿ＣＬＫ（図８（Ｎ））として出力する（ｔ４７）。メモリ部３０は、この選択クロック信号ＭＵＸ＿ＣＬＫに同期して、書き込み側の装置から供給された書き込み用のデータＷＤを書き込みポインタＷＰに応じたアドレスに格納する。また、書き込みポインタ更新部４０は、選択クロック信号ＭＵＸ＿ＣＬＫ（書き込みクロック信号ＷＣＬＫ）に同期して書き込みポインタＷＰを更新する。書き込みポインタＷＰが更新されると、状態信号生成部６０は、新たな書き込みポインタＷＰに応じた状態信号（図８（Ｍ））を生成する。データの書き込みが行われたため、状態信号が示すデータ蓄積数は「Ｎ」から「Ｎ＋１」へ増える。
【００８５】
書き込み側の装置は、データの書き込みが終わると、書き込み要求信号ＷＲＥＱ及び書き込みイネーブル信号ＷＥＮをネゲートする（ｔ４７）。調停制御部１３は、書き込み要求信号ＷＲＥＱの入力が終了すると、次の書き込みクロック信号ＷＣＬＫの立ち上がり（ｔ４８）において、書き込み要求信号ＷＲＥＱの保持を解除する（信号Ｓ１３を「０」にする）。書き込み側の装置は、調停制御部１３において書き込み要求信号ＷＲＥＱの保持が解除された後、書き込みクロック信号ＷＣＬＫの供給を停止する。調停制御部１３は、書き込み要求信号ＷＲＥＱの保持を解除すると、第１同期化部１１から出力される同期化信号Ｓ１１（図８（Ｆ））を書き込み待ち信号Ｗ＿ＷＡＩＴ（図８（Ｇ））として書き込み側の装置に出力する。
【００８６】
第２同期化部１２は、書き込み要求信号ＷＲＥＱを保持した信号Ｓ１３（図８（Ｃ））がネゲートされると、２クロック周期後（ｔ４９，ｔ４１０）に、読み出し待ち信号Ｒ＿ＷＡＩＴ（図８（Ｌ））をネゲートする。読み出し待ち信号Ｒ＿ＷＡＩＴの出力が終了すると、読み出し側の装置は、読み出しイネーブル信号ＲＥＮ（図８（Ｊ））を非同期ＦＩＦＯメモリ装置１に入力する（ｔ４１１）。読み出しイネーブル信号ＲＥＮを入力したクロック選択部２０は、読み出しクロック信号ＲＣＬＫを選択クロック信号ＭＵＸ＿ＣＬＫ（図８（Ｎ））として出力する（ｔ４１２）。メモリ部３０は、この選択クロック信号ＭＵＸ＿ＣＬＫに同期して、読み出しポインタＲＰに応じたアドレスに格納されたデータＲＤを読み出し、読み出し側の装置に出力する。読み出しポインタ更新部５０は、選択クロック信号ＭＵＸ＿ＣＬＫ（読み出しクロック信号ＲＣＬＫ）に同期して読み出しポインタＲＰを更新する。読み出しポインタＲＰが更新されると、状態信号生成部６０は、新たな読み出しポインタＲＰに応じた状態信号（図８（Ｍ)）を生成する。データの読み出しが行われたため、状態信号が示すデータ蓄積数は「Ｎ＋１」から「Ｎ」へ減る。読み出し側の装置は、データの読み出しが終わると、読み出し要求信号ＲＲＥＱ及び読み出しイネーブル信号ＲＥＮをネゲートするとともに、非同期ＦＩＦＯメモリ装置１への読み出しクロック信号ＲＣＬＫの供給を停止する。
【００８７】
次に、図９のタイミング図を参照して、先行する読み出し処理のために書き込み処理が待たされる場合の動作を説明する。
【００８８】
図９の例においても、先に読み出し側の装置から読み出し要求信号ＲＲＥＱ（図９（Ｉ））が発生し（ｔ５１）、その後に書き込み側の装置から書き込み要求信号ＷＲＥＱ（図９（Ｂ））が発生する（ｔ５３）。ただし、図９の例では、書き込み要求信号ＷＲＥＱの発生と同じタイミング（ｔ５３）で、第１同期化部１１が読み出し要求信号ＲＲＥＱの同期化信号Ｓ１１（図９（Ｆ））を出力する。読み出し要求信号ＲＲＥＱの同期化信号Ｓ１１が出力されているため、調停制御部１３は次のクロック周期（ｔ５４）で書き込み要求信号ＷＲＥＱを保持せず、信号Ｓ１３を「０」のままとする。すなわち、調停制御部１３は、書き込み要求信号ＷＲＥＱを第２同期化部１２へ伝えない。他方、調停制御部１３は、書き込み要求信号ＷＲＥＱを保持していないため、読み出し要求信号ＲＲＥＱの同期化信号Ｓ１１をそのまま書き込み待ち信号Ｗ＿ＷＡＩＴとして書き込み側の装置に出力する。これにより、書き込み側の装置において書き込みイネーブル信号ＷＥＮの入力が待機される。
【００８９】
読み出し要求信号ＲＲＥＱ（図９（Ｉ））の入力から一定時間が経過したとき（ｔ５５）、調停制御部１３から読み出し待ち信号Ｒ＿ＷＡＩＴが出力されていないため、読み出し側の装置は読み出しイネーブル信号ＲＥＮ（図９（Ｊ））を発生する。読み出しイネーブル信号ＲＥＮを入力したクロック選択部２０は、読み出しクロック信号ＲＣＬＫを選択クロック信号ＭＵＸ＿ＣＬＫ（図９（Ｎ））として出力する（ｔ５６）。メモリ部３０は、この選択クロック信号ＭＵＸ＿ＣＬＫに同期して、読み出しポインタＲＰに応じたアドレスからデータＲＤを読み出し、読み出し側の装置に出力する。読み出しポインタ更新部５０は、選択クロック信号ＭＵＸ＿ＣＬＫ（読み出しクロック信号ＲＣＬＫ）に同期して読み出しポインタＲＰを更新する。読み出しポインタＲＰが更新されると、状態信号生成部６０は、新たな読み出しポインタＲＰに応じた状態信号（図９（Ｍ））を生成する。データの読み出しが行われたため、状態信号が示すデータ蓄積数は「Ｎ」から「Ｎ−１」へ減る。読み出し側の装置は、データＲＤの読み出しが終わると、読み出し要求信号ＲＲＥＱ及び読み出しイネーブル信号ＲＥＮをネゲートするとともに、読み出しクロック信号ＲＣＬＫの供給を停止する。
【００９０】
第１同期化部１１は、読み出し側の装置からの読み出し要求信号ＲＲＥＱの入力が終了すると（ｔ５６）、読み出しクロック信号ＲＣＬＫの２クロック周期後（ｔ５７，ｔ５８）に、同期化信号Ｓ１１の出力を終了する。このとき、調停制御部１３は書き込み要求信号ＷＲＥＱを保持していないため（信号Ｓ１３が「０」のため）、同期化信号Ｓ１１をそのまま書き込み待ち信号Ｗ＿ＷＡＩＴ（図９（Ｇ））として出力している。従って、同期化信号Ｓ１１の出力が終了すると、書き込み待ち信号Ｗ＿ＷＡＩＴの出力も終了する。
【００９１】
書き込み待ち信号Ｗ＿ＷＡＩＴの出力が終了すると、書き込み側の装置は書き込みイネーブル信号ＷＥＮ（図９（Ｃ））を発生する（ｔ５９）。書き込みイネーブル信号ＷＥＮを入力したクロック選択部２０は、書き込みクロック信号ＷＣＬＫを選択クロック信号ＭＵＸ＿ＣＬＫ（図９（Ｎ））として出力する（ｔ５１０）。メモリ部３０は、この選択クロック信号ＭＵＸ＿ＣＬＫに同期して、書き込み側の装置から供給された書き込み用のデータＷＤを書き込みポインタＷＰに応じたアドレスに格納する。書き込みポインタ更新部４０は、選択クロック信号ＭＵＸ＿ＣＬＫ（書き込みクロック信号ＷＣＬＫ）に同期して書き込みポインタＷＰを更新する。書き込みポインタＷＰが更新されると、状態信号生成部６０は、新たな書き込みポインタＷＰに応じた状態信号（図９（Ｍ））を生成する。データの書き込みが行われたため、状態信号が示すデータ蓄積数は「Ｎ−１」から「Ｎ」へ増える。書き込み側の装置は、データの書き込みが終わると、書き込み要求信号ＷＲＥＱ及び書き込みイネーブル信号ＷＥＮをネゲートする。
【００９２】
読み出し要求信号ＲＲＥＱの同期化信号Ｓ１１の出力が終了すると（ｔ５８）、調停制御部１３は書き込み要求信号ＷＲＥＱを保持する（ｔ５９）。ただし、このとき既に読み出しクロック信号ＲＣＬＫが停止しているため、第２同期化部１２において同期化は行われず、読み出し待ち信号Ｒ＿ＷＡＩＴは出力されない。書き込み要求信号ＷＲＥＱがネゲートされると（ｔ５１０）、調停制御部１３は書き込み要求信号ＷＲＥＱの保持を解除する（ｔ５１１）。書き込み側の装置は、調停制御部１３において書き込み要求信号ＷＲＥＱの保持が解除された後、書き込みクロック信号ＷＣＬＫの供給を停止する。
【００９３】
以上説明したように、本実施形態に係る非同期ＦＩＦＯメモリ装置１によれば、書き込み側の装置から書き込み要求信号ＷＲＥＱが入力された場合、読み出し要求信号ＲＲＥＱの同期化信号Ｓ１１が第１同期化部１１において出力されていないことを条件として、書き込み要求信号ＷＲＥＱが書き込みクロック信号ＷＣＬＫに同期して調停制御部１３に保持され、当該保持された書き込み要求信号ＷＲＥＱが第２同期化部１２へ入力され、第２同期化部１２から読み出し側の装置へ読み出し待ち信号Ｒ＿ＷＡＩＴが出力される。調停制御部１３において書き込み要求信号ＷＲＥＱが保持されているときは、書き込み側の装置への書き込み待ち信号Ｗ＿ＷＡＩＴの出力が抑止される。書き込み側装置からの書き込み要求信号ＷＲＥＱの入力が終了すると、調停制御部１３において書き込み要求信号ＷＲＥＱの保持が解除され、第２同期化部１２から読み出し側装置への読み出し待ち信号Ｒ＿ＷＡＩＴの出力が終了する。調停制御部１３において書き込み要求信号ＷＲＥＱが保持されていないときは、第１同期化部１１の同期化信号Ｓ１１に応じた書き込み待ち信号Ｗ＿ＷＡＩＴが書き込み側の装置へ出力される。
すなわち、書き込み側装置からの書き込み要求信号ＷＲＥＱの入力が、第１同期化部１１における読み出し要求信号ＲＲＥＱの同期化信号Ｓ１１の出力よりも早い場合は、書き込み要求が読み出し要求に優先され、読み出し要求は書き込み処理が終わるまで待たされる。逆に、第１同期化部１１における読み出し要求信号ＲＲＥＱの同期化信号Ｓ１１の出力が、書き込み側装置からの書き込み要求信号ＷＲＥＱの入力よりも早い場合は、読み出し要求が書き込み要求に優先され、書き込み要求は読み出し処理が終わるまで待たされる。
従って、書き込み又は読み出しの一方が常に優先される方式に比べて、書き込み処理と読み出し処理の各々を発生頻度に応じてバランスよく実行することができる。
【００９４】
なお、図７に例示する調停制御部１３では、書き込み要求信号ＷＲＥＱを保持して第２同期化部１２に入力しているが、本実施形態はこの例に限定されない。
本実施形態の他の例では、調停制御部１３が書き込み要求信号ＷＲＥＱの代わりに読み出し要求信号ＲＲＥＱを入力し、第１同期化部１１の出力信号（Ｓ１３）の代わりに第２同期化部１２の出力信号を入力し、書き込み待ち信号Ｗ＿ＷＡＩＴの代わりに読み出し待ち信号Ｒ＿ＷＡＩＴを出力してもよい。
この例において、調停制御部１３は、読み出し側の装置から読み出し要求信号ＲＲＥＱが入力された場合、書き込み要求信号ＷＲＥＱを同期化した信号が第２同期化部１２において出力されていないことを条件として、読み出し要求信号ＲＲＥＱを読み出しクロック信号ＲＣＬＫに同期して保持するとともに、当該保持した読み出し要求信号ＲＲＥＱを第１同期化部１１へ入力し、読み出し要求信号ＲＲＥＱを保持しているときは、読み出し待ち信号Ｒ＿ＷＡＩＴの出力を抑止し、読み出し要求信号ＲＲＥＱの入力が終了すると、読み出し要求信号ＲＲＥＱの保持を解除し、読み出し要求信号ＲＲＥＱを保持していないときは、第２同期化部１２の出力信号に応じた読み出し待ち信号Ｒ＿ＷＡＩＴを出力する。
読み出し側の装置からの読み出し要求信号ＲＲＥＱの入力が、第２同期化部１２における書き込み要求信号ＷＲＥＱの同期化信号の出力よりも早い場合は、読み出し要求が書き込み要求に優先され、書き込み要求は読み出しみ処理が終わるまで待たされる。逆に、第２同期化部１２における書き込み要求信号ＷＲＥＱの同期化信号の出力が、読み出し側装置からの読み出し要求信号ＲＲＥＱの入力よりも早い場合は、書き込み要求が読み出し要求に優先され、読み出し要求は書き込み処理が終わるまで待たされる。
従って、この場合も、書き込み又は読み出しの一方が常に優先される方式に比べて、書き込み処理と読み出し処理の各々を発生頻度に応じてバランスよく実行することができる。
【００９５】
＜第３の実施形態＞
次に、本発明の第３の実施形態について説明する。
上述した第２の実施形態に係る非同期ＦＩＦＯメモリ装置１では、書き込み要求と読み出し要求を調停するために要求信号（書き込み要求信号ＷＲＥＱ，読み出し要求信号ＲＲＥＱ）を保持し、保持した要求信号を同期化部（第１同期化部１１，第２同期化部１２）へ入力しているが、本実施形態に係る非同期ＦＩＦＯメモリ装置１では、同期化部（第１同期化部１１，第２同期化部１２）から出力される同期化信号（Ｓ１１，Ｓ１２）を保持し、保持した同期化信号を待ち信号（書き込み待ち信号Ｗ＿ＷＡＩＴ，読み出し待ち信号Ｒ＿ＷＡＩＴ）として出力する。
【００９６】
第３の実施形態に係る非同期ＦＩＦＯメモリ装置１は、図２に示す非同期ＦＩＦＯメモリ装置１と同様の構成を有しているが、要求調停部１０の内部構成については、図３，図７に示すものと異なっている。
【００９７】
図１０は、第３の実施形態に係る非同期ＦＩＦＯメモリ装置における要求調停部１０の構成の一例を示す図である。図１０に示す要求調停部１０は、図３に示す要求調停部１０と同様な第１同期化部１１及び１２を有するとともに、調停制御部１４を有する。
【００９８】
調停制御部１４は、書き込み要求信号ＷＲＥＱを読み出しクロック信号ＲＣＬＫに同期化した信号Ｓ１２（以下、同期化信号Ｓ１２と記す場合がある。）が第２同期化部１２から出力された場合、読み出し側の装置から読み出し要求信号ＲＲＥＱが入力されていないことを条件として、同期化信号Ｓ１２を読み出しクロック信号ＲＣＬＫに同期して保持するとともに、当該保持した同期化信号Ｓ１２を読み出し待ち信号Ｒ＿ＷＡＩＴとして読み出し側の装置に出力する。これにより、読み出し側の装置において読み出し処理が待機される状態となる。
【００９９】
調停制御部１４は、書き込み要求信号ＷＲＥＱの同期化信号Ｓ１２を保持しているときは、第１同期化部１１への読み出し要求信号ＲＲＥＱの入力を抑止する。同期化信号Ｓ１の保持後に読み出し要求信号ＲＲＥＱが入力されても、調停制御部１４によって第１同期化部１１への読み出し要求信号ＲＲＥＱの入力が抑止されるため、書き込み待ち信号Ｗ＿ＷＡＩＴは出力されず、書き込み処理が進行する。
【０１００】
調停制御部１４は、書き込み側の装置からの書き込み要求信号ＷＲＥＱの出力が終了することによって第２同期化部１２からの同期化信号Ｓ１２が終了すると、同期化信号Ｓ１２の保持を解除し、読み出し待ち信号Ｒ＿ＷＡＩＴの出力を終了する。これにより、読み出し側の装置において読み出し処理が可能となる。
【０１０１】
調停制御部１４は、書き込み要求信号ＷＲＥＱの同期化信号Ｓ１２を保持していないときは、読み出し側の装置から入力される読み出し要求信号ＲＲＥＱに応じた信号Ｓ１４を第１同期化部１１に入力する。読み出し要求信号ＲＲＥＱが入力されているときに後から書き込み要求信号ＷＲＥＱの同期化信号Ｓ１２が第２同期化部１２において出力されても、調停制御部１４はその同期化信号Ｓ１２を保持しないため、読み出し待ち信号Ｒ＿ＷＡＩＴは出力されず、読み出し処理が進行する。
【０１０２】
調停制御部１３は、例えば図１０において示すように、論理ゲート回路１４１,１４２，１４３，１４５とフリップフロップ１４４を有する。
論理ゲート回路１４１は、読み出し要求信号ＲＲＥＱを論理反転した信号と第２同期化部１２の出力信号との論理積を出力する。
論理ゲート回路１４２は、論理ゲート回路１４１の出力信号とフリップフロップ１４４に保持された信号との論理和を出力する。
論理ゲート回路１４３は、論理ゲート回路１４２の出力信号と第２同期化部１２の出力信号との論理積を出力する。
フリップフロップ１４４は、論理ゲート回路１４３の出力信号を読み出しクロック信号ＲＣＬＫに同期して保持する。フリップフロップ１４４が保持する信号は、読み出し待ち信号Ｒ＿ＷＡＩＴとして読み出し側の装置に出力される。
論理ゲート回路１４５は、フリップフロップ１４４に保持された信号を論理反転した信号と読み出し要求信号ＲＲＥＱとの論理積を第１同期化部１１に入力する。
【０１０３】
ここで、上述した調停制御部１４を有する第３の実施形態に係る非同期ＦＩＦＯメモリ装置１の動作について、図１１，図１２のタイミング図を参照して説明する。
【０１０４】
まず図１１のタイミング図を参照して、先行する書き込み処理のために読み出し処理が待たされる場合の動作を説明する。
【０１０５】
書き込み側の装置から書き込み要求信号ＷＲＥＱ（図１１（Ｂ））が入力されると（ｔ６１）、読み出しクロック信号ＲＣＬＫの２クロック周期を経て（ｔ６２，ｔ６３）、第２同期化部１２は書き込み要求信号ＷＲＥＱの同期化信号Ｓ１２（図１１（Ｋ））を出力する。書き込み要求信号ＷＲＥＱの同期化信号Ｓ１２が出力されたとき、読み出し側の装置からは未だ読み出し要求信号ＲＲＥＱ（図１１（Ｇ））が入力されていないため、調停制御部１４は、次の書き込みクロック信号ＷＣＬＫの立ち上がり（ｔ６４）において書き込み要求信号ＷＲＥＱの同期化信号Ｓ１２を保持し、これを読み出し待ち信号Ｒ＿ＷＡＩＴ（図１１（Ｌ））として読み出し側の装置に出力する。これにより、読み出し側の装置において読み出しイネーブル信号ＲＥＮの入力が待機される。
【０１０６】
調停制御部１４が読み出し待ち信号Ｒ＿ＷＡＩＴを出力したとき（ｔ６４）、読み出し側の装置は読み出し要求信号ＲＲＥＱ（図１１（Ｇ））を発生する。このとき、調停制御部１４は書き込み要求信号ＷＲＥＱの同期化信号Ｓ１２を保持しているため、読み出し要求信号ＲＲＥＱを第１同期化部１１へ入力しない。これにより、書き込み待ち信号Ｗ＿ＷＡＩＴが出力されないため、書き込み側の装置において書き込み処理が進行する。
【０１０７】
書き込み要求信号ＷＲＥＱ（図１１（Ｂ））の入力から一定時間が経過したとき（ｔ６５）、調停制御部１４から書き込み待ち信号Ｗ＿ＷＡＩＴ（図１１（Ｅ））が出力されていないため、書き込み側の装置は書き込みイネーブル信号ＷＥＮ（図１１（Ｃ））を発生する。書き込みイネーブル信号ＷＥＮを入力したクロック選択部２０は、書き込みクロック信号ＷＣＬＫを選択クロック信号ＭＵＸ＿ＣＬＫ（図１１（Ｎ））として出力する（ｔ６６）。メモリ部３０は、この選択クロック信号ＭＵＸ＿ＣＬＫに同期して、書き込み側の装置から供給された書き込み用のデータＷＤを書き込みポインタＷＰに応じたアドレスに格納する。また、書き込みポインタ更新部４０は、選択クロック信号ＭＵＸ＿ＣＬＫ（書き込みクロック信号ＷＣＬＫ）に同期して書き込みポインタＷＰを更新する。書き込みポインタＷＰが更新されると、状態信号生成部６０は、新たな書き込みポインタＷＰに応じた状態信号（図１１（Ｍ））を生成する。データの書き込みが行われたため、状態信号が示すデータ蓄積数は「Ｎ」から「Ｎ＋１」へ増える。書き込み側の装置は、データの書き込みが終わると、書き込み要求信号ＷＲＥＱ及び書き込みイネーブル信号ＷＥＮをネゲートするとともに、書き込みクロック信号ＷＣＬＫの供給を停止する。
【０１０８】
第２同期化部１２は、書き込み側の装置からの書き込み要求信号ＷＲＥＱ（図１１（Ｂ））の入力が終了すると（ｔ６６）、読み出しクロック信号ＲＣＬＫの２クロック周期後（ｔ６７，ｔ６８）に、書き込み要求信号ＷＲＥＱの同期化信号Ｓ１２（図１１（Ｋ））の出力を終了する。第２同期化部１２からの同期化信号Ｓ１２の出力が終了すると、調停制御部１４は、読み出しクロック信号ＲＣＬＫの次のクロック周期（ｔ６９）において同期化信号Ｓ１２の保持を解除し、読み出し待ち信号Ｒ＿ＷＡＩＴ（図１１（Ｌ））の出力を終了する。読み出し待ち信号Ｒ＿ＷＡＩＴの出力が終了すると、読み出し側の装置は読み出しイネーブル信号ＲＥＮを発生する（ｔ６１０）。読み出しイネーブル信号ＲＥＮを入力したクロック選択部２０は、読み出しクロック信号ＲＣＬＫを選択クロック信号ＭＵＸ＿ＣＬＫ（図１１（Ｎ））として出力する（ｔ６１１）。メモリ部３０は、この選択クロック信号ＭＵＸ＿ＣＬＫに同期して、読み出しポインタＲＰに応じたアドレスに格納されたデータＲＤを読み出し、読み出し側の装置に出力する。読み出しポインタ更新部５０は、選択クロック信号ＭＵＸ＿ＣＬＫ（読み出しクロック信号ＲＣＬＫ）に同期して読み出しポインタＲＰを更新する。読み出しポインタＲＰが更新されると、状態信号生成部６０は、新たな読み出しポインタＲＰに応じた状態信号（図１１（Ｍ)）を生成する。データの読み出しが行われたため、状態信号が示すデータ蓄積数は「Ｎ＋１」から「Ｎ」へ減る。読み出し側の装置は、データの読み出しが終わると、読み出し要求信号ＲＲＥＱ及び読み出しイネーブル信号ＲＥＮをネゲートするとともに、読み出しクロック信号ＲＣＬＫの供給を停止する。
【０１０９】
次に、図１２のタイミング図を参照して、先行する読み出し処理のために書き込み処理が待たされる場合の動作を説明する。
【０１１０】
書き込み側の装置から書き込み要求信号ＷＲＥＱ（図１２（Ｂ））が入力されると（ｔ７１）、読み出しクロック信号ＲＣＬＫの２クロック周期を経て（ｔ７２，ｔ７３）、第２同期化部１２は書き込み要求信号ＷＲＥＱの同期化信号Ｓ１２（図１２（Ｋ））を出力する。書き込み要求信号ＷＲＥＱの同期化信号Ｓ１２が出力されたとき、読み出し側の装置から既に読み出し要求信号ＲＲＥＱ（図１２（Ｇ））が入力されているため、調停制御部１４は同期化信号Ｓ１２を保持せず、読み出し待ち信号Ｒ＿ＷＡＩＴ（１１（Ｌ））を出力しない。これにより、読み出し側の装置において読み出し処理が進行する。
【０１１１】
他方、調停制御部１４は、書き込み要求信号ＷＲＥＱの同期化信号Ｓ１２を保持していないことから、読み出し側の装置から入力した読み出し要求信号ＲＲＥＱを信号Ｓ１４（１２（Ｈ））として第１同期化部１１に入力する。信号Ｓ１４を入力した第１同期化部１１は、書き込みクロック信号ＷＣＬＫの２クロック周期後（ｔ７４，ｔ７５）に書き込み待ち信号Ｗ＿ＷＡＩＴを出力する。これにより、書き込み側の装置において書き込みイネーブル信号ＷＥＮの入力が待機される。
【０１１２】
読み出し要求信号ＲＲＥＱ（図１２（Ｇ））の入力から一定時間が経過したとき（ｔ７６）、調停制御部１４から読み出し待ち信号Ｒ＿ＷＡＩＴが出力されていないため、読み出し側の装置は読み出しイネーブル信号ＲＥＮ（図１２（Ｉ））を発生する。読み出しイネーブル信号ＲＥＮを入力したクロック選択部２０は、読み出しクロック信号ＲＣＬＫを選択クロック信号ＭＵＸ＿ＣＬＫ（図１２（Ｎ））として出力する（ｔ７７）。メモリ部３０は、この選択クロック信号ＭＵＸ＿ＣＬＫに同期して、読み出しポインタＲＰに応じたアドレスからデータＲＤを読み出し、読み出し側の装置に出力する。読み出しポインタ更新部５０は、選択クロック信号ＭＵＸ＿ＣＬＫ（読み出しクロック信号ＲＣＬＫ）に同期して読み出しポインタＲＰを更新する。読み出しポインタＲＰが更新されると、状態信号生成部６０は、新たな読み出しポインタＲＰに応じた状態信号（図１２（Ｍ））を生成する。データの読み出しが行われたため、状態信号が示すデータ蓄積数は「Ｎ」から「Ｎ−１」へ減る。読み出し側の装置は、データＲＤの読み出しが終わると、読み出し要求信号ＲＲＥＱ及び読み出しイネーブル信号ＲＥＮをネゲートするとともに、読み出しクロック信号ＲＣＬＫの供給を停止する。
【０１１３】
第１同期化部１１は、読み出し要求信号ＲＲＥＱのネゲートに伴って信号Ｓ１４がネゲートすると、書き込みクロック信号ＷＣＬＫの２クロック周期後（ｔ７８，ｔ７９）に書き込み待ち信号Ｗ＿ＷＡＩＴ（図１２（Ｅ））をネゲートする。調停制御部１４からの書き込み待ち信号Ｗ＿ＷＡＩＴの出力が終了すると、書き込み側の装置は書き込みイネーブル信号ＷＥＮ（図１２（Ｃ））を発生する（ｔ７１０）。書き込みイネーブル信号ＷＥＮを入力したクロック選択部２０は、書き込みクロック信号ＷＣＬＫを選択クロック信号ＭＵＸ＿ＣＬＫ（図１２（Ｎ））として出力する（ｔ７１１）。メモリ部３０は、この選択クロック信号ＭＵＸ＿ＣＬＫに同期して、書き込み側の装置から供給された書き込み用のデータＷＤを書き込みポインタＷＰに応じたアドレスに格納する。書き込みポインタ更新部４０は、選択クロック信号ＭＵＸ＿ＣＬＫ（書き込みクロック信号ＷＣＬＫ）に同期して書き込みポインタＷＰを更新する。書き込みポインタＷＰが更新されると、状態信号生成部６０は、新たな書き込みポインタＷＰに応じた状態信号（図１２（Ｍ））を生成する。データの書き込みが行われたため、状態信号が示すデータ蓄積数は「Ｎ−１」から「Ｎ」へ増える。書き込み側の装置は、データの書き込みが終わると、書き込み要求信号ＷＲＥＱ及び書き込みイネーブル信号ＷＥＮをネゲートするとともに、書き込みクロック信号ＷＣＬＫの供給を停止する。
【０１１４】
以上説明したように、本実施形態に係る非同期ＦＩＦＯメモリ装置１によれば、第２同期化部１２から書き込み要求信号ＷＲＥＱを同期化した同期化信号Ｓ１２が出力された場合、読み出し側の装置から読み出し要求信号ＲＲＥＱが入力されていないことを条件として、書き込み要求信号ＷＲＥＱの同期化信号Ｓ１２が読み出しクロック信号ＲＣＬＫに同期して調停制御部１４に保持され、当該保持された同期化信号Ｓ１２が読み出し待ち信号Ｒ＿ＷＡＩＴとして読み出し側の装置に出力される。調停制御部１４において書き込み要求信号ＷＲＥＱの同期化信号Ｓ１２が保持されているときは、第１同期化部１１への読み出し要求信号ＲＲＥＱの入力が抑止される。書き込み側の装置からの書き込み要求信号ＷＲＥＱの入力が終了することにより、第２同期化部１２における同期化信号Ｓ１２の出力が終了すると、調停制御部１４において、書き込み要求信号ＷＲＥＱの同期化信号Ｓ１２の保持が解除されるとともに、読み出し側の装置への読み出し待ち信号Ｒ＿ＷＡＩＴの出力が終了する。調停制御部１４において書き込み要求信号ＷＲＥＱの同期化信号Ｓ１２が保持されていないときは、読み出し側の装置から入力される読み出し要求信号ＲＲＥＱに応じた信号Ｓ１４が第１同期化部１１に入力され、これに応じた書き込み待ち信号Ｗ＿ＷＡＩＴが書き込み側の装置に出力される。
すなわち、読み出し側の装置からの読み出し要求信号ＲＲＥＱの入力が、第２同期化部１２における書き込み要求信号ＷＲＥＱの同期化信号Ｓ１２の出力よりも早い場合は、読み出し要求が書き込み要求に優先され、書き込み要求は読み出し処理が終わるまで待たされる。逆に、第２同期化部１２における書き込み要求信号ＷＲＥＱの同期化信号Ｓ１２の出力が、読み出し側の装置からの読み出し要求信号ＲＲＥＱの入力よりも早い場合は、書き込み要求が読み出し要求に優先され、読み出し要求は書き込み処理が終わるまで待たされる。
従って、本実施形態においても、書き込み又は読み出しの一方が常に優先される方式に比べて、書き込み処理と読み出し処理の各々を発生頻度に応じてバランスよく実行することができる。
【０１１５】
なお、図１０に例示する調停制御部１４では、第２同期化部１２の同期化信号Ｓ１２を保持し、読み出し待ち信号Ｒ＿ＷＡＩＴとして出力しているが、本実施形態はこの例に限定されない。
本実施形態の他の例では、調停制御部１４が読み出し要求信号ＲＲＥＱの代わりに書き込み要求信号ＷＲＥＱを入力し、第２同期化部１２の出力信号（Ｓ１２）の代わりに第１同期化部１１の出力信号（Ｓ１１）を入力し、読み出し待ち信号Ｒ＿ＷＡＩＴの代わりに書き込み待ち信号Ｗ＿ＷＡＩＴを出力してもよい。
この例において、調停制御部１４は、第１同期化部１１から読み出し要求信号ＲＲＥＱを同期化した同期化信号Ｓ１１が出力された場合、書き込み側の装置から書き込み要求信号ＷＲＥＱが入力されていないことを条件として、読み出し要求信号ＲＲＥＱの同期化信号Ｓ１１を書き込みクロック信号ＷＣＬＫに同期して保持し、これを書き込み待ち信号Ｗ＿ＷＡＩＴとして書き込み側の装置に出力する。読み出し要求信号ＲＲＥＱの同期化信号Ｓ１１を保持している場合、調停制御部１４は、第２同期化部１２への書き込み要求信号ＷＲＥＱの入力を抑止し、これにより、読み出し側の装置への読み出し待ち信号Ｒ＿ＷＡＩＴの出力を抑止する。第１同期化部１１において読み出し要求信号ＲＲＥＱの同期化信号Ｓ１１の出力が終了すると、調停制御部１４は、読み出し要求信号ＲＲＥＱの同期化信号Ｓ１１の保持を解除するとともに、書き込み側装置への書き込み待ち信号Ｗ＿ＷＡＩＴの出力を終了する。読み出し要求信号ＲＲＥＱの同期化信号Ｓ１１を保持していない場合、調停制御部１４は、書き込み側の装置から入力される書き込み要求信号ＷＲＥＱに応じた信号Ｓ１４を第２同期化部１２に入力する。
すなわち、書き込み側の装置からの書き込み要求信号ＷＲＥＱの入力が、第１同期化部１１における読み出し要求信号ＲＲＥＱの同期化信号Ｓ１１の出力よりも早い場合は、書き込み要求が読み出し要求に優先され、読み出し要求は書き込み処理が終わるまで待たされる。逆に、第１同期化部１１における読み出し要求信号ＲＲＥＱの同期化信号Ｓ１１の出力が、書き込み側の装置からの書き込み要求信号ＷＲＥＱの入力よりも早い場合は、読み出し要求が書き込み要求に優先され、書き込み要求は読み出し処理が終わるまで待たされる。
従って、この場合も、書き込み又は読み出しの一方が常に優先される方式に比べて、書き込み処理と読み出し処理の各々を発生頻度に応じてバランスよく実行することができる。
【０１１６】
＜第４の実施形態＞
次に、本発明の第４の実施形態について説明する。
本実施形態に係る非同期ＦＩＦＯメモリ装置は、上述した各実施形態に係る非同期ＦＩＦＯメモリ装置にスキャンテスト用の構成を加えたものである。
【０１１７】
図１３は、第４の実施形態に係る非同期ＦＩＦＯメモリ装置１の構成の一例を示す図である。本実施形態に係る非同期ＦＩＦＯメモリ装置１は、例えば図２に示す非同期ＦＩＦＯメモリ装置１と同様な構成を有しており、その回路は複数の組み合わせ回路７５と複数のスキャンテスト用のフリップフロップ８０を用いて構成されている。回路を構成する複数のフリップフロップ８０は、スキャンテストを実施する場合においては、シリアルデータを転送するシフトレジスタを構成するように縦続接続される。
【０１１８】
図１３の例において、非同期ＦＩＦＯメモリ装置１は、スキャンテスト時にクロック選択部２０へ入力するクロック信号を切り替えるためのマルチプレクサ回路９０を含んでいる。通常の動作を行う場合、マルチプレクサ回路９０は、それぞれ所定のクロック信号（ＣＫ１，ＣＫ２）を書き込みクロック信号ＷＣＬＫ，読み出しクロック信号ＲＣＬＫとしてクロック選択部２０に入力するが、スキャンテストを行う場合には（端子ＳＣＡＮ＿ＭＯＤＥの入力信号がアサートされた場合には）、所定のテスト装置から供給されるクロック信号ＳＣＡＮ＿ＣＬＫ１，ＳＣＡＮ＿ＣＬＫ２を書き込みクロック信号ＷＣＬＫ，読み出しクロック信号ＲＣＬＫとしてクロック選択部２０に入力する。これにより、スキャンテスト時においては、テスト装置が発生するクロック信号ＳＣＡＮ＿ＣＬＫ１，ＳＣＡＮ＿ＣＬＫ２に基づいて検査が行われる。
【０１１９】
図１４は、本実施形態におけるクロック選択部２０の構成の一例を示す図である。また、図１５は、図１４に示すクロック選択部２０に含まれるクロック・ゲーティング回路２１−１，２１−２の構成の一例を示す図である。
図１４に示すクロック選択部２０は、クロック・ゲーティング回路２１−１，２１−２と、マルチプレクサ回路２２と、フリップフロップ２３と、ＯＲ回路２４を有する。クロック・ゲーティング回路２１−１，２１−２は、ＯＲ回路２５と、ラッチ回路２６と、ＡＮＤ回路２７をそれぞれ含む。
【０１２０】
クロック・ゲーティング回路２１−１，２１−２において、ＯＲ回路２５は、端子ＳＣＡＮ＿ＥＮからの入力信号（信号ＳＣＡＮ＿ＥＮ）と、イネーブル信号（書き込みイネーブル信号ＷＥＮ，読み出しイネーブル信号ＲＥＮ）との論理和を出力する。ラッチ回路２６は、入力されるクロック信号（書き込みクロック信号ＷＣＬＫ，読み出しクロック信号ＲＣＬＫ）が「０」から「１」へ立ち上がったときにＯＲ回路２５の出力信号を保持し、ＡＮＤ回路２７に出力する。ＡＮＤ回路２７は、ラッチ回路２６の出力信号と入力されるクロック信号との論理積を出力する。
【０１２１】
クロック・ゲーティング回路２１−１は、信号ＳＣＡＮ＿ＥＮ又は書き込みイネーブル信号ＷＥＮが「１」の場合、入力される書き込みクロック信号ＷＣＬＫを出力し、信号ＳＣＡＮ＿ＥＮと書き込みイネーブル信号ＷＥＮが両方「０」の場合、出力を「０」に固定する。
【０１２２】
クロック・ゲーティング回路２１−２は、信号ＳＣＡＮ＿ＥＮ又は読み出しイネーブル信号ＲＥＮが「１」の場合、入力される読み出しクロック信号ＲＣＬＫを出力し、信号ＳＣＡＮ＿ＥＮと読み出しイネーブル信号ＲＥＮが両方「０」の場合、出力を「０」に固定する。
【０１２３】
フリップフロップ２３は、読み出しクロック信号ＲＣＬＫの立ち下がりに同期して、読み出しイネーブル信号ＲＥＮを保持する。
ＯＲ回路２４は、信号ＳＣＡＮ＿ＥＮとフリップフロップ２３に保持された信号との論理和を出力する。
マルチプレクサ回路２２は、ＯＲ回路２４の出力信号が「０」の場合、クロック・ゲーティング回路２１−１の出力を選択し、ＯＲ回路２４の出力信号が「１」の場合、クロック・ゲーティング回路２１−２の出力を選択する。マルチプレクサ回路２２において選択された信号が、選択クロック信号ＭＵＸ＿ＣＬＫとして出力される。
【０１２４】
ここで、上述した構成を有する非同期ＦＩＦＯメモリ装置１において、スキャンテストを実施する場合の動作について説明する。
【０１２５】
スキャンテストを実施する場合、マルチプレクサ回路９０に入力される端子ＳＣＡＮ＿ＭＯＤＥの信号がアサートされる。これにより、所定のテスト装置から供給されるクロック信号ＳＣＡＮ＿ＣＬＫ１，ＳＣＡＮ＿ＣＬＫ２は、それぞれ書き込みクロック信号ＷＣＬＫ，読み出しクロック信号ＲＣＬＫとしてクロック選択部２０に入力される。
【０１２６】
信号ＳＣＡＮ＿ＥＮが「１」に設定されると、テスト装置から供給されるシリアルデータは、シフトレジスタを構成するように縦続接続された複数のフリップフロップ８０（スキャン・チェーン）において順次にシフトする（シフトモード）。
信号ＳＣＡＮ＿ＥＮが「１」に設定された場合、マルチプレクサ回路２２ではクロック・ゲーティング回路２１−２の出力が選択され、クロック・ゲーティング回路２１−２では読み出しクロック信号ＲＣＬＫがそのまま出力されることから、クロック選択部２０においては、読み出しクロック信号ＲＣＬＫが選択クロック信号ＭＵＸ＿ＣＬＫとして出力される。この選択クロック信号ＭＵＸ＿ＣＬＫは、一部のフリップフロップ群９５に供給される。
従って、スキャン・チェーンにおいてデータをシフトさせるシフトモードにおいては、読み出しクロック信号ＲＣＬＫに基づいて、フリップフロップ群９５のシリアルデータがシフトされる。
【０１２７】
データのシフトが完了すると、信号ＳＣＡＮ＿ＥＮは「０」に設定される。これにより、各フリップフロップ８０の入力と出力は、通常動作と同じデータパスに接続された状態となる。各フリップフロップ８０には、組み合わせ回路７５からの入力信号が保持される（キャプチャモード）。
信号ＳＣＡＮ＿ＥＮが「０」の場合において読み出しイネーブル信号ＲＥＮが「１」になると、フリップフロップ２３において遅延された読み出しイネーブル信号ＲＥＮが「１」となる期間において、クロック・ゲーティング回路２１−２から出力される読み出しクロック信号ＲＣＬＫがマルチプレクサ回路２２により選択され、フリップフロップ群９５の各フリップフロップ８０に入力される。
信号ＳＣＡＮ＿ＥＮが「０」の場合において読み出しイネーブル信号ＲＥＮが「０」かつ書き込みイネーブル信号ＷＥＮが「１」になると、クロック・ゲーティング回路２１−１から出力される書き込みクロック信号ＷＣＬＫがマルチプレクサ回路２２により選択され、フリップフロップ群９５の各フリップフロップ８０に入力される。
信号ＳＣＡＮ＿ＥＮが「０」の場合において読み出しイネーブル信号ＲＥＮが「０」かつ書き込みイネーブル信号ＷＥＮが「０」になると、マルチプレクサ回路２２により選択されるクロック・ゲーティング回路２１−１の出力が「０」に固定されるため、選択クロック信号ＭＵＸ＿ＣＬＫは「０」に固定される。
このように、組み合わせ回路７５からの信号が各フリップフロップ８０に保持されるキャプチャモードにおいては、イネーブル信号（書き込みイネーブル信号ＷＥＮ，読み出しイネーブル信号ＲＥＮ）に応じたクロック信号（書き込みクロック信号ＷＣＬＫ，読み出しクロック信号ＲＣＬＫ）がクロック選択部２０において選択され、フリップフロップ群９５の各フリップフロップ８０に入力される。
【０１２８】
以上説明したように、本実施形態に係る非同期ＦＩＦＯメモリ装置１によれば、スキャンテストのシフトモードにおいて、スキャン・チェーンを構成する各フリップフロップ８０に読み出しクロック信号ＲＣＬＫが供給され、スキャンテストのキャプチャモードにおいては、イネーブル信号（書き込みイネーブル信号ＷＥＮ，読み出しイネーブル信号ＲＥＮ）に応じたクロック信号（書き込みクロック信号ＷＣＬＫ，読み出しクロック信号ＲＣＬＫ）が各フリップフロップ８０に供給される。これにより、非同期ＦＩＦＯメモリ装置１の書き込み動作と読み出し動作を、スキャンテストにおいて正しく検査することができる。
【０１２９】
なお、上述した実施形態では、シフトモードにおいて読み出しクロック信号ＲＣＬＫが選択されているが、本実施形態の他の例では、書き込みクロック信号ＷＣＬＫが選択されるようにしてもよい。
【０１３０】
以上、本発明の幾つかの実施形態について説明したが、本発明は上記の形態にのみ限定されるものではなく、他の種々のバリエーションを含んでいる。
【０１３１】
例えば上述した実施形態における回路構成は一例であり、同等な機能を有する他の回路構成に変更してもよい。
【０１３２】
また、上述した実施形態ではＦＩＦＯメモリ装置を例に挙げているが、本発明はこれに限定されるものではなく、例えばＬＩＦＯやリングバッファなどのメモリ装置にも本発明は適用可能である。
【符号の説明】
【０１３３】
１…非同期ＦＩＦＯメモリ装置、１０…要求調停部、１１，１２…第１同期化部、１３，１４，１５…調停制御部２０…クロック選択部、３０…メモリ部、４０…書き込みポインタ更新部、５０…読み出しポインタ更新部、６０…状態信号生成部、１００，１００Ａ，１００Ｂ…蓄電装置状態推定システム、１０１…蓄電装置、１０２…交流信号源部、１０３…電流検出部、１０４…電圧検出部、１０５…内部インピーダンス算出部、１０６…状態推定部、ＲＬ…負荷、Ｃ１…キャパシタ。
【図１】
0006030033.tif 000002
【図２】
0006030033.tif 000003
【図３】
0006030033.tif 000004
【図４】
0006030033.tif 000005
【図５】
0006030033.tif 000006
【図６】
0006030033.tif 000007
【図７】
0006030033.tif 000008
【図８】
0006030033.tif 000009
【図９】
0006030033.tif 000010
【図１０】
0006030033.tif 000011
【図１１】
0006030033.tif 000012
【図１２】
0006030033.tif 000013
【図１３】
0006030033.tif 000014
【図１４】
0006030033.tif 000015
【図１５】
0006030033.tif 000016
【図１６】
0006030033.tif 000017