(57)【要約】【解決課題】入力側と出力側とのクロックが異なっていても、取りこぼすことなく、出力側からデータを確実に取り込んで保持することができるようにする。【解決手段】受信側同期化部２８によって、システムクロックに同期したイネーブル信号の立ち上がりに応じて、イネーブル信号を取り込み、取り込んだイネーブル信号を通信クロックと同期させて出力する。そして、受信側同期化部２８から出力されたイネーブル信号及び通信クロックに応じて、受信データのデータ信号を受信データ保持レジスタ２４に取り込んで保持する。また、システム側同期化部３０によって、受信側同期化部２８から出力されたイネーブル信号を、システムクロックと同期させて出力し、そして、システム側同期化部３０から出力されたイネーブル信号及びシステムクロックに応じて、受信データ保持レジスタ２４からデータ信号をシステム側データ保持レジスタ２６に取り込んで保持する。【選択図】図２
2008071151.tif 000002
【特許請求の範囲】
【請求項１】
入力側のクロックに同期したイネーブル信号の立ち上がり及び立下りの一方に応じて、前記イネーブル信号を取り込み、出力側のクロックと同期して、前記イネーブル信号の立ち上がり及び立下りの他方を取り込むと共に、前記取り込んだイネーブル信号を前記出力側のクロックと同期させて出力する出力側同期手段と、
前記出力側同期手段から出力されたイネーブル信号及び前記出力側のクロックに応じて、出力側から出力されたデータ信号を取り込んで保持する第１のデータ保持手段と、
前記出力側同期手段から出力されたイネーブル信号を、前記入力側のクロックと同期させて出力する入力側同期手段と、
前記入力側同期手段から出力されたイネーブル信号及び前記入力側のクロックに応じて、前記第１のデータ保持手段に保持されたデータ信号を取り込んで保持する第２のデータ保持手段と、
を含む非同期データ保持回路。
【請求項２】
入力側のクロックに同期したイネーブル信号の立ち上がり及び立下りの一方に応じて、前記イネーブル信号を取り込み、出力側のクロックと同期して、前記イネーブル信号の立ち上がり及び立下りの他方を取り込むと共に、前記取り込んだイネーブル信号を前記出力側のクロックと同期させて出力する出力側同期手段と、
前記出力側同期手段から出力されたイネーブル信号及び前記出力側のクロックに応じて、出力側から出力されたデータ信号を取り込んで保持する第１のデータ保持手段と、
前記入力側のクロックに同期したイネーブル信号を、前記入力側のクロックの所定クロック数分遅延させて出力する遅延手段と、
前記遅延手段から出力されたイネーブル信号及び前記入力側のクロックに応じて、前記第１のデータ保持手段に保持されたデータ信号を取り込んで保持する第２のデータ保持手段と、
を含む非同期データ保持回路。
【請求項３】
前記入力側同期手段は、データ端子に前記出力側同期手段から出力されるイネーブル信号が入力され、クロック端子に前記入力側のクロックが入力される第１のＤフリップフロップと、データ端子に前記第１のＤフリップフロップの出力端子が接続され、クロック端子に前記入力側のクロックが入力され、出力端子から前記入力側のクロック信号と同期させた前記イネーブル信号を出力する第２のＤフリップフロップとから構成される請求項１記載の非同期データ保持回路。
【請求項４】
前記遅延手段は、前記所定クロック数分のＤフリップフロップを接続して構成した請求項２記載の非同期データ保持回路。
【請求項５】
前記出力側同期手段は、データ端子及びセット端子に前記イネーブル信号が入力され、クロック端子に前記出力側のクロックが入力された第３のＤフリップフロップと、データ端子が前記第３のＤフリップフロップの出力端子に接続され、クロック端子に前記出力側のクロックが入力され、出力端子から前記出力側クロックと同期させた前記イネーブル信号を出力する第４のＤフリップフロップとから構成される請求項１〜請求項４の何れか１項記載の非同期データ保持回路。
【請求項６】
前記第１のデータ保持手段及び前記第２のデータ保持手段は、複数ビットのデータ信号を保持する請求項１〜請求項５の何れか１項記載の非同期データ保持回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、非同期データ保持回路に係り、特に、出力側のクロックと同期したデータ信号を、入力側のクロックと同期させて保持する非同期データ保持回路に関する。
【背景技術】
【０００２】
従来より、データをレジスタからレジスタに転送する場合に、クロック信号を用いて転送している。例えば、同一のクロック信号を用いてデータをレジスタからレジスタに転送する回路が知られている（特許文献１）。
【０００３】
また、転送元と転送先とのレジスタに、異なる周波数のクロック信号が入力されている回路においても、データ転送が行われている。この場合には、図８に示すような構成の非同期データ乗せ替え回路が一般的に用いられている。
【０００４】
出力側データレジスタ３２２は、ｎビットの出力側データを、出力側クロックの立ち上がりで取り込み、出力側クロックと同期させてｎビットのデータを出力する。一方、Ｄフリップフロップ３２８Ａは、出力側クロックの立ち上がりを使って、受け側イネーブル信号を取り込み、Ｄフリップフロップ３２８ＡとＤフリップフロップ３２８Ｂとにより２段同期をとって、出力側クロックと同期させたイネーブル信号を、出力側データ保存レジスタ３２４の書き込み用のイネーブル信号として出力する。上記の出力側データレジスタ３２２から出力されるｎビットのデータは、Ｄフリップフロップ３２８Ｂから出力されるイネーブル信号が１のときに、出力側データ保存レジスタ３２４に保存される。
【０００５】
そして、受け側イネーブル信号及び受け側クロックの立ち上がりを使って、Ｄフリップフロップ３３０が、受け側イネーブル信号を取り込んで、書き込み用のイネーブル信号を受け側データ保存レジスタ３２６に出力し、出力側データ保存レジスタ３２４の出力が受け側データ保存レジスタ３２６に保存される。
【０００６】
上記の回路構成において、出力側クロックの周波数が受け側クロックの周波数よりも高い場合には、図９に示すように、タイミングＴ１でアクティブ（＝１）になった受け側イネーブル信号は、タイミングＴ３で出力側クロックと同期して出力側データ保存レジスタ３２４に出力され、ｎビットの出力側データは、タイミングＴ５、Ｔ７、Ｔ８で出力側データ保存レジスタ３２４に取り込まれる。その出力は、Ｄフリップフロップ３３０から出力されたイネーブル信号及び受け側クロックに応じて、タイミングＴ１１で受け側データ保存レジスタ３２６に取り込まれる。このように、データ転送の際にデータを取りこぼすことがない。
【０００７】
一方、出力側クロックの周波数が受け側クロックの周波数よりも低い場合には、図１０に示すように、タイミングＴ１でアクティブ（＝１）になった受け側イネーブル信号は、タイミングＴ２で立ち下がってしまうので、出力側クロックがタイミングＴ３で立ち上がったときには、すでに受け側イネーブル信号はアクティブではなく、結果として出力側データ保存レジスタ３２４にデータが取り込まれない。
【特許文献１】特開平１１−１０３２３８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上記のように、従来の非同期データ乗せ替え回路では、出力側クロックの周波数が受け側クロックの周波数よりも低速の場合には、その位相差によっては、データが受け渡されないため、データをとりこぼしてしまう、という問題がある。
【０００９】
本発明は、上記の問題点を解決するためになされたもので、入力側と出力側とのクロックが異なっていても、取りこぼすことなく、出力側からデータを確実に取り込んで保持することができる非同期データ保持回路を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記の目的を達成するために第１の発明に係る非同期データ保持回路は、入力側のクロックに同期したイネーブル信号の立ち上がり及び立下りの一方に応じて、前記イネーブル信号を取り込み、出力側のクロックと同期して、前記イネーブル信号の立ち上がり及び立下りの他方を取り込むと共に、前記取り込んだイネーブル信号を前記出力側のクロックと同期させて出力する出力側同期手段と、前記出力側同期手段から出力されたイネーブル信号及び前記出力側のクロックに応じて、出力側から出力されたデータ信号を取り込んで保持する第１のデータ保持手段と、前記出力側同期手段から出力されたイネーブル信号を、前記入力側のクロックと同期させて出力する入力側同期手段と、前記入力側同期手段から出力されたイネーブル信号及び前記入力側のクロックに応じて、前記第１のデータ保持手段に保持されたデータ信号を取り込んで保持する第２のデータ保持手段とを含んで構成されている。
【００１１】
第１の発明に係る非同期データ保持回路によれば、出力側同期手段によって、入力側のクロックに同期したイネーブル信号の立ち上がり及び立下りの一方に応じて、イネーブル信号を取り込み、出力側のクロックと同期して、イネーブル信号の立ち上がり及び立下りの他方を取り込むと共に、取り込んだイネーブル信号を出力側のクロックと同期させて出力する。そして、出力側同期手段から出力されたイネーブル信号及び出力側のクロックに応じて、出力側から出力されたデータ信号を第１のデータ保持手段に取り込んで保持する。
【００１２】
また、入力側同期手段によって、出力側同期手段から出力されたイネーブル信号を、入力側のクロックと同期させて出力し、そして、入力側同期手段から出力されたイネーブル信号及び入力側のクロックに応じて、第１のデータ保持手段に保持されたデータ信号を第２のデータ保持手段に取り込んで保持する。
【００１３】
このように、イネーブル信号の立ち上がり及び立下りの一方に応じて、出力側同期手段によってイネーブル信号を取り込むことにより、出力側のクロックと入力側のクロックとが異なっていても、イネーブル信号の立ち上がり及び立下りの一方を確実に取り込むことができ、また、出力側同期手段から出力されたイネーブル信号を、入力側のクロックと再び同期させて、このイネーブル信号に応じて、データ信号を取り込んで保持することにより、第１の保持手段から、安定して保持されたデータ信号を取り込むことができるため、出力側のクロックと入力側のクロックとが異なっていても、取りこぼすことなく、出力側からのデータ信号を確実に取り込んで保持することができる。
【００１４】
第１の発明に係る入力側同期手段を、データ端子に出力側同期手段から出力されるイネーブル信号が入力され、クロック端子に入力側のクロックが入力される第１のＤフリップフロップと、データ端子に第１のＤフリップフロップの出力端子が接続され、クロック端子に入力側のクロックが入力され、出力端子から入力側のクロック信号と同期させた前記イネーブル信号を出力する第２のＤフリップフロップとから構成することができる。これにより、第１のＤフリップフロップと第２のＤフリップフロップとによって２段同期をとることにより、イネーブル信号を入力側のクロックに同期させて出力することができる。
【００１５】
また、第２の発明に係る非同期データ保持回路は、入力側のクロックに同期したイネーブル信号の立ち上がり及び立下りの一方に応じて、前記イネーブル信号を取り込み、出力側のクロックと同期して、前記イネーブル信号の立ち上がり及び立下りの他方を取り込むと共に、前記取り込んだイネーブル信号を前記出力側のクロックと同期させて出力する出力側同期手段と、前記出力側同期手段から出力されたイネーブル信号及び前記出力側のクロックに応じて、出力側から出力されたデータ信号を取り込んで保持する第１のデータ保持手段と、前記入力側のクロックに同期したイネーブル信号を、前記入力側のクロックの所定クロック数分遅延させて出力する遅延手段と、前記遅延手段から出力されたイネーブル信号及び前記入力側のクロックに応じて、前記第１のデータ保持手段に保持されたデータ信号を取り込んで保持する第２のデータ保持手段とを含んで構成されている。
【００１６】
第２の発明に係る非同期データ保持回路によれば、出力側同期手段によって、入力側のクロックに同期したイネーブル信号の立ち上がり及び立下りの一方に応じて、イネーブル信号を取り込み、出力側のクロックと同期して、イネーブル信号の立ち上がり及び立下りの他方を取り込むと共に、取り込んだイネーブル信号を出力側のクロックと同期させて出力する。そして、出力側同期手段から出力されたイネーブル信号及び出力側のクロックに応じて、出力側から出力されたデータ信号を第１のデータ保持手段に取り込んで保持する。
【００１７】
また、遅延手段によって、入力側のクロックに同期したイネーブル信号を、入力側のクロックの所定クロック数分遅延させて出力し、そして、遅延手段から出力されたイネーブル信号及び入力側のクロックに応じて、第１のデータ保持手段に保持されたデータ信号を第２のデータ保持手段に取り込んで保持する。
【００１８】
このように、イネーブル信号の立ち上がり及び立下りの一方に応じて、出力側同期手段によってイネーブル信号を取り込むことにより、出力側のクロックと入力側のクロックとが異なっていても、イネーブル信号の立ち上がり及び立下りの一方を確実に取り込むことができ、また、イネーブル信号を、所定クロック数分だけ遅延させて、このイネーブル信号に応じて、データ信号を取り込んで保持することにより、第１の保持手段から、安定して保持されたデータ信号を取り込むことができるため、出力側のクロックと入力側のクロックとが異なっていても、取りこぼすことなく、出力側からのデータ信号を確実に取り込んで保持することができる。
【００１９】
第２の発明に係る遅延手段を、所定クロック数分のＤフリップフロップを接続して構成することができる。これにより、所定クロック数分のＤフリップフロップで繰り返し同期をとるため、イネーブル信号を遅延させて出力することができる。
【００２０】
上記の発明に係る出力側同期手段を、データ端子及びセット端子にイネーブル信号が入力され、クロック端子に出力側のクロックが入力された第３のＤフリップフロップと、データ端子が第３のＤフリップフロップの出力端子に接続され、クロック端子に出力側のクロックが入力され、出力端子から出力側クロックと同期させたイネーブル信号を出力する第４のＤフリップフロップとから構成することができる。これにより、第３のＤフリップフロップのセット端子により、イネーブル信号の立ち上がり及び立下りの一方に応じて、イネーブル信号を確実に取り込み、第４のＤフリップフロップにより、取り込んだイネーブル信号を出力側のクロックと同期させて出力することができる。
【００２１】
また、上記の発明に係る第１のデータ保持手段及び第２のデータ保持手段は、複数ビットのデータ信号を保持することができる。この構成において、第１の保持手段から、安定して保持されたデータ信号を第２の保持手段に取り込むことができるため、ビット間でデータ信号の更新タイミングがずれていても、複数ビットのデータ信号を正確に取り込むことができる。
【発明の効果】
【００２２】
以上説明したように、本発明の非同期データ保持回路によれば、イネーブル信号の立ち上がり及び立下りの一方に応じて、出力側同期手段によってイネーブル信号を取り込むことにより、異なるクロックであっても、イネーブル信号の立ち上がり及び立下りの一方を確実に取り込むことができ、また、第１の保持手段から、安定して保持されたデータ信号を取り込むことができるため、出力側のクロックと入力側のクロックとが異なっていても、取りこぼすことなく、出力側からのデータ信号を確実に取り込んで保持することができる、という効果が得られる。
【発明を実施するための最良の形態】
【００２３】
以下、図面を参照して本発明の実施の形態を詳細に説明する。なお、本実施の形態では、半導体集積回路に設けられた非同期データ乗せ替え回路に本発明を適用した場合を例に説明する。
【００２４】
図１に示すように、第１の実施の形態に係る半導体集積回路１０は、外部とシリアル通信を行って、外部からデータ及び通信クロック信号を受信するシリアル通信回路１２と、ＣＰＵ１４と、ＣＰＵ１４の動作タイミングを規定するシステムクロック信号を生成するクロックジェネレータ１６とを備えている。なお、通信クロック信号の周波数とシステムクロック信号の周波数とは異なっている。
【００２５】
ＣＰＵ１４は、シリアル通信回路１２が受信したデータのうち、読み出すデータを指定するためのイネーブル信号をシリアル通信回路１２に出力し、イネーブル信号に応じた受信データをシリアル通信回路１２から読み出す。ここで、ＣＰＵ１４によって、データが読み出される場合には、通信クロック信号に同期した受信データが、シリアル通信回路１２によってシステムクロック信号と同期され、ＣＰＵ１４によって読み出される。なお、ＣＰＵ１４から出力されるイネーブル信号は、システムクロックと同期している。
【００２６】
シリアル通信回路１２は、受信データをＦＩＦＯ方式で取り込む複数のバッファ１７と、複数のバッファ１７のうち何れかを選択するセレクタ１８と、セレクタ１８によって選択されたバッファの受信データを、システムクロック信号と同期させて、ＣＰＵ１４に乗せ替えるための非同期データ保持回路としての非同期データ乗せ替え回路２０とを備えている。また、非同期データ乗せ替え回路２０には、外部からの通信クロック信号、クロックジェネレータ１６からのシステムクロック信号、及びＣＰＵ１４からのイネーブル信号が入力されている。
【００２７】
次に、非同期データ乗せ替え回路２０の回路構成について図２を用いて説明する。非同期データ乗せ替え回路２０は、ｎビット幅（ｎ＞２）の受信データを記憶するためのｎビット分の受信データレジスタ２２と、受信データレジスタ２２に記憶されたｎビットの受信データを取り込んで保持するｎビット分の受信データ保持レジスタ２４と、受信データ保持レジスタ２４に保持された受信データを取り込んで保持するｎビット分のシステム側データ保持レジスタ２６とを備えている。
【００２８】
また、非同期データ乗せ替え回路２０は、入力された信号を通信クロック信号と同期させる受信側同期化部２８と、入力された信号をシステムクロック信号と同期させるシステム側同期化部３０とを備え、受信側同期化部２８は、Ｓ端子を有する１段目のＤフリップフロップ２８Ａと、２段目のＤフリップフロップ２８Ｂとから構成され、２段同期をとるように構成されている。また、システム側同期化部３０は、１段目のＤフリップフロップ３０Ａと、２段目のＤフリップフロップ３０Ｂとから構成され、２段同期を取るように構成されている。
【００２９】
受信データレジスタ２２のデータ入力Ｄ端子には、受信データのデータ信号が入力され、受信データレジスタ２２の出力端子であるＱ端子は、受信データ保持レジスタ２４のＤ端子に接続され、受信データ保持レジスタ２４の出力端子であるＱ端子は、システム側データ保持レジスタ２６のＤ端子に接続され、また、システム側データ保持レジスタのＱ端子から、リードデータが出力される。
【００３０】
受信側同期化部２８のＤフリップフロップ２８ＡのＤ端子及びＳ端子には、イネーブル信号が入力され、Ｄフリップフロップ２８Ａの出力端子であるＱ端子は、Ｄフリップフロップ２８ＢのＤ端子に接続され、Ｄフリップフロップ２８ＢのＱ端子は、受信データ保持レジスタ２４のＥ端子に接続され、また、Ｄフリップフロップ２８ＢのＱ端子は、システム側同期化部３０のＤフリップフロップ３０ＡのＤ端子に接続されている。
【００３１】
Ｄフリップフロップ３０Ａの出力端子であるＱ端子は、Ｄフリップフロップ３０ＢのＤ端子に接続され、Ｄフリップフロップ３０ＢのＱ端子は、システム側データ保持レジスタ２６のＥ端子に接続されている。
【００３２】
通信クロック信号は、受信データレジスタ２２、受信側同期化部２８のＤフリップフロップ２８Ａ、２８Ｂ、及び受信データ保持レジスタ２４の各々のクロック端子に入力され、システムクロック信号は、システム側同期化部３０のＤフリップフロップ３０Ａ、３０Ｂ及びシステム側データ保持レジスタ２６の各々のクロック端子に入力される。
【００３３】
受信データレジスタ２２は、通信クロック信号と同期して、受信データを取り込んで記憶し、受信データ保持レジスタ２２は、受信側同期化部２８から出力されるイネーブル信号及び通信クロック信号に応じて、受信データレジスタ２２に記憶された受信データを取り込んで保持する。また、システム側データ保持レジスタ２６は、システム側同期化部３０からのイネーブル信号及びシステムクロック信号に応じて、受信データ保持レジスタ２４に保持された受信データを取り込んで保持する。
【００３４】
また、受信側同期化部２８のＤフリップフロップ２８Ａは、Ｓ端子に入力されているイネーブル信号が立ち上がると、通信クロック信号と同期せずに、イネーブル信号をＤ端子から取り込んで、１にセットする。なお、イネーブル信号が立ち下がった場合には、通信クロック信号と同期して、イネーブル信号をＤ端子から取り込んで、０にセットする。
【００３５】
受信側同期化部２８のＤフリップフロップ２８Ｂ、システム側同期化部３０のＤフリップフロップ３０Ａ、３０Ｂは、一般的なＤフリップフロップと同様の動作を行う。
【００３６】
次に、第１の実施の形態に係る半導体集積回路１０の動作について説明する。
【００３７】
まず、半導体集積回路１０が、外部からデータを受信するときに、シリアル通信回路１２には、通信クロック信号と共に、受信データが入力されて、受信データがバッファ１７に一時的に格納され、セレクタ１８を介して非同期データ乗せ替え回路２０に入力される。このとき、クロックジェネレータ１６からシステムクロック信号がシリアル通信回路１２の非同期データ乗せ替え回路２０に入力されている。
【００３８】
そして、ＣＰＵ１４によってシリアル通信回路１２の非同期データ乗せ替え回路２０から受信データを読み出すときに、ＣＰＵ１４からイネーブル信号が非同期データ乗せ替え回路２０に入力され、イネーブル信号が入力されたタイミングに応じた受信データが、ＣＰＵ１４によって、非同期データ乗せ替え回路２０から読み出される。
【００３９】
このとき、非同期データ乗せ替え回路２０では、以下のように動作する。まず、通信クロック信号の周波数が、システムクロック信号の周波数よりも低い場合を例に説明する。
【００４０】
図３に示すように、タイミングＴ２でイネーブル信号が立ち上がる（アクティブになる）と、Ｄフリップフロップ２８Ａは、立ち上がったイネーブル信号を非同期に取り込んで、１にセットすると共に、タイミングＴ４で、Ｄフリップフロップ２８Ａは、通信クロックと同期して、立ち下がったイネーブル信号を取り込む。そして、イネーブル信号は、タイミングＴ３で立ち下がる（ネゲートする）が、すでにＤフリップフロップ２８Ａに立ち上がったイネーブル信号が取り込まれて、１にセットされているので、タイミングＴ４で、通信クロックと同期して、Ｄフリップフロップ２８Ｂに立ち上がったイネーブル信号が取り込まれる。
【００４１】
そして、タイミングＴ７では、Ｄフリップフロップ２８Ｂから出力されるイネーブル信号及び通信クロック信号に応じて、受信データレジスタ２２から受信データ保持レジスタ２４に受信データのデータ信号が取り込まれて保持される。一方、受信側同期化部２８から出力されたイネーブル信号が、Ｄフリップフロップ３０Ａ、３０Ｂを経由して、タイミングＴ７で、システム側同期化部３０から出力されるイネーブル信号がアクティブ（＝１）となり、タイミングＴ８で、システム側データ保持レジスタ２６が、システム側同期化部３０から出力されるイネーブル信号及びシステムクロックに応じて、受信データ保持レジスタ２４から受信データのデータ信号を取り込んで保持し、リードデータとしてＣＰＵ１４に受け渡される。
【００４２】
次に、通信クロック信号の周波数が、システムクロック信号の周波数よりも高い場合について図４を用いて説明する。
【００４３】
タイミングＴ１で、イネーブル信号が立ち上がると同時に、受信側同期化部２８のＤフリップフロップ２８Ａは、立ち上がったイネーブル信号を非同期に取り込んで、１にセットすると共に、タイミングＴ６で、Ｄフリップフロップ２８Ａは、通信クロックと同期して、立ち下がったイネーブル信号を取り込む。このとき、Ｄフリップフロップ２８Ａの出力は、タイミングＴ３、Ｔ４、Ｔ６で、順次Ｄフリップフロップ２８Ｂに取り込まれ、Ｄフリップフロップ２８Ｂから出力されるイネーブル信号がアクティブ（＝１）になることで、受信データ保持レジスタ２４は、受信データレジスタ２２から順次受信データのデータ信号を取り込んで保持する。
【００４４】
また、受信側同期化部２８のＤフリップフロップ２８Ｂから出力されるイネーブル信号が、システム側同期化部３０のＤフリップフロップ３０Ａ、３０Ｂを経由して出力されるイネーブル信号が、タイミングＴ９でアクティブ（＝１）となり、そして、タイミングＴ１３で、システム側データ保持レジスタ２６が、システム側同期化部３０から出力されるイネーブル信号及びシステムクロックに応じて、受信データ保持レジスタ２４から受信データのデータ信号を取り込んで保持し、ＣＰＵ１４にリードデータとして受け渡される。
【００４５】
上記のように、ＣＰＵ１４からのイネーブル信号の立ち上がりが受信側同期化部２８によって確実に取り込まれて、受信データ保持レジスタ２４に受信データが取り込まれて保持される。そして、受信側同期化部２８によって通信クロック信号と同期したイネーブル信号が、システム側同期化部３０によって、システムクロックと再び同期する共に、遅延してシステム側データ保持レジスタ２６に取り込まれるため、受信データ保持レジスタ２４に受信データが安定して保持された状態で、受信データ保持レジスタ２４から受信データをシステム側データ保持レジスタ２６に取り込むことができる。
【００４６】
そして、システム側データ保持レジスタ２６に安定して取り込まれた受信データが、ＣＰＵ１４によって読み込まれる。
【００４７】
以上説明したように、第１の実施の形態に係る半導体集積回路の非同期データ乗せ替え回路によれば、イネーブル信号の立ち上がりに応じて、受信側同期化部の１段目のＤフリップフロップがイネーブル信号を取り込むことにより、通信クロックとシステムクロックとが異なっていても、イネーブル信号の立ち上がりを確実に取り込むことができる。また、受信側同期化部から出力されたイネーブル信号を、システムクロックと再び同期させて、このイネーブル信号に応じて、受信データのデータ信号を受信データ保持レジスタからシステム側データ保持レジスタに取り込んで保持することにより、受信データ保持レジスタから、安定して保持された受信データのデータ信号を取り込むことができる。従って、通信クロックとシステムクロックとが異なっていても、取りこぼすことなく、受信データのデータ信号を確実に取り込んで保持することができる。
【００４８】
受信側同期化部の１段目のＤフリップフロップのＳ端子により、イネーブル信号の立ち上がりに応じて、立ち上がったイネーブル信号を確実に取り込み、２段目のＤフリップフロップにより、取り込んだイネーブル信号を通信クロックと同期させて出力することができる。
【００４９】
また、システム側同期化部では、２つのＤフリップフロップと第２のＤフリップフロップとによって２段同期をとることにより、受信側同期化部から出力されたイネーブル信号をシステムクロックに同期させて出力することができる。
【００５０】
また、各種レジスタが複数ビット分のレジスタであって、複数ビットを保持する場合であっても、受信データ保持レジスタから、安定して保持された受信データのデータ信号を取り込むことができるため、ビット間でデータ信号の更新タイミングがずれていても、複数ビットのデータ信号をシステム側データ保持レジスタに正確に取り込むことができる。
【００５１】
受信データの通信クロックがシステムクロックよりも低速の場合でも、ＣＰＵは受信データをシステムクロックと同期させて確実に受け取ることができる。
【００５２】
なお、上記の実施の形態では、非同期データ乗り換え回路を用いて、ＣＰＵが受信データを受け取る場合を例に説明したが、これに限定されるものではなく、システムクロックとは非同期に動いているカウンタから、ＣＰＵがカウンタ値を読み込む場合に、本実施の形態の非同期データ乗り換え回路を介して、システムクロックと同期したデータとしてカウンタ値を読み込むようにした構成に本発明を適用してもよい。
【００５３】
次に、第２の実施の形態について説明する。なお、第１の実施の形態と同様の構成になっている部分については、同一符号を付して説明を省略する。
【００５４】
第２の実施の形態では、システム側データ保持レジスタに入力されるイネーブル信号が、ＣＰＵから入力されたイネーブル信号を所定クロック分遅延させたものとなっている点が第１の実施の形態と異なっている。
【００５５】
図５に示すように、第２の実施の形態に係る非同期データ乗り換え回路２２０では、受信データレジスタ２２、受信データ保持レジスタ２４、システム側データ保持レジスタ２６、受信側同期化部２８、及びＣＰＵ１４からのイネーブル信号を所定クロック分遅延させて出力するためのイネーブル信号遅延部２３０が設けられている。
【００５６】
イネーブル信号遅延部２３０は、Ｎ段（Ｎは２以上の整数、例えば３段）のＤフリップフロップ２３０Ａ〜２３０Ｃから構成され、入力されるイネーブル信号に対して、システムクロック信号によってＮ段の同期をとることにより、システムクロック信号のＮクロック分遅延させて、イネーブル信号を出力する。
【００５７】
なお、段数Ｎは、入力される通信クロック信号の周波数の範囲に基づいて、受信データ保持レジスタ２４にデータ信号が安定して保持されるまでにかかるシステムクロックのクロック数と等しくなるようにすればよい。
【００５８】
Ｄフリップフロップ２３０ＡのＤ端子には、イネーブル信号が入力され、Ｑ端子は、２段目のＤフリップフロップ（図示省略）のＤ端子に接続されている。また、２段目のＤフリップフロップのＱ端子は、３段目のＤフリップフロップ２３０ＣのＤ端子に接続され、Ｑ端子は、システム側データ保持レジスタ２６のＥ端子に接続されている。
【００５９】
なお、半導体集積回路における非同期データ乗り換え回路２２０以外の構成は、第１の実施の形態と同様であるため、説明を省略する。
【００６０】
次に、第２の実施の形態に係る非同期データ乗り換え回路２２０の動作について説明する。まず、通信クロック信号の周波数が、システムクロック信号の周波数よりも低い場合について図６を用いて説明する。
【００６１】
タイミングＴ２でイネーブル信号が立ち上がる（アクティブになる）と、Ｄフリップフロップ２８Ａは、非同期にイネーブル信号を取り込み、１にセットすると共に、タイミングＴ４で、Ｄフリップフロップ２８Ａは、通信クロックと同期して、立ち下がったイネーブル信号を取り込む。ここで、イネーブル信号は、タイミングＴ３で立ち下がる（ネゲートする）が、すでにＤフリップフロップ２８Ａが、立ち上がったイネーブル信号を取り込んで、１にセットしているので、タイミングＴ４で、Ｄフリップフロップ２８Ｂに立ち上がったイネーブル信号が取り込まれる。そして、タイミングＴ７では、Ｄフリップフロップ２８Ｂから出力されるイネーブル信号及び通信クロックに応じて、受信データレジスタ２２から受信データ保持レジスタ２４に受信データのデータ信号が取り込まれて保持される。
【００６２】
一方、ＣＰＵ１４からのイネーブル信号がイネーブル信号遅延部２３０のＤフリップフロップ２３０Ａ〜２３０Ｃを経由することにより、イネーブル信号が立ち上がったタイミングＴ２から、システムクロック信号の３クロック分遅れたタイミングＴ７で、イネーブル信号遅延部２３０の出力であるイネーブル信号がアクティブ（＝１）となり、タイミングＴ８で、システム側データ保持レジスタ２６が、イネーブル信号遅延部２３０のＮ段目のＤフリップフロップ２３０Ｃからのイネーブル信号及びシステムクロックに応じて、受信データ保持レジスタ２４から受信データを取り込んで保持し、ＣＰＵ１４にリードデータとして受け渡される。
【００６３】
次に、通信クロック信号の周波数が、システムクロック信号の周波数よりも高い場合について図７を用いて説明する。
【００６４】
タイミングＴ１で、イネーブル信号が立ち上がると同時に、受信側同期化部２８のＤフリップフロップ２８Ａが、イネーブル信号を非同期に取り込み、１にセットすると共に、タイミングＴ６で、Ｄフリップフロップ２８Ａは、通信クロックと同期して、立ち下がったイネーブル信号を取り込む。このとき、Ｄフリップフロップ２８Ａの出力は、タイミングＴ３、Ｔ４、Ｔ６で、順次Ｄフリップフロップ２８Ｂに取り込まれ、Ｄフリップフロップ２８Ｂの出力がアクティブ（＝１）になることで、受信データ保持レジスタ２４は、受信側同期化部２８から出力されるイネーブル信号及び通信クロックに応じて、受信データレジスタ２２から順次受信データのデータ信号を取り込み、保持する。
【００６５】
また、ＣＰＵ１４からのイネーブル信号が、イネーブル信号遅延部２３０のＤフリップフロップ２３０Ａ〜２３０Ｃを経由して、イネーブル信号が立ち上がったタイミングＴ３から、システムクロック信号の３クロック分遅れたタイミングＴ１３で、イネーブル信号遅延部２３０の出力であるイネーブル信号がアクティブ（＝１）となり、タイミングＴ１７で、システム側データ保持レジスタ２６が、イネーブル信号遅延部２３０のＮ段目のＤフリップフロップ２３０Ｃからのイネーブル信号及びシステムクロックに応じて、受信データ保持レジスタ２４から受信データのデータ信号を取り込んで保持し、ＣＰＵ１４にリードデータとして受け渡される。
【００６６】
上記のように、ＣＰＵ１４からのイネーブル信号の立ち上がりが受信側同期化部２８によって確実に取り込まれて、受信データ保持レジスタ２４に受信データのデータ信号が保持される。そして、ＣＰＵ１４から入力されたイネーブル信号が、イネーブル信号遅延部２３０によって、所定クロック遅延してシステム側データ保持レジスタ２６に入力されるため、受信データ保持レジスタ２４に受信データが安定して保持された状態で、受信データのデータ信号をシステム側データ保持レジスタ２６に取り込むことができる。
【００６７】
そして、システム側データ保持レジスタ２６に安定して取り込まれた受信データが、ＣＰＵ１４によって読み込まれる。
【００６８】
以上説明したように、第２の実施の形態に係る半導体集積回路によれば、イネーブル信号の立ち上がりに応じて、受信側同期化部の１段目のＤフリップフロップがイネーブル信号を取り込むことにより、通信クロックとシステムクロックとが異なっていても、イネーブル信号の立ち上がりを確実に取り込むことができる。また、イネーブル信号を、所定クロック数分だけ遅延させて、このイネーブル信号に応じて、受信データ保持レジスタからシステム側データ保持レジスタにデータ信号を取り込んで保持することにより、受信データ保持レジスタから、安定して保持された受信データのデータ信号をシステム側データ保持レジスタに取り込むことができる。従って、通信クロックとシステムクロックとが異なっていても、取りこぼすことなく、受信データのデータ信号を確実に取り込んで保持することができる。
【００６９】
また、所定クロック数Ｎ分のＤフリップフロップでＮ段の同期をとるため、イネーブル信号を遅延させてシステム側データ保持レジスタに出力することができる。
【図面の簡単な説明】
【００７０】
【図１】本発明の第１の実施の形態に係る半導体集積回路の構成を示すブロック図である。
【図２】本発明の第１の実施の形態に係る非同期データ乗せ替え回路の構成を示す回路図である。
【図３】通信クロック信号の周波数がシステムクロック信号の周波数よりも低い場合における第１の実施の形態に係る非同期データ乗せ替え回路の動作を示すタイムチャートである。
【図４】通信クロック信号の周波数がシステムクロック信号の周波数よりも高い場合における第１の実施の形態に係る非同期データ乗せ替え回路の動作を示すタイムチャートである。
【図５】本発明の第２の実施の形態に係る非同期データ乗せ替え回路の構成を示す回路図である。
【図６】通信クロック信号の周波数がシステムクロック信号の周波数よりも低い場合における第２の実施の形態に係る非同期データ乗せ替え回路の動作を示すタイムチャートである。
【図７】通信クロック信号の周波数がシステムクロック信号の周波数よりも高い場合における第２の実施の形態に係る非同期データ乗せ替え回路の動作を示すタイムチャートである。
【図８】従来技術の非同期データ乗せ替え回路の構成を示す回路図である。
【図９】通信クロック信号の周波数がシステムクロック信号の周波数よりも低い場合における従来技術の非同期データ乗せ替え回路の動作を示すタイムチャートである。
【図１０】通信クロック信号の周波数がシステムクロック信号の周波数よりも高い場合における従来技術の非同期データ乗せ替え回路の動作を示すタイムチャートである。
【符号の説明】
【００７１】
１０   半導体集積回路
１４  ＣＰＵ
１６   クロックジェネレータ
２０、２２０  非同期データ乗せ替え回路
２２   受信データレジスタ
２２   受信データ保持レジスタ
２４   受信データ保持レジスタ
２６   システム側データ保持レジスタ
２８Ａ、２８Ａ、３０Ａ、３０Ｂ、２３０Ａ、２３０Ｃ  Ｄフリップフロップ
２８   受信側同期化部
３０   システム側同期化部
２３０  イネーブル信号遅延部
【図１】
2008071151.tif 000003
【図２】
2008071151.tif 000004
【図３】
2008071151.tif 000005
【図４】
2008071151.tif 000006
【図５】
2008071151.tif 000007
【図６】
2008071151.tif 000008
【図７】
2008071151.tif 000009
【図８】
2008071151.tif 000010
【図９】
2008071151.tif 000011
【図１０】
2008071151.tif 000012