(57)【要約】【課題】ジッタ制約違反の発生を抑制する。【解決手段】トランジスタＴｒのバックバイアスを制御するバックバイアス制御部１からの距離と、バックバイアス制御部１から出力される制御信号のノイズ量との関係を求め（ステップＳ１）、バックバイアス制御部１とノイズ量との関係に基づいて、回路部（ＩＰマクロ）２に接続されるクロック経路での、ノイズ量によるジッタの増加量を求め（ステップＳ２）、そのジッタの増加量と、回路部２におけるジッタの許容値に基づき、回路部２とクロック経路を配置する（ステップＳ３）。【選択図】図１
2014146220.tif 000002
【特許請求の範囲】
【請求項１】
回路部と、前記回路部にクロックを入力するクロック経路と、少なくとも前記クロック経路に含まれるトランジスタのバックバイアスを制御するバックバイアス制御部とを含む半導体装置の設計方法であって、
前記トランジスタのバックバイアスを制御するバックバイアス制御部からの距離と、前記バックバイアス制御部から出力される制御信号のノイズ量との関係を求め、
前記バックバイアス制御部と前記ノイズ量との関係に基づいて、前記回路部に接続されるクロック経路での、前記ノイズ量によるジッタの増加量を求め、
前記ジッタの増加量と、前記回路部におけるジッタの許容値に基づき、前記回路部と前記クロック経路を配置する、
ことを特徴とする半導体装置の設計方法。
【請求項２】
前記クロック経路に含まれるクロックバッファでのクロックの遅延量と、前記ノイズ量に基づいて、前記ジッタの増加量を求めることを特徴とする請求項１に記載の半導体装置の設計方法。
【請求項３】
前記クロック経路に含まれる複数のクロックバッファの段数と、前記ノイズ量に基づいて、前記ジッタの増加量を求めることを特徴とする請求項１に記載の半導体装置の設計方法。
【請求項４】
前記回路部に接続される前記クロック経路に含まれる複数のクロックバッファのうち、前記バックバイアス制御部からの距離が最短のものに含まれるトランジスタに対する前記制御信号のノイズ量に基づき、前記クロック経路での前記ジッタの増加量を求めることを特徴とする請求項１乃至３の何れか一項に記載の半導体装置の設計方法。
【請求項５】
前記ジッタの増加量には、前記バックバイアス制御部によってバックバイアスが制御されるトランジスタを含み、前記クロック経路にクロックを供給するクロック供給部において、前記バックバイアス制御部との距離に応じた前記ノイズ量に応じて発生するジッタ量が加算される、ことを特徴とする請求項１乃至４の何れか一項に記載の半導体装置の設計方法。
【請求項６】
前記回路部及び前記クロック経路の配置は、前記ジッタの増加量に基づいて求められる、前記回路部への入力クロックのジッタ量が前記ジッタの許容値を超えないように、行われることを特徴とする請求項１乃至５の何れか一項に記載の半導体装置の設計方法。
【請求項７】
回路部と、前記回路部にクロックを入力するクロック経路と、少なくとも前記クロック経路に含まれるトランジスタのバックバイアスを制御するバックバイアス制御部とを含む半導体装置の設計処理であって、
前記トランジスタのバックバイアスを制御するバックバイアス制御部からの距離と、前記バックバイアス制御部から出力される制御信号のノイズ量との関係を求め、
前記バックバイアス制御部と前記ノイズ量との関係に基づいて、前記回路部に接続されるクロック経路での、前記ノイズ量によるジッタの増加量を求め、
前記ジッタの増加量と、前記回路部におけるジッタの許容値に基づき、前記回路部と前記クロック経路を配置する、
処理をコンピュータに実行させるプログラム。
【請求項８】
回路部と、前記回路部にクロックを入力するクロック経路と、少なくとも前記クロック経路に含まれるトランジスタのバックバイアスを制御するバックバイアス制御部とを含む半導体装置の設計処理を行う演算処理部を有し、
前記演算処理部は、
チップ内のトランジスタのバックバイアスを制御するバックバイアス制御部からの距離と、前記バックバイアス制御部から出力される制御信号のノイズ量との関係を求め、
前記バックバイアス制御部と前記ノイズ量との関係に基づいて、前記回路部に接続されるクロック経路での、前記ノイズ量によるジッタの増加量を求め、
前記ジッタの増加量と、前記回路部におけるジッタの許容値に基づき、前記回路部と前記クロック経路を配置する、
ことを特徴とする設計装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置の設計方法、プログラム及び設計装置に関する。
【背景技術】
【０００２】
ＳｏＣ（System-on-a-Chip）は、様々な信号処理を１チップで行う。そのため、ＳｏＣは、たとえば、高速インタフェースＩ／Ｏ（Input/Output）、ＡＤＣ（Analog to Digital Converter）／ＤＡＣ（Digital to Analog Converter）など、様々なＩＰ（Intellectual Property）マクロを有する。ＩＰマクロを動作させる入力クロックの供給元として、ＰＬＬ（Phase Locked Loop）が使用されるが、ＰＬＬから各ＩＰマクロへのクロック配線は複雑となっており、それに伴い消費電力も増加している。
【０００３】
近年、低電圧で動作するＤＤＣ（Deeply Depleted Channel）トランジスタが注目されている。ＤＤＣトランジスタは、たとえば、チャージポンプ回路によりバックバイアスの制御が行われることで、リーク電流を抑えつつ低電圧動作が可能となる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−２７７５５７号公報
【特許文献２】特開２００８−１１８０８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、各ＩＰマクロの入力クロックには、許容できるジッタの制約があり、この制約を満たすようにクロック経路が設けられる。しかしながら、クロック経路のクロックバッファに含まれるＤＤＣトランジスタのバックバイアスの制御ノイズにより、ジッタ量が増加し、許容できるジッタの制約を満たさなくなってしまうことが懸念される。
【課題を解決するための手段】
【０００６】
発明の一観点によれば、回路部と、前記回路部にクロックを入力するクロック経路と、少なくとも前記クロック経路に含まれるトランジスタのバックバイアスを制御するバックバイアス制御部とを含む半導体装置の設計方法であって、前記トランジスタのバックバイアスを制御するバックバイアス制御部からの距離と、前記バックバイアス制御部から出力される制御信号のノイズ量との関係を求め、前記バックバイアス制御部と前記ノイズ量との関係に基づいて、前記回路部に接続されるクロック経路での、前記ノイズ量によるジッタの増加量を求め、前記ジッタの増加量と、前記回路部におけるジッタの許容値に基づき、前記回路部と前記クロック経路を配置する、半導体装置の設計方法が提供される。
【０００７】
また、発明の一観点によれば、回路部と、前記回路部にクロックを入力するクロック経路と、少なくとも前記クロック経路に含まれるトランジスタのバックバイアスを制御するバックバイアス制御部とを含む半導体装置の設計処理であって、前記トランジスタのバックバイアスを制御するバックバイアス制御部からの距離と、前記バックバイアス制御部から出力される制御信号のノイズ量との関係を求め、前記バックバイアス制御部と前記ノイズ量との関係に基づいて、前記回路部に接続されるクロック経路での、前記ノイズ量によるジッタの増加量を求め、前記ジッタの増加量と、前記回路部におけるジッタの許容値に基づき、前記回路部と前記クロック経路を配置する、処理をコンピュータに実行させるプログラムが提供される。
【０００８】
また、発明の一観点によれば、回路部と、前記回路部にクロックを入力するクロック経路と、少なくとも前記クロック経路に含まれるトランジスタのバックバイアスを制御するバックバイアス制御部とを含む半導体装置の設計処理を行う演算処理部を有し、前記演算処理部は、チップ内のトランジスタのバックバイアスを制御するバックバイアス制御部からの距離と、前記バックバイアス制御部から出力される制御信号のノイズ量との関係を求め、前記バックバイアス制御部と前記ノイズ量との関係に基づいて、前記回路部に接続されるクロック経路での、前記ノイズ量によるジッタの増加量を求め、前記ジッタの増加量と、前記回路部におけるジッタの許容値に基づき、前記回路部と前記クロック経路を配置する、設計装置が提供される。
【発明の効果】
【０００９】
開示の半導体装置の設計方法、プログラム及び設計装置によれば、ジッタ制約違反の発生を抑制できる。
【図面の簡単な説明】
【００１０】
【図１】第１の実施の形態の半導体装置の設計方法の一例を説明する図である。
【図２】第１の実施の形態の半導体装置の設計方法を実行する設計装置の一例を示す図である。
【図３】本実施の形態の半導体装置の設計方法を実行する設計装置（コンピュータ）のハードウェア例を示す図である。
【図４】第２の実施の形態の半導体装置の設計方法の一例の流れを示すフローチャートである。
【図５】ステップＳ１０の処理の一例を説明する図である。
【図６】バックバイアスＶｂｂの変動量のシミュレーション結果の一例を示す図である。
【図７】ＩＰマクロの配置例を示す図である。
【図８】クロックバッファに供給するノイズを含むバックバイアスの例を示す図である。
【図９】クロックバッファの段数を変化させる例を説明する図である。
【図１０】ジッタ解析処理のシミュレーション結果の一例を示す図である。
【図１１】ＩＰマクロの種類ごとのジッタ許容値の一例を示す図である。
【図１２】入力許容ジッタの算出結果を示すテーブル例を示す図である。
【図１３】ＰＬＬの一例を示す図である。
【図１４】判定結果がＯＫになるように最適化されたチップ内の配置例を示す図である。
【発明を実施するための形態】
【００１１】
以下、発明を実施するための形態を、図面を参照しつつ説明する。
（第１の実施の形態）
図１は、第１の実施の形態の半導体装置の設計方法の一例を説明する図である。
【００１２】
また、図２は、第１の実施の形態の半導体装置の設計方法を実行する設計装置の一例を示す図である。
設計装置１０は、演算処理部１１、記憶部１２を有する。演算処理部１１は、記憶部１２に格納されているプログラムやデータをもとに、図１に示すような半導体装置（たとえば、ＳｏＣ）の設計方法を実行する。演算処理部１１は、たとえば、後述するようなプロセッサである。
【００１３】
まず、チップ内のトランジスタ（前述したＤＤＣトランジスタ）のバックバイアスを制御するバックバイアス制御部１からの距離と、バックバイアス制御部１から出力される制御信号のノイズ量との関係が見積もられる（ステップＳ１）。バックバイアス制御部１から出力される制御信号を、以下バックバイアス制御信号と呼ぶ。なお、バックバイアス制御部１は、チップ内の全てのＤＤＣトランジスタに対してではなく、一部のＤＤＣトランジスタに対してバックバイアス制御信号を供給するものであってもよい。
【００１４】
バックバイアス制御信号のノイズは、バックバイアスの変動量となり、バックバイアス制御部１からの距離が離れるほど小さくなる。図１に示すように、たとえば、距離Ｌ１では、ノイズ量（ｎｏｉｓｅ）はＮ１であり、距離Ｌ２（＞Ｌ１）では、ｎｏｉｓｅ＝Ｎ２（＜Ｎ１）であり、距離Ｌ３（＞Ｌ２）では、ｎｏｉｓｅ＝Ｎ３（＜Ｎ２）である。ノイズ量の見積もりは、配線抵抗とトランジスタの寄生容量をもとにしたシミュレーションモデルを用いて行われる（詳細は後述する）。
【００１５】
次に、演算処理部１１は、所望の機能を実現するための処理を実行する回路部（以下ＩＰマクロという）に接続されるクロック経路での、ステップＳ１の処理で得られたノイズ量によるジッタの増加量を見積もる（ステップＳ２）。クロック経路には、バックバイアスが制御されるトランジスタを有するクロックバッファが設けられている。クロックバッファは、クロックの振幅を所定の大きさに保つために設けられる。
【００１６】
ステップＳ２の処理では、たとえば、上記の距離Ｌ１〜Ｌ３に対応したノイズ量であるＮ１〜Ｎ３によるジッタの増加量が求められる。このとき、クロック経路による遅延（またはクロックバッファの段数）によるジッタの増加量を含めるようにしてもよい（詳細は後述する）。
【００１７】
そして、演算処理部１１は、ジッタの増加量と、ＩＰマクロにおけるジッタの許容値に基づき、ＩＰマクロとクロック経路の配置を行う（ステップＳ３）。
図１には、バックバイアス制御部１、ＩＰマクロ２、トランジスタＴｒを有するクロックバッファ３とクロック供給部（たとえば、ＰＬＬ）４の配置例が示されている。
【００１８】
トランジスタＴｒは、ＤＤＣトランジスタである。ＤＤＣトランジスタは、たとえば、３つの領域を有したチャネル構造を有している。３つの領域とは、不純物がほとんど含まれない領域と、閾値を設定するオフセット領域と、電荷を遮蔽するスクリーニング領域である。トランジスタＴｒでは、バックバイアス制御部１からのバックバイアス制御信号により、閾値が設定される。
【００１９】
図１の例では、バックバイアス制御部１に近い位置（たとえば、距離Ｌ１の位置）にクロックバッファ３が配置され、それに応じた位置にＩＰマクロ２が配置されているときの、トータルのジッタ量がｊｔ１＋Δｊｔａであることが示されている。ｊｔ１は、クロック供給部４によるジッタ量、Δｊｔａは、バックバイアス制御信号のノイズによるクロック経路でのジッタ増加量を示している。なお、クロック供給部４によるジッタ量は、バックバイアス制御部１とクロック供給部４との距離によって変わるが、その点に関しては後述する。
【００２０】
演算処理部１１は、図１のようにジッタ量ｊｔ１＋Δｊｔａが、ＩＰ２マクロのジッタの許容値以上である（または許容値より大きい）場合、ジッタ量が許容値より小さくなる（または許容値以下となる）位置にＩＰマクロ２とクロックバッファ３を配置する。
【００２１】
図１の例では、バックバイアス制御部１からより離れた位置（たとえば、距離Ｌ３の位置）にクロックバッファ３が配置され、それに応じた位置にＩＰマクロ２が配置されているとき、トータルのジッタ量がｊｔ１＋Δｊｔｂとなり、許容値より小さくなっている。
【００２２】
上記の半導体装置の設計方法のように、バックバイアス制御部１からの距離に応じて異なるバックバイアス制御信号のノイズ量を考慮して回路とクロック経路の配置を行うことで、バックバイアス制御信号のノイズに起因したジッタ制約違反の発生を抑制できる。
【００２３】
また、従来の設計方法では、各ＩＰマクロの配置は製品の使用方法によってＳｏＣ内の配置が決まっていたが、クロック経路や各ＩＰマクロへの入力クロックのジッタについて検証しておらず、問題が発覚するのは設計後のＳｏＣの実機確認の際となっていた。そのため、問題が発覚した場合、手戻りが大きくなってしまっていたが、本実施の形態の半導体装置の設計方法では、ジッタを考慮しながら回路とクロック経路の配置を行うために、手戻りが少なく、設計期間の増大を抑制できる。
【００２４】
（第２の実施の形態）
以下、半導体装置の設計方法をより詳細に説明する。
図３は、本実施の形態の半導体装置の設計方法を実行する設計装置（コンピュータ）のハードウェア例を示す図である。
【００２５】
コンピュータ２０は、プロセッサ２１によって装置全体が制御されている。プロセッサ２１には、バス２９を介してＲＡＭ（Random Access Memory）２２と複数の周辺機器が接続されている。プロセッサ２１は、マルチプロセッサであってもよい。プロセッサ２１は、たとえばＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、またはＰＬＤ（Programmable Logic Device）である。またプロセッサ２１は、ＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＰＬＤのうちの２以上の要素の組み合わせであってもよい。
【００２６】
ＲＡＭ２２は、コンピュータ２０の主記憶装置として使用される。ＲＡＭ２２には、プロセッサ２１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ２２には、プロセッサ１０１による処理に必要な各種データが格納される。
【００２７】
バス２９に接続されている周辺機器としては、ＨＤＤ（Hard Disk Drive）２３、グラフィック処理装置２４、入力インタフェース２５、光学ドライブ装置２６、機器接続インタフェース２７及びネットワークインタフェース２８がある。
【００２８】
ＨＤＤ２３は、内蔵したディスクに対して、磁気的にデータの書き込み及び読み出しを行う。ＨＤＤ２３は、コンピュータ２０の補助記憶装置として使用される。ＨＤＤ２３には、ＯＳのプログラム、アプリケーションプログラム、及び各種データが格納される。なお、補助記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
【００２９】
グラフィック処理装置２４には、モニタ２４ａが接続されている。グラフィック処理装置２４は、プロセッサ２１からの命令に従って、画像をモニタ２４ａの画面に表示させる。モニタ２４ａとしては、ＣＲＴ（Cathode Ray Tube）を用いた表示装置や液晶表示装置などがある。
【００３０】
入力インタフェース２５には、キーボード２５ａとマウス２５ｂとが接続されている。入力インタフェース２５は、キーボード２５ａやマウス２５ｂから送られてくる信号をプロセッサ２１に送信する。なお、マウス２５ｂは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００３１】
光学ドライブ装置２６は、レーザ光などを利用して、光ディスク２６ａに記録されたデータの読み取りを行う。光ディスク２６ａは、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク２６ａには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。
【００３２】
機器接続インタフェース２７は、コンピュータ２０に周辺機器を接続するための通信インタフェースである。たとえば機器接続インタフェース２７には、メモリ装置２７ａやメモリリーダライタ２７ｂを接続することができる。メモリ装置２７ａは、機器接続インタフェース２７との通信機能を搭載した記録媒体である。メモリリーダライタ２７ｂは、メモリカード２７ｃへのデータの書き込み、またはメモリカード２７ｃからのデータの読み出しを行う装置である。メモリカード２７ｃは、カード型の記録媒体である。
【００３３】
ネットワークインタフェース２８は、ネットワーク２８ａに接続されている。ネットワークインタフェース２８は、ネットワーク２８ａを介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
【００３４】
以上のようなハードウェア構成によって、第２の実施の形態の処理機能を実現することができる。なお、第１の実施の形態に示した設計装置１０（図２参照）も、図３に示したコンピュータ２０と同様のハードウェアにより実現することができる。
【００３５】
コンピュータ２０は、たとえばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第２の実施の形態の処理機能を実現する。コンピュータ２０に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。たとえば、コンピュータ２０に実行させるプログラムをＨＤＤ２３に格納しておくことができる。プロセッサ２１は、ＨＤＤ２３内のプログラムの少なくとも一部をＲＡＭ２２にロードし、プログラムを実行する。またコンピュータ２０に実行させるプログラムを、光ディスク２６ａ、メモリ装置２７ａ、メモリカード２７ｃなどの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、たとえばプロセッサ２１からの制御により、ＨＤＤ２３にインストールされた後、実行可能となる。またプロセッサ２１が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【００３６】
図４は、第２の実施の形態の半導体装置の設計方法の一例の流れを示すフローチャートである。
以下に示す各ステップは、たとえば、図３に示したコンピュータ２０において、プロセッサ２１が、ＨＤＤ２３内に格納されている半導体装置の設計プログラムを読み出して実行することによって行われる。
【００３７】
ステップＳ１０，Ｓ１１の処理では、バックバイアス制御信号のノイズ量の見積もりが行われる。まず、ステップＳ１０の処理では、抵抗容量算出処理が行われる。抵抗容量算出処理では、使用予定のクロックバッファのトランジスタの寄生容量（ウェル容量）と、そのトランジスタとバックバイアス制御信号を生成するチャージポンプとの距離に応じた配線抵抗が算出される。チャージポンプは、図１に示したバックバイアス制御部１の機能を実行する回路であり、図１に示したバックバイアス制御部１の一例である。
【００３８】
図５は、ステップＳ１０の処理の一例を説明する図である。
チップ３０内に、チャージポンプ３１が配置され、チャージポンプ３１からの距離が異なる、抵抗Ｒ１，Ｒ２，Ｒ３と容量Ｃ１を有するモデルＭ１，Ｍ２，Ｍ３が求められた例が示されている。容量Ｃ１は、使用予定のクロックバッファのトランジスタのウェル容量である。トランジスタがｐチャネル型である場合には、容量Ｃ１は、Ｎウェルの容量であり、ｎチャネル型である場合には、容量Ｃ１は、Ｐウェルの容量である。
【００３９】
抵抗Ｒ１〜Ｒ３は、チャージポンプ３１からの距離に応じた配線抵抗であり、Ｒ１＜Ｒ２＜Ｒ３である。
プロセッサ２１は、たとえば、ＨＤＤ２３に格納されている素子情報や配線情報をもとに、上記のような距離に応じた、容量と抵抗を算出し、たとえば、ＨＤＤ２３またはＲＡＭ２２に格納する。
【００４０】
次のステップＳ１１の処理では、電圧解析処理が行われる。電圧解析処理では、チップ内において、チャージポンプからの距離に応じたバックバイアス制御信号のノイズ量が求められる。
【００４１】
図６は、バックバイアスＶｂｂの変動量のシミュレーション結果の一例を示す図である。図６では、図５に示したモデルＭ１〜Ｍ３を用いたときの、バックバイアスＶｂｂの様子が示されている。横軸は、時間ｔ（ｍｓ）であり、縦軸は、バックバイアスＶｂｂの電圧（単位はＶまたはｍＶ）である。
【００４２】
バックバイアスＶｂｂは、ＤＤＣトランジスタがｎチャネル型である場合には、負の電圧となり、ＤＤＣトランジスタがｐチャネル型である場合には、電源電圧ＶＤＤよりも大きい電圧となる。
【００４３】
ＶＮＷ＿Ｍ１（単位はＶ）は、モデルＭ１において、容量Ｃ１をＮウェルのウェル容量とした場合の、バックバイアスＶｂｂである。ＶＰＷ＿Ｍ１（単位はｍＶ）は、モデルＭ１において、容量Ｃ１をＰウェルのウェル容量とした場合の、バックバイアスＶｂｂである。
【００４４】
ＶＮＷ＿Ｍ２（単位はＶ）は、モデルＭ２において、容量Ｃ１をＮウェルのウェル容量とした場合の、バックバイアスＶｂｂである。ＶＰＷ＿Ｍ２（単位はｍＶ）は、モデルＭ２において、容量Ｃ１をＰウェルのウェル容量とした場合の、バックバイアスＶｂｂである。
【００４５】
ＶＮＷ＿Ｍ３（単位はＶ）は、モデルＭ３において、容量Ｃ１をＮウェルのウェル容量とした場合の、バックバイアスＶｂｂである。ＶＰＷ＿Ｍ３（単位はｍＶ）は、モデルＭ３において、容量Ｃ１をＰウェルのウェル容量とした場合の、バックバイアスＶｂｂである。
【００４６】
なお、モデルＭ１は、チャージポンプ３１との距離が０であり、モデルＭ２は、チャージポンプ３１から１．４ｍｍ離れており、モデルＭ３は、チャージポンプ３１から５．６ｍｍ離れているものとして、抵抗Ｒ１〜Ｒ３が求められている。なお、容量Ｃ１は、チップ３０が、７×７ｍｍの大きさであるものとして求められている。
【００４７】
モデルＭ１において、ＶＮＷ＿Ｍ１の変動量ｎ１は、２３ｍＶ程度であり、ＶＰＷ＿Ｍ１の変動量ｎ２は、５０ｍＶ程度であった。また、モデルＭ２において、ＶＮＷ＿Ｍ２の変動量ｎ３は、８ｍＶ程度であり、ＶＰＷ＿Ｍ２の変動量ｎ４は、１２ｍＶ程度であった。また、モデルＭ３において、ＶＮＷ＿Ｍ３の変動量ｎ５は、６ｍＶ程度であり、ＶＰＷ＿Ｍ３の変動量ｎ６は、８ｍＶ程度であった。これらの変動量ｎ１〜ｎ６が、バックバイアス制御信号のノイズ量を表している。
【００４８】
プロセッサ２１は、ステップＳ１０の処理で求められたチャージポンプ３１からの距離に応じた容量と抵抗の情報をもとに、シミュレーションを実施し、上記のようなチャージポンプ３１からの距離とノイズ量との関係を見積もる。そして、プロセッサ２１は、求めた情報を、たとえば、ＨＤＤ２３またはＲＡＭ２２に格納する。
【００４９】
次に、ステップＳ１２のジッタ解析処理が行われ、クロック経路におけるジッタ増加量が見積もられる。ジッタ解析処理では、使用予定のクロックバッファと、ステップＳ１１の処理で求められたチャージポンプ３１からの距離とノイズ量の関係の情報をもとに、ＩＰマクロに接続されるクロック経路でのジッタの増加量の見積もりが行われる。
【００５０】
図７は、ＩＰマクロの配置例を示す図である。
チップ４０には、チャージポンプ３１、ＰＬＬ４２、ＩＰマクロ４３，４４，４５，４６が配置されている。なお、チャージポンプ３１やＰＬＬ４２もＩＰマクロの一つではあるが、本実施の形態の例では、クロック供給部であるＰＬＬ４２からクロックを受ける回路部をＩＰマクロと表記している。
【００５１】
ＩＰマクロ４３〜４６は、高速インタフェースＩ／Ｏ、ＡＤＣ、ＤＡＣなどである。ＩＰマクロ４３に接続されるクロック経路は、クロックバッファｂ１，ｂ２，ｂ３を含む。ＩＰマクロ４３には、クロックバッファｂ１〜ｂ３を介してＰＬＬ４２からクロックが入力される。ＩＰマクロ４４に接続されるクロック経路は、クロックバッファｂ４，ｂ５，ｂ６を含む。ＩＰマクロ４４には、クロックバッファｂ４〜ｂ６を介してＰＬＬ４２からクロックが入力される。ＩＰマクロ４５に接続されるクロック経路は、クロックバッファｂ７，ｂ８，ｂ９を含む。ＩＰマクロ４５には、クロックバッファｂ７〜ｂ９を介してＰＬＬ４２からクロックが入力される。ＩＰマクロ４６に接続されるクロック経路は、クロックバッファｂ１０，ｂ１１，ｂ１２を含む。ＩＰマクロ４６には、クロックバッファｂ１０〜ｂ１２を介してＰＬＬ４２からクロックが入力される。
【００５２】
プロセッサ２１は、ステップＳ１１の処理で求められた、チャージポンプ３１からの距離に応じたノイズ量の情報から、当該ノイズ量によるクロック経路でのジッタの増加量をシミュレーションで求める。
【００５３】
プロセッサ２１は、ＩＰマクロ４３での、上記のノイズ量によるジッタの増加量を求める際には、たとえば、クロックバッファｂ１〜ｂ３のうち、チャージポンプ３１との距離が最短であるクロックバッファｂ２と、チャージポンプ３１の距離ｄ１を用いる。そして、プロセッサ２１は、距離ｄ１でのノイズ量を各クロックバッファｂ１〜ｂ３内の図示しないトランジスタに適用して、ＩＰマクロ４３に接続されるクロック経路でのジッタの増加量を求める。プロセッサ２１は、各クロックバッファｂ１〜ｂ３のチャージポンプ３１との距離に応じてジッタの増加量を求めるのではなく、バックバイアス制御信号のノイズ量が最も大きくなる最短の距離ｄ１を用いてジッタの増加量を求めることで、計算量を減らすことができる。
【００５４】
図８は、クロックバッファに供給するノイズを含むバックバイアスの例を示す図である。縦軸はバックバイアスＶｂｂの大きさを示し、横軸は時間ｔを示している。
プロセッサ２１は、ステップＳ１１の処理で求めた情報をもとに、距離ｄ１に応じたノイズ量ｎ（変動量）をもつバックバイアスＶｂｂを生成して、クロックバッファｂ１〜ｂ３内の図示しないトランジスタに印加する。プロセッサ２１は、これによって、増加するジッタ量を求める。
【００５５】
プロセッサ２１は、他のＩＰマクロ４３〜４６に接続されるクロック経路においても同様の処理を行う。
さらに、プロセッサ２１は、クロックバッファの段数を変化させて、それによるジッタ増加量を求める。
【００５６】
図９は、クロックバッファの段数を変化させる例を説明する図である。
直列に接続されたクロックバッファｂ１，ｂ２，…，ｂｎ−１，ｂｎに、チャージポンプ３１が接続されている様子が示されている。クロックバッファｂ１〜ｂｎの数が多いほど、ジッタが増加する。プロセッサ２１は、クロックバッファｂ１〜ｂｎの数を変化させてシミュレーションを行う。
【００５７】
図１０は、ジッタ解析処理のシミュレーション結果の一例を示す図である。横軸はクロックバッファによる遅延［ｐｓ］、縦軸はジッタ［ｐｓ］である。
特性５０は、バックバイアスＶｂｂの変動量を６０ｍＶとした場合の、クロックバッファによる遅延とジッタの関係を示している。特性５１は、バックバイアスＶｂｂの変動量を３０ｍＶとした場合の、クロックバッファによる遅延とジッタの関係を示している。特性５２は、バックバイアスＶｂｂの変動量を１５ｍＶとした場合の、クロックバッファによる遅延とジッタの関係を示している。
【００５８】
図１０に示されているように、バックバイアスＶｂｂの変動量が大きいほどジッタが大きくなり、クロックバッファによる遅延が大きいほど（クロックバッファの段数が多いほど）ジッタが大きくなる。クロックバッファによる遅延を考慮してジッタ増加量を求めることで、ＩＰマクロの入力クロックのジッタ量をより正確に見積もることができ、ジッタ制約違反の発生を防げる。
【００５９】
プロセッサ２１は、上記処理結果をもとに、チャージポンプとクロックバッファ間の距離（たとえば、図７に示した距離ｄ１）とクロックバッファによる遅延とジッタの対応情報を、ＨＤＤ２３またはＲＡＭ２２に格納する。
【００６０】
次に、図４に示したフローチャートにおいて、ステップＳ１３の入力許容ジッタ算出処理が行われる。
本実施の形態では、入力許容ジッタは、各ＩＰマクロにおいて予め決められている入力クロックにおけるジッタの許容値（ジッタ制約）から、ＰＬＬから出力されるクロックがＩＰマクロに到達したときに生じているジッタ量を引いた値を示すものとする。
【００６１】
プロセッサ２１は、たとえば、ＨＤＤ２３に記憶してあるＰＬＬの回路情報や、各ＩＰマクロの入力クロックにおけるジッタ許容値と、ステップＳ１１，Ｓ１２で生成された情報などをもとにシミュレーションを行い、入力許容ジッタを求める。
【００６２】
図１１は、ＩＰマクロの種類ごとのジッタ許容値の一例を示す図である。
図１１では、ＩＰマクロＩＰ１，ＩＰ２，…，ＩＰ６におけるジッタ許容値の一例が示されている。図１１の例では、ＩＰマクロＩＰ１のジッタ許容値は５０ｐｓ、ＩＰマクロＩＰ２のジッタ許容値は１５６ｐｓ、ＩＰマクロＩＰ６のジッタ許容値は２０００ｐｓとなっている。
【００６３】
ＩＰマクロＩＰ１〜ＩＰ６の例としては、ＨＤＭＩ（High Definition Multimedia Interface）、ＵＳＢ（Universal Serial Bus）２．０、ＤＡＣ、ＤＤＲ３  ＳＤＲＡＭ（Double-Data-Rate3 Synchronous Dynamic Random Access Memory）などがある。
【００６４】
図１２は、入力許容ジッタの算出結果を示すテーブル例を示す図である。
このようなテーブルは、プロセッサ２１によって作成され、たとえば、ＨＤＤ２３またはＲＡＭ２２に格納される。以下では、前述の図７と、図１２を用いて、ＩＰマクロ４３における入力許容ジッタを求める例を説明する。
【００６５】
入力許容ジッタは、たとえば、チャージポンプ３１とＰＬＬ４２間の距離と、ＰＬＬ４２とＩＰマクロ４３間の距離ごとに算出される。
チャージポンプ３１とＰＬＬ４２間の距離が長くなるとジッタ量が減るのは、距離が長くなるほど、ＰＬＬ４２に含まれるトランジスタへ供給されるバックバイアス制御信号のノイズ量が小さくなるからである。クロック供給部であるＰＬＬ４２において、上記ノイズ量に応じて生じるジッタ量を、クロック経路でのジッタ増加量に加えることで、より精度よく、図１２に示したような入力クロックのジッタ量を求めることができる。
【００６６】
図１３は、ＰＬＬの一例を示す図である。
ＰＬＬ４２は、位相比較器６０、ループフィルタ６１、電圧制御発振器６２、分周器６３を有する。
【００６７】
入力端子ＩＮから入力された基準クロックは、位相比較器６０に入力され、分周器６３から出力されるフィードバッククロックと位相が比較される。位相比較結果（電圧値）はループフィルタ６１を介して電圧制御発振器６２に供給され、電圧制御発振器６２にて端子ＯＵＴから出力されるクロックの発振周波数が制御される。
【００６８】
このようなＰＬＬ４２において、位相比較器６０、ループフィルタ６１、電圧制御発振器６２、分周器６３に含まれる図示しないトランジスタには、チャージポンプ３１からのバックバイアス制御信号が供給される。そして、バックバイアス制御信号には、前述したように、チャージポンプ３１からの距離に応じた量のノイズが含まれる。
【００６９】
また、図１２において、ＰＬＬ４２とＩＰマクロ４３間の距離が長くなるとジッタ量が増えるのは、距離が長くなるほど、クロックバッファｂ１〜ｂ３の段数が増え、遅延が大きくなるため図１０に示したようにジッタが大きくなるからである。なお、ここでは、クロックバッファｂ１〜ｂ３とチャージポンプ３１の距離（図７に示した距離ｄ１）は、ある一定の値として、ジッタ量が算出される。
【００７０】
図１２の例では、ＩＰマクロ４３のジッタ許容値は２００ｐｓとなっている。チャージポンプ３１とＰＬＬ４２間距離が２ｍｍで、ＰＬＬ４２とＩＰマクロ４３間の距離が１ｍｍであった場合には、シミュレーションの結果、ジッタ量は１００ｐｓであったことが示されている。このとき、入力許容ジッタは２００ｐｓ−１００ｐｓ＝１００ｐｓとなる。このように、入力許容ジッタが正の値、すなわち、ジッタ量がジッタ許容値よりも小さい場合には、ＩＰマクロ４３の入力クロックがジッタ制約を満たす可能性が高いので、プロセッサ２１は判定結果をＯＫとして、図１２に示すようなテーブルに書き込む。
【００７１】
また、図１２には、チャージポンプ３１とＰＬＬ４２間距離が２ｍｍで、ＰＬＬ４２とＩＰマクロ４３間の距離が２ｍｍであった場合には、シミュレーションの結果、ジッタ量は１５０ｐｓであったことが示されている。このとき、入力許容ジッタは２００ｐｓ−１５０ｐｓ＝５０ｐｓとなる。入力許容ジッタが正の値であるので、プロセッサ２１は判定結果をＯＫとして、図１２に示すようなテーブルに書き込む。
【００７２】
また、図１２には、チャージポンプ３１とＰＬＬ４２間距離が１ｍｍで、ＰＬＬ４２とＩＰマクロ４３間の距離が１ｍｍであった場合には、シミュレーションの結果、ジッタ量は２００ｐｓであったことが示されている。このとき、入力許容ジッタは２００ｐｓ−２００ｐｓ＝０ｐｓとなる。入力許容ジッタが０であるので、シミュレーションで考慮しなかった要因などにより、ＩＰマクロ４３の入力クロックがジッタ制約を満たさなくなる可能性がある。そのため、プロセッサ２１は判定結果をエラーとして、図１２に示すようなテーブルに書き込む。
【００７３】
また、図１２には、チャージポンプ３１とＰＬＬ４２間距離が１ｍｍで、ＰＬＬ４２とＩＰマクロ４３間の距離が２ｍｍであった場合には、シミュレーションの結果、ジッタ量は２５０ｐｓであったことが示されている。このとき、入力許容ジッタは２００ｐｓ−２５０ｐｓ＝−５０ｐｓとなる。入力許容ジッタが負の値であるので、ＩＰマクロ４３の入力クロックがジッタ制約を満たさない。そのため、プロセッサ２１は判定結果をエラーとして、図１２に示すようなテーブルに書き込む。
【００７４】
ステップＳ１４のＩＰマクロの配置決定処理と、ステップＳ１５のクロックバッファ配置配線決定処理では、ステップＳ１３の処理で求められたテーブルに基づいて、ＩＰマクロの配置とクロックバッファの配置配線が決定される。
【００７５】
プロセッサ２１は、図７に示したようなＩＰマクロ４３を配置するときは、図１２に示したようなテーブルに基づき、たとえば、チャージポンプ３１とＰＬＬ４２間距離が２ｍｍの場合、ＰＬＬ４２とＩＰマクロ間距離が１ｍｍまたは２ｍｍになるようにする。
【００７６】
また、図１２に示したテーブルで、判定結果がエラーとなる配置であっても、クロックバッファとチャージポンプ３１間距離を、ステップＳ１３の処理で使用した距離よりも長くすることで、トータルのジッタ量が減り、入力許容ジッタが正の値となる場合がある。
【００７７】
そのため、プロセッサ２１は、ＩＰマクロや、チャージポンプ、ＰＬＬの配置位置に制約があるが、判定結果がエラーとなる場合には、ステップＳ１５の処理で、クロックバッファの配置位置を変更する。そして、プロセッサ２１は、ステップＳ１６の処理で、入力許容ジッタを求め、判定結果がエラーとなるかＯＫとなるか検証する。
【００７８】
判定結果がエラーの場合には、ステップＳ１３からの処理に戻り、たとえば、ＰＬＬをバックバイアス制御信号のノイズによるジッタ量の増加が少ないものに変更したり、クロックバッファの段数を減らしたりして、判定結果がＯＫになるような変更を行う。
【００７９】
図１４は、判定結果がＯＫになるように最適化されたチップ内の配置例を示す図である。
図７に示したチップ４０内の配置例と比べると、図１４では、ＩＰマクロ４４，４５が図７に示した例よりもチャージポンプ３１から離れている。また、ＩＰマクロ４４とＰＬＬ４２の間に設けられているクロックバッファｂ４〜ｂ６、ＩＰマクロ４５とＰＬＬ４２の間に設けられているクロックバッファｂ７〜ｂ９も、図７に示した例よりもチャージポンプ３１から離れて配置されている。
【００８０】
ステップＳ１６の処理で判定結果がＯＫとなると、プロセッサ２１は、クロック配線（ステップＳ１７）や自動配置配線（ステップＳ１８）を行う。そして、プロセッサ２１は、論理検証など各種検証（ステップＳ１９）を行って許容できる検証結果が得られた場合（ＯＫの場合）には設計処理を終了する。許容できる検証結果が得られなかった場合（エラーの場合）、プロセッサ２１は、たとえば、ステップＳ１７の処理（またはステップＳ１８の処理）に戻り、適宜配線や配置の変更を行う。
【００８１】
以上のような半導体装置の設計方法によれば、チャージポンプからの距離に応じて異なるバックバイアス制御信号のノイズ量を考慮して各回路部やクロック経路の配置を行うことで、バックバイアス制御信号のノイズに起因したジッタ制約違反の発生を抑制できる。
【００８２】
また、本実施の形態の半導体装置の設計方法では、ジッタを考慮しながら回路とクロック経路の配置を行うために、ＳｏＣの設計時に問題を検出することが可能となり、ＳｏＣの実機確認前にジッタの影響による問題を解決できる。そのため、ＳｏＣ開発の手戻りが少なく、設計期間の増大を抑制できる。
【００８３】
以上、実施の形態に基づき、本発明の半導体装置の設計方法、プログラム、設計装置の一観点について説明してきたが、これらは一例にすぎず、上記の記載に限定されるものではない。
【００８４】
たとえば、ＩＰマクロに供給されるバックバイアス制御信号のノイズ量によるジッタ量を考慮して、ＩＰマクロやクロック経路の配置を決めるようにしてもよい。
【符号の説明】
【００８５】
１  バックバイアス制御部
２  回路部（ＩＰマクロ）
３  クロックバッファ
４  クロック供給部
Ｔｒ  トランジスタ
１０  設計装置
１１  演算処理部
１２  記憶部
【図１】
2014146220.tif 000003
【図２】
2014146220.tif 000004
【図３】
2014146220.tif 000005
【図４】
2014146220.tif 000006
【図５】
2014146220.tif 000007
【図６】
2014146220.tif 000008
【図７】
2014146220.tif 000009
【図８】
2014146220.tif 000010
【図９】
2014146220.tif 000011
【図１０】
2014146220.tif 000012
【図１１】
2014146220.tif 000013
【図１２】
2014146220.tif 000014
【図１３】
2014146220.tif 000015
【図１４】
2014146220.tif 000016