(57)【要約】【課題】より少ない設計労力で、より高い性能を得るとともに、より大規模・高速なデジタルシステムを得ることにある。【解決手段】単一もしくは複数のクロック信号に従いデジタル処理を行って所定の機能を奏するデジタルシステム１において、前記デジタルシステム内の、前記クロック信号を供給する複数のクロック回路にそれぞれ介挿されるとともに、制御信号が示す値に応じて遅延時間を変化させる回路素子で各々構成された複数の遅延素子４と、前記複数の遅延素子に与える複数の制御信号を保持する複数の保持回路５と、を具え、前記複数の保持回路が、それらの保持回路が保持する前記複数の制御信号の値を外部装置６〜８により、確率的探索手法に従って、前記デジタルシステムが動作タイミングに関し誤りなく動作するように変更されるものであることを特徴としている。【選択図】　　　図１
2004005687.tif 000002
【特許請求の範囲】
【請求項１】
単一もしくは複数のクロック信号に従いデジタル処理を行って所定の機能を奏するデジタルシステムにおいて、
前記デジタルシステム内の、前記クロック信号を供給する信号線を含む複数のクロック回路にそれぞれ介挿されるとともに、制御信号が示す値に応じて遅延時間を変化させる回路素子で各々構成された複数の遅延素子と、前記複数の遅延素子に与える前記複数の制御信号を保持する複数の保持回路とを具え、
前記複数の保持回路が、それらの保持回路が保持する前記複数の制御信号の値を変更可能であり、
前記デジタルシステムにデジタルテスト信号を入力し、その時の該デジタルシステムの出力と該テスト信号により該デジタルシステムが誤りなく動作した場合の出力とを比較する評価関数を用いて該システムの適応度を評価し、該評価関数を用いた確率的探索手法により前記すべての調整可能な遅延素子の遅延値を制御入力パラメータとして順次より適応度の高い前記パラメータを探索することにより、前記デジタルシステムが動作タイミングに関し誤りなく動作するように前記複数の制御信号の値を変更・調整することを特徴とするデジタルシステム。
【請求項２】
前記保持回路が保持する前記複数の制御信号の値を変更・調整する装置がデジタルシステムの外部に存在することを特徴とする前記請求項１記載のデジタルシステム。
【請求項３】
前記保持回路が保持する前記複数の制御信号の値を変更・調整する装置がデジタルシステム内に内蔵されていることを特徴とする前記請求項１記載のデジタルシステム。
【請求項４】
前記保持回路が保持する制御信号の値は、遺伝的アルゴリズムに従って前記制御信号の値を順次に変更して探索した、前記デジタルシステムが動作タイミングに関し誤りなく動作する状態となる最適値に変更することを特徴とする前記請求項１〜３の内、いずれか１項記載のデジタルシステム。
【請求項５】
前記保持回路が保持する制御信号の値は、遺伝的プログラミングに従って前記制御信号の値を順次に変更して探索した、前記デジタルシステムが動作タイミングに関し誤りなく動作する状態となる最適値に変更することを特徴とする前記請求項１〜３の内、いずれか１項記載のデジタルシステム。
【請求項６】
前記複数の制御信号の変更は、前記クロック信号の周波数を段階的に上昇させながら行われることを特徴とする前記請求項１〜５の内、いずれか１項記載のデジタルシステム。
【請求項７】
前記デジタルシステムは、集積回路として構成されていることを特徴とする前記請求項１〜６の内、いずれか１項記載のデジタルシステム。
【請求項８】
前記デジタルシステムは、回路基板として構成されていることを特徴とする前記請求項１〜６の内、いずれか１項記載のデジタルシステム。
【請求項９】
前記デジタルシステムは、パイプライン構造を持っていることを特徴とする前記請求項１〜８の内、いずれか１項記載のデジタルシステム。
【請求項１０】
単一もしくは複数のクロック信号に従いデジタル処理を行って所定の機能を奏するデジタルシステムの前記クロック信号のタイミングを変更・調整する方法において、
前記デジタルシステム内の、前記クロック信号を供給する信号線を含む複数のクロック回路にそれぞれ介挿されるとともに、制御信号が示す値に応じて遅延時間を変化させる回路素子で各々構成された複数の遅延素子、および前記複数の遅延素子に与える前記複数の制御信号を保持する複数の保持回路とを備え、
前記複数の保持回路が、それらの保持回路が保持する前記複数の制御信号の値を変更可能であり、
前記デジタルシステムにデジタルテスト信号を入力し、その時の該デジタルシステムの出力と該テスト信号により該デジタルシステムが誤りなく動作した場合の出力とを比較する評価関数を用いて該システムの適応度を評価し、該評価関数を用いた確率的探索手法により前記すべての調整可能な遅延素子の遅延値を制御入力パラメータとして順次より適応度の高い前記パラメータを探索することにより、前記デジタルシステムが動作タイミングに関し誤りなく動作するように前記複数の制御信号の値を変更・調整することを特徴とするデジタルシステムのクロック信号のタイミング調整方法。
【請求項１１】
前記保持回路が保持する前記複数の制御信号の値を変更・調整する装置がデジタルシステムの外部に存在することを特徴とする前記請求項１０記載のデジタルシステムのクロック信号のタイミング調整方法。
【請求項１２】
前記保持回路が保持する前記複数の制御信号の値を変更・調整する装置がデジタルシステム内に内蔵されていることを特徴とする前記請求項１０記載のデジタルシステムのクロック信号のタイミング調整方法。
【請求項１３】
前記保持回路が保持する制御信号の値は、遺伝的アルゴリズムに従って前記制御信号の値を順次に変更して探索した、前記デジタルシステムが動作タイミングに関し誤りなく動作する状態となる最適値に変更することを特徴とする前記請求項１０〜１２の内、いずれか１項記載のデジタルシステムのクロック信号のタイミング調整方法。
【請求項１４】
前記保持回路が保持する制御信号の値は、遺伝的プログラミングに従って前記制御信号の値を順次に変更して探索した、前記デジタルシステムが動作タイミングに関し誤りなく動作する状態となる最適値に変更することを特徴とする前記請求項１０〜１２の内、いずれか１項記載のデジタルシステムのクロック信号のタイミング調整方法。
【請求項１５】
前記複数の制御信号の変更は、前記クロック信号の周波数を段階的に上昇させながら行われることを特徴とする前記請求項１０〜１４の内、いずれか１項記載のデジタルシステムのクロック信号のタイミング調整方法。
【請求項１６】
前記デジタルシステムは、集積回路として構成されていることを特徴とする前記請求項１０〜１５の内、いずれか１項記載のデジタルシステムのクロック信号のタイミング調整方法。
【請求項１７】
前記デジタルシステムは、回路基板として構成されていることを特徴とする前記請求項１０〜１５の内、いずれか１項記載のデジタルシステムのクロック信号のタイミング調整方法。
【請求項１８】
前記デジタルシステムは、パイプライン構造を持っていることを特徴とする前記請求項１０〜１７の内、いずれか１項記載のデジタルシステムのクロック信号のタイミング調整方法。
【請求項１９】
前記外部装置は、電子計算機で構成されていることを特徴とする前記請求項２記載のデジタルシステム。
【請求項２０】
前記外部装置は、電子計算機で構成されていることを特徴とする前記請求項１１記載のデジタルシステムのクロック信号のタイミング調整方法。
【請求項２１】
単一もしくは複数のクロック信号に従いデジタル処理を行って所定の機能を奏するデジタルシステムの前記クロック信号のタイミングを変更・調整する方法における該変更・調整する処理を電子計算機に行わせる処理プログラムを記録した記録媒体において、
前記デジタルシステム内の、前記クロック信号を供給する信号線を含む複数のクロック回路にそれぞれ介挿されるとともに、制御信号が示す値に応じて遅延時間を変化させる回路素子で各々構成された複数の遅延素子、および前記複数の遅延素子に与える前記複数の制御信号を保持する複数の保持回路とを備え、
前記複数の保持回路が、それらの保持回路が保持する前記複数の制御信号の値を変更可能であり、前記保持回路が保持する前記複数の制御信号の値を変更・調整する装置がデジタルシステムの外部に存在する電子計算機であって、
前記デジタルシステムにデジタルテスト信号を入力し、その時の該デジタルシステムの出力と該テスト信号により該デジタルシステムが誤りなく動作した場合の出力とを比較する評価関数を用いて該システムの適応度を評価し、該評価関数を用いた確率的探索手法により前記すべての調整可能な遅延素子の遅延値を制御入力パラメータとして順次より適応度の高い前記パラメータを探索することにより、前記デジタルシステムが動作タイミングに関し誤りなく動作するように前記複数の制御信号の値を変更・調整することを前記電子計算機に行わせることを特徴とするデジタルシステムのクロック信号のタイミング調整処理プログラムを記録した記録媒体。
【請求項２２】
前記評価関数として、
【数１】
2004005687.tif 000003
を用いることを特徴とする前記請求項４記載のデジタルシステム。
ただし、ｆｉｔｎｅｓｓは遺伝的アルゴリズムにおける適応度、ＮＴは、デジタルテスト信号の系列に対するメモリテストパターンジェネレータ回路のデジタル出力信号およびデジタルシステム内部状態信号の総ビット数、ＮＣは該メモリテストパターンジェネレータ回路のデジタル出力信号およびデジタルシステム内部状態信号のうち期待どおりのデジタル値の総ビット数。
【請求項２３】
前記評価関数として、
【数２】
2004005687.tif 000004
を用いることを特徴とする前記請求項２２記載のデジタルシステム。
ただし、ｆｉｔｎｅｓｓは遺伝的アルゴリズムにおける適応度、Ｔは計測した平均温度、Ｉは計測した平均消費電流量、Ｔｍは理想的な平均温度、Ｉｍは理想的な平均消費電流量、ｗ１、ｗ２は加重係数。
【請求項２４】
前記デジタルシステムは、パイプライン構造を持っており、前記評価関数として、
【数３】
2004005687.tif 000005
を用いることを特徴とする前記請求項２２記載のデジタルシステム。
ただし、ｆｉｔｎｅｓｓは遺伝的アルゴリズムにおける適応度、ＮＴはデジタルテスト信号の系列に対してデジタル信号観測装置で観測されるデジタル値の総ビット数、ＮＣは該デジタル値のうち期待どおりのデジタル値の総ビット数、ＤＬは調整しているすべての遅延素子の遅延時間の合計。
【請求項２５】
前記デジタルシステムは、回路基板として構成されており、前記評価関数として、
【数４】
2004005687.tif 000006
を用いることを特徴とする前記請求項２２記載のデジタルシステム。
ただし、ｆｉｔｎｅｓｓは遺伝的アルゴリズムにおける適応度、Ｐは計測した電磁波のピークパワー。
【請求項２６】
前記評価関数として、
【数５】
2004005687.tif 000007
を用いることを特徴とする前記請求項１３記載のデジタルシステムのクロック信号のタイミング調整方法。
ただし、ｆｉｔｎｅｓｓは遺伝的アルゴリズムにおける適応度、ＮＴは、デジタルテスト信号の系列に対するメモリテストパターンジェネレータ回路のデジタル出力信号およびデジタルシステム内部状態信号の総ビット数、ＮＣは該メモリテストパターンジェネレータ回路のデジタル出力信号およびデジタルシステム内部状態信号のうち期待どおりのデジタル値の総ビット数。
【請求項２７】
前記評価関数として、
【数６】
2004005687.tif 000008
を用いることを特徴とする前記請求項２６記載のデジタルシステムのクロック信号のタイミング調整方法。
ただし、ｆｉｔｎｅｓｓは遺伝的アルゴリズムにおける適応度、Ｔは計測した平均温度、Ｉは計測した平均消費電流量、Ｔｍは理想的な平均温度、Ｉｍは理想的な平均消費電流量、ｗ１、ｗ２は加重係数。
【請求項２８】
前記デジタルシステムは、パイプライン構造を持っており、前記評価関数として、
【数７】
2004005687.tif 000009
を用いることを特徴とする前記請求項２６記載のデジタルシステムのクロック信号のタイミング調整方法。
ただし、ｆｉｔｎｅｓｓは遺伝的アルゴリズムにおける適応度、ＮＴはデジタルテスト信号の系列に対してデジタル信号観測装置で観測されるデジタル値の総ビット数、ＮＣは該デジタル値のうち期待どおりのデジタル値の総ビット数、ＤＬは調整しているすべての遅延素子の遅延時間の合計。
【請求項２９】
前記デジタルシステムは、回路基板として構成されており、前記評価関数として、
【数８】
2004005687.tif 000010
を用いることを特徴とする前記請求項２６記載のデジタルシステムのクロック信号のタイミング調整方法。
ただし、ｆｉｔｎｅｓｓは遺伝的アルゴリズムにおける適応度、Ｐは計測した電磁波のピークパワー。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、単一あるいは複数のクロック信号に同期して動作する単一あるいは複数のデジタルシステムおよび、かかるデジタルシステムのクロック信号のタイミング調整方法、そしてその調整方法で実行する処理プログラムを記録した記録媒体に関するものである。
【０００２】
本発明は特に、デジタルシステムの構成要素であるデジタル回路素子の数が多い場合や、クロック信号の周波数が高い場合に極めて有効である。
【０００３】
【従来の技術および発明が解決しようとする課題】
デジタルシステムは、通常、ＡＮＤ素子、ＯＲ素子、ＮＯＴ素子の３種類の論理素子と、真（論理値「１」）と偽（論理値「０」）の２通りの状態（１ビット）を記憶するフリップフロップと呼ばれる記憶素子から構成される。
【０００４】
最も基本的なフリップフロップは、各１本の入出力端子とクロック端子の３端子から構成され、クロック端子に印加されたクロック信号と呼ばれるデジタル信号の立ち上がりに入力端子のデジタル信号を出力端子にコピーし、かつ、次のクロック信号の立ち上がりまでそのデジタル値を保持する機能を有する。
【０００５】
一般に、有限個のクロック信号に従って動作するデジタルシステムを同期回路と呼び、同期回路では各フリップフロップのクロック端子に到着するクロック信号の時間差が全体の動作に影響を与える。一般に各フリップフロップにクロック信号を供給する信号線は、途中にバッファが挿入されたり、物理配線上の工夫が施される等特別な回路を採用することが多く、ここではクロック回路と呼ぶ。
【０００６】
例えば、同じ１ｎｓの時間のずれでも、クロック周波数が１０ＭＨｚの場合、つまり、クロックサイクルが１００ｎｓの場合には１％のずれであるのに対し、クロック周波数が１００ＭＨｚの場合、つまりクロックサイクルが１０ｎｓの場合には１０％のずれであり、補正が必要となる。つまり、クロック周波数が高いほど精密なタイミング調整技術が必要となる。
【０００７】
デジタルシステムのクロックタイミングの誤差に対する従来の対策としては、
（１）　デジタルシステムの設計時に、クロックタイミングの誤差ができるだけ小さくなるように設計者が手動で調整するという対策手法。
（２）　デジタルシステム中のクロック回路に、クロックタイミングの誤差を補正するような調整回路を入れるという対策手法という対策手法。
の２通りがあった。
【０００８】
しかし、対策（１）では次のような問題が解決されない。すなわち、トランジスタや抵抗、コンデンサといった電子回路素子はそれぞれの特性にバラツキを有しており、各素子のバラツキは実際にシステムを作成するまで明らかではない。これは集積回路内の素子において特に顕著に見られる特性である。このバラツキの影響を最も強く受けるのがクロックタイミングであり、デジタル同期システムの動作周波数の上限を決定する。
【０００９】
このように、デジタルシステムの設計時には完全にこれらのバラツキを把握することはできないことから、ある範囲のバラツキを許容して設計、作成するか、もしくは、試作を繰り返して実際のバラツキの度合いを測定するという手法がとられてきた。
【００１０】
しかしながら、この方法には明らかに限度があり、各素子の持つ特性を限界まで利用することはできなかった。。
別の問題点として、手動での調整では、扱える回路規模に限界があり、コンピュータシステムのような大規模なデジタルシステム全体に対する調整は、現実問題として不可能であった。また、大規模問題を扱う際の常套手段である部分問題への切り分けも、調整範囲を制限してしまい望ましくない。
【００１１】
対策（２）の問題点は、調整回路が挿入されていても、回路規模が大きくなるに従い、調整探索空間が広大なものになってしまい、実用的な時間での調整が不可能になってしまう点である。逆に、実用的な時間で調整可能な程度の調整回路では、デジタルシステムのごく一部を調整対象とするのみであり、その効果は極めて限定されてしまう。
【００１２】
上記デジタルシステムが集積回路として作製される場合には、さらに以下の２つの点に特徴がある。
１つ目は、集積回路内部は修正不能であり、全て設計時に決定しなければならないという点である。そこで調整回路を挿入する手段がとられるが、調整探索空間が膨大になることから全体の動作を考慮した調整は不可能である。従って、後述する本発明のような新たな手法を用いなければ集積回路チップ作製後に全体の動作を考慮したタイミング調整を行うことは不可能である。
【００１３】
２つ目は、集積回路チップ内の素子のバラツキが大きく、作製後でなければ内部の素子のパラメータ（抵抗やコンデンサなどの値やトランジスタの特性）の変化が分からないという点である。従って、そのバラツキがクロックタイミングに与える影響が大きく、素子の特性を限界まで利用するために正確な素子のパラメータ値が必要な場合には、後述する本発明のような新たな手法が不可欠である。
【００１４】
デジタルシステムが、ＩＰと呼ばれる、知的所有権（Ｉｎｔｅｌｌｅｃｔｕａｌ　Ｐｒｏｐｅｒｔｙ）の対象とされるとともに第３者による使用を目的とされたハードウェア設計データや、通常のハードウェア設計データライブラリである場合には、その機能やインターフェース諸元は公開されるが、内部構造は等価回路以上の情報は公開されない場合がある。
【００１５】
クロック周波数が高い集積回路でそうしたＩＰを使用する場合には、ＩＰの対象とされた内部にまで及ぶ精密なタイミング調整が不可欠であるが、上述のように権利上内部がブラックボックスとなっていることが多いので、そうした権利を維持しつつ高いクロック周波数で動作する集積回路を作製するには、外部回路側で各ＩＰにとって最適な入出力タイミングのデータを作り出すようなクロック回路を提供する必要があるが、同一のＩＰを用いても最適な入出力タイミングはチップごとに異なるため、従来手法では不可能であった。
【００１６】
また、現在の大部分のデジタルシステムは、ＣＭＯＳテクノロジを用いており、デジタルシステムがＣＭＯＳテクノロジを用いて構成されている場合、電源電流の大部分はそれぞれのデジタル信号が　（論理値「０」から論理値「１」へ、あるいは論理値「１」から論理値「０」ヘ）　変化する時に流れる。
【００１７】
従って、もしも多数のデジタル信号が同時に変化した場合には、瞬間的に大きな電源電流が流れ、電源容量が不足して電源電圧が変動し、ひいては誤動作の原因になることもある。
【００１８】
さらに、瞬間的に大きな電流が流れると、継続的に小さな電流が流れる場合に比べて、消費電力が増大し、大きな容量の電源と電源供給線を用意する必要があり、これらがデジタルシステムのサイズを大きくしてしまう。
【００１９】
このデジタル信号の同時変化の影響を減らすには、それぞれの信号のタイミング、つまり、それぞれのフリップフロップのタイミングを、全体が誤りなく動作する範囲で微調整することにより達成できるが、従来手法ではこうした全体の動作を考慮した上での精密なタイミング調整は不可能であった。
【００２０】
また、デジタルシステムから発生する不要電磁放射（ＥＭＩ）は、周囲の他のデジタルシステムを誤動作させるなどの作用を及ぼし、抑制するべきものである。この問題は、デジタルシステムが回路基板として実装される場合に特に深刻であり、各国のさまざまな法律で規制が行われている。ＥＭＩはデジタル信号の（論理値「０」から論理値「１」へ、あるいは論理値「１」から論理値「０」ヘの）変化時に発生し、多くのデジタル信号が一斉に変化するときには大きなピークパワーを持ったＥＭＩが発生する。
【００２１】
これを抑制する手段の一つに、デジタル信号の同時変化、つまりフリップフロップの同時変化を減らす方法があるが、デジタルシステム全体が所定のクロック周波数において誤りなく動作する範囲でデジタルシステム全体のフリップフロップのタイミングを精密に調整することは、従来手法では不可能であった。
【００２２】
以上のような理由から、特に大規模、高速なシステムにおいて、クロック信号のタイミング調整を個々のデジタルシステムごとに自動で行う新たな方法が必要とされており、本発明は、かかる課題を有利に解決するためになされたものである。
【００２３】
【課題を解決するための手段およびその作用・効果】
上記目的を達成するため、請求項１記載の本発明のデジタルシステムは、単一もしくは複数のクロック信号に従いデジタル処理を行って所定の機能を奏するデジタルシステムにおいて、前記デジタルシステム内の、前記クロック信号を供給する複数のクロック回路にそれぞれ介挿されるとともに、制御信号が示す値に応じて遅延時間を変化させる回路素子で各々構成された複数の遅延素子と、前記複数の遅延素子に与える複数の制御信号を保持する複数の保持回路と、を具え、前記複数の保持回路が、それらの保持回路が保持する前記複数の制御信号の値を外部装置により、確率的探索手法に従って、前記デジタルシステムが動作タイミングに関し誤りなく動作するように変更されたものであることを特徴としている。
【００２４】
そして請求項１０記載の本発明のデジタルシステムのクロック信号調整方法は、単一もしくは複数のクロック信号に従いデジタル処理を行って所定の機能を奏するデジタルシステムの前記クロック信号のタイミングを調整する方法において、前記デジタルシステム内の、前記クロック信号を供給する複数のクロック回路に、複数の遅延素子をそれぞれ介挿し、前記複数の遅延素子を各々、制御信号が示す値に応じて遅延時間を変化させる回路素子で構成し、前記複数の遅延素子に与える複数の制御信号を、前記デジタルシステムに設けた複数の保持回路で保持するとともに、前記デジタルシステムが動作タイミングに関し誤りなく動作するように、前記複数の保持回路が保持する前記複数の制御信号の値を外部装置により、確率的探索手法に従って変更することを特徴としている。
【００２５】
かかるデジタルシステムおよびデジタルシステムのクロック信号調整方法にあっては、デジタルシステム内の、単一もしくは複数のクロック信号をそれぞれ供給する複数のクロック回路に介挿されるとともに、制御信号が示す値に応じて遅延時間を変化させる回路素子で構成された遅延素子に、複数の保持回路が保持する複数の制御信号がそれぞれ与えられ、それらの制御信号が示す値に応じて各遅延素子が、クロック信号を適宜遅延させて基本的回路に供給する。また、上記複数の保持回路が保持する上記複数の制御信号の値を、外部装置が、デジタルシステムが動作タイミングに関し誤りなく動作するように、確率的探索手法に従って変更する。なお、本発明における「遅延」は、正の遅延すなわち遅らせることの他、負の遅延すなわち進ませることも含む。
【００２６】
従って、本発明のデジタルシステムおよび、本発明のデジタルシステムのクロック信号調整方法によれば、上記所定の機能に関連する回路素子の特性（遅延特性など）が正確に把握できない場合、あるいは製造プロセス上その回路素子の特性に誤差が生ずるような場合、そしてクロック回路に品質不均一や設計上の誤差が生ずるような場合、さらにはデジタルシステム中の基本的回路が前述のＩＰのようにブラックボックス化していてその構成が明確でない場合でも、クロック信号のタイミング誤差を吸収して、デジタルシステムを誤りなく作動するように調整することができるので、従来技術による場合よりも少ない設計労力で、その機能に関して従来技術による場合よりも高い性能を得ることができ、そして従来技術による場合よりも大規模・高速なデジタルシステムを得ることもでき、しかも、回路素子等のばらつきに起因するデジタルシステムの性能の低下を改善することもできる。
【００２７】
また、本発明のデジタルシステムおよび、本発明のデジタルシステムのクロック信号調整方法によれば、デジタルシステム全体が誤りなく動作する範囲でデジタルシステム全体のフリップフロップのタイミングを精密に調整してフリップフロップ同士の動作タイミングを僅かにずらすことができるので、デジタル信号の同時変化に起因する、消費電力の増大によるデジタルシステムのサイズ拡大や、不要電磁放射（ＥＭＩ）の発生を抑制することもできる。
【００２８】
ここで、デジタルシステムがどの程度誤りなく動作するかは、すべての調整可能な遅延素子の遅延値をパラメータとする評価関数Ｆで表すことができる。デジタルシステムが誤りなく動作するということは、上記の評価関数Ｆの解を求めることと等価である。本願発明者はこの点に注目し、デジタルシステムのクロックタイミング調整に遺伝的アルゴリズムを適用可能なことを発見した。
【００２９】
遺伝的アルゴリズムは、確率的探索手法の一つであり、（１）広域探索において有効に作用し、（２）評価関数Ｆ以外には微分値等の派生的な情報が必要でなく、（３）しかも容易な実装性を持つ、アルゴリズムである。従って、本発明においては、請求項２および請求項１１の記載のように、上記外部装置による複数の制御信号の変更に、遺伝的アルゴリズムを用いても良い。
【００３０】
またクロック回路は木構造を持つようにに実装されることがよくあるが、上述のように木構造の先端の葉の部分、つまり、フリップフロップの部分だけに調整可能な遅延素子を配置する方法以外に、木構造の途中の分岐点にも配置する方法が考えられる。この場合、分岐点に配置された調整可能な遅延素子は、その点よりも先に存在する調整可能な遅延素子に遅延を追加するように機能し、それら先端部の遅延素子を小型にする作用を持つ。したがって、調整可能な遅延素子の実現に必要な総サイズも小さくすることができる可能性を持つ。
【００３１】
一方近年、遺伝的アルゴリズムに木構造の染色体を扱えるような工夫を加えた遺伝的プログラミングも知られている。従って、本発明においては、このようにクロックの信号線の木構造にそって調整可能な遅延素子が配置されて場合には、請求項５および請求項１４の記載のように、上記外部装置による複数の制御信号の変更に、遺伝的プログラミングを用いても良い。
【００３２】
そして、本発明においては、請求項６および請求項１５の記載のように、上記外部装置による制御信号の変更を、クロック信号の周波数を段階的に上昇させながら行うようにしても良く、このようにすれば、より高いクロック周波数ひいてはより高速の動作状態でデジタルシステムを動作させることができる。
【００３３】
また、請求項３記載の本発明のデジタルシステムは、請求項１記載のデジタルシステムにおいて、外部装置を用いる代わりにデジタルシステム自体が設定装置を具えるようにしたことを特徴とするものであり、請求項１２記載の本発明のデジタルシステムのクロック信号調整方法は、請求項１０記載のデジタルシステムのクロック信号調整方法において、外部装置を用いる代わりにデジタルシステム自体が設定装置を具えるようにしたことを特徴とするものである。
【００３４】
かかる本発明のデジタルシステムおよび、本発明のデジタルシステムのクロック信号調整方法によれば、先のデジタルシステムおよびデジタルシステムのクロック信号調整方法と同様の作用効果が得られ、しかも、外部装置に代えてデジタルシステム自身が持つ設定手段を用いるので、デジタルシステム単独で随時に、かつ任意の場所で調整を行い得るというさらなる作用効果が得られる。
【００３５】
そしてこれらの発明のデジタルシステムおよびクロック信号調整方法においても、請求項４および請求項１３の記載のように、上記外部装置による複数の制御信号の変更に、遺伝的アルゴリズムを用いても良い。
【００３６】
また、これらの発明のデジタルシステムおよびクロック信号調整方法においても、請求項５および請求項１４の記載のように、上記外部装置による複数の制御信号の変更に、遺伝的プログラミングを用いても良い。
【００３７】
さらに、これらの発明のデジタルシステムおよびクロック信号調整方法においても、請求項８および請求項１９の記載のように、上記設定手段による制御信号の変更を、クロック信号の周波数を段階的に上昇させながら行うようにしても良い。
【００３８】
そして、上述した、本発明のデジタルシステムおよび、本発明のデジタルシステムのクロック信号調整方法におけるデジタルシステムは、請求項７および請求項１６の記載のように、集積回路として構成されていても良く、このようにすれば、回路素子のバラツキが実際に作成するまで明らかでない集積回路について、クロック信号を最適に調整することができる。
【００３９】
また、上述した、本発明のデジタルシステムおよび、本発明のデジタルシステムのクロック信号調整方法におけるデジタルシステムは、請求項９および請求項１８の記載のように、パイプライン構造を持っていても良く、このようにすれば、パイプライン構造のデータ依存関係を利用して調整を部分的かつ段階的に行うことができるので、調整探索空間を少なくして調整時間を短縮することができる。
【００４０】
さらに、上述した、本発明のデジタルシステムおよび、本発明のデジタルシステムのクロック信号調整方法におけるデジタルシステムは、請求項８および請求項１７の記載のように、回路基板として構成されていても良く、このようにすれば、デジタル回路基板製造工程におけるクロック回路の構成素子や構成材料の不均一や設計上の誤差等に起因するクロックタイミングのずれを吸収して、デジタル回路基板が誤動作しないように調整することができる。
【００４１】
そして、上述した、本発明のデジタルシステムおよび、本発明のデジタルシステムのクロック信号調整方法における上記外部装置や上記設定手段は、請求項１９および請求項２０の記載のように、パーソナルコンピュータやマイクロコンピュータ等の電子計算機で構成されていても良く、このようにすれば、複数の保持回路が保持する複数の制御信号の値をデジタルシステムが動作タイミングに関し誤りなく動作するように確率的探索手法に従って変更する処理を短時間で容易かつ確実に行うことができる。
【００４２】
さらに、請求項２１記載の本発明の記録媒体は、請求項１９または２０記載のデジタルシステムのクロック信号調整方法において電子計算機が実行する、複数の保持回路が保持する複数の制御信号の値をデジタルシステムが動作タイミングに関し誤りなく動作するように確率的探索手法に従って変更する処理プログラムを記録したものであることを特徴とするものである。
【００４３】
かかる記録媒体によれば、本発明のデジタルシステムおよび、本発明のデジタルシステムのクロック信号調整方法のために電子計算機が実行する処理プログラムを記録し保存し得て、任意の場所でクロック信号の調整を行うことができる。なお、かかる記録媒体としては、フレキシブルディスクの他、ハードディスクやＣＤ−ＲＯＭ、光ディスク等のデータ記録媒体、そしてＲＯＭ、ＲＡＭ等の記憶素子を用いることができる。
【００４４】
【発明の実施の形態】
以下に、本発明の実施の形態を実施例によって、図面に基づき詳細に説明する。
【００４５】
本発明は、単一もしくは複数のクロック信号を用いて動作する多様なデジタルシステムに適用可能である。すなわち、調整対象のデジタルシステムのクロック回路中に複数のタイミング調整箇所を設けることで、本発明によりクロック信号を調整することが可能となる。
【００４６】
以下の第１実施例では、単一もしくは複数のクロック信号を用いて動作するデジタルシステム一般に本発明を適用した場合について述べる。
ここに、図１は、一般的なデジタルシステムに適用した本発明のデジタルシステムの第１実施例を模式的に示す構成図である。
【００４７】
デジタルシステムにおけるクロック信号のタイミング不良による障害は、デジタルシステムの設計工程を長期化させ、デジタルシステムを構成する素子の性能を限定的にしか使用できないため、デジタルシステムそのものの性能を制限し、かつ、コストの抑制の障害になっている。
【００４８】
従って、クロック信号のタイミング調整を、個々のデジタルシステムごとに行う本発明のクロック信号調整方法は必要不可欠なものである。
図１中、符号１は、例えばマイクロコンピュータ等を構成し、与えられたプログラムに基づくデータ処理等の所定の機能を奏するデジタルシステム、２はクロック信号のタイミング調整が必要なフリップフロップ、３はタイミング調整が不要なフリップフロップを示す。また、４はクロックのタイミングをレジスタの値に応じて変化させ得る調整可能な遅延素子、５は４の遅延設定値を保持するレジスタを示す。
【００４９】
遅延素子４は、フリップフロップ２のクロック端子と、そのクロック端子にクロック信号を供給するクロック回路との間に挿入されている。またレジスタ５は、遅延素子４に接続されて、遅延素子４の遅延値を変化させる。
【００５０】
調整されるフリップフロップ２および、調整されない（調整不要な）フリップフロップ３は、上記デジタルシステム１の構成要素である。
図１中、符合５は調整可能な遅延素子４の設定値を保持するレジスタであり、符号７はデジタルシステム１のデジタル出力信号およびデジタルシステム１の内部状態を観測するための観測装置であり、８は本発明の方法に従ってデジタルシステム１を調整するためのテスト信号およびクロック信号を発生する装置である。
【００５１】
レジスタ５は、一般的なＤフリップフロップ、Ｔフリップフロップ、ＳＲフリップフロップあるいはＪＫフリップフロップや、レジスタ回路、その他、クロック信号に従って状態を記憶する記憶素子、またはループ状の組合せ回路により構成される記憶回路等である。
【００５２】
そして符号６は、デジタル信号発生装置８に接続されてそのデジタル信号発生装置８にデジタルシステム１に対する信号発生を開始させると同時にデジタルテスト信号観測装置７に接続されてそのデジタルテスト信号観測装置７に後述の如くデジタルシステム１の出力信号１１およびデジタルシステム１の内部状態を示すデジタルシステム内部状態信号１２を観測させる調整装置である。
【００５３】
この調整装置６は、本発明の調整方法に従って、調整可能な遅延素子４の遅延時間を算出し、レジスタ５にその遅延設定値を書き込む。
なお、この実施例では、調整装置６、デジタル信号観測装置７、およびデジタルテスト信号発生装置８は外部装置となっている。
【００５４】
この実施例におけるデジタルシステム１は、集積回路として構成されていてもよく、また回路基板として構成されていてもよい。
さらに、この実施例におけるデジタルシステム１は、単一システムとして構成されていてもよく、複数のシステムから構成されていてもよい。
【００５５】
さらに、この実施例におけるデジタルシステム１は、複数のシステムから構成されるとともに内部に通信路を含んでいてもよく、単一システムとして構成されるとともに内部にバス状の通信路を含んでいてもよい。
【００５６】
さらに、この実施例におけるデジタルシステム１は、マルチチップモジュールやハイブリッド集積回路として構成されていてもよい。
さらに、この実施例におけるデジタルシステム１は、ＩＰ（知的所有権（Ｉｎｔｅｌｌｅｃｔｕａｌ　Ｐｒｏｐｅｒｔｙ）の対象とされるとともに第３者による使用を目的とされたハードウェア設計データ）やハードウェアライブラリとして構成されていてもよい。
【００５７】
調整されるフリップフロップ２および調整されないフリップフロップ３は、一般的なＤフリップフロップ、Ｔフリップフロップ、ＳＲフリップフロップあるいはＪＫフリップフロップや、レジスタ回路、その他、クロック信号に従って状態を記憶する記憶素子、またはループ状の組合せ回路により構成される記憶回路等であり、デジタルシステム１　の構成要素として機能する。
【００５８】
すなわち、デジタルシステム１において、調整されるフリップフロップ２および調整されないフリップフロップ３は、デジタルシステム１内部の組合せ回路に適宜接続され、クロック信号に従って内部状態を記憶する。
【００５９】
上記システムにおいて、調整されるフリップフロップ２は、本発明の方法で調整がなされるフリップフロップであり、また、調整されないフリップフロップ３は、本発明の方法で調整が行われないフリップフロップであって、他の方法、例えばデジタルシステム１の設計時のシミュレーション結果などに基づくタイミング調整や、試作結果に基づくタイミング調整、固定値遅延素子のデータパスやクロック回路への挿入などによるタイミング調整など、従来の手法による調整が行われているか否かは問わない。
【００６０】
調整されるフリップフロップ２のクロック遅延時間とは、フリップフロップ２のクロック端子とクロック回路の間に挿入された調整可能な遅延素子４が加える遅延時間であり、調整されるフリップフロップ２のクロック端子に供給されるクロック信号は、調整可能な遅延素子４が挿入されていない場合に比べて、その遅延時間分だけタイミングが遅延している。
【００６１】
調整対象となるデジタルシステム１は、上述のように調整されるフリップフロップ２と調整されないフリップフロップ３を具えて構成されており、この実施例では、調整されるフリップフロップ２の遅延時間、つまり、調整されるフリップフロップ２のクロック端子に接続されている調整可能な遅延素子４の遅延設定値を該デジタルシステム１の製造後に微調整することにより、デジタルシステム１が誤りなく動作するようにする。
【００６２】
ところで、一般的に、調整可能な遅延素子４の遅延設定値は互いに影響を及ぼしあう。
図２に示すように、ある調整されるフリップフロップ２Ａに接続された調整可能な遅延素子４Ａの遅延設定値調整の影響は、このフリップフロップ２Ａの入出力端子と組合せ回路２０だけを挟んで接続されている他の調整されるフリップフロップ２に及ぶ。
【００６３】
このように、多くの場合、調整探索空間が組合せ爆発を起こしてしまう。それゆえ、本発明に基づく遺伝的アルゴリズムをはじめとする確率的探索手法を用いた後述する調整手法が非常に有効である。
【００６４】
本実施例においては、デジタルシステム１が誤りなく動作するように、調整されるフリップフロップ２のクロック端子に接続されている調整可能な遅延素子４の遅延設定値が調整される。
【００６５】
上記調整装置６の一構成例を図２３に示す。図２３中、符号６Ａは本発明の方法に従って調整手順を実行する調整アルゴリズム実行装置、６Ｂはデジタルシステム１のレジスタ５に遅延設定値を書き込む遅延設定装置である。
【００６６】
本実施例における調整では、上記遅延設定装置６Ｂは、調整アルゴリズム実行装置６Ａが算出した遅延設定値を、遅延設定信号９３を介してレジスタ５に設定する。遅延設定信号９３は、レジスタ５と同じビット幅を持つデジタル値で、調整可能な遅延素子４が発生させる遅延時間を制御する。
【００６７】
上記の調整アルゴリズム実行装置６Ａは、遺伝的アルゴリズムに従って、レジスタ５の遅延設定値として最適な値を探索する。なお、調整装置６は、具体的にはパーソナルコンピュータあるいはマイクロコンピュータ等の電子計算機により構成することが可能であり、また、特開平９−２９４０６９号公報に開示されているプログラマブルＬＳＩ、あるいは、梶谷らによる論文「ＧＡによるニューラルネットワークの構造学習回路の実現」（日本神経回路学会誌ｖｏｌ．　５，Ｎｏ．　４、ｐｐ．　１４５〜１５３、１９９８年）に記載されている回路を用いて構成することもできる。
【００６８】
上記の電子計算機に於いては、調整アルゴルゴリズム実行装置６Ａの機能を実現するプログラムが、ハードディスク、ＲＯＭ（読み出し専用メモリ）、Ｆｌａｓｈメモリ、光ディスク、光磁気ディスク、磁気ディスク等の記録媒体に格納されている。
【００６９】
図１中、符号９はデジタルテスト信号発生装置８が生成するクロック信号、１０はデジタルテスト信号発生装置８が生成するテスト信号であり、それらの信号はデジタルシステム１に入力される。
【００７０】
また同図中、１１はデジタルシステム１が出力するデジタル出力信号、１２は一部あるいは全部のフリップフロップの出力を取り出したデジタルシステム内部状態信号であり、それらの信号はデジタル信号観測装置７に入力される。ただし、デジタルシステム１の構造によっては、デジタルシステム内部状態信号１２を用いずに本発明の方法に従ってデジタルシステム１を調整することも可能である。
【００７１】
上記デジタル信号観測装置７の一構成例を図２４に示す。デジタル信号観測装置７はロジックアナライザ７Ａのみから構成される。ロジックアナライザとは、一般にデジタルシステム内のデジタル信号を観測する測定装置である。
【００７２】
ロジックアナライザ７Ａとデジタルシステム１とは、ロジックアナライザ７Ａの測定用プローブで接続し、ロジックアナライザ７Ａと調整装置６とは、ＧＰ−ＩＢインターフェース７Ｇで接続する。デジタルシステム１から測定用プローブを介してロジックアナライザ７Ａに送られる信号は、デジタル出力信号１１およびデジタルシステム内部状態信号１２である。
【００７３】
なお、デジタル信号観測装置７は、専用回路で構成してデジタルシステム１に内蔵することも可能である。
上記ロジックアナライザ７Ａには、デジタルシステム１が誤りなく動作した場合の、デジタル出力信号１１とデジタルシステム内部状態信号１２との値を記憶させておき、デジタルシステム１からの出力と比較させて評価値を算出させる。
【００７４】
あるいは、デジタルシステム１が誤りなく動作した場合のデジタル出力信号１１とデジタルシステム内部状態信号１２との値は調整装置６に記憶させておき、デジタルシステム１からのデジタル出力信号１１とデジタルシステム内部状態信号１２の値はそのまま調整装置６に送って、調整装置６で評価値を算出するようにしてもよい。
【００７５】
上記デジタルテスト信号発生装置８の一構成例を図２５に示す。デジタルテスト信号発生装置８はデジタル信号発生器８Ａのみから構成される。
デジタル信号発生器８Ａとデジタルシステム１とは、デジタル信号発生器８Ａのプローブで接続し、デジタル信号発生器８Ａと調整装置６とは、ＧＰ−ＩＰインターフェース８Ｇで接続する。デジタル信号発生器８Ａからプローブを介してデジタルシステム１に送られる信号は、クロック信号９およびテスト信号１０である。
【００７６】
デジタル信号発生器８Ａは、出力するデジタル信号のデータパターンを内部のメモリ中に保持し、指定された周波数のクロック信号９に同期させてデジタルテスト信号１０としてデジタルシステム１に出力する。
【００７７】
なお、デジタルテスト信号発生装置８は、専用回路で構成してデジタルシステム１に内蔵することも可能である。
デジタルシステム１における調整されるフリップフロップ２の調整箇所の総数が複数であり、図２に例示するように、遅延素子２の調整箇所において、ある調整箇所２Ａの調整が他の多数の調整箇所の調整結果に影響を及ぼし、調整探索空間の組合せ爆発を起こす場合に、本発明は特に有効である。
【００７８】
本実施例のデジタルシステム１は、外部装置からの設定に従って遅延時間を調整可能な遅延素子４がクロック端子に接続された調整されるフリップフロップ２を複数使用し、調整装置６が実行する確率的探索アルゴリズムを用いて最適な遅延値を探索し、かつ、クロック信号の遅延時間の誤差そのものは直接測定しないことを大きな特徴としている。
【００７９】
調整可能な遅延素子４で遅延時間（信号伝達タイミング）を変化させる場合の一構成例を図３に示す。ｐチャネルＦＥＴであるＴｒ９，Ｔｒ１０および、ｎチャネルＦＥＴであるＴｒ１１，Ｔｒ１２が直列接続した回路であり、Ｔｒ１０，Ｔｒ１１はＮＯＴ素子として機能する。このときＴｒ９およびＴｒ１２の抵抗値により回路の電流値が変化するので、浮遊容量（寄生容量）と負荷容量を充放電する時間が変化する。図４に、上記ＮＯＴ素子への入力信号（入力クロック信号）およびそのＮＯＴ素子からの出力信号（出力クロック信号）の波形を示す。それぞれ、Ｔ２７に入力する制御信号電圧によりＴＡの遅延時間、Ｔ２６に入力する制御信号電圧によりＴＢの遅延時間が調整できる。
【００８０】
クロック信号の立ち上がりあるいは立ち下がりのどちらか一方の遅延調整で済む場合には、Ｔｒ９およびＴｒ１２の一方を省略可能である。
調整可能な遅延素子４で遅延時間（信号伝達タイミング）を変化させる場合の他の構成例を図５乃至図８に示す。
【００８１】
図５のように、単位遅延ＤＮを有するＮＯＴ素子Ｄ１を２個カスケード（縦列）に並べることにより、２ＤＮの遅延時間を発生させることができる。
また、図６のように、単位遅延ＤＮを有するＮＯＴ素子を４個カスケードに並べれば、４ＤＮの遅延時間を発生させることができる。
【００８２】
同様に、単位遅延ＤＮを有するＮＯＴ素子を２ｎ個カスケードに並べることにより、（２ｎ　×　ＤＮ）の遅延時間を発生させることができる。
そして、サイズのより大きなトランジスタを用いてＮＯＴ素子Ｄ２を構成すれば、トランジスタの寄生容量が増大してより長い遅延が発生し、図７に示すように、素子の個数を増やさずに遅延時間を変化させることができる。
【００８３】
一方、図８に示すように、抵抗ＲとコンデンサＣとを用いて積分回路を構成し、出力をシュミットトリガー素子Ｓ等で波形整形することによっても、遅延回路を構成することができる。この構成では、抵抗ＲとコンデンサＣとの値の積に比例する遅延を発生させることができる。
【００８４】
さらに、配線そのものの遅延を利用して、長い配線を作り出して遅延素子として用いることもでき、この場合には、配線の長さに比例した遅延を発生させることができる。
【００８５】
例えば、図９では、図中上側に示す長さＬＬＡの配線ＬＡは、図中下側に示す同じ材質・幅で長さＬＬＢの配線ＬＢに対して、ＬＬＡ／ＬＬＢ倍の遅延を発生させる。
以上の遅延素子はいずれもクロック信号を遅らせる機能しか持たないが、ＰＬＬ（フェーズロックトループ）回路やＤＬＬ（ディレイロックトループ）回路を用いれば、クロック信号を進めるような負の遅延を発生させることもできる。
【００８６】
図１２に、正負の両方向の遅延を発生させる調整可能な遅延回路の一構成例を示す。
図１２中、符号９４は上述のＰＬＬ回路であり、４は図２６に示す後述の調整可能な遅延回路である。ＰＬＬ回路９４が、クロックを８ＤＴ分進める機能を持ち、調整可能な遅延回路４が、０ＤＴから１５ＤＴまでの遅延を発生させる機能を有する場合には、この回路は全体で−８ＤＴから７ＤＴまでの遅延を発生させることができる。
【００８７】
上記複数の遅延素子を組み合わせて、調整可能な遅延素子４を構成することもできる。
図２６は、調整可能な遅延素子４の構成を例示する構成図であり、この例の調整可能な遅延素子４は、図１中のレジスタ５が４ビットのデータを保持するものである場合に対応している。
【００８８】
この調整可能な遅延素子４では、レジスタ５に保持されているレジスタ値の各ビットが、図示しないスイッチ駆動回路を介して各スイッチ回路Ｓｗ１〜Ｓｗ４にそれぞれ対応し、上記レジスタ値に応じて各スイッチ回路Ｓｗ１〜Ｓｗ４が作動するように構成されており、その結果発生する遅延されたクロック信号が、上記調整されるフリップフロップ２のクロック端子に印加される。
【００８９】
すなわち、図２６に示す調整可能な遅延素子４は、それぞれ長さの異なる一定の遅延時間を発生する遅延素子ＵＤ１〜ＵＤ４と、それら遅延素子ＵＤ１〜ＵＤ４を選択的に使用するためのスイッチ回路Ｓｗ１〜Ｓｗ４とから構成されている。
【００９０】
そしてここでは、クロック回路からのクロック入力と、調整されるフリップフロップ２のクロック端子との間に、遅延素子ＵＤ１〜ＵＤ４と各遅延素子に対応するスイッチ回路Ｓｗ１〜Ｓｗ４が互い違いにカスケード（縦列）接続されており、これにより、遅延素子が発生する遅延時間がクロック信号に加わり、発生した遅延時間分だけ元のクロック信号よりタイミングの遅れたクロック信号が、調整されるフリップフロップ２のクロック端子に供給され得るように構成されている。
【００９１】
ここで、遅延素子ＵＤ１は、設計によって長さが定まる遅延時間を発生させる。そして遅延素子ＵＤ２は、遅延素子ＵＤ１の２倍の遅延時間を発生し、同様に、遅延素子ＵＤ３は、上記遅延素子ＵＤ１の４倍の遅延時間、遅延素子ＵＤ４は、上記遅延素子ＵＤ１の８倍の遅延時間をそれぞれ発生するように構成されている。たとえば、遅延素子ＵＤ１は図５のように構成し、遅延素子ＵＤ２は図６のように構成し、以下同様にＵＤ３は図５のＮＯＴ素子Ｄ１を８個カスケード接続して構成し、ＵＤ４は図５のＮＯＴ素子Ｄ１を１６個カスケード接続して構成することができる。
【００９２】
そして、これら各遅延素子ＵＤ１〜ＵＤ４に対応するスイッチ回路Ｓｗ１〜Ｓｗ４は、レジスタ５のレジスタ値に基づきオンオフ制御され、レジスタ値の４ビット中のあるビットが「１」　であるとき、そのビットに対応するスイッチ回路が遅延素子側に倒れ、対応する遅延素子が発生する遅延時間がクロック信号に加わる。また、レジスタ値の４ビット中のあるビットが「０」　であるとき、そのビットに対応するスイッチ回路がバイパス側に倒れ、対応する遅延素子はスキップされて、発生する遅延時間はクロック信号に加わらなくなる。
【００９３】
従って、ここでは各遅延素子ＵＤ１〜ＵＤ４の発生遅延時間がそれぞれ、１ＤＴ、２ＤＴ、４ＤＴ、８ＤＴに設定されてクロック信号に加わるようにされていることから、上記遅延素子４は、スイッチ回路の状態の組合せによって、遅延時間０から、遅延時間１５ＤＴまでの範囲で、クロック信号に加わる遅延時間を調整することができる。
【００９４】
図１０に、調整可能な遅延素子４と、レジスタ５の最下位ビット５Ａとを含んだ一構成例を示す。
図１０中、符号Ｄ１はＮＯＴ素子、Ｄ１１はＡＮＤ素子、Ｄ１２はＯＲ素子、ＵＤ１は単位遅延回路、５Ａはレジスタ５の最下位ビット（一ビット分）、Ｄ１５はクロック回路からのクロック入力である。クロック出力Ｄ１６は、調整されるフリップフロップのクロック端子に入力される。Ｄ１７はレジスタ５Ａへの遅延設定値入力、Ｄ１８はレジスタ５Ａへの書き込み信号であり、これらをレジスタ５の全ビット分合わせ、なおかつ全レジスタ分合わせたものが、遅延設定信号９３である。
【００９５】
ここにおけるスイッチは、ＡＮＤ素子Ｄ１１とＯＲ素子Ｄ１２を用いた基本的なセレクタ回路であり、一方のＡＮＤ素子Ｄ１１の出力には遅延ＤＴを発生させる遅延素子ＵＤ１を挿入し、もう一方のＡＮＤ素子Ｄ１１の出力はＯＲ素子Ｄ１２に直結することで、遅延素子ＵＤ１をスキップしている。
【００９６】
すなわち、レジスタ５Ａの出力が論理値「１」のときは、遅延素子ＵＤ１側のＡＮＤ素子Ｄ１１が働いて遅延ＤＴを発生させ、レジスタ５Ａの出力が論理値「０」のときは、遅延素子ＵＤ１をスキップさせる側のＡＮＤ素子Ｄ１１が働いて遅延を発生させない。
【００９７】
図１１に、調整可能な遅延素子４と、レジスタ５の１ビット分Ｄ１３とを含んだ他の構成例を示す。
この構成例は、トランスファゲート素子Ｄ２０とバッファＤ１９とからなる。トランスファゲート素子Ｄ２０の働きはスイッチそのものであり、上述のＡＮＤ素子とＯＲ素子を組合せた場合と同様の働きを持つ。
【００９８】
図１０、図１１の回路は最下位ビットに関する実装例であるが、単位遅延回路としてそれぞれＵＤ２、ＵＤ３、ＵＤ４を用いることにより、最下位から２ビット目、３ビット目、４ビット目に関する実装例が得られる。
【００９９】
言うまでもなく、これらの構成例と同一の機能を有する他のデジタル回路を構成することは容易であり、上記実施例ではそれらを代わりに用いることもできる。
【０１００】
デジタルシステム内部状態信号１２は、デジタルシステム１中の一部もしくは全部の、調整されるフリップフロップ２および調整されないフリップフロップ３の出力から構成され、デジタル信号観測装置７に入力される。
【０１０１】
デジタルシステム内部状態信号１２をデジタル信号観測装置７に入力するには、例えば、それらのフリップフロップの出力をデジタルシステム１の出力端子として用意し、デジタル信号観測装置７に接続すればよい。
【０１０２】
デジタルシステム内部状態信号１２のビット数が多い場合には、上記のフリップフロップの出力を複数のグループに分けてセレクタ回路に入力し、デジタルシステム１から出力するグループを切り替えながら、同じテスト信号１０を繰り返し印加する方法をとってもよい。
【０１０３】
あるいは、デジタルシステム１にスキャンパス回路を内蔵し、テスト信号１０およびクロック信号９を途中で停止して、その時点のデジタルシステム１の内部状態をスキャンパス回路を用いて取り出し、デジタル信号観測装置７に渡す方法をとってもよい。
【０１０４】
ここにおけるスキャンパス回路とは、デジタルシステム１内の一部あるいは全部のフリップフロップを単一もしくは複数のシフトレジスタとして動作させるような動作モードを実現する回路であり、デジタルシステム１の動作途中の内部状態を観測したり、外部から内部状態を設定したりすることが可能となるものである。
【０１０５】
遅延設定装置６Ｂからレジスタ５への遅延値設定の一方法について説明する。
レジスタ５の１ビット分５Ａは、図１０のように設定入力信号Ｄ１７と設定（書き込み）指示信号Ｄ１８とを有しており、遅延設定信号９３は、全てのレジスタについての、この２種類の信号から構成されている。遅延設定信号９３は遅延設定装置６Ｂから出力され、デジタルシステム１に入力される。
【０１０６】
例えば、遅延設定装置６Ｂはパーソナルコンピュータのパラレルインターフェースボードを用いて構成することができ、ビット数は上述の遅延設定信号９３のビット幅分用意する。
【０１０７】
遅延設定装置６Ｂのパラレルインターフェース出力信号として出力される遅延設定信号９３のうち、あるレジスタ５のあるビットの設定入力端子に接続されている遅延設定信号に０か１の信号を与え、対応する設定信号に接続されているビットに設定を指示する信号を与えることで、レジスタの書き込みが実現できる。
【０１０８】
この時レジスタに書き込む値は、調整アルゴリズム実行装置６Ａが算出した値である。
あるいは、デジタルシステム１内の全レジスタ５に番号を振り、遅延設定信号９３をこのレジスタ番号とそのレジスタに書き込む値と設定指示信号とから構成することもできる。
【０１０９】
この場合には、遅延設定装置６Ｂからデジタルシステム１に送られた遅延設定信号９３は、デジタルシステム１内でマルチプレクサ回路を用いてレジスタ番号に従って振り分けられ、レジスタ番号で指定されたレジスタの設定入力端子に遅延設定値を与え、設定指示信号を指定されたレジスタの設定指示信号として与える。
【０１１０】
この場合の遅延設定装置６Ｂとデジタルシステム１との接続にも、同様にパラレルインターフェースボードを用いることができる。
あるいは、遅延設定装置６Ｂ内で全レジスタ用の設定値を一列に並べ、パラレル−シリアル変換して生成したシリアル信号（１ビット幅の信号）を遅延設定信号９３とすることもできる。
【０１１１】
この場合には、遅延設定信号９３は、デジタルシステム１の内部でシリアル−パラレル変換して、各設定値をそれぞれのレジスタに書き込む。遅延設定信号９３が１ビット幅の信号であるので、遅延設定装置６Ｂとデジタルシステム１との接続にはＲＳ−２３２Ｃなどのシリアルインターフェース回路を用いることができる。
【０１１２】
次に、上記実施例のデジタルシステム１の調整のための、本発明の調整方法の第１実施例について説明する。
上記デジタルシステム１が製造された後、調整工程で、図１に示すように、調整装置６、デジタル信号観測装置７およびデジタルテスト信号発生装置８がそのデジタルシステム１にそれぞれ接続され、デジタルテスト信号発生装置８は、デジタルシステム１にデジタルテスト信号１０およびクロック信号９を入力し、調整装置６は、図１３に示す処理手順に従って、レジスタ５のレジスタ値の設定を行う。
【０１１３】
この処理手順では、先ずステップＳ１で、調整装置６が、あらかじめ定められた初期設定値をレジスタ５に書き込んでレジスタ値として保持させ、次のステップＳ２で、デジタルテスト信号発生装置８がテスト信号を出力して、そのテスト信号に対しデジタルシステム１を一定周波数のクロック信号９の入力のもとに動作させ、次のステップＳ３で、そのデジタルシステム１の出力およびデジタルシステムの内部状態をデジタル信号観測装置９が観測してその結果を調整装置６に送り、次のステップＳ４で、調整装置６が、送られてきた観測値を使用して、デジタルシステム１が、誤りなく動作するか否かを判定する。
【０１１４】
ここで誤った動作をする場合には、ステップＳ５で、調整装置６が、レジスタ５が保持しているレジスタ値を変更し、次のステップＳ６で、変更の結果が安定するまで一定時間待機し、次のステップＳ７で、終了条件をみたしたか否かを判断し、終了条件をみたしていればステップＳ８で不良品処理を行った後に当該処理を終了するが、終了条件をみたしていなければステップＳ２へ戻る、という一連の処理が繰り返し実行される。そして上記ステップＳ４で、デジタルシステム１が誤りなく動作したとの判定が得られた場合には、ステップＳ９で良品処理を行った後に当該処理を終了する。
【０１１５】
上述した初期設定値からレジスタ値を変更する方法については、いくつかの方法を使用することができ、以下にその例を示す。
すなわち、第１の方法は、想定されるレジスタ値の範囲におけるすべての組合せについて、適当な順序で順次設定値を切り替えていく方法であり、第２の方法は、乱数的に設定値を発生させる方法である。そして第３の方法は、設計時に得られる遅延値を初期設定値とし、その初期設定値から＋方向と−方向に設定値を微少に変化させる方法である。
【０１１６】
調整対象のデジタルシステム１内に調整可能な遅延素子４の数が少なく、レジスタ値の組合せ爆発を生じない場合は、第１、第２の方法を用いることができる。しかし、本実施例は、調整可能な遅延素子４の数が多く、レジスタ値の調整探索空間において組合せ爆発の発生が想定される場合であるので、第３の方法を使用する。このとき、遺伝的アルゴリズムと呼ばれる方法を使用する。以下では、遺伝的アルゴリズムを用いたデジタルシステム１の調整方法について説明する。
【０１１７】
上記遺伝的アルゴリズムの参考文献としては、例えば、出版社ＡＤＤＩＳＯＮ−ＷＥＳＬＥＹＰＵＢＬＩＳＨＩＮＧ　ＣＯＭＰＡＮＹ，　ＩＮＣ．　が１９８９年に出版した、Ｄａｖｉｄ　Ｅ．　Ｇｏｌｄｂｅｒｇ　著の「Ｇｅｎｅｔｉｃ　Ａｌｇｏｒｉｔｈｍｓ　ｉｎ　Ｓｅａｒｃｈ，　Ｏｐｔｉｍｉｚａｔｉｏｎ，　ａｎｄ　Ｍａｃｈｉｎｅ　Ｌｅａｒｎｉｎｇ　」がある。なお、本発明でいう遺伝的アルゴリズムとは、進化的計算手法（ＥｖｏｌｕｔｉｏｎａｒｙＣｏｍｐｕｔａｔｉｏｎ）のことをいう。
【０１１８】
デジタルシステム１がどの程度誤りなく動作するかは、すべての調整可能な遅延素子の遅延値を引数とする評価関数Ｆで表すことができる。デジタルシステム１が誤りなく動作するということは、評価関数Ｆを最適にする遅延値を求めることと等価である。本発明者はこの点に着目し、デジタルシステム１の調整に上記の遺伝的アルゴリズムを適用可能なことを発見した。調整装置６は、この遺伝的アルゴリズムにしたがってレジスタ５のレジスタ値を変更する。
【０１１９】
遺伝的アルゴリズムでは、先ず遺伝子を持つ仮想的な生物の集団を設定し、あらかじめ定めた環境に適応している個体が、その適応度の高さに応じて生存し、子孫を残す確率が増えるようにする。そして、遺伝的操作と呼ばれる手順で親の遺伝子を子に継承させる。このような世代交代を実行し、遺伝子および生物集団を進化させることにより、高い適応度を持つ個体が生物集団の大勢を占めるようになる。そしてその際の遺伝的操作としては、実際の生物の生殖においても生じる、遺伝子の交叉、および突然変異等が用いられる。
【０１２０】
図１４は、かかる遺伝的アルゴリズムの概略手順を示すフローチャートであり、ここでは、初めにステップＳ１１で、個体の染色体を決定する。すなわち、世代交代の際に親の個体から子孫の個体に、どのような内容のデータをどのような形式で伝えるかを定める。図１５に染色体を例示する。ここでは、対象とする最適化問題の変数ベクトルｘを、Ｍ個の記号Ａｉ（ｉ＝１，２，・・Ｍ）の列で表わすことにし、これをＭ個の遺伝子座からなる染色体とみなす。各記号Ａｉは遺伝子であり、これらのとりうる値が対立遺伝子である。図１５中、Ｃｈは染色体、Ｇｓは遺伝子座を示し、遺伝子座の個数Ｍは５である。対立遺伝子としては、ある整数の組、ある範囲の実数値、単なる記号の列などを問題に応じて定める。図１５の例では、ａ〜ｅのアルファベットが対立遺伝子である。このようにして記号化された遺伝子の集合が個体の染色体である。
【０１２１】
上記ステップＳ１１では次に、各個体が環境にどの程度適応しているかを表わす適応度の計算方法を決定する。その際、対象とする最適化問題の評価関数の値がより高い変数あるいはより低い変数ほど、それに対応する個体の適応度が高くなるように設計する。またその後に行う世代交代では、適応度の高い個体ほど、生き残る確率あるいは子孫を作る確率が他の適応度の低い個体よりも高くなるようにする。逆に、適応度の低い個体は、環境にうまく適応していない個体とみなして、消滅させる。これは、進化論における自然淘汰の原理を反映したものである。すなわち適応度は、生存の可能性という面から見て各個体がどの程度優れているかを表わす尺度となる。
【０１２２】
遺伝的アルゴリズムでは、探索開始時においては、対象とする問題は一般にまったくのブラックボックスであり、どのような個体が望ましいかはまったく不明である。このため通常、初期の生物集団は乱数を用いてランダムに発生させる。従ってここにおける手順でも、ステップＳ１２で処理を開始した後のステップＳ１３では、初期の生物集団は乱数を用いてランダムに発生させる。なお、探索空間に対して何らかの予備知識がある場合は、評価値が高いと思われる部分を中心にして生物集団を発生させるなどの処理を行うこともある。ここで、発生させる個体の総数を、集団の個体数という。
【０１２３】
次にステップＳ１４で、生物集団中の各個体の適応度を、先にステップＳ１１で決めた計算方法に基づいて計算する。各個体について適応度が求まったら、次にステップＳ１５で、次の世代の個体の基となる個体を集団から選択淘汰する。しかしながら選択淘汰を行うだけでは、現時点で最も高い適応度を持つ個体が生物集団中に占める割合が高くなるだけで、新しい探索点が生じないことになる。このため、次に述べる交叉と突然変異と呼ばれる操作を行う。
【０１２４】
すなわち、次のステップＳ１６では、選択淘汰によって生成された次世代の個体の中から、所定の発生頻度で二つの個体のペアをランダムに選択し、染色体を組み変えて子の染色体を作る（交叉）。ここで、交叉が発生する確率を、交叉率と呼ぶ。交叉によって生成された子孫の個体は、親にあたる個体のそれぞれから形質を継承した個体である。この交叉の処理によって、個体の染色体の多様性が高まり進化が生じる。
【０１２５】
交叉処理後は、次のステップＳ１７で、個体の遺伝子を一定の確率で変化させる（突然変異）。ここで、突然変異が発生する確率を突然変異率と呼ぶ。遺伝子の内容が低い確率で書き換えられるという現象は、実際の生物の遺伝子においても見られる現象である。ただし、突然変異率を大きくしすぎると、交叉による親の形質の遺伝の特徴が失われ、探索空間中をランダムに探索することと同様になるので注意を必要とする。
【０１２６】
以上の処理によって次世代の集団が決定され、ここでは次に、ステップＳ１８で、生成された次世代の生物集団が探索を終了するための評価基準を満たしているか否かを調べる。この評価基準は、問題に依存するが、代表的なものとして次のようなものがある。
・生物集団中の最大の適応度が、あるしきい値より大きくなった。
・生物集団全体の平均の適応度が、あるしきい値より大きくなった。
・生物集団の適応度の増加率が、あるしきい値以下の世代が一定の期間以上続いた。
・世代交代の回数が、あらかじめ定めた回数に到達した。
【０１２７】
上述の如き終了条件（評価基準）の何れかが満たされた場合は、ステップＳ１９へ進んで探索を終了し、その時点での生物集団中で最も適応度の高い個体を、求める最適化問題の解とする。終了条件が満たされない場合は、ステップＳ１４の各個体の適応度の計算の処理に戻って探索を続ける。このような世代交代の繰り返しによって、集団の個体数を一定に保ちつつ、個体の適応度を高めることが出来る。以上が遺伝的アルゴリズムの概略である。
【０１２８】
上で述べた遺伝的アルゴリズムの枠組みは、実際のプログラミングの詳細を規定しない緩やかなものとなっており、個々の問題に対する詳細なアルゴリズムを規定するものではない。このため、遺伝的アルゴリズムを本実施例のデジタルシステムの調整に用いるには、以下の項目をデジタルシステムの調整用に実現する必要がある。
（ａ）　染色体の表現方法
（ｂ）　個体の評価関数
（ｃ）　選択淘汰方法
（ｄ）　交叉方法
（ｅ）　突然変異方法
（ｆ）　探索終了条件
【０１２９】図１６は、本実施例における遺伝的アルゴリズムを用いた調整装置６の処理手順を示すフローチャートである。なお、この図１６の処理は、図１３のステップＳ３〜ステップＳ５の処理を具体的に示すものである。本実施例は、遺伝的アルゴリズムの染色体として、レジスタ５のレジスタ値を直接用いることを大きな特徴としており、これにより、染色体の情報をレジスタ値に変換するための処理等を不要とすることができる。すなわち、本実施例における染色体は、図１７に示すように、複数個のレジスタ５のレジスタ値から構成されている。
【０１３０】
なお、図１７における遅延値で、符号が正（符号なし）のものはその時間だけ信号を遅延させ、符号が負のものはその時間だけ信号を進ませるものであり、遅延値の単位ｐｓはピコ秒を意味する。
【０１３１】
図１６の処理で使用する、遺伝的アルゴリズムの個体の評価関数Ｆとしては、個体の染色体が表現するレジスタ値でデジタルシステム１を設定したのち動作させ、デジタル信号観測装置９によって観測されたデジタル出力が期待値にどのくらい近いかを表す関数を用いる。
【０１３２】
図１６に示す処理で用いるために、先に図１３のステップＳ１で遺伝的アルゴリズムの初期集団として、一様乱数を用いて個体を複数作成する。つまりこの場合には、初期集団の各染色体の各遺伝子の値は確率０．５で１の値を、確率０．５で０の値をとることを意味する。但し、クロックタイミングの不均一さの傾向について何らかの予備知識が存在する場合には、より適応度が高いと思われる個体を初期集団として作成することができる。
【０１３３】
デジタル信号観測装置７から送られてきた観測値から、調整装置６により上記評価関数を用いて適応度を計算する。その後、デジタルシステム１の性能が誤りなく動作するか否かをステップＳ２３で判定し、誤った動作をする場合には、ステップＳ２４の選択淘汰、ステップＳ２５の交叉、ステップＳ２６の突然変異およびステップＳ２７の処理を行って、次世代の個体の集団（解の候補の集団）を作り出す。
【０１３４】
しかして、ステップＳ２３での判断でデジタルシステム１の性能が誤りなく動作したときに、ステップＳ９で良品処理を行った後、調整処理は終了するが、一定世代数繰り返して調整処理をおこなっても誤りなく動作する染色体（レジスタ値）が得られない場合には、調整対象のデジタルシステム１は不良品と判断され、図１３のステップＳ８で不良品としての処理を行う。
【０１３５】
上記ステップＳ２４の選択淘汰処理においては、図１８のフローチャートに示す方法を用いる。この方法は、先ずステップＳ３１およびステップＳ３２で、集団中からランダムに二つの個体Ａ、Ｂを選び、次いでステップＳ３３〜ステップＳ３５で、その二つの個体Ａ、Ｂのうち、より適応度の値が大きいほうの個体を次世代に生き残らせる個体とする。そして生き残った個体の数が集団の個体数に達するまで、ステップＳ３６からステップＳ３１へ戻ってその操作をくり返す。この方法では、適応度の大きい個体が次の世代の個体として選ばれる可能性が高いが、個体Ａ、Ｂをランダムに選択しているため適応度が低い個体でも次世代の個体として選ばれる可能性が残されることになる。このようにするのは、適応度が高い個体だけ残すと、集団の収束性が高まり、局所的な最適解にとらわれて調整に失敗しやすくなるためである。
【０１３６】
上記ステップＳ２５の交叉処理では、図１９の説明図に示す方法を用いる。これは染色体をランダムな位置で部分的に入れ替える操作であり、１点交叉と呼ばれる手法である。図１９では、Ｃｈ１およびＣｈ２が選択淘汰の結果生き残った親Ａ、Ｂの染色体であり、ここにおける交叉処理では、これらの染色体を、ランダムに選んだ交叉位置ＣＰで切断する。図１９の例では、左から３番目の遺伝子と４番目の遺伝子との間を交叉位置としている。そしてここでは、切断した部分的な遺伝子型を入れ替えることによって、染色体Ｃｈ３およびＣｈ４をそれぞれ持つ子Ａ’　、子Ｂ’　を生成し、これらをもとの個体Ａ、Ｂと置き換える。
【０１３７】
ステップＳ２５での交叉にひき続いて実行する上記ステップＳ２６の突然変異は、各染色体の遺伝子の各ビットを、突然変異率の生起確率で、０を１、あるいは１を０に変更する操作である。図２０に突然変異の例を示す。この図では、染色体Ｃｈ５の、四角で囲んで示す左から２ビット目と右から３ビット目の遺伝子に突然変異が生じ、それぞれが染色体Ｃｈ６において対立遺伝子に変更されている。
【０１３８】
上述したように、本実施例のデジタルシステム１では、デジタルシステム１内の複数のフリップフロップ素子へのクロック回路に、遅延値が可変である遅延素子４を挿入し、それらの遅延素子４の遅延値をデジタルシステム１が誤りなく動作するように探索する。従って、デジタルシステム製造工程におけるクロック回路の品質の不均一、設計上の誤差等に起因するクロックタイミングの誤差を吸収して、デジタルシステム１を誤りなく動作するように調整することができ、このことは、従来技術による場合より少ない設計労力で、従来技術による場合より大規模・高速なデジタルシステムが得られることを意味する。
【０１３９】
なお、本実施例において、調整対象とするフリップフロップを選択するために、ＬＳＩ　ＣＡＤシステムが算出する各フリップフロップごとのタイミングの余裕時間のデータを用いることもできる。すなわち、余裕時間の少ない方から特定数のフリップフロップを選択して調整対象とする、もしくは、デジタルシステムの動作周波数の上限を決定する、クリティカルパスのパス上、および、その周辺のフリップフロップを調整対象とする等である。
【０１４０】
また、本実施例に関しては、以下の調整方法も用いることができる。
すなわち、上述した調整方法では、クロック信号９の周波数は一定値であるとしたが、その調整が終了したのち、クロック信号９の周波数を上昇させて、同様の調整を行うことで、さらに動作周波数が高くなるように調整することができる。
【０１４１】
図２１に、上記の場合の調整方法を示す。この処理手順では、まずステップＳ６１でデジタルシステム１に入力されるクロック信号９の周波数をｆ０に設定した後、ステップＳ６２で、調整装置６が、図１３に示したステップＳ１からステップＳ９の調整を行う。次のステップＳ６３で、ステップＳ６１の調整の結果、デジタルシステム１が良品に調整されたか否かを判断する。調整の結果、良品にならなかった場合は当該処理を終了する。調整の結果、良品になった場合は、ステップＳ６４でクロック周波数９をｆ０よりも大きな値ｆ１に設定する。その後、ステップＳ６５でステップＳ６２と同様にデジタルシステム１の調整を行う。ステップＳ６６ではステップＳ６３と同様な判断を行い、良品だった場合にはさらに周波数を大きな値にして調整するということを繰り返す。繰り返しの結果、ステップＳ６８でクロック周波数を上限値ｆｎに設定した場合、ステップＳ６９で調整を行い、当該処理は終了する。
【０１４２】
前記クロック周波数ｆ０はデジタルシステム１の動作周波数の設計値、周波数ｆｎは許容される入力クロック周波数の上限によって定まる。ｎの値およびｆ１からｆｎ−１の値は、必要とされる調整の精度によって決定する。この調整方法により、クロックタイミングのばらつきに応じて、デジタルシステム１の動作周波数の上限値を向上させることができる。
【０１４３】
また、ｆ０を動作周波数の設計値より下方に設定し、徐々にクロック周波数ｆｉ（ｉ＝１，…，ｎ）をあげて調整した場合、調整に時間はかかるものの確実に調整を行えるという利点もある。
【０１４４】
さらに上記調整方法により、動作周波数ｆｊで良品と判定されたデジタルシステムを、システムの使用時にはｆｉ（ｉ＜ｊ）の周波数で動作させることにより、デジタルシステムの安定性を高めることができる。なぜならば、使用時よりも高い周波数で動作するようにクロックタイミングが調整されているために、デジタルシステムの温度や外部の電磁ノイズの影響によって、クロックタイミングに微妙な変化が生じた場合にでも、誤動作が発生しにくくなるからである。
【０１４５】
この調整方法は、デジタルシステム１の量産工程においても用いることができる。従来の量産工程では一般的に調整を行わずに動作試験のみをおこない、各システムのばらつきの度合いによって定まる動作周波数の上限に応じて選別を行っていた。しかし、上記調整方法によれば、製造されたデジタルシステムで個別に調整をおこない、動作周波数を向上させることができるので、高い周波数で動作するデジタルシステムの比率を高めることができる。そのため、高い周波数で動作するデジタルシステムは高価格で販売されるがため生産効率を向上させることができる。
【０１４６】
次に、本発明の第１実施例では次のような変形例がある。先の実施例では、調整装置６、デジタル信号観測装置７およびデジタルテスト信号発生装置８は外部装置としてデジタルシステム１に脱着可能に接続される。しかしながら本発明では、前記外部装置に相当する回路を調整手段としてデジタルシステム１に組み込んでもよい。
【０１４７】
このように構成された変形例を図２２に示す。ここではデジタルシステム１内にデジタルシステム本体１Ｌの他、前記外部装置に相当する回路が組み込まれている。デジタルシステム１Ｌの入力端子および出力端子と、デジタルシステム１Ｌの外部入力端子３２および外部出力端子３３との間にはそれぞれ、切換スイッチ３０が設置されている。この切換スイッチ３０は、図示例のようにデジタルシステム１Ｌ内に設けられていても良いが、デジタルシステム１外に設けられていても良い。
【０１４８】
ここで、切換スイッチ３０を操作すると、デジタルシステム本体１Ｌの出力がデジタル信号観測回路７Ｌに入力されるとともに、調整回路６Ｌ、デジタル信号観測回路７Ｌおよびデジタルテスト信号発生回路８Ｌが動作を開始し、レジスタ値の調整を行う。調整が終了したら、切換スイッチ３０の操作で、デジタルシステム本体１Ｌの出力を出力端子３３側に切り替える。なお、この例では、デジタルシステム本体１Ｌが誤りなく動作するレジスタ値が得られない場合に警告表示をする発光素子３１が設けられている。
【０１４９】
かかる変形例によれば、製造時のデジタルシステム１の調整だけでなく、ユーザがデジタルシステム１を組み込んだ製品を購入した後、ユーザ自身がデジタルシステム１の調整を随時行うこともできる。また、デジタルシステム１を製造したのち、調整を業となすものがデジタルシステム１をさらに調整することもできる。また、デジタルシステム１Ｌが置かれた環境の温度その他が変化した場合等に、デジタルシステム本体１Ｌ内のクロックタイミングに変化が生じても、その変化を補償することができ、デジタルシステム本体１Ｌの誤動作の確率を低減できるというメリットがある。なお、切換スイッチ３０は手動に限らず、電源投入時に自動切換するように構成することもできる。またクロック信号９は、デジタルシステム１内にクロック発生回路が設置されている場合には、そのクロック信号を用いてもよい。
【０１５０】
次に、本発明のデジタルシステムの第２実施例について説明する。本実施例は、メモリテストパターンジェネレータ回路に対して本発明の方法を適用した場合の一構成例である。
【０１５１】
図２７は、メモリテストパターンの発生を基本的機能とする、本発明のデジタルシステムの第２実施例としてのメモリテストパターンジェネレータ回路１Ｇを示す構成図であり、図１のデジタルシステム１の部分に対応し、これ以外の装置は図１と同じものを用いる。
【０１５２】
ここでは、調整装置６、デジタル信号観測装置７およびデジタルテスト信号発生装置８は外部装置である。また、図１に示すものと同様の回路にはそれと同一の符号を付している。
【０１５３】
調整されるフリップフロップ２は通常のＤフリップフロップであり、調整されないフリップフロップ３も同様に通常のＤフリップフロップである。調整されないフリップフロップ３のクロック端子には直接クロック回路が接続されるが、調整されるフリップフロップ２のクロック端子とクロック回路の間には、調整可能な遅延素子４が挿入されている。
【０１５４】
調整可能な遅延素子４には、その遅延素子４の遅延時間を制御するレジスタ５が接続されている。ここでレジスタ５を４ビットとすれば、調整可能な遅延素子４は、図２６のように構成することができる。
【０１５５】
さらに、遅延時間の最小単位ＤＴを５０ｐｓとすれば、調整可能な遅延素子４はレジスタ５の値に従って０ｐｓから７５０ｐｓ　までの遅延を発生させることができる。
レジスタ５は、４ビット幅を有する場合には、通常のＤフリップフロップ４つで構成できる。レジスタ５には、４ビット分の遅延値設定信号と、４ビット共通の設定指示信号が入力される。
【０１５６】
遅延設定信号９３は、このレジスタ５の４ビット分の遅延値設定信号と共通の設定信号とを全レジスタ分集めたものである。また、デジタルシステム内部状態信号１２は、調整されるフリップフロップ２の出力全てを集めたものである。
【０１５７】
デコーダ回路２０Ａ１は、入力される信号にデコード処理を施すものであり、組合せ回路として構成される（フリップフロップなどの記憶素子は含まない）。
ＡＬＵ回路２０Ａ２は、２系統各４ビットの入力信号と４ビットの演算指定信号を入力し、２系統の入力信号間に演算指定信号に従った演算を施して、演算結果を４ビットの出力データとして出力する組合せ回路である。
【０１５８】
インバータ回路２０Ａ３は、外部からの指定により、入力信号を反転、もしくは、非反転で出力する機能を有し、組合せ回路として構成されている。
ＰＬＬ回路９４は、クロック信号９の入力端子と調整されるフリップフロップ２に接続される調整可能な遅延素子４との間に接続され、調整されるフリップフロップ２に供給する、同一周波数で、かつ、タイミングが４００ｐｓだけ進んだクロック信号を生成する。
【０１５９】
上述の通り、調整可能な遅延素子４は０ｐｓから７５０ｐｓまでの遅延を発生させることができるため、両者合わせて−４００ｐｓから３５０ｐｓまでの遅延、つまり、４００ｐｓ進んだ状態から３５０ｐｓ遅れた状態までのクロックを各調整されるフリップフロップ２に供給することができる。
【０１６０】
従ってこの場合、調整されるフリップフロップ２のクロックタイミングも、レジスタ５に設定される値によって−４００ｐｓから３５０ｐｓまで変化する。例えば、レジスタ５に１０１１が設定された場合には、対応する調整されるフリップフロップ２のクロックタイミングは、外部から供給されるクロック信号９に対して１５０ｐｓ遅れる。
【０１６１】
調整されないフリップフロップ３のクロック端子には、クロック信号９が直接供給され、調整されないフリップフロップ３は、クロック信号９と同じタイミングで動作する。
【０１６２】
本実施例の回路は、ＡＬＵ回路２０Ａ２　の一方の入力が、
調整されるフリップフロップ２をはさんでフィードバックされており、
単純なパイプライン構造ではない。
【０１６３】
本実施例では、デジタルシステム１の外部端子に接続されるフリップフロップを全て調整されないフリップフロップ３とし、それ以外を調整されるフリップフロップ２としたが、本発明としては必ずしもこの通りでなくともよい。
【０１６４】
また、同様に、デジタルシステム内部状態信号１２を調整されるフリップフロップ２の出力のみから構成しているが、これも必ずしもこの通りでなくともよい。
本実施例に登場する各素子の特性値が必ずしも正確なものでなくとも、本発明の方式は適用可能であり、有効である。
【０１６５】
本実施例は、高速なメモリ素子のテストに用いられるようなメモリテストパターンジェネレータ回路に適用する場合に特に好適である。
さらに、本実施例で取り上げた回路の出力は４ビットであるが、よりビット数の多い出力を持つメモリテストパターンジェネレータ回路の場合、調整箇所が増え、かつ、フリップフロップ間の遅延時間の依存関係が複雑になって、組合せ爆発が起きやすいので、本発明は特に好適である。
【０１６６】
以下に、図２７に示す本実施例のメモリテストパターンジェネレータ回路１Ｇに適用される、本発明の第２実施例の調整方法を述べる。
このメモリテストパターンジェネレータ回路１Ｇの性能は、複数の調整可能な遅延素子４Ａ１〜４Ａ１４の遅延値を引数とする評価関数Ｆで表すことができる。メモリテストパターンジェネレータ回路１Ｇが誤りなく動作することは、評価関数Ｆを最適にする遅延値を求めることと等価である。
【０１６７】
本実施例では、調整される遅延素子４の数が１４個（４Ａ１〜４Ａ１４）と多く、組合せ爆発の発生が想定される場合であるので、調整装置６は、評価関数Ｆを用い、遺伝的アルゴリズムに従ってレジスタ５の値を変更する。
【０１６８】
遅延素子４の調整は、第１実施例の場合と同様、図１３および図１６に示すフローチャートに従って行われる。本実施例は、遺伝的アルゴリズムの染色体として、レジスタ５の値を直接用いることを大きな特徴とする。これにより、染色体の情報をレジスタ値に変換するための処理等が不要になる。
【０１６９】
すなわち、本実施例における染色体は、図１７に示すように、１４個の遅延素子に対応する１４個のレジスタ５のレジスタ値から構成されている。そして各素子パラメータに対応する各レジスタ５は、４ビットである。それゆえ、レジスタ長（＝染色体長）は、５６ビットである。従って、上記実施例のメモリテストパターンジェネレータ回路１Ｇにおける調整探索空間の大きさは、２＾５６≒１０＾１７（１０の１７乗）であり、全探索による調整はいうまでもなく不可能である。
【０１７０】
図２６に示す遅延素子４において本実施例では、ＤＴの値を５０ｐｓ　とした。なお、この値は、クロックタイミングのバラツキに応じて定める。例えば、図１７中のレジスタ値１０１１では、スイッチ回路Ｓｗ４、Ｓｗ２およびＳｗ１がＯＮとなって、遅延素子ＵＤ４、ＵＤ２およびＵＤ１がクロック回路に接続され、この結果として、レジスタ値１０１１に対応する遅延は、８×５０＋２×５０＋５０　−４００＝１５０ｐｓ　となる。
【０１７１】
同様に、レジスタ値０１０１に対応する遅延は４×５０＋５０　−４００＝−１５０ｐｓとなり、レジスタ値０００１に対応する遅延は−３５０ｐｓとなる。
図１４の処理で使用する、遺伝的アルゴリズムの個体の評価関数Ｆとしては、個体の染色体が表現するレジスタ値でメモリテストパターンジェネレータ回路１Ｇを設定したのち動作させ、デジタル信号観測装置７によって観測された出力が期待値にどのくらい近いかを表す関数を用いる。具体的には、以下の評価関数Ｆで計算される値を、遺伝的アルゴリズムの適応度（ｆｉｔｎｅｓｓ）に用いる。
【０１７２】
【数９】
ｆｉｔｎｅｓｓ＝Ｆ＝ＮＣ／ＮＴ
ここでＮＴは、デジタルテスト信号１０の系列に対するメモリテストパターンジェネレータ回路１Ｇのデジタル出力信号１１およびデジタルシステム内部状態信号１２の総ビット数、ＮＣは該メモリテストパターンジェネレータ回路のデジタル出力信号１１およびデジタルシステム内部状態信号１２のうち期待どおりのデジタル値の総ビット数である。上記の評価関数Ｆは、０から１までの実数値をとり、１の値をとったときに調整対象のメモリテストパターンジェネレータ回路１Ｇは誤りなく動作したことになる。例えば、ある染色体が表現するレジスタ値で設定したデジタルシステム１の出力系列のうちＮＣが２５３、ＮＴが５００であったとすると、その場合の評価関数Ｆの値は、０．５０６になる。
【０１７３】
図１４に示す処理で用いるために、先に図１３のステップＳ１で遺伝的アルゴリズムの初期集団として、一様乱数を用いて個体を複数作成する。つまりこの場合には、初期集団の各染色体の各遺伝子の値は確率０．５で１の値を、確率０．５で０の値をとることを意味する。本実施例では、集団の個体数は５０とした。
【０１７４】
しかる後、各個体の表現するレジスタ値でメモリテストパターンジェネレータ回路１Ｇを動作させ、ステップＳ３における観測装置５での観測結果を使用して、ステップＳ４において調整装置６で、上記評価関数により適応度を計算する。その後、順次に、ステップＳ２４で選択淘汰、ステップＳ２５で交叉、ステップＳ２６で突然変異の処理を行ない、次世代の個体の集団（解の候補の集団）を作り出す。本実施例では、全個体数のうちの交叉を行う個体数の割合である交叉率は０．５とし、突然変異率は０．０１２５を用いた。
【０１７５】
ステップＳ４では、メモリテストパターンジェネレータ回路１Ｇが誤りなく動作するかどうかが判断され、誤りなく動作したときに、良品処理を行い調整処理は終了する。また、一定世代数繰り返して調整処理をおこなっても、誤りなく動作する染色体（レジスタ値）が得られない場合は、調整対象のメモリテストパターンジェネレータ回路１Ｇは不良品と判断され、ステップＳ８で不良品としての処理を行う。なお、本実施例では、繰り返しを打ち切る世代数は２０とした。
【０１７６】
以下に、図２７に示すメモリテストパターンジェネレータ回路１Ｇに本実施例の遺伝的アルゴリズムを用いた調整方法を適用した場合の実験結果について示す。この実験では、バイポーラ・テクノロジを用いたセルベースのＬＳＩチップで回路を作製した。
【０１７７】
上記実験の結果、クロック周波数が８００Ｍｈｚの時に、調整をしない場合は誤って動作していたＬＳＩチップが、遺伝的アルゴリズムゴリズムを用いた方法で調整を行ったところ、誤りなく動作することがができた。図２８に、実験中の世代中の最良個体の評価関数Ｆの値である適応度（１０試行の平均値）と世代数との関係を示す。遺伝的アルゴリズムの世代が進むにつれて、適応度の値が上昇しタイミングが調整されていることがわかる。この実験により、本実施例の調整方法の有効性が確認できた。
【０１７８】
なお、本実施例では、セルベースの集積回路上にメモリテストパータンジェネレータ回路を実装したが、ＦＰＧＡやＣＰＬＤなどの再構成可能な集積回路を用いて実装することもできる。この場合、遅延調整素子を通常の論理回路の一部として実装しても、また、遅延調整素子を中に作り込んだＦＰＧＡやＣＰＬＤを開発してそれを用いて実装してもよい。
【０１７９】
上述したように、本実施例のメモリテストパターンジェネレータ回路１Ｇでは、フリップフロップ素子へのクロック回路に遅延素子４Ａ１〜４Ａ１４を挿入し、それらの遅延素子３の遅延時間をメモリテストパターンジェネレータ回路１Ｇが誤りなく動作するように探索する。従って、集積回路製造工程におけるクロック回路の品質の不均一、設計上の誤差等に起因するクロックタイミングの誤差を吸収して、メモリテストパターンジェネレータ回路１Ｇを誤りなく動作するように調整することができ、このことは、従来技術による場合より少ない設計労力で、従来技術による場合より高速なデジタルシステムが得られることを意味する。
【０１８０】
本実施例に関しては、以下の変形例を実施できる。
メモリテストパターンジェネレータ回路１Ｇの調整を行う際にデジタル信号観測装置７の出力以外に、メモリテストパターンジェネレータ回路１Ｇの消費電流量や発熱量も観測して評価関数（ｆｉｔｎｅｓｓ）に組み込むことができる。一般的にＬＳＩの発熱量や消費電流量はＬＳＩ内部のフリップフロップへ入力されるクロックタイミングによって変動するので、このようにすれば、多様な要求仕様に対応でき、調整精度を向上させることができる。
【０１８１】
図２９に上記の場合の構成例を示す。図２９中、符号１３は温度計、１４は電源である。なお、図２９中、図１に示すものと同様の部分はそれと同一の符号を付している。ここで、温度計１３は、メモリテストパターンジェネレータ回路１ＧのＬＳＩの温度を計測し、その値をＡ／Ｄ変換して、調整装置６に伝える。電源１４は、メモリテストパターンジェネレータ回路１Ｇに電源を供給する装置であるが、その電流供給値をＡ／Ｄ変換して調整装置６に伝える。調整装置６では、デジタルテスト信号発生装置８がテスト信号１０を出力している間に、温度および消費電流量を監視して、その間の平均温度および平均消費電流量を計算する。
本変形例では、例えば、次のような評価関数を用いることができる。
【０１８２】
【数１０】
ｆｉｔｎｅｓｓ＝ＮＣ／ＮＴ　　　（ＮＣ／ＮＴ＜１の場合）
ｆｉｔｎｅｓｓ＝１＋１／（１．０＋ｗ１｜Ｔ−Ｔｍ｜＋ｗ２｜Ｉ−Ｉｍ｜）
（ＮＣ／ＮＴ＝１の場合）
ここで、ｆｉｔｎｅｓｓは遺伝的アルゴリズムにおける適応度、Ｔは計測した平均温度、Ｉは計測した平均消費電流量、Ｔｍは理想的な平均温度、Ｉｍは理想的な平均消費電流量、ｗ１、ｗ２は加重係数である。この評価関数では、メモリテストパターンジェネレータ回路１Ｇが誤動作しなくなるまで調整を行い、誤動作しなくなった後、さらに平均消費電流量、平均温度を理想的な値に近づけるように調整を行う。
【０１８３】
この発明においては、さらに調整精度を高めるために、消費電流量観測中におけるピーク値を上記評価関数に組み込んでもよい。
次に、この発明のデジタルシステムの第３実施例としての、パイプライン構造をもつデジタルシステムの一構成例を示す。図３０は、この第３実施例のパイプライン構造をもつデジタルシステムの構成を示し、図３０中、１Ｐはパイプライン構造をもつデジタルシステムであり、この実施例のシステムは、第１実施例におけるデジタルシステム１の代わりに、そのデジタルシステム１と同様の機能を奏するが具体的構成としてパイプライン構造を持つデジタルシステム１Ｐを用いて構成されている。なお、図１に示すと同様の構成要素にはそれと同一の符号を付している。
【０１８４】
パイプライン構造とは一般に、ある組合せ回路の出力が複数のフリップフロップに接続され、該フリップフロップの出力値によって前記組合せ回路の出力値が影響をうけない構造のことをいう。このパイプライン構造をもつデジタルシステム１Ｐは、クロック信号９が入力されるフリップフロップ２Ｐ１〜２Ｐ８，３Ｐ１〜３Ｐ８および、クロック信号９を入力されない組合せ回路２０Ｐ１〜２０Ｐ３をもつ。４Ｐ１〜４Ｐ８は調整可能な遅延素子であり、各々、レジスタ５Ｐ１〜５Ｐ８の示す値に応じてその遅延時間が調整される。本実施例では、その調整箇所は８カ所である。
【０１８５】
図３０中、符号１１は前記フリップフロップ３Ｐ５〜３Ｐ８の保持しているデジタル値をよみだす信号線、１２は前記フリップフロップ２Ｐ１〜２Ｐ８の保持しているデジタル値をよみだす信号線であり、それぞれデジタル信号観測装置７に接続されている。
【０１８６】
パイプライン構造をもつデジタルシステムにおいては、クロック回路内のインピーダンス不整合、浮遊容量等によりクロック信号９がフリップフロップ３Ｐ１〜３Ｐ８および２Ｐ１〜２Ｐ８に入力されるタイミングが不均一になることに起因して誤動作を生じ、パイプライン構造をもつデジタルシステムの出力１１が期待値にならないことが多い。それゆえ、誤動作対策としては、クロック信号のタイミングを調整するのが有効であるが、遅延素子４Ｐ１から４Ｐ８までの調整箇所を総合的に調整する必要がある。そこで、かかるシステムではパイプライン構造によるデータ信号の依存関係に特徴をもっていることから、それを有効に利用して調整を行う方法を発明した。
【０１８７】
以下に、上記パイプライン構造をもつデジタルシステム１Ｐの調整のための、本発明の調整方法の第３実施例について説明する。この実施例の調整方法も、基本的には先の第１実施例の調整方法と同様であるが、レジスタの調整を部分的かつ段階的に行う。
【０１８８】
パイプライン構造をもつデジタルシステム１Ｐが製造された後、検査工程で、図３０に示すように、調整装置６、デジタル信号観測装置７、デジタルテスト信号発生装置８がそのパイプライン構造をもつデジタルシステム１Ｐにそれぞれ接続される。デジタルテスト信号発生装置８は、パイプライン構造をもつデジタルシステム１Ｐにテスト信号１０およびクロック信号９を入力する。デジタル信号観測装置７はパイプライン構造をもつデジタルシステム１Ｐの出力値および／またはフリップフロップ２Ｐ１〜２Ｐ８の値を観測して調整装置６に与える。調整装置６は、図３１に示す処理手順に従い、遺伝的アルゴリズムを用いてレジスタ５Ｐ１〜５Ｐ８のレジスタ値の設定を行う。
【０１８９】
この処理手順では、まずステップＳ１００で、調整装置６が、あらかじめ定められた初期設定値をレジスタ５に書き込んでレジスタ値として保持させ、次のステップＳ１０１で、デジタルテスト信号発生装置８がテスト信号を出力して、そのテスト信号に対しデジタルシステム１Ｐを一定周波数のクロック信号９の入力のもとに動作させ、次のステップＳ１０２で、フリップフロップ２Ｐ１から２Ｐ４の保持しているデジタル値をデジタル信号観測装置９が観測してその結果を調整装置６に送り、次のステップＳ１０３で、調整装置６が、送られてきた観測値を使用して、適応度の値が一定値以下か否かを判定する。
【０１９０】
適応度の値が一定値以下の場合には、ステップＳ１０４で、調整装置６が、レジスタ５Ｐ１から５Ｐ４が保持しているレジスタ値を変更し、次のステップＳ１０５で、変更の結果が安定するまで一定時間待機し、次のステップＳ１０６で、終了条件をみたしたか否かを判断し、終了条件をみたしていればステップＳ１０７で不良品処理を行った後に当該処理を終了するが、終了条件をみたしていなければステップＳ１０１へ戻る、という一連の処理が繰り返し実行される。そして上記ステップＳ１０３で、適応度の値が一定値以上であるとの判定が得られた場合には、レジスタ５Ｐ１から５Ｐ４の調整を終了し、ステップＳ１０８に進む。
【０１９１】
ステップＳ１０８では、デジタルテスト信号発生装置８がテスト信号を出力して、そのテスト信号に対しデジタルシステム１Ｐを動作させ、次のステップＳ１０９では、フリップフロップ２Ｐ５から２Ｐ８および出力１１の保持しているデジタル値をデジタル信号観測装置９が観測してその結果を調整装置６に送り、次のステップＳ１１０では、調整装置６が、送られてきた観測値を使用して、適当度の値が一定値以下であるか否かを判定する。
【０１９２】
ここで適応度の値が一定値以下の場合には、ステップＳ１１１で、調整装置６が、レジスタ５Ｐ５から５Ｐ８が保持しているレジスタ値を変更し、次のステップＳ１１２で、変更の結果が安定するまで一定時間待機し、次のステップＳ１１３で、終了条件をみたしたか否かを判断し、終了条件をみたしていればステップＳ１１４で不良品処理を行った後に当該処理を終了するが、終了条件をみたしていなければステップＳ１０８へ戻る、という一連の処理が繰り返し実行される。そして上記ステップＳ１１０で、適応度の値が一定値以上であるとの判定が得られた場合には、ステップＳ１１５で良品処理を行った後に当該処理を終了する。
【０１９３】
ここでの遺伝的アルゴリズムの処理手順も実施例１の場合と同様であり、遺伝的アルゴリズムにおける染色体とレジスタ値は一対一で対応している。すなわち、ステップＳ１０１からステップＳ１０３のループにおける調整では、染色体はレジスタ５Ｐ１から５Ｐ４の４カ所の調整箇所に対応する４個のレジスタ値から構成されている。ステップＳ１０８からステップＳ１１０のループにおける調整では、染色体はレジスタ５Ｐ５から５Ｐ８の４カ所の調整箇所に対応する４個のレジスタ値から構成されている。各調整箇所に対応する各レジスタは、ここでは４ビットのものとされている。それゆえ、染色体長は、１６ビットであり、従って、上記実施例の部分的な調整探索空間の大きさは、２＾１６＝６５５３６である。
【０１９４】
ところで、遺伝的アルゴリズムによる調整においては、一般的に全調整探索空間の大きさに比例した探索時間を要する。しかしながらここでは、上記のようにデジタルシステム１Ｐの調整を、パイプライン構造のデータの依存関係に着目して、レジスタ５Ｐ１から５Ｐ４の部分的な調整と、レジスタ５Ｐ５から５Ｐ８の調整に分割して行うので、全調整探索空間の大きさは６５５３６×２＝１３１０７２となり、全レジスタを同時に調整した場合の大きさ２＾（１６＋１６）≒１０＾９（１０の９乗）と比較して、劇的に削減することができる。
ここにおける調整装置６は、例えば下記に示す評価関数を用いて評価を行う。
【０１９５】
【数１１】
ｆｉｔｎｅｓｓ＝ＮＣ／ＮＴ　　　　　　　　　　（ＮＣ／ＮＴ＜１の場合）
ｆｉｔｎｅｓｓ＝１＋１／（１．０＋｜ＤＬ｜）　　（ＮＣ／ＮＴ＝１の場合）
ここで、ＮＴはデジタルテスト信号１０の系列に対してデジタル信号観測装置７で観測されるデジタル値の総ビット数であり、ＮＣは該デジタル値のうち期待どおりのデジタル値の総ビット数である。ｆｉｔｎｅｓｓは遺伝的アルゴリズムにおける適応度、ＤＬは調整しているすべての遅延素子の遅延時間の合計である。この評価関数では、パイプライン構造をもつデジタルシステム１Ｐが誤りなく動作するまで調整を行い、誤って動作しなくなった後、さらになるべく遅延値の値の合計が少なくするように調整を行う。なお、上記ステップＳ１０３およびステップＳ１１０における適応度の判断基準値には、この場合１．０以上の値を用いればよい。
【０１９６】
本実施例の方法によれば、パイプライン構造をもつデジタルシステム１Ｐ内のクロック信号９上に複数の調整可能な遅延素子４Ｐ１〜４Ｐ８を使用し、それらの遅延値を、デジタルシステム１Ｐが誤動作をしないように調整するので、パイプライン構造をもつデジタルシステムの製造工程におけるクロック回路のプロセスの不均一や設計上の誤差等に起因するクロックタイミングのずれを吸収して、パイプライン構造をもつデジタルシステム１Ｐが誤動作しないように調整することができる。また、本実施例では、パイプライン構造のデータ依存関係に着目し、調整を部分的かつ段階的に行うことができるので、調整探索空間を小さくし調整時間を少なくすることができる。
【０１９７】
本実施例においてはパイプライン構造の段数を４としたが、本発明においては、いうまでもなく段数の大小を問わない。
また、部分的にレジスタの調整を行う際に、データラインの数が少ない場合は、部分的な調整探索空間が小さくなるので、遺伝的アルゴリズムを用いた調整方法を用いずに、全探索法を用いてもよい。例えば、調整されるレジスタの数が２で、各レジスタのビット数が４ビットであった場合、部分的な調整探索空間は２＾８＝２５６となるので、ありうるすべての可能性を調べて調整すればよい。
【０１９８】
次に、この発明のデジタルシステムの第４実施例としてのデジタル回路基板の一構成例を示す。図３２は、この第４実施例のデジタル回路基板の構成を示し、図３２中、１Ｂはデジタル回路基板であり、この実施例のシステムは、第１実施例におけるデジタルシステム１の代わりに、そのデジタルシステム１と同様の機能を奏するデジタル回路基板１Ｂを用いて構成されている。なお、図１に示すと同様の構成要素にはそれと同一の符号を付している。
【０１９９】
このデジタル回路基板１Ｂ内には、クロック信号９が入力されるＬＳＩ１Ｌ１〜１Ｌ１０およびクロック信号を入力されない電子部品１６が複数個実装されている。また、それらのＬＳＩおよび電子部品は、図示しないデータ信号線で互いに接続されている。４Ｂ１〜４Ｂ１０は遅延時間を調整可能な遅延素子であり、各々、レジスタ５Ｂ１〜５Ｂ１０の示す値に応じてその遅延時間が調整される。本実施例では、その調整箇所は１０カ所である。また、符号１５は外部装置である電磁波測定装置である。
【０２００】
デジタル回路基板においては、基板上のクロック回路内のインピーダンス不整合、浮遊容量等によりクロック信号が各ＬＳＩ１Ｌ１〜１Ｌ１０に入力されるタイミングが不均一になることに起因して、誤動作を生じるＬＳＩが存在し、デジタル回路基板の出力１１が期待値にならない場合が多い。それゆえ、誤動作対策としては、各ＬＳＩへのクロック信号のタイミングを調整するのが有効であるが、ＬＳＩ１Ｌ１〜ＬＳＩ１Ｌ１０のデータ信号は互いに依存関係をもっているので、遅延素子４Ｂ１から４Ｂ１０までの調整箇所を総合的に調整する必要がある。
【０２０１】
また、デジタル回路基板においては、基板上を高い周波数の高調波成分を含んだデジタル信号電流が流れるので、基板から放射される電磁ノイズのパワーが大きい。そのため、ＥＭＩノイズとして、人体や近傍にある他の電子装置に影響を与える。この放射ノイズは、各ＬＳＩへの入力クロックタイミングを微小にずらすことにより、そのパワーのピーク値を下げることができる。よって、上記放射ノイズを観測しクロックタイミングを調整することで、その放射ノイズによる外部への影響を低減することができる。
【０２０２】
上記電磁波測定装置１５は、基板から放射される電磁波のパワーを計測し、その値をＡ／Ｄ変換して、調整装置６に伝える。調整装置６では、デジタルテスト信号発生装置８がテスト信号を出力している間に、電磁波パワーを監視して、その間のピーク値を算出する。
【０２０３】
上記デジタル回路基板１Ｂの調整のための、本発明の調整方法の第４実施例について説明する。この実施例の調整方法も、基本的には先の第１実施例の調整方法と同様である。
【０２０４】
デジタル回路基板１Ｂが製造された後、検査工程で、図３２に示すように、調整装置６、デジタル信号観測装置７、デジタルテスト信号発生装置８および電磁波測定装置１５がそのデジタル回路基板１Ｂにそれぞれ接続される。デジタルテスト信号発生装置８は、デジタル回路基板１Ｂにテスト信号１０およびクロック信号９を入力する。デジタル信号観測装置７はデジタル回路基板１Ｂの出力値を観測し、電磁波測定装置１５はデジタル回路基板１Ｂの放射ノイズを観測して、それぞれ調整装置６に与え、調整装置６は、例えば下記に示す評価関数を用いて評価を行う。
【０２０５】
【数１２】
ｆｉｔｎｅｓｓ＝ＮＣ／ＮＴ　　　　　　　　　　　（ＮＣ／ＮＴ＜１の場合）
ｆｉｔｎｅｓｓ＝１＋１／（１．０＋｜Ｐ｜）　　（ＮＣ／ＮＴ＝１の場合）
ここで、ｆｉｔｎｅｓｓは遺伝的アルゴリズムにおける適応度、Ｐは計測した電磁波のピークパワーである。この評価関数では、デジタル回路基板１Ｂが誤動作しなくなるまで調整を行い、誤動作しなくなった後、さら放射ノイズのパワーのピーク値をなるべく低減するように調整を行う。
【０２０６】
ここにおける染色体とレジスタ値とは、第１実施例の方法の場合と同様に一対一で対応している。すなわち、図１７に示すと同様に、染色体は、上記実施例の１０カ所の調整箇所に対応する１０個のレジスタ５のレジスタ値から構成されている。そして各調整箇所に対応する各レジスタ５は、ここでは４ビットのものとされている。それゆえ、染色体長は、４０ビットである。従って、上記実施例のデジタル回路基板１Ｂの調整探索空間の大きさは、２＾４０≒１０＾１２（１０の１２乗）であり、全探索による調整はいうまでもなく不可能である。
【０２０７】
本実施例の方法によれば、デジタル回路基板１Ｂ内のクロック信号９上に複数の調整可能な遅延素子４Ｂ１〜４Ｂ１０を使用し、それらの遅延値を、デジタル回路基板１Ｂの出力が誤動作をしないように調整するので、デジタル回路基板製造工程におけるクロック回路の構成素子や構成材料の不均一や設計上の誤差等に起因するクロックタイミングのずれを吸収して、デジタル回路基板１Ｂが誤動作しないように調整することができる。
【０２０８】
また、本実施例では、デジタル回路基板１Ｂから電磁波として放射される放射ノイズをも考慮にいれた調整を行えるので、デジタル回路基板１Ｂの周囲に人体や他の電子装置が存在する場合に特に好適である。
【０２０９】
なお、本実施例においては基板上に実装されるＬＳＩを１０個としたが、本発明においては、いうまでもなくＬＳＩの個数を問わない。また、回路基板の周囲に人体や他の電子装置が存在しない場合など、放射ノイズのパワーの大小を問わないときには、上記評価関数でＰの値を考慮しなくてもよいのはいうまでもない。
【０２１０】
本実施例の方法は、クロック周波数が高い場合に特に好適である。なぜなら、クロック周波数が高い場合、クロック信号のタイミング調整がより困難になり、なおかつ、電磁放射ノイズの高周波成分のパワーがより強くなるからである。
【０２１１】
上述した第１〜第４実施例では、レジスタ５の初期設定値の取り方、および初期設定値からレジスタ値を変更する方法については遺伝的アルゴリズムを用いた。しかしながら、クロックの信号線が木構造をなしている場合には、遺伝的プログラミングとよばれるアルゴリズムを遺伝的アルゴリズムの代わりに用いることもできる。
【０２１２】
遺伝的プログラミングの詳細は、例えば、　ＭＩＴ　Ｐｒｅｓｓが１９９２年に出版した、Ｊ．Ｋｏｚａ著の「Ｇｅｎｅｔｉｃ　Ｐｒｏｇｒａｍｍｉｎｇ」を参照されたい。遺伝的プログラミングは、遺伝的アルゴリズムに木構造の染色体を扱えるような工夫を加えたものである。
【０２１３】
次に述べる本発明の第５実施例のデジタルシステムおよびその調整方法では、図３３に示すシステム構成において、調整装置６で、この遺伝的プログラミングにしたがってレジスタ５の値を変更する。本実施例では特に、遺伝的プログラミングの染色体として、クロック回路の木構造をそのまま遺伝的プログラミングの染色体構造に写像することを大きな特徴とする。このようにすれば、第１実施例と同様に、染色体の情報をレジスタ値に変換するための回路等を不要とすることができる。
【０２１４】
図３３に示すデジタルシステム１Ｔは、デジタルシステム１と同様の機能を奏するが、このデジタルシステム１Ｔにおいては、クロック信号９Ｔがデジタルシステム１Ｔに入力され、それが木構造状に分岐して、デジタルサブシステム１ＴＳ１〜１ＴＳ６に入力される。それらのデジタルサブシステム内では、上記クロック信号がすべてのフリップフロップにクロック信号として与えられる。クロック回路の各分岐には遅延素子４Ｔ１〜４Ｔ５が挿入されており、それぞれの遅延値は対応するレジスタ値５ＲＴ１〜５ＲＴ５に応じて変更可能である。なお、各デジタルサブシステム同士は、図示しないデータラインによって接続されている。
【０２１５】
次に、遺伝的プログラミングに従った本発明の第５実施例の調整方法を述べる。この調整方法でも、第１実施例と同様に図１３のフローチャートに従う。また、遺伝的プログラミングの処理手順は図１６に示したフローチャートと同じであり、染色体の表現方法、交叉方法のみが異なる。
【０２１６】
遺伝的プログラミングの染色体としては、図３４に示す木構造を用いる。つまり、図３３に示したクロック回路の接続状態をそのまま表現した木構造を用い、染色体のノードＣＳ１〜ＣＳ５のそれぞれのビット列が各レジスタ５ＲＴ１〜５ＲＴ５の値に対応する。図３４では、各レジスタ長を３として説明したが、いうまでもなく任意のビット数の場合に本調整方法は適用できる。
【０２１７】
図１４の処理で使用する、遺伝的プログラミングの個体の評価関数Ｆとしては、個体の染色体が表現するレジスタ値でデジタルシステム１Ｔを設定したのち動作させ、デジタル信号観測装置９によって観測されたデジタル出力が期待値にどのくらい近いかを表す関数を用いる。
【０２１８】
図１４に示す処理で用いるために、先に図１３のステップＳ１で遺伝的プログラミングの初期集団として、一様乱数を用いて個体を複数作成する。つまりこの場合には、初期集団の各染色体の各遺伝子の値は確率０．５で１の値を、確率０．５で０の値をとることを意味する。但し、クロックタイミングの不均一さの傾向について何らかの予備知識が存在する場合には、より適応度が高いと思われる個体を初期集団として作成することができる。
【０２１９】
デジタル信号観測装置から送られてきた観測値から、調整装置６により上記評価関数を用いて適応度を計算する。その後、デジタルシステム１Ｔの性能が誤りなく動作するか否かをステップＳ２３で判定し、誤った動作をする場合には、ステップＳ２４の選択淘汰、ステップＳ２５の交叉、ステップＳ２６の突然変異およびステップＳ２７の処理を行って、次世代の個体の集団（解の候補の集団）を作り出す。
【０２２０】
しかして、ステップＳ２３での判断でデジタルシステム１Ｔが誤りなく動作したときに、ステップＳ９で良品処理を行った後、調整処理は終了するが、一定世代数繰り返して調整処理をおこなっても誤りなく動作する染色体（レジスタ値）が得られない場合には、調整対象のデジタルシステム１Ｔは不良品と判断され、図６のステップＳ８で不良品としての処理を行う。
【０２２１】
上記ステップＳ２４の選択淘汰処理においては、実施例１の場合と同様に図１６のフローチャートに示す方法を用いる。
上記ステップＳ２５の交叉処理では、図３５の説明図に示す方法を用いる。これは染色体の木構造をランダムな位置で部分的に入れ替える操作であり、遺伝的プログラミング固有の操作である。図３５では、ＴＲ１およびＴＲ２が選択淘汰の結果生き残った親Ａ、Ｂの染色体であり、ここにおける交叉処理では、これらの染色体を、ランダムに選んだ交叉位置ＣＰで切断する。そして、切断した部分的な遺伝子型を入れ替えることによって、染色体ＴＲ３よびＴＲ４をそれぞれ持つ子Ａ’　、子Ｂ’　を生成し、これらをもとの個体Ａ、Ｂと置き換える。この方法を用いることにより、調整のために有効な染色体の部分情報を破壊することなく交叉を行うことができる。
【０２２２】
ステップＳ２５での交叉にひき続いて実行する上記ステップＳ２６の突然変異は、各染色体の遺伝子の各ビットを、突然変異率の生起確率で、０を１、あるいは１を０に変更する操作である。図３６に突然変異の例を示す。この図では、染色体ＴＲ５の、四角で囲んで示す遺伝子に突然変異が生じ、それぞれが染色体ＴＲ６において対立遺伝子に変更されている。
【０２２３】
一般的な遺伝的プログラミングでは、交叉、突然変異のほかに、木構造を挿入、削除する遺伝的操作も行われる。しかしながら、それらの操作は染色体長を変化させるので、それらの操作を使用すると染色体情報を直接レジスタ５の値に変換できなくなるため、本実施例では用いない。
【０２２４】
本実施例によれば、上記の遺伝的プログラミングにより、クロック回路が木構造をなしているときに、調整を効率的に行うことができる。
本発明は、いうまでもなく、デジタルシステムを用いる装置の全体、一部、あるいは複数の部分の何れにもに適用可能であり、デジタルシステムの規模を問わない。
【０２２５】
また、本発明の方法による調整は、調整可能な遅延素子４の遅延値の精度が低く、単調性が保証されないものであっても、ほとんど支障がない。それゆえ、本発明で用いる遅延素子は、半導体基板上で従来よりも小さい面積で作製することができる。
【０２２６】
以上、図示例に基づき説明したが、この発明は上述の例に限定されるものでなく、特許請求の範囲の記載の範囲内で当業者が容易に改変し得る他の構成をも含むものである。
【図面の簡単な説明】
【図１】一般的なデジタルシステムに適用した本発明のデジタルシステムの第１実施例を模式的に示す構成図である。
【図２】デジタルシステムにおける遅延素子の遅延設定値調整の影響を示す説明図である。
【図３】上記実施例に用い得る調整可能な遅延素子の一構成例を示す回路図である。
【図４】図３に示す回路でのＮＯＴ素子への入力信号およびＮＯＴ素子からの出力信号の波形を示す説明図である。
【図５】上記実施例に用い得る遅延素子の他の一構成例を示す回路図である。
【図６】上記実施例に用い得る遅延素子のさらに他の一構成例を示す回路図である。
【図７】上記実施例に用い得る遅延素子のさらに他の一構成例を示す回路図である。
【図８】上記実施例に用い得る遅延素子のさらに他の一構成例を示す回路図である。
【図９】上記実施例に用い得る遅延素子のさらに他の一構成例を示す回路図である。
【図１０】上記実施例における調整可能な遅延素子とレジスタの最下位ビットとを含んだ構成の一例を示す回路図である。
【図１１】上記実施例における調整可能な遅延素子とレジスタの最下位ビットとを含んだ構成の他の一例を示す回路図である。
【図１２】上記実施例に用い得て正負の遅延を発生させる調整可能な遅延回路の一構成例を示す構成図である。
【図１３】本発明のデジタルシステムのクロック信号調整方法の第１実施例の処理手順の概略を示すフローチャートである。
【図１４】一般的な遺伝的アルゴリズムの手順の概略を示すフローチャートである。
【図１５】遺伝的アルゴリズムで用いる染色体を例示する説明図である。
【図１６】上記実施例の方法における遺伝的アルゴリズムを用いた調整装置の処理手順を示すフローチャートである。
【図１７】上記実施例の方法における遺伝的アルゴリズムで用いる染色体とそこから定まるレジスタ値および遅延値とを示す説明図である。
【図１８】上記実施例の方法における遺伝的アルゴリズムで行う選択淘汰処理の手順を示すフローチャートである。
【図１９】上記実施例の方法における遺伝的アルゴリズムで行う交叉処理の手順を示す説明図である。
【図２０】上記実施例の方法における遺伝的アルゴリズムで行う突然変異処理の手順を示す説明図である。
【図２１】上記実施例の方法において動作周波数を段階的に上昇させながら調整を行う場合の処理手順を示すフローチャートである。
【図２２】上記実施例の一変形例を模式的に示す構成図である。
【図２３】上記実施例における調整装置の一構成例を示す構成図である。
【図２４】上記実施例におけるデジタル信号観測装置の一構成例を示す構成図である。
【図２５】上記実施例におけるデジタルテスト信号発生装置の一構成例を示す構成図である。
【図２６】図１２に示す回路での調整可能な遅延素子の一構成例を示す構成図である。
【図２７】本発明のデジタルシステムの第２実施例としてのメモリテストパターンジェネレータ回路を模式的に示す構成図である。
【図２８】上記実施例での実験中の適応度と世代数との関係を示す説明図である。
【図２９】上記実施例の一変形例を模式的に示す構成図である。
【図３０】本発明のデジタルシステムの第３実施例としての、パイプライン構造をもつデジタルシステムを模式的に示す構成図である。
【図３１】本発明のデジタルシステムのクロック信号調整方法の第３実施例の処理手順の概略を示すフローチャートである。
【図３２】本発明のデジタルシステムの第４実施例としてのデジタル回路基板を模式的に示す構成図である。
【図３３】本発明のデジタルシステムの第５実施例を模式的に示す構成図である。
【図３４】上記実施例の方法における遺伝的プログラミングで用いる染色体とそこから定まるレジスタ値および遅延値とを示す説明図である。
【図３５】上記実施例の方法における遺伝的プログラミングで行う交叉処理の手順を示す説明図である。
【図３６】上記実施例の方法における遺伝的プログラミングで行う突然変異処理の手順を示す説明図である。
【符号の説明】
１　デジタルシステム
２　調整されるフリップフロップ
３　調整されないフリップフロップ
４　調整可能な遅延素子
５　レジスタ
６　調整装置
７　デジタル信号観測装置
８　デジタルテスト信号発生装置
９　クロック信号
１０　テスト信号
１１　デジタル出力信号
１２　デジタルシステム内部状態信号
遅延設定信号
【図１】
2004005687.tif 000011
【図２】
2004005687.tif 000012
【図３】
2004005687.tif 000013
【図４】
2004005687.tif 000014
【図５】
2004005687.tif 000015
【図６】
2004005687.tif 000016
【図７】
2004005687.tif 000017
【図８】
2004005687.tif 000018
【図９】
2004005687.tif 000019
【図１０】
2004005687.tif 000020
【図１１】
2004005687.tif 000021
【図１２】
2004005687.tif 000022
【図１３】
2004005687.tif 000023
【図１４】
2004005687.tif 000024
【図１５】
2004005687.tif 000025
【図１６】
2004005687.tif 000026
【図１７】
2004005687.tif 000027
【図１８】
2004005687.tif 000028
【図１９】
2004005687.tif 000029
【図２０】
2004005687.tif 000030
【図２１】
2004005687.tif 000031
【図２２】
2004005687.tif 000032
【図２３】
2004005687.tif 000033
【図２４】
2004005687.tif 000034
【図２５】
2004005687.tif 000035
【図２６】
2004005687.tif 000036
【図２７】
2004005687.tif 000037
【図２８】
2004005687.tif 000038
【図２９】
2004005687.tif 000039
【図３０】
2004005687.tif 000040
【図３１】
2004005687.tif 000041
【図３２】
2004005687.tif 000042
【図３３】
2004005687.tif 000043
【図３４】
2004005687.tif 000044
【図３５】
2004005687.tif 000045
【図３６】
2004005687.tif 000046