JP3597635B2 - 組み合わせ論理回路における解析用波形生成方法 - Google Patents
組み合わせ論理回路における解析用波形生成方法 Download PDFInfo
- Publication number
- JP3597635B2 JP3597635B2 JP8883396A JP8883396A JP3597635B2 JP 3597635 B2 JP3597635 B2 JP 3597635B2 JP 8883396 A JP8883396 A JP 8883396A JP 8883396 A JP8883396 A JP 8883396A JP 3597635 B2 JP3597635 B2 JP 3597635B2
- Authority
- JP
- Japan
- Prior art keywords
- node
- group
- nodes
- transition
- transition path
- 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
Links
Images
Description
【発明の属する技術分野】
本発明は、論理回路における解析用波形生成方法に関し、特に、複数の論理ゲートを組み合わせてなる組み合わせ論理回路について、入力信号波形と出力信号波形とからなる解析用波形を生成する方法に関する。
【0002】
【従来の技術】
半導体回路の製造技術の発達により、回路の集積度は益々向上してきており、膨大な数の論理ゲートを集積化して複雑な機能を実現したLSIが普及するに至っている。一般に論理回路は、ANDゲート、ORゲートなどの単純な論理ゲートを多数組み合わせてなる組み合わせ論理回路と、フリップフロップなどの要素を組み入れた順序回路と、に大別できる。順序回路の動作は、前段階の論理状態に左右されるため、その解析には過去の論理動作に関する情報が必要となるが、組み合わせ論理回路の動作は、過去の論理状態には依存せず、入力信号として与えた論理パターンに基づいて、出力信号の論理パターンが一義的に決定できる。このため、入力信号パターンと出力信号パターンとの関係を示す真理値表を定義することができ、組み合わせ論理回路の論理動作は、すべてこの真理値表によって表現することができる。
【0003】
新たにLSI論理回路を設計した場合、この設計対象となる論理回路が正常に動作するか否かの論理解析を行う必要がある。論理レベルでは正しい設計が行われていたとしても、論理ゲートを実際のトランジスタ素子などで実現すると、各部の寄生容量や寄生抵抗などの影響により、信号が歪んだり遅延が生じたりするため、正しい論理動作が行われない場合があるからである。このような論理解析は、通常、論理シミュレータを用いた検証という形で行われる。すなわち、所定の入力信号波形をこの論理回路に与えた場合に、論理レベルでの正しい出力信号波形が得られるかを、シミュレーションによって求めるのである。このようなシミュレーションによる解析を行うには、入力信号波形と出力信号波形との組み合わせからなる解析用波形が必要になる。
【0004】
このように、組み合わせ論理回路における解析用波形は、入力信号波形と出力信号波形とによって構成される。もちろん、理論的には、どのような解析用波形を作成してもかまわないのであるが、効率良い検証を行うために、実用上は次の2つの条件を満たすような解析用波形を作成するのが一般的である。
【0005】
まず、第1の条件は、入力信号波形が1ビットずつ変化してゆくという条件である。たとえば、3ビットの入力信号をもった論理回路の場合、入力信号が(000)→(001)→(011)→(111)というように変化してゆく波形は、前後のパターンを比べると、3ビットのうちのいずれか1ビットだけが変化しているので、この第1の条件を満足していることになる。ところが、(000)→(011)→(100)というように変化する信号波形は、この第1の条件を満足していない。シミュレーションによる検証を行う上では、ある出力ビットの変化が、どの入力ビットの変化に起因して生じたのかを特定する必要があるので、複数の入力ビットが同時に変化するような信号波形は好ましくないのである。
【0006】
第2の条件は、入力信号の変化により、出力信号に必ず何らかの変化が生じるようにするという条件である。たとえば、上述したように、入力信号を(000)→(001)→(011)→(111)というように変化させたとしても、出力信号に何ら変化が生じないようでは検証の意味がなくなる。入力信号を変化させることにより、出力信号にも論理的に正しい変化が生じているか否かを調べることが検証の本来の目的であるから、出力信号に変化が生じなければ、入力信号を変化させても意味のある検証結果は得られない。
【0007】
【発明が解決しようとする課題】
上述したように、効率的な検証を行うためには、できるだけ上記2条件を満足した解析用波形を作成する必要がある。ところが、従来は、このような解析用波形を試行錯誤を行いながら作成していた。このような試行錯誤による作成方法は、小規模な論理回路の場合には問題はないが、大規模な論理回路の場合には、作業負担が大きくなり効率的ではない。論理回路の入力信号のビット数(すなわち、論理回路の入力端子数)をmとした場合、入力信号パターンは2mとおりのバリエーションをもつことになり、mの数が増えれば増えるほど、入力信号パターンの数は指数的に増加することになる。このように、入力信号パターンが膨大なバリエーションをもつ場合、従来の試行錯誤による方法では、最適な解析用波形を作成するために、多大な時間と労力が必要になる。
【0008】
そこで本発明は、組み合わせ論理回路における解析用波形を効率良く生成する方法を提供することを目的とする。
【0009】
【課題を解決するための手段】
(1) 本発明の第1の態様は、複数の論理ゲートを組み合わせてなる組み合わせ論理回路について、入力信号波形と出力信号波形とからなる解析用波形を生成する方法において、
この論理回路について、入力信号パターンと出力信号パターンとの対応関係を示す真理値表を作成する第1の段階と、
1つの入力信号パターンを1節点に対応させ、真理値表内の複数の入力信号パターンを複数の節点として表現し、互いのハミング距離が1であり、かつ、真理値表において対応づけられた出力信号パターンが互いに異なる、という2条件を満たす一対の節点間に、一方から他方へ向かう遷移路と他方から一方へ向かう遷移路とからなる方向性をもった一対の遷移路を定義し、これらの遷移路によって互いに結合された一群の節点からなるグループを構成する第2の段階と、
定義されたすべての遷移路を順方向にたどりながら、グループを構成するすべての節点を通る一巡経路を求める第3の段階と、
この一巡経路に沿った節点の順に、入力信号パターンを遷移させることにより入力信号波形を生成し、真理値表に基づいて、生成した入力信号波形に対応する出力信号波形を生成する第4の段階と、
を行うようにしたものである。
【0010】
(2) 本発明の第2の態様は、上述の第1の態様に係る解析用波形生成方法において、一巡経路を求める第3の段階で、
処理対象節点から隣接節点へ向かう未登録遷移路がない場合にはこの処理を直ちに完了し、処理対象節点から隣接節点へ向かう未登録遷移路がある場合には、この未登録遷移路を登録し、隣接節点が過去に処理対象になったことがなければ下記(a) ,(b) の2つの作業を実行した後に隣接節点から処理対象節点へ戻る遷移路を登録し、隣接節点が過去に処理対象になったことがあれば下記(a) ,(b) の2つの作業を実行せずに隣接節点から処理対象節点へ戻る遷移路を登録する、という処理を、任意の節点から始めて再帰的に全節点について行い、登録された遷移路を登録順に結合することにより一巡経路を求めるようにしたものである。
(a) 隣接節点から処理対象節点へ向かう未登録遷移路を消去する作業
(b) 隣接節点を新たな処理対象としてこの処理を再帰的に実行する作業
(3) 本発明の第3の態様は、上述の第1または第2の態様に係る解析用波形生成方法において、第2の段階で互いに独立した複数のグループが構成された場合に、
個々のグループごとに第3の段階を実行してそれぞれ一巡経路を求め、1つのグループ内の特定の1節点と別なグループ内の特定の1節点とを相互に接続するグループ間遷移路を定義することにより、個々のグループが所定の順序で一列に接続されるようにし、全グループに属するすべての節点を通る統括一巡経路を求めるようにし、
第4の段階では、統括一巡経路に沿った節点の順に、入力信号パターンを遷移させることにより入力信号波形を生成し、真理値表に基づいて、生成した入力信号波形に対応する出力信号波形を生成するようにしたものである。
【0011】
(4) 本発明の第4の態様は、上述の第3の態様に係る解析用波形生成方法において、統括一巡経路を求める処理を行う際に、
任意のグループを1つ選択し、この選択したグループに属する各節点の中から、最も小さいハミング距離で他のグループに属する節点とグループ間遷移路で接続できるものを決定し、
1本のグループ間遷移路もしくは複数本連結されたグループ間遷移路の両端点を構成する一対の節点のうち、最も小さいハミング距離で他の未接続グループに属する節点と新たなグループ間遷移路で接続できるものを決定し、この新たなグループ間遷移路を一方の端点に連結する、という処理を、全グループ間がグループ間遷移路によって連結されるまで繰り返し実行し、
すべての一巡経路とすべてのグループ間遷移路とにより、統括一巡経路を構成するようにしたものである。
【0012】
【発明の実施の形態】
以下、本発明を図示する実施形態に基づいて説明する。
【0013】
§1. 一般的な論理回路と解析用波形との関係
ここでは、説明の便宜上、図1に示すような論理回路を考える(実用的な観点から見れば、この回路の論理動作は、必ずしも意味のあるものではないが、本発明の説明を容易にするため、ここではこの論理回路を例にとって以下の説明を行う)。この論理回路は、三入力ANDゲート1、二入力Ex−ORゲート2、二入力ORゲート3、二入力ORゲート4、の4つの論理ゲートから構成され、3ビットからなる入力信号ABCを受け入れて、1ビットからなる出力信号Qを出力する機能を有する。この論理回路の真理値表を図2に示す。この真理値表は、8とおりの入力信号パターン▲1▼〜▲8▼のそれぞれに対応して得られる出力信号パターンを示すものである。たとえば、入力信号パターン▲1▼は、「000」なる3ビットのパターンからなり、この入力信号パターン▲1▼に対して、「0」なる1ビットの出力信号パターンが得られている。このような真理値表は、個々の入力信号パターンごとに、それぞれ各ビットを与えたときの各論理ゲートの論理動作を追ってゆくことにより得ることができる。
【0014】
さて、このような論理回路の設計を行った場合、その論理動作の検証を行うための解析が必要になる。この解析は、通常、図3に示すような解析波形を用いた論理シミュレーションによって行われる。図3に示す解析用波形は、入力信号波形A,B,Cと出力信号波形Qとによって構成されており、図1に示す論理回路に、入力信号波形A,B,Cを与えると、出力信号波形Qの出力が期待されることを示している。もちろん、実際の論理回路では、トランジスタ素子、寄生容量素子、寄生抵抗素子などの影響により、入力信号波形は伝播途中で波形が歪んだり遅延が生じたりするため、この解析用波形に示すとおりの結果が得られるわけではない。この解析用波形はあくまでも、この回路の論理レベルでの動作を記述したものである。したがって、出力信号波形Qは、図2に示す真理値表に基づいて一義的に定まり、図3の下欄に示したパターン番号は、この真理値表に示す入力パターンの番号に対応している。
【0015】
論理シミュレータを用いた論理動作の解析は、図3に示す入力信号波形A,B,Cを図1に示す回路に与えたときに、期待どおりの出力信号波形Qが得られることを確認することによって行われる。このような解析を効率的に行うためには、既に述べたように、次の2つの条件を満たすような解析用波形を用いる必要がある。すなわち、第1の条件は、入力信号波形が1ビットずつ変化してゆくという条件であり、第2の条件は、入力信号の変化により、出力信号に必ず何らかの変化が生じるようにするという条件である。図3に例示した解析用波形は、この2つの条件をともに満足した波形となっている。
【0016】
たとえば、第1の条件について調べてみると、パターン▲1▼→▲2▼への変化時点では、入力信号Cのみが「0→1」に変化しており、続くパターン▲2▼→▲4▼への変化時点では、入力信号Bのみが「0→1」に変化しており、次のパターン▲4▼→▲8▼への変化時点では、入力信号Aのみが「0→1」に変化している。このように、3ビットの入力信号A,B,Cは、常に1ビットずつ変化しており、同じタイミングで2ビット以上が変化することはない。シミュレーションによる検証を行う上では、出力信号の変化が、どの入力ビットの変化に起因して生じたのかを特定する必要があるので、このように入力信号波形を1ビットずつ変化させるようにするという第1の条件は重要である。
【0017】
図3に例示した解析用波形は、第2の条件も満足している。すなわち、出力信号波形Qに着目すれば、入力信号のパターン番号が変わるたびに、「0→1」もしくは「1→0」に変化しており、入力信号の変化により、出力信号には必ず何らかの変化が生じるようになっている。論理シミュレーションによる検証は、入力信号を変化させることにより、出力信号にも論理的に正しい変化が生じているか否かを調べることを本来の目的とするものであるから、このように出力信号の変化を前提として入力信号を変化させるようにしなければ意味のある検証結果は得られない。なお、図1に例示した論理回路では、出力信号波形が1ビットの出力信号Qの波形のみによって構成されているので、必然的に出力信号Qが「0→1→0→1→0……」と交互に変化するような結果になっているが、実際の回路では、より多数のビットからなる出力信号が得られるのが一般的であり、この場合、入力信号の変化により、少なくとも出力信号のいずれか1ビットが変化すれば足りる。
【0018】
このように、効率的な検証を行うためには、できるだけ上記2条件を満足した解析用波形を作成する必要がある。ところが、従来は、このような解析用波形を試行錯誤を行いながら作成していたため、論理回路の規模が大きくなればなるほど、作業負担が指数的に増大するという問題があることは既に述べたとおりである。現在実用されている複雑な機能をもった論理回路は、図1に示すような単純な構成ではなく、膨大な数の論理ゲートから構成され、入力信号パターンも膨大な数になる。このような大規模な論理回路について、上記2条件を満足する解析用波形を生成するために、従来においても、いくつかの有用な手法がいくつか提案されているが、いずれも演算負担が大きく、また、有限時間内に解が得られないケースもある。本発明は、このような問題を解決するための新たな手法を提案するものであり、解は必ず有限時間内に得られることになる。
【0019】
§2. 本発明の基本原理
本発明に係る方法では、1つの入力信号パターンは1つの節点として表現され、入力信号パターンの変化は、この節点間を結ぶ方向性をもった遷移路として表現される。たとえば、図3に示す解析用波形は、図4に示すような節点間遷移図によって表わされることになる。この遷移図では、個々の楕円が個々の節点を表し、個々の矢印が方向性をもった遷移路を表している。また、各節点内に記された3ビットの数値は、3ビットの入力信号A,B,Cの論理値を示し、8とおりの入力信号パターン▲1▼〜▲8▼のいずれかに対応することになる。たとえば、図4における左上の節点「000」は入力信号パターン▲1▼に対応し、その右側の節点「001」は入力信号パターン▲2▼に対応し、その次の節点「011」は入力信号パターン▲4▼に対応している。また、右下に示した最後の節点「100」から左上に示した最初の節点「000」に向けて遷移路が描かれており、全節点はループ状に結ばれているが、これは、周期的な解析用波形が得られることを示している。
【0020】
以上のように、この図4に示す節点間遷移図は、入力信号波形A,B,Cと等価である。しかも、入力信号波形A,B,Cが得られれば、図2に示す真理値表を参照することによって、出力信号波形Qを一義的に得ることができるので、結局、図4に示す節点間遷移図から、一義的に、図3に示す解析用波形を生成することができる。本発明の基本思想は、このような節点間遷移図に基づいて解析用波形を生成する点にある。
【0021】
図5は、本発明に係る解析用波形生成方法の基本手順を示す流れ図である。以下、この流れ図に沿って、本発明の手順を詳述する。まず、ステップS1において、対象となる論理回路の入力信号パターンと出力信号パターンとの対応関係を示す真理値表を作成する。たとえば、図1に示す論理回路の場合、図2に示すような真理値表が作成されることになる。このような真理値表の作成方法については、既に種々の方法が公知であるため、ここでは説明は省略する。
【0022】
続くステップS2において、各入力信号パターンを1節点に対応させ、各節点間に遷移路を定義して一群の節点からなるグループを構成する。具体的には、図2の真理値表内の8個の入力信号パターン▲1▼〜▲8▼を、それぞれ節点として表現し、各節点間に一対の遷移路を定義してゆくことになる。ただし、遷移路は、次の2条件を満たす節点間のみに定義される。すなわち、第1の条件は、互いのハミング距離が1であるという条件であり、第2の条件は、真理値表において対応づけられた出力信号パターンが互いに異なる、という条件である。ここで、「ハミング距離」とは、2つのビットパターンについて、論理値が異なるビットがいくつあるかを示す指数である。たとえば、図2の真理値表に示されている8種類の入力信号パターン▲1▼〜▲8▼についてのハミング距離を検討すると、パターン▲1▼とパターン▲2▼とのハミング距離は、入力信号Cのみが異なるので1であり、パターン▲2▼とパターン▲3▼とのハミング距離は、入力信号B,Cが異なるので2であり、パターン▲4▼とパターン▲5▼とのハミング距離は、全入力信号が異なるので3である。
【0023】
このような2条件を満たす一対の節点がみつかると、この一対の節点間に、双方向の遷移路(一方から他方へ向かう遷移路と他方から一方へ向かう遷移路とからなる方向性をもった一対の遷移路)が定義される。そして、これらの遷移路によって互いに結合された一群の節点からなるグループが構成される。このような方法によりグループを構成する具体的な方法を、図6から図8に示す。
【0024】
まず、図6に示すように、真理値表の先頭の節点「000」に着目する。続いて、この節点「000」について、ハミング距離が1である節点をすべて列挙する。ある特定の節点についてハミング距離が1であるような節点は、もとの節点の各ビットをそれぞれ反転させることにより容易に得られる。たとえば、節点「000」については、1ビット目、2ビット目、3ビット目をそれぞれ反転させることにより、節点「100」、節点「010」、節点「001」が得られる。こうして、ハミング距離が1である節点が列挙されたら、続いて、これらの列挙された節点についての出力信号パターンがもとの節点についての出力信号パターンと異なっているか否かを判断する。上述の例の場合、もとの節点「000」(入力信号パターン▲1▼)に対応する出力信号Qの値は、図2の真理値表に示されているように「0」であり、列挙された節点「100」(入力信号パターン▲5▼)、節点「010」(入力信号パターン▲3▼)、節点「001」(入力信号パターン▲2▼)に対応する出力信号Qの値は、図2の真理値表に示されているようにいずれも「1」である。よって、もとの節点「000」に対して、列挙された節点「100」、「010」、「001」は、いずれも上述の2条件を満たしていることになる。
【0025】
そこで、図7に示すように、これら3つの節点「100」、「010」、「001」を、もとの節点「000」に隣接する位置に配置し、それぞれの節点間に一対の遷移路(図の矢印)を定義する。こうして、1つの節点「000」に着目して、いくつかの隣接節点「100」,「010」,「001」がみつかったら、続いて、残りの未着目節点についても全く同様の処理を施す。たとえば、節点「001」を新たな着目節点とすれば、この節点「001」に対して上述の2条件を満足する節点として、節点「000」の他に新たな節点「011」がみつかる。更にこの節点「011」を新たな着目節点とすれば、この節点「011」に対して上述の2条件を満足する節点として、節点「001」の他に新たな節点「111」と既存の節点「010」とがみつかる。このようにして、各節点に対して、それぞれ上述の2条件を満足する節点をみつけ、両節点間に一対の矢印で示される遷移路を定義してゆけば、最終的に、図8に示すように、互いに遷移路によって結合された一群の節点からなるグループが構成されることになる。
【0026】
実は、図4に示した節点間遷移図は、この図8に示されている6つの節点間の遷移を所定の順序で示したものに他ならない。すなわち、図8に示されているすべての遷移路(矢印)を順方向(矢印の示す方向)にたどりながら、このグループ内の全節点を通る一巡経路を求めることができれば、その一巡経路は、図4の節点間遷移図を示すものになる。図5の流れ図におけるステップS3の処理は、このような一巡経路を求めるための処理である。こうして、一巡経路が得られたら、ステップS4において、この一巡経路に沿った節点の順に、入力信号パターンを遷移させることにより入力信号波形を生成し、真理値表に基づいて、生成した入力信号波形に対応する出力信号波形を生成する処理が実行され、目的の解析用波形が得られることになる。別言すれば、図4に示す節点間遷移図と図2に示す真理値表とに基づいて、図3に示す解析用波形が生成されることになる。
【0027】
§3. 一巡経路を求める具体的な手法
以上、図5の流れ図に基づいて、本発明の基本原理を説明したが、ここでは、この流れ図におけるステップS3の処理、すなわち、ステップS2において定義されたすべての遷移路を順方向にたどりながら、グループ内の全節点をとおる一巡経路を求める処理の具体的な手法を説明する。この一巡経路は、いわば「一筆書き」によって各節点を結ぶ手法によって求めることができる。たとえば、図8に示す例では、6つの節点が矢印(遷移路)によって結ばれているが、個々の節点に出入りする矢印の数はいずれも偶数本である。上述したように、ステップS2におけるグループ構成処理は、隣接する節点間に向きの異なる一対の遷移路を定義することによって行われているので、個々の節点に出入りする矢印の数は必ず偶数本となる。「一筆書き」に関するオイラーの定理によれば、このような場合、任意の節点を起点とした「一筆書き」の経路が必ず存在し、起点と終点とは同一の節点になる。したがって、上述したステップS2の処理によって構成されたグループについては、理論的に必ず一巡経路が求まることになる。
【0028】
ここでは、このような一巡経路を求める具体的な手法の一例を、図9の流れ図を参照して説明する。ここに例示する手法では、所定の処理を再帰的に繰り返し実行する必要がある。図9に示す流れ図は、このように何回も繰り返し実行される再帰的処理の1回分の手順を示すものであり、任意の処理対象節点(N)について実行される処理を記述したものである。ここでは、このように、任意の処理対象節点(N)について実行される処理を処理(N)と呼ぶことにする。
【0029】
まず、ステップS31において、隣接節点(N+1)へ向かう未登録遷移路があるか否かを判断する。たとえば、図8に示す節点「000」が処理対象節点(N)である場合は、節点「100」,「010」,「001」のいずれか任意の1つが、隣接節点(N+1)に該当し、これら隣接節点に向かう矢印が、未登録遷移路ということになる。なお、ここで「未登録」とは、後述する登録処理が行われていない状態を示し、初期段階ではすべての遷移路が未登録遷移路である。このステップS31において、隣接節点(N+1)へ向かう未登録遷移路がないと判断された場合には、この処理対象節点(N)についての処理(N)は直ちに終了する。
【0030】
一方、隣接節点(N+1)へ向かう未登録遷移路があると判断された場合には、この未登録遷移路がステップS32において登録される。そして、続くステップS33において、隣接節点(N+1)は過去に処理対象になったか否かが判断される。別言すれば、過去にこの隣接節点(N+1)を処理対象節点とした処理(N+1)が行われ、現在もその再帰的な処理中であるか否かが判断される。ここで否定的な判断がなされると、後続するステップS34において作業(a) が実行され、更に、ステップS35において作業(b) が実行されることになる。作業(a) は、隣接節点(N+1)から処理対象節点(N)へ向かう未登録遷移路を消去する作業であり、図で説明すれば、隣接節点(N+1)から処理対象節点(N)に向けた矢印が消されることになる。続く作業(b) は、隣接節点(N+1)を新たな処理対象として再帰的な処理(N+1)を実行する作業である。この再帰的な処理(N+1)は、処理対象節点が節点(N)ではなく節点(N+1)になる点以外は、この図9に示す全処理手順と全く同じ処理である。すなわち、ステップS35の作業(b) において、図9に示す処理(N)全体が再帰的に呼び出されることになる。
【0031】
こうして、ステップS35における再帰処理が完了するか、あるいは、ステップS33において肯定的な判断がされると、ステップS36において、隣接節点(N+1)から処理対象節点(N)へ向かう遷移路が登録され、処理は最初のステップS31へと戻ることになる。なお、ステップS34,S35を経てステップS36が実行される場合は、ステップS34において一度消去した「隣接節点(N+1)から処理対象節点(N)へ向かう未登録遷移路」を、ステップS36において復活させてから登録することになる。このように、ステップS34において一度消去しておきながら、ステップS36においてこれを復活させて登録する理由は、ステップS35の再帰的な処理において、「隣接節点(N+1)から処理対象節点(N)へ向かう未登録遷移路」を見えなくし、節点(N+1)についての必要な処理が完了するまでは、節点(N)へ戻ってくることのないようにするための措置である。
【0032】
この図9に示す処理を、任意の節点から始めて再帰的に全節点について行い、登録された遷移路を登録順に結合すれば、目的とする一巡経路を得ることができる。以下、その実例として、図8に示す6つの節点に図9の処理を適用した場合を示そう。
【0033】
最初の処理対象節点(N)としては、6つの節点のいずれを選んでもかまわない。ここでは、節点「000」を最初の処理対象節点(N)とした場合の例を説明する。まず、ステップS31において、隣接節点(N+1)へ向かう未登録遷移路の有無が判断される。図10に示すように、このような未登録遷移路としては、遷移路Ta,Tb,Tcの3本が存在する。このように複数の該当遷移路が存在する場合には、そのいずれを選択してもかまわない。ここでは、遷移路Tcを選択したものとして、以下の説明を続けることにする。すなわち、節点「000」が処理対象節点(N)に該当し、節点「001」が隣接節点(N+1)に該当することになる。
【0034】
続くステップS32では、この未登録遷移路Tcに対する登録が行われる。ここでは、この遷移路Tcが遷移路T1として登録されたものとしよう。図10において太線矢印で示す遷移路T1は、このようにして登録された遷移路を示す。以下、説明の便宜上、未登録の遷移路は細線矢印で示し、登録済の遷移路は太線矢印で示すこととし、登録済の遷移路については、その登録順にT1,T2,T3,…と符号をつけて呼ぶことにする。また、節点については、図9の処理対象となったことのある節点を太線楕円で示すことにする。
【0035】
次のステップS33では、隣接節点(N+1)が過去に処理対象となったか否かが判断される。現時点での隣接節点(N+1)は、図10に示す節点「001」であり、この節点は細線楕円で示されているとおり、過去に処理対象となったことはない。そこで、ステップS33においては否定的な判断がなされ、ステップS34における作業(a) が実施される。すなわち、隣接節点(N+1)から処理対象節点(N)へ向かう未登録遷移路が消去されることになる。結局、図11に示すように、隣接節点「001」から処理対象節点「000」へ向かう細線矢印が消去されることになる。
【0036】
続くステップS35では、隣接節点(N+1)を新たな処理対象とする再帰的な処理(N+1)が実行される。すなわち、今度は、節点「001」を処理対象節点として、図9に示す処理全体が再帰的に呼び出されることになる。図11において、節点「001」を太線楕円で示してあるのは、この節点「001」を処理対象とする処理が実行されたことを示している。もっとも、この再帰的に呼び出した処理は、節点「000」を処理対象とする処理におけるステップS35の作業(b) にすぎないので、再帰的な呼び出し処理が終了した後は、ステップS36へと進むことになる。ちなみに、このステップS36の処理では、隣接節点(N+1)から処理対象節点(N)に向かう遷移路が登録されるので、図11において消去された遷移路が復活し登録されることになる(後述する図23のプロセス)。
【0037】
さて、ここでは、節点「001」を新たな処理対象節点として、図9に示す処理が再帰的に呼び出されたものとして、実施される処理作業を追ってみよう。まず、ステップS31において、隣接節点(N+1)へ向かう未登録遷移路の有無が判断される。図11に示すように、節点「001」から隣接節点へ向かう未登録遷移路は遷移路Tdだけである。そこで、ステップS32において、この遷移路Tdが遷移路T2として登録されることになる。図12はこのときの状態を示す。続くステップS33では、隣接節点「011」が過去に処理対象となったか否かが判断される。図12に細線楕円で示されているように、節点「011」はまだ処理対象になったことはないので、ステップS33においては否定的な判断がなされ、ステップS34における作業(a) が実施される。すなわち、図13に示すように、隣接節点「011」から処理対象節点「001」へ向かう未登録遷移路が消去されることになる。そして、続くステップS35では、隣接節点「011」を新たな処理対象とする再帰的な処理が実行される。
【0038】
こうして、節点「011」を新たな処理対象節点とする処理が再帰的に呼び出されると、まず、ステップS31において、節点「011」から隣接節点へ向かう未登録遷移路の有無が判断される。図13に示すように、節点「011」から隣接節点へ向かう未登録遷移路には遷移路Teと遷移路Tfとがある。いずれを選択してもかまわないが、ここでは、遷移路Teを選択し、節点「111」を隣接節点としたものとして説明を続ける。ステップS32では、遷移路Teが遷移路T3として登録されることになる。図14はこのときの状態を示す。続くステップS33では、隣接節点「111」が過去に処理対象となったか否かが判断される。図14に細線楕円で示されているように、節点「111」はまだ処理対象になったことはないので、ステップS33においては否定的な判断がなされ、ステップS34における作業(a) が実施される。すなわち、図15に示すように、隣接節点「111」から処理対象節点「011」へ向かう未登録遷移路が消去されることになる。そして、続くステップS35では、隣接節点「111」を新たな処理対象とする再帰的な処理が実行される。
【0039】
節点「111」を新たな処理対象節点とする処理が再帰的に呼び出されると、まず、ステップS31において、節点「111」から隣接節点へ向かう未登録遷移路の有無が判断される。図15に示すように、節点「111」から隣接節点へ向かう未登録遷移路はない。そこで、この節点「111」を処理対象節点とする処理は直ちに終了する。この終了した処理は、前段階の節点「011」を処理対象節点とする処理におけるステップS35の作業(b) の終了に対応するので、続いて、ステップS36が実行されることになる。すなわち、隣接節点「111」から処理対象節点「011」へ向かう遷移路が遷移路T4として登録される(一度消去されていたのが、復活登録されることになる)。図16はこのときの状態を示す。
【0040】
こうして、ステップS36が完了すると、再びステップS31へと戻ることになる。すなわち、まず、ステップS31において、節点「011」から隣接節点へ向かう未登録遷移路の有無が判断される。図16に示すように、節点「011」から隣接節点へ向かう未登録遷移路は遷移路Tfだけである。そこで、ステップS32において、この遷移路Tfが遷移路T5として登録されることになる。図17はこのときの状態を示す。続くステップS33では、隣接節点「010」が過去に処理対象となったか否かが判断される。図17に細線楕円で示されているように、節点「010」はまだ処理対象になったことはないので、ステップS33においては否定的な判断がなされ、ステップS34における作業(a) が実施される。すなわち、図18に示すように、隣接節点「010」から処理対象節点「011」へ向かう未登録遷移路が消去されることになる。そして、続くステップS35では、隣接節点「010」を新たな処理対象とする再帰的な処理が実行される。
【0041】
節点「010」を新たな処理対象節点とする処理が再帰的に呼び出されると、まず、ステップS31において、節点「010」から隣接節点へ向かう未登録遷移路の有無が判断される。図18に示すように、節点「010」から隣接節点へ向かう未登録遷移路は遷移路Tgだけである。そこで、ステップS32において、この遷移路Tgが遷移路T6として登録されることになる。図19はこのときの状態を示す。続くステップS33では、隣接節点「000」が過去に処理対象となったか否かが判断される。図19に太線楕円で示されているように、節点「000」は既に処理対象になったことがある(正確に言えば、現在行っている節点「010」を処理対象節点とする処理は、節点「000」を処理対象節点とする処理の中での何重もの入れ子になった再帰的な呼び出し処理に相当する)。そこで、ステップS33においては肯定的な判断がなされ、直ちに、ステップS36へ進むことになる。ステップS36では、隣接節点「000」から処理対象節点「010」へ向かう遷移路Thが遷移路T7として登録される。図20はこのときの状態を示す。
【0042】
こうして、ステップS36が完了すると、再びステップS31へと戻ることになる。すなわち、まず、ステップS31において、節点「010」から隣接節点へ向かう未登録遷移路の有無が判断される。図20に示すように、節点「010」から隣接節点へ向かう未登録遷移路はない。そこで、この節点「010」を処理対象節点とする処理は直ちに終了する。この終了した処理は、前段階の節点「011」を処理対象節点とする処理におけるステップS35の作業(b) の終了に対応するので、続いて、ステップS36が実行されることになる。すなわち、隣接節点「010」から処理対象節点「011」へ向かう遷移路が遷移路T8として登録される(一度消去されていたのが、復活登録されることになる)。図21はこのときの状態を示す。
【0043】
現時点での処理対象節点は、節点「011」であり、処理は再びステップS31へと戻ることになる。そして、ステップS31において、節点「011」から隣接節点へ向かう未登録遷移路の有無が判断される。図21に示すように、節点「011」から隣接節点へ向かう未登録遷移路はない。そこで、この節点「011」を処理対象節点とする処理は直ちに終了する。この終了した処理は、前段階の節点「001」を処理対象節点とする処理におけるステップS35の作業(b) の終了に対応するので、続いて、ステップS36が実行されることになる。すなわち、隣接節点「011」から処理対象節点「001」へ向かう遷移路が遷移路T9として登録される(一度消去されていたのが、復活登録されることになる)。図22はこのときの状態を示す。
【0044】
こうして、処理対象節点が節点「001」に戻ると、処理は再びステップS31へと戻る。そして、ステップS31において、節点「001」から隣接節点へ向かう未登録遷移路の有無が判断される。図22に示すように、節点「001」から隣接節点へ向かう未登録遷移路はない。そこで、この節点「001」を処理対象節点とする処理は直ちに終了する。この終了した処理は、最初の段階の節点「000」を処理対象節点とする処理におけるステップS35の作業(b) の終了に対応するので、続いて、ステップS36が実行されることになる。すなわち、隣接節点「001」から処理対象節点「000」へ向かう遷移路が遷移路T10として登録される(一度消去されていたのが、復活登録されることになる)。図23はこのときの状態を示す。
【0045】
この図23に示す状態において、処理は再び最初の節点「000」についての処理に戻ってきたことになる。そして、ステップS31からの処理が繰り返し実行され、節点「000」から隣接節点へ向かう未登録遷移路の有無が判断される。図23に示すように、節点「000」から隣接節点へ向かう未登録遷移路としては、遷移路Tiがまだ残っている。そこで、この遷移路Tiが遷移路T11として登録されることになる。図24はこのときの状態を示す。続くステップS33では、隣接節点「100」が過去に処理対象となったか否かが判断される。図24に細線楕円で示されているように、節点「100」はまだ処理対象になったことはないので、ステップS33においては否定的な判断がなされ、ステップS34における作業(a) が実施される。すなわち、図25に示すように、隣接節点「100」から処理対象節点「000」へ向かう未登録遷移路が消去されることになる。そして、続くステップS35では、隣接節点「100」を新たな処理対象とする再帰的な処理が実行される。
【0046】
節点「100」を新たな処理対象節点とする処理が再帰的に呼び出されると、まず、ステップS31において、節点「100」から隣接節点へ向かう未登録遷移路の有無が判断される。図25に示すように、節点「100」から隣接節点へ向かう未登録遷移路はない。そこで、この節点「100」を処理対象節点とする処理は直ちに終了する。この終了した処理は、前段階の節点「000」を処理対象節点とする処理におけるステップS35の作業(b) の終了に対応するので、続いて、ステップS36が実行されることになる。すなわち、隣接節点「100」から処理対象節点「000」へ向かう遷移路が遷移路T12として登録される(一度消去されていたのが、復活登録されることになる)。図26はこのときの状態を示す。
【0047】
かくして、処理は再び最初の節点「000」についてのステップS31の処理に戻ることになる。ところが、図26に示すように、節点「000」から隣接節点へ向かう未登録遷移路はもはや存在しない。そこで、この節点「000」を処理対象節点とする処理は終了する。以上の作業により、節点「000」を最初の処理対象として選択して実行した再帰的な処理がすべて完了したことになる。すなわち、図26に太線矢印で示されている登録済の遷移路T1〜T12をその登録順にたどってゆけば、全節点を通る一巡経路が得られることになり、この一巡経路にしたがって各節点名を記述してゆけば、図4に示す節点間遷移図が得られることになる。
【0048】
§4. 複数のグループが構成される場合
本発明の基本原理は、図5の流れ図を参照しながら既に説明したように、ステップS1において、真理値表(図2)を作成し、ステップS2において、遷移路で結合された一群の節点からなるグループ(図8)を構成し、ステップS3において、すべての遷移路をたどる一巡経路(図26)を求め、ステップS4において、この一巡経路および真理値表に基づいて解析用波形(図3)を生成する、という手順により解析用波形を得る点にある。ただ、これまでは、ステップS2の処理によって、単一のグループのみが構成される例を用いて説明を行ってきたが、実際に用いられている複雑な論理回路の場合、ステップS2の処理によって、複数のグループが構成されるのが一般的である。ここでは、このように複数のグループが構成された場合の取り扱いについて述べる。
【0049】
これまでの説明では、図1に示す単純な論理回路を例にとり、図8に示すようなグループが構成されることを述べた。しかしながら、この図8に示されている節点は、図2の真理値表に示されているすべての入力信号パターンに対応するものにはなっていない。すなわち、図2の真理値表に示されている8種類の入力信号パターン▲1▼〜▲8▼のうち、入力信号パターン▲6▼(節点「101」に対応)と入力信号パターン▲7▼(節点「110」に対応)とは、図8には示されていない。これは、この2つの節点が、ステップS2に示されている2つの条件を満足するようなペアを組むべき節点をもたないためである。たとえば、節点「101」に対して、ハミング距離が1である節点としては、節点「001」,節点「111」,節点「100」の3つが存在するが、いずれも出力信号Qの論理値は「1」と同一になるため、「出力信号パターンが互いに異なる」という2番目の条件を満たしていない。節点「110」も同様である。このため、これらの2つの節点を敢えて図に示すと、図27のように孤立した節点として表わされることになる。
【0050】
こうして、孤立した節点も1つの独立したグループを構成するものとして取り扱うとすれば、図27に破線で示すように、グループG1,G2,G3の3つのグループが構成されることになる。もっとも、通常は、このような孤立した節点を無視して解析用波形を生成しても大きな支障は生じることがない。実際、図3に示した解析用波形は、この孤立した節点「101」および「110」を無視した波形であり、この波形図には、パターン▲6▼,▲7▼は現れない。必要な場合には、図3に示す波形を生成した後、手作業によって、パターン▲6▼,▲7▼を適当な箇所に挿入することができる。もちろん、このような挿入を行えば、入力信号が必ず1ビットずつ変化し、かつ、出力信号に必ず変化が生じるという条件は完全には満たされなくなる。
【0051】
このように、完全に孤立した節点が生じた場合には、上述したように、これを無視して解析用波形を生成したり、後に手作業で追加したりすれば十分である。ところが、実用上の多くの論理回路(通常、図1に示す論理回路に比べれば、はるかに複雑な回路になる)の場合、ステップS2における処理により、それぞれが複数の節点からなる複数の実質的なグループが構成されるのが一般的である。このように、ステップS2において、複数の実質的なグループが構成された場合、個々のグループごとにステップS3の処理を行い、個々のグループごとにそれぞれ一巡経路を求めるようにすればよい。図28は、このようにして、4つのグループG1〜G4について、それぞれ一巡経路が求められた例を示す概念図である。ここで、a〜zの符号が付された点は、個々の節点を示しており、これらを結ぶ円は、各グループごとの一巡経路を示している。別言すれば、図28において、破線で囲まれた部分は、それぞれが図4に示す節点間遷移図に相当するものになる。したがって、たとえば、グループG1内の節点aとbとは、互いにハミング距離が1であり、かつ、出力信号パターンが互いに異なるという2条件を満足しており、いずれのグループ内においても、一巡経路で連結されている任意の節点は、この2条件を満足していることになる。
【0052】
しかしながら、このように別個独立した4つのグループG1〜G4のそれぞれに基づいて解析用波形を生成すると、4組のバラバラな波形が生成され好ましくない。そこで、最終的に1つのまとまった解析用波形を生成するために、図29に示すように、各グループを接続するためのグループ間遷移路TT1,TT2,TT3を定義し、全グループを相互に連結し、統括一巡経路を構成する。この図29に示す例では、節点dとnとの間にグループ間遷移路TT1を定義し、節点nとzとの間にグループ間遷移路TT2を定義し、節点zとkとの間にグループ間遷移路TT3を定義することにより、全体として1本の統括一巡経路が構成されている。すなわち、この統括一巡経路上には、節点d−e−f−g−h−a−b−c−d=n−o−p−q−r−s−n=z−t−u−v−w−x−y−z=k−j−i−m−l−kがこの順に並ぶことになる(ここで、−はグループ内の遷移路を示し、=はグループ間遷移路を示す)。更に、節点kとdとの間にグループ間遷移路TT4を定義したとすれば、全体がループ状に閉じた統括一巡経路を形成することができる。
【0053】
このような統括一巡経路が形成できれば、この統括一巡経路に沿った節点の順に、入力信号パターンを遷移させれば、目的となる入力信号波形を生成することができ、この入力信号波形に対応する出力信号波形を真理値表に基づいて生成することができる。
【0054】
図30は、このように、複数のグループが構成される場合の本発明の処理手順を示す流れ図である。前述した図5に示す流れ図と、この図30に示す流れ図との相違は、後者では、ステップS2において最終的に複数のグループが構成される点と、ステップS3において各グループごとにそれぞれ別個独立した一巡経路が求められる点と、ステップS3とS4との間に、各グループを接続するグループ間遷移路を連結することにより統括一巡経路を構成するステップS5が挿入される点と、ステップS4においてこの統括一巡経路に基づいて入力信号波形が生成される点である。
【0055】
§5. 統括一巡経路を形成する具体的な手法
ここでは、図30の流れ図におけるステップS5の処理、すなわち、統括一巡経路を求める処理の具体的な手法を説明する。図28に示す例のように、4つのグループG1〜G4が構成されている場合に統括一巡経路を形成するには、図29に示すように、各グループ間を連結するためのグループ間遷移路TT1,TT2,TT3を定義すればよい。別言すれば、ステップS5の統括一巡経路を求める処理は、実質的には、グループ間遷移路を定義する処理ということになる。
【0056】
グループ間遷移路は、一方のグループ内の節点と他方のグループ内の節点とを連結する遷移路であるから、ランダムに選んだ任意の節点同士を連結する遷移路であれば、どのような遷移路であっても、一応、グループ間遷移路としての機能を果たすことができる。しかしながら、最終的に生成される解析用波形として、なるべく最適化したものを得るためには、グループ間遷移路として、できるだけハミング距離が小さい節点間を連結する遷移路を採用するのが好ましい。図29において形成されている統括一巡経路上には、上述したように、節点d−e−f−g−h−a−b−c−d=n−o−p−q−r−s−n=z−t−u−v−w−x−y−z=k−j−i−m−l−kが、この順に並んでいるが、ここで、−はグループ内の遷移路でありハミング距離1の節点間の遷移路となっている。そこで、=で示されるグループ間遷移路も、できれば、ハミング距離1の節点間の遷移路となるようにするのが好ましい。しかし、実際には、すべてのグループ間遷移路までもハミング距離1とすることは困難であるから、現実的には、できるだけハミング距離の小さなグループ間遷移路を選択することになる。
【0057】
このようなグループ間遷移路の選択方法の一例を、図31の流れ図に基づいて説明する。ここに示す方法によって選択されたグループ間遷移路は、厳密な意味では、ハミング距離が最小となる最も理想的な組み合わせには、必ずしもならないかもしれないが、この方法によれば、比較的単純な演算負担で、理想に近い組み合わせを得ることが可能である。
【0058】
まず、ステップS41において、任意のグループを1つ選択する。たとえば、図28に示す例において、グループG1が選択されたものとしよう。続く、ステップS42では、選択されたグループ内の各節点の中から、最も小さいハミング距離で、他のグループと接続できるものを1つ決定し、この決定した節点と相手方の節点とをグループ間遷移路によって接続する。具体的には、たとえば、まずハミング距離の設定値として初期値1を設定し、グループG1内の節点aと、他のグループの個々の節点とのハミング距離を調べ、設定値に等しい1となるものがあるか否かを探索する。節点aについてそのような他のグループの節点がみつからなかったら、次に、節点bについて同様の探索を行う。こうして、節点c,d,e,f,g,hについても同様の探索を行ってゆき、条件を満たす節点の組み合わせが1対でもみつかったら、そこで探索を中断し、この1対の節点の間にグループ間遷移路を定義する。節点hについての探索を行っても、該当する節点対がみつからなかった場合には、ハミング距離の設定値を2に増加させ、同様の処理を行う。こうして、設定値を1ずつ順に増加させて同様の処理を行ってゆけば、必ず条件に該当する節点対がみつかることになる。
【0059】
なお、ある節点Aに対して、ハミング距離がHである他の節点を探索するには、節点AのビットパターンのうちのH個のビットを反転させてできるビットパターンをすべて生成し、この生成したビットパターンと同一のビットパターンをもつ節点を探し出せばよい。
【0060】
ここでは、たとえば、設定値を2として、節点dについての探索を実行中に、他のグループの節点nが条件を満たす節点としてみつかったものとする。この場合、節点対d−n間のハミング距離は2ということになる。もちろん、ハミング距離が2となるような節点対は他にも存在するかもしれないが、この方法では、最初にみつかった節点対d−nの間にグループ間遷移路を定義する。かくして、グループG1とG3とは、図29に示すグループ間遷移路TT1によって連結されることになる(図29に示すグループ間遷移路TT2,TT3は、まだこの段階では定義されていない)。
【0061】
続いて、ステップS43において、ステップS42において決定された両節点を端点リストに入れる処理が行われる。この端点リストは、現段階までに定義されている1本のグループ間遷移路もしくは複数本連結されたグループ間遷移路の両端点を構成する一対の節点を示すリストである。上述の例の場合、現段階までに定義されている1本のグループ間遷移路TT1の両節点d,nが端点リストに入れられることになる。
【0062】
次に、ステップS44において、全グループが接続されたと判断されるまで、ステップS45およびステップS46の処理が繰り返し実行されることになる。すなわち、まず、ステップS45において、端点リスト内の節点の中から、最も小さいハミング距離で他の未接続グループと接続できるものを決定し、この決定した節点と相手方の節点とをグループ間遷移路によって接続する。こうして、新たなグループ間遷移路を接続することにより、端点に変更が生じるので、ステップS46において、端点リストの更新を行う。
【0063】
このステップS45,S46の処理は、図29の実例を参照すると理解しやすい。いま、ステップS42において、グループ間遷移路TT1が定義され、ステップS43において、節点d,nが端点リストに入れられた状態において、ステップS44を経てステップS45が実行されたものとしよう。この場合、端点リストにある節点d,nの中から、最も小さいハミング距離で、他のグループと接続できるものが1つ決定され、この決定した節点と相手方の節点とが新たなグループ間遷移路によって接続されることになる。具体的には、やはり、ハミング距離の設定値として初期値1を設定し、端点リスト内の一方の節点dと、他のグループの個々の節点とのハミング距離を調べ、設定値に等しい1となるものがあるか否かを探索する。節点dについてそのような他のグループの節点がみつからなかったら、次に、端点リスト内のもう一方の節点nについて同様の探索を行う。節点nについてもそのような相手方の節点がみつからなかったら、今度は、ハミング距離の設定値を2に増加させ、同様の処理を行う。こうして、設定値を1ずつ順に増加させて同様の処理を行ってゆけば、必ず条件に該当する節点対がみつかることになる。
【0064】
ここでは、たとえば、設定値を3として、節点nについての探索を実行中に、他のグループの節点zが条件を満たす節点としてみつかったものとする。この場合、節点対n−z間のハミング距離は3ということになる。こうして、節点対n−zの間に新たなグループ間遷移路TT2が定義されることになる。このように、グループ間遷移路TT2が定義された段階では、もはや節点nは端点ではなくなっているので、現段階までに定義されている2本の連結されたグループ間遷移路(TT1+TT2)の両端点を構成する一対の節点d,zが新たな端点リストのメンバーとなる。そこで、ステップS46では、新たな端点リストのメンバーを、節点d,zに書き直す更新処理が実行される。
【0065】
続いて、再び、ステップS44を経てステップS45が実行されたものとしよう。この場合、端点リストにある節点d,zの中から、最も小さいハミング距離で、他のグループと接続できるものが1つ決定され、この決定した節点と相手方の節点とが新たなグループ間遷移路によって接続されることになる。ここでは、たとえば、設定値を2として、節点zについての探索を実行中に、他のグループの節点kが条件を満たす節点としてみつかったものとする。この場合、節点対z−k間のハミング距離は2ということになる。こうして、節点対z−kの間に新たなグループ間遷移路TT3が定義されることになる。このように、グループ間遷移路TT3が定義された段階では、もはや節点zは端点ではなくなっているので、現段階までに定義されている3本の連結されたグループ間遷移路(TT1+TT2+TT3)の両端点を構成する一対の節点d,kが新たな端点リストのメンバーとなる。そこで、ステップS46では、新たな端点リストのメンバーを、節点d,kに書き直す更新処理が実行される。
【0066】
ここで、再びステップS44に戻るが、この時点で既に全グループが接続された状態となっている。よって、この図31に示す処理は、ここで終了し、最終的に、図29に示すような3本のグループ間遷移路TT1,TT2、TT3が得られることになる。
【0067】
最後に、上述した方法によって、統括一巡経路を求めた結果を例示しておく。たとえば、図32に示すような3つのグループG1,G2,G3が構成されていた場合を考える。この場合、たとえば、図33に示すように、グループG1内の節点「0001」とグループG2内の節点「1111」とをグループ間遷移路TTaで連結し、更に、このグループG2内の節点「1111」とグループG3内の節点「1100」とをグループ間遷移路TTbで連結したとする。このようなランダムな連結を行うと、グループ間遷移路TTaのハミング距離は3となり、グループ間遷移路TTbのハミング距離は2となるので、グループ間遷移路の合計ハミング距離は5となる。これに対して、上述した図31の流れ図に基づく処理を行ってグループ間遷移路を定義すると、図34に示すような結果が得られる。すなわち、グループG1内の節点「0000」とグループG3内の節点「0100」とがグループ間遷移路TTcで連結され、このグループG3内の節点「0100」とグループG2内の節点「0111」とがグループ間遷移路TTdで連結される。この場合、グループ間遷移路TTcのハミング距離は1となり、グループ間遷移路TTdのハミング距離は2となるので、グループ間遷移路の合計ハミング距離は3となり、図33に示す例よりも短くなる。
【0068】
なお、上述の説明では、各グループが複数の節点を有する場合を例にとったが、たとえば、図27に示すように、孤立した節点のみを有するグループG2,G3についても、図31の流れ図に基づく処理を行い、これら孤立した節点をも含んだ統括一巡経路を形成することも可能である。
【0069】
【発明の効果】
以上のとおり本発明に係る解析用波形生成方法によれば、組み合わせ論理回路における解析用波形を効率良く生成することが可能になる。
【図面の簡単な説明】
【図1】単純な論理回路の一例を示す回路図である。
【図2】図1に示す論理回路の真理値表を示す図である。
【図3】図1に示す論理回路の解析に用いられる解析用波形の一例を示す波形図である。
【図4】図3に示す解析用波形に対応する節点間遷移図である。
【図5】本発明に係る解析用波形生成方法の基本手順を示す流れ図である。
【図6】図5に示す流れ図におけるステップS2の工程の第1段階の状態を示す図である。
【図7】図5に示す流れ図におけるステップS2の工程の第2段階の状態を示す図である。
【図8】図5に示す流れ図におけるステップS2の工程の第3段階の状態を示す図である。
【図9】図5に示す流れ図におけるステップS3の一巡経路を求める具体的な手法の一例を示す流れ図である。
【図10】節点「000」を処理対象節点としたときの図9に示すステップS32を実行した状態を示す図である。
【図11】節点「000」を処理対象節点としたときの図9に示すステップS34,S35を実行した状態を示す図である。
【図12】節点「001」を処理対象節点としたときの図9に示すステップS32を実行した状態を示す図である。
【図13】節点「001」を処理対象節点としたときの図9に示すステップS34,S35を実行した状態を示す図である。
【図14】節点「011」を処理対象節点としたときの図9に示すステップS32を実行した状態を示す図である。
【図15】節点「011」を処理対象節点としたときの図9に示すステップS34,S35を実行した状態を示す図である。
【図16】節点「011」を処理対象節点としたときの図9に示すステップS36を実行した状態を示す図である。
【図17】節点「011」を処理対象節点としたときの図9に示すステップS32を実行した状態を示す図である。
【図18】節点「011」を処理対象節点としたときの図9に示すステップS34,S35を実行した状態を示す図である。
【図19】節点「010」を処理対象節点としたときの図9に示すステップS32を実行した状態を示す図である。
【図20】節点「010」を処理対象節点としたときの図9に示すステップS36を実行した状態を示す図である。
【図21】節点「011」を処理対象節点としたときの図9に示すステップS36を実行した状態を示す図である。
【図22】節点「001」を処理対象節点としたときの図9に示すステップS36を実行した状態を示す図である。
【図23】節点「000」を処理対象節点としたときの図9に示すステップS36を実行した状態を示す図である。
【図24】節点「000」を処理対象節点としたときの図9に示すステップS32を実行した状態を示す図である。
【図25】節点「000」を処理対象節点としたときの図9に示すステップS34,S35を実行した状態を示す図である。
【図26】節点「000」を処理対象節点としたときの図9に示すステップS36を実行した状態を示す図である。
【図27】孤立した節点を含むグループ構成を示す図である。
【図28】複数のグループについてそれぞれ一巡経路が形成された状態を示す図である。
【図29】図28に示す4つのグループを接続するために、グループ間遷移路TT1,TT2,TT3を定義した状態を示す図である。
【図30】複数のグループが構成される場合の本発明に係る解析用波形生成方法の基本手順を示す流れ図である。
【図31】図30に示す流れ図におけるステップS5の統括一巡経路を求める具体的な手法の一例を示す流れ図である。
【図32】それぞれが複数の節点を含む3つのグループ構成の一例を示す図である。
【図33】図32に示す3つのグループを接続するためのグループ間遷移路の一例を示す図である。
【図34】図32に示す3つのグループについて、図31の流れ図に示す手法を適用して定義されたグループ間遷移路の一例を示す図である。
【符号の説明】
1〜4…論理ゲート
A〜C…入力信号
G1〜G4…グループ
Q…出力信号
T1〜T12…登録済遷移路
Ta〜Ti…未登録遷移路
TT1〜TT3…グループ間遷移路
TTa〜TTd…グループ間遷移路
a〜z…節点
Claims (4)
- 複数の論理ゲートを組み合わせてなる組み合わせ論理回路について、入力信号波形と出力信号波形とからなる解析用波形を生成する方法であって、
前記論理回路について、入力信号パターンと出力信号パターンとの対応関係を示す真理値表を作成する第1の段階と、
1つの入力信号パターンを1節点に対応させ、前記真理値表内の複数の入力信号パターンを複数の節点として表現し、互いのハミング距離が1であり、かつ、前記真理値表において対応づけられた出力信号パターンが互いに異なる、という2条件を満たす一対の節点間に、一方から他方へ向かう遷移路と他方から一方へ向かう遷移路とからなる方向性をもった一対の遷移路を定義し、これらの遷移路によって互いに結合された一群の節点からなるグループを構成する第2の段階と、
定義されたすべての遷移路を順方向にたどりながら、前記グループを構成するすべての節点を通る一巡経路を求める第3の段階と、
前記一巡経路に沿った節点の順に、入力信号パターンを遷移させることにより入力信号波形を生成し、前記真理値表に基づいて、生成した入力信号波形に対応する出力信号波形を生成する第4の段階と、
を有することを特徴とする組み合わせ論理回路における解析用波形生成方法。 - 請求項1に記載の解析用波形生成方法において、一巡経路を求める第3の段階で、
処理対象節点から隣接節点へ向かう未登録遷移路がない場合にはこの処理を直ちに完了し、処理対象節点から隣接節点へ向かう未登録遷移路がある場合には、この未登録遷移路を登録し、前記隣接節点が過去に処理対象になったことがなければ下記(a) ,(b) の2つの作業を実行した後に前記隣接節点から前記処理対象節点へ戻る遷移路を登録し、前記隣接節点が過去に処理対象になったことがあれば下記(a) ,(b) の2つの作業を実行せずに前記隣接節点から前記処理対象節点へ戻る遷移路を登録する、
という処理を、任意の節点から始めて再帰的に全節点について行い、登録された遷移路を登録順に結合することにより一巡経路を求めるようにしたことを特徴とする組み合わせ論理回路における解析用波形生成方法、
(a) 前記隣接節点から前記処理対象節点へ向かう未登録遷移路を消去する作業、
(b) 前記隣接節点を新たな処理対象として前記処理を再帰的に実行する作業。 - 請求項1または2に記載の解析用波形生成方法において、第2の段階で互いに独立した複数のグループが構成された場合に、
個々のグループごとに第3の段階を実行してそれぞれ一巡経路を求め、1つのグループ内の特定の1節点と別なグループ内の特定の1節点とを相互に接続するグループ間遷移路を定義することにより、個々のグループが所定の順序で一列に接続されるようにし、全グループに属するすべての節点を通る統括一巡経路を求めるようにし、
第4の段階では、前記統括一巡経路に沿った節点の順に、入力信号パターンを遷移させることにより入力信号波形を生成し、真理値表に基づいて、生成した入力信号波形に対応する出力信号波形を生成するようにしたことを特徴とする組み合わせ論理回路における解析用波形生成方法。 - 請求項3に記載の解析用波形生成方法において、統括一巡経路を求める処理を行う際に、
任意のグループを1つ選択し、この選択したグループに属する各節点の中から、最も小さいハミング距離で他のグループに属する節点とグループ間遷移路で接続できるものを決定し、
1本のグループ間遷移路もしくは複数本連結されたグループ間遷移路の両端点を構成する一対の節点のうち、最も小さいハミング距離で他の未接続グループに属する節点と新たなグループ間遷移路で接続できるものを決定し、この新たなグループ間遷移路を一方の端点に連結する、という処理を、全グループ間がグループ間遷移路によって連結されるまで繰り返し実行し、
すべての一巡経路とすべてのグループ間遷移路とにより、統括一巡経路を構成するようにしたことを特徴とする組み合わせ論理回路における解析用波形生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP8883396A JP3597635B2 (ja) | 1996-03-18 | 1996-03-18 | 組み合わせ論理回路における解析用波形生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP8883396A JP3597635B2 (ja) | 1996-03-18 | 1996-03-18 | 組み合わせ論理回路における解析用波形生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH09257885A JPH09257885A (ja) | 1997-10-03 |
JP3597635B2 true JP3597635B2 (ja) | 2004-12-08 |
Family
ID=13953956
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP8883396A Expired - Fee Related JP3597635B2 (ja) | 1996-03-18 | 1996-03-18 | 組み合わせ論理回路における解析用波形生成方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3597635B2 (ja) |
-
1996
- 1996-03-18 JP JP8883396A patent/JP3597635B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH09257885A (ja) | 1997-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7162706B2 (en) | Method for analyzing and validating clock integration properties in circuit systems | |
Burns | Performance analysis and optimization of asynchronous circuits | |
JP2626920B2 (ja) | スキャンテスト回路およびそれを用いた半導体集積回路装置 | |
US6470486B1 (en) | Method for delay-optimizing technology mapping of digital logic | |
EP1916534B1 (en) | Verification and generation of timing exceptions | |
US20060107240A1 (en) | Logic injection | |
US6618841B1 (en) | Non-assignable signal support during formal verification of circuit designs | |
JP4495865B2 (ja) | 業者間アプリケーションサービスプロバイダ | |
Han et al. | GUI-enhanced layout generation of FFE SST TXs for fast high-speed serial link design | |
JP3246865B2 (ja) | スタティックタイミング解析装置及びその方法 | |
JP3597635B2 (ja) | 組み合わせ論理回路における解析用波形生成方法 | |
US7146590B1 (en) | Congestion estimation for programmable logic devices | |
US7080333B1 (en) | Verifying logic synthesizers | |
US6877040B1 (en) | Method and apparatus for testing routability | |
Fayyazi et al. | A logic verification framework for SFQ and AQFP superconducting circuits | |
TWI719917B (zh) | 將類比動態電路運用於數位測試工具的處理方法 | |
Sheeran | Finding regularity: describing and analysing circuits that are not quite regular | |
Aarna et al. | Parallel fault simulation of digital circuits | |
JPH06232735A (ja) | 同期ディジタル電子回路の設計方法 | |
Sinha et al. | Sequential SPFDs | |
CN114064654A (zh) | 集成电路的逻辑关系系统的建立方法及查询方法 | |
JP3808129B2 (ja) | 組み合わせ論理回路における真理値表作成装置 | |
JPH06243190A (ja) | 論理シミュレータ | |
JP2000113016A (ja) | 論理等価性検証方法 | |
JP3923568B2 (ja) | 組み合せ回路の機能抽出方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040720 |
|
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: 20040907 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040909 |
|
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: 20080917 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090917 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090917 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100917 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |