説明

半導体集積回路および半導体集積回路設計方法

【課題】設計期間を短縮化でき、半導体集積回路内の電源ノイズおよび製品のEMI問題を軽減できること。
【解決手段】階層化されたブロック間のインターフェースを、クロックとデータを同時に送るソースシンクロナスタイプにする。受信側ブロック22の受信器24にメソクロナスタイプの同期化回路を構成するクロック位相検出器27と、VDL28を備え、ブロック間インターフェースのデータをセットアップ/ホールド違反なしに受信し、受信側ブロック22の内部回路に転送する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、大規模半導体集積回路の設計期間の短縮と、電源電圧が低下する将来の半導体集積回路において問題となる大規模半導体集積回路内の電源ノイズを低減でき、信頼性の向上とEMI低減が図れる半導体集積回路および半導体集積回路設計方法に関する。
【背景技術】
【0002】
従来、半導体集積回路の設計は以下の手法により行っていた。
1)大規模な半導体集積回路を設計する場合、既存のIPマクロ(例えば他社から購入したブラックボックスになっているマクロブロック)を組み込む場合など、半導体集積回路を階層化して下層ブロックと、その下層ブロックを結線する上層のTOPレベルに分けて設計することが普通である。この場合、各下層ブロック内のFFに到達するクロック遅延を可能な限り等しくし、半導体集積回路内の全FF間のクロックスキューをできるだけ小さくすることが行われている。半導体集積回路全体のクロックスキューをできるだけ小さく設計するために、まずブロック内の物理設計を行い、ブロック内部のクロック遅延を決定し、それをTOPレベルのクロック配線遅延にフィードバックするといった手法が取られている(例えば、下記特許文献1参照。)。
【0003】
2)一方、半導体集積回路内のクロックサイクル内の消費電力の解析により、クロック系に含まれる数多くの消費電力の大きいクロックドライバーと、クロックが到達した直後に動作するFFの消費電力によって、チップ全体の消費電力の1/3以上が消費されており、その後次第に消費電力が低下し、クロックサイクルの後半は殆ど消費電力がないという現象があることがわかっている。FFは、クロックが入る度に電力を消費しており、またFF間の論理パスの遅延の分布を取ると、遅延の短いもの程多く、クロックサイクルの半分を超えるような遅延時間の比較的長いものはかなり少数なので、このような消費電力パターンになる。
【0004】
【特許文献1】特開平5−61564号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、従来技術による上記1)の階層化設計の場合、TOPレベルを通過するブロック間配線のタイミング収束が最も困難である。例えばブロック間の距離が遠く、論理設計者の想定外の配線遅延がかかってしまう場合など、中継FFの追加などの論理設計変更か、ブロックの配置を変更するといったFloor−Plan変更の必要が発生し、論理設計/検証、あるいは物理設計の期間が長期化してしまうといった問題がある。
【0006】
また、上記2)による結果、大規模な半導体集積回路内の各FFのクロック入力スキューをできるだけ小さくした場合、クロックが多数のFFに同時に到達することになり、その近辺の時間で半導体集積回路内の消費電力が極大になり、次第に消費電力が低下し、次のクロックエッジ到着の少し前には消費電力は極小になる。それが大きな電源電圧の揺れ(電源ノイズ)となり、誤動作やEMI(ELECTROMAGNETIC INTERFERENCE)の最大の発生源になっている。
【0007】
これらの問題を防ぐために、電源ノイズに対しては設計時に電源ノイズに対応できるような十分な電源マージンを加味する必要があり、そのために物理設計期間の長期化、また半導体集積回路内にコンデンサを搭載することによる半導体集積回路サイズアップによる半導体集積回路のコストアップという問題が生じる。さらに、EMIに関しては、パッケージ/プリント基板に多量のコンデンサを搭載して問題を解決しようとすると、製品のコストアップを招くという問題が生じる。
【0008】
この発明は、上述した従来技術による問題点を解消するため、設計期間を短縮化でき、半導体集積回路内の電源ノイズおよび製品のEMI問題を軽減できる半導体集積回路および半導体集積回路設計方法を提供することを目的とする。
【課題を解決するための手段】
【0009】
上述した課題を解決し、目的を達成するため、この発明にかかる半導体集積回路は、階層化されたブロック間のインターフェースを、クロックとデータを同時に送るソースシンクロナスタイプにしたことを特徴とする。
【0010】
また、受信側の前記ブロックにメソクロナスタイプの同期化回路を備え、前記インターフェースのデータをセットアップ/ホールド違反なしに受信し、受信側の前記ブロックの内部回路に転送することを特徴とする。
【0011】
また、前記ブロック間の前記インターフェースに、前記クロックに同期したDDR(Double−Data−Rate)、あるいはQDR(Quad−Data−Rate)を用い、当該ブロック間インターフェース信号数を少なくしたことを特徴とする。
【0012】
また、前記ブロックをそれぞれ独立のクロックで動作させ、当該ブロックにそれぞれ位相の異なるクロックを与える遅延手段を備え、回路全体の1クロック内の消費電力の差を平坦化させることを特徴とする。
【0013】
また、この発明にかかる半導体集積回路設計方法は、階層化されたブロック間のインターフェースを、クロックとデータを同時に送るソースシンクロナスタイプとして設計することを特徴とする。
【0014】
上記構成によれば、階層化設計において下位ブロック間のインターフェースタイミング制約を取り去ることができ、設計期間の短期化が可能となる。また、クロックの位相をブロック毎に意図的に変更できる。
【発明の効果】
【0015】
本発明にかかる半導体集積回路および半導体集積回路の設計方法によれば、ブロック間インターフェース信号を1サイクル以内で転送するという制約を外すことができるため、回路設計期間を短縮化できるという効果を奏する。また、意図的に各ブロック内FFが動作する時間をずらすことができるため、半導体集積回路全体としてクロックサイクル内の消費電力の極大/極小を平準化でき、半導体集積回路内電源ノイズ問題、製品化時におけるEMI問題を軽減できるという効果を奏する。
【発明を実施するための最良の形態】
【0016】
以下に添付図面を参照して、この発明にかかる半導体集積回路および半導体集積回路設計方法の好適な実施の形態を詳細に説明する。
【0017】
(発明の概要)
半導体集積回路は、複数の下位ブロックとそれら複数の下位ブロックを包含する上位レベルのブロックとにより構成し、下位ブロック間のインターフェース信号をソースシンクロナスタイプとして設計する。すなわち、送信側ブロックは送信側ブロックのクロックと共に制御信号/データを送り、受信側ブロックは受信したクロックで一旦受信データをラッチしてから受信側ブロック内部クロックの位相をあわせてブロック内部に送出するための受信回路を持つ。
【0018】
加えて、初期化中にトレーニングパターンを使うことにより、クロックなしで受信側下位ブロックがブロック間インターフェース信号の変化点からクロックを抽出し(CDR:Clock−Data−Recovery)、前述のソースシンクロナス転送時と同様にデータ転送を行う。また、半導体集積回路全体からみて各下位ブロック内FFにクロックが到達する時間をずらし、下位ブロック単位でクロック遅延の調整を可能とし、半導体集積回路の電源ノイズ/EMIを削減させる。
【0019】
(実施の形態)
(半導体集積回路の構成)
図1は、本発明の実施の形態による半導体集積回路の構成例を示す図である。図1に示す半導体集積回路10は、内部に複数の下位ブロックBLK1〜BLK5(11−1〜11−5)とクロック生成回路14を含み、クロック生成回路14は、クロックを各下位ブロック(11−1〜11−5)に配っている。各下位ブロック(11−1〜11−5)は、内部にコア論理(12−1〜12−5)と、クロックツリー(13−1〜13−5)を含んでおり、各クロックツリー(13−1〜13−5)は、クロック生成回路14から伝達されたクロックを、各ブロック内のコア論理(12−1〜12−5)内に存在するFF群(図1中では省略)に対して低スキューで伝達する機能を有する。
【0020】
また、各ブロックのコア論理(12−1〜12−5)は、ソースシンクロナス送信器(16−1−5,16−5−1,16−5−3,16−3−5)、ソースシンクロナス受信器(15−1−5,15−5−1,15−5−3,15−3−5)以外の全ての論理を含み、従来の階層化設計の下位ブロックの概念に相当する。
【0021】
BLK1(11−1),BLK3(11−3),BLK5(11−5)には、ソースシンクロナス送信器(16−1−5,16−5−1,16−5−3,16−3−5)と、ソースシンクロナス受信器(15−1−5,15−5−1,15−5−3,15−3−5)を含み、これらの3つの下位ブロック(BLK1(11−1),BLK3(11−3),BLK5(11−5))間は、ブロック間クロックとデータ/制御信号(18−15,18−35)が配線されている。BLK2(11−2)と、BLK3(11−3)の間にはデータ/制御信号のみが配線されている。
【0022】
図1に示す例では、BLK1(11−1)と、BLK5(11−5)間、BLK3(11−3)とBLK5(11−5)間、およびBLK2(11−2)とBLK3(11−3)のみブロック間信号が限定されて描かれているが、実際には他のブロック間ともブロック間信号があり、それらは図1では省略されている。
【0023】
BLK2(11−2)とBLK3(11−3)は、同じクロックがクロック生成回路14から供給され、これらの2つの下位ブロックは同期して動作しており、そのため両下位ブロック間のインターフェースは、従来型の同期ブロック間インターフェース17となっている。一方、BLK1(11−1)と、BLK5(11−5)、およびBLK3(11−3)とBLK5(11−5)は、クロック生成回路14から個別のクロックが供給されており、これらのクロックは同じ周波数ではあるが異なる位相を持つメソクロナスタイプとなっている。
【0024】
これらソースシンクロナス送信器(16−1−5,16−5−1,16−5−3,16−3−5)と、ソースシンクロナス受信器(15−1−5,15−5−1,15−5−3,15−3−5)を持つ下位ブロック(11−1,11−3,11−5)へのクロックの位相は全くの任意でよく、各下位ブロック(11−1,11−3,11−5)内のFFへのクロック到着時間を大きくずらすことにより、半導体集積回路10のクロックサイクルレベルでの消費電力を分散させることができ、半導体集積回路10を構成する各CMOSトランジスタ素子のスイッチング動作を分散/均一化することにより電源安定用コンデンサに頼らなくとも半導体集積回路10の消費電力の均一化が可能になり電源ノイズを削減できる。
【0025】
(送信器/受信器の構成例1…送信クロックが反転の場合)
以下、図1に示した半導体集積回路に設けられる送信器および受信器の各構成例について説明する。図2は、本発明の送信器/受信器の一例を示す構成図である。図2においては、送信クロックを反転する場合(データが安定してからクロックの立ち上がりエッジが受信側ブロックに到着する)の例を示してある。
【0026】
送信側ブロック21は、送信器23を含み、送信器23は、その中に送信側FF群(ポジティブエッジのFF群)25と、BLK内クロックを反転して出力するインバータ26を含む。この構造により、データの変化点におけるクロックはダウンエッジとなり、受信側ブロック22が送信側ブロック21からブロック間クロックとブロック間データを受信した時点では、クロックのポジティブエッジではデータは安定している。よって受信FF群1(29−1)では、送信側ブロック21から伝播してくるブロック間クロックを使って、送信側ブロック21から伝播してくるブロック間データをラッチできる。
【0027】
受信側ブロック22は、受信器24を含み、受信器24は、その中に同期化回路を構成するクロック位相検出器27と、その制御下にあるVariable−Delay−Line(VDL)28からなる。クロック位相検出器27は、送信側ブロック21が送ってきたブロック間クロックと、受信側ブロック22内クロックの位相を検出し、受信FF群2(29−2)がセットアップ/ホールドタイミング違反を起こさないようなクロックをVDL28で作成させ、受信FF群2(29−2)で一度ラッチしたあと、受信側ブロック22内クロックを使用する受信FF群3(29−3)にデータを渡す。
【0028】
(送信器/受信器の構成例2…送信クロックを反転させない場合)
図3は、本発明の送信器/受信器の一例を示す構成図である。図3の構成は、図2とほぼ同じであるが、送信側ブロック31が出力するクロックのポジティブエッジがデータの変化点と同じ(送信クロックを反転させない)例である。
【0029】
送信側ブロック31は、送信側FF群35と、バッファ36を含む。送信器33内のクロックは、バッファ36を介して受信側ブロック32に出力されている。受信側ブロック32内の受信器34においては、まず入力されたブロック間クロックを受信側ブロック32内クロックとクロック位相検出器37によってその位相関係を検出し、VDL38によって受信FF群1(39−1)用のクロックと、受信FF群2(39−2)用のクロックが作られる。受信FF群1(39−1)用のクロックとしては、通常ブロック間クロックとして受信したクロックを反転したものを与える。また、受信FF群2(39−2)用のクロックとしては、受信FF群1(39−1)と、BLK内クロックを使用する受信FF群3(39−3)の間でセットアップ/ホールド違反が出ないタイミングになるように調整されたクロックを与える。これにより、受信側ブロック32では、セットアップ/ホールド違反なしに受信でき、この受信側ブロック32の内部回路に転送することができる。
【0030】
(受信器の構成例3…ブロック間のクロック位相差がわかっている場合1)
図4は、本発明の受信器の一例を示す構成図である。上記の図2、図3の構成例は、送信側ブロックと、受信側ブロック間でクロックの位相が全く保証されていない場合の回路であったことに対して、図4の構成は、送信側ブロック(省略)と、受信側ブロック41の2つのクロックの位相関係がある程度限定されてわかっている場合の例である。
【0031】
図2、図3の構成では受信側ブロックが3段のFF群でデータを同期化していたのに対して、図4の構成では、クロック位相検出器43と、VDL44により、送信側ブロックからのクロックと、受信側ブロック41内クロックの相関関係を物理設計時にある範囲に絞り込むことによって、受信器42内の受信FF群1(45−1)と、受信FF群2(45−2)の2段のFFでデータを受領できるようになっている。上記の「送信側ブロックからのクロックと受信側ブロック41内クロックの相関関係を物理設計時にある範囲に絞り込む」ことによる、クロックの調整の範囲は、完全同期の場合に比べて格段に自由度が高く容易に行える。
【0032】
(受信器の構成例4…ブロック間のクロック位相差がわかっている場合2)
図5は、本発明の受信器の一例を示す構成図である。図5の構成も、送信側ブロック(省略)と、受信側ブロック51の2つのクロックの位相関係がある程度限定されてわかっている場合の例である。受信側ブロック51内のクロックは、受信FF群2(55−2)と、クロック位相検出器53に供給される。図4が受信FF群1(45−1)に与えるクロックを受信側ブロック41のクロックから生成していたのに対して、図5の構成では、送信側ブロックからのCLKを受信器52内のVDL54で遅らせて受信FF群1(55−1)用のクロックを作っている点が異なる。
【0033】
(送信器/受信器の構成例5…DDRを用いる場合1)
図6−1は、本発明の送信器/受信器の一例を示す構成図である。図6−1に示す構成では、上述した構成と同様にブロック間インターフェースとしてソースシンクロナスインターフェースを使うが、ブロック間クロックのポジティブエッジとネガティブエッジの両エッジを使って転送を行うDDR(Double−Data−Rate)を使う場合の例である。
【0034】
また、図6−2は、図6−1の構成によるデータ転送のタイムチャートである。送信側ブロック61におけるパラレルデータのD0とD1は、ブロック間インターフェース60部分では倍速でシリアルかつクロックのUp/Downエッジと同期して転送され、受信側ブロック62で再度パラレル化されるという送信/受信側ブロック論理例となっている。
【0035】
図6−1における送信側ブロック61中の送信器63は、マルチプレクサ66−2を有し、ブロック内クロックを使用して送信側FF群even用(65−0)と、送信側FF群odd用(65−1)からのデータを選択し、クロックのUp/Downに同期したデータを作り、受信側ブロック62に対して送出する。その際、送信側ブロック61内のクロックもバッファ66−1を経て同時に送られる。これによって、ブロック間インターフェース60の部分は、図6−2のタイムチャートに示すように、クロックの両エッジに同期した倍速データになる。
【0036】
受信側ブロック62内の受信器64にはクロック位相検出器67と、VDL68の他に、受信FF群のeven用の3セット(69−0−1,69−0−2,69−0−3)と、受信FF群のodd用の4セット(69−1−1,69−1−2,69−1−3,69−1−4)がある。受信側ブロック62に到達したブロック間クロックは、VDL68と、クロック位相検出器67に伝達され、VDL68は受信FF群even3(69−0−3)と受信FF群odd4(69−1−4)以外のFF群(69−0−1,69−0−2,69−1−1,69−1−2,69−1−3)のクロックを作成する。
【0037】
受信FF群even1(69−0−1)は受信したブロック間クロックを90°遅延させたクロックを、また、受信FF群odd1(69−1−1)はさらにそれを反転させたクロックを使う。受信FF群odd2(69−1−2)は、180°ずれているデータをeven側と同じクロックを使ってeven側クロックに同期させるために使われる。その後の受信FF群even2(69−0−2)、受信FF群even3(69−0−3),受信FF群odd3(69−1−3),受信FF群odd4(69−1−4)は、図3の受信FF群2(39−2)と受信FF群3(39−3)と機能的に同じであり、受信側ブロック62のクロックに位相を合わせるために使われている。
【0038】
(送信器/受信器の構成例6…DDRを用いる場合2)
図7は、本発明の送信器/受信器の一例を示す構成図である。図7に示す構成は、図6−1と同じDDRを使うブロック間インターフェースであり、図6−1と同じ構成部には同じ符号を付してある。図7において、図6−1と異なる点は、送信側ブロック71の送信器73には、送出クロック90°位相シフター76−1が設けられており、出力するクロックがすでに90°位相がずれているため、ブロック間インターフェース60上のデータウィンドウの中心にブロック間クロックのUp/Downのエッジがくることである。そのため、受信側ブロック72内の受信器74では、受信したブロック間クロックをそのまま受信FF群even1(69−0−1)に使用しており、さらに受信したブロック間クロックを反転したクロックを受信FF群odd1(69−1−1)のクロックとして使用している。図6−1と、図7の構成では、このクロック構造だけが異なる。
【0039】
(送信器/受信器の構成例7…QDRを用いる場合)
図8−1は、本発明の送信器/受信器の一例を示す構成図である。また、図8−2は、図8−1の構成によるデータ転送のタイムチャートである。図8−1に示す構成は、1クロックで4つ分のデータを送るQuad−Data−Rate(QDR)の場合の例である。送信側ブロック81は、送信器83を有し、その中には送信側FF群0〜3(85−0〜85−3)が設けられ、その出力先に4:1のマルチプレクサ86−2が設けられる。このマルチプレクサ86−2は、マルチプレクサ用選択信号生成回路86−3によって制御されている。
【0040】
マルチプレクサ用選択信号生成回路86−3は、送信側ブロック81のクロックの4倍スピードで0→1→2→3→0といったサイクリックな選択信号をマルチプレクサ86−2に伝え、4ビットの入力を4倍スピードの1ビットにシリアライズする。この4倍スピードのサイクリックな選択信号は、マルチプレクサ用選択信号生成回路86−3内で4倍のクロックをベースに作ってもよいし、あるいは外部からマルチプレクサ用選択信号生成回路86−3に4倍クロックを入力してもよい。ただし、D0が送出クロックの立ち上がりと同期し、ブロック間インターフェース80上ではブロック間クロックの立ち上がりがD0であることを示さねばならない。
【0041】
受信側ブロック82の構造については、基本的には図6−1および図7に示したDDRの構成例と同じであるが、図8−1の構成例では、受信器84に設けられた受信用クロック/ラッチイネーブル生成回路87−2が初段の受信FF群(89−0−0,89−1−0,89−2−0,89−3−0)への4倍クロックとイネーブル信号を生成している。送信側ブロック81のマルチプレクサ用選択信号生成回路86−3と同様に、受信用クロック/ラッチイネーブル生成回路87−2が4倍のクロックとその周波数で動作するラッチイネーブル信号を内部で作ってもよいし、外部から基準となる4倍のクロックをもらってもよい。
【0042】
そして、受信用クロック/ラッチイネーブル生成回路87−2は、ブロック間クロックの位相情報を元に、4倍速のデータをうまく受けられる4倍のクロックと、ブロック間クロックの立ち上がり時に転送されてくるデータをD0として、さらに次の4倍クロックでD1、その次がD2と、4倍速で送られてくるデータを受領できるラッチイネーブルを作成する機能を有する。初段の受信FF群89−0−0,89−1−0,89−2−0,89−3−0)にD0からD3までが全て格納されたサイクルで、次段のFF群(89−0−1,89−1−1,89−2−1,89−3−1)にクロックを与え、4ビットのデータをパラレル化された1クロックのデータとして取り込む。
【0043】
その後、受信側ブロック82のクロックに同期させて受信側ブロック82内にデータを送り出す。ここでも、通信を行う送信側ブロック81と、受信側ブロック82のクロックが全くの自由な位相関係を保てるようにするために、3段目のFF群(89−0−2,89−1−2,89−2−2,89−3−2)と、4段目のFF群(89−0−3,89−1−3,89−2−3,89−3−3)を設けてある。
【0044】
以上のように、ブロック間インターフェースに、クロックに同期したDDR、あるいはQDRを用いることにより、ブロック間インターフェースの信号数を少なくすることができる。
【0045】
(送信器/受信器の構成例8…CDRを用いる場合)
図9は、本発明の送信器/受信器の一例を示す構成図である。図9に示す構成は、上述したようなクロックとデータを同時に送信するソースシンクロナスとは異なるクロックデータリカバリ(CDR)の例である。QDRよりさらに高速にデータを送りたい場合などは、回路的にクロック信号とデータ信号の関係を正しく保つことが難しくなる。そこで、データの中にクロック信号を埋め込むクロックデータリカバリの手法が用いられる。
【0046】
以下の例では、QDR相当の4倍速のデータを受領する場合のCDR回路の例を説明するが、当然、より早いデータレートでも対応可能である。シリアル化されたデータが受信器90に入ってくると、複数の異なったラッチタイミングを持つFF群(91−0〜91−8)でデータを取り込む。この複数の異なったラッチタイミングは、最適CLK生成回路92によってタイミングの異なるクロックが供給されることによって達成される。この例では、1サイクルの1/8毎ずれているクロックを供給している。
【0047】
入力されたData_inがこの複数のFFでラッチされるので、Data_inが変化すると、いずれかのFF群(91−0〜91−8)のどこかで変化が観測される。その変化を観測するのが入力データ位相検出用エッジ検出回路93である。この入力データ位相検出用エッジ検出回路93内のEOR94−0〜94−7によって変化点を検出し、ヒステリシスを持ったエッジ検出回路95でその変化点の場所を記憶する。ヒステリシスを持つ理由は、検出された変化点が頻繁に変動することを防ぐためである。
【0048】
図9の例において、FF群91−2と、91−3との間で変化が観測されたとすると、入力データ位相検出用エッジ検出回路93は、そこから遠いFF91−8が最も安定している場所であると最適CLK生成回路92に伝達し、最適CLK生成回路92は、FF91−8の出力が選択されるようにセレクタ96に指示を与える。
【0049】
このあとは、図8の説明とほぼ同じ動作により、最適CLK生成回路92が4倍のクロックを作り、それに対応するラッチイネーブルを生成することにより、初段のFF群(99−0−0,99−0−1,99−0−2,99−0−3)にデータが取り込まれる。これら4つの初段FF群(99−0−0,99−0−1,99−0−2,99−0−3)にデータが格納された時点で、次段のFF群(99−1−0,99−1−1,99−1−2,99−1−3)にデータが転送され、さらに受信側クロックに同期するためにさらに3段目のFF群(99−2−0,99−2−1,99−2−2,99−2−3)と、4段目のFF群(99−3−0,99−3−1,99−3−2,99−3−3)を経て、受信側ブロック内にデータが送られる。ただし、DDR/QDRの場合と異なり、シリアライズされたデータのどれがパラレルデータ時の先頭にあたるかが上記回路だけではわからないため、通常はトレーニングパターンなどを使ってその検出を行うようになっている(具体的な回路は省略する)。
【0050】
以上のように、CDR方式によれば、DDRやQDRに比して、よりブロック間インターフェース信号を少なくすることができる。
【0051】
(受信器の構成例9…受信データビット間のクロックサイクルずれを解消する例)
図10は、本発明の受信器の一例を示す構成図である。半導体集積回路内でソースシンクロナスのインターフェースを作る場合に、できるだけクロックとデータを並べて同じドライブ能力、同じ配線長/配線層とし、その伝播遅延誤差を小さくすることが行われている。しかし、それができず、ビットによってタイミングずれが発生してしまう場合に、そのずれを解消する回路の例である。受信側ブロック100には、上記の各構成例として説明したいずれかの受信器101が配置される。そして、図10に示すように、受信側ブロック100内には、受信器101のすぐ内側にビットアライメントブロック102を追加する。
【0052】
このビットアライメントブロック102は、トレーニングモード(training_mode)を用いる。このため、送信側ブロックには、training_mode中においては全出力データビットがHighになる1サイクルと、7サイクルの間全出力データビットがLowになる機能を付加する。受信側ブロック100では、受信器101から出力された受信データをビットアライメント制御ブロック103に取り込み、ビットずれがあるかないかを検出する。そして、ビットアライメント制御ブロック103は、1ビットずれが検出された場合には、早く到着したビットはFF(104−0〜104−3)に一度取り込んで1サイクル遅らせ、次サイクルに到着したデータは直接出力するようにマルチプレクサ(105−0〜105−3)をコントロールする。これによって、ビットずれのアライメントを取ることができる。ビットアライメント制御ブロック103のブロック内に記載したサンプルコードは、この回路の制御論理例(制御ソフトウェア)である。上記構成によれば、トレーニングパターンを使い、ビットずれを自動的に修正することができる。
【0053】
以上説明した各構成例によれば、半導体集積回路を階層化設計する場合に、各下位ブロック内にメソクロナスタイプ(周波数は同じで、位相のみが不明の場合)のソースシンクロナス受信回路を設置し、送信側下位ブロックは、自クロックと共にデータ/制御信号を送出し、受信側下位ブロックはメソクロナスタイプのソースシンクロナス受信回路でこれらクロック/データ/制御信号を受信する構成とした。これにより、各下位ブロック単位にタイミング設計を独立に終了でき、下位ブロックを包含する上位ブロックは各下位ブロックのタイミングを気にすることなくブロック間のインターフェース信号群の送信クロックとデータ/制御信号の相対遅延(すなわちソースクロックとデータ/制御信号間のSkew)のみをある一定の範囲に入るように設計しさえすれば上位ブロックの設計を終了でき、半導体集積回路全体は上位ブロックに下位ブロックをはめ込めば設計が終了でき、下位ブロックと上位ブロックを完全に別に設計することにより設計期間の短縮が可能になる。
【0054】
(半導体集積回路内のブロック毎のクロックの制御例1)
図11は、本発明の半導体集積回路内のブロック毎にクロックを制御する構成図である。上述した各構成により、半導体集積回路111の下位ブロックであるBLK0〜BLK9(116−0〜116−9)のクロックを任意にずらせるようになった場合に、どのようにクロックをずらすかを図11に示す。クロックに任意に遅延を与える方法としては、クロック生成回路112の中のPLL114や、DLL/VDL115によって意図的な遅延を付加させる。あるいは、クロック生成回路112の内部に遅延素子113−1、あるいは下位ブロックBLK1(116−1)の上位ブロックとして遅延素子113−2を配置する。
【0055】
(半導体集積回路内のブロック毎のクロックの制御例2)
図12は、本発明の半導体集積回路内のブロック毎にクロックを制御する構成図である。この図12の構成では、下位ブロックのクロック制御方法例と電源ノイズ削減においてインテリジェンス機能を持たせて行う場合の例である。半導体集積回路121内には、複数の電源ノイズ測定回路1〜5(125−1〜125−5)を配置する。そして、クロック生成回路122内のVDL123−1〜123−4によって遅延をつけたクロックで複数の下位ブロックBLK1〜BLK4(126−1〜126−4)を動作させたときに、電源ノイズ測定回路1〜5(125−1〜125−5)によって検出される電源ノイズが小さくなるように、クロック遅延制御回路124でVDL123−1〜123−4を制御する。
【0056】
上記制御例1、2の構成によれば、上位ブロックの下位ブロックへのクロック配線時において、各下位ブロックに与えるクロックに意図的に異なるクロック遅延を与え、各下位ブロック内のFFが別のタイミングで動作させることにより、半導体集積回路全体としてのFFの動作時期をずらすことができる。これにより、消費電力極大時と極小時の差を全ての半導体集積回路内のFFが全て同時に動作する場合に比較して平坦化/削減できるようになる。同時に、半導体集積回路の電源ノイズの低下とEMI低減が可能になるため、従来必要としていた電源ピン数とオンチップコンデンサ分の面積が削減でき、半導体集積回路のサイズを小さくすることができ、半導体集積回路のコストダウンが可能になる。さらに、従来半導体集積回路が搭載されていたパッケージ/プリント基板上に実装されていた電源ノイズ/EMI対策用の外付けのバイパスコンデンサの数も削減できるため、パッケージ/プリント板モジュールのコスト削減も可能となる。
【0057】
以上説明した半導体集積回路の構成は、この半導体集積回路の設計時に決定することができる。この半導体集積回路の設計にかかる方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な伝送媒体であってもよい。
【0058】
(付記1)階層化されたブロック間のインターフェースを、クロックとデータを同時に送るソースシンクロナスタイプにしたことを特徴とする半導体集積回路。
【0059】
(付記2)受信側の前記ブロックにメソクロナスタイプの同期化回路を備え、前記インターフェースのデータをセットアップ/ホールド違反なしに受信し、受信側の前記ブロックの内部回路に転送することを特徴とする付記1に記載の半導体集積回路。
【0060】
(付記3)前記ブロック間の前記インターフェースに、前記クロックに同期したDDR(Double−Data−Rate)、あるいはQDR(Quad−Data−Rate)を用い、当該ブロック間インターフェース信号数を少なくしたことを特徴とする付記1に記載の半導体集積回路。
【0061】
(付記4)送信側の前記ブロックと、受信側の前記ブロックをメソクロナスタイプとし、クロックラインを使わずに前記データにクロックを埋め込むCDR(Clock−Data−Recovery)方式を用い、ブロック間インターフェース信号を少なくしたことを特徴とする付記1に記載の半導体集積回路。
【0062】
(付記5)前記ブロック間のインターフェースとして高速なソースシンクロナスインターフェースを用い、
受信側の前記ブロックには、所定のトレーニングパターンによりビットずれを修正するビットアライメント手段を備えたことを特徴とする付記1に記載の半導体集積回路。
【0063】
(付記6)前記ブロックをそれぞれ独立のクロックで動作させ、当該ブロックにそれぞれ位相の異なるクロックを与える遅延手段を備え、回路全体の1クロック内の消費電力の差を平坦化させることを特徴とする付記1〜5のいずれか一つに記載の半導体集積回路。
【0064】
(付記7)階層化されたブロック間のインターフェースを、クロックとデータを同時に送るソースシンクロナスタイプとして設計することを特徴とする半導体集積回路設計方法。
【産業上の利用可能性】
【0065】
以上のように、本発明にかかる半導体集積回路および半導体集積回路設計方法は、多数のFFを用いた大規模な集積回路におけるブロック間のタイミング収束に有用であり、特に、多数のFFを用いたLSI設計に適している。
【図面の簡単な説明】
【0066】
【図1】本発明の実施の形態による半導体集積回路の構成例を示す図である。
【図2】本発明の送信器/受信器の一例を示す構成図である。
【図3】本発明の送信器/受信器の一例を示す構成図である。
【図4】本発明の受信器の一例を示す構成図である。
【図5】本発明の受信器の一例を示す構成図である。
【図6−1】本発明の送信器/受信器の一例を示す構成図である。
【図6−2】図6−1の構成によるデータ転送のタイムチャートである。
【図7】本発明の送信器/受信器の一例を示す構成図である。
【図8−1】本発明の送信器/受信器の一例を示す構成図である。
【図8−2】図8−1の構成によるデータ転送のタイムチャートである。
【図9】本発明の送信器/受信器の一例を示す構成図である。
【図10】本発明の受信器の一例を示す構成図である。
【図11】本発明の半導体集積回路内のブロック毎にクロックを制御する構成図である。
【図12】本発明の半導体集積回路内のブロック毎にクロックを制御する構成図である。
【符号の説明】
【0067】
10 半導体集積回路
11−1〜11−5 下位ブロック(BLK1〜BLK5)
12−1〜12−5 コア論理
13−1〜13−5 クロックツリー
14 クロック生成回路
15−1−5,15−5−1,15−5−3,15−3−5 ソースシンクロナス受信器
16−1−5,16−5−1,16−5−3,16−3−5 ソースシンクロナス送信器
17 同期ブロック間インターフェース

【特許請求の範囲】
【請求項1】
階層化されたブロック間のインターフェースを、クロックとデータを同時に送るソースシンクロナスタイプにしたことを特徴とする半導体集積回路。
【請求項2】
受信側の前記ブロックにメソクロナスタイプの同期化回路を備え、前記インターフェースのデータをセットアップ/ホールド違反なしに受信し、受信側の前記ブロックの内部回路に転送することを特徴とする請求項1に記載の半導体集積回路。
【請求項3】
前記ブロック間の前記インターフェースに、前記クロックに同期したDDR、あるいはQDRを用い、当該ブロック間インターフェース信号数を少なくしたことを特徴とする請求項1に記載の半導体集積回路。
【請求項4】
前記ブロックをそれぞれ独立のクロックで動作させ、当該ブロックにそれぞれ位相の異なるクロックを与える遅延手段を備え、回路全体の1クロック内の消費電力の差を平坦化させることを特徴とする請求項1〜3のいずれか一つに記載の半導体集積回路。
【請求項5】
階層化されたブロック間のインターフェースを、クロックとデータを同時に送るソースシンクロナスタイプとして設計することを特徴とする半導体集積回路設計方法。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6−1】
image rotate

【図6−2】
image rotate

【図7】
image rotate

【図8−1】
image rotate

【図8−2】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate


【公開番号】特開2007−274049(P2007−274049A)
【公開日】平成19年10月18日(2007.10.18)
【国際特許分類】
【出願番号】特願2006−93824(P2006−93824)
【出願日】平成18年3月30日(2006.3.30)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】