(57)【特許請求の範囲】
【請求項１】
ＶＨＤＬのハードウエア記述言語で記述された入力論理回路を、ＶＨＤＬの論理シミュレーションのための論理回路へ変換する論理回路変換装置であって、
信号演算処理をそれぞれ行う複数のイベント実行単位を含む前記入力論理回路の記述に基づいて、前記複数のイベント実行単位と信号との接続関係を含む回路接続情報を求める第１の手段と、
前記入力論理回路中の非同期要素を除いた部分に含まれる複数のイベント実行単位のうち、グループ化の対象とする複数のイベント実行単位を指定するための第２の手段と、
前記指定された複数のイベント実行単位を対象として、前記回路接続情報を基に、当該複数のイベント実行単位を入力側からの最長パスから順に大きいレベルとなるようにレベル付けを行うとともに、各イベント実行単位の機能がクロック生成回路、レジスタ、ラッチ、組合せ回路のうちのいずれであるかを判定し、入力側から始めて、この判定された機能を基に、当該レベルの小さい順に複数のイベント実行単位を１つにまとめた複数のグループを求める第３の手段と、
前記複数のグループのそれぞれについて、当該グループへの入力信号を代入して当該グループ内のイベント実行単位で行われる信号演算処理に対して、
前記回路接続情報に基づいて前記信号演算処理結果が当該グループ内のイベント実行単位のみに出力される第１の代入文を求め、この第１の代入文を当該グループ内のイベント実行単位で実行される論理演算結果をＶＨＤＬの変数として出力する第２の代入文に書き換え、
前記回路接続情報に基づいて前記信号演算処理結果が当該グループ内のイベント実行単位および当該グループ外の両方に出力される第３の代入文を求め、この第３の代入文を当該グループ内のイベント実行単位で実行される論理演算結果をＶＨＤＬの変数として出力する第４の代入文と、前記変数を入力として前記第３の代入文の出力信号を出力とする信号演算を行う第５の代入文とに書き換え、
前記第１の代入文の出力信号を入力信号として当該グループ内のイベント実行単位で実行されるＶＨＤＬの信号演算またはＶＨＤＬの論理演算を行う第６の代入文に対して、前記第６の代入文への入力信号として含む前記第１の代入文の出力信号を前記第２の代入文の出力である変数に書き換え、
前記第３の代入文の出力信号を入力信号として当該グループ内のイベント実行単位で実行されるＶＨＤＬの信号演算またはＶＨＤＬの論理演算を行う第７の代入文に対して、前記第７の代入文への入力信号として含む前記第３の代入文の出力信号を前記第４の代入文の出力である変数に書き換える第４の手段と、
を具備したことを特徴とする論理回路変換装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、デジタル回路（論理回路）の論理回路変換方法及び論理シミュレーション装置（論理回路設計支援装置）に関する。
【０００２】
【従来の技術】
計算機システムやＬＳＩの設計においては、設計した回路を論理シミュレーションによって検証し、早期に設計論理の不備を発見することが、開発期間の短縮のために必要不可欠である。
【０００３】
一方では、近年のＬＳＩの集積度の向上にともない、ＬＳＩあるいはこれを構成要素とする計算機システムは、大規模化、複雑化の一途をたどっている。論理シミュレーションに要する時間は検証対象となる回路規模に比例して増大する。現状における論理シミュレータの実行速度は、例えば１０００Ｋゲート規模の回路に対して数クロック／秒程度であるため、１Ｍゲート回路に対しては１クロック／秒以下の処理しかできないことになる。このため、大規模回路のシミュレーションには膨大な時間がかかってしまう。従って、大規模なＬＳＩでは、十分な長さのテストベクトルを用いてシミュレーションによる設計検証を行うことが困難となる。特に、ＬＳＩ製造後に不具合が発見される場合を考えると、設計論理の修正や再検証など開発に要する期間、コストの増大は極めて大きいものになってしまう。このような理由で、高速な論理シミュレータの実現が設計者によって一層望まれている。
【０００４】
論理シミュレータは通常、ソフトウェアで実現される。ソフトウェアで実現された論理シミュレータが検証する論理回路は、ソフトウェアの実行に向いた言語を用いて表現される場合が多い。例えば、Ｃ言語、アセンブリ言語に代表される高級言語である。そして近年では、ＶＨＤＬ、Ｖｅｒｉｌｏｇ−ＨＤＬといったハードウェア記述言語（ＨＤＬ）で記述された論理回路を入力とする論理シミュレータが数多く出現している。これらの論理シミュレータの大部分は、入力回路を対応するＣ言語やアセンブリ言語で書かれた回路記述に内部変換して実行するもので、計算機言語への変換方式の工夫あるいは変換後の記述の最適化によって、シミュレーションの高速化が図られている。しかしながら、この種の論理シミュレータによる高速化は、あくまでもＨＤＬの処理方式上の工夫によるものであり、回路のシミュレーション実行に要する演算量自体を減らすものではない。
【０００５】
上記のような論理シミュレータは通常、イベントドリブン法でシミュレーションを実行する。イベントドリブン法とは、回路を適当な大きさの演算単位に分け、各演算単位は、その入力信号のいずれかに値の変化（イベント）があったときのみ、処理実行を行う方法である。イベント実行単位（イベントドリブン方式での処理単位）間の値の受渡しには信号値が使われる。イベントドリブン法での一般的なシミュレーション実行手順は以下の通りである。
【０００６】
（手順１）回路の初期実行を行う。
【０００７】
（手順２）信号にイベントが発生する。
【０００８】
（手順３）イベントが生じた各信号に対して、その信号の出力先のイベント実行単位をイベントキューに登録する。
【０００９】
（手順４）イベントキューに登録されたイベント実行単位の評価実行を行う。新たにイベントが発生していれば手順３に戻る。
【００１０】
（手順５）次のイベントが発生する時点まで時刻を進め、手順２に戻る。もしそのような時刻がなければ終了する。
【００１１】
ここで、イベント実行単位が小規模の回路で構成される場合、あるイベント実行単位への複数入力信号が、それぞれ別々のイベント実行単位内で評価されていることが多い。このような場合、各入力信号のイベントが発生するタイミングがずれると、１シミュレーションサイクルで同一のイベント実行単位が何度も評価実行されてしまう。また、イベント実行単位間での値の受渡しに係わる信号処理演算量や、イベント実行単位をイベントキューに登録したり、登録したイベントキューを取り出す回数も多くなってしまう。
【００１２】
このように、イベント実行単位が小規模回路で構成されていると、シミュレーションの実行に要する演算量が増すことになる。
【００１３】
一般に、論理合成を前提としたレジスタトランスファーレベル（ＲＴＬ）で記述された回路は、ハードウェアの並列性を考慮して、適当な大きさの演算機能を単位とする多くの並列実行可能な部分から構成されている。また、ゲートレベルの回路も、ＡＮＤやＯＲといった小さい回路素子を単位として記述されている。このため、ＲＴＬやゲートレベルで記述された回路は、論理合成を前提としない動作レベルの回路に比べ、信号演算処理量がはるかに多く、シミュレーション実行に多大な時間を要してしまうという問題点があった。
【００１４】
次に、もう１つの問題点に関して説明する。
【００１５】
前述のようにソフトウェアで実現された論理シミュレータが検証する論理回路は、Ｃ言語、アセンブリ言語に代表される高級言語、ＶＨＤＬやＶｅｒｉｌｏｇＤＨＬに代表されるハードウェア記述言語など、ソフトウェアの実行に向いた言語を用いて表現される場合が多い。
【００１６】
これらの言語を用いた場合、論理回路中の各信号の値は変数で表現され、信号の伝搬は、その信号に対応した変数への代入文で記述されている。論理シミュレータは、各シミュレーションサイクルごとに、これらの代入文を実行することで、回路中の信号処理をシミュレートする。
【００１７】
論理シミュレーション方式の１つに、エグゾースト法がある。この方式では、各シミュレーションサイクルで、信号処理代入文が順番に実行される。一通り代入文が実行されると、すべての信号に対して、その信号値が代入文実行前と同じか否かをチェックし、どれか１つの信号値でも変化があれば、再び一連の信号処理代入文を実行する。この処理を繰り返し行い、すべての信号値が確定すると、次のシミュレーションサイクルに進む。
【００１８】
ここで、図３２に示す回路をエグゾースト法による論理シミュレータを用いてシミュレーションを実行する場合を考える。
【００１９】
図３２で、Ａ、Ｂ、Ｃ、Ｄ、Ｘ０、…、Ｘｎ、Ｙ０、…、Ｙｎはそれぞれ信号を、Ｆ０、…、Ｆｎはそれぞれ多入力多出力の演算機能を表す。ここで、信号Ａ、Ｂが共に前シミュレーションサイクルでの値から変化がなかった（イベントが発生しなかった）場合を考える。信号Ａ、Ｂにイベントが発生しないと、信号Ｘ０、Ｙ０の値も変化せず（イベントが発生しない）、同様にして最終出力である信号Ｃ、Ｄも前シミュレーションサイクルでの値から変化しない。ここで、信号Ｃ、Ｄの値は対応する変数に既に格納されているため、改めてこれらの変数へ代入する必要はないはずである。
【００２０】
しかし、エグゾースト法では、このように入力信号値に変化がない場合でも、一連の信号代入処理を実行してしまうため、無駄な計算が生じる。図３２の例では、２ｎ＋２回の無駄な信号代入処理が実行されることになる。
【００２１】
通常の論理回路では、信号にイベントが発生している部分は平均して全体の１割程度と言われている。このように、エグゾースト法では、無駄な信号代入処理が多くなるため、シミュレーション効率の低下を招いてしまう。
【００２２】
もう１つの論理シミュレーション方式として、前述のイベントドリブン法がある。この方式では、適当な大きさの演算機能をイベント実行単位として、その演算機能への入力信号のいずれかにイベントが発生したときだけ、そのイベント実行単位中の信号代入処理を行う。現シミュレーションサイクルでどのイベント実行単位を実行するかは、タイムホイールやイベントキューを用いて管理される。
【００２３】
図３２で、Ｆ０、…、Ｆｎがイベント実行単位であり、イベントドリブン方式による論理シミュレータを用いて論理シミュレーションを実行する場合を考える。
【００２４】
信号Ａ、Ｂのどちらにもイベントが発生しなかった場合、これらを入力とするイベント実行単位Ｆ１は起動されず、従ってＦ１中の信号代入処理は行われない。同様に、Ｆ２からＦｎのイベント実行単位も実行されない。
【００２５】
このため、イベントドリブン法には、エグゾースト法のように無駄な信号代入処理をすることなく、効率のよいシミュレーションを実現することができるという特徴がある。
【００２６】
しかし、イベントドリブン法では、イベントの管理を行う処理が複雑なため、それに伴うオーバーヘッドが大きい。イベント管理は通常イベントキューを用いて実現されるが、このとき以下の操作が必要になる。
【００２７】
・イベントキューからのイベント実行単位の取り出し
・ある信号にイベントが発生したか否かのチェック
・その信号によって起動されるイベント実行単位の走査
・走査されたイベント実行単位のイベントキューへの登録
これらの処理を実現するために、イベントドリブン法を用いた論理シミュレータのプログラムを必然的に複雑になる。さらに、これらの操作に要する実行時間のオーバーヘッドも大きい。
【００２８】
さらに、論理回路中で記述されたイベント実行単位の大きさが不適切なときは、イベントドリブン法でも、エグゾースト法と同じような問題が発生する場合がある。
【００２９】
図３２の例で、演算機能Ｆ０からＦｎが同一のイベント実行単位として記述されていたとする。ここで、信号Ａ、Ｂのどちらかにイベントが発生したが、信号Ｘ０、Ｙ０にイベントが発生しなかったときを考える。このとき、信号Ｘ０とＹ０に対する信号代入処理だけが必要であるのに、イベント実行単位中の他の２ｎ個の信号代入処理もすべて行われてしまうことになる。
【００３０】
以上に述べたように、従来のエグゾースト法あるいはイベントドリブン法を利用した論理シミュレータによるシミュレーションでは、必ずしも効率的なシミュレーションを実行できるとは限らない。これは、従来の論理シミュレータは、与えられた論理回路に記述された信号処理フローをそのままの形で実行するため、本来実行する必要のない信号代入処理を実行してしまうオーバーヘッドがあるからである。
【００３１】
【発明が解決しようとする課題】
以上述べたように、ＲＴＬやゲートレベルで記述された回路は論理合成を前提としない動作レベルの回路に比べ信号演算処理量がはるかに多いが、従来の論理シミュレーションによる高速化は、あくまでＨＤＬの処理方式上の工夫によるものであり、上記に挙げたような回路記述の演算量自体を減らすものではない。従って、ＲＴＬやゲートレベルで記述された回路をイベントドリブン法を用いてシミュレーションする場合、シミュレーション実行に多大な時間を要するという問題点がある。
【００３２】
本発明は、上記事情を考慮してなされたもので、イベント実行単位が小規模の回路から構成されている場合に対しても、信号演算量が少なくなるように回路記述を変換することによって、シミュレーション実行に要する時間を低減させることの可能な論理回路変換方法及び論理シミュレーション装置及び論理回路設計支援装置を提供することを目的とする。
【００３３】
また、従来の論理シミュレータでは、与えられた論理回路における信号処理フローをそのままの形で実行するため、本来実行する必要のない信号代入処理を実行してしまうオーバーヘッドがあった。
【００３４】
本発明は、上記事情を考慮してなされたもので、シミュレーションの際に不必要な信号代入処理を削減することによって、シミュレーション実行に要する時間を低減させることの可能な論理回路変換方法及び論理回路設計支援装置を提供することを目的とする。
【００３５】
【課題を解決するための手段】
本発明の論理回路変換装置は、ＶＨＤＬのハードウエア記述言語で記述された入力論理回路を、ＶＨＤＬの論理シミュレーションのための論理回路へ変換する論理回路変換装置であって、信号演算処理をそれぞれ行う複数のイベント実行単位を含む前記入力論理回路の記述に基づいて、前記複数のイベント実行単位と信号との接続関係を含む回路接続情報を求める第１の手段と、前記入力論理回路中の非同期要素を除いた部分に含まれる複数のイベント実行単位のうち、グループ化の対象とする複数のイベント実行単位を指定するための第２の手段と、前記指定された複数のイベント実行単位を対象として、前記回路接続情報を基に、当該複数のイベント実行単位を入力側からの最長パスから順に大きいレベルとなるようにレベル付けを行うとともに、各イベント実行単位の機能がクロック生成回路、レジスタ、ラッチ、組合せ回路のうちのいずれであるかを判定し、入力側から始めて、この判定された機能を基に、当該レベルの小さい順に複数のイベント実行単位を１つにまとめた複数のグループを求める第３の手段と、前記複数のグループのそれぞれについて、当該グループへの入力信号を代入して当該グループ内のイベント実行単位で行われる信号演算処理に対して、前記回路接続情報に基づいて前記信号演算処理結果が当該グループ内のイベント実行単位のみに出力される第１の代入文を求め、この第１の代入文を当該グループ内のイベント実行単位で実行される論理演算結果をＶＨＤＬの変数として出力する第２の代入文に書き換え、前記回路接続情報に基づいて前記信号演算処理結果が当該グループ内のイベント実行単位および当該グループ外の両方に出力される第３の代入文を求め、この第３の代入文を当該グループ内のイベント実行単位で実行される論理演算結果をＶＨＤＬの変数として出力する第４の代入文と、前記変数を入力として前記第３の代入文の出力信号を出力とする信号演算を行う第５の代入文とに書き換え、前記第１の代入文の出力信号を入力信号として当該グループ内のイベント実行単位で実行されるＶＨＤＬの信号演算またはＶＨＤＬの論理演算を行う第６の代入文に対して、前記第６の代入文への入力信号として含む前記第１の代入文の出力信号を前記第２の代入文の出力である変数に書き換え、前記第３の代入文の出力信号を入力信号として当該グループ内のイベント実行単位で実行されるＶＨＤＬの信号演算またはＶＨＤＬの論理演算を行う第７の代入文に対して、前記第７の代入文への入力信号として含む前記第３の代入文の出力信号を前記第４の代入文の出力である変数に書き換える第４の手段とを具備する。
【００７１】
【発明の実施の形態】
（第１の発明）
以下、図面を参照しながら第１の発明の実施の形態を説明する。
【００７２】
（第１の実施形態）
本実施形態に係る論理回路変換装置は、回路の接続情報を解析する回路接続情報解析部、回路接続情報を基に信号演算処理の簡略化を行う範囲を決定する信号演算簡略化範囲決定部、および決定された範囲に対して信号演算処理の簡略化を実行する信号演算簡略化実行部を具備する。
【００７３】
本実施形態によれば、回路接続情報解析部によって解析された回路接続情報を基に、信号演算簡略化範囲決定部が信号演算処理の簡略化を行う範囲を決定し、決定された範囲に対して信号演算簡略化実行部が信号演算処理の簡略化を実行することができ、入力回路から信号演算処理が簡略化された回路を得ることができる。
【００７４】
この信号演算が簡略化された記述を論理シミュレータへの入力とすることにより、高速な論理シミュレーションが可能になる。
【００７５】
以下、本実施形態についてより詳しく説明する。
【００７６】
図１は、本実施形態に係る論理回路変換装置１の構成を示す図である。
【００７７】
論理回路変換装置１は、回路接続情報解析部１０、信号演算簡略化範囲決定部２０及び信号演算簡略化実行部３０を備えている。
【００７８】
回路接続情報解析部１０は、入力された論理回路記述１００における回路接続情報として、イベント実行単位（イベントドリブン法での処理単位）間の起動関係、すなわちイベント実行単位と信号との接続関係（信号を介した論理演算処理単位間の依存関係）を解析する。
【００７９】
信号演算簡略化範囲決定部２０は、回路接続情報解析部１０で解析された回路接続情報を基に、論理回路記述１００中のどのイベント実行単位同士をどのような順番でグループ化すれば信号演算を簡略化できるかを判定し、グループ化すべきイベント実行単位の範囲を決定する。
【００８０】
信号演算簡略化実行部３０は、信号演算簡略化範囲決定部２０によって決定された記述範囲のそれぞれに、イベント実行単位をまとめる操作を適用し、信号演算の簡略化を行う。
【００８１】
本実施形態に係る論理回路変換装置１を用いた論理回路の変換方法を簡単な例で説明する。
【００８２】
図２は、入力回路の回路図である。信号Ａと信号ＢのＡＮＤ（論理積）を信号Ｄとし、この信号Ｄと信号ＣのＯＲ（論理和）を信号Ｘとして出力する。図３は、図２の回路図に対応する論理をＶＨＤＬで記述したものである。ここで、図２、図３におけるｐ１、ｐ２は、イベント実行単位を表しており、図２では回路素子に、図３ではＶＨＤＬプロセスに対応している。なお、入力回路はネットリストで表現しても構わない。
【００８３】
図２あるいは図３の記述を論理回路変換装置１に入力すると、回路接続情報解析部２０は、図４に示すようなイベント実行単位と信号間の接続関係データを生成する。ここでは、説明を簡単にするため、接続関係をグラフで表現しているが、構造体の形でデータを保持しても構わない。
【００８４】
このグラフの定義は以下の通りである。ノードはイベント実行単位を、エッジは信号を表している。ここで、信号ｅの値変化（イベント）でイベントドリブン実行単位ｐが起動されるとき、エッジｅはノードｐへの入力になる。また、イベント実行単位ｐ中で信号ｅが評価されるとき、エッジｅはノードからの出力になる。出力先は複数ノードであっても構わない。
【００８５】
図４では、ｐ１は信号Ａ、Ｂのイベントにより起動され、ｐ２は信号Ｃ、Ｄのイベントにより起動される。また、ｐ１はＤを、ｐ２はＸをそれぞれ出力する。
【００８６】
信号演算簡略化範囲決定部２０は、図４の接続データを基に、イベント実行単位のグループ化によって信号演算の簡略化が可能な範囲を決定する。この範囲の決定は、例えば同期回路では以下の手順で実現できる。
【００８７】
（手順１）回路接続グラフを用いて、各イベント実行単位を入力側からの最長パスの順にレベル付けする。
【００８８】
（手順２）ＧＲを空集合とする。
【００８９】
（手順３）入力側から始めて、レベルの小さい順にイベント実行単位をグループ化候補としてＧＲに順次取り込む。
【００９０】
（手順４）グループ化候補となるイベント実行単位がなくなれば終了する。グループＧＲに含まれるイベント実行単位が信号演算簡略化の範囲である。
【００９１】
図４に上記の手続きを適用した結果が図５である。（手順１）によりイベント実行単位ｐ１、ｐ２にそれぞれレベル１、レベル２が付与され、（手順３）によりｐ１、ｐ２の順にグループ化候補としてグループＧＲにより込まれる。従って、信号演算簡略化の範囲は、ｐ１、ｐ２（図中２００）となる。
【００９２】
信号演算簡略化実行部３０は、信号演算簡略化範囲決定部２０によって決定された範囲のイベント事項単位のグループを１つのイベント実行単位にまとめる。これは、以下の手順で実現できる。
【００９３】
（手順Ａ）上記の（手順１）から（手順４）で求められたグループ内のイベント実行単位を、取り込まれた順に並べ、１つのイベント実行単位としてまとめる。
【００９４】
（手順Ｂ）次に、グループ内のイベント実行単位同士での入力信号は、即時代入される変数にする。この場合、その信号がグループ外のイベント実行単位への出力にもなっているときは、信号と変数の両方として残す。
【００９５】
図６〜図８は、図５に上記の手続きを適用して回路の変換を行った結果である。
【００９６】
図６は、変換結果をブロック図で表したものである。（手順Ａ）によりｐ１、ｐ２がグループ化され、信号Ａ、Ｂ、Ｃを入力、信号Ｘを出力とする１つのイベント実行単位になっている。
【００９７】
図７は、変換結果に対応したＶＨＤＬ記述である。（手順Ａ）によりプロセスｐ１、ｐ２が１つのプロセスｐ＿ｍ１としてまとめられている。図６と同様、信号Ａ、Ｂ、Ｃが入力、信号Ｘが出力である。この場合、ｐ１、ｐ２間の値の伝搬に使われている信号Ｄは信号から変数になり、演算実行が簡略化されている。
【００９８】
図６、図７に対応した回路接続グラフは図８に示す通りである。
【００９９】
信号演算簡略化実行部３０によって信号演算が簡略化された記述は、論理回路記述１０１として出力される。
【０１００】
なお、出力回路は図面、ネットリスト、ＨＤＬのいずれでも構わない。また、ＨＤＬもＶＨＤＬに限るものではない。
【０１０１】
このようにして信号演算を簡略化して得られた回路記述では、１シミュレーションサイクルで同一のイベント実行単位が何度も評価実行されてしまうことがない。また、イベント実行単位間での値の受渡しに関する信号処理演算が変数演算に置き換えられるため、高速に処理することができる。さらに、イベント事項単位数が減るため、イベント実行単位をイベントキューに登録したり、登録したイベントキューを取り出す回数が低減する。
【０１０２】
従って、本実施形態によれば、イベント実行単位が小規模で構成され、信号演算実行量が多い場合でも、シミュレーション実行に要する処理量が低減された回路を得ることができる。
【０１０３】
ところで、上記では簡略化を適用する範囲に対するグループを１つとして説明したが、簡略化を適用する範囲に対するグループを複数にすることも可能である。例えば以下の手順は、同期回路をレベルＮ以下とレベルＮ＋１以上の２つのイベント実行単位に分けるものである。
【０１０４】
（手順１）回路接続グラフを用いて、各イベント実行単位を入力側からの最長パスの順にレベル付けする。
【０１０５】
（手順2'）ＧＲ１、ＧＲ２を空集合とする。
【０１０６】
（手順3'）入力側から始めて、レベルの小さい順に、イベント実行単位を走査する。レベルがＮ以下ならばＧＲ１に順次取り込む。レベルがＮ＋１以上ならばＧＲ２に順次取り込む。
【０１０７】
（手順4'）グループ化候補となるイベント実行単位がなくなれば終了。グループＧＲ１、ＧＲ２に含まれるイベント実行単位がそれぞれ信号演算簡略化の範囲である。
【０１０８】
この場合、イベントドリブン実行単位のグループ化および簡略化は複数箇所存在することになる。
【０１０９】
次に、信号演算簡略化範囲決定部２０の変形例について説明する。
【０１１０】
上述の信号演算簡略化範囲決定部２０では、回路接続情報解析部１０で解析された回路接続情報を基に信号演算簡略化範囲を決定した。その代わりに、予め信号演算簡略化範囲を設定しておき、入力回路について該設定範囲の適用が可能か否かを、回路接続情報解析部１０で解析された回路接続情報を基に確認し、適用が可能であると判断された場合に該設定範囲を信号演算簡略化範囲として決定するようにしても良い。例えば、信号演算簡略化範囲を入力回路全体と設定しておき、入力回路中に非同期ループがないことだけ確認し、非同期ループがなければ回路全体を信号演算簡略化範囲と決定する。
【０１１１】
（第１の実施形態に係る論理回路変換装置を備えた論理シミュレーション装置の実施形態）
本実施形態に係る論理シミュレーション装置は、図９に示すように、前述した第１の実施形態の論理回路変換装置１の持つ回路接続情報解析部１０、信号演算簡略化範囲決定部２０及び信号演算簡略化実行部３０に、与えられた論理回路記述をもとに論理シミュレーションを実行する論理シミュレーション部９０を付加したものである。論理シミュレーション部９０としては、公知のものを使用する。
【０１１２】
論理回路変換装置１によって論理シミュレーション対象となる論理回路記述を、信号演算の簡略化された信号演算処理量の少ない論理回路記述に変換し、変換後の論理回路記述を入力として論理シミュレーション部９０により論理シミュレーションを実行する。
【０１１３】
このように公知の論理シミュレーション部９０の前段に論理回路記述の信号演算を簡略化する論理回路変換装置１を設けることによって、高速に論理シミュレーションを実行する論理シミュレーション装置を実現することができる。
【０１１４】
（第２の実施形態）
本実施形態に係る論理回路変換装置は、回路の接続情報を解析する回路接続情報解析部と、簡略化を適用する範囲を指定する簡略化適用範囲指定部と、信号演算処理の簡略化を行う範囲を決定する信号演算簡略化範囲決定部と、決定された範囲に対して信号演算処理の簡略化を実行する信号演算簡略化実行部を備えている。
【０１１５】
本実施形態によれば、回路接続情報解析部によって解析された回路接続情報と、簡略化適用範囲指定部で指定された範囲を基に、信号演算簡略化範囲決定部が信号演算処理の簡略化を行う範囲を決定し、決定された範囲に対して信号演算簡略化実行部が信号演算処理の簡略化を実行することができ、入力回路から信号演算処理が簡略化された回路を得ることが可能になる。
【０１１６】
本実施形態によれば、入力回路の中で、設計者が観測したい信号を避けるように、信号の簡略化を適用することが可能になる。
【０１１７】
以下、本実施形態についてより詳しく説明する。
【０１１８】
図１０は、本実施形態に係る論理回路変換装置の構成を示す図である。
【０１１９】
本実施形態に係る論理回路変換装置２は、回路接続情報解析部１０、信号演算簡略化範囲決定部２１、信号演算簡略化実行部３０、および簡略化適用範囲指定部４０を備えている。回路接続情報解析部１０、信号演算簡略化実行部３０は、第１の実施形態と同様である。
【０１２０】
回路接続情報解析部１０は、入力された論理回路記述１００における回路接続情報として、イベント実行単位（イベントドリブン法での処理単位）間の起動関係、すなわちイベント実行単位と信号との接続関係を解析する。
【０１２１】
ここで本実施形態では、ユーザは、簡略化適用範囲指定部４０から範囲指定データ１０５を入力して、回路中で信号演算の簡略化を適用させる範囲を指定する。範囲指定データ１０５として、範囲を表すデータ（例えばイベント実行単位を特定するデータ；ｐ１、ｐ２等）を直接入力するようにしても良いし、範囲を直接表すデータに対応付けられたＩＤ番号等をキー入力しても良いし、あるいは表示されたメニュー画面のリストから選択入力するようにしても良い。
【０１２２】
信号演算簡略化範囲決定部２１は、回路接続情報解析部１０で解析された回路接続情報と、簡略化適用範囲指定部４０で指定された範囲を基に、論理回路記述１００中のどのイベント実行単位同士をどのような順番でグループ化すれば信号演算を簡略化できるかを判定し、グループ化すべきイベント実行単位の範囲を決定する。
【０１２３】
信号演算簡略化実行部３０は、信号演算簡略化範囲決定部２１によって決定された記述範囲のそれぞれに、イベント実行単位をまとめる操作を適用し、信号演算の簡略化を行う。
【０１２４】
本実施形態に係る論理回路変換装置２を用いた論理回路の変換方法を簡単な例で説明する。
【０１２５】
図１１は、入力回路の回路図である。図１１の回路は、図２の回路に信号Ｘと信号ＥのＡＮＤを信号Ｙとして出力するＡＮＤ素子ｐ３を加えたものである。図１２は、図１１の回路図に対応する論理をＶＨＤＬで記述したものである。ここで、図１１、図１２におけるｐ１、ｐ２、ｐ３は、イベント実行単位を表しており、図１１では回路素子に、図１２ではＶＨＤＬプロセスに対応している。なお、入力回路はネットリストで表現しても構わない。
【０１２６】
ここで例えばユーザが信号Ｘを信号のまま観測したい場合、範囲指定データを、
｛ｐ１、ｐ２｝
として、ｐ１、ｐ２のみ指定し、ｐ３は指定に含まないように指定する。
【０１２７】
なお、ここでは、イベント実行単位の名前で指定しているが、各イベント実行単位に一意的なＩＤを付与し、ＩＤで指定しても良い。また、イベント実行単位を並べて指定する代わりに、例えばある階層を指定し、その階層から下のすべてのイベント実行単位を指すことにしても良い。
【０１２８】
図１１あるいは図１２の記述を論理回路変換装置２に入力すると、回路接続情報解析部２１は、図１３に示すようなイベント実行単位と信号間の接続関係データを生成する。第１の実施形態と同様、説明を簡単にするため、接続関係をグラフで表現しているが、構造体の形でデータを保持しても構わない。
【０１２９】
信号演算簡略化範囲決定部２１は図１３の接続データを基に、イベント実行単位のグループ化によって信号演算の簡略化が可能な範囲を決定する。この範囲の決定は、例えば同期回路では以下の手順で実現できる。
【０１３０】
（手順１）回路接続グラフを用いて、各イベント実行単位を入力側からの最長パスの順にレベル付けする。
【０１３１】
（手順２）ＧＲを空集合とする。
【０１３２】
（手順3a）入力側から始めて、レベルの小さい順に、簡略化適用範囲指定部４０で指定された範囲中にあるイベント実行単位をＧＲに順次取り込む。
【０１３３】
（手順４）グループ化候補となるイベント実行単位がなくなれば終了する。グループＧＲに含まれるイベント実行単位が信号演算簡略化の範囲である。
【０１３４】
図１３に上記の手続きを適用した結果が図１４である。（手順１）によりイベント実行単位ｐ１、ｐ２、ｐ３にそれぞれレベル１、レベル２、レベル３が付与され、（手順３ａ）によりｐ１、ｐ２の順にグループ化候補としてグループＧＲにより込まれる。ここで、ｐ３は簡略化適用範囲指定部４０による指定に含まれないので、ＧＲには取り込まれない。従って、信号演算簡略化の範囲は、ｐ１、ｐ２となる。
【０１３５】
信号演算簡略化実行部３０は、信号演算簡略化範囲決定部２１によって決定された範囲のイベント事項単位のグループを１つのイベント実行単位にまとめる。これは、第１に実施形態の（手順Ａ）および（手順Ｂ）により実現できる。
【０１３６】
なお、第１の実施形態の図６〜図８に対応する結果（変換結果を表すブロック図、ＶＨＤＬ記述、回路接続グラフ）は省略する。
【０１３７】
信号演算簡略化実行部３０によって信号演算が簡略化された記述は、論理回路記述１０２として出力される。
【０１３８】
なお、出力回路は図面、ネットリスト、ＨＤＬのいずれでも構わない。また、ＨＤＬもＶＨＤＬに限るものではない。
【０１３９】
このようにして、信号演算簡略化の範囲を指定して得られた回路記述では、設計者が観測したい信号を避けて信号演算の簡略化を適用することができる。また、信号演算簡略化を適用した範囲については、第１の実施形態と同様に、シミュレーション実行に要する処理量が低減された回路を得ることができる。
【０１４０】
なお、第１の実施形態で述べたのと同様に、簡略化を適用する範囲に対するグループを複数にすることも可能である。例えば、グループを２つに分ける場合、簡略化適用範囲指定部４０から範囲指定データ１０５として、適用する範囲とその範囲においてグループを分ける基準となる前述のレベルＮを示す数値とを入力するなどすれば良い。
【０１４１】
（第２の実施形態に係る論理回路変換装置を備えた論理シミュレーション装置の実施形態）
本実施形態に係る論理シミュレーション装置は、図１５に示すように、前述した第２の実施形態の論理回路変換装置２の持つ回路接続情報解析部１０、信号演算簡略化範囲決定部２１、信号演算簡略化実行部３０及び簡略化適用範囲指定部４０に、与えられた論理回路記述をもとに論理シミュレーションを実行する論理シミュレーション部９０を付加したものである。論理シミュレーション部９０としては、公知のものを使用する。
【０１４２】
ユーザの観測したい信号を簡略化適用範囲から除外した範囲指定データが与えられた論理回路変換装置２は該範囲指定データに基づいて論理シミュレーション対象となる論理回路記述を、信号演算の簡略化された信号演算処理量の少ない論理回路記述に変換し、変換後の論理回路記述を入力として論理シミュレーション部９０により論理シミュレーションを実行する。従って、ユーザの観測したい信号を残した上で、論理シミュレーションの実行を高速化することができる。
【０１４３】
このように公知の論理シミュレーション部９０の前段にユーザ指定に基づいて論理回路記述の信号演算を簡略化する論理回路変換装置２を設けることによって、デバッグ機能を低下させることなく、高速に論理シミュレーションを実行する論理シミュレーション装置を実現することができる。
【０１４４】
（第３の実施形態）
本実施形態に係る論理回路変換装置は、回路の接続情報を解析する回路接続情報解析部と、回路の機能を判定する回路機能判定部と、信号演算処理の簡略化を行う範囲を決定する信号演算簡略化範囲決定部と、決定された範囲に対して信号演算処理の簡略化を実行する信号演算簡略化実行部を備えている。
【０１４５】
本実施形態によれば、回路接続情報解析部によって解析された回路接続情報と、回路機能判定部で判定された回路構成要素の機能情報を基に、信号演算簡略化範囲決定部が信号演算処理の簡略化を行う範囲を決定し、決定された範囲に対して信号演算簡略化実行部が信号演算処理の簡略化を実行することができ、入力回路から信号演算処理が簡略化された回路を得ることが可能になる。
【０１４６】
本実施形態によれば、入力回路をレジスタと組合せ回路とに分けて、信号演算の簡略化を適用することが可能になる。従って、設計者による観測頻度の高いレジスタの出力値を信号値として残しつつ、高速な論理シミュレーションは可能になる。
【０１４７】
以下、本実施形態についてより詳しく説明する。
【０１４８】
図１６は、本実施形態に係る論理回路変換装置の構成を示す図である。
【０１４９】
本実施形態に係る論理回路変換装置３は、回路接続情報解析部１０、信号演算簡略化範囲決定部２２、信号演算簡略化実行部３０および回路機能判定部５０を備えている。回路接続情報解析部１０、信号演算簡略化実行部３０は、第１の実施形態と同様である。
【０１５０】
回路接続情報解析部１０は、入力された論理回路記述１００における回路接続情報として、イベント実行単位（イベントドリブン法での処理単位）間の起動関係、すなわちイベント実行単位と信号との接続関係を解析する。
【０１５１】
一方、回路機能判定部５０は、回路の各構成要素（イベント実行単位）がクロック生成回路、レジスタ、ラッチ、組合せ回路のいずれであるかを判定し、回路構成要素の機能情報として出力あるいは保持する。
【０１５２】
信号演算簡略化範囲決定部２２は、回路接続情報解析部１０で解析された回路接続情報と、回路機能判定部５０で判定された回路構成要素の機能情報を基に、回路１００中のどのイベント実行単位同士をどのような順番でグループ化すれば信号演算を簡略化できるかを判定し、グループ化すべきイベント実行単位の範囲を決定する。
【０１５３】
信号演算簡略化実行部３０は、信号演算簡略化範囲決定部２１によって決定された記述範囲のそれぞれに、イベント実行単位をまとめる操作を適用し、信号演算の簡略化を行う。
【０１５４】
本実施形態に係る論理回路変換装置３を用いた論理回路の変換方法を簡単な例で説明する。
【０１５５】
図１７は、入力回路の回路図である。図１７の回路は、図２の回路に対し、クロックの立ち上がりに信号Ｘと信号Ｘの否定とをそれぞれ信号Ａと信号Ｂに伝搬させるレジスタｐ０１、およびクロックの立ち上がりに信号Ｘを信号Ｃに伝搬させるレジスタｐ０２を加えたものである。簡単のためクロックは外部入力として与えられるものとする。
【０１５６】
図１８は、図１７の回路図に対応する論理をＶＨＤＬで記述したものである。ここで、図１７、図１８におけるｐ０１、ｐ０２、ｐ１、ｐ２は、イベント実行単位を表しており、図１７では回路素子に、図１８ではＶＨＤＬプロセスに対応している。なお、入力回路はネットリストで表現しても構わない。
【０１５７】
図１７あるいは図１８の記述を論理回路変換装置３に入力すると、回路接続情報解析部２２は、図１９に示すようなイベント実行単位と信号間の接続関係データを生成する。第１の実施形態と同様、説明を簡単にするため、接続関係をグラフで表現しているが、構造体の形でデータを保持しても構わない。
【０１５８】
また、回路機能判定部５０により、イベント実行単位ｐ０１、ｐ０２、ｐ１、ｐ２に対する機能情報が、例えば、図２０のように出力される。機能情報およびイベント実行単位はＩＤで記述されていても良い。
【０１５９】
信号演算簡略化範囲決定部２２は図２０の機能情報を基に、イベント実行単位のグループ化によって信号演算の簡略化が可能な範囲を決定する。この範囲の決定は、例えばレジスタと組合せ回路から構成される同期回路では以下の手順で実現できる。
【０１６０】
（手順１）回路接続グラフを用いて、各イベント実行単位を入力側からの最長パスの順にレベル付けする。
【０１６１】
（手順2'）ＧＲ１、ＧＲ２を空集合とする。
【０１６２】
（手順3b）入力側から始めて、レベルの小さい順に、イベント実行単位を走査する。機能がレジスタならばＧＲ１に順次取り込む。機能が組合せ回路ならばＧＲ２に順次取り込む。
【０１６３】
（手順4'）グループ化候補となるイベント実行単位がなくなれば終了する。グループＧＲ１、ＧＲ２に含まれるイベント実行単位が信号演算簡略化の範囲である。
【０１６４】
図１９に上記の手続きを適用した結果が図２１である。（手順１）により、イベント実行単位ｐ０１、ｐ０２、ｐ１、ｐ２にそれぞれレベル１、レベル１、レベル２、レベル３が付与される。ｐ０１、ｐ０２、ｐ１、ｐ２の機能はそれぞれレジスタ、レジスタ、組合せ回路、組合せ回路なので、（手順３ｂ）により、ｐ０１、ｐ０２の順にグループＧＲ１に、ｐ１、ｐ２の順にグループＧＲ２に取り込まれる。従って、信号演算簡略化の範囲は、ｐ０１、ｐ０２、ｐ１、ｐ２となる。
【０１６５】
信号演算簡略化実行部３０は、信号演算簡略化範囲決定部２２によって決定された範囲のイベント事項単位のグループを１つのイベント実行単位にまとめる。これは、第１に実施形態の（手順Ａ）および（手順Ｂ）により実現できる。
【０１６６】
図２２〜図２４は、図２１に信号の簡略化の手続きを適用して回路の変換を行った結果である。
【０１６７】
図２２は、変換結果をブロック図で表したものである。（手順Ａ）により、ｐ０１、ｐ０２はグループ化され、信号ＣＬＫ、Ｘを入力、信号Ａ、Ｂ、Ｃを出力とする１つのイベント実行単位になっている。また、ｐ１、ｐ２もグループ化され、信号Ａ、Ｂ、Ｃを入力、信号Ｘを出力とする１つのイベント実行単位になっている。
【０１６８】
図２３は、変換結果に対応したＶＨＤＬ記述である。ｐ１、ｐ２間の値の伝搬に使われている信号Ｄは信号から変数になり、演算実行が簡略化されている。
【０１６９】
図２２、図２３に対応した回路接続グラフが図２４に示す通りである。
【０１７０】
信号演算簡略化実行部３０によって信号演算が簡略化された記述は、論理回路記述１０３として出力される。
【０１７１】
なお、出力回路は図面、ネットリスト、ＨＤＬのいずれでも構わない。また、ＨＤＬもＶＨＤＬに限るものではない。
【０１７２】
このようにして、回路機能判定部を有する本論理回路変換装置では、レジスタ、組合せ回路に対して順に、信号演算の簡略化を適用することができる。従って、設計者による観測頻度の高いレジスタの出力値を信号値として残しつつ、高速な論理シミュレーションが可能になる。
【０１７３】
（第３の実施形態に係る論理回路変換装置を備えた論理シミュレーション装置の実施形態）
本実施形態に係る論理シミュレーション装置は、図２５に示すように、前述した第３の実施形態の論理回路変換装置３の持つ回路接続情報解析部１０、信号演算簡略化範囲決定部２２、信号演算簡略化実行部３０及び回路機能判定部５０に、与えられた論理回路記述をもとに論理シミュレーションを実行する論理シミュレーション部９０を付加したものである。論理シミュレーション部９０としては、公知のものを使用する。
【０１７４】
論理回路変換装置３は論理シミュレーション対象となる論理回路記述を、回路機能（この場合はレジスタと組合せ回路）の分類によりグループ化し、そのグループごとに信号演算の簡略化された信号演算処理量の少ない論理回路記述に変換し、論理シミュレーション部９０は、変換後の論理回路記述を入力として論理シミュレーションを実行する。従って、本実施形態によれば、例えば、設計者による観測頻度の高いレジスタの出力値を信号値として残しつつ、高速な論理シミュレーションが可能になる。
【０１７５】
このように公知の論理シミュレーション部９０の前段に論理回路記述の信号演算を簡略化する論理回路変換装置３を設けることによって、デバッグ機能を低下させることなく、高速に論理シミュレーションを実行する論理シミュレーション装置を実現することができる。
【０１７６】
（第４の実施の形態）
本実施形態に係る論理回路変換装置は、入力論理回路中における信号処理フローを解析する手段と、前記解析手段による信号処理フローの解析結果に基づき、入力論理回路中にイベント判定論理を挿入する箇所を決定する手段と、前記決定手段によって決定された入力論理回路中の挿入箇所にイベント判定論理を挿入する手段を有する。
【０１７７】
本実施形態によれば、入力論理回路中の実行する必要のない可能性が高い信号代入処理の前後をイベント判定論理でくくり、入力論理回路をより高速にシミュレーション実行可能な論理回路に変換することが可能になる。
【０１７８】
従来の論理シミュレーションでは、入力された論理回路の記述における信号処理フローを変えることがなかったため、効率のよいシミュレーション実行が困難であった。本実施形態によれば、入力論理回路をより高速にシミュレーション実行可能な論理回路に変換し、変換された記述を論理シミュレータに入力することによって、高速な論理シミュレーションが可能になる。
【０１７９】
以下、本実施形態についてより詳しく説明する。
【０１８０】
図２６は、本実施形態に係る論理回路変換装置３１０の構成を示す図である。
【０１８１】
論理回路変換装置３１０は、信号処理フロー解析部３１１、イベント判定論理挿入箇所決定部３１２及びイベント判定論理挿入部３１３を備えている。
【０１８２】
信号処理フロー解析部３１１は、入力された論理回路記述３１４に記述された信号処理フローを解析し、信号と論理演算単位の間の依存関係情報を得る。ここで、論理演算単位とは、イベント判定論理でくくる単位を表す。具体的には、ＡＮＤやＯＲなどの回路素子、信号代入文、イベント実行単位、あるいはこれらをグループ化したものが考えられる。
【０１８３】
イベント判定論理挿入箇所決定部３１２は、信号処理フロー解析部１１で解析された依存関係情報をもとに、論理回路記述３１４中のどの論理演算単位の前後にイベント判定論理を挿入するかを決定する。ここで、回路記述中で連続して記述されている複数の論理演算単位をグループ化して前後にイベント判定論理を挿入することも許される。
【０１８４】
イベント判定論理挿入部３１３では、イベント判定論理挿入箇所決定部１２によって判定された挿入箇所に、適当なイベント判定論理を挿入することによって、論理回路記述３１４を論理的に等価な回路に変換する。等価変換された回路は、論理回路記述３１５として出力される。
【０１８５】
本実施形態に係る論理回路変換装置３１０を用いた論理回路の変換方法を簡単な例で説明する。
【０１８６】
図２７は、入力論理回路の回路図である。信号Ａと信号ＢのＸＯＲ（排他的論理和）を信号Ｇとして出力する。
【０１８７】
図２８は、図２７の回路図に対応する論理をＣ言語で記述したものである。図２８の記述を論理回路変換装置３１０に入力すると、信号処理フロー解析部３１１は、論理演算単位と信号間の接続関係データを生成する。この接続関係データは、図２９に示すように論理演算単位をノード、起動信号をエッジとするグラフ情報として表現されていることが望ましい。
【０１８８】
イベント判定論理挿入箇所決定部３１２は、このグラフ上で、閉じた論理演算単位のグループのうちで、入力信号数に比べて信号処理代入がなるべく多いものを求める。この例では、このグループは図３０で点線で囲まれたノード集合として求められる。このグループの求め方の詳細は後に述べる。
【０１８９】
イベント判定論理挿入部３１３は、イベント判定論理挿入箇所決定部１２によって求められた論理演算単位あるいは論理演算単位グループの前後にイベント判定論理を挿入する。この例では、グループへの入力信号Ａ、Ｂの前シミュレーションサイクルでの値をそれぞれＡ＿ｏｌｄ、Ｂ＿ｏｌｄとするとき、図３１の記述に変換することに対応する。
【０１９０】
イベント判定論理挿入部３１３によってイベント判定論理が挿入された記述は、論理回路記述３１５として出力される。この変換方法では、論理回路記述３１５のシミュレーション結果が、もとの論理回路記述３１４のシミュレーション結果と一致することが容易に分かる。
【０１９１】
なお、この具体例では説明を分かりやすくするために、イベント判定論理でチェックされる信号数２個に対して、イベント判定論理でくくられた部分記述中に含まれる信号処理代入数５個と、それほど多くなっていないが、図３２の例のように、イベント判定論理でチェックされる信号数（２個）に対して、イベント判定論理でくくられた部分記述中に含まれる信号処理代入数（２＋２ｎ個）が非常に大きい場合は、変換によるシミュレーションの高速化の効果は絶大である。
【０１９２】
さて、論理回路記述３１４をより高速シミュレーション実行可能な論理回路記述３１５に置き換えるために、イベント判定論理挿入箇所決定部３１２が適切にイベント判定論理挿入箇所を決定する必要がある。以下に、イベント判定論理挿入箇所決定部３１２における処理方法の一例を述べる。イベント判定論理挿入箇所決定部３１２は、先に述べたように、接続関係データを表すグラフ上で、閉じた論理演算単位のグループのうちで、入力信号数に比べて信号処理代入数がなるべく多いものを求める必要がある。
【０１９３】
ここで、イベント判定論理をその前後に挿入すべき論理演算単位グループでは、途中で一旦グループの外に出た後、再びグループ内に入ってくるパス（エッジの列）がないことが条件となる。この理由を例を用いて説明する。図３３で点線で囲まれた論理演算単位のグループは、ノードＦ１からエッジＣ、エッジＦを通ってＦ４に至るパスがあり、途中でグループ外のノードＦ３を通過するため、上記の条件には該当しない。このグラフ上で、Ｆ１、Ｆ３、Ｆ４の順に通過するパスがあるということは、Ｆ１、Ｆ３、Ｆ４の順に演算実行を行わなくてはならないことを意味している。したがって、イベント判定論理でＦ１、Ｆ４をくくり、同時に実行してしまうと、上記の実行順序と必ず矛盾してしまうことになるからである。
【０１９４】
以下、論理演算グループ（ノード集合）において、途中で一旦グループの外に出た後、再びグループ内に入ってくるパスがない状態を「閉じている」あるいは「閉じた」などと呼ぶことにする。
【０１９５】
ここで、グラフ上で、入力信号数に比べて信号処理代入が多い、閉じた論理演算単位のグループを求めるためには、例えば、各論理演算単位中に含まれる信号処理代入数をノードのサイズと定め、接続グラフ上で、「閉じたノード集合で、入力エッジ数に比してノードのサイズの和が大きいもの」を見つける問題を解けばよい。
【０１９６】
この問題を解く方法として、例えば図３４に示す手順でノード集合を探索すればよい。なお、接続グラフをＧ＝（Ｖ、Ｅ）とする。また、Ｕは和集合を表すものとする。
【０１９７】
まず、Ｖから適当なノードａを選び、ノード集合Ｔ＝｛ａ｝とする（ステップＳ１１）。
【０１９８】
ステップＳ１２でＴ＝Ｖならば探索を終了する。
【０１９９】
ステップＳ１２でＴ＝Ｖでなければ、Ｔに隣接するノードｂを選びＴ＝ＴＵ｛ｂ｝とする（ステップＳ１３）。
【０２００】
次に、Ｔが閉じていないときは、Ｔが閉じた状態になるまで、適当なノードｃを選び、Ｔ＝ＴＵ｛ｃ｝を繰り返す（ステップＳ１３）。
【０２０１】
次に、ｆ（ｉｎ（Ｔ）、ｓｉｚｅ（Ｔ））が定められた値ｇ以上ならば集合Ｔに含まれる信号処理代入式の前後をイベント判定論理挿入箇所と決定し、ステップＳ１２に戻る。ここで、ｉｎ（Ｔ）はＴへの入力エッジ数、ｓｉｚｅ（Ｔ）はＴの要素のサイズの和、ｆは適当な評価関数である。
【０２０２】
上記のアルゴリズムは非決定的な探索の例であり、これを深さ優先探索と組合せれば、すべてのノード部分集合をＴとして探索することも可能である。
【０２０３】
また、ノードのサイズとして、信号処理代入数の代わりに、論理演算単位の記述行数や、信号処理の種類ごとに実行時間の重みづけをして加算した積和を用いてもよい。
【０２０４】
イベント判定論理挿入箇所は複数あっても構わない。また、図３５のように挿入箇所同士が入れ子構造になっていても構わない。
【０２０５】
（第４の実施形態の変形例１）
本実施形態に係る論理回路変換装置に入力される論理回路中の各信号のイベントがどのくらいの頻度で発生するのかを設計者が知っている場合、この情報を利用した方が、より正確にイベント判定論理挿入箇所を決定できることが考えられる。
【０２０６】
そのため、図３６で示す論理回路変換装置４００のように、イベント判定論理挿入箇所を設計者が予め指定する機能を持つイベント判定論理挿入範囲指定部３１７と、この指定を基にイベント判定論理挿入箇所の決定を行う機能を持つイベント判定論理挿入箇所決定部３１８とを設けることで、より高速にシミュレーション可能な論理回路変換結果を得ることができる。
【０２０７】
論理演算単位のグループの指定は、例えば、
Ｆ０、Ｆ１、Ｆ２、Ｆ３、Ｆ４
のように論理演算単位のグループとして記述してもよい。また、
Ａ、Ｂ；Ｇ
のように、入力信号の集合、出力信号の集合として指定してもよい。
【０２０８】
（第４の実施形態の変形例２）
回路中で各信号のイベント発生頻度がシミュレーション実行中に大きく変化するときは、一旦、挿入されたイベント判定論理を削除し、別の箇所にイベント判定論理を再挿入できることが望ましい。そのため、図３７で示す論理回路変換装置４０１のように、イベント判定論理を削除するためのイベント判定論理削除部３１６を設けると良い。
【０２０９】
ここで、論理回路変換装置による変換と無関係に論理回路中に記述されていたイベント判定論理と、論理回路変換装置による変換で挿入されたイベント判定論理を区別する必要がある。この区別は、例えば、回路中でイベント判定論理を挿入した「行」あるいはその「行」の前後に、適当な識別子を含むコメントを入れることで実現可能である。
【０２１０】
（第４の実施形態の変形例３）
本実施形態による論理回路変換装置に入力される論理回路中の各信号のイベントがどのくらいの頻度で発生するのかを記述した実行履歴情報がある場合、この情報を利用することにより、より正確にイベント判定論理挿入箇所を決定できると考えられる。
【０２１１】
そのため、図３８に示す論理回路変換装置４０２のように、実行履歴情報３２０を設計者が予め指定し、この指定を基にイベント判定論理挿入箇所の決定を行う機能を、イベント判定論理挿入箇所決定部３１９に持たせることで、より高速にシミュレーション可能な、論理回路変換結果が得られることが期待される。
【０２１２】
実行履歴情報の指定方法としては、図３９のように、各論理演算単位ごとに、各シミュレーションサイクルにイベント実行処理されたか否かの履歴を与えてもよい。図４０のように、各論理演算単位ごとに、イベント実行処理された頻度の情報を与えてもよい。
【０２１３】
（第５の実施形態）
本実施形態に係る論理シミュレーション装置は、入力論理回路中における信号処理フローを解析する手段と、前記解析手段による信号処理フローの解析結果に基づき、入力論理回路中にイベント判定論理を挿入する箇所を決定する手段と、前記決定手段によって決定された入力論理回路中の挿入箇所にイベント判定論理を挿入する手段を有する。
【０２１４】
本実施形態によれば、入力論理回路中の実行する必要のない可能性が高い信号代入処理の前後をイベント判定論理でくくり、入力論理回路をより高速にシミュレーション実行することが可能になる。
【０２１５】
従来の論理シミュレーションでは、入力された論理回路の記述における信号処理フローを変えずにシミュレーションを実行していたため、効率のよいシミュレーション実行が困難であった。本実施形態によれば、入力論理回路をより高速にシミュレーション実行可能な論理回路に変換し、シミュレーション実行する高速な論理シミュレータが実現可能になる。
【０２１６】
以下、本実施形態についてより詳しく説明する。
【０２１７】
図４１は、本実施形態に係る論理シミュレーション装置５０１の構成を示す図である。
【０２１８】
論理シミュレーション装置５０１は、図２６に示された論理回路変換装置３１０と、シミュレーション実行部３２１とを具備する。すなわち、論理シミュレーション装置５１０は、前述した第４の実施形態の論理回路変換装置３１０の持つ信号処理フロー解析部３１１、イベント判定論理挿入箇所決定部３１２及びイベント判定論理挿入部３１３に、与えられた論理回路記述をもとに論理シミュレーションを実行する論理シミュレーション部３２１を付加したものである。論理シミュレーション部３２１としては、公知のものを使用する。
【０２１９】
論理回路変換装置３１０によって、入力された論理回路３１４は、より高速にシミュレーション実行可能な、論理的に等価な回路に変換される。シミュレーション実行部３２１は、等価変換された回路を入力として論理シミュレーションを実行する。
【０２２０】
（第５の実施形態の変形例１）
上記の第５の実施形態においては、論理回路変換装置３１０によって入力論理回路を等価変換し、その結果をシミュレーション実行部３２１の入力として、シミュレーション実行を行った。
【０２２１】
しかし、論理シミュレーション装置がインタプリタ方式ではなく、コンパイル方式を採用している場合、論理回路変換をターゲット言語レベルで行った方がより高速なシミュレーション実行が可能になる場合がある。
【０２２２】
このようなケースでは、入力論理回路３１４を直接、論理回路変換装置３１０に入力するのではなく、ターゲット言語レベルで論理回路変換を行った後にシミュレーション実行部３２１に入力するのがよい。
【０２２３】
（第５の実施形態の変形例２）
本実施形態に係る論理シミュレーション装置に入力される論理回路中の各信号のイベントがどのくらいの頻度で発生するのかを設計者が知っている場合、この情報を利用した方が、より正確にイベント判定論理挿入箇所を決定できることが考えられる。この場合、第４の実施形態の変形例１で示した論理回路変換装置を用いて論理回路変換を行うことで、より高速にシミュレーション実行を行うことが可能になる。
【０２２４】
論理演算単位のグループの指定も、第４の実施形態の変形例１に示した方法を用いればよい。
【０２２５】
（第５の実施形態の変形例３）
第４の実施形態で述べた論理回路変換装置を用いて、一旦イベント判定論理が挿入された論理回路を入力としてシミュレーション実行したい場合がある。このとき、前回と異なる箇所にイベント判定論理を挿入するために、前回挿入されたイベント判定論理を削除する必要がある。
【０２２６】
そのためには、図４２のように、第４の実施形態の変形例２で示した論理回路変換装置４０１を用いて論理変換を行い、変換後の論理回路の論理シミュレーションをシミュレーション実行部３２１によって実行する論理シミュレーション装置５０２を実現すればよい。
【０２２７】
論理回路変換装置４０１による変換と無関係に論理回路中に記述されていたイベント判定論理と、論理回路変換装置による変換で挿入されたイベント判定論理の区別は、第４の実施形態の変形例１に示した方法を用いればよい。
【０２２８】
（第５の実施形態の変形例４）
本実施形態に係る論理回路変換装置に入力される論理回路中の各信号のイベントがどのくらいの頻度で発生するのかを記述した実行履歴情報がある場合、この情報を利用した方が、より正確にイベント判定論理挿入箇所を決定できることが考えられる。
【０２２９】
そのため、図４３に示すように、論理シミュレーションを実行するシミュレーション実行部３３０内に実行履歴情報収集部３３１を設け、この実行履歴情報収集部３３１によりシミュレーション実行結果から実行履歴情報３２０を求め、この実行履歴情報３２０を基にイベント判定論理挿入箇所の決定を行う論理シミュレーション装置５０３を実現すればよい。論理回路変換装置としては、第４の実施形態の変形例３で示したような論理回路変換装置４０２を用いる。
【０２３０】
実行履歴情報の指定方法としては、第５の実施形態の変形例３で示した方法を用いればよい。
【０２３１】
本実施形態によれば、シミュレーション実行結果から動的に入力論理中のイベント判定論理の挿入箇所を変えて、シミュレーション実行を継続することが可能になる。
【０２３２】
（第５の実施形態の変形例５）
図４４は、図３６で示すような第４の実施形態の変形例１の論理回路変換装置４００に、公知のシミュレーション実行部３２１を付加して、論理シミュレーション装置５０４を構成することも可能である。
【０２３３】
以上発明の実施の形態について説明してきたが、第１、第２、第３の実施形態もしくはその変形例等と、第４、第５の実施形態もしくはその変形例等とは、適宜組合せ可能である。この場合、まず、前者により簡略化を行い、次に、後者によりイベント判定論理を挿入するのが好ましい。
【０２３４】
また、各実施形態に係る論理回路変換装置や論理シミュレーション装置は、相当する手順を記述したプログラムをＣＰＵ上で実行させる形でも実現可能である。
【０２３５】
本発明は、上述した実施の形態に限定されるものではなく、その技術的範囲において種々変形して実施することができる。
【０２３６】
（第１〜第５の実施形態の作用・効果）
上記第１〜第５の実施形態で説明した信号演算処理の簡略化では、まず、入力された論理回路の接続関係をもとに各イベント実行単位に対し入力側から最長パスの順にレベルを付与する。次に、イベント実行単位をレベルの順に並べ一つのイベント実行単位にまとめる。このときにイベント実行単位間で値の受け渡しに使われる信号は、即時代入される変数に置き換える。
【０２３７】
このような操作により得られた回路記述では、１シミュレーションサイクルで同一のイベント実行単位が何度も評価実行されてしまうことがない。また、イベント実行単位間での値の受渡しに関する信号処理演算が変数演算に置き換えられるため、高速に処理することができる。さらに、イベント実行単位数が減るため、イベント実行単位をイベントキューに登録したり、登録したイベントキューを取り出す回数が低減する。従って、イベント実行単位が小規模で構成され、信号演算実行量が多い場合でも、シミュレーション実行に要する処理量が低減された回路を得ることができる。
【０２３８】
（第２の発明）
上記第１の発明（第１〜第５の実施形態）における信号演算処理の簡略化の方法では、対象となる論理回路が同期回路であることを前提としている。もし、入力された論理回路が非同期回路（非同期要素を含む回路）である場合は、イベント実行単位を一つにまとめると元の記述と動作が異なってしまうため、この方法を適用することができなくなってしまい、非同期回路に適用することができない。
【０２３９】
従って、イベントドリブン法を用いてシミュレーションする際に、回路記述が非同期回路のときは、信号演算処理量を減らすのが困難であり、シミュレーション実行に多大な時間を要するという問題点がある。
【０２４０】
そこで、次に、第２の発明として、イベント実行単位が小規模の回路から構成されている非同期回路に対しても、信号演算量が少くなるように回路記述を変換できるようにすることによって、シミュレーション実行に要する時間を低減させることの可能な論理回路変換方法及び論理回路設計支援装置について説明する。
【０２４１】
ここで、同期要素とは、最長パスの順にレベル付けを行ったときのレベルあるいは評価実行されるタイミングが静的に確定可能な回路要素であり、非同期要素とは、ラッチ、非同期ループを構成する組合せ回路、自己ループを含むイベント実行単位のように、最長パスの順にレベル付けを行ったときのレベルあるいは評価実行されるタイミングが静的に確定できないもの、あるいは、信号の入力タイミングに応じて出力動作が異なるため、レベル付けが動的に変化する回路要素をいう。
【０２４２】
（第６の実施形態）
（６−１）論理回路変換方法およびそれを用いた論理回路変換装置
第６の実施形態に係る論理回路変換装置は、論理回路中の非同期要素を判定する非同期要素判定部、非同期要素を除いた範囲に限定して信号演算処理の簡略化を適用する範囲を決定する信号演算簡略化範囲決定部、および決定された範囲に対して信号演算処理の簡略化を実行する信号演算簡略化実行部を具備する。
【０２４３】
本実施形態によれば、非同期要素判定部によって求められた非同期要素を除いた範囲に限定して信号演算処理の簡略化の範囲を実行することができ、入力された非同期回路から信号演算が簡略化された回路を得ることができ、この信号演算が簡略化された記述を論理シミュレータへの入力とすることにより、高速な論理シミュレーションが可能になる。
【０２４４】
以下、本実施形態についてより詳しく説明する。
【０２４５】
図４５は、本実施形態に係る論理回路変換装置６０１の構成を示す図である。
【０２４６】
論理回路変換装置６０１は、非同期要素判定部５１０、信号演算簡略化範囲決定部５２０及び信号演算簡略化実行部５３０を備えている。
【０２４７】
非同期要素判定部５１０は、入力された論理回路記述９００中のイベント実行単位（イベントドリブン法での処理単位）のうち、非同期要素であるものを判定する。
【０２４８】
信号演算簡略化範囲判定部５２０は、非同期要素判定部５１０で非同期要素と判定されたイベント処理単位を除いた範囲について、回路９００中のどのイベント実行単位同士をどのような順番でグループ化すれば信号演算を簡略化できるかを判定し、グループ化すべきイベント実行単位の範囲を決定する。
【０２４９】
信号演算簡略化実行部５３０は、信号演算簡略化範囲決定部５２０によって決定された記述範囲のそれぞれに、イベント実行単位をまとめる操作を適用し、信号演算処理の簡略化を行う。
【０２５０】
本実施形態に係る回路変換装置６０１に用いられた論理回路変換方法を簡単な例で説明する。
【０２５１】
図４６、図４７はそれぞれ、入力回路の回路図、対応するＶＨＤＬ記述である。ｐ１〜ｐ５はイベント実行単位を表しており、図４６では回路要素、図４７ではＶＨＤＬプロセスに対応している。ここで、ｐ１、ｐ２、ｐ５はＡＮＤ（論理積）、ｐ４はＯＲ（論理和）である。また、ｐ３はラッチであり、入力コントロール信号値によってデータを保持（レジスタの動作）あるいはスルーする（組合せ回路の動作）。なお、入力回路は、ＨＤＬ記述でもネットリストで表現しても構わない。また、ＨＤＬもＶＨＤＬに限るものではない。
【０２５２】
図４６あるいは図４７の記述を回路変換装置６０１に入力すると、非同期要素判定部５２０は、ラッチであるｐ３を非同期要素として判定する。ラッチが非同期要素と判定されるのは、入力コントロール信号とデータ信号のいずれのイベントが先に伝搬するかによって評価実行すべきタイミングが変わり、予め実行順序が確定しないからである。
【０２５３】
ここで、信号演算簡略化範囲決定部５２０は、非同期要素として判定されたイベント実行単位ｐ３を除くｐ１、ｐ２、ｐ４、ｐ５の中から信号演算の簡略化が可能な範囲を決定する。この範囲の決定は、例えば以下の手順で実行できる。
【０２５４】
（手順６−１）各イベント実行単位を入力側からの最長パスの順にレベル付けする。
【０２５５】
（手順６−２）ＧＲを空集合、Ｅを非同期要素を除くイベント実行単位からなる集合とする。
【０２５６】
（手順６−３）Ｅが空集合ならば（手順６−５）へ行く。そうでなければ、Ｅからレベルの一番小さいイベント実行単位Ｔを選ぶ。
【０２５７】
（手順６−４）ＴをＧＲに取り込む。ＥからＴを除き（手順６−３）に戻る。
【０２５８】
（手順６−５）終了する。イベント実行単位のグループＧＲが信号簡略化の範囲である。
【０２５９】
図４６に示した論理回路に対し上記の手続きを適用した結果の一例を図４８に示す。
【０２６０】
（手順６−１）によりイベント実行単位ｐ１、ｐ２、ｐ３、ｐ４、ｐ５にそれぞれレベル１、レベル１、レベル２、レベル２、レベル３が付与される。次に、（手順６−３）、（手順６−４）によりｐ１、ｐ２、ｐ４、ｐ５の順にＧＲに取り込まれる（ｐ１とｐ２は逆の順番でも構わない）。従って、信号演算の簡略化の範囲は｛ｐ１、ｐ２、ｐ４、ｐ５｝となる（図４８中７００）。
【０２６１】
信号演算簡略化実行部５３０は、信号演算簡略化範囲決定部５２０で決定された範囲のイベント実行単位のグループを一つのイベント実行単位にまとめる。これは、以下の手順で実現できる。
【０２６２】
（手順６−Ａ）（手順６−１）から（手順６−５）で求められたグループ内のイベント実行単位を取り込まれた順に並べ、一つのイベント実行単位としてまとめる。
【０２６３】
（手順６−Ｂ）グループ内のイベント実行単位間の入力信号は即時代入される変数に置き換える。この場合、その信号がグループ外のイベント実行単位への出力にもなっているときは、信号として残しつつ対応する変数をつくる。
【０２６４】
図４９〜図５０は、図４６に示した論理回路に上記の手続きを適用して回路の変換を行った結果の一例である。
【０２６５】
図４９は、変換結果をブロック図で表したものである。（手順６−Ａ）により、｛ｐ１、ｐ２、ｐ４、ｐ５｝が求めるグループとなる。また、このグループは（手順６−Ｂ）により、信号Ａ、Ｂ、Ｃ、Ｄ、Ｈを入力、信号Ｆ、Ｘを出力とする１つのイベント実行単位にまとめられる。
【０２６６】
図５０は、図４９の変換結果に対応したＶＨＤＬ記述である。（手順６−Ａ）により、プロセスｐ１、ｐ２、ｐ３、ｐ４、ｐ５が１つのプロセスｐ ｍｌとしてまとめられている。図４９と同様に、信号Ａ、Ｂ、Ｃ、Ｄ、Ｈが入力、信号Ｆ、Ｘが出力である。この場合、ｐ２からｐ４への値の伝搬に使われる信号Ｇ、ｐ４からｐ５への値の伝搬に使われる信号Ｉは、それぞれ信号から変数になる。また、ｐ１からｐ４への値の伝搬についても、信号Ｆに対応する変数Ｆ ｖａｒになる。以上のような信号から変数への置き換えにより、演算実行が簡略化される。
【０２６７】
このように信号演算簡略化実行部５３０によって信号演算が簡略化された記述は、論理回路記述９０１として出力される。
【０２６８】
なお、出力回路は図面、ネットリスト、ＨＤＬのいずれでも構わない。ＨＤＬもＶＨＤＬに限るものではない。
【０２６９】
このようにして信号演算を簡略化して得られた回路記述では、１シミュレーションサイクルで同一のイベント実行単位が何度も評価実行されてしまうことが少なくなる。また、イベント実行単位間での値の受渡しに関する信号処理演算が変数演算に置き換えられるため、高速に処理することができる。さらに、イベント実行単位数が減るため、イベント実行単位をイベントキューに登録したり、登録したイベントキューを取り出す回数が低減する。
【０２７０】
従って、本実施形態によれば、入力された論理回路が小規模のイベント実行単位で構成され、信号演算実行量が多い非同期回路の場合でも、シミュレーション実行に要する処理量が低減された回路を得ることができる。
【０２７１】
ところで、上記では簡略化を適用する範囲に対応するグループを１つとする方法を述べたが、これを複数のグループとして実現することも可能である。例えば、以下の手順は、非同期要素の入力側と出力側と別々にグループを構成するものである。
【０２７２】
ここで、集合Ｅ１、Ｅ２はそれぞれ、非同期要素の入力信号に信号値が伝搬するイベント実行単位の集合、非同期要素の出力信号から信号値が伝搬するイベント実行単位の集合である。
【０２７３】
（手順６−１ａ）各イベント実行単位を入力側からの最長パスの順にレベル付けする。
【０２７４】
（手順６−２ａ）イベント実行単位間の起動関係をもとに集合Ｅ１、Ｅ２を求める。
【０２７５】
（手順６−３ａ）ＧＲ１、ＧＲ２、ＧＲ３を空集合、Ｅを非同期要素を除くすべてのイベント実行単位からなる集合、Ｅ３をＥからＥ１、Ｅ２を引いた集合とする。
【０２７６】
（手順６−４ａ）Ｅが空集合ならば（手順６−６ａ）へ行く。そうでなければ、Ｅからレベルの一番小さいイベント実行単位Ｔを選ぶ。
【０２７７】
（手順６−５ａ）ＴがＥｉに含まれていれば、ＧＲi に取り込む（ｉ＝１、２、３）。ＥからＴを除き（手順６−４ａ）に戻る。
【０２７８】
（手順６−６ａ）終了する。イベント実行単位のグループＧＲi （ｉ＝１、２、３）がそれぞれ信号演算簡略化の範囲である。
【０２７９】
図４６に示した論理回路に対し上記の手続きを適用した結果の一例を図５１に示す。
【０２８０】
（手順６−２ａ）によりＥ１、Ｅ２はそれぞれ｛ｐ１｝、｛ｐ５｝になる。（手順６−４ａ）および（手順６−５ａ）により、ＧＲ１、ＧＲ２、ＧＲ３はそれぞれ｛ｐ１｝、｛ｐ５｝、｛ｐ２、ｐ４｝になる。
【０２８１】
図５１の７０１、７０２、７０３はそれぞれＧＲ１、ＧＲ２、ＧＲ３を表している。
【０２８２】
なお、上記手続きで、Ｅ３をＥ１あるいはＥ２と同一視させ、ＧＲ１、ＧＲ２、ＧＲ３の代わりに２つのグループを構成することもできる。
【０２８３】
ここでは簡単のため、非同期要素が１つの場合について説明したが、非同期要素が複数存在する場合にも、上記の手続きを拡張して対応することは可能である。
【０２８４】
ところで、非同期要素としてラッチを用いて説明したが、ラッチ以外の非同期要素についても、同様の方法を適用することができる。
【０２８５】
図５２、図５５、図５７に、非同期要素を含むＶＨＤＬ記述の例を示す。
【０２８６】
図５２の記述におけるプロセスは、論理合成不可であり、図５３、図５４に示す回路機能を交互に持つ働きを持っている。すなわち、図５３、図５４に示す信号Ａ、Ｂの入力タイミングに応じて出力信号Ｘの出力動作が異なるため、動的にレベルが変わるので、非同期要素となる。
【０２８７】
図５５の記述は、図５６に示すように、非同期ループを構成するため、その構成要素であるプロセスはすべてレベルが確定しない。したがって、非同期要素と判定される。
【０２８８】
図５７の記述は、自己ループを含むプロセスである。図５７を回路図で示したのが、図５８である。自分自身が何回起動されるかにより、レベルが変化するため、非同期要素と判定される。
【０２８９】
（６−２）論理シミュレーション装置
次に、第６の実施形態に係る回路変換装置を備えた論理シミュレーション装置の実施形態について説明する。
【０２９０】
本実施形態に係る論理シミュレーション装置は、図５９に示すように、前述した第６の実施形態の論理回路変換装置６０１の持つ非同期要素判定部５１０、信号演算簡略化範囲決定部５２０及び信号演算簡略化実行部５３０に、さらに、与えられた論理回路記述をもとに論理シミュレーションを実行する論理シミュレーション部５９０を付加するものである。論理シミュレーション部５９０としては、公知のものを使用する。
【０２９１】
回路変換装置６０１によって論理シミュレーション対象となる論理回路記述を信号演算の簡略化された信号演算処理量の少ない論理回路記述に変換し、変換後の論理回路記述を入力として論理シミュレーション部５９０により論理シミュレーションを実行する。
【０２９２】
このように公知の論理シミュレーション部５９０の前段に論理回路記述の信号演算を簡略化する回路変換装置６０１を設けることによって、高速に論理シミュレーションを実行する論理シミュレーション装置を実現することができる。
【０２９３】
（第７の実施形態）
（７−１）論理回路変換方法およびそれを用いた論理回路変換装置
第７の実施形態に係る論理回路変換装置は、論理回路中の非同期要素を判定する非同期要素判定部、簡略化を適用する範囲を指定する簡略化適用範囲指定部、非同期要素を除いた範囲に限定して信号演算処理の簡略化を適用する範囲を決定する信号演算簡略化範囲決定部、決定された範囲に対して信号演算処理の簡略化を実行する信号演算簡略化実行部を備えている。
【０２９４】
本実施形態によれば、非同期要素判定部によって求められた非同期要素を除いた範囲と、簡略化適用範囲指定部で指定された範囲をもとに、信号演算処理の簡略化の範囲を決定し、決定された範囲に対して信号演算簡略化実行指定部が信号演算処理の簡略化を実行することができ、入力された非同期回路から信号演算が簡略化された回路を得ることができ、設計者が観測したい信号を避けるように、信号の簡略化が可能になる。
【０２９５】
以下、本実施形態についてより詳しく説明する。
【０２９６】
図６０は、本実施形態に係る論理回路変換装置６０２の構成を示す図である。
【０２９７】
論理回路変換装置６０２は、非同期部分判定部５１０、信号演算簡略化範囲決定部５２１、信号演算簡略化実行部５３０、および簡略化適用範囲指定部５４０を備えている。非同期要素判定部５１０および信号演算簡略化実行部５３０は、第６の実施形態と同様である。
【０２９８】
非同期要素判定部５１０は、入力された論理回路記述９００中のイベント実行単位（イベントドリブン法での処理単位）のうち、非同期要素であるものを判定する。
【０２９９】
ここで本実施形態では、ユーザは、簡略化適用範囲指定部５４０から範囲指定データ９０５を入力して、回路中で信号演算の簡略化を適用させる範囲を指定する。範囲データ９０５として、例えば、図６１に示す処理対象の回路のうち、範囲を表すデータ（例えばイベント実行単位を特定するデータｐ１、ｐ２等）を直接入力するようにしてもよいし、範囲を直接表すデータに対応付けられたＩＤ番号等をキー入力してもよいし、あるいは表示されたメニュー画面のリストから選択入力するようにしてもよい。
【０３００】
信号演算簡略化範囲決定部５２１は、非同期要素判定部５１０で判定された非同期要素と、簡略化適用範囲指定部５４０で指定された範囲を基に、論理回路９００中のどのイベント実行単位同士をどのような順番でグループ化すれば信号演算を簡略化できるかを判定し、グループ化すべきイベント実行単位の範囲を決定する。
【０３０１】
信号演算簡略化実行部５３０は、信号演算簡略化範囲決定部５２１によって決定された記述範囲のそれぞれに、イベント実行単位をまとめる操作を適用し、信号演算処理の簡略化を行う。
【０３０２】
本実施形態に係る論理回路変換装置６０２に用いられた論理回路変換方法を簡単な例で説明する。
【０３０３】
入力回路の回路図として図４６を再び用いる。ここで、入力回路は、ＨＤＬ記述でもネットリストで表現しても構わない。
【０３０４】
ここで、例えばユーザが信号Ｉを信号のまま観測したい場合、範囲指定データ９０５を｛ｐ１、ｐ２、ｐ３、ｐ４｝として、ｐ５は指定に含まないように、ｐ１、ｐ２、ｐ３、ｐ４のみ指定する。
【０３０５】
なお、ここでは、イベント実行単位の名前で指定しているが、各イベント実行単位に一意的なＩＤを付与し、ＩＤで指定してもよい。また、イベント実行単位を並べて指定する代わりに、例えばある階層を指定し、その階層から下のすべてのイベント実行単位を指すことにしてもよい。
【０３０６】
図４６あるいは図４７の記述を論理回路変換装置６０２に入力すると、非同期要素判定部５１０は、ｐ３を非同期要素として判定する。
【０３０７】
信号演算簡略化範囲決定部５２１は判定された非同期要素をもとに、イベント実行単位のグループ化によって信号演算の簡略化が可能な範囲を決定する。この範囲の決定は、例えば以下のステップで実現できる。
【０３０８】
（手順７−１）各イベント実行単位を入力側からの最長パスの順にレベル付けする。
【０３０９】
（手順７−２）ＧＲを空集合、Ｅを非同期要素を除くイベント実行単位からなる集合とする。
【０３１０】
（手順７−３）Ｅが空集合ならば（手順７−５）へ行く。そうでなければ、Ｅからレベルの一番小さいイベント実行単位Ｔを選ぶ。
【０３１１】
（手順７−４）Ｔが簡略化適用範囲指定部で指定された範囲中にあればＧＲに取り込む。ＥからＴを除き（手順７−３）に戻る。
【０３１２】
（手順７−５）終了する。イベント実行単位のグループＧＲが信号演算簡略化の範囲である。
【０３１３】
図４６に示した論理回路に対し上記の手続きを適用した結果の一例を図６１に示す。
【０３１４】
（手順７−１）により、イベント実行単位ｐ１、ｐ２、ｐ３、ｐ４、ｐ５にそれぞれレベル１、レベル１、レベル２、レベル２、レベル３が付与され、（手順７−３）、（手順７−４）によりｐ１、ｐ２、ｐ４の順にＧＲに取り込まれる。ここで、ｐ５は簡略化適用範囲指定部５４０による指定に含まれていないので、ＧＲには取り込まれない。従って、信号演算簡略化の範囲は、｛ｐ１、ｐ２、ｐ４｝となる（図６１中７０５）。
【０３１５】
信号演算簡略化実行部５３０は、信号演算簡略化範囲決定部５２１によって決定された範囲のイベント実行単位のグループを１つのイベント実行単位にまとめる。これは、第６の実施形態の（手順６−Ａ）および（手順６−Ｂ）により実現できる。
【０３１６】
なお、第６の実施形態の図４９、図５０に対応する結果（変換結果を表すブロック図、ＶＨＤＬ記述）は省略する。
【０３１７】
信号演算簡略化実行部５３０によって信号演算が簡略化された記述は、論理回路記述５２として出力される。
【０３１８】
なお、出力回路は図面、ネットリスト、ＨＤＬ記述のいずれでも構わない。また、ＨＤＬもＶＨＤＬに限るものではない。
【０３１９】
このようにして、信号演算簡略化の範囲を指定して得られた回路記述では、設計者が観測したい信号を避けて信号演算の簡略化を適用することができる。また、信号演算簡略化を適用した範囲については、第６の実施形態と同様に、シミュレーション実行に要する処理量が低減された回路を得ることができる。
【０３２０】
なお、第６の実施形態で述べたものと同様に、簡略化を適用する範囲に対するグループを複数にすることも可能である。
【０３２１】
（７−２）論理シミュレーション装置
次に、第７の実施形態に係る回路変換装置を備えた論理シミュレーション装置の実施形態について説明する。
【０３２２】
本実施形態に係る論理シミュレーション装置は、図６２に示すように、前述した第７の実施形態の論理回路変換装置６０２の持つ非同期要素判定部５１０、信号演算簡略化範囲決定部５２１、信号演算簡略化実用部５３０及び簡略化適用範囲指定部５４０に、さらに、与えられた論理回路記述をもとに論理シミュレーションを実行する論理シミュレーション部５９０を付加したものである。論理シミュレーション部５９０としては、公知のものを使用する。
【０３２３】
ユーザの観測したい信号を簡略化適用範囲から除外した範囲指定データが与えられた論理回路変換装置６０２は、該範囲指定データに基づいて論理シミュレーション対象となる論理回路記述を、信号演算の簡略化された信号演算処理量の少ない論理回路記述に変換し、変換後の論理回路記述を入力として論理シミュレーション部５９０により論理シミュレーションを実行する。従って、ユーザの観測したい信号を残した上で、論理シミュレーションの実行を高速化することができる。
【０３２４】
このように公知の論理シミュレーション部５９０の前段にユーザ指定に基づいて論理回路記述の信号演算を簡略化する論理回路変換装置６０２を設けることによって、デバッグ機能を低下させることなく、高速に論理シミュレーションを実行する論理シミュレーション装置を実現することができる。
【０３２５】
（第８の実施形態）
（８−１）論理回路変換方法およびそれを用いた論理回路変換装置
第８の実施形態に係る論理回路変換装置は、論理回路中の非同期要素を判定する非同期要素判定部、非同期要素を除いた範囲に限定して信号演算処理の簡略化を適用する範囲を決定する信号演算簡略化範囲決定部、信号演算処理の簡略化を実行する範囲をハイライト表示（強調表示）として視覚的に区別できるように表示するハイライト表示部、決定された範囲に対して信号演算処理の簡略化を実行する信号演算簡略化実行部を備えている。
【０３２６】
本実施形態によれば、非同期要素判定部によって求められた非同期要素を除いた範囲に限定して信号演算処理の簡略化を適用する範囲を決定し、信号演算処理の簡略化が決定された範囲、あるいは、非同期要素と判定された範囲がハイライト表示されることにより、信号演算処理の簡略化を実行する前に、ユーザに対し非同期要素の回路部分を提示し、それを基に、ユーザが、より非同期要素の少ない回路に書き換えることができ、従って、入力された非同期回路から信号演算処理が簡略化された回路を得ることが可能になり、より非同期要素が少ない回路を得ることを容易にする。
【０３２７】
以下、本実施形態についてより詳しく説明する。
【０３２８】
図６３は、本実施形態に係る論理回路変換装置６０３の構成を示す図である。
【０３２９】
論理回路変換装置６０３は、非同期部分判定部５１０、信号演算簡略化範囲決定部５２２、信号演算簡略化実行部５３０、およびハイライト表示部５５０を備えている。非同期要素判定部５１０および信号演算簡略化実行部５３０は、第６の実施形態と同様である。
【０３３０】
非同期要素判定部５１０は、入力された論理回路記述９００中のイベント実行単位（イベントドリブン法での処理単位）のうち、非同期要素であるものを判定する。
【０３３１】
信号演算簡略化範囲決定部５２２は、非同期要素判定部５１０で非同期要素と判定されたイベント実行単位を除いた範囲について、論理回路９００中のどのイベント実行単位同士をどのような順番でグループ化すれば信号演算を簡略化できるかを判定し、グループ化すべきイベント実行単位の範囲を決定する。また、決定された範囲を示す情報をハイライト表示部５５０に送る。
【０３３２】
なお、信号演算を簡略化できると判断された範囲を示す情報を送る代わりに、あるいは、それとともに、非同期要素判定部５１０で判定された非同期要素を示す情報をハイライト表示部５５０に送るようにしてもよい。
【０３３３】
ハイライト表示部５０は、信号簡略化範囲決定部２２によって決定された記述範囲のそれぞれをハイライト表示する。ハイライト表示は、所定の表示装置に表示された回路図上で行ってもよいし、同じく所定の表示装置に表示されたＶＨＤＬソースコード上で行ってもよい。また、各イベント実行単位をノード、イベント実行単位間を伝搬する信号をエッジとするグラフとして表現したものを所定の表示装置に表示し、そのグラフ上でハイライト表示を行ってもよい。
【０３３４】
ハイライト表示（強調表示）の方法としては、信号簡略化の範囲に対応するイベント実行単位に対して、色付け、影付け、輪郭の太さや形の変更、点滅表示、マーク付けなどのいずれを行ってもよい。逆に、信号簡略化の範囲以外のイベント実行単位に上記の操作を施してもよい。
【０３３５】
信号演算簡略化実行部５３０は、信号演算簡略化範囲決定部５２２によって決定された記述範囲のそれぞれに、イベント実行単位をまとめる操作を適用し、信号演算処理の簡略化を行う。
【０３３６】
本実施形態に係る回路変換装置６０３に用いられた論理回路変換方法を簡単な例で説明する。
【０３３７】
図６４、図６５はそれぞれ、入力回路の回路図、対応するＶＨＤＬ記述である。図６４は、図４６におけるラッチ回路ｐ３を図５８に示すような自己ループを含む非同期要素ｐ３ａに置き換えたものである。同様に図６５は、図４７におけるラッチ回路ｐ３の記述を図５７に示すような、非同期要素ｐ３ａの記述に置き換えたものである。ここで、入力回路はネットリストで表現しても構わない。
【０３３８】
図６４あるいは図６５の記述を論理回路変換装置６０３に入力すると、非同期要素判定部５１０は、ｐ３ａを非同期要素として判定する。
【０３３９】
信号演算簡略化範囲決定部５２２は判定された非同期要素をもとに、イベント実行単位のグループ化によって信号演算の簡略化が可能な範囲を決定する。この範囲の決定は、例えば第６の実施形態の（手順６−１）〜（手順６−５）によって実現できる。
【０３４０】
図６４に示した論理回路に対し上記の手続きを適用した結果の一例を図６６に示す。すなわち、図６６に示すように、信号範囲化適用範囲は｛ｐ１、ｐ２、ｐ４、ｐ５｝となる（図中７０７）。
【０３４１】
図６７は、図６６に示したような信号簡略化適用範囲のハイライト表示例を示したものである。ここでは、イベント実行単位である回路素子をハッチ（影付け）してハイライト表示を行っている。
【０３４２】
なお、信号簡略化適用範囲の代わりに、非同期要素判定部５１０から送られた非同期要素を示す情報を基に非同期要素をハイライト表示してもよい。図６８は、図６６の非同期要素と判定された回路部分（イベント実行単位ｐ３ａ）のハイライト表示例を示したものである。また、図６９に示すように、図６５のソースコード上の信号簡略化適用範囲に相当する箇所をハイライト表示してもよい。
【０３４３】
ユーザは、所定の表示装置に表示された図６７〜図６９のいずれかのハイライト表示を見ることにより、イベント実行単位ｐ３ａが非同期要素と特定することができる。
【０３４４】
このとき、ユーザが図６５のＶＨＤＬ記述を見直して、イベント実行単位ｐ３ａの書き換えが可能であると判断し、図７０に示すように、入力ＶＨＤＬ記述中のイベント実行単位ｐ３ａをそれと等価なイベント実行単位ｐ３１、ｐ３２に書換えたとする。図７０に示したような入力ＶＨＤＬ記述に対応する回路図を図７１に示す。
【０３４５】
このようにして書換えられた図７０あるいは図７１に示す入力回路を再び回路変換装置６０３に入力すると、非同期要素判定部５１０は、入力回路中に非同期要素は含まれていない、と判定する。したがって、例えば第６の実施形態で説明した（手順６−１）〜（手順６−５）の手順に従って、信号演算簡略化範囲決定部５２２は、信号演算簡略化範囲を図７２に示すように｛ｐ１、ｐ２、ｐ３１、ｐ４、ｐ３２、ｐ５｝と決定する（図中７０９）。
【０３４６】
信号演算簡略化実行部５３０は、信号演算簡略化範囲決定部５２２で決定された範囲のイベント実行単位のグループを１つのイベント実行単位にまとめる。これは、第６の実施形態の（手順６−Ａ）および（手順６−Ｂ）により実現できる。
【０３４７】
なお、第６の実施形態の図４９、図５０に対応する結果（変換結果を表すブロック図、ＶＨＤＬ記述）は省略する。
【０３４８】
信号演算簡略化実行部５３０によって信号演算が簡略化された記述は、論理回路記述９０３として出力される。
【０３４９】
なお、出力回路は図面、ネットリスト、ＨＤＬ記述のいずれでも構わない。また、ＨＤＬもＶＨＤＬに限るものではない。
【０３５０】
このようにして、ハイライト表示により非同期要素の存在をユーザに喚起することによって、ユーザが非同期要素を含む回路を、非同期要素が少ない等価な回路に置き換えることが可能になる。このようにして得られた入力回路から、第６の実施形態で述べた方法を用いて、シミュレーション実行に要する処理量が低減された回路を効率的に得ることができる。
【０３５１】
なお、第６の実施形態で述べたのと同様に、簡略化を適用する範囲に対するグループを複数にすることも可能である。この場合、各グループを区別してハイライト表示をするために、異なる色付けをしたり、影付けの濃淡を変化させてもよい。
【０３５２】
（８−２）論理シミュレーション装置
次に、第８の実施形態に係る回路変換装置を備えた論理シミュレーション装置の実施形態について説明する。
【０３５３】
本実施形態に係る論理シミュレーション装置は、図７３に示すように、前述した第８の実施形態の論理回路変換装置６０３の持つ非同期要素判定部５１０、信号演算簡略化範囲決定部５２２、信号演算簡略化実行部５３０及びハイライト表示部５５０に、さらに、与えられた論理回路記述をもとに論理シミュレーションを実行する論理シミュレーション部５９０を付加したものである。論理シミュレーション部５９０としては、公知のものを使用する。
【０３５４】
回路変換装置６０３は論理シミュレーション対象となる論理回路記述を、信号演算の簡略化された信号演算処理量の少ない論理回路記述に変換し、変換後の論理回路記述を入力として論理シミュレーション部５９０により論理シミュレーションを実行する。従って、ユーザが非同期要素を特定する機能を持ちつつ、論理シミュレーションの実行を高速化することができる。
【０３５５】
このように公知の論理シミュレーション部５９０の前段にユーザ指定に基づいて論理回路記述の信号演算を簡略化する回路変換装置３を設けることによって、信号演算処理の簡略化を実行する前にユーザが非同期要素を特定することができ、高速に論理シミュレーションを実行する論理シミュレーション装置を実現することができる。
【０３５６】
（第９の実施形態）
図７４に示す第２の発明に係る論理回路変換装置の構成例は、図４５の論理回路変換装置をより詳細に示したものである。すなわち、図４５の非同期要素判定部５１０は、より具体的には、第１の発明に係る回路接続情報解析部１０と、非同期要素判定部８１０から構成されている。なお、図１と同一部分には同一符号を付し、異なる部分について説明する。
【０３５７】
回路接続情報解析部１０は、前述の第１の発明と同様、入力された論理回路記述９００における回路接続情報として、イベント実行単位（イベントドリブン法での処理単位）間の起動関係、すなわちイベント実行単位と信号との接続関係を解析する。
【０３５８】
非同期要素判定部８１０は、回路接続情報解析部１０で解析された論理回路記述９００中のイベント実行単位（イベントドリブン法での処理単位）のうち、非同期要素であるものを判定する。
【０３５９】
信号演算簡略化範囲決定部５２０は、回路接続情報解析部１０で解析された回路接続情報を基に、非同期要素判定部５１０で非同期要素と判定されたイベント処理単位を除いた範囲について、回路９００中のどのイベント実行単位同士をどのような順番でグループ化すれば信号演算を簡略化できるかを判定し、グループ化すべきイベント実行単位の範囲を決定する。
【０３６０】
なお、第２の発明に係る論理シミュレーション装置の非同期要素判定部５１０も図７４と同様に、回路接続情報解析部１０と非同期要素判定部８１０から構成される。
【０３６１】
（第６〜第９の実施形態の作用・効果）
以上説明したように、上記第６〜第９の実施形態に係る論理回路変換装置６０１によれば、入力された倫理回路９００を解析して非同期要素を判定し、非同期要素を除いた範囲に限定して信号演算処理の簡略化を実行することにより、非同期要素を含む論理回路に対しても、より少ない信号演算量の論理回路を得ることができる。また、論理回路変換装置６０１で得られた回路を論理シミュレーション部の入力とすることで、論理シミュレーション実行に要する時間を低減した論理シミュレーション装置が実現できる。
【０３６２】
なお、第１の発明に係る論理回路変換装置の信号演算簡略化範囲決定部２０と第２の発明に係る論理回路変換装置の信号演算簡略化範囲決定部５２０、第１の発明に係る論理回路変換装置の信号演算簡略化実行部３０と第２の発明に係る論理回路変換装置の信号演算簡略化実行部５３０は、それぞれ、ほぼ同一の処理動作を行うものである。
【０３６３】
【発明の効果】
本発明によれば、解析手段によって解析された回路接続情報を基に、決定手段が信号演算処理の簡略化を行う範囲を決定し、決定された範囲に対して簡略化手段が信号演算処理の簡略化を実行すことで、入力論理回路を、信号演算処理が簡略化された論理回路に変換することができる。そして、この信号演算が簡略化された論理回路により、高速な論理シミュレーションが実行可能になる。
【０３６４】
本発明によれば、入力された論理回路中の信号処理フローの解析結果をもとに決定した箇所にイベント判定論理を挿入することで、入力論理回路を、イベントが生じない場合に本来実行する必要のない論理演算処理部分の実行を省略可能な論理回路に変換することができる。そして、このイベント判定論理を挿入された論理回路により、高速な論理シミュレーションが実行可能になる。
【０３６５】
また、本発明によれば、非同期要素を含む論理回路に対しても、より信号演算量の少ない論理回路を得ることができ、この信号演算処理の簡略化された論理回路に基づき高速な論理シミュレーションが実行可能となる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態に係る論理回路変換装置の構成を示す図
【図２】入力回路の一例を示す回路図
【図３】図２の回路図に対応する論理のＶＨＤＬ記述の一例を示す図
【図４】イベント実行単位と信号間の接続関係データの一例を示す図
【図５】信号演算簡略化範囲決定結果の一例を示す図
【図６】論理回路変換結果例を示すブロック図
【図７】論理回路変換結果例のＶＨＤＬ記述を示す図
【図８】論理回路変換結果例の回路接続グラフを示す図
【図９】本実施形態に係る論理シミュレーション装置の構成を示す図
【図１０】本発明の第２の実施形態に係る論理回路変換装置の構成を示す図
【図１１】入力回路の一例を示す回路図
【図１２】図１１の回路図に対応する論理のＶＨＤＬ記述の一例を示す図
【図１３】イベント実行単位と信号間の接続関係データの一例を示す図
【図１４】信号演算簡略化範囲決定結果の一例を示す図
【図１５】本実施形態に係る論理シミュレーション装置の構成を示す図
【図１６】本発明の第３の実施形態に係る論理回路変換装置の構成を示す図
【図１７】入力回路の一例を示す回路図
【図１８】図１７の回路図に対応する論理のＶＨＤＬ記述の一例を示す図
【図１９】イベント実行単位と信号間の接続関係データの一例を示す図
【図２０】イベント実行単位に対する機能情報の一例を示す図
【図２１】信号演算簡略化範囲決定結果の一例を示す図
【図２２】論理回路変換結果例を示すブロック図
【図２３】論理回路変換結果例のＶＨＤＬ記述を示す図
【図２４】論理回路変換結果例の回路接続グラフを示す図
【図２５】本実施形態に係る論理シミュレーション装置の構成を示す図
【図２６】本発明の第４の実施形態に係る論理回路変換装置の構成を示す図
【図２７】入力回路の一例を示す回路図
【図２８】Ｃ言語を用いた論理回路記述の一例を示す図
【図２９】回路接続データの一例を示す図
【図３０】イベント判定論理挿入箇所決定結果の一例を示す図
【図３１】イベント判定論理が挿入された論理回路記述の一例を示す図
【図３２】入力回路の一例を示す回路図
【図３３】イベント判定論理挿入条件を満たさない回路の一例を示す回路図
【図３４】イベント判定論理挿入箇所決定部３１２における処理の一例を示すフローチャート
【図３５】イベント判定論理が入れ子で挿入される回路の一例を示す図
【図３６】論理回路変換装置の他の構成例を示す図
【図３７】論理回路変換装置のさらに他の構成例を示す図
【図３８】論理回路変換装置のさらに他の構成例を示す図
【図３９】実行履歴情報の一例を示す図
【図４０】実行履歴情報の他の例を示す図
【図４１】本発明の第５の実施形態に係る論理シミュレーション装置の構成を示す図
【図４２】論理シミュレーション装置の他の構成例を示す図
【図４３】論理シミュレーション装置のさらに他の構成例を示す図
【図４４】論理シミュレーション装置のさらに他の構成例を示す図
【図４５】本発明の第６の実施形態に係る論理回路変換装置の構成例を示す図
【図４６】入力論理回路の一例を示す回路図
【図４７】図４６の回路図に対応する論理のＶＨＤＬ記述の一例を示す図
【図４８】信号演算簡略化範囲決定結果の一例を示す図
【図４９】論理回路変換結果例を示すブロック図
【図５０】論理回路変換結果例のＶＨＤＬ記述を示す図
【図５１】信号演算簡略化範囲決定結果の他の例を示す図
【図５２】非同期要素例のＶＨＤＬ記述を示す図
【図５３】図５２のＶＨＤＬ記述に対応する回路図の一例を示す図
【図５４】図５２のＶＨＤＬ記述に対応する回路図の他の例を示す図
【図５５】非同期要素例のＶＨＤＬ記述を示す図
【図５６】図５５のＶＨＤＬ記述に対応する回路図
【図５７】非同期要素例のＶＨＤＬ記述を示す図
【図５８】図５７のＶＨＤＬ記述に対応する回路図
【図５９】第６の実施形態に係る論理シミュレーション装置の構成を示す図
【図６０】本発明の第７の実施形態に係る回路変換装置の構成を示す図
【図６１】信号演算簡略化範囲決定結果の一例を示す図
【図６２】第７の実施形態に係る論理シミュレーション装置の構成を示す図
【図６３】本発明の第８の実施形態に係る回路変換装置の構成を示す図
【図６４】入力論理回路の一例を示す回路図
【図６５】図６４の回路図に対応する論理のＶＨＤＬ記述の一例を示す図
【図６６】信号演算簡略化範囲決定結果の一例を示す図
【図６７】信号演算簡略化範囲のハイライト表示の一例を示す図
【図６８】信号演算簡略化範囲のハイライト表示の他の例を示す図
【図６９】信号演算簡略化範囲のハイライト表示のさらに他の例を示す図
【図７０】書換え後の入力回路のＶＨＤＬ記述を示す図
【図７１】図２６のＶＨＤＬ記述に対応する回路図
【図７２】信号演算簡略化範囲決定結果を示す図
【図７３】第８の実施形態に係る論理シミュレーション装置の構成を示す図
【図７４】本発明の第９の実施形態に係る論理回路変換装置の構成例に係り、図４５の論理回路変換装置をより詳細に示した図
【符号の説明】
１、２、３…論理回路変換装置
１０…回路接続情報解析部
２０、２１、２２…信号演算簡略化範囲決定部
３０…信号演算簡略化実行部
４０…簡略化適用範囲指定部
５０…回路機能判定部
９０…論理シミュレーション部
３１０、４００、４０１、４０２…論理回路変換装置
３１１…信号処理フロー解析部
３１２、３１８、３１９…イベント判定論理挿入箇所決定部
３１３…イベント判定論理挿入部
３１６…イベント判定論理削除部
３１７…イベント判定論理挿入範囲指定部
３２１、３３０…シミュレーション実行部
３３１…実行履歴情報収集部
５０１、５０２、５０３、５０４…論理シミュレーション装置
５１０…非同期要素判定部
５２０…信号演算簡略化範囲決定部
５３０…信号演算簡略化実行部
５４０…簡略化適用範囲指定部
５５０…ハイライト表示部
５９０…論理シミュレーション部
６０１、６０２、６０３…論理回路変換装置
９００…論理回路記述（入力論理回路）
９０１、９０２、９０３…論理回路記述（出力論理回路）
９０５…範囲指定データ
【図１】
0003751410.tif 000002
【図２】
0003751410.tif 000003
【図３】
0003751410.tif 000004
【図４】
0003751410.tif 000005
【図５】
0003751410.tif 000006
【図６】
0003751410.tif 000007
【図７】
0003751410.tif 000008
【図８】
0003751410.tif 000009
【図９】
0003751410.tif 000010
【図１０】
0003751410.tif 000011
【図１１】
0003751410.tif 000012
【図１２】
0003751410.tif 000013
【図１３】
0003751410.tif 000014
【図１４】
0003751410.tif 000015
【図１５】
0003751410.tif 000016
【図１６】
0003751410.tif 000017
【図１７】
0003751410.tif 000018
【図１８】
0003751410.tif 000019
【図１９】
0003751410.tif 000020
【図２０】
0003751410.tif 000021
【図２１】
0003751410.tif 000022
【図２２】
0003751410.tif 000023
【図２３】
0003751410.tif 000024
【図２４】
0003751410.tif 000025
【図２５】
0003751410.tif 000026
【図２６】
0003751410.tif 000027
【図２７】
0003751410.tif 000028
【図２８】
0003751410.tif 000029
【図２９】
0003751410.tif 000030
【図３０】
0003751410.tif 000031
【図３１】
0003751410.tif 000032
【図３２】
0003751410.tif 000033
【図３３】
0003751410.tif 000034
【図３４】
0003751410.tif 000035
【図３５】
0003751410.tif 000036
【図３６】
0003751410.tif 000037
【図３７】
0003751410.tif 000038
【図３８】
0003751410.tif 000039
【図３９】
0003751410.tif 000040
【図４０】
0003751410.tif 000041
【図４１】
0003751410.tif 000042
【図４２】
0003751410.tif 000043
【図４３】
0003751410.tif 000044
【図４４】
0003751410.tif 000045
【図４５】
0003751410.tif 000046
【図４６】
0003751410.tif 000047
【図４７】
0003751410.tif 000048
【図４８】
0003751410.tif 000049
【図４９】
0003751410.tif 000050
【図５０】
0003751410.tif 000051
【図５１】
0003751410.tif 000052
【図５２】
0003751410.tif 000053
【図５３】
0003751410.tif 000054
【図５４】
0003751410.tif 000055
【図５５】
0003751410.tif 000056
【図５６】
0003751410.tif 000057
【図５７】
0003751410.tif 000058
【図５８】
0003751410.tif 000059
【図５９】
0003751410.tif 000060
【図６０】
0003751410.tif 000061
【図６１】
0003751410.tif 000062
【図６２】
0003751410.tif 000063
【図６３】
0003751410.tif 000064
【図６４】
0003751410.tif 000065
【図６５】
0003751410.tif 000066
【図６６】
0003751410.tif 000067
【図６７】
0003751410.tif 000068
【図６８】
0003751410.tif 000069
【図６９】
0003751410.tif 000070
【図７０】
0003751410.tif 000071
【図７１】
0003751410.tif 000072
【図７２】
0003751410.tif 000073
【図７３】
0003751410.tif 000074
【図７４】
0003751410.tif 000075