JP4281015B2 - デジタルシステム、デジタルシステムのクロック信号調整方法および、その調整方法で実行する処理プログラムを記録した記録媒体 - Google Patents

デジタルシステム、デジタルシステムのクロック信号調整方法および、その調整方法で実行する処理プログラムを記録した記録媒体 Download PDF

Info

Publication number
JP4281015B2
JP4281015B2 JP2005506771A JP2005506771A JP4281015B2 JP 4281015 B2 JP4281015 B2 JP 4281015B2 JP 2005506771 A JP2005506771 A JP 2005506771A JP 2005506771 A JP2005506771 A JP 2005506771A JP 4281015 B2 JP4281015 B2 JP 4281015B2
Authority
JP
Japan
Prior art keywords
digital system
power supply
digital
value
clock signal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2005506771A
Other languages
English (en)
Other versions
JPWO2004109916A1 (ja
Inventor
栄一 高橋
正宏 村川
勇二 河西
哲也 樋口
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National Institute of Advanced Industrial Science and Technology AIST
Original Assignee
National Institute of Advanced Industrial Science and Technology AIST
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by National Institute of Advanced Industrial Science and Technology AIST filed Critical National Institute of Advanced Industrial Science and Technology AIST
Publication of JPWO2004109916A1 publication Critical patent/JPWO2004109916A1/ja
Application granted granted Critical
Publication of JP4281015B2 publication Critical patent/JP4281015B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/10Distribution of clock signals, e.g. skew
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/31725Timing aspects, e.g. clock distribution, skew, propagation delay
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/31725Timing aspects, e.g. clock distribution, skew, propagation delay
    • G01R31/31726Synchronization, e.g. of test, clock or strobe signals; Signals in different clock domains; Generation of Vernier signals; Comparison and adjustment of the signals
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K5/00Manipulating of pulses not covered by one of the other main groups of this subclass
    • H03K2005/00013Delay, i.e. output pulse is delayed after input pulse and pulse length of output pulse is dependent on pulse length of input pulse
    • H03K2005/00019Variable delay
    • H03K2005/00058Variable delay controlled by a digital setting
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K5/00Manipulating of pulses not covered by one of the other main groups of this subclass
    • H03K2005/00013Delay, i.e. output pulse is delayed after input pulse and pulse length of output pulse is dependent on pulse length of input pulse
    • H03K2005/0015Layout of the delay element
    • H03K2005/00156Layout of the delay element using opamps, comparators, voltage multipliers or other analog building blocks
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K5/00Manipulating of pulses not covered by one of the other main groups of this subclass
    • H03K2005/00013Delay, i.e. output pulse is delayed after input pulse and pulse length of output pulse is dependent on pulse length of input pulse
    • H03K2005/0015Layout of the delay element
    • H03K2005/00234Layout of the delay element using circuits having two logic levels
    • H03K2005/0026Layout of the delay element using circuits having two logic levels using memories or FIFO's

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Pulse Circuits (AREA)

Description

【技術分野】
【0001】
本発明は、単一あるいは複数のクロック信号に同期して動作する単一あるいは複数のデジタルシステムおよび、かかるデジタルシステムのクロック信号のタイミング調整方法、そしてその調整方法で実行する処理プログラムを記録した記録媒体に関するものである。
本発明は特に、デジタルシステムの構成要素であるデジタル回路素子の数が多く、しかも電源電圧が通常より低い場合や電源電圧を通常より高くできる場合に極めて有効である。
【背景技術】
【0002】
デジタルシステムは、通常、AND素子、OR素子、NOT素子の3種類の論理素子と、真と偽の2通りの状態(1ビット)を記憶するフリップフロップと呼ばれる記憶素子から構成される。
最も基本的なフリップフロップは、各1本の入出力端子とクロック端子の3端子から構成され、クロック端子に印加されたクロック信号と呼ばれるデジタル信号の立ち上がりに入力端子のデジタル信号を出力端子にコピーし、かつ、次のクロック信号の立ち上がりまでそのデジタル値を保持する機能を有する。
【0003】
一般に、有限個のクロック信号に従って動作するデジタルシステムを同期回路と呼び、同期回路では各フリップフロップのクロック端子に到着するクロック信号の時間差が全体の動作に影響を与える。このクロック信号の時間差をクロックスキューと呼ぶ。
例えば、同じ1nsの時間のずれでも、クロック周波数が10MHzの場合、つまり、クロックサイクルが100nsの場合には1%のずれであるのに対し、クロック周波数が100MHzの場合、つまりクロックサイクルが10nsの場合には10%のずれであり、補正が必要となる。つまり、クロック周波数が高いほど精密なタイミング調整技術が必要となる。
【0004】
デジタルシステムのクロックスキューに対する従来の対策としては、
(1)デジタルシステムの設計時に、クロックスキューができるだけ小さくなるように設計者が手動で調整するという対策手法。
(2)デジタルシステム中のクロック信号線上に、クロックスキューが小さくなるような調整回路を入れるという対策手法。
の2通りがあった。
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかし、対策(1)では次のような問題が解決されない。すなわち、トランジスタや抵抗、コンデンサといった電子回路素子はそれぞれの特性にバラツキを有しており、各素子のバラツキは実際にシステムを作成するまで明らかではない。これは集積回路内の素子において特に顕著に見られる特性である。
従って、設計時には完全にこれらのバラツキを把握することはできず、ある範囲のバラツキを許容して設計、作成するか、もしくは、試作を繰り返して実際のバラツキの度合いを測定するという手法がとられてきた。
しかしながら、この方法には明らかに限度があり、各素子の持つ特性を限界まで利用することはできなかった。このバラツキの問題の影響を最も強く受けるのがクロックスキューであり、デジタル同期システムの動作周波数はこれで決まってくる。
【0006】
別の問題点として、手動での調整では、扱える回路規模に限界があり、コンピュータシステムのような大規模なデジタルシステム全体に対する調整は、現実問題として不可能であった。また、大規模問題を扱う際の常套手段である部分問題への切り分けも、調整範囲を制限してしまい望ましくない。
【0007】
対策(2)の問題点は、クロックスキューが小さくなる方向にしか調整できないことである。
実際のデジタル同期システムでは、意図的にクロック信号のタイミングをずらす設計手法がとられることがあるが、対策(2)の回路ではそのような例外的なタイミングを持つように設計されたシステムには適用できない。
【0008】
上記デジタルシステムが集積回路として作製される場合には、以下の2つの点に特徴がある。
1つ目は、集積回路内部は修正不能であり、全て設計時に決定しなければならないという点である。従って、後述する本発明のような新たな手法を用いなければ集積回路チップ作製後にタイミング調整を行うことは不可能である。
2つ目は、集積回路チップ内の素子のバラツキが大きく、作製後でなければ内部の素子のパラメータ(抵抗やコンデンサなどの値やトランジスタの特性)の変化が分からないという点である。従って、正確な素子のパラメータ値が必要な場合には、後述する本発明のような新たな手法が不可欠である。
【0009】
デジタルシステムが、IPと呼ばれる、知的所有権(Intellectual Property)の対象とされるとともに第3者による使用を目的とされたハードウェア設計データや、通常のハードウェア設計データライブラリである場合には、その機能やインターフェース諸元は公開されるが、内部構造は等価回路以上の情報は公開されない場合がある。
クロック周波数が高い集積回路でそうしたIPを使用する場合には、IPの対象とされた内部にまで及ぶ精密なタイミング調整が不可欠であるが、上述のように権利上内部がブラックボックスとなっていることが多いので、そうした権利を維持しつつ高いクロック周波数で動作する集積回路を作製するには、後述する本発明のような新たな方法が不可欠である。
【0010】
また、現在の大部分のデジタルシステムは、CMOSテクノロジを用いており、デジタルシステムがCMOSテクノロジを用いて構成されている場合、それぞれのデジタル信号が(「0」から「1」へ、あるいは「1」から「0」へ)変化する時には大きな電源電流が流れる。
従って、もしも多数のデジタル信号が同時に変化した場合には、瞬間的に大きな電源電流が流れ、電源容量が不足して電源電圧が変動し、ひいては誤動作の原因になることもある。
【0011】
さらに、瞬間的に大きな電流が流れると、継続的に小さな電流が流れる場合に比べて、消費電力が増大し、大きな容量の電源と電源供給線を用意する必要があり、これらがデジタルシステムのサイズを大きくしてしまう。
このデジタル信号の同時変化の影響を減らすには、それぞれの信号のタイミング、つまり、それぞれのフリップフロップのタイミングを、全体が誤りなく動作する範囲で微調整することにより達成できるが、こうした精密なタイミング調整には、後述する本発明のような新たな手法が不可欠である。
【0012】
また、デジタルシステムから発生する不要電磁放射(EMI)は、周囲の他のデジタルシステムを誤動作させるなどの作用を及ぼし、抑制するべきものである。EMIはデジタル信号の(「0」から「1」へ、あるいは「1」から「0」への)変化時に発生し、多くのデジタル信号が一斉に変化するときには大きなピークパワーを持ったEMIが発生する。
これを抑制する手段の一つに、デジタル信号の同時変化、つまりフリップフロップの同時変化を減らす方法があるが、デジタルシステム全体が誤りなく動作する範囲でデジタルシステム全体のフリップフロップのタイミングを精密に調整するには、後述する本発明のような新たな手法が不可欠である。
【0013】
さらに、携帯電話を含む低消費電力システム等の、低い電源電圧で動作するデジタルシステムでは、システムを構成する各論理素子の動作速度が遅いため、タイミング不良による障害が起き易くなる。従って、このようなシステムでは、通常より低い電源電圧にして正常に動作するようにタイミング調整を行えば、低い電源電圧でも安定して動作するようになるので、デジタルシステムの消費電力を低くすることができる。
【0014】
また、デジタルシステムによっては、各素子のバラツキが大きいために通常の電源電圧では動作しないが、電源電圧を通常よりも高めてからタイミング調整を行えば正常に動作する場合もある。従ってこのようなシステムでは、通常より高い電源電圧にして正常に動作するようにタイミング調整を行えば使用可能になるので、デジタルシステムの生産の歩留まり高めることができる。
【0015】
以上のような理由から、電源電圧を通常と異ならせた状態でクロック信号のタイミング調整を個々のデジタルシステムごとに自動で行う新たな方法が必要とされており、本発明は、かかる課題を有利に解決するためになされたものである。
【課題を解決するための手段】
【0016】
上記目的を達成するため、請求項1記載の本発明のデジタルシステムは、単一もしくは複数のクロック信号に従いデジタル処理を行って所定の基本的機能を奏するデジタルシステムにおいて、前記デジタルシステム内の、前記クロック信号を供給する複数のクロック回路にそれぞれ介挿されるとともに、制御信号が示す値に応じて遅延時間を変化させる回路素子で各々構成された複数の遅延素子と、前記複数の遅延素子に与える複数の制御信号を保持する複数の保持回路と、を具え、前記複数の保持回路が、前記デジタルシステムが出力電圧可変の電源装置からそのデジタルシステムの設計電源電圧に対して変化した出力電圧を供給された状態で、それらの保持回路が保持する前記複数の制御信号の値を外部装置により、前記デジタルシステムの基本的機能が所定の仕様を満たすように確率的探索手法に従って変更され、前記保持回路が保持する前記複数の制御信号の値が、前記デジタルシステムの基本的機能が所定の仕様を満たすように変更された場合の、前記設計電源電圧に対して変化した出力電圧に等しい電源電圧を供給されて、前記デジタルシステムが作動するものであることを特徴としている。
【0017】
そして請求項14記載の本発明のデジタルシステムのクロック信号調整方法は、単一もしくは複数のクロック信号に従いデジタル処理を行って所定の基本的機能を奏するデジタルシステムの前記クロック信号のタイミングを調整する方法において、前記デジタルシステム内の、前記クロック信号を供給する複数のクロック回路に、複数の遅延素子をそれぞれ介挿し、前記複数の遅延素子を各々、制御信号が示す値に応じて遅延時間を変化させる回路素子で構成し、前記複数の遅延素子に与える複数の制御信号を、前記デジタルシステムに設けた複数の保持回路で保持するとともに、出力電圧可変の電源装置から前記デジタルシステムにそのデジタルシステムの設計電源電圧に対して変化した出力電圧を供給した状態で、前記複数の保持回路が保持する前記複数の制御信号の値を外部装置により、確率的探索手法に従って変更し、前記保持回路が保持する前記複数の制御信号の値が、前記デジタルシステムの基本的機能が所定の仕様を満たすように変更された場合の、前記設計電源電圧に対して変化した出力電圧に等しい電源電圧を供給して、前記デジタルシステムを作動させることを特徴としている。
【0018】
かかるデジタルシステムおよびデジタルシステムのクロック信号調整方法にあっては、デジタルシステム内の、単一もしくは複数のクロック信号をそれぞれ供給する複数のクロック回路に介挿されるとともに、制御信号が示す値に応じて遅延時間を変化させる回路素子で構成された遅延素子に、複数の保持回路が保持する複数の制御信号がそれぞれ与えられ、それらの制御信号が示す値に応じて各遅延素子が、クロック信号を適宜遅延させて基本的回路に供給する。また、出力電圧可変の電源装置から前記デジタルシステムがそのデジタルシステムの設計電源電圧に対して変化した出力電圧を供給された状態で、上記複数の保持回路が保持する上記複数の制御信号の値を、外部装置が、デジタルシステムの基本的機能が所定の仕様を満たすように、確率的探索手法に従って変更する。そしてこのデジタルシステムは、保持回路が保持する複数の制御信号の値が、このデジタルシステムの基本的機能が所定の仕様を満たすように変更された場合の、上記設計電源電圧に対して変化した出力電圧に等しい電源電圧を供給されて作動する。なお、本発明における「遅延」は、正の遅延すなわち遅らせることの他、負の遅延すなわち進ませることも含む。
【0019】
従って、本発明のデジタルシステムおよび、本発明のデジタルシステムのクロック信号調整方法によれば、上記所定の基本的機能に関連する回路素子の特性が正確に把握できない場合、あるいは製造プロセス上その回路素子の特性に誤差が生ずるような場合、そしてクロック信号線に品質不均一や設計上の誤差が生ずるような場合、さらにはデジタルシステム中の基本的回路が前述のIPのようにブラックボックス化していてその構成が明確でない場合でも、クロック信号のタイミング誤差を吸収して、デジタルシステムを誤りなく作動するように調整することができるので、従来技術による場合よりも少ない設計労力で、その基本的機能に関して従来技術による場合よりも高い機能・高い性能を得ることができ、そして従来技術による場合よりも大規模・高速なデジタルシステムを得ることもでき、しかも、回路素子等のばらつきに起因するデジタルシステムの機能・性能の低下を改善することもできる。
【0020】
また、本発明のデジタルシステムおよび、本発明のデジタルシステムのクロック信号調整方法によれば、デジタルシステム全体が誤りなく動作する範囲でデジタルシステム全体のフリップフロップのタイミングを精密に調整してフリップフロップ同士の動作タイミングを僅かにずらすことができるので、デジタル信号の同時変化に起因する、消費電力の増大によるデジタルシステムのサイズ拡大や、不要電磁放射(EMI)の発生を防止することもできる。
さらに、本発明のデジタルシステムおよび、本発明のデジタルシステムのクロック信号調整方法によれば、出力電圧可変の電源装置からデジタルシステムがそのデジタルシステムの設計値と異なる出力電圧を供給された状態で、複数の保持回路が保持する複数の制御信号の値を変更することから、請求項5および請求項18の記載のように、通常より低い電源電圧にして正常に動作するようにタイミング調整を行うことで、低い電源電圧でも安定して動作可能とし得て、デジタルシステムの消費電力を低くすることができ、また各素子のバラツキが大きいために通常の電源電圧では動作しないデジタルシステムに対し電源電圧を通常より高い電源電圧にして正常に動作するようにタイミング調整を行うことで、そのシステムを高い電源電圧であれば使用可能とし得て、デジタルシステムの生産の歩留まり高めることができる。
【0021】
ここで、デジタルシステムがどの程度誤りなく動作するかは、すべての調整可能な遅延素子の遅延値をパラメータとする評価関数Fで表すことができる。デジタルシステムが誤りなく動作するということは、上記の評価関数Fの解を求めることと等価である。本願発明者はこの点に注目し、デジタルシステムのクロックタイミング調整に遺伝的アルゴリズムを適用可能なことを発見した。
【0022】
遺伝的アルゴリズムは、確率的探索手法の一つであり、(1)広域探索において有効に作用し、(2)評価関数F以外には微分値等の派生的な情報が必要でなく、(3)しかも容易な実装性を持つ、アルゴリズムである。従って、本発明においては、請求項2および請求項15の記載のように、上記外部装置による複数の制御信号の変更に、遺伝的アルゴリズムを用いても良い。
【0023】
また近年、遺伝的アルゴリズムに木構造の染色体を扱えるような工夫を加えた遺伝的プログラミングも知られている。従って、本発明においては、クロックの信号線が木構造をなしている場合には、請求項3および請求項16の記載のように、上記外部装置による複数の制御信号の変更に、遺伝的プログラミングを用いても良い。
【0024】
そして、本発明においては、請求項4および請求項17の記載のように、上記外部装置による制御信号の変更を、電源装置の出力電圧を段階的に変化すなわち下降または上昇させながら行うようにしても良く、このようにすれば、より低い電源電圧や、最小限に高めた電源電圧でデジタルシステムを動作させることができる。
【0025】
また、請求項6記載の本発明のデジタルシステムは、請求項1記載のデジタルシステムにおいて、外部装置を用いる代わりにデジタルシステム自体が設定手段を具えるようにしたことを特徴とするものであり、請求項19記載の本発明のデジタルシステムのクロック信号調整方法は、請求項14記載のデジタルシステムのクロック信号調整方法において、外部装置を用いる代わりにデジタルシステム自体が設定手段を具えるようにしたことを特徴とするものである。
かかる本発明のデジタルシステムおよび、本発明のデジタルシステムのクロック信号調整方法によれば、先のデジタルシステムおよびデジタルシステムのクロック信号調整方法と同様の作用効果が得られ、しかも、外部装置に代えてデジタルシステム自身が持つ設定手段を用いるので、電源装置の点を除けばデジタルシステム単独で随時に、かつ任意の場所で調整を行い得るというさらなる作用効果が得られる。
【0026】
そしてこれらの発明のデジタルシステムおよびクロック信号調整方法においても、請求項7および請求項20の記載のように、上記設定手段による複数の制御信号の変更に、遺伝的アルゴリズムを用いても良い。
【0027】
また、これらの発明のデジタルシステムおよびクロック信号調整方法においても、請求項8および請求項21の記載のように、上記設定手段による複数の制御信号の変更に、遺伝的プログラミングを用いても良い。
【0028】
さらに、これらの発明のデジタルシステムおよびクロック信号調整方法においても、請求項10および請求項23の記載のように、上記設定手段による制御信号の変更を、電源装置の出力電圧をデジタルシステムの設計電源電圧値よりも低い状態で行ってもよいし、請求項9および請求項22の記載のように、上記設定手段による制御信号の変更を、電源装置の出力電圧を段階的に変化させながら行うようにしても良い。
【0029】
そして、上述した、本発明のデジタルシステムおよび、本発明のデジタルシステムのクロック信号調整方法におけるデジタルシステムは、請求項11および請求項24の記載のように、出力電圧可変の電源装置を具えていても良く、このようにすれば、外部装置の点を除けばデジタルシステム単独で随時に、かつ任意の場所で調整を行うことができる。
【0030】
また、上述した、本発明のデジタルシステムおよび、本発明のデジタルシステムのクロック信号調整方法におけるデジタルシステムは、請求項12および請求項25の記載のように、集積回路として構成されていても良く、このようにすれば、回路素子のバラツキが実際に作成するまで明らかでない集積回路について、クロック信号を最適に調整することができる。
【0031】
さらに、上述した、本発明のデジタルシステムおよび、本発明のデジタルシステムのクロック信号調整方法におけるデジタルシステムは、請求項13および請求項26の記載のように、回路基板として構成されていても良く、このようにすれば、デジタル回路基板製造工程におけるクロック信号線のプロセスの不均一や設計上の誤差等に起因するクロックタイミングのずれを吸収して、デジタル回路基板が誤動作しないように調整することができる。
【0032】
そして、上述した、本発明のデジタルシステムおよび、本発明のデジタルシステムのクロック信号調整方法における上記外部装置や上記設定手段は、請求項27および請求項28の記載のように、パーソナルコンピュータやマイクロコンピュータ等のコンピュータで構成されていても良く、このようにすれば、複数の保持回路が保持する複数の制御信号の値をデジタルシステムの基本的機能が所定の仕様を満たすように確率的探索手法に従って変更する処理を短時間で容易かつ確実に行うことができる。
【0033】
さらに、請求項29記載の本発明の記録媒体は、請求項27または28記載のデジタルシステムのクロック信号調整方法においてコンピュータが実行する、複数の保持回路が保持する複数の制御信号の値をデジタルシステムの基本的機能が所定の仕様を満たすように確率的探索手法に従って変更する処理プログラムを記録したものであることを特徴とするものである。
【0034】
かかる記録媒体によれば、本発明のデジタルシステムおよび、本発明のデジタルシステムのクロック信号調整方法のためにコンピュータが実行する処理プログラムを記録し保存し得て、任意の場所でクロック信号の調整を行うことができる。なお、かかる記録媒体としては、フレキシブルディスクの他、ハードディスクやCD−ROM、光ディスク等のデータ記録媒体、そしてROM、RAM等の記憶素子を用いることができる。
【発明を実施するための最良の形態】
【0035】
以下に、本発明の実施の形態を実施例によって、図面に基づき詳細に説明する。
【0036】
本発明は、単一もしくは複数のクロック信号を用いて動作する多様なデジタルシステムに適用可能である。すなわち、調整対象のデジタルシステムのクロック回路中に複数のタイミング調整箇所を設けることで、本発明によりクロック信号を調整することが可能となる。また、本発明は、調整時のみ、出力電圧可変の電源装置を用いる。
【0037】
以下の第1実施例では、単一もしくは複数のクロック信号を用いて動作するデジタルシステム一般に本発明を適用した場合について述べる。
ここに、図1は、一般的なデジタルシステムに適用した本発明のデジタルシステムの第1実施例を模式的に示す構成図である。
【0038】
デジタルシステムにおけるクロックスキュー問題(クロック信号のタイミング不良による障害)は、デジタルシステムの設計工程を長期化させ、デジタルシステムを構成する素子の性能を限定的にしか使用できなくするので、デジタルシステムそのものの性能を制限し、かつ、コストの抑制の障害になっている。特に、携帯電話を含む低消費電力システム等の、低い電源電圧で動作するシステムでは、システムを構成する各論理素子の動作速度が遅いため、タイミング不良による障害が起き易くなる。
従って、クロック信号のタイミング調整を、低い電源電圧の元で個々のデジタルシステムごとに行う本発明のクロック信号調整方法は必要不可欠なものであり、特に低消費電力システムにとって重要である。
【0039】
図1中、符号1は、例えばマイクロコンピュータ等を構成し、与えられたプログラムに基づくデータ処理等の所定の基本的機能を奏するデジタルシステム、2はクロック信号のタイミング調整が必要なフリップフロップ、3はタイミング調整が不要なフリップフロップを示す。また、4はクロックのタイミングをレジスタの値に応じて変化させ得る調整可能な遅延素子、5は遅延素子4の遅延設定値を保持するレジスタを示す。
遅延素子4は、フリップフロップ2のクロック端子と、そのクロック端子にクロック信号を供給するクロック線との間に挿入されている。またレジスタ5は、遅延素子4に接続されて、遅延素子4の遅延値を変化させる。
調整されるフリップフロップ2および、調整されない(調整不要な)フリップフロップ3は、上記デジタルシステム1の構成要素である。
【0040】
図1中、符号7はデジタルシステム1のデジタル出力信号およびデジタルシステム1の内部状態を観測するための観測装置であり、8は本発明の方法に従ってデジタルシステム1を調整するためのテスト信号およびクロック信号を発生する装置である。
【0041】
そして符号6は、デジタルテスト信号発生装置8に接続されてそのデジタルテスト信号発生装置8にデジタルシステム1に対する信号発生を開始させると同時にデジタル信号観測装置7に接続されてそのデジタル信号観測装置7に後述の如くデジタルシステム1の出力信号11およびデジタルシステム1の内部状態を示すデジタルシステム内部状態信号12を観測させる調整装置、14は電源装置である。
【0042】
この調整装置6は、本発明の調整方法に従って、調整可能な遅延素子4の遅延時間を算出し、レジスタ5にその遅延設定値を書き込む。
なお、この実施例では、調整装置6、デジタル信号観測装置7、デジタルテスト信号発生装置8、および電源装置14は外部装置となっている。ここで、電源装置14は、電源供給99を通じてデジタルシステム1に電力を供給するが、その電源装置14の出力電圧は電源制御信号98により制御可能となっており、調整装置6がその出力電圧の制御を行う。
【0043】
この実施例におけるデジタルシステム1は、集積回路として構成されていてもよく、また回路基板として構成されていてもよい。
さらに、この実施例におけるデジタルシステム1は、単一システムとして構成されていてもよく、複数のシステムから構成されていてもよい。
【0044】
さらに、この実施例におけるデジタルシステム1は、複数のシステムから構成されるとともに内部に通信路を含んでいてもよく、単一システムとして構成されるとともに内部にバス状の通信路を含んでいてもよい。
さらに、この実施例におけるデジタルシステム1は、マルチチップモジュールやハイブリッド集積回路として構成されていてもよい。
さらに電源装置14は、デジタルシステム1に内蔵されていてもよく、その場合は電源制御信号98により、内蔵された電源装置14の出力電圧が可変となる。
【0045】
さらに、この実施例におけるデジタルシステム1は、IP(知的所有権(Intellectual Property)の対象とされるとともに第3者による使用を目的とされたハードウェア設計データ)やハードウェアライブラリとして構成されていてもよい。
【0046】
調整されるフリップフロップ2および調整されないフリップフロップ3は、一般的なDフリップフロップ、Tフリップフロップ、SRフリップフロップあるいはJKフリップフロップや、Earlゲート回路、レジスタ、その他、クロック信号に従って状態を記憶する記憶素子、またはループ状の組合せ回路により構成される記憶回路等であり、デジタルシステム1の構成要素として機能する。
【0047】
すなわち、デジタルシステム1において、調整されるフリップフロップ2および調整されないフリップフロップ3は、デジタルシステム1内部の組合せ回路に適宜接続され、クロック信号に従って内部状態を記憶する。
【0048】
上記システムにおいて、調整されるフリップフロップ2は、本発明の方法で調整がなされるフリップフロップであり、また、調整されないフリップフロップ3は、本発明の方法で調整が行われないフリップフロップであって、他の方法、例えばデジタルシステム1の設計時のシミュレーション結果などに基づくタイミング調整や、試作結果に基づくタイミング調整、固定値遅延素子のデータパスやクロック線への挿入などによるタイミング調整など、従来の手法による調整が行われているか否かは問わない。
【0049】
調整されるフリップフロップ2のクロック遅延時間とは、フリップフロップ2のクロック端子とクロック線の間に挿入された調整可能な遅延素子4が加える遅延時間であり、調整されるフリップフロップ2のクロック端子に供給されるクロック信号は、調整可能な遅延素子4が挿入されていない場合に比べて、その遅延時間分だけタイミングが遅延している。
【0050】
調整対象となるデジタルシステム1は、上述のように調整されるフリップフロップ2と調整されないフリップフロップ3を具えて構成されており、この実施例では、調整されるフリップフロップ2の遅延時間、つまり、調整されるフリップフロップ2のクロック端子に接続されている調整可能な遅延素子4の遅延設定値を該デジタルシステム1の製造後に微調整することにより、供給される特定の電源電圧の元でデジタルシステム1が誤りなく動作するようにすることができるが、特に、電源電圧が高い状態で動作していたシステムが低い電源電圧の元で動作しなくなる場合には、デジタルシステムを構成する各論理素子の動作速度が、低い電圧によって遅くなり、タイミング不良が発生している場合が多い。
【0051】
図2(a)に示す如き、デジタルシステムを構成する論理素子の1つであるインバータIVでは、図2(b)に示すように、電源電圧(図中ではVddと表記)の高さによって、入力データの変化が出力端子に現れるのにかかる時間が変化する。すなわち、電源電圧が高いほど出力端子に現れる時間が早くなり(出力1)、低いほど遅くなる(出力2)。従って、この低い電源電圧の元で上述のクロックタイミング調整を行うことによって、低い電源電圧の元でも動作するようにすることができる。さらに、高い電源電圧の元ですら動作しなかったデジタルシステムでも、その原因がわずかなタイミング不良であったものならば、低い電源電圧のもとで本クロックタイミング調整を行うことにより、低い電源電圧の元で動作するようにすることができる。
【0052】
同様の仕組みにより、通常の電源電圧の元でクロックタイミング調整を行っても動作させることができないデジタルシステムに対して、電源電圧をわずかに上昇させることにより、デジタルシステムを構成する各論理素子の動作速度を若干上げてタイミング余裕を増やし、その電源電圧でクロックタイミング調整を行うことで、必要最小限の電源電圧上昇だけで歩留の向上を達成することができ、ひいてはデジタルシステムのコストを削減することができる。
【0053】
ところで、一般的に、調整可能な遅延素子4の遅延設定値は互いに影響を及ぼしあう。すなわち、図3に示すように、ある調整されるフリップフロップ2Aに接続された調整可能な遅延素子4Aの遅延設定値調整の影響は、このフリップフロップ2Aの入出力端子と組合せ回路20だけを挟んで接続されている他の調整されるフリップフロップ2に及ぶ。
このように、多くの場合、調整探索空間が組合せ爆発を起こしてしまう。それゆえ、本発明に基づく遺伝的アルゴリズムを用いた後述する調整手法が非常に有効である。
【0054】
本実施例においては、デジタルシステム1が誤りなく動作するように、調整されるフリップフロップ2のクロック端子に接続されている調整可能な遅延素子4の遅延設定値が調整される。
上記調整装置6の一構成例を図4に示す。この図4中、符号6Aは本発明の方法に従って調整手順を実行する調整アルゴリズム実行装置、6Bはデジタルシステム1のレジスタに遅延設定値を書き込む遅延設定装置である。
【0055】
本実施例における調整では、上記遅延設定装置6Bは、調整アルゴリズム実行装置6Aが算出した遅延設定値を、遅延設定信号93を介してレジスタ5に設定する。遅延設定信号93は、レジスタ5と同じビット幅を持つデジタル値で、調整可能な遅延素子4が発生させる遅延時間を制御する。
【0056】
上記の調整アルゴリズム実行装置6Aは、遺伝的アルゴリズムに従って、レジスタ5の遅延設定値として最適な値を探索する。なお、調整装置6は、具体的にはパーソナルコンピュータあるいはマイクロコンピュータ等の電子計算機により構成することが可能であり、また、特開平9−294069号公報に開示されているプログラマブルLSI、あるいは、梶谷らによる論文「GAによるニューラルネットワークの構造学習回路の実現」(日本神経回路学会誌vol.5,No.4、pp.145〜153、1998年)に記載されている回路を用いて構成することもできる。
【0057】
上記の電子計算機に於いては、調整アルゴルゴリズム実行装置6Aの機能を実現するプログラムが、ハードディスク、ROM(読み出し専用メモリ)、Flashメモリ、光ディスク、光磁気ディスク、磁気ディスク等の記録媒体に格納されている。
【0058】
図1中、符号9はデジタルテスト信号発生装置8が生成するクロック信号、10はデジタルテスト信号発生装置8が生成するテスト信号であり、それらの信号はデジタルシステム1に入力される。
また同図中、11はデジタルシステム1が出力するデジタル出力信号、12は一部あるいは全部のフリップフロップの出力を取り出したデジタルシステム内部状態信号であり、それらの信号はデジタル信号観測装置7に入力される。
【0059】
上記デジタル信号観測装置7の一構成例を図5に示す。デジタル信号観測装置7はロジックアナライザ7Aのみから構成される。ロジックアナライザとは、一般にデジタルシステム内のデジタル信号を観測する測定装置である。
ロジックアナライザ7Aとデジタルシステム1とは、ロジックアナライザ7Aの測定用プローブで接続し、ロジックアナライザ7Aと調整装置6とは、GP−IBインターフェース7Gで接続する。
なお、デジタル信号観測装置7は、専用回路で構成してデジタルシステム1に内蔵することも可能である。
【0060】
上記ロジックアナライザ7Aには、デジタルシステム1が誤りなく動作した場合の、デジタル出力信号11とデジタルシステム内部状態信号12との値を記憶させておき、デジタルシステム1からの出力と比較させて評価値を算出させる。
【0061】
あるいは、デジタルシステム1が誤りなく動作した場合のデジタル出力信号11とデジタルシステム内部状態信号12との値は調整装置6に記憶させておき、デジタルシステム1からのデジタル出力信号11とデジタルシステム内部状態信号12の値はそのまま調整装置6に送って、調整装置6で評価値を算出するようにしてもよい。
【0062】
上記デジタルテスト信号発生装置8の一構成例を図6に示す。デジタルテスト信号発生装置8はデジタル信号発生器8Aのみから構成される。
デジタル信号発生器8Aとデジタルシステム1とは、デジタル信号発生器8Aのプローブで接続し、デジタル信号発生器8Aと調整装置6とは、GP−IPインターフェース8Gで接続する。
デジタル信号発生器8Aは、出力するデジタル信号のデータパターンを内部のメモリ中に保持し、指定された周波数のクロック信号9に同期させてデジタルテスト信号10としてデジタルシステム1に出力する。
なお、デジタルテスト信号発生装置8は、専用回路で構成してデジタルシステム1に内蔵することも可能である。
【0063】
上記電源装置14の一構成例を図7に示す。電源装置14は、必要に応じて複数の出力電圧可変電源装置97から構成される。電源装置14は、外部からAC100Vの商用電源、もしくは、電池から電源供給を受け、内部の出力電圧可変電源装置97に分配する。各出力電圧可変電源装置97は、単一の電源電圧を発生させる回路であり、外部からの電源制御信号98により、その出力電圧を変化させることができる。複数の出力電圧可変電源装置97の出力は、電源供給99として外部に出力される。
なお、電源装置14の出力の中に固定電圧のものがあってもよく、また、出力電圧可変電源装置97の出力電圧を固定して使ってもよい。
【0064】
デジタルシステム1における調整されるフリップフロップ2の調整箇所の総数が複数であり、図2に例示するように、遅延素子2の調整箇所において、ある調整箇所2Aの調整が他の多数の調整箇所の調整結果に影響を及ぼし、調整探索空間の組合せ爆発を起こす場合に、本発明は特に有効である。
【0065】
本実施例のデジタルシステム1は、外部装置からの設定に従って遅延時間を調整可能な遅延素子4がクロック端子に接続された調整されるフリップフロップ2を複数使用し、調整装置6が実行する確率的探索アルゴリズムを用いて最適な遅延値を探索し、かつ、遅延時間そのものは直接測定しないことを大きな特徴としている。
【0066】
回路上の工夫による従来のクロックタイミング調整方法では、デジタルシステム内の各回路ブロックやフリップフロップに供給されるクロック信号のタイミングを、タイミング比較回路を用いて測定する方法を用いる。すなわち、参照用のクロック信号と供給されるクロック信号のタイミング比較、もしくは、隣接する回路ブロックやフリップフロップに供給されるクロック信号同士のタイミング比較を行い、その差異をタイミング調整のための回路にフィードバックして、測定される差異が少なくなるように調整を行う。
【0067】
この方法には、少なくとも2つの問題点があることが明らかである。1つ目の問題点は、比較の正確さの問題である。参照用クロックを用いる方法では、その参照用クロック自体のクロックスキューが問題となる。隣接クロック間の比較を行う場合は、各回路ブロックやフリップフロップに供給されるクロック信号を比較回路へ導く配線を原因とするクロックスキューが問題となる。
2つ目の問題点は、クロックスキューを理想的に0にできたとしても、それでデジタルシステムの動作歩留が最大になるわけではないという事実である。つまり、クロック信号を供給するクロック系が理想的な状態だとしても、それ以外の論理回路には依然としてプロセスバラツキ等を原因とする設計仕様からのタイミングのずれが存在し、デジタルシステム内の各論理素子は理想状態とは異なるタイミングで動作している。
【0068】
クロックスキューを解消する本来の目的は「設計者の意図通りにデジタルシステムが動作すること」であり、本発明者らはこの本来の目的に立ち返り、クロックタイミングを直接測るのではなく、デジタルシステムが設計者の意図通り動いているか、意図通り動いていないとすればどれぐらいの割合で誤って動いているかを定量的に測定し、その値に基づいてクロックタイミングを調整するという、本アイデアを思いついた。
【0069】
調整可能な遅延素子4で遅延時間(信号伝達タイミング)を変化させる場合の一構成例を図8に示す。pチャネルFETであるTr9,Tr10および、nチャネルFETであるTr11,Tr12が直列接続した回路であり、Tr10,Tr11はNOT素子として機能する。このときTr9およびTr12の抵抗値により回路の電流値が変化するので、浮遊容量(寄生容量)と負荷容量を充放電する時間が変化する。図9に、上記NOT素子への入力信号(入力クロック信号)およびそのNOT素子からの出力信号(出力クロック信号)の波形を示す。それぞれ、T27に入力する制御信号電圧によりTAの遅延時間、T26に入力する制御信号電圧によりTBの遅延時間が調整できる。
クロック信号の立ち上がりあるいは立ち下がりのどちらか一方の遅延調整で済む場合には、Tr9およびTr12の一方を省略可能である。
【0070】
調整可能な遅延素子4で遅延時間(信号伝達タイミング)を変化させる場合の他の構成例を図10乃至図13に示す。
図10のように、単位遅延DNを有するNOT素子D1を2個カスケード(縦列)に並べることにより、2DNの遅延時間を発生させることができる。
また、図11のように、単位遅延DNを有するNOT素子を4個カスケードに並べれば、4DNの遅延時間を発生させることができる。
同様に、単位遅延DNを有するNOT素子を2n個カスケードに並べることにより、(2n×DN)の遅延時間を発生させることができる。
【0071】
そして、サイズのより大きなトランジスタを用いてNOT素子D2を構成すれば、トランジスタの寄生容量が増大してより長い遅延が発生し、図12に示すように、素子の個数を増やさずに遅延時間を変化させることができる。
【0072】
一方、図13に示すように、抵抗RとコンデンサCとを用いて積分回路を構成し、出力をシュミットトリガー素子S等で波形整形することによっても、遅延回路を構成することができる。この構成では、抵抗RとコンデンサCとの値の積に比例する遅延を発生させることができる。
【0073】
さらに、配線そのものの遅延を利用して、長い配線を作り出して遅延素子として用いることもでき、この場合には、配線の長さに比例した遅延を発生させることができる。
例えば、図14では、図中上側に示す長さLLAの配線LAは、図中下側に示す同じ材質・幅で長さLLBの配線LBに対して、LLA/LLB倍の遅延を発生させる。
【0074】
以上の遅延素子はいずれもクロック信号を遅らせる機能しか持たないが、PLL(フェーズロックトループ)回路やDLL(ディレイロックトループ)回路を用いれば、クロック信号を進めるような負の遅延を発生させることもできる。
【0075】
図15に、正負の両方向の遅延を発生させる調整可能な遅延回路の一構成例を示す。
図15中、符号94は上述のPLL回路であり、符号4は図16に示す後述の調整可能な遅延回路(遅延素子)である。PLL回路94が、クロックを8DT分進める機能を持ち、調整可能な遅延回路4が、0DTから15DTまでの遅延を発生させる機能を有する場合には、この回路は全体で−8DTから7DTまでの遅延を発生させることができる。
【0076】
上記複数の遅延素子を組み合わせて、調整可能な遅延素子4を構成することもできる。
図16は、調整可能な遅延素子4の構成を例示する構成図であり、この例の調整可能な遅延素子4は、図1中のレジスタ5が4ビットのデータを保持するものである場合に対応している。
この調整可能な遅延素子4では、レジスタ5に保持されているレジスタ値の各ビットが、図示しないスイッチ駆動回路を介して各スイッチ回路Sw1〜Sw4にそれぞれ対応し、上記レジスタ値に応じて各スイッチ回路Sw1〜Sw4が作動するように構成されており、その結果発生する遅延されたクロック信号が、上記調整されるフリップフロップ2のクロック端子に印加される。
【0077】
すなわち、図16に示す調整可能な遅延素子4は、それぞれ長さの異なる一定の遅延時間を発生する遅延素子UD1〜UD4と、それら遅延素子UD1〜UD4を選択的に使用するためのスイッチ回路Sw1〜Sw4とから構成されている。
そしてここでは、クロック線からのクロック入力と、調整されるフリップフロップ2のクロック端子との間に、遅延素子UD1〜UD4と各遅延素子に対応するスイッチ回路Sw1〜Sw4が互い違いにカスケード(縦列)接続されており、これにより、遅延素子が発生する遅延時間がクロック信号に加わり、発生した遅延時間分だけ元のクロック信号よりタイミングの遅れたクロック信号が、調整されるフリップフロップ2のクロック端子に供給され得るように構成されている。
【0078】
ここで、遅延素子UD1は、設計によって長さが定まる遅延時間を発生させる。そして遅延素子UD2は、遅延素子UD1の2倍の遅延時間を発生し、同様に、遅延素子UD3は、上記遅延素子UD1の4倍の遅延時間、遅延素子UD4は、上記遅延素子UD1の8倍の遅延時間をそれぞれ発生するように構成されている。
そして、これら各遅延素子UD1〜UD4に対応するスイッチ回路Sw1〜Sw4は、レジスタ5のレジスタ値に基づきオンオフ制御され、レジスタ値の4ビット中のあるビットが「1」であるとき、そのビットに対応するスイッチ回路が遅延素子側に倒れ、対応する遅延素子が発生する遅延時間がクロック信号に加わる。また、レジスタ値の4ビット中のあるビットが「0」であるとき、そのビットに対応するスイッチ回路がバイパス側に倒れ、対応する遅延素子はスキップされて、発生する遅延時間はクロック信号に加わらなくなる。
【0079】
従って、ここでは各遅延素子UD1〜UD4の発生遅延時間がそれぞれ、1DT、2DT、4DT、8DTに設定されてクロック信号に加わるようにされていることから、上記遅延素子4は、スイッチ回路の状態の組合せによって、遅延時間0から、遅延時間15DTまでの範囲で、クロック信号に加わる遅延時間を調整することができる。
【0080】
図17に、調整可能な遅延素子4と、レジスタ5の最下位ビット5Aとを含んだ一構成例を示す。
図17中、符号D1はNOT素子、D11はAND素子、D12はOR素子、UD1は単位遅延回路、5Aはレジスタ5の最下位ビット(一ビット分)、D15はクロック線からのクロック入力である。クロック出力D16は、調整されるフリップフロップのクロック端子に入力される。D17はレジスタ5Aへの遅延設定値入力、D18はレジスタ5Aへの書き込み信号であり、これらをレジスタ5の全ビット分合わせ、なおかつ全レジスタ分合わせたものが、遅延設定信号93である。
【0081】
ここにおけるスイッチは、AND素子D11とOR素子D12を用いた基本的なセレクタ回路であり、一方のAND素子D11の出力には遅延DTを発生させる遅延素子UD1を挿入し、もう一方のAND素子D11の出力はOR素子D12に直結することで、遅延素子UD1をスキップしている。
すなわち、レジスタ5Aの出力が論理値「1」のときは、遅延素子UD1側のAND素子D11が働いて遅延DTを発生させ、レジスタ5Aの出力が論理値「0」のときは、遅延素子UD1をスキップさせる側のAND素子D11が働いて遅延を発生させない。
【0082】
図18に、調整可能な遅延素子4と、レジスタ5の1ビット分D13とを含んだ他の構成例を示す。
この構成例は、トランスファゲート素子D20とバッファD19とからなる。トランスファゲート素子D20の働きはスイッチそのものであり、上述のAND素子とOR素子を組合わせた場合と同様の働きを持つ。
言うまでもなく、これらの構成例と同一の機能を有する他のデジタル回路を構成することは容易であり、上記実施例ではそれらを代わりに用いることもできる。
【0083】
デジタルシステム内部状態信号12は、デジタルシステム1中の一部もしくは全部の、調整されるフリップフロップ2および調整されないフリップフロップ3の出力から構成され、デジタル信号観測装置7に入力される。
デジタルシステム内部状態信号12をデジタル信号観測装置7に入力するには、例えば、それらのフリップフロップの出力をデジタルシステム1の出力端子として用意し、デジタル信号観測装置7に接続すればよい。
【0084】
デジタルシステム内部状態信号12のビット数が多い場合には、上記のフリップフロップの出力を複数のグループに分けてセレクタ回路に入力し、デジタルシステム1から出力するグループを切り替えながら、同じテスト信号10を繰り返し印加する方法をとってもよい。
【0085】
あるいは、デジタルシステム1にスキャンパス回路を内蔵し、テスト信号10およびクロック信号9を途中で停止して、その時点のデジタルシステム1の内部状態をスキャンパス回路を用いて取り出し、デジタル信号観測装置7に渡す方法をとってもよい。
ここにおけるスキャンパス回路とは、デジタルシステム1内の一部あるいは全部のフリップフロップを単一もしくは複数のシフトレジスタとして動作させるような動作モードを実現する回路であり、デジタルシステム1の動作途中の内部状態を観測したり、外部から内部状態を設定したりすることが可能となるものである。
【0086】
図4に示す遅延設定装置6Bからレジスタ5への遅延値設定の一方法について説明する。
レジスタ5の1ビット分5Aは、図17のように設定入力信号D17と設定(書き込み)指示信号D18とを有しており、遅延設定信号93は、全てのレジスタについての、この2種類の信号から構成されている。遅延設定信号93は遅延設定装置6Bから出力され、デジタルシステム1に入力される。
例えば、遅延設定装置6Bはパーソナルコンピュータのパラレルインターフェースボードを用いて構成することができ、ビット数は上述の遅延設定信号93のビット幅分用意する。
遅延設定装置6Bのパラレルインターフェース出力信号として出力される遅延設定信号93のうち、あるレジスタ5のあるビットの設定入力端子に接続されている遅延設定信号に0か1の信号を与え、対応する設定信号に接続されているビットに設定を指示する信号を与えることで、レジスタの書き込みが実現できる。
この時レジスタに書き込む値は、調整アルゴリズム実行装置6Aが算出した値である。
【0087】
あるいは、デジタルシステム1内の全レジスタ5に番号を振り、遅延設定信号93をこのレジスタ番号とそのレジスタに書き込む値と設定指示信号とから構成することもできる。
この場合には、遅延設定装置6Bからデジタルシステム1に送られた遅延設定信号93は、デジタルシステム1内でマルチプレクサ回路を用いてレジスタ番号に従って振り分けられ、レジスタ番号で指定されたレジスタの設定入力端子に遅延設定値を与え、設定指示信号を指定されたレジスタの設定指示信号として与える。
この場合の遅延設定装置6Bとデジタルシステム1との接続にも、同様にパラレルインターフェースボードを用いることができる。
【0088】
あるいは、遅延設定装置6B内で全レジスタ用の設定値を一列に並べ、パラレル−シリアル変換して生成したシリアル信号(1ビット幅の信号)を遅延設定信号93とすることもできる。
この場合には、遅延設定信号93は、デジタルシステム1の内部でシリアル−パラレル変換して、各設定値をそれぞれのレジスタに書き込む。遅延設定信号93が1ビット幅の信号であるので、遅延設定装置6Bとデジタルシステム1との接続にはRS−232Cなどのシリアルインターフェース回路を用いることができる。
【0089】
次に、上記実施例のデジタルシステム1の調整のための、本発明の調整方法の第1実施例について説明する。
【0090】
上記デジタルシステム1が製造された後、調整工程で、図1に示すように、調整装置6、デジタル信号観測装置7、デジタルテスト信号発生装置8、および電源装置14がそのデジタルシステム1にそれぞれ接続され、デジタルテスト信号発生装置8は、デジタルシステム1にデジタルテスト信号10およびクロック信号9を入力し、調整装置6は、図19に示す処理手順に従って、レジスタ5のレジスタ値の設定を行う。
【0091】
この処理手順では、先ずステップS1で、調整装置6が、あらかじめ定められた初期設定値をレジスタ5に書き込んでレジスタ値として保持させ、次のステップS2で、デジタルテスト信号発生装置8がテスト信号を出力して、そのテスト信号に対しデジタルシステム1を一定周波数のクロック信号9および一定電圧の電源供給99の入力のもとに動作させ、次のステップS3で、そのデジタルシステム1の出力およびデジタルシステムの内部状態をデジタル信号観測装置9が観測してその結果を調整装置6に送り、次のステップS4で、調整装置6が、送られてきた観測値を使用して、デジタルシステム1が、誤りなく動作するか否かを判定する。ここで、電源供給99の電圧値は、デジタルシステム1の設計電源電圧値より低くすることができる。
【0092】
ここで誤った動作をする場合には、ステップS5で、調整装置6が、レジスタ5が保持しているレジスタ値を変更し、次のステップS6で、変更の結果が安定するまで一定時間待機し、次のステップS7で、終了条件をみたしたか否かを判断し、終了条件をみたしていればステップS8で不良品処理を行った後に当該処理を終了するが、終了条件をみたしていなければステップS2へ戻る、という一連の処理が繰り返し実行される。そして上記ステップS4で、デジタルシステム1が誤りなく動作したとの判定が得られた場合には、ステップS9で良品処理を行った後に当該処理を終了する。
【0093】
上述した初期設定値からレジスタ値を変更する方法については、いくつかの方法を使用することができ、以下にその例を示す。
すなわち、第1の方法は、想定されるレジスタ値の範囲におけるすべての組合せについて、適当な順序で順次設定値を切り替えていく方法であり、第2の方法は、乱数的に設定値を発生させる方法である。そして第3の方法は、設計時に得られる遅延値を初期設定値とし、その初期設定値から+方向と−方向に設定値を微少に変化させる方法である。
【0094】
調整対象のデジタルシステム1内に調整可能な遅延素子4の数が少なく、レジスタ値の組合せ爆発を生じない場合は、第1、第2の方法を用いることができる。しかし、本実施例は、調整可能な遅延素子4の数が多く、レジスタ値の調整探索空間において組合せ爆発の発生が想定される場合であるので、第3の方法を使用する。このとき、遺伝的アルゴリズムと呼ばれる方法を使用する。以下では、遺伝的アルゴリズムを用いたデジタルシステム1の調整方法について説明する。
【0095】
上記遺伝的アルゴリズムの参考文献としては、例えば、出版社ADDISON−WESLEY PUBLISHING COMPANY,INC.が1989年に出版した、David E.Goldberg著の「Genetic Algorithms in Search,Optimization,and Machine Learning」がある。なお、本発明でいう遺伝的アルゴリズムとは、進化的計算手法(Evolutionary Computation)のことをいう。
【0096】
デジタルシステム1がどの程度誤りなく動作するかは、すべての調整可能な遅延素子の遅延値を引数(入力)とする評価関数Fで表すことができる。デジタルシステム1が誤りなく動作するということは、評価関数Fを最適にする遅延値を求めることと等価である。本発明者はこの点に着目し、デジタルシステム1の調整に上記の遺伝的アルゴリズムを適用可能なことを発見した。調整装置6は、この遺伝的アルゴリズムにしたがってレジスタ5のレジスタ値を変更する。
【0097】
遺伝的アルゴリズムでは、先ず遺伝子を持つ仮想的な生物の集団を設定し、あらかじめ定めた環境に適応している個体が、その適応度の高さに応じて生存し、子孫を残す確率が増えるようにする。そして、遺伝的操作と呼ばれる手順で親の遺伝子を子に継承させる。このような世代交代を実行し、遺伝子および生物集団を進化させることにより、高い適応度を持つ個体が生物集団の大勢を占めるようになる。そしてその際の遺伝的操作としては、実際の生物の生殖においても生じる、遺伝子の交叉、および突然変異等が用いられる。
【0098】
図20は、かかる遺伝的アルゴリズムの概略手順を示すフローチャートであり、ここでは、初めにステップS11で、個体の染色体を決定する。すなわち、世代交代の際に親の個体から子孫の個体に、どのような内容のデータをどのような形式で伝えるかを定める。図21に染色体を例示する。ここでは、対象とする最適化問題の変数ベクトルxを、M個の記号Ai(i=1,2,‥M)の列で表わすことにし、これをM個の遺伝子座からなる染色体とみなす。各記号Aiは遺伝子であり、これらのとりうる値が対立遺伝子である。図21中、Chは染色体、Gsは遺伝子座を示し、遺伝子座の個数Mは5である。対立遺伝子としては、ある整数の組、ある範囲の実数値、単なる記号の列などを問題に応じて定める。図21の例では、a〜eのアルファベットが対立遺伝子である。このようにして記号化された遺伝子の集合が個体の染色体である。
【0099】
上記ステップS11では次に、各個体が環境にどの程度適応しているかを表わす適応度の計算方法を決定する。その際、対象とする最適化問題の評価関数の値がより高い変数あるいはより低い変数ほど、それに対応する個体の適応度が高くなるように設計する。またその後に行う世代交代では、適応度の高い個体ほど、生き残る確率あるいは子孫を作る確率が他の適応度の低い個体よりも高くなるようにする。逆に、適応度の低い個体は、環境にうまく適応していない個体とみなして、消滅させる。これは、進化論における自然淘汰の原理を反映したものである。すなわち適応度は、生存の可能性という面から見て各個体がどの程度優れているかを表わす尺度となる。
【0100】
遺伝的アルゴリズムでは、探索開始時においては、対象とする問題は一般にまったくのブラックボックスであり、どのような個体が望ましいかはまったく不明である。このため通常、初期の生物集団は乱数を用いてランダムに発生させる。従ってここにおける手順でも、ステップS12で処理を開始した後のステップS13では、初期の生物集団は乱数を用いてランダムに発生させる。なお、探索空間に対して何らかの予備知識がある場合は、評価値が高いと思われる部分を中心にして生物集団を発生させるなどの処理を行うこともある。ここで、発生させる個体の総数を、集団の個体数という。
【0101】
次にステップS14で、生物集団中の各個体の適応度を、先にステップS11で決めた計算方法に基づいて計算する。各個体について適応度が求まったら、次にステップS15で、次の世代の個体の基となる個体を集団から選択淘汰する。しかしながら選択淘汰を行うだけでは、現時点で最も高い適応度を持つ個体が生物集団中に占める割合が高くなるだけで、新しい探索点が生じないことになる。このため、次に述べる交叉と突然変異と呼ばれる操作を行う。
【0102】
すなわち、次のステップS16では、選択淘汰によって生成された次世代の個体の中から、所定の発生頻度で二つの個体のペアをランダムに選択し、染色体を組み変えて子の染色体を作る(交叉)。ここで、交叉が発生する確率を、交叉率と呼ぶ。交叉によって生成された子孫の個体は、親にあたる個体のそれぞれから形質を継承した個体である。この交叉の処理によって、個体の染色体の多様性が高まり進化が生じる。
【0103】
交叉処理後は、次のステップS17で、個体の遺伝子を一定の確率で変化させる(突然変異)。ここで、突然変異が発生する確率を突然変異率と呼ぶ。遺伝子の内容が低い確率で書き換えられるという現象は、実際の生物の遺伝子においても見られる現象である。ただし、突然変異率を大きくしすぎると、交叉による親の形質の遺伝の特徴が失われ、探索空間中をランダムに探索することと同様になるので注意を必要とする。
【0104】
以上の処理によって次世代の集団が決定され、ここでは次に、ステップS18で、生成された次世代の生物集団が探索を終了するための評価基準を満たしているか否かを調べる。この評価基準は、問題に依存するが、代表的なものとして次のようなものがある。
・生物集団中の最大の適応度が、あるしきい値より大きくなった。
・生物集団全体の平均の適応度が、あるしきい値より大きくなった。
・生物集団の適応度の増加率が、あるしきい値以下の世代が一定の期間以上続いた。
・世代交代の回数が、あらかじめ定めた回数に到達した。
【0105】
上述の如き終了条件(評価基準)の何れかが満たされた場合は、ステップS19へ進んで探索を終了し、その時点での生物集団中で最も適応度の高い個体を、求める最適化問題の解とする。終了条件が満たされない場合は、ステップS14の各個体の適応度の計算の処理に戻って探索を続ける。このような世代交代の繰り返しによって、集団の個体数を一定に保ちつつ、個体の適応度を高めることが出来る。以上が遺伝的アルゴリズムの概略である。
【0106】
上で述べた遺伝的アルゴリズムの枠組みは、実際のプログラミングの詳細を規定しない緩やかなものとなっており、個々の問題に対する詳細なアルゴリズムを規定するものではない。このため、遺伝的アルゴリズムを本実施例のデジタルシステムの調整に用いるには、以下の項目をデジタルシステムの調整用に実現する必要がある。
(a)染色体の表現方法
(b)個体の評価関数
(c)選択淘汰方法
(d)交叉方法
(e)突然変異方法
(f)探索終了条件
【0107】
図22は、本実施例における遺伝的アルゴリズムを用いた調整装置6の処理手順を示すフローチャートである。なお、この図22の処理は、図19のステップS2〜ステップS6の処理を具体的に示すものである。本実施例は、遺伝的アルゴリズムの染色体として、レジスタ5のレジスタ値を直接用いることを大きな特徴としており、これにより、染色体の情報をレジスタ値に変換するための処理等を不要とすることができる。すなわち、本実施例における染色体は、図23に示すように、複数個のレジスタ5のレジスタ値から構成されている。
なお、図23における遅延値で、符号が正(符号なし)のものはその時間だけ信号を遅延させ、符号が負のものはその時間だけ信号を進ませるものであり、遅延値の単位psはピコ秒を意味する。
【0108】
図22の処理で使用する、遺伝的アルゴリズムの個体の評価関数Fとしては、個体の染色体が表現するレジスタ値でデジタルシステム1を設定したのち動作させ、デジタル信号観測装置9によって観測されたデジタル出力の論理値が期待値にどのくらい近いかを表す関数を用いる。
【0109】
図22に示す処理で用いるために、先に図19のステップS1で遺伝的アルゴリズムの初期集団として、一様乱数を用いて個体を複数作成する。つまりこの場合には、初期集団の各染色体の各遺伝子の値は確率0.5で1の値を、確率0.5で0の値をとることを意味する。但し、クロックタイミングの不均一さの傾向について何らかの予備知識が存在する場合には、より適応度が高いと思われる個体を初期集団として作成することができる。
【0110】
初期集団のそれぞれの個体は、デジタル信号観測装置7から送られてきた観測値(ステップS3)から、調整装置6により上記評価関数を用いて適応度を計算する。その後、デジタルシステム1の性能が誤りなく動作するか否かをステップS4で判定し、誤りなく動作する場合には、ステップS9で良品処理を行った後、調整処理は終了する。
【0111】
初期集団すべての個体において、ステップS9の良品処理が行われなかった場合、ステップS21〜S30の遺伝的処理に進む。ステップS26もしくはステップS29の適応度算出処理時に、デジタルシステム1の性能が誤りなく動作したと判断された場合にも、ステップS9で良品処理を行った後、調整処理は終了する。なお、ステップS21〜S30を一定世代数繰り返して調整処理を行っても、誤りなく動作する染色体(レジスタ値)が得られない場合には、調整対象のデジタルシステム1は不良品と判断され、図19のステップS8で不良品としての処理を行う。
【0112】
遺伝的アルゴリズムの選択淘汰処理は、集団から次世代に残す個体を選択する処理であり、ステップS21乃至ステップS30で行われる。本実施例では、図22の処理フローに示すように、例えば集団からランダムに二つの個体1,2を選び(ステップS21)、これに対して交叉、突然変異を適用して子個体1,2を生成し(ステップS22〜S29)、次いで図24の処理フローに示すように、親個体1,親個体2,子個体1,子個体2の4個体のうち適応度の値が高い上位二つの個体A,Bを選択し(ステップS31)、集団内の親個体1,2と、個体A,Bを置換する(ステップS32)。この置換処理は、一般的な遺伝的アルゴリズムのように集団全部の個体を一斉に変化させない点が大きな特徴である。これにより、少ない集団の個体数で探索を行うことが可能である。
【0113】
ステップS22の交叉処理では、図25の説明図に示す方法を用いる。これは染色体をランダムな位置で部分的に入れ替える操作であり、1点交叉と呼ばれる手法である。図25では、Ch1およびCh2が選択淘汰の結果生き残った親A、Bの染色体であり、ここにおける交叉処理では、これらの染色体を、ランダムに選んだ交叉位置CPで切断する。図25の例では、左から3番目の遺伝子と4番目の遺伝子との間を交叉位置としている。そしてここでは、切断した部分的な遺伝子型を入れ替えることによって、染色体Ch3およびCh4をそれぞれ持つ子A’、子B’を生成し、これらをもとの個体A、Bと置き換える。
【0114】
ステップS22での交叉にひき続いて実行するステップS23の突然変異は、各染色体の遺伝子の各ビットを、突然変異率の生起確率で、0を1、あるいは1を0に変更する操作である。図26に突然変異の例を示す。この図26では、染色体Ch5の、四角で囲んで示す左から2ビット目と右から3ビット目の遺伝子に突然変異が生じ、それぞれが染色体Ch6において対立遺伝子に変更されている。
【0115】
上述したように、本実施例のデジタルシステム1では、デジタルシステム1内の複数のフリップフロップ素子へのクロック信号に、遅延値が可変である遅延素子4を使用し、それらの遅延素子4の遅延値をデジタルシステム1が誤りなく動作するように探索する。従って、デジタルシステム製造工程におけるクロック信号線の品質の不均一、設計上の誤差等に起因するクロックタイミングの誤差を吸収するとともに、電源電圧を低下させたことに起因するタイミングマージンの不足を補償して、デジタルシステム1を誤りなく動作するように調整することができ、このことは、従来技術による場合より少ない設計労力で、従来技術による場合より低い電源電圧で動作するデジタルシステムすなわち消費電力の少ないデジタルシステムが得られることを意味する。
また、元の電源電圧のままで調整を行っても動作させることができなかったデジタルシステム1の中には、電源電圧を若干上げることで誤りなく動作するように調整することができるものが存在し、従来技術による場合よりも少ない労力と最小限の電源電圧上昇で動作歩留を向上させることが可能であることも意味する。
【0116】
また、本実施例に関しては、以下の調整方法も用いることができる。すなわち、上述した調整方法では、電源供給99の電源電圧は一定値であるとしたが、その調整が終了したのち、電源供給99の電源電圧を低下させて、同様の調整を行うことで、さらに動作電圧が低くなるように調整することができる。
【0117】
図27に、上記の場合の調整方法を示す。この処理手順では、まずステップS61でデジタルシステム1に入力される電源供給99の電源電圧をV0に設定した後、ステップS62で、調整装置6が、図19に示したステップS1からステップS9の調整を行う。次のステップS63で、ステップS61の調整の結果、デジタルシステム1が良品に調整されたか否かを判断する。調整の結果、良品にならなかった場合は当該処理を終了する。調整の結果、良品になった場合は、ステップS64で電源供給99の電源電圧をV0よりも小さな値V1に設定する。その後、ステップS65でステップS62と同様にデジタルシステム1の調整を行う。ステップS66ではステップS63と同様な判断を行い、良品だった場合にはさらに電源供給99の電源電圧を小さな値にして調整するということを繰り返す。繰り返しの結果、ステップS68で電源供給99の電源電圧を下限値Vnに設定した場合、ステップS69で調整を行い、当該処理は終了する。
【0118】
前記電源電圧の上限値V0はデジタルシステム1の設計値、下限値Vnは物理的に許容される電源電圧によって定まる。nの値およびV1からVn−1の値は、必要とされる調整の精度によって決定する。この調整方法により、タイミングマージンの減少に応じて、デジタルシステム1の動作電源電圧の値を減少させることができる。
【0119】
また、V0を電源電圧の設計値より上方に設定し、徐々に電源電圧Vi(i=1,…,n)をさげて調整した場合、調整に時間はかかるものの確実に調整を行えるという利点もある。
【0120】
さらに上記調整方法により、電源電圧Vjで良品と判定されたデジタルシステムを、システムの使用時にはVi(i<j)の周波数で動作させることにより、デジタルシステムの安定性を高めることができる。なぜならば、使用時よりも低い電源電圧で動作するようにクロックタイミングが調整されているために、動作時の電源電圧の変動や、デジタルシステムの温度や、外部の電磁ノイズの影響によって、クロックタイミングに微妙な変化が生じた場合にでも、誤動作が発生しにくくなるからである。
なお、上記調整方法のステップS63において、良品に調整されなかった場合、電源電圧値をVh(当初のVhは設計値V0よりわずかに高い)に設定し、再度ステップS1〜ステップS9の調整を行うことができる。この電源電圧値Vhでタイミング調整が成功した場合、必要最小限の電源電圧上昇だけで歩留の向上を達成することができる。一方、このVhにおいても良品に調整できなかった場合、Vhをさらに段階的に高くして調整を続けることも可能である。
【0121】
この調整方法は、デジタルシステム1の量産工程においても用いることができる。従来の量産工程では一般的に電源電圧の調整を行わずに動作試験のみをおこない、良品の選別を行っていた。しかし、上記調整方法によれば、製造されたデジタルシステムで個別に調整をおこない、電源電圧を低減させることができるので、低い電源電圧値で動作するデジタルシステムの比率を高めることができる。低い電源電圧値すなわち低い消費電力で動作するデジタルシステムは、モバイル機器などの動作時間の延長につながり商品価値が高いため、本調整方法の工業的な価値は大きい。
また、通常の電源電圧の元で調整を行っても動作させることができないデジタルシステムに対して、電源電圧を若干上昇させた上で調整を行うことで動作歩留を上げることができるので、コストダウンにもつながり、経済的な価値も大きい。
【0122】
次に、本発明の第1実施例では次のような変形例がある。先の実施例では、調整装置6、デジタル信号観測装置7、デジタルテスト信号発生装置8、および電源装置14は、外部装置としてデジタルシステム1に脱着可能に接続される。しかしながら本発明では、前記外部装置に相当する回路を調整手段としてデジタルシステム1に組み込んでもよい。特に、電源装置14に関しては、調整装置6、デジタル信号観測装置7およびデジタルテスト信号発生装置8とは独立に、デジタルシステム1に組み込んだり、外部装置として接続したりしてもよい。
【0123】
このように構成された変形例を図28に示す。ここではデジタルシステム1内にデジタルシステム本体1Lの他、前記外部装置に相当する回路が組み込まれている。デジタルシステム1Lの入力端子および出力端子と、デジタルシステム1Lの外部入力端子32および外部出力端子33との間にはそれぞれ、切換スイッチ30が設置されている。この切換スイッチ30は、図示例のようにデジタルシステム1L内に設けられていても良いが、デジタルシステム1外に設けられていても良い。
【0124】
ここで、切換スイッチ30を操作すると、デジタルシステム本体1Lの出力がデジタル信号観測回路7Lに入力されるとともに、調整回路6L、デジタル信号観測回路7Lおよびデジタルテスト信号発生回路8Lが動作を開始し、レジスタ値の調整を行う。このとき、電源装置14Lは常時デジタルシステム本体1L内の各部に電源を供給し続けるが、同時に調整回路6Lからの電源制御信号98に従って出力側の電源電圧を変化させる。調整が終了したら、切換スイッチ30の操作で、デジタルシステム本体1Lの出力を出力端子33側に切り替える。なお、この例では、デジタルシステム本体1Lが誤りなく動作するレジスタ値が得られない場合に警告表示をする発光素子31が設けられている。
【0125】
かかる変形例によれば、製造時のデジタルシステム1の調整だけでなく、ユーザがデジタルシステム1を組み込んだ製品を購入した後、ユーザ自身がデジタルシステム1の調整を随時行うこともできる。また、デジタルシステム1を製造したのち、調整を業となすものがデジタルシステム1をさらに調整することもできる。また、デジタルシステム1Lが置かれた環境の温度その他が変化した場合等に、デジタルシステム本体1L内のクロックタイミングやデータパスのタイミングに変化が生じても、その変化を補償することができ、デジタルシステム本体1Lの誤動作の確率を低減できるというメリットがある。特に、電源電圧が変化した場合はクロックタイミングやデータパスのタイミングが変化するがそれを補償することも同様に可能であり、さらに、消費電力の低減のために意図的に電源電圧を低下させた場合でも、同様にクロックタイミングやデータパスのタイミングの変化を補償することが可能である。なお、切換スイッチ30は手動に限らず、電源投入時に自動切換するように構成することもできる。またクロック信号9は、デジタルシステム1内にクロック発生回路が設置されている場合には、そのクロック信号を用いてもよい。
【0126】
次に、本発明のデジタルシステムの第2実施例について説明する。本実施例は、メモリテストパターンジェネレータ回路に対して本発明の方法を適用した場合の一構成例である。
図29は、メモリテストパターンの発生を基本的機能とする、本発明のデジタルシステムの第2実施例としてのメモリテストパターンジェネレータ回路1Gを示す構成図であり、図1のデジタルシステム1の部分に対応し、これ以外の装置は図1と同じものを用いる。
ここでは、調整装置6、デジタル信号観測装置7、デジタルテスト信号発生装置8、および電源装置14は外部装置である。また、図1に示すものと同様の回路にはそれと同一の符合を付している。
【0127】
調整されるフリップフロップ2は通常のDフリップフロップであり、調整されないフリップフロップ3も同様に通常のDフリップフロップである。調整されないフリップフロップ3のクロック端子には直接クロック線が接続されるが、調整されるフリップフロップ2のクロック端子とクロック線の間には、調整可能な遅延素子4が挿入されている。
【0128】
調整可能な遅延素子4には、その遅延素子4の遅延時間を制御するレジスタ5が接続されている。ここでレジスタ5を4ビットとすれば、調整可能な遅延素子4は、図16のように構成することができる。
さらに、遅延時間の最小単位DTを50psとすれば、調整可能な遅延素子4はレジスタ5の値に従って0psから750psまでの遅延を発生させることができる。
レジスタ5は、4ビット幅を有する場合には、通常のDフリップフロップ4つで構成できる。レジスタ5には、4ビット分の遅延値設定信号と、4ビット共通の設定指示信号が入力される。
【0129】
遅延設定信号(遅延値設定線)93は、このレジスタ5の4ビット分の遅延値設定信号と共通の設定信号とを全レジスタ分集めたものである。また、デジタルシステム内部状態信号12は、調整されるフリップフロップ2の出力全てを集めたものである。
【0130】
デコーダ回路20A1は、入力される信号にデコード処理を施すものであり、組合せ回路として構成される(フリップフロップなどの記憶素子は含まない)。
ALU回路20A2は、2系統各4ビットの入力信号と4ビットの演算指定信号を入力し、2系統の入力信号間に演算指定信号に従った演算を施して、演算結果を4ビットの出力データとして出力する組合せ回路である。
インバータ回路20A3は、外部からの指定により、入力信号を反転、もしくは、非反転で出力する機能を有し、組合せ回路として構成されている。
【0131】
PLL回路94は、クロック信号9の入力端子と調整されるフリップフロップ2に接続される調整可能な遅延素子4との間に接続され、調整されるフリップフロップ2に供給する、同一周波数で、かつ、タイミングが400psだけ進んだクロック信号を生成する。
上述の通り、調整可能な遅延素子4は0psから750psまでの遅延を発生させることができるため、両者合わせて−400psから350psまでの遅延、つまり、400ps進んだ状態から350ps遅れた状態までのクロックを各調整されるフリップフロップ2に供給することができる。
【0132】
従ってこの場合、調整されるフリップフロップ2のクロックタイミングも、レジスタ5に設定される値によって−400psから350psまで変化する。例えば、レジスタ5に1011が設定された場合には、対応する調整されるフリップフロップ2のクロックタイミングは、外部から供給されるクロック信号9に対して150ps遅れる。
【0133】
調整されないフリップフロップ3のクロック端子には、クロック信号9が直接供給され、調整されないフリップフロップ3は、クロック信号9と同じタイミングで動作する。
【0134】
本実施例の回路は、ALU回路20A2の一方の入力が、調整されるフリップフロップ2をはさんでフィードバックされており、単純なパイプライン構造ではない。
【0135】
本実施例では、デジタルシステム1の外部端子に接続されるフリップフロップを全て調整されないフリップフロップ3とし、それ以外を調整されるフリップフロップ2としたが、本発明としては必ずしもこの通りでなくともよい。
また、同様に、デジタルシステム内部状態信号12を調整されるフリップフロップ2の出力のみから構成しているが、これも必ずしもこの通りでなくともよい。
【0136】
本実施例に登場する各素子の特性値が必ずしも正確なものでなくとも、本発明の方式は適用可能であり、有効である。
【0137】
本実施例は、高速なメモリ素子のテストに用いられるようなメモリテストパターンジェネレータ回路に適用する場合に特に好適である。
さらに、本実施例で取り上げた回路の出力は4ビットであるが、よりビット数の多い出力を持つメモリテストパターンジェネレータ回路の場合、調整箇所が増え、かつ、フリップフロップ間の遅延時間の依存関係が複雑になって、組合せ爆発が起きやすいので、本発明は特に好適である。
【0138】
以下に、図29に示す本実施例のメモリテストパターンジェネレータ回路1Gに適用される、本発明の第2実施例の調整方法を述べる。
このメモリテストパターンジェネレータ回路1Gの性能は、複数の調整可能な遅延素子4A1〜4A14の遅延値を引数とする評価関数Fで表すことができる。メモリテストパターンジェネレータ回路1Gが誤りなく動作することは、評価関数Fを最適にする遅延値を求めることと等価である。
【0139】
本実施例では、調整される遅延素子4の数が14個(4A1〜4A14)と多く、組合せ爆発の発生が想定される場合であるので、調整装置6は、評価関数Fを用い、遺伝的アルゴリズムに従ってレジスタ5の値を変更する。
【0140】
遅延素子4の調整は、第1実施例の場合と同様、図19および図22に示すフローチャートに従って行われる。本実施例は、遺伝的アルゴリズムの染色体として、レジスタ5の値を直接用いることを大きな特徴とする。これにより、染色体の情報をレジスタ値に変換するための処理等が不要になる。
【0141】
すなわち、本実施例における染色体は、図23に示すように、14個の遅延素子に対応する14個のレジスタ5のレジスタ値から構成されている。そして各素子パラメータに対応する各レジスタ5は、4ビットである。それゆえ、レジスタ長(=染色体長)は、56ビットである。従って、上記実施例のメモリテストパターンジェネレータ回路1Gにおける調整探索空間の大きさは、2^56≒10^17(10の17乗)であり、全探索による調整はいうまでもなく不可能である。
【0142】
図16に示す遅延素子4において本実施例では、DTの値を50psとした。なお、この値は、クロックタイミングのバラツキに応じて定める。例えば、図23中のレジスタ値1011では、スイッチ回路Sw4、Sw2およびSw1がONとなって、遅延素子UD4、UD2およびUD1がクロック信号線に接続され、この結果として、レジスタ値1011に対応する遅延は、8×50+2×50+50−400=150psとなる。
同様に、レジスタ値0101に対応する遅延は4×50+50−400=−150psとなり、レジスタ値0001に対応する遅延は−350psとなる。
【0143】
図22の処理で使用する、遺伝的アルゴリズムの個体の評価関数Fとしては、個体の染色体が表現するレジスタ値でメモリテストパターンジェネレータ回路1Gを設定したのち動作させ、デジタル信号観測装置7によって観測された出力が期待値にどのくらい近いかを表す関数を用いる。具体的には、以下の評価関数Fで計算される値を、遺伝的アルゴリズムの適応度(fitness)に用いる。
【数1】
fitness=F=NC/NT
【0144】
ここでNTは、デジタルテスト信号10の系列に対するメモリテストパターンジェネレータ回路1Gの出力数、NCは該メモリテストパターンジェネレータ回路出力のうち期待どおりのデジタル値を出力した回数である。上記の評価関数Fは、0から1までの実数値をとり、1の値をとったときに調整対象のメモリテストパターンジェネレータ回路1Gは誤りなく動作したことになる。例えば、ある染色体が表現するレジスタ値で設定したデジタルシステム1の出力系列のうちNCが253、NTが500であったとすると、その場合の評価関数Fの値は、0.506になる。
【0145】
図22に示す処理で用いるために、先に図19のステップS1で遺伝的アルゴリズムの初期集団として、一様乱数を用いて個体を複数作成する。つまりこの場合には、初期集団の各染色体の各遺伝子の値は確率0.5で1の値を、確率0.5で0値をとることを意味する。本実施例では、集団の個体数は50とした。
【0146】
しかる後、各個体の表現するレジスタ値でメモリテストパターンジェネレータ回路1Gを動作させ、ステップS3における観測装置5での観測結果を使用して、ステップS4において調整装置6で、上記評価関数により適応度を計算する。その後、順次に、ステップS21で選択、ステップS22で交叉、ステップS23で突然変異の処理を行ない、次世代の個体の集団(解の候補の集団)を作り出す。本実施例では、全個体数のうちの交叉を行う個体数の割合である交叉率は0.5とし、突然変異率は0.0125を用いた。
【0147】
ステップS4では、メモリテストパターンジェネレータ回路1Gが誤りなく動作するかどうかが判断され、誤りなく動作したときに、良品処理を行い調整処理は終了する。また、一定世代数繰り返して調整処理をおこなっても、仕様を満たす染色体(レジスタ値)が得られない場合は、調整対象のメモリテストパターンジェネレータ回路1Gは不良品と判断され、ステップS8で不良品としての処理を行う。なお、本実施例では、繰り返しを打ち切る世代数は20とした。
【0148】
以下に、図29に示すメモリテストパターンジェネレータ回路1Gに本実施例の遺伝的アルゴリズムを用いた調整方法を適用した場合の実験結果について示す。この実験では、CMOSテクノロジを用いたLSIチップで回路を作製した。
【0149】
上記実験の結果、クロック周波数が1.0Ghz,1.25Ghz,1.4Ghzでかつ電源電圧を仕様の1.2Vから0.8Vに低下させた時に、調整をしない場合は誤って動作していたLSIチップが、遺伝的アルゴリズムゴリズムを用いた方法で調整を行ったところ、誤りなく動作することが確認できた。図30に、実験中の世代中の最良個体の評価関数Fの値である適応度(ある試行に関する値)と世代数との関係を示す(図中縦軸は適応度の100倍の値を示している)。遺伝的アルゴリズムの世代が進むにつれて、適応度の値が上昇しタイミングが調整されていることがわかる。この実験により、本実施例の調整方法の有効性が確認できた。
なお、本実施例では、通常の集積回路上にメモリテストパターンジェネレータ回路を実装したが、FPGAやCPLD等の再構成可能な集積回路を用いて実装することもできる。この場合、遅延調整素子を通常の論理回路の一部として実装しても、また、遅延調整素子を中に作りこんだFPGAやCPLD等の再構成可能な集積回路を開発してそれを用いて実装してもよい。
【0150】
上述したように、本実施例のメモリテストパターンジェネレータ回路1Gでは、フリップフロップ素子へのクロック信号線に遅延素子4A1〜4A14を挿入し、それらの遅延素子3の遅延時間をメモリテストパターンジェネレータ回路1Gが電源電圧を仕様の(通常の)電圧よりも低下させた状態でも誤りなく動作するように探索する。従って、本実施例によれば、集積回路製造工程におけるクロック信号線の品質の不均一、設計上の誤差等に起因するクロックタイミングの誤差および、電源電圧の低下に基づく回路内の各論理素子の動作速度の低下を吸収して、メモリテストパターンジェネレータ回路1Gを誤りなく動作するように調整することができ、このことは、従来技術による場合より少ない設計労力で、従来技術による場合より高速でかつ消費電力の少ないデジタルシステムが得られることを意味する。
【0151】
また同時に、本実施例によれば、集積回路製造工程におけるクロック信号線の品質の不均一、設計上の誤差等に起因するクロックタイミングの誤差を、電源電圧の若干の上昇により吸収して、メモリテストパターンジェネレータ回路1Gを誤りなく動作するように調整することができ、このことは、従来技術による場合より少ない設計労力で、従来技術による場合より高速でかつ動作歩留の高いデジタルシステムが得られることを意味する。
【0152】
本実施例に関しては、以下の変形例を実施できる。
メモリテストパターンジェネレータ回路1Gの調整を行う際にデジタル信号観測装置7の出力以外に、メモリテストパターンジェネレータ回路1Gの消費電流量や発熱量も観測して評価関数に組み込むことができる。一般的にLSIの発熱量や消費電流量はLSI内部のフリップフロップへ入力されるクロックタイミングによって変動するので、このようにすれば、多様な要求仕様に対応でき、調整精度を向上させることができる。
【0153】
図31に上記の場合の構成例を示す。図31中、符号13は温度計、14は電源である。なお、図31中、図1に示すものと同様の部分はそれと同一の符合を付している。ここで、温度計13は、メモリテストパターンジェネレータ回路1GのLSIの温度を計測し、その値をA/D変換して、調整装置6に伝える。電源装置14Aは、メモリテストパターンジェネレータ回路1Gに電源供給99を行う装置であるが、その電流供給値をA/D変換して調整装置6に伝える。調整装置6は、デジタルテスト信号発生装置8がテスト信号10を出力している間に、温度および消費電流量を監視して、その間の平均温度および平均消費電流量を計算し、さらに電源制御信号98を電源装置14Aに与える。
【0154】
本変形例では、例えば、次のような評価関数を用いることができる。
【数2】
fitness=NC/NT (NC/NT<1の場合)
fitness=1+1/(1.0+w1|T−Tm|+w2|I−Im|)
(NC/NT=1の場合)
【0155】
ここで、fitnessは遺伝的アルゴリズムにおける適応度、Tは計測した平均温度、Iは計測した平均消費電流量、Tmは理想的な平均温度、Imは理想的な平均消費電流量、w1、w2は加重係数である。この評価関数では、メモリテストパターンジェネレータ回路1Gが誤動作しなくなるまで調整を行い、誤動作しなくなった後、さらに平均消費電流量、平均温度を理想的な値に近づけるように調整を行う。
そしてその後、先の実施例と同様、メモリテストパターンジェネレータ回路1Gが誤動作しない範囲で電源電圧を引き下げるように調整を行う。
なお、この発明においては、さらに調整精度を高めるために、消費電流量観測中におけるピーク値を上記評価関数に組み込んでもよい。
【0156】
次に、この発明のデジタルシステムの第3実施例としてのデジタル回路基板の一構成例を示す。図32は、この第3実施例のデジタル回路基板の構成を示し、図32中、1Bはデジタル回路基板であり、この実施例のシステムは、第1実施例におけるデジタルシステム1の代わりに、そのデジタルシステム1と同様の基本的機能を奏するデジタル回路基板1Bを用いて構成されている。なお、図1に示すと同様の構成要素にはそれと同一の符合を付している。
【0157】
このデジタル回路基板1B内には、クロック信号9が入力されるLSI1L1〜1L10およびクロック信号を入力されない電子部品16が複数個実装されている。また、それらのLSIおよび電子部品は、図示しないデータ信号線で互いに接続されている。4B1〜4B10は遅延時間を調整可能な遅延素子であり、各々、レジスタ5B1〜5B10の示す値に応じてその遅延時間が調整される。本実施例では、その調整箇所は10カ所である。また、符号15は外部装置である電磁波測定装置である。
【0158】
デジタル回路基板においては、基板上のクロック信号線内のインピーダンス不整合、浮遊容量等によりクロック信号が各LSI1L1〜1L10に入力されるタイミングが不均一になることに起因して、誤動作を生じるLSIが存在し、デジタル回路基板の出力11が期待値にならない場合が多い。さらに、デジタル回路基板の消費電力を抑えるために低い電源電圧で動作させる場合には、デジタル回路基板を構成する各論理素子の動作速度が遅くなりタイミングを正しく保つことがより困難になる。
それゆえ、誤動作対策としては、各LSIへのクロック信号のタイミングを調整するのが有効であるが、LSI1L1〜LSI1L10のデータ信号は互いに依存関係をもっているので、遅延素子4B1から4B10までの調整箇所を総合的に調整する必要がある。
【0159】
また、デジタル回路基板においては、基板上を高い周波数の高調波成分を含んだデジタル信号電流が流れるので、基板から放射される電磁ノイズのパワーが大きい。そのため、EMIノイズとして、人体や近傍にある他の電子装置に影響を与える。この放射ノイズは、各LSIへの入力クロックタイミングを微小にずらすことにより、そのパワーのピーク値を下げることができる。よって、上記放射ノイズを観測しクロックタイミングを調整することで、その放射ノイズによる外部への影響を低減することができる。さらに、デジタル回路基板を低い電源電圧で駆動することは、基板から放射される電磁ノイズの総パワーを低減することができ、EMI対策として有効である。
【0160】
上記電磁波測定装置15は、基板から放射される電磁波のパワーを計測し、その値をA/D変換して、調整装置6に伝える。調整装置6では、デジタルテスト信号発生装置8がテスト信号を出力している間に、電磁波パワーを監視して、その間のピーク値を算出する。
【0161】
上記デジタル回路基板1Bの調整のための、本発明の調整方法の第3実施例について説明する。この実施例の調整方法も、基本的には先の第1実施例の調整方法と同様である。
【0162】
デジタル回路基板1Bが製造された後、検査工程で、図32に示すように、調整装置6、デジタル信号観測装置7、デジタルテスト信号発生装置8、電源装置14および電磁波測定装置15がそのデジタル回路基板1Bにそれぞれ接続される。電源装置14は、デジタル回路基板1Bに電源を供給する。デジタルテスト信号発生装置8は、デジタル回路基板1Bにテスト信号10およびクロック信号9を入力する。デジタル信号観測装置7はデジタル回路基板1Bの出力値を観測し、電磁波測定装置15はデジタル回路基板1Bの放射ノイズを観測して、それぞれ調整装置6に与え、調整装置6は、例えば下記に示す評価関数を用いて評価を行う。
【数3】
fitness=NC/NT (NC/NT<1の場合)
fitness=1+1/(1.0+|P|) (NC/NT=1の場合)
【0163】
ここで、fitnessは遺伝的アルゴリズムにおける適応度、Pは計測した電磁波のピークパワーである。この評価関数では、デジタル回路基板1Bが誤動作しなくなるまで調整を行い、誤動作しなくなった後、さらに放射ノイズのパワーのピーク値をなるべく低減するように調整を行う。あるいは、電源装置14がデジタル回路基板1Bに供給する電源電圧を評価関数に加えて、できるだけ低い電源電圧で動作するとともに電磁波のピークパワーPが低くなるように調整することも可能である。この場合、まず、電源電圧を先に考慮して、デジタル回路基板1Bが動作する最も低い電源電圧に電源装置14の出力を設定した後に上記[数3]の評価関数に基づいて電磁波のピークパワーPが低くなるように調整することも可能であり、あるいは、Pとして電磁波のピークパワーと電源装置14が出力する各電源電圧の加重平均を取って調整を行うことも可能である。
【0164】
ここにおける染色体とレジスタ値とは、第1実施例の方法の場合と同様に一対一で対応している。すなわち、図23に示すと同様に、染色体は、上記実施例の10カ所の調整箇所に対応する10個のレジスタ5のレジスタ値から構成されている。そして各調整箇所に対応する各レジスタ5は、ここでは4ビットのものとされている。それゆえ、染色体長は、40ビットである。従って、上記実施例のデジタル回路基板1Bの調整探索空間の大きさは、2^40≒10^12(10の12乗)であり、全探索による調整はいうまでもなく不可能である。
【0165】
本実施例の方法によれば、デジタル回路基板1B内のクロック信号9上に複数の調整可能な遅延素子4B1〜4B10を使用し、それらの遅延値を、デジタル回路基板1Bの出力が誤動作をしないように調整するので、デジタル回路基板製造工程におけるクロック信号線のプロセスの不均一や設計上の誤差等に起因するクロックタイミングのずれを吸収して、デジタル回路基板1Bが誤動作しないように調整することができる。
また、本実施例では、デジタル回路基板1Bから電磁波として放射される放射ノイズをも考慮にいれた調整を行えるので、デジタル回路基板1Bの周囲に人体や他の電子装置が存在する場合に特に好適である。
【0166】
なお、本実施例においては基板上に実装されるLSIを10個としたが、本発明においては、いうまでもなくLSIの個数を問わない。また、回路基板の周囲に人体や他の電子装置が存在しない場合など、放射ノイズのパワーの大小を問わないときには、上記評価関数でPの値を考慮しなくてもよいのはいうまでもない。
【0167】
本実施例の方法は、クロック周波数が高い場合に特に好適である。なぜなら、クロック周波数が高い場合、クロック信号のタイミング調整がより困難になり、なおかつ、電磁放射ノイズの高周波成分のパワーがより強くなるからである。
【0168】
上述した第1〜第3実施例では、レジスタ5の初期設定値の取り方、および初期設定値からレジスタ値を変更する方法については遺伝的アルゴリズムを用いた。しかしながら、クロックの信号線が木構造をなしている場合には、遺伝的プログラミングとよばれるアルゴリズムを遺伝的アルゴリズムの代わりに用いることもできる。
【0169】
遺伝的プログラミングの詳細は、例えば、MIT Pressが1992年に出版した、J.Koza著の「Genetic Programming」を参照されたい。遺伝的プログラミングは、遺伝的アルゴリズムに木構造の染色体を扱えるような工夫を加えたものである。
【0170】
次に述べる本発明の第4実施例のデジタルシステムおよびその調整方法では、図33に示すシステム構成において、調整装置6で、この遺伝的プログラミングにしたがってレジスタ5の値を変更する。本実施例では特に、遺伝的プログラミングの染色体として、クロック信号線の木構造をそのまま遺伝的プログラミングの染色体構造に写像することを大きな特徴とする。このようにすれば、第1実施例と同様に、染色体の情報をレジスタ値に変換するための回路等を不要とすることができる。
【0171】
図33に示すデジタルシステム1Tは、デジタルシステム1と同様の基本的機能を奏するが、このデジタルシステム1Tにおいては、クロック信号9Tがデジタルシステム1Tに入力され、それが木構造状に分岐して、デジタルサブシステム1TS1〜1TS6に入力される。それらのデジタルサブシステム内では、上記クロック信号がすべてのフリップフロップにクロック信号として与えられる。クロック信号線の各分岐には遅延素子4T1〜4T5が挿入されており、それぞれの遅延値は対応するレジスタ値5RT1〜5RT5に応じて変更可能である。なお、各デジタルサブシステム同士は、図示しないデータラインによって接続されている。
【0172】
次に、遺伝的プログラミングに従った本発明の第4実施例の調整方法を述べる。この調整方法でも、第1実施例と同様に図19のフローチャートに従う。また、遺伝的プログラミングの処理手順は図22に示したフローチャートと同じであり、染色体の表現方法、交叉方法のみが異なる。
【0173】
遺伝的プログラミングの染色体としては、図34に示す木構造を用いる。つまり、図33に示したクロック信号線の接続状態をそのまま表現した木構造を用い、染色体のノードCS1〜CS5のそれぞれのビット列が各レジスタ5RT1〜5RT5の値に対応する。図34では、各レジスタ長を3として説明したが、いうまでもなく任意のビット数の場合に本調整方法は適用できる。
【0174】
図22の処理で使用する、遺伝的プログラミングの個体の評価関数Fとしては、個体の染色体が表現するレジスタ値でデジタルシステム1Tを設定したのち動作させ、デジタル信号観測装置7によって観測されたデジタル出力が期待値にどのくらい近いかを表す関数を用いる。
【0175】
図22に示す処理で用いるために、先に図19のステップS1で遺伝的プログラミングの初期集団として、一様乱数を用いて個体を複数作成する。つまりこの場合には、初期集団の各染色体の各遺伝子の値は確率0.5で1の値を、確率0.5で0の値をとることを意味する。但し、クロックタイミングの不均一さの傾向について何らかの予備知識が存在する場合には、より適応度が高いと思われる個体を初期集団として作成することができる。
【0176】
初期集団のそれぞれの個体は、デジタル信号観測装置7から送られてきた観測値(ステップS3)から、調整装置6により上記評価関数を用いて適応度を計算する。その際に、デジタルシステム1Tの性能が誤りなく動作するか否かをステップS4で判定し、誤りなく動作をする場合には、ステップS9で良品処理を行った後、調整処理は終了する。
【0177】
初期集団すべての個体において、ステップS9の良品処理が行われなかった場合、ステップS21〜S30の遺伝的処理に進む。ステップS26もしくはステップS29の適応度算出処理時に、デジタルシステム1Tの性能が誤りなく動作したと判断された場合にも、ステップS9で良品処理を行った後、調整処理は終了する。なお、ステップS21〜S30を一定世代数繰り返し調整処理をおこなっても、誤りなく動作する染色体(レジスタ値)が得られない場合には、調整対象のデジタルシステム1Tは不良品と判断され、図19のステップS8で不良品としての処理を行う。
【0178】
遺伝的プログラミングの遺伝的処理においては、実施例1の場合と同様に図22のフローチャートに示す方法を用いる。
【0179】
ステップS22の交叉処理では、図35の説明図に示す方法を用いる。これは染色体の木構造をランダムな位置で部分的に入れ替える操作であり、遺伝的プログラミング固有の操作である。図35では、TR1およびTR2がステップS21の選択処理の結果選ばれた親A、Bの染色体であり、ここにおける交叉処理では、これらの染色体を、ランダムに選んだ交叉位置CPで切断する。そして、切断した部分的な遺伝子型を入れ替えることによって、染色体TR3よびTR4をそれぞれ持つ子A’、子B’を生成する。この方法を用いることにより、調整のために有効な染色体の部分情報を破壊することなく交叉を行うことができる。
【0180】
ステップS22での交叉にひき続いて実行するステップS23の突然変異は、各染色体の遺伝子の各ビットを、突然変異率の生起確率で、0を1、あるいは1を0に変更する操作である。図36に突然変異の例を示す。この図36では、染色体TR5の、四角で囲んで示す遺伝子に突然変異が生じ、それぞれが染色体TR6において対立遺伝子に変更されている。
【0181】
一般的な遺伝的プログラミングでは、交叉、突然変異のほかに、木構造を挿入、削除する遺伝的操作も行われる。しかしながら、それらの操作は染色体長を変化させるので、それらの操作を使用すると染色体情報を直接レジスタ5の値に変換できなくなるため、本実施例では用いない。
【0182】
本実施例によれば、上記の遺伝的プログラミングにより、クロック信号線が木構造をなしているときに、調整を効率的に行うことができる。
【0183】
本発明は、いうまでもなく、デジタルシステムを用いる装置の全体、一部、あるいは複数の部分の何れにも適用可能であり、デジタルシステムの規模を問わない。
【0184】
また、本発明の方法による調整は、調整可能な遅延素子4の遅延値の精度が低く、単調性が保証されないものであっても、ほとんど支障がない。それゆえ、本発明で用いる遅延素子は、半導体基板上で従来よりも小さい面積で作製することができる。
【0185】
以上、図示例に基づき説明したが、この発明は上述の例に限定されるものでなく、特許請求の範囲の記載の範囲内で当業者が容易に改変し得る他の構成をも含むものである。
【図面の簡単な説明】
【0186】
【図1】一般的なデジタルシステムに適用した本発明のデジタルシステムの第1実施例を模式的に示す構成図である。
【図2】デジタルシステムの電源電圧と動作遅れとの関係を示す説明図である。
【図3】デジタルシステムにおける遅延素子の遅延設定値調整の影響を示す説明図である。
【図4】上記実施例における調整装置の一構成例を示す構成図である。
【図5】上記実施例におけるデジタル信号観測装置の一構成例を示す構成図である。
【図6】上記実施例におけるデジタルテスト信号発生装置の一構成例を示す構成図である。
【図7】上記実施例における電源装置の一構成例を示す構成図である。
【図8】上記実施例に用い得る調整可能な遅延素子の一構成例を示す回路図である。
【図9】図8に示す回路でのNOT素子への入力信号およびNOT素子からの出力信号の波形を示す説明図である。
【図10】上記実施例に用い得る遅延素子の他の一構成例を示す回路図である。
【図11】上記実施例に用い得る遅延素子のさらに他の一構成例を示す回路図である。
【図12】上記実施例に用い得る遅延素子のさらに他の一構成例を示す回路図である。
【図13】上記実施例に用い得る遅延素子のさらに他の一構成例を示す回路図である。
【図14】上記実施例に用い得る遅延素子のさらに他の一構成例を示す回路図である。
【図15】上記実施例に用い得て正負の遅延を発生させる調整可能な遅延回路の一構成例を示す構成図である。
【図16】図15に示す回路での調整可能な遅延素子の一構成例を示す構成図である。
【図17】上記実施例における調整可能な遅延素子とレジスタの最下位ビットとを含んだ構成の一例を示す回路図である。
【図18】上記実施例における調整可能な遅延素子とレジスタの最下位ビットとを含んだ構成の他の一例を示す回路図である。
【図19】本発明のデジタルシステムのクロック信号調整方法の第1実施例の処理手順の概略を示すフローチャートである。
【図20】一般的な遺伝的アルゴリズムの手順の概略を示すフローチャートである。
【図21】遺伝的アルゴリズムで用いる染色体を例示する説明図である。
【図22】上記実施例の方法における遺伝的アルゴリズムを用いた調整装置の処理手順を示すフローチャートである。
【図23】上記実施例の方法における遺伝的アルゴリズムで用いる染色体とそこから定まるレジスタ値および遅延値とを示す説明図である。
【図24】上記実施例の方法における遺伝的アルゴリズムで行う選択淘汰処理の手順を示すフローチャートである。
【図25】上記実施例の方法における遺伝的アルゴリズムで行う交叉処理の手順を示す説明図である。
【図26】上記実施例の方法における遺伝的アルゴリズムで行う突然変異処理の手順を示す説明図である。
【図27】上記実施例の方法において電源電圧を段階的に低下させながら調整を行う場合の処理手順を示すフローチャートである。
【図28】上記実施例の一変形例を模式的に示す構成図である。
【図29】本発明のデジタルシステムの第2実施例としてのメモリテストパターンジェネレータ回路を模式的に示す構成図である。
【図30】上記実施例での実験中の適応度と世代数との関係を示す説明図である。
【図31】上記実施例の一変形例を模式的に示す構成図である。
【図32】本発明のデジタルシステムの第3実施例としてのデジタル回路基板を模式的に示す構成図である。
【図33】本発明のデジタルシステムの第4実施例を模式的に示す構成図である。
【図34】上記実施例の方法における遺伝的プログラミングで用いる染色体とそこから定まるレジスタ値および遅延値とを示す説明図である。
【図35】上記実施例の方法における遺伝的プログラミングで行う交叉処理の手順を示す説明図である。
【図36】上記実施例の方法における遺伝的プログラミングで行う突然変異処理の手順を示す説明図である。
【符号の説明】
【0187】
1 デジタルシステム
2 調整されるフリップフロップ
3 調整されないフリップフロップ
4 調整可能な遅延素子
5 レジスタ
6 調整装置
7 デジタル信号観測装置
8 デジタルテスト信号発生装置
9 クロック信号
10 テスト信号
11 デジタル出力信号
12 デジタルシステム内部状態信号
14 電源装置
93 遅延設定信号
98 電源制御信号
99 電源供給(線)

Claims (29)

  1. 単一もしくは複数のクロック信号に従いデジタル処理を行って所定の基本的機能を奏するデジタルシステムにおいて、
    前記デジタルシステム内の、前記クロック信号を供給する複数のクロック回路にそれぞれ介挿されるとともに、制御信号が示す値に応じて遅延時間を変化させる回路素子で各々構成された複数の遅延素子と、
    前記複数の遅延素子に与える複数の制御信号を保持する複数の保持回路と、
    を具え、
    前記複数の保持回路が、前記デジタルシステムが出力電圧可変の電源装置からそのデジタルシステムの設計電源電圧に対して変化した出力電圧を供給された状態で、それらの保持回路が保持する前記複数の制御信号の値を外部装置により、前記デジタルシステムの基本的機能が所定の仕様を満たすように確率的探索手法に従って変更され、
    前記保持回路が保持する前記複数の制御信号の値が、前記デジタルシステムの基本的機能が所定の仕様を満たすように変更された場合の、前記設計電源電圧に対して変化した出力電圧に等しい電源電圧を供給されて、前記デジタルシステムが作動するものであることを特徴とする、デジタルシステム。
  2. 前記保持回路が保持する制御信号の値は、前記外部装置が、遺伝的アルゴリズムに従って前記制御信号の値を順次に変更して探索した、前記デジタルシステムの基本的機能が所定の仕様を満たす状態となる最適値に変更されることを特徴とする、請求項1記載のデジタルシステム。
  3. 前記保持回路が保持する制御信号の値は、前記外部装置が、遺伝的プログラミングに従って前記制御信号の値を順次に変更して探索した、前記デジタルシステムの基本的機能が所定の仕様を満たす状態となる最適値に変更されることを特徴とする、請求項1記載のデジタルシステム。
  4. 前記外部装置による前記複数の制御信号の変更は、前記電源装置の出力電圧を段階的に変化させながら行われることを特徴とする、請求項1から3までの何れか記載のデジタルシステム。
  5. 前記外部装置による前記複数の制御信号の変更は、前記電源装置の出力電圧が前記デジタルシステムの設計電源電圧よりも低い状態で行われることを特徴とする、請求項1から3までの何れか記載のデジタルシステム。
  6. 単一もしくは複数のクロック信号に従いデジタル処理を行って所定の基本的機能を奏するデジタルシステムにおいて、
    前記デジタルシステム内の、前記クロック信号を供給する複数のクロック回路にそれぞれ介挿されるとともに、制御信号が示す値に応じて遅延時間を変化させる回路素子で各々構成された複数の遅延素子と、
    前記複数の遅延素子に与える複数の制御信号を保持する複数の保持回路と、
    前記デジタルシステムが出力電圧可変の電源装置からそのデジタルシステムの設計電源電圧に対して変化した出力電圧を供給された状態で、前記複数の保持回路が保持する前記複数の制御信号の値を、前記デジタルシステムの基本的機能が所定の仕様を満たすように確率的探索手法に従って変更する設定手段と、
    を具え
    前記保持回路が保持する前記複数の制御信号の値が、前記デジタルシステムの基本的機能が所定の仕様を満たすように変更された場合の、前記設計電源電圧に対して変化した出力電圧に等しい電源電圧を供給されて、前記デジタルシステムが作動することを特徴とする、デジタルシステム。
  7. 前記設定手段は、遺伝的アルゴリズムに従って前記制御信号の値を順次に変更し、前記デジタルシステムの基本的機能が所定の仕様を満たす状態となる制御信号の最適値を探索するものであることを特徴とする、請求項6記載のデジタルシステム。
  8. 前記設定手段は、遺伝的プログラミングに従って前記制御信号の値を順次に変更し、前記デジタルシステムの基本的機能が所定の仕様を満たす状態となる制御信号の最適値を探索するものであることを特徴とする、請求項6記載のデジタルシステム。
  9. 前記設定手段による前記複数の制御信号の変更は、前記電源装置の出力電圧を段階的に変化させながら行われることを特徴とする、請求項6から8までの何れか記載のデジタルシステム。
  10. 前記設定手段による前記複数の制御信号の変更は、前記電源装置の出力電圧が前記デジタルシステムの設計電源電圧よりも低い状態で行われることを特徴とする、請求項6から8までの何れか記載のデジタルシステム。
  11. 前記デジタルシステムは、前記電源装置を具えていることを特徴とする、請求項1から10までの何れか記載のデジタルシステム。
  12. 前記デジタルシステムは、集積回路として構成されていることを特徴とする、請求項1から10までの何れか記載のデジタルシステム。
  13. 前記デジタルシステムは、回路基板として構成されていることを特徴とする、請求項1から10までの何れか記載のデジタルシステム。
  14. 単一もしくは複数のクロック信号に従いデジタル処理を行って所定の基本的機能を奏するデジタルシステムの前記クロック信号のタイミングを調整する方法において、
    前記デジタルシステム内の、前記クロック信号を供給する複数のクロック回路に、複数の遅延素子をそれぞれ介挿し、
    前記複数の遅延素子を各々、制御信号が示す値に応じて遅延時間を変化させる回路素子で構成し、
    前記複数の遅延素子に与える複数の制御信号を、前記デジタルシステムに設けた複数の保持回路で保持するとともに、
    出力電圧可変の電源装置から前記デジタルシステムにそのデジタルシステムの設計電源電圧に対して変化した出力電圧を供給した状態で、外部装置により、前記複数の保持回路が保持する前記複数の制御信号の値を、前記デジタルシステムの基本的機能が所定の仕様を満たすように確率的探索手法に従って変更し、
    前記保持回路が保持する前記複数の制御信号の値が、前記デジタルシステムの基本的機能が所定の仕様を満たすように変更された場合の、前記設計電源電圧に対して変化した出力電圧に等しい電源電圧を供給して、前記デジタルシステムを作動させることを特徴とする、デジタルシステムのクロック信号調整方法。
  15. 前記外部装置は、遺伝的アルゴリズムに従って前記制御信号の値を順次に変更し、前記デジタルシステムの基本的機能が所定の仕様を満たす状態となる制御信号の最適値を探索することを特徴とする、請求項14記載のデジタルシステムのクロック信号調整方法。
  16. 前記外部装置は、遺伝的プログラミングに従って前記制御信号の値を順次に変更し、前記デジタルシステムの基本的機能が所定の仕様を満たす状態となる制御信号の最適値を探索することを特徴とする、請求項14記載のデジタルシステムのクロック信号調整方法。
  17. 前記外部装置による前記複数の制御信号の変更は、前記電源装置の出力電圧を段階的に変化させながら行うことを特徴とする、請求項14から16までの何れか記載のデジタルシステムのクロック信号調整方法。
  18. 前記外部装置による前記複数の制御信号の変更は、前記電源装置の出力電圧が前記デジタルシステムの設計電源電圧値よりも低い状態で行われることを特徴とする、請求項14から16までの何れか記載のデジタルシステムのクロック信号調整方法。
  19. 単一もしくは複数のクロック信号に従いデジタル処理を行って所定の基本的機能を奏するデジタルシステムの前記クロック信号のタイミングを調整する方法において、
    前記デジタルシステム内の、前記クロック信号を供給する複数のクロック回路に、複数の遅延素子をそれぞれ介挿し、
    前記複数の遅延素子を各々、制御信号が示す値に応じて遅延時間を変化させる回路素子で構成し、
    前記複数の遅延素子に与える複数の制御信号を、前記デジタルシステムに設けた複数の保持回路で保持するとともに、
    出力電圧可変の電源装置から前記デジタルシステムにそのデジタルシステムの設計電源電圧に対して変化した出力電圧を供給した状態で、前記デジタルシステムに設けた設定手段により、前記複数の保持回路が保持する前記複数の制御信号の値を前記デジタルシステムの基本的機能が所定の仕様を満たすように確率的探索手法に従って変更し、
    前記保持回路が保持する前記複数の制御信号の値が、前記デジタルシステムの基本的機能が所定の仕様を満たすように変更された場合の、前記設計電源電圧に対して変化した出力電圧に等しい電源電圧を供給して、前記デジタルシステムを作動させることを特徴とする、デジタルシステムのクロック信号調整方法。
  20. 前記設定手段は、遺伝的アルゴリズムに従って前記制御信号の値を順次に変更し、前記デジタルシステムの基本的機能が所定の仕様を満たす状態となる制御信号の最適値を探索するものであることを特徴とする、請求項19記載のデジタルシステムのクロック信号調整方法。
  21. 前記設定手段は、遺伝的プログラミングに従って前記制御信号の値を順次に変更し、前記デジタルシステムの基本的機能が所定の仕様を満たす状態となる制御信号の最適値を探索するものであることを特徴とする、請求項19記載のデジタルシステムのクロック信号調整方法。
  22. 前記設定手段による前記複数の制御信号の変更は、前記電源装置の出力電圧を段階的に変化させながら行われることを特徴とする、請求項19から21までの何れか記載のデジタルシステムのクロック信号調整方法。
  23. 前記設定手段による前記複数の制御信号の変更は、前記電源装置の出力電圧が前記デジタルシステムの設計電源電圧よりも低い状態で行われることを特徴とする、請求項19から21までの何れか記載のデジタルシステムのクロック信号調整方法。
  24. 前記電源装置を、前記デジタルシステムに設けたことを特徴とする、請求項19から23までの何れか記載のデジタルシステムのクロック信号調整方法。
  25. 前記デジタルシステムは、集積回路として構成されていることを特徴とする、請求項14から24までの何れか記載のデジタルシステムのクロック信号調整方法。
  26. 前記デジタルシステムは、回路基板として構成されていることを特徴とする、請求項14から24までの何れか記載のデジタルシステムのクロック信号調整方法。
  27. 前記外部装置は、コンピュータを具えていることを特徴とする、請求項14から18までの何れか記載のデジタルシステムのクロック信号調整方法。
  28. 前記設定手段は、コンピュータを具えていることを特徴とする、請求項19から23までの何れか記載のデジタルシステムのクロック信号調整方法。
  29. 請求項27または28記載のデジタルシステムのクロック信号調整方法において前記コンピュータが実行する、前記複数の保持回路が保持する前記複数の制御信号の値を前記デジタルシステムの基本的機能が所定の仕様を満たすように確率的探索手法に従って変更する処理プログラムを記録した記録媒体。
JP2005506771A 2003-06-06 2004-06-03 デジタルシステム、デジタルシステムのクロック信号調整方法および、その調整方法で実行する処理プログラムを記録した記録媒体 Expired - Fee Related JP4281015B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2003162118 2003-06-06
JP2003162118 2003-06-06
PCT/JP2004/007683 WO2004109916A1 (ja) 2003-06-06 2004-06-03 デジタルシステム、デジタルシステムのクロック信号調整方法および、その調整方法で実行する処理プログラムを記録した記録媒体

Publications (2)

Publication Number Publication Date
JPWO2004109916A1 JPWO2004109916A1 (ja) 2006-07-20
JP4281015B2 true JP4281015B2 (ja) 2009-06-17

Family

ID=33508655

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005506771A Expired - Fee Related JP4281015B2 (ja) 2003-06-06 2004-06-03 デジタルシステム、デジタルシステムのクロック信号調整方法および、その調整方法で実行する処理プログラムを記録した記録媒体

Country Status (3)

Country Link
US (1) US20060236146A1 (ja)
JP (1) JP4281015B2 (ja)
WO (1) WO2004109916A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070240013A1 (en) * 2006-01-27 2007-10-11 Sony Computer Entertainment Inc. Methods And Apparatus For Managing Defective Processors Through Clock Programming
JP4798505B2 (ja) * 2007-03-02 2011-10-19 独立行政法人産業技術総合研究所 ディジタルシステムの設計システムおよびディジタルシステムの製造方法
WO2009127613A1 (en) * 2008-04-14 2009-10-22 Teklatech A/S A method for controlling the dynamic power signature of a circuit

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5428764A (en) * 1992-04-24 1995-06-27 Digital Equipment Corporation System for radial clock distribution and skew regulation for synchronous clocking of components of a computing system
JPH0744519A (ja) * 1993-08-03 1995-02-14 Mitsubishi Electric Corp 遺伝的アルゴリズム実装方法、およびそれを用いたネットワーク最適化方法
US5475690A (en) * 1994-11-10 1995-12-12 Digital Equipment Corporation Delay compensated signal propagation
JPH0981615A (ja) * 1995-09-14 1997-03-28 Sony Corp 回路設計装置および方法
US6192092B1 (en) * 1998-06-15 2001-02-20 Intel Corp. Method and apparatus for clock skew compensation
JP2000207038A (ja) * 1999-01-13 2000-07-28 New Japan Radio Co Ltd 定電圧出力回路の抵抗値決定方法
US6658581B1 (en) * 1999-03-29 2003-12-02 Agency Of Industrial Science & Technology Timing adjustment of clock signals in a digital circuit
US6539491B1 (en) * 1999-11-08 2003-03-25 International Business Machines Corporation Method and apparatus for implementing IEEE 1149.1 compliant boundary scan
US6721892B1 (en) * 2000-05-09 2004-04-13 Palmone, Inc. Dynamic performance adjustment of computation means

Also Published As

Publication number Publication date
JPWO2004109916A1 (ja) 2006-07-20
WO2004109916A1 (ja) 2004-12-16
US20060236146A1 (en) 2006-10-19

Similar Documents

Publication Publication Date Title
CN101587508B (zh) 用于确定数据路径的路由的方法、系统及计算机程序产品
US11030383B2 (en) Integrated device and method of forming the same
US6658581B1 (en) Timing adjustment of clock signals in a digital circuit
US6002633A (en) Performance optimizing compiler for building a compiled SRAM
McConaghy et al. Variation-aware structural synthesis of analog circuits via hierarchical building blocks and structural homotopy
JP3893147B2 (ja) デジタルシステム、デジタルシステムのクロック信号調整方法および、その調整方法で実行する処理プログラムを記録した記録媒体
US20080229266A1 (en) Design Structure for a Clock Distribution Network, Structure, and Method for Providing Balanced Loading in Integrated Circuit Clock Trees
US6763513B1 (en) Clock tree synthesizer for balancing reconvergent and crossover clock trees
JP4281015B2 (ja) デジタルシステム、デジタルシステムのクロック信号調整方法および、その調整方法で実行する処理プログラムを記録した記録媒体
EP3051448A1 (en) Methods for distributing power in layout of ic
US7644385B1 (en) Programmable logic device with performance variation compensation
JP2005019524A (ja) 半導体集積回路の性能分散系算出装置及びその算出方法
KR102611888B1 (ko) 스위칭 액티비티에 기초한 반도체 장치의 배치 방법 및 이에 의해 제조된 반도체 장치
US20210357567A1 (en) On-the-fly multi-bit flip flop generation
US7479819B2 (en) Clock distribution network, structure, and method for providing balanced loading in integrated circuit clock trees
JP4388641B2 (ja) 集積回路の試験装置
JP3533401B2 (ja) 不要電磁放射を低減するデジタルシステム、インピーダンス調整方法、およびその方法を実行する処理プログラム
US8745558B1 (en) Deployment of transmission gate logic cells in application specific integrated circuits
JP4798505B2 (ja) ディジタルシステムの設計システムおよびディジタルシステムの製造方法
US7254790B2 (en) Method of moment computations in R(L)C interconnects of high speed VLSI with resistor loops
JP3864233B2 (ja) タイミング余裕度を求める方法およびそのためのデジタル演算処理システム、プログラム、記録媒体。
Lin et al. Postrouting optimization of the working clock frequency of single-flux-quantum circuits
Srivastava et al. A combinatorial digital circuit with evolutionary algorithm for evolvable hardware software codesign
Zhang et al. ARCTIC: Agile and Robust Compute-In-Memory Compiler with Parameterized INT/FP Precision and Built-In Self Test
Djupdal et al. The route to a defect tolerant LUT through artificial evolution

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060509

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080408

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080606

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080902

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081104

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090303

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090304

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120327

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120327

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120327

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130327

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130327

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130327

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140327

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140327

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees