JP3751410B2 - Logic circuit converter - Google Patents

Logic circuit converter Download PDF

Info

Publication number
JP3751410B2
JP3751410B2 JP12250997A JP12250997A JP3751410B2 JP 3751410 B2 JP3751410 B2 JP 3751410B2 JP 12250997 A JP12250997 A JP 12250997A JP 12250997 A JP12250997 A JP 12250997A JP 3751410 B2 JP3751410 B2 JP 3751410B2
Authority
JP
Japan
Prior art keywords
signal
circuit
logic
event
logic circuit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP12250997A
Other languages
Japanese (ja)
Other versions
JPH1069505A (en
Inventor
庄三 磯部
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP12250997A priority Critical patent/JP3751410B2/en
Publication of JPH1069505A publication Critical patent/JPH1069505A/en
Priority to US09/076,847 priority patent/US6099577A/en
Application granted granted Critical
Publication of JP3751410B2 publication Critical patent/JP3751410B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Test And Diagnosis Of Digital Computers (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、デジタル回路(論理回路)の論理回路変換方法及び論理シミュレーション装置(論理回路設計支援装置)に関する。
【0002】
【従来の技術】
計算機システムやLSIの設計においては、設計した回路を論理シミュレーションによって検証し、早期に設計論理の不備を発見することが、開発期間の短縮のために必要不可欠である。
【0003】
一方では、近年のLSIの集積度の向上にともない、LSIあるいはこれを構成要素とする計算機システムは、大規模化、複雑化の一途をたどっている。論理シミュレーションに要する時間は検証対象となる回路規模に比例して増大する。現状における論理シミュレータの実行速度は、例えば1000Kゲート規模の回路に対して数クロック/秒程度であるため、1Mゲート回路に対しては1クロック/秒以下の処理しかできないことになる。このため、大規模回路のシミュレーションには膨大な時間がかかってしまう。従って、大規模なLSIでは、十分な長さのテストベクトルを用いてシミュレーションによる設計検証を行うことが困難となる。特に、LSI製造後に不具合が発見される場合を考えると、設計論理の修正や再検証など開発に要する期間、コストの増大は極めて大きいものになってしまう。このような理由で、高速な論理シミュレータの実現が設計者によって一層望まれている。
【0004】
論理シミュレータは通常、ソフトウェアで実現される。ソフトウェアで実現された論理シミュレータが検証する論理回路は、ソフトウェアの実行に向いた言語を用いて表現される場合が多い。例えば、C言語、アセンブリ言語に代表される高級言語である。そして近年では、VHDL、Verilog−HDLといったハードウェア記述言語(HDL)で記述された論理回路を入力とする論理シミュレータが数多く出現している。これらの論理シミュレータの大部分は、入力回路を対応するC言語やアセンブリ言語で書かれた回路記述に内部変換して実行するもので、計算機言語への変換方式の工夫あるいは変換後の記述の最適化によって、シミュレーションの高速化が図られている。しかしながら、この種の論理シミュレータによる高速化は、あくまでもHDLの処理方式上の工夫によるものであり、回路のシミュレーション実行に要する演算量自体を減らすものではない。
【0005】
上記のような論理シミュレータは通常、イベントドリブン法でシミュレーションを実行する。イベントドリブン法とは、回路を適当な大きさの演算単位に分け、各演算単位は、その入力信号のいずれかに値の変化(イベント)があったときのみ、処理実行を行う方法である。イベント実行単位(イベントドリブン方式での処理単位)間の値の受渡しには信号値が使われる。イベントドリブン法での一般的なシミュレーション実行手順は以下の通りである。
【0006】
(手順1)回路の初期実行を行う。
【0007】
(手順2)信号にイベントが発生する。
【0008】
(手順3)イベントが生じた各信号に対して、その信号の出力先のイベント実行単位をイベントキューに登録する。
【0009】
(手順4)イベントキューに登録されたイベント実行単位の評価実行を行う。新たにイベントが発生していれば手順3に戻る。
【0010】
(手順5)次のイベントが発生する時点まで時刻を進め、手順2に戻る。もしそのような時刻がなければ終了する。
【0011】
ここで、イベント実行単位が小規模の回路で構成される場合、あるイベント実行単位への複数入力信号が、それぞれ別々のイベント実行単位内で評価されていることが多い。このような場合、各入力信号のイベントが発生するタイミングがずれると、1シミュレーションサイクルで同一のイベント実行単位が何度も評価実行されてしまう。また、イベント実行単位間での値の受渡しに係わる信号処理演算量や、イベント実行単位をイベントキューに登録したり、登録したイベントキューを取り出す回数も多くなってしまう。
【0012】
このように、イベント実行単位が小規模回路で構成されていると、シミュレーションの実行に要する演算量が増すことになる。
【0013】
一般に、論理合成を前提としたレジスタトランスファーレベル(RTL)で記述された回路は、ハードウェアの並列性を考慮して、適当な大きさの演算機能を単位とする多くの並列実行可能な部分から構成されている。また、ゲートレベルの回路も、ANDやORといった小さい回路素子を単位として記述されている。このため、RTLやゲートレベルで記述された回路は、論理合成を前提としない動作レベルの回路に比べ、信号演算処理量がはるかに多く、シミュレーション実行に多大な時間を要してしまうという問題点があった。
【0014】
次に、もう1つの問題点に関して説明する。
【0015】
前述のようにソフトウェアで実現された論理シミュレータが検証する論理回路は、C言語、アセンブリ言語に代表される高級言語、VHDLやVerilogDHLに代表されるハードウェア記述言語など、ソフトウェアの実行に向いた言語を用いて表現される場合が多い。
【0016】
これらの言語を用いた場合、論理回路中の各信号の値は変数で表現され、信号の伝搬は、その信号に対応した変数への代入文で記述されている。論理シミュレータは、各シミュレーションサイクルごとに、これらの代入文を実行することで、回路中の信号処理をシミュレートする。
【0017】
論理シミュレーション方式の1つに、エグゾースト法がある。この方式では、各シミュレーションサイクルで、信号処理代入文が順番に実行される。一通り代入文が実行されると、すべての信号に対して、その信号値が代入文実行前と同じか否かをチェックし、どれか1つの信号値でも変化があれば、再び一連の信号処理代入文を実行する。この処理を繰り返し行い、すべての信号値が確定すると、次のシミュレーションサイクルに進む。
【0018】
ここで、図32に示す回路をエグゾースト法による論理シミュレータを用いてシミュレーションを実行する場合を考える。
【0019】
図32で、A、B、C、D、X0、…、Xn、Y0、…、Ynはそれぞれ信号を、F0、…、Fnはそれぞれ多入力多出力の演算機能を表す。ここで、信号A、Bが共に前シミュレーションサイクルでの値から変化がなかった(イベントが発生しなかった)場合を考える。信号A、Bにイベントが発生しないと、信号X0、Y0の値も変化せず(イベントが発生しない)、同様にして最終出力である信号C、Dも前シミュレーションサイクルでの値から変化しない。ここで、信号C、Dの値は対応する変数に既に格納されているため、改めてこれらの変数へ代入する必要はないはずである。
【0020】
しかし、エグゾースト法では、このように入力信号値に変化がない場合でも、一連の信号代入処理を実行してしまうため、無駄な計算が生じる。図32の例では、2n+2回の無駄な信号代入処理が実行されることになる。
【0021】
通常の論理回路では、信号にイベントが発生している部分は平均して全体の1割程度と言われている。このように、エグゾースト法では、無駄な信号代入処理が多くなるため、シミュレーション効率の低下を招いてしまう。
【0022】
もう1つの論理シミュレーション方式として、前述のイベントドリブン法がある。この方式では、適当な大きさの演算機能をイベント実行単位として、その演算機能への入力信号のいずれかにイベントが発生したときだけ、そのイベント実行単位中の信号代入処理を行う。現シミュレーションサイクルでどのイベント実行単位を実行するかは、タイムホイールやイベントキューを用いて管理される。
【0023】
図32で、F0、…、Fnがイベント実行単位であり、イベントドリブン方式による論理シミュレータを用いて論理シミュレーションを実行する場合を考える。
【0024】
信号A、Bのどちらにもイベントが発生しなかった場合、これらを入力とするイベント実行単位F1は起動されず、従ってF1中の信号代入処理は行われない。同様に、F2からFnのイベント実行単位も実行されない。
【0025】
このため、イベントドリブン法には、エグゾースト法のように無駄な信号代入処理をすることなく、効率のよいシミュレーションを実現することができるという特徴がある。
【0026】
しかし、イベントドリブン法では、イベントの管理を行う処理が複雑なため、それに伴うオーバーヘッドが大きい。イベント管理は通常イベントキューを用いて実現されるが、このとき以下の操作が必要になる。
【0027】
・イベントキューからのイベント実行単位の取り出し
・ある信号にイベントが発生したか否かのチェック
・その信号によって起動されるイベント実行単位の走査
・走査されたイベント実行単位のイベントキューへの登録
これらの処理を実現するために、イベントドリブン法を用いた論理シミュレータのプログラムを必然的に複雑になる。さらに、これらの操作に要する実行時間のオーバーヘッドも大きい。
【0028】
さらに、論理回路中で記述されたイベント実行単位の大きさが不適切なときは、イベントドリブン法でも、エグゾースト法と同じような問題が発生する場合がある。
【0029】
図32の例で、演算機能F0からFnが同一のイベント実行単位として記述されていたとする。ここで、信号A、Bのどちらかにイベントが発生したが、信号X0、Y0にイベントが発生しなかったときを考える。このとき、信号X0とY0に対する信号代入処理だけが必要であるのに、イベント実行単位中の他の2n個の信号代入処理もすべて行われてしまうことになる。
【0030】
以上に述べたように、従来のエグゾースト法あるいはイベントドリブン法を利用した論理シミュレータによるシミュレーションでは、必ずしも効率的なシミュレーションを実行できるとは限らない。これは、従来の論理シミュレータは、与えられた論理回路に記述された信号処理フローをそのままの形で実行するため、本来実行する必要のない信号代入処理を実行してしまうオーバーヘッドがあるからである。
【0031】
【発明が解決しようとする課題】
以上述べたように、RTLやゲートレベルで記述された回路は論理合成を前提としない動作レベルの回路に比べ信号演算処理量がはるかに多いが、従来の論理シミュレーションによる高速化は、あくまでHDLの処理方式上の工夫によるものであり、上記に挙げたような回路記述の演算量自体を減らすものではない。従って、RTLやゲートレベルで記述された回路をイベントドリブン法を用いてシミュレーションする場合、シミュレーション実行に多大な時間を要するという問題点がある。
【0032】
本発明は、上記事情を考慮してなされたもので、イベント実行単位が小規模の回路から構成されている場合に対しても、信号演算量が少なくなるように回路記述を変換することによって、シミュレーション実行に要する時間を低減させることの可能な論理回路変換方法及び論理シミュレーション装置及び論理回路設計支援装置を提供することを目的とする。
【0033】
また、従来の論理シミュレータでは、与えられた論理回路における信号処理フローをそのままの形で実行するため、本来実行する必要のない信号代入処理を実行してしまうオーバーヘッドがあった。
【0034】
本発明は、上記事情を考慮してなされたもので、シミュレーションの際に不必要な信号代入処理を削減することによって、シミュレーション実行に要する時間を低減させることの可能な論理回路変換方法及び論理回路設計支援装置を提供することを目的とする。
【0035】
【課題を解決するための手段】
本発明の論理回路変換装置は、VHDLのハードウエア記述言語で記述された入力論理回路を、VHDLの論理シミュレーションのための論理回路へ変換する論理回路変換装置であって、信号演算処理をそれぞれ行う複数のイベント実行単位を含む前記入力論理回路の記述に基づいて、前記複数のイベント実行単位と信号との接続関係を含む回路接続情報を求める第1の手段と、前記入力論理回路中の非同期要素を除いた部分に含まれる複数のイベント実行単位のうち、グループ化の対象とする複数のイベント実行単位を指定するための第2の手段と、前記指定された複数のイベント実行単位を対象として、前記回路接続情報を基に、当該複数のイベント実行単位を入力側からの最長パスから順に大きいレベルとなるようにレベル付けを行うとともに、各イベント実行単位の機能がクロック生成回路、レジスタ、ラッチ、組合せ回路のうちのいずれであるかを判定し、入力側から始めて、この判定された機能を基に、当該レベルの小さい順に複数のイベント実行単位を1つにまとめた複数のグループを求める第3の手段と、前記複数のグループのそれぞれについて、当該グループへの入力信号を代入して当該グループ内のイベント実行単位で行われる信号演算処理に対して、前記回路接続情報に基づいて前記信号演算処理結果が当該グループ内のイベント実行単位のみに出力される第1の代入文を求め、この第1の代入文を当該グループ内のイベント実行単位で実行される論理演算結果をVHDLの変数として出力する第2の代入文に書き換え、前記回路接続情報に基づいて前記信号演算処理結果が当該グループ内のイベント実行単位および当該グループ外の両方に出力される第3の代入文を求め、この第3の代入文を当該グループ内のイベント実行単位で実行される論理演算結果をVHDLの変数として出力する第4の代入文と、前記変数を入力として前記第3の代入文の出力信号を出力とする信号演算を行う第5の代入文とに書き換え、前記第1の代入文の出力信号を入力信号として当該グループ内のイベント実行単位で実行されるVHDLの信号演算またはVHDLの論理演算を行う第6の代入文に対して、前記第6の代入文への入力信号として含む前記第1の代入文の出力信号を前記第2の代入文の出力である変数に書き換え、前記第3の代入文の出力信号を入力信号として当該グループ内のイベント実行単位で実行されるVHDLの信号演算またはVHDLの論理演算を行う第7の代入文に対して、前記第7の代入文への入力信号として含む前記第3の代入文の出力信号を前記第4の代入文の出力である変数に書き換える第4の手段とを具備する
【0071】
【発明の実施の形態】
(第1の発明)
以下、図面を参照しながら第1の発明の実施の形態を説明する。
【0072】
(第1の実施形態)
本実施形態に係る論理回路変換装置は、回路の接続情報を解析する回路接続情報解析部、回路接続情報を基に信号演算処理の簡略化を行う範囲を決定する信号演算簡略化範囲決定部、および決定された範囲に対して信号演算処理の簡略化を実行する信号演算簡略化実行部を具備する。
【0073】
本実施形態によれば、回路接続情報解析部によって解析された回路接続情報を基に、信号演算簡略化範囲決定部が信号演算処理の簡略化を行う範囲を決定し、決定された範囲に対して信号演算簡略化実行部が信号演算処理の簡略化を実行することができ、入力回路から信号演算処理が簡略化された回路を得ることができる。
【0074】
この信号演算が簡略化された記述を論理シミュレータへの入力とすることにより、高速な論理シミュレーションが可能になる。
【0075】
以下、本実施形態についてより詳しく説明する。
【0076】
図1は、本実施形態に係る論理回路変換装置1の構成を示す図である。
【0077】
論理回路変換装置1は、回路接続情報解析部10、信号演算簡略化範囲決定部20及び信号演算簡略化実行部30を備えている。
【0078】
回路接続情報解析部10は、入力された論理回路記述100における回路接続情報として、イベント実行単位(イベントドリブン法での処理単位)間の起動関係、すなわちイベント実行単位と信号との接続関係(信号を介した論理演算処理単位間の依存関係)を解析する。
【0079】
信号演算簡略化範囲決定部20は、回路接続情報解析部10で解析された回路接続情報を基に、論理回路記述100中のどのイベント実行単位同士をどのような順番でグループ化すれば信号演算を簡略化できるかを判定し、グループ化すべきイベント実行単位の範囲を決定する。
【0080】
信号演算簡略化実行部30は、信号演算簡略化範囲決定部20によって決定された記述範囲のそれぞれに、イベント実行単位をまとめる操作を適用し、信号演算の簡略化を行う。
【0081】
本実施形態に係る論理回路変換装置1を用いた論理回路の変換方法を簡単な例で説明する。
【0082】
図2は、入力回路の回路図である。信号Aと信号BのAND(論理積)を信号Dとし、この信号Dと信号CのOR(論理和)を信号Xとして出力する。図3は、図2の回路図に対応する論理をVHDLで記述したものである。ここで、図2、図3におけるp1、p2は、イベント実行単位を表しており、図2では回路素子に、図3ではVHDLプロセスに対応している。なお、入力回路はネットリストで表現しても構わない。
【0083】
図2あるいは図3の記述を論理回路変換装置1に入力すると、回路接続情報解析部20は、図4に示すようなイベント実行単位と信号間の接続関係データを生成する。ここでは、説明を簡単にするため、接続関係をグラフで表現しているが、構造体の形でデータを保持しても構わない。
【0084】
このグラフの定義は以下の通りである。ノードはイベント実行単位を、エッジは信号を表している。ここで、信号eの値変化(イベント)でイベントドリブン実行単位pが起動されるとき、エッジeはノードpへの入力になる。また、イベント実行単位p中で信号eが評価されるとき、エッジeはノードからの出力になる。出力先は複数ノードであっても構わない。
【0085】
図4では、p1は信号A、Bのイベントにより起動され、p2は信号C、Dのイベントにより起動される。また、p1はDを、p2はXをそれぞれ出力する。
【0086】
信号演算簡略化範囲決定部20は、図4の接続データを基に、イベント実行単位のグループ化によって信号演算の簡略化が可能な範囲を決定する。この範囲の決定は、例えば同期回路では以下の手順で実現できる。
【0087】
(手順1)回路接続グラフを用いて、各イベント実行単位を入力側からの最長パスの順にレベル付けする。
【0088】
(手順2)GRを空集合とする。
【0089】
(手順3)入力側から始めて、レベルの小さい順にイベント実行単位をグループ化候補としてGRに順次取り込む。
【0090】
(手順4)グループ化候補となるイベント実行単位がなくなれば終了する。グループGRに含まれるイベント実行単位が信号演算簡略化の範囲である。
【0091】
図4に上記の手続きを適用した結果が図5である。(手順1)によりイベント実行単位p1、p2にそれぞれレベル1、レベル2が付与され、(手順3)によりp1、p2の順にグループ化候補としてグループGRにより込まれる。従って、信号演算簡略化の範囲は、p1、p2(図中200)となる。
【0092】
信号演算簡略化実行部30は、信号演算簡略化範囲決定部20によって決定された範囲のイベント事項単位のグループを1つのイベント実行単位にまとめる。これは、以下の手順で実現できる。
【0093】
(手順A)上記の(手順1)から(手順4)で求められたグループ内のイベント実行単位を、取り込まれた順に並べ、1つのイベント実行単位としてまとめる。
【0094】
(手順B)次に、グループ内のイベント実行単位同士での入力信号は、即時代入される変数にする。この場合、その信号がグループ外のイベント実行単位への出力にもなっているときは、信号と変数の両方として残す。
【0095】
図6〜図8は、図5に上記の手続きを適用して回路の変換を行った結果である。
【0096】
図6は、変換結果をブロック図で表したものである。(手順A)によりp1、p2がグループ化され、信号A、B、Cを入力、信号Xを出力とする1つのイベント実行単位になっている。
【0097】
図7は、変換結果に対応したVHDL記述である。(手順A)によりプロセスp1、p2が1つのプロセスp_m1としてまとめられている。図6と同様、信号A、B、Cが入力、信号Xが出力である。この場合、p1、p2間の値の伝搬に使われている信号Dは信号から変数になり、演算実行が簡略化されている。
【0098】
図6、図7に対応した回路接続グラフは図8に示す通りである。
【0099】
信号演算簡略化実行部30によって信号演算が簡略化された記述は、論理回路記述101として出力される。
【0100】
なお、出力回路は図面、ネットリスト、HDLのいずれでも構わない。また、HDLもVHDLに限るものではない。
【0101】
このようにして信号演算を簡略化して得られた回路記述では、1シミュレーションサイクルで同一のイベント実行単位が何度も評価実行されてしまうことがない。また、イベント実行単位間での値の受渡しに関する信号処理演算が変数演算に置き換えられるため、高速に処理することができる。さらに、イベント事項単位数が減るため、イベント実行単位をイベントキューに登録したり、登録したイベントキューを取り出す回数が低減する。
【0102】
従って、本実施形態によれば、イベント実行単位が小規模で構成され、信号演算実行量が多い場合でも、シミュレーション実行に要する処理量が低減された回路を得ることができる。
【0103】
ところで、上記では簡略化を適用する範囲に対するグループを1つとして説明したが、簡略化を適用する範囲に対するグループを複数にすることも可能である。例えば以下の手順は、同期回路をレベルN以下とレベルN+1以上の2つのイベント実行単位に分けるものである。
【0104】
(手順1)回路接続グラフを用いて、各イベント実行単位を入力側からの最長パスの順にレベル付けする。
【0105】
(手順2')GR1、GR2を空集合とする。
【0106】
(手順3')入力側から始めて、レベルの小さい順に、イベント実行単位を走査する。レベルがN以下ならばGR1に順次取り込む。レベルがN+1以上ならばGR2に順次取り込む。
【0107】
(手順4')グループ化候補となるイベント実行単位がなくなれば終了。グループGR1、GR2に含まれるイベント実行単位がそれぞれ信号演算簡略化の範囲である。
【0108】
この場合、イベントドリブン実行単位のグループ化および簡略化は複数箇所存在することになる。
【0109】
次に、信号演算簡略化範囲決定部20の変形例について説明する。
【0110】
上述の信号演算簡略化範囲決定部20では、回路接続情報解析部10で解析された回路接続情報を基に信号演算簡略化範囲を決定した。その代わりに、予め信号演算簡略化範囲を設定しておき、入力回路について該設定範囲の適用が可能か否かを、回路接続情報解析部10で解析された回路接続情報を基に確認し、適用が可能であると判断された場合に該設定範囲を信号演算簡略化範囲として決定するようにしても良い。例えば、信号演算簡略化範囲を入力回路全体と設定しておき、入力回路中に非同期ループがないことだけ確認し、非同期ループがなければ回路全体を信号演算簡略化範囲と決定する。
【0111】
(第1の実施形態に係る論理回路変換装置を備えた論理シミュレーション装置の実施形態)
本実施形態に係る論理シミュレーション装置は、図9に示すように、前述した第1の実施形態の論理回路変換装置1の持つ回路接続情報解析部10、信号演算簡略化範囲決定部20及び信号演算簡略化実行部30に、与えられた論理回路記述をもとに論理シミュレーションを実行する論理シミュレーション部90を付加したものである。論理シミュレーション部90としては、公知のものを使用する。
【0112】
論理回路変換装置1によって論理シミュレーション対象となる論理回路記述を、信号演算の簡略化された信号演算処理量の少ない論理回路記述に変換し、変換後の論理回路記述を入力として論理シミュレーション部90により論理シミュレーションを実行する。
【0113】
このように公知の論理シミュレーション部90の前段に論理回路記述の信号演算を簡略化する論理回路変換装置1を設けることによって、高速に論理シミュレーションを実行する論理シミュレーション装置を実現することができる。
【0114】
(第2の実施形態)
本実施形態に係る論理回路変換装置は、回路の接続情報を解析する回路接続情報解析部と、簡略化を適用する範囲を指定する簡略化適用範囲指定部と、信号演算処理の簡略化を行う範囲を決定する信号演算簡略化範囲決定部と、決定された範囲に対して信号演算処理の簡略化を実行する信号演算簡略化実行部を備えている。
【0115】
本実施形態によれば、回路接続情報解析部によって解析された回路接続情報と、簡略化適用範囲指定部で指定された範囲を基に、信号演算簡略化範囲決定部が信号演算処理の簡略化を行う範囲を決定し、決定された範囲に対して信号演算簡略化実行部が信号演算処理の簡略化を実行することができ、入力回路から信号演算処理が簡略化された回路を得ることが可能になる。
【0116】
本実施形態によれば、入力回路の中で、設計者が観測したい信号を避けるように、信号の簡略化を適用することが可能になる。
【0117】
以下、本実施形態についてより詳しく説明する。
【0118】
図10は、本実施形態に係る論理回路変換装置の構成を示す図である。
【0119】
本実施形態に係る論理回路変換装置2は、回路接続情報解析部10、信号演算簡略化範囲決定部21、信号演算簡略化実行部30、および簡略化適用範囲指定部40を備えている。回路接続情報解析部10、信号演算簡略化実行部30は、第1の実施形態と同様である。
【0120】
回路接続情報解析部10は、入力された論理回路記述100における回路接続情報として、イベント実行単位(イベントドリブン法での処理単位)間の起動関係、すなわちイベント実行単位と信号との接続関係を解析する。
【0121】
ここで本実施形態では、ユーザは、簡略化適用範囲指定部40から範囲指定データ105を入力して、回路中で信号演算の簡略化を適用させる範囲を指定する。範囲指定データ105として、範囲を表すデータ(例えばイベント実行単位を特定するデータ;p1、p2等)を直接入力するようにしても良いし、範囲を直接表すデータに対応付けられたID番号等をキー入力しても良いし、あるいは表示されたメニュー画面のリストから選択入力するようにしても良い。
【0122】
信号演算簡略化範囲決定部21は、回路接続情報解析部10で解析された回路接続情報と、簡略化適用範囲指定部40で指定された範囲を基に、論理回路記述100中のどのイベント実行単位同士をどのような順番でグループ化すれば信号演算を簡略化できるかを判定し、グループ化すべきイベント実行単位の範囲を決定する。
【0123】
信号演算簡略化実行部30は、信号演算簡略化範囲決定部21によって決定された記述範囲のそれぞれに、イベント実行単位をまとめる操作を適用し、信号演算の簡略化を行う。
【0124】
本実施形態に係る論理回路変換装置2を用いた論理回路の変換方法を簡単な例で説明する。
【0125】
図11は、入力回路の回路図である。図11の回路は、図2の回路に信号Xと信号EのANDを信号Yとして出力するAND素子p3を加えたものである。図12は、図11の回路図に対応する論理をVHDLで記述したものである。ここで、図11、図12におけるp1、p2、p3は、イベント実行単位を表しており、図11では回路素子に、図12ではVHDLプロセスに対応している。なお、入力回路はネットリストで表現しても構わない。
【0126】
ここで例えばユーザが信号Xを信号のまま観測したい場合、範囲指定データを、
{p1、p2}
として、p1、p2のみ指定し、p3は指定に含まないように指定する。
【0127】
なお、ここでは、イベント実行単位の名前で指定しているが、各イベント実行単位に一意的なIDを付与し、IDで指定しても良い。また、イベント実行単位を並べて指定する代わりに、例えばある階層を指定し、その階層から下のすべてのイベント実行単位を指すことにしても良い。
【0128】
図11あるいは図12の記述を論理回路変換装置2に入力すると、回路接続情報解析部21は、図13に示すようなイベント実行単位と信号間の接続関係データを生成する。第1の実施形態と同様、説明を簡単にするため、接続関係をグラフで表現しているが、構造体の形でデータを保持しても構わない。
【0129】
信号演算簡略化範囲決定部21は図13の接続データを基に、イベント実行単位のグループ化によって信号演算の簡略化が可能な範囲を決定する。この範囲の決定は、例えば同期回路では以下の手順で実現できる。
【0130】
(手順1)回路接続グラフを用いて、各イベント実行単位を入力側からの最長パスの順にレベル付けする。
【0131】
(手順2)GRを空集合とする。
【0132】
(手順3a)入力側から始めて、レベルの小さい順に、簡略化適用範囲指定部40で指定された範囲中にあるイベント実行単位をGRに順次取り込む。
【0133】
(手順4)グループ化候補となるイベント実行単位がなくなれば終了する。グループGRに含まれるイベント実行単位が信号演算簡略化の範囲である。
【0134】
図13に上記の手続きを適用した結果が図14である。(手順1)によりイベント実行単位p1、p2、p3にそれぞれレベル1、レベル2、レベル3が付与され、(手順3a)によりp1、p2の順にグループ化候補としてグループGRにより込まれる。ここで、p3は簡略化適用範囲指定部40による指定に含まれないので、GRには取り込まれない。従って、信号演算簡略化の範囲は、p1、p2となる。
【0135】
信号演算簡略化実行部30は、信号演算簡略化範囲決定部21によって決定された範囲のイベント事項単位のグループを1つのイベント実行単位にまとめる。これは、第1に実施形態の(手順A)および(手順B)により実現できる。
【0136】
なお、第1の実施形態の図6〜図8に対応する結果(変換結果を表すブロック図、VHDL記述、回路接続グラフ)は省略する。
【0137】
信号演算簡略化実行部30によって信号演算が簡略化された記述は、論理回路記述102として出力される。
【0138】
なお、出力回路は図面、ネットリスト、HDLのいずれでも構わない。また、HDLもVHDLに限るものではない。
【0139】
このようにして、信号演算簡略化の範囲を指定して得られた回路記述では、設計者が観測したい信号を避けて信号演算の簡略化を適用することができる。また、信号演算簡略化を適用した範囲については、第1の実施形態と同様に、シミュレーション実行に要する処理量が低減された回路を得ることができる。
【0140】
なお、第1の実施形態で述べたのと同様に、簡略化を適用する範囲に対するグループを複数にすることも可能である。例えば、グループを2つに分ける場合、簡略化適用範囲指定部40から範囲指定データ105として、適用する範囲とその範囲においてグループを分ける基準となる前述のレベルNを示す数値とを入力するなどすれば良い。
【0141】
(第2の実施形態に係る論理回路変換装置を備えた論理シミュレーション装置の実施形態)
本実施形態に係る論理シミュレーション装置は、図15に示すように、前述した第2の実施形態の論理回路変換装置2の持つ回路接続情報解析部10、信号演算簡略化範囲決定部21、信号演算簡略化実行部30及び簡略化適用範囲指定部40に、与えられた論理回路記述をもとに論理シミュレーションを実行する論理シミュレーション部90を付加したものである。論理シミュレーション部90としては、公知のものを使用する。
【0142】
ユーザの観測したい信号を簡略化適用範囲から除外した範囲指定データが与えられた論理回路変換装置2は該範囲指定データに基づいて論理シミュレーション対象となる論理回路記述を、信号演算の簡略化された信号演算処理量の少ない論理回路記述に変換し、変換後の論理回路記述を入力として論理シミュレーション部90により論理シミュレーションを実行する。従って、ユーザの観測したい信号を残した上で、論理シミュレーションの実行を高速化することができる。
【0143】
このように公知の論理シミュレーション部90の前段にユーザ指定に基づいて論理回路記述の信号演算を簡略化する論理回路変換装置2を設けることによって、デバッグ機能を低下させることなく、高速に論理シミュレーションを実行する論理シミュレーション装置を実現することができる。
【0144】
(第3の実施形態)
本実施形態に係る論理回路変換装置は、回路の接続情報を解析する回路接続情報解析部と、回路の機能を判定する回路機能判定部と、信号演算処理の簡略化を行う範囲を決定する信号演算簡略化範囲決定部と、決定された範囲に対して信号演算処理の簡略化を実行する信号演算簡略化実行部を備えている。
【0145】
本実施形態によれば、回路接続情報解析部によって解析された回路接続情報と、回路機能判定部で判定された回路構成要素の機能情報を基に、信号演算簡略化範囲決定部が信号演算処理の簡略化を行う範囲を決定し、決定された範囲に対して信号演算簡略化実行部が信号演算処理の簡略化を実行することができ、入力回路から信号演算処理が簡略化された回路を得ることが可能になる。
【0146】
本実施形態によれば、入力回路をレジスタと組合せ回路とに分けて、信号演算の簡略化を適用することが可能になる。従って、設計者による観測頻度の高いレジスタの出力値を信号値として残しつつ、高速な論理シミュレーションは可能になる。
【0147】
以下、本実施形態についてより詳しく説明する。
【0148】
図16は、本実施形態に係る論理回路変換装置の構成を示す図である。
【0149】
本実施形態に係る論理回路変換装置3は、回路接続情報解析部10、信号演算簡略化範囲決定部22、信号演算簡略化実行部30および回路機能判定部50を備えている。回路接続情報解析部10、信号演算簡略化実行部30は、第1の実施形態と同様である。
【0150】
回路接続情報解析部10は、入力された論理回路記述100における回路接続情報として、イベント実行単位(イベントドリブン法での処理単位)間の起動関係、すなわちイベント実行単位と信号との接続関係を解析する。
【0151】
一方、回路機能判定部50は、回路の各構成要素(イベント実行単位)がクロック生成回路、レジスタ、ラッチ、組合せ回路のいずれであるかを判定し、回路構成要素の機能情報として出力あるいは保持する。
【0152】
信号演算簡略化範囲決定部22は、回路接続情報解析部10で解析された回路接続情報と、回路機能判定部50で判定された回路構成要素の機能情報を基に、回路100中のどのイベント実行単位同士をどのような順番でグループ化すれば信号演算を簡略化できるかを判定し、グループ化すべきイベント実行単位の範囲を決定する。
【0153】
信号演算簡略化実行部30は、信号演算簡略化範囲決定部21によって決定された記述範囲のそれぞれに、イベント実行単位をまとめる操作を適用し、信号演算の簡略化を行う。
【0154】
本実施形態に係る論理回路変換装置3を用いた論理回路の変換方法を簡単な例で説明する。
【0155】
図17は、入力回路の回路図である。図17の回路は、図2の回路に対し、クロックの立ち上がりに信号Xと信号Xの否定とをそれぞれ信号Aと信号Bに伝搬させるレジスタp01、およびクロックの立ち上がりに信号Xを信号Cに伝搬させるレジスタp02を加えたものである。簡単のためクロックは外部入力として与えられるものとする。
【0156】
図18は、図17の回路図に対応する論理をVHDLで記述したものである。ここで、図17、図18におけるp01、p02、p1、p2は、イベント実行単位を表しており、図17では回路素子に、図18ではVHDLプロセスに対応している。なお、入力回路はネットリストで表現しても構わない。
【0157】
図17あるいは図18の記述を論理回路変換装置3に入力すると、回路接続情報解析部22は、図19に示すようなイベント実行単位と信号間の接続関係データを生成する。第1の実施形態と同様、説明を簡単にするため、接続関係をグラフで表現しているが、構造体の形でデータを保持しても構わない。
【0158】
また、回路機能判定部50により、イベント実行単位p01、p02、p1、p2に対する機能情報が、例えば、図20のように出力される。機能情報およびイベント実行単位はIDで記述されていても良い。
【0159】
信号演算簡略化範囲決定部22は図20の機能情報を基に、イベント実行単位のグループ化によって信号演算の簡略化が可能な範囲を決定する。この範囲の決定は、例えばレジスタと組合せ回路から構成される同期回路では以下の手順で実現できる。
【0160】
(手順1)回路接続グラフを用いて、各イベント実行単位を入力側からの最長パスの順にレベル付けする。
【0161】
(手順2')GR1、GR2を空集合とする。
【0162】
(手順3b)入力側から始めて、レベルの小さい順に、イベント実行単位を走査する。機能がレジスタならばGR1に順次取り込む。機能が組合せ回路ならばGR2に順次取り込む。
【0163】
(手順4')グループ化候補となるイベント実行単位がなくなれば終了する。グループGR1、GR2に含まれるイベント実行単位が信号演算簡略化の範囲である。
【0164】
図19に上記の手続きを適用した結果が図21である。(手順1)により、イベント実行単位p01、p02、p1、p2にそれぞれレベル1、レベル1、レベル2、レベル3が付与される。p01、p02、p1、p2の機能はそれぞれレジスタ、レジスタ、組合せ回路、組合せ回路なので、(手順3b)により、p01、p02の順にグループGR1に、p1、p2の順にグループGR2に取り込まれる。従って、信号演算簡略化の範囲は、p01、p02、p1、p2となる。
【0165】
信号演算簡略化実行部30は、信号演算簡略化範囲決定部22によって決定された範囲のイベント事項単位のグループを1つのイベント実行単位にまとめる。これは、第1に実施形態の(手順A)および(手順B)により実現できる。
【0166】
図22〜図24は、図21に信号の簡略化の手続きを適用して回路の変換を行った結果である。
【0167】
図22は、変換結果をブロック図で表したものである。(手順A)により、p01、p02はグループ化され、信号CLK、Xを入力、信号A、B、Cを出力とする1つのイベント実行単位になっている。また、p1、p2もグループ化され、信号A、B、Cを入力、信号Xを出力とする1つのイベント実行単位になっている。
【0168】
図23は、変換結果に対応したVHDL記述である。p1、p2間の値の伝搬に使われている信号Dは信号から変数になり、演算実行が簡略化されている。
【0169】
図22、図23に対応した回路接続グラフが図24に示す通りである。
【0170】
信号演算簡略化実行部30によって信号演算が簡略化された記述は、論理回路記述103として出力される。
【0171】
なお、出力回路は図面、ネットリスト、HDLのいずれでも構わない。また、HDLもVHDLに限るものではない。
【0172】
このようにして、回路機能判定部を有する本論理回路変換装置では、レジスタ、組合せ回路に対して順に、信号演算の簡略化を適用することができる。従って、設計者による観測頻度の高いレジスタの出力値を信号値として残しつつ、高速な論理シミュレーションが可能になる。
【0173】
(第3の実施形態に係る論理回路変換装置を備えた論理シミュレーション装置の実施形態)
本実施形態に係る論理シミュレーション装置は、図25に示すように、前述した第3の実施形態の論理回路変換装置3の持つ回路接続情報解析部10、信号演算簡略化範囲決定部22、信号演算簡略化実行部30及び回路機能判定部50に、与えられた論理回路記述をもとに論理シミュレーションを実行する論理シミュレーション部90を付加したものである。論理シミュレーション部90としては、公知のものを使用する。
【0174】
論理回路変換装置3は論理シミュレーション対象となる論理回路記述を、回路機能(この場合はレジスタと組合せ回路)の分類によりグループ化し、そのグループごとに信号演算の簡略化された信号演算処理量の少ない論理回路記述に変換し、論理シミュレーション部90は、変換後の論理回路記述を入力として論理シミュレーションを実行する。従って、本実施形態によれば、例えば、設計者による観測頻度の高いレジスタの出力値を信号値として残しつつ、高速な論理シミュレーションが可能になる。
【0175】
このように公知の論理シミュレーション部90の前段に論理回路記述の信号演算を簡略化する論理回路変換装置3を設けることによって、デバッグ機能を低下させることなく、高速に論理シミュレーションを実行する論理シミュレーション装置を実現することができる。
【0176】
(第4の実施の形態)
本実施形態に係る論理回路変換装置は、入力論理回路中における信号処理フローを解析する手段と、前記解析手段による信号処理フローの解析結果に基づき、入力論理回路中にイベント判定論理を挿入する箇所を決定する手段と、前記決定手段によって決定された入力論理回路中の挿入箇所にイベント判定論理を挿入する手段を有する。
【0177】
本実施形態によれば、入力論理回路中の実行する必要のない可能性が高い信号代入処理の前後をイベント判定論理でくくり、入力論理回路をより高速にシミュレーション実行可能な論理回路に変換することが可能になる。
【0178】
従来の論理シミュレーションでは、入力された論理回路の記述における信号処理フローを変えることがなかったため、効率のよいシミュレーション実行が困難であった。本実施形態によれば、入力論理回路をより高速にシミュレーション実行可能な論理回路に変換し、変換された記述を論理シミュレータに入力することによって、高速な論理シミュレーションが可能になる。
【0179】
以下、本実施形態についてより詳しく説明する。
【0180】
図26は、本実施形態に係る論理回路変換装置310の構成を示す図である。
【0181】
論理回路変換装置310は、信号処理フロー解析部311、イベント判定論理挿入箇所決定部312及びイベント判定論理挿入部313を備えている。
【0182】
信号処理フロー解析部311は、入力された論理回路記述314に記述された信号処理フローを解析し、信号と論理演算単位の間の依存関係情報を得る。ここで、論理演算単位とは、イベント判定論理でくくる単位を表す。具体的には、ANDやORなどの回路素子、信号代入文、イベント実行単位、あるいはこれらをグループ化したものが考えられる。
【0183】
イベント判定論理挿入箇所決定部312は、信号処理フロー解析部11で解析された依存関係情報をもとに、論理回路記述314中のどの論理演算単位の前後にイベント判定論理を挿入するかを決定する。ここで、回路記述中で連続して記述されている複数の論理演算単位をグループ化して前後にイベント判定論理を挿入することも許される。
【0184】
イベント判定論理挿入部313では、イベント判定論理挿入箇所決定部12によって判定された挿入箇所に、適当なイベント判定論理を挿入することによって、論理回路記述314を論理的に等価な回路に変換する。等価変換された回路は、論理回路記述315として出力される。
【0185】
本実施形態に係る論理回路変換装置310を用いた論理回路の変換方法を簡単な例で説明する。
【0186】
図27は、入力論理回路の回路図である。信号Aと信号BのXOR(排他的論理和)を信号Gとして出力する。
【0187】
図28は、図27の回路図に対応する論理をC言語で記述したものである。図28の記述を論理回路変換装置310に入力すると、信号処理フロー解析部311は、論理演算単位と信号間の接続関係データを生成する。この接続関係データは、図29に示すように論理演算単位をノード、起動信号をエッジとするグラフ情報として表現されていることが望ましい。
【0188】
イベント判定論理挿入箇所決定部312は、このグラフ上で、閉じた論理演算単位のグループのうちで、入力信号数に比べて信号処理代入がなるべく多いものを求める。この例では、このグループは図30で点線で囲まれたノード集合として求められる。このグループの求め方の詳細は後に述べる。
【0189】
イベント判定論理挿入部313は、イベント判定論理挿入箇所決定部12によって求められた論理演算単位あるいは論理演算単位グループの前後にイベント判定論理を挿入する。この例では、グループへの入力信号A、Bの前シミュレーションサイクルでの値をそれぞれA_old、B_oldとするとき、図31の記述に変換することに対応する。
【0190】
イベント判定論理挿入部313によってイベント判定論理が挿入された記述は、論理回路記述315として出力される。この変換方法では、論理回路記述315のシミュレーション結果が、もとの論理回路記述314のシミュレーション結果と一致することが容易に分かる。
【0191】
なお、この具体例では説明を分かりやすくするために、イベント判定論理でチェックされる信号数2個に対して、イベント判定論理でくくられた部分記述中に含まれる信号処理代入数5個と、それほど多くなっていないが、図32の例のように、イベント判定論理でチェックされる信号数(2個)に対して、イベント判定論理でくくられた部分記述中に含まれる信号処理代入数(2+2n個)が非常に大きい場合は、変換によるシミュレーションの高速化の効果は絶大である。
【0192】
さて、論理回路記述314をより高速シミュレーション実行可能な論理回路記述315に置き換えるために、イベント判定論理挿入箇所決定部312が適切にイベント判定論理挿入箇所を決定する必要がある。以下に、イベント判定論理挿入箇所決定部312における処理方法の一例を述べる。イベント判定論理挿入箇所決定部312は、先に述べたように、接続関係データを表すグラフ上で、閉じた論理演算単位のグループのうちで、入力信号数に比べて信号処理代入数がなるべく多いものを求める必要がある。
【0193】
ここで、イベント判定論理をその前後に挿入すべき論理演算単位グループでは、途中で一旦グループの外に出た後、再びグループ内に入ってくるパス(エッジの列)がないことが条件となる。この理由を例を用いて説明する。図33で点線で囲まれた論理演算単位のグループは、ノードF1からエッジC、エッジFを通ってF4に至るパスがあり、途中でグループ外のノードF3を通過するため、上記の条件には該当しない。このグラフ上で、F1、F3、F4の順に通過するパスがあるということは、F1、F3、F4の順に演算実行を行わなくてはならないことを意味している。したがって、イベント判定論理でF1、F4をくくり、同時に実行してしまうと、上記の実行順序と必ず矛盾してしまうことになるからである。
【0194】
以下、論理演算グループ(ノード集合)において、途中で一旦グループの外に出た後、再びグループ内に入ってくるパスがない状態を「閉じている」あるいは「閉じた」などと呼ぶことにする。
【0195】
ここで、グラフ上で、入力信号数に比べて信号処理代入が多い、閉じた論理演算単位のグループを求めるためには、例えば、各論理演算単位中に含まれる信号処理代入数をノードのサイズと定め、接続グラフ上で、「閉じたノード集合で、入力エッジ数に比してノードのサイズの和が大きいもの」を見つける問題を解けばよい。
【0196】
この問題を解く方法として、例えば図34に示す手順でノード集合を探索すればよい。なお、接続グラフをG=(V、E)とする。また、Uは和集合を表すものとする。
【0197】
まず、Vから適当なノードaを選び、ノード集合T={a}とする(ステップS11)。
【0198】
ステップS12でT=Vならば探索を終了する。
【0199】
ステップS12でT=Vでなければ、Tに隣接するノードbを選びT=TU{b}とする(ステップS13)。
【0200】
次に、Tが閉じていないときは、Tが閉じた状態になるまで、適当なノードcを選び、T=TU{c}を繰り返す(ステップS13)。
【0201】
次に、f(in(T)、size(T))が定められた値g以上ならば集合Tに含まれる信号処理代入式の前後をイベント判定論理挿入箇所と決定し、ステップS12に戻る。ここで、in(T)はTへの入力エッジ数、size(T)はTの要素のサイズの和、fは適当な評価関数である。
【0202】
上記のアルゴリズムは非決定的な探索の例であり、これを深さ優先探索と組合せれば、すべてのノード部分集合をTとして探索することも可能である。
【0203】
また、ノードのサイズとして、信号処理代入数の代わりに、論理演算単位の記述行数や、信号処理の種類ごとに実行時間の重みづけをして加算した積和を用いてもよい。
【0204】
イベント判定論理挿入箇所は複数あっても構わない。また、図35のように挿入箇所同士が入れ子構造になっていても構わない。
【0205】
(第4の実施形態の変形例1)
本実施形態に係る論理回路変換装置に入力される論理回路中の各信号のイベントがどのくらいの頻度で発生するのかを設計者が知っている場合、この情報を利用した方が、より正確にイベント判定論理挿入箇所を決定できることが考えられる。
【0206】
そのため、図36で示す論理回路変換装置400のように、イベント判定論理挿入箇所を設計者が予め指定する機能を持つイベント判定論理挿入範囲指定部317と、この指定を基にイベント判定論理挿入箇所の決定を行う機能を持つイベント判定論理挿入箇所決定部318とを設けることで、より高速にシミュレーション可能な論理回路変換結果を得ることができる。
【0207】
論理演算単位のグループの指定は、例えば、
F0、F1、F2、F3、F4
のように論理演算単位のグループとして記述してもよい。また、
A、B;G
のように、入力信号の集合、出力信号の集合として指定してもよい。
【0208】
(第4の実施形態の変形例2)
回路中で各信号のイベント発生頻度がシミュレーション実行中に大きく変化するときは、一旦、挿入されたイベント判定論理を削除し、別の箇所にイベント判定論理を再挿入できることが望ましい。そのため、図37で示す論理回路変換装置401のように、イベント判定論理を削除するためのイベント判定論理削除部316を設けると良い。
【0209】
ここで、論理回路変換装置による変換と無関係に論理回路中に記述されていたイベント判定論理と、論理回路変換装置による変換で挿入されたイベント判定論理を区別する必要がある。この区別は、例えば、回路中でイベント判定論理を挿入した「行」あるいはその「行」の前後に、適当な識別子を含むコメントを入れることで実現可能である。
【0210】
(第4の実施形態の変形例3)
本実施形態による論理回路変換装置に入力される論理回路中の各信号のイベントがどのくらいの頻度で発生するのかを記述した実行履歴情報がある場合、この情報を利用することにより、より正確にイベント判定論理挿入箇所を決定できると考えられる。
【0211】
そのため、図38に示す論理回路変換装置402のように、実行履歴情報320を設計者が予め指定し、この指定を基にイベント判定論理挿入箇所の決定を行う機能を、イベント判定論理挿入箇所決定部319に持たせることで、より高速にシミュレーション可能な、論理回路変換結果が得られることが期待される。
【0212】
実行履歴情報の指定方法としては、図39のように、各論理演算単位ごとに、各シミュレーションサイクルにイベント実行処理されたか否かの履歴を与えてもよい。図40のように、各論理演算単位ごとに、イベント実行処理された頻度の情報を与えてもよい。
【0213】
(第5の実施形態)
本実施形態に係る論理シミュレーション装置は、入力論理回路中における信号処理フローを解析する手段と、前記解析手段による信号処理フローの解析結果に基づき、入力論理回路中にイベント判定論理を挿入する箇所を決定する手段と、前記決定手段によって決定された入力論理回路中の挿入箇所にイベント判定論理を挿入する手段を有する。
【0214】
本実施形態によれば、入力論理回路中の実行する必要のない可能性が高い信号代入処理の前後をイベント判定論理でくくり、入力論理回路をより高速にシミュレーション実行することが可能になる。
【0215】
従来の論理シミュレーションでは、入力された論理回路の記述における信号処理フローを変えずにシミュレーションを実行していたため、効率のよいシミュレーション実行が困難であった。本実施形態によれば、入力論理回路をより高速にシミュレーション実行可能な論理回路に変換し、シミュレーション実行する高速な論理シミュレータが実現可能になる。
【0216】
以下、本実施形態についてより詳しく説明する。
【0217】
図41は、本実施形態に係る論理シミュレーション装置501の構成を示す図である。
【0218】
論理シミュレーション装置501は、図26に示された論理回路変換装置310と、シミュレーション実行部321とを具備する。すなわち、論理シミュレーション装置510は、前述した第4の実施形態の論理回路変換装置310の持つ信号処理フロー解析部311、イベント判定論理挿入箇所決定部312及びイベント判定論理挿入部313に、与えられた論理回路記述をもとに論理シミュレーションを実行する論理シミュレーション部321を付加したものである。論理シミュレーション部321としては、公知のものを使用する。
【0219】
論理回路変換装置310によって、入力された論理回路314は、より高速にシミュレーション実行可能な、論理的に等価な回路に変換される。シミュレーション実行部321は、等価変換された回路を入力として論理シミュレーションを実行する。
【0220】
(第5の実施形態の変形例1)
上記の第5の実施形態においては、論理回路変換装置310によって入力論理回路を等価変換し、その結果をシミュレーション実行部321の入力として、シミュレーション実行を行った。
【0221】
しかし、論理シミュレーション装置がインタプリタ方式ではなく、コンパイル方式を採用している場合、論理回路変換をターゲット言語レベルで行った方がより高速なシミュレーション実行が可能になる場合がある。
【0222】
このようなケースでは、入力論理回路314を直接、論理回路変換装置310に入力するのではなく、ターゲット言語レベルで論理回路変換を行った後にシミュレーション実行部321に入力するのがよい。
【0223】
(第5の実施形態の変形例2)
本実施形態に係る論理シミュレーション装置に入力される論理回路中の各信号のイベントがどのくらいの頻度で発生するのかを設計者が知っている場合、この情報を利用した方が、より正確にイベント判定論理挿入箇所を決定できることが考えられる。この場合、第4の実施形態の変形例1で示した論理回路変換装置を用いて論理回路変換を行うことで、より高速にシミュレーション実行を行うことが可能になる。
【0224】
論理演算単位のグループの指定も、第4の実施形態の変形例1に示した方法を用いればよい。
【0225】
(第5の実施形態の変形例3)
第4の実施形態で述べた論理回路変換装置を用いて、一旦イベント判定論理が挿入された論理回路を入力としてシミュレーション実行したい場合がある。このとき、前回と異なる箇所にイベント判定論理を挿入するために、前回挿入されたイベント判定論理を削除する必要がある。
【0226】
そのためには、図42のように、第4の実施形態の変形例2で示した論理回路変換装置401を用いて論理変換を行い、変換後の論理回路の論理シミュレーションをシミュレーション実行部321によって実行する論理シミュレーション装置502を実現すればよい。
【0227】
論理回路変換装置401による変換と無関係に論理回路中に記述されていたイベント判定論理と、論理回路変換装置による変換で挿入されたイベント判定論理の区別は、第4の実施形態の変形例1に示した方法を用いればよい。
【0228】
(第5の実施形態の変形例4)
本実施形態に係る論理回路変換装置に入力される論理回路中の各信号のイベントがどのくらいの頻度で発生するのかを記述した実行履歴情報がある場合、この情報を利用した方が、より正確にイベント判定論理挿入箇所を決定できることが考えられる。
【0229】
そのため、図43に示すように、論理シミュレーションを実行するシミュレーション実行部330内に実行履歴情報収集部331を設け、この実行履歴情報収集部331によりシミュレーション実行結果から実行履歴情報320を求め、この実行履歴情報320を基にイベント判定論理挿入箇所の決定を行う論理シミュレーション装置503を実現すればよい。論理回路変換装置としては、第4の実施形態の変形例3で示したような論理回路変換装置402を用いる。
【0230】
実行履歴情報の指定方法としては、第5の実施形態の変形例3で示した方法を用いればよい。
【0231】
本実施形態によれば、シミュレーション実行結果から動的に入力論理中のイベント判定論理の挿入箇所を変えて、シミュレーション実行を継続することが可能になる。
【0232】
(第5の実施形態の変形例5)
図44は、図36で示すような第4の実施形態の変形例1の論理回路変換装置400に、公知のシミュレーション実行部321を付加して、論理シミュレーション装置504を構成することも可能である。
【0233】
以上発明の実施の形態について説明してきたが、第1、第2、第3の実施形態もしくはその変形例等と、第4、第5の実施形態もしくはその変形例等とは、適宜組合せ可能である。この場合、まず、前者により簡略化を行い、次に、後者によりイベント判定論理を挿入するのが好ましい。
【0234】
また、各実施形態に係る論理回路変換装置や論理シミュレーション装置は、相当する手順を記述したプログラムをCPU上で実行させる形でも実現可能である。
【0235】
本発明は、上述した実施の形態に限定されるものではなく、その技術的範囲において種々変形して実施することができる。
【0236】
(第1〜第5の実施形態の作用・効果)
上記第1〜第5の実施形態で説明した信号演算処理の簡略化では、まず、入力された論理回路の接続関係をもとに各イベント実行単位に対し入力側から最長パスの順にレベルを付与する。次に、イベント実行単位をレベルの順に並べ一つのイベント実行単位にまとめる。このときにイベント実行単位間で値の受け渡しに使われる信号は、即時代入される変数に置き換える。
【0237】
このような操作により得られた回路記述では、1シミュレーションサイクルで同一のイベント実行単位が何度も評価実行されてしまうことがない。また、イベント実行単位間での値の受渡しに関する信号処理演算が変数演算に置き換えられるため、高速に処理することができる。さらに、イベント実行単位数が減るため、イベント実行単位をイベントキューに登録したり、登録したイベントキューを取り出す回数が低減する。従って、イベント実行単位が小規模で構成され、信号演算実行量が多い場合でも、シミュレーション実行に要する処理量が低減された回路を得ることができる。
【0238】
(第2の発明)
上記第1の発明(第1〜第5の実施形態)における信号演算処理の簡略化の方法では、対象となる論理回路が同期回路であることを前提としている。もし、入力された論理回路が非同期回路(非同期要素を含む回路)である場合は、イベント実行単位を一つにまとめると元の記述と動作が異なってしまうため、この方法を適用することができなくなってしまい、非同期回路に適用することができない。
【0239】
従って、イベントドリブン法を用いてシミュレーションする際に、回路記述が非同期回路のときは、信号演算処理量を減らすのが困難であり、シミュレーション実行に多大な時間を要するという問題点がある。
【0240】
そこで、次に、第2の発明として、イベント実行単位が小規模の回路から構成されている非同期回路に対しても、信号演算量が少くなるように回路記述を変換できるようにすることによって、シミュレーション実行に要する時間を低減させることの可能な論理回路変換方法及び論理回路設計支援装置について説明する。
【0241】
ここで、同期要素とは、最長パスの順にレベル付けを行ったときのレベルあるいは評価実行されるタイミングが静的に確定可能な回路要素であり、非同期要素とは、ラッチ、非同期ループを構成する組合せ回路、自己ループを含むイベント実行単位のように、最長パスの順にレベル付けを行ったときのレベルあるいは評価実行されるタイミングが静的に確定できないもの、あるいは、信号の入力タイミングに応じて出力動作が異なるため、レベル付けが動的に変化する回路要素をいう。
【0242】
(第6の実施形態)
(6−1)論理回路変換方法およびそれを用いた論理回路変換装置
第6の実施形態に係る論理回路変換装置は、論理回路中の非同期要素を判定する非同期要素判定部、非同期要素を除いた範囲に限定して信号演算処理の簡略化を適用する範囲を決定する信号演算簡略化範囲決定部、および決定された範囲に対して信号演算処理の簡略化を実行する信号演算簡略化実行部を具備する。
【0243】
本実施形態によれば、非同期要素判定部によって求められた非同期要素を除いた範囲に限定して信号演算処理の簡略化の範囲を実行することができ、入力された非同期回路から信号演算が簡略化された回路を得ることができ、この信号演算が簡略化された記述を論理シミュレータへの入力とすることにより、高速な論理シミュレーションが可能になる。
【0244】
以下、本実施形態についてより詳しく説明する。
【0245】
図45は、本実施形態に係る論理回路変換装置601の構成を示す図である。
【0246】
論理回路変換装置601は、非同期要素判定部510、信号演算簡略化範囲決定部520及び信号演算簡略化実行部530を備えている。
【0247】
非同期要素判定部510は、入力された論理回路記述900中のイベント実行単位(イベントドリブン法での処理単位)のうち、非同期要素であるものを判定する。
【0248】
信号演算簡略化範囲判定部520は、非同期要素判定部510で非同期要素と判定されたイベント処理単位を除いた範囲について、回路900中のどのイベント実行単位同士をどのような順番でグループ化すれば信号演算を簡略化できるかを判定し、グループ化すべきイベント実行単位の範囲を決定する。
【0249】
信号演算簡略化実行部530は、信号演算簡略化範囲決定部520によって決定された記述範囲のそれぞれに、イベント実行単位をまとめる操作を適用し、信号演算処理の簡略化を行う。
【0250】
本実施形態に係る回路変換装置601に用いられた論理回路変換方法を簡単な例で説明する。
【0251】
図46、図47はそれぞれ、入力回路の回路図、対応するVHDL記述である。p1〜p5はイベント実行単位を表しており、図46では回路要素、図47ではVHDLプロセスに対応している。ここで、p1、p2、p5はAND(論理積)、p4はOR(論理和)である。また、p3はラッチであり、入力コントロール信号値によってデータを保持(レジスタの動作)あるいはスルーする(組合せ回路の動作)。なお、入力回路は、HDL記述でもネットリストで表現しても構わない。また、HDLもVHDLに限るものではない。
【0252】
図46あるいは図47の記述を回路変換装置601に入力すると、非同期要素判定部520は、ラッチであるp3を非同期要素として判定する。ラッチが非同期要素と判定されるのは、入力コントロール信号とデータ信号のいずれのイベントが先に伝搬するかによって評価実行すべきタイミングが変わり、予め実行順序が確定しないからである。
【0253】
ここで、信号演算簡略化範囲決定部520は、非同期要素として判定されたイベント実行単位p3を除くp1、p2、p4、p5の中から信号演算の簡略化が可能な範囲を決定する。この範囲の決定は、例えば以下の手順で実行できる。
【0254】
(手順6−1)各イベント実行単位を入力側からの最長パスの順にレベル付けする。
【0255】
(手順6−2)GRを空集合、Eを非同期要素を除くイベント実行単位からなる集合とする。
【0256】
(手順6−3)Eが空集合ならば(手順6−5)へ行く。そうでなければ、Eからレベルの一番小さいイベント実行単位Tを選ぶ。
【0257】
(手順6−4)TをGRに取り込む。EからTを除き(手順6−3)に戻る。
【0258】
(手順6−5)終了する。イベント実行単位のグループGRが信号簡略化の範囲である。
【0259】
図46に示した論理回路に対し上記の手続きを適用した結果の一例を図48に示す。
【0260】
(手順6−1)によりイベント実行単位p1、p2、p3、p4、p5にそれぞれレベル1、レベル1、レベル2、レベル2、レベル3が付与される。次に、(手順6−3)、(手順6−4)によりp1、p2、p4、p5の順にGRに取り込まれる(p1とp2は逆の順番でも構わない)。従って、信号演算の簡略化の範囲は{p1、p2、p4、p5}となる(図48中700)。
【0261】
信号演算簡略化実行部530は、信号演算簡略化範囲決定部520で決定された範囲のイベント実行単位のグループを一つのイベント実行単位にまとめる。これは、以下の手順で実現できる。
【0262】
(手順6−A)(手順6−1)から(手順6−5)で求められたグループ内のイベント実行単位を取り込まれた順に並べ、一つのイベント実行単位としてまとめる。
【0263】
(手順6−B)グループ内のイベント実行単位間の入力信号は即時代入される変数に置き換える。この場合、その信号がグループ外のイベント実行単位への出力にもなっているときは、信号として残しつつ対応する変数をつくる。
【0264】
図49〜図50は、図46に示した論理回路に上記の手続きを適用して回路の変換を行った結果の一例である。
【0265】
図49は、変換結果をブロック図で表したものである。(手順6−A)により、{p1、p2、p4、p5}が求めるグループとなる。また、このグループは(手順6−B)により、信号A、B、C、D、Hを入力、信号F、Xを出力とする1つのイベント実行単位にまとめられる。
【0266】
図50は、図49の変換結果に対応したVHDL記述である。(手順6−A)により、プロセスp1、p2、p3、p4、p5が1つのプロセスp mlとしてまとめられている。図49と同様に、信号A、B、C、D、Hが入力、信号F、Xが出力である。この場合、p2からp4への値の伝搬に使われる信号G、p4からp5への値の伝搬に使われる信号Iは、それぞれ信号から変数になる。また、p1からp4への値の伝搬についても、信号Fに対応する変数F varになる。以上のような信号から変数への置き換えにより、演算実行が簡略化される。
【0267】
このように信号演算簡略化実行部530によって信号演算が簡略化された記述は、論理回路記述901として出力される。
【0268】
なお、出力回路は図面、ネットリスト、HDLのいずれでも構わない。HDLもVHDLに限るものではない。
【0269】
このようにして信号演算を簡略化して得られた回路記述では、1シミュレーションサイクルで同一のイベント実行単位が何度も評価実行されてしまうことが少なくなる。また、イベント実行単位間での値の受渡しに関する信号処理演算が変数演算に置き換えられるため、高速に処理することができる。さらに、イベント実行単位数が減るため、イベント実行単位をイベントキューに登録したり、登録したイベントキューを取り出す回数が低減する。
【0270】
従って、本実施形態によれば、入力された論理回路が小規模のイベント実行単位で構成され、信号演算実行量が多い非同期回路の場合でも、シミュレーション実行に要する処理量が低減された回路を得ることができる。
【0271】
ところで、上記では簡略化を適用する範囲に対応するグループを1つとする方法を述べたが、これを複数のグループとして実現することも可能である。例えば、以下の手順は、非同期要素の入力側と出力側と別々にグループを構成するものである。
【0272】
ここで、集合E1、E2はそれぞれ、非同期要素の入力信号に信号値が伝搬するイベント実行単位の集合、非同期要素の出力信号から信号値が伝搬するイベント実行単位の集合である。
【0273】
(手順6−1a)各イベント実行単位を入力側からの最長パスの順にレベル付けする。
【0274】
(手順6−2a)イベント実行単位間の起動関係をもとに集合E1、E2を求める。
【0275】
(手順6−3a)GR1、GR2、GR3を空集合、Eを非同期要素を除くすべてのイベント実行単位からなる集合、E3をEからE1、E2を引いた集合とする。
【0276】
(手順6−4a)Eが空集合ならば(手順6−6a)へ行く。そうでなければ、Eからレベルの一番小さいイベント実行単位Tを選ぶ。
【0277】
(手順6−5a)TがEiに含まれていれば、GRi に取り込む(i=1、2、3)。EからTを除き(手順6−4a)に戻る。
【0278】
(手順6−6a)終了する。イベント実行単位のグループGRi (i=1、2、3)がそれぞれ信号演算簡略化の範囲である。
【0279】
図46に示した論理回路に対し上記の手続きを適用した結果の一例を図51に示す。
【0280】
(手順6−2a)によりE1、E2はそれぞれ{p1}、{p5}になる。(手順6−4a)および(手順6−5a)により、GR1、GR2、GR3はそれぞれ{p1}、{p5}、{p2、p4}になる。
【0281】
図51の701、702、703はそれぞれGR1、GR2、GR3を表している。
【0282】
なお、上記手続きで、E3をE1あるいはE2と同一視させ、GR1、GR2、GR3の代わりに2つのグループを構成することもできる。
【0283】
ここでは簡単のため、非同期要素が1つの場合について説明したが、非同期要素が複数存在する場合にも、上記の手続きを拡張して対応することは可能である。
【0284】
ところで、非同期要素としてラッチを用いて説明したが、ラッチ以外の非同期要素についても、同様の方法を適用することができる。
【0285】
図52、図55、図57に、非同期要素を含むVHDL記述の例を示す。
【0286】
図52の記述におけるプロセスは、論理合成不可であり、図53、図54に示す回路機能を交互に持つ働きを持っている。すなわち、図53、図54に示す信号A、Bの入力タイミングに応じて出力信号Xの出力動作が異なるため、動的にレベルが変わるので、非同期要素となる。
【0287】
図55の記述は、図56に示すように、非同期ループを構成するため、その構成要素であるプロセスはすべてレベルが確定しない。したがって、非同期要素と判定される。
【0288】
図57の記述は、自己ループを含むプロセスである。図57を回路図で示したのが、図58である。自分自身が何回起動されるかにより、レベルが変化するため、非同期要素と判定される。
【0289】
(6−2)論理シミュレーション装置
次に、第6の実施形態に係る回路変換装置を備えた論理シミュレーション装置の実施形態について説明する。
【0290】
本実施形態に係る論理シミュレーション装置は、図59に示すように、前述した第6の実施形態の論理回路変換装置601の持つ非同期要素判定部510、信号演算簡略化範囲決定部520及び信号演算簡略化実行部530に、さらに、与えられた論理回路記述をもとに論理シミュレーションを実行する論理シミュレーション部590を付加するものである。論理シミュレーション部590としては、公知のものを使用する。
【0291】
回路変換装置601によって論理シミュレーション対象となる論理回路記述を信号演算の簡略化された信号演算処理量の少ない論理回路記述に変換し、変換後の論理回路記述を入力として論理シミュレーション部590により論理シミュレーションを実行する。
【0292】
このように公知の論理シミュレーション部590の前段に論理回路記述の信号演算を簡略化する回路変換装置601を設けることによって、高速に論理シミュレーションを実行する論理シミュレーション装置を実現することができる。
【0293】
(第7の実施形態)
(7−1)論理回路変換方法およびそれを用いた論理回路変換装置
第7の実施形態に係る論理回路変換装置は、論理回路中の非同期要素を判定する非同期要素判定部、簡略化を適用する範囲を指定する簡略化適用範囲指定部、非同期要素を除いた範囲に限定して信号演算処理の簡略化を適用する範囲を決定する信号演算簡略化範囲決定部、決定された範囲に対して信号演算処理の簡略化を実行する信号演算簡略化実行部を備えている。
【0294】
本実施形態によれば、非同期要素判定部によって求められた非同期要素を除いた範囲と、簡略化適用範囲指定部で指定された範囲をもとに、信号演算処理の簡略化の範囲を決定し、決定された範囲に対して信号演算簡略化実行指定部が信号演算処理の簡略化を実行することができ、入力された非同期回路から信号演算が簡略化された回路を得ることができ、設計者が観測したい信号を避けるように、信号の簡略化が可能になる。
【0295】
以下、本実施形態についてより詳しく説明する。
【0296】
図60は、本実施形態に係る論理回路変換装置602の構成を示す図である。
【0297】
論理回路変換装置602は、非同期部分判定部510、信号演算簡略化範囲決定部521、信号演算簡略化実行部530、および簡略化適用範囲指定部540を備えている。非同期要素判定部510および信号演算簡略化実行部530は、第6の実施形態と同様である。
【0298】
非同期要素判定部510は、入力された論理回路記述900中のイベント実行単位(イベントドリブン法での処理単位)のうち、非同期要素であるものを判定する。
【0299】
ここで本実施形態では、ユーザは、簡略化適用範囲指定部540から範囲指定データ905を入力して、回路中で信号演算の簡略化を適用させる範囲を指定する。範囲データ905として、例えば、図61に示す処理対象の回路のうち、範囲を表すデータ(例えばイベント実行単位を特定するデータp1、p2等)を直接入力するようにしてもよいし、範囲を直接表すデータに対応付けられたID番号等をキー入力してもよいし、あるいは表示されたメニュー画面のリストから選択入力するようにしてもよい。
【0300】
信号演算簡略化範囲決定部521は、非同期要素判定部510で判定された非同期要素と、簡略化適用範囲指定部540で指定された範囲を基に、論理回路900中のどのイベント実行単位同士をどのような順番でグループ化すれば信号演算を簡略化できるかを判定し、グループ化すべきイベント実行単位の範囲を決定する。
【0301】
信号演算簡略化実行部530は、信号演算簡略化範囲決定部521によって決定された記述範囲のそれぞれに、イベント実行単位をまとめる操作を適用し、信号演算処理の簡略化を行う。
【0302】
本実施形態に係る論理回路変換装置602に用いられた論理回路変換方法を簡単な例で説明する。
【0303】
入力回路の回路図として図46を再び用いる。ここで、入力回路は、HDL記述でもネットリストで表現しても構わない。
【0304】
ここで、例えばユーザが信号Iを信号のまま観測したい場合、範囲指定データ905を{p1、p2、p3、p4}として、p5は指定に含まないように、p1、p2、p3、p4のみ指定する。
【0305】
なお、ここでは、イベント実行単位の名前で指定しているが、各イベント実行単位に一意的なIDを付与し、IDで指定してもよい。また、イベント実行単位を並べて指定する代わりに、例えばある階層を指定し、その階層から下のすべてのイベント実行単位を指すことにしてもよい。
【0306】
図46あるいは図47の記述を論理回路変換装置602に入力すると、非同期要素判定部510は、p3を非同期要素として判定する。
【0307】
信号演算簡略化範囲決定部521は判定された非同期要素をもとに、イベント実行単位のグループ化によって信号演算の簡略化が可能な範囲を決定する。この範囲の決定は、例えば以下のステップで実現できる。
【0308】
(手順7−1)各イベント実行単位を入力側からの最長パスの順にレベル付けする。
【0309】
(手順7−2)GRを空集合、Eを非同期要素を除くイベント実行単位からなる集合とする。
【0310】
(手順7−3)Eが空集合ならば(手順7−5)へ行く。そうでなければ、Eからレベルの一番小さいイベント実行単位Tを選ぶ。
【0311】
(手順7−4)Tが簡略化適用範囲指定部で指定された範囲中にあればGRに取り込む。EからTを除き(手順7−3)に戻る。
【0312】
(手順7−5)終了する。イベント実行単位のグループGRが信号演算簡略化の範囲である。
【0313】
図46に示した論理回路に対し上記の手続きを適用した結果の一例を図61に示す。
【0314】
(手順7−1)により、イベント実行単位p1、p2、p3、p4、p5にそれぞれレベル1、レベル1、レベル2、レベル2、レベル3が付与され、(手順7−3)、(手順7−4)によりp1、p2、p4の順にGRに取り込まれる。ここで、p5は簡略化適用範囲指定部540による指定に含まれていないので、GRには取り込まれない。従って、信号演算簡略化の範囲は、{p1、p2、p4}となる(図61中705)。
【0315】
信号演算簡略化実行部530は、信号演算簡略化範囲決定部521によって決定された範囲のイベント実行単位のグループを1つのイベント実行単位にまとめる。これは、第6の実施形態の(手順6−A)および(手順6−B)により実現できる。
【0316】
なお、第6の実施形態の図49、図50に対応する結果(変換結果を表すブロック図、VHDL記述)は省略する。
【0317】
信号演算簡略化実行部530によって信号演算が簡略化された記述は、論理回路記述52として出力される。
【0318】
なお、出力回路は図面、ネットリスト、HDL記述のいずれでも構わない。また、HDLもVHDLに限るものではない。
【0319】
このようにして、信号演算簡略化の範囲を指定して得られた回路記述では、設計者が観測したい信号を避けて信号演算の簡略化を適用することができる。また、信号演算簡略化を適用した範囲については、第6の実施形態と同様に、シミュレーション実行に要する処理量が低減された回路を得ることができる。
【0320】
なお、第6の実施形態で述べたものと同様に、簡略化を適用する範囲に対するグループを複数にすることも可能である。
【0321】
(7−2)論理シミュレーション装置
次に、第7の実施形態に係る回路変換装置を備えた論理シミュレーション装置の実施形態について説明する。
【0322】
本実施形態に係る論理シミュレーション装置は、図62に示すように、前述した第7の実施形態の論理回路変換装置602の持つ非同期要素判定部510、信号演算簡略化範囲決定部521、信号演算簡略化実用部530及び簡略化適用範囲指定部540に、さらに、与えられた論理回路記述をもとに論理シミュレーションを実行する論理シミュレーション部590を付加したものである。論理シミュレーション部590としては、公知のものを使用する。
【0323】
ユーザの観測したい信号を簡略化適用範囲から除外した範囲指定データが与えられた論理回路変換装置602は、該範囲指定データに基づいて論理シミュレーション対象となる論理回路記述を、信号演算の簡略化された信号演算処理量の少ない論理回路記述に変換し、変換後の論理回路記述を入力として論理シミュレーション部590により論理シミュレーションを実行する。従って、ユーザの観測したい信号を残した上で、論理シミュレーションの実行を高速化することができる。
【0324】
このように公知の論理シミュレーション部590の前段にユーザ指定に基づいて論理回路記述の信号演算を簡略化する論理回路変換装置602を設けることによって、デバッグ機能を低下させることなく、高速に論理シミュレーションを実行する論理シミュレーション装置を実現することができる。
【0325】
(第8の実施形態)
(8−1)論理回路変換方法およびそれを用いた論理回路変換装置
第8の実施形態に係る論理回路変換装置は、論理回路中の非同期要素を判定する非同期要素判定部、非同期要素を除いた範囲に限定して信号演算処理の簡略化を適用する範囲を決定する信号演算簡略化範囲決定部、信号演算処理の簡略化を実行する範囲をハイライト表示(強調表示)として視覚的に区別できるように表示するハイライト表示部、決定された範囲に対して信号演算処理の簡略化を実行する信号演算簡略化実行部を備えている。
【0326】
本実施形態によれば、非同期要素判定部によって求められた非同期要素を除いた範囲に限定して信号演算処理の簡略化を適用する範囲を決定し、信号演算処理の簡略化が決定された範囲、あるいは、非同期要素と判定された範囲がハイライト表示されることにより、信号演算処理の簡略化を実行する前に、ユーザに対し非同期要素の回路部分を提示し、それを基に、ユーザが、より非同期要素の少ない回路に書き換えることができ、従って、入力された非同期回路から信号演算処理が簡略化された回路を得ることが可能になり、より非同期要素が少ない回路を得ることを容易にする。
【0327】
以下、本実施形態についてより詳しく説明する。
【0328】
図63は、本実施形態に係る論理回路変換装置603の構成を示す図である。
【0329】
論理回路変換装置603は、非同期部分判定部510、信号演算簡略化範囲決定部522、信号演算簡略化実行部530、およびハイライト表示部550を備えている。非同期要素判定部510および信号演算簡略化実行部530は、第6の実施形態と同様である。
【0330】
非同期要素判定部510は、入力された論理回路記述900中のイベント実行単位(イベントドリブン法での処理単位)のうち、非同期要素であるものを判定する。
【0331】
信号演算簡略化範囲決定部522は、非同期要素判定部510で非同期要素と判定されたイベント実行単位を除いた範囲について、論理回路900中のどのイベント実行単位同士をどのような順番でグループ化すれば信号演算を簡略化できるかを判定し、グループ化すべきイベント実行単位の範囲を決定する。また、決定された範囲を示す情報をハイライト表示部550に送る。
【0332】
なお、信号演算を簡略化できると判断された範囲を示す情報を送る代わりに、あるいは、それとともに、非同期要素判定部510で判定された非同期要素を示す情報をハイライト表示部550に送るようにしてもよい。
【0333】
ハイライト表示部50は、信号簡略化範囲決定部22によって決定された記述範囲のそれぞれをハイライト表示する。ハイライト表示は、所定の表示装置に表示された回路図上で行ってもよいし、同じく所定の表示装置に表示されたVHDLソースコード上で行ってもよい。また、各イベント実行単位をノード、イベント実行単位間を伝搬する信号をエッジとするグラフとして表現したものを所定の表示装置に表示し、そのグラフ上でハイライト表示を行ってもよい。
【0334】
ハイライト表示(強調表示)の方法としては、信号簡略化の範囲に対応するイベント実行単位に対して、色付け、影付け、輪郭の太さや形の変更、点滅表示、マーク付けなどのいずれを行ってもよい。逆に、信号簡略化の範囲以外のイベント実行単位に上記の操作を施してもよい。
【0335】
信号演算簡略化実行部530は、信号演算簡略化範囲決定部522によって決定された記述範囲のそれぞれに、イベント実行単位をまとめる操作を適用し、信号演算処理の簡略化を行う。
【0336】
本実施形態に係る回路変換装置603に用いられた論理回路変換方法を簡単な例で説明する。
【0337】
図64、図65はそれぞれ、入力回路の回路図、対応するVHDL記述である。図64は、図46におけるラッチ回路p3を図58に示すような自己ループを含む非同期要素p3aに置き換えたものである。同様に図65は、図47におけるラッチ回路p3の記述を図57に示すような、非同期要素p3aの記述に置き換えたものである。ここで、入力回路はネットリストで表現しても構わない。
【0338】
図64あるいは図65の記述を論理回路変換装置603に入力すると、非同期要素判定部510は、p3aを非同期要素として判定する。
【0339】
信号演算簡略化範囲決定部522は判定された非同期要素をもとに、イベント実行単位のグループ化によって信号演算の簡略化が可能な範囲を決定する。この範囲の決定は、例えば第6の実施形態の(手順6−1)〜(手順6−5)によって実現できる。
【0340】
図64に示した論理回路に対し上記の手続きを適用した結果の一例を図66に示す。すなわち、図66に示すように、信号範囲化適用範囲は{p1、p2、p4、p5}となる(図中707)。
【0341】
図67は、図66に示したような信号簡略化適用範囲のハイライト表示例を示したものである。ここでは、イベント実行単位である回路素子をハッチ(影付け)してハイライト表示を行っている。
【0342】
なお、信号簡略化適用範囲の代わりに、非同期要素判定部510から送られた非同期要素を示す情報を基に非同期要素をハイライト表示してもよい。図68は、図66の非同期要素と判定された回路部分(イベント実行単位p3a)のハイライト表示例を示したものである。また、図69に示すように、図65のソースコード上の信号簡略化適用範囲に相当する箇所をハイライト表示してもよい。
【0343】
ユーザは、所定の表示装置に表示された図67〜図69のいずれかのハイライト表示を見ることにより、イベント実行単位p3aが非同期要素と特定することができる。
【0344】
このとき、ユーザが図65のVHDL記述を見直して、イベント実行単位p3aの書き換えが可能であると判断し、図70に示すように、入力VHDL記述中のイベント実行単位p3aをそれと等価なイベント実行単位p31、p32に書換えたとする。図70に示したような入力VHDL記述に対応する回路図を図71に示す。
【0345】
このようにして書換えられた図70あるいは図71に示す入力回路を再び回路変換装置603に入力すると、非同期要素判定部510は、入力回路中に非同期要素は含まれていない、と判定する。したがって、例えば第6の実施形態で説明した(手順6−1)〜(手順6−5)の手順に従って、信号演算簡略化範囲決定部522は、信号演算簡略化範囲を図72に示すように{p1、p2、p31、p4、p32、p5}と決定する(図中709)。
【0346】
信号演算簡略化実行部530は、信号演算簡略化範囲決定部522で決定された範囲のイベント実行単位のグループを1つのイベント実行単位にまとめる。これは、第6の実施形態の(手順6−A)および(手順6−B)により実現できる。
【0347】
なお、第6の実施形態の図49、図50に対応する結果(変換結果を表すブロック図、VHDL記述)は省略する。
【0348】
信号演算簡略化実行部530によって信号演算が簡略化された記述は、論理回路記述903として出力される。
【0349】
なお、出力回路は図面、ネットリスト、HDL記述のいずれでも構わない。また、HDLもVHDLに限るものではない。
【0350】
このようにして、ハイライト表示により非同期要素の存在をユーザに喚起することによって、ユーザが非同期要素を含む回路を、非同期要素が少ない等価な回路に置き換えることが可能になる。このようにして得られた入力回路から、第6の実施形態で述べた方法を用いて、シミュレーション実行に要する処理量が低減された回路を効率的に得ることができる。
【0351】
なお、第6の実施形態で述べたのと同様に、簡略化を適用する範囲に対するグループを複数にすることも可能である。この場合、各グループを区別してハイライト表示をするために、異なる色付けをしたり、影付けの濃淡を変化させてもよい。
【0352】
(8−2)論理シミュレーション装置
次に、第8の実施形態に係る回路変換装置を備えた論理シミュレーション装置の実施形態について説明する。
【0353】
本実施形態に係る論理シミュレーション装置は、図73に示すように、前述した第8の実施形態の論理回路変換装置603の持つ非同期要素判定部510、信号演算簡略化範囲決定部522、信号演算簡略化実行部530及びハイライト表示部550に、さらに、与えられた論理回路記述をもとに論理シミュレーションを実行する論理シミュレーション部590を付加したものである。論理シミュレーション部590としては、公知のものを使用する。
【0354】
回路変換装置603は論理シミュレーション対象となる論理回路記述を、信号演算の簡略化された信号演算処理量の少ない論理回路記述に変換し、変換後の論理回路記述を入力として論理シミュレーション部590により論理シミュレーションを実行する。従って、ユーザが非同期要素を特定する機能を持ちつつ、論理シミュレーションの実行を高速化することができる。
【0355】
このように公知の論理シミュレーション部590の前段にユーザ指定に基づいて論理回路記述の信号演算を簡略化する回路変換装置3を設けることによって、信号演算処理の簡略化を実行する前にユーザが非同期要素を特定することができ、高速に論理シミュレーションを実行する論理シミュレーション装置を実現することができる。
【0356】
(第9の実施形態)
図74に示す第2の発明に係る論理回路変換装置の構成例は、図45の論理回路変換装置をより詳細に示したものである。すなわち、図45の非同期要素判定部510は、より具体的には、第1の発明に係る回路接続情報解析部10と、非同期要素判定部810から構成されている。なお、図1と同一部分には同一符号を付し、異なる部分について説明する。
【0357】
回路接続情報解析部10は、前述の第1の発明と同様、入力された論理回路記述900における回路接続情報として、イベント実行単位(イベントドリブン法での処理単位)間の起動関係、すなわちイベント実行単位と信号との接続関係を解析する。
【0358】
非同期要素判定部810は、回路接続情報解析部10で解析された論理回路記述900中のイベント実行単位(イベントドリブン法での処理単位)のうち、非同期要素であるものを判定する。
【0359】
信号演算簡略化範囲決定部520は、回路接続情報解析部10で解析された回路接続情報を基に、非同期要素判定部510で非同期要素と判定されたイベント処理単位を除いた範囲について、回路900中のどのイベント実行単位同士をどのような順番でグループ化すれば信号演算を簡略化できるかを判定し、グループ化すべきイベント実行単位の範囲を決定する。
【0360】
なお、第2の発明に係る論理シミュレーション装置の非同期要素判定部510も図74と同様に、回路接続情報解析部10と非同期要素判定部810から構成される。
【0361】
(第6〜第9の実施形態の作用・効果)
以上説明したように、上記第6〜第9の実施形態に係る論理回路変換装置601によれば、入力された倫理回路900を解析して非同期要素を判定し、非同期要素を除いた範囲に限定して信号演算処理の簡略化を実行することにより、非同期要素を含む論理回路に対しても、より少ない信号演算量の論理回路を得ることができる。また、論理回路変換装置601で得られた回路を論理シミュレーション部の入力とすることで、論理シミュレーション実行に要する時間を低減した論理シミュレーション装置が実現できる。
【0362】
なお、第1の発明に係る論理回路変換装置の信号演算簡略化範囲決定部20と第2の発明に係る論理回路変換装置の信号演算簡略化範囲決定部520、第1の発明に係る論理回路変換装置の信号演算簡略化実行部30と第2の発明に係る論理回路変換装置の信号演算簡略化実行部530は、それぞれ、ほぼ同一の処理動作を行うものである。
【0363】
【発明の効果】
本発明によれば、解析手段によって解析された回路接続情報を基に、決定手段が信号演算処理の簡略化を行う範囲を決定し、決定された範囲に対して簡略化手段が信号演算処理の簡略化を実行すことで、入力論理回路を、信号演算処理が簡略化された論理回路に変換することができる。そして、この信号演算が簡略化された論理回路により、高速な論理シミュレーションが実行可能になる。
【0364】
本発明によれば、入力された論理回路中の信号処理フローの解析結果をもとに決定した箇所にイベント判定論理を挿入することで、入力論理回路を、イベントが生じない場合に本来実行する必要のない論理演算処理部分の実行を省略可能な論理回路に変換することができる。そして、このイベント判定論理を挿入された論理回路により、高速な論理シミュレーションが実行可能になる。
【0365】
また、本発明によれば、非同期要素を含む論理回路に対しても、より信号演算量の少ない論理回路を得ることができ、この信号演算処理の簡略化された論理回路に基づき高速な論理シミュレーションが実行可能となる。
【図面の簡単な説明】
【図1】本発明の第1の実施形態に係る論理回路変換装置の構成を示す図
【図2】入力回路の一例を示す回路図
【図3】図2の回路図に対応する論理のVHDL記述の一例を示す図
【図4】イベント実行単位と信号間の接続関係データの一例を示す図
【図5】信号演算簡略化範囲決定結果の一例を示す図
【図6】論理回路変換結果例を示すブロック図
【図7】論理回路変換結果例のVHDL記述を示す図
【図8】論理回路変換結果例の回路接続グラフを示す図
【図9】本実施形態に係る論理シミュレーション装置の構成を示す図
【図10】本発明の第2の実施形態に係る論理回路変換装置の構成を示す図
【図11】入力回路の一例を示す回路図
【図12】図11の回路図に対応する論理のVHDL記述の一例を示す図
【図13】イベント実行単位と信号間の接続関係データの一例を示す図
【図14】信号演算簡略化範囲決定結果の一例を示す図
【図15】本実施形態に係る論理シミュレーション装置の構成を示す図
【図16】本発明の第3の実施形態に係る論理回路変換装置の構成を示す図
【図17】入力回路の一例を示す回路図
【図18】図17の回路図に対応する論理のVHDL記述の一例を示す図
【図19】イベント実行単位と信号間の接続関係データの一例を示す図
【図20】イベント実行単位に対する機能情報の一例を示す図
【図21】信号演算簡略化範囲決定結果の一例を示す図
【図22】論理回路変換結果例を示すブロック図
【図23】論理回路変換結果例のVHDL記述を示す図
【図24】論理回路変換結果例の回路接続グラフを示す図
【図25】本実施形態に係る論理シミュレーション装置の構成を示す図
【図26】本発明の第4の実施形態に係る論理回路変換装置の構成を示す図
【図27】入力回路の一例を示す回路図
【図28】C言語を用いた論理回路記述の一例を示す図
【図29】回路接続データの一例を示す図
【図30】イベント判定論理挿入箇所決定結果の一例を示す図
【図31】イベント判定論理が挿入された論理回路記述の一例を示す図
【図32】入力回路の一例を示す回路図
【図33】イベント判定論理挿入条件を満たさない回路の一例を示す回路図
【図34】イベント判定論理挿入箇所決定部312における処理の一例を示すフローチャート
【図35】イベント判定論理が入れ子で挿入される回路の一例を示す図
【図36】論理回路変換装置の他の構成例を示す図
【図37】論理回路変換装置のさらに他の構成例を示す図
【図38】論理回路変換装置のさらに他の構成例を示す図
【図39】実行履歴情報の一例を示す図
【図40】実行履歴情報の他の例を示す図
【図41】本発明の第5の実施形態に係る論理シミュレーション装置の構成を示す図
【図42】論理シミュレーション装置の他の構成例を示す図
【図43】論理シミュレーション装置のさらに他の構成例を示す図
【図44】論理シミュレーション装置のさらに他の構成例を示す図
【図45】本発明の第6の実施形態に係る論理回路変換装置の構成例を示す図
【図46】入力論理回路の一例を示す回路図
【図47】図46の回路図に対応する論理のVHDL記述の一例を示す図
【図48】信号演算簡略化範囲決定結果の一例を示す図
【図49】論理回路変換結果例を示すブロック図
【図50】論理回路変換結果例のVHDL記述を示す図
【図51】信号演算簡略化範囲決定結果の他の例を示す図
【図52】非同期要素例のVHDL記述を示す図
【図53】図52のVHDL記述に対応する回路図の一例を示す図
【図54】図52のVHDL記述に対応する回路図の他の例を示す図
【図55】非同期要素例のVHDL記述を示す図
【図56】図55のVHDL記述に対応する回路図
【図57】非同期要素例のVHDL記述を示す図
【図58】図57のVHDL記述に対応する回路図
【図59】第6の実施形態に係る論理シミュレーション装置の構成を示す図
【図60】本発明の第7の実施形態に係る回路変換装置の構成を示す図
【図61】信号演算簡略化範囲決定結果の一例を示す図
【図62】第7の実施形態に係る論理シミュレーション装置の構成を示す図
【図63】本発明の第8の実施形態に係る回路変換装置の構成を示す図
【図64】入力論理回路の一例を示す回路図
【図65】図64の回路図に対応する論理のVHDL記述の一例を示す図
【図66】信号演算簡略化範囲決定結果の一例を示す図
【図67】信号演算簡略化範囲のハイライト表示の一例を示す図
【図68】信号演算簡略化範囲のハイライト表示の他の例を示す図
【図69】信号演算簡略化範囲のハイライト表示のさらに他の例を示す図
【図70】書換え後の入力回路のVHDL記述を示す図
【図71】図26のVHDL記述に対応する回路図
【図72】信号演算簡略化範囲決定結果を示す図
【図73】第8の実施形態に係る論理シミュレーション装置の構成を示す図
【図74】本発明の第9の実施形態に係る論理回路変換装置の構成例に係り、図45の論理回路変換装置をより詳細に示した図
【符号の説明】
1、2、3…論理回路変換装置
10…回路接続情報解析部
20、21、22…信号演算簡略化範囲決定部
30…信号演算簡略化実行部
40…簡略化適用範囲指定部
50…回路機能判定部
90…論理シミュレーション部
310、400、401、402…論理回路変換装置
311…信号処理フロー解析部
312、318、319…イベント判定論理挿入箇所決定部
313…イベント判定論理挿入部
316…イベント判定論理削除部
317…イベント判定論理挿入範囲指定部
321、330…シミュレーション実行部
331…実行履歴情報収集部
501、502、503、504…論理シミュレーション装置
510…非同期要素判定部
520…信号演算簡略化範囲決定部
530…信号演算簡略化実行部
540…簡略化適用範囲指定部
550…ハイライト表示部
590…論理シミュレーション部
601、602、603…論理回路変換装置
900…論理回路記述(入力論理回路)
901、902、903…論理回路記述(出力論理回路)
905…範囲指定データ
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a logic circuit conversion method for a digital circuit (logic circuit) and a logic simulation apparatus (logic circuit design support apparatus).
[0002]
[Prior art]
In designing a computer system or LSI, it is indispensable to shorten the development period by verifying a designed circuit by a logic simulation and finding a deficiency in design logic at an early stage.
[0003]
On the other hand, with the recent increase in the degree of integration of LSIs, LSIs or computer systems using these components are becoming larger and more complex. The time required for the logic simulation increases in proportion to the circuit scale to be verified. At present, the execution speed of the logic simulator is, for example, about several clocks / second for a circuit of 1000K gate scale, and therefore, processing of 1 clock / second or less can be performed for a 1M gate circuit. For this reason, it takes enormous time to simulate a large-scale circuit. Therefore, in a large-scale LSI, it is difficult to perform design verification by simulation using a sufficiently long test vector. In particular, considering the case where a defect is discovered after the LSI is manufactured, the increase in cost and the time required for development, such as correction and re-verification of design logic, is extremely large. For this reason, designers are further demanded to realize a high-speed logic simulator.
[0004]
A logic simulator is usually implemented in software. A logic circuit verified by a logic simulator implemented by software is often expressed using a language suitable for execution of software. For example, high-level languages represented by C language and assembly language. In recent years, many logic simulators that use logic circuits described in a hardware description language (HDL) such as VHDL and Verilog-HDL have appeared. Most of these logic simulators execute the internal conversion of the input circuit into a circuit description written in the corresponding C language or assembly language, and devise a conversion method to a computer language or optimize the description after conversion. As a result, simulation speeds up. However, the speeding up by this type of logic simulator is merely due to a device in the HDL processing method, and does not reduce the amount of calculation itself required for executing the circuit simulation.
[0005]
The logic simulator as described above usually executes simulation by an event driven method. The event-driven method is a method in which a circuit is divided into operation units of an appropriate size, and each operation unit executes processing only when a value change (event) occurs in any of its input signals. Signal values are used to pass values between event execution units (event-driven processing units). A general simulation execution procedure in the event-driven method is as follows.
[0006]
(Procedure 1) The circuit is initially executed.
[0007]
(Procedure 2) An event occurs in the signal.
[0008]
(Procedure 3) For each signal in which an event has occurred, the event execution unit of the output destination of the signal is registered in the event queue.
[0009]
(Procedure 4) Evaluation execution of event execution units registered in the event queue is performed. If a new event has occurred, the process returns to step 3.
[0010]
(Procedure 5) Advance the time until the next event occurs, and return to Procedure 2. If there is no such time, it ends.
[0011]
Here, when the event execution unit is configured by a small circuit, a plurality of input signals to a certain event execution unit are often evaluated in different event execution units. In such a case, if the timing at which the event of each input signal occurs shifts, the same event execution unit is evaluated many times in one simulation cycle. In addition, the amount of signal processing computation related to the exchange of values between event execution units, the number of event execution units registered in the event queue, and the number of times the registered event queue is taken out increase.
[0012]
As described above, when the event execution unit is configured by a small-scale circuit, the amount of calculation required to execute the simulation increases.
[0013]
In general, a circuit described at a register transfer level (RTL) on the premise of logic synthesis takes into consideration the parallelism of hardware, and from a number of parts that can be executed in parallel with an arithmetic function of an appropriate size as a unit. It is configured. The gate level circuit is also described in units of small circuit elements such as AND and OR. For this reason, the circuit described at the RTL and the gate level has a problem that the amount of signal calculation processing is much larger than that of an operation level circuit that does not assume logic synthesis, and it takes a lot of time to execute the simulation. was there.
[0014]
Next, another problem will be described.
[0015]
The logic circuit verified by the logic simulator implemented by software as described above is a language suitable for software execution, such as C language, high-level language represented by assembly language, and hardware description language represented by VHDL and VerilogDHL. It is often expressed using.
[0016]
When these languages are used, the value of each signal in the logic circuit is expressed by a variable, and the propagation of the signal is described by an assignment statement to a variable corresponding to the signal. The logic simulator simulates signal processing in the circuit by executing these assignment statements for each simulation cycle.
[0017]
There is an exhaust method as one of logic simulation methods. In this method, signal processing assignment statements are executed in order in each simulation cycle. When an assignment statement is executed, it is checked whether or not the signal value is the same as that before execution of the assignment statement for all signals. Execute a process assignment statement. When this process is repeated and all signal values are determined, the process proceeds to the next simulation cycle.
[0018]
Here, consider a case in which the circuit shown in FIG. 32 is simulated using a logic simulator based on the exhaust method.
[0019]
32, A, B, C, D, X0,..., Xn, Y0,..., Yn represent signals, and F0,. Here, let us consider a case where both signals A and B have not changed from the values in the previous simulation cycle (an event has not occurred). If no event occurs in the signals A and B, the values of the signals X0 and Y0 do not change (no event occurs), and the signals C and D as final outputs do not change from the values in the previous simulation cycle. Here, since the values of the signals C and D are already stored in the corresponding variables, it should not be necessary to substitute these variables again.
[0020]
However, in the exhaust method, even if there is no change in the input signal value in this way, a series of signal substitution processes are executed, so that useless calculation occurs. In the example of FIG. 32, 2n + 2 unnecessary signal substitution processes are executed.
[0021]
In a normal logic circuit, it is said that the portion where an event occurs in a signal is about 10% of the whole on average. Thus, in the exhaust method, useless signal substitution processing increases, which leads to a decrease in simulation efficiency.
[0022]
Another logic simulation method is the event-driven method described above. In this method, an arithmetic function having an appropriate size is used as an event execution unit, and signal substitution processing in the event execution unit is performed only when an event occurs in any of the input signals to the arithmetic function. Which event execution unit is executed in the current simulation cycle is managed using a time wheel or an event queue.
[0023]
Suppose that F0,..., Fn are event execution units in FIG. 32 and a logic simulation is executed using an event-driven logic simulator.
[0024]
If no event has occurred in either of the signals A and B, the event execution unit F1 having these as inputs is not activated, and therefore the signal substitution process in F1 is not performed. Similarly, the event execution units from F2 to Fn are not executed.
[0025]
For this reason, the event-driven method has a feature that an efficient simulation can be realized without performing a useless signal substitution process as in the exhaust method.
[0026]
However, in the event-driven method, the process for managing the event is complicated, and the overhead associated therewith is large. Event management is usually implemented using an event queue, but at this time, the following operations are required.
[0027]
・ Retrieving event execution units from the event queue
-Check whether an event has occurred in a certain signal
-Scanning event execution units triggered by the signal
・ Registering scanned event execution units to the event queue
In order to realize these processes, the logic simulator program using the event driven method is necessarily complicated. Furthermore, the overhead of execution time required for these operations is large.
[0028]
Furthermore, when the size of the event execution unit described in the logic circuit is inappropriate, the event-driven method may cause the same problem as the exhaust method.
[0029]
In the example of FIG. 32, it is assumed that the arithmetic functions F0 to Fn are described as the same event execution unit. Here, consider a case where an event has occurred in one of the signals A and B but no event has occurred in the signals X0 and Y0. At this time, only the signal substitution process for the signals X0 and Y0 is necessary, but all the other 2n signal substitution processes in the event execution unit are also performed.
[0030]
As described above, in the simulation by the logic simulator using the conventional exhaust method or the event driven method, it is not always possible to execute an efficient simulation. This is because the conventional logic simulator executes the signal processing flow described in a given logic circuit as it is, and thus has an overhead of executing a signal substitution process that is not originally required. .
[0031]
[Problems to be solved by the invention]
As described above, the circuit described at the RTL and the gate level has a much larger amount of signal calculation processing than the circuit at the operation level that does not assume the logic synthesis, but the speedup by the conventional logic simulation is only the HDL. This is due to the contrivance in the processing method, and does not reduce the calculation amount itself of the circuit description as mentioned above. Therefore, when a circuit described at the RTL or gate level is simulated using the event driven method, there is a problem that it takes a long time to execute the simulation.
[0032]
The present invention has been made in consideration of the above circumstances, and even when the event execution unit is composed of a small-scale circuit, by converting the circuit description so that the signal calculation amount is reduced, It is an object of the present invention to provide a logic circuit conversion method, a logic simulation apparatus, and a logic circuit design support apparatus that can reduce the time required for simulation execution.
[0033]
Further, in the conventional logic simulator, since the signal processing flow in the given logic circuit is executed as it is, there is an overhead of executing a signal substitution process that does not need to be originally executed.
[0034]
The present invention has been made in consideration of the above circumstances, and a logic circuit conversion method and logic circuit capable of reducing the time required for simulation execution by reducing unnecessary signal substitution processing during simulation. An object is to provide a design support apparatus.
[0035]
[Means for Solving the Problems]
  Main departureA clear logic circuit converter is a logic circuit converter that converts an input logic circuit described in a VHDL hardware description language into a logic circuit for VHDL logic simulation, and performs a plurality of signal operations. A first means for obtaining circuit connection information including a connection relationship between the plurality of event execution units and signals based on a description of the input logic circuit including the event execution unit; and an asynchronous element in the input logic circuit. Of the plurality of event execution units included in the excluded part, a second means for specifying a plurality of event execution units to be grouped, and the specified plurality of event execution units as targets, Based on the circuit connection information, leveling the event execution units so that the level is increased in order from the longest path from the input side. In addition, it is determined whether the function of each event execution unit is a clock generation circuit, a register, a latch, or a combinational circuit. Starting from the input side, based on the determined function, a plurality of functions are arranged in ascending order of the level. A third means for obtaining a plurality of groups in which the event execution units are combined into one, and a signal to be performed in the event execution units in the group by substituting an input signal to the group for each of the plurality of groups For the arithmetic processing, a first assignment statement in which the signal operation processing result is output only to the event execution unit in the group is obtained based on the circuit connection information, and the first assignment statement is obtained in the group. The logical operation result executed in the event execution unit is rewritten to a second assignment statement that is output as a VHDL variable, and the signal operation is performed based on the circuit connection information. A third assignment statement whose processing result is output to both the event execution unit in the group and outside the group is obtained, and the logical operation result executed in the event execution unit in the group is obtained from the third assignment statement. The fourth assignment statement that is output as a variable of VHDL and the fifth assignment statement that performs signal operation using the variable as an input and the output signal of the third assignment statement as an output are rewritten as the first assignment statement. As an input signal to the sixth assignment statement for a sixth assignment statement that performs a VHDL signal operation or a VHDL logic operation executed in the event execution unit in the group as an input signal. The output signal of the first assignment statement is rewritten to a variable that is the output of the second assignment statement, and the output signal of the third assignment statement is executed as an input signal for each event execution unit in the group. Output signal of the third assignment statement that is included as an input signal to the seventh assignment statement for the seventh assignment statement that performs VHDL signal operation or VHDL logic operation. And a fourth means for rewriting the output variable..
[0071]
DETAILED DESCRIPTION OF THE INVENTION
(First invention)
Embodiments of the first invention will be described below with reference to the drawings.
[0072]
(First embodiment)
The logic circuit conversion device according to the present embodiment includes a circuit connection information analysis unit that analyzes circuit connection information, a signal calculation simplified range determination unit that determines a range in which signal calculation processing is simplified based on the circuit connection information, And a signal operation simplification execution unit for executing simplification of the signal operation processing for the determined range.
[0073]
According to this embodiment, based on the circuit connection information analyzed by the circuit connection information analysis unit, the signal calculation simplification range determination unit determines the range in which the signal calculation process is simplified, and the determined range is Thus, the signal calculation simplification execution unit can execute simplification of the signal calculation processing, and a circuit in which the signal calculation processing is simplified can be obtained from the input circuit.
[0074]
By using the description with simplified signal operations as an input to the logic simulator, high-speed logic simulation is possible.
[0075]
Hereinafter, this embodiment will be described in more detail.
[0076]
FIG. 1 is a diagram illustrating a configuration of a logic circuit conversion device 1 according to the present embodiment.
[0077]
The logic circuit conversion device 1 includes a circuit connection information analysis unit 10, a signal operation simplification range determination unit 20, and a signal operation simplification execution unit 30.
[0078]
The circuit connection information analysis unit 10 uses, as circuit connection information in the input logic circuit description 100, an activation relationship between event execution units (processing units in the event-driven method), that is, a connection relationship between event execution units and signals (signals). Dependency relationship between logical operation processing units via
[0079]
Based on the circuit connection information analyzed by the circuit connection information analysis unit 10, the signal calculation simplified range determination unit 20 performs signal calculation by grouping which event execution units in the logic circuit description 100 in any order. Is determined, and the range of event execution units to be grouped is determined.
[0080]
The signal calculation simplification execution unit 30 applies an operation for grouping event execution units to each description range determined by the signal calculation simplification range determination unit 20 to simplify signal calculation.
[0081]
A logic circuit conversion method using the logic circuit converter 1 according to the present embodiment will be described with a simple example.
[0082]
FIG. 2 is a circuit diagram of the input circuit. An AND (logical product) of the signal A and the signal B is a signal D, and an OR (logical sum) of the signal D and the signal C is output as a signal X. FIG. 3 describes the logic corresponding to the circuit diagram of FIG. 2 in VHDL. Here, p1 and p2 in FIGS. 2 and 3 represent event execution units, which correspond to circuit elements in FIG. 2 and to VHDL processes in FIG. The input circuit may be expressed as a net list.
[0083]
When the description of FIG. 2 or FIG. 3 is input to the logic circuit conversion device 1, the circuit connection information analysis unit 20 generates connection relation data between event execution units and signals as shown in FIG. Here, in order to simplify the explanation, the connection relationship is represented by a graph, but data may be held in the form of a structure.
[0084]
The definition of this graph is as follows. A node represents an event execution unit, and an edge represents a signal. Here, when the event-driven execution unit p is activated by a value change (event) of the signal e, the edge e becomes an input to the node p. Also, when the signal e is evaluated in the event execution unit p, the edge e becomes an output from the node. The output destination may be a plurality of nodes.
[0085]
In FIG. 4, p1 is activated by an event of signals A and B, and p2 is activated by an event of signals C and D. P1 outputs D and p2 outputs X.
[0086]
The signal calculation simplified range determination unit 20 determines a range in which signal calculation can be simplified by grouping event execution units based on the connection data of FIG. This range can be determined by the following procedure, for example, in a synchronous circuit.
[0087]
(Procedure 1) Using the circuit connection graph, level each event execution unit in order of the longest path from the input side.
[0088]
(Procedure 2) Let GR be an empty set.
[0089]
(Procedure 3) Starting from the input side, event execution units are sequentially taken into the GR as grouping candidates in order of increasing level.
[0090]
(Procedure 4) When there is no event execution unit as a grouping candidate, the process ends. An event execution unit included in the group GR is a range of signal calculation simplification.
[0091]
FIG. 5 shows the result of applying the above procedure to FIG. (Procedure 1) assigns level 1 and level 2 to event execution units p1 and p2, respectively, and (Procedure 3) inserts them into group GR as grouping candidates in the order of p1 and p2. Therefore, the range of signal calculation simplification is p1 and p2 (200 in the figure).
[0092]
The signal calculation simplification execution unit 30 groups the event item unit groups in the range determined by the signal calculation simplification range determination unit 20 into one event execution unit. This can be realized by the following procedure.
[0093]
(Procedure A) The event execution units in the group obtained in the above (Procedure 1) to (Procedure 4) are arranged in the order in which they are captured, and are combined as one event execution unit.
[0094]
(Procedure B) Next, the input signal between the event execution units in the group is a variable that is immediately substituted. In this case, when the signal is also output to an event execution unit outside the group, it is left as both a signal and a variable.
[0095]
6 to 8 show the results of circuit conversion by applying the above procedure to FIG.
[0096]
FIG. 6 is a block diagram showing the conversion result. (Procedure A) groups p1 and p2 into one event execution unit in which signals A, B, and C are input and signal X is output.
[0097]
FIG. 7 is a VHDL description corresponding to the conversion result. According to (Procedure A), the processes p1 and p2 are combined as one process p_m1. As in FIG. 6, signals A, B, and C are input, and signal X is an output. In this case, the signal D used for propagation of the value between p1 and p2 becomes a variable from the signal, and the execution of the operation is simplified.
[0098]
Circuit connection graphs corresponding to FIGS. 6 and 7 are as shown in FIG.
[0099]
The description in which the signal operation is simplified by the signal operation simplification execution unit 30 is output as the logic circuit description 101.
[0100]
The output circuit may be a drawing, a netlist, or HDL. Also, HDL is not limited to VHDL.
[0101]
In the circuit description obtained by simplifying the signal operation in this way, the same event execution unit is not repeatedly evaluated and executed in one simulation cycle. In addition, since signal processing operations relating to value passing between event execution units are replaced with variable operations, high-speed processing can be performed. Furthermore, since the number of event item units is reduced, the number of event execution units registered in the event queue and the number of fetched registered event queues is reduced.
[0102]
Therefore, according to the present embodiment, it is possible to obtain a circuit in which the processing amount required for the simulation execution is reduced even when the event execution unit is configured in a small scale and the signal calculation execution amount is large.
[0103]
In the above description, one group for the range to which simplification is applied has been described. However, a plurality of groups for the range to which simplification is applied may be provided. For example, the following procedure divides the synchronization circuit into two event execution units of level N or lower and level N + 1 or higher.
[0104]
(Procedure 1) Using the circuit connection graph, level each event execution unit in order of the longest path from the input side.
[0105]
(Procedure 2 ') GR1 and GR2 are empty sets.
[0106]
(Procedure 3 ') Starting from the input side, scan event execution units in order of increasing level. If the level is N or less, it is sequentially taken into GR1. If the level is N + 1 or higher, it is sequentially taken into GR2.
[0107]
(Procedure 4 ') End when there are no event execution units that are candidates for grouping. Each event execution unit included in the groups GR1 and GR2 is a range of signal calculation simplification.
[0108]
In this case, grouping and simplification of event-driven execution units exist in a plurality of places.
[0109]
Next, a modified example of the signal calculation simplified range determination unit 20 will be described.
[0110]
The signal calculation simplified range determining unit 20 determines the signal calculation simplified range based on the circuit connection information analyzed by the circuit connection information analyzing unit 10. Instead, a signal calculation simplification range is set in advance, and whether or not the setting range can be applied to the input circuit is confirmed based on the circuit connection information analyzed by the circuit connection information analysis unit 10, When it is determined that application is possible, the setting range may be determined as a signal calculation simplified range. For example, the signal calculation simplification range is set as the entire input circuit, it is confirmed that there is no asynchronous loop in the input circuit, and if there is no asynchronous loop, the entire circuit is determined as the signal calculation simplification range.
[0111]
(Embodiment of Logic Simulation Device Comprising Logic Circuit Conversion Device According to First Embodiment)
As shown in FIG. 9, the logic simulation apparatus according to the present embodiment includes a circuit connection information analysis unit 10, a signal calculation simplified range determination unit 20, and a signal calculation that the logic circuit conversion device 1 according to the first embodiment has. A logic simulation unit 90 that executes a logic simulation based on a given logic circuit description is added to the simplification execution unit 30. As the logic simulation unit 90, a known one is used.
[0112]
The logic circuit conversion apparatus 1 converts the logic circuit description to be subjected to logic simulation into a logic circuit description with a simplified signal calculation and a small amount of signal calculation processing, and the converted logic circuit description is input as input by the logic simulation unit 90. Perform functional simulation.
[0113]
Thus, by providing the logic circuit conversion device 1 that simplifies the signal operation of the logic circuit description in the previous stage of the known logic simulation unit 90, a logic simulation device that performs logic simulation at high speed can be realized.
[0114]
(Second Embodiment)
The logic circuit conversion device according to the present embodiment simplifies signal operation processing, a circuit connection information analyzing unit that analyzes circuit connection information, a simplified application range designating unit that designates a range to which simplification is applied. A signal calculation simplification range determination unit for determining a range, and a signal calculation simplification execution unit for executing simplification of signal calculation processing on the determined range are provided.
[0115]
According to this embodiment, based on the circuit connection information analyzed by the circuit connection information analysis unit and the range specified by the simplified application range specifying unit, the signal calculation simplified range determination unit simplifies the signal calculation processing. The signal calculation simplification execution unit can execute simplification of the signal calculation processing for the determined range, and a circuit in which the signal calculation processing is simplified can be obtained from the input circuit. It becomes possible.
[0116]
According to the present embodiment, signal simplification can be applied so as to avoid a signal that a designer wants to observe in an input circuit.
[0117]
Hereinafter, this embodiment will be described in more detail.
[0118]
FIG. 10 is a diagram illustrating a configuration of the logic circuit conversion device according to the present embodiment.
[0119]
The logic circuit conversion device 2 according to the present embodiment includes a circuit connection information analysis unit 10, a signal calculation simplification range determination unit 21, a signal calculation simplification execution unit 30, and a simplification application range designation unit 40. The circuit connection information analysis unit 10 and the signal calculation simplification execution unit 30 are the same as those in the first embodiment.
[0120]
The circuit connection information analysis unit 10 analyzes the activation relationship between event execution units (processing units in the event-driven method), that is, the connection relationship between event execution units and signals, as circuit connection information in the input logic circuit description 100. To do.
[0121]
Here, in the present embodiment, the user inputs the range designation data 105 from the simplified application range designation unit 40 and designates a range to which simplification of signal calculation is applied in the circuit. As the range designation data 105, data representing a range (for example, data specifying an event execution unit; p1, p2, etc.) may be directly input, or an ID number or the like associated with the data directly representing the range. Key input may be performed, or selection input may be performed from a list on the displayed menu screen.
[0122]
Based on the circuit connection information analyzed by the circuit connection information analyzing unit 10 and the range specified by the simplified application range specifying unit 40, the signal calculation simplified range determining unit 21 executes which event in the logic circuit description 100. In what order the units are grouped together, it is determined whether the signal operation can be simplified, and the range of event execution units to be grouped is determined.
[0123]
The signal calculation simplification execution unit 30 applies an operation for grouping event execution units to each description range determined by the signal calculation simplification range determination unit 21 to simplify signal calculation.
[0124]
A logic circuit conversion method using the logic circuit conversion device 2 according to this embodiment will be described with a simple example.
[0125]
FIG. 11 is a circuit diagram of the input circuit. The circuit of FIG. 11 is obtained by adding an AND element p3 that outputs an AND of the signal X and the signal E as a signal Y to the circuit of FIG. FIG. 12 describes the logic corresponding to the circuit diagram of FIG. 11 in VHDL. Here, p1, p2, and p3 in FIGS. 11 and 12 represent event execution units, which correspond to circuit elements in FIG. 11 and VHDL processes in FIG. The input circuit may be expressed as a net list.
[0126]
Here, for example, when the user wants to observe the signal X as it is, the range designation data is
{P1, p2}
In this case, only p1 and p2 are designated, and p3 is designated not to be included in the designation.
[0127]
Although the event execution unit name is specified here, a unique ID may be assigned to each event execution unit and specified by the ID. Further, instead of specifying the event execution units side by side, for example, a certain hierarchy may be specified and all event execution units below the hierarchy may be indicated.
[0128]
When the description of FIG. 11 or FIG. 12 is input to the logic circuit conversion device 2, the circuit connection information analysis unit 21 generates connection relationship data between event execution units and signals as shown in FIG. As in the first embodiment, for ease of explanation, the connection relationship is represented by a graph, but data may be held in the form of a structure.
[0129]
Based on the connection data of FIG. 13, the signal calculation simplification range determination unit 21 determines a range in which signal calculation can be simplified by grouping event execution units. This range can be determined by the following procedure, for example, in a synchronous circuit.
[0130]
(Procedure 1) Using the circuit connection graph, level each event execution unit in order of the longest path from the input side.
[0131]
(Procedure 2) Let GR be an empty set.
[0132]
(Procedure 3a) Starting from the input side, event execution units within the range specified by the simplified application range specifying unit 40 are sequentially taken into the GR in ascending order of level.
[0133]
(Procedure 4) When there is no event execution unit as a grouping candidate, the process ends. An event execution unit included in the group GR is a range of signal calculation simplification.
[0134]
FIG. 14 shows the result of applying the above procedure to FIG. (Procedure 1) assigns level 1, level 2, and level 3 to event execution units p1, p2, and p3, respectively, and (procedure 3a) inserts them into group GR as grouping candidates in the order of p1 and p2. Here, since p3 is not included in the designation by the simplified application range designation unit 40, it is not taken into the GR. Therefore, the range of signal calculation simplification is p1 and p2.
[0135]
The signal calculation simplification execution unit 30 groups the event item unit groups in the range determined by the signal calculation simplification range determination unit 21 into one event execution unit. This can be realized by (Procedure A) and (Procedure B) in the first embodiment.
[0136]
Note that results corresponding to FIGS. 6 to 8 of the first embodiment (a block diagram showing a conversion result, a VHDL description, and a circuit connection graph) are omitted.
[0137]
The description in which the signal calculation is simplified by the signal calculation simplification execution unit 30 is output as the logic circuit description 102.
[0138]
The output circuit may be a drawing, a netlist, or HDL. Also, HDL is not limited to VHDL.
[0139]
In this way, in the circuit description obtained by designating the range of signal calculation simplification, the signal calculation simplification can be applied while avoiding the signal that the designer wants to observe. As for the range to which the signal calculation simplification is applied, a circuit in which the amount of processing required for executing the simulation is reduced can be obtained as in the first embodiment.
[0140]
As described in the first embodiment, a plurality of groups for a range to which simplification is applied can be provided. For example, when the group is divided into two, the range to be applied and the numerical value indicating the above-mentioned level N as a reference for dividing the group in the range are input from the simplified application range specification unit 40 as the range specification data 105. It ’s fine.
[0141]
(Embodiment of Logic Simulation Device Equipped with Logic Circuit Conversion Device According to Second Embodiment)
As shown in FIG. 15, the logic simulation apparatus according to the present embodiment includes a circuit connection information analysis unit 10, a signal operation simplification range determination unit 21, and a signal operation that the logic circuit conversion device 2 of the second embodiment has. A logic simulation unit 90 that executes a logic simulation based on a given logic circuit description is added to the simplification execution unit 30 and the simplification application range designation unit 40. As the logic simulation unit 90, a known one is used.
[0142]
The logic circuit conversion device 2 given the range designation data excluding the signal that the user wants to observe from the simplified application range, the logic circuit description to be subjected to the logic simulation based on the range designation data is simplified in signal calculation. The logic circuit description is converted into a logic circuit description with a small amount of signal arithmetic processing, and the logic simulation unit 90 executes a logic simulation with the converted logic circuit description as an input. Therefore, it is possible to speed up the execution of the logic simulation while leaving the signal that the user wants to observe.
[0143]
Thus, by providing the logic circuit conversion device 2 that simplifies the signal operation of the logic circuit description based on the user designation in the preceding stage of the known logic simulation unit 90, the logic simulation can be performed at high speed without degrading the debug function. A logic simulation device to be executed can be realized.
[0144]
(Third embodiment)
The logic circuit conversion device according to the present embodiment includes a circuit connection information analysis unit that analyzes circuit connection information, a circuit function determination unit that determines the function of the circuit, and a signal that determines a range in which signal arithmetic processing is simplified. A calculation simplification range determination unit and a signal calculation simplification execution unit that executes simplification of signal calculation processing on the determined range are provided.
[0145]
According to the present embodiment, the signal calculation simplification range determination unit performs signal calculation processing based on the circuit connection information analyzed by the circuit connection information analysis unit and the function information of the circuit components determined by the circuit function determination unit. The signal calculation simplification execution unit can execute the simplification of the signal calculation processing for the determined range, and the circuit in which the signal calculation processing is simplified from the input circuit is determined. It becomes possible to obtain.
[0146]
According to the present embodiment, it is possible to apply signal processing simplification by dividing the input circuit into a register and a combinational circuit. Therefore, high-speed logic simulation is possible while leaving the output value of the register frequently observed by the designer as the signal value.
[0147]
Hereinafter, this embodiment will be described in more detail.
[0148]
FIG. 16 is a diagram illustrating a configuration of the logic circuit conversion device according to the present embodiment.
[0149]
The logic circuit conversion device 3 according to the present embodiment includes a circuit connection information analysis unit 10, a signal calculation simplification range determination unit 22, a signal calculation simplification execution unit 30, and a circuit function determination unit 50. The circuit connection information analysis unit 10 and the signal calculation simplification execution unit 30 are the same as those in the first embodiment.
[0150]
The circuit connection information analysis unit 10 analyzes the activation relationship between event execution units (processing units in the event-driven method), that is, the connection relationship between event execution units and signals, as circuit connection information in the input logic circuit description 100. To do.
[0151]
On the other hand, the circuit function determination unit 50 determines whether each component (event execution unit) of the circuit is a clock generation circuit, a register, a latch, or a combinational circuit, and outputs or holds the function information of the circuit component. .
[0152]
Based on the circuit connection information analyzed by the circuit connection information analysis unit 10 and the function information of the circuit components determined by the circuit function determination unit 50, the signal calculation simplified range determination unit 22 determines which event in the circuit 100. In what order the execution units are grouped, it is determined whether the signal operation can be simplified, and the range of event execution units to be grouped is determined.
[0153]
The signal calculation simplification execution unit 30 applies an operation for grouping event execution units to each description range determined by the signal calculation simplification range determination unit 21 to simplify signal calculation.
[0154]
A logic circuit conversion method using the logic circuit conversion device 3 according to this embodiment will be described with a simple example.
[0155]
FIG. 17 is a circuit diagram of the input circuit. The circuit of FIG. 17 propagates the signal X and the negation of the signal X to the signals A and B at the rising edge of the clock, and the signal X to the signal C at the rising edge of the clock, as compared to the circuit of FIG. The register p02 to be added is added. For simplicity, the clock is assumed to be given as an external input.
[0156]
FIG. 18 describes the logic corresponding to the circuit diagram of FIG. 17 in VHDL. Here, p01, p02, p1, and p2 in FIGS. 17 and 18 represent event execution units, which correspond to circuit elements in FIG. 17 and to VHDL processes in FIG. The input circuit may be expressed as a net list.
[0157]
When the description of FIG. 17 or FIG. 18 is input to the logic circuit conversion device 3, the circuit connection information analysis unit 22 generates connection relation data between event execution units and signals as shown in FIG. As in the first embodiment, for ease of explanation, the connection relationship is represented by a graph, but data may be held in the form of a structure.
[0158]
Further, the function information for the event execution units p01, p02, p1, and p2 is output by the circuit function determination unit 50, for example, as shown in FIG. The function information and event execution unit may be described by ID.
[0159]
The signal calculation simplification range determination unit 22 determines a range in which signal calculation can be simplified by grouping event execution units based on the function information of FIG. The determination of this range can be realized by the following procedure, for example, in a synchronous circuit composed of a register and a combinational circuit.
[0160]
(Procedure 1) Using the circuit connection graph, level each event execution unit in order of the longest path from the input side.
[0161]
(Procedure 2 ') GR1 and GR2 are empty sets.
[0162]
(Procedure 3b) Starting from the input side, scan event execution units in order of increasing level. If the function is a register, it is sequentially taken into GR1. If the function is a combinational circuit, it is sequentially taken into GR2.
[0163]
(Procedure 4 ') The process ends when there are no event execution units as grouping candidates. An event execution unit included in the groups GR1 and GR2 is a range of signal calculation simplification.
[0164]
FIG. 21 shows the result of applying the above procedure to FIG. (Procedure 1) gives level 1, level 1, level 2, and level 3 to event execution units p01, p02, p1, and p2, respectively. Since the functions of p01, p02, p1, and p2 are a register, a register, a combinational circuit, and a combinational circuit, respectively, they are taken into the group GR1 in the order of p01 and p02 and in the group GR2 in the order of p1 and p2 by (Procedure 3b). Therefore, the range of signal calculation simplification is p01, p02, p1, and p2.
[0165]
The signal calculation simplification execution unit 30 groups the event item unit groups in the range determined by the signal calculation simplification range determination unit 22 into one event execution unit. This can be realized by (Procedure A) and (Procedure B) in the first embodiment.
[0166]
22 to 24 show the results of circuit conversion by applying the signal simplification procedure to FIG.
[0167]
FIG. 22 is a block diagram showing the conversion result. According to (Procedure A), p01 and p02 are grouped into one event execution unit in which signals CLK and X are input and signals A, B and C are output. Moreover, p1 and p2 are also grouped, and constitute one event execution unit in which signals A, B, and C are input and signal X is output.
[0168]
FIG. 23 is a VHDL description corresponding to the conversion result. The signal D used to propagate the value between p1 and p2 becomes a variable from the signal, and the execution of the operation is simplified.
[0169]
Circuit connection graphs corresponding to FIGS. 22 and 23 are as shown in FIG.
[0170]
The description in which the signal calculation is simplified by the signal calculation simplification execution unit 30 is output as the logic circuit description 103.
[0171]
The output circuit may be a drawing, a netlist, or HDL. Also, HDL is not limited to VHDL.
[0172]
In this way, in the present logic circuit conversion device having the circuit function determination unit, it is possible to apply simplification of signal operations to the register and the combinational circuit in order. Therefore, high-speed logic simulation can be performed while leaving the output value of the register frequently observed by the designer as the signal value.
[0173]
(Embodiment of Logic Simulation Device Equipped with Logic Circuit Conversion Device According to Third Embodiment)
As shown in FIG. 25, the logic simulation apparatus according to the present embodiment includes a circuit connection information analysis unit 10, a signal calculation simplified range determination unit 22, and a signal calculation that the logic circuit conversion device 3 of the third embodiment described above has. A logic simulation unit 90 that executes a logic simulation based on a given logic circuit description is added to the simplification execution unit 30 and the circuit function determination unit 50. As the logic simulation unit 90, a known one is used.
[0174]
The logic circuit conversion device 3 groups the logic circuit descriptions to be subjected to logic simulation according to the classification of circuit functions (in this case, registers and combinational circuits), and the signal calculation processing amount is simplified for each group. The logic simulation unit 90 performs the logic simulation with the converted logic circuit description as an input. Therefore, according to the present embodiment, for example, a high-speed logic simulation can be performed while an output value of a register frequently observed by a designer is left as a signal value.
[0175]
Thus, by providing the logic circuit conversion device 3 that simplifies the signal operation of the logic circuit description in the previous stage of the known logic simulation unit 90, a logic simulation device that executes logic simulation at high speed without degrading the debug function. Can be realized.
[0176]
(Fourth embodiment)
The logic circuit conversion device according to the present embodiment includes means for analyzing a signal processing flow in an input logic circuit, and a place where event determination logic is inserted in the input logic circuit based on an analysis result of the signal processing flow by the analyzing means And means for inserting event determination logic at the insertion location in the input logic circuit determined by the determining means.
[0177]
According to the present embodiment, before and after signal substitution processing that is highly likely not to be executed in the input logic circuit is wrapped with event determination logic, and the input logic circuit is converted into a logic circuit that can perform simulation at higher speed. Is possible.
[0178]
In the conventional logic simulation, since the signal processing flow in the description of the input logic circuit is not changed, it is difficult to execute the simulation efficiently. According to the present embodiment, a high-speed logic simulation can be performed by converting the input logic circuit into a logic circuit capable of executing simulation at a higher speed and inputting the converted description to the logic simulator.
[0179]
Hereinafter, this embodiment will be described in more detail.
[0180]
FIG. 26 is a diagram showing a configuration of the logic circuit converter 310 according to the present embodiment.
[0181]
The logic circuit conversion device 310 includes a signal processing flow analysis unit 311, an event determination logic insertion location determination unit 312, and an event determination logic insertion unit 313.
[0182]
The signal processing flow analysis unit 311 analyzes the signal processing flow described in the input logic circuit description 314 and obtains dependency information between the signal and the logical operation unit. Here, the logical operation unit represents a unit in the event determination logic. Specifically, circuit elements such as AND and OR, signal assignment statements, event execution units, or a group of these can be considered.
[0183]
Based on the dependency relationship information analyzed by the signal processing flow analysis unit 11, the event determination logic insertion location determination unit 312 determines which logical operation unit in the logic circuit description 314 is inserted before and after the event determination logic. To do. Here, it is allowed to group a plurality of logical operation units described consecutively in the circuit description and insert event determination logic before and after.
[0184]
The event determination logic insertion unit 313 converts the logic circuit description 314 into a logically equivalent circuit by inserting an appropriate event determination logic at the insertion location determined by the event determination logic insertion location determination unit 12. The equivalently converted circuit is output as a logic circuit description 315.
[0185]
A logic circuit conversion method using the logic circuit converter 310 according to the present embodiment will be described with a simple example.
[0186]
FIG. 27 is a circuit diagram of the input logic circuit. XOR (exclusive OR) of signal A and signal B is output as signal G.
[0187]
FIG. 28 describes the logic corresponding to the circuit diagram of FIG. 27 in C language. When the description of FIG. 28 is input to the logic circuit conversion device 310, the signal processing flow analysis unit 311 generates connection relation data between the logic operation unit and the signal. As shown in FIG. 29, the connection relation data is preferably expressed as graph information having a logical operation unit as a node and an activation signal as an edge.
[0188]
The event determination logic insertion location determination unit 312 obtains as many signal processing substitutions as possible from the number of closed logical operation units on the graph as compared to the number of input signals. In this example, this group is obtained as a node set surrounded by a dotted line in FIG. Details of how to find this group will be described later.
[0189]
The event determination logic insertion unit 313 inserts event determination logic before and after the logical operation unit or the logical operation unit group obtained by the event determination logic insertion location determination unit 12. In this example, when the values in the previous simulation cycle of the input signals A and B to the group are respectively A_old and B_old, this corresponds to conversion into the description of FIG.
[0190]
The description in which the event determination logic is inserted by the event determination logic insertion unit 313 is output as the logic circuit description 315. In this conversion method, it can be easily understood that the simulation result of the logic circuit description 315 matches the simulation result of the original logic circuit description 314.
[0191]
In this specific example, in order to make the explanation easy to understand, the number of signal processing substitutions included in the partial description included in the event determination logic is 5 for the number of signals checked in the event determination logic, Although not so much, as in the example of FIG. 32, the number of signal processing substitutions included in the partial description included in the event determination logic (2) with respect to the number of signals checked by the event determination logic (2) ( If (2 + 2n) is very large, the effect of speeding up the simulation by conversion is tremendous.
[0192]
Now, in order to replace the logic circuit description 314 with the logic circuit description 315 capable of executing a faster simulation, the event determination logic insertion location determination unit 312 needs to appropriately determine the event determination logic insertion location. Below, an example of the processing method in the event determination logic insertion location determination part 312 is described. As described above, the event determination logic insertion location determination unit 312 has as many signal processing substitutions as possible compared to the number of input signals in the group of closed logical operation units on the graph representing the connection relation data. You need to ask for something.
[0193]
Here, in the logical operation unit group in which the event determination logic is to be inserted before and after that, there is no path (edge column) that once enters the group and then enters the group again after being out of the group. . This reason will be described using an example. The group of logical operation units surrounded by a dotted line in FIG. 33 has a path from the node F1 to the edge C and the edge F to the F4 and passes through the node F3 outside the group. Not applicable. On this graph, the fact that there are paths that pass in the order of F1, F3, and F4 means that the operation must be executed in the order of F1, F3, and F4. Therefore, if F1 and F4 are combined in the event determination logic and executed at the same time, the above execution order will be inconsistent.
[0194]
In the following, in a logical operation group (node set), a state where there is no path that once enters the group and then enters the group will be referred to as “closed” or “closed”. .
[0195]
Here, on the graph, in order to obtain a group of closed logical operation units that have more signal processing substitutions than the number of input signals, for example, the number of signal processing substitutions included in each logical operation unit is expressed as a node size. And solving the problem of finding “a closed node set having a larger sum of node sizes than the number of input edges” on the connection graph.
[0196]
As a method for solving this problem, for example, a node set may be searched by the procedure shown in FIG. The connection graph is G = (V, E). U represents a union.
[0197]
First, an appropriate node a is selected from V, and a node set T = {a} is set (step S11).
[0198]
If T = V in step S12, the search is terminated.
[0199]
If not T = V in step S12, the node b adjacent to T is selected and set to T = TU {b} (step S13).
[0200]
Next, when T is not closed, an appropriate node c is selected until T is closed, and T = TU {c} is repeated (step S13).
[0201]
Next, if f (in (T), size (T)) is equal to or greater than a predetermined value g, the signal processing substitution expression included in the set T is determined as an event determination logic insertion location, and the process returns to step S12. Here, in (T) is the number of input edges to T, size (T) is the sum of the sizes of the elements of T, and f is an appropriate evaluation function.
[0202]
The above algorithm is an example of a non-deterministic search, and if this is combined with a depth-first search, it is possible to search all node subsets as T.
[0203]
Further, as the node size, instead of the number of signal processing substitutions, the number of description lines in a logical operation unit or a product sum obtained by weighting and adding execution time for each type of signal processing may be used.
[0204]
There may be a plurality of event determination logic insertion locations. Further, as shown in FIG. 35, the insertion locations may have a nested structure.
[0205]
(Modification 1 of 4th Embodiment)
When the designer knows how often the event of each signal in the logic circuit input to the logic circuit converter according to the present embodiment occurs, it is more accurate to use this information. It is conceivable that the decision logic insertion location can be determined.
[0206]
Therefore, as in the logic circuit conversion device 400 shown in FIG. 36, an event determination logic insertion range designating unit 317 having a function for a designer to specify an event determination logic insertion location in advance, and an event determination logic insertion location based on this designation. By providing the event determination logic insertion location determination unit 318 having the function of determining the above, it is possible to obtain a logic circuit conversion result that can be simulated at higher speed.
[0207]
The group of logical operation units can be specified by, for example,
F0, F1, F2, F3, F4
It may be described as a group of logical operation units. Also,
A, B; G
As described above, the signal may be specified as a set of input signals and a set of output signals.
[0208]
(Modification 2 of the fourth embodiment)
When the event occurrence frequency of each signal greatly changes during the simulation in the circuit, it is desirable that the inserted event determination logic can be deleted once and the event determination logic can be reinserted at another location. Therefore, it is preferable to provide an event determination logic deletion unit 316 for deleting the event determination logic as in the logic circuit conversion device 401 shown in FIG.
[0209]
Here, it is necessary to distinguish between the event determination logic described in the logic circuit regardless of the conversion by the logic circuit converter and the event determination logic inserted by the conversion by the logic circuit converter. This distinction can be realized, for example, by putting a comment including an appropriate identifier before or after the “line” in which the event determination logic is inserted in the circuit.
[0210]
(Modification 3 of the fourth embodiment)
If there is execution history information that describes how often an event of each signal in the logic circuit input to the logic circuit conversion device according to the present embodiment occurs, the event can be more accurately used by using this information. It is considered that the decision logic insertion location can be determined.
[0211]
Therefore, as in the logic circuit conversion device 402 shown in FIG. 38, the function of predetermining the execution history information 320 and determining the event determination logic insertion location based on this designation is the event determination logic insertion location determination. By providing the unit 319, it is expected that a logic circuit conversion result that can be simulated at a higher speed can be obtained.
[0212]
As a method for specifying execution history information, as shown in FIG. 39, for each logical operation unit, a history as to whether or not event execution processing has been performed in each simulation cycle may be given. As shown in FIG. 40, information on the frequency of event execution processing may be given for each logical operation unit.
[0213]
(Fifth embodiment)
The logic simulation apparatus according to the present embodiment includes means for analyzing a signal processing flow in an input logic circuit, and a place where event determination logic is inserted in the input logic circuit based on an analysis result of the signal processing flow by the analysis means. Means for determining, and means for inserting event determination logic at an insertion position in the input logic circuit determined by the determining means.
[0214]
According to the present embodiment, before and after the signal substitution process that is highly likely not to be executed in the input logic circuit, the event determination logic is used to perform simulation of the input logic circuit at a higher speed.
[0215]
In the conventional logic simulation, since the simulation was executed without changing the signal processing flow in the description of the input logic circuit, it was difficult to execute the simulation efficiently. According to the present embodiment, it is possible to realize a high-speed logic simulator that converts an input logic circuit into a logic circuit that can execute a simulation at a higher speed and executes the simulation.
[0216]
Hereinafter, this embodiment will be described in more detail.
[0217]
FIG. 41 is a diagram showing a configuration of the logic simulation apparatus 501 according to the present embodiment.
[0218]
The logic simulation device 501 includes the logic circuit conversion device 310 shown in FIG. 26 and a simulation execution unit 321. That is, the logic simulation apparatus 510 is given to the signal processing flow analysis unit 311, the event determination logic insertion location determination unit 312, and the event determination logic insertion unit 313 included in the logic circuit conversion apparatus 310 of the fourth embodiment described above. A logic simulation unit 321 for executing a logic simulation based on the logic circuit description is added. As the logic simulation unit 321, a known one is used.
[0219]
The logic circuit converter 310 converts the input logic circuit 314 into a logically equivalent circuit that can be simulated at higher speed. The simulation execution unit 321 executes a logic simulation using the equivalently converted circuit as an input.
[0220]
(Modification 1 of 5th Embodiment)
In the fifth embodiment, the input logic circuit is equivalently converted by the logic circuit converter 310, and the simulation is executed using the result as the input of the simulation execution unit 321.
[0221]
However, when the logic simulation apparatus adopts a compile method instead of an interpreter method, a faster simulation execution may be possible if the logic circuit conversion is performed at the target language level.
[0222]
In such a case, it is preferable not to input the input logic circuit 314 directly to the logic circuit conversion device 310 but to input it to the simulation execution unit 321 after performing logic circuit conversion at the target language level.
[0223]
(Modification 2 of the fifth embodiment)
When the designer knows how often the event of each signal in the logic circuit input to the logic simulation apparatus according to the present embodiment occurs, it is more accurate to determine the event by using this information It is conceivable that the logical insertion location can be determined. In this case, it is possible to perform simulation at higher speed by performing logic circuit conversion using the logic circuit conversion apparatus shown in the first modification of the fourth embodiment.
[0224]
The method shown in the first modification of the fourth embodiment may be used for specifying the group of logical operation units.
[0225]
(Modification 3 of the fifth embodiment)
In some cases, using the logic circuit conversion apparatus described in the fourth embodiment, it is desired to execute a simulation by using a logic circuit once inserted with event determination logic as an input. At this time, in order to insert the event determination logic at a location different from the previous time, it is necessary to delete the event determination logic inserted last time.
[0226]
For this purpose, as shown in FIG. 42, logic conversion is performed using the logic circuit conversion device 401 shown in the second modification of the fourth embodiment, and a logic simulation of the converted logic circuit is executed by the simulation execution unit 321. What is necessary is just to implement | achieve the logic simulation apparatus 502 to perform.
[0227]
A distinction between the event determination logic described in the logic circuit regardless of the conversion by the logic circuit conversion device 401 and the event determination logic inserted by the conversion by the logic circuit conversion device is the first modification of the fourth embodiment. The method shown may be used.
[0228]
(Modification 4 of the fifth embodiment)
When there is execution history information that describes how often an event of each signal in the logic circuit input to the logic circuit converter according to the present embodiment occurs, it is more accurate to use this information. It is conceivable that the event determination logic insertion location can be determined.
[0229]
Therefore, as shown in FIG. 43, an execution history information collection unit 331 is provided in the simulation execution unit 330 for executing the logic simulation, and the execution history information collection unit 331 obtains the execution history information 320 from the simulation execution result. What is necessary is just to implement | achieve the logic simulation apparatus 503 which determines the event determination logic insertion location based on the historical information 320. FIG. As the logic circuit converter, the logic circuit converter 402 as shown in the third modification of the fourth embodiment is used.
[0230]
As a method for specifying execution history information, the method shown in the third modification of the fifth embodiment may be used.
[0231]
According to the present embodiment, it is possible to continue the simulation execution by dynamically changing the insertion position of the event determination logic in the input logic from the simulation execution result.
[0232]
(Modification 5 of the fifth embodiment)
44, the logic simulation apparatus 504 can be configured by adding a known simulation execution unit 321 to the logic circuit conversion apparatus 400 of the first modification of the fourth embodiment as shown in FIG. .
[0233]
Although the embodiments of the invention have been described above, the first, second, and third embodiments or modifications thereof and the fourth and fifth embodiments or modifications thereof can be appropriately combined. is there. In this case, it is preferable that simplification is first performed by the former, and then event determination logic is inserted by the latter.
[0234]
Further, the logic circuit conversion device and the logic simulation device according to each embodiment can also be realized by executing a program describing a corresponding procedure on the CPU.
[0235]
The present invention is not limited to the embodiment described above, and can be implemented with various modifications within the technical scope thereof.
[0236]
(Operations and effects of the first to fifth embodiments)
In simplification of the signal arithmetic processing described in the first to fifth embodiments, first, levels are assigned in order of the longest path from the input side to each event execution unit based on the connection relation of the input logic circuit. To do. Next, the event execution units are arranged in order of level and are combined into one event execution unit. At this time, the signal used for passing values between event execution units is replaced with a variable that is immediately assigned.
[0237]
In the circuit description obtained by such an operation, the same event execution unit is not repeatedly evaluated and executed in one simulation cycle. In addition, since signal processing operations relating to value passing between event execution units are replaced with variable operations, high-speed processing can be performed. Furthermore, since the number of event execution units is reduced, the number of times that event execution units are registered in the event queue and the registered event queue is taken out is reduced. Therefore, even when the event execution unit is configured in a small scale and the signal calculation execution amount is large, it is possible to obtain a circuit in which the processing amount required for the simulation execution is reduced.
[0238]
(Second invention)
In the method for simplifying signal arithmetic processing in the first invention (first to fifth embodiments), it is assumed that the target logic circuit is a synchronous circuit. If the input logic circuit is an asynchronous circuit (a circuit that includes asynchronous elements), it is possible to apply this method because the operation differs from the original description if the event execution units are combined into one. It cannot be applied to asynchronous circuits.
[0239]
Therefore, when the simulation is performed using the event-driven method, if the circuit description is an asynchronous circuit, it is difficult to reduce the amount of signal arithmetic processing, and there is a problem that it takes a long time to execute the simulation.
[0240]
Therefore, as a second invention, by making it possible to convert the circuit description so as to reduce the amount of signal calculation even for an asynchronous circuit whose event execution unit is configured from a small-scale circuit, A logic circuit conversion method and a logic circuit design support apparatus capable of reducing the time required for simulation execution will be described.
[0241]
Here, the synchronous element is a circuit element in which the level when the leveling is performed in the order of the longest path or the timing at which the evaluation is executed can be statically determined, and the asynchronous element constitutes a latch and an asynchronous loop. A combinational circuit, such as an event execution unit including a self-loop, where the level when performing leveling in the order of the longest path or the timing at which evaluation is executed cannot be determined statically, or output according to the signal input timing A circuit element whose leveling changes dynamically because of different operations.
[0242]
(Sixth embodiment)
(6-1) Logic circuit conversion method and logic circuit conversion apparatus using the same
The logic circuit conversion device according to the sixth embodiment determines an asynchronous element determination unit that determines an asynchronous element in the logic circuit, a range to which simplification of signal operation processing is applied, and is limited to a range excluding the asynchronous element. A signal calculation simplification range determination unit, and a signal calculation simplification execution unit that executes simplification of signal calculation processing on the determined range are provided.
[0243]
According to the present embodiment, it is possible to execute the range of simplification of signal calculation processing limited to the range excluding the asynchronous element obtained by the asynchronous element determination unit, and simplify signal calculation from the input asynchronous circuit. A simplified circuit can be obtained, and a description in which the signal operation is simplified is used as an input to the logic simulator, thereby enabling high-speed logic simulation.
[0244]
Hereinafter, this embodiment will be described in more detail.
[0245]
FIG. 45 is a diagram showing a configuration of the logic circuit conversion device 601 according to the present embodiment.
[0246]
The logic circuit conversion device 601 includes an asynchronous element determination unit 510, a signal operation simplification range determination unit 520, and a signal operation simplification execution unit 530.
[0247]
The asynchronous element determination unit 510 determines an event execution unit (processing unit in the event-driven method) in the input logic circuit description 900 that is an asynchronous element.
[0248]
The signal calculation simplification range determination unit 520 may group which event execution units in the circuit 900 are grouped in any order for the range excluding the event processing units determined as asynchronous elements by the asynchronous element determination unit 510. It is determined whether the signal calculation can be simplified, and the range of event execution units to be grouped is determined.
[0249]
The signal calculation simplification execution unit 530 applies an operation for grouping event execution units to each of the description ranges determined by the signal calculation simplification range determination unit 520 to simplify signal calculation processing.
[0250]
The logic circuit conversion method used in the circuit conversion device 601 according to this embodiment will be described with a simple example.
[0251]
46 and 47 are a circuit diagram of the input circuit and a corresponding VHDL description, respectively. p1 to p5 represent event execution units, which correspond to circuit elements in FIG. 46 and VHDL processes in FIG. Here, p1, p2, and p5 are AND (logical product), and p4 is OR (logical sum). Further, p3 is a latch, which holds data (register operation) or passes through (combination circuit operation) according to the input control signal value. Note that the input circuit may be expressed in an HDL description or a netlist. Also, HDL is not limited to VHDL.
[0252]
When the description of FIG. 46 or FIG. 47 is input to the circuit conversion device 601, the asynchronous element determination unit 520 determines the latch p3 as an asynchronous element. The reason why the latch is determined to be an asynchronous element is that the timing at which the evaluation is executed varies depending on which event of the input control signal or the data signal propagates first, and the execution order is not fixed in advance.
[0253]
Here, the signal calculation simplification range determination unit 520 determines a range in which signal calculation can be simplified from p1, p2, p4, and p5 excluding the event execution unit p3 determined as an asynchronous element. This range can be determined by the following procedure, for example.
[0254]
(Procedure 6-1) Each event execution unit is leveled in the order of the longest path from the input side.
[0255]
(Procedure 6-2) GR is an empty set, and E is a set of event execution units excluding asynchronous elements.
[0256]
(Procedure 6-3) If E is an empty set, go to (Procedure 6-5). Otherwise, the event execution unit T having the smallest level is selected from E.
[0257]
(Procedure 6-4) T is taken into GR. Remove T from E and return to (procedure 6-3).
[0258]
(Procedure 6-5) End. A group GR of event execution units is a range of signal simplification.
[0259]
FIG. 48 shows an example of the result of applying the above procedure to the logic circuit shown in FIG.
[0260]
(Procedure 6-1) assigns level 1, level 1, level 2, level 2, and level 3 to event execution units p1, p2, p3, p4, and p5, respectively. Next, they are taken into the GR in the order of p1, p2, p4, and p5 by (Procedure 6-3) and (Procedure 6-4) (p1 and p2 may be in reverse order). Therefore, the range of simplification of signal calculation is {p1, p2, p4, p5} (700 in FIG. 48).
[0261]
The signal calculation simplification execution unit 530 collects a group of event execution units within the range determined by the signal calculation simplification range determination unit 520 into one event execution unit. This can be realized by the following procedure.
[0262]
(Procedure 6-A) The event execution units in the group obtained in (Procedure 6-1) to (Procedure 6-5) are arranged in the order in which they are fetched, and are combined into one event execution unit.
[0263]
(Procedure 6-B) The input signal between the event execution units in the group is replaced with a variable that is immediately substituted. In this case, when the signal is also output to an event execution unit outside the group, a corresponding variable is created while remaining as a signal.
[0264]
49 to 50 are examples of the result of converting the circuit by applying the above procedure to the logic circuit shown in FIG.
[0265]
FIG. 49 is a block diagram showing the conversion result. By (Procedure 6-A), {p1, p2, p4, p5} is obtained as a group. Further, this group is grouped into one event execution unit in which signals A, B, C, D, and H are input and signals F and X are output by (Procedure 6-B).
[0266]
FIG. 50 is a VHDL description corresponding to the conversion result of FIG. According to (Procedure 6-A), the processes p1, p2, p3, p4, and p5 are one process p. Summarized as ml. Similarly to FIG. 49, signals A, B, C, D, and H are inputs, and signals F and X are outputs. In this case, the signal G used for propagating the value from p2 to p4, and the signal I used for propagating the value from p4 to p5 are variables from the signal. Further, regarding the propagation of the value from p1 to p4, the variable F corresponding to the signal F It becomes var. The execution of calculation is simplified by replacing the signal with the variable as described above.
[0267]
The description in which the signal operation is simplified by the signal operation simplification execution unit 530 is output as the logic circuit description 901.
[0268]
The output circuit may be a drawing, a netlist, or HDL. HDL is not limited to VHDL.
[0269]
In the circuit description obtained by simplifying the signal operation in this way, it is less likely that the same event execution unit is evaluated and executed many times in one simulation cycle. In addition, since signal processing operations relating to value passing between event execution units are replaced with variable operations, high-speed processing can be performed. Furthermore, since the number of event execution units is reduced, the number of times that an event execution unit is registered in the event queue or the registered event queue is taken out is reduced.
[0270]
Therefore, according to the present embodiment, even when the input logic circuit is configured by a small event execution unit and the asynchronous circuit has a large amount of signal operation execution, a circuit with a reduced processing amount required for simulation execution is obtained. be able to.
[0271]
By the way, although the method which makes one group corresponding to the range which applies simplification was described above, this is also realizable as a some group. For example, the following procedure forms a group separately on the input side and output side of the asynchronous element.
[0272]
Here, the sets E1 and E2 are a set of event execution units in which signal values are propagated to input signals of asynchronous elements, and a set of event execution units in which signal values are propagated from output signals of asynchronous elements.
[0273]
(Procedure 6-1a) Each event execution unit is leveled in the order of the longest path from the input side.
[0274]
(Procedure 6-2a) The sets E1 and E2 are obtained based on the activation relationship between event execution units.
[0275]
(Procedure 6-3a) GR1, GR2, and GR3 are empty sets, E is a set including all event execution units except asynchronous elements, and E3 is a set obtained by subtracting E1 and E2 from E.
[0276]
(Procedure 6-4a) If E is an empty set, go to (Procedure 6-6a). Otherwise, the event execution unit T having the smallest level is selected from E.
[0277]
(Procedure 6-5a) If T is included in Ei, it is taken into GRi (i = 1, 2, 3). Remove T from E and return to (procedure 6-4a).
[0278]
(Procedure 6-6a) The process ends. Each group of event execution units GRi (i = 1, 2, 3) is a range of simplification of signal calculation.
[0279]
An example of the result of applying the above procedure to the logic circuit shown in FIG. 46 is shown in FIG.
[0280]
By (Procedure 6-2a), E1 and E2 become {p1} and {p5}, respectively. By (Procedure 6-4a) and (Procedure 6-5a), GR1, GR2, and GR3 become {p1}, {p5}, and {p2, p4}, respectively.
[0281]
In FIG. 51, reference numerals 701, 702, and 703 denote GR1, GR2, and GR3, respectively.
[0282]
In the above procedure, E3 can be identified with E1 or E2, and two groups can be formed instead of GR1, GR2, and GR3.
[0283]
Here, for the sake of simplicity, the case where there is one asynchronous element has been described. However, even when there are a plurality of asynchronous elements, the above procedure can be extended and dealt with.
[0284]
By the way, although it demonstrated using a latch as an asynchronous element, the same method is applicable also to asynchronous elements other than a latch.
[0285]
52, 55, and 57 show examples of VHDL descriptions including asynchronous elements.
[0286]
The process in the description of FIG. 52 cannot be logically synthesized, and has a function of alternately having the circuit functions shown in FIGS. That is, since the output operation of the output signal X differs depending on the input timing of the signals A and B shown in FIGS. 53 and 54, the level changes dynamically, so that it becomes an asynchronous element.
[0287]
The description of FIG. 55 forms an asynchronous loop as shown in FIG. 56, and therefore, the level of all the processes that are constituent elements thereof is not fixed. Therefore, it is determined as an asynchronous element.
[0288]
The description of FIG. 57 is a process including a self-loop. FIG. 58 shows a circuit diagram of FIG. Since the level changes depending on how many times it is activated, it is determined as an asynchronous element.
[0289]
(6-2) Logic simulation device
Next, an embodiment of a logic simulation device provided with a circuit conversion device according to a sixth embodiment will be described.
[0290]
As shown in FIG. 59, the logic simulation apparatus according to this embodiment includes an asynchronous element determination unit 510, a signal operation simplification range determination unit 520, and a signal operation simplification included in the logic circuit conversion device 601 of the sixth embodiment described above. Further, a logic simulation unit 590 for executing a logic simulation based on a given logic circuit description is added to the computerization execution unit 530. As the logic simulation unit 590, a known one is used.
[0291]
The circuit conversion device 601 converts the logic circuit description to be subjected to logic simulation into a logic circuit description with a simplified signal operation and a small amount of signal operation processing, and the logic simulation unit 590 performs logic simulation using the converted logic circuit description as an input. Execute.
[0292]
Thus, by providing the circuit conversion device 601 that simplifies the signal operation of the logic circuit description in the previous stage of the known logic simulation unit 590, a logic simulation device that executes logic simulation at high speed can be realized.
[0293]
(Seventh embodiment)
(7-1) Logic circuit conversion method and logic circuit conversion apparatus using the same
The logic circuit conversion device according to the seventh embodiment includes an asynchronous element determination unit that determines an asynchronous element in the logic circuit, a simplified application range specification unit that specifies a range to which simplification is applied, and a range that excludes the asynchronous element. A signal operation simplification range determination unit that determines a range to which simplification of signal operation processing is applied in a limited manner, and a signal operation simplification execution unit that executes simplification of signal operation processing for the determined range are provided. .
[0294]
According to this embodiment, based on the range excluding the asynchronous element obtained by the asynchronous element determination unit and the range specified by the simplified application range specifying unit, the range of simplification of the signal arithmetic processing is determined. The signal calculation simplification execution designation unit can execute simplification of signal calculation processing for the determined range, and a circuit with simplified signal calculation can be obtained from the input asynchronous circuit. The signal can be simplified so as to avoid the signal that the person wants to observe.
[0295]
Hereinafter, this embodiment will be described in more detail.
[0296]
FIG. 60 is a diagram showing a configuration of the logic circuit conversion device 602 according to the present embodiment.
[0297]
The logic circuit conversion device 602 includes an asynchronous part determination unit 510, a signal calculation simplified range determination unit 521, a signal calculation simplification execution unit 530, and a simplified application range designation unit 540. The asynchronous element determination unit 510 and the signal calculation simplification execution unit 530 are the same as those in the sixth embodiment.
[0298]
The asynchronous element determination unit 510 determines an event execution unit (processing unit in the event-driven method) in the input logic circuit description 900 that is an asynchronous element.
[0299]
Here, in the present embodiment, the user inputs the range designation data 905 from the simplified application range designation unit 540 and designates the range in which the simplification of the signal calculation is applied in the circuit. As the range data 905, for example, data representing a range (for example, data p1, p2, etc. specifying an event execution unit) in the processing target circuit shown in FIG. 61 may be directly input, or the range may be directly input. An ID number or the like associated with the data to be represented may be key-inputted, or may be selected and input from a list on the displayed menu screen.
[0300]
Based on the asynchronous element determined by the asynchronous element determination unit 510 and the range specified by the simplified application range specifying unit 540, the signal calculation simplified range determination unit 521 determines which event execution unit in the logic circuit 900 is It is determined in what order grouping can simplify signal calculation, and a range of event execution units to be grouped is determined.
[0301]
The signal calculation simplification execution unit 530 applies an operation for grouping event execution units to each of the description ranges determined by the signal calculation simplification range determination unit 521 to simplify signal calculation processing.
[0302]
A logic circuit conversion method used in the logic circuit conversion device 602 according to this embodiment will be described with a simple example.
[0303]
FIG. 46 is again used as a circuit diagram of the input circuit. Here, the input circuit may be expressed in an HDL description or a netlist.
[0304]
Here, for example, when the user wants to observe the signal I as a signal, the range designation data 905 is set as {p1, p2, p3, p4}, and only p1, p2, p3, and p4 are designated so that p5 is not included in the designation. To do.
[0305]
Although the event execution unit name is specified here, a unique ID may be assigned to each event execution unit and specified by the ID. Further, instead of specifying the event execution units side by side, for example, a certain hierarchy may be specified and all event execution units below the hierarchy may be indicated.
[0306]
When the description of FIG. 46 or 47 is input to the logic circuit conversion device 602, the asynchronous element determination unit 510 determines p3 as an asynchronous element.
[0307]
The signal calculation simplification range determination unit 521 determines a range in which signal calculation can be simplified by grouping event execution units based on the determined asynchronous elements. The determination of this range can be realized by the following steps, for example.
[0308]
(Procedure 7-1) Each event execution unit is leveled in the order of the longest path from the input side.
[0309]
(Procedure 7-2) GR is an empty set, and E is a set of event execution units excluding asynchronous elements.
[0310]
(Procedure 7-3) If E is an empty set, go to (Procedure 7-5). Otherwise, the event execution unit T having the smallest level is selected from E.
[0311]
(Procedure 7-4) If T is within the range specified by the simplified application range specifying unit, it is taken into GR. Remove T from E and return to (Procedure 7-3).
[0312]
(Procedure 7-5) End. A group GR of event execution units is a range of signal calculation simplification.
[0313]
FIG. 61 shows an example of the result of applying the above procedure to the logic circuit shown in FIG.
[0314]
(Procedure 7-1) gives level 1, level 1, level 2, level 2, and level 3 to event execution units p1, p2, p3, p4, and p5, respectively (procedure 7-3) and (procedure 7). -4), it is taken into GR in the order of p1, p2, and p4. Here, since p5 is not included in the designation by the simplified application range designation unit 540, it is not taken into the GR. Therefore, the range of signal calculation simplification is {p1, p2, p4} (705 in FIG. 61).
[0315]
The signal calculation simplification execution unit 530 collects a group of event execution units within the range determined by the signal calculation simplification range determination unit 521 into one event execution unit. This can be realized by (Procedure 6-A) and (Procedure 6-B) of the sixth embodiment.
[0316]
Note that results corresponding to FIGS. 49 and 50 of the sixth embodiment (block diagram showing conversion results, VHDL description) are omitted.
[0317]
The description in which the signal calculation is simplified by the signal calculation simplification execution unit 530 is output as the logic circuit description 52.
[0318]
The output circuit may be a drawing, a netlist, or an HDL description. Also, HDL is not limited to VHDL.
[0319]
In this way, in the circuit description obtained by designating the range of signal calculation simplification, the signal calculation simplification can be applied while avoiding the signal that the designer wants to observe. As for the range to which the signal calculation simplification is applied, a circuit in which the processing amount required for the simulation execution is reduced can be obtained as in the sixth embodiment.
[0320]
Note that, as described in the sixth embodiment, a plurality of groups for the range to which simplification is applied can be provided.
[0321]
(7-2) Logic simulation device
Next, an embodiment of a logic simulation device provided with a circuit conversion device according to a seventh embodiment will be described.
[0322]
As shown in FIG. 62, the logic simulation apparatus according to the present embodiment includes an asynchronous element determination unit 510, a signal operation simplification range determination unit 521, and a signal operation simplification included in the logic circuit conversion device 602 according to the seventh embodiment. A logic simulation unit 590 for executing a logic simulation based on a given logic circuit description is further added to the generalization practical unit 530 and the simplified application range designation unit 540. As the logic simulation unit 590, a known one is used.
[0323]
The logic circuit conversion apparatus 602 given the range designation data excluding the signal that the user wants to observe from the simplified application range, the logic circuit description to be subjected to the logic simulation based on the range designation data is simplified in signal operation. The logic circuit description is converted into a logic circuit description with a small amount of signal operation processing, and a logic simulation is executed by the logic simulation unit 590 with the converted logic circuit description as an input. Therefore, it is possible to speed up the execution of the logic simulation while leaving the signal that the user wants to observe.
[0324]
As described above, by providing the logic circuit conversion device 602 that simplifies the signal operation of the logic circuit description based on the user designation in the preceding stage of the known logic simulation unit 590, the logic simulation can be performed at high speed without degrading the debug function. A logic simulation device to be executed can be realized.
[0325]
(Eighth embodiment)
(8-1) Logic circuit conversion method and logic circuit conversion apparatus using the same
The logic circuit conversion device according to the eighth embodiment determines an asynchronous element determination unit that determines an asynchronous element in the logic circuit, and a range to which simplification of the signal arithmetic processing is applied to a range that excludes the asynchronous element. Signal calculation simplification range determination unit, highlight display unit that displays the range for performing simplification of signal calculation processing as highlighted display (highlighted display), and signal calculation for the determined range A signal calculation simplification execution unit that simplifies the processing is provided.
[0326]
According to the present embodiment, the range in which simplification of the signal arithmetic processing is applied is determined by limiting the range excluding the asynchronous element obtained by the asynchronous element determination unit, and the range in which the simplification of the signal arithmetic processing is determined. Alternatively, by highlighting the range determined to be an asynchronous element, the circuit portion of the asynchronous element is presented to the user before the simplification of the signal calculation process, and the user can Therefore, it is possible to rewrite a circuit with fewer asynchronous elements. Therefore, it is possible to obtain a circuit with simplified signal arithmetic processing from an inputted asynchronous circuit, and it is easy to obtain a circuit with fewer asynchronous elements. To do.
[0327]
Hereinafter, this embodiment will be described in more detail.
[0328]
FIG. 63 is a diagram showing a configuration of the logic circuit conversion device 603 according to the present embodiment.
[0329]
The logic circuit conversion device 603 includes an asynchronous part determination unit 510, a signal calculation simplification range determination unit 522, a signal calculation simplification execution unit 530, and a highlight display unit 550. The asynchronous element determination unit 510 and the signal calculation simplification execution unit 530 are the same as those in the sixth embodiment.
[0330]
The asynchronous element determination unit 510 determines an event execution unit (processing unit in the event-driven method) in the input logic circuit description 900 that is an asynchronous element.
[0331]
The signal calculation simplification range determination unit 522 groups which event execution units in the logic circuit 900 are grouped in any order for the range excluding event execution units determined as asynchronous elements by the asynchronous element determination unit 510. For example, it is determined whether the signal calculation can be simplified, and the range of event execution units to be grouped is determined. In addition, information indicating the determined range is sent to the highlight display unit 550.
[0332]
Instead of sending information indicating a range in which it is determined that the signal calculation can be simplified, or in addition thereto, information indicating the asynchronous element determined by the asynchronous element determining unit 510 is transmitted to the highlight display unit 550. May be.
[0333]
The highlight display unit 50 highlights each description range determined by the signal simplification range determination unit 22. The highlight display may be performed on a circuit diagram displayed on a predetermined display device, or may be performed on a VHDL source code displayed on the predetermined display device. Alternatively, a graph representing each event execution unit as a node and a signal propagating between the event execution units as an edge may be displayed on a predetermined display device, and highlight display may be performed on the graph.
[0334]
The highlighting (highlighting) method includes coloring, shadowing, changing the thickness and shape of the outline, blinking display, and marking on the event execution unit corresponding to the range of signal simplification. May be. Conversely, the above operation may be performed on event execution units other than the signal simplification range.
[0335]
The signal calculation simplification execution unit 530 applies an operation for grouping event execution units to each of the description ranges determined by the signal calculation simplification range determination unit 522 to simplify the signal calculation processing.
[0336]
The logic circuit conversion method used in the circuit conversion device 603 according to this embodiment will be described with a simple example.
[0337]
64 and 65 are a circuit diagram of the input circuit and a corresponding VHDL description, respectively. FIG. 64 is obtained by replacing the latch circuit p3 in FIG. 46 with an asynchronous element p3a including a self-loop as shown in FIG. Similarly, FIG. 65 is obtained by replacing the description of the latch circuit p3 in FIG. 47 with the description of the asynchronous element p3a as shown in FIG. Here, the input circuit may be expressed by a net list.
[0338]
When the description of FIG. 64 or 65 is input to the logic circuit conversion device 603, the asynchronous element determination unit 510 determines p3a as an asynchronous element.
[0339]
The signal calculation simplification range determination unit 522 determines a range in which signal calculation can be simplified by grouping event execution units based on the determined asynchronous elements. The determination of this range can be realized by, for example, (Procedure 6-1) to (Procedure 6-5) of the sixth embodiment.
[0340]
An example of the result of applying the above procedure to the logic circuit shown in FIG. 64 is shown in FIG. That is, as shown in FIG. 66, the signal range application range is {p1, p2, p4, p5} (707 in the figure).
[0341]
FIG. 67 shows a highlight display example of the signal simplification application range as shown in FIG. Here, the circuit elements which are event execution units are hatched (shaded) to perform highlight display.
[0342]
Instead of the signal simplification application range, the asynchronous element may be highlighted based on the information indicating the asynchronous element sent from the asynchronous element determination unit 510. FIG. 68 shows a highlight display example of the circuit portion (event execution unit p3a) determined to be an asynchronous element in FIG. Further, as shown in FIG. 69, a portion corresponding to the signal simplification application range on the source code of FIG. 65 may be highlighted.
[0343]
The user can specify the event execution unit p3a as an asynchronous element by looking at the highlight display of any of FIGS. 67 to 69 displayed on the predetermined display device.
[0344]
At this time, the user reviews the VHDL description in FIG. 65 and determines that the event execution unit p3a can be rewritten. As shown in FIG. 70, the event execution unit p3a in the input VHDL description is equivalent to event execution. Assume that the units p31 and p32 are rewritten. FIG. 71 shows a circuit diagram corresponding to the input VHDL description as shown in FIG.
[0345]
When the input circuit shown in FIG. 70 or 71 rewritten in this way is input again to the circuit conversion device 603, the asynchronous element determination unit 510 determines that no asynchronous element is included in the input circuit. Therefore, for example, according to the procedures of (Procedure 6-1) to (Procedure 6-5) described in the sixth embodiment, the signal calculation simplified range determination unit 522 shows the signal calculation simplified range as shown in FIG. {P1, p2, p31, p4, p32, p5} are determined (709 in the figure).
[0346]
The signal calculation simplification execution unit 530 collects a group of event execution units within the range determined by the signal calculation simplification range determination unit 522 into one event execution unit. This can be realized by (Procedure 6-A) and (Procedure 6-B) of the sixth embodiment.
[0347]
Note that results corresponding to FIGS. 49 and 50 of the sixth embodiment (block diagram showing conversion results, VHDL description) are omitted.
[0348]
The description in which the signal calculation is simplified by the signal calculation simplification execution unit 530 is output as the logic circuit description 903.
[0349]
The output circuit may be a drawing, a netlist, or an HDL description. Also, HDL is not limited to VHDL.
[0350]
In this way, by reminding the user of the presence of an asynchronous element by highlighting, the user can replace a circuit including the asynchronous element with an equivalent circuit having fewer asynchronous elements. Using the method described in the sixth embodiment, it is possible to efficiently obtain a circuit in which the amount of processing required for executing the simulation is reduced from the input circuit thus obtained.
[0351]
Note that, as described in the sixth embodiment, a plurality of groups for the range to which simplification is applied can be provided. In this case, in order to distinguish and highlight each group, different coloring may be applied, or shading may be changed.
[0352]
(8-2) Logic simulation device
Next, an embodiment of a logic simulation device provided with a circuit conversion device according to an eighth embodiment will be described.
[0353]
As shown in FIG. 73, the logic simulation apparatus according to this embodiment includes an asynchronous element determination unit 510, a signal operation simplification range determination unit 522, and a signal operation simplification included in the logic circuit conversion device 603 of the eighth embodiment described above. The logic execution unit 530 and the highlight display unit 550 are further added with a logic simulation unit 590 that executes a logic simulation based on a given logic circuit description. As the logic simulation unit 590, a known one is used.
[0354]
The circuit conversion device 603 converts the logic circuit description to be subjected to logic simulation into a logic circuit description with a simplified signal calculation and a small amount of signal calculation processing, and receives the converted logic circuit description as an input to perform logic analysis. Run the simulation. Therefore, it is possible to speed up the execution of the logic simulation while the user has a function of specifying the asynchronous element.
[0355]
As described above, by providing the circuit conversion device 3 that simplifies the signal operation of the logic circuit description based on the user designation in the previous stage of the known logic simulation unit 590, the user can asynchronously execute the signal operation processing before the simplification. Elements can be specified, and a logic simulation apparatus that performs logic simulation at high speed can be realized.
[0356]
(Ninth embodiment)
The configuration example of the logic circuit conversion device according to the second invention shown in FIG. 74 shows the logic circuit conversion device of FIG. 45 in more detail. That is, the asynchronous element determination unit 510 of FIG. 45 is more specifically configured from the circuit connection information analysis unit 10 and the asynchronous element determination unit 810 according to the first invention. In addition, the same code | symbol is attached | subjected to FIG. 1 and an identical part, and a different part is demonstrated.
[0357]
As in the first aspect, the circuit connection information analyzing unit 10 uses the activation relationship between event execution units (processing units in the event-driven method) as the circuit connection information in the input logic circuit description 900, that is, event execution. Analyze the connection between units and signals.
[0358]
The asynchronous element determination unit 810 determines an event execution unit (processing unit in the event driven method) in the logic circuit description 900 analyzed by the circuit connection information analysis unit 10 as an asynchronous element.
[0359]
Based on the circuit connection information analyzed by the circuit connection information analysis unit 10, the signal calculation simplification range determination unit 520, for the range excluding the event processing unit determined as an asynchronous element by the asynchronous element determination unit 510, It is determined which signal execution can be simplified by grouping which event execution units are grouped, and determining a range of event execution units to be grouped.
[0360]
Note that the asynchronous element determination unit 510 of the logic simulation apparatus according to the second aspect of the invention also includes a circuit connection information analysis unit 10 and an asynchronous element determination unit 810, as in FIG.
[0361]
(Operations and effects of the sixth to ninth embodiments)
As described above, according to the logic circuit conversion devices 601 according to the sixth to ninth embodiments, the input ethics circuit 900 is analyzed to determine an asynchronous element, and is limited to a range excluding the asynchronous element. By executing the simplification of the signal operation processing, a logic circuit having a smaller signal operation amount can be obtained even for a logic circuit including an asynchronous element. In addition, by using the circuit obtained by the logic circuit conversion device 601 as an input to the logic simulation unit, a logic simulation device that reduces the time required to execute the logic simulation can be realized.
[0362]
The signal operation simplified range determining unit 20 of the logic circuit converter according to the first invention, the signal operation simplified range determining unit 520 of the logic circuit converter according to the second invention, and the logic circuit according to the first invention The signal operation simplification execution unit 30 of the conversion device and the signal operation simplification execution unit 530 of the logic circuit conversion device according to the second invention each perform substantially the same processing operation.
[0363]
【The invention's effect】
According to the present invention, based on the circuit connection information analyzed by the analysis unit, the determination unit determines a range in which the signal calculation process is simplified, and the simplification unit performs signal calculation processing on the determined range. By performing the simplification, the input logic circuit can be converted into a logic circuit in which the signal arithmetic processing is simplified. Then, high-speed logic simulation can be executed by the logic circuit in which the signal operation is simplified.
[0364]
According to the present invention, the event determination logic is inserted at a location determined based on the analysis result of the signal processing flow in the input logic circuit, so that the input logic circuit is originally executed when no event occurs. It is possible to convert into a logic circuit that can omit the execution of unnecessary logical operation processing parts. The logic circuit into which the event determination logic is inserted can execute a high-speed logic simulation.
[0365]
In addition, according to the present invention, a logic circuit with a smaller amount of signal operation can be obtained even for a logic circuit including asynchronous elements, and high-speed logic simulation is performed based on the logic circuit with simplified signal operation processing. Can be executed.
[Brief description of the drawings]
FIG. 1 is a diagram showing a configuration of a logic circuit converter according to a first embodiment of the present invention.
FIG. 2 is a circuit diagram showing an example of an input circuit.
FIG. 3 is a diagram showing an example of logic VHDL description corresponding to the circuit diagram of FIG. 2;
FIG. 4 is a diagram illustrating an example of connection relation data between an event execution unit and a signal.
FIG. 5 is a diagram illustrating an example of a signal calculation simplified range determination result;
FIG. 6 is a block diagram illustrating an example of a logic circuit conversion result.
FIG. 7 is a diagram showing a VHDL description of a logic circuit conversion result example
FIG. 8 is a diagram showing a circuit connection graph of a logic circuit conversion result example
FIG. 9 is a diagram showing a configuration of a logic simulation apparatus according to the embodiment.
FIG. 10 is a diagram showing a configuration of a logic circuit converter according to a second embodiment of the present invention.
FIG. 11 is a circuit diagram showing an example of an input circuit.
12 is a diagram showing an example of a logic VHDL description corresponding to the circuit diagram of FIG.
FIG. 13 is a diagram showing an example of connection relationship data between event execution units and signals.
FIG. 14 is a diagram showing an example of a signal calculation simplified range determination result
FIG. 15 is a diagram showing a configuration of a logic simulation apparatus according to the embodiment.
FIG. 16 is a diagram showing a configuration of a logic circuit converter according to a third embodiment of the present invention.
FIG. 17 is a circuit diagram showing an example of an input circuit.
18 is a diagram showing an example of a logic VHDL description corresponding to the circuit diagram of FIG. 17;
FIG. 19 is a diagram showing an example of connection relation data between event execution units and signals;
FIG. 20 is a diagram showing an example of function information for an event execution unit
FIG. 21 is a diagram showing an example of a signal calculation simplified range determination result
FIG. 22 is a block diagram showing an example of a logic circuit conversion result
FIG. 23 is a diagram showing a VHDL description of a logic circuit conversion result example;
FIG. 24 is a diagram showing a circuit connection graph of a logic circuit conversion result example;
FIG. 25 is a diagram showing a configuration of a logic simulation apparatus according to this embodiment.
FIG. 26 is a diagram showing a configuration of a logic circuit converter according to a fourth embodiment of the present invention.
FIG. 27 is a circuit diagram showing an example of an input circuit.
FIG. 28 is a diagram illustrating an example of a logic circuit description using C language.
FIG. 29 is a diagram illustrating an example of circuit connection data.
FIG. 30 is a diagram showing an example of an event determination logic insertion location determination result
FIG. 31 is a diagram illustrating an example of a logic circuit description in which event determination logic is inserted.
FIG. 32 is a circuit diagram showing an example of an input circuit.
FIG. 33 is a circuit diagram showing an example of a circuit that does not satisfy the event determination logic insertion condition;
FIG. 34 is a flowchart illustrating an example of processing in the event determination logic insertion location determination unit 312;
FIG. 35 is a diagram showing an example of a circuit in which event determination logic is inserted by nesting.
FIG. 36 is a diagram showing another configuration example of the logic circuit conversion device.
FIG. 37 is a diagram showing still another configuration example of the logic circuit conversion device.
FIG. 38 is a diagram showing still another configuration example of the logic circuit conversion device.
FIG. 39 is a diagram showing an example of execution history information
FIG. 40 is a diagram showing another example of execution history information
FIG. 41 is a diagram showing a configuration of a logic simulation apparatus according to a fifth embodiment of the present invention.
FIG. 42 is a diagram showing another configuration example of the logic simulation apparatus.
FIG. 43 is a diagram showing still another configuration example of the logic simulation apparatus.
FIG. 44 is a diagram showing still another configuration example of the logic simulation apparatus.
FIG. 45 is a diagram showing a configuration example of a logic circuit converter according to a sixth embodiment of the present invention.
FIG. 46 is a circuit diagram showing an example of an input logic circuit;
47 is a diagram showing an example of a logic VHDL description corresponding to the circuit diagram of FIG. 46;
FIG. 48 is a diagram showing an example of a signal calculation simplified range determination result
FIG. 49 is a block diagram showing an example of logic circuit conversion results
FIG. 50 is a diagram showing a VHDL description of a logic circuit conversion result example
FIG. 51 is a diagram showing another example of a signal calculation simplified range determination result;
FIG. 52 is a diagram showing a VHDL description of an example of an asynchronous element
53 is a diagram showing an example of a circuit diagram corresponding to the VHDL description in FIG. 52;
54 is a diagram showing another example of a circuit diagram corresponding to the VHDL description of FIG. 52;
FIG. 55 is a diagram showing a VHDL description of an example of an asynchronous element
56 is a circuit diagram corresponding to the VHDL description of FIG.
FIG. 57 is a diagram showing a VHDL description of an example of an asynchronous element
58 is a circuit diagram corresponding to the VHDL description of FIG.
FIG. 59 is a diagram showing a configuration of a logic simulation apparatus according to the sixth embodiment.
FIG. 60 is a diagram showing a configuration of a circuit conversion device according to a seventh embodiment of the present invention.
FIG. 61 is a diagram showing an example of a signal calculation simplified range determination result
FIG. 62 is a diagram showing a configuration of a logic simulation apparatus according to a seventh embodiment.
FIG. 63 is a diagram showing a configuration of a circuit converter according to an eighth embodiment of the present invention.
FIG. 64 is a circuit diagram showing an example of an input logic circuit;
65 is a diagram showing an example of a logic VHDL description corresponding to the circuit diagram of FIG. 64;
FIG. 66 is a diagram showing an example of a signal calculation simplified range determination result
FIG. 67 is a diagram showing an example of highlight display of a signal calculation simplification range;
FIG. 68 is a diagram showing another example of signal display simplified range highlight display;
FIG. 69 is a diagram showing still another example of highlight display of a signal calculation simplification range;
FIG. 70 is a diagram showing a VHDL description of the input circuit after rewriting.
71 is a circuit diagram corresponding to the VHDL description of FIG.
FIG. 72 is a diagram showing a signal calculation simplified range determination result;
FIG. 73 is a diagram showing a configuration of a logic simulation apparatus according to an eighth embodiment.
FIG. 74 relates to a configuration example of a logic circuit converter according to a ninth embodiment of the present invention, and shows the logic circuit converter in FIG. 45 in more detail.
[Explanation of symbols]
1, 2, 3, ... logic circuit converter
10. Circuit connection information analysis unit
20, 21, 22 ... Signal calculation simplified range determination unit
30: Signal calculation simplification execution unit
40 ... Simplified application range designation part
50. Circuit function determination unit
90 ... Logic simulation section
310, 400, 401, 402 ... logic circuit converter
311: Signal processing flow analysis unit
312, 318, 319... Event determination logic insertion location determination unit
313: Event determination logic insertion unit
316: Event determination logic deletion unit
317: Event determination logic insertion range designation part
321, 330 ... simulation execution unit
331... Execution history information collection unit
501, 502, 503, 504 .. logic simulation device
510... Asynchronous element determination unit
520 ... Signal calculation simplified range determination unit
530: Signal calculation simplification execution unit
540 ... Simplified application range designation part
550 ... Highlight display section
590: Logic simulation section
601, 602, 603... Logic circuit converter
900 ... Logic circuit description (input logic circuit)
901, 902, 903 ... logic circuit description (output logic circuit)
905 ... Range designation data

Claims (1)

VHDLのハードウエア記述言語で記述された入力論理回路を、VHDLの論理シミュレーションのための論理回路へ変換する論理回路変換装置であって、
信号演算処理をそれぞれ行う複数のイベント実行単位を含む前記入力論理回路の記述に基づいて、前記複数のイベント実行単位と信号との接続関係を含む回路接続情報を求める第1の手段と、
前記入力論理回路中の非同期要素を除いた部分に含まれる複数のイベント実行単位のうち、グループ化の対象とする複数のイベント実行単位を指定するための第2の手段と、
前記指定された複数のイベント実行単位を対象として、前記回路接続情報を基に、当該複数のイベント実行単位を入力側からの最長パスから順に大きいレベルとなるようにレベル付けを行うとともに、各イベント実行単位の機能がクロック生成回路、レジスタ、ラッチ、組合せ回路のうちのいずれであるかを判定し、入力側から始めて、この判定された機能を基に、当該レベルの小さい順に複数のイベント実行単位を1つにまとめた複数のグループを求める第3の手段と、
前記複数のグループのそれぞれについて、当該グループへの入力信号を代入して当該グループ内のイベント実行単位で行われる信号演算処理に対して、
前記回路接続情報に基づいて前記信号演算処理結果が当該グループ内のイベント実行単位のみに出力される第1の代入文を求め、この第1の代入文を当該グループ内のイベント実行単位で実行される論理演算結果をVHDLの変数として出力する第2の代入文に書き換え、
前記回路接続情報に基づいて前記信号演算処理結果が当該グループ内のイベント実行単位および当該グループ外の両方に出力される第3の代入文を求め、この第3の代入文を当該グループ内のイベント実行単位で実行される論理演算結果をVHDLの変数として出力する第4の代入文と、前記変数を入力として前記第3の代入文の出力信号を出力とする信号演算を行う第5の代入文とに書き換え、
前記第1の代入文の出力信号を入力信号として当該グループ内のイベント実行単位で実行されるVHDLの信号演算またはVHDLの論理演算を行う第6の代入文に対して、前記第6の代入文への入力信号として含む前記第1の代入文の出力信号を前記第2の代入文の出力である変数に書き換え、
前記第3の代入文の出力信号を入力信号として当該グループ内のイベント実行単位で実行されるVHDLの信号演算またはVHDLの論理演算を行う第7の代入文に対して、前記第7の代入文への入力信号として含む前記第3の代入文の出力信号を前記第4の代入文の出力である変数に書き換える第4の手段と、
を具備したことを特徴とする論理回路変換装置。
The input logic circuit described in a hardware description language VHDL, a logic circuit converter for converting into a logic circuit for logical simulation VHDL,
First means for obtaining circuit connection information including a connection relationship between the plurality of event execution units and signals based on a description of the input logic circuit including a plurality of event execution units each performing signal arithmetic processing;
Among the plurality of event execution unit of contained in a portion excluding the asynchronous element in the input logic circuit, second means for designating a plurality of event execution units subject to grouping,
For the plurality of designated event execution units , the plurality of event execution units are leveled in order from the longest path from the input side based on the circuit connection information, and each event Determine whether the function of the execution unit is a clock generation circuit, a register, a latch, or a combinational circuit, and start from the input side. Based on the determined function, multiple event execution units A third means for obtaining a plurality of groups in which
For each of the plurality of groups, with respect to signal calculation processing performed in the event execution unit in the group by substituting the input signal to the group,
Based on the circuit connection information, a first assignment statement in which the signal operation processing result is output only to the event execution unit in the group is obtained, and the first assignment statement is executed in the event execution unit in the group. Rewrite the logical operation result to the second assignment statement that outputs as a VHDL variable,
Based on the circuit connection information, a third assignment statement in which the signal operation processing result is output to both the event execution unit in the group and outside the group is obtained, and the third assignment statement is obtained as an event in the group. A fourth assignment statement that outputs a logical operation result executed in an execution unit as a variable of VHDL, and a fifth assignment statement that performs a signal operation that takes the variable as an input and outputs an output signal of the third assignment statement Rewritten with
With respect to a sixth assignment statement that performs a VHDL signal operation or a VHDL logic operation executed in an event execution unit in the group using the output signal of the first assignment statement as an input signal, the sixth assignment statement Rewriting the output signal of the first assignment statement included as an input signal to the variable that is the output of the second assignment statement,
With respect to a seventh assignment statement that performs a VHDL signal operation or a VHDL logic operation executed in an event execution unit in the group using the output signal of the third assignment statement as an input signal, the seventh assignment statement A fourth means for rewriting an output signal of the third assignment statement included as an input signal to a variable that is an output of the fourth assignment statement ;
A logic circuit conversion device comprising:
JP12250997A 1996-05-21 1997-05-13 Logic circuit converter Expired - Fee Related JP3751410B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP12250997A JP3751410B2 (en) 1996-05-21 1997-05-13 Logic circuit converter
US09/076,847 US6099577A (en) 1997-05-13 1998-05-13 Logic circuit conversion method and logic circuit design support device

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP12523096 1996-05-21
JP8-125230 1996-05-21
JP12250997A JP3751410B2 (en) 1996-05-21 1997-05-13 Logic circuit converter

Publications (2)

Publication Number Publication Date
JPH1069505A JPH1069505A (en) 1998-03-10
JP3751410B2 true JP3751410B2 (en) 2006-03-01

Family

ID=26459616

Family Applications (1)

Application Number Title Priority Date Filing Date
JP12250997A Expired - Fee Related JP3751410B2 (en) 1996-05-21 1997-05-13 Logic circuit converter

Country Status (1)

Country Link
JP (1) JP3751410B2 (en)

Also Published As

Publication number Publication date
JPH1069505A (en) 1998-03-10

Similar Documents

Publication Publication Date Title
Eles et al. System synthesis with VHDL
US6816825B1 (en) Simulation vector generation from HDL descriptions for observability-enhanced statement coverage
US6292931B1 (en) RTL analysis tool
US6378123B1 (en) Method of handling macro components in circuit design synthesis
US9690550B2 (en) Program optimization via compile time execution
US6836877B1 (en) Automatic synthesis script generation for synopsys design compiler
US6289498B1 (en) VDHL/Verilog expertise and gate synthesis automation system
US6173435B1 (en) Internal clock handling in synthesis script
US6263483B1 (en) Method of accessing the generic netlist created by synopsys design compilier
US6421818B1 (en) Efficient top-down characterization method
US6295636B1 (en) RTL analysis for improved logic synthesis
US6205572B1 (en) Buffering tree analysis in mapped design
US20040111248A1 (en) Polymorphic computational system and method
US20050091025A1 (en) Methods and systems for improved integrated circuit functional simulation
JP2004005674A (en) Efficient bound model inspecting method
US6289491B1 (en) Netlist analysis tool by degree of conformity
EP1769407A2 (en) Loop manipulation in a behavioral synthesis tool
KR20220148913A (en) Machine Learning Based Metric Prediction in Early Stage Circuit Design
US6099577A (en) Logic circuit conversion method and logic circuit design support device
JP2006139729A (en) Hardware verification programming language model generation apparatus, hardware verification programming language model generation method, computer system, hardware simulation method, control program, and readable storage medium
Karmazin et al. Timing driven placement for quasi delay-insensitive circuits
JPH113367A (en) Design environment and method for generating implementable description in digital system
US11556676B2 (en) Scalable formal security verification of circuit designs
JP3751410B2 (en) Logic circuit converter
Nasartschuk et al. Visualization support for FPGA architecture exploration

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20050415

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20050606

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20051207

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

Free format text: PAYMENT UNTIL: 20091216

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20091216

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20101216

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20111216

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20121216

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees