(57)【要約】【課題】メタステーブルの影響を防ぎながら非同期回路間で信号を転送し、クロック周波数の選択の自由度を高め、かつ転送遅延を抑制することが可能な半導体装置を提供する。【解決手段】クロックに同期していない非同期信号を本体回路Ｂ１へ転送する半導体装置１０１であって、非同期信号をクロックに基づいて保持し、かつ保持した非同期信号を出力する順序回路ＦＦ１と、クロックを所定時間遅延させ、遅延させたクロックを遅延クロックとして出力する遅延素子ＤＬ１とを備え、本体回路Ｂ１は、順序回路ＦＦ１から受けた非同期信号を遅延素子ＤＬ１から受けた遅延クロックに同期して処理する。【選択図】図１
2009033553.tif 000002
【特許請求の範囲】
【請求項１】
クロックに同期していない非同期信号を本体回路へ転送する半導体装置であって、
前記非同期信号を前記クロックに基づいて保持し、かつ前記保持した非同期信号を出力する順序回路と、
前記クロックを所定時間遅延させ、前記遅延させた前記クロックを遅延クロックとして出力する遅延素子とを備え、
前記本体回路は、前記順序回路から受けた前記非同期信号を前記遅延素子から受けた前記遅延クロックに同期して処理する半導体装置。
【請求項２】
前記半導体装置は、さらに、
前記クロックおよび前記遅延クロックのいずれかを選択して前記本体回路へ出力するセレクタを備え、
前記本体回路は、前記順序回路から受けた前記非同期信号を前記セレクタから受けたクロックに同期して処理する請求項１記載の半導体装置。
【請求項３】
転送制御回路と、
第１のクロックを所定時間遅延させ、前記遅延させた第１のクロックを遅延クロックとして出力する遅延素子とを備え、
前記転送制御回路は、
前記第１のクロックに同期していない非同期信号を前記第１のクロックに基づいて保持し、かつ前記保持した非同期信号を第１の転送制御信号として出力する第１の順序回路と、
前記第１の転送制御信号に基づいて、前記遅延素子から受けた前記遅延クロックを出力するか否かを切り替える出力制御回路とを含む半導体装置。
【請求項４】
前記半導体装置は、さらに、
受けた転送データを前記転送制御回路から受けた前記遅延クロックの所定の遷移タイミングに基づいて保持し、かつ前記保持した転送データを出力する第２の順序回路を備え、
前記非同期信号は、前記転送データが変化するタイミングの所定時間前にアサートされ、前記転送データが変化するタイミングにおいてネゲートされ、かつ前記アサート期間は、前記遅延素子の遅延時間より長く、
前記出力制御回路は、前記非同期信号が前記第１のクロックの前記所定の遷移タイミングにおいてアサートされている場合には、前記遅延クロックの前記第２の順序回路への出力を停止する請求項３記載の半導体装置。
【請求項５】
前記半導体装置は、さらに、
前記第２の順序回路から受けた前記転送データを前記遅延素子から受けた前記遅延クロックに同期して処理する論理回路を備える請求項４記載の半導体装置。
【請求項６】
前記半導体装置は、さらに、
前記第２の順序回路から受けた前記転送データを前記転送制御回路から受けた前記遅延クロックに同期して処理する論理回路を備える請求項４記載の半導体装置。
【請求項７】
前記転送制御回路は、さらに、
前記第１のクロックを受けていない場合には、アサートされた前記非同期信号を受けて第２の転送制御信号を出力する転送制御信号生成回路を備え、
前記第２の順序回路は、さらに、受けた転送データを前記第２の転送制御信号に基づいて保持し、かつ前記保持した転送データを出力する請求項４記載の半導体装置。
【請求項８】
前記転送制御回路は、さらに、
前記第１のクロックを受けていない場合には、アサートされた前記非同期信号を受けて第２の転送制御信号を出力する転送制御信号生成回路を含み、
前記半導体装置は、さらに、
前記転送データおよび前記半導体装置において記憶されているデータのいずれかを選択して出力し、かつ前記第２の転送制御信号を受けた場合には前記転送データを選択して出力するセレクタと、
前記セレクタから受けたデータを前記第２の転送制御信号に基づいて保持し、かつ前記保持した記憶データを出力する第３の順序回路とを備える請求項４記載の半導体装置。
【請求項９】
前記出力制御回路は、さらに、前記非同期信号が前記第１のクロックの前記所定の遷移タイミングにおいてアサートされており、かつ前記第１のクロックの次の前記所定の遷移タイミングにおいてネゲートされている場合には、前記遅延クロックを所定周期分だけ前記第２の順序回路へ出力し、前記所定周期経過後、前記遅延クロックの前記第２の順序回路への出力を再び停止する請求項４記載の半導体装置。
【請求項１０】
前記半導体装置は、さらに、
前記半導体装置において記憶されているデータを前記遅延素子から受けた前記遅延クロックの所定の遷移タイミングに基づいて保持し、かつ前記保持した記憶データを出力する第２の順序回路と、
前記第２の順序回路から受けた前記記憶データを前記転送制御回路から受けた前記遅延クロックに基づいて保持し、かつ前記保持した記憶データを出力する第３の順序回路とを備え、
前記非同期信号は、前記記憶データの転送要求を示すために所定時間アサートされる信号であり、前記アサート期間は、前記遅延素子の遅延時間より長く、
前記出力制御回路は、前記非同期信号が前記第１のクロックの前記所定の遷移タイミングにおいてアサートされている場合には、前記遅延クロックの前記第３の順序回路への出力を停止する請求項３記載の半導体装置。
【請求項１１】
前記非同期信号は、前記第１のクロックより周波数の高い第２のクロックに同期してアサートおよびネゲートされ、
前記第３の順序回路から出力される前記記憶データは、アサートされた前記非同期信号がネゲートされるタイミングに基づいて論理回路によって処理され、
前記転送制御回路は、さらに、
アサートされた前記非同期信号がネゲートされた後に前記第２のクロックを受けた場合に第２の転送制御信号を出力する転送制御信号生成回路を含み、
前記第３の順序回路は、さらに、前記第２の順序回路から受けた前記記憶データを前記第２の転送制御信号に基づいて保持し、かつ前記保持した記憶データを出力する請求項１０記載の半導体装置。
【請求項１２】
前記転送制御回路は、さらに、
前記出力制御回路から受けた前記遅延クロックに基づいて第２の転送制御信号を生成する転送制御信号生成回路を含み、
前記半導体装置は、さらに、
前記半導体装置において記憶されているデータを前記遅延素子から受けた前記遅延クロックの所定の遷移タイミングに基づいて保持し、かつ前記保持した記憶データを出力する第２の順序回路と、
前記第２の順序回路から受けた前記記憶データを前記転送制御信号生成回路から受けた前記第２の転送制御信号に基づいて保持し、かつ前記保持した記憶データを出力する第３の順序回路とを備え、
前記非同期信号は、前記記憶データの転送要求を示すために所定時間アサートされる信号であり、前記アサート期間は、前記遅延素子の遅延時間より長く、
前記出力制御回路および前記転送制御信号生成回路は、前記非同期信号が前記第１のクロックの前記所定の遷移タイミングにおいてアサートされている場合には、前記第２の転送制御信号をネゲートし、かつ前記第２の転送制御信号をネゲートしてから所定時間経過後に前記第２の転送制御信号をアサートし、
前記第３の順序回路は、前記第２の転送制御信号がアサートされている場合には前記第２の順序回路から新たに受けた前記記憶データの保持および出力を行ない、前記第２の転送制御信号がネゲートされている場合には保持している前記記憶データの出力を継続する請求項３記載の半導体装置。
【請求項１３】
前記半導体装置は、さらに、
前記第１のクロックおよび前記遅延クロックのいずれかを選択して出力するセレクタを備え、
前記出力制御回路は、前記第１の転送制御信号に基づいて、前記セレクタから受けたクロックの出力および停止を制御する請求項３記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置に関し、特に、非同期信号を処理する半導体装置に関する。
【背景技術】
【０００２】
論理回路は、状態を記憶しない「組み合わせ素子」と呼ばれる回路要素と、状態を記憶可能な「順序素子」と呼ばれる回路要素から構成されている。この２つの回路要素のうち、順序素子は状態を記憶する必要から、内部に正帰還回路を持つ。
【０００３】
ここで、順序素子内部の正帰還ループにおいて、論理ハイレベルでも論理ローレベルでもない、中途半端な中間レベルを保持している状態であるメタステーブルが生じる場合がある。この状態では順序素子は正常な動作をせず、中間レベルを出力するか、出力タイミングが遅延するか、または出力が発振する。このような状態では、メタステーブルの生じた順序素子の出力に接続される複数の素子間で論理値の認識に不整合が起きる等、論理回路の正しい動作は期待できない。このため、メタステーブルが発生しないように、順序素子の入力クロックの立ち上がり遷移を基準に、順序素子の入力信号に対して所定の遷移禁止時間が設けられている。すなわち、入力クロックの立ち上がり遷移を基準に、その立ち上がり遷移よりどれぐらい前から入力データが確定している必要があるかを示すのがセットアップ時間である。また、入力クロックの立ち上がり遷移後、入力データがどれだけの期間一定レベルで維持されなければならないかを示すのがホールド時間である。
【０００４】
現在の集積回路に内蔵される論理回路の多くは同期型と呼ばれる構成になるように設計されている。同期型回路では、使用されるすべての順序素子が所定の基準タイミングに同期して動作する。たとえば順序素子にエッジトリガ・フリップフロップ（以下ＦＦとも称する）を使用した回路においては、すべてのＦＦは共通のクロックで動作し、入力タイミングおよび出力タイミングの共通の基準を持つ。このようにすべてのＦＦが所定の基準タイミングで動作すれば、ＦＦが受けるすべての信号がそのＦＦが受けるクロックに対するセットアップ時間およびホールド時間を保証することは容易である。したがって、論理回路が完全な同期型であれば、正しい設計手順を取る限り、メタステーブルが発生するおそれは無いと考えられる。
【０００５】
しかしながら、現実の回路において、同期設計が完全に適用できる場合はまれである。なぜならば、消費電力の削減、通信規格その他の都合により、同一集積回路上に互いに非同期である複数のクロックが存在し、また、外部信号のカウントおよび外部信号の周期測定のように集積回路に対してまったく非同期である入力信号を集積回路内で扱う必要があるからである。このような場合、複数の相異なるクロックを基準とする回路間のデータ転送においては、セットアップ時間およびホールド時間を守る方法は無いため、一定の確率でメタステーブルが発生する。
【０００６】
このようなメタステーブルによる不具合を回避し、かつ高効率で高品質な回路を設計するために、複数のクロックの各々で「クロックドメイン」という領域を作り、クロックドメインごとに同期設計を行なう。そして、クロックドメイン間を「非同期渡り回路」と呼ばれる、メタステーブルの不具合を回避するための特殊な形式のインターフェース回路で接続する構成が採用されている。
【０００７】
このような「非同期渡り回路」の一例として、データ受信側の回路で用いるクロックで動作する直列接続された２段のＦＦを設け、このクロックと非同期な転送データをサンプリングする構成が知られている。この構成では、メタステーブルの発生期間がクロックの１サイクルよりも短い場合には、前段のＦＦにおけるメタステーブルが消滅してから後段のＦＦが転送データをサンプリングすることができるため、メタステーブルの影響を防ぐことができる（たとえば、非特許文献１〜４参照）。
【非特許文献１】米田友洋著、「非同期式回路の設計」、共立出版株式会社、２００３年９月１０日発行、第１刷、ｐｐ．３４７−３４８
【非特許文献２】Cypress Semiconductor Corporation,  "Are your PLDs Metastable?",  1997
【非特許文献３】Texas Instruments ,  "74ACT11478 METASTABLE-RESISTAND OCTAL D-TYPE DUAL-RANK FLIP-FLOP WITH 3-STATE OUTPUTS ",  April 1990,  pp.1-6
【非特許文献４】Texas Instruments ,  "Metastability ",  August 1996
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、非特許文献１〜４記載の構成では、転送データを受けるＦＦが転送データを取りこぼすことを防ぐために、「データ送信側クロックの周波数＜データ受信側クロックの周波数」の関係を満たす必要があることから、クロック周波数の選択に制限が生じてしまう。さらに、メタステーブルの消滅を待つ、すなわちメタステーブルが消滅してから後段のＦＦで転送データをサンプリングすることから、送信側の回路と受信側の回路との間でデータ転送１ビットあたり１クロックサイクルの遅延（レイテンシ）が生じてしまう。特に、クロックドメイン間で双方向にデータおよび制御信号をやりとりする場合、たとえば受信側の回路がデータまたは制御信号を送信側の回路から受けて送信側の回路に対して行なう制御が、次の送信側の回路の動作に間に合わないといった問題が生じる。
【０００９】
それゆえに、本発明の目的は、メタステーブルの影響を防ぎながら非同期回路間で信号を転送し、クロック周波数の選択の自由度を高め、かつ転送遅延を抑制することが可能な半導体装置を提供することである。
【課題を解決するための手段】
【００１０】
本発明に係る半導体装置は、要約すれば、非同期信号をクロックに基づいて保持し、かつ保持した非同期信号を出力する順序回路と、クロックを所定時間遅延させ、遅延させたクロックを遅延クロックとして出力する遅延素子とを備える。
【発明の効果】
【００１１】
本発明によれば、遅延素子によって遅延されたクロックの立ち上がり遷移は、メタステーブルが消滅した後に生じることから、後段回路がメタステーブルの影響を受けることを防ぐことができる。また、転送データをサンプリングするためのフリップフロップを複数段設ける必要がないことから、「データ送信側クロックの周波数＜データ受信側クロックの周波数」の関係を満たす必要がない。また、送信側の回路と受信側の回路との間で生じるレイテンシは遅延素子の遅延時間だけで済むため、レイテンシを大幅に短縮することができる。したがって、本発明によれば、メタステーブルの影響を防ぎながら非同期回路間で信号を転送し、クロック周波数の選択の自由度を高め、かつ転送遅延を抑制することができる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施の形態について図面を用いて説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰り返さない。
【００１３】
＜第１の実施の形態＞
図１は、本発明の第１の実施の形態に係る半導体装置の構成を示す図である。図１を参照して、半導体装置１０１は、転送制御回路１と、本体回路Ｂ１とを備える。転送制御回路１は、フリップフロップＦＦ１と、遅延素子ＤＬ１とを含む。
【００１４】
データＤ０はたとえば１ビットのデータ転送フラグである。クロックＣＬＫ２とデータＤ０とは非同期である。フリップフロップＦＦ１は、外部から受けたクロックＣＬＫ２のたとえば立ち上がり遷移のタイミングにおいて、外部から受けたデータＤ０をサンプリングし、サンプリングしたデータＤ０を保持するとともにデータＤ１として出力する。
【００１５】
遅延素子ＤＬ１は、外部から受けたクロックＣＬＫ２を所定の遅延時間ＤＬＴだけ遅延させ、遅延させたクロックを遅延ＣＬＫ２Ｄとして出力する。ここで、遅延素子ＤＬ１による遅延時間ＤＬＴは、フリップフロップＦＦ１において生じるメタステーブルの発生期間ＭＴより長い時間が設定される。
【００１６】
なお、メタステーブルの発生期間は、理論的には無限であるが、本発明の実施の形態においては、半導体装置の寿命から考えた現実的なメタステーブルの発生期間を算出する。このメタステーブルの発生期間は、素子特性、温度および電圧等の使用条件、ＭＴＢＦ（Mean Time Between Failure）ならびに順序回路の形式から算出される。そして、遅延時間ＤＬＴは、この算出されたメタステーブルの発生期間より長い時間が設定される。
【００１７】
本体回路Ｂ１は、フリップフロップＦＦ１から受けたデータＤ１を、遅延素子ＤＬ１から受けたクロックＣＬＫ２Ｄに同期して処理する。たとえば、本体回路Ｂ１は、クロックＣＬＫ２Ｄのたとえば立ち上がり遷移のタイミングにおいてデータＤ１をサンプリングし、サンプリングしたデータＤ１を保持するとともに出力するフリップフロップを含む。
【００１８】
図２は、本発明の第１の実施の形態に係る半導体装置におけるフリップフロップの構成を示す図である。
【００１９】
図２を参照して、フリップフロップＦＦ１は、エッジトリガ・フリップフロップである。フリップフロップＦＦ１は、ＰチャネルＭＯＳ（Metal Oxide Semiconductor）トランジスタＭ１，Ｍ３と、ＮチャネルＭＯＳトランジスタＭ２，Ｍ４と、インバータＩＮＶ１，ＩＮＶ２，ＩＮＶ３，ＣＩＮＶ１，ＣＩＮＶ２と、バッファＢＵＦ１とを含む。
【００２０】
クロックＣＬＫの立ち上がり遷移のタイミングで入力ノードＤに接続されるＰチャネルＭＯＳトランジスタＭ１およびＮチャネルＭＯＳトランジスタＭ２からなる伝送スイッチがオフ状態となる。そうすると、オフ状態となる直前のデータがインバータＩＮＶ１，ＣＩＮＶ１からなる帰還ループにより保持される。
【００２１】
ここで、インバータＩＮＶ１は通常のインバータ素子であり、インバータＣＩＮＶ１は「クロックド・インバータ」と呼ばれる素子である。すなわち、インバータＣＩＮＶ１は、制御端子ＣｔおよびＣｂがアサートされている場合には通常のインバータとして機能し、ネゲートされている場合には出力がハイインピーダンスとなる。
【００２２】
このインバータＩＮＶ１，ＣＩＮＶ１からなる正帰還ループのノードＡおよびノードＢの電圧レベルは、入力ノードＤの電圧レベルすなわち論理値と、入力ノードＤの電圧レベルの遷移タイミングと、クロックＣＬＫの立ち上がり遷移のタイミングとにより決定される。
【００２３】
たとえば、クロックＣＬＫが論理値０（論理ローレベル）である状態において、入力ノードＤが論理値１（論理ハイレベル）を示す電圧レベルに遷移して充分な時間が経過した後、クロックＣＬＫが立ち上がる。この場合、ノードＡは入力ノードＤと同じ論理値１を示し、ノードＢは論理値１の反転である論理値０を示すので、この正帰還ループは安定に論理値を記憶し続けることが可能である。
【００２４】
しかしながら、クロックＣＬＫの立ち上がり遷移の直前および直後、または立ち上がり遷移の途中でデータＤの遷移が起こった場合には、フリップフロップＦＦ１においてメタステーブルが発生する。すなわち、ノードＡは論理値０でも論理値１でもない、中途半端な電圧レベルとなり、また、ノードＡのレベルを受けるインバータＩＮＶ１の出力であるノードＢもやはり中途半端な電圧レベルとなる。
【００２５】
図３は、フリップフロップの出力が正常な状態およびフリップフロップの出力にメタステーブルが発生している状態を示す図である。
【００２６】
図３を参照して、メタステーブルが発生していない場合には、フリップフロップの出力はクロックＣＬＫに対してＷ１で示すような波形となる。一方、メタステーブルが発生している場合には、フリップフロップＦＦ１は中間レベルを出力するか（波形Ｗ２）、出力タイミングが遅延するか（波形Ｗ３）、または出力が発振する（波形Ｗ４）。
【００２７】
図４は、本発明の第１の実施の形態に係る半導体装置の動作を示すタイムチャートである。
【００２８】
図４を参照して、データＤ０とクロックＣＬＫ２とは非同期であるため、クロックＣＬＫ２の立ち上がり遷移の直前および直後、または立ち上がり遷移の途中でデータＤ０の遷移が起こる場合がある。この場合、前述のようにフリップフロップＦＦ１の出力にメタステーブルが発生する。
【００２９】
ここで、非特許文献１〜４記載の構成では、受信側の回路が転送データを取りこぼすことを防ぐために、「データ送信側クロックの周波数＜データ受信側クロックの周波数」の関係を満たす必要があることから、クロック周波数の選択に制限が生じてしまう。さらに、メタステーブルの消滅を待つために、送信側の回路と受信側の回路との間でデータ転送１ビットあたり１クロックサイクルの遅延（レイテンシ）が生じてしまう。
【００３０】
しかしながら、本発明の第１の実施の形態に係る半導体装置では、フリップフロップＦＦ１は、クロックＣＬＫ２に同期していない非同期信号であるデータＤ０をクロックＣＬＫ２のタイミングで保持し、保持したデータをデータＤ１として出力する。遅延素子ＤＬ１は、クロックＣＬＫ２を所定時間遅延させ、遅延させたクロックをクロックＣＬＫ２Ｄとして出力する。そして、本体回路Ｂ１は、フリップフロップＦＦ１から受けたデータＤ１を遅延素子ＤＬ１から受けたクロックＣＬＫ２Ｄに同期して処理する。
【００３１】
このような構成により、図４に示すように、遅延素子ＤＬ１によって遅延されたクロックＣＬＫ２Ｄの立ち上がり遷移は、メタステーブルが消滅した後に生じることから、本体回路Ｂ１がメタステーブルの影響を受けることを防ぐことができる。また、転送データをサンプリングするためのフリップフロップを複数段設ける必要がないことから、「データ送信側クロックの周波数＜データ受信側クロックの周波数」の関係を満たす必要がない。
【００３２】
図５は、クロック周波数の選択についての問題点を解決するための転送制御回路の一例を示す図である。
【００３３】
図５を参照して、転送制御回路９１は、直列接続されたフリップフロップＦＦ９１，ＦＦ９２と、遅延素子ＤＬ９１とを備える。半導体装置１０１と同様に、遅延素子ＤＬ９１の遅延時間は前段のフリップフロップＦＦ９１におけるメタステーブルの発生期間よりも長い時間が設定される。すなわち、後段のフリップフロップＦＦ９２が受けるクロックを前段のフリップフロップＦＦ９１におけるメタステーブルが消滅するまで遅延させる。これにより、後段のフリップフロップＦＦ９２が前段のフリップフロップＦＦ９１において発生するメタステーブルの影響を受けることを防ぐことができる。
【００３４】
しかしながら、このような構成では、２段のフリップフロップＦＦ９１，ＦＦ９２により、半導体装置１０１と比べて１クロックサイクルの遅延（レイテンシ）がさらに生じてしまう。
【００３５】
一方、本発明の第１の実施の形態に係る半導体装置では、送信側の回路と受信側の回路との間で生じるレイテンシはデータ転送１ビットあたり遅延時間ＤＬＴで済むため、非特許文献１〜４記載の構成および図５に示す回路と比べてレイテンシを大幅に短縮することができる。
【００３６】
したがって、本発明の第１の実施の形態に係る半導体装置では、メタステーブルの影響を防ぎながら非同期回路間で信号を転送し、クロック周波数の選択の自由度を高め、かつ転送遅延を抑制することができる。
【００３７】
また、クロックＣＬＫ２が継続的に出力されず、バースト的に出力される回路において、メタステーブルの発生時より後でクロックＣＬＫ２が出力されない場合には、非特許文献１〜４記載の構成および図５に示す回路では、受信側の回路はメタステーブルの消滅を待って転送データを処理することができない。しかしながら、本発明の第１の実施の形態に係る半導体装置では、メタステーブルの発生時より後でクロックＣＬＫ２が出力されない場合でも、本体回路Ｂ１は、フリップフロップＦＦ１から受けたデータＤ１を、メタステーブルの影響を受けることなくクロックＣＬＫ２Ｄで処理することができる。
【００３８】
次に、本発明の他の実施の形態について図面を用いて説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰り返さない。
【００３９】
＜第２の実施の形態＞
本実施の形態は、クロックと非同期な信号を用いてそのクロックを制御する半導体装置に関する。以下で説明する内容以外は第１の実施の形態に係る半導体装置と同様である。
【００４０】
図６は、本発明の第２の実施の形態に係る半導体装置の構成を示す図である。図６を参照して、半導体装置１０２は、転送制御回路２と、本体回路Ｂ２とを備える。転送制御回路２は、フリップフロップＦＦ１と、遅延素子ＤＬ１と、ＡＮＤゲートＧ１とを含む。
【００４１】
データＤ０はたとえばクロックイネーブル信号である。クロックイネーブル信号Ｄ０とクロックＣＬＫ２とは非同期である。クロックイネーブル信号Ｄ０が論理ハイレベルの場合にはクロックＣＬＫ２が本体回路Ｂ２に供給され、論理ローレベルの場合にはクロックＣＬＫ２が本体回路Ｂ２に供給されない。
【００４２】
フリップフロップＦＦ１は、外部から受けたクロックＣＬＫ２のたとえば立ち上がり遷移のタイミングにおいて、外部から受けたクロックイネーブル信号Ｄ０をサンプリングし、サンプリングしたクロックイネーブル信号Ｄ０を保持するとともにクロックイネーブル信号（第１の転送制御信号）Ｄ１として出力する。
【００４３】
遅延素子ＤＬ１は、外部から受けたクロックＣＬＫ２を所定の遅延時間ＤＬＴだけさせて出力する。ここで、遅延素子ＤＬ１による遅延時間ＤＬＴは、フリップフロップＦＦ１において生じるメタステーブルの発生期間ＭＴより長い時間が設定される。
【００４４】
ＡＮＤゲートＧ１は、クロックイネーブル信号Ｄ１に基づいて、遅延素子ＤＬ１から受けた遅延クロックＣＬＫ２Ｄを出力するか否かを切り替える。すなわち、ＡＮＤゲートＧ１は、フリップフロップＦＦ１から受けたクロックイネーブル信号Ｄ１と遅延素子ＤＬ１から受けたクロックＣＬＫ２Ｄとの論理積を示す信号をクロックＣＬＫ２Ｇとして出力する。
【００４５】
本体回路Ｂ２は、ＡＮＤゲートＧ１から受けたクロックＣＬＫ２Ｇに同期して信号処理を行なう。たとえば、本体回路Ｂ２は、クロックＣＬＫ２Ｇのたとえば立ち上がり遷移のタイミングにおいて、外部から受けた信号をサンプリングし、サンプリングした信号を保持するとともに出力するフリップフロップを含む。
【００４６】
図７は、本発明の第２の実施の形態に係る半導体装置の動作を示すタイムチャートである。
【００４７】
図７を参照して、クロックイネーブル信号Ｄ０とクロックＣＬＫ２とは非同期であるため、クロックＣＬＫ２の立ち上がり遷移の直前および直後、または立ち上がり遷移の途中でデータＤ０の遷移が起こる場合がある。この場合、フリップフロップＦＦ１の出力にメタステーブルが発生する。
【００４８】
ここで、非特許文献１〜４記載の構成および図５に示す回路では、受信側の回路が転送データを取りこぼすことを防ぐために、「データ送信側クロックの周波数＜データ受信側クロックの周波数」の関係を満たす必要があることから、クロック周波数の選択に制限が生じてしまう。さらに、メタステーブルの消滅を待つために、送信側の回路と受信側の回路との間でデータ転送１ビットあたり１クロックサイクルの遅延（レイテンシ）が生じてしまう。
【００４９】
しかしながら、本発明の第２の実施の形態に係る半導体装置では、図６に示すように、遅延素子ＤＬ１によって遅延されたクロックＣＬＫ２Ｄの立ち上がり遷移は、メタステーブルが消滅した後に生じている。すなわち、フリップフロップＦＦ１の出力であるクロックイネーブル信号Ｄ１は、フリップフロップＦＦ１におけるメタステーブルの発生期間ＭＴより長く遅延素子ＤＬ１により遅延されたクロックＣＬＫ２ＤとＡＮＤゲートＧ１において論理積がとられる。このため、メタステーブルはクロックＣＬＫ２Ｇには伝達されない。そして、本体回路Ｂ２は、ＡＮＤゲートＧ１から受けたクロックＣＬＫ２Ｇに同期して信号処理を行なう。
【００５０】
このような構成により、本体回路Ｂ２がメタステーブルの影響を受けることを防ぐことができる。また、転送データをサンプリングするためのフリップフロップを複数段設ける必要がないことから、「データ送信側クロックの周波数＜データ受信側クロックの周波数」の関係を満たす必要がない。また、送信側の回路と受信側の回路との間で生じるレイテンシはデータ転送１ビットあたり遅延時間ＤＬＴで済むため、レイテンシを大幅に短縮することができる。
【００５１】
したがって、本発明の第２の実施の形態に係る半導体装置では、メタステーブルの影響を防ぎながら非同期回路間で信号を転送し、クロック周波数の選択の自由度を高め、かつ転送遅延を抑制することができる。
【００５２】
また、クロックＣＬＫ２が継続的に出力されず、バースト的に出力される回路において、メタステーブルの発生時より後でクロックＣＬＫ２が出力されない場合には、非特許文献１〜４記載の構成および図５に示す回路では、受信側の回路はメタステーブルの消滅を待って転送データを処理することができない。しかしながら、本発明の第２の実施の形態に係る半導体装置では、メタステーブルの発生時より後でクロックＣＬＫ２が出力されない場合でも、本体回路Ｂ２は、メタステーブルの影響を受けることなく、ＡＮＤゲートＧ１から受けたクロックＣＬＫ２Ｇを用いて信号処理を行なうことができる。
【００５３】
なお、本発明の第２の実施の形態に係る半導体装置は、ＡＮＤゲートＧ１を備える構成であるとしたが、これに限定するものではない。ＡＮＤゲートＧ１の代わりに、他の組み合わせ回路を備える構成であってもよい。組み合わせ回路とは、前述のように状態を記憶しない回路、すなわち、入力信号の処理にクロックを必要とせずに、入力信号が決まれば瞬時に結果が得られる回路である。
【００５４】
次に、本発明の他の実施の形態について図面を用いて説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰り返さない。
【００５５】
＜第３の実施の形態＞
本実施の形態は、複数ビットを有する非同期データを転送する半導体装置に関する。以下で説明する内容以外は第１の実施の形態に係る半導体装置と同様である。
【００５６】
図８は、本発明の第３の実施の形態に係る半導体装置の構成を示す図である。図８を参照して、半導体装置１０３は、フリップフロップＦＦ１，ＦＦ３と、転送制御回路３と、本体回路Ｂ３とを備える。転送制御回路３は、フリップフロップＦＦ４と、遅延素子ＤＬ１と、ＡＮＤゲートＧ２とを含む。本体回路Ｂ３は、フリップフロップＦＦ２，ＦＦ５を含む。
【００５７】
クロックＣＬＫ１とクロックＣＬＫ２とは非同期である。データ転送フラグＡＣとクロックＣＬＫ２とは非同期である。転送データＤ０［Ｎ：０］は（Ｎ＋１）ビットである（Ｎは１以上の自然数）。
【００５８】
フリップフロップＦＦ１は、外部から受けたクロックＣＬＫ１のたとえば立ち上がり遷移のタイミングにおいて、外部から受けた転送データＤ０をサンプリングし、サンプリングした転送データＤ０を保持するとともに転送データＤ１として出力する。
【００５９】
フリップフロップＦＦ３は、外部から受けたクロックＣＬＫ１のたとえば立ち上がり遷移のタイミングにおいて、外部から受けたデータ転送フラグＡＣをサンプリングし、サンプリングしたデータ転送フラグＡＣを保持するとともにデータ転送フラグＡＣ０として出力する。
【００６０】
転送制御回路３におけるＡＮＤゲートＧ２は、データ転送フラグＡＣ０がクロックＣＬＫ２の所定の遷移タイミングたとえば立ち上がり遷移のタイミングにおいてアサートされている場合には、クロックＣＬＫ２ＧのフリップフロップＦＦ２への出力を停止する。
【００６１】
より詳細には、フリップフロップＦＦ４は、外部から受けたクロックＣＬＫ２のたとえば立ち上がり遷移のタイミングにおいて、フリップフロップＦＦ３から受けたデータ転送フラグＡＣ０をサンプリングし、サンプリングしたデータ転送フラグＡＣ０を保持するとともにデータ転送フラグＡＣ１として出力する。
【００６２】
遅延素子ＤＬ１は、外部から受けたクロックＣＬＫ２を所定の遅延時間ＤＬＴだけ遅延させ、遅延させたクロックをクロックＣＬＫ２ＤとしてＡＮＤゲートＧ２および本体回路Ｂ３へ出力する。ここで、遅延素子ＤＬ１による遅延時間ＤＬＴは、フリップフロップＦＦ４において生じるメタステーブルの発生期間ＭＴより長い時間が設定される。
【００６３】
ＡＮＤゲートＧ２は、フリップフロップＦＦ４から受けたデータ転送フラグＡＣ１の論理レベルを反転させたデータと遅延素子ＤＬ１から受けたクロックＣＬＫ２Ｄとの論理積を示す信号をクロックＣＬＫ２Ｇとして出力する。
【００６４】
本体回路Ｂ３において、フリップフロップＦＦ２は、ＡＮＤゲートＧ２から受けたクロックＣＬＫ２Ｇの所定の遷移タイミングたとえば立ち上がり遷移のタイミングにおいて、フリップフロップＦＦ１から受けた転送データＤ１をサンプリングし、サンプリングした転送データＤ１を保持するとともにデータＤ２として出力する。
【００６５】
本体回路Ｂ３は、遅延素子ＤＬ１から受けたクロックＣＬＫ２Ｄをクロックとして用い、フリップフロップＦＦ２から受けたデータＤ２をクロックＣＬＫ２Ｄに同期して処理する。たとえば、フリップフロップＦＦ５は、クロックＣＬＫ２Ｄのたとえば立ち上がり遷移のタイミングにおいて、データＤ２をサンプリングし、サンプリングしたデータＤ２を保持するとともに出力する。
【００６６】
図９は、本発明の第３の実施の形態に係る半導体装置の動作を示すタイムチャートである。
【００６７】
図９を参照して、データ転送フラグＡＣ０は、転送データＤ１が変化するタイミングの所定時間前にアサートされ、かつ転送データＤ１が変化するタイミングにおいてネゲートされる。データ転送フラグＡＣ０は、クロックＣＬＫ１系の回路で生成される、すなわち、クロックＣＬＫ１に同期している。
【００６８】
クロックＣＬＫ１で動作するフリップフロップＦＦ１から出力される転送データＤ１［Ｎ：０］は、データ転送フラグＡＣ０の立ち下がり遷移に同期して変化する。
【００６９】
データ転送フラグＡＣ０とクロックＣＬＫ２とは非同期であるため、クロックＣＬＫ２の立ち上がり遷移の直前および直後、または立ち上がり遷移の途中でデータ転送フラグＡＣ０の遷移が起こる場合がある。この場合、フリップフロップＦＦ４の出力にメタステーブルが発生する。
【００７０】
しかしながら、本発明の第３の実施の形態に係る半導体装置では、図９に示すように、遅延素子ＤＬ１によって遅延されたクロックＣＬＫ２Ｄの立ち上がり遷移は、メタステーブルが消滅した後に生じている。すなわち、フリップフロップＦＦ４の出力であるデータ転送フラグＡＣ１は、フリップフロップＦＦ４におけるメタステーブルの発生期間ＭＴより長く遅延素子ＤＬ１により遅延されたクロックＣＬＫ２ＤとＡＮＤゲートＧ２において論理積がとられる。このため、メタステーブルはクロックＣＬＫ２Ｇには伝達されない。そして、本体回路Ｂ３は、ＡＮＤゲートＧ２から受けたクロックＣＬＫ２Ｇに同期して信号処理を行なう。このような構成により、本体回路Ｂ３がメタステーブルの影響を受けることを防ぐことができる。
【００７１】
図９において示す条件Ａでは、クロックＣＬＫ２の立ち上がり遷移のタイミングにおいて、データ転送フラグＡＣ０が論理ローレベルである。ここで、データ転送フラグＡＣ０のアサート期間ＴＡＳは、遅延時間ＤＬＴより長い。したがって、フリップフロップＦＦ１から出力される転送データＤ１［Ｎ：０］は、フリップフロップＦＦ２が受けるクロックＣＬＫ２Ｇが論理ローレベルから論理ハイレベルへ遷移する時点でＭに確定している。
【００７２】
このため、転送制御回路３は、ＡＮＤゲートＧ２においてクロックＣＬＫ２Ｄをマスクせずに、クロックＣＬＫ２ＧをフリップフロップＦＦ２へ出力する。そうすると、フリップフロップＦＦ２から出力されるデータＤ２［Ｎ：０］がＭ−１からＭに更新される。
【００７３】
一方、図９において示す条件Ｂでは、クロックＣＬＫ２の立ち上がり遷移のタイミングにおいて、データ転送フラグＡＣ０が論理ハイレベルである。したがって、フリップフロップＦＦ１から出力される転送データＤ１［Ｎ：０］は、フリップフロップＦＦ２が受けるクロックＣＬＫ２Ｇが論理ローレベルから論理ハイレベルへ遷移する時点で変化するおそれがある。
【００７４】
このため、転送制御回路３は、ＡＮＤゲートＧ２においてクロックＣＬＫ２Ｄをマスクする。そうすると、フリップフロップＦＦ２から出力されるデータＤ２［Ｎ：０］は更新されず、従来の値Ｍ−１が維持される。ここで、データ転送フラグＡＣ０のアサート期間ＴＡＳは、遅延時間ＤＬＴより長い。このような構成により、転送データＤ１の変化に対して確実にクロックＣＬＫ２Ｄをマスクすることができる。
【００７５】
本発明の第３の実施の形態に係る半導体装置では、条件Ａおよび条件Ｂいずれの場合でもクロックＣＬＫ２の１サイクル分のみで転送データＤ１を本体回路Ｂ３へ転送することができるため、レイテンシが増加することを防ぐことができる。
【００７６】
ここで、非特許文献１〜４記載の構成および図５に示した回路では、複数ビットを有するデータの転送を行なう場合、スキュー等、微小なタイミングばらつきの影響により、本来転送されるべきデータとは異なるデータがフリップフロップでサンプリングされる可能性がある。
【００７７】
しかしながら、本発明の第３の実施の形態に係る半導体装置では、上記の条件ＢにおいてフリップフロップＦＦ２へのクロックを停止することにより、複数ビットを有する転送データＤ０の転送を正常に行なうことができる。
【００７８】
その他の構成および動作は第１の実施の形態に係る半導体装置と同様であるため、ここでは詳細な説明を繰り返さない。したがって、本発明の第３の実施の形態に係る半導体装置では、メタステーブルの影響を防ぎながら非同期回路間で信号を転送し、クロック周波数の選択の自由度を高め、かつ転送遅延を抑制することができる。
【００７９】
次に、本発明の他の実施の形態について図面を用いて説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰り返さない。
【００８０】
＜第４の実施の形態＞
本実施の形態は、本体回路の動作クロック自体をゲートオフする半導体装置に関する。以下で説明する内容以外は第３の実施の形態に係る半導体装置と同様である。
【００８１】
図１０は、本発明の第４の実施の形態に係る半導体装置の構成を示す図である。図１０を参照して、半導体装置１０４は、フリップフロップＦＦ１，ＦＦ３と、転送制御回路３と、本体回路Ｂ４とを備える。転送制御回路４は、フリップフロップＦＦ４と、遅延素子ＤＬ１と、ＡＮＤゲートＧ２とを含む。本体回路Ｂ４は、フリップフロップＦＦ２，ＦＦ５を含む。
【００８２】
本体回路Ｂ４において、フリップフロップＦＦ２は、ＡＮＤゲートＧ２から受けたクロックＣＬＫ２Ｇのたとえば立ち上がり遷移のタイミングにおいて、フリップフロップＦＦ１から受けた転送データＤ１をサンプリングし、サンプリングしたデータＤ１を保持するとともにデータＤ２として出力する。
【００８３】
本体回路Ｂ４は、ＡＮＤゲートＧ２から受けたクロックＣＬＫ２Ｇをクロックとして用い、フリップフロップＦＦ２の出力データＤ２をクロックＣＬＫ２Ｇに同期して処理する。たとえば、フリップフロップＦＦ５は、クロックＣＬＫ２Ｇのたとえば立ち上がり遷移のタイミングにおいて、データＤ２をサンプリングし、サンプリングしたデータＤ２を保持するとともに出力する。
【００８４】
このような構成により、本体回路が遅延クロックＣＬＫ２Ｄを用いる構成である本発明の第３の実施の形態に係る半導体装置と比べて本体回路の消費電力を低減することができる。
【００８５】
その他の構成および動作は本発明の第３の実施の形態に係る半導体装置と同様であるため、ここでは詳細な説明を繰り返さない。したがって、本発明の第４の実施の形態に係る半導体装置では、複数ビットを有するデータを非同期回路間で転送し、転送遅延を抑制し、かつメタステーブルの影響を防ぐことができる。
【００８６】
次に、本発明の他の実施の形態について図面を用いて説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰り返さない。
【００８７】
＜第５の実施の形態＞
本実施の形態は、クロックＣＬＫ２に同期した信号をＣＬＫ１系の回路へ転送する半導体装置に関する。以下で説明する内容以外は第１の実施の形態に係る半導体装置と同様である。
【００８８】
図１１は、本発明の第５の実施の形態に係る半導体装置の構成を示す図である。図１１を参照して、半導体装置１０５は、フリップフロップＦＦ３と、データ転送用レベルセンシティブラッチＬＴ１と、転送制御回路５と、本体回路Ｂ５と、受信回路ＣＫ１と、アドレスデコーダＡＤＥＣとを備える。転送制御回路５は、フリップフロップＦＦ４と、遅延素子ＤＬ１と、ＡＮＤゲートＧ２とを含む。本体回路Ｂ５は、フリップフロップＦＦ１を含む。受信回路ＣＫ１は、フリップフロップＦＦ６を含む。
【００８９】
クロックＣＬＫ１とクロックＣＬＫ２とは非同期である。データ読み出しフラグＲＥとクロックＣＬＫ２とは非同期である。データ読み出しフラグＲＥは、本体回路Ｂ５の記憶データの転送要求を示すために所定時間アサートされる信号である。転送データＤ０［Ｎ：０］は（Ｎ＋１）ビットである（Ｎは１以上の自然数）。
【００９０】
受信回路ＣＫ１は、クロックＣＬＫ１によって動作するクロックＣＬＫ１系の回路である。受信回路ＣＫ１は、本体回路Ｂ５のアドレスを示す複数ビットのアドレス信号ＡＤを出力する。
【００９１】
アドレスデコーダＡＤＥＣは、受信回路ＣＫ１から受けたアドレス信号ＡＤの示すアドレスに対応する本体回路Ｂ５へのデータ読み出しフラグＲＥをアサートする。
【００９２】
フリップフロップＦＦ３は、外部から受けたクロックＣＬＫ１のたとえば立ち上がり遷移のタイミングにおいて、アドレスデコーダＡＤＥＣから受けたデータ読み出しフラグＲＥをサンプリングし、サンプリングしたデータ読み出しフラグＲＥを保持するとともにデータ読み出しフラグＲＥ０として出力する。
【００９３】
転送制御回路５におけるＡＮＤゲートＧ２は、データ読み出しフラグＲＥ０がクロックＣＬＫ２の所定の遷移タイミングたとえば立ち上がり遷移のタイミングにおいてアサートされている場合には、クロックＣＬＫ２Ｇのデータ転送用レベルセンシティブラッチＬＴ１への出力を停止する。
【００９４】
より詳細には、フリップフロップＦＦ４は、外部から受けたクロックＣＬＫ２のたとえば立ち上がり遷移のタイミングにおいて、フリップフロップＦＦ３から受けたデータ読み出しフラグＲＥ０をサンプリングし、サンプリングしたデータ読み出しフラグＲＥ０を保持するとともにデータ読み出しフラグＲＥ１として出力する。
【００９５】
遅延素子ＤＬ１は、外部から受けたクロックＣＬＫ２を所定の遅延時間ＤＬＴだけ遅延させ、遅延させたクロックをクロックＣＬＫ２ＤとしてＡＮＤゲートＧ２および本体回路Ｂ５へ出力する。ここで、遅延素子ＤＬ１による遅延時間ＤＬＴは、フリップフロップＦＦ４において生じるメタステーブルの発生期間ＭＴより長い時間が設定される。
【００９６】
ＡＮＤゲートＧ２は、フリップフロップＦＦ４から受けたデータ読み出しフラグＲＥ１の論理レベルを反転させたデータと遅延素子ＤＬ１から受けたクロックＣＬＫ２Ｄとの論理積を示す信号をクロックＣＬＫ２Ｇとして出力する。
【００９７】
ここで、データ読み出しフラグＲＥ０とクロックＣＬＫ２とは非同期であるため、フリップフロップＦＦ４はある確率でメタステーブルを起こす。しかしながら、フリップフロップＦＦ４の出力データであるデータ読み出しフラグＲＥ１は、フリップフロップＦＦ４におけるメタステーブルの発生期間ＭＴより長く遅延素子ＤＬ１により遅延されたクロックＣＬＫ２ＤとＡＮＤゲートＧ２において論理積がとられる。このため、メタステーブルはデータ転送用レベルセンシティブラッチＬＴ１には伝達されない。このような構成により、受信回路ＣＫ１がメタステーブルの影響を受けることを防ぐことができる。
【００９８】
フリップフロップＦＦ１は、遅延素子ＤＬ１から受けたクロックＣＬＫ２Ｄのたとえば立ち上がり遷移のタイミングにおいて、本体回路Ｂ５において記憶されている記憶データＤ０をサンプリングし、サンプリングした記憶データＤ０を保持するとともにデータＤ１として出力する。
【００９９】
データ転送用レベルセンシティブラッチＬＴ１は、転送制御回路５から受けたクロックＣＬＫ２Ｇのタイミングに基づいて、フリップフロップＦＦ１から受けたデータＤ１を保持するとともにデータＤ２として出力する。より詳細には、データ転送用レベルセンシティブラッチＬＴ１は、ＡＮＤゲートＧ２から受けたクロックＣＬＫ２Ｇがたとえばハイレベルである場合において、フリップフロップＦＦ１から新たに受けたデータＤ１が保持しているデータＤ１から変化したときには、変化したデータＤ１を保持するとともにデータＤ２として出力する。一方、データ転送用レベルセンシティブラッチＬＴ１は、ＡＮＤゲートＧ２から受けたクロックＣＬＫ２Ｇがたとえばローレベルである場合には、フリップフロップＦＦ１から受けたデータＤ１の変化に関わらず、以前から保持しているデータＤ１をデータＤ２として出力する。
【０１００】
受信回路ＣＫ１は、データ転送用レベルセンシティブラッチＬＴ１から受けたデータＤ２をクロックＣＬＫ１に同期して処理する。たとえば、フリップフロップＦＦ６は、データ読み出しフラグＲＥ０の立ち下がり遷移のタイミングにおいて、データＤ２をサンプリングし、サンプリングしたデータＤ２を保持するとともに出力する。
【０１０１】
図１２は、本発明の第５の実施の形態に係る半導体装置の動作を示すタイムチャートである。
【０１０２】
図１２において示す条件Ａでは、クロックＣＬＫ２の立ち上がり遷移のタイミングにおいて、データ読み出しフラグＲＥ０が論理ローレベルである。ここで、データ読み出しフラグＲＤ０のアサート期間ＴＡＳは、遅延時間ＤＬＴより長い。したがって、フリップフロップＦＦ１から出力されるデータＤ１［Ｎ：０］の変化と、受信回路ＣＫ１によるデータＤ２のサンプリングとが同時に発生しない。すなわち、フリップフロップＦＦ１から出力されるデータＤ１［Ｎ：０］は、データ読み出しフラグＲＥ０の立ち下がり遷移のタイミングでＭに確定している。
【０１０３】
このため、転送制御回路５は、ＡＮＤゲートＧ２においてクロックＣＬＫ２Ｄをマスクせずに、クロックＣＬＫ２Ｇをデータ転送用レベルセンシティブラッチＬＴ１へ出力する。そうすると、データ転送用レベルセンシティブラッチＬＴ１から出力されるデータＤ２［Ｎ：０］がＭ−１からＭに更新される。
【０１０４】
一方、図１２において示す条件Ｂでは、クロックＣＬＫ２の立ち上がり遷移のタイミングにおいて、データ読み出しフラグＲＥ０が論理ハイレベルである。したがって、フリップフロップＦＦ１から出力されるデータＤ１［Ｎ：０］の変化と、受信回路ＣＫ１によるデータＤ２のサンプリングとが同時に発生するおそれがある。
【０１０５】
このため、転送制御回路５は、ＡＮＤゲートＧ２においてクロックＣＬＫ２Ｇをマスクする。そうすると、データ転送用レベルセンシティブラッチＬＴ１から出力されるデータＤ２［Ｎ：０］は更新されず、従来の値Ｍ−１が維持される。ここで、データ読み出しフラグＲＥ０のアサート期間ＴＡＳは、遅延時間ＤＬＴより長い。このような構成により、転送データＤ０の変化に対して確実にクロックＣＬＫ２Ｄをマスクすることができる。
【０１０６】
本発明の第５の実施の形態に係る半導体装置では、条件Ａおよび条件Ｂいずれの場合でもクロックＣＬＫ２の１サイクル分のみで転送データＤ０を受信回路ＣＫ１へ転送することができるため、レイテンシが増加することを防ぐことができる。
【０１０７】
また、本発明の第５の実施の形態に係る半導体装置では、上記の条件Ｂにおいてデータ転送用レベルセンシティブラッチＬＴ１へのクロックを停止することにより、複数ビットを有する転送データＤ１の転送を正常に行なうことができる。
【０１０８】
その他の構成および動作は第１の実施の形態に係る半導体装置と同様であるため、ここでは詳細な説明を繰り返さない。したがって、本発明の第５の実施の形態に係る半導体装置では、メタステーブルの影響を防ぎながら非同期回路間で信号を転送し、クロック周波数の選択の自由度を高め、かつ転送遅延を抑制することができる。
【０１０９】
次に、本発明の他の実施の形態について図面を用いて説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰り返さない。
【０１１０】
＜第６の実施の形態＞
本実施の形態は、タイマのカウント値の読み出しが可能な半導体装置に関する。以下で説明する内容以外は第１の実施の形態に係る半導体装置と同様である。
【０１１１】
図１３は、本発明の第６の実施の形態に係る半導体装置の構成を示す図である。図１３を参照して、半導体装置１０６は、転送制御回路６と、本体回路Ｂ６と、受信回路ＣＫ１１とを備える。転送制御回路６は、セレクタＫ１２と、フリップフロップＦＦ１１，ＦＦ１２と、ＡＮＤゲートＧ１１と、ＯＲゲートＧ１２と、遅延素子ＤＬ１とを含む。本体回路Ｂ６は、カウンタＫ１１と、フリップフロップＦＦ１３と、読み出し用レベルセンシティブラッチＬＴ１１と、ＡＮＤゲートＧ１３とを含む。受信回路ＣＫ１１は、フリップフロップＦＦ６１を含む。
【０１１２】
クロックＣＬＫ１とクロックＣＬＫ１ａ，１ｂ，１ｃとは非同期である。データ読み出しフラグＲＥは、クロックＣＬＫ１に同期してアサートおよびネゲートされる、すなわちデータ読み出しフラグＲＥとクロックＣＬＫ１ａ，１ｂ，１ｃとは非同期である。データ読み出しフラグＲＥは、タイマである本体回路Ｂ６のカウント値の転送要求を示すために所定時間アサートされる信号である。カウント値を示すカウント信号ＣＮＴ０［Ｎ：０］は（Ｎ＋１）ビットである（Ｎは１以上の自然数）。
【０１１３】
セレクタＫ１２は、外部から受けたクロック１ａ，１ｂ，１ｃのうちいずれかを選択し、選択したクロックをクロックＣＬＫ２として出力する。
【０１１４】
遅延素子ＤＬ１は、セレクタＫ１２から受けたクロックＣＬＫ２を所定の遅延時間ＤＬＴだけ遅延させ、遅延させたクロックをクロックＣＬＫ２Ｄとして出力する。ここで、遅延素子ＤＬ１による遅延時間ＤＬＴは、フリップフロップＦＦ１１において生じるメタステーブルの発生期間ＭＴより長い時間が設定される。
【０１１５】
カウンタＫ１１は、遅延素子ＤＬ１から受けたクロックＣＬＫ２Ｄのたとえば立ち上がり遷移のタイミングでカウントアップを行ない、カウント結果を示すカウント信号ＣＮＴ０をフリップフロップＦＦ１３へ出力する。
【０１１６】
フリップフロップＦＦ１３は、遅延素子ＤＬ１から受けたクロックＣＬＫ２Ｄのたとえば立ち上がり遷移のタイミングにおいて、カウンタＫ１１から受けたカウント信号ＣＮＴ０をサンプリングし、サンプリングしたカウント信号ＣＮＴ０を保持するとともにカウント信号ＣＮＴ１として出力する。
【０１１７】
フリップフロップＦＦ１２は、外部から受けたクロックＣＬＫ１のたとえば立ち上がり遷移のタイミングにおいて、データ読み出しフラグＲＥをサンプリングし、サンプリングしたデータ読み出しフラグＲＥを保持するとともにデータ読み出しフラグＲＥ１として出力する。
【０１１８】
ＯＲゲートＧ１２は、データ読み出しフラグＲＥとフリップフロップＦＦ１２から受けたデータ読み出しフラグＲＥ１との論理和を示す信号をマスク信号ＭＳＫ１として出力する。
【０１１９】
フリップフロップＦＦ１１は、セレクタＫ１２から受けたクロックＣＬＫ２のたとえば立ち上がり遷移のタイミングにおいて、ＯＲゲートＧ１２から受けたマスク信号ＭＳＫ１をサンプリングし、サンプリングしたマスク信号ＭＳＫ１を保持するとともにマスク信号ＭＳＫ２として出力する。
【０１２０】
ＡＮＤゲートＧ１１は、フリップフロップＦＦ１１から受けたマスク信号ＭＳＫ２の論理レベルを反転させたデータと遅延素子ＤＬ１から受けたクロックＣＬＫ２Ｄとの論理積を示す信号をクロックＣＬＫ２Ｇとして出力する。
【０１２１】
ここで、データ読み出しフラグＲＥとクロックＣＬＫ２とは非同期であるため、フリップフロップＦＦ１１はある確率でメタステーブルを起こす。しかしながら、フリップフロップＦＦ１１の出力データであるマスク信号ＭＳＫ２は、フリップフロップＦＦ１１におけるメタステーブルの発生期間ＭＴより長く遅延素子ＤＬ１により遅延されたクロックＣＬＫ２ＤとＡＮＤゲートＧ１１において論理積がとられることから、メタステーブルは読み出し用レベルセンシティブラッチＬＴ１１には伝達されない。
【０１２２】
読み出し用レベルセンシティブラッチＬＴ１１は、転送制御回路６から受けたクロックＣＬＫ２Ｇのタイミングに基づいてフリップフロップＦＦ１３から受けたカウント信号ＣＮＴ１をサンプリングして保持し、保持したカウント信号ＣＮＴ１をカウント信号ＣＮＴ２として出力する。
【０１２３】
ＡＮＤゲートＧ１３は、読み出し用レベルセンシティブラッチＬＴ１１から受けたカウント信号ＣＮＴ２とフリップフロップＦＦ１２から受けたデータ読み出しフラグＲＥ１との論理積を示す信号をカウント信号ＣＮＴＯＵＴすなわち本体回路Ｂ６のカウント値の読み出し結果として出力する。
【０１２４】
受信回路ＣＫ１１は、クロックＣＬＫ１によって動作するクロックＣＬＫ１系の回路である。すなわち、受信回路ＣＫ１１は、ＡＮＤゲートＧ１３から受けたカウント信号ＣＮＴＯＵＴをクロックＣＬＫ１に同期して処理する。たとえば、フリップフロップＦＦ６１は、データ読み出しフラグＲＥ１の立ち下がり遷移のタイミングにおいて、カウント信号ＣＮＴＯＵＴをサンプリングし、サンプリングしたカウント信号ＣＮＴＯＵＴを保持するとともに出力する。
【０１２５】
図１４は、本発明の第６の実施の形態に係る半導体装置の動作を示すタイムチャートである。図１４は、Ｃ２がカウント値として読み出される場合を示している。
【０１２６】
図１４において示すタイミングＡでは、データ読み出しフラグＲＥはネゲートされている。すなわち、クロックＣＬＫ２の立ち上がり遷移のタイミングにおいて、データ読み出しフラグＲＥが論理ローレベルである。ここで、データ読み出しフラグＲＥのアサート期間ＴＡＳは、遅延時間ＤＬＴより長い。したがって、カウント信号ＣＮＴＯＵＴの変化と、受信回路ＣＫ１１によるカウント信号ＣＮＴＯＵＴのサンプリングとが同時に発生しない。
【０１２７】
このため、転送制御回路６は、ＡＮＤゲートＧ１１においてクロックＣＬＫ２Ｄをマスクせずに、クロックＣＬＫ２Ｇを読み出し用レベルセンシティブラッチＬＴ１１へ出力する。そうすると、読み出し用レベルセンシティブラッチＬＴ１１から出力されるカウント信号ＣＮＴ２がＣ１からＣ２に更新される。
【０１２８】
一方、図１４において示すタイミングＢでは、データ読み出しフラグＲＥはアサートされている。すなわち、クロックＣＬＫ２の立ち上がり遷移のタイミングにおいて、データ読み出しフラグＲＥが論理ハイレベルである。したがって、カウント信号ＣＮＴＯＵＴの変化と、受信回路ＣＫ１１によるカウント信号ＣＮＴＯＵＴのサンプリングとが同時に発生するおそれがある。
【０１２９】
このため、転送制御回路６は、ＡＮＤゲートＧ１１においてクロックＣＬＫ２Ｄをマスクする。そうすると、読み出し用レベルセンシティブラッチＬＴ１１から出力されるカウント信号ＣＮＴ２は更新されず、従来の値Ｃ２が維持される。ここで、データ読み出しフラグＲＥのアサート期間ＴＡＳは、遅延時間ＤＬＴより長い。このような構成により、カウント値の転送要求に従って確実にクロックＣＬＫ２Ｄをマスクすることができる。
【０１３０】
また、本発明の第６の実施の形態に係る半導体装置では、上記のタイミングＢにおいて読み出し用レベルセンシティブラッチＬＴ１１へのクロックを停止することにより、複数ビットを有するカウント信号の転送を正常に行なうことができる。
【０１３１】
その他の構成および動作は第１の実施の形態に係る半導体装置と同様であるため、ここでは詳細な説明を繰り返さない。したがって、本発明の第６の実施の形態に係る半導体装置では、メタステーブルの影響を防ぎながら非同期回路間で信号を転送し、クロック周波数の選択の自由度を高め、かつ転送遅延を抑制することができる。
【０１３２】
次に、本発明の他の実施の形態について図面を用いて説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰り返さない。
【０１３３】
＜第７の実施の形態＞
本実施の形態は、タイマのカウント初期値の書き込みが可能な半導体装置に関する。以下で説明する内容以外は第１の実施の形態に係る半導体装置と同様である。
【０１３４】
図１５は、本発明の第７の実施の形態に係る半導体装置の構成を示す図である。図１５を参照して、半導体装置１０７は、フリップフロップＦＦ２３と、ＯＲゲートＧ２２と、転送制御回路７と、本体回路Ｂ７とを備える。転送制御回路７は、セレクタＫ１２と、フリップフロップＦＦ２２と、遅延素子ＤＬ１と、ＡＮＤゲートＧ２１とを含む。本体回路Ｂ７は、フリップフロップＦＦ２１と、カウンタＫ１１とを含む。
【０１３５】
クロックＣＬＫ１とクロックＣＬＫ１ａ，１ｂ，１ｃとは非同期である。データ書き込みフラグＷＲとクロックＣＬＫ１ａ，１ｂ，１ｃとは非同期である。データ書き込みフラグＷＲは、タイマである本体回路Ｂ７のカウント初期値（リロード値）の書き込み要求を示すために所定時間アサートされる信号である。カウント初期値を示すリロードデータＷＤ［Ｎ：０］は（Ｎ＋１）ビットである（Ｎは１以上の自然数）。
【０１３６】
転送制御回路７におけるＡＮＤゲートＧ２１は、データ書き込みフラグＷＲがクロックＣＬＫ２の所定の遷移タイミングたとえば立ち上がり遷移のタイミングにおいてアサートされている場合には、クロックＣＬＫ２ＧのフリップフロップＦＦ２１への出力を停止する。
【０１３７】
より詳細には、セレクタＫ１２は、受けたクロック１ａ，１ｂ，１ｃのうちいずれかを選択し、選択したクロックをクロックＣＬＫ２として出力する。
【０１３８】
遅延素子ＤＬ１は、セレクタＫ１２から受けたクロックＣＬＫ２を所定の遅延時間ＤＬＴだけ遅延させ、遅延させたクロックをクロックＣＬＫ２Ｄとして出力する。ここで、遅延素子ＤＬ１による遅延時間ＤＬＴは、フリップフロップＦＦ２２において生じるメタステーブルの発生期間ＭＴより長い時間が設定される。
【０１３９】
フリップフロップＦＦ２２は、セレクタＫ１２から受けたクロックＣＬＫ２のたとえば立ち上がり遷移のタイミングにおいて、外部から受けたデータ書き込みフラグＷＲをサンプリングし、サンプリングしたデータ書き込みフラグＷＲを保持するとともにマスク信号ＭＳＫとして出力する。
【０１４０】
ＡＮＤゲートＧ２１は、フリップフロップＦＦ２２から受けたマスク信号ＭＳＫの論理レベルを反転させたデータと遅延素子ＤＬ１から受けたクロックＣＬＫ２Ｄとの論理積を示す信号をクロックＣＬＫ２Ｇとして出力する。
【０１４１】
ＯＲゲートＧ２２は、外部から受けたデータ書き込みフラグＷＲの論理レベルを反転させたデータと外部から受けたクロックＣＬＫ１との論理和を示す信号をデータ書き込みフラグＷＲ１として出力する。
【０１４２】
フリップフロップＦＦ２３は、ＯＲゲートＧ２２から受けたデータ書き込みフラグＷＲ１のたとえば立ち上がり遷移のタイミングにおいて、外部から受けたリロードデータＷＤをサンプリングし、サンプリングしたリロードデータＷＤを保持するとともにリロードデータＷＤ１として出力する。
【０１４３】
本体回路Ｂ７において、フリップフロップＦＦ２１は、ＡＮＤゲートＧ２１から受けたクロックＣＬＫ２Ｇのたとえば立ち上がり遷移のタイミングにおいて、フリップフロップＦＦ２３から受けたリロードデータＷＤ１をサンプリングし、サンプリングしたリロードデータＷＤ１を保持するとともにリロードデータＷＤ２として出力する。
【０１４４】
カウンタＫ１１は、遅延素子ＤＬ１から受けたクロックＣＬＫ２Ｄのたとえば立ち上がり遷移のタイミングでカウントアップを行ない、カウント結果を示すカウント信号を出力する。また、カウンタＫ１１は、フリップフロップＦＦ２１から受けたリロードデータＷＤ２を所定のタイミングでカウント初期値に設定する。
【０１４５】
ここで、データ書き込みフラグＷＲとクロックＣＬＫ２とは非同期であるため、フリップフロップＦＦ２２はある確率でメタステーブルを起こす。しかしながら、フリップフロップＦＦ２２の出力データであるマスク信号ＭＳＫは、フリップフロップＦＦ２２におけるメタステーブルの発生期間ＭＴより長く遅延素子ＤＬ１により遅延されたクロックＣＬＫ２ＤとＡＮＤゲートＧ２１において論理積がとられる。このため、メタステーブルは本体回路Ｂ７には伝達されない。
【０１４６】
図１６は、本発明の第７の実施の形態に係る半導体装置の動作を示すタイムチャートである。図１６は、ＲＬＤ１がカウント初期値としてタイマに書き込まれている状態から新たにＲＬＤ２がカウント初期値としてタイマに書き込まれる場合を示している。
【０１４７】
図１６において示すタイミングＡでは、データ書き込みフラグＷＲはネゲートされている。すなわち、クロックＣＬＫ２の立ち上がり遷移のタイミングにおいて、データ書き込みフラグＷＲが論理ローレベルである。ここで、データ書き込みフラグＷＲのアサート期間ＴＡＳは、遅延時間ＤＬＴより長い。したがって、リロードデータＷＤ１の変化と、本体回路Ｂ７におけるフリップフロップＦＦ２１によるリロードデータＷＤ１のサンプリングとが同時に発生しない。
【０１４８】
このため、転送制御回路７は、ＡＮＤゲートＧ２１においてクロックＣＬＫ２Ｄをマスクせずに、クロックＣＬＫ２ＧをフリップフロップＦＦ２１へ出力する。そうすると、フリップフロップＦＦ２１はフリップフロップＦＦ２３から新たに受けたリロードデータＷＤ１をサンプリングして保持する。
【０１４９】
一方、図１６において示すタイミングＢでは、データ書き込みフラグＷＲはアサートされている。すなわち、クロックＣＬＫ２の立ち上がり遷移のタイミングにおいて、データ書き込みフラグＷＲが論理ハイレベルである。したがって、リロードデータＷＤ１の変化と、本体回路Ｂ７におけるフリップフロップＦＦ２１によるリロードデータＷＤ１のサンプリングとが同時に発生するおそれがある。
【０１５０】
このため、転送制御回路７は、ＡＮＤゲートＧ２１においてクロックＣＬＫ２Ｄをマスクする。そうすると、フリップフロップＦＦ２１はフリップフロップＦＦ２３から新たに受けたリロードデータＷＤ１のサンプリングを行なわない。ここで、データ書き込みフラグＷＲのアサート期間ＴＡＳは、遅延時間ＤＬＴより長い。このような構成により、カウント初期値の書き込み要求に従って確実にクロックＣＬＫ２Ｄをマスクすることができる。
【０１５１】
そして、図１６において示すタイミングＣで、フリップフロップＦＦ２３がＲＬＤ２に変更されたリロードデータＷＤをサンプリングして保持し、ＲＬＤ２のリロードデータＷＤ１を出力する。
【０１５２】
そして、図１６において示すタイミングＤで、フリップフロップＦＦ２１がＲＬＤ２に変更されたリロードデータＷＤ１をサンプリングして保持し、ＲＬＤ２を示すリロードデータＷＤ２をカウンタＫ１１へ出力する。
【０１５３】
また、本発明の第７の実施の形態に係る半導体装置では、上記のタイミングＢにおいてフリップフロップＦＦ２１へのクロックを停止することにより、複数ビットを有するリロードデータの転送を正常に行なうことができる。
【０１５４】
その他の構成および動作は第１の実施の形態に係る半導体装置と同様であるため、ここでは詳細な説明を繰り返さない。したがって、本発明の第７の実施の形態に係る半導体装置では、メタステーブルの影響を防ぎながら非同期回路間で信号を転送し、クロック周波数の選択の自由度を高め、かつ転送遅延を抑制することができる。
【０１５５】
次に、本発明の他の実施の形態について図面を用いて説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰り返さない。
【０１５６】
＜第８の実施の形態＞
本実施の形態は、第６の実施の形態に係る半導体装置と比べてタイマのカウント値の読み出し機能を向上させた半導体装置に関する。以下で説明する内容以外は第６の実施の形態に係る半導体装置と同様である。
【０１５７】
図１７は、本発明の第８の実施の形態に係る半導体装置の構成を示す図である。図１７を参照して、半導体装置１０８は、転送制御回路８と、本体回路Ｂ８と、受信回路ＣＫ１１とを備える。転送制御回路８は、セレクタＫ１２と、フリップフロップＦＦ１２，ＦＦ１４，ＦＦ１５と、ＡＮＤゲートＧ１１，Ｇ１４と、ＯＲゲートＧ１２，Ｇ１５と、遅延素子ＤＬ１とを含む。本体回路Ｂ８は、カウンタＫ１１と、フリップフロップＦＦ１３と、読み出し用レベルセンシティブラッチＬＴ１１と、ＡＮＤゲートＧ１３とを含む。受信回路ＣＫ１１は、フリップフロップＦＦ６１を含む。
【０１５８】
フリップフロップＦＦ１４は、外部から受けたクロックＣＬＫ１のたとえば立ち下がり遷移のタイミングにおいて、フリップフロップＦＦ１２から受けたデータ読み出しフラグＲＥ１をサンプリングし、サンプリングしたデータ読み出しフラグＲＥ１を保持するとともに出力する。
【０１５９】
ＡＮＤゲートＧ１４は、外部から受けたクロックＣＬＫ１とフリップフロップＦＦ１４から受けたデータ読み出しフラグＲＥ１との論理積を示す信号をマスク信号ＭＳＫＮとして出力する。
【０１６０】
フリップフロップＦＦ１５は、セレクタＫ１２から受けたクロックＣＬＫ２のたとえば立ち上がり遷移のタイミングにおいて、ＯＲゲートＧ１２から受けたマスク信号ＭＳＫ１をサンプリングし、サンプリングしたマスク信号ＭＳＫ１を保持するとともにマスク信号ＭＳＫ２として出力する。また、フリップフロップＦＦ１５は、ＡＮＤゲートＧ１４から受けたマスク信号ＭＳＫＮが論理ハイレベルの場合にリセットされ、論理ローレベルのマスク信号ＭＳＫ２を出力する。
【０１６１】
ＡＮＤゲートＧ１１は、フリップフロップＦＦ１５から受けたマスク信号ＭＳＫ２の論理レベルを反転させたデータと遅延素子ＤＬ１から受けたクロックＣＬＫ２Ｄとの論理積を示す信号をクロックＣＬＫ２ＧＡとして出力する。
【０１６２】
ＯＲゲートＧ１５は、ＡＮＤゲートＧ１１から受けたクロックＣＬＫ２ＧＡとＡＮＤゲートＧ１４から受けたマスク信号ＭＳＫＮとの論理和を示す信号をクロックＣＬＫ２ＧＢとして出力する。
【０１６３】
読み出し用レベルセンシティブラッチＬＴ１１は、転送制御回路８から受けたクロックＣＬＫ２ＧＢのタイミングに基づいてフリップフロップＦＦ１３から受けたカウント信号ＣＮＴ１を保持し、保持したカウント信号ＣＮＴ１をカウント信号ＣＮＴ２として出力する。
【０１６４】
ＡＮＤゲートＧ１３は、読み出し用レベルセンシティブラッチＬＴ１１から受けたカウント信号ＣＮＴ２とフリップフロップＦＦ１２から受けたデータ読み出しフラグＲＥ１との論理積を示す信号をカウント信号ＣＮＴＯＵＴすなわち本体回路Ｂ８のカウント値の読み出し結果として出力する。
【０１６５】
図１８は、本発明の第８の実施の形態に係る半導体装置の動作を示すタイムチャートである。図１８は、Ｃ２がカウント値として読み出された後、カウンタＫ１１のカウント値がＣ３に更新された場合を示している。また、図１８は、クロックＣＬＫ２の周期がクロックＣＬＫ１の周期と比べて大幅に長い場合を示している。
【０１６６】
図１８において示すタイミングＢでは、データ読み出しフラグＲＥはアサートされている。このため、転送制御回路８は、本発明の第６の実施の形態に係る半導体装置１０６と同様に、ＡＮＤゲートＧ１１においてクロックＣＬＫ２Ｄをマスクする。
【０１６７】
ここで、半導体装置１０６では、ＡＮＤゲートＧ１１においてクロックＣＬＫ２Ｄがマスクされることにより、読み出し用レベルセンシティブラッチＬＴ１１から出力されるカウント値ＣＮＴ２の更新が停止される。この場合、データ読み出しフラグＲＥがネゲートされるすなわち論理ローレベルになっても、次のクロックＣＬＫ２が出力されるまでは、読み出し用レベルセンシティブラッチＬＴ１１においてカウント値ＣＮＴ２の更新が行なわれない。
【０１６８】
しかしながら、半導体装置１０８では、フリップフロップＦＦ１４と、ＡＮＤゲートＧ１４と、ＯＲゲートＧ１５とで構成される回路は、アサートされたデータ読み出しフラグＲＥがネゲートされた後にクロックＣＬＫ１を受けた場合には、マスク信号ＭＳＮを出力することにより、ＡＮＤゲートＧ１１によるクロックＣＬＫ２ＧＡの読み出し用レベルセンシティブラッチＬＴ１１への出力停止を解除する。そして、読み出し用レベルセンシティブラッチＬＴ１１は、フリップフロップＦＦ１３から受けたカウント信号ＣＮＴ１をマスク信号ＭＳＮに基づいて保持し、保持したカウント信号ＣＮＴ１をカウント信号ＣＮＴ２として出力する。
【０１６９】
すなわち、半導体装置１０８では、データ読み出しフラグＲＥがネゲートされた後にクロックＣＬＫ１が出力されると（タイミングＣ）、マスク信号ＭＳＮがアサートされる。そうすると、フリップフロップＦＦ１５がリセットされてマスク信号ＭＳＫ２がネゲートされ、また、ＯＲゲートＧ１５からクロックＣＬＫ２ＧＢが出力される。これにより、読み出し用レベルセンシティブラッチＬＴ１１から出力されるカウント信号ＣＮＴ２がＣ２からＣ３に更新される。
【０１７０】
このような構成により、クロックＣＬＫ２の周期がクロックＣＬＫ１の周期と比べて大幅に長い場合でも、カウント値を読み出した後にデータ読み出しフラグＲＥを再びアサートすることにより、次のクロックＣＬＫ１の立ち上がり遷移のタイミングにおいて最新のカウント値を読み出すことができる。また、データ読み出しフラグＲＥがアサートされて読み出し用レベルセンシティブラッチＬＴ１１におけるカウント値ＣＮＴ２の更新が停止された直後にクロックＣＬＫ２が出力されなくなった場合も同様に、最新のカウント値を読み出すことができる。
【０１７１】
その他の構成および動作は第６の実施の形態に係る半導体装置と同様であるため、ここでは詳細な説明を繰り返さない。したがって、本発明の第８の実施の形態に係る半導体装置では、メタステーブルの影響を防ぎながら非同期回路間で信号を転送し、クロック周波数の選択の自由度を高め、かつ転送遅延を抑制することができる。
【０１７２】
次に、本発明の他の実施の形態について図面を用いて説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰り返さない。
【０１７３】
＜第９の実施の形態＞
本実施の形態は、第７の実施の形態に係る半導体装置と比べてタイマのカウント初期値の書き込み機能を向上させた半導体装置に関する。以下で説明する内容以外は第７の実施の形態に係る半導体装置と同様である。
【０１７４】
図１９は、本発明の第９の実施の形態に係る半導体装置の構成を示す図である。図１９を参照して、半導体装置１０９は、フリップフロップＦＦ２３と、ＯＲゲートＧ２２と、転送制御回路９と、本体回路Ｂ９とを備える。転送制御回路９は、セレクタＫ１２と、フリップフロップＦＦ２２，ＦＦ２４と、遅延素子ＤＬ１と、ＡＮＤゲートＧ２１，Ｇ２３，Ｇ２４と、ＯＲゲートＧ２５とを含む。本体回路Ｂ９は、フリップフロップＦＦ２１と、カウンタＫ１１とを含む。
【０１７５】
ＡＮＤゲートＧ２３は、外部から受けたデータ書き込みフラグＷＲと外部から受けたクロックフラグＣＬＫＦＬＧ１との論理積を示す信号をデータ書き込みフラグＷＲＬＤ１として出力する。
【０１７６】
フリップフロップＦＦ２４は、外部から受けたクロックＣＬＫ１のたとえば立ち上がり遷移のタイミングにおいて、ＡＮＤゲートＧ２３から受けたデータ書き込みフラグＷＲＬＤ１をサンプリングし、サンプリングしたデータ書き込みフラグＷＲＬＤ１を保持するとともにデータ書き込みフラグＷＲＬＤ２として出力する。
【０１７７】
ＡＮＤゲートＧ２４は、外部から受けたクロックＣＬＫ１の論理レベルを反転させたデータとフリップフロップＦＦ２４から受けたデータ書き込みフラグＷＲＬＤ２との論理積を示す信号をデータ書き込みフラグＷＲＬＤ３として出力する。
【０１７８】
ＯＲゲートＧ２５は、ＡＮＤゲートＧ２１から受けたクロックＣＬＫ２ＧＡとＡＮＤゲートＧ２４から受けたデータ書き込みフラグＷＲＬＤ３との論理和を示す信号をクロックＣＬＫ２ＧＢとして出力する。
【０１７９】
本体回路Ｂ９において、フリップフロップＦＦ２１は、ＯＲゲートＧ２５から受けたクロックＣＬＫ２ＧＢのたとえば立ち上がり遷移のタイミングにおいて、フリップフロップＦＦ２３から受けたリロードデータＷＤ１をサンプリングし、サンプリングしたリロードデータＷＤ１を保持するとともにリロードデータＷＤ２として出力する。
【０１８０】
図２０は、本発明の第９の実施の形態に係る半導体装置の動作を示すタイムチャートである。図２０は、クロックＣＬＫ２が出力されていない状態において、ＲＬＤ１がカウント初期値としてタイマに書き込まれている状態から新たにＲＬＤ２がカウント初期値としてタイマに書き込まれる場合を示している。
【０１８１】
図２０を参照して、クロック１ａ，１ｂ，１ｃの出力が停止されているため、クロックＣＬＫ２は論理ローレベルであり、出力されていない状態である。この場合、クロックフラグＣＬＫＦＬＧ１は、論理ハイレベルにアサートされる。
【０１８２】
本発明の第７の実施の形態に係る半導体装置１０７では、クロックＣＬＫ２が出力されている場合のみ、クロックＣＬＫ２ＧがフリップフロップＦＦ２１へ出力され、フリップフロップＦＦ２１によってリロードデータＷＤ１がサンプリングされる。すなわち、クロックＣＬＫ２が出力されている場合のみ、フリップフロップＦＦ２３に書き込まれたリロードデータＷＤがフリップフロップＦＦ２１によってカウンタＫ１１へ転送される。このため、クロック１ａ，１ｂ，１ｃの出力が停止されているときにフリップフロップＦＦ２３に書き込まれたリロードデータＷＤは、クロックＣＬＫ２の出力が再開された直後のカウンタＫ１１のカウント動作に反映させることができない。
【０１８３】
しかしながら、半導体装置１０９では、ＡＮＤゲートＧ２３，Ｇ２４と、フリップフロップＦＦ２４とで構成される回路が、クロックＣＬＫ２が出力されていない場合には、アサートされたデータ書き込みフラグＷＲを受けてデータ書き込みフラグＷＲＬＤ３を出力する。そして、フリップフロップＦＦ２１は、フリップフロップＦＦ２３から受けたリロードデータＷＤ１をデータ書き込みフラグＷＲＬＤ３に基づいて保持し、かつ保持したリロードデータＷＤ１をリロードデータＷＤ２として出力する。
【０１８４】
すなわち、クロック１ａ，１ｂ，１ｃの出力が停止された場合であっても、データ書き込みフラグＷＲがアサートされると、データ書き込みフラグＷＲＬＤ３がアサートされる。これにより、ＯＲゲートＧ２５からクロックＣＬＫ２ＧＢがフリップフロップＦＦ２１へ出力される。
【０１８５】
このような構成により、たとえばカウンタＫ１１のカウント初期値が更新された直後にクロック１ａ，１ｂ，１ｃの出力が停止された場合でも、フリップフロップＦＦ２３に書き込まれたリロードデータＷＤがフリップフロップＦＦ２１によってカウンタＫ１１へ転送される。したがって、フリップフロップＦＦ２３に書き込まれたリロードデータＷＤを、クロックＣＬＫ２の出力が再開された直後のカウンタＫ１１のカウント動作に反映させることができる。
【０１８６】
その他の構成および動作は第７の実施の形態に係る半導体装置と同様であるため、ここでは詳細な説明を繰り返さない。したがって、本発明の第９の実施の形態に係る半導体装置では、メタステーブルの影響を防ぎながら非同期回路間で信号を転送し、クロック周波数の選択の自由度を高め、かつ転送遅延を抑制することができる。
【０１８７】
次に、本発明の他の実施の形態について図面を用いて説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰り返さない。
【０１８８】
＜第１０の実施の形態＞
本実施の形態は、第８および第９の実施の形態に係る半導体装置の両方の機能を有する半導体装置に関する。以下で説明する内容以外は第８および第９の実施の形態に係る半導体装置と同様である。
【０１８９】
図２１は、本発明の第１０の実施の形態に係る半導体装置の構成を示す図である。図２１を参照して、半導体装置１１０は、フリップフロップＦＦ２３と、ＯＲゲートＧ２２と、転送制御回路１０と、本体回路Ｂ１０と、受信回路ＣＫ１１とを備える。転送制御回路１０は、セレクタＫ１２と、フリップフロップＦＦ１２，ＦＦ１４，ＦＦ１５，ＦＦ２２，ＦＦ２４と、ＡＮＤゲートＧ１１，Ｇ１４，Ｇ２１，Ｇ２３，Ｇ２４，Ｇ２５と、ＯＲゲートＧ１２，Ｇ１５と、遅延素子ＤＬ１とを含む。本体回路Ｂ１０は、カウンタＫ１１と、フリップフロップＦＦ１３，ＦＦ２１と、読み出し用レベルセンシティブラッチＬＴ１１と、ＡＮＤゲートＧ１３とを含む。受信回路ＣＫ１１は、フリップフロップＦＦ６１を含む。
【０１９０】
その他の構成および動作は第８および第９の実施の形態に係る半導体装置と同様であるため、ここでは詳細な説明を繰り返さない。したがって、本発明の第１０の実施の形態に係る半導体装置では、メタステーブルの影響を防ぎながら非同期回路間で信号を転送し、クロック周波数の選択の自由度を高め、かつ転送遅延を抑制することができる。
【０１９１】
次に、本発明の他の実施の形態について図面を用いて説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰り返さない。
【０１９２】
＜第１１の実施の形態＞
本実施の形態は、第１０の実施の形態に係る半導体装置と比べてカウント初期値の読み出し機能を追加した半導体装置に関する。以下で説明する内容以外は第１０の実施の形態に係る半導体装置と同様である。
【０１９３】
図２２は、本発明の第１１の実施の形態に係る半導体装置の構成を示す図である。図２２を参照して、半導体装置１１１は、フリップフロップＦＦ２３と、ＯＲゲートＧ２２と、転送制御回路１１と、本体回路Ｂ１１と、受信回路ＣＫ１１とを備える。転送制御回路１１は、セレクタＫ１２と、フリップフロップＦＦ１２，ＦＦ１４，ＦＦ１５，ＦＦ２２，ＦＦ２４と、ラッチＬＴ１２と、ＡＮＤゲートＧ１１，Ｇ１４，Ｇ２１，Ｇ２３，Ｇ２４，Ｇ２５，Ｇ３１と、ＯＲゲートＧ１２，Ｇ１５，Ｇ３２と、遅延素子ＤＬ１とを含む。本体回路Ｂ１１は、カウンタＫ１１と、フリップフロップＦＦ１３，ＦＦ２１と、セレクタＫ３１と、読み出し用レベルセンシティブラッチＬＴ１１と、ＡＮＤゲートＧ１３とを含む。受信回路ＣＫ１１は、フリップフロップＦＦ６１を含む。
【０１９４】
フリップフロップＦＦ３１は、外部から受けたクロックＣＬＫ１に基づいて、ＡＮＤゲートＧ２３から受けたデータ書き込みフラグＷＲＬＤ１をサンプリングし、サンプリングしたデータ書き込みフラグＷＲＬＤ１を保持するとともにデータ書き込みフラグＲＲＬＤ１として出力する。
【０１９５】
ＡＮＤゲートＧ３１は、外部から受けたクロックＣＬＫ１とラッチＬＴ１２から受けたデータ書き込みフラグＲＲＬＤ１との論理積を示す信号をデータ書き込みフラグＲＲＬＤ２として出力する。
【０１９６】
ＯＲゲートＧ３２は、ＡＮＤゲートＧ３１から受けたデータ書き込みフラグＲＲＬＤ２とＯＲゲートＧ１５から受けたクロックＣＬＫ２ＧＢとの論理和を示す信号をクロックＣＬＫ２ＧＣとして出力する。
【０１９７】
セレクタＫ３１は、ＡＮＤゲートＧ３１から受けたデータ書き込みフラグＲＲＬＤ２に基づいて、フリップフロップＦＦ２３から受けたリロードデータＷＤ１およびフリップフロップＦＦ１３から受けたカウント信号ＣＮＴ１のいずれかを選択して出力する。
【０１９８】
読み出し用レベルセンシティブラッチＬＴ１１は、転送制御回路１１から受けたクロックＣＬＫ２ＧＣのタイミングに基づいて、セレクタＫ３１から受けた信号を保持し、保持した信号をカウント信号ＣＮＴ２として出力する。
【０１９９】
図２３は、本発明の第１１の実施の形態に係る半導体装置の動作を示すタイムチャートである。図２３は、クロックＣＬＫ２が出力されていない状態において、ＲＬＤ１がカウント初期値としてタイマに書き込まれている状態から新たにＲＬＤ２がカウント初期値としてタイマに書き込まれる場合を示している。
【０２００】
図２３を参照して、クロック１ａ，１ｂ，１ｃの出力が停止されているため、クロックＣＬＫ２は出力されない。この場合、クロックフラグＣＬＫＦＬＧ１は、論理ハイレベルにアサートされる。
【０２０１】
半導体装置１１１では、本発明の第９の実施の形態に係る半導体装置１０９と同様に、クロック１ａ，１ｂ，１ｃの出力が停止された場合であっても、データ書き込みフラグＷＲがアサートされると、フリップフロップＦＦ２３に書き込まれたリロードデータＷＤがフリップフロップＦＦ２１によってカウンタＫ１１へ転送される。
【０２０２】
さらに、半導体装置１１１では、転送制御回路１１において、ラッチＬＴ１２と、ＡＮＤゲートＧ２３，Ｇ３１と、ＯＲゲートＧ３２とで構成される回路は、クロックＣＬＫ２が出力されていない場合には、アサートされたデータ書き込みフラグＷＲを受けてデータ書き込みフラグＲＲＬＤ２およびクロックＣＬＫ２ＧＣを出力する。
【０２０３】
すなわち、クロック１ａ，１ｂ，１ｃの出力が停止された場合であっても、データ書き込みフラグＷＲがアサートされると、フリップフロップＦＦ２３に書き込まれたリロードデータＷＤがリロードデータＷＤ１としてセレクタＫ３１へも出力される。そして、アサートされたデータ書き込みフラグＷＲによってデータ書き込みフラグＲＲＬＤ２がアサートされ、かつクロックＣＬＫ２ＧＣが生成される。セレクタＫ３１は、アサートされたデータ書き込みフラグＲＲＬＤ２を受けて、フリップフロップＦＦ２３から受けたリロードデータＷＤ１を選択し、読み出し用レベルセンシティブラッチＬＴ１１へ出力する。そして、読み出し用レベルセンシティブラッチＬＴ１１は、クロックＣＬＫ２ＧＣを受けて、セレクタＫ３１から受けたリロードデータＷＤ１であるＲＬＤ２を保持し、カウント信号ＣＮＴ２をカウンタＫ１１のカウント値ＣＸからカウント初期値ＲＬＤ２に更新する。
【０２０４】
このような構成により、半導体装置１１１にカウント初期値を書き込むと同時にそのカウント初期値を受信回路ＣＫ１１において読み出すことができる。
【０２０５】
その他の構成および動作は第１０の実施の形態に係る半導体装置と同様であるため、ここでは詳細な説明を繰り返さない。したがって、本発明の第１１の実施の形態に係る半導体装置では、メタステーブルの影響を防ぎながら非同期回路間で信号を転送し、クロック周波数の選択の自由度を高め、かつ転送遅延を抑制することができる。
【０２０６】
次に、本発明の他の実施の形態について図面を用いて説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰り返さない。
【０２０７】
＜第１２の実施の形態＞
本実施の形態は、データの書き込み、かつ書き込まれたデータの読み出しが可能な半導体装置に関する。以下で説明する内容以外は第１の実施の形態に係る半導体装置と同様である。
【０２０８】
図２４は、本発明の第１２の実施の形態に係る半導体装置の構成を示す図である。図２４を参照して、半導体装置１１２は、ＮＡＮＤゲートＧ５１，Ｇ５２と、バッファＢＵＦ５１，ＢＵＦ５２と、アドレスデコーダＫ５１と、転送制御回路１２と、本体回路Ｂ１２とを備える。転送制御回路１２は、フリップフロップＦＦ５３、ＦＦ５４，ＦＦ５５と、遅延素子ＤＬ１と、ＡＮＤゲートＧ５３，Ｇ５４とを含む。本体回路Ｂ１２は、フリップフロップＦＦ５１，ＦＦ５２とを含む。
【０２０９】
クロックＣＬＫ１とクロックＣＬＫ２とは非同期である。データ書き込みフラグＷＲとクロックＣＬＫ２とは非同期である。データ書き込みフラグＷＲは、本体回路Ｂ１２への書き込みデータＷＤの書き込み要求を示すために所定時間アサートされる信号である。書き込みデータＷＤ［Ｎ：０］は（Ｎ＋１）ビットである（Ｎは１以上の自然数）。
【０２１０】
アドレスデコーダＫ５１は、外部から受けたアドレス信号の示すアドレスに対応する本体回路Ｂ１２へのデータ書き込みフラグＤＥＣをアサートするすなわち論理ローレベルとする。
【０２１１】
ＮＡＮＤゲートＧ５１は、外部から受けたデータ書き込みフラグＷＲの論理レベルを反転させたデータとアドレスデコーダＫ５１から受けたデータ書き込みフラグＤＥＣの論理レベルを反転させたデータとの論理積の反転を示す信号をデータ書き込みフラグＷＲ１として出力する。
【０２１２】
ＮＡＮＤゲートＧ５２は、外部からバッファＢＵＦ５１を介して受けたクロックＣＬＫ１の論理レベルを反転させたデータとＮＡＮＤゲートＧ５１から受けたデータ書き込みフラグＷＲ１の論理レベルを反転させたデータとの論理積の反転を示す信号をデータ書き込みフラグＷＣＫとして出力する。
【０２１３】
すなわち、データ書き込みフラグＷＣＫは、後述する図２５〜図２７に示すように、転送データであるフリップフロップＦＦ５１からの読み出しデータＲＤが変化するタイミングの所定時間前にアサートされ、読み出しデータＲＤが変化するタイミングにおいてネゲートされる。データ書き込みフラグＷＣＫのアサート期間は、遅延素子ＤＬ１の遅延時間より長い。
【０２１４】
転送制御回路１２におけるＡＮＤゲートＧ５４は、データ書き込みフラグＷＲから生成されるデータ書き込みフラグＷＣＫがクロックＣＬＫ２の所定の遷移タイミングたとえば立ち上がり遷移のタイミングにおいてアサートされている場合には、クロックＣＬＫ２ＧのフリップフロップＦＦ５２への出力を停止する。
【０２１５】
より詳細には、フリップフロップＦＦ５３は、ＮＡＮＤゲートＧ５２からバッファＢＵＦ５２を介して受けたデータ書き込みフラグＷＣＫのたとえば立ち上がり遷移のタイミングにおいて、論理ハイレベルに対応する信号をサンプリングし、論理ハイレベルの信号を保持するとともにＡＮＤゲートＧ５３へ出力する。また、フリップフロップＦＦ５３は、フリップフロップＦＦ５５から受けた信号が論理ローレベルの場合にリセットされ、論理ローレベルの信号を出力する。
【０２１６】
ＡＮＤゲートＧ５３は、ＮＡＮＤゲートＧ５２からバッファＢＵＦ５２を介して受けたデータ書き込みフラグＷＣＫとフリップフロップＦＦ５３から受けた信号との論理積を示す信号を出力する。
【０２１７】
フリップフロップＦＦ５４は、外部から受けたクロックＣＬＫ２のたとえば立ち上がり遷移のタイミングにおいて、ＡＮＤゲートＧ５３から受けた信号をサンプリングし、サンプリングした信号を保持するとともに出力する。
【０２１８】
遅延素子ＤＬ１は、外部から受けたクロックＣＬＫ２を所定の遅延時間ＤＬＴだけ遅延させ、遅延させたクロックをクロックＣＬＫ２Ｄとして出力する。ここで、遅延素子ＤＬ１による遅延時間ＤＬＴは、フリップフロップＦＦ５４において生じるメタステーブルの発生期間ＭＴより長い時間が設定される。
【０２１９】
ＡＮＤゲートＧ５４は、フリップフロップＦＦ５４から受けた信号と遅延素子ＤＬ１から受けたクロックＣＬＫ２Ｄとの論理積を示す信号をクロックＣＬＫ２Ｇとして出力する。
【０２２０】
ここで、データ書き込みフラグＷＲとクロックＣＬＫ２とは非同期であるため、フリップフロップＦＦ５４はある確率でメタステーブルを起こす。しかしながら、フリップフロップＦＦ５４の出力信号は、フリップフロップＦＦ５４におけるメタステーブルの発生期間ＭＴより長く遅延素子ＤＬ１により遅延されたクロックＣＬＫ２ＤとＡＮＤゲートＧ５４において論理積がとられる。このため、メタステーブルは本体回路Ｂ１２には伝達されない。
【０２２１】
フリップフロップＦＦ５５は、ＡＮＤゲートＧ５４から受けたクロックＣＬＫ２Ｇのたとえば立ち上がり遷移のタイミングにおいて、論理ハイレベルに対応する信号をサンプリングして保持し、論理ローレベルの信号をフリップフロップＦＦ５３へ出力する。また、フリップフロップＦＦ５５は、ＮＡＮＤゲートＧ５２からバッファＢＵＦ５２を介して受けたデータ書き込みフラグＷＣＫが論理ローレベルの場合にリセットされ、論理ローレベルの信号を出力する。
【０２２２】
本体回路Ｂ１２において、フリップフロップＦＦ５１は、ＮＡＮＤゲートＧ５２からバッファＢＵＦ５２を介して受けたデータ書き込みフラグＷＣＫのたとえば立ち上がり遷移のタイミングにおいて、外部から受けた書き込みデータＷＤをサンプリングし、サンプリングした書き込みデータＷＤを保持するとともに読み出しデータＲＤとして出力する。
【０２２３】
フリップフロップＦＦ５２は、ＡＮＤゲートＧ５４から受けたクロックＣＬＫ２Ｇのたとえば立ち上がり遷移のタイミングにおいて、フリップフロップＦＦ５１から受けた読み出しデータＲＤをサンプリングし、サンプリングした読み出しデータＲＤを保持するとともに読み出しデータＲＤＯＵＴすなわち本体回路Ｂ１２に対する読み出し結果として出力する。
【０２２４】
図２５は、クロックＣＬＫ１の周波数がクロックＣＬＫ２の周波数より小さい場合における本発明の第１２の実施の形態に係る半導体装置の動作を示すタイムチャートである。図２６は、クロックＣＬＫ１の周波数がクロックＣＬＫ２の周波数と等しい場合における本発明の第１２の実施の形態に係る半導体装置の動作を示すタイムチャートである。図２７は、クロックＣＬＫ１の周波数がクロックＣＬＫ２の周波数より大きい場合における本発明の第１２の実施の形態に係る半導体装置の動作を示すタイムチャートである。図２５〜図２７は、ＷＤ１が本体回路Ｂ１２に書き込まれている状態から新たにＷＤ２が本体回路Ｂ１２に書き込まれる場合を示している。
【０２２５】
図２５〜図２７において示すタイミングＡでは、データ書き込みフラグＷＣＫはアサートされている。すなわち、クロックＣＬＫ２の立ち上がり遷移のタイミングにおいて、データ書き込みフラグＷＣＫが論理ローレベルである。したがって、読み出しデータＲＤの変化と、本体回路Ｂ１２におけるフリップフロップＦＦ５２による読み出しデータＲＤのサンプリングとが同時に発生するおそれがある。
【０２２６】
このため、転送制御回路１２におけるＡＮＤゲートＧ５４は、データ書き込みフラグＷＲから生成されるデータ書き込みフラグＷＣＫがクロックＣＬＫ２の所定の遷移タイミングたとえば立ち上がり遷移のタイミングにおいてアサートされている場合には、クロックＣＬＫ２ＧのフリップフロップＦＦ５２への出力を停止する。すなわち、ＡＮＤゲートＧ５４においてクロックＣＬＫ２Ｄをマスクする。そうすると、フリップフロップＦＦ５２はフリップフロップＦＦ５１から新たに受けた読み出しデータＲＤのサンプリングを行なわない。ここで、データ書き込みフラグＷＣＫのアサート期間ＴＡＳは、遅延時間ＤＬＴより長い。このような構成により、書き込み要求に従って確実にクロックＣＬＫ２Ｄをマスクすることができる。
【０２２７】
そして、図２５〜図２７において示すタイミングＢで、フリップフロップＦＦ５２がＷＤ２に変更された読み出しデータＲＤをサンプリングして保持し、ＷＤ２を示す読み出しデータＲＤＯＵＴを出力する。
【０２２８】
さらに、本発明の第１２の実施の形態に係る半導体装置では、転送制御回路１２におけるＡＮＤゲートＧ５４は、データ書き込みフラグＷＣＫがクロックＣＬＫ２の所定の遷移タイミングたとえば立ち上がり遷移のタイミングにおいてアサートされており（タイミングＡ）、かつクロックＣＬＫ２の次の所定の遷移タイミングにおいてネゲートされている（タイミングＣ）場合には、遅延クロックＣＬＫ２Ｄを所定周期分たとえば１周期分だけフリップフロップＦＦ５２へ出力し、所定周期経過後、クロックＣＬＫ２ＧのフリップフロップＦＦ５２への出力を再び停止する（タイミングＤ）。
【０２２９】
すなわち、転送制御回路１２では、データ書き込みフラグＷＣＫがアサートされるとＡＮＤゲートＧ５４からＣＬＫ２Ｇが出力される。そして、フリップフロップ５５は、ＣＬＫ２Ｇを受けて論理ローレベルの信号をフリップフロップ５３へ出力する。フリップフロップ５５は、フリップフロップ５３から論理ローレベルの信号を受けてリセットされ、論理ローレベルの信号をＡＮＤゲートＧ５３へ出力する。これにより、ＡＮＤゲートＧ５３から論理ローレベルの信号がフリップフロップ５４へ出力されるため、ＡＮＤゲートＧ５４がＣＬＫ２Ｇの出力を停止する。すなわち、データ書き込みフラグＷＣＫが次にアサートされるまでＣＬＫ２Ｇは出力されない。このような構成により、読み出しデータＲＤを転送する必要がある場合のみ本体回路Ｂ１２におけるフリップフロップＦＦ５２を動作させることができるため、消費電力を低減することができる。
【０２３０】
また、本発明の第１２の実施の形態に係る半導体装置では、上記のタイミングＡにおいてフリップフロップＦＦ５２へのクロックを停止することにより、複数ビットを有するデータの転送を正常に行なうことができる。
【０２３１】
その他の構成および動作は第１の実施の形態に係る半導体装置と同様であるため、ここでは詳細な説明を繰り返さない。したがって、本発明の第１２の実施の形態に係る半導体装置では、メタステーブルの影響を防ぎながら非同期回路間で信号を転送し、クロック周波数の選択の自由度を高め、かつ転送遅延を抑制することができる。
【０２３２】
次に、本発明の他の実施の形態について図面を用いて説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰り返さない。
【０２３３】
＜第１３の実施の形態＞
本実施の形態は、記憶データの読み出しが可能な半導体装置に関する。以下で説明する内容以外は第１の実施の形態に係る半導体装置と同様である。
【０２３４】
図２８は、本発明の第１３の実施の形態に係る半導体装置の構成を示す図である。図２８を参照して、半導体装置１１３は、ＮＡＮＤゲートＧ６１と、ＯＲゲートＧ６２と、バッファＢＵＦ６１と、フリップフロップＦＦ６１と、アドレスデコーダＫ６１と、転送制御回路１３と、本体回路Ｂ１３とを備える。転送制御回路１３は、バッファＢＵＦ６２，ＢＵＦ６３と、フリップフロップＦＦ６３，ＦＦ６４と、遅延素子ＤＬ１と、ＡＮＤゲートＧ６３と、ＮＯＲゲートＧ６４とを含む。本体回路Ｂ１３は、フリップフロップＦＦ６２と、データ転送用レベルセンシティブラッチＬＴ６１とを含む。
【０２３５】
クロックＣＬＫ１とクロックＣＬＫ２とは非同期である。データ読み出しフラグＲＥとクロックＣＬＫ２とは非同期である。データ読み出しフラグＲＥは、本体回路Ｂ１３の記憶データの転送要求を示すために所定時間アサートされる信号である。記憶データＲＤ１［Ｎ：０］は（Ｎ＋１）ビットである（Ｎは１以上の自然数）。
【０２３６】
アドレスデコーダＫ６１は、外部から受けたアドレス信号の示すアドレスに対応する本体回路Ｂ１３へのデータ読み出しフラグＤＥＣをアサートするすなわち論理ローレベルとする。
【０２３７】
ＮＡＮＤゲートＧ６１は、外部から受けたデータ読み出しフラグＲＥの論理レベルを反転させたデータとアドレスデコーダＫ５１から受けたデータ読み出しフラグＤＥＣの論理レベルを反転させたデータとの論理積の反転を示す信号を出力する。
【０２３８】
フリップフロップＦＦ６１は、外部からバッファ６１を介して受けたクロックＣＬＫ１のたとえば立ち上がり遷移のタイミングにおいて、ＮＡＮＤゲートＧ６１から受けた信号をサンプリングし、サンプリングした信号を保持するとともに出力する。
【０２３９】
ＯＲゲートＧ６２は、外部から受けたデータ読み出しフラグＲＥの論理レベルを反転させたデータとフリップフロップＦＦ６１から受けた信号の論理レベルを反転させたデータとの論理和を示す信号を転送制御信号ＩＮＨ１として出力する。
【０２４０】
転送制御回路１３において、ＮＯＲゲートＧ６４は、ＯＲゲートＧ６２から受けた転送制御信号ＩＮＨ１の論理レベルを反転させたデータと外部から受けたリセット信号Ｒｅｓｅｔの論理レベルを反転させたデータとの論理和の反転を示す信号を出力する。
【０２４１】
フリップフロップＦＦ６３は、外部からバッファＢＵＦ６２を介して受けたクロックＣＬＫ２のたとえば立ち上がり遷移のタイミングにおいて、ＯＲゲートＧ６２から受けた転送制御信号ＩＮＨ１をサンプリングし、サンプリングした転送制御信号ＩＮＨ１を保持するとともに転送制御信号ＩＮＨ２として出力する。また、フリップフロップＦＦ６３は、ＮＯＲゲートＧ６４から受けた信号が論理ローレベルの場合にリセットされ、論理ローレベルの転送制御信号ＩＮＨ２を出力する。
【０２４２】
遅延素子ＤＬ１は、外部からバッファＢＵＦ６２を介して受けたクロックＣＬＫ２を所定の遅延時間ＤＬＴだけ遅延させ、遅延させたクロックをクロックＣＬＫ２Ｄとして出力する。ここで、遅延素子ＤＬ１による遅延時間ＤＬＴは、フリップフロップＦＦ６３において生じるメタステーブルの発生期間ＭＴより長い時間が設定される。
【０２４３】
ＡＮＤゲートＧ６３は、フリップフロップＦＦ６３から受けた転送制御信号ＩＮＨ２と遅延素子ＤＬ１から受けたクロックＣＬＫ２Ｄとの論理積を示す信号を出力する。
【０２４４】
ここで、データ読み出しフラグＲＥとクロックＣＬＫ２とは非同期であるため、フリップフロップＦＦ６３はある確率でメタステーブルを起こす。しかしながら、フリップフロップＦＦ６３の出力信号は、フリップフロップＦＦ６３におけるメタステーブルの発生期間ＭＴより長く遅延素子ＤＬ１により遅延されたクロックＣＬＫ２ＤとＡＮＤゲートＧ６３において論理積がとられる。このため、メタステーブルはフリップフロップＦＦ６４および本体回路Ｂ１３には伝達されない。
【０２４５】
フリップフロップＦＦ６４は、ＡＮＤゲートＧ６３から受けた信号のたとえば立ち上がり遷移のタイミングにおいて、論理ハイレベルに対応する信号をサンプリングして保持し、論理ローレベルの信号を転送制御信号ＩＮＨ３として出力する。また、フリップフロップＦＦ６４は、ＮＯＲゲートＧ６４から受けた信号が論理ローレベルの場合にリセットされ、論理ローレベルの転送制御信号ＩＮＨ３を出力する。
【０２４６】
本体回路Ｂ１３において、フリップフロップＦＦ６２は、遅延素子ＤＬ１から受けたクロックＣＬＫ２Ｄのたとえば立ち上がり遷移のタイミングにおいて、本体回路Ｂ１３において記憶されている記憶データＲＤ１をサンプリングし、サンプリングした記憶データＲＤ１を保持するとともに読み出しデータＲＤ２として出力する。
【０２４７】
データ転送用レベルセンシティブラッチＬＴ６１は、転送制御回路１３から受けた転送制御信号ＩＮＨ３のタイミングに基づいて、フリップフロップＦＦ６２から受けた読み出しデータＲＤ２を保持するとともに読み出しデータＲＤＯＵＴすなわち本体回路Ｂ１３に対する読み出し結果として出力する。
【０２４８】
図２９は、クロックＣＬＫ１の周波数がクロックＣＬＫ２の周波数より小さい場合における本発明の第１３の実施の形態に係る半導体装置の動作を示すタイムチャートである。図３０は、クロックＣＬＫ１の周波数がクロックＣＬＫ２の周波数と等しい場合における本発明の第１３の実施の形態に係る半導体装置の動作を示すタイムチャートである。図３１は、クロックＣＬＫ１の周波数がクロックＣＬＫ２の周波数より大きい場合における本発明の第１３の実施の形態に係る半導体装置の動作を示すタイムチャートである。図２９〜図３１は、本体回路Ｂ１３が記憶しているデータ値ＲＤ１が読み出される場合を示している。また、記憶データＲＤ１は、クロックＣＬＫ２に同期して変化している。
【０２４９】
図２９〜図３１において示すタイミングＡでは、データ読み出しフラグＲＥはアサートされている。すなわち、クロックＣＬＫ２の立ち上がり遷移のタイミングにおいて、データ読み出しフラグＲＥが論理ローレベルである。したがって、読み出しデータＲＤＯＵＴの変化と、クロックＣＬＫ１と非同期な回路による読み出しデータＲＤＯＵＴのサンプリングとが同時に発生するおそれがある。
【０２５０】
このため、転送制御回路１３は、データ書き込みフラグＷＣＫがクロックＣＬＫ２の所定の遷移タイミングたとえば立ち上がり遷移のタイミングにおいてアサートされている場合には、ＡＮＤゲートＧ６３においてクロックＣＬＫ２Ｄをマスクする。
【０２５１】
そうすると、転送制御信号ＩＮＨ３がネゲートされるすなわち論理ローレベルとなるため、データ転送用レベルセンシティブラッチＬＴ６１は、保持している読み出しデータＲＤ２の出力を継続する。すなわち、データ転送用レベルセンシティブラッチＬＴ６１から出力される読み出しデータＲＤＯＵＴは更新されず、従来の値ＲＤ１が維持される。ここで、データ読み出しフラグＲＥのアサート期間ＴＡＳは、遅延時間ＤＬＴより長い。このような構成により、読み出し要求に従って確実にクロックＣＬＫ２Ｄをマスクすることができる。
【０２５２】
そして、転送制御回路１３は、転送制御信号ＩＮＨ３をネゲートしてから所定時間経過後に転送制御信号ＩＮＨ３をアサートする。すなわち、図２９〜図３１において示すタイミングＢすなわちデータ読み出し終了後、転送制御信号ＩＮＨ３が論理ハイレベルとなるため、データ転送用レベルセンシティブラッチＬＴ６１は、新たにフリップフロップＦＦ６２から受けた読み出しデータＲＤ２の保持および出力を行なう。すなわち、データ転送用レベルセンシティブラッチＬＴ６１から出力される読み出しデータＲＤＯＵＴがＲＤ１からＲＤ６に更新される。
【０２５３】
さらに、本発明の第１３の実施の形態に係る半導体装置では、フリップフロップＦＦ６３，ＦＦ６４のリセット動作により、転送制御信号ＩＮＨ３はクロックのように周期的に論理ハイレベルおよび論理ローレベルを繰り返さず、データ読み出しフラグＲＥのアサートまたはネゲートに対応して論理ローレベルまたは論理ハイレベルに維持される。このような構成により、消費電力を低減することができる。
【０２５４】
また、本発明の第１３の実施の形態に係る半導体装置では、タイミングＡの時点で記憶データＲＤ１の転送が完了しているため、読み出しデータＲＤＯＵＴを受ける回路側で迅速に読み出しデータＲＤＯＵＴの処理を行なうことができる。
【０２５５】
また、本発明の第１３の実施の形態に係る半導体装置では、上記のタイミングＡにおいてデータ転送用レベルセンシティブラッチＬＴ６１の出力データの更新を停止することにより、複数ビットを有するデータの転送を正常に行なうことができる。
【０２５６】
その他の構成および動作は第１の実施の形態に係る半導体装置と同様であるため、ここでは詳細な説明を繰り返さない。したがって、本発明の第１３の実施の形態に係る半導体装置では、メタステーブルの影響を防ぎながら非同期回路間で信号を転送し、クロック周波数の選択の自由度を高め、かつ転送遅延を抑制することができる。
【０２５７】
次に、本発明の他の実施の形態について図面を用いて説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰り返さない。
【０２５８】
＜第１４の実施の形態＞
本実施の形態は、クロックを選択する機能を追加した半導体装置に関する。以下で説明する内容以外は第１の実施の形態に係る半導体装置と同様である。
【０２５９】
図３２は、本発明の第１４の実施の形態に係る半導体装置の構成を示す図である。図３２を参照して、半導体装置１１４は、転送制御回路１４と、本体回路Ｂ１４とを備える。転送制御回路１４は、フリップフロップＦＦ１と、遅延素子ＤＬ１と、セレクタＫ６１とを含む。
【０２６０】
セレクタＫ７１は、外部から受けたクロックＣＬＫ２および遅延素子ＤＬ１から受けた遅延クロックＣＬＫ２Ｄのいずれかを選択して本体回路Ｂ１４へ出力する。より詳細には、セレクタＫ７１は、通常動作モードにおいては、遅延素子ＤＬ１から受けたクロックＣＬＫ２ＤをクロックＣＬＫ２ＤＳとして本体回路Ｂ１４へ出力する。一方、セレクタＫ７１は、バウンダリスキャンモードにおいては、外部から受けたクロックＣＬＫ２をクロックＣＬＫ２ＤＳとして本体回路Ｂ１４へ出力する。
【０２６１】
本体回路Ｂ１４は、フリップフロップＦＦ１から受けたデータＤ１を、セレクタＫ７１から受けたクロックＣＬＫ２ＤＳに同期して処理する。
【０２６２】
このような構成により、半導体装置１１４に対してバウンダリスキャンを行なう場合には、フリップフロップＦＦ１と、本体回路Ｂ１４が含むすべての順序回路とを同じクロックタイミングに基づいて動作させることができるため、バウンダリスキャンを適切に実行することができる。
【０２６３】
その他の構成および動作は第１の実施の形態に係る半導体装置と同様であるため、ここでは詳細な説明を繰り返さない。したがって、本発明の第１４の実施の形態に係る半導体装置では、メタステーブルの影響を防ぎながら非同期回路間で信号を転送し、クロック周波数の選択の自由度を高め、かつ転送遅延を抑制することができる。
【０２６４】
次に、本発明の他の実施の形態について図面を用いて説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰り返さない。
【０２６５】
＜第１５の実施の形態＞
本実施の形態は、クロックを選択する機能を追加した半導体装置に関する。以下で説明する内容以外は第１の実施の形態に係る半導体装置と同様である。
【０２６６】
図３３は、本発明の第１５の実施の形態に係る半導体装置の構成を示す図である。図３３を参照して、半導体装置１１５は、転送制御回路１５と、本体回路Ｂ１５とを備える。転送制御回路１５は、フリップフロップＦＦ１と、遅延素子ＤＬ１と、セレクタＫ７２とを含む。
【０２６７】
セレクタＫ７２は、外部から受けたクロックＣＬＫ２および遅延素子ＤＬ１から受けた遅延クロックＣＬＫ２Ｄのいずれかを選択してＡＮＤゲートＧ１へ出力する。より詳細には、セレクタＫ７２は、通常動作モードにおいては、遅延素子ＤＬ１から受けたクロックＣＬＫ２ＤをクロックＣＬＫ２ＤＳとしてＡＮＤゲートＧ１へ出力する。一方、セレクタＫ７２は、バウンダリスキャンモードにおいては、外部から受けたクロックＣＬＫ２をクロックＣＬＫ２ＤＳとしてＡＮＤゲートＧ１へ出力する。
【０２６８】
本体回路Ｂ１５は、フリップフロップＦＦ１から受けたデータＤ１を、セレクタＫ７２からＡＮＤゲートＧ１を介して受けたクロックＣＬＫ２ＤＳに同期して処理する。
【０２６９】
このような構成により、半導体装置１１５に対してバウンダリスキャンを行なう場合には、フリップフロップＦＦ１と、本体回路Ｂ１５が含むすべての順序回路とを同じクロックタイミングに基づいて動作させることができるため、バウンダリスキャンを適切に実行することができる。
【０２７０】
その他の構成および動作は第１の実施の形態に係る半導体装置と同様であるため、ここでは詳細な説明を繰り返さない。したがって、本発明の第１５の実施の形態に係る半導体装置では、メタステーブルの影響を防ぎながら非同期回路間で信号を転送し、クロック周波数の選択の自由度を高め、かつ転送遅延を抑制することができる。
【０２７１】
なお、本発明は、送信側回路と受信側回路との間のデータ転送のレイテンシを特に小さくする必要のある場合、たとえば連続的に出力される信号ではなく、間欠的に出力される信号を、この信号と非同期なクロックに基づいて動作する回路に転送する場合において好適である。
【０２７２】
また、本発明は、たとえばワンチップマイクロコントローラのように、多数の外部センサーおよび多数のスイッチから非同期に出力される信号に基づいてシステムを制御するＬＳＩであって、かつ、低消費電力が要求されるＬＳＩに好適である。
【０２７３】
また、本発明は、半導体集積回路の非同期信号インターフェースに関し、たとえば、マイクロコントローラのＣＰＵコアと、ＣＰＵコアのタイミングとは異なる外部のタイミングにより動作するタイマ回路との間の信号伝達に好適である。
【０２７４】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【０２７５】
【図１】本発明の第１の実施の形態に係る半導体装置の構成を示す図である。
【図２】本発明の第１の実施の形態に係る半導体装置におけるフリップフロップの構成を示す図である。
【図３】フリップフロップの出力が正常な状態およびフリップフロップの出力にメタステーブルが発生している状態を示す図である。
【図４】本発明の第１の実施の形態に係る半導体装置の動作を示すタイムチャートである。
【図５】クロック周波数の選択についての問題点を解決するための転送制御回路の一例を示す図である。
【図６】本発明の第２の実施の形態に係る半導体装置の構成を示す図である。
【図７】本発明の第２の実施の形態に係る半導体装置の動作を示すタイムチャートである。
【図８】本発明の第３の実施の形態に係る半導体装置の構成を示す図である。
【図９】本発明の第３の実施の形態に係る半導体装置の動作を示すタイムチャートである。
【図１０】本発明の第４の実施の形態に係る半導体装置の構成を示す図である。
【図１１】本発明の第５の実施の形態に係る半導体装置の構成を示す図である。
【図１２】本発明の第５の実施の形態に係る半導体装置の動作を示すタイムチャートである。
【図１３】本発明の第６の実施の形態に係る半導体装置の構成を示す図である。
【図１４】本発明の第６の実施の形態に係る半導体装置の動作を示すタイムチャートである。
【図１５】本発明の第７の実施の形態に係る半導体装置の構成を示す図である。
【図１６】本発明の第７の実施の形態に係る半導体装置の動作を示すタイムチャートである。
【図１７】本発明の第８の実施の形態に係る半導体装置の構成を示す図である。
【図１８】本発明の第８の実施の形態に係る半導体装置の動作を示すタイムチャートである。
【図１９】本発明の第９の実施の形態に係る半導体装置の構成を示す図である。
【図２０】本発明の第９の実施の形態に係る半導体装置の動作を示すタイムチャートである。
【図２１】本発明の第１０の実施の形態に係る半導体装置の構成を示す図である。
【図２２】本発明の第１１の実施の形態に係る半導体装置の構成を示す図である。
【図２３】本発明の第１１の実施の形態に係る半導体装置の動作を示すタイムチャートである。
【図２４】本発明の第１２の実施の形態に係る半導体装置の構成を示す図である。
【図２５】クロックＣＬＫ１の周波数がクロックＣＬＫ２の周波数より小さい場合における本発明の第１２の実施の形態に係る半導体装置の動作を示すタイムチャートである。
【図２６】クロックＣＬＫ１の周波数がクロックＣＬＫ２の周波数と等しい場合における本発明の第１２の実施の形態に係る半導体装置の動作を示すタイムチャートである。
【図２７】クロックＣＬＫ１の周波数がクロックＣＬＫ２の周波数より大きい場合における本発明の第１２の実施の形態に係る半導体装置の動作を示すタイムチャートである。
【図２８】本発明の第１３の実施の形態に係る半導体装置の構成を示す図である。
【図２９】クロックＣＬＫ１の周波数がクロックＣＬＫ２の周波数より小さい場合における本発明の第１３の実施の形態に係る半導体装置の動作を示すタイムチャートである。
【図３０】クロックＣＬＫ１の周波数がクロックＣＬＫ２の周波数と等しい場合における本発明の第１３の実施の形態に係る半導体装置の動作を示すタイムチャートである。
【図３１】クロックＣＬＫ１の周波数がクロックＣＬＫ２の周波数より大きい場合における本発明の第１３の実施の形態に係る半導体装置の動作を示すタイムチャートである。
【図３２】本発明の第１４の実施の形態に係る半導体装置の構成を示す図である。
【図３３】本発明の第１５の実施の形態に係る半導体装置の構成を示す図である。
【符号の説明】
【０２７６】
１ａ，１ｂ，１ｃ  クロック、１〜１５，９１  転送制御回路、５３，５４，５５  フリップフロップ、６１  バッファ、９１  転送制御回路、１０１〜１１５  半導体装置、Ｂ１〜Ｂ１５  本体回路、ＢＵＦ１，ＢＵＦ５１，ＢＵＦ５２，ＢＵＦ６１，ＢＵＦ６２，ＢＵＦ６３  バッファ、ＩＮＶ１，ＩＮＶ２，ＩＮＶ３，ＣＩＮＶ１，ＣＩＮＶ２  インバータ、ＣＫ１，ＣＫ１１  受信回路、ＤＬ１，Ｄ９１  遅延素子、ＦＦ１，ＦＦ２，ＦＦ３，ＦＦ４，ＦＦ５，ＦＦ６，ＦＦ１１，ＦＦ１２，ＦＦ１３，ＦＦ１４，ＦＦ１５，ＦＦ２１，ＦＦ２２，ＦＦ２３，ＦＦ２４，ＦＦ３１，ＦＦ５１，ＦＦ５２，ＦＦ５３，ＦＦ５４，ＦＦ５５，ＦＦ６１，ＦＦ６２，ＦＦ６３，ＦＦ６４，ＦＦ９１，ＦＦ９２  フリップフロップ、Ｇ１，Ｇ２，Ｇ１１，Ｇ１３，Ｇ１４，Ｇ２１，Ｇ２３，Ｇ２４，Ｇ２５，Ｇ３１，Ｇ５３，Ｇ５４，Ｇ６３  ＡＮＤゲート、Ｇ１２，Ｇ１５，Ｇ２２，Ｇ２５，Ｇ３２，Ｇ６２  ＯＲゲート、Ｇ５１，Ｇ５２，Ｇ６１  ＮＡＮＤゲート、Ｇ６４  ＮＯＲゲート、Ｋ１１  カウンタ、Ｋ１２，Ｋ３１，Ｋ７１，Ｋ７２  セレクタ、Ｋ５１，Ｋ６１  アドレスデコーダ、ＬＴ１，ＬＴ６１  データ転送用レベルセンシティブラッチ、ＬＴ１１  読み出し用レベルセンシティブラッチ、ＬＴ１２  ラッチ、Ｍ１，Ｍ３  ＰチャネルＭＯＳトランジスタ、Ｍ２，Ｍ４  ＮチャネルＭＯＳトランジスタ。
【図１】
2009033553.tif 000003
【図２】
2009033553.tif 000004
【図３】
2009033553.tif 000005
【図４】
2009033553.tif 000006
【図５】
2009033553.tif 000007
【図６】
2009033553.tif 000008
【図７】
2009033553.tif 000009
【図８】
2009033553.tif 000010
【図９】
2009033553.tif 000011
【図１０】
2009033553.tif 000012
【図１１】
2009033553.tif 000013
【図１２】
2009033553.tif 000014
【図１３】
2009033553.tif 000015
【図１４】
2009033553.tif 000016
【図１５】
2009033553.tif 000017
【図１６】
2009033553.tif 000018
【図１７】
2009033553.tif 000019
【図１８】
2009033553.tif 000020
【図１９】
2009033553.tif 000021
【図２０】
2009033553.tif 000022
【図２１】
2009033553.tif 000023
【図２２】
2009033553.tif 000024
【図２３】
2009033553.tif 000025
【図２４】
2009033553.tif 000026
【図２５】
2009033553.tif 000027
【図２６】
2009033553.tif 000028
【図２７】
2009033553.tif 000029
【図２８】
2009033553.tif 000030
【図２９】
2009033553.tif 000031
【図３０】
2009033553.tif 000032
【図３１】
2009033553.tif 000033
【図３２】
2009033553.tif 000034
【図３３】
2009033553.tif 000035