(57)【要約】【課題】クロックジッタ抑制方法及びプログラムにおいて、比較的短時間、且つ、比較的低コストでプログラマブルデバイス等の半導体集積回路のクロックジッタを確実に抑制することを目的とする。【解決手段】クロックバッファに接続された記憶素子に論理値を設定し、記憶素子の閾値電圧を可変設定し、半導体集積回路内の解析対象となる対象回路を動作させた状態で記憶素子に保持されている値を読み出し、閾値電圧と、読み出された値が前記論理値と反転関係にある記憶素子と、読み出しの対象となった各記憶素子の位置情報に基づいて、クロックバッファの電源電圧のノイズの影響度と一定以上のノイズの影響を受ける箇所を特定し、する解析処理を行い、解析処理の結果に基づいて半導体集積回路の構成要素の配置と配線の制約条件を作成し、ノイズが低減するように制約条件の配置を変更して再配置する再配置処理、又は、制約条件の配線を変更して再配線する再配線処理を行うように構成する。【選択図】図８
2011151100.tif 000002
【特許請求の範囲】
【請求項１】
クロックが入力されるクロックバッファを有する半導体集積回路におけるクロックジッタを抑制するクロックジッタ抑制方法であって、
前記クロックバッファに接続された記憶素子に任意の論理値を設定する工程と、
前記記憶素子の閾値電圧を可変設定する工程と、
前記半導体集積回路内の解析対象となる対象回路を動作させた状態で前記記憶素子に保持されている値を読み出す工程と、
前記閾値電圧と、読み出された値が設定された前記任意の論理値と反転関係にある記憶素子と、読み出しの対象となった各記憶素子の位置情報に基づいて、前記クロックバッファの電源電圧又は接地電圧のノイズの影響度と前記半導体集積回路内で一定以上のノイズの影響を受ける箇所を特定する解析処理を行う工程と、
前記解析処理の結果に基づいて、前記半導体集積回路の構成要素の配置と前記半導体集積回路内の配線の制約条件を作成する制約条件作成処理を行う工程と、
前記ノイズが低減するように前記制約条件の配置を変更して再配置する再配置処理、又は、前記制約条件の配線を変更して再配線する再配線処理を行う工程を含む、クロックジッタ抑制方法。
【請求項２】
前記制約条件作成処理を行う工程及び前記再配置処理又は前記再配線処理を行う工程は、コンピュータにより実行される、請求項１記載のクロックジッタ抑制方法。
【請求項３】
前記記憶素子は前記クロックバッファの前記電源電圧を印加されるバッファと前記バッファの出力がリセット端子に印加されるフリップフロップを有し、
前記閾値電圧を可変設定する工程は、前記記憶素子の前記バッファに印加する逆バイアス電圧を可変設定することで前記閾値電圧を可変設定する、請求項２記載のクロックジッタ抑制方法。
【請求項４】
前記再配置処理又は前記再配線処理の結果を反映して作成された新たな半導体集積回路に対して前記各工程の処理を繰り返すことで前記新たな半導体集積回路の構成を最適化する、請求項２又は３記載のクロックジッタ抑制方法。
【請求項５】
コンピュータに、クロックが入力されるクロックバッファを有する半導体集積回路におけるクロックジッタを抑制させるプログラムであって、
前記クロックバッファに接続された記憶素子に任意の論理値を設定する手順と、
前記記憶素子の閾値電圧を可変設定する手順と、
前記半導体集積回路内の解析対象となる対象回路を動作させた状態で前記記憶素子に保持されている値を読み出して、前記記憶素子から読み出した値と前記閾値電圧と前記読み出しの対象となった各記憶素子の位置情報を含むファイルを記憶部に格納する手順と、
前記ファイルを前記記憶部から読み出して、前記閾値電圧と、読み出された値が設定された前記任意の論理値と反転関係にある記憶素子と、読み出しの対象となった各記憶素子の位置情報に基づいて、前記クロックバッファの電源電圧又は接地電圧のノイズの影響度と前記半導体集積回路内で一定以上のノイズの影響を受ける箇所を特定する解析処理を行う手順と、
前記解析処理の結果に基づいて、前記半導体集積回路の構成要素の配置と前記半導体集積回路内の配線の制約条件を作成する制約条件作成処理を行う手順と、
前記ノイズが低減するように前記制約条件の配置を変更して再配置する再配置処理、又は、前記制約条件の配線を変更して再配線する再配線処理を行う手順
を前記コンピュータに実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クロックジッタ抑制方法及びプログラムに係り、特にプログラマブルデバイス等の半導体集積回路のクロックジッタを抑制するクロックジッタ抑制方法及びプログラムに関する。本発明は、このようなクロックジッタ抑制方法を実行可能とする半導体集積回路、及び、このようなプログラムを格納したコンピュータ読み取り可能な記憶媒体にも関する。
【０００２】
本明細書において、クロックジッタとは、クロックの立ち上がり又は立ち下がりが遅れたり早まったりする時間的なずれ、クロックの位相が変化する時間的なずれ等を含む。
【背景技術】
【０００３】
従来のプログラマブルデバイスでは、内部素子の使用率が比較的高く、且つ、内部素子が同時に動作する同時動作率が比較的高い場合、内部の電源又はグランド（又は、接地）にノイズが発生する可能性がある。このようなノイズの影響で、プログラマブルデバイス内のクロックラインに接続されたクロックバッファのスレッショルド値（又は、閾値）が変動してクロックジッタとなって現れることがある。クロックジッタが発生すると、設計通りの外部ＡＣ特性とならず、プログラマブルデバイスと外部デバイスとの間で適切な信号転送を行うことができなくなるか、或いは、プログラマブルデバイスの内部回路のレジスタ間でタイミングが取れない等の問題が発生する。プログラマブルデバイスから外部デバイスにデータを出力する際には、データの変化及びクロックの変化に応じてデータが安定化するまでの時間を守った上で信号転送を行うために満足するべき出力タイミングがあり、設計通りの外部ＡＣ特性ではこのような出力タイミングが保証される。
【０００４】
従来、プログラマブルデバイスのプラットホーム（即ち、アプリケーション）を開発する際には、ＣＡＤ（Computer Aided Design）による設計時にノイズを低減するためにコンデンサをプログラマブルデバイスに埋め込むノイズ対策を取るが、想定されるノイズは平均的なアプリケーションに対するものである。このため、全てのアプリケーションに対応できるだけのノイズ低減用のコンデンサをプログラマブルデバイスに埋め込もうとすると、コンデンサがプログラマブルデバイス内で比較的大きな面積を占有してしまい、プログラマブルデバイスのコストも増大してしまうので、現実的な方法とは言えない。尚、ノイズの影響度を計算できるＳＰＩＣＥ（Simulation Program with Integrated Circuit Emphasis）シミュレータ等では、アプリケーション毎のチップシミュレーションを実行することでノイズ量からコンデンサ量を求めることが可能だが、このようなチップシミュレーションを行うには膨大な時間とハードウェアリソースが必要となり、コストが増大するので現実的な方法とは言えない。
【０００５】
又、プログラマブルデバイスのプラットホームであるアプリケーションを動かすにはノイズの影響が比較的大きいという実機評価の結果が出た場合、プログラマブルデバイス内のコンデンサの量を増やす必要がある。しかし、コンデンサの量を増やすには、プラットホームの再開発が必要となり、再開発、即ち、再設計には時間とコストがかかってしまう。
【０００６】
このように、プログラマブルデバイスの設計方法では、既存のプログラマブルデバイスのプラットホームを使用して、再開発やシミュレーション等によるコストの増大を避けてノイズの影響が比較的大きい（即ち、無視できない）プログラマブルデバイス内の箇所を特定してクロックジッタを抑制することが望まれている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平７−１３１０２５号公報
【特許文献２】特開平１−２０６４３８号公報
【特許文献３】特開平４−１１５６３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
従来のプログラマブルデバイス等の半導体集積回路の設計方法では、比較的短時間、且つ、比較的低コストでプログラマブルデバイスのクロックジッタを確実に抑制することは難しいという問題があった。
【０００９】
そこで、本発明は、比較的短時間、且つ、比較的低コストでプログラマブルデバイス等の半導体集積回路のクロックジッタを確実に抑制することが可能なクロックジッタ抑制方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の一観点によれば、クロックが入力されるクロックバッファを有する半導体集積回路におけるクロックジッタを抑制するクロックジッタ抑制方法であって、前記クロックバッファに接続された記憶素子に任意の論理値を設定する工程と、前記記憶素子の閾値電圧を可変設定する工程と、前記半導体集積回路内の解析対象となる対象回路を動作させた状態で前記記憶素子に保持されている値を読み出す工程と、前記閾値電圧と、読み出された値が設定された前記任意の論理値と反転関係にある記憶素子と、読み出しの対象となった各記憶素子の位置情報に基づいて、前記クロックバッファの電源電圧又は接地電圧のノイズの影響度と前記半導体集積回路内で一定以上のノイズの影響を受ける箇所を特定する解析処理を行う工程と、前記解析処理の結果に基づいて、前記半導体集積回路の構成要素の配置と前記半導体集積回路内の配線の制約条件を作成する制約条件作成処理を行う工程と、前記ノイズが低減するように前記制約条件の配置を変更して再配置する再配置処理、又は、前記制約条件の配線を変更して再配線する再配線処理を行う工程を含むクロックジッタ抑制方法が提供される。
【００１１】
本発明の一観点によれば、コンピュータに、クロックが入力されるクロックバッファを有する半導体集積回路におけるクロックジッタを抑制させるプログラムであって、前記クロックバッファに接続された記憶素子に任意の論理値を設定する手順と、前記記憶素子の閾値電圧を可変設定する手順と、前記半導体集積回路内の解析対象となる対象回路を動作させた状態で前記記憶素子に保持されている値を読み出して、前記記憶素子から読み出した値と前記閾値電圧と前記読み出しの対象となった各記憶素子の位置情報を含むファイルを記憶部に格納する手順と、前記ファイルを前記記憶部から読み出して、前記閾値電圧と、読み出された値が設定された前記任意の論理値と反転関係にある記憶素子と、読み出しの対象となった各記憶素子の位置情報に基づいて、前記クロックバッファの電源電圧又は接地電圧のノイズの影響度と前記半導体集積回路内で一定以上のノイズの影響を受ける箇所を特定する解析処理を行う手順と、前記解析処理の結果に基づいて、前記半導体集積回路の構成要素の配置と前記半導体集積回路内の配線の制約条件を作成する制約条件作成処理を行う手順と、前記ノイズが低減するように前記制約条件の配置を変更して再配置する再配置処理、又は、前記制約条件の配線を変更して再配線する再配線処理を行う手順を前記コンピュータに実行させるプログラムが提供される。
【発明の効果】
【００１２】
開示のクロックジッタ抑制方法及びプログラムによれば、比較的短時間、且つ、比較的低コストでプログラマブルデバイス等の半導体集積回路のクロックジッタを確実に抑制することが可能となる。
【図面の簡単な説明】
【００１３】
【図１】本発明の一実施例におけるプログラマブルデバイスの一部を説明する図である。
【図２】モニタ用記憶素子を説明する図である。
【図３】モニタ用記憶素子の構成の一例を示す回路図である。
【図４】逆バイアス電圧とスレッショルド電圧の関係の一例を示す図である。
【図５】バッファをＭＯＳトランジスタ５３で形成した場合のモデルを示す図である。
【図６】クロックバッファの周辺のＬＥがＦＰＧＡの動作に使用される場合にモニタ用記憶素子に保持される値の変化を説明する図である。
【図７】クロックバッファの周辺のＬＥがＦＰＧＡの動作に使用されない場合にモニタ用記憶素子に保持される値の変化を説明する図である。
【図８】実施例におけるクロックジッタ抑制方法の処理手順を説明するフローチャートである。
【図９】モニタ用記憶素子に保持された論理値の読み出しを説明する図である。
【図１０】クロック配線の変更を説明する図である。
【図１１】ＬＥの位置に応じたクロックの位相関係を説明するタイミングチャートである。
【図１２】論理回路の配置の変更を説明する図である。
【図１３】図８のステップＳ６，Ｓ７の処理を自動的に行う場合の処理を説明するフローチャートである。
【発明を実施するための形態】
【００１４】
開示のクロックジッタ抑制方法及びプログラムは、クロックが入力されるクロックバッファを有する半導体集積回路におけるクロックジッタを抑制する。クロックバッファに接続された記憶素子に任意の論理値を設定し、記憶素子の閾値電圧を可変設定し、半導体集積回路内の解析対象となる対象回路を動作させた状態で記憶素子に保持されている値を読み出す。閾値電圧と、読み出された値が設定された任意の論理値と反転関係にある記憶素子と、読み出しの対象となった各記憶素子の位置情報に基づいて、クロックバッファの電源電圧又は接地電圧のノイズの影響度と半導体集積回路内で一定以上のノイズの影響を受ける箇所を特定する解析処理を行う。この解析処理の結果に基づいて、半導体集積回路の構成要素の配置と半導体集積回路内の配線の制約条件を作成する制約条件作成処理を行い、ノイズが低減するように制約条件の配置を変更して再配置する再配置処理、又は、制約条件の配線を変更して再配線する再配線処理を行うことで、半導体集積回路のクロックジッタを抑制する。
【００１５】
以下に、開示のクロックジッタ抑制方法及びプログラムの各実施例を図面と共に説明する。
【実施例】
【００１６】
図１は、本発明の一実施例におけるプログラマブルデバイスの一部を説明する図である。本実施例では、本発明が半導体集積回路の一例であるＦＰＧＡ（Field Programmable Gate Array）に適用されている。
【００１７】
図１に示すように、ＦＰＧＡ１はマトリクス状に配置された複数の論理素子（ＬＥ：Logic Elements）２とクロックバッファ３を有する。この例では説明の便宜上、１つのクロックバッファ３のみを示すが、ＦＰＧＡ１内には言うまでもなく複数のクロックバッファ３が設けられていても良い。又、図１においては、後述するモニタ用記憶素子やデータライン等の図示は省略する。各ＬＥ２は、図１の下部に拡大して示すように、ＬＵＴ（Look-Up Table）２１、セレクタ２２及びフリップフロップ（ＦＦ：Flip-Flop）２３を有する。
【００１８】
図２は、モニタ用記憶素子を説明する図である。図２の例では、Ｎ個（Ｎは１以上の自然数）のクロックバッファ３−１〜３−Ｎの近傍に、対応するＮ個のモニタ用記憶素子５−１〜５−Ｎが配置されると共にクロックバッファ３−１〜３−Ｎに接続されている。各クロックバッファ３−１〜３−Ｎは同じ構成を有し、各モニタ用記憶素子５−１〜５−Ｎは同じ構成を有する。図２において、ＣＬＫはクロックバッファ３−１〜３−Ｎに入力されるクロック、Ｖｃｃは電源電圧、Ｇｎｄはグランド電圧を示す。
【００１９】
図３は、モニタ用記憶素子の構成の一例を示す回路図である。図３に示すモニタ用記憶素子５は、図２に示す各モニタ用記憶素子５−１〜５−Ｎに使用可能である。モニタ用記憶素子５は、クロックバッファ３の電源電圧Ｖｃｃ及び逆バイアス電圧Ｖｂｓが印加されるバッファ５１、及びバッファ５１の出力がリセット端子に入力されるフリップフロップ（ＦＦ）５２を有する。クロックバッファ３の電源電圧Ｖｃｃは、抵抗を有するバッファ５１を介してモニタ用記憶素子５のＦＦ５２のリセット端子に入力される。又、モニタ用記憶素子５は、バッファ５１に印加する逆バイアス電圧Ｖｂｓに応じてスレッショルド電圧（又は、スレッショルド値）Ｖｔｈを可変とする機能を有する。ＦＦ５２には、例えばＦＰＧＡ１の初期化状態で任意の論理値が入力されて、クロックＣＬＫに応答して保持されることで設定される。つまり、ＦＦ５２の入出力がモニタ用記憶素子５の入出力に相当する。尚、モニタ用記憶素子３の構成は、スレッショルド電圧Ｖｔｈを可変であれば、図３に示す構成に限定されないことは言うまでもない。
【００２０】
ＦＰＧＡ１内の全てのクロックバッファ３に対してモニタ用記憶素子５を設けずに、特定のクロックバッファ３に対してのみモニタ用記憶素子５を設けるようにしても良い。又、ＦＰＧＡ１内の全て、或いは、一部のクロックバッファ３に対して設けられたモニタ用記憶素子５のうち、解析対象領域内のモニタ用記憶素子５のみに対して論理値を保持設定し、ＦＰＧＡ１を動作させた状態で解析対象領域内のモニタ用記憶素子５のみから保持されている論理値を読み出すようにしても良い。
【００２１】
図４は、逆バイアス電圧Ｖｂｓとスレッショルド電圧Ｖｔｈの関係の一例を示す図である。図４中、縦軸はモニタ用記憶素子５のスレッショルド電圧Ｖｔｈを任意単位で示し、横軸はモニタ用記憶素子５のバッファ５１に印加する逆バイアス電圧Ｖｂｓを任意単位で示す。図４に示す関係Ｉは、例えば関係ＩＩの場合と比べて半導体基板の不純物濃度が高い場合を示す。各関係Ｉ，ＩＩからもわかるように、逆バイアス電圧Ｖｂｓの増加に伴いスレッショルド電圧Ｖｔｈが増加する。図４に示す如き関係Ｉ，ＩＩ自体は、例えば上記特許文献１等からも周知である。
【００２２】
図５は、バッファ５１をＭＯＳトランジスタ５３で形成した場合のモデルを示す図である。図５において、Ｉｄｓはドレイン・ソース電流、Ｖｇｓはゲート・ソース電圧、Ｖｄｓはドレイン・ソース電圧、Ｖｂｓは逆バイアス電圧を示す。
【００２３】
逆バイアス電圧Ｖｂｓを可変とする逆バイアス電源（図示せず）は、クロックバッファ３に供給する電源電圧Ｖｃｃの電源（図示せず）とは別体の電源である。これにより、クロックバッファ３が電源電圧Ｖｃｃ（又は、接地電圧Ｇｎｄ）に発生するノイズの影響を受ければ、モニタ用記憶素子５内部の電圧が設定されたスレッショルド電圧Ｖｔｈ未満になるため、モニタ用記憶素子５が保持する値の論理値が反転する。
【００２４】
図６は、図１中破線で囲んだ全てのＬＥ２を含むクロックバッファ３の周辺のＬＥ２がＦＰＧＡ１の動作時に使用される場合にモニタ用記憶素子５に保持される値の変化を説明する図である。図６中、縦軸は電圧を任意単位で示し、横軸は時間を任意単位で示す。この例では、説明の便宜上、モニタ用記憶素子５のスレッショルド電圧Ｖｔｈが適切な逆バイアス電圧Ｖｂｓをバッファ５１に印加することによりＶｔｈ５に設定されているものとする。この場合、クロックバッファ３が電源電圧Ｖｃｃに発生するスレッショルド電圧Ｖｔｈ５未満となるノイズＮｓ１の影響を受ければ、モニタ用記憶素子５内部（即ち、バッファ５１）の電圧Ｍ１が設定されたスレッショルド電圧Ｖｔｈ５未満となるため、モニタ用記憶素子５が保持する値の論理値が反転する。図６において、ノイズＮｓ１は一点鎖線で示す。
【００２５】
図７は、図１中破線で囲んだ領域内の全てのＬＥ２、即ち、クロックバッファ３の周辺のＬＥ２がＦＰＧＡ１の動作時に使用されない場合にモニタ用記憶素子５に保持される値の変化を説明する図である。図７中、縦軸は電圧を任意単位で示し、横軸は時間を任意単位で示す。この例では、説明の便宜上、モニタ用記憶素子５のスレッショルド電圧Ｖｔｈが適切な逆バイアス電圧Ｖｂｓをバッファ５１に印加することによりＶｔｈ５に設定されているものとする。この場合、クロックバッファ３の周辺のＬＥ２は、ＦＰＧＡ１の動作時に使用されないので、電源電圧Ｖｃｃに発生するノイズＮｓ２がスレッショルド電圧Ｖｔｈ６未満になることはない。このため、クロックバッファ３が電源電圧Ｖｃｃに発生するスレッショルド電圧Ｖｔｈ６となるノイズＮｓ２の影響を受けても、モニタ用記憶素子５内部（即ち、バッファ５１）の電圧Ｍ２が設定されたスレッショルド電圧Ｖｔｈ５未満になることはないため、モニタ用記憶素子５が保持する値の論理値が反転することもない。図７において、ノイズＮｓ２は一点鎖線で示す。
【００２６】
従って、予め任意の論理値をモニタ用記憶素子５に保持して設定すると共に、適切な逆バイアス電圧Ｖｂｓをバッファ５１に印加することによりスレッショルド電圧Ｖｔｈを設定しておき、その後にＦＰＧＡ１を動作させてからモニタ用記憶素子５に保持されている値を読み出すことで、ノイズの影響度とＦＰＧＡ１内で一定以上のノイズの影響を受ける箇所を特定する解析処理を行うことができる。又、ＦＰＧＡ１の動作時に使用されないＬＥ２については、これらのＬＥ２がＦＰＧＡ１の動作時に使用された場合に及ぼすノイズ解析への影響を比較的簡単に抑制することができるので、比較的短時間、且つ、比較的低コストで正確な解析処理を行うことができる。予め任意の論理値を各モニタ用記憶素子５に保持して設定すると共に、その後にＦＰＧＡ１を動作させてからモニタ用記憶素子５に保持されている値を読み出す処理は、周知の方法で行うことができる。
【００２７】
更に、解析処理の結果に基づいてＦＰＧＡ１の構成要素の配置とＦＰＧＡ１内の配線の制約条件を作成する制約条件作成処理を行ったり、ノイズが低減するように既に決定されている制約条件の配置を変更して再配置する再配置処理、又は、既に決定されている制約条件の配線を変更して再配線する再配線処理を行うことで、ノイズの影響を受け易いモニタ用記憶素子５の周辺からノイズ源を遠ざけて、比較的短時間、且つ、比較的低コストでＦＰＧＡ１のクロックジッタを確実に抑制することが可能となる。
【００２８】
次に、本実施例におけるクロックジッタ抑制方法の処理手順を、図８と共に説明する。図８は、本実施例におけるクロックジッタ抑制方法の処理手順を説明するフローチャートである。図８に示す処理手順は、ＦＰＧＡ１等の半導体集積回路の設計方法、又は、半導体集積回路の製造方法の一部を形成する。
【００２９】
図８において、ステップ（又は、工程）Ｓ１では、ＦＰＧＡ１に接続されたＣＰＵ（Central Processing Unit）等のプロセッサと記憶部を有する汎用コンピュータ等の外部装置から、ＦＰＧＡ１内の各モニタ用記憶素子５に論理値「１」（又は、論理値「０」）を設定する。ステップＳ１における各モニタ用記憶素子５への論理値の設定は、一般的なプログラマブルデバイスへのデータの書き込みと同様に行っても良い。ここで解析処理を施すＦＰＧＡ１は、ＣＡＤ等による設計に基づいて作成された試験用の半導体集積回路（又は、半導体チップ）である。ステップＳ２では、外部装置からＦＰＧＡ１内の各モニタ記憶素子５内のバッファ５１に適切な逆バイアス電圧Ｖｂｓを印加することで各モニタ用記憶素子５のスレッショルド電圧Ｖｔｈを可変設定する。スレッショルド電圧Ｖｔｈの設定値を変えることで、電源電圧Ｖｃｃ（又は、グランド電圧Ｇｎｄ）のノイズ量に応じてモニタ用記憶素子５のバッファ５１を形成するトランジスタが反応してモニタ用記憶素子５が保持する論理値が書き換わり、ノイズ量とスレッショルド電圧Ｖｔｈ（又は、逆バイアス電圧Ｖｂｓ）が関係付けられる。
【００３０】
ステップＳ３では、外部装置からＦＰＧＡ１内の任意のＬＥ２で形成される解析対象の論理回路を動作させる。ステップＳ４では、ＦＰＧＡ１内の解析対象の論理回路が動作している状態で、外部装置から少なくともＦＰＧＡ１内の解析対象領域内の各モニタ用記憶素子５に設定（即ち、保持）されている論理値を読み出す。解析対象領域は、解析対象の論理回路内、或いは、解析対象の論理回路近傍の領域である。このように、ステップＳ３で解析対象の論理回路を動作させることで、ステップＳ４で解析対象領域内で実際に発生するノイズの影響を測定する。
【００３１】
尚、ステップＳ１〜Ｓ３の処理は、操作者により手動で行っても良いことは言うまでもない。
【００３２】
ステップＳ４における解析領域内の各モニタ用記憶素子５に保持された論理値の読み出しは、例えば図９に示すような方法で行うことができる。図９は、モニタ用記憶素子５に保持された論理値の読み出しを説明する図である。図９において、汎用コンピュータ６１は、ＣＰＵ６２、半導体記憶装置やディスク装置等で形成された記憶部６３、表示部６４、インタフェース（Ｉ／Ｆ）部６５、キーボード等の入力部６６がバス６７により接続された周知の構成を有する。記憶部６３は、コンピュータ６１に外部接続される構成を有しても良い。コンピュータ６１のＩ／Ｆ部６５は、ケーブル７１及びＪＴＡＧ（Joint Test Action Group）コネクタ７２を介してＦＰＧＡ１内のＪＴＡＧ部１０１と接続される。ＪＴＡＧコネクタ７２及びＪＴＡＧ部１０１は、例えば半導体集積回路や基板の検査、デバッグ等で使用されるバウンダリスキャンテスト（Boundary Scan Test）やテストアクセスポートの標準ＩＥＥＥ１１４９．１に準拠した規格の構造を有する。ＪＴＡＧ部１０１は、コンピュータ６１からの指示に応答して解析対象領域内のモニタ用記憶素子５から読み出した論理値を順次ＪＴＡＧコネクタ７２へ出力する。尚、図９においては、読み出しの対象となる解析対象領域内のモニタ用記憶素子５のみを示す。
【００３３】
ここでは説明の便宜上、少なくとも図８のステップＳ４を実行するためのプログラムが記憶部６３に格納されているものとする。コンピュータ読み取り可能な記憶媒体（図示せず）に格納されているプログラムが記憶部６３にインストールされても、記憶部６３自体がプログラムを格納したコンピュータ読み取り可能な記憶媒体を形成しても良い。記憶部６３は、プログラムの他に、ＣＰＵ６２が実行する演算の中間データや後述するファイル等のデータを含む各種データを格納する。記憶部６３に格納されたプログラムは、操作者が入力部６６から入力した情報や指示に基づいてＣＰＵ６２により実行さる。操作者に対するメッセージ、操作メニューや解析結果等のデータは、表示部６４上に表示される。コンピュータ６１、即ち、ＣＰＵ６２は、周知のバウンダリスキャンの方法で、ＦＰＧＡ１内の解析対象の論理回路が動作している状態で、ＪＴＡＧ部１０１経由で解析対象領域内のモニタ用記憶素子５が保持する論理値を読み出す。
【００３４】
ステップＳ５では、ステップＳ２で設定したスレッショルド電圧Ｖｔｈと、各モニタ用記憶素子５から読み出された論理値と、読み出しの対象となった各モニタ用記憶素子５の位置情報を含むファイルを出力するファイル出力処理が行われる。ＦＰＧＡ１の設計データからモニタ用記憶素子５間の接続関係は予め分かっているので、この接続関係とモニタ用記憶素子５から論理値が読み出される順番から、ＦＰＧＡ１の平面図上での各モニタ用記憶素子５の縦方向上の位置（即ち、マトリクス配置の何列目に位置するか）及び横方向上の位置（即ち、マトリクス配置の何行目にあるか）を判断することで、各モニタ用記憶素子５の位置情報を知ることができる。ファイル出力処理により出力されたファイルは、例えば外部装置内の記憶部、或いは、外部装置に接続された記憶部に、外部装置から読み出し可能に格納される。図９に示すコンピュータ６１を外部装置として使用する場合、上記ファイルは例えば記憶部６３に格納される。
【００３５】
ステップＳ５のファイル出力処理を行う際、ＦＰＧＡ１に他の解析対象領域がある場合や、各モニタ用記憶素子５のスレッショルド電圧Ｖｔｈを変えて他の値に設定する場合等には、処理はステップＳ１へ戻り、上記と同様の処理が行われる。
【００３６】
ステップＳ６では、外部装置が記憶部に格納されたファイルを読み出してノイズの影響度とＦＰＧＡ１内で一定以上のノイズの影響を受ける箇所を特定する解析処理を行う。具体的には、読み出したファイル内のスレッショルド電圧Ｖｔｈと、読み出した論理値がステップＳ１で設定された論理値と異なる（即ち、反転関係にある）モニタ用記憶素子５と、読み出しの対象となった各モニタ用記憶素子５の位置情報に基づいて、ノイズの影響度とＦＰＧＡ１内で一定以上のノイズの影響を受ける箇所を特定する。ＦＰＧＡ１内のノイズが一定以上であるか否かは、設定されたスレッショルド電圧Ｖｔｈにより決定される。
【００３７】
ステップＳ７では、外部装置がステップＳ６の解析処理の結果に基づいて、ＦＰＧＡ１の構成要素の配置とＦＰＧＡ１内の配線の制約条件を作成する制約条件作成処理を行う。
【００３８】
又、ステップＳ８では、ノイズが低減するように、即ち、クロックジッタが抑制されるように、ステップＳ７において既に決定されている制約条件の配置を変更して再配置する再配置処理、又は、既に決定されている制約条件の配線を変更して再配線する再配線処理を行い、ノイズの影響を受け易いモニタ用記憶素子５の周辺からノイズ源を遠ざける。これにより、例えば図７の場合であれば、ノイズＮｓ２がスレッショルド電圧Ｖｔｈ６未満にならないように、ノイズＮｓ２の量が平坦化される。
【００３９】
図１０〜図１２は、ステップＳ８の処理の一例を説明する図である。図１０は、クロック配線の変更を説明する図であり、図１と同一部分には同一符号を付し、その説明は省略する。図１１は、ＬＥの位置に応じたクロックの位相関係を説明するタイミングチャートである。図１２は、論理回路の配置の変更を説明する図である。
【００４０】
図１０は、ステップＳ８において、ステップＳ７で既に決定されている制約条件の配線を変更して再配線する再配線処理を行う例を示す。図１０のＦＰＧＡ１において、クロックバッファ３の下側のＬＥ２のグループは下側領域Ｒ１内に配置され、クロックバッファ３の上側のＬＥ２のグループは上側領域Ｒ２内に配置されている。再配線処理では、図１に示す１系統のクロックラインを図１０に示す如き２系統のクロックラインに変更し、ノイズの影響を受け易いモニタ用記憶素子５の周辺からノイズ源を遠ざける。又、領域Ｒ１内のＬＥ２に入力される図１１（ａ）のクロックＣＬＫ１の位相と、領域Ｒ２内のＬＥ２に入力される図１１（ｂ）のクロックＣＬＫ２の位相を反転する。これにより、再配線処理を行う前の状態でクロックバッファ３の周辺のＬＥ２がＦＰＧＡ１の動作時に使用される場合にモニタ用記憶素子５に保持される値の変化が図６のような場合であっても、再配線後の状態では対応するモニタ用記憶素子５に保持される値の変化は図７のようになり、ノイズを良好に抑制してクロックジッタを抑制することができる。
【００４１】
図１２は、ステップＳ８において、ステップＳ７で既に決定されている制約条件の配置を変更して再配置する再配置処理を行う例を示す。図１２中、ＦＰＧＡ１内のＬＥ２やクロックバッファ３等の図示は省略する。図１２のＦＰＧＡ１は、ノイズ量が多い順に領域１１１，１１２，１１３，１１４を有するので、図１２はＦＰＧＡ１内のノイズ分布を示す図でもある。再配置処理では、解析対象となる論理回路がノイズ量が大きい領域１１１内の部分１５１に配置されているため、この論理回路をノイズ量が小さい領域１１４内の部分１５２に再配置し、ノイズの影響を受け易いモニタ用記憶素子５の周辺からノイズ源を遠ざける。これにより、再配置処理を行う前の状態で部分１５１内のクロックバッファ３の周辺のＬＥ２がＦＰＧＡ１の動作時に使用される場合にモニタ用記憶素子５に保持される値の変化が図６のような場合であっても、領域１１４内の部分１５２内への再配置後の状態では対応するモニタ用記憶素子５に保持される値の変化は図７のようになり、ノイズを良好に抑制してクロックジッタを抑制することができる。
【００４２】
ステップＳ６の解析処理、ステップＳ７の制約条件作成処理、及び、ステップＳ８の再配置処理と再配線処理は、いずれも外部装置により自動的に行っても、操作者と外部装置との間のインタアクティブな操作に応じて半自動的に行っても良い。
【００４３】
ステップＳ９では、外部装置がステップＳ７の配置処理と配線処理及びステップＳ８の再配置処理と再配線処理の結果に基づいて、解析対象の論理回路を含むＦＰＧＡ１のコンフィグレーションデータを作成する。ステップＳ１０では、外部装置がＦＰＧＡ１内に解析するべき他の論理回路があるか否かに応じてＦＰＧＡ１のノイズに関する解析処理を終了するか否かを判定する。ＦＰＧＡ１内に解析するべき他の論理回路があれば、ステップＳ１０の判定結果はＮＯとなって処理はステップＳ１へ戻る。一方、ＦＰＧＡ１内に解析するべき他の論理回路がなければ、ステップＳ１０の判定結果がＹＥＳとなってＦＰＧＡ１のノイズに関する解析処理は終了する。
【００４４】
尚、ステップＳ８の再配置処理と再配線処理の結果を反映した新たなＦＰＧＡ１を作成してこの新たなＦＰＧＡ１に対して上記ステップＳ１〜Ｓ１０の処理（又は、手順）を繰り返すことで、ＦＰＧＡ１の構成を用途や要求に応じて最適化することができることは、言うまでもない。
【００４５】
上記の如きＦＰＧＡ１のノイズに関する解析処理を行うことで、比較的短時間、且つ、比較的低コストでＦＰＧＡ１のクロックジッタを確実に抑制することが可能となる。
【００４６】
図１３は、図８のステップＳ６，Ｓ７の処理を外部装置により自動的に行う場合の処理を説明するフローチャートである。ここでは説明の便宜上、図９のコンピュータ６１が外部装置として使用される場合、即ち、ステップＳ２１〜Ｓ２７がコンピュータ６１のＣＰＵ６２により実行される場合を例に取って説明する。
【００４７】
図１３において、図８のステップＳ５の後、ステップＳ２１では、記憶部６３に格納されたファイルを読み出す。ステップＳ２２では、読み出したファイル中、読み出された論理値が「０」であるモニタ用記憶素子５があるか否かを判定し、判定結果がＮＯであると処理は図８のステップＳ８へ進む。ステップＳ２２の判定結果がＹＥＳであると、論理値「０」が読み出された各モニタ用記憶素子５の位置情報から、論理値「０」が読み出された各モニタ用記憶素子５が配置された領域（即ち、位置）に既に配置禁止制約条件が設定されているか否かを判定する。
【００４８】
ステップＳ２３の判定結果がＮＯであると、ステップＳ２４では、論理値「０」が読み出された各モニタ用記憶素子５の位置情報から、ＦＰＧＡ１の平面図上で論理値「０」が読み出された各モニタ用記憶素子５の上下左右（即ち、周辺）に設けられているＬＥ２の位置を、解析対象の論理回路の動作時に動作するＬＥ２の配置を禁止する配置禁止領域に設定する配置禁止制約条件のファイル（以下、配置禁止制約条件ファイルと言う）を作成する。ステップＳ２５では、ステップＳ２４で作成した配置禁止制約条件ファイルをコンピュータ６１の記憶部６３に格納し、処理は図８のステップＳ８へ進む。
【００４９】
一方、ステップＳ２３の判定結果がＹＥＳであると、ステップＳ２６では、既に設定されている配置禁止制約条件が示す配置禁止領域の外側上下左右（即ち、周辺）に設けられているＬＥ２の位置を、解析対象の論理回路の動作時に動作するＬＥ２の配置を禁止する配置禁止領域に設定する配置禁止制約条件ファイルを作成する。ステップＳ２７では、ステップＳ２６で作成した配置禁止制約条件ファイルをコンピュータ６１の記憶部６３に格納し、処理は図８のステップＳ８へ進む。
【００５０】
このように、図８の処理手順を自動化することで、チップシミュレーションを行う場合と比較すると、必要となる解析時間、ハードウェアリソース及びコストが大幅に削減される。又、解析対象となる論理回路の動作時におけるノイズの影響が比較的大きい場合でも、論理回路に接続されるコンデンサの量を増やすような論理回路のプラットホームの再開発が不要である。つまり、既存の論理回路のプラットホームを使用することで、再開発やシミュレーション等によるコストの増大を避けてノイズの影響が比較的大きい（即ち、無視できない）論理回路内の箇所を特定してクロックジッタを抑制することができる。更に、論理回路の実アプリケーションでの測定結果をフィードバックして解析処理を行うため、解析結果が正確である。
【００５１】
上記各実施例では、解析対象となる半導体集積回路はＬＳＩ（Large Scale Integrated）回路等の半導体チップ内に設けられた回路であるが、解析対象となる半導体集積回路は部品が搭載されているプリント基板に搭載された回路であっても良い。
【００５２】
以上の実施例を含む実施形態に関し、更に以下の付記を開示する。
（付記１）
クロックが入力されるクロックバッファを有する半導体集積回路におけるクロックジッタを抑制するクロックジッタ抑制方法であって、
前記クロックバッファに接続された記憶素子に任意の論理値を設定する工程と、
前記記憶素子の閾値電圧を可変設定する工程と、
前記半導体集積回路内の解析対象となる対象回路を動作させた状態で前記記憶素子に保持されている値を読み出す工程と、
前記閾値電圧と、読み出された値が設定された前記任意の論理値と反転関係にある記憶素子と、読み出しの対象となった各記憶素子の位置情報に基づいて、前記クロックバッファの電源電圧又は接地電圧のノイズの影響度と前記半導体集積回路内で一定以上のノイズの影響を受ける箇所を特定する解析処理を行う工程と、
前記解析処理の結果に基づいて、前記半導体集積回路の構成要素の配置と前記半導体集積回路内の配線の制約条件を作成する制約条件作成処理を行う工程と、
前記ノイズが低減するように前記制約条件の配置を変更して再配置する再配置処理、又は、前記制約条件の配線を変更して再配線する再配線処理を行う工程を含む、クロックジッタ抑制方法。
（付記２）
前記制約条件作成処理を行う工程及び前記再配置処理又は前記再配線処理を行う工程は、コンピュータにより実行される、付記１記載のクロックジッタ抑制方法。
（付記３）
前記任意の論理値を設定する工程、前記閾値電圧を可変設定する工程、前記記憶素子に保持されている値を読み出す工程、及び前記解析処理を行う工程は、いずれもコンピュータにより実行される、付記２記載のクロックジッタ抑制方法。
（付記４）
前記記憶素子は前記クロックバッファの前記電源電圧を印加されるバッファと前記バッファの出力がリセット端子に印加されるフリップフロップを有し、
前記閾値電圧を可変設定する工程は、前記記憶素子の前記バッファに印加する逆バイアス電圧を可変設定することで前記閾値電圧を可変設定する、付記２又は３記載のクロックジッタ抑制方法。
（付記５）
前記再配置処理又は前記再配線処理を行う工程は、前記ノイズの影響を受け易い記憶素子の周辺からノイズ源を遠ざける、付記２乃至４のいずれか１項記載のクロックジッタ抑制方法。
（付記６）
前記再配置処理又は前記再配線処理の結果を反映して作成された新たな半導体集積回路に対して前記各工程の処理を繰り返すことで前記新たな半導体集積回路の構成を最適化する、付記２乃至５のいずれか１項記載のクロックジッタ抑制方法。
（付記７）
コンピュータに、クロックが入力されるクロックバッファを有する半導体集積回路におけるクロックジッタを抑制させるプログラムであって、
前記クロックバッファに接続された記憶素子に任意の論理値を設定する手順と、
前記記憶素子の閾値電圧を可変設定する手順と、
前記半導体集積回路内の解析対象となる対象回路を動作させた状態で前記記憶素子に保持されている値を読み出して、前記記憶素子から読み出した値と前記閾値電圧と前記読み出しの対象となった各記憶素子の位置情報を含むファイルを記憶部に格納する手順と、
前記ファイルを前記記憶部から読み出して、前記閾値電圧と、読み出された値が設定された前記任意の論理値と反転関係にある記憶素子と、読み出しの対象となった各記憶素子の位置情報に基づいて、前記クロックバッファの電源電圧又は接地電圧のノイズの影響度と前記半導体集積回路内で一定以上のノイズの影響を受ける箇所を特定する解析処理を行う手順と、
前記解析処理の結果に基づいて、前記半導体集積回路の構成要素の配置と前記半導体集積回路内の配線の制約条件を作成する制約条件作成処理を行う手順と、
前記ノイズが低減するように前記制約条件の配置を変更して再配置する再配置処理、又は、前記制約条件の配線を変更して再配線する再配線処理を行う手順
を前記コンピュータに実行させる、プログラム。
（付記８）
前記記憶素子は前記クロックバッファの前記電源電圧を印加されるバッファと前記バッファの出力がリセット端子に印加されるフリップフロップを有し、
前記閾値電圧を可変設定する手順は、前記記憶素子の前記バッファに印加する逆バイアス電圧を可変設定することで前記閾値電圧を可変設定する、付記７記載のプログラム。
（付記９）
前記再配置処理又は前記再配線処理を行う手順は、前記ノイズの影響を受け易い記憶素子の周辺からノイズ源を遠ざける、付記７乃至９のいずれか１項記載のプログラム。
（付記１０）
前記コンピュータに、前記再配置処理又は前記再配線処理の結果を反映して作成された新たな半導体集積回路に対して前記各手順の処理を繰り返すことで前記新たな半導体集積回路の構成を最適化させる、付記７乃至９のいずれか１項記載のプログラム。
（付記１１）
付記７乃至１０のいずれか以降記載のプログラムを格納した、コンピュータ読み取り可能な記憶媒体。
【００５３】
以上、開示のクロックジッタ抑制方法、プログラム、半導体集積回路及びコンピュータ読み取り可能な記憶媒体を実施例により説明したが、本発明は上記実施例に限定されるものではなく、本発明の範囲内で種々の変形及び改良が可能であることは言うまでもない。
【符号の説明】
【００５４】
１      ＦＰＧＡ
２      ＬＥ
３，３−１〜３−Ｎ      クロックバッファ
５，５−１〜５−Ｎ      モニタ用記憶素子
５１      バッファ
５２      ＦＦ
６１      コンピュータ
６２      ＣＰＵ
６３      記憶部
１０１      ＪＴＡＧ部
【図１】
2011151100.tif 000003
【図２】
2011151100.tif 000004
【図３】
2011151100.tif 000005
【図４】
2011151100.tif 000006
【図５】
2011151100.tif 000007
【図６】
2011151100.tif 000008
【図７】
2011151100.tif 000009
【図８】
2011151100.tif 000010
【図９】
2011151100.tif 000011
【図１０】
2011151100.tif 000012
【図１１】
2011151100.tif 000013
【図１２】
2011151100.tif 000014
【図１３】
2011151100.tif 000015