JP5315882B2 - 半導体装置及び通信方法 - Google Patents

半導体装置及び通信方法 Download PDF

Info

Publication number
JP5315882B2
JP5315882B2 JP2008239682A JP2008239682A JP5315882B2 JP 5315882 B2 JP5315882 B2 JP 5315882B2 JP 2008239682 A JP2008239682 A JP 2008239682A JP 2008239682 A JP2008239682 A JP 2008239682A JP 5315882 B2 JP5315882 B2 JP 5315882B2
Authority
JP
Japan
Prior art keywords
circuit
timing
signal
communication
clock
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2008239682A
Other languages
English (en)
Other versions
JP2010074534A (ja
Inventor
充文 柴山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2008239682A priority Critical patent/JP5315882B2/ja
Publication of JP2010074534A publication Critical patent/JP2010074534A/ja
Application granted granted Critical
Publication of JP5315882B2 publication Critical patent/JP5315882B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Synchronisation In Digital Transmission Systems (AREA)

Description

本発明は、機能ブロックを複数有する半導体装置及び通信方法に関し、特に、異なるクロック周波数で動作する複数の機能ブロック間で通信する半導体装置及びその通信方法に関する。
従来、異なるクロック周波数で動作する回路(機能ブロック)同士の通信方法には、主に同期方式及び非同期方式の2種類がある。
初めに、従来の同期方式について説明する。従来の同期方式は、通信する2つの回路の各クロックの周波数比が1対整数(例えば、1:2、1:3、・・・等)や、整数対1(例えば、2:1、3:1、・・・等)であり、かつ2つのクロックの位相が等しいことが適用の条件となる。すなわち、従来の同期方式に基づく同期通信は、クロック同士が同期している回路間でのみ行うことが出来る通信方法である。
図10は、クロックAで動作する回路Aと、クロックBで動作する回路Bが、同期方式を用いて通信する半導体装置の例を示す図である。この例では、回路Aから回路Bの方向でデータを通信する。
クロックAの周波数は、クロックBの整数倍(1、2、3、・・・倍など)である。クロックAとクロックBの分配遅延は、クロックツリー合成などにより、同等になるように設計される。また、クロックAとクロックB間は、隣接する通信タイミングでセットアップタイム制約やホールドタイム制約を満足するようにタイミング設計される。例えば、ホールドタイム制約を満足するために、フリップフロップ間の遅延が小さい箇所には、遅延を付加するためのバッファ回路が挿入される。以下ではこれらバッファ回路をホールドタイム補償バッファと表記する。
信号ReqAおよびReqBは通信要求信号である。回路Aから回路Bへの通信要求がある場合に、回路AはクロックAのタイミングで信号ReqAに通信要求を出力する。ホールドタイム補償バッファ105Aは、信号ReqAにホールドタイム制約を満足するための遅延を付加し、信号ReqBとして出力する。回路BはクロックBのタイミングで信号ReqBを入力する。
信号AckAおよびAckBは通信応答信号である。回路Bが受信可能な状態にあるか、回路Aからの通信データを正常に受理した場合に、回路BはクロックBのタイミングで信号AckBに通信応答を出力する。ホールドタイム補償バッファ105Bは、信号AckBにホールドタイム制約を満足するための遅延を付加し、信号AckAとして出力する。回路AはクロックAのタイミングで信号AckAを入力する。
信号DataAおよびDataBは、回路Aから回路Bへの通信データを送る通信データ信号である。回路AはクロックAのタイミングで信号DataAを出力する。ホールドタイム補償バッファ105Cは、信号DataAにホールドタイム制約を満足するための遅延を付加し、信号DataBとして出力する。回路BはクロックBのタイミングで信号DataBを入力する。
カウンタ回路100は、クロックAとクロックBの周波数の比を示す周波数比情報101を参照して、回路Aが通信するタイミングを示す通信タイミング信号102を生成する。回路Aは、通信タイミング信号102を入力して、通信速度を回路Bの受信速度に合わせることで、同期的な通信を実現する。
図11は、クロックAの周波数がクロックBの周波数の3倍であり、回路Aから回路Bへデータを送信する場合の動作を示すタイミング図である。クロックA、通信タイミング信号102、通信要求信号ReqAおよびReqB、通信データDataAおよびDataB、クロックB、通信応答信号AckAおよびAckBを図示している。また、クロックAおよびクロックBの立ち上がりのタイミングをそれぞれT0、T1、T2、・・・で示している。
クロックAの周波数はクロックBの周波数の3倍であるので、クロックAの3サイクルに1回、具体的には、タイミングT0、T3、T6、T9、T12において、クロックAとクロックBの位相(立ち上がりエッジ)が一致している。回路Aは、このクロックAとクロックBの位相が一致するタイミングを示す通信タイミング信号102を参照して、このクロックAとクロックBの位相が一致するタイミングのみで通信動作を行う。一方、回路BはクロックBの毎サイクルにおいて通信動作を行うので、回路Aと回路Bの通信速度が一致する。
より詳細には、クロックAとクロックBの位相が一致し、通信を行うタイミングで、通信タイミング信号102は値1となる。回路Aが内蔵するフリップフロップA1、A2、A3は、通信タイミング信号102をイネーブル入力(EN)に入力することで、通信タイミング信号102が値1となるタイミングのみで動作する。従って回路Aは、この通信を行うタイミングで通信要求信号ReqA及び通信データDataAを出力し、通信応答信号AckAを入力する。
信号ReqA、AckBおよびDataAには、それぞれホールドタイム補償バッファ105A、105B、105Cにより、ホールドタイム制約を満足するための遅延Thoが付加されている。
クロックAの周波数がクロックBの整数倍である場合、通信タイミング信号102は、カウンタ回路100により容易に生成することができる。例えば、クロックAの周波数がクロックBのN倍(Nは整数)である場合、1からNまでカウントアップするカウント回路を用いて、Nサイクルに1回、通信タイミング信号102に値1を出力すればよい。
次に、具体的な通信動作を、図11を参照して説明する。まず、タイミングT0では、回路Aは、通信要求信号ReqAに値0を出力することで、回路Bに通信要求がないことを通知する。一方回路Bは、通信応答信号AckBに値1を出力することで、通信を受信できる状態にあることを回路Aに通知する。
次に、タイミングT3において、回路Aは、通信要求信号ReqAに値1を出力することで、回路Bに通信要求があることを通知するとともに、送信するデータD0を通信データDataAに出力する。回路Bは、タイミングT0で回路Aが通信要求信号ReqAに出力した値0を信号ReqBから入力し、回路Aからの通信要求がないと判断する。回路Bは引き続き通信応答信号AckBに値1を出力する。
次に、タイミングT6において、回路Aは、タイミングT3で回路Bが通信応答信号AckBに出力した値1を信号AckAから入力し、通信要求およびそのデータD0が受理されたと判断する。その結果、通信要求信号ReqAに値0を出力し、回路Bにさらなる通信要求がないことを通知する。回路Bは、タイミングT3で回路Aが通信要求信号ReqAを通じて出力した通信要求を受理するとともに、通信データD0を受信する。その結果、通信応答信号AckBに値0を出力し、これ以上通信を受信できる状態ではないことを回路Aに通知する。
次に、タイミングT9において、回路Aは、再び通信要求信号ReqAに値1を出力することで、回路Bに通信要求があることを通知するとともに、送信するデータD1を通信データDataAに出力する。回路Bは、再び通信応答信号AckBに値1を出力することで、通信を受信できる状態にあることを回路Aに通知する。
次に、タイミングT12において、回路Aは、タイミングT9で回路Bが通信応答信号AckBに出力した値1を信号AckAから入力し、通信要求およびそのデータD1が受理されたと判断する。その結果、通信要求信号ReqAに値0を出力し、回路Bにさらなる通信要求がないことを通知する。回路Bは、タイミングT9で回路Aが通信要求信号ReqAを通じて出力した通信要求を受理するとともに、通信データD1を受信する。その結果、通信応答信号AckBに値0を出力し、これ以上通信を受信できる状態ではないことを回路Aに通知する。
以上に説明した通信が正しく動作するためには、隣接する通信タイミングでセットアップタイム制約やホールドタイム制約を満足する必要がある。具体的には、下記の4つのタイミング制約を満足するようにタイミング設計する必要がある。
クロックAからクロックBへのホールドタイム制約として、回路Aがある通信タイミングで出力した信号を、回路Bはその通信タイミングで必ず入力しない。例えば、回路AがタイミングT3で出力した信号を、回路BはタイミングT3で必ず入力しない(図11のH1)。
さらに、クロックAからクロックBへのセットアップ制約として、回路Aがある通信タイミングで出力した信号を、回路Bは次の通信タイミングで必ず入力する。例えば、回路AがタイミングT3で出力した信号を、回路BはタイミングT6で必ず入力する(図11のS1)。
さらに、クロックBからクロックAへのホールドタイム制約として、回路Bがある通信タイミングで出力した信号を、回路Aはその通信タイミングで必ず入力しない。例えば、回路BがタイミングT6で出力した信号を、回路AはタイミングT6で必ず入力しない(図11のH2)。
さらに、クロックBからクロックAへのセットアップ制約として、回路Bがある通信タイミングで出力した信号を、回路Aは次の通信タイミングで必ず入力する。例えば、回路BがタイミングT6で出力した信号を、回路AはタイミングT9で必ず入力する(図11のS2)。
以上説明したように、送信側の回路Aと受信側の回路Bが、通信要求信号と通信応答信号を互いにやりとりを行う(ハンドシェイクを行う)ことで同期的な通信を行うハンドシェイク型の同期通信方式は、オンチップ・バスなどに広く使われている。
次に、従来の非同期方式について説明する。通信する2つの回路の各クロックの周波数比が1対整数や、整数対1ではない、あるいは2つのクロックの位相が等しくない回路間で行われる通信では、非同期方式が使用されている。非同期方式を用いて通信すると、信号を出力するタイミングと信号を入力するタイミングとが非同期関係になり、信号が"0"と"1"との間をある時間揺らぐ状態になる可能性がある。この現象はmetastability(メタスタビリティ)とよばれ、回路の誤動作の原因となる。メタスタビリティによる誤動作を防止する為、非同期方式では通常、同期化回路が用いられる(例えば、特許文献1)。
特許文献1に記載の技術は、第1のクロック信号に同期して所定の動作を行う第1の回路と、第2のクロック信号に同期して所定の動作を行う第2の回路との間に同期化回路を設けている。そして、この同期化回路は第1の回路の出力データを第1のクロック信号に同期してラッチし、ラッチした信号を第2のクロック信号に同期して出力している。
また、上記以外にもメタスタビリティによる誤動作を防止する技術が提案されている(例えば、特許文献2)。特許文献2に記載の技術は、データ入力信号とクロック入力信号の変化を検知し、セットアップ若しくはホールドタイムを満足しない場合にフリップフロップのデータ入力の信号を変更しないように制御して、メタスタビリティによる誤動作を防止している。
特開2003‐273847号公報 特開平6‐45880号公報
従来の同期方式は、互いに通信する各機能ブロックのクロック周波数比が整数比、すなわち1対整数や整数対1に限定されるという問題がある。この制限は通信する機能ブロックの数が増加するにつれて益々深刻になる。
さらに近年、消費電力の低減の為に、各機能ブロック毎に周波数や電源電圧を動作時に動的に変更する動的電圧周波数制御方式(Dynamic Voltage and Frequency Scaling:DVFS)が提案されている。各機能ブロックが設定できるクロック周波数が限定されていると、DVFSの低電力化に対する効果が減少するという問題がある。
さらに従来の同期方式は、各機能ブロックのクロック間のクロックスキューが大きい場合に、タイミング設計が困難になるという問題がある。特に、DVFS技術などでクロック領域毎に動的に電圧を制御する場合、クロックスキューが大きくなるため、タイミング設計がより困難になる。
図12および図13を参照して、従来の同期方式におけるタイミング設計の問題を詳細に説明する。
図10で示した従来の同期方式で通信する半導体装置において、クロックAとクロックBの分配遅延は、クロックツリー合成などによって、同等になるように設計することで、通信タイミングであるT0、T3、T6、T9、T12において、クロックAとクロックBの位相(立ち上がりエッジ)が一致する。ところが、半導体デバイスの特性ばらつき、電源電圧、チップ温度の変動などにより、通常、分配遅延にずれが発生する。その結果、クロックAとクロックBの位相がずれるクロックスキューが発生する。
図12は、クロックスキューによりクロックAよりもクロックBの位相がTskewだけ遅れた場合の通信の動作を示すタイミングである。図12において、例えば、クロックAからクロックBへのホールドタイム制約H1を満足するために、信号ReqAおよびDataAにホールドタイム補償バッファ105Aおよび105Cをそれぞれ挿入して遅延を付加している。その結果、図11で示した通信動作のタイミングと同様のタイミングが実現される。
ところで、半導体デバイスの特性ばらつき、電源電圧、チップ温度の変動などによって、ホールドタイム補償バッファの遅延自体にもばらつきが発生する。このため、ホールドタイム補償バッファの遅延が最も小さい場合を想定して、ホールドタイム制約H1を満足するだけの遅延を付加する必要がある。この遅延を図12においてTho(min)として表記している。
図13は、クロックスキューによりクロックAよりもクロックBの位相がTskewだけ進んだ場合の動作タイミングである。図13において、例えば、クロックAからクロックBへのセットアップタイム制約S1を満足する必要がある。このとき、信号ReqAおよびDataAに挿入されているホールドタイム補償バッファ105Aおよび105Cの遅延のばらつきを考慮して、遅延がもっとも大きい場合を想定してセットアップタイム制約S1を満足する必要がある。この遅延を図13においてTho(max)として表記している。
ところが、図13において明らかのように、セットアップタイム制約S1を満足するのは困難である。具体的には、ホールドタイム補償バッファ105Aおよび105Cの遅延のために、回路AがタイミングT3で出力した信号を、回路BがタイミングT6で入力するのは困難である。これは、クロックAとクロックB間のクロックスキューTskew、およびそれに対応して挿入されたホールドタイム補償バッファの遅延ばらつきTho(max)-Tho(min)が原因である。
同様に、クロックBからクロックAへのタイミング設計においても問題がある。例えば、図13において、クロックBからクロックAへのホールドタイム制約H2を満足するために、信号AckBにホールドタイム補償バッファ105Bを挿入して遅延を付加している。その結果、図11で示した通信動作のタイミングと同様のタイミングが実現される。
このとき、ホールドタイム補償バッファの遅延が最も小さい場合を想定して、ホールドタイム制約H2を満足するだけの遅延を付加する必要がある。この遅延を図13においてTho(min)として表記している。
同時に、図12において、クロックBからクロックAへのセットアップタイム制約S2を満足する必要がある。このとき、信号AckBに挿入されているホールドタイム補償バッファ105Bの遅延のばらつきを考慮して、遅延がもっとも大きい場合を想定してセットアップタイム制約S2を満足する必要がある。この遅延を図12においてTho(max)として表記している。
ところが、図12において明らかのように、セットアップタイム制約S2を満足するのは困難である。具体的には、ホールドタイム補償バッファ105Bの遅延のために、回路BがタイミングT6で出力した信号を、回路AがタイミングT9で入力するのは困難である。これは、クロックAとクロックB間のクロックスキューTskew、およびそれに対応して挿入されたホールドタイム補償バッファの遅延ばらつきTho(max)-Tho(min)が原因である。
以上説明したように、従来の同期方式には、クロック間のクロックスキューが大きくなると、タイミング設計が困難になるという問題がある。
さらに、従来の同期方式では、クロックスキューが大きくなると、ホールドタイム制約を満足するために、より大量のホールドタイム補償バッファの挿入が必要になる。その結果、レイアウト面積や電力が増大するという問題がある。
一方、上述した特許文献1のような非同期方式には主に次に示す問題がある。
第1に、非決定性動作の問題がある。チップデバイスの特性ばらつきや動作環境等に依存して、クロックサイクルのレベルでの動作が非決定的(nondeterministic)になる。その結果、ハードウェア/ソフトウェアの検証・デバックやテストにかかるコストが増大してしまう。
第2に、通信レイテンシが大きいという問題がある。同期化に要する遅延の為に通信レイテンシが増加し、通信スループットが低下する。その結果、性能の低下や、それを補償するために面積・電力が増加してしまう。
第3に、メタスタビリティによる誤動作の可能性があり、この結果、信頼性が低下するという問題がある。これは、クロック周波数の増加や低電圧化や同期化を行う箇所の増加にともない益々悪化する。信頼性を向上するには、メタスタビリティを解消する為の時間を十分に確保する必要があるが、その結果、同期化に要する遅延が益々増大し、通信レイテンシが増加する。
又、上述した特許文献2の技術は、動作時にデータ入力信号とクロック入力信号の変化を検知し、セットアップ若しくはホールドタイムを満足しているか否かを判断するが、チップデバイスの特性ばらつきや動作環境等に依存してその判断基準が変動するため、クロックサイクルのレベルでの動作が非決定的になるという問題がある。
そこで、本発明の目的は、上記問題点を鑑みて発明されたものであって、各機能ブロックが設定できるクロック周波数の自由度が大きく、クロック間のクロックスキューが大きい場合でも、動作が決定的(nondeterministic)で、通信レイテンシが小さく、信頼性の高い、機能ブロック間の通信が可能な半導体装置及び通信方法を提供することにある。
本発明の第1の半導体装置は、第2のクロック信号の周波数のM/N倍(Nは正整数、MはNより大きい正整数)である第1のクロック信号に基づいて処理を行う第1の回路と、前記第2のクロック信号に基づいて処理を行う第2の回路と、前記第1の回路と前記第2の回路との間の通信動作において、前記第1の回路の送信のタイミングを制御する送信タイミング信号と、前記第1の回路の受信のタイミングを制御する受信タイミング信号とを生成する通信タイミング制御回路とを備え、前記通信タイミング制御回路は、第1のクロック信号と第2のクロック信号の周波数の比を設定する周波数比情報と、第1のクロック信号と第2のクロック信号の位相関係を示す位相関係情報によって決定される前記送信タイミング信号及び前記受信タイミング信号を生成するものである。
本発明の第2の半導体装置は、第2のクロック信号の周波数のM/N倍(Nは正整数、MはNより大きい正整数)である第1のクロック信号に基づいて処理を行う第1の回路と、前記第2のクロック信号に基づいて処理を行う第2の回路と、前記第1の回路と前記第2の回路との間の通信動作において、前記第1の回路の送信のタイミングを制御する送信タイミング信号と、前記第1の回路の受信のタイミングを制御する受信タイミング信号とを生成する通信タイミング制御回路とを備え、前記通信タイミング制御回路は、前記第2の回路が行う一回の受信に対して、それよりも遅いタイミングで前記第1の回路が送信を一回行うように前記送信タイミング信号を生成し、前記第2の回路が行う一回の送信に対して、それよりも早いタイミングで前記第1の回路が受信を一回行うように前記受信タイミング信号を生成するものである。
本発明の第1の通信方法は、第2のクロック信号の周波数のM/N倍(Nは正整数、MはNより大きい正整数)である第1のクロック信号に基づいて処理を行う第1の回路と、前記第2のクロック信号に基づいて処理を行う第2の回路との間で通信を行う通信方法であって、第1のクロック信号と第2のクロック信号の周波数の比を設定する周波数比情報と、第1のクロック信号と第2のクロック信号の位相関係を示す位相関係情報に基づいて、前記第1の回路の送信のタイミングを制御する送信タイミング信号と、前記第1の回路の受信のタイミングを制御する受信タイミング信号とを生成するステップと、前記第1の回路が、生成された前記送信タイミング信号及び前記受信タイミング信号が指定するタイミングによって、前記第2の回路に対して通信を実行するステップを備えたものである。
本発明の第2の通信方法は、第2のクロック信号の周波数のM/N倍(Nは正整数、MはNより大きい正整数)である第1のクロック信号に基づいて処理を行う第1の回路と、前記第2のクロック信号に基づいて処理を行う第2の回路との間で通信を行う通信方法であって、前記第2の回路が行う一回の受信に対して、それよりも遅いタイミングで前記第1の回路が送信を一回行うように前記送信タイミング信号を生成し、前記第2の回路が行う一回の送信に対して、それよりも早いタイミングで前記第1の回路が受信を一回行うように前記受信タイミング信号を生成するステップと、前記第1の回路が、生成された前記送信タイミング信号及び前記受信タイミング信号が指定するタイミングによって、前記第2の回路に対して通信を実行するステップを備えたものである。
本発明により、各機能ブロックが設定できるクロック周波数の自由度が大きく、クロック間のクロックスキューが大きい場合でも、動作が決定的(nondeterministic)で、通信レイテンシが小さく、信頼性の高い、機能ブロック間の通信が可能な半導体集積回路及び通信方法を提供することができる。
発明の実施の形態1.
まず、図1を参照して、本発明の実施の形態1にかかる半導体装置について説明する。図1は、本実施形態におけるクロックAで動作する回路Aと、クロックBで動作する回路Bが、ハンドシェイク型の同期通信方式を用いて、回路Aから回路Bの方向でデータを通信する半導体装置の例である。図10に示した従来技術による半導体装置における、カウンタ回路100を本発明による通信タイミング制御回路50に置き換え、さらに、ホールドタイム補償バッファ105A、105B、105Cを取り除いたものに相当する。
図10に示した従来技術による半導体装置の例では、通信する2つの回路の各クロックの周波数比が、1対整数や、整数対1に限定されていたが、本実施形態では、任意の整数比、例えば、3:2、2:5など、M対N(M、Nは整数)であってもよく、その場合でも、同期的な通信を可能とする。
本実施の形態1において、クロックAの周波数はクロックBの1以上の任意の有理数倍、すなわちM/N倍(M、Nは正の整数かつM≧N)とする。この場合、クロックAとクロックBの周波数比はM:Nになる。クロックAとクロックBの分配遅延は、クロックツリー合成などにより、同等になるように設計される。また、クロックAとクロックB間は、通常の同期回路と同様に、隣接する通信タイミング間でセットアップやホールドタイム制約を満足するようにタイミング設計される。
通信タイミング制御回路50は、クロックAとクロックBの周波数の比を示す周波数比情報11、およびクロックAとクロックBの位相関係を示す位相関係信号12を参照して、回路Aが送信するタイミングを回路Bの各受信タイミングに対して一つ、かつ回路Bの各受信タイミングよりも遅いタイミングから選択し、そのタイミングを示す送信タイミング信号13を生成する。
同様に、通信タイミング制御回路50は、クロックAとクロックBの周波数の比を示す周波数比情報11、およびクロックAとクロックBの位相関係を示す位相関係信号12を参照して、回路Aが受信するタイミングを回路Bの各送信タイミングに対して一つ、かつ回路Bの各送信タイミングよりも早いタイミングから選択し、そのタイミングを示す受信タイミング信号14を生成する。
回路Aは、送信タイミング信号13を入力して、送信タイミング信号13が指示するタイミングでのみ送信を行う。また、回路Aは、受信タイミング信号14を入力して、受信タイミング信号14が指示するタイミングでのみ受信を行う。一方、回路BはクロックBの毎サイクルおいて送受信動作を行うので、回路Aと回路Bの通信速度が一致し、同期的な通信が実現される。
回路Aと回路Bは、通信手段である信号Req、Ack及びDataを通じて、回路Aから回路Bの方向でデータを送信する。信号Reqは、通信要求信号であり、回路Aから回路Bへの通信要求がある場合に、回路AがクロックAのタイミングで出力し、回路BがクロックBのタイミングで入力する。信号Ackは、通信応答信号である。回路Bが受信可能な状態にあるか、回路Aからの通信データを正常に受理した場合に、回路BがクロックBのタイミングで信号Ackを出力し、回路AがクロックAのタイミングで入力する。信号Dataは、回路Aから回路Bへの通信データを送る通信データ信号である。
図2は、図11と同様に、クロックAの周波数がクロックBの周波数の3倍であり、回路Aから回路Bへデータを送信する場合の動作を示すタイミング図である。クロックA、送信タイミング信号13、受信タイミング信号14、通信要求信号Req、通信データData、クロックB、通信応答信号Ackを図示している。
クロックAの周波数はクロックBの周波数の3倍であり、クロックAとクロックBの分配遅延は同等であるので、クロックAの3サイクルに1回、具体的には、タイミングT0、T3、T6、T9、T12において、クロックAとクロックBの位相(立ち上がりエッジ)が一致している。
送信タイミング信号13は、回路Aが送信を行うタイミングで値1、それ以外で値0となる信号である。具体的には、タイミングT1、T4、T7、T10において値1、それ以外で値0になる。これらの送信タイミングは、回路Bの各受信タイミングであるT0、T3、T6、T9のそれぞれに対応して1回、かつそれよりも1サイクル遅いタイミングから選択されている。
一方、受信タイミング信号14は、回路Aが受信を行うタイミングで値1、それ以外で値0となる信号である。具体的には、タイミングT2、T5、T8、T11において値1、それ以外で値0になる。これらの受信タイミングは、回路Bの各送信タイミングであるT3、T6、T9、T12のそれぞれに対応して1回、かつそれよりも1サイクル早いタイミングから選択されている。
すなわち、従来の同期方式では、回路Aと回路Bは、クロックの一致する同じタイミングで送信および受信を行っていたのに対して、本実施の形態1では、例えば、回路Bの送受信のタイミングである通信タイミングT3に対して、回路Aの送信タイミングは1サイクル遅いT4が、受信タイミングは1サイクル早いT2が選択されている。図2において、これら回路Aの送受信のタイミングを破線で囲んで示している。
同様に、回路Bの送受信のタイミングである通信タイミングT6に対して、回路Aの送信タイミングは1サイクル遅いT7が、受信タイミングは1サイクル早いT5が選択されている。
同様に、回路Bの送受信のタイミングである通信タイミングT9に対して、回路Aの送信タイミングは1サイクル遅いT10が、受信タイミングは1サイクル早いT8が選択されている。
回路Aが内蔵するフリップフロップA1、A3は、送信タイミング信号13をイネーブル入力(EN)に入力することで、送信タイミング信号13が値1となるタイミングのみで動作する。従って、回路Aは、この送信を行うタイミングで通信要求信号Req及び通信データDataを出力する。
回路Aが内蔵するフリップフロップA2は、受信タイミング信号14をイネーブル入力(EN)に入力することで、受信タイミング信号14が値1となるタイミングのみで動作する。従って、回路Aは、この受信を行うタイミングで通信応答信号Ackを入力する。
送信タイミング信号13により選択される回路Aの送信タイミングは、回路Bの受信タイミングに対して一つ、かつ回路Bの各受信タイミングよりも遅いタイミングから選択されるものならばいずれでもよい。例えば、回路Bの受信タイミングT3に対応するT4の代わりに、T5を選択しても良い。同様に、回路Bの受信タイミングT6に対応するT7の代わりに、T8を選択しても良い。
また、受信タイミング信号14により選択される回路Aの受信タイミングは、回路Bの各送信タイミングに対して一つ、かつ回路Bの各送信タイミングよりも早いタイミングから選択されるものならばいずれでもよい。例えば、回路Bの送信タイミングT3に対応するT2の代わりに、T1を選択しても良い。同様に、回路Bの受信タイミングT6に対応するT5の代わりに、T4を選択しても良い。
いずれにしても、通常の同期回路と同様に、クロックAとクロックB間のセットアップやホールドタイム制約を満足するようにタイミング設計を行う必要があるので、タイミング設計が容易になる送信タイミングおよび受信タイミングを選択しても良い。
次に、具体的な通信動作を、図2を参照して説明する。まず、回路Bの通信タイミングであるT3では、回路Bは、通信応答信号Ackに値1を出力することで、通信を受信できる状態にあることを回路Aに通知する。
次に、回路Aの送信タイミングにあるT4で、回路Aは、通信要求信号Reqに値1を出力することで、回路Bに通信要求があることを通知するとともに、送信するデータD0を通信データDataに出力する。
次に、回路Aの受信タイミングにあるT5で、回路Aは、タイミングT3で回路Bが通信応答信号Ackに出力した値1を入力し、通信要求およびそのデータD0が受理されたと判断する。その結果、回路Aの次の送信タイミングにあるT7で、回路Aは、通信要求信号Reqに値0を出力することで、回路Bにさらなる通信要求がないことを通知する。
次に、回路Bの通信タイミングであるT6で、回路Bは、タイミングT4で回路Aが通信要求信号Reqを通じて出力した通信要求を受理するとともに、通信データD0を受信する。その結果、これ以上通信を受信できる状態ではないことを回路Aに通知するため、通信応答信号Ackに値0を出力する。
次に、回路Aの受信タイミングにあるT8で、回路Aは、タイミングT6で回路Bが通信応答信号Ackに出力した値0を入力する。
次に、回路Bの通信タイミングであるT9で、回路Bは、再び通信を受信できる状態になり、通信応答信号Ackに値1を出力する。
次に、回路Aの送信タイミングにあるT10で、回路Aは、通信要求信号Reqに値1を出力することで、回路Bに通信要求があることを通知するとともに、送信するデータD1を通信データDataに出力する。
次に、回路Aの受信タイミングにあるT11で、回路Aは、タイミングT9で回路Bが通信応答信号Ackに出力した値1を入力し、通信要求およびそのデータD1が受理されたと判断する。
次に、回路Bの通信タイミングであるT12で、回路Bは、タイミングT10で回路Aが通信要求信号Reqを通じて出力した通信要求を受理するとともに、通信データD1を受信する。その結果、これ以上通信を受信できる状態ではないことを回路Aに通知するため、通信応答信号Ackに値0を出力する。
以上説明したように、本実施の形態1においても、ハンドシェイク型の同期通信方式を用いて、回路Aから回路Bの方向でデータを通信することができる。
以上に説明した通信が正しく動作するためには、隣接する通信タイミングでセットアップタイム制約やホールドタイム制約を満足する必要がある。具体的には、下記の4つのタイミング制約を満足するようにタイミング設計する必要がある。
クロックAからクロックBへのホールドタイム制約として、回路Aがある送信タイミングで出力した信号を、回路Bはそれより以前の通信タイミングで必ず入力しない。例えば、回路AがタイミングT4で出力した信号を、回路BはタイミングT3で必ず入力しない(図2のH1)。
さらに、クロックAからクロックBへのセットアップ制約として、回路Aがある送信タイミングで出力した信号を、回路Bは次の通信タイミングで必ず入力する。例えば、回路AがタイミングT4で出力した信号を、回路BはタイミングT6で必ず入力する(図2のS1)。
さらに、クロックBからクロックAへのホールドタイム制約として、回路Bがある通信タイミングで出力した信号を、回路Aはそれより以前の受信通信タイミングで必ず入力しない。例えば、回路BがタイミングT6で出力した信号を、回路AはタイミングT5で必ず入力しない(図2のH2)。
さらに、クロックBからクロックAへのセットアップ制約として、回路Bがある通信タイミングで出力した信号を、回路Aは次の受信タイミングで必ず入力する。例えば、回路BがタイミングT6で出力した信号を、回路AはタイミングT8で必ず入力する(図2のS2)。
次に、クロックスキューがある場合の本実施の形態1の動作について説明する。図3は、クロックスキューによりクロックAよりもクロックBの位相がTskewだけ遅れた場合の通信の動作を示すタイミングである。
図12で示した従来の同期方式の場合と異なり、本実施の形態1では、回路Aの送信タイミングは、回路Bのそれに対応する受信タイミングより1サイクル遅いタイミングから選択されているので、ホールドタイム補償バッファを挿入しなくても、クロックAからクロックBへのホールドタイム制約を満足することができる。例えば、回路AがタイミングT4で出力した信号を、回路BはタイミングT3で必ず入力しない(図3のH1)。さらに、ホールドタイム補償バッファを挿入していないので、クロックBからクロックAへのセットアップ制約を容易に満足することができる。例えば、回路BがタイミングT6で出力した信号を、回路AはタイミングT8で必ず入力する(図3のS2)。
図4は、クロックスキューによりクロックAよりもクロックBの位相がTskewだけ進んだ場合の動作タイミングである。
図13で示した従来の同期方式の場合と異なり、本実施の形態1では、回路Aの受信タイミングは、回路Bのそれに対応する送信タイミングより1サイクル早いタイミングから選択されているので、ホールドタイム補償バッファを挿入しなくても、クロックBからクロックAへのホールドタイム制約を満足することができる。例えば、回路BがタイミングT6で出力した信号を、回路AはタイミングT5で必ず入力しない(図4のH2)。さらに、ホールドタイム補償バッファを挿入していないので、クロックAからクロックBへのセットアップ制約を容易に満足することができる。例えば、回路AがタイミングT4で出力した信号を、回路BはタイミングT6で必ず入力する(図4のS1)。
以上説明したように、本実施の形態1によれば、回路Bの各通信タイミングに対して、回路Aの送信タイミングは1サイクル遅く、受信タイミングは1サイクル早いタイミングから選択されているので、ホールドタイム制約を満足するためにホールドタイム補償バッファを挿入する必要がない。
従って、ホールドタイム補償バッファの遅延ばらつきに影響されず、タイミング設計が容易になるという効果がある。さらに、ホールドタイム補償バッファの挿入により、レイアウト面積や電力が増大しないという効果がある。
より大きなクロックスキューTskewがある場合、回路Bの各通信タイミングに対して、回路Aの送信タイミングをより遅いタイミングから選択し、かつ受信タイミングをより早いタイミングから選択することで、ホールドタイム補償バッファの挿入を不要とすることができる。
あるいは、より大きなクロックスキューTskewがある場合、ホールドタイム制約を満足するのに必要な分だけホールドタイム補償バッファを挿入してもよい。この場合でも、従来の同期方式と比較して、必要なホールドタイム補償バッファの量は少なくてよいので、タイミング設計が容易になるという効果がある。さらに、レイアウト面積や電力の増加が小さいという効果がある。
次に図5を参照して、クロックAの周波数がクロックBの周波数の5/2倍である場合の、本実施の形態1の動作を説明する。
図5は、クロックAの周波数がクロックBの周波数の5/2倍であり、従ってクロックAとクロックBの周波数比が5:2である場合の、回路Aから回路Bへデータを送信する場合の動作を示すタイミング図である。クロックA、送信タイミング信号13および受信タイミング信号14、通信要求信号Req、通信データData、クロックB、通信応答信号Ackを図示している。
クロックAとクロックBの周波数はM:Nの整数比であり、クロックAとクロックBの分配遅延は同等であるので、ある一定の周期でクロックAとクロックBの立ち上がりが一致するという性質がある。すなわち、クロックAは、Mサイクル毎にクロックBに対する位相関係が一巡(立ち上がりが一致)し、クロックBはNサイクル毎にクロックAに対する位相関係が一巡(立ち上がりが一致)する。
図5では、クロックAとクロックBの周波数比は5:2であるので、クロックAは5サイクルでクロックBとの位相関係が一巡し、クロックBは2サイクルでクロックAとの位相関係が一巡する。クロックAにおいて、クロックBと立ち上がりが一致するタイミングをT0、T0'、T0''、・・・として、クロックBとの位相関係が一巡する5サイクルをそれぞれT0〜T4、T0'〜T4'、・・・で示している。同様に、クロックBにおいて、クロックAと立ち上がりが一致するタイミングをR0、R0'、R0''、・・・として、クロックAとの位相関係が一巡する2サイクルをそれぞれR0〜R1、R0'〜R1'、・・・で示している。
送信タイミング信号13は、回路Aが送信を行うタイミングで値1、それ以外で値0となる信号である。具体的には、タイミングT1、T3、T1'、T3'において値1、それ以外で値0になる。これらの送信タイミングは、回路Bの各受信タイミングであるR0、R1、R0'、R1'のそれぞれに対応して1回、かつそれよりも遅いタイミングから選択されている。
一方、受信タイミング信号14は、回路Aが受信を行うタイミングで値1、それ以外で値0となる信号である。具体的には、タイミングT2、T4、T2'、T4'において値1、それ以外で値0になる。これらの受信タイミングは、回路Bの各送信タイミングであるR0、R1、R0'、R1'のそれぞれに対応して1回、かつそれよりも早いタイミングから選択されている。
すなわち、従来の同期方式では、回路Aと回路Bは、クロックの一致する同じタイミングで送信および受信を行っていたのに対して、本実施形態では、例えば、回路Bの送受信のタイミングである通信タイミングR1に対して、回路Aの送信タイミングはそれよりも遅いT3が、受信タイミングはそれよりも早いT2が選択されている。図5において、これら回路Aの送受信のタイミングを破線で囲んで示している。
同様に、回路Bの送受信のタイミングである通信タイミングR0'に対して、回路Aの送信タイミングはそれよりも遅いT1'が、受信タイミングはそれよりも早いT4が選択されている。
同様に、回路Bの送受信のタイミングである通信タイミングR1'に対して、回路Aの送信タイミングはそれよりも遅いT3'が、受信タイミングはそれよりも早いT2'が選択されている。
次に、具体的な通信動作を、図5を参照して説明する。まず、回路Bの通信タイミングであるR0では、回路Bは、通信応答信号Ackに値1を出力することで、通信を受信できる状態にあることを回路Aに通知する。
次に、回路Aの送信タイミングにあるT1で、回路Aは、通信要求信号Reqに値1を出力することで、回路Bに通信要求があることを通知するとともに、送信するデータD0を通信データDataに出力する。
次に、回路Aの受信タイミングにあるT2で、回路Aは、タイミングR0で回路Bが通信応答信号Ackに出力した値1を入力し、通信要求およびそのデータD0が受理されたと判断する。その結果、回路Aの次の送信タイミングにあるT3で、回路Aは、通信要求信号Reqに値0を出力することで、回路Bにさらなる通信要求がないことを通知する。
次に、回路Bの通信タイミングであるR1で、回路Bは、タイミングT1で回路Aが通信要求信号Reqを通じて出力した通信要求を受理するとともに、通信データD0を受信する。その結果、これ以上通信を受信できる状態ではないことを回路Aに通知するため、通信応答信号Ackに値0を出力する。
次に、回路Aの受信タイミングにあるT4で、回路Aは、タイミングR1で回路Bが通信応答信号Ackに出力した値0を入力する。
次に、回路Bの通信タイミングであるR0'で、回路Bは、再び通信を受信できる状態になり、通信応答信号Ackに値1を出力する。
次に、回路Aの送信タイミングにあるT1'で、回路Aは、通信要求信号Reqに値1を出力することで、回路Bに通信要求があることを通知するとともに、送信するデータD1を通信データDataに出力する。
次に、回路Aの受信タイミングにあるT2'で、回路Aは、タイミングR0'で回路Bが通信応答信号Ackに出力した値1を入力し、通信要求およびそのデータD1が受理されたと判断する。その結果、回路Aの次の送信タイミングにあるT3'で、回路Aは、通信要求信号Reqに値0を出力することで、回路Bにさらなる通信要求がないことを通知する。
次に、回路Bの通信タイミングであるR1'で、回路Bは、タイミングT1'で回路Aが通信要求信号Reqを通じて出力した通信要求を受理するとともに、通信データD1を受信する。その結果、これ以上通信を受信できる状態ではないことを回路Aに通知するため、通信応答信号Ackに値0を出力する。
以上説明したように、本実施の形態1によれば、クロックAとクロックBの周波数比が任意の整数比であっても、ハンドシェイク型の同期通信方式を用いて、回路Aから回路Bの方向でデータを通信することができる。
以上に説明した通信が正しく動作するためには、図2で説明したクロックAの周波数がクロックBの周波数の3倍である場合と同様に、隣接する通信タイミングでセットアップタイム制約やホールドタイム制約を満足する必要がある。具体的には、下記の4つのタイミング制約を満足するようにタイミング設計する必要がある。
クロックAからクロックBへのホールドタイム制約として、回路Aがある送信タイミングで出力した信号を、回路Bはそれより以前の通信タイミングで必ず入力しない。例えば、回路AがタイミングT3で出力した信号を、回路BはタイミングR1で必ず入力しない(図5のH1)。
さらに、クロックAからクロックBへのセットアップ制約として、回路Aがある送信タイミングで出力した信号を、回路Bは次の通信タイミングで必ず入力する。例えば、回路AがタイミングT1で出力した信号を、回路BはタイミングR1で必ず入力する(図5のS1)。
さらに、クロックBからクロックAへのホールドタイム制約として、回路Bがある通信タイミングで出力した信号を、回路Aはそれより以前の受信通信タイミングで必ず入力しない。例えば、回路BがタイミングR1'で出力した信号を、回路AはタイミングT2'で必ず入力しない(図5のH2)。
さらに、クロックBからクロックAへのセットアップ制約として、回路Bがある通信タイミングで出力した信号を、回路Aは次の受信タイミングで必ず入力する。例えば、回路BがタイミングR1'で出力した信号を、回路AはタイミングT4'で必ず入力する(図5のS2)。
図2で説明したクロックAの周波数がクロックBの周波数の3倍である場合と同様に、回路Bの各通信タイミングに対して、回路Aの送信タイミングはそれより遅く、受信タイミングはそれより早いタイミングから選択されている。従って、ホールドタイム制約を満足するためにホールドタイム補償バッファを挿入する必要がない、あるいは挿入する量が少なくてよい。
その結果、ホールドタイム補償バッファの遅延ばらつきに影響されず、タイミング設計が容易になるという効果がある。さらに、ホールドタイム補償バッファの挿入により、レイアウト面積や電力が増加しない、あるいは増加が小さいという効果がある。
発明の実施の形態2.
次に、図6を参照して、本発明の実施の形態2にかかる半導体装置について説明する。
図6は、本実施形態におけるクロックAで動作する回路Aと、クロックBで動作する回路Bが、ハンドシェイク型の同期通信方式を用いて、回路Bから回路Aの方向でデータを通信する半導体装置の例である。図1に示した実施の形態1にかかる回路Aから回路Bの方向でデータを通信する半導体装置と同一の構成要素には同一の符号を付してあり、以下では詳細な説明は省略する。
回路Aと回路Bは、信号Req、Ack及びDataを通じて、回路Bから回路Aの方向でデータを送信する。信号Reqは、通信要求信号であり、回路Bから回路Aへの通信要求がある場合に、回路BがクロックBのタイミングで出力し、回路AがクロックAのタイミングで入力する。信号Ackは、通信応答信号である。回路Aが受信可能な状態にあるか、回路Bからの通信データを正常に受理した場合に、回路AがクロックAのタイミングで信号Ackを出力し、回路BはクロックBのタイミングで入力する。信号Dataは、回路Bから回路Aへの通信データを送る通信データ信号である。
図7は、クロックAの周波数がクロックBの周波数の3倍であり、回路Bから回路Aへデータを送信する場合の動作を示すタイミング図である。クロックA、送信タイミング信号13、受信タイミング信号14、通信応答信号Ack、クロックB、通信要求信号Req、通信データDataを図示している。
クロックAの周波数はクロックBの周波数の3倍であり、クロックAとクロックBの分配遅延は同等であるので、クロックAの3サイクルに1回、具体的には、タイミングT0、T3、T6、T9、T12において、クロックAとクロックBの位相(立ち上がりエッジ)が一致している。
送信タイミング信号13は、回路Aが送信を行うタイミングで値1、それ以外で値0となる信号である。具体的には、タイミングT1、T4、T7、T10において値1、それ以外で値0になる。これらの送信タイミングは、回路Bの各受信タイミングであるT0、T3、T6、T9のそれぞれに対応して1回、かつ1サイクル遅いタイミングから選択されている。
一方、受信タイミング信号14は、回路Aが受信を行うタイミングで値1、それ以外で値0となる信号である。具体的には、タイミングT2、T5、T8、T11において値1、それ以外で値0になる。これらの受信タイミングは、回路Bの各送信タイミングであるT3、T6、T9、T12のそれぞれに対応して1回、かつ1サイクル早いタイミングから選択されている。
すなわち、従来の同期方式では、回路Aと回路Bは、クロックの一致する同じタイミングで送信および受信を行っていたのに対して、本実施の形態2では、例えば、回路Bの送受信のタイミングである通信タイミングT3に対して、回路Aの送信タイミングは1サイクル遅いT4が、受信タイミングは1サイクル早いT2が選択されている。図7において、これら回路Aの送受信のタイミングを破線で囲んで示している。
同様に、回路Bの送受信のタイミングである通信タイミングT6に対して、回路Aの送信タイミングは1サイクル遅いT7が、受信タイミングは1サイクル早いT5が選択されている。
同様に、回路Bの送受信のタイミングである通信タイミングT9に対して、回路Aの送信タイミングは1サイクル遅いT10が、受信タイミングは1サイクル早いT8が選択されている。
回路Aが内蔵するフリップフロップA2は、送信タイミング信号13をイネーブル入力(EN)に入力することで、送信タイミング信号13が値1となるタイミングのみで動作する。従って、回路Aは、この送信を行うタイミングで通信応答信号Ackを出力する。
回路Aが内蔵するフリップフロップA1、A3は、受信タイミング信号14をイネーブル入力(EN)に入力することで、受信タイミング信号14が値1となるタイミングのみで動作する。従って、回路Aは、この受信を行うタイミングで通信要求信号Req及び通信データDataを入力する。
次に、具体的な通信動作を、図7を参照して説明する。まず、回路Bの通信タイミングにあるT0で、回路Bは、通信要求信号Reqに値1を出力することで、回路Aに通信要求があることを通知するとともに、送信するデータD0を通信データDataに出力する。
次に、回路Aの送信タイミングであるT1では、回路Aは、通信応答信号Ackに値1を出力することで、通信を受信できる状態にあることを回路Bに通知する。
次に、回路Aの受信タイミングであるT2で、回路Aは、タイミングT0で回路Bが通信要求信号Reqを通じて出力した通信要求を受理するとともに、通信データD0を受信する。その結果、回路Aの次の送信タイミングにあるT4で、これ以上通信を受信できる状態ではないことを回路Bに通知するため、通信応答信号Ackに値0を出力する。
次に、回路Bの通信タイミングにあるT3で、回路Bは、タイミングT1で回路Aが通信応答信号Ackに出力した値1を入力し、通信要求およびそのデータD0が受理されたと判断する。その結果、回路Bは、通信要求信号Reqに値0を出力することで、回路Aにさらなる通信要求がないことを通知する。
次に、回路Bの通信タイミングであるT6で、回路Bは、通信要求信号Reqに値1を出力することで、回路Aに通信要求があることを通知するとともに、送信するデータD1を通信データDataに出力する。
次に、回路Aの送信タイミングにあるT7で、回路Aは、再び通信を受信できる状態になり、通信応答信号Ackに値1を出力する。
次に、回路Aの受信タイミングにあるT8で、回路Aは、タイミングT6で回路Bが通信要求信号Reqを通じて出力した通信要求を受理するとともに、通信データD1を受信する。その結果、回路Aの次の送信タイミングにあるT10で、これ以上通信を受信できる状態ではないことを回路Bに通知するため、通信応答信号Ackに値0を出力する。
次に、回路Bの通信タイミングであるT9で、回路Bは、タイミングT7で回路Aが通信応答信号Ackに出力した値1を入力し、通信要求およびそのデータD1が受理されたと判断する。その結果、回路Bは、通信要求信号Reqに値0を出力することで、回路Aにさらなる通信要求がないことを通知する。
以上説明したように、本実施形態によれば、ハンドシェイク型の同期通信方式を用いて、回路Aから回路Bの方向と同様に、回路Bから回路Aの方向でデータを通信することができる。
以上に説明した通信が正しく動作するためには、実施の形態1と同様に、隣接する通信タイミングでセットアップタイム制約やホールドタイム制約を満足する必要がある。具体的には、下記の4つのタイミング制約を満足するようにタイミング設計する必要がある。
クロックAからクロックBへのホールドタイム制約として、回路Aがある送信タイミングで出力した信号を、回路Bはそれより以前の通信タイミングで必ず入力しない。例えば、回路AがタイミングT4で出力した信号を、回路BはタイミングT3で必ず入力しない(図7のH1)。
さらに、クロックAからクロックBへのセットアップ制約として、回路Aがある送信タイミングで出力した信号を、回路Bは次の通信タイミングで必ず入力する。例えば、回路AがタイミングT4で出力した信号を、回路BはタイミングT6で必ず入力する(図7のS1)。
さらに、クロックBからクロックAへのホールドタイム制約として、回路Bがある通信タイミングで出力した信号を、回路Aはそれより以前の受信通信タイミングで必ず入力しない。例えば、回路BがタイミングT6で出力した信号を、回路AはタイミングT5で必ず入力しない(図7のH2)。
さらに、クロックBからクロックAへのセットアップ制約として、回路Bがある通信タイミングで出力した信号を、回路Aは次の受信タイミングで必ず入力する。例えば、回路BがタイミングT6で出力した信号を、回路AはタイミングT8で必ず入力する(図7のS2)。
実施の形態1と同様に、本実施の形態2においても、回路Bの各通信タイミングに対して、回路Aの送信タイミングは1サイクル遅く、受信タイミングは1サイクル早いタイミングから選択されている。従って、ホールドタイム制約を満足するためにホールドタイム補償バッファを挿入する必要がない、あるいは挿入する量が少なくてよい。
その結果、ホールドタイム補償バッファの遅延ばらつきに影響されず、タイミング設計が容易になるという効果がある。さらに、ホールドタイム補償バッファの挿入により、レイアウト面積や電力が増加しない、あるいは増加が小さいという効果がある。
通信タイミング制御回路に関する説明.
次に、本発明の実施形態1及び2において用いられる通信タイミング制御回路50について図面を参照して説明する。
クロックの周波数比が1対整数や整数対1の場合は、通信タイミングが周期的であるため、通信タイミング信号をカウンタ回路により容易に生成することができる。一方、周波数比が任意の整数比の場合は、その周波数比に応じて通信タイミングが複雑に変わるので、本実施形態の送信タイミング信号13および受信タイミング信号14をカウンタ回路で生成することは困難である。
図8は、本発明の実施の形態における通信タイミング制御回路50の構成例である。通信タイミング制御回路50は、クロックAのタイミングで動作し、周波数比情報11、および位相関係信号12を参照して、送信タイミング信号13および受信タイミング信号14をクロックAのサイクル毎に生成する。上記周波数比情報11は、クロックAとクロックBの周波数比M:NのMの値を示す信号Mと、Nの値を示す信号Nから構成される。
通信タイミング制御回路50は、テーブル回路51、カウンタ回路52から構成される。カウンタ回路52は、クロックAのタイミングで動作し、周波数比情報11を構成する信号Mを参照して、クロックAとクロックBの位相関係が一巡するサイクル数を繰り返してカウントし、その値をカウンタ値55に出力する。
テーブル回路51は、複数のテーブルデータ56から構成され、周波数比、およびクロックAとクロックB間の相対的な位相関係ごとに、送信タイミング信号13および受信タイミング信号14の値をテーブル形式で保持する。本実施の形態では、周波数比は、信号Mおよび信号Nから構成される周波数比情報11で与えられる。クロックAとクロックB間の相対的な位相関係は、カウンタ値55で与えられる。すなわち、テーブル回路51は、入力する信号M、信号N、カウンタ値55を参照して、送信タイミング信号13および受信タイミング信号14をクロックAのサイクル毎に出力する。
次に図9を参照して、本実施の形態における通信タイミング制御回路50の動作について説明する。図9は、図5で示したクロックAとクロックBの周波数比が5:2である場合の、通信タイミング制御回路50の動作を示すタイミング図である。クロックA、位相関係信号12、カウンタ値55、テーブルデータ56が保持する値、送信タイミング信号13および受信タイミング信号14、クロックBを図示している。
位相関係信号12は、クロックAとクロックBの立ち上がりが一致するタイミング(タイミングT0、T0'、T0''、・・・)で値1、それ以外で値0になる信号であり、クロックAとクロックBの位相関係が一巡するタイミングを与える。位相関係信号12は、クロックAとクロックBを生成するクロック生成回路で容易に生成することができる。あるいは、位相比較回路によりクロックAとクロックBの位相を比較して生成しても良い。
カウンタ回路52は、位相関係信号12の値が1となるタイミングで値0となり、その後、クロックAとクロックBの位相関係が一巡する5サイクル分を繰り返してカウントする。その値をカウンタ値55として0〜4まで図示しており、タイミングT0〜T4、T0'〜T4'、・・・と対応している。すわなち、タイミングT0で値0、タイミングT1で値1、タイミングT4で値4となり、再びタイミングT0'で値0になる。すなわち、カウンタ回路52は、クロックAとクロックB間の相対的な位相関係を、カウンタ値55として出力する。
テーブルデータ56は、そのサイクルが送信タイミングである場合は値10、受信タイミングである場合は値01、いずれでもない場合は値00を保持している。テーブル回路51はその値を参照して、送信タイミング信号13および受信タイミング信号14として出力する。
具体的には、カウンタ値55が値0の場合に、テーブルデータ56が保持している値00を参照して、テーブル回路51は送信タイミング信号13に値0、受信タイミング信号14に値0を出力する。カウンタ値55が値1および値3の場合に、テーブルデータ56が保持している値10を参照して、テーブル回路51は送信タイミング信号13に値1、受信タイミング信号14に値0を出力する。カウンタ値55が値2および値4の場合に、テーブルデータ56が保持している値01を参照して、テーブル回路51は送信タイミング信号13に値0、受信タイミング信号14に値1を出力する。
図9では、クロックAとクロックBの周波数比が5:2である場合の動作例を示したが、その他の場合であっても、周波数比、およびクロックAとクロックB間の相対的な位相関係ごとに、テーブルデータ56の値を適切に設定することで、周波数比が任意の整数比であっても、送信タイミング信号13および受信タイミング信号14を適切に生成することができる。
具体的には、通信対象の回路(回路B)の各通信タイミングに対して、送信タイミング信号および受信タイミング信号を参照する回路(回路A)の送信タイミングを一つ、かつ通信対象の回路の各受信タイミングよりも遅いタイミングから選択し、受信タイミングを一つ、かつ通信対象の回路の各送信タイミングよりも早いタイミングから選択するように、テーブルデータ56の値を設定すればよい。
また、図9の例では、周波数比情報11を構成する信号M、および信号Nの値はそれぞれ一定であったが、テーブル回路51がそれらの値に対応するテーブルデータ56を保持する範囲内であれば、適宜動作中に変更することもできる。
また、本実施例では、周波数比情報11は、信号Mと信号Nから構成されるとしたが、クロックAとクロックBの周波数比を設定できるものであれば、別の形式であっても良い。
本発明における半導体装置の構成図である。 本発明における半導体装置の通信動作の例を示すタイミング図である。 本発明における半導体装置の通信動作の例を示すタイミング図である。 本発明における半導体装置の通信動作の例を示すタイミング図である。 本発明における半導体装置の通信動作の例を示すタイミング図である。 本発明における半導体装置の構成図である。 本発明における半導体装置の通信動作の例を示すタイミング図である。 本発明における通信タイミング制御回路の構成図である。 本発明における通信タイミング制御回路の動作を示すタイミング図である。 背景技術における半導体装置の構成図である。 背景技術における半導体装置の通信動作の例を示すタイミング図である。 背景技術における半導体装置の通信動作の例を示すタイミング図である。 背景技術における半導体装置の通信動作の例を示すタイミング図である。
符号の説明
11 周波数比情報
12 位相関係信号
13 送信タイミング信号
14 受信タイミング信号
50 通信タイミング制御回路
51 テーブル回路
52 カウンタ回路
55 カウンタ値
56 テーブルデータ
100 カウンタ回路
101 周波数比情報
102 通信タイミング信号
105A、105B、105C ホールドタイム補償バッファ

Claims (10)

  1. 第2のクロック信号の周波数のM/N倍(Nは正整数、MはNより大きい正整数)である第1のクロック信号に基づいて処理を行う第1の回路と、
    前記第2のクロック信号に基づいて処理を行う第2の回路と、
    前記第1の回路と前記第2の回路との間の通信動作において、前記第1の回路の送信のタイミングを制御する送信タイミング信号と、前記第1の回路の受信のタイミングを制御する受信タイミング信号とを生成する通信タイミング制御回路とを備え、
    前記通信タイミング制御回路は、前記第2の回路が行う一回の受信に対して、それよりも遅いタイミングで前記第1の回路が送信を一回行うように前記送信タイミング信号を生成し、前記第2の回路が行う一回の送信に対して、それよりも早いタイミングで前記第1の回路が受信を一回行うように前記受信タイミング信号を生成する半導体装置。
  2. 第2のクロック信号の周波数のM/N倍(Nは正整数、MはNより大きい正整数)である第1のクロック信号に基づいて処理を行う第1の回路と、
    前記第2のクロック信号に基づいて処理を行う第2の回路と、
    前記第1の回路と前記第2の回路との間の通信動作において、前記第1の回路の送信のタイミングを制御し、前記第2のクロック信号の各タイミングに対応する送信タイミングを有する送信タイミング信号と、前記第1の回路の受信のタイミングを制御し、前記第2のクロック信号の各タイミングに対応する受信タイミングを有する受信タイミング信号とを生成する通信タイミング制御回路とを備え、
    前記通信タイミング制御回路は、前記第2の回路が行う一回の受信のタイミングを決定する前記第2のクロック信号の第1のタイミングよりも遅い、当該第1のタイミングに対応する前記送信タイミング信号の送信タイミングに基づいて前記第1の回路が送信を一回行うように前記送信タイミング信号を生成し、前記第2の回路が行う一回の送信のタイミングを決定する前記第2のクロック信号の第2のタイミングよりも早い、当該第2のタイミングに対応する前記受信タイミング信号の受信タイミングに基づいて前記第1の回路が受信を一回行うように前記受信タイミング信号を生成する半導体装置。
  3. 前記通信タイミング制御回路は、前記第2の回路が行う一回の受信のタイミングと、その次に前記第2の回路が行う一回の受信のタイミングの間に、前記第1の回路の一回の送信のタイミングがあるように前記送信タイミング信号を生成し、前記第2の回路が行う一回の送信のタイミングと、その前に前記第2の回路が行う一回の送信のタイミングの間に、前記第1の回路の一回の受信のタイミングがあるように前記受信タイミング信号を生成する請求項1又は2に記載の半導体装置。
  4. 前記通信タイミング制御回路は、前記第1のクロック信号と前記第2のクロック信号の周波数の比を設定する周波数比情報と、前記第1のクロック信号と前記第2のクロック信号の位相関係を示す位相関係情報によって前記送信タイミング信号及び前記受信タイミング信号を決定し生成することを特徴とする請求項1〜3いずれか一項に記載の半導体装置。
  5. 前記第1の回路あるいは前記第2の回路のうちのいずれかのデータ送信側の回路は、通信要求があることを示す通信要求信号と、通信データを転送する通信データ信号をデータ受信側の回路に対して送信し、前記データ受信側の回路は、前記通信要求を受理したことを示す通信応答信号を、前記データ送信側の回路に対して送信することを特徴とする請求項1〜いずれか一項に記載の半導体装置。
  6. 前記通信タイミング制御回路は、前記第1のクロック信号のタイミングで、前記正整数Mまで繰り返しカウントして、前記第1のクロック信号と前記第2のクロック信号の相対的な位相を示すカウント値を生成し、このカウント値に基づいて前記送信タイミング信号および前記受信タイミング信号を生成することを特徴とする請求項1〜いずれか一項に記載の半導体装置。
  7. 前記通信タイミング制御回路は、少なくとも前記第1のクロック信号と前記第2のクロック信号の周波数の比を設定する周波数比情報と前記カウント値の組合せごとに、送信のタイミングであるか否かを示すデータと、受信のタイミングであるか否かを示すデータとを予めテーブル回路で保持し、入力されたこれら組合せに応じて前記テーブル回路から出力されたデータを前記送信タイミング信号および受信タイミング信号として出力することを特徴とする請求項に記載の半導体装置。
  8. 第2のクロック信号の周波数のM/N倍(Nは正整数、MはNより大きい正整数)である第1のクロック信号に基づいて処理を行う第1の回路と、前記第2のクロック信号に基づいて処理を行う第2の回路との間で通信を行う通信方法であって、
    前記第2の回路が行う一回の受信に対して、それよりも遅いタイミングで前記第1の回路が送信を一回行うように送信タイミング信号を生成し、前記第2の回路が行う一回の送信に対して、それよりも早いタイミングで前記第1の回路が受信を一回行うように受信タイミング信号を生成するステップと、
    前記第1の回路が、生成された前記送信タイミング信号及び前記受信タイミング信号が指定するタイミングによって、前記第2の回路に対して通信を実行するステップを備えた通信方法。
  9. 第2のクロック信号の周波数のM/N倍(Nは正整数、MはNより大きい正整数)である第1のクロック信号に基づいて処理を行う第1の回路と、前記第2のクロック信号に基づいて処理を行う第2の回路との間で通信を行う通信方法であって、
    前記第2の回路が行う一回の受信のタイミングを決定する前記第2のクロック信号の第1のタイミングよりも遅い、当該第1のタイミングに対応する送信タイミング信号の送信タイミングに基づいて前記第1の回路が送信を一回行うように送信タイミング信号を生成し、前記第2の回路が行う一回の送信のタイミングを決定する前記第2のクロック信号の第2のタイミングよりも早い、当該第2のタイミングに対応する受信タイミング信号の受信タイミングに基づいて前記第1の回路が受信を一回行うように受信タイミング信号を生成するステップと、
    前記第1の回路が、生成された前記送信タイミング信号及び前記受信タイミング信号が指定するタイミングによって、前記第2の回路に対して通信を実行するステップを備えた通信方法。
  10. 前記第2の回路が行う一回の受信のタイミングと、その次に前記第2の回路が行う一回の受信のタイミングの間に、前記第1の回路の一回の送信のタイミングがあるように前記送信タイミング信号を生成し、前記第2の回路が行う一回の送信のタイミングと、その前に前記第2の回路が行う一回の送信のタイミングの間に、前記第1の回路の一回の受信のタイミングがあるように前記受信タイミング信号を生成する請求項8又は9に記載の通信方法。
JP2008239682A 2008-09-18 2008-09-18 半導体装置及び通信方法 Active JP5315882B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008239682A JP5315882B2 (ja) 2008-09-18 2008-09-18 半導体装置及び通信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008239682A JP5315882B2 (ja) 2008-09-18 2008-09-18 半導体装置及び通信方法

Publications (2)

Publication Number Publication Date
JP2010074534A JP2010074534A (ja) 2010-04-02
JP5315882B2 true JP5315882B2 (ja) 2013-10-16

Family

ID=42205907

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008239682A Active JP5315882B2 (ja) 2008-09-18 2008-09-18 半導体装置及び通信方法

Country Status (1)

Country Link
JP (1) JP5315882B2 (ja)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69429614T2 (de) * 1994-05-10 2002-09-12 Intel Corp Verfahren und Anordnung zur synchronen Datenübertragung zwischen Digitalgeräten, deren Betriebsfrequenzen ein P/Q Integer-Frequenzverhältnis aufweisen
KR100385232B1 (ko) * 2000-08-07 2003-05-27 삼성전자주식회사 서로 다른 주파수를 가지는 클럭 신호들을 동기화시키는회로
JP2005321856A (ja) * 2004-05-06 2005-11-17 Renesas Technology Corp 半導体集積回路
US7702945B2 (en) * 2004-09-16 2010-04-20 Nec Corporation Semiconductor device and communication control method
JP4394620B2 (ja) * 2005-09-12 2010-01-06 Necアクセステクニカ株式会社 非同期ブロック間のハンドシェイク信号同期化回路およびそれの動作方法
JP2008041106A (ja) * 2007-09-10 2008-02-21 Fujitsu Ltd 半導体集積回路装置、クロック制御方法及びデータ転送制御方法

Also Published As

Publication number Publication date
JP2010074534A (ja) 2010-04-02

Similar Documents

Publication Publication Date Title
JP4998699B2 (ja) 半導体装置、及び通信制御方法
US20170041086A1 (en) Data transmission apparatus for changing clock signal at runtime and data interface system including the same
US6424688B1 (en) Method to transfer data in a system with multiple clock domains using clock skipping techniques
US20100322365A1 (en) System and method for synchronizing multi-clock domains
TWI727075B (zh) 半導體裝置
US8132036B2 (en) Reducing latency in data transfer between asynchronous clock domains
JP5417688B2 (ja) 半導体集積回路
US8782458B2 (en) System and method of data communications between electronic devices
US9584305B2 (en) Deskew FIFO buffer with simplified initialization
KR100656462B1 (ko) 반도체 메모리 장치의 데이터 출력 클럭 생성 회로 및 방법
JP5315882B2 (ja) 半導体装置及び通信方法
JP5413367B2 (ja) 半導体装置及び通信方法
WO2009069094A1 (en) Method and device for routing data between components
JP6512640B1 (ja) 非同期fifo回路
US10429881B2 (en) Semiconductor device for stopping an oscillating clock signal from being provided to an IP block, a semiconductor system having the semiconductor device, and a method of operating the semiconductor device
JP5378765B2 (ja) データ転送システム
JP2005109955A (ja) 非同期通信回路
CN108268087B (zh) 半导体装置、半导体系统和操作半导体装置的方法
JP2009503640A (ja) 非同期データバッファ
KR102568225B1 (ko) 반도체 장치, 반도체 시스템 및 반도체 장치의 동작 방법
US7376855B1 (en) Fully stable clock domain synchronization technique for input/output data transmission
KR20200143910A (ko) 이미지 장치 및 그 구동 방법
JP2007164345A (ja) 半導体集積回路の設計方法および半導体集積回路
JP2005094597A (ja) 遅延制御装置
JP4741632B2 (ja) 半導体集積回路装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110810

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130117

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130402

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130524

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130611

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130624

R150 Certificate of patent or registration of utility model

Ref document number: 5315882

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150