JP5262678B2 - 動作合成システム、動作合成方法、及び動作合成用プログラム - Google Patents

動作合成システム、動作合成方法、及び動作合成用プログラム Download PDF

Info

Publication number
JP5262678B2
JP5262678B2 JP2008323885A JP2008323885A JP5262678B2 JP 5262678 B2 JP5262678 B2 JP 5262678B2 JP 2008323885 A JP2008323885 A JP 2008323885A JP 2008323885 A JP2008323885 A JP 2008323885A JP 5262678 B2 JP5262678 B2 JP 5262678B2
Authority
JP
Japan
Prior art keywords
cycle level
level model
logic
model
behavioral
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.)
Active
Application number
JP2008323885A
Other languages
English (en)
Other versions
JP2010146359A (ja
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2008323885A priority Critical patent/JP5262678B2/ja
Publication of JP2010146359A publication Critical patent/JP2010146359A/ja
Application granted granted Critical
Publication of JP5262678B2 publication Critical patent/JP5262678B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、動作合成システム、動作合成方法、及び動作合成用プログラムに関し、特に、性能評価用のサイクル精度シミュレーションモデルを生成する動作合成システム、動作合成方法、及び動作合成用プログラムに関する。
現在、所望のシステムの回路機能の全てを1つのチップで実現するLSI(Large Scale Integration)が知られている。このようなLSIは、SOC(System On Chip)、又はシステムLSI(System Large Scale Integration)と呼ばれる。
近年、半導体製造プロセスの微細化に伴い、システムLSIに集積できるゲート数は飛躍的に増加し、それに伴いシステムLSIの処理能力も向上している。このため、システムLSIは、画像処理や暗号化処理、フィルタ処理、復号処理等の多彩な処理に用いられている。
一般に、システムLSIの設計にあたっては、設計を自動的に行うか、もしくは設計を支援するLSI設計自動化・支援技術が採用されている。このLSI設計自動化・支援技術を採用した設計のうち、代表的なものとしては、各種EDA(Electronic Design Automation)ツールを利用したトップダウン設計が挙げられる。その上流工程から、システム設計、機能設計、論理設計、レイアウト設計と大別することができる。
図1は、トップダウン設計方法の概略工程を示すフローチャートである。
図1に示すように、トップダウン設計方法においては、まずシステム仕様の作成工程として、その動作を記述することから始まる。この工程を動作レベル設計フェーズと呼ぶ。動作レベル設計フェーズで作成された回路記述は、動作レベル回路記述、もしくは動作記述と呼ばれる。ここでは、この回路記述を動作記述と呼ぶ。動作記述の作成には、例えば、「C言語」、「C++言語」、或いは「JAVA言語(登録商標)」等が用いられる。また、「SystemC」や「SpecC」等のように、「C言語」や「C++言語」に「回路表現に便利な特徴」を付加した言語が用いられることもある。
次に、動作合成フェーズにおいて、作成された動作記述1がRTレベル(Register Transfer Level:RTL)記述2に変換される。通常、RTレベル記述2は、ハードウェア記述言語(Hardware Description Language:HDL)、もしくはプログラム言語を用いて記述される。なお、従来、このフェーズに関しては、人手により置き換えられ、HDLを用いて、直接、RTレベル記述2を作成する場合が多かった。
次に、論理合成フェーズにおいて、RTレベル記述2が、ゲートレベル記述(ゲートレベル論理回路:ネットリスト)3に自動変換される。このようにして生成されたネットリストを基にレイアウト設計が行われ、次いで、チップ設計が行われる。
システムLSI設計では、システムが所望の性能を達成できるかを調べる性能評価が重要である。
近年では、システムLSIの規模や複雑さの増大により、システム設計フェーズにおいて、動作記述を用いた性能検証が実施されるようになっている。
図2を参照すると、動作記述を用いたシステム設計フェーズでの性能評価の概略工程を示す構成図が例示されている。
図2のシステム設計フェーズでの性能評価では、動作記述、CPU(Central Processing Unit)モデル、バスモデルをシミュレータに入力し、システムLSIが所望の性能を有しているかの性能評価を行う。
しかしながら、動作記述を用いたシステム設計フェーズでの性能評価では、正確な評価を行うことができないという問題がある。動作記述には、所望の機能を達成するための処理に必要なサイクル数に関する情報が含まれていないためである。
そこで、所望の機能を達成するための処理に必要なサイクル数の情報を有した「サイクルレベルモデル」を用いて、サイクルレベルシミュレーションによる性能評価が実施される。処理に必要なサイクル数の情報を有したサイクルレベルモデルは、動作合成フェーズにおいて生成される。また、別途設計者によって用意されることもある。
図3を参照すると、サイクルレベルモデルを用いたサイクルレベルシミュレーションによる性能評価の工程を示す構成図が例示されている。
図3のサイクルレベルシミュレーションによる性能評価では、サイクルレベルモデル、CPUモデル、バスモデルをシミュレータに入力し、システムLSIが所望の性能を有しているかの性能評価を行う。
特許文献1(特許第003779651号公報)を参照すると、サイクルレベルシミュレーション装置の一例が開示されている。
サイクルレベルシミュレーションには、動作記述を用いたシミュレーションと比較して、シミュレーションに時間がかかるという問題がある。サイクルレベルモデルは、動作記述に比べて抽象度が低いためである。
特許文献2(特開2001−22808号公報)を参照すると、サイクルレベルシミュレーションの高速化の手法が開示されている。これらの技術では、検証項目に関係しない不要な論理をモデルから削除し、高速化を図っている。
しかしながら、既存の高速化の技術を用いても、十分な高速化を達成できていない。これは、不要な論理を十分に削除していないためである。
サイクルレベルシミュレーションによる性能評価では、システムが所望の性能を有しているか、すなわち、システムが所望のサイクル数で処理を完了できるかを調べることができれば十分であるにもかかわらず、システムが所望のサイクル数で処理を完了できるかどうかに注目した不要論理の削除を行うことができないためである。
また、動作記述を用いたシミュレーションを別途実施した場合に、その動作に関する統計情報を採取できるが、当該統計情報を使用した不要論理の削除の技術も開示されていない。
すなわち、サイクルレベルシミュレーションにおける既存の高速化の技術には、以下のような問題点がある。
第1の問題点は、サイクルレベルシミュレーションの高速化のために十分な不要論理の削除が行われていないということである。その理由は、システムLSIが所望のサイクル数で処理を完了できるかに注目した不要論理の削除が行われていないためである。
第2の問題点は、動作記述を用いたシミュレーションの結果をサイクルレベルシミュレーションの高速化のために使用できないということである。その理由は、動作記述を用いたシミュレーションの際に採取した統計情報を、サイクルレベルシミュレーションの際に利用できないためである。
特許第003779651号公報 特開2001−22808号公報 John P. Elliott, 「Understanding Behavioral Synthesis」, Kluwer Academic Publishers, pp. 25−40. Mark Weiser, "Program Slicing", Proceedings of the 5th international conference on Software engineering, pp 439−449, 1981.
本発明の目的は、サイクルレベルモデルの高速化のために、システムLSIが所望のサイクル数で処理を完了できるかに注目した不要論理の削除を行うことのできる動作合成システムを提供することである。
本発明の動作合成システムは、システムLSI(System Large Scale Integration)の所定の処理に必要なサイクル数の情報を有したサイクルレベルモデルを解析し、実行サイクル数に影響を与えない論理の情報を不要論理情報として抽出する不要論理解析手段と、不要論理情報を基にサイクルレベルモデルから実行サイクル数に影響を与えない論理を取り除き、性能評価モデルを生成する性能評価モデル出力手段とを具備する。
本発明の動作合成方法は、システムLSI(System Large Scale Integration)の所定の処理に必要なサイクル数の情報を有したサイクルレベルモデルを解析し、実行サイクル数に影響を与えない論理の情報を不要論理情報として抽出するステップと、不要論理情報を基にサイクルレベルモデルから実行サイクル数に影響を与えない論理を取り除き、性能評価モデルを生成するステップとを含む。
本発明の動作合成用プログラムは、システムLSI(System Large Scale Integration)の所定の処理に必要なサイクル数の情報を有したサイクルレベルモデルを解析し、実行サイクル数に影響を与えない論理の情報を不要論理情報として抽出するステップと、不要論理情報を基にサイクルレベルモデルから実行サイクル数に影響を与えない論理を取り除き、性能評価モデルを生成するステップとをコンピュータに実行させるためのプログラムである。
サイクルレベルシミュレーションによるシステムLSIの性能評価を高速化できる。その理由は、サイクルレベルモデルの不要な論理を削除するためである。
<本発明の第1実施形態>
以下に、本発明の第1実施形態について添付図面を参照して説明する。
<基本構成>
図4を参照すると、本発明の動作合成システムは、記憶装置10と、処理装置20を含む。
記憶装置10は、データやプログラムを格納する。ここでは、記憶装置10の例として、RAM(Random Access Memory)やROM(Read Only Memory)、或いはフラッシュメモリ等の半導体記憶装置を想定している。なお、記憶装置10は、HDD(Hard Disk Drive)やSSD(Solid State Drive)等の外部記憶装置(ストレージ)でも良い。或いは、記憶装置10は、DVD(Digital Versatile Disk)やメモリカード等の記憶媒体(メディア)でも良い。また、記憶装置10は、コンピュータ本体に内蔵された記憶装置に限らず、周辺機器(外付けHDD等)や外部のサーバ(ストレージサーバ等)に設置された記憶装置、或いは、NAS(Network Attached Storage)でも良い。但し、実際には、これらの例に限定されない。
記憶装置10は、動作記述記憶部11と、性能評価モデル記憶部12とを含む。
動作記述記憶部11は、動作合成システムの入力となる動作記述を予め(事前に)記憶している。なお、動作合成システムは、動作合成装置でも良い。
性能評価モデル記憶部12は、動作合成システムの出力である性能評価モデルを記憶する。
処理装置20は、プログラム制御により動作する。ここでは、処理装置20の例として、CPU(Central Processing Unit)やマイクロプロセッサ(microprocessor)等の処理装置、又は同様の機能を有する半導体集積回路(Integrated Circuit:IC)等を想定している。なお、処理装置20は、PC(パソコン)、シンクライアント端末/サーバ、ワークステーション、メインフレーム、スーパーコンピュータ等のコンピュータでも良い。但し、実際には、これらの例に限定されない。
処理装置20は、最適化・スケジューリング・バインディング処理部21と、不要論理解析処理部22と、性能評価モデル出力部23とを含む。
最適化・スケジューリング・バインディング処理部21は、動作記述記憶部11から動作記述を読み込み、最適化処理、スケジューリング処理、バインディング処理を行い、動作記述をサイクルレベルモデルに変換する。
不要論理解析処理部22は、最適化・スケジューリング・バインディング処理部21が変換したサイクルレベルモデルを解析し、実行サイクル数に影響を与えない論理の情報(不要論理情報)を抽出する。
性能評価モデル出力部23は、不要論理解析処理部22が抽出した不要論理情報を基にサイクルレベルモデルから実行サイクル数に影響を与えない論理を取り除き、性能評価モデルを生成し、生成された性能評価モデルを性能評価モデル記憶部12に記憶する。
すなわち、サイクルレベルモデルから実行サイクル数に影響を与えない論理を取り除いたものが、性能評価モデルとなる。
<第1実施形態の動作の説明>
次に、図5のフローチャートを参照して、本実施形態の全体の動作について詳細に説明する。
(1)ステップA11
まず、最適化・スケジューリング・バインディング処理部21は、記憶装置10の動作記述記憶部11より動作記述を読み出す。
(2)ステップA12
次に、最適化・スケジューリング・バインディング処理部21は、最適化処理、スケジューリング処理、バインディング処理を行い、サイクルレベルモデルに変換する。このとき、最適化・スケジューリング・バインディング処理部21は、最適化処理、スケジューリング処理、バインディング処理に、例えば、非特許文献1に記載の既存の技術を使用しても良い。
なお、非特許文献1は、<John P. Elliott, 「Understanding Behavioral Synthesis」, Kluwer Academic Publishers, pp. 25−40.>である。
(3)ステップA13
次に、不要論理解析処理部22は、サイクルレベルモデルを解析し、実行サイクル数に影響を与えない論理の情報(不要論理情報)を抽出する。このとき、不要論理解析処理部22は、実行サイクル数に影響を与えない論理の情報の抽出に、例えば、非特許文献2に記載の既存の技術を使用しても良い。
なお、非特許文献2は、<Mark Weiser, “Program Slicing”, Proceedings of the 5th international conference on Software engineering, pp 439−449, 1981.>である。
(4)ステップA14
次に、性能評価モデル出力部23は、不要論理情報を基に、実行サイクル数に影響を与えない論理をサイクルレベルモデルから取り除き、性能評価モデルを生成する。
(5)ステップA15
最後に、性能評価モデル出力部23は、生成された性能評価モデルを記憶装置10の性能評価モデル記憶部12に記憶する。
本実施形態では、不要論理解析処理部22がサイクルレベルモデルのうち実行サイクル数に影響を与えない論理の情報を抽出し、性能評価モデル出力部が実行サイクル数に影響を与えない論理をサイクルレベルモデルから取り除いて性能評価モデルとして出力するというように構成されているため、高速な性能評価モデルを生成できる。
<本発明の第2実施形態>
以下に、本発明の第2実施形態について詳細に説明する。
<基本構成>
図6を参照すると、本発明の動作合成システムは、記憶装置10と、処理装置20を含む。
本実施形態では、記憶装置10が、図4に示された第1実施形態における記憶装置10の構成に加え、シミュレーションプロファイル記憶部13を有する点で異なる。
また、本実施形態では、データ処理装置20が、図4に示された第1実施形態におけるデータ処理装置20の構成に加え、分岐条件論理簡単化部24を有する点で異なる。
記憶装置10は、動作記述記憶部11と、性能評価モデル記憶部12と、シミュレーションプロファイル記憶部13とを含む。
動作記述記憶部11、及び性能評価モデル記憶部12については、第1実施形態と同様である。
シミュレーションプロファイル記憶部13は、シミュレーション時に採取されたプロファイル(シミュレーションプロファイル)を予め記憶しておく。
該シミュレーションは、例えば、動作合成システムの入力である動作記述を用いた動作シミュレーションにて実施されたものである。
また、該シミュレーションは、サイクルレベルモデルを用いたサイクルレベルシミュレーションにて実施されたものであっても良い。
また、該シミュレーションは、動作合成システムの別の出力であるRTL(Register Transfer Level)モデルを用いたRTLシミュレーションにて実施されたものであっても良い。
該シミュレーションプロファイルは、例えば、動作記述、サイクルレベルモデル、又はRTLモデルの各分岐においてどの条件が成り立ったかの統計情報である。すなわち、該シミュレーションプロファイルは、条件成立状況に関する統計情報であっても良い。
また、該シミュレーションプロファイルは、動作記述、サイクルレベルモデル、又はRTLモデルの各分岐において、分岐の訪問回数と、分岐の結果の相関の情報を持った統計情報であっても良い。
また、該シミュレーションプロファイルには、動作記述、サイクルレベルモデル、又はRTLモデルの2つ以上(複数)の分岐において、分岐の結果の相関の情報を持った統計情報であっても良い。
また、該シミュレーションプロファイルには、動作記述、サイクルレベルモデル、又はRTLモデルの各変数が取り得る値の情報を持った統計情報であっても良い。
処理装置20は、最適化・スケジューリング・バインディング処理部21と、不要論理解析処理部22と、性能評価モデル出力部23と、分岐条件論理簡単化部24とを含む。
最適化・スケジューリング・バインディング処理部21、不要論理解析処理部22、及び性能評価モデル出力部23については、第1実施形態と同様である。
分岐条件論理簡単化部24は、記憶装置10の動作シミュレーションプロファイル記憶部13から、シミュレーションプロファイルを読み出し、該シミュレーションプロファイルを基にサイクルレベルモデルの分岐条件の論理を簡単化する。
分岐条件論理簡単化部24は、例えば、どの条件が成り立ったかの統計情報に則った生起確率を持った乱数で、1つ又は複数(少なくとも1つ)の分岐の条件を置き換えることによって、該論理を簡単化する。
また、分岐条件論理簡単化部24は、例えば、分岐の訪問回数とどの分岐が成り立ったかの相関の情報を持った統計情報に則った生起確率を持った乱数で、1つ又は複数(少なくとも1つ)の分岐の条件を置き換えることによって、該論理を簡単化する。
また、分岐条件論理簡単化部24は、例えば、2つ以上(複数)の分岐間の、分岐の結果の相関の統計情報に則った生起確率を持った乱数で、1つ又は複数(少なくとも1つ)の分岐の条件を置き換えることによって、該論理を簡単化する。
また、分岐条件論理簡単化部24は、例えば、各変数が取り得る値の統計情報に則った生起確率を持った乱数で、1つ又は複数(少なくとも1つ)の変数を置き換えることによって、該論理を簡単化する。
<第2実施形態の動作の説明>
図7のフローチャートを参照して、本実施形態の動作について詳細に説明する。なお、図7のフローチャートは、図5のフローチャートの途中に、ステップA23、及びステップA24が追加されたものである。
(1)ステップA21
最適化・スケジューリング・バインディング処理部21は、記憶装置10の動作記述記憶部11より動作記述を読み出す。
(2)ステップA22
次に、最適化・スケジューリング・バインディング処理部21は、最適化処理、スケジューリング処理、バインディング処理を行い、サイクルレベルモデルに変換する。ここまでの動作は、第1実施形態のステップA11〜ステップA12と同様である。
(3)ステップA23
次に、分岐条件論理簡単化部24は、記憶装置10のシミュレーションプロファイル記憶部13よりシミュレーションプロファイルを読み出す。
(4)ステップA24
次に、分岐条件論理簡単化部24は、サイクルレベルモデルを解析し、シミュレーションプロファイルを基に、サイクルレベルモデルの分岐条件の論理を簡単化する。これ以降の動作は、第1実施形態のステップA13〜ステップA15と同様である。
(5)ステップA25
次に、不要論理解析処理部22は、サイクルレベルモデルを解析し、実行サイクル数に影響を与えない論理の情報(不要論理情報)を抽出する。
(6)ステップA26
次に、性能評価モデル出力部23は、不要論理情報を基に実行サイクル数に影響を与えない論理をサイクルレベルモデルから取り除く。
(7)ステップA27
最後に、性能評価モデル出力部23は、生成された性能評価モデルを記憶装置10の性能評価モデル記憶部12に記憶する。
次に、本実施形態の効果について説明する。
本実施形態では、分岐条件論理簡単化部24が、サイクルレベルモデル中の分岐条件の論理を簡単化するため、サイクルレベルモデルのうち実行サイクル数に影響を与える論理を削減するような構成となっている。そのため、不要論理解析処理部22、及び性能評価モデル出力部23は、より多くの論理をサイクルレベルモデルから取り除いて性能評価モデルとして出力し、高速な性能評価モデルを生成できる。
<本発明の第3実施形態>
次に、本発明の第3実施形態について図面を参照して詳細に説明する。
<基本構成>
図8を参照すると、本発明の動作合成システムは、記憶装置10と、処理装置20を含む。
本実施形態では、記憶装置10が、図6に示された第2実施形態における記憶装置10の構成に加え、対応関係記憶部14を有する点で異なる。
また、本実施形態では、処理装置20が、最適化・スケジューリング・バインディング処理部21の代わりに、第2の最適化・スケジューリング・バインディング処理部25を備える点で異なる。
更に、処理装置20が、分岐条件論理簡単化部24の代わりに、第2の分岐条件論理簡単化部26を備える点で異なる。
記憶装置10は、動作記述記憶部11と、性能評価モデル記憶部12と、シミュレーションプロファイル記憶部13と、対応関係記憶部14とを含む。
動作記述記憶部11、性能評価モデル記憶部12、及びシミュレーションプロファイル記憶部13については、第2実施形態と同様である。すなわち、動作記述記憶部11、性能評価モデル記憶部12については、第1実施形態と同様である。
対応関係記憶部14は、動作記述とサイクルレベルモデルとの対応関係を記憶する。
処理装置20は、不要論理解析処理部22と、性能評価モデル出力部23と、第2の最適化・スケジューリング・バインディング処理部25と、第2の分岐条件論理簡単化部26とを含む。
不要論理解析処理部22、及び性能評価モデル出力部23については、第1実施形態及び第2実施形態と同様である。
第2の最適化・スケジューリング・バインディング処理部25は、動作記述記憶部11から動作記述を読み込み、最適化処理、スケジューリング処理、バインディング処理を行い、動作記述をサイクルレベルモデルに変換すると同時に、動作記述とサイクルレベルモデルとの対応関係を示す情報を生成し、対応関係を示す情報を記憶装置10の対応関係記憶部14に記憶する。
該対応関係は、動作記述の変数とサイクルレベルモデルのレジスタやワイヤ等の信号の対応関係を有していても良い。
また、該対応関係には、動作記述の文と、サイクルレベルモデルの文の対応関係を有していても良い。特に、動作記述の分岐文と、サイクルレベルモデルの分岐文の対応関係を有していても良い。
第2の分岐条件論理簡単化部26は、記憶装置10の動作シミュレーションプロファイル記憶部13からシミュレーションプロファイルを読み出し、記憶装置10の対応関係記憶部14から対応関係を読み出し、該シミュレーションプロファイルと該対応関係を基にサイクルレベルモデルの分岐条件の論理を簡単化する。
すなわち、第2の分岐条件論理簡単化部26は、シミュレーションプロファイルに、例えば、動作記述の各分岐において、どの条件が成り立ったかの統計情報が含まれる場合、対応関係を基に、動作記述の各分岐に対応するサイクルレベルモデルの分岐を探し、対応するサイクルレベルモデルの分岐条件の論理を簡単化する。ここでは、第2の分岐条件論理簡単化部26は、動作記述の分岐の訪問回数とどの分岐が成り立ったかの相関の情報を持った統計情報に則った生起確率を持った乱数で、対応するサイクルレベルモデルの1つ又は複数(少なくとも1つ)の分岐の条件を置き換えることによって、対応するサイクルレベルモデルの分岐条件の論理を簡単化する。
また、第2の分岐条件論理簡単化部26は、シミュレーションプロファイルに、動作記述の各分岐において、分岐の訪問回数と、分岐の結果の相関の情報を持った統計情報が含まれる場合、対応関係を基に、動作記述の各分岐に対応するサイクルレベルモデルの分岐を探索し、対応するサイクルレベルモデルの分岐条件の論理を簡単化する。ここでは、第2の分岐条件論理簡単化部26は、動作記述の分岐の訪問回数と、分岐の結果の相関の情報を持った統計情報に則った生起確率を持った乱数で、対応するサイクルレベルモデルの1つ又は複数(少なくとも1つ)の分岐の条件を置き換えることによって、対応するサイクルレベルモデルの分岐条件の論理を簡単化する。
また、第2の分岐条件論理簡単化部26は、シミュレーションプロファイルに、例えば、動作記述の2つ以上(複数)の分岐において、分岐の結果の相関の情報を持った統計情報が含まれる場合、対応関係を基に、動作記述の各分岐に対応するサイクルレベルモデルの分岐を探索し、対応するサイクルレベルモデルの分岐条件の論理を簡単化する。ここでは、第2の分岐条件論理簡単化部26は、動作記述の2つ以上(複数)の分岐において、分岐の結果の相関の情報を持った統計情報に則った生起確率を持った乱数で、対応するサイクルレベルモデルの1つ又は複数(少なくとも1つ)の分岐の条件を置き換えることによって、対応するサイクルレベルモデルの分岐条件の論理を簡単化する。
また、第2の分岐条件論理簡単化部26は、シミュレーションプロファイルに、動作記述の各変数が取り得る値の情報を持った統計情報が含まれる場合、対応関係を基に、動作記述の各変数に対応するサイクルレベルモデルの信号を探し、当該信号の論理を簡単化する。ここでは、第2の分岐条件論理簡単化部26は、動作記述の各変数が取り得る値の情報を持った統計情報に則った生起確率を持った乱数で、対応するサイクルレベルモデルの1つ又は複数(少なくとも1つ)の信号を置き換えることによって、対応するサイクルレベルモデルの信号の論理を簡単化する。
本実施形態では、第2の最適化・スケジューリング・バインディング処理部が、動作記述とサイクルレベルモデルの対応関係を出力し、第2の分岐条件論理簡単化部26が、該対応関係を読み出して、その上で、サイクルレベルモデル中の分岐条件の論理を簡単化するため、動作記述とサイクルレベルモデルの対応関係を認識して、サイクルレベルモデルのうち実行サイクル数に影響を与える論理を削減するように構成されている。そのため、不要論理解析処理部22、及び性能評価モデル出力部23が、より多くの論理をサイクルレベルモデルから取り除いて性能評価モデルとして出力し、高速な性能評価モデルを生成できる。
<実施例>
<第1実施形態に対応する実施例>
次に、具体的な実施例を用いて本発明を実施するための最良の形態の動作を説明する。
図9を参照すると、動作記述が例示されている。当該動作記述は、「SystemC言語」を用いて例示されているが、本発明の説明に関連ない部分は、一部省略されている。
当該動作記述の1行目から6行目までに端子の情報が例示されている。当該動作記述には、bool型の入力端子「en」、int型の入力端子「in0」、「in1」、「in2」、及び「in3」がそれぞれ備えられている。また、int型の出力端子「out0」、bool型の出力端子「valid」が備えられている。
なお、bool型とは、「true(真)」か「false(偽)」を表す型である。また、int型とは、整数型である。
また、当該動作記述の8行目から23行目までに、動作の情報が例示されている。
まず、int型の変数「v」を値「0」で初期化している。更に、出力信号「valid」に値「false(偽)」を出力している。
次に、入力端子「en」から値を読み込み、その値が「true(真)」である間、13行目から16行目を繰り返す。14行目では、入力「in0」、「in1」、「in2」、「in3」から値を読み込み、その値の総和を変数「v」に足し込んでいる。
入力端子「en」から読み込んだ値が「false(偽)」である場合、出力端子「out0」に変数「v」の値を出力するとともに、出力端子「valid」に値「true(真)」を出力する。そして、最後に、出力端子「valid」に値「false(偽)」を出力する。
最適化・スケジューリング・バインディング処理部21は、動作記述記憶部11から、動作記述を読み出す(図5のステップA11)。
次に、最適化・スケジューリング・バインディング処理部21は、最適化処理、スケジューリング処理、バインディング処理を行うことにより、動作記述記憶部11から読み出された動作記述をサイクルレベルモデルに変換する(図5のステップA12)。
図10を参照すると、サイクルレベルモデルが例示されている。当該サイクルレベルモデルの1行目から6行目までに端子の情報が例示されている。当該サイクルレベルモデルは、図9の動作記述と同じ端子を持つ。
バインディング処理によって、動作記述の変数「v」が、サイクルレベルモデルではレジスタ「RG_v」に割り当てられている。
スケジューリング処理によって、動作記述の14行目の処理が、サイクルレベルモデルでは、14行目から21行目までで実現されるように変換されている。すなわち、入力端子「in0」、「in1」、「in2」、「in3」の値を、1クロック毎に順に読み出し、レジスタ「RG_v」に足し込んでいる。
次に、解析処理部23は、サイクルレベルモデルを解析し、実行サイクル数に影響を与えない論理の情報(不要論理情報)を抽出する(図5のステップA13)。
図11を参照すると、図10のサイクルレベルモデル中の不要論理情報が、下線付きの太字にて例示されている。
すなわち、サイクルレベルモデルにおいて、11行目、14行目、16行目、18行目、20行目、24行目の処理は、サイクルレベルモデルの実行サイクル数に影響を与えない。そこで、解析処理部23は、これらの論理の情報を不要倫理情報として抽出する。
次に、性能評価モデル出力部23は、不要論理情報を基に実行サイクル数に影響を与えない論理をサイクルレベルモデルから取り除く(図5のステップA14)。
そして、最後に、性能評価モデル出力部23は、性能評価モデルを出力し、記憶装置10の性能評価モデル記憶部12に格納する(図5のステップA15)。
図12を参照すると、性能評価モデルが例示されている。
図12の性能評価モデルは、図10のサイクルレベルモデルに比べて、11行目、14行目、16行目、18行目、20行目、24行目の処理が削除されている。
図12の性能評価モデルは、実行サイクル数に影響を与えない論理が削除されているため、サイクルレベルモデルに比べて高速にシミュレーションを実行可能である。そのため、性能評価モデルを使用することで、より高速に性能評価を行うことができる。
<第2実施形態に対応する実施例(1)>
次に、具体的な実施例を用いて本発明の第2実施形態を実施するための最良の形態の動作を説明する。
図13を参照すると、動作記述が例示されている。当該動作記述は、「SystemC言語」を用いて例示されているが、本発明の説明に関連ない部分は、一部省略されている。
当該動作記述の1行目から5行目までに端子の情報が例示されている。当該動作記述には、int型の入力端子「in0」、「in1」、「in2」、「in3」がそれぞれ備えられている。また、int型の出力端子「out0」、bool型の出力端子「valid」が備えられている。
また、7行目から22行目までに、動作の情報が例示されている。
まず、int型の変数「v」を値「0」で初期化している。更に、出力信号「valid」に値「false(偽)」を出力している。
次に、変数「v」の値を検査し、その値が「16」よりも小さい間、12行目から15行目を繰り返す。
14行目では、入力「in0」、「in1」、「in2」、「in3」から値を読み込み、その値の総和を変数「v」に足し込んでいる。
変数「v」の値が「16」よりも小さい場合、出力端子「out0」に変数「v」の値を出力するとともに、出力端子「valid」に値「true(真)」を出力する。そして、最後に、出力端子「valid」に値「false(偽)」を出力する。
最適化・スケジューリング・バインディング処理部21は、動作記述記憶部11から、図13の動作記述を読み出す(図5のステップA11)。
次に、最適化・スケジューリング・バインディング処理部21は、最適化処理、スケジューリング処理、バインディング処理を行うことにより、動作記述をサイクルレベルモデルに変換する(図5のステップA12)。
図14を参照すると、サイクルレベルモデルが例示されている。当該サイクルレベルモデルの1行目から5行目までに端子の情報が例示されている。当該サイクルレベルモデルは、図13の動作記述と同じ端子を持つ。
バインディング処理によって、動作記述の変数「v」が、サイクルレベルモデルではレジスタ「RG_v」に割り当てられている。
スケジューリング処理によって、動作記述の13行目の処理が、サイクルレベルモデルでは、13行目から20行目までで実現されるように変換されている。すなわち、入力端子「in0」、「in1」、「in2」、「in3」の値を、1クロック毎に順に読み出し、レジスタ「RG_v」に足し込んでいる。
図14のサイクルレベルモデルは、図10のサイクルレベルモデルと異なり、そのままでは解析処理部23によって実行サイクル数に影響を与えない不要論理の情報を得ることができない。
すなわち、図14のサイクルレベルモデルは、図10のサイクルレベルモデルと異なり、12行目の分岐の条件にレジスタ「RG_v」が使用されている。12行目の分岐が実行されるかどうかは実行サイクル数に影響を与える。そのため、10行目、13行目、15行目、19行目の処理は、実行サイクル数に影響を与えない不要論理として抽出されない。
図15を参照すると、シミュレーションプロファイルが例示されている。シミュレーションプロファイルは、予め記憶装置10のシミュレーションプロファイル記憶部13に記憶されている。
当該シミュレーションプロファイルには、サイクルレベルモデルの12行目の条件分岐において、条件が成り立った回数が100回、条件が成り立たなかった回数が同じく100回であったことが記載されている。
分岐条件論理簡単化部24は、記憶装置10のシミュレーションプロファイル記憶部13からシミュレーションプロファイルを読み出す。
次に、分岐条件論理簡単化部24は、シミュレーションプロファイルを基にサイクルレベルモデルの分岐条件の論理を簡単化する。
図16を参照すると、サイクルレベルモデル中の12行目の条件分岐の論理が簡単化されている。
シミュレーションプロファイルを参照すると、12行目の条件分岐が成り立つ確率は2分の1であることがわかる。そこで、分岐条件論理簡単化部24は、12行目の条件分岐を、「true(真)」を返す確率が2分の1である乱数関数にて置き換える。関数「rand_bool(0.5)」は、「true(真)」を返す確率が2分の1である乱数関数を表す。
次に、解析処理部23は、サイクルレベルモデルを解析し、実行サイクル数に影響を与えない論理の情報(不要論理情報)を抽出する(図5のステップA13)。
図17を参照すると、図16のサイクルレベルモデル中の不要論理情報が、下線付きの太字にて例示されている。
図16のサイクルレベルモデルでは、12行目におけるレジスタ「RG_v」の参照が、乱数関数に置き換えられたことにより、レジスタ「RG_v」の値はサイクルレベルモデルの実行サイクル数に影響を与えない。そのため、10行目、13行目、15行目、19行目、23行目の処理は、実行サイクル数に影響を与えない。そこで、解析処理部23は、これらの論理の情報を不要倫理情報として抽出する。
次に、性能評価モデル出力部23は、不要論理情報を基に実行サイクル数に影響を与えない論理をサイクルレベルモデルから取り除く(図5のステップA14)。
そして、最後に、性能評価モデル出力部23は、性能評価モデルを出力し、記憶装置10の性能評価モデル記憶部12に格納する(図5のステップA15)。
図18を参照すると、性能評価モデルが例示されている。
当該性能評価モデルは、図14のサイクルレベルモデルに比べて、10行目、13行目、15行目、19行目、23行目の処理が削除されている。
性能評価モデルは、実行される処理が削減されていることで、サイクルレベルモデルに比べて高速にシミュレーションを実行可能である。そのため、性能評価モデルを使用することで、評価の正確性は多少犠牲にはなるが、高速に性能評価を行うことができる。
<第2実施形態に対応する実施例(2)>
図19を参照すると、別のシミュレーションプロファイルが例示されている。シミュレーションプロファイルは、予め記憶装置10のシミュレーションプロファイル記憶部13に記憶されている。
図19のシミュレーションプロファイルには、図14の12行目の条件分岐において、条件分岐の訪問回数毎に、条件が成り立った回数、条件が成り立たなかった回数が、それぞれ記載されている。例えば、最初の訪問のときは、条件が成り立った回数が100回、条件が成り立たなかった回数が同じく100回であったことが記載されている。また、2回目の訪問のときは、条件が成り立った回数が50回、条件が成り立たなかった回数が同じく150回であったことが記載されている。
分岐条件論理簡単化部24は、シミュレーションプロファイルを基にサイクルレベルモデルの分岐条件の論理を簡単化する。
図20を参照すると、図19のサイクルレベルモデル中の12行目の条件分岐の論理が簡単化されている。
シミュレーションプロファイルを参照すると、12行目の条件分岐が成り立つ確率は2分の1であり、更に、訪問回数が1増える毎に成り立つ確率が2分の1ずつ減っていくことがわかる。
そこで、分岐条件論理簡単化部24は、12行目の条件分岐を、「true(真)」を返す確率が2分の1ずつ減っていく乱数関数にて置き換える。図20において、関数「rand_visit_bool()」は、「true(真)」を返す確率が2分の1ずつ減っていく乱数関数を表す。
<第2実施形態に対応する実施例(3)>
図21を参照すると、別のシミュレーションプロファイルが例示されている。シミュレーションプロファイルは、予め記憶装置10のシミュレーションプロファイル記憶部13に記憶されている。
図21のシミュレーションプロファイルには、図14の12行目の条件分岐において、変数「v」の値が「15」以下の場合が100回、16以上の場合が100回であったことが記載されている。
分岐条件論理簡単化部24は、シミュレーションプロファイルを基にサイクルレベルモデルの分岐条件の論理を簡単化する。
図22を参照すると、図21のサイクルレベルモデル中の12行目の条件分岐の論理が簡単化されている。
シミュレーションプロファイルを参照すると、12行目の条件分岐の条件と、変数「v」の値の取り得る確率を勘案すると、12行目の条件分岐が成り立つ確率は2分の1であることがわかる。
そこで、分岐条件論理簡単化部24は、12行目の条件分岐を、「true(真)」を返す確率が2分の1である乱数関数にて置き換える。図22において、関数「rand_bool(0.5)」は、「true(真)」を返す確率が2分の1である乱数関数を表す。
<第2実施形態に対応する実施例(4)>
図23を参照すると、別のサイクルレベルモデルが例示されている。
図23のサイクルレベルモデルでは、15行目から18行目までにおいて、レジスタ「RG_v」の値が「8」より小さいときに、入力端子「in0」の値を読み出し、レジスタ「RG_v」に足し込み、クロック境界を待つ。レジスタ「RG_v」の値が「8」以上のときはクロック境界を待たずに次の処理を行う。
更に、19行目から22行目までにおいて、レジスタ「RG_v」の値が「4」より小さいときに、入力端子「in1」の値を読み出し、レジスタ「RG_v」に足し込み、クロック境界を待つ。レジスタ「RG_v」の値が「4」以上のときはクロック境界を待たずに次の処理を行う。
図24を参照すると、シミュレーションプロファイルが例示されている。シミュレーションプロファイルは、予め記憶装置10のシミュレーションプロファイル記憶部13に記憶されている。
図24のシミュレーションプロファイルには、12行目の条件分岐において、条件が成り立った回数が100回、条件が成り立たなかった回数が同じく100回であったことが記載されている。
更に、図24のシミュレーションプロファイルには、15行目の条件分岐と19行目の条件分岐の相関関係に関する統計情報が記載されている。すなわち、15行目の条件分岐が成り立つとき、19行目の条件が成り立つ場合、成り立たない場合はそれぞれ50回ずつであったことが記載され、15行目の条件分岐が成り立たないときは、19行目の条件は常に成り立たないことが記載されている。
分岐条件論理簡単化部24は、シミュレーションプロファイルを基にサイクルレベルモデルの分岐条件の論理を簡単化する。
図25を参照すると、図24のサイクルレベルモデル中の12行目に加え、15行目、19行目の条件分岐の論理が簡単化されている。
シミュレーションプロファイルを参照すると15行目の条件分岐が成り立つ確率は2分の1であることがわかる。そこで、分岐条件論理簡単化部24は、15行目の条件分岐を、「true(真)」を返す確率が2分の1である乱数関数にて置き換える。図25において、関数「rand_bool(0.5)」は、「true(真)」を返す確率が2分の1である乱数関数を表す。
更に、シミュレーションプロファイルを参照すると、19行目の条件分岐は、15行目の条件が成り立つときに2分の1の確率で成り立つこと、15行目の条件が成り立たないときには、まったく成り立たないことがわかる。
そこで、分岐条件論理簡単化部24は、19行目の条件分岐を、15行目の条件が成り立つときには、「true(真)」を返す確率が2分の1である乱数関数の値を利用し、15行目の条件が成り立たないときには、常に「false(偽)」を利用するように簡単化する。ここで、変数「flag」は、15行目の条件が成り立つかどうかを保持するために利用されている。
次に、解析処理部23は、サイクルレベルモデルを解析し、実行サイクル数に影響を与えない論理の情報(不要論理情報)を抽出する。更に、性能評価モデル出力部23は、不要論理情報を基に実行サイクル数に影響を与えない論理をサイクルレベルモデルから取り除く。そして、最後に、性能評価モデル出力部23は、性能評価モデルを出力し、記憶装置10の性能評価モデル記憶部12に格納する。
図26を参照すると、性能評価モデルが例示されている。
図26の性能評価モデルは、図24のサイクルレベルモデルに比べて、10行目、13行目、20行目、23行目、27行目の処理が削除されている。
<第3実施形態に対応する実施例>
次に、具体的な実施例を用いて本発明の第3実施形態を実施するための最良の形態の動作を説明する。
図27を参照すると、図13の動作記述と、図14のサイクルレベルモデルの間の対応関係が例示されている。
図27の対応関係は、図13の動作記述を、第2の最適化・スケジューリング・バインディング処理部25が読み出し、サイクルレベルモデルとともに出力し、対応関係記憶部14に書き出したものである。
図27の対応関係を参照すると、図13の動作記述の12行目の分岐文と、図14のサイクルレベルモデルの12行目の分岐文が対応していることが示されている。
また、図27の対応関係を参照すると、図13の動作記述の変数「v」と、図14のサイクルレベルモデルのレジスタ「RG_v」が対応していることが例示されている。
第2の分岐条件論理簡単化部26は、対応関係記憶部14から対応関係を読み出し、シミュレーションプロファイル記憶部13からシミュレーションプロファイルを読み出し、サイクルレベルモデルの分岐条件の論理を簡単化する。
図16を参照すると、図14のサイクルレベルモデル中の12行目の条件分岐の論理が簡単化されている。
シミュレーションプロファイルを参照すると、動作記述の12行目の条件分岐が成り立つ確率は2分の1であることがわかる。
対応関係によると、動作記述の12行目の条件分岐が、サイクルレベルモデルの12行目の条件分岐に対応していることがわかる。
そこで、第2の分岐条件論理簡単化部26は、サイクルレベルモデルの12行目の条件分岐を、「true(真)」を返す確率が2分の1である乱数関数にて置き換える。
なお、図16において、関数「rand_bool(0.5)」は、「true(真)」を返す確率が2分の1である乱数関数を表す。
<本発明の特徴>
最後に、本発明の特徴について以下に説明する。
本発明の動作合成システムは、不要論理解析手段と、性能評価モデル出力手段とを備えたことを特徴とする。
また、本発明の動作合成システムは、最適化・スケジューリング・バインディング手段と、不要論理解析手段と、性能評価モデル出力手段とを備えたことを特徴とする。
また、本発明の動作合成システムは、分岐条件論理簡単化手段と、不要論理解析手段と、性能評価モデル出力手段とを備えたことを特徴とする。
また、本発明の動作合成システムは、最適化・スケジューリング・バインディング手段と、分岐条件論理簡単化手段と、不要論理解析手段と、性能評価モデル出力手段とを備えたことを特徴とする。
また、本発明の動作合成システムは、対応関係記憶手段と、分岐岐条件論理簡単化手段と、不要論理解析手段と、性能評価モデル出力手段とを備えたことを特徴とする。
また、本発明の動作合成システムは、最適化・スケジューリング・バインディング手段と、対応関係記憶手段と、分岐条件論理簡単化手段と、不要論理解析手段と、性能評価モデル出力手段とを備えたことを特徴とする。
分岐条件簡単化手段は、サイクルレベルモデル中の実行サイクル数に影響を与えない論理を削除する手段を含むことを特徴とする。
分岐条件簡単化手段は、シミュレーションプロファイルを基にサイクルレベルモデルの分岐条件の論理を簡単化する手段を含むことを特徴とする。
シミュレーションプロファイルは、分岐においてどの条件が成り立ったかの統計情報を含むことを特徴とする。
シミュレーションプロファイルは、分岐の回数と、分岐の結果の相関の情報を持った統計情報を含むことを特徴とする。
シミュレーションプロファイルは、分岐間における分岐の結果の相関の情報を持った統計情報を含むことを特徴とする。
シミュレーションプロファイルは、変数が取り得る値の情報を持った統計情報を含むことを特徴とする。
本発明の動作合成方法は、サイクルレベルモデル中の実行サイクル数に影響を与えない論理を削除し、性能評価モデルとして出力することを特徴とする。
また、本発明の動作合成方法は、動作記述を読み出し、最適化・スケジューリング・バインディングを行いサイクルレベルモデルに変換し、サイクルレベルモデル中の実行サイクル数に影響を与えない論理を削除し、性能評価モデルとして出力するすることを特徴とする。
また、本発明の動作合成方法は、シミュレーションプロファイルを基にサイクルレベルモデルの分岐条件の論理を簡単化し、サイクルレベルモデル中の実行サイクル数に影響を与えない論理を削除し、性能評価モデルとして出力することを特徴とする。
また、本発明の動作合成方法は、動作記述を読み出し、最適化・スケジューリング・バインディングを行いサイクルレベルモデルに変換し、シミュレーションプロファイルを基にサイクルレベルモデルの分岐条件の論理を簡単化し、サイクルレベルモデル中の実行サイクル数に影響を与えない論理を削除し、性能評価モデルとして出力することを特徴とする。
また、本発明の動作合成方法は、動作記述を読み出し、最適化・スケジューリング・バインディングを行いサイクルレベルモデルに変換するとともに対応関係を出力し、対応関係及びシミュレーションプロファイルを基にサイクルレベルモデルの分岐条件の論理を簡単化し、サイクルレベルモデル中の実行サイクル数に影響を与えない論理を削除し、性能評価モデルとして出力することを特徴とする。
本発明の動作合成用プログラムは、サイクルレベルモデル中の実行サイクル数に影響を与えない論理を削除する不要論理解析処理と、性能評価モデルを出力する性能評価モデル出力処理とをコンピュータに実行させるためのプログラムである。
また、本発明の動作合成用プログラムは、動作記述を読み出し最適化・スケジューリング・バインディングを行いサイクルレベルモデルに変換する最適化・スケジューリング・バインディング処理と、サイクルレベルモデル中の実行サイクル数に影響を与えない論理を削除する不要論理解析処理と、性能評価モデルを出力する性能評価モデル出力処理とをコンピュータに実行させるためのプログラムである。
また、本発明の動作合成用プログラムは、シミュレーションプロファイルを基にサイクルレベルモデルの分岐条件の論理を簡単化する分岐条件簡単化処理と、サイクルレベルモデル中の実行サイクル数に影響を与えない論理を削除する不要論理解析処理と、性能評価モデルを出力する性能評価モデル出力処理とをコンピュータに実行させるためのプログラムである。
また、本発明の動作合成用プログラムは、動作記述を読み出し最適化・スケジューリング・バインディングを行いサイクルレベルモデルに変換する最適化・スケジューリング・バインディング処理と、シミュレーションプロファイルを基にサイクルレベルモデルの分岐条件の論理を簡単化する分岐条件簡単化処理と、サイクルレベルモデル中の実行サイクル数に影響を与えない論理を削除する不要論理解析処理と、性能評価モデルを出力する性能評価モデル出力処理とをコンピュータに実行させるためのプログラムである。
また、本発明の動作合成用プログラムは、動作記述を読み出し最適化・スケジューリング・バインディングを行いサイクルレベルモデルに変換し、対応関係を出力する最適化・スケジューリング・バインディング処理と、対応関係とシミュレーションプロファイルを基にサイクルレベルモデルの分岐条件の論理を簡単化する分岐条件簡単化処理と、サイクルレベルモデル中の実行サイクル数に影響を与えない論理を削除する不要論理解析処理と、性能評価モデルを出力する性能評価モデル出力処理とをコンピュータに実行させるためのプログラムである。
シミュレーションプロファイルは、分岐においてどの条件が成り立ったかの統計情報を含むことを特徴とする。
シミュレーションプロファイルは、分岐の回数と、分岐の結果の相関の情報を持った統計情報を含むことを特徴とする。
シミュレーションプロファイルは、分岐間における分岐の結果の相関の情報を持った統計情報を含むことを特徴とする。
シミュレーションプロファイルは、変数が取り得る値の情報を持った統計情報を含むことを特徴とする。
なお、本発明の目的は、サイクルレベルモデルの高速化のために、システムLSIが所望のサイクル数で処理を完了できるかに注目した不要論理の削除を行うことのできる動作合成システムを提供することにある。
また、本発明の他の目的は、サイクルレベルモデルの高速化のために、動作記述を用いたシミュレーションの際に採取した統計情報を、サイクルレベルモデルの生成に利用できる動作合成システムを提供することにある。
本発明の動作合成システムは、不要論理解析手段と、性能評価モデル出力手段とを備え、サイクルレベルモデル中の実行サイクル数に影響を与えない論理を削除するよう動作する。このような構成を採用し、サイクルレベルモデルの不要論理を削除することにより、本発明の目的を達成することができる。
また、本発明の動作合成システムは、シミュレーションプロファイル記憶手段と、分岐条件簡単化手段を備え、シミュレーションプロファイルを基に、サイクルレベルモデルの分岐条件の論理を簡単化するように動作する。このような構成を採用し、サイクルレベルモデルの不要論理を削除することにより、本発明の目的を達成することができる。
<産業上の利用可能性>
本発明によれば、システムLSI設計において、設計したシステムが所望の性能を達成することを確認するといった用途に適用できる。
以上、本発明の実施形態を詳述してきたが、実際には、上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。
トップダウン設計方法の概略工程を示すフローチャートである。 動作記述を用いたシステム設計フェーズでの設計検証・性能評価の概略工程を示す構成図である。 サイクルレベルモデルを用いたサイクルレベルシミュレーションによる性能評価の工程を示す構成図である。 本発明の第1実施形態の構成を示すブロック図である。 第1実施形態の動作を示す流れ図である。 本発明の第2実施形態の構成を示すブロック図である。 第2実施形態の動作を示す流れ図である。 本発明の第3実施形態の構成を示すブロック図である。 第1実施形態の動作の具体例の動作記述を示す図である。 第1実施形態の動作の具体例のサイクルレベルモデルを示す図である。 第1実施形態の動作の具体例のサイクルレベルモデルを示す図である。 第1実施形態の動作の具体例の性能評価モデルを示す図である。 第2実施形態の動作の具体例の動作記述を示す図である。 第2実施形態の動作の具体例のサイクルレベルモデルを示す図である。 第2実施形態の動作の具体例のシミュレーションプロファイルを示す図である。 第2実施形態の動作の具体例のサイクルレベルモデルを示す図である。 第2実施形態の動作の具体例のサイクルレベルモデルを示す図である。 第2実施形態の動作の具体例の性能評価モデルを示す図である。 第2実施形態の動作の具体例のシミュレーションプロファイルを示す図である。 第2実施形態の動作の具体例のサイクルレベルモデルを示す図である。 第2実施形態の動作の具体例のシミュレーションプロファイルを示す図である。 第2実施形態の動作の具体例のサイクルレベルモデルを示す図である。 第2実施形態の動作の具体例のサイクルレベルモデルを示す図である。 第2実施形態の動作の具体例のシミュレーションプロファイルを示す図である。 第2実施形態の動作の具体例のサイクルレベルモデルを示す図である。 第2実施形態の動作の具体例の性能評価モデルを示す図である。 第3実施形態の動作の具体例の対応関係を示す図である。
符号の説明
10… 記憶装置
11… 動作記述記憶部
12… 性能評価モデル記憶部
13… シミュレーションプロファイル記憶部
14… 対応関係記憶部
20… 処理装置
21… 最適化・スケジューリング・バインディング処理部
22… 不要論理解析処理部
23… 性能評価モデル出力部
24… 分岐条件論理簡単化部
25… 第2の最適化・スケジューリング・バインディング処理部
26… 第2の分岐条件論理簡単化部

Claims (12)

  1. システムLSI(System Large Scale Integration)の所定の処理に必要なサイクル数の情報を有したサイクルレベルモデルを解析し、実行サイクル数に影響を与えない論理の情報を不要論理情報として抽出する不要論理解析手段と、
    前記不要論理情報を基に前記サイクルレベルモデルから、固定している論理ではなく実行サイクル数に影響を与えない論理を取り除き、性能評価モデルを生成する性能評価モデル出力手段と
    前記システムLSIのシステム仕様の作成工程で作成された動作記述を読み込み、最適化処理、スケジューリング処理、バインディング処理を行い、前記動作記述を前記サイクルレベルモデルに変換する最適化・スケジューリング・バインディング処理手段と、
    シミュレーション時に採取されたシミュレーションプロファイルを読み込み、前記サイクルレベルモデルを解析し、前記シミュレーションプロファイルに、前記サイクルレベルモデルの分岐条件に関する統計情報が含まれている場合、前記統計情報に則った生起確率を持った乱数で、前記分岐条件を置き換えて、前記サイクルレベルモデルの分岐条件の論理を簡単化する分岐条件論理簡単化手段
    を具備する
    動作合成システム。
  2. 請求項に記載の動作合成システムであって、
    前記シミュレーションプロファイルは、
    前記動作記述、前記サイクルレベルモデル、及びRTL(Register Transfer Level)モデルのいずれかの分岐においてどの条件が成り立ったかの統計情報と、
    前記動作記述、前記サイクルレベルモデル、及び前記RTLモデルのいずれかの分岐の回数と分岐の結果の相関の情報を持った統計情報と、
    前記動作記述、前記サイクルレベルモデル、及び前記RTLモデルのいずれかの分岐間における分岐の結果の相関の情報を持った統計情報と、
    前記動作記述、前記サイクルレベルモデル、及び前記RTLモデルのいずれかの変数が取り得る値の情報を持った統計情報と
    のうち少なくとも1つの統計情報を含む
    動作合成システム。
  3. 請求項に記載の動作合成システムであって、
    前記最適化・スケジューリング・バインディング処理手段は、前記動作記述を前記サイクルレベルモデルに変換した際に、前記動作記述と前記サイクルレベルモデルとの対応関係を示す情報を記憶装置に記憶する
    動作合成システム。
  4. 請求項に記載の動作合成システムであって、
    前記分岐条件論理簡単化手段は、前記対応関係を示す情報及び前記シミュレーションプロファイルを読み込み、前記シミュレーションプロファイルに前記動作記述の分岐条件に関する統計情報が含まれている場合、前記統計情報に則った生起確率を持った乱数で、前記動作記述に対応するサイクルレベルモデルの分岐条件を置き換えて、前記サイクルレベルモデルの分岐条件の論理を簡単化する
    動作合成システム。
  5. コンピュータにより実施される動作合成方法であって、
    システムLSI(System Large Scale Integration)の所定の処理に必要なサイクル数の情報を有したサイクルレベルモデルを解析し、実行サイクル数に影響を与えない論理の情報を不要論理情報として抽出するステップと、
    前記不要論理情報を基に前記サイクルレベルモデルから、固定している論理ではなく実行サイクル数に影響を与えない論理を取り除き、性能評価モデルを生成するステップと
    前記システムLSIのシステム仕様の作成工程で作成された動作記述を読み込み、最適化処理、スケジューリング処理、バインディング処理を行い、前記動作記述を前記サイクルレベルモデルに変換するステップと、
    シミュレーション時に採取されたシミュレーションプロファイルを読み込み、前記サイクルレベルモデルを解析し、前記シミュレーションプロファイルに、前記サイクルレベルモデルの分岐条件に関する統計情報が含まれている場合、前記統計情報に則った生起確率を持った乱数で、前記分岐条件を置き換えて、前記サイクルレベルモデルの分岐条件の論理を簡単化するステップ
    を含
    動作合成方法。
  6. 請求項に記載の動作合成方法であって、
    前記シミュレーションプロファイルは、
    前記動作記述、前記サイクルレベルモデル、及びRTL(Register Transfer Level)モデルのいずれかの分岐においてどの条件が成り立ったかの統計情報と、
    前記動作記述、前記サイクルレベルモデル、及び前記RTLモデルのいずれかの分岐の回数と分岐の結果の相関の情報を持った統計情報と、
    前記動作記述、前記サイクルレベルモデル、及び前記RTLモデルのいずれかの分岐間における分岐の結果の相関の情報を持った統計情報と、
    前記動作記述、前記サイクルレベルモデル、及び前記RTLモデルのいずれかの変数が取り得る値の情報を持った統計情報と
    のうち少なくとも1つの統計情報を含む
    動作合成方法。
  7. 請求項に記載の動作合成方法であって、
    前記動作記述を前記サイクルレベルモデルに変換した際に、前記動作記述と前記サイクルレベルモデルとの対応関係を示す情報を記憶装置に記憶するステップ
    を更に含む
    動作合成方法。
  8. 請求項に記載の動作合成方法であって、
    前記対応関係を示す情報及び前記シミュレーションプロファイルを読み込み、前記シミュレーションプロファイルに前記動作記述の分岐条件に関する統計情報が含まれている場合、前記統計情報に則った生起確率を持った乱数で、前記動作記述に対応するサイクルレベルモデルの分岐条件を置き換えて、前記サイクルレベルモデルの分岐条件の論理を簡単化するステップ
    を更に含む
    動作合成方法。
  9. システムLSI(System Large Scale Integration)の所定の処理に必要なサイクル数の情報を有したサイクルレベルモデルを解析し、実行サイクル数に影響を与えない論理の情報を不要論理情報として抽出するステップと、
    前記不要論理情報を基に前記サイクルレベルモデルから、固定している論理ではなく実行サイクル数に影響を与えない論理を取り除き、性能評価モデルを生成するステップと
    前記システムLSIのシステム仕様の作成工程で作成された動作記述を読み込み、最適化処理、スケジューリング処理、バインディング処理を行い、前記動作記述を前記サイクルレベルモデルに変換するステップと、
    シミュレーション時に採取されたシミュレーションプロファイルを読み込み、前記サイクルレベルモデルを解析し、前記シミュレーションプロファイルに、前記サイクルレベルモデルの分岐条件に関する統計情報が含まれている場合、前記統計情報に則った生起確率を持った乱数で、前記分岐条件を置き換えて、前記サイクルレベルモデルの分岐条件の論理を簡単化するステップ
    をコンピュータに実行させるための
    動作合成用プログラム。
  10. 請求項に記載の動作合成用プログラムであって、
    前記シミュレーションプロファイルは、
    前記動作記述、前記サイクルレベルモデル、及びRTL(Register Transfer Level)モデルのいずれかの分岐においてどの条件が成り立ったかの統計情報と、
    前記動作記述、前記サイクルレベルモデル、及び前記RTLモデルのいずれかの分岐の回数と分岐の結果の相関の情報を持った統計情報と、
    前記動作記述、前記サイクルレベルモデル、及び前記RTLモデルのいずれかの分岐間における分岐の結果の相関の情報を持った統計情報と、
    前記動作記述、前記サイクルレベルモデル、及び前記RTLモデルのいずれかの変数が取り得る値の情報を持った統計情報と
    のうち少なくとも1つの統計情報を含む
    動作合成用プログラム。
  11. 請求項10に記載の動作合成用プログラムであって、
    前記動作記述を前記サイクルレベルモデルに変換した際に、前記動作記述と前記サイクルレベルモデルとの対応関係を示す情報を記憶装置に記憶するステップ
    を更にコンピュータに実行させるための
    動作合成用プログラム。
  12. 請求項11に記載の動作合成用プログラムであって、
    前記対応関係を示す情報及び前記シミュレーションプロファイルを読み込み、前記シミュレーションプロファイルに前記動作記述の分岐条件に関する統計情報が含まれている場合、前記統計情報に則った生起確率を持った乱数で、前記動作記述に対応するサイクルレベルモデルの分岐条件を置き換えて、前記サイクルレベルモデルの分岐条件の論理を簡単化するステップ
    を更にコンピュータに実行させるための
    動作合成用プログラム。
JP2008323885A 2008-12-19 2008-12-19 動作合成システム、動作合成方法、及び動作合成用プログラム Active JP5262678B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008323885A JP5262678B2 (ja) 2008-12-19 2008-12-19 動作合成システム、動作合成方法、及び動作合成用プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008323885A JP5262678B2 (ja) 2008-12-19 2008-12-19 動作合成システム、動作合成方法、及び動作合成用プログラム

Publications (2)

Publication Number Publication Date
JP2010146359A JP2010146359A (ja) 2010-07-01
JP5262678B2 true JP5262678B2 (ja) 2013-08-14

Family

ID=42566729

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008323885A Active JP5262678B2 (ja) 2008-12-19 2008-12-19 動作合成システム、動作合成方法、及び動作合成用プログラム

Country Status (1)

Country Link
JP (1) JP5262678B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5843449B2 (ja) * 2011-02-16 2016-01-13 キヤノン株式会社 電子回路最適化方法、電子回路最適化装置、及びプログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01197868A (ja) * 1988-02-02 1989-08-09 Matsushita Electric Ind Co Ltd 論理シミュレーション方法
JP2923543B2 (ja) * 1991-01-08 1999-07-26 三菱電機株式会社 論理シミュレーション装置
JP2752923B2 (ja) * 1995-07-18 1998-05-18 日本電気アイシーマイコンシステム株式会社 論理シミュレーション装置および論理回路情報作成方法
JPH09311882A (ja) * 1996-05-23 1997-12-02 Mitsubishi Electric Corp 論理回路検証支援装置
JP2001022808A (ja) * 1999-07-08 2001-01-26 Matsushita Electric Ind Co Ltd 論理回路削減装置ならびに論理シミュレーション方法および装置
JP3779651B2 (ja) * 2002-06-21 2006-05-31 Necエレクトロニクス株式会社 シミュレーションモデルの生成方法及びシミュレーション方法及びその記録媒体
JP2004054755A (ja) * 2002-07-23 2004-02-19 Nec Electronics Corp システムレベル設計方法及びシステムレベル設計装置

Also Published As

Publication number Publication date
JP2010146359A (ja) 2010-07-01

Similar Documents

Publication Publication Date Title
US8122398B2 (en) Conversion of circuit description to an abstract model of the circuit
JP4994393B2 (ja) 単一のマスターモデルから異なる抽象化レベルの複数のモデルを生成するシステムと方法
US8196076B2 (en) Optimal flow in designing a circuit operable in multiple timing modes
US20060130029A1 (en) Programming language model generating apparatus for hardware verification, programming language model generating method for hardware verification, computer system, hardware simulation method, control program and computer-readable storage medium
JP5312151B2 (ja) 半導体設計支援装置、高位合成方法及び半導体設計支援プログラム
US20190278884A1 (en) Methodology To Create Constraints And Leverage Formal Coverage Analyzer To Achieve Faster Code Coverage Closure For An Electronic Structure
JP4492803B2 (ja) 動作合成装置及びプログラム
CN117907812B (zh) 电路检测方法及装置、电子设备、存储介质、程序产品
US7472371B2 (en) Description style conversion method, program, and system of logic circuit
Tatsuoka et al. Physically aware high level synthesis design flow
US8949766B2 (en) Detecting corresponding paths in combinationally equivalent circuit designs
JP5262678B2 (ja) 動作合成システム、動作合成方法、及び動作合成用プログラム
JP6091140B2 (ja) 情報処理装置及び情報処理方法及びプログラム
JP5115003B2 (ja) 論理設計支援システム及びプログラム
JP2005293349A (ja) 回路設計支援システム、設計方法及びプログラム
JP4448048B2 (ja) 構造解析プログラム
JP5849973B2 (ja) データ処理装置、データ処理システム、データ処理方法、及びデータ処理プログラム
US20170212977A1 (en) Area and/or power optimization through post-layout modification of integrated circuit (ic) design blocks
JP5467512B2 (ja) 動作合成装置、動作合成方法、及び、動作合成プログラム
US20240354477A1 (en) Constant, equal, or opposite registers or ports detection during logic synthesis
Corre et al. HLS-based Fast Design Space Exploration of ad hoc hardware accelerators: a key tool for MPSoC Synthesis on FPGA
JP2019191796A (ja) 高位合成方法、高位合成プログラム、高位合成装置
JP3751410B2 (ja) 論理回路変換装置
US20100175037A1 (en) Method, apparatus, and program for correcting hold error
US8375376B2 (en) Description processing device, description processing method, and recording medium

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110907

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121031

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121105

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121214

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130123

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130315

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130402

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130415

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5262678

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150