説明

バスインターフェイス回路

【課題】
従来、CPUがマクロ回路からマクロデータを読み込む際に多くのリードクロックが必要であった。
【解決手段】
本発明のバスインターフェイス回路100は、マクロクロックに基づきマクロデータを保持するマクロクロック同期データ保持部101と、リードクロックに基づきマクロデータを保持するリードクロック同期データ保持部102と、リードクロックに基づきリード期間信号を出力するリード期間判定部103と、リード期間信号とマクロクロックとに基づきデータ保持信号を出力するマクロクロック検出部104と、データ保持信号とリードクロックに基づきメタ・ステーブル回避信号を出力するメタ・ステーブル回避部105と、メタ・ステーブル回避信号に基づきマクロクロック同期データ保持部101の出力、又は、リードクロック同期データ保持部102の出力のいずれかを選択してリードデータを出力するリードデータセレクタ106とを有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明はバスインターフェイス回路に関し、特にマイクロコンピュータに用いられるバスインターフェイス回路に関する。
【背景技術】
【0002】
近年、マイクロコンピュータ(以下、マイコンと称す)は、演算部であるCPUの演算能力を向上させるために、動作速度が高速化している。マイコンでは、周辺装置の制御や動作命令の格納などの各種機能をブロック化したマクロ回路を有しているのが一般的である。このマクロ回路の動作速度が高速である必要がない場合は、消費電力を低減させるために、マクロ回路は低速で動作させることが行われている。マクロ回路とCPUはデータバスを介して接続されるのが一般的である。CPUはこのデータバスを経由してマクロ回路から各種データの読み込み動作を行う。CPUはリードクロックを出力し、そのリードクロックに基づきマクロ回路からデータを読み込む。この時、マクロ回路が非同期で動作しており、リードクロックとは関係のないマクロクロックで動作している場合、リードクロックとマクロクロックが同時に変化し、データの干渉を起こすメタ・ステーブルが発生する。このメタ・ステーブルを防止するために非同期調停機能をもったバスインターフェイス回路が必要となる。従来のメタ・ステーブル防止機能を持ったバスインターフェイス回路500を図5に示す。図5に示すバスインターフェイス回路はリードクロックの1回目の立ち下がりの時のマクロデータをリードデータとして出力する回路である。
【0003】
しかしながら、図5に示すバスインターフェイス回路500によっても、CPUのマクロデータの読み込みはマクロクロックとリードクロックの関係に依存する。図5に示すバスインターフェイス回路500において、少ないクロック数でデータの読み込みを完了する場合のタイミングチャートを図6に示す。図6に示す例は、リードクロックの1回目の立ち下がり後で、2回目の立ち下がり前までの時間でマクロクロックが立ち上がっている。リードクロックの1回目の立ち下がりの前のデータD0は、マクロクロックの立ち上がり後にリードデータとして確定する。従って、2回目のリードクロックの立ち下がり時には、データD0がリードデータとして確定している。よって、2回目のリードクロックの立ち下がりで、CPUはデータD0を読み込むことができる。
【0004】
また、図5に示すバスインターフェイス回路500において、データの読み込みに多くのクロック数が必要な場合のタイミングチャートを図7に示す。図7に示す例は、リードクロックの1回目の立ち下がりの前でマクロクロックが立ち上がっている。リードクロックの1回目の立ち下がり時のデータD1である。このデータD1がリードデータとして確定するのは次のマクロクロックの立ち上がり後である。従って、次のマクロクロックの立ち上がりがある時まで、CPUはリードクロックを出力し続けなければ、データD1をリードデータとして読み込むことができない。よって、CPUがリードデータを読み込むためには多くの時間が必要になる。
【0005】
従来のバスインターフェイス回路500は、マクロクロックとリードクロックの関係によって、その時に必要になるマクロクロックのクロック数が異なる。従来のバスインターフェイス回路500では、CPUがマクロデータを読み込むために、最大でマクロクロック1周期分のデータアクセス時間が必要になる。この場合、マクロクロックを高速化することでデータアクセス時間を短縮することが考えられるが、近年の低消費電力化の傾向から現実的な方法ではない。
【0006】
特許文献1に非同期調停機能を持つバスインターフェイス回路が開示されている。このバスインターフェイス回路によれば、メタ・ステーブルを防止しながら、非同期調停を行うことができる。
【0007】
しかしながら、特許文献1に開示されているバスインターフェイス回路よっても、マルチビットの非同期調停を行うことはできない。マルチビットのマクロデータの非同期調整を行う場合、そのリードデータの確定をシングルビットの制御信号にて行う必要がある。特許文献1に示される回路でマルチビットを扱った場合、各ビットのデータをそれぞれ別の配線によるクロックで制御することになる。つまり、リードデータの確定をマルチビットのクロック信号で行うことになる。この場合、ビットによって同期タイミングがずれると、リードデータとマクロデータが異なるデータとなってしまう。つまり、正しいマクロデータをCPUが読み込めない問題がある。
【特許文献1】特開平5−313783号
【発明の開示】
【発明が解決しようとする課題】
【0008】
従来、CPUとマクロ回路の間でマルチビットのデータを扱う場合、CPUがデータを取り込むために多くのリードクロックが必要であった。
【課題を解決するための手段】
【0009】
本発明にかかるバスインターフェイス回路は、マクロ回路のマクロクロックに基づいてマクロデータを保持するマクロクロック同期データ保持部と、前記マクロデータの読み込み動作時に用いられるリードクロックに基づいて前記マクロデータを保持するリードクロック同期データ保持部と、前記リードクロックに基づきリード期間信号を出力するリード期間判定部と、前記リード期間信号と前記マクロクロックとに基づきデータ保持信号を出力するマクロクロック検出部と、前記データ保持信号と前記リードクロックに基づいてメタ・ステーブル回避信号を出力するメタ・ステーブル回避部と、前記メタ・ステーブル回避信号に基づいて、前記マクロクロック同期データ保持部の出力または前記リードクロック同期データ保持部の出力のいずれかを選択してリードデータを出力するリードデータセレクタとを有する。
【0010】
本発明においては、マクロクロックとリードクロックとの関係から、メタ・ステーブル回避部がメタ・ステーブル回避信号を生成する。また、このメタ・ステーブル回避信号に基づいて、マクロクロックに同期したマクロデータを出力するマクロクロック同期データ保持部からの入力又はリードクロックに同期したマクロデータを出力するリードクロック同期データ保持部からの入力のいずれかを選択して出力するリードデータセレクタを有する。これにより、CPUは少ないリードクロック数で正しいマクロデータを取り込むことが可能になる。
【発明の効果】
【0011】
本発明によれば、少ないリードクロック数で正しいマクロデータを出力するバスインターフェイス回路を実現できる。
【発明を実施するための最良の形態】
【0012】
実施の形態1
【0013】
本発明の実施の形態1のバスインターフェイス回路100のブロック図を図1に示す。図1を参照して実施の形態1のバスインターフェイス回路100について説明する。実施の形態1のバスインターフェイスはマクロクロック同期データ保持部101、リードクロック同期データ保持部102、リード期間判定部103、マクロクロック検出部104、メタ・ステーブル回避部105、リードデータセレクタ106を有している。
【0014】
マクロクロック同期データ保持部101はマクロクロックと後述するマクロクロック検出部104からのデータ保持信号とに基づき入力されるマクロデータの保持と出力とを行うブロックである。リードクロック同期データ保持部102はリードクロックに基づきマクロデータの保持と出力とを行うブロックである。リード期間判定部103は入力されるリードクロックからバスインターフェイス回路100がデータ読み出し期間であることを示すリード期間信号と、CPUに対してリードクロックの出力を要求するリトライ信号とを出力するブロックである。マクロクロック検出部104はリード期間信号とマクロクロックからリード期間中のマクロクロックの立ち上がりを検出し、データ保持信号を出力するブロックである。メタ・ステーブル回避部105はマクロクロック検出部104がリード期間中にマクロクロックの立ち上がりを検出した場合にメタ・ステーブル回避信号を出力するブロックである。リードデータセレクタ106はメタ・ステーブル回避信号に基づきマクロクロック同期データ保持部101からの信号とリードクロック同期データ保持部102からの信号とを選択し、リードデータを出力するブロックである。
【0015】
実施の形態1にかかるバスインターフェイス回路100の回路図を図2に示す。上記ブロック図の説明のブロックごとに内部回路について図2を参照しながら説明する。
【0016】
マクロクロック同期データ保持部101は入力セレクタ201とスレーブレジスタ202とを有している。入力セレクタ201は第1の入力端子Y、第2の入力端子N、選択信号入力端子を有しており、データ保持信号に基づき第1の入力端子Yと第2の入力端子Nのいずれかを選択し、入力されたデータを出力する回路である。スレーブレジスタ202は入力端子Dとクロック入力端子Cと出力端子Qを有しており、マクロクロックの立ち上がり時の入力端子Dのデータを出力端子Qに出力する回路である。
【0017】
入力セレクタ201の第2の入力端子Nにはマクロデータが入力されており、第1の入力端子Yはスレーブレジスタ202の出力端子Qと接続されている。また、入力セレクタ201の選択信号入力端子には第1の入力と第2の入力を選択するデータ保持信号がマクロクロック検出部から入力されている。入力セレクタ201の出力はスレーブレジスタ202の入力端子Dに接続されている。スレーブレジスタ202の入力端子Cにはマクロクロックが入力されており、出力端子Qは入力セレクタ201の第1の入力端子Yとリードデータセレクタ106の第1の入力端子Yに接続されている。
【0018】
リードクロック同期データ保持部102はスレーブレジスタ203を有している。スレーブレジスタ203は入力端子Dと入力端子Cと出力端子Qを有しており、リードクロックの立ち下がり時の入力端子Dのデータを出力端子Qに出力する回路である。入力端子Dにはマクロデータが入力されており、入力端子Cにはリードクロックが入力されている。出力端子Qはセレクタの第2の入力端子Nに接続されている。
【0019】
リード期間判定部103はインバータ204、リトライレジスタ205、リード期間レジスタ206、OR回路207を有している。インバータ204は入力端子と出力端子とを有しており、入力端子からの入力を反転させた出力をする回路である。リトライレジスタ205は入力端子D、入力端子C、出力端子Qを有しており、リードクロックの立ち上がり時の入力端子Dのデータを出力端子Qに出力する回路である。リード期間レジスタ206は入力端子D、入力端子C、出力端子Qを有しており、リードクロックの立ち下がり時の入力端子Dのデータを出力端子Qに出力する回路である。OR回路207は第1の入力端子、第2の入力端子、出力端子を有している。OR回路207は第1の入力端子及び第2の入力端子への入力が共にLowレベル(例えば、接地電位)になったときに、Lowレベルを出力し、それ以外のときはHighレベル(例えば、電源電位)を出力する回路である。
【0020】
リトライレジスタ205は出力端子Qがインバータ204を介して入力端子Dに接続されており、入力端子Cにはリードクロックが入力されている。また、リトライレジスタは出力端子Qよりリトライ信号を出力している。リード期間レジスタ206は入力端子Dがリトライレジスタ205の出力端子Qと接続されており、入力端子Cにリードクロックが入力されている。OR回路207の第1の入力端子はリトライレジスタ205の出力端子Qと接続されており、第2の入力端子はリード期間レジスタ206の出力端子Qと接続されている。また、OR回路207の出力端子はリード期間判定部103の出力となっており、リード期間信号が出力されている。
【0021】
マクロクロック検出部104はクロック検出レジスタ208を有している。クロック検出レジスタ208は入力端子D、入力端子C、出力端子Q、リセット端子Rを有しており、マクロクロックの立ち上がり時の入力端子Dのデータを出力端子Qに出力する回路である。また、リセット端子にLowレベルの信号が入力されたときには常に出力端子はLowレベルを出力する。入力端子Dは電源電位Vddに接続されており、入力端子Cにはマクロクロックが入力されている。出力端子Qはマクロクロック検出部104の出力になっており、データ保持信号が出力される。
【0022】
メタ・ステーブル回避部105はメタ検出レジスタ209を有している。メタ検出レジスタ209は入力端子D、入力端子C、出力端子Q、リセット端子Rを有しており、リードクロックの立ち上がり時の入力端子Dのデータを出力端子Qに出力する回路である。また、リセット端子にLowレベルの信号が入力されたときには常に出力端子はLowレベルを出力する。入力端子Dはマクロクロック検出部104の出力端子Qが接続されており、入力端子Cにはリードロックが入力されている。出力端子Qはメタ・ステーブル回避部105の出力になっており、メタ・ステーブル回避信号が出力される。
【0023】
リードデータセレクタ106は第1の入力端子Y、第2の入力端子N、出力端子、選択信号入力端子を有している。セレクタの第1の入力端子Yにはリードクロック同期データ保持部101の出力が接続されており、第2の入力端子Nにはマクロクロックデータ保持部102の出力が接続されている。また、選択信号入力端子にはメタ・ステーブル回避部105の出力が接続されている。リードデータセレクタ106の出力端子はバスインターフェイス回路100の出力となっており、メタ・ステーブル回避信号に基づいて、マクロクロック同期データ保持部101の出力とリードクロック同期データ保持部102の出力のいずれかを選択してリードデータを出力する。
【0024】
実施の形態1にかかるバスインターフェイス回路100の動作のフローチャートを図3に示す。図3を参照しながら実施の形態1にかかるバスインターフェイス回路100の動作を説明する。
【0025】
まず、CPUよりリードクロックが出力される(301)。CPUが読み込むデータは、このリードクロックの1回目の立ち上がり時にマクロ回路から出力されるマクロデータである。また、CPUはデータ読み込み動作時のみリードクロックを出力する。
【0026】
次に、リードクロックに基づきリード期間判定部103がリード期間信号及びリトライ信号を出力する(302)。このリード期間信号により、バスインターフェイス回路100は出力すべきリードデータの確定動作を行う。リード期間信号は2回目のリードクロックの立ち下がりによって停止される。これにより、バスインターフェイス回路100はリードデータの確定動作を停止する。また、リトライ信号によりCPUは次のクロックを出力する。リトライ信号は2回目のリードクロックの立ち上がりで停止する。これにより、これ以上のリードクロックの立ち上がりをバスインターフェイス回路100に送信しないようにする。
【0027】
次にマクロクロック検出部104はリードクロックの1回目の立ち上がりから2回目の立ち上がりの間(マクロクロック検出期間)でのマクロクロックの立ち上がりの有無を判定する(303)。
【0028】
マクロクロック検出期間でマクロクロックの立ち上がりがあった場合、マクロクロック検出部104はデータ保持信号を出力する。このデータ保持信号とリードクロックによりメタ・ステーブル回避部105がメタ・ステーブル回避信号を出力する(304)。このメタ・ステーブル回避信号によりリードデータセレクタ106はマクロクロック同期データ保持部101からの信号をリードデータとして出力する(305)。
【0029】
また、マクロクロックの検出期間にマクロクロックの立ち上がりがなかった場合、マクロクロック検出部104はデータ保持信号を出力しない。よって、メタ・ステーブル回避部105はメタ・ステーブル回避信号を出力しない(306)。これにより、ロードデータセレクタ106はリードクロック同期データ保持部102からの信号をリードデータとして出力する(307)。
【0030】
一般的にマイコン内部で用いられる信号は、リードクロックは遅延なくマイコンのすべての回路に供給されているのに対して、リードデータは遅延を持ってCPUに送信されるように設計する。このように設計することで、2回目のリードクロックの立ち下がりでCPUがデータを読み込むときには確実に決定されたリードデータがCPUに送信される。
【0031】
上述した動作により、確定したリードデータは遅延を持ってCPUに送信される。CPUは遅延したリードデータをリードクロックの2回目の立下りで読み込む(308)。
【0032】
実施の形態1にかかるバスインターフェイス回路100の動作のタイミングチャートを図4に示す。ここで、実施の形態1のバスインターフェイス回路100の動作は、リードクロックの2回の立ち上がりの間にマクロクロックの立ち上がりがある場合とない場合との2つに分けることができる。従って、以下では2つの場合に分けて上述した動作のフローチャートと対比しながら図4に示すタイミングチャートを説明する。
【0033】
ここで、マクロデータはマクロクロックの立ち上がりをきっかけにして変化する信号である。また、リードクロックの1回目の立ち上がりの時にマクロデータはD0である。しかし、リードクロックの2回目の立ち下がり(CPUのデータ取り込みタイミング)の時のマクロデータがD0とは異なるD1である。この時、バスインターフェイス回路100はマクロデータD0をリードデータとしてCPUに送信することを目的としている。
【0034】
まず、マクロクロック検出期間にマクロクロックの立ち上がりがあった場合について説明する。図4のタイミングチャートにおいてタイミングT1からT5の間の動作である。
【0035】
フローチャート301の動作がタイミングT1で行われる。タイミングT1ではCPUからリードクロックがバスインターフェイス回路100に送信される。このリードクロックに基づき、フローチャート302の動作がタイミングT1で行われる。タイミングT1では上記リードクロックに基づき、リード期間判定部103のリード期間信号がHighレベルとなる。この時、リード期間判定部103のリトライ信号がHighレベルとなる。
【0036】
タイミングT2でリードクロックが立ち下がる。この時、リードクロック同期データ保持部102はマクロデータD0の取り込み及び保持を行う。また、この時、リードデータセレクタ106の入力選択信号はメタ・ステーブル回避部105からLowレベルが入力されている。よって、リードデータはリードクロック同期データ保持部102が保持しているマクロデータD0である。
【0037】
フローチャート303の動作がタイミングT3で行われる。タイミングT3はマクロクロックの立ち上がりのタイミングである。この時、マクロクロック検出部104のデータ保持信号はHighレベルとなる。
【0038】
また、タイミングT3のマクロクロックの立ち上がりに基づき、マクロクロック同期データ保持部101は、タイミングT3以前のマクロデータD0を保持する。マクロクロック同期データ保持部101はマクロクロックの立ち上がりで取り込んだデータを、データ保持信号がHighレベルであり、かつ、マクロデータ取り込み後のマクロクロックの立ち上がりがあるまでの間取り込んだマクロデータを保持する。
【0039】
フローチャート304の動作がタイミングT4で行われる。タイミングT4では前述したデータ保持信号とリードクロックの立ち上がりからメタ・ステーブル回避部105のメタ・ステーブル回避信号がHighレベルとなる。
【0040】
このメタ・ステーブル回避部105の動作により、フローチャート305の動作もタイミングT4で行われる。メタ・ステーブル回避信号がHighレベルであるため、リードデータセレクタ106はマクロクロック同期データ保持部101のマクロデータD0をリードデータとして出力する。これにより、CPUが取り込むべきマクロデータが確定する。
【0041】
また、タイミングT4でリトライ信号がLowレベルとなる。これにより、CPUはこれ以上のリードクロックの立ち上がりを出力しない状態となる。
【0042】
タイミングT4で確定したリードデータは、遅延を持ってCPUに送信される。フローチャート308の動作をタイミングT5で行い、このリードデータをCPUが取り込む。つまり、リードデータは遅延を持ってCPUに送信されるため、タイミングT5の直後でリードデータが変化した場合であっても、CPUが取り込むリードデータはタイミングT5の以前のリードデータである。よって、メタ・ステーブルを起こすことなく、CPUはデータの取り込みを完了する。
【0043】
また、タイミングT5でリード期間信号がLowレベルとなる。これにより、バスインターフェイス回路100はリードデータの選択と確定の動作を停止する。
【0044】
次に、マクロクロック検出期間にマクロクロックの立ち上がりがない場合について説明する。図4のタイミングチャートにおいてタイミングT6からT9の間の動作である。
【0045】
リードクロックの1回目の立ち上がりの時にマクロデータはD2である。また、リードクロックの2回目の立ち下がり(CPUのデータ取り込みタイミング)の時のマクロデータもD2である。この時、バスインターフェイス回路100はマクロデータD2をリードデータとしてCPUに送信することを目的としている。
【0046】
フローチャート301の動作がタイミングT6で行われる。タイミングT6ではCPUからリードクロックがバスインターフェイス回路100に送信される。このリードクロックに基づき、フローチャート302の動作がタイミングT6で行われる。タイミングT6では上記リードクロックに基づき、リード期間判定部103のリード期間信号がHighレベルとなる。この時、リード期間判定部103のリトライ信号はHighレベルとなる。
【0047】
タイミングT7でリードクロックが立ち下がる。この時、リードクロック同期データ保持部102はマクロデータD0の取り込み及び保持を行う。また、この時、リードデータセレクタ106の入力選択信号はメタ・ステーブル回避部105からLowレベルが入力されている。よって、リードデータはリードクロック同期データ保持部102が保持しているマクロデータD0である。
【0048】
フローチャート303の動作がタイミングT6からT8の間で行われている。しかし、この間にマクロクロックの立ち上がりがないために、タイミングT6からT8までの間でマクロクロック検出部104のデータ保持信号はLowレベルを維持する。
【0049】
タイミングT6からT8の間、マクロクロックの立ち上がりがないためにマクロデータはD2を維持している。従って、マクロクロック同期データ保持部101はマクロデータD2を保持している。また。タイミングT6からT8の間でリードクロックの立ち下がりがあるが、マクロデータはD2を維持しているため、リードクロック同期データ保持部102はマクロデータD2を保持している。
【0050】
フローチャート306の動作がタイミングT4で行われる。タイミングT8では前述したデータ保持信号とリードクロックの立ち上がりからメタ・ステーブル回避部105のメタ・ステーブル回避信号はLowレベルを維持する。
【0051】
このメタ・ステーブル回避部105の動作により、フローチャート305の動作もタイミングT8で行われる。メタ・ステーブル回避信号がLowレベルであるため、リードデータセレクタ106はリードクロック同期データ保持部102のマクロデータD2をリードデータとして出力する。
【0052】
以上の動作により、CPUが取り込むべきマクロデータが確定する。タイミングT8で確定したリードデータは、遅延を持ってCPUに送信される。フローチャート308の動作をタイミングT9で行い、このリードデータをCPUが取り込む。つまり、リードデータは遅延を持ってCPUに送信されるため、タイミングT9の直後でリードデータが変化した場合であっても、CPUが取り込むリードデータはタイミングT9の以前のリードデータである。よって、メタ・ステーブルを起こすことなく、CPUはデータの取り込みを完了する。
【0053】
また、タイミングT9でリード期間信号がLowレベルとなる。これにより、バスインターフェイス回路100はリードデータの選択と確定の動作を停止する。
【0054】
上述の動作により、バスインターフェイス回路100はマクロクロックとリードクロックがいかなる関係であってもマクロ回路のマクロデータを2周期のリードクロックでCPUに取り込むことができる。これにより、マクロクロックとリードクロックの速度差が大きくなっても、マクロデータをCPUが取り込む際に無駄なリードクロックを必要としない。つまり、CPUは遅延なくマクロデータを処理することができるため、マイコン全体の性能が向上する。
【0055】
また、CPUがマクロデータを取り込む際のメタ・ステーブルが発生しないため、CPUとマクロ回路との間のタイミング設計が容易になる。このことは、マクロ回路の設計の自由度を高めることとなり、従来ではシステム全体の性能を考慮して、必要以上に高速化していたマクロクロックを低速化できる。つまり、マクロクロックの低速化による低消費電力化が可能になる。
【0056】
実施の形態1のバスインターフェイス回路100は、マルチビットのマクロデータが入力されており、このマルチビットのデータをリードデータとして確定するときに、シングルビットのメタ・ステーブル回避信号を用いている。つまり、バスインターフェイス回路100はマルチビットのデータに対応した非同期調停回路といえる。
【0057】
本発明によれば、少ないリードクロック数で読み込みが完了でき、マルチビットに対応したメタ・ステーブル回避機能を持ったバスインターフェイス回路を実現できる。
【0058】
また、本発明は上記実施の形態に限られたものではなく、適宜変形することが可能である。本発明は、マクロクロックとリードクロックの関係からメタ・ステーブル回避信号を生成し、複数のデータ保持部のいずれかのデータを出力する手段を有していれば良い。例えば、上記実施の形態とは反転した論理で構成することも可能である。
【図面の簡単な説明】
【0059】
【図1】実施の形態1にかかるバスインターフェイス回路のブロック図を示す図である。
【図2】実施の形態1にかかるバスインターフェイス回路の回路図を示す図である。
【図3】実施の形態1にかかるバスインターフェイス回路の動作のフローチャートを示す図である。
【図4】実施の形態1にかかるバスインターフェイス回路の動作のタイミングチャートを示す図である。
【図5】従来のバスインターフェイス回路の回路図を示す図である。
【図6】従来のバスインターフェイス回路において少ないリードクロックでマクロデータを読み込むことが可能な場合のタイミングチャートを示す図である。
【図7】従来のバスインターフェイス回路においてマクロデータの読み込むに多くのリードクロックが必要な場合のタイミングチャートを示す図である。
【符号の説明】
【0060】
101 マクロクロック同期データ保持部
102 リードクロック同期データ保持部
103 リード期間判定部
104 マクロクロック検出部
105 メタ・ステーブル回避部
106 リードデータセレクタ
201 入力セレクタ
202 スレーブレジスタ
203 スレーブレジスタ
204 インバータ
205 リトライレジスタ
206 リード期間レジスタ
207 OR回路
208 クロック検出レジスタ
209 メタ検出レジスタ
501 マクロクロック同期データ保持部
502 リード期間制御部

【特許請求の範囲】
【請求項1】
マクロ回路のマクロクロックに基づいてマクロデータを保持するマクロクロック同期データ保持部と、
前記マクロデータの読み込み動作時に用いられるリードクロックに基づいて前記マクロデータを保持するリードクロック同期データ保持部と、
前記リードクロックに基づきリード期間信号を出力するリード期間判定部と、
前記リード期間信号と前記マクロクロックとに基づきデータ保持信号を出力するマクロクロック検出部と、
前記データ保持信号と前記リードクロックに基づいてメタ・ステーブル回避信号を出力するメタ・ステーブル回避部と、
前記メタ・ステーブル回避信号に基づいて、前記マクロクロック同期データ保持部の出力または前記リードクロック同期データ保持部の出力のいずれかを選択してリードデータを出力するリードデータセレクタとを有するバスインターフェイス回路。
【請求項2】
前記マクロデータの読み込み動作時であって、前記リードクロックの1回目の切り替わりの時に入力されるマクロデータを、前記リードデータとして出力することを特徴とする請求項1記載のバスインターフェイス回路。
【請求項3】
前記メタ・ステーブル回避部は、前記リードクロックの1回目の切り替わりと3回目の切り替わりとの間にマクロクロックが切り替わった時にメタ・ステーブル回避信号を出力することを特徴とする請求項1又は2に記載のバスインターフェイス回路。
【請求項4】
前記マクロクロック同期データ保持部は、前記データ保持信号に基づいて、マクロクロックが入力されたときのデータの更新又はデータの維持をいずれか一方を選択できることを特徴とする請求項1乃至3のいずれか1項に記載のバスインターフェイス回路。
【請求項5】
前記リード期間判定部がリード期間として判定していない時は、前記マクロクロック同期データ保持部及び前記リードクロック同期データ保持部のいずれか一方の出力を選択する動作を行わないことを特徴とする請求項1乃至4のいずれか1項に記載のバスインターフェイス回路。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2006−236060(P2006−236060A)
【公開日】平成18年9月7日(2006.9.7)
【国際特許分類】
【出願番号】特願2005−50695(P2005−50695)
【出願日】平成17年2月25日(2005.2.25)
【出願人】(000232036)NECマイクロシステム株式会社 (72)
【Fターム(参考)】