(57)【要約】      （修正有）【課題】大規模、高速なシステムにおいて、動作余裕を考慮したクロック信号のタイミング調整を個々のデジタル演算処理回路毎に自動で行うようにしたデジタル演算処理回路のタイミング余裕度を求める方法の提供。【解決手段】タイミング余裕度を求める方法は、記憶素子、プログラマブル遅延素子および演算素子からなり前記記憶素子に記憶された遅延値によりプログラマブル遅延素子の遅延値が設定され、前記プログラマブル遅延素子それぞれについてタイミング余裕度Ｍｉを計測する手順Ａ、求めたタイミング余裕度Ｍｉの内で最小のＭｉ値を検査対象である論理回路のタイミング余裕度Ｍとして記憶する手順Ｂ、タイミング余裕度Ｍの閾値をＭｔｈとするとき、Ｍ＜Ｍｔｈか否か判断し、Ｍ＜Ｍｔｈのとき、遅延値の再調整をして手順Ａへ戻り、Ｍ≧Ｍｔｈのとき、遅延値の調整手順を終了する手順Ｃ、からなる。【選択図】図１６
2005217920.tif 000002
【特許請求の範囲】
【請求項１】
記憶素子、プログラマブル遅延素子および演算素子からなり、
単一あるいは複数のクロック信号に同期して動作し、
前記記憶素子に記憶された遅延値により前記プログラマブル遅延素子の遅延値が設定され、前記遅延値により動作される前記演算素子を有する単一あるいは複数のデジタル演算処理回路のタイミング余裕度を求める方法であって、
前記記憶素子に記憶された遅延値によりプログラマブル遅延素子の遅延値が設定され、前記プログラマブル遅延素子それぞれについてタイミング余裕度Ｍｉを計測する手順Ａ、
求めたタイミング余裕度Ｍｉの内で最小のＭｉ値を検査対象である論理回路のタイミング余裕度Ｍとして記憶する手順Ｂ、
タイミング余裕度Ｍの閾値をＭｔｈとするとき、Ｍ＜Ｍｔｈか否か判断し、Ｍ＜Ｍｔｈのとき、遅延値の再調整をして手順Ａへ戻り、Ｍ≧Ｍｔｈのとき、遅延値の調整手順を終了する手順Ｃ、からなることを特徴とするタイミング余裕度を求める方法。
【請求項２】
前記タイミング余裕度Ｍｉを計測する手順Ａは、遅延値を遅延方向と早める方向の両方に変更して余裕度の検査をし、より余裕のない方向の値をタイミング余裕度Ｍｉとして記憶する手順としたことを特徴とする請求項１記載のタイミング余裕度を求める方法。
【請求項３】
請求項１又は２項記載のタイミング余裕度を求める方法において、
前記手順Ａを、
前記論理回路内のすべてのプログラマブル遅延素子の遅延値を、遅延値を記憶した前記記憶素子から読み出し、前回調整時の最終の最良値に設定する手順ａ、
前記記憶素子に設定する遅延値の変更分Ｊを遅らせる方向の１とする手順ｂ、
前記記憶素子に設定する遅延値を上記最終の最良値＋前記Ｊに変更して記憶する手順ｃ、
前記論理回路にテスト系列を入力し、前記論理回路の出力値の正答率を計測する手順ｄ、
上記手順ｄで計測した結果について、正答率が１００％か否か判断し、１００％のとき  下記手順ｆへ進み、１００％ではないときは手順ｇへ進む手順ｅ、
手順ｅにおいて、正答率が１００％のとき、現在の遅延値の変更分Ｊの値に１を加算して新しい遅延値の変更分Ｊとして記憶し、手順ｃへ進む手順ｆ、
前記記憶素子に設定する遅延値の変更分Ｋを早める方向の−１とする手順ｇ、
前記記憶素子に設定する遅延値を上記最終の最良値＋前記Ｋに変更して記憶する手順ｈ、
前記論理回路に前記テスト系列を入力し、論理回路の出力値の正答率を計測する手順ｉ、
前記手順ｉで計測した結果について、正答率が１００％か否か判断し、１００％のとき手順ｋへ進み、１００％ではないときは手順ｌへ進む手順ｊ、
手順ｊにおいて、正答率が１００％のとき、現在の遅延値の変更分Ｋの値から１を減算して新しい遅延値の変更分Ｋとして記憶し、手順ｈへ進む手順ｋ、
手順ｊでの正答率が１００％ではないとき、前記Ｊ＞前記Ｋの絶対値か否か判断し、前記Ｊ＞前記Ｋの絶対値のとき、手順ｎへ進み、前記Ｊ＞前記Ｋの絶対値でないとき、手順ｍへ進む手順ｌ、
前記手順ｌにおいて、前記Ｊ＞前記Ｋの絶対値でないとき、前記遅延値の変更分Ｊの値をタイミング余裕度Ｍｉとして記憶し、このタイミング余裕度Ｍｉを求める一連の手順を終了する手順ｍ、
前記手順ｌにおいて、前記Ｊ＞前記Ｋの絶対値のとき、前記遅延値の変更分Ｋの絶対値をタイミング余裕度Ｍｉとして記憶し、このタイミング余裕度Ｍｉを求める一連の手順を終了する手順ｎ、
に置き換えたことを特徴とするタイミング余裕度を求める方法。
【請求項４】
請求項１又は２記載のタイミング余裕度を求める方法において、
前記手順Ａを、以下の一連の、
論理回路内のすべてのプログラマブル遅延素子の遅延値を、遅延値を記憶した記憶素子から読み出し、前回調整時の最終の最良値に設定する手順ａ、
Ｎを遅延方向に設定可能な遅延値の最大値とするとき、前記記憶素子に設定する遅延値の変更分ＪをＮ／２とする手順ｂ、
プログラマブル遅延素子の遅延値を上記最終値から遅延方向＋Ｊへ変更して記憶する手順ｃ、
記論理回路にテスト系列を入力し、前記論理回路の出力値の正答率を計測する手順ｄ、
前記手順ｄで計測した結果について、二分探索法は終了した（ＹＥＳ）か否（ＮＯ）か判断し、終了していないとき（ＮＯ）は手順ｆへ進み、終了しているとき（ＹＥＳ）は手順ｇへ進む手順ｅ、
手順ｅにおいて、二分探索法は終了していないと判断されたとき、正答率が１００％を満たす最大（限界）のＪを探索するために、二分探索法に従いＪを更新し、手順ｃへ戻る手順ｆ、
手順ｅにおいて、二分探索法は終了していると判断されたとき、Ｍを早める方向に設定可能な遅延値の最小値とするとき、前記記憶素子に設定する遅延値の変更分ＫをＭ／２とする手順ｇ、
プログラマブル遅延素子の遅延値を上記最終値から早める方向＋Ｋへ変更して記憶する手順ｈ、
論理回路にテスト系列を入力し、出力値の正答率を計測する手順ｉ、
前記手順ｉで計測した結果について、二分探索法は終了した（ＹＥＳ）か否（ＮＯ）か判断し、終了していないとき（ＮＯ）は手順ｋへ進み、終了しているとき（ＹＥＳ）は手順ｌへ進む手順ｊ、
手順ｊにおいて、二分探索法は終了していないと判断されたとき、正答率が１００％を満たす最小（限界）のＫを探索するために、二分探索法に従いＫを更新し、手順ｈへ戻る手順ｋ、
手順ｊにおいて、二分探索法は終了していると判断されたとき、
Ｊ＞｜Ｋ｜か否（ＮＯ）か判断し、Ｊ＞｜Ｋ｜（ＹＥＳ）のときは手順ｍへ進み、ＮＯのときは手順ｎへ進む手順ｌ、
手順ｌにおいて、判断結果がＹＥＳのとき、｜Ｋ｜をＭｉとし、終了する手順ｍ、
手順ｌにおいて、判断結果がＮＯのとき、ＪをＭｉとし、終了する手順ｎ、
に置き換えたことを特徴とするタイミング余裕度を求める方法。
【請求項５】
記憶素子、プログラマブル遅延素子および演算素子からなり、
単一あるいは複数のクロック信号に同期して動作し、
前記記憶素子に記憶された遅延値により前記プログラマブル遅延素子の遅延値が設定され、前記遅延値により動作される前記演算素子を有する単一あるいは複数のデジタル演算処理回路を被検査回路として検査するデジタル演算処理システムであって、
前記デジタル演算処理回路のデジタル出力信号を観測するデジタル信号観測手段と、
前記デジタル演算処理回路を調整するためのテスト信号およびクロック信号を発生するデジタルテスト信号発生手段と、
前記デジタルテスト信号発生手段に接続されて信号発生を制御すると供に、前記デジタル信号観測手段に接続されて前記デジタル演算処理回路の出力信号および内部状態信号を観測させ、所定の手順により前記デジタル演算処理回路におけるタイミング余裕度が所定の値となるときの前記プログラマブル遅延素子の遅延値を算出し、前記算出した遅延値を前記記憶素子に記憶させる調整手段と、
からなることを特徴とするデジタル演算処理システム。
【請求項６】
前記デジタル信号観測手段と、前記デジタルテスト信号発生手段と、前記調整手段を前記デジタル演算処理回路と供に１つの集積回路として構成したことを特徴とする請求項５記載のデジタル演算処理システム。
【請求項７】
前記デジタル信号観測手段と、前記デジタルテスト信号発生手段と、前記調整手段を前記デジタル演算処理回路と別体の回路として構成したことを特徴とする請求項５記載のデジタル演算処理システム。
【請求項８】
前記デジタル信号観測手段と、前記デジタルテスト信号発生手段と、前記調整手段を前記デジタル演算処理回路と供に１つの回路基板上に搭載したことを特徴とする請求項７記載のデジタル演算処理システム。
【請求項９】
前記デジタル信号観測手段をロジックアナライザとし、前記デジタルテスト信号発生手段をデータジェネレータとし、前記調整手段をコンピュータとして、前記デジタル演算処理回路と別体に構成したことを特徴とする請求項７記載のデジタル演算処理システム。
【請求項１０】
前記請求項５記載の所定の手順を、
前記遅延値により動作される演算素子それぞれについてタイミング余裕度Ｍｉを計測し、
求めたタイミング余裕度Ｍｉの内で最小のＭｉ値を検査対象である論理回路のタイミング余裕度Ｍとして記憶し、
タイミング余裕度Ｍの閾値をＭｔｈとするとき、Ｍ＜Ｍｔｈか否か判断し、Ｍ＜Ｍｔｈのとき、前記遅延値の再調整を行い、Ｍ≧Ｍｔｈのとき、遅延量の調整を終了する手順としたことを特徴とする請求項５乃至９のいずれか１項記載のデジタル演算処理システム。
【請求項１１】
前記タイミング余裕度Ｍｉを計測する手順を、遅延値を遅延方向と早める方向の両方に変更して余裕度の検査をし、より余裕のない方向の値をタイミング余裕度Ｍｉとして記憶する手順としたことを特徴とする請求項１０記載のデジタル演算処理システム。
【請求項１２】
請求項１０又は１１記載のデジタル演算処理システムにおいて、
前記遅延値により動作される演算素子それぞれについてのタイミング余裕度Ｍｉの計測手順を、
前記論理回路内のすべての前記プログラマブル遅延素子の遅延値を、遅延値を記憶した前記記憶素子から読み出し、前回調整時の最終の最良値に設定し、
前記記憶素子に設定する遅延値の変更分Ｊを遅らせる方向の１に設定し、
前記記憶素子に設定する遅延値を上記最終の最良値＋前記Ｊに変更して記憶させ、
前記論理回路にテスト系列を入力し、前記論理回路の出力値の正答率を計測し、
上記正答率が１００％か否か判断し、正答率が１００％のとき、現在の遅延値の変更分Ｊの値に１を加算して新しい遅延値の変更分Ｊとして記憶し、再度前記記憶素子に設定する遅延値を上記最終の最良値＋前記Ｊに変更して記憶させる手順から実行し、１００％ではないときは前記記憶素子に設定する遅延値の変更分Ｋを早める方向の−１に設定し、
前記記憶素子に設定する遅延値を上記最終の最良値＋前記Ｋに変更して記憶し、
前記論理回路に前記テスト系列を入力し、論理回路の出力値の正答率を計測し、
前記計測した結果について、正答率が１００％か否か判断し、正答率が１００％のとき、
現在の遅延値の変更分Ｋの値から１を減算して新しい遅延値の変更分Ｋとして記憶し、再度前記論理回路に前記テスト系列を入力し、論理回路の出力値の正答率を計測する手順から実行し、１００％ではないときは、前記Ｊ＞前記Ｋの絶対値か否か判断し、前記Ｊ＞前記Ｋの絶対値のとき、前記遅延値の変更分Ｋの絶対値をタイミング余裕度Ｍｉとして記憶し、このタイミング余裕度Ｍｉを求める一連の手順を終了し、前記Ｊ＞前記Ｋの絶対値でないとき、前記遅延値の変更分Ｊの値をタイミング余裕度Ｍｉとして記憶し、このタイミング余裕度Ｍｉを求める一連の手順を終了する手順としたことを特徴とする請求項１０又は１１記載のデジタル演算処理システム。
【請求項１３】
請求項１０又は１１記載のデジタル演算処理システムにおいて、
前記遅延値により動作される演算素子それぞれについてのタイミング余裕度Ｍｉの計測手順を、
すべての前記プログラマブル遅延素子の遅延値を、調整時の最終値（最良値）に設定し、
遅延値の変更分Ｊを遅延方向に設定可能な遅延値の最大値Ｎの１／２にし、
前記プログラマブル遅延素子の遅延値を上記最終値＋Ｊ（遅延方向）とし、
論理回路にテスト系列を入力し、出力値の正答率を計測し、
二分探索法は終了した（ＹＥＳ）か否（ＮＯ）か判断し、終了していないときは、正答率が１００％を満たす最大（限界）のＪを探索するために、二分探索法に従いＪを更新し、再度前記記憶素子の設定値を上記最終値＋Ｊ（遅延方向）とする手順から実行し、
終了しているときは、遅延値の変更分Ｋを早める方向に設定可能な遅延値の最小値Ｍの１／２とし、
前記プログラマブル遅延素子の遅延値の設定値を上記最終値＋前記早める方向のＫとし、
前記論理回路にテスト系列を入力し、出力値の正答率を計測し、
二分探索法は終了したか否か判断し、終了していないときは、正答率が１００％を満たす最小（限界）のＫを探索するために、二分探索法に従いＫを更新し、再度前記記憶素子の設定値を上記最終値＋前記早める方向のＫとする手順から実行し、
終了しているときは、Ｊ＞｜Ｋ｜か否か判断し、Ｊ＞｜Ｋ｜のときは｜Ｋ｜をＭｉとして一連の手順を終了し、Ｊ＞｜Ｋ｜でないときは、ＪをＭｉとして一連の手順を終了する手順としたことを特徴とする請求項１０又は１１記載のデジタル演算処理システム。
【請求項１４】
コンピュータに、
記憶素子、プログラマブル遅延素子および演算素子からなり、
単一あるいは複数のクロック信号に同期して動作し、
前記記憶素子に記憶された遅延値により前記プログラマブル遅延素子の遅延値が設定され、前記遅延値により動作される前記演算素子を有する単一あるいは複数のデジタル演算処理回路のタイミング余裕度を求める手順を実行するプログラムであって、
記憶素子に記憶された遅延値によりプログラマブル遅延素子の遅延値が設定され、前記遅延値により動作される演算素子それぞれについてタイミング余裕度Ｍｉを計測する手順Ａ、
求めたタイミング余裕度Ｍｉの内で最小のＭｉ値を検査対象である論理回路のタイミング余裕度Ｍとして記憶する手順Ｂ、
タイミング余裕度Ｍの閾値をＭｔｈとするとき、Ｍ＜Ｍｔｈか否か判断し、Ｍ＜Ｍｔｈのとき、前記遅延値の再調整のため、手順Ａへ戻り、Ｍ≧Ｍｔｈのとき、遅延量の調整手順を終了する手順Ｃ、を実行させるためのプログラム。
【請求項１５】
前記タイミング余裕度Ｍｉを計測する手順は、遅延値を遅延方向と早める方向の両方に変更して余裕度の検査をし、より余裕のない方向の値をタイミング余裕度Ｍｉとして記憶する手順としたことを特徴とする請求項１４記載のプログラム。
【請求項１６】
コンピュータに、
請求項１４又は１５記載のプログラムにおいて、
前記手順Ａを、以下の一連の、
前記論理回路内の全てのプログラマブル遅延素子の遅延値を、遅延値を記憶した前記記憶素子から読み出し、前回調整時の最終の最良値に設定する手順ａ、
前記記憶素子に設定する遅延値の変更分Ｊを遅らせる方向の１とする手順ｂ、
前記記憶素子に設定する遅延値を上記最終の最良値＋前記Ｊに変更して記憶する手順ｃ、
前記論理回路にテスト系列を入力し、前記論理回路の出力値の正答率を計測する手順ｄ、
上記手順ｄで計測した結果について、正答率が１００％か否か判断し、１００％のとき下記手順ｆへ進み、１００％ではないときは手順ｇへ進む手順ｅ、
手順ｅにおいて、正答率が１００％のとき、現在の遅延値の変更分Ｊの値に１を加算して新しい遅延値の変更分Ｊとして記憶し、手順ｃへ進む手順ｆ、
前記記憶素子に設定する遅延値の変更分Ｋを早める方向の−１とする手順ｇ、
前記記憶素子に設定する遅延値を上記最終の最良値＋前記Ｋに変更して記憶する手順ｈ、
前記論理回路に前記テスト系列を入力し、論理回路の出力値の正答率を計測する手順ｉ、
前記手順ｉで計測した結果について、正答率が１００％か否か判断し、１００％のとき手順ｋへ進み、１００％ではないときは手順ｌへ進む手順ｊ、
手順ｊにおいて、正答率が１００％のとき、現在の遅延値の変更分Ｋの値から１を減算して新しい遅延値の変更分Ｋとして記憶し、手順ｈへ進む手順ｋ、
手順ｊでの正答率が１００％ではないとき、前記Ｊ＞前記Ｋの絶対値か否か判断し、前記Ｊ＞前記Ｋの絶対値のとき、手順ｎへ進み、前記Ｊ＞前記Ｋの絶対値でないとき、手順ｍへ進む手順ｌ、
前記手順ｌにおいて、前記Ｊ＞前記Ｋの絶対値でないとき、前記遅延値の変更分Ｊの値をタイミング余裕度Ｍｉとして記憶し、このタイミング余裕度Ｍｉを求める一連の手順を終了する手順ｍ、
前記手順ｌにおいて、前記Ｊ＞前記Ｋの絶対値のとき、前記遅延値の変更分Ｋの絶対値をタイミング余裕度Ｍｉとして記憶し、このタイミング余裕度Ｍｉを求める一連の手順を終了する手順ｎ、
に置き換えて実行させるためのプログラム。
【請求項１７】
コンピュータに、
請求項１４又は１５記載のプログラムにおいて、
前記手順Ａを、以下の一連の、
論理回路内の全てのプログラマブル遅延素子の遅延値を、遅延値を記憶した記憶素子から読み出し、前回調整時の最終の最良値に設定する手順ａ、
Ｎを遅延方向に設定可能な遅延値の最大値とするとき、前記記憶素子に設定する遅延値の変更分ＪをＮ／２とする手順ｂ、
プログラマブル遅延素子の遅延値を上記最終値から遅延方向＋Ｊへ変更して記憶する手順ｃ、
前記論理回路にテスト系列を入力し、前記論理回路の出力値の正答率を計測する手順ｄ、
前記手順ｄで計測した結果について、二分探索法は終了した（ＹＥＳ）か否（ＮＯ）か判断し、終了していないとき（ＮＯ）は手順ｆへ進み、終了しているとき（ＹＥＳ）は手順ｇへ進む手順ｅ、
手順ｅにおいて、二分探索法は終了していないと判断されたとき、正答率が１００％を満たす最大（限界）のＪを探索するために、二分探索法に従いＪを更新し、手順ｃへ戻る手順ｆ、
手順ｅにおいて、二分探索法は終了していると判断されたとき、Ｍを早める方向に設定可能な遅延値の最小値とするとき、前記記憶素子に設定する遅延値の変更分ＫをＭ／２とする手順ｇ、
プログラマブル遅延素子の遅延値を上記最終値から早める方向＋Ｋへ変更して記憶する手順ｈ、
論理回路にテスト系列を入力し、出力値の正答率を計測する手順ｉ、
前記手順ｉで計測した結果について、二分探索法は終了した（ＹＥＳ）か否（ＮＯ）か判断し、終了していないとき（ＮＯ）は手順ｋへ進み、終了しているとき（ＹＥＳ）は手順ｌへ進む手順ｊ、
手順ｊにおいて、二分探索法は終了していないと判断されたとき、正答率が１００％を満たす最小（限界）のＫを探索するために、二分探索法に従いＫを更新し、手順ｈへ戻る手順ｋ、
手順ｊにおいて、二分探索法は終了していると判断されたとき、
Ｊ＞｜Ｋ｜か否（ＮＯ）か判断し、Ｊ＞｜Ｋ｜（ＹＥＳ）のときは手順ｍへ進み、ＮＯのときは手順ｎへ進む手順ｌ、
手順ｌにおいて、判断結果がＹＥＳのとき、｜Ｋ｜をＭｉとし、終了する手順ｍ、
手順ｌにおいて、判断結果がＮＯのとき、ＪをＭｉとし、終了する手順ｎ、
に置き換えて実行させるためのプログラム。
【請求項１８】
コンピュータに、
記憶素子、プログラマブル遅延素子および演算素子からなり、
単一あるいは複数のクロック信号に同期して動作し、
前記記憶素子に記憶された遅延値により前記プログラマブル遅延素子の遅延値が設定され、前記遅延値により動作される前記演算素子を有する単一あるいは複数のデジタル演算処理回路のタイミング余裕度を求める手順を実行するプログラムであって、
記憶素子に記憶された遅延値によりプログラマブル遅延素子の遅延値が設定され、前記遅延値により動作される演算素子それぞれについてタイミング余裕度Ｍｉを計測する手順Ａ、
求めたタイミング余裕度Ｍｉの内で最小のＭｉ値を検査対象である論理回路のタイミング余裕度Ｍとして記憶する手順Ｂ、
タイミング余裕度Ｍの閾値をＭｔｈとするとき、Ｍ＜Ｍｔｈか否か判断し、Ｍ＜Ｍｔｈのとき、再調整のため、手順Ａへ戻り、Ｍ≧Ｍｔｈのとき、遅延量の調整手順を終了する手順Ｃ、を実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１９】
前記タイミング余裕度Ｍｉを計測する手順は、遅延値を遅延方向と早める方向の両方に変更して余裕度の検査をし、より余裕のない方向の値をタイミング余裕度Ｍｉとして記憶する手順としたことを特徴とする請求項１８記載のコンピュータ読み取り可能な記録媒体。
【請求項２０】
コンピュータに、
請求項１８又は１９記載の前記手順Ａを、以下の一連の、
前記論理回路内の全てのプログラマブル遅延素子の遅延値を、遅延値を記憶した前記記憶素子から読み出し、前回調整時の最終の最良値に設定する手順ａ、
前記記憶素子に設定する遅延値の変更分Ｊを遅らせる方向の１とする手順ｂ、
前記記憶素子に設定する遅延値を上記最終の最良値＋前記Ｊに変更して記憶する手順ｃ、
前記論理回路にテスト系列を入力し、前記論理回路の出力値の正答率を計測する手順ｄ、
上記手順ｄで計測した結果について、正答率が１００％か否か判断し、１００％のとき下記手順ｆへ進み、１００％ではないときは手順ｇへ進む手順ｅ、
手順ｅにおいて、正答率が１００％のとき、現在の遅延値の変更分Ｊの値に１を加算して新しい遅延値の変更分Ｊとして記憶し、手順ｃへ進む手順ｆ、
前記記憶素子に設定する遅延値の変更分Ｋを早める方向の−１とする手順ｇ、
前記記憶素子に設定する遅延値を上記最終の最良値＋前記Ｋに変更して記憶する手順ｈ、
前記論理回路に前記テスト系列を入力し、論理回路の出力値の正答率を計測する手順ｉ、
前記手順ｉで計測した結果について、正答率が１００％か否か判断し、１００％のとき手順ｋへ進み、１００％ではないときは手順ｌへ進む手順ｊ、
手順ｊにおいて、正答率が１００％のとき、現在の遅延値の変更分Ｋの値から１を減算して新しい遅延値の変更分Ｋとして記憶し、手順ｈへ進む手順ｋ、
手順ｊでの正答率が１００％ではないとき、前記Ｊ＞前記Ｋの絶対値か否か判断し、前記Ｊ＞前記Ｋの絶対値のとき、手順ｎへ進み、前記Ｊ＞前記Ｋの絶対値でないとき、手順ｍへ進む手順ｌ、
前記手順ｌにおいて、前記Ｊ＞前記Ｋの絶対値でないとき、前記遅延値の変更分Ｊの値をタイミング余裕度Ｍｉとして記憶し、このタイミング余裕度Ｍｉを求める一連の手順を終了する手順ｍ、
前記手順ｌにおいて、前記Ｊ＞前記Ｋの絶対値のとき、前記遅延値の変更分Ｋの絶対値をタイミング余裕度Ｍｉとして記憶し、このタイミング余裕度Ｍｉを求める一連の手順を終了する手順ｎ、
に置き換えて実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項２１】
コンピュータに、
請求項１８又は１９記載のプログラムにおいて、
前記手順Ａを、以下の一連の、
論理回路内の全てのプログラマブル遅延素子の遅延値を、遅延値を記憶した記憶素子から読み出し、前回調整時の最終の最良値に設定する手順ａ、
Ｎを遅延方向に設定可能な遅延値の最大値とするとき、前記記憶素子に設定する遅延値の変更分ＪをＮ／２とする手順ｂ、
プログラマブル遅延素子の遅延値を上記最終値から遅延方向＋Ｊへ変更して記憶する手順ｃ、
前記論理回路に全テスト系列を入力し、前記論理回路の出力値の正答率を計測する手順ｄ、
前記手順ｄで計測した結果について、二分探索法は終了した（ＹＥＳ）か否（ＮＯ）か判断し、終了していないとき（ＮＯ）は手順ｆへ進み、終了しているとき（ＹＥＳ）は手順ｇへ進む手順ｅ、
手順ｅにおいて、二分探索法は終了していないと判断されたとき、正答率が１００％を満たす最大（限界）のＪを探索するために、二分探索法に従いＪを更新し、手順ｃへ戻る手順ｆ、
手順ｅにおいて、二分探索法は終了していると判断されたとき、Ｍを早める方向に設定可能な遅延値の最小値とするとき、前記記憶素子に設定する遅延値の変更分ＫをＭ／２とする手順ｇ、
プログラマブル遅延素子の遅延値としたときの設定値を上記最終値から早める方向＋Ｋへ変更して記憶する手順ｈ、
論理回路にテスト系列を入力し、出力値の正答率を計測する手順ｉ、
前記手順ｉで計測した結果について、二分探索法は終了した（ＹＥＳ）か否（ＮＯ）か判断し、終了していないとき（ＮＯ）は手順ｋへ進み、終了しているとき（ＹＥＳ）は手順ｌへ進む手順ｊ、
手順ｊにおいて、二分探索法は終了していないと判断されたとき、正答率が１００％を満たす最小（限界）のＫを探索するために、二分探索法に従いＫを更新し、正答率が１００％を満たす最小（限界）のＫを探索し、手順ｈへ戻る手順ｋ、
手順ｊにおいて、二分探索法は終了していると判断されたとき、
Ｊ＞｜Ｋ｜か否（ＮＯ）か判断し、Ｊ＞｜Ｋ｜（ＹＥＳ）のときは手順ｍへ進み、ＮＯのときは手順ｎへ進む手順ｌ、
手順ｌにおいて、判断結果がＹＥＳのとき、｜Ｋ｜をＭｉとし、終了する手順ｍ、
手順ｌにおいて、判断結果がＮＯのとき、ＪをＭｉとし、終了する手順ｎ、
に置き換えて実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、単一あるいは複数のクロック信号に同期して動作する単一あるいは複数のデジタル演算処理回路を含む論理回路における、前記クロック信号のタイミング余裕度を求める方法およびそのためにデジタル演算処理システム、プログラム、記録媒体に関する。
【背景技術】
【０００２】
デジタル演算処理回路は、通常、ＡＮＤ素子、ＯＲ素子、ＮＯＴ素子の３種類の論理演算素子と、真（論理値「１」）と偽（論理値「０」）の２通りの状態（１ビット）を記憶するフリップフロップと呼ばれる記憶素子から構成される。
【０００３】
最も基本的なフリップフロップは、各１本の入出力端子とクロック端子の３端子から構成され、クロック端子に印加されたクロック信号と呼ばれるデジタル信号の立ち上がりに入力端子のデジタル信号を出力端子にコピーし、かつ、次のクロック信号の立ち上がりまでそのデジタル値を保持する機能を有する。
【０００４】
一般に、有限個のクロック信号に従って動作するデジタル演算処理回路を同期回路と呼び、同期回路では各フリップフロップのクロック端子に到着するクロック信号の時間差が全体の動作に影響を与える。一般に各フリップフロップにクロック信号を供給する信号線は、途中にバッファが挿入されたり、物理配線上の工夫が施される等特別な回路を採用することが多い。ここではクロック回路と呼ぶ。
【０００５】
例えば、同じ１ｎｓの時間のずれでも、クロック周波数が１０ＭＨｚの場合、つまり、クロックサイクルが１００ｎｓの場合には１％のずれになり、クロック周波数が１００ＭＨｚの場合、つまりクロックサイクルが１０ｎｓの場合には１０％のずれとなり、補正が必要となる。つまり、クロック周波数が高いほど精密なタイミング調整技術が必要となる。
【０００６】
デジタル演算処理回路のクロックタイミングの誤差に対する従来の対策としては、
（１）  デジタル演算処理回路の設計時に、クロックタイミングの誤差ができるだけ小さくなるように設計者が手動で調整するという対策手法。
（２）  デジタル演算処理回路中のクロック回路に、クロックタイミングの誤差を補正するような調整回路を入れるという対策手法、
の２通りがあった。
【０００７】
しかし、対策（１）では次のような問題が解決されない。すなわち、トランジスタや抵抗、コンデンサといった電子回路素子はそれぞれの特性にバラツキを有しており、各素子のバラツキは実際にシステムを作成するまで明らかではない。これは集積回路内の素子において特に顕著に見られる特性である。このバラツキの影響を最も強く受けるのがクロックタイミングであり、デジタル同期システムの動作周波数の上限を決定する。このように、デジタル演算処理回路の設計時には完全にこれらのバラツキを把握することはできないことから、ある範囲のバラツキを許容して設計、作成するか、もしくは、試作を繰り返して実際のバラツキの度合いを測定するという手法がとられてきた。しかしながら、この方法には明らかに限度があり、各素子の持つ特性を限界まで利用することはできなかった。
【０００８】
別の問題点として、手動での調整では、扱える回路規模に限界があり、コンピュータシステムのような大規模なデジタル演算処理回路全体に対する調整は、現実問題として不可能であった。また、大規模問題を扱う際の常套手段である部分問題への切り分けも、調整範囲を制限してしまい望ましくない。
【０００９】
対策（２）の問題点は、調整回路が挿入されていても、回路規模が大きくなるに従い、調整探索空間が広大なものになってしまい、実用的な時間での調整が不可能になってしまう点である。逆に、実用的な時間で調整可能な程度の調整回路では、デジタル演算処理回路のごく一部を調整対象とするのみであり、その効果は極めて限定されてしまう。
【００１０】
上記デジタル演算処理回路が集積回路として作製される場合には、さらに以下の２つの点に特徴がある。１つ目は、集積回路内部は修正不能であり、全て設計時に決定しなければならないという点である。そこで調整回路を挿入する手段がとられるが、調整探索空間が膨大になることから全体の動作を考慮した調整は不可能である。
従って、新たな手法を用いなければ集積回路チップ作製後に全体の動作を考慮したタイミング調整を行うことは不可能である。
２つ目は、集積回路チップ内の素子のバラツキが大きく、作製後でなければ内部の素子のパラメータ（抵抗やコンデンサなどの値やトランジスタの特性）の変化が分からないという点である。
従って、そのバラツキがクロックタイミングに与える影響が大きく、素子の特性を限界まで利用するために正確な素子のパラメータ値が必要な場合には、新たな手法が不可欠である。
【００１１】
高いクロック周波数で動作する実用上の集積回路を作製するには、外部回路側で最適な入出力タイミングのデータを作り出すようなクロック回路を設ける必要があるが、最適な入出力タイミングはチップごとに異なるため、前記従来手法では不可能であった。
【００１２】
また、これまでのクロックの調整方法（例えば、特願２０００−００３４４９号（特開  ２００１−０４３２６１号公報）参照）では、そのデジタル演算処理回路が、１００％誤りなく動作するか否か、即ち、動作試験時に全てのテスト系列に対して正しいデジタル値を出力するか否かのみをみていた。この方法では、調整後のシステムにおいて１００％正しく動作するものの、タイミングがぎりぎりのところで間に合っている、という場合も存在する。その場合、少しでもデジタル演算処理回路の使用環境が変化すると、タイミングの制約を満たすことができなくなり、デジタル演算処理回路が誤った動作をすることになる。
【００１３】
例えば、パイプラインでは、従来、複数段の部分論理回路の動作タイミングを取るために、各段の間に一時記憶回路を設けてタイミング調整を行っていたが、タイミングは一番遅い部分に引きずられてしまう欠点があった。
図１５に従来のパイプラインの構成を示す。ラッチ等の一時記憶回路に蓄えられた情報が装置のある時刻における内部状態を記述する。具体的には図１５に示される論理回路４０において、論理回路４０にデータ等を供給する一時記憶回路４４のクロック信号線４７にクロック信号が与えられると、一時記憶回路４４の内容が複数のデータ線５０を介して論理回路４０に供給され、論理回路４０によって処理された結果が一時記憶回路４５の内容を更新する。一時記憶回路４５が一時記憶回路４４と同一のものであって、循環的に情報処理がなされる場合もある。更新された情報は次のクロック信号によって、論理回路４０もしくは別の論理回路に供給される。一時記憶回路４４の内容が論理回路４０に供給されてから論理回路４０による処理結果の信号が一時記憶回路４５に到達するまでの時間は、クロック周期よりは短いことが保証されていなければならず、それによってクロック周期の下限が決定される。一方で、一時記憶回路４４の内容が論理回路４０に供給されてから論理回路４０による処理結果の信号が一時記憶回路４５に到達するまでの時間は、いくら短くても回路は正常に動作する。
【００１４】
より高性能な論理回路では、図１５に論理回路４０の内部構成を示すように、信号伝播の経路を横断し、論理素子は分断しないような境界で論理回路４０を複数の区間に分けて部分論理回路４２の直列接続構造となるように再構成し、その上で、各境界に中間の一時記憶回路４１を設けることが行われている。クロック信号は各境界の一時記憶回路４１にも供給される。これはパイプラインと称されている回路構成法である。この方式によると、ある一時記憶回路４１から隣接する一時記憶回路４１に信号が伝播する時間は、その間の論理段数の減少により当然に小さくなる。クロック周期は、すべての一時記憶回路４１から供給された信号が論理回路を伝播して次の一時記憶回路４１に到達するまでの最大時間によって定まるのであるから、仮に、境界を適切に均等に設けることができて、論理回路４０をｎ個の部分論理回路４２に分けることが出来れば、伝播の最大時間は境界を設けない場合のｎ分の一にまで短縮が可能であり、クロック周期の短縮が実現される。論理回路４０には一時記憶回路４４から各クロック毎に新たなデータを供給することができるので、単一時間に実行可能な情報処理量を大幅に増加させることができる。このような構成では複数の情報処理が論理回路４０の中で同時に行われるが、各情報処理に付随する論理動作は、互いに一時記憶回路４１で隔離されている部分論理回路４２で行われるため、回路を伝播する信号が互いに干渉して間違った動作をすることは起こりえない。
【００１５】
パイプライン構成の論理回路は高性能論理回路の中でも重要な位置を占めていて、更なる情報処理能力の向上のために、パイプラインの段数、すなわち境界で区切られる部分論理回路６の数を増やすことがおこなわれている。
【００１６】
しかしながら、パイプラインの段数を増加させればいくらでも処理能力が向上するわけではない。第一にパイプラインの効果を最大限引き出すためには、すべての部分論理回路４２での最大伝播遅延時間が均一であって、ｎ個の部分論理回路４２によって構成されるのであれば論理回路１のｎ分の一の最大伝播遅延時間であることが望ましいが、実際には完全に均等に分割できない場合が多く、特に分割数が増加すると困難度が著しく増す。また、一時記憶回路４１が内容を更新するための遅延時間が新たに生じるため、クロック周期の短縮が限られてしまう。更に、一時記憶回路４４から供給された信号が情報処理を受けて一時記憶回路４５に到達し更に別の論理回路に供給されるまでの時間(ターンアラウンド)は、一時記憶回路４１の増加による全体の遅延の増加によって必ず長くなるため、情報処理されるデータ相互に依存性があるときには結果の待ち合わせの無駄時間が新たに生じ、システム全体の情報処理速度（スループット）自体も低下する可能性が増大する。
【００１７】
以上の問題点を解決するためにウェーブ・パイプラインという手法が考案されている。ウェーブ・パイプラインでは一時記憶回路４１を省略し、図１５と同様の構成法を取りながら、なおかつパイプラインと同様の動作を実現しようとするものである。具体的には、一時記憶回路４４から論理回路４０にデータが供給され、それが回路中を伝播していて、未だ一時記憶回路４５に到達しない時に、クロック信号によって、新たに別のデータを論理回路５０に供給するものである。一時記憶回路４５には、最初のデータによる情報処理結果が到達し、それによって一時記憶回路４５の内容が更新された後に、次のデータによる情報処理結果が到達することが期待されている。従って、この回路が誤らずに期待通りの動作をするためには、一時記憶回路４４からデータが論理回路１に供給されはじめてから、そのデータによる情報処理結果が一時記憶回路４５に到達して確定し、それによって一時記憶回路４５が内容の更新を終了するまでの最大時間と、一時記憶回路４４からデータが論理回路４０に供給されはじめてから、そのデータによる処理結果が一時記憶回路４５への入力に影響を及ぼし始めるまでの最小時間との差が、クロック周期よりも小さいことが保障されていなければならない。仮に次の信号による処理結果が一時記憶回路４５に到達してから、最初の処理結果のための一時記憶回路４５の内容更新が行なわれると、最初の処理結果として、次の処理結果が登録されてしまい、回路が正常に動作しない結果となるからである。
【００１８】
この問題を回避するために、ウェーブ・パイプラインでは一時記憶回路４４から供給される信号が伝播して一時記憶回路４５の入力に影響を及ぼし始めるまでの時間を一時記憶回路４４が与えうるあらゆるデータパターンについて調べて、それの最小時間をもとめ、一方で一時記憶回路４４から供給される信号が伝播して一時記憶回路４５の入力に確定した信号を与えるまでの時間を一時記憶回路４４が与えうるあらゆるデータパターンについて調べて、それの最大時間をもとめ、その差と一時記憶回路が内容を更新するのに要する時間との和よりもクロック周期が必ず大きくなるように設計する。そのようにすれば、最初の処理結果と次の処理結果が干渉する誤動作が生ずる可能性がなくなるからである。
【００１９】
通常の論理回路の設計手法では、一時記憶回路４４から供給された信号が伝播して一時記憶回路４５に到達するまでの最小時間と最大時間の差ははなはだ大きく、このようにして定まるクロック周期は、図３７の回路を従来の同期式回路として作用させたときのクロック周期に比べてさほどの短縮はおこなえない。
【００２０】
そこでウェーブ・パイプラインでは、信号伝播が短時間で完了する経路に意図的に動作速度の遅い素子を採用したり、あるいは遅延素子を挿入したりして、極力遅延時間を揃えるように設計する。また、データパターンによって遅延時間が異なってもクロック周期が短縮できないため、データパターンに依存しない遅延時間を与える素子や回路を採用することもある。
【発明の開示】
【発明が解決しようとする課題】
【００２１】
以上の方策を試みてもなお、製造時の素子性能ばらつき等により遅延時間を完全にそろえることは困難であり、そのためにウェーブ・パイプラインの応用も極めて限られたものとなっている。
このように、以上述べたクロックの調整方法では、そのデジタル演算処理回路が、動作するようにクロックタイミングを設定することのみを行っている。このため、製造後のクロックタイミングが動作可能なぎりぎりのところで間に合っている、という場合について動作余裕を確保する手段を提供するものではなかった。
【００２２】
本発明の目的は、上記従来例に鑑み、大規模、高速な集積回路において、動作余裕を考慮したクロック信号のタイミング調整を個々のデジタル演算処理回路毎に自動で行うようにしたデジタル演算処理回路のタイミング余裕度を求める方法およびそのためのデジタル演算処理システム、プログラム、記録媒体を提供することにある。
【課題を解決するための手段】
【００２３】
上記目的を達成するために、本発明では、論理遅延の値を制御する制御端子を持った遅延回路を用い、デジタル演算処理回路の論理演算の正誤状態を見ながらタイミング余裕度を判断し、論理遅延を決める制御端子に対し前記タイミング余裕度を確保するように制御信号により論理遅延値を設定する手段を採用する。
本発明は、前記論理遅延値を設定する手段を備えたタイミング余裕度を求める方法、およびそのためのデジタル演算処理システム、プログラム、記録媒体にある。
【００２４】
本発明のデジタル演算処理システムおよび、本発明のデジタル演算処理システムのクロック信号調整方法によれば、回路素子の特性（遅延特性など）が正確に把握できない場合、あるいは製造プロセス上その回路素子の特性に誤差が生ずるような場合、そしてクロック回路に品質不均一や設計上の誤差が生ずるような場合、さらにはデジタル演算処理回路中の基本的回路の構成が明確でない場合でも、クロック信号のタイミング誤差を吸収して、動作余裕を確保し、デジタル演算処理回路を誤りなく作動するように調整することができるので、従来技術による場合よりも少ない設計労力で、その機能に関して従来技術による場合よりも高い性能を得ることができる。しかも、回路素子等のばらつきに起因するデジタル演算処理システムの性能の低下を改善することもできる。
【００２５】
また、本発明のデジタル演算処理システムおよび、本発明のデジタル演算処理システムのクロック信号調整方法によれば、被検査対象であるデジタル演算処理回路全体が誤りなく動作する範囲でデジタル演算処理回路全体のフリップフロップのタイミングを動作余裕を確保しながら精密に調整してフリップフロップ同士の動作タイミングを僅かにずらすことができるので、デジタル信号の同時変化に起因する、消費電力の増大によるデジタル演算処理回路のサイズ拡大や、不要電磁放射（ＥＭＩ）の発生を抑制することもできる。
【００２６】
ここで、デジタル演算処理回路がどの程度誤りなく動作するかは、遅延回路の遅延値をパラメータとする評価関数Ｆで表すことができる。デジタル演算処理回路が誤りなく動作することは、上記の評価関数Ｆの解を求めることと等価である。本願発明者はこの点に注目し、デジタル演算処理回路のクロックタイミング調整手法に遺伝的アルゴリズムの適用が可能なことを見出した。
【００２７】
遺伝的アルゴリズムは、確率的探索手法の一つであり、（１）広域探索において有効に作用し、（２）評価関数Ｆ以外には微分値等の派生的な情報が必要でなく、（３）しかも容易な実装性を持つ、アルゴリズムである。
【００２８】
またクロック回路は木構造を持つように実装されるが、上述のように木構造の先端の葉の部分、つまり、フリップフロップの部分だけに調整可能な遅延素子を配置する方法以外に、木構造の途中の分岐点にも配置する方法が考えられる。この場合、分岐点に配置された調整可能な遅延素子は、その点よりも先に存在する調整可能な遅延素子に遅延を追加するように機能し、それら先端部の遅延素子を小型にする作用を持つ。したがって、調整可能な遅延素子の実現に必要な総サイズも小さくすることができる可能性を持つ。
【００２９】
そして、本発明においては、制御信号の変更を、クロック信号の周波数を段階的に上昇させながら行うようにしても良く、このようにすれば、より高いクロック周波数ひいてはより高速の動作状態でデジタル演算処理回路を動作させることができる。
【００３０】
本発明のデジタル演算処理システムおよび、本発明のデジタル演算処理システムのクロック信号調整方法におけるデジタル演算処理システムは、集積回路として構成されていても良く、このようにすれば、回路素子のバラツキが実際に作成するまで明らかでない集積回路について、クロック信号を最適に調整することができる。
【００３１】
本発明のデジタル演算処理システムおよび、本発明のデジタル演算処理システムのクロック信号調整方法におけるデジタル演算処理システムは、パイプライン構造を持っていても良く、このようにすれば、パイプライン構造のデータ依存関係を利用して調整を部分的かつ段階的に行うことができるので、調整探索空間を少なくして調整時間を短縮することができる。
【００３２】
本発明のデジタル演算処理システムおよび、本発明のデジタル演算処理システムのクロック信号調整方法におけるデジタル演算処理システムは、回路基板として構成されていても良く、このようにすれば、デジタル回路基板製造工程におけるクロック回路の構成素子や構成材料の不均一や設計上の誤差等に起因するクロックタイミングのずれを吸収して、デジタル回路基板が誤動作しないように調整することができる。
【００３３】
本発明のデジタル演算処理システムおよび、本発明のデジタル演算処理システムのクロック信号調整方法における上記外部装置や上記設定手段は、パーソナルコンピュータやマイクロコンピュータ等の電子計算機で構成されていても良く、このようにすれば、複数の保持回路が保持する複数の制御信号の値をデジタル演算処理回路が動作タイミングに関し誤りなく動作するように確率的探索手法に従って変更する処理を短時間で容易かつ確実に行うことができる。
【００３４】
さらに、本発明の記録媒体は、デジタル演算処理回路のクロック信号調整方法において電子計算機が実行する、複数の保持回路が保持する複数の制御信号の値をデジタル演算処理回路が動作タイミングに関し動作余裕を持って誤りなく動作する処理プログラムを記録したものであることを特徴とするものである。
【００３５】
かかる記録媒体によれば、本発明のデジタル演算処理システムおよび、本発明のデジタル演算処理システムのクロック信号調整方法のために電子計算機が実行する処理プログラムを記録し保存し得て、任意の場所でクロック信号の調整を行うことができる。なお、かかる記録媒体としては、フレキシブルディスクの他、ハードディスクやＣＤ−ＲＯＭ、光ディスク等のデータ記録媒体、そしてＲＯＭ、ＲＡＭ等の記憶素子を用いることができる。
【００３６】
前記目的の具体的な解決手段は以下のようになる。
（１）  タイミング余裕度を求める方法は、
記憶素子、プログラマブル遅延素子および演算素子からなり、単一あるいは複数のクロック信号に同期して動作し、前記記憶素子に記憶された遅延値により前記プログラマブル遅延素子の遅延値が設定され、前記遅延値により動作される前記演算素子を有する単一あるいは複数のデジタル演算処理回路のタイミング余裕度を求める方法であって、
前記記憶素子に記憶された遅延値によりプログラマブル遅延素子の遅延値が設定され、前記プログラマブル遅延素子それぞれについてタイミング余裕度Ｍｉを計測する手順Ａ、
求めたタイミング余裕度Ｍｉの内で最小のＭｉ値を検査対象である論理回路のタイミング余裕度Ｍとして記憶する手順Ｂ、
タイミング余裕度Ｍの閾値をＭｔｈとするとき、Ｍ＜Ｍｔｈか否か判断し、Ｍ＜Ｍｔｈのとき、遅延値の再調整をして手順Ａへ戻り、Ｍ≧Ｍｔｈのとき、遅延値の調整手順を終了する手順Ｃ、からなることを特徴とする。
（２）  上記（１）記載のタイミング余裕度を求める方法は、
前記タイミング余裕度Ｍｉを計測する手順Ａを、遅延値を遅延方向と早める方向の両方に変更して余裕度の検査をし、より余裕のない方向の値をタイミング余裕度Ｍｉとして記憶する手順としたことを特徴とする。
【００３７】
（３）  上記（１）又は（２）記載のタイミング余裕度を求める方法は、
前記手順Ａを、
前記論理回路内の全てのプログラマブル遅延素子の遅延値を、遅延値を記憶した前記記憶素子から読み出し、前回調整時の最終の最良値に設定する手順ａ、
前記記憶素子に設定する遅延値の変更分Ｊを遅らせる方向の１とする手順ｂ、
前記記憶素子に設定する遅延値を上記最終の最良値＋前記Ｊに変更して記憶する手順ｃ、
前記論理回路にテスト系列を入力し、前記論理回路の出力値の正答率を計測する手順ｄ、
上記手順ｄで計測した結果について、正答率が１００％か否か判断し、１００％のとき下記手順ｆへ進み、１００％ではないときは手順ｇへ進む手順ｅ、
手順ｅにおいて、正答率が１００％のとき、現在の遅延値の変更分Ｊの値に１を加算して新しい遅延値の変更分Ｊとして記憶し、手順ｃへ進む手順ｆ、
前記記憶素子に設定する遅延値の変更分Ｋを早める方向の−１とする手順ｇ、
前記記憶素子に設定する遅延値を上記最終の最良値＋前記Ｋに変更して記憶する手順ｈ、
前記論理回路に前記テスト系列を入力し、論理回路の出力値の正答率を計測する手順ｉ、
前記手順ｉで計測した結果について、正答率が１００％か否か判断し、１００％のとき手順ｋへ進み、１００％ではないときは手順ｌへ進む手順ｊ、
手順ｊにおいて、正答率が１００％のとき、現在の遅延値の変更分Ｋの値から１を減算して新しい遅延値の変更分Ｋとして記憶し、手順ｈへ進む手順ｋ、
手順ｊでの正答率が１００％ではないとき、前記Ｊ＞前記Ｋの絶対値か否か判断し、前記Ｊ＞前記Ｋの絶対値のとき、手順ｎへ進み、前記Ｊ＞前記Ｋの絶対値でないとき、手順ｍへ進む手順ｌ、
前記手順ｌにおいて、前記Ｊ＞前記Ｋの絶対値でないとき、前記遅延値の変更分Ｊの値をタイミング余裕度Ｍｉとして記憶し、このタイミング余裕度Ｍｉを求める一連の手順を終了する手順ｍ、
前記手順ｌにおいて、前記Ｊ＞前記Ｋの絶対値のとき、前記遅延値の変更分Ｋの絶対値をタイミング余裕度Ｍｉとして記憶し、このタイミング余裕度Ｍｉを求める一連の手順を終了する手順ｎ、
に置き換えたことを特徴とする。
【００３８】
（４）  上記（１）又は（２）記載のタイミング余裕度を求める方法は、
前記手順Ａを、以下の一連の、
論理回路内の全てのプログラマブル遅延素子の遅延値を、遅延値を記憶した記憶素子から読み出し、前回調整時の最終の最良値に設定する手順ａ、
Ｎを遅延方向に設定可能な遅延値の最大値とするとき、前記記憶素子に設定する遅延値の変更分ＪをＮ／２とする手順ｂ、
プログラマブル遅延素子の遅延値を上記最終値から遅延方向＋ｊへ変更して記憶する手順ｃ、
前記論理回路に全テスト系列を入力し、前記論理回路の出力値の正答率を計測する手順ｄ、
前記手順ｄで計測した結果について、二分探索法は終了した（ＹＥＳ）か否（ＮＯ）か判断し、終了していないとき（ＮＯ）は手順ｆへ進み、終了しているとき（ＹＥＳ）は手順ｇへ進む手順ｅ、
手順ｅにおいて、二分探索法は終了していないと判断されたとき、正答率が１００％を満たす最大（限界）のＪを探索するために、二分探索法に従いＪを更新し、手順ｃへ戻る手順ｆ、
手順ｅにおいて、二分探索法は終了していると判断されたとき、Ｍを早める方向に設定可能な遅延値の最小値とするとき、前記記憶素子に設定する遅延値の変更分ＫをＭ／２とする手順ｇ、
プログラマブル遅延素子の遅延値を上記最終値から早める方向+Ｋへ変更して記憶する手順ｈ、
論理回路にテスト系列を入力し、出力値の正答率を計測する手順ｉ、
前記手順ｉで計測した結果について、二分探索法は終了した（ＹＥＳ）か否（ＮＯ）か判断し、終了していないとき（ＮＯ）は手順ｋへ進み、終了しているとき（ＹＥＳ）は手順ｌへ進む手順ｊ、
手順ｊにおいて、二分探索法は終了していないと判断されたとき、正答率が１００％を満たす最小（限界）のＫを探索するために、二分探索法に従いＫを更新し、手順ｈへ戻る手順ｋ、
手順ｊにおいて、二分探索法は終了していると判断されたとき、
Ｊ＞｜Ｋ｜か否（ＮＯ）か判断し、Ｊ＞｜Ｋ｜（ＹＥＳ）のときは手順ｍへ進み、ＮＯのときは手順ｎへ進む手順ｌ、
手順ｌにおいて、判断結果がＹＥＳのとき、｜Ｋ｜をＭｉとし、終了する手順ｍ、
手順ｌにおいて、判断結果がＮＯのとき、ＪをＭｉとし、終了する手順ｎ、
に置き換えたことを特徴とする。
【００３９】
（５）  デジタル演算処理システムは、
記憶素子、プログラマブル遅延素子および演算素子からなり、
単一あるいは複数のクロック信号に同期して動作し、
前記記憶素子に記憶された遅延値により前記プログラマブル遅延素子の遅延値が設定され、前記遅延値により動作される前記演算素子を有する単一あるいは複数のデジタル演算処理回路を被検査回路として検査するデジタル演算処理システムであって、
前記デジタル演算処理回路のデジタル出力信号を観測するデジタル信号観測手段と、
前記デジタル演算処理回路を調整するためのテスト信号およびクロック信号を発生するデジタルテスト信号発生手段と、
前記デジタルテスト信号発生手段に接続されて信号発生を制御すると供に、前記デジタル信号観測手段に接続されて前記デジタル演算処理回路の出力信号および内部状態信号を観測させ、所定の手順により前記デジタル演算処理回路におけるタイミング余裕度が所定の値となるときの前記プログラマブル遅延素子の遅延値を算出し、前記算出した遅延値を前記記憶素子に記憶させる調整手段と、
からなることを特徴とする。
（６）  上記（５）記載のデジタル演算処理システムは、
前記デジタル信号観測手段と、前記デジタルテスト信号発生手段と、前記調整手段を前記デジタル演算処理回路と供に１つの集積回路として構成したことを特徴とする。
（７）  上記（５）記載のデジタル演算処理システムは、
前記デジタル信号観測手段と、前記デジタルテスト信号発生手段と、前記調整手段を前記デジタル演算処理回路と別体の回路として構成したことを特徴とする。
（８）  上記（７）記載のデジタル演算処理システムは、
前記デジタル信号観測手段と、前記デジタルテスト信号発生手段と、前記調整手段を前記デジタル演算処理回路と供に１つの回路基板上に搭載したことを特徴とする。
（９）  上記（７）記載のデジタル演算処理システムは、
前記デジタル信号観測手段をロジックアナライザとし、前記デジタルテスト信号発生手段をデータジェネレータとし、前記調整手段をコンピュータとして、前記デジタル演算処理回路と別体に構成したことを特徴とする。
（１０）  上記（５）乃至（９）のいずれか１項記載のデジタル演算処理システムは、
前記請求項Ａ１記載の所定の手順を、
前記遅延値により動作される演算素子それぞれについてタイミング余裕度Ｍｉを計測し、
求めたタイミング余裕度Ｍｉの内で最小のＭｉ値を検査対象である論理回路のタイミング余裕度Ｍとして記憶し、
タイミング余裕度Ｍの閾値をＭｔｈとするとき、Ｍ＜Ｍｔｈか否か判断し、Ｍ＜Ｍｔｈのとき、前記遅延値の再調整を行い、Ｍ≧Ｍｔｈのとき、遅延量の調整を終了する手順としたことを特徴とする。
（１１）  上記（１０）記載のデジタル演算処理システムは、前記タイミング余裕値Ｍｉを計測する手順を、遅延値を遅延方向と早める方向の両方に変更して余裕度の検査をし、より余裕のない方向の値をタイミング余裕度Ｍｉとして記憶する手順としたことを特徴とする。
【００４０】
（１２）  上記（１０）又は（１１）記載のデジタル演算処理システムは、
前記遅延値により動作される演算素子それぞれについてのタイミング余裕度Ｍｉの計測手順を、
前記論理回路内の全ての前記プログラマブル遅延素子の遅延値を、遅延値を記憶した前記記憶素子から読み出し、前回調整時の最終の最良値に設定し、
前記記憶素子に設定する遅延値の変更分Ｊを遅らせる方向の１に設定し、
前記記憶素子に設定する遅延値を上記最終の最良値＋前記Ｊに変更して記憶させ、
前記論理回路にテスト系列を入力し、前記論理回路の出力値の正答率を計測し、
上記正答率が１００％か否か判断し、正答率が１００％のとき、現在の遅延値の変更分Ｊの値に１を加算して新しい遅延値の変更分Ｊとして記憶し、再度前記記憶素子に設定する遅延値を上記最終の最良値＋前記Ｊに変更して記憶させる手順から実行し、１００％ではないときは前記記憶素子に設定する遅延値の変更分Ｋを早める方向の−１に設定し、
前記記憶素子に設定する遅延値を上記最終の最良値＋前記Ｋに変更して記憶し、
前記論理回路に前記テスト系列を入力し、論理回路の出力値の正答率を計測し、
前記計測した結果について、正答率が１００％か否か判断し、正答率が１００％のとき、
現在の遅延値の変更分Ｋの値から１を減算して新しい遅延値の変更分Ｋとして記憶し、再度前記論理回路に前記テスト系列を入力し、論理回路の出力値の正答率を計測する手順から実行し、１００％ではないときは、前記Ｊ＞前記Ｋの絶対値か否か判断し、前記Ｊ＞前記Ｋの絶対値のとき、前記遅延値の変更分Ｋの絶対値をタイミング余裕度Ｍｉとして記憶し、このタイミング余裕度Ｍｉを求める一連の手順を終了し、前記Ｊ＞前記Ｋの絶対値でないとき、前記遅延値の変更分Ｊの値をタイミング余裕度Ｍｉとして記憶し、このタイミング余裕度Ｍｉを求める一連の手順を終了する手順としたことを特徴とする。
【００４１】
（１３）  上記（１０）又は（１１）記載のデジタル演算処理システムは、
前記遅延値により動作される演算素子それぞれについてのタイミング余裕度Ｍｉの計測手順を、
すべての前記プログラマブル遅延素子の遅延値を、調整時の最終値（最良値）に設定し、
遅延値の変更分Ｊを遅延方向に設定可能な遅延値の最大値Ｎの１／２にし、
前記プログラマブル遅延素子の遅延値を上記最終値＋ｊ（遅延方向）とし、
論理回路にテスト系列を入力し、出力値の正答率を計測し、
二分探索法は終了した（ＹＥＳ）か否（ＮＯ）か判断し、終了していないときは、正答率１００％を満たす最大（限界）のＪを探索するために、二分探索法に従いＪを更新し、再度前記記憶素子の設定値を上記最終値＋ｊ（遅延方向）とする手順から実行し、
終了しているときは、遅延値の変更分Ｋを早める方向に設定可能な遅延値の最小値Ｍの１／２とし、
前記プログラマブル遅延素子の遅延値の設定値を上記最終値＋前記早める方向のＫとし、
前記論理回路にテスト系列を入力し、出力値の正答率を計測し、
二分探索法は終了したか否か判断し、終了していないときは、正答率１００％を満たす最小（限界）のＫを探索するために、二分探索法に従いＫを更新し、再度前記記憶素子の設定値を上記最終値＋前記早める方向のＫとする手順から実行し、
終了しているときは、Ｊ＞｜Ｋ｜か否か判断し、Ｊ＞｜Ｋ｜のときは｜Ｋ｜をＭｉとして一連の手順を終了し、Ｊ＞｜Ｋ｜でないときは、ＪをＭｉとして一連の手順を終了する手順としたことを特徴とする。
【００４２】
（１４）  プログラムは、
コンピュータに、
記憶素子、プログラマブル遅延素子および演算素子からなり、
単一あるいは複数のクロック信号に同期して動作し、
前記記憶素子に記憶された遅延値により前記プログラマブル遅延素子の遅延値が設定され、前記遅延値により動作される前記演算素子を有する単一あるいは複数のデジタル演算処理回路のタイミング余裕度を求める手順を実行するプログラムであって、
記憶素子に記憶された遅延値によりプログラマブル遅延素子の遅延値が設定され、前記遅延値により動作される演算素子それぞれについてタイミング余裕度Ｍｉを計測する手順Ａ、
求めたタイミング余裕度Ｍｉの内で最小のＭｉ値を検査対象である論理回路のタイミング余裕度Ｍとして記憶する手順Ｂ、
タイミング余裕度Ｍの閾値をＭｔｈとするとき、Ｍ＜Ｍｔｈか否か判断し、Ｍ＜Ｍｔｈのとき、前記遅延値の再調整のため、手順Ａへ戻り、Ｍ≧Ｍｔｈのとき、遅延量の調整手順を終了する手順Ｃ、を実行させるためのプログラムとする。
【００４３】
（１５）  上記（１４）のプログラムは、
前記タイミング余裕値Ｍｉを計測する手順は、遅延値を遅延方向と早める方向の両方に変更して余裕度の検査をし、より余裕のない方向の値をタイミング余裕度Ｍｉとして記憶する手順としたことを特徴とする。
（１６）  上記（１４）又は（１５）記載のプログラムは、
コンピュータに、
前記手順Ａを、以下の一連の、
前記論理回路内の全てのプログラマブル遅延素子の遅延値を、遅延値を記憶した前記記憶素子から読み出し、前回調整時の最終の最良値に設定する手順ａ、
前記記憶素子に設定する遅延値の変更分Ｊを遅らせる方向の１とする手順ｂ、
前記記憶素子に設定する遅延値を上記最終の最良値＋前記Ｊに変更して記憶する手順ｃ、
前記論理回路にテスト系列を入力し、前記論理回路の出力値の正答率を計測する手順ｄ、
上記手順ｄで計測した結果について、正答率が１００％か否か判断し、１００％のとき下記手順ｆへ進み、１００％ではないときは手順ｇへ進む手順ｅ、
手順ｅにおいて、正答率が１００％のとき、現在の遅延値の変更分Ｊの値に１を加算して新しい遅延値の変更分Ｊとして記憶し、手順ｃへ進む手順ｆ、
前記記憶素子に設定する遅延値の変更分Ｋを早める方向の−１とする手順ｇ、
前記記憶素子に設定する遅延値を上記最終の最良値＋前記Ｋに変更して記憶する手順ｈ、
前記論理回路に前記テスト系列を入力し、論理回路の出力値の正答率を計測する手順ｉ、
前記手順ｉで計測した結果について、正答率が１００％か否か判断し、１００％のとき手順ｋへ進み、１００％ではないときは手順ｌへ進む手順ｊ、
手順ｊにおいて、正答率が１００％のとき、現在の遅延値の変更分Ｋの値から１を減算して新しい遅延値の変更分Ｋとして記憶し、手順ｈへ進む手順ｋ、
手順ｊでの正答率が１００％ではないとき、前記Ｊ＞前記Ｋの絶対値か否か判断し、前記Ｊ＞前記Ｋの絶対値のとき、手順ｎへ進み、前記Ｊ＞前記Ｋの絶対値でないとき、手順ｍへ進む手順ｌ、
前記手順ｌにおいて、前記Ｊ＞前記Ｋの絶対値でないとき、前記遅延値の変更分Ｊの値をタイミング余裕度Ｍｉとして記憶し、このタイミング余裕度Ｍｉを求める一連の手順を終了する手順ｍ、
前記手順ｌにおいて、前記Ｊ＞前記Ｋの絶対値のとき、前記遅延値の変更分Ｋの絶対値をタイミング余裕度Ｍｉとして記憶し、このタイミング余裕度Ｍｉを求める一連の手順を終了する手順ｎ、
に置き換えて実行させるためのプログラムとする。
【００４４】
（１７）  上記（１４）又は（１５）記載のプログラムは、
コンピュータに、
前記手順Ａを、以下の一連の、
論理回路内の全てのプログラマブル遅延素子の遅延値を、遅延値を記憶した記憶素子から読み出し、前回調整時の最終の最良値に設定する手順ａ、
Ｎを遅延方向に設定可能な遅延値の最大値とするとき、前記記憶素子に設定する遅延値の変更分ＪをＮ／２とする手順ｂ、
プログラマブル遅延素子の遅延値を上記最終値から遅延方向＋ｊへ変更して記憶する手順ｃ、
前記論理回路に全テスト系列を入力し、前記論理回路の出力値の正答率を計測する手順ｄ、
前記手順ｄで計測した結果について、二分探索法は終了した（ＹＥＳ）か否（ＮＯ）か判断し、終了していないとき（ＮＯ）は手順ｆへ進み、終了しているとき（ＹＥＳ）は手順ｇへ進む手順ｅ、
手順ｅにおいて、二分探索法は終了していないと判断されたとき、正答率が１００％を満たす最大（限界）のＪを探索するために、二分探索法に従いＪを更新し、手順ｃへ戻る手順ｆ、
手順ｅにおいて、二分探索法は終了していると判断されたとき、Ｍを早める方向に設定可能な遅延値の最小値とするとき、前記記憶素子に設定する遅延値の変更分ＫをＭ／２とする手順ｇ、
プログラマブル遅延素子の遅延値を上記最終値から早める方向＋Ｋへ変更して記憶する手順ｈ、
論理回路にテスト系列を入力し、出力値の正答率を計測する手順ｉ、
前記手順ｉで計測した結果について、二分探索法は終了した（ＹＥＳ）か否（ＮＯ）か判断し、終了していないとき（ＮＯ）は手順ｋへ進み、終了しているとき（ＹＥＳ）は手順ｌへ進む手順ｊ、
手順ｊにおいて、二分探索法は終了していないと判断されたとき、正答率が１００％を満たす最小（限界）のＫを探索するために、二分探索法に従いＫを更新し、手順ｈへ戻る手順ｋ、
手順ｊにおいて、二分探索法は終了していると判断されたとき、
Ｊ＞｜Ｋ｜か否（ＮＯ）か判断し、Ｊ＞｜Ｋ｜（ＹＥＳ）のときは手順ｍへ進み、ＮＯのときは手順ｎへ進む手順ｌ、
手順ｌにおいて、判断結果がＹＥＳのとき、｜Ｋ｜をＭｉとし、終了する手順ｍ、
手順ｌにおいて、判断結果がＮＯのとき、ＪをＭｉとし、終了する手順ｎ、
に置き換えて実行させるためのプログラム。
【００４５】
（１８）  コンピュータ読み取り可能な記録媒体は、
コンピュータに、
記憶素子、プログラマブル遅延素子および演算素子からなり、
単一あるいは複数のクロック信号に同期して動作し、
前記記憶素子に記憶された遅延値により前記プログラマブル遅延素子の遅延値が設定され、前記遅延値により動作される前記演算素子を有する単一あるいは複数のデジタル演算処理回路のタイミング余裕度を求める手順を実行するプログラムであって、
記憶素子に記憶された遅延値によりプログラマブル遅延素子の遅延値が設定され、前記遅延値により動作される演算素子それぞれについてタイミング余裕度Ｍｉを計測する手順Ａ、
求めたタイミング余裕度Ｍｉの内で最小のＭｉ値を検査対象である論理回路のタイミング余裕度Ｍとして記憶する手順Ｂ、
タイミング余裕度Ｍの閾値をＭｔｈとするとき、Ｍ＜Ｍｔｈか否か判断し、Ｍ＜Ｍｔｈのとき、再調整のため、手順Ａへ戻り、Ｍ≧Ｍｔｈのとき、遅延量の調整手順を終了する手順Ｃ、を実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体とする。
（１９）  上記（１８）記載のコンピュータ読み取り可能な記録媒体は、
前記タイミング余裕値Ｍｉを計測する手順は、遅延値を遅延方向と早める方向の両方に変更して余裕度の検査をし、より余裕のない方向の値をタイミング余裕度Ｍｉとして記憶する手順としたことを特徴とする。
【００４６】
（２０）  上記（１８）又は（１９）記載のコンピュータ読み取り可能な記録媒体は、
コンピュータに、
前記手順Ａを、以下の一連の、
前記論理回路内の全てのプログラマブル遅延素子の遅延値を、遅延値を記憶した前記記憶素子から読み出し、前回調整時の最終の最良値に設定する手順ａ、
前記記憶素子に設定する遅延値の変更分Ｊを遅らせる方向の１とする手順ｂ、
前記記憶素子に設定する遅延値を上記最終の最良値＋前記Ｊに変更して記憶する手順ｃ、
前記論理回路にテスト系列を入力し、前記論理回路の出力値の正答率を計測する手順ｄ、
上記手順ｄで計測した結果について、正答率が１００％か否か判断し、１００％のとき下記手順ｆへ進み、１００％ではないときは手順ｇへ進む手順ｅ、
手順ｅにおいて、正答率が１００％のとき、現在の遅延値の変更分Ｊの値に１を加算して新しい遅延値の変更分Ｊとして記憶し、手順ｃへ進む手順ｆ、
前記記憶素子に設定する遅延値の変更分Ｋを早める方向の−１とする手順ｇ、
前記記憶素子に設定する遅延値を上記最終の最良値＋前記Ｋに変更して記憶する手順ｈ、
前記論理回路に前記テスト系列を入力し、論理回路の出力値の正答率を計測する手順ｉ、
前記手順ｉで計測した結果について、正答率が１００％か否か判断し、１００％のとき手順ｋへ進み、１００％ではないときは手順ｌへ進む手順ｊ、
手順ｊにおいて、正答率が１００％のとき、現在の遅延値の変更分Ｋの値から１を減算して新しい遅延値の変更分Ｋとして記憶し、手順ｈへ進む手順ｋ、
手順ｊでの正答率が１００％ではないとき、前記Ｊ＞前記Ｋの絶対値か否か判断し、前記Ｊ＞前記Ｋの絶対値のとき、手順ｎへ進み、前記Ｊ＞前記Ｋの絶対値でないとき、手順ｍへ進む手順ｌ、
前記手順ｌにおいて、前記Ｊ＞前記Ｋの絶対値でないとき、前記遅延値の変更分Ｊの値をタイミング余裕度Ｍｉとして記憶し、このタイミング余裕度Ｍｉを求める一連の手順を終了する手順ｍ、
前記手順ｌにおいて、前記Ｊ＞前記Ｋの絶対値のとき、前記遅延値の変更分Ｋの絶対値をタイミング余裕度Ｍｉとして記憶し、このタイミング余裕度Ｍｉを求める一連の手順を終了する手順ｎ、
に置き換えて実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体とする。
【００４７】
（２１）  上記（１８）又は（１９）記載のコンピュータ読み取り可能な記録媒体は、
コンピュータに、
前記手順Ａを、以下の一連の、
論理回路内の全てのプログラマブル遅延素子の遅延値を、遅延値を記憶した記憶素子から読み出し、前回調整時の最終の最良値に設定する手順ａ、
Ｎを遅延方向に設定可能な遅延値の最大値とするとき、前記記憶素子に設定する遅延値の変更分ＪをＮ／２とする手順ｂ、
プログラマブル遅延素子の遅延値を上記最終値から遅延方向＋ｊへ変更して記憶する手順ｃ、
前記論理回路に全テスト系列を入力し、前記論理回路の出力値の正答率を計測する手順ｄ、
前記手順ｄで計測した結果について、二分探索法は終了した（ＹＥＳ）か否（ＮＯ）か判断し、終了していないとき（ＮＯ）は手順ｆへ進み、終了しているとき（ＹＥＳ）は手順ｇへ進む手順ｅ、
手順ｅにおいて、二分探索法は終了していないと判断されたとき、正答率が１００％を満たす最大（限界）のＪを探索するために、二分探索法に従いＪを更新し、手順ｃへ戻る手順ｆ、
手順ｅにおいて、二分探索法は終了していると判断されたとき、Ｍを早める方向に設定可能な遅延値の最小値とするとき、前記記憶素子に設定する遅延値の変更分ＫをＭ／２とする手順ｇ、
プログラマブル遅延素子をフリップフロップｉとしたときの設定値を上記最終値から早める方向＋Ｋへ変更して記憶する手順ｈ、
論理回路にテスト系列を入力し、出力値の正答率を計測する手順ｉ、
前記手順ｉで計測した結果について、二分探索法は終了した（ＹＥＳ）か否（ＮＯ）か判断し、終了していないとき（ＮＯ）は手順ｋへ進み、終了しているとき（ＹＥＳ）は手順ｌへ進む手順ｊ、
手順ｊにおいて、二分探索法は終了していないと判断されたとき、正答率が１００％を満たす最小（限界）のＫを探索するために、二分探索法に従いＫを更新し、手順ｈへ戻る手順ｋ、
手順ｊにおいて、二分探索法は終了していると判断されたとき、
Ｊ＞｜Ｋ｜か否（ＮＯ）か判断し、Ｊ＞｜Ｋ｜（ＹＥＳ）のときは手順ｍへ進み、ＮＯのときは手順ｎへ進む手順ｌ、
手順ｌにおいて、判断結果がＹＥＳのとき、｜Ｋ｜をＭｉとし、終了する手順ｍ、
手順ｌにおいて、判断結果がＮＯのとき、ＪをＭｉとし、終了する手順ｎ、
に置き換えて実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体とする。
【発明の効果】
【００４８】
本発明は、論理遅延の値を制御する制御端子を持った遅延回路を用い、デジタル演算処理回路の論理演算の正誤状態を見ながら動作余裕度を判断し、論理遅延を決める制御端子に対し前記動作余裕度を確保するように制御信号により論理遅延値を設定する手段および方法を採用するので、デジタル演算処理への影響、例えば、温度変化に基づく論理演算素子の動作点変動、電源電圧変動、マイクロプロセッサの処理状況により変動する動作余裕を確保することができ、デジタル演算処理回路におけるクロック信号のタイミング不良による障害発生を阻止することができるようになる。
また、大規模、高速なデジタル演算処理システムにおいて、動作余裕を考慮したクロック信号のタイミング調整を個々のデジタル演算処理回路毎に自動で適切に行うことができる。
【発明を実施するための最良の形態】
【００４９】
以下に、本発明の実施の形態を実施例によって、図面に基づき詳細に説明する。
本発明は、単一もしくは  複数のクロック信号を用いて動作する多様なデジタル演算処理回路に適用可能である。すなわち、調整対象のデジタル演算処理回路のクロック回路中に複数のタイミング調整箇所を設けることで、本発明によりクロック信号を調整することが可能となる。
【実施例１】
【００５０】
以下の実施例１では、単一もしくは複数のクロック信号を用いて動作するデジタル演算処理回路一般に本発明を適用した場合について述べる。
ここに、図１は、一般的なデジタル演算処理回路に本発明の方法を適用したデジタル演算処理システムを模式的に示す構成図である。
本発明のデジタル演算処理システムは、記憶素子、プログラマブル遅延素子および演算素子を含み、単一あるいは複数のクロック信号に同期して動作し、前記記憶素子に記憶された遅延値により前記プログラマブル遅延素子の遅延値が設定され、前記遅延値により動作される前記演算素子を有する単一あるいは複数のデジタル演算処理回路を被検査回路として検査するデジタル演算処理システムであって、前記デジタル演算処理回路のデジタル出力信号および内部状態を観測するデジタル信号観測手段と、前記デジタル演算処理回路を調整するためのテスト信号およびクロック信号を発生するデジタルテスト信号発生手段と、前記デジタルテスト信号発生手段に接続されて信号発生を制御すると供に、前記デジタル信号観測手段に接続されて前記デジタル演算処理回路の出力信号および内部状態信号を観測させ、所定の手順により前記デジタル演算処理回路におけるタイミング余裕度が所定の値となるときの前記プログラマブル遅延素子の遅延値を算出し、前記算出した遅延値を前記記憶素子に記憶させる調整手段と、から構成される。
【００５１】
デジタル演算処理回路におけるクロック信号のタイミング不良による障害は、デジタル演算処理回路の設計工程を長期化させ、デジタル演算処理回路を構成する素子の性能を限定的にしか使用できないため、デジタル演算処理回路そのものの性能を制限し、かつ、コストの抑制の障害になっている。従って、クロック信号のタイミング調整を、個々のデジタル演算処理回路ごとに行う本発明のクロック信号調整方法は必要不可欠なものである。
【００５２】
図１中、符号１は、例えばマイクロコンピュータ等を構成し、与えられたプログラムに基づくデータ処理等の所定の機能を奏するデジタル演算処理回路、２はクロック信号のタイミング調整が必要なフリップフロップ、３はタイミング調整が不要なフリップフロップを示す。また、４はクロックのタイミングをレジスタの値に応じて変化させ得る調整可能な遅延素子（プログラマブル遅延素子）、５は４の遅延設定値を保持するレジスタを示す。４と５を組にしたものを、遅延回路と呼ぶ。
【００５３】
遅延素子４は、フリップフロップ２のクロック端子と、そのクロック端子にクロック信号を供給するクロック回路との間に挿入されている。またレジスタ５は、遅延素子４に接続されて、遅延素子４の遅延値を変化させる。調整されるフリップフロップ２および、調整されない（調整不要な）フリップフロップ３は、上記デジタル演算処理回路１の構成要素である。
【００５４】
図１中、符合５は調整可能な遅延素子４の設定値を保持するレジスタであり、符号７はデジタル演算処理回路１のデジタル出力信号（および必要に応じてデジタル演算処理回路１の内部状態）を観測するための観測装置であり、８は本発明の方法に従ってデジタル演算処理回路１を調整するためのテスト信号およびクロック信号を発生する装置である。レジスタ５は、一般的なＤフリップフロップ、Ｔフリップフロップ、ＳＲフリップフロップあるいはＪＫフリップフロップや、レジスタ回路、その他、クロック信号に従って状態を記憶する記憶素子、またはループ状の組合せ回路により構成される記憶回路等である。
【００５５】
そして符号６は、デジタル信号発生装置８に接続されてそのデジタル信号発生装置８にデジタル演算処理回路１に対する信号発生を開始させると同時にデジタルテスト信号観測装置７に接続されてそのデジタルテスト信号観測装置７に後述の如くデジタル演算処理回路１の出力信号１１およびデジタル演算処理回路１の内部状態を示すデジタル演算処理回路内部状態信号１２を観測させる調整装置である。
【００５６】
この調整装置６は、本発明の調整方法に従って、調整可能な遅延素子４の遅延時間を算出し、レジスタ５にその遅延設定値を書き込む。なお、この実施例では、調整装置６、デジタル信号観測装置７、およびデジタルテスト信号発生装置８はデジタル演算処理回路の外部装置となっている。
【００５７】
この実施例におけるデジタル演算処理回路１は、集積回路として構成されていてもよく、また回路基板として構成されていてもよい。さらに、この実施例におけるデジタル演算処理回路１は、単一システムとして構成されていてもよく、複数のシステムから構成されていてもよい。
【００５８】
さらに、この実施例におけるデジタル演算処理回路１は、複数のシステムから構成されるとともに内部に通信路を含んでいてもよく、単一システムとして構成されるとともに内部にバス状の通信路を含んでいてもよい。さらに、この実施例におけるデジタル演算処理回路１は、マルチチップモジュールやハイブリッド集積回路として構成されていてもよい。また、前記デジタル演算処理システムは、前記デジタル信号観測手段と、前記デジタルテスト信号発生手段と、前記調整手段を前記デジタル演算処理回路と供に１つの集積回路として構成することができる。
また、デジタル演算処理システムは、前記デジタル信号観測手段と、前記デジタルテスト信号発生手段と、前記調整手段を前記デジタル演算処理回路と別体の回路として構成することもできる。
また、デジタル演算処理システムは、前記デジタル信号観測手段と、前記デジタルテスト信号発生手段と、前記調整手段を前記デジタル演算処理回路と供に１つの回路基板上に搭載して構成することもできる。
また、デジタル演算処理システムは、前記デジタル信号観測手段をロジックアナライザとし、前記デジタルテスト信号発生手段をデータジェネレータとし、前記調整手段をコンピュータとして、前記デジタル演算処理回路と別体に構成することもできる。
【００５９】
調整されるフリップフロップ２および調整されないフリップフロップ３は、一般的なＤフリップフロップ、Ｔフリップフロップ、ＳＲフリップフロップあるいはＪＫフリップフロップや、レジスタ回路、その他、クロック信号に従って状態を記憶する記憶素子、またはループ状の組合せ回路により構成される記憶回路等であり、デジタル演算処理回路１  の構成要素として機能する。
【００６０】
すなわち、デジタル演算処理回路１において、調整されるフリップフロップ２および調整されないフリップフロップ３は、デジタル演算処理回路１内部の組合せ回路に適宜接続され、クロック信号に従って内部状態を記憶する。
【００６１】
上記システムにおいて、調整されるフリップフロップ２は、本発明の方法で調整がなされるフリップフロップであり、また、調整されないフリップフロップ３は、本発明の方法で調整が行われないフリップフロップであって、他の方法、例えばデジタル演算処理回路１の設計時のシミュレーション結果などに基づくタイミング調整や、試作結果に基づくタイミング調整、固定値遅延素子のデータパスやクロック回路への挿入などによるタイミング調整など、従来の手法による調整が行われているか否かは問わない。
【００６２】
調整されるフリップフロップ２のクロック遅延時間とは、フリップフロップ２のクロック端子とクロック回路の間に挿入された調整可能な遅延素子４が加える遅延時間であり、調整されるフリップフロップ２のクロック端子に供給されるクロック信号は、調整可能な遅延素子４が挿入されていない場合に比べて、その遅延時間分だけタイミングが遅延している。
【００６３】
調整対象となるデジタル演算処理回路１は、上述のように調整されるフリップフロップ２と調整されないフリップフロップ３を具えて構成されており、この実施例では、調整されるフリップフロップ２の遅延時間、つまり、調整されるフリップフロップ２のクロック端子に接続されている調整可能な遅延素子４の遅延設定値を該デジタル演算処理回路１の製造後に微調整することにより、デジタル演算処理回路１が誤りなく動作するようにする。
【００６４】
調整可能な遅延素子４で遅延時間（信号伝達タイミング）を変化させる場合の一構成例を図３に示す。ｐチャネルＦＥＴであるＴｒ９，Ｔｒ１０および、ｎチャネルＦＥＴであるＴｒ１１，Ｔｒ１２が直列接続した回路であり、Ｔｒ１０，Ｔｒ１１はＮＯＴ素子として機能する。このときＴｒ９およびＴｒ１２の抵抗値により回路の電流値が変化するので、浮遊容量（寄生容量）と負荷容量を充放電する時間が変化する。図４に、上記ＮＯＴ素子への入力信号（入力クロック信号）およびそのＮＯＴ素子からの出力信号（出力クロック信号）の波形を示す。それぞれ、Ｔ２７に入力する制御信号電圧によりＴＡの遅延時間、Ｔ２６に入力する制御信号電圧によりＴＢの遅延時間が調整できる。クロック信号の立ち上がりあるいは立ち下がりのどちらか一方の遅延調整で済む場合には、Ｔｒ９およびＴｒ１２の一方を省略可能である。
【００６５】
調整可能な遅延素子４で遅延時間（信号伝達タイミング）を変化させる場合の他の構成例を図５乃至図８に示す。図５のように、単位遅延ＤＮを有するＮＯＴ素子Ｄ１を２個カスケード（縦列）に並べることにより、２ＤＮの遅延時間を発生させることができる。また、図６のように、単位遅延ＤＮを有するＮＯＴ素子を４個カスケードに並べれば、４ＤＮの遅延時間を発生させることができる。同様に、単位遅延ＤＮを有するＮＯＴ素子を２ｎ個カスケードに並べることにより、（２ｎ×ＤＮ）の遅延時間を発生させることができる。
【００６６】
そして、サイズのより大きなトランジスタを用いてＮＯＴ素子Ｄ２を構成すれば、トランジスタの寄生容量が増大してより長い遅延が発生し、図７に示すように、素子の個数を増やさずに遅延時間を変化させることができる。
【００６７】
一方、図８に示すように、抵抗ＲとコンデンサＣとを用いて積分回路を構成し、出力をシュミットトリガー素子Ｓ等で波形整形することによっても、遅延回路を構成することができる。この構成では、抵抗ＲとコンデンサＣとの値の積に比例する遅延を発生させることができる。
【００６８】
さらに、配線そのものの遅延を利用して、長い配線を作り出して遅延素子として用いることもでき、この場合には、配線の長さに比例した遅延を発生させることができる。例えば、図９では、図中上側に示す長さＬＬＡの配線ＬＡは、図中下側に示す同じ材質・幅で長さＬＬＢの配線ＬＢに対して、ＬＬＡ／ＬＬＢ倍の遅延を発生させる。
【００６９】
以上の遅延素子はいずれもクロック信号を遅らせる機能しか持たないが、ＰＬＬ（フェーズロックトループ）回路やＤＬＬ（ディレイロックトループ）回路を用いれば、クロック信号を進めるような負の遅延を発生させることもできる。
【００７０】
図１２に、正負の両方向の遅延を発生させる調整可能な遅延回路の一構成例を示す。図１２中、符号９４は上述のＰＬＬ回路であり、４は図１４に示す後述の調整可能な遅延回路である。ＰＬＬ回路９４が、クロックを８ＤＴ分進める機能を持ち、調整可能な遅延回路４が、０ＤＴから１５ＤＴまでの遅延を発生させる機能を有する場合には、この回路は全体で−８ＤＴから７ＤＴまでの遅延を発生させることができる。
【００７１】
上記複数の遅延素子を組み合わせて、調整可能な遅延素子４を構成することもできる。図１４は、調整可能な遅延素子４の構成を例示する構成図であり、この例の調整可能な遅延素子４は、図１中のレジスタ５が４ビットのデータを保持するものである場合に対応している。この調整可能な遅延素子４では、レジスタ５に保持されているレジスタ値の各ビットが、図示しないスイッチ駆動回路を介して各スイッチ回路Ｓｗ１〜Ｓｗ４にそれぞれ対応し、上記レジスタ値に応じて各スイッチ回路Ｓｗ１〜Ｓｗ４が作動するように構成されており、その結果発生する遅延されたクロック信号が、上記調整されるフリップフロップ２のクロック端子に印加される。
【００７２】
すなわち、図１４に示す調整可能な遅延素子４は、それぞれ長さの異なる一定の遅延時間を発生する遅延素子ＵＤ１〜ＵＤ４と、それら遅延素子ＵＤ１〜ＵＤ４を選択的に使用するためのスイッチ回路Ｓｗ１〜Ｓｗ４とから構成されている。そしてここでは、クロック回路からのクロック入力と、調整されるフリップフロップ２のクロック端子との間に、遅延素子ＵＤ１〜ＵＤ４と各遅延素子に対応するスイッチ回路Ｓｗ１〜Ｓｗ４が互い違いにカスケード（縦列）接続されており、これにより、遅延素子が発生する遅延時間がクロック信号に加わり、発生した遅延時間分だけ元のクロック信号よりタイミングの遅れたクロック信号が、調整されるフリップフロップ２のクロック端子に供給され得るように構成されている。
【００７３】
ここで、遅延素子ＵＤ１は、設計によって長さが定まる遅延時間を発生させる。そして遅延素子ＵＤ２は、遅延素子ＵＤ１の２倍の遅延時間を発生し、同様に、遅延素子ＵＤ３は、上記遅延素子ＵＤ１の４倍の遅延時間、遅延素子ＵＤ４は、上記遅延素子ＵＤ１の８倍の遅延時間をそれぞれ発生するように構成されている。たとえば、遅延素子ＵＤ１は図５のように構成し、遅延素子ＵＤ２は図６のように構成し、以下同様にＵＤ３は図５のＮＯＴ素子Ｄ１を８個カスケード接続して構成し、ＵＤ４は図５のＮＯＴ素子Ｄ１を１６個カスケード接続して構成することができる。そして、これら各遅延素子ＵＤ１〜ＵＤ４に対応するスイッチ回路Ｓｗ１〜Ｓｗ４は、レジスタ５のレジスタ値に基づきオンオフ制御され、レジスタ値の４ビット中のあるビットが「１」であるとき、そのビットに対応するスイッチ回路が遅延素子側に倒れ、対応する遅延素子が発生する遅延時間がクロック信号に加わる。また、レジスタ値の４ビット中のあるビットが「０」であるとき、そのビットに対応するスイッチ回路がバイパス側に倒れ、対応する遅延素子はスキップされて、発生する遅延時間はクロック信号に加わらなくなる。
【００７４】
従って、ここでは各遅延素子ＵＤ１〜ＵＤ４の発生遅延時間がそれぞれ、１ＤＴ、２ＤＴ、４ＤＴ、８ＤＴに設定されてクロック信号に加わるようにされていることから、上記遅延素子４は、スイッチ回路の状態の組合せによって、遅延時間０から、遅延時間１５ＤＴまでの範囲で、クロック信号に加わる遅延時間を調整することができる。
【００７５】
図１０に、調整可能な遅延素子４と、レジスタ５の最下位ビット５Ａとを含んだ一構成例を示す。図１０中、符号Ｄ１はＮＯＴ素子、Ｄ１１はＡＮＤ素子、Ｄ１２はＯＲ素子、ＵＤ１は単位遅延回路、５Ａはレジスタ５の最下位ビット（一ビット分）、Ｄ１５はクロック回路からのクロック入力である。クロック出力Ｄ１６は、調整されるフリップフロップのクロック端子に入力される。Ｄ１７はレジスタ５Ａへの遅延設定値入力、Ｄ１８はレジスタ５Ａへの書き込み信号であり、これらをレジスタ５の全ビット分合わせ、なおかつ全レジスタ分合わせたものが、遅延設定信号９３である。
【００７６】
ここにおけるスイッチは、ＡＮＤ素子Ｄ１１とＯＲ素子Ｄ１２を用いた基本的なセレクタ回路であり、一方のＡＮＤ素子Ｄ１１の出力には遅延ＤＴを発生させる遅延素子ＵＤ１を挿入し、もう一方のＡＮＤ素子Ｄ１１の出力はＯＲ素子Ｄ１２に直結することで、遅延素子ＵＤ１をスキップしている。すなわち、レジスタ５Ａの出力が論理値「１」のときは、遅延素子ＵＤ１側のＡＮＤ素子Ｄ１１が働いて遅延ＤＴを発生させ、レジスタ５Ａの出力が論理値「０」のときは、遅延素子ＵＤ１をスキップさせる側のＡＮＤ素子Ｄ１１が働いて遅延を発生させない。
【００７７】
図１１に、調整可能な遅延素子４と、レジスタ５の１ビット分Ｄ１３とを含んだ他の構成例を示す。この構成例は、トランスファゲート素子Ｄ２０とバッファＤ１９とからなる。トランスファゲート素子Ｄ２０の働きはスイッチそのものであり、上述のＡＮＤ素子とＯＲ素子を組合せた場合と同様の働きを持つ。図１０、図１１の回路は最下位ビットに関する実装例であるが、単位遅延回路としてそれぞれＵＤ２、ＵＤ３、ＵＤ４を用いることにより、最下位から２ビット目、３ビット目、４ビット目に関する実装例が得られる。言うまでもなく、これらの構成例と同一の機能を有する他のデジタル回路を構成することは容易であり、上記実施例ではそれらを代わりに用いることもできる。
【００７８】
本発明では、デジタル演算処理回路１が誤りなく動作するようにクロックのタイミングを調整する手順を実行した後に、次に説明する動作余裕を確保する手順を実行する。デジタル演算処理回路１の調整方法としては、例えば特開２００１−０４３２６１に記載された方法を用いればよい。調整の結果、デジタル演算処理回路１が誤りなく動作した場合、図１７および図１８にフローチャートを示す、本発明のタイミング余裕度を求める方法を実行する。なお前記調整の結果、デジタル演算処理回路１が誤りなく動作しなかった場合は、本発明の方法は実行せずに、不良品処理を行って一連の手順を終了する。
【００７９】
タイミング余裕度を求める方法では、まず、（１）各フリップフロップにおけるタイミング余裕度Ｍｉの計測を行い、（２）次に、計測した余裕度Ｍｉに基づきタイミング余裕度の検査を行い、その結果に応じて再調整を行う手順を採る。手順はステップ（Ｓ）と表示する。
（タイミング余裕度を求める手順（１））
（スタート）
（１）デジタル演算処理回路１において、クロック信号線上に挿入された、遅延回路の遅延量を設定するレジスタ５それぞれについて、下記のタイミング余裕度を求める手順（２）又は下記のタイミング余裕度を求める手順（３）のサブルーチンを実行してタイミング余裕度Ｍｉを計測する。（ステップＳ１）
その結果、タイミング余裕度Ｍｉは、前記サブルーチンにおけるステップＳ２４で遅延値の変更分｜Ｋ｜として、または、前記サブルーチンにおけるステップＳ２５で遅延値の変更分Ｊとして求まる（後述する）。
（２）計測結果の全てのタイミング余裕度Ｍｉの内で最小（Ｍｉｎ）のＭｉ値を検査対象であるデジタル演算処理回路１のタイミング余裕度Ｍとして記憶する。
すなわち、
Ｍ＝Ｍｉｎ  Ｍｉ
として記憶する。（ステップＳ２）
【００８０】
（３）タイミング余裕度Ｍの閾値をＭｔｈとするとき、Ｍ＜Ｍｔｈか否か判断する。
Ｍ＜Ｍｔｈのとき、再調整のため、ステップＳ１へ戻る。Ｍ＜Ｍｔｈでないとき、遅延量の調整は完了となり、全ての手順が終了する。（ステップＳ３）
ここで閾値Ｍｔｈは、検査対象のデジタル演算処理回路１が、どの程度クロック信号のタイミング変動の可能性があるかによって定める。たとえば、ほとんどタイミング変動が想定されない場合は、Ｍｔｈを小さな値にすればよい。それによって、再調整の必要は少なくなる。一方、大きなタイミング変動が想定される場合は、Ｍｔｈを大きな値にする必要がある。それにより、場合によっては再調整が繰り返されて、大きなタイミング余裕度Ｍ、つまりはタイミング変動にロバストな遅延量の調整値がえられる。
（ストップ）
【００８１】
（タイミング余裕度Ｍｉを求める手順（２））
このサブルーチンでは、各遅延素子の遅延量が、遅延方向と早める方向でそれぞれどの程度余裕があるか計測し、最終的なタイミング余裕度Ｍｉを決定する。
（スタート）
（１１）遅延量を設定できるプログラマブル（調整可能な）遅延素子を有し、クロックで動作するデジタル演算処理回路１、デジタル信号観測装置７、デジタルテスト信号発生装置８、に対し、測定の準備をする。（ステップＳ１１）
（１２）デジタル演算処理回路１内の全てのプログラマブル遅延素子の遅延値を、デジタル演算処理回路１内の遅延回路の遅延量を設定するレジスタ５から読み出し、または、前記デジタル演算処理回路１外の記憶素子から読み出して、前回調整時の最終の最良値Ａに設定する。（ステップＳ１２）
（１３）レジスタ５に設定する遅延値の変更分をＪとし、その初期値を、遅延する方向に１ポイント増加させる意味の＋１（Ｊ＝１）にする。具体的にどの程度の時間（絶対値として）タイミングが遅延するかは、実装されたプログラマブル遅延素子の設計に依存する。たとえば、図１４の遅延素子の場合は、１ポイントにつきＤＴ時間遅延する。（ステップＳ１３）
【００８２】
（１４）タイミング余裕度Ｍｉの計測対象であるフリップフロップ（ｉ）に対応するレジスタ５の設定値を「上記最終の最良値Ａ＋前記Ｊ」に変更する。（ステップＳ１４）
（１５）デジタル演算処理回路１にテスト系列を入力し、論理回路の出力値の正答率を計測する。テスト系列とは、デジタル演算処理回路１が論理回路として正しく動作しているか否かを検査するための論理系列であり、論理回路へのさまざまな入力パターンを想定して、複数系列用意する。その系列の具体的な生成方法としては、「コンピュータの設計とテスト、第８，９章、藤原秀雄著、工学図書株式会社」に記載されているような公知の方法を用いればよい。
（ステップＳ１５）
（１６）ステップＳ１５で計測した結果、正答率が１００％か否か判断し、１００％のとき（ＹＥＳ）ステップＳ１７へ進み、１００％ではないとき（ＮＯ）はステップＳ１８へ進む。
（１７）正答率が１００％であるとき、前記レジスタに設定する遅延値の変更分Ｊをさらに遅延する方向に１ポイント増加させ（Ｊ→Ｊ＋１）、新しい遅延値の変更分Ｊとして記憶し、ステップＳ１４に戻る。（ステップＳ１７）
（１８）レジスタ５に設定する遅延値の変更分をＫとし、その初期値を、早める方向に１ポイント増加させる意味の−１（Ｋ＝−１）にする。図１４の遅延素子の場合は、１ポイントにつきＤＴ時間タイミングが早まる。（ステップＳ１８）
（１９）フリップフロップ（ｉ）のプログラマブル遅延素子の設定値を「上記最終の最良値Ａ＋前記Ｋ」に変更する。（遅延値は、早まる方向に変更される。）（ステップＳ１９）
【００８３】
（２０）デジタル演算処理回路にテスト系列を入力し、論理回路の出力値の正答率を計測する。（ステップＳ２０）
（２１）ステップＳ２０で計測した結果、正答率が１００％か否か判断し、１００％のとき（ＹＥＳ）ステップＳ２２へ進み、１００％ではないとき（ＮＯ）はステップＳ２３へ進む。
（２２）正答率が１００％であるとき、現在の遅延値の変更分Ｋの値から、さらに早める方向に１ポイント減算し（Ｋ→Ｋ−１）、新しい遅延値の変更分Ｋとして記憶し、ステップＳ１９へ進む。（ステップＳ２２）
（２３）正答率が１００％ではないとき、前記Ｊ＞前記｜Ｋ｜か否か判断し、前記Ｊ＞前記｜Ｋ｜のとき（ＹＥＳ）、ステップＳ２４へ進み、また、前記Ｊ＞前記｜Ｋ｜でないとき（ＮＯ）、ステップＳ２５へ進む。
（２４）前記Ｊ＞前記｜Ｋ｜のとき、このフリップフロップ（ｉ）ではタイミングを早める方向が、遅らす方向に比べて余裕がなかったことになる。そこで、前記遅延値の変更分Ｋの絶対値｜Ｋ｜をタイミング余裕度Ｍｉとして記憶し、このタイミング余裕度Ｍｉを求める一連の手順を終了する。（ステップＳ２４）
（２５）前記Ｊ＞前記｜Ｋ｜ではないとき、このフリップフロップ（ｉ）ではタイミングを遅らせる方向が、早める方向に比べて余裕がなかったことになる。そこで、前記遅延値の変更分Ｊをタイミング余裕度Ｍｉとして記憶し、このタイミング余裕度Ｍｉを求める一連の手順を終了する。（ステップＳ２５）
（エンド）
【００８４】
なお、上記の説明において、タイミング余裕度Ｍｉを計測する対象のプログラマブル遅延素子は、デジタル演算処理回路１内のすべてのプログラマブル遅延素子であってもよいし、一部のプログラマブル遅延素子に限定してもよい。限定する場合は、デジタル演算処理回路１の設計時に、タイミングの余裕がないと予想されたフリップフロップに接続された遅延素子に限定してもよい。それによって、タイミング余裕度の計測時間を短縮することができる。
【００８５】
以上のような方法でタイミング余裕度を求め、想定されるタイミング変動に応じて閾値Ｍｔｈを設定し再調整を行うことで、タイミング変動に対してロバストなタイミング調整が可能となる。その際に、クロック信号の遅延時間の誤差そのものは直接測定しないことを大きな特徴としている。また、ひとたび適切な閾値Ｍｔｈを設定すれば、予想温度変動（例えば、能動素子の動作点の変動）、予想電流変動、予想電圧変動、等のさまざまな動作条件を想定してテストをする必要がなく、調整時間全体の短縮というさらなる効果が得られる。
【００８６】
さらに本発明の方法は、デジタル演算処理回路１における調整されるフリップフロップ２の調整箇所の総数が複数であり、図２に例示するように、遅延素子２の調整箇所において、ある調整箇所２Ａの調整が他の多数の調整箇所の調整結果に影響を及ぼし、調整探索空間の組合せ爆発を起こす場合に、特に有効である。
【実施例２】
【００８７】
図１６は本発明の実施例２の論理回路を説明するブロック構成図である。本実施例は、調整対象のデジタル演算処理回路１がパイプライン状に構成されている場合である。
図１６では、部分論理回路４３の入力側に一時記憶回路４４が信号線５０により接続され、部分論理回路４３の出力側に一時記憶回路４５が信号線５０により接続されている。部分論理回路４３には、遅延回路４６が接続される。遅延回路４６は、プログラマブル遅延素子４および遅延設定値記憶素子５を有する。プログラマブル遅延素子４は、クロックに基づいて部分論理回路４３内の演算素子の動作タイミングを決定する。遅延設定値記憶素子５は、調整回路（図示省略）によって求められた遅延値を読み出し可能に記憶する。
【００８８】
調整装置６は、第一実施例と同様の方法で、タイミング余裕度を求め、タイミングの再調整が必要か否か判断し、再調整を行う。この構成によれば、パイプライン状に接続された部分論理回路が同一のクロック信号に同期して動作することから、タイミングの余裕度Ｍｉをすべてのフリップフロップで求める必要がない。部分論理回路の数（パイプラインの段数）だけタイミング余裕度Ｍｉを計測すればよいので、タイミング余裕度の計測時間を大幅に短縮することができる。
【実施例３】
【００８９】
次に、本発明のタイミング余裕度を求める回路を検査回路９０としてデジタル演算処理回路１に組み込んだ実施例３を示す。
【００９０】
図１３は本発明の実施例３のブロック構成図である。ここではデジタル演算処理回路１内にデジタル演算処理回路本体１Ｌの他、前記外部装置に相当する検査回路９０が組み込まれている。デジタル演算処理回路本体１Ｌの入力端子および出力端子と、デジタル演算処理回路１の外部入力端子３２および外部出力端子３３との間にはそれぞれ、切換スイッチ３０が設置されている。この切換スイッチ３０は、図示例のようにデジタル演算処理回路１内に設けられていても良いが、デジタル演算処理回路１外に設けられていても良い。
【００９１】
ここで、切換スイッチ３０を操作すると、デジタル演算処理回路本体１Ｌの出力がデジタル信号観測回路７Ｌに入力されるとともに、調整回路６Ｌ、デジタル信号観測回路７Ｌおよびデジタルテスト信号発生回路８Ｌが動作を開始し、本発明による調整を行う。調整が終了したら、切換スイッチ３０の操作で、デジタル演算処理回路本体１Ｌの入力、出力を入力端子３２、出力端子３３側にそれぞれ切り替える。
【００９２】
この実施例によれば、製造時のデジタル演算処理回路１の調整だけでなく、ユーザがデジタル演算処理回路１を組み込んだ製品を購入した後、ユーザ自身がデジタル演算処理回路１の調整を随時行うこともできる。また、デジタル演算処理回路１を製造したのち、調整を業となすものがデジタル演算処理回路１をさらに調整することもできる。また、デジタル演算処理回路１が置かれた環境の温度その他が変化した場合等に、デジタル演算処理回路本体１Ｌ内のクロックタイミングに変化が生じても、その変化を補償することができ、デジタル演算処理回路本体１Ｌの誤動作の確率を低減できるというメリットがある。なお、切換スイッチ３０は手動に限らず、電源投入時に自動切換するように構成することもできる。またクロック信号９は、デジタル演算処理回路１内にクロック発生回路が設置されている場合には、そのクロック信号を用いてもよい。
【実施例４】
【００９３】
（２分探索法を使う場合）
なお、上記の説明では、前記タイミングを求める手順のフローにおける、ステップＳ１４〜Ｓ１７および、ステップＳ１９〜Ｓ２２において、ＪやＫの値を１ポイントずつ変化させて、正答率を１００％にする限界値を発見した。その限界の値が、ステップＳ１２で設定した調整時の最終値から大きくはなれていない場合は、発見するまでに大きな時間がかからない（ステップＳ１６やステップＳ２１のループ回数が少ない）。しかし、最終値から大きく離れている場合や、１ポイントに対応する単位遅延値ＤＴが小さな値に設計されている場合は、その限界値の発見に時間がかかることになる（ステップＳ１６やステップＳ２１のループ回数が多くなる）。
【００９４】
そのような場合は、図１９に示すように、限界値の発見に二分探索法を用いてもよい。
（タイミング余裕度Ｍｉを求める手順（３））
このサブルーチンでは、各遅延素子の遅延量を、二分探索法を用い、少ないステップ数で最終的なタイミング余裕度Ｍｉを決定する。
（スタート）
（３０）計測機器を準備する。（ステップＳ３０）
（３１）すべてのプログラマブル遅延素子の遅延値を、調整時の最終値（最良値）に設定する。（ステップＳ３１）
（３２）Ｊ＝Ｎ／２とする。（但し、Ｎは遅延方向に設定可能な遅延値の最大値とする）（ステップＳ３２）
（３３）フリップフロップｉのプログラマブル遅延素子の設定値を上記最終値＋Ｊ（遅延方向）とする。（ステップＳ３３）
（３４）論理回路にテスト系列を入力し、出力値の正答率を計測する。（ステップＳ３４）
（３５）二分探索法は終了した（ＹＥＳ）か否（ＮＯ）か判断し、終了していないとき（ＮＯ）はステップＳ３６へ進み、終了しているとき（ＹＥＳ）はステップＳ３７へ進む。（ステップＳ３５）
【００９５】
（３６）正答率が１００％を満たす最大（限界）のＪを探索するために、二分探索法に従いＪを更新し、ステップＳ３３へ戻る。（ステップＳ３６）
（３７）Ｋ＝Ｍ／２とする。（但し、Ｍは早める方向に設定可能な遅延値の最小値（負の値）とする）（ステップＳ３７）
（３８）フリップフロップｉのプログラマブル遅延素子の設定値を上記最終値＋Ｋ（早める方向）とする。（ステップＳ３８）
（３９）論理回路にテスト系列を入力し、出力値の正答率を計測する。（ステップＳ３９）
（４０）二分探索法は終了した（ＹＥＳ）か否（ＮＯ）か判断し、終了していないとき（ＮＯ）はステップＳ４１へ進み、終了しているとき（ＹＥＳ）はステップＳ４２へ進む。（ステップＳ４０）
（４１）正答率が１００％を満たす最小（限界）のＫを探索するために、二分探索法に従いＫを更新し、ステップＳ３８へ戻る。（ステップＳ４１）
（４２）Ｊ＞｜Ｋ｜か否（ＮＯ）か判断し、Ｊ＞｜Ｋ｜（ＹＥＳ）のときはステップＳ４３へ進み、ＮＯのときはステップＳ４４へ進む。（ステップＳ４２）
（４３）｜Ｋ｜をＭｉとし、終了する。（ステップＳ４３）
（４４）ＪをＭｉとし、終了する。（ステップＳ４４）
（ストップ）
【００９６】
二分探索法の詳細は、「データ構造とアルゴリズム  浪平博人著  ＣＱ出版社」などの公知の文献に記載されている。ここで、プログラマブル遅延素子として図１４に例示した回路を用いた場合、ステップＳ３２におけるＮは７、ステップＳ３７におけるＭは−８となる。この方法によれば、log2Ｎ＋log2｜Ｍ｜のオーダの回数で、限界値を発見することができる。つまり、ＮやＭが大きな値の場合には余裕度Ｍｉの計測時間を大幅に短縮することが可能である。また、二分探索法に限らず、公知の検索アルゴリズムを用いることができる。
【００９７】
なお、図１８、図１９、いずれのフローの場合も、Ｊに関するループと、Ｋに関するループの順序を逆にしてもよい。具体的には、図１８の方法の場合は、ステップＳ１３〜Ｓ１７と、ステップＳ１８〜Ｓ２２の順番を入れ替えてもよい。図１９の方法の場合は、ステップＳ３２〜Ｓ３６と、ステップＳ３７〜Ｓ４１の順番を入れ替えてもよい。
【００９８】
本発明は、いうまでもなく、デジタル演算処理回路を用いる装置の全体、一部、あるいは複数の部分の何れにも適用可能であり、デジタル演算処理回路の規模を問わない。
また、本発明の方法による調整は、調整可能な遅延素子４の遅延値の精度が低いものであっても、ほとんど支障がない。それゆえ、本発明で用いる遅延素子は、半導体基板上で従来よりも小さい面積で作製することができる。
以上、図示例に基づき説明したが、この発明は上述の例に限定されるものでなく、特許請求の範囲の記載の範囲内で当業者が容易に改変し得る他の構成をも含むものである。
【図面の簡単な説明】
【００９９】
【図１】一般的なデジタル演算処理回路に適用した本発明のデジタル演算処理回路の第１実施例を模式的に示す構成図である。
【図２】デジタル演算処理回路における遅延素子の遅延設定値調整の影響を示す説明図である。
【図３】上記実施例に用い得る調整可能な遅延素子の一構成例を示す回路図である。
【図４】図３に示す回路でのＮＯＴ素子への入力信号およびＮＯＴ素子からの出力信号の波形を示す説明図である。
【図５】上記実施例に用い得る遅延素子の他の一構成例を示す回路図である。
【図６】上記実施例に用い得る遅延素子のさらに他の一構成例を示す回路図である。
【図７】上記実施例に用い得る遅延素子のさらに他の一構成例を示す回路図である。
【図８】上記実施例に用い得る遅延素子のさらに他の一構成例を示す回路図である。
【図９】上記実施例に用い得る遅延素子のさらに他の一構成例を示す回路図である。
【図１０】上記実施例における調整可能な遅延素子とレジスタの最下位ビットとを含んだ構成の一例を示す回路図である。
【図１１】上記実施例における調整可能な遅延素子とレジスタの最下位ビットとを含んだ構成の他の一例を示す回路図である。
【図１２】上記実施例に用い得て正負の遅延を発生させる調整可能な遅延回路の一構成例を示す構成図である。
【図１３】第３実施例を模式的に示す構成図である。
【図１４】図１２に示す回路での調整可能な遅延素子の一構成例を示す構成図である。
【図１５】従来の論理回路のブロック図である。
【図１６】第２実施例を模式的に示す構成図である。
【図１７】本発明のタイミング余裕度を求めるためのフローチャート１である。
【図１８】本発明のタイミング余裕度を求めるためのフローチャート２である。
【図１９】本発明のタイミング余裕度を求めるためのフローチャート２の他の例である。
【符号の説明】
【０１００】
１  デジタル演算処理回路
２  調整されるフリップフロップ
３  調整されないフリップフロップ
４  調整可能な遅延素子
５  レジスタ
６  調整装置
７  デジタル信号観測装置
８  デジタルテスト信号発生装置
９  クロック信号
１０  テスト信号
１１  デジタル出力信号
１２  デジタル演算処理回路内部状態信号
４６  遅延回路
５２  タイミング余裕度
９３  遅延設定信号
【図１】
2005217920.tif 000003
【図２】
2005217920.tif 000004
【図３】
2005217920.tif 000005
【図４】
2005217920.tif 000006
【図５】
2005217920.tif 000007
【図６】
2005217920.tif 000008
【図７】
2005217920.tif 000009
【図８】
2005217920.tif 000010
【図９】
2005217920.tif 000011
【図１０】
2005217920.tif 000012
【図１１】
2005217920.tif 000013
【図１２】
2005217920.tif 000014
【図１３】
2005217920.tif 000015
【図１４】
2005217920.tif 000016
【図１５】
2005217920.tif 000017
【図１６】
2005217920.tif 000018
【図１７】
2005217920.tif 000019
【図１８】
2005217920.tif 000020
【図１９】
2005217920.tif 000021