JPH09179897A - Variable exchange method for binary decision graph - Google Patents
Variable exchange method for binary decision graphInfo
- Publication number
- JPH09179897A JPH09179897A JP7335245A JP33524595A JPH09179897A JP H09179897 A JPH09179897 A JP H09179897A JP 7335245 A JP7335245 A JP 7335245A JP 33524595 A JP33524595 A JP 33524595A JP H09179897 A JPH09179897 A JP H09179897A
- Authority
- JP
- Japan
- Prior art keywords
- variable
- node
- exchange
- binary decision
- exchanging
- 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.)
- Granted
Links
Abstract
Description
【0001】[0001]
【発明の属する技術分野】本発明は、論理回路などの論
理関数を表現する2分決定グラフ(Binary Decision Dia
gram,場合によりBDDと記す)で、隣接する二つの変
数の順序を交換する方法に関する。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a binary decision graph representing a logical function such as a logic circuit.
gram, sometimes referred to as BDD), for exchanging the order of two adjacent variables.
【0002】[0002]
【従来の技術】2分決定グラフは、効率のよい論理関数
の表現方式として広く認知され、論理合成、論理設計検
証、テスト発生などの多くの論理回路設計支援ツールに
広く用いられるようになってきている。2分決定グラフ
については、下記の文献に詳しく書いてあるので、ここ
では詳しい説明は省略する。2. Description of the Related Art A binary decision graph has been widely recognized as an efficient method of expressing a logic function, and has been widely used in many logic circuit design support tools such as logic synthesis, logic design verification, and test generation. ing. Since the binary decision graph is described in detail in the following document, detailed description is omitted here.
【0003】図11および図12に2分決定グラフの例
を示す。いずれの場合も、11 and 12 show examples of binary decision graphs. In either case,
【数1】 f(v1 ,v2 ,v3 ,v4 )=v1 ・v3 +v2 ・v4 …(1) という論理関数を表現している。[Expression 1] f (v 1 , v 2 , v 3 , v 4 ) = v 1 · v 3 + v 2 · v 4 (1) represents a logical function.
【0004】図11と図12の違いは、変数の順序付け
の違いである。図11では、{v1,v2 ,v3 ,
v4 }という変数順序であるのに対し、図12では{v
1 ,v3,v2 ,v4 }という変数順序となっている。
この変数順序の違いにより、ノード数(これを2分決定
グラフのサイズと呼ぶことにする)が違ってくる。図1
1では、2分決定グラフのサイズは6であるのに対し、
図12では4である。The difference between FIG. 11 and FIG. 12 is the difference in variable ordering. In FIG. 11, {v 1 , v 2 , v 3 ,
While the variable order is v 4 }, in FIG.
The variable order is 1 , v 3 , v 2 , v 4 }.
Due to the difference in the variable order, the number of nodes (which will be called the size of the binary decision graph) is different. FIG.
In 1, the size of the binary decision graph is 6, whereas
In FIG. 12, it is 4.
【0005】変数順序の違いによるノード数の違いは、
表現しようとする論理関数が複雑になればなるほど顕著
になる。したがって、複雑な論理関数を効率よく処理す
るためには、ノード数が少なくなるような変数順序を求
めることが重要になってくる。The difference in the number of nodes due to the difference in variable order is
The more complex the logical function to be expressed, the more remarkable it becomes. Therefore, in order to process a complicated logical function efficiently, it is important to find a variable order that reduces the number of nodes.
【0006】ノード数が小さくなるような変数順序とそ
の変数順序を用いた2分決定グラフを求める方法のひと
つとして、適当な初期変数順序で2分決定グラフを作っ
た後に、変数の順序を少しずつ入れ換えるなどして変形
していくことにより、より小さい2分決定グラフを求め
るという方法がある。このような2分決定グラフの最小
化アルゴリズムの一つとしてシフティング(sifti
ng)アルゴリズム(文献5に記載)がある。このアル
ゴリズムは、他の最小化アルゴリズムに比べて、より小
さい2分決定グラフを求めることができるが、処理時間
が長くかかるという問題があることが知られている。As one of methods for obtaining a binary decision graph using the variable order and the variable order in which the number of nodes becomes small, after the binary decision graph is created in an appropriate initial variable order, the variable order is slightly changed. There is a method of obtaining a smaller binary decision graph by transforming it by replacing it with each other. As one of the minimization algorithms for such a binary decision graph, shifting (sifti)
ng) algorithm (described in Reference 5). This algorithm can obtain smaller BDDs than other minimization algorithms, but it is known that it takes a long processing time.
【0007】siftingアルゴリズムは、全ての変
数をノード数の大きい順にソートして、ソートした順
に、各変数について、最適位置を求めて、その位置へ移
動させる。ここで、各変数の最適位置は、以下のように
求める。注目する変数をsifting変数と呼ぶ。The shifting algorithm sorts all variables in descending order of the number of nodes, finds the optimum position for each variable in the sorted order, and moves it to that position. Here, the optimum position of each variable is obtained as follows. The variable of interest is called a shifting variable.
【0008】1.sifting変数が最下位変数にな
るまで直下の変数と交換する。各変数交換後、BDDサ
イズが最小値であれば、その最小値とその位置を記憶し
ておく。[0008] 1. Swap the shifting variable with the variable immediately below until it becomes the lowest variable. After the exchange of each variable, if the BDD size is the minimum value, the minimum value and its position are stored.
【0009】2.次に、sifting変数が最上位変
数になるまで直上の変数と交換する。各変数交換後、B
DDサイズが最小値であれば、その最小値とその位置を
記憶しておく。[0009] 2. Next, the shifting variable is exchanged with the variable immediately above until it becomes the top variable. After each variable exchange, B
If the DD size is the minimum value, the minimum value and its position are stored.
【0010】3.最後に、BDDサイズが最小になる位
置になるまで、直下の変数と交換する。3. Finally, the variable immediately below is exchanged until the BDD size reaches the minimum position.
【0011】図11の2分決定グラフv2 の最適位置を
求めるのにsiftingアルゴリズムを適用した時の
変数順序の変化の様子を図13に示す。図12は、最終
的に得られた変数順序の2分決定グラフである。まず、
v2 は直下の変数と交換しながら、下方向へ移動し、最
下位まで移動する。次に、今度は、直上の変数と交換し
ながら、上方向へ移動し、最上位まで移動する。最後
に、直下の変数と交換しながら、下方向へ移動し、最適
位置(この例の場合は上から3番目の位置)へ移動す
る。FIG. 13 shows how the variable order changes when the shifting algorithm is applied to find the optimum position of the binary decision graph v 2 of FIG. FIG. 12 is a binary decision graph of the variable order finally obtained. First,
v 2 moves downward to the bottom while exchanging with the variable directly below. Next, this time, while moving to the variable immediately above, it moves upward and moves to the top. Finally, while exchanging with the variable directly below, it moves downward and moves to the optimum position (the third position from the top in this example).
【0012】この例の場合、全部で7回の変数交換を行
っている。これらの変数交換の中には、同じ変数の対に
対して、行っているものがある。例えば、v2 とv3 に
関しては、全部で3回行っているし、他の変数対、v2
とv1 、v2 とv4 に関しては、それぞれ2回行ってい
る。このように、siftingアルゴリズムは、一連
の隣接変数の交換処理からなっている。In the case of this example, the variable exchange is performed 7 times in total. Some of these variable exchanges are performed on the same pair of variables. For example, with respect to v 2 and v 3, it is done three times in total, and another variable pair, v 2
And v 1 and v 2 and v 4 are each performed twice. Thus, the shifting algorithm consists of a series of exchange processing of adjacent variables.
【0013】次に、図10は上述のsiftingアル
ゴリズムで用いられる2分決定グラフの変数交換方法を
示したフローチャートである。このフローチャートは変
数vとその直下の変数wを交換する処理を行うものであ
る。Next, FIG. 10 is a flow chart showing a method for exchanging variables of a binary decision graph used in the above-mentioned shifting algorithm. This flowchart is a process for exchanging the variable v and the variable w immediately below it.
【0014】ステップS1001でsifting変数
vのノードのうち、二つの子ノードの少なくとも一つが
wのノードであるようなノードを探し、そのようなノー
ドをすべてユニークテーブルからとり除き、Pに格納す
る。このようなノードを、ピボットノードと呼ぶことに
する。続いて、ステップS1003にてPからノードを
1つ取り出し、そのノードをFとする。この際にFをP
から削除を行う。In step S1001, a node in which at least one of the two child nodes is a node of w among the nodes of the shifting variable v is searched for, all such nodes are removed from the unique table, and stored in P. Such a node will be called a pivot node. Then, in step S1003, one node is taken out from P and the node is set to F. At this time, F to P
Delete from.
【0015】続いて、ステップS1004でFに対する
変数交換後の子ノードF1 ´,F0´を求め、ステップ
S1005でFのノードの内部状態(変数,子ノード)
を新しい状態(w,F1 ´,F0 ´)に書き換え、ステ
ップS1006にて、書き換えられたFをユニークテー
ブル(unique table)に登録を行う。Subsequently, in step S1004, child nodes F 1 ′ and F 0 ′ after variable exchange for F are obtained, and in step S1005 the internal state of the node F (variable, child node).
To a new state (w, F 1 ′, F 0 ′), and in step S1006, the rewritten F is registered in the unique table (unique table).
【0016】上記のステップS1003からステップS
1006までをPに格納されているノードがなくなるま
で行う(ステップS1002)。From step S1003 to step S
The process up to 1006 is performed until there is no node stored in P (step S1002).
【0017】この変数交換処理の中で、中心となる処理
は、ピボット・ノードの内部状態の更新であることに注
意する。It should be noted that the main processing in this variable exchange processing is the update of the internal state of the pivot node.
【0018】ここで、ユニークテーブルは、同じ子ノー
ドを持つノードができないようにするために使用するデ
ータ構造であり、このユニークテーブルには、すべての
ノードが登録されている。ユニークテーブルは、例え
ば、ノードの変数と二つの子ノードを与えて、それと等
価なノードが存在しているかどうかを調べ、存在してい
ればそのノードを返し、存在していなければ、新たにそ
のノードを作るようにして、変数、子ノードからノード
を一定時間でアクセスできるようにしており、また、ユ
ニークテーブルを変数ごとに分けることにより、ある変
数のノードをすべて調べるということを、ユニークテー
ブルをスキャンすることで容易に実現できるようにして
いる。Here, the unique table is a data structure used to prevent nodes having the same child nodes from being created, and all nodes are registered in this unique table. The unique table, for example, gives a variable of a node and two child nodes, checks whether an equivalent node exists, returns the node if it exists, and returns the node if it does not exist. Nodes are created so that nodes can be accessed from variables and child nodes in a fixed time. Also, by dividing the unique table for each variable, it is possible to check all nodes of a certain variable. It can be easily realized by scanning.
【0019】次に、図14に従来の変数交換アルゴリズ
ムのプログラム的な表現例を示す。この表現例で用いら
れている手続collect_pivot_nodeは
ステップS1001に、手続find_or_crea
te_new_then_node,及びfind_o
r_create_new_else_nodeはステ
ップS1004に、手続overwrite_node
_stateはステップS1005に、手続add_n
ode_to_unique_tableはステップS
1006に、それぞれ相当する。Next, FIG. 14 shows an example of a programmatic expression of a conventional variable exchange algorithm. The procedure collect_pivot_node used in this expression example is the same as the procedure find_or_creat in step S1001.
te_new_then_node and find_o
For r_create_new_else_node, the procedure overwrite_node is performed in step S1004.
_State is step S1005, and the procedure add_n
ode_to_unique_table is step S
1006 respectively.
【0020】参考文献 [1] K.S.Brace,R.L.Rudell, and R.E.Bryant. Efficien
t implementation ofa BDD package. In Proc.27th Des
ign Automation Conference,pages 40-45, June 1990. [2] R.E.Bryant. Graph-based algorithms for Boolean
function manipulation. IEEE Trans. Comput.,C-35
(8):677-691, Aug. 1986. [3] M.Fujita, H.Fujisawa,and Y.Matsunaga. Variable
ordering algorithmsfor ordered binary decision di
agrams and their evaluation.IEEE Trans. Comput.-Ai
ded Des. of Integrated Circuits and Syst.,12(1):6-
12, Jan 1993.Reference [1] KSBrace, RL Rudell, and REBryant. Efficien
t implementation of a BDD package. In Proc. 27th Des
ign Automation Conference, pages 40-45, June 1990. [2] REBryant. Graph-based algorithms for Boolean
function manipulation.IEEE Trans.Comput., C-35
(8): 677-691, Aug. 1986. [3] M. Fujita, H. Fujisawa, and Y. Matsunaga. Variable
ordering algorithms for ordered binary decision di
agrams and their evaluation.IEEE Trans. Comput.-Ai
ded Des. of Integrated Circuits and Syst., 12 (1): 6-
12, Jan 1993.
【0021】[4] S.Malik, A.R.Wang, R.K.Brayton,and
A.Sangiovanni-Vincentelli. Logic verification usi
ng binary decision diagrams in a logic synthesis e
nvironment. In Proc. International Conference on C
omputer-Aided Design, pages 6-9, Nov.1988. [5] R.Rudell. Dynamic variable ordering for ordere
d binary decision diagrams. In Proc. International
Conference on Computer-Aided Design, pages 42-47,
Nov.1993.[4] S. Malik, ARWang, RK Brayton, and
A. Sangiovanni-Vincentelli. Logic verification usi
ng binary decision diagrams in a logic synthesis e
nvironment. In Proc. International Conference on C
omputer-Aided Design, pages 6-9, Nov.1988. [5] R. Rudell. Dynamic variable ordering for ordere
d binary decision diagrams. In Proc. International
Conference on Computer-Aided Design, pages 42-47,
Nov.1993.
【0022】[0022]
【発明が解決しようとする課題】siftingアルゴ
リズムは、他のアルゴリズムに比べ、より小さいBDD
を得ることができることが実証されており、その点では
有効である。しかし、一方では、このアルゴリズムは、
他のアルゴリズムに比べ、実行時間が多くかかるという
実用的な問題があり、その高速化が望まれている。The shifting algorithm has a smaller BDD than other algorithms.
It has been proved that the above can be obtained, and it is effective in that respect. But on the other hand, this algorithm
There is a practical problem that the execution time is longer than that of other algorithms, and its speeding up is desired.
【0023】siftingアルゴリズムの処理のほと
んどは、変数交換処理であるから、変数交換処理の高速
化を行うことで、siftingアルゴリズムの高速化
を実現できる。Since most of the processing of the shifting algorithm is the variable exchanging process, the speed of the shifting algorithm can be increased by accelerating the variable exchanging process.
【0024】変数交換処理の高速化を検討する上で、s
iftingアルゴリズムの中で変数交換がどのように
行われているかを見てみる。図3の例を見ればわかるよ
うに、一つのsifting変数に対する最適位置を求
めるためには、最悪の場合、一つの変数対に対して3回
の変数交換を行う必要がある。ここで、注意する必要が
あるのは、1回目の変数交換処理の直前と2回目の変数
交換処理直後とでは、2分決定グラフは全く同一である
し、1回目の変数交換処理の直後と2回目の変数交換処
理の直前とでも、やはり2分決定グラフは全く同一であ
るはずである。つまり、1回目と2回目の変数交換処理
は、互いに逆の処理を行っており、また可逆であると言
える。また、1回目と3回目の変数交換処理は、全く同
じ処理である。In considering the speedup of the variable exchange processing, s
Let's see how variable exchange is performed in the ifing algorithm. As can be seen from the example of FIG. 3, in order to obtain the optimum position for one shifting variable, it is necessary to perform variable exchange three times for one variable pair in the worst case. Here, it should be noted that the binary decision graphs are exactly the same immediately before the first variable exchanging process and immediately after the second variable exchanging process, and immediately after the first variable exchanging process. Even just before the second variable exchange process, the binary decision graph should be exactly the same. That is, it can be said that the first and second variable exchanging processes are reverse processes and are reversible. The first and third variable exchanging processes are exactly the same.
【0025】このように、siftingアルゴリズム
において、同一の変数組に対して、変数交換処理が複数
回行われ、それらの変数交換処理が、逆または同一の関
係にある。しかし、従来の変数交換方法では、このよう
なことについて、何も考慮されていない。As described above, in the shifting algorithm, the variable exchanging process is performed a plurality of times for the same variable set, and the variable exchanging processes have an inverse or the same relation. However, the conventional variable exchange method does not consider such a matter.
【0026】本発明は、上記事情に鑑みてなされたもの
であり、その目的とするところは、同一の変数の組に対
して、可逆な変数交換を複数回行う場合に、2回目以降
の変数交換を高速に実行することができる2分決定グラ
フの変数交換方法を提供することである。The present invention has been made in view of the above circumstances, and an object of the present invention is to provide a variable after the second time when reversible variable exchange is performed a plurality of times for the same set of variables. An object of the present invention is to provide a method for exchanging variables in a binary decision graph, which enables the exchange to be executed at high speed.
【0027】[0027]
【課題を解決するための手段】上記目的を達成するた
め、第1の発明の特徴は、論理関数を表現する2分決定
グラフの変数を交換する方法において、前記2分決定グ
ラフの隣接する2つの変数を交換する際に、その変数交
換により内部状態が更新されるノードについて、ノード
毎に更新前のノードの内部状態を記憶し、再びその2つ
の変数を交換する際に前回の変数交換の際に記憶した更
新前のノードの内部状態を新しいノードの内部状態と
し、現在のノードの内部状態を更新前のノードの内部状
態として記憶することにより変数交換を行うことであ
る。In order to achieve the above object, a feature of the first invention is a method of exchanging variables of a binary decision graph representing a logical function, in which two adjacent binary decision graphs are connected. When exchanging two variables, the internal state of the node before the update is stored for each node whose internal state is updated by the variable exchange, and when exchanging the two variables again, The variable exchange is performed by storing the internal state of the node before update stored at that time as the internal state of the new node and storing the internal state of the current node as the internal state of the node before update.
【0028】また、第2の発明の特徴は、論理関数を表
現する2分決定グラフの変数を交換する方法において、
前記2分決定グラフの隣接する変数を交換する際に、そ
の変数交換により内部状態が更新されるノードの集合を
記憶し、再びその2つの変数を交換する際に、前回の変
数交換の際に記憶した前記ノードの集合に含まれる各ノ
ードに対して内部状態の更新を行うことにより変数交換
を行うことである。Further, a feature of the second invention is that in a method of exchanging variables of a binary decision graph expressing a logical function,
When exchanging adjacent variables of the binary decision graph, a set of nodes whose internal states are updated by the variable exchange is stored, and when exchanging the two variables again, the previous variable exchange is performed. The variable exchange is performed by updating the internal state of each node included in the stored set of nodes.
【0029】上記発明は、同一の隣接する2つの変数の
組の変数交換を複数回行う時に、2回目以降の変数交換
を高速に行うようにしたものである。In the above invention, when the variable exchange of the same two adjacent variable sets is performed a plurality of times, the second and subsequent variable exchanges are performed at high speed.
【0030】同一の隣接する2つの変数の組の、1回目
の変数交換の際に、内部状態が変更されるノードの集合
を記憶し、変更される前の状態を記憶する。このように
することにより、2回目以降の変数交換は、高速に行う
ことができるのである。At the time of the first variable exchange of the same pair of two adjacent variables, the set of nodes whose internal state is changed is stored, and the state before the change is stored. By doing so, the second and subsequent variable exchanges can be performed at high speed.
【0031】まず、内部状態を変更すべきノードを求め
る必要があるが、1回目の変数交換の際に内部状態が変
更されたノードの集合をそのまま用いればよい。それ
は、2回目以降の変数交換においても、内部状態が変更
されるノードはまったく同一であるからである。First, it is necessary to find a node whose internal state should be changed, but the set of nodes whose internal state is changed may be used as it is in the first variable exchange. This is because the nodes whose internal states are changed are exactly the same even in the second and subsequent variable exchanges.
【0032】内部状態が変更されるノードの集合を求め
る処理は、従来の技術では、交換する2つの変数のうち
の上位の変数のすべてのノードを調べる必要があり、上
位の変数のノード数をnとすると、O(n)の計算の手
間が必要であるが、本発明では、1回目に既に求めてあ
るので、この部分の手間は必要なく、その分高速に行う
ことができる。In the process of obtaining the set of nodes whose internal states are changed, in the conventional technique, it is necessary to check all the nodes of the upper variable of the two variables to be exchanged, and the number of nodes of the upper variable is calculated. If n, it is necessary to calculate O (n). However, in the present invention, since it has already been calculated for the first time, this part does not need to be calculated.
【0033】次に、内部状態の変更が必要なノードに対
して、内部状態の変更を行う。その際に、前回の変数交
換の変更前のノードの内部状態を用いる。すなわち、ノ
ードの内部状態を、保持されている変更前のノードの内
部状態に更新し、同時に、次回の変数交換のために、変
更前のノードの内部状態を記憶、保持する。別の言い方
をすれば、保持されている前回の変数交換の際の変更前
のノードの内部状態と現在のノードの内部状態を交換す
るということになる。また、変換前の内部状態と変換後
の内部状態を両方とも、現在の内部状態とは別に保持す
るようにした場合には、変数交換の処理は、現在の内部
状態を保持している二つの内部状態のいずれかに置き換
えるだけになる。Next, the internal state is changed for the node whose internal state needs to be changed. At that time, the internal state of the node before the change of the previous variable exchange is used. That is, the internal state of the node is updated to the retained internal state of the node before the change, and at the same time, the internal state of the node before the change is stored and retained for the next variable exchange. In other words, the internal state of the node before the change in the previous variable exchange held and the internal state of the current node are exchanged. Also, if both the internal state before conversion and the internal state after conversion are held separately from the current internal state, the variable exchange process will be performed on the two internal states that hold the current internal state. Just replace it with one of the internal states.
【0034】ノードの内部状態を更新する処理は、従来
の技術では、変数交換後の子ノードを求める処理で、コ
ファクタを求める処理や等価ノードが存在するか否か等
の処理でユニークテーブルのアクセスなどを行う必要が
あるが、本発明では、変数交換後の子ノードは、既に保
持されているので、子ノードを求める処理が不要とな
り、その分高速に行うことができる。In the conventional technique, the process of updating the internal state of a node is a process of obtaining a child node after variable exchange, and a process of obtaining a cofactor, a process of determining whether an equivalent node exists, and the like are used to access a unique table. However, in the present invention, since the child node after the variable exchange is already held, the process for obtaining the child node is unnecessary, and the process can be performed at a high speed.
【0035】[0035]
【発明の実施の形態】以下、本発明に係る2分決定グラ
フの変数交換方法の実施の形態について図面を参照しな
がら詳細に説明する。BEST MODE FOR CARRYING OUT THE INVENTION Embodiments of a variable exchange method for a binary decision graph according to the present invention will be described in detail below with reference to the drawings.
【0036】本実施の形態では通常のコンピュータシス
テムを用いることにする。このコンピュータシステムの
ハードウエア構成は、各種処理を行うためのCPUと、
キーボード、マウス、ライトペン、又はフレキシブルデ
ィスク装置等の入力装置と、メモリ装置やディスク装置
等の外部記憶装置と、ディスプレイ装置、プリンタ装置
等の出力装置等とを備えている。なお、前記CPUは、
各種の命令を実行する演算部と、前記命令を記憶する主
記憶部とを具備する。In this embodiment, an ordinary computer system will be used. The hardware configuration of this computer system includes a CPU for performing various processes,
An input device such as a keyboard, a mouse, a light pen, or a flexible disk device, an external storage device such as a memory device or a disk device, and an output device such as a display device or a printer device are provided. The CPU is
An arithmetic unit that executes various instructions and a main storage unit that stores the instructions are provided.
【0037】ここで、本実施形態においては図13に示
したsiftingアルゴリズムに示す如く実行するも
のとし、このsiftingアルゴリズムについての説
明は上述と同様なのでその説明は省略する。Here, in the present embodiment, it is assumed that it is executed as shown in the shifting algorithm shown in FIG. 13. The description of this shifting algorithm is the same as that described above, and therefore its explanation is omitted.
【0038】図1は本実施形態の2分決定グラフの変数
交換方法を示したフローチャートである。このフローチ
ャートはsiftingアルゴリズムで使用する変数交
換処理を表しており、sifting変数vとvの直下
の変数wとを交換するものである。このフローチャート
では、変数の組(v,w)の交換に対するピボット・ノ
ードの集合をwに付属するデータ構造w.Pに保存する
ようにしている。通常、このデータ構造はリンク付きリ
スト構造を用いるのがよい。FIG. 1 is a flow chart showing a method of exchanging variables for a binary decision graph of this embodiment. This flowchart represents the variable exchange process used in the shifting algorithm, and the shifting variable v and the variable w immediately below v are exchanged. In this flow chart, the set of pivot nodes for the exchange of the set of variables (v, w) is the data structure w. I try to save it in P. Usually, this data structure is preferably a linked list structure.
【0039】図示はしていないが、sifting変数
wとwの直上の変数vとを交換する場合には、変数の組
(v,w)の交換に対するピボット・ノードの集合は、
vに属するデータ構造v.Pに保存するようにする。以
下、図1のフローチャートの説明をする。Although not shown, when the shifting variable w and the variable v immediately above w are exchanged, the set of pivot nodes for the exchange of the set of variables (v, w) is
data structure belonging to v Save it in P. The flowchart of FIG. 1 will be described below.
【0040】まず、ステップS101ではvとwに対す
る最初の変数交換か否かの判断を行う。最初の変数交換
であれば、ステップS102に進む。ステップS102
ではsifting変数vのノードのうち、少なくとも
1つの子ノードがwのノードであるノード(ピボット・
ノード)を全て集めてw.Pへ格納する。First, in step S101, it is determined whether or not it is the first variable exchange for v and w. If it is the first variable exchange, the process proceeds to step S102. Step S102
Then, among the nodes of the shifting variable v, at least one child node is a node of w (a pivot node
Nodes) and w. Store in P.
【0041】続いて、ステップS103ではw.Pへ格
納されたノードのうち、未処理のノードの有無について
の判断を行い、ステップS104にてこのw.Pへ格納
された未処理のノードを1つ選ぶ。以下の説明の便宜
上、この選ばれたノードをFとする。ステップS105
ではステップS104の選ばれたノードの内部状態を保
存しておく。Succeedingly, in a step S103, w. It is determined whether or not there is an unprocessed node among the nodes stored in P. In step S104, this w. Select one unprocessed node stored in P. For convenience of the following description, this selected node is designated as F. Step S105
Then, the internal state of the selected node in step S104 is saved.
【0042】続いて、ステップS106では、Fに対す
る変数交換後の子ノードF1 ´,F0 ´を求めて、ステ
ップS107でFのノード状態を(w,F1 ´,F
0 ´)に書換える。Succeedingly, in a step S106, child nodes F 1 ′ and F 0 ′ after the variable exchange with respect to F are obtained, and in a step S107, the node state of F is (w, F 1 ′, F).
Rewrite as 0 ').
【0043】上記のステップS104からステップS1
07までをw.Pに格納されているノードがなくなるま
で行う(ステップS103)。Steps S104 to S1 described above
07 to w. The process is repeated until there are no nodes stored in P (step S103).
【0044】ここで、最初の変数交換の場合は従来例に
示した変数交換と類似した処理となるが本実施形態にお
ける変数交換の場合においては、ピボット・ノードを、
w.Pに保存するようにしていることと、ピボット・ノ
ードの内部状態の更新が終わった後も、ピボット・ノー
ドをユニークテーブルに戻さないようにしていることが
従来の変数交換の場合と異なる。Here, in the case of the first variable exchange, the processing is similar to the variable exchange shown in the conventional example, but in the case of the variable exchange in the present embodiment, the pivot node is replaced by
w. It is different from the conventional variable exchange in that it is stored in P and that the pivot node is not returned to the unique table even after the internal state of the pivot node is updated.
【0045】一方、ステップS102にて、vとwに対
する最初の変数交換でない場合、即ち2回目以降の変数
交換の場合にはステップS108以降を実行する。まず
ステップS108では、w.Pへ格納されたノードのう
ち、未処理のノードの有無についての判断を行い、w.
Pへ格納された未処理のノードを1つ選ぶ(ステップS
109)。次に、w.Pに保存されているすべてのピボ
ット・ノードに対して、前回の変数交換前の内部状態と
現在の内部状態の交換を行う(ステップS110)。On the other hand, in step S102, if it is not the first variable exchange for v and w, that is, if it is the second and subsequent variable exchanges, step S108 and the subsequent steps are executed. First, in step S108, w. Among the nodes stored in P, it is judged whether there is an unprocessed node, and w.
Select one unprocessed node stored in P (step S
109). Then w. For all pivot nodes stored in P, the internal state before the previous variable exchange and the current internal state are exchanged (step S110).
【0046】次に、本実施形態の2分決定グラフの変数
交換方法を具体例を用いて説明する。図2は本実施形態
の具体例を説明するために用いる2分決定グラフであ
る。この2分決定グラフは従来例で用いたものと同一で
あるが、説明の便宜のため、各ノードにはA,B,…,
Fまでのアルファベットを付してある。ここでは、図1
3に示されている変数交換のうち、最初の4つを行った
時の様子を説明する。Next, the variable exchanging method of the binary decision graph of this embodiment will be described using a concrete example. FIG. 2 is a binary decision graph used to describe a specific example of this embodiment. This binary decision graph is the same as that used in the conventional example, but for convenience of explanation, A, B, ...
The alphabets up to F are attached. Here, FIG.
Of the variable exchanges shown in No. 3, the first four will be described.
【0047】図3(a)は図2に示した2分決定グラフ
を図表にしたものである。例えばノードAは、変数がv
1 であり子ノードがB,Cであることを示している。ま
た、この状態は変数交換を行う前の状態であり更新前の
子ノードは無いため、何も示されていない。また、同図
(b)は、各変数とノードとの関係を表した図表であ
る。例えば、変数v2 のユニークテーブルに登録されて
いるノードがB,Cであることを表している。ここで、
Pの欄はsifting変数v2 との変数交換の際のピ
ボット・ノードの集合を示すものである。FIG. 3A is a diagram showing the binary decision graph shown in FIG. For example, in node A, the variable is v
1 indicates that the child nodes are B and C. Further, this state is the state before the variable exchange and there is no child node before the update, so nothing is shown. Further, FIG. 6B is a diagram showing the relationship between each variable and the node. For example, it indicates that the nodes registered in the unique table of the variable v 2 are B and C. here,
The column P indicates a set of pivot nodes at the time of exchanging variables with the shifting variable v 2 .
【0048】次に、この図3(a)についてv2 とv3
との変数交換を以下の手順で行う。この変数交換は最初
の交換なので、図1のフローチャートのステップS10
1では“YES”に進むことになる。なお、今回の変数
交換では、ステップS101におけるvがv2 であり、
wがv3 である。Next, regarding this FIG. 3A, v 2 and v 3
The variables are exchanged with the following procedure. Since this variable exchange is the first exchange, step S10 in the flowchart of FIG.
In case 1, the procedure proceeds to “YES”. In the variable exchange this time, v in step S101 is v 2 ,
w is v 3 .
【0049】v2 のピボットノードを見つけv3 .P
に保存する(ステップS102) v3 .P={B} Bのノードの内部状態を保存しておく、すなわち、子
ノードD,Eを更新前の子ノードとして保存する(ステ
ップS105) Bの変数交換後の子ノードを求める(ステップS10
6) F1 ′=1 F0 ′=C Bのノードの内部状態を(v3 ,1,C)に書き換え
る(ステップS107) v3 .PはBだけなのでこれで終了 v3 .Pは次回の変数交換のためにそのままにしてお
く 以上のような手順にてv2 とv3 との交換を行った後の
状態を図4(a)に示す。ここで、子ノードであったD
及びEは更新前の子ノードに保存され、子ノードの欄に
は新たに計算で求めたノードが格納される。この場合に
は1及びCである。なお、図表中の“*”はデッドノー
ド(使われないノード、以下同様)を意味するものとす
る。同図(b)では、変数交換によりノードBは変数v
2 と変数v3 との交換により変数v3 のPの欄に格納さ
れ、変数v2 のユニークテーブルから削除されている。Find the pivot node of v 2 v 3 . P
Save (step S102) v 3. The internal state of the node P = {B} B is saved, that is, the child nodes D and E are saved as the child nodes before updating (step S105). The child node after the variable exchange of B is obtained (step S10).
6) Rewrite the internal state of the node of F 1 ′ = 1 F 0 ′ = C B to (v 3 , 1, C) (step S107) v 3 .. Since P is only B ends in this v 3. P is left as it is for the next variable exchange. The state after the exchange of v 2 and v 3 by the above procedure is shown in FIG. 4 (a). Where D was a child node
And E are stored in the child node before the update, and the newly calculated node is stored in the child node column. In this case 1 and C. In addition, "*" in the figure means a dead node (a node that is not used, the same applies below). In the same figure (b), the node B changes the variable v by the variable exchange.
It is stored in the P column of the variable v 3 by exchanging 2 with the variable v 3 and deleted from the unique table of the variable v 2 .
【0050】次に、図5(a)はv2 とv4 との交換を
行った後の状態を示す図表である。この変数交換は最初
の交換なので、図1のフローチャートのステップS10
1では“YES”に進むことになる。なお、今回の変数
交換では、ステップS101におけるvがv2 であり、
wがv4 である。Next, FIG. 5A is a chart showing the state after the exchange of v 2 and v 4 . Since this variable exchange is the first exchange, step S10 in the flowchart of FIG.
In case 1, the procedure proceeds to “YES”. In the variable exchange this time, v in step S101 is v 2 ,
w is v 4 .
【0051】ここで、子ノードであったF及び0は更新
前の子ノードに保存され、子ノードの欄には新たに計算
で求めたノードが格納される。この場合にはG及び0で
ある。但し、ノードGは新たに作られたノードで、変数
はv2 で“1”及び“0”が子ノードである。同図
(b)は、変数交換によりノードCは変数v2 と変数v
4との交換により変数v4 のPの欄に格納され、変数v
2 のユニークテーブルから削除されている。また、新た
に加えられたノードGがv2 に加えられている。Here, the child nodes F and 0 are stored in the child node before updating, and the newly calculated node is stored in the child node column. In this case G and 0. However, the node G is a newly created node, the variable is v 2 , and “1” and “0” are child nodes. In the same figure (b), the node C has variables v 2 and v due to variable exchange.
It is stored in the P column of the variable v 4 by the exchange with 4, and the variable v
It has been removed from the 2 unique tables. Also, the newly added node G is added to v 2 .
【0052】次に、図6(a)はv4 とv2 との交換を
行った後の状態を示す図表である。この変数交換は2回
目の交換なので、図1のフローチャートのステップS1
01では“NO”に進むことになる。なお、今回の変数
交換では、ステップS101におけるvがv4 であり、
wがv2 である。Next, FIG. 6A is a chart showing the state after the exchange of v 4 and v 2 . Since this variable exchange is the second exchange, step S1 in the flowchart of FIG.
At 01, the process proceeds to “NO”. In the variable exchange this time, v in step S101 is v 4 ,
w is v 2 .
【0053】ここで、子ノードであったG及び0は更新
前の子ノードに保存され、子ノードの欄には更新前の子
ノードに保存してあったF及び0を格納する。即ち、子
ノードと更新前の子ノードと交換している。Here, G and 0 which are child nodes are stored in the child node before updating, and F and 0 which are stored in the child node before updating are stored in the child node column. That is, the child node is exchanged with the child node before the update.
【0054】次に、この図6(a)についてv3 とv2
との変数交換を以下の手順で行う。この変数交換は2回
目の交換なので、図1のフローチャートのステップS1
01では“NO”に進むことになる。Next, regarding this FIG. 6A, v 3 and v 2
The variables are exchanged with the following procedure. Since this variable exchange is the second exchange, step S1 in the flowchart of FIG.
At 01, the process proceeds to “NO”.
【0055】すでにv3 .P={B}となっている
(ステップS102) Bは(v3 ,1,C,D,E) ここで、1,Cは現在の子ノードであり,D,Eは更新
前の子ノードである Bのノードの内部状態を交換する(ステップS11
0) B=(v2 ,D,E,1,C) v3 .Pは、Bだけなので終了 v3 .Pは次回の変数交換のためにそのままにしてお
く 図7(a)はv3 とv2 との交換を行った後の状態を示
す図表である。ここで、更新前の子ノードであったG及
び0は更新前の子ノードに格納され、子ノードの欄には
更新前の子ノードの欄に示されたF及び0が格納され
る。即ち、子ノードと以前の子ノードとの値を交換して
いる。同図(b)は、変数交換によりノードBは変数v
2 と変数v3 との交換により変数v3 のPの欄に格納さ
れ、変数v2 のユニークテーブルから削除されている。Already v 3 . P = {B} (step S102) B is (v 3 , 1, C, D, E) where 1 and C are the current child nodes, and D and E are the pre-update child nodes. The internal state of the B node is exchanged (step S11).
0) B = (v 2 , D, E, 1, C) v 3 . Since P is only B, end v 3 . P is left as it is for the next variable exchange. FIG. 7A is a chart showing the state after the exchange of v 3 and v 2 . Here, G and 0 which are the child nodes before the update are stored in the child node before the update, and F and 0 shown in the column of the child node before the update are stored in the child node column. That is, the values of the child node and the previous child node are exchanged. In the same figure (b), the node B changes the variable v
It is stored in the P column of the variable v 3 by exchanging 2 with the variable v 3 and deleted from the unique table of the variable v 2 .
【0056】以降の変数交換については説明を省略する
が、このようにノード毎に更新前のノードの内部状態を
記憶しておき、再びその2つの変数を交換する際に、前
回の変数交換の際に記憶しておいたノードの内部状態を
新しいノードの内部状態とし、現在のノードの内部状態
を更新前のノードの内部状態として記憶することにより
変数交換を行うようにしてある。これにより、2回目以
降の変数交換を高速に実行することができるのである。Although description of the subsequent variable exchange is omitted, the internal state of the node before the update is stored for each node in this way, and when the two variables are exchanged again, the previous variable exchange is performed. The variable exchange is performed by storing the internal state of the node stored at that time as the internal state of the new node and storing the internal state of the current node as the internal state of the node before the update. As a result, the second and subsequent variable exchanges can be executed at high speed.
【0057】次に、図8は本実施形態で用いた2分決定
グラフの変数交換方法のプログラム的な表現例を示した
ものである。Next, FIG. 8 shows a programmatic expression example of the variable exchange method of the binary decision graph used in the present embodiment.
【0058】この表現例で用いられている手続coll
ect_pivot_nodeはステップS102に、
手続save_node_stateはステップS10
5に、手続find_or_create_new_t
hen_node,及びfind_or_create
_new_else_nodeはステップS106に、
手続overwrite_node_stateはステ
ップS107に、手続exchange_node_s
tateはステップS110に、それぞれ相当する。The procedure coll used in this expression example
ect_pivot_node is set to step S102,
The procedure save_node_state is step S10.
5, the procedure find_or_create_new_t
hen_node and find_or_create
_New_else_node is set in step S106,
The procedure overwrite_node_state proceeds to step S107, where the procedure exchange_node_s.
The state corresponds to step S110.
【0059】なお、1回目の変数交換か、2回目以降の
変数交換かの区別は、w.Pというデータが既に存在し
ているかどうかで行うようにしている。また、vのsi
ftingが終了した時に、ユニークテーブルから取り
出されているすべてのピボット・ノードをユニークテー
ブルに戻す必要がある。The distinction between the first variable exchange and the second and subsequent variable exchanges is made by w. It is performed depending on whether or not the data of P already exists. Also, si of v
At the end of the fting, all pivot nodes that have been fetched from the unique table need to be returned to the unique table.
【0060】図9に、本実施の形態を用いた場合と従来
技術を用いた場合の比較結果を示す。この結果は、組合
せ回路の全出力に対して同時に2分決定グラフを作成す
る処理を行う際に、siftingアルゴリズムを用い
た動的変数再順序付けを適用した時の、動的変数再順序
付けに要した実行時間(従来技術と本発明)と本発明に
よる高速化率を示している。この比較結果より、本発明
に係る2分決定グラフの変数交換方法を用いれば、1.
9倍〜7.9倍の高速化が達成できることがわかる。FIG. 9 shows a comparison result between the case of using this embodiment and the case of using the conventional technique. This result was required for the dynamic variable reordering when the dynamic variable reordering using the sifting algorithm was applied when the process of creating the binary decision graph was simultaneously performed on all the outputs of the combinational circuit. The execution time (prior art and the present invention) and the speed-up rate according to the present invention are shown. From this comparison result, if the variable exchanging method of the binary decision graph according to the present invention is used, 1.
It can be seen that a speedup of 9 to 7.9 times can be achieved.
【0061】[0061]
【発明の効果】以上説明してきたように、本発明に係る
2分決定グラフの変数交換方法によれば、同一の変数対
の変数交換において、2回目以降の変数交換を高速に実
行することが可能となる。As described above, according to the variable exchanging method for a binary decision graph according to the present invention, the variable exchanging for the same variable pair can be executed at high speed for the second and subsequent variable exchanging. It will be possible.
【図1】本発明に係る2分決定グラフの変数交換方法の
フローチャートである。FIG. 1 is a flowchart of a variable exchange method for a binary decision graph according to the present invention.
【図2】2分決定グラフの例を示す図である。FIG. 2 is a diagram showing an example of a binary decision graph.
【図3】2分決定グラフの最初の状態を示す図である。FIG. 3 is a diagram showing a first state of a binary decision graph.
【図4】v2 とv3 を交換した後の状態を示す図であ
る。FIG. 4 is a diagram showing a state after exchanging v 2 and v 3 .
【図5】v2 とv4 を交換した後の状態を示す図であ
る。FIG. 5 is a diagram showing a state after exchanging v 2 and v 4 .
【図6】v4 とv2 を交換した後の状態を示す図であ
る。FIG. 6 is a diagram showing a state after exchanging v 4 and v 2 .
【図7】v3 とv2 を交換した後の状態を示す図であ
る。FIG. 7 is a diagram showing a state after exchanging v 3 and v 2 .
【図8】本発明の実施形態のプログラム例を示す図であ
る。FIG. 8 is a diagram showing an example of a program according to the embodiment of the present invention.
【図9】本発明と従来技術の比較を示す図表である。FIG. 9 is a chart showing a comparison between the present invention and the prior art.
【図10】従来の2分決定グラフの変数交換方法を示す
フローチャートである。FIG. 10 is a flowchart showing a conventional method of exchanging variables for a binary decision graph.
【図11】2分決定グラフの例を示す図である。FIG. 11 is a diagram showing an example of a binary decision graph.
【図12】2分決定グラフの例を示す図である。FIG. 12 is a diagram showing an example of a binary decision graph.
【図13】siftingアルゴリズムを実行したとき
の変数順序の変化を示す図である。FIG. 13 is a diagram showing a change in variable order when a shifting algorithm is executed.
【図14】従来技術による変数交換方法のプログラム例
を示す図である。FIG. 14 is a diagram showing a program example of a variable exchange method according to a conventional technique.
Claims (2)
数を交換する方法において、 前記2分決定グラフの隣接する2つの変数を交換する際
に、その変数交換により内部状態が更新されるノードに
ついて、ノード毎に更新前のノードの内部状態を記憶
し、 再びその2つの変数を交換する際に前回の変数交換の際
に記憶した更新前のノードの内部状態を新しいノードの
内部状態とし、現在のノードの内部状態を更新前のノー
ドの内部状態として記憶することにより変数交換を行う
ことを特徴とする2分決定グラフの変数交換方法。1. A method for exchanging variables of a binary decision graph representing a logical function, wherein when an adjacent two variables of the binary decision graph are exchanged, an internal state is updated by the variable exchange. For each node, the internal state of the node before the update is stored, and when the two variables are exchanged again, the internal state of the node before the update stored at the previous variable exchange is set as the internal state of the new node, A variable exchanging method for a binary decision graph, characterized in that variable exchanging is performed by storing an internal state of a current node as an internal state of a node before updating.
数を交換する方法において、 前記2分決定グラフの隣接する2つの変数を交換する際
に、その変数交換により内部状態が更新されるノードの
集合を記憶し、 再びその2つの変数を交換する際に、前回の変数交換の
際に記憶した前記ノードの集合に含まれる各ノードに対
して内部状態の更新を行うことにより変数交換を行うこ
とを特徴とする2分決定グラフの変数交換方法。2. A method for exchanging variables of a binary decision graph representing a logical function, wherein, when two adjacent variables of the binary decision graph are exchanged, an internal state is updated by the variable exchange. When the two variables are exchanged again, the variable exchange is performed by updating the internal state of each node included in the set of the nodes stored in the previous variable exchange. A method for exchanging variables in a binary decision graph, which is characterized in that
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP33524595A JP3722892B2 (en) | 1995-12-22 | 1995-12-22 | Variable exchange method for binary decision graph |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP33524595A JP3722892B2 (en) | 1995-12-22 | 1995-12-22 | Variable exchange method for binary decision graph |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH09179897A true JPH09179897A (en) | 1997-07-11 |
| JP3722892B2 JP3722892B2 (en) | 2005-11-30 |
Family
ID=18286369
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP33524595A Expired - Fee Related JP3722892B2 (en) | 1995-12-22 | 1995-12-22 | Variable exchange method for binary decision graph |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP3722892B2 (en) |
-
1995
- 1995-12-22 JP JP33524595A patent/JP3722892B2/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP3722892B2 (en) | 2005-11-30 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7840931B2 (en) | Loop manipulation if a behavioral synthesis tool | |
| US5956257A (en) | Automated optimization of hierarchical netlists | |
| CN112257364A (en) | Integrated circuit static time sequence analysis method for GPU accelerated calculation | |
| US5787010A (en) | Enhanced dynamic programming method for technology mapping of combinational logic circuits | |
| Zuluaga et al. | Streaming sorting networks | |
| WO2000065492A1 (en) | Method for storing multiple levels of design data in a common database | |
| JP2002245105A (en) | Method for traversing net connectivity through design hierarchy | |
| US6519609B1 (en) | Method and system for matching boolean signatures | |
| JPH0658678B2 (en) | Process and apparatus for synthesizing circuit designs | |
| JP4495865B2 (en) | Inter-trade application service provider | |
| JP3741544B2 (en) | Sequential circuit state search method and apparatus, and recording medium storing state search program | |
| CN117055766A (en) | Tree data processing method and device based on Ant Design, medium and electronic equipment | |
| US10310823B2 (en) | Program development support system and program development support software | |
| US5796621A (en) | Circuit delay abstraction tool | |
| Jain et al. | Decomposition techniques for efficient ROBDD construction | |
| WO2023103612A1 (en) | Quantum program execution method and quantum program compilation method | |
| Liu et al. | Binary decision diagram with minimum expected path length | |
| JPH09179897A (en) | Variable exchange method for binary decision graph | |
| KR20240114192A (en) | Method and system for designing an integrated circuit | |
| JP3476688B2 (en) | Netlist generation method and netlist generation device | |
| WO2009147794A1 (en) | Finite automaton generating system | |
| JPH096821A (en) | Logic circuit synthesizing method, semiconductor device manufacturing method, and binary decision graph optimizing method | |
| CN120745523B (en) | Tree node expansion method based on multiple selected nodes, electronic devices and media | |
| US7290241B1 (en) | Method and system for managing behavior of algorithms | |
| JP5434500B2 (en) | Tree structure processing apparatus and program |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050222 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050425 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20050614 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050815 |
|
| A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20050819 |
|
| 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: 20050906 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050914 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080922 Year of fee payment: 3 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090922 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090922 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100922 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110922 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110922 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120922 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120922 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130922 Year of fee payment: 8 |
|
| LAPS | Cancellation because of no payment of annual fees |