(57)【要約】【課題】素子配置・配線及びマスク製造にかかる時間を短縮する手段を提供する。【解決手段】クロックラインバッファ１０は、クロック信号が流れるクロックラインに配置されてクロック信号を取り込み、取り込んだクロック信号を、クロックラインから複数に分岐するそれぞれのクロックライン幹線部５１〜５３に分配する。クロック遅延調整部２１Ａ〜２１Ｃは、それぞれのクロックライン幹線部５１〜５３に配置され、クロックラインバッファ１０によって分配されたクロック信号が通過する際の遅延量が異なる三段の遅延経路を有し、分配されたクロック信号を三段の遅延経路うちのいずれかの遅延経路で通過させる。【選択図】図１
2015201502.tif 000002
【特許請求の範囲】
【請求項１】
クロック信号が流れるクロックラインに配置されてクロック信号を取り込み、取り込んだクロック信号を、前記クロックラインから複数に分岐するそれぞれの分岐クロックラインに分配するクロック信号分配部と、
それぞれの前記分岐クロックラインに配置され、前記クロック信号分配部によって分配された分配クロック信号が通過する際の遅延量が異なる複数の遅延経路を有し、分配クロック信号を前記複数の遅延経路うちのいずれかの遅延経路で通過させる第１のクロック遅延調整部と
を備えたことを特徴とする半導体集積回路。
【請求項２】
前記半導体集積回路は、
前記複数の分岐クロックラインのそれぞれに、前記分岐クロックラインから分岐する順序回路部であって、前記分岐クロックラインから流入する分配クロック信号が通過する際の遅延量が異なる複数の遅延経路を有し、流入した分配クロック信号を前記複数の遅延経路うちのいずれかの遅延経路で通過させる第２のクロック遅延調整部と、前記第２のクロック遅延調整部を通過した分配クロック信号が入力される順序回路素子とを有する順序回路部を備えることを特徴とする請求項１記載の半導体集積回路。
【請求項３】
前記第１のクロック遅延調整部と、前記第２のクロック遅延調整部とは、
少なくともいずれかの前記遅延経路に、インバータを備えたことを特徴とする請求項２記載の半導体集積回路。
【請求項４】
コンピュータに、
半導体集積回路の設計データを入力する処理、
入力された設計データをコンパイルすることによって、同じクロックに接続された回路を示す同一クロック回路情報を含む論理情報を抽出する処理、
抽出された論理情報に含まれる同一クロック情報を出力する処理、
を実行させるためのプログラム。
【請求項５】
前記プログラムは、さらに、
抽出された論理情報に基づいて、クロック変化タイミングを分散させるための第１の遅延情報を挿入する処理、
第１の遅延情報と、設計データに含まれるフロアプラン情報と、設計データに含まれる階層情報とに基づいて、複数の素子を半導体集積回路に配置する配置シミュレーションを実行する処理、
配置シミュレーションの結果を出力する処理、
をコンピュータに実行させるための請求項４記載のプログラム。
【請求項６】
前記プログラムは、さらに、
配置シミュレーションの結果に、第２の遅延情報を挿入する処理、
第２の遅延情報に基づいて、クロックラインを接続する接続シミュレーションを実行する処理、
接続シミュレーションの結果、半導体集積回路のクロック遅延の分散状状態が、予め設定された要求仕様を満たすかどうかを判定する処理、
要求仕様を満たすかどうかの判定結果を出力する処理、
をコンピュータに実行させるための請求項５記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、半導体集積回路におけるクロックの分散によるＥＭＣ（Ｅｌｅｃｔｒｏｍａｇｎｅｔｉｃ  Ｃｏｍｐａｔｉｂｉｌｉｔｙ）対策に関する。
【背景技術】
【０００２】
従来のＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）における放射電磁雑音のレベルを低減させる従来技術としては、クロック生成回路において複数種類の遅延を持たせたクロックを生成し、適宜選択して接続する事でクロックの到達時間を分散する方法が示されている（特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−２２９６６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来のＡＳＩＣにおける放射電磁雑音のレベルを低減させる技術では、ＡＳＩＣ毎にクロック生成回路、及びクロック配線を施す事が必要な構造となっている。これは、ＡＳＩＣの配置・配線にかかる時間、及びマスク製造にかかる時間が大きくなるという課題がある。また、各素子へのクロック遅延は選択可能であるが、論理に従った素子の配置とクロック遅延が密接な関係となるため、クロック配線に制約あり、設計の自由度が制限されるという課題があった。
【０００５】
この発明は、素子配置・配線、及びマスク製造にかかる時間を短縮する手段の提供を目的とする。
【課題を解決するための手段】
【０００６】
この発明の半導体集積回路は、
クロック信号が流れるクロックラインに配置されてクロック信号を取り込み、取り込んだクロック信号を、前記クロックラインから複数に分岐するそれぞれの分岐クロックラインに分配するクロック信号分配部と、
それぞれの前記分岐クロックラインに配置され、前記クロック信号分配部によって分配された分配クロック信号が通過する際の遅延量が異なる複数の遅延経路を有し、分配クロック信号を前記複数の遅延経路うちのいずれかの遅延経路で通過させる第１のクロック遅延調整部と
を備えたことを特徴とする。
【発明の効果】
【０００７】
この発明によれば、素子配置・配線、及びマスク製造にかかる時間を短縮する手段を提供できる。
【図面の簡単な説明】
【０００８】
【図１】実施の形態１の半導体集積回路１０１の構成を示す図。
【図２】実施の形態２の半導体集積回路１０２の構成を示す図。
【図３】実施の形態２の順序回路部３０Ａ−１の構成を示す図。
【図４】実施の形態３の半導体集積回路１０３の構成を示す図。
【図５】実施の形態３の順序回路部３０Ａ−１の構成を示す図。
【図６】実施の形態４のプログラムによる処理のフローチャート。
【発明を実施するための形態】
【０００９】
実施の形態１．
以下の実施の形態では半導体集積回路を説明するが、半導体集積回路としては、例えば、ＡＳＩＣ、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）等である。
図１は、半導体集積回路１０１のクロックラインの構成を示す図である。図１を参照して実施の形態１における半導体集積回路１０１のクロックラインの構成を説明する。
【００１０】
半導体集積回路１０１は、クロック配線におけるクロックライン幹線部５１〜５３に、クロック遅延調整回路２１Ａ、２１Ｂ、２１Ｃを備える。これによって、エリア毎のクロック配線遅延を調整可能な構造とし、クロックの立ち上がりエッジのタイミングを分散させる事で、放射電磁雑音のレベルを低減させる事ができる。以下に図１を説明する。
【００１１】
図１に示すように、ロックライン幹線部は、クロックラインバッファ１０（クロック信号分配部）の先で、３本に分かれている。
（１）クロックラインバッファ１０は、半導体集積回路１０１の外部から、もしくは半導体集積回路１０１内のＰＬＬ（Ｐｈａｓｅ  Ｌｏｃｋｅｄ  Ｌｏｏｐ）／ＤＬＬ（Ｄｅｌａｙ  Ｌｏｃｋｅｄ  Ｌｏｏｐ）等のクロック生成回路からのクロック信号を、半導体集積回路１０１内のそれぞれのクロックライン幹線部５１〜５３へ分配するためのバッファである。
（２）クロックライン幹線部５１〜５３（分岐クロックライン）は、クロックラインバッファ１０から半導体集積回路１０１全体へクロック信号を運ぶための幹線である。図１においては、フィッシュボーン型のクロックライン構成の例を示してある。
（３）クロック遅延調整回路２１Ａ〜２１Ｃが、クロックラインバッファ１０から分岐する各クロックライン幹線部の先頭に配置されている。クロック遅延調整回路２１Ａ〜２１Ｃは、クロック信号に遅延を発生させる。
【００１２】
図１に示すように、クロック遅延調整回路２１Ａ〜２１Ｃは同じ構成である。クロック遅延調整回路２１Ａを例に説明すれば、バッファが配置されない経路（一段目）と、一つのバッファが配置された経路（二段目）と、直列接続された２つのバッファが配置された経路（三段目）との各遅延経路が、並列に接続されている。各経路には、オン、オフすることで導通、遮断を切り替えるスイッチが配置されている。クロック遅延調整回路２１Ａは、最上段のスイッチがオン状態である。一段目〜三段目の経路を選択することで、クロック信号に異なる遅延量を発生させることができる。
【００１３】
このように半導体集積回路１０１においては、図１に示すようにクロックラインバッファ１０から半導体集積回路１０１全体へクロック信号を分配するクロックライン幹線部５１〜５３を有する。それぞれのクロックライン幹線部にはクロック遅延調整回路２１Ａ〜２１Ｃが配置されている。よって簡易な構成で、クロックライン幹線部ごとのクロック遅延を分散させることができる。
【００１４】
実施の形態２．
図２、図３を参照して実施の形態２の半導体集積回路１０２を説明する。
図２は、半導体集積回路１０２のクロックラインの構成を示す図である。
図３は、実施の形態２の順序回路部３０Ａ−１の構成を示す図である。
【００１５】
半導体集積回路１０２は図２に示すように、それぞれのクロックライン幹線部に順序回路部を配置した構成である。順序回路部３０Ａ−１等は、クロック遅延調整回路２１（第２のクロック遅延調整部）を備えている。この構成により、順序回路部ごとのクロック配線遅延を調整可能な構造とし、クロックの立ち上がりエッジのタイミングを分散させる事で、放射電磁雑音のレベルを低減させる事ができる。以下、詳しく説明する。
【００１６】
図２のように、クロックライン幹線部５１には順序回路部３０Ａ−１〜３０Ａ−３が配置され、クロックライン幹線部５２には順序回路部３０Ｂ−１〜３０Ｂ−３が配置され、クロックライン幹線部５３には順序回路部３０Ｃ−１〜３０Ｃ−３が配置されている。順序回路部３０Ａ−１〜順序回路部３０Ｃ−３は、いずれも同じ構成である。順序回路部３０Ａ−１は、クロック遅延調整回路２１、順序回路素子３２、クロックライン４１Ａを備えている。順序回路部３０Ａ−１のクロック遅延調整回路２１は、クロック遅延調整回路２１Ａ等（第１のクロック遅延調整部）と同じ構成である。順序回路部３０Ａ−１は、クロックライン幹線部から分岐するクロックライン４１Ａ等でクロックライン幹線部に接続している。他の順序回路部も同様である。それぞれの順序回路に接続されるクロックの直前には、順序回路毎にクロック遅延調整回路２１が配置されている。すなわち、図２に示すように、順序回路部３０Ａ−１等のクロック信号が入力される入力部にはクロック遅延調整回路２１が配置されている。図３は順序回路部３０Ａ−１の構成を示す。
【００１７】
図２、図３に示す半導体集積回路１０２によれば、順序回路部３０Ａ−１等では、クロックライン幹線部からのクロック信号と順序回路素子３２との間にクロック遅延調整回路を持つ事で、各順序回路素子のクロック遅延を変更する事ができる。
【００１８】
実施の形態３．
図４、図５を参照して実施の形態３の半導体集積回路１０３を説明する。
図４は、半導体集積回路１０３のクロックラインの構成を示す図である。
図５は、実施の形態３の順序回路部３０Ａ−１の構成を示す図である。
【００１９】
半導体集積回路１０３では、クロックライン幹線部がクロックライン幹線部５１〜５４の４本に分かれている。また、クロックライン幹線部５１〜５４の先頭に配置されるクロック遅延調整回路２２Ａ〜２２Ｄ、及び順序回路部３０Ａ−１〜３０Ｄ−３のクロック遅延調整回路２２は、バッファだけでなくインバータも備えており、実施の形態１，２が三段の遅延経路であったのに対して、四段の遅延経路を持つ。クロック遅延調整回路２２Ａ〜２２Ｄは同じ構成である。また順序回路部３０Ａ−１〜３０Ｄ−３は、同じ構成である。順序回路部３０Ａ−１のクロック遅延調整回路２２はクロック遅延調整回路２２Ａと同じ構成である。
【００２０】
このようにクロック遅延調整回路２２Ａ〜２２Ｄ及び順序回路部のクロック遅延調整回路２２はインバータを有するので、反転クロックにおける遅延調整も可能となる。
【００２１】
図４のように、クロックライン幹線部及び順序回路素子に付随したクロック遅延調整回路は、バッファのみのラインと、バッファとインバータを使用したラインで構成される。バッファのみのラインを使用する場合は、クロックの遅延だけを調整する事が可能である。通過するバッファの段数によりクロックラインの遅延を調整することができる。またバッファだけでなくインバータも利用するライン（経路）では、インバータによりクロックの位相を１８０°変更する事が可能となる。なおインバータはいずれかの遅延経路に配置されれば良い。
【００２２】
実施の形態４．
図６は、半導体集積回路の配置及び配線を、コンピュータによって決定する処理手順を示すフローチャートである。実施の形態４では、半導体集積回路の配置及び配線方法を、図６を用いて説明する。以下のＳ１０〜Ｓ６０は、プログラムによってコンピュータに処理させるものである。
【００２３】
［Ｓ１０：コンパイル処理］
Ｓ１０ではコンピュータに、コンパイル処理を実施させる。コンパイル処理は、入力された半導体集積回路の設計データを展開し、設計データにおける階層構成、同一クロックで動作する回路規模等の論理情報、及びピン配置などの情報を抽出する。半導体集積回路の設計データをコンパイル（Ｓ１０）する事により、同一クロックに接続された順序回路素子（同一クロック回路情報）などの論理情報を抽出する事ができる。放射電磁雑音のレベルは近接した素子の同時変化に強く影響を受けるため、抽出した論理情報から近接した素子の情報がわかれば良い。例えばバスを構成する各信号は同一クロックで同時に変化する可能性が高いため、各信号を変化させるクロックの遅延タイミングを分散させる事で、バス信号の変化タイミングを分散させる事が可能である。
Ｓ１０では抽出された論理情報をプログラムに出力させ、人がその論理情報を評価するようにしても構わない。
【００２４】
［Ｓ２０：クロック情報の挿入処理（その１）］
Ｓ２０ではコンピュータに、クロック情報挿入処理（その１）を実施させる。クロック情報挿入処理（その１）は、設計データをコンパイルして得られた論理情報から、クロック変化タイミングを分散させるための遅延情報（第１の遅延情報）を挿入する部分である。
【００２５】
［Ｓ３０：配置処理］
Ｓ３０ではコンピュータに、半導体集積回路のフロアプラン情報、設計データの階層情報から各素子を半導体集積回路内に配置させる部分（配置シミュレーション）である。半導体集積回路内に各素子の配置（Ｓ３０）を行う場合には、論理ブロック毎にまとまって配置される可能性が高い。例えばフロアプランを決める場合には、論理ブロック毎に半導体集積回路内に配置する。この場合、大きくは論理ブロック単位の変化タイミングをずらす事で、放射電磁雑音のレベルを下げる事が可能である。この場合には、配置情報からクロックライン幹線部のクロック遅延調整を行う事で、各ブロックの変化タイミングを分散させる事が可能である。なお、Ｓ３０ではプログラムに配置シミュレーションの結果を出力させ、人がその配置シミュレーション結果を評価するようにしても構わない。
【００２６】
［Ｓ４０：クロック情報の挿入処理（その２）］
Ｓ４０ではコンピュータに、クロック情報挿入処理（その２）を実施させる。クロック情報挿入処理（その２）は、半導体集積回路の配置情報から、近接する論理ブロック、及び順序回路素子を認識し、クロック変化タイミングを分散させるための遅延情報（第２の遅延情報）を挿入する部分である。
【００２７】
［Ｓ５０：配線処理］
Ｓ５０ではコンピュータに、配線処理を実施させる。配線処理は、半導体集積回路内の各素子間の接続情報、及びクロック遅延情報を利用して、クロックラインを接続する部分である。
【００２８】
［Ｓ６０：タイミング判定処理］
Ｓ６０ではコンピュータに、タイミング判定処理を実施させる。コンピュータは、クロック変化タイミングが目標範囲内で分散されているかどうかを判定し目標範囲（要求仕様の範囲）の場合、結果をＲＯＭに書き込んで処理を終了する。クロック変化タイミングが目標範囲内でない場合は、再度、設計データの入力に戻る。
【００２９】
Ｓ６０の話半導体集積回路においては、論理が複雑になるに従って順序回路素子間の論理段数が増加するため、要求仕様を満たすタイミングが得られない場合がある。その場合、図６のフローに示すとおり、配置・配線をやり直したり、設計段階に戻って設計データを修正する事でタイミングを改善する。実施の形態４のクロックライン構成を利用する事で、タイミング調整を行う事が可能である。例えば、タイミング的に厳しい順序回路素子間において、タイミングの基点となる順序回路素子へ入力されるクロックの遅延を小さくし、タイミングの終点となる順序回路素子へ入力されるクロックの遅延を大きくする事で、基点から終点までの時間を長くする事が可能である。これにより、タイミングの要求仕様を満たす事を容易にする事が可能である。なお、Ｓ６０ではプログラムに判定結果を出力させ、人がその判定結果を評価するようにしても構わない。
【００３０】
以上の実施形態１〜４によって、遅延調整回路付きのクロック配線を事前に施しておく事で、配置・配線、及びマスク製造にかかる時間を短縮する事が可能である。また、エリア毎の遅延だけでなく、各素子へのクロックの遅延時間についても個別に調整を可能とする自由度を備えたものであり、ＡＳＩＣだけでなく、ＦＰＧＡにおいても適用が可能である。
【符号の説明】
【００３１】
１０１，１０２，１０３  半導体集積回路、１０  クロックラインバッファ、２１，２２，２１Ａ〜２１Ｃ，２２Ａ〜２２Ｄ  クロック遅延調整回路、３０Ａ−１〜３０Ｄ−３  順序回路部、４１Ａ，４１Ｂ，４１Ｃ，４１Ｄ  クロックライン、５１，５２，５３，５４  クロックライン幹線部。
【図１】
2015201502.tif 000003
【図２】
2015201502.tif 000004
【図３】
2015201502.tif 000005
【図４】
2015201502.tif 000006
【図５】
2015201502.tif 000007
【図６】
2015201502.tif 000008