(57)【特許請求の範囲】
【請求項１】
電気回路のパーティショニングのためのコンピュータ支援された方法において、
前記電気回路をグラフに写像し、該グラフは前記電気回路と同一のトポロジを有し、
前記グラフの節点及び／又は辺にウェイト値を割り当て、該ウェイト値によって前記電気回路の素子の電気的記述パラメータを算出するために必要な計算コストを記述し、前記電気回路の素子は各々の前記節点及び／又は各々の前記辺によって表され、
前記素子に前記電気回路の素子を配置するための方法を適用し、
該素子を配置するための方法において前記素子間の結合の全長を最小化し、この際前記節点及び／又は前記辺に割り当てられたウェイト値を考慮し、
前記電気回路に対して、パーティショニングにおいて前記電気回路のパーティションの形成される切断された辺の数及び／又は形成される端縁節点の数の尺度を算出し、
該尺度に依存して前記素子をパーティションにグループ分けする、電気回路のパーティショニングのためのコンピュータ支援された方法。
【請求項２】
本発明の方法の最初に、電気回路の素子のグループ分けを実施し、前記素子に対してこれらの素子が共に１つのパーティションに割り当てられることをそれぞれ決定する、請求項１記載の方法。
【請求項３】
電気回路の素子のグループ分けの際に次の規則のうちの少なくとも１つを適用する、すなわち、
制御される電源の素子、少なくとも１つの制御素子及び前記制御される電源を共に１つのパーティションに割り当てるという規則と、
電気回路における接続ループを共に１つのパーティションに割り当てるという規則と、
パーティショニング及び／又は接合点（interface）のモデリングによって短絡が発生してはならないという規則のうちの少なくとも１つを適用する、請求項２記載の方法。
【請求項４】
グラフの複数の節点及び／又は辺に共通のウェイト値を割り当てる、請求項１〜３までのうちの１項記載の方法。
【請求項５】
パーティションのグラフを電気回路に写像し、実施されたパーティショニングに相応して前記パーティションは前記電気回路の素子を有する、請求項１〜４までのうちの１項記載の方法。
【請求項６】
複数のパーティションを本発明の方法を多数回実施することによって形成し、
各パーティション毎に電気回路の素子に対する電気的記述パラメータを算出し、前記パーティションの少なくとも１部分を複数のコンピュータ及び／又はプロセッサにおいて並列に処理する、請求項１〜５までのうちの１項記載の方法。
【請求項７】
パーティションの並列処理を中央制御する、請求項６記載の方法。
【請求項８】
各パーティションの全端子が中央制御ユニットだけに結合され、従ってデータの伝達が前記中央制御ユニットと前記パーティションの少なくとも１部分との間でのみ行われるやり方で前記パーティションの少なくとも１部分を中央制御する、請求項７記載の方法。
【請求項９】
各パーティションの端子のうちの少なくとも１部分を付加的に電圧源に割り当て、該電圧源の値を電気的記述パラメータの算出の間に中央制御ユニットによって予め設定する、請求項８記載の方法。
【請求項１０】
各パーティションの端子のうちの少なくとも１部分に付加的に抵抗を割り当てる、請求項９記載の方法。
【請求項１１】
形成される切断された辺の数及び／又は形成される端縁節点の数の尺度を次の規則によって形成する：
0003542137.tif 000007
ただしここで
RCは、形成される切断された辺の数及び／又は形成される端縁節点の数の尺度を表し、
Ｌは、第１のパーティションを表し、
Ｒは、第２のパーティションを表し、
CLRは、第１のパーティションと第２のパーティションとの結合の数を表し、
|L|は、第１のパーティションが有する素子の重み付けされた数を表し、
|R|は、第２のパーティションが有する素子の重み付けされた数を表す、請求項１〜10までのうちの１項記載の方法。
【発明の詳細な説明】
非常に大きな回路の、つまり非常に多数の素子を有する回路の回路シミュレーションの場合、直列処理は、すなわち回路パラメータのコンピュータによる算出は時間コストが非常に高い。その動作において非常に費用がかかるベクトルコンピュータでさえ数十万個のトランジスタを有する回路の電気的記述パラメータの算出のために莫大な計算容量及び時間を必要とする。
回路シミュレーションの直列処理を回避するためには、この理由から電気回路を複数の部分に分割し、これら複数の部分をそれぞれ異なるコンピュータ乃至はプロセッサによって処理する。これは回路シミュレーションの並列処理となる。
しかし、電気回路の電気的記述パラメータの算出のできるだけ良好な並列化可能性を得るためには、複数の部分への電気回路のパーティショニングにおいて次の２つの規準を顧慮すると非常に有利である。電気回路の形成される全てのパーティションができるだけ同じ大きさであり、これによって結果的に並列化により得られる効果を増大することがきわめて重要である。１つのパーティションが規模において残りのパーティションよりも大きい場合、このはるかに大きいパーティションの処理は残りのパーティションの処理よりもはるかに計算コストが高くなる。さらに、パーティショニングの際に重要なことは、個々のパーティションの間にできるだけ少ない数の接続部が存在することである。というのも、「並列化された」回路シミュレーションのための公知の方法では、必要な伝送容量は、すなわちそれぞれパーティションを処理するコンピュータ乃至はプロセッサ間の必要な通信は、パーティション間に存在する接続部の数が大きくなるにつれて大幅に増加するからである。
コンピュータによって処理される電気回路のテキスト的記述のための言語は参考文献［１］から回路シミュレーション言語SPICEとして公知である。
参考文献［２］及び［３］には、電気回路の任意の数のパーティションがすでに存在することを前提として、並列化された回路シミュレーションを実施するやり方が記述されている。パーティションをもとめる方法はこれらの参考文献には記述されていない。
参考文献［４］及び［７］からゲートレベルとも呼ばれるいわゆる論理レベルにおける包括的なパーティショニング方法が公知である。
この論理レベルでは個別のイベントが記述される。しかし、これら個別のイベントによって、いわゆるトランジスタレベルにおける、すなわち電気回路の本来の物理的なレベルにおける電気回路の連続ダイナミック特性を記述することはできない。
従って、論理レベルで行われる回路シミュレーションの結果は幾つかの適用に対しては不確実かつ不正確である。というのも、電気回路において発生する電気信号の正確な時間経過を考慮することもできないからである。
さらに、ゲートレベルにおける回路シミュレーションに対する個々のゲートのモデル的記述が必要であり、トランジスタレベルでのシミュレーションのためにはトランジスタモデルによる回路記述がすでに存在する。この方法をゲートレベルで実施できる前に、このモデル的記述が求められなければならない。
いわゆる共役勾配法が参考文献［５］から公知である。
様々なパーティショニング規則に関する概説が［８］に記載されている。
従って、本発明の課題は、電気回路の素子を直接トランジスタレベルで考慮するこの電気回路のパーティショニングのための方法を提供することである。
上記課題は請求項１記載の方法によって解決される。
本発明の方法では、電気回路をグラフに写像する。このグラフは電気回路と同一のトポロジを有する。このグラフの辺及び／又は節点はウェイト値によって重み付けされる。これらのウェイト値は、それぞれ辺及び／又は節点によって表される電気回路の素子に対する電気的記述パラメータを算出するためにおおよそ必要な計算コストを記述する。
このグラフにおける電気回路のためのパーティションは、この電気回路の素子に対してこれらの素子の配置のための方法を適用することによって形成される。素子の配置のためのこの方法では電気回路の素子間の結合の全長が最小化される。さらに、この電気回路に対して、パーティショニングの際にそれぞれ形成されるであろうパーティションの端縁節点（Randknoten）の数及び／又は切断された辺の数に対する尺度を算出する。これらの素子が個々のパーティションにグループ分けされることにより、この尺度に依存してパーティションが形成される。
本発明の方法は参考文献［４］から公知の方法に対していくつかの重大な利点を有する。
本発明の方法は電気回路のトランジスタレベルで直接的に動作するので、本発明の方法によって得られる結果は、本発明で求められるパーティションに使用すると後続の回路シミュレーションにおいて著しく正確かつ信頼できる。
本発明の有利な実施形態は従属請求項から得られる。
有利には電気回路の所定の素子に対して本発明の方法の最初にこれらの素子が共に１つのパーティションにグループ分けされることを決定する。本発明のこの実施形態によって、例えば電源が制御される場合には制御素子も制御されるこの電源も共に１つのパーティションにおいて処理することを保障することができる。同様にこの実施形態によって、例えば電圧源及びインダクタンスのような電圧決定素子の直列接続によって形成される電気回路の複数の接続ループを同様に共に１つのパーティションに割り当てることができる。さらに、このやり方によって、できるだけパーティショニング及び接合点（interface）のモデリングによって生ずる短絡を回避することができる。
グラフの複数の辺及び／又は節点に共通のウェイト値を割り当てる本発明の実施形態によって、コンピュータによる本発明の方法の実施はさらに加速される。というのも、この実施形態では本発明の方法の枠内で比較的少ない数のウェイト値が考慮されればよいからである。
さらに、電気回路に対して複数のパーティションを形成し、これらパーティションに対してこれらのパーティションの相応のグラフを再びこの電気回路に写像し、この電気回路の形成されたパーティションを並列に異なるコンピュータ乃至はプロセッサで処理すると有利である。この並列化によって非常に大きな回路の回路シミュレーションは、全くの「直列」回路シミュレーションの場合に可能であるよりもはるかに高速に実施可能である。
さらに、並列化された回路シミュレーションにおいて個々のパーティションの処理を中央制御すると有利である。このやり方で、調整された回路シミュレーションが出来るだけ僅少な通信コストによって実現される。
さらに、パーティションの中にないコンポーネントに結合されているこのパーティションの個々の端子に付加的に電圧源及び抵抗を設けることは有利である。この電圧源にはパーティションの並列化された処理を制御する中央制御ユニットによってそれぞれ電気的端縁記述パラメータが割り当てられる。それぞれこれらの端子に設けられる抵抗によって、並列化された回路シミュレーションの間に回路シミュレーションの収束が保障される。この並列化された回路シミュレーションの値は制御ユニットによってダイナミックに適応される。
図面に本発明の実施例を示し、この実施例を以下において詳しく説明する。
図１は本発明の方法の個々の方法ステップが示されているフローチャートである。
図２は本発明の方法の様々な改良実施形態が示されている概略図である。
非常に多数の素子を有する電気回路は、素子の分割によって、すなわち任意の数のパーティションへの素子のパーティショニング及び回路シミュレーションを実施する異なるコンピュータ乃至はプロセッサでこれらの個々のパーティションを処理することによって並列化される。これにより、全回路シミュレーションの実施が大幅に加速される。
しかし、この並列化をできるだけ最適に構成するためには、個々のパーティションを綿密に決定しなくてはならない。
この場合重要なことは、一方でほぼ均一なパーティションのサイズに注意することであり、他方で個々のパーティションが「外側に向いた」端子、例えばこのパーティション内にない他の素子との結合をあまりにも多数持たないことに注意することである。
電気回路は、回路シミュレーションの枠内でコンピュータによって処理するために通常は回路記述言語、例えばいわゆるSPICE言語で表される101。このいわゆるSPICE言語は参考文献［１］に記述されている。
しかし、本発明の方法は回路記述言語による電気回路の記述にほとんど限定されないし、同様にこの特定の回路記述言語SPICEの使用にもほとんど限定されない。
第１の方法ステップ102において電気回路はグラフに写像される。このグラフはこの電気回路と同一のトポロジを有する。これは例えば回路記述言語SPICEで表されている電気回路から出発して行われる。このグラフはこの電気回路のトポロジに従って相応の節点を有する。この電気回路の個々の素子はこのグラフの節点によって表現される。
しかし、グラフの解釈に応じて、同様にこの電気回路の個々の素子をこのグラフの節点間の辺に写像することも可能である。
本発明の方法の改良実施形態では、この本発明の方法の最初にこの電気回路の個々の素子にマーキングすること、すなわち、相応のマーキングされた素子に対してこれらのマーキングされた素子が後続の方法においてそれぞれ共に１つのパーティションに割り当てられることを決定することが有利である。異なるマーキングは異なる素子を別々のパーティションに割り当てることができる。また、それぞれペアの素子が１つのパーティションに割り当てられるのだとコンピュータが解釈するように素子をマーキングする。このコンピュータが本発明の方法を実施する。
この場合、例えば電気回路の次のような特別な場合を考慮すると有利である。電気回路が制御される電源、例えば制御される電流源又は制御される電圧源を含んでいる場合には、制御素子もこの制御される電源も後続の回路シミュレーションのために共に１つのパーティションに含まれると有利である。
さらに、結合されたインダクタンスを同様にそれぞれ１つの共通のパーティションに割り当てると有利である。また、重要なことは、本発明の改良実施形態において、コンピュータによるパーティショニング及びこのパーティショニングのアルゴリズム的処理によっていかなる種類の短絡も発生しないように考慮することである。
次のステップ103では節点乃至はグラフの解釈によっては辺にウェイト値Ｇが割り当てられる。これらのウェイト値Ｇによって次のことが記述される。すなわち、それぞれのウェイト値Ｇが割り当てられる節点乃至は辺によって表される電気回路の各素子に対する電気的記述パラメータを算出するためにおおよそどのくらいの計算コストが予期されるかが記述される。
必要とされる計算コストの尺度は、例えばこの回路シミュレーションの枠内でそれぞれ特定の素子に対する電気的記述パラメータを算出するために必要とされるコード行の数に見て取れる。トランジスタに対する電気的記述パラメータの算出が電気抵抗又はキャパシタンスに対する電気的記述パラメータの算出のためのコストよりもはるかに大きいことは、おおざっぱな基準と見なしうる。しかし、ウェイト値Ｇの選択はきわめて非クリティカル（unkritisch）であり、単に必要な計算コストのおおよその規模を示すにすぎない。それどころか、例えばトランジスタを表す節点乃至は辺に高いウェイト値Ｇ、例えばウェイト値Ｇ＝300を割り当て、抵抗又はキャパシタンスを表す節点乃至は辺に小さなウェイト値、例えばウェイト値Ｇ＝１又はウェイト値Ｇ＝０を割り当てても十分である。
電気的記述パラメータはこの関連において電気回路の素子の相応の電流及び電圧であると理解することができる。
次のステップ104では重み付けされたグラフに対して、従って電気回路の素子に対して配置方法を実施する。この配置方法によって、この電気回路の素子の結合の全長が最小化される。
これは一般にそれぞれ任意の配置方法によって行われる。例えばこれは参考文献［４］に記述されている配置法によっても行われる。
以下にトランジスタレベルにおける電気回路の素子のパーティショニングの枠内で配置方法を使用するための２つ方法を詳しく説明する。
第１の有利に使用可能な配置方法では次の形式の線形目的関数を使用する：
0003542137.tif 000002
ただし
0003542137.tif 000003
aijは次元ｎ×ｎを有する隣接行列Ａの要素を示す。この場合、ｎはこの電気回路の考慮される素子の数を示す。隣接行列Ａの行列要素aijは、例えば重み付けされたグラフの素子ｉを他の素子ｊに結合する全ての辺の加算によって形成される。xi及びxjはそれぞれデータベクトルを示し、このデータベクトルによってこの電気回路内における電気回路の各素子ｉ乃至はｊの局所的位置が示される。ｆは所定の線形制約条件値を示す。式（１）及び（２）から線形計画法の問題であるとわかる。しかし、この線形計画法は置換
0003542137.tif 000004
を使用すれば２次計画法の問題に変換される。
この問題はいわゆる共役勾配法によって非常に効率的に解くことができる。共役勾配法は参考文献［５］から公知である。
この方法の枠内で１次元配置も多次元配置も決定することができる。
算出された配置の品質が良好であればあるほど、素子を互いに結合するために電気回路の素子間の結合の必要な全長も小さくなる。これは、配置方法によって目的関数の枠内で電気回路の素子の結合の全長が最小化最小化されることから結果的に得られる。
素子の結合の必要な全長の低減によって、パーティショニング間の結合の数はこれから後に実施される電気回路のパーティショニングにおいて減少される。
参考文献［５］に記述された共役勾配法の特別な場合において少なくとも１つのセルが定位置に割り当てられなくてはならないので、本発明の方法の改良実施形態ではそれぞれ電気回路の端縁部の全く右側にある素子及び全く左側にある素子を定位置に設定する。これによって、これらの素子の位置座標つまりは位置ベクトルが決定され、共役勾配法が実施される。
次のステップ105では、この電気回路の素子に対して、相互に結合されている各素子毎に乃至は素子の各ペア毎に、可能なパーティショニングによって成立する切断された辺の数の尺度乃至はこのグラフＧの他の解釈の場合にはそれぞれパーティションの形成される端縁節点の数の尺度を算出する。これは例えばいわゆるRational Cut Measure RCを使用して行われる。このRational Cut Measure RCは例えば次の規則によって形成される：
0003542137.tif 000005
ただしここで
RCは形成される端縁節点の数の尺度を表し、
Ｌは第１のパーティションを表し、
Ｒは第２のパーティションを表し、
CLRは第１のパーティションと第２のパーティションとの結合の重み付けされた数を表し、
|L|は、第１のパーティションが有する素子の重み付けされた数を表し、
|R|は、第２のパーティションが有する素子の数を表す。
本発明の方法の枠内でのこの尺度の使用方法に関する詳細は例えば参考文献［６］に記述されている。
パーティションの決定のために、電気回路の素子間のこの電気回路内部のパーティションの可能な各接合点（interface）に対してこの尺度RCを算出する。これは、異なるパーティションにグループ分けされうる電気回路の全素子に対してこの尺度RCを算出することを意味する。しかし、本発明の方法を簡素化するためには、所定の数の素子に対してだけこの尺度RCを算出する。
次にそれぞれこの尺度が局所的最小値を有する箇所でパーティショニングが行われる。このためのこの方法に関する詳細も同様に参考文献［６］に記述されている。
素子の配置のための、すなわちパーティションの形成のための可能な第２の方法は参考文献［４］の第３章に示されている。
しかし、ここで強調しておくが、この参考文献［４］及び他の全ての参考文献に記述されている配置方法はそれぞれ電気回路の記述のゲートレベルにだけ関連している。
例えば回路記述言語SPICEの電気回路の最初の記述を使用して、パーティションはコンピュータのために後続処理されるシンタックスに、例えば再び回路記述言語SPICEに写像される。この写像の際に、電気回路の各素子に対する各パーティションの情報は例えば各素子のマーキングによって考慮される。
従って、この逆写像201（図２参照）によって、再び回路記述言語SPICEの使用の特別な場合に対してこの電気回路の回路素子ならびに各素子が割り当てられたパーティションの結合及び各情報を有するリストが形成される。
本発明の方法の改良実施形態では有利にはこの方法を任意の数のパーティションに対して実施する。すなわち、電気回路を任意の数のパーティションに分割する。この改良実施形態では形成されるパーティションの数に応じて回路記述言語SPICEでこの電気回路の素子を有するパーティション固有のリストが形成される。本発明の方法の改良実施形態における電気回路の回路シミュレーションの有利な並列化は次のことによって達成される。すなわち、この電気回路の素子に対する電気的記述パラメータが各パーティション毎に別個に算出されることによって達成され、これらパーティションの少なくとも１部分が複数のコンピュータ及び／又はプロセッサで並列に処理される。これは回路シミュレーションの並列化に相応する。
さらに本発明の改良実施形態ではグラフＧの複数の節点乃至は辺に共通のウェイト値を割り当てる。この方法により必要な計算コストが低減される。
分散されたプロセッサ乃至は分散されたコンピュータでの並列化された回路シミュレーションのための方法は、例えば参考文献［２］及び［３］から公知である。これらは無条件に本発明の方法によって形成されるパーティションに適用できる。
さらに、本発明の方法の改良実施形態ではパーティションの並列処理を中央制御ユニットZSを介して中央制御する。これは、例えば参考文献［２］及び［３］に記載されているような回路シミュレーションの方法における個々のパーティションの通信が、つまりデータの伝達が中央制御ユニットZSと中央制御されるパーティションの部分との間だけで行われることを意味する。
図２には多数のSPICEデータファイルSPICE.1、SPICE.2、SPICE.3からSPICE.Nまでによる並列化された処理がシンボリックに図示されている。これらのSPICEデータファイルには回路記述言語SPICEによるパーティションの個々の記述が含まれている。
各パーティションに対して回路シミュレーション203が例えば中央制御ユニットZSによって中央制御されて実施される。
さらに、本発明の方法の改良実施形態では、並列化された回路シミュレーションの枠内で処理される各パーティションの端子の少なくとも１部分に付加的に電圧源を割り当てる。この電圧源にはそれぞれ公知の方法の枠内で中央制御ユニットZSによって相応の値が割り当てられる。参考文献［２］及び［３］に記載の反復方法の収束を保障するために、有利には各パーティションの端子の少なくとも１部分に付加的に抵抗を設ける。この抵抗の値は制御ユニットZSによってダイナミックに適応される。
本明細書にて以下の刊行物を参考文献として引用した：
0003542137.tif 000006
【図１】
0003542137.tif 000008
【図２】
0003542137.tif 000009