JP2004185503A - 論理回路設計方法、論理回路設計プログラムおよび論理回路設計装置 - Google Patents

論理回路設計方法、論理回路設計プログラムおよび論理回路設計装置 Download PDF

Info

Publication number
JP2004185503A
JP2004185503A JP2002354208A JP2002354208A JP2004185503A JP 2004185503 A JP2004185503 A JP 2004185503A JP 2002354208 A JP2002354208 A JP 2002354208A JP 2002354208 A JP2002354208 A JP 2002354208A JP 2004185503 A JP2004185503 A JP 2004185503A
Authority
JP
Japan
Prior art keywords
operator
data
node
logic circuit
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2002354208A
Other languages
English (en)
Other versions
JP3940668B2 (ja
Inventor
Tokuji Masuda
篤司 増田
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 JP2002354208A priority Critical patent/JP3940668B2/ja
Priority to US10/642,761 priority patent/US6968523B2/en
Publication of JP2004185503A publication Critical patent/JP2004185503A/ja
Application granted granted Critical
Publication of JP3940668B2 publication Critical patent/JP3940668B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Logic Circuits (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

【課題】動作記述から変換されたRTL記述での論理回路のシミュレーション結果を迅速に解析するための論理回路設計方法を提供する。
【解決手段】論理回路のアルゴリズムを、複数の演算子を有する動作記述から、演算子を実行する演算ノードを実行順に配列したデータフロー図に変換し、データフロー図に実行ステップを割り当て、演算ノードからの出力データを記憶するレジスタを実行ステップの実行後に挿入する。演算ノードとして機能する演算器とレジスタとして機能する記憶素子を有する論理回路のデータパスと、データパスの制御情報を生成する。演算子を実行する演算器を演算子から検索可能であり、記憶素子の機能をするレジスタが記憶するデータを出力する演算子を実行ステップと記憶素子から検索可能である演算子演算器データベースを生成する。
【選択図】 図3

Description

【0001】
【発明の属する技術分野】
本発明は、レジスタ転送レベル(RTL)記述を自動生成する高位合成技術に関し、特に、動作記述からRTL記述に変換する論理回路設計方法に関する。
【0002】
【従来の技術】
従来、論理回路設計では、動作記述の中間信号と論理回路の演算器との対応表が出力された。(例えば、特許文献1参照。)。
【0003】
しかし、さらに高位合成されたRTL記述では、実行ステップ毎にデータが記憶素子に記憶され、1つの演算器が繰り返し演算を行う。このため、対応表は存在せず、実行ステップ毎の対応表も存在しなかった。RTL記述の論理回路のシミュレーション結果に不具合があった場合は、設計者がRTL記述のみを用いてそのシミュレーション結果を解析した。RTL記述は、動作時間や条件などにより動作する部分が変わるので、この解析には非常に多くの時間を要した。
【0004】
【特許文献1】
特開平11−73447号公報(請求項1、図6)
【0005】
【発明が解決しようとする課題】
本発明は、上記事情に鑑みてなされたものであり、その目的とするところは、動作記述から変換されたRTL記述での論理回路のシミュレーション結果を迅速に解析するための論理回路設計方法を提供することにある。
【0006】
本発明の目的は、コンピュータが動作記述から変換されたRTL記述での論理回路のシミュレーション結果を迅速に解析するための論理回路設計プログラムを提供することにある。
【0007】
本発明の目的は、動作記述から変換されたRTL記述での論理回路のシミュレーション結果を迅速に解析するための論理回路設計装置を提供することにある。
【0008】
【課題を解決するための手段】
上記問題点を解決するための本発明の第1の特徴は、論理回路のアルゴリズムを、複数の演算子を有する動作記述から、演算子を実行する演算ノードを実行順に配列したデータフロー図に変換することと、
データフロー図に実行ステップを割り当て、演算ノードからの出力データを記憶するレジスタを実行ステップの実行後に挿入することと、
演算ノードとして機能する演算器とレジスタとして機能する記憶素子を有する論理回路のデータパスと、データパスの制御情報を生成することと、
演算子を実行する演算器を演算子から検索可能であり、記憶素子の機能をするレジスタが記憶するデータを出力する演算子を実行ステップと記憶素子から検索可能である演算子演算器データベースを生成することとを有する論理回路設計方法にある。
【0009】
本発明の第2の特徴は、論理回路のアルゴリズムを、複数の演算子を有する動作記述から、演算子を実行する演算ノードを実行順に配列したデータフロー図に変換する手順と、
データフロー図に実行ステップを割り当て、演算ノードからの出力データを記憶するレジスタを実行ステップの実行後に挿入する手順と、
演算ノードとして機能する演算器とレジスタとして機能する記憶素子を有する論理回路のデータパスと、データパスの制御情報を生成する手順と、
演算子を実行する演算器を演算子から検索可能であり、記憶素子の機能をするレジスタが記憶するデータを出力する演算子を実行ステップと記憶素子から検索可能である演算子演算器データベースを生成する手順をコンピュータに実行させるための論理回路設計プログラムにある。
【0010】
本発明の第3の特徴は、論理回路のアルゴリズムを、複数の演算子を有する動作記述から、演算子を実行する演算ノードを実行順に配列したデータフロー図に変換する構文解析部と、
データフロー図に実行ステップを割り当て、演算ノードからの出力データを記憶するレジスタを実行ステップの実行後に挿入するスケジューリング部と、
演算ノードとして機能する演算器とレジスタとして機能する記憶素子を有する論理回路のデータパスと、データパスの制御情報を生成するハードウェア割付部と、
演算子を実行する演算器を演算子から検索可能であり、記憶素子の機能をするレジスタが記憶するデータを出力する演算子を実行ステップと記憶素子から検索可能である演算子演算器データベースを生成する演算子演算器対応情報解析部を有する論理回路設計装置にある。
【0011】
【発明の実施の形態】
次に、図面を参照して、本発明の実施の形態について説明する。以下の図面の記載において、同一又は類似の部分には同一又は類似の符号を付している。また、図面は模式的なものであり、現実のものとは異なることに留意すべきである。
【0012】
(論理回路設計装置)
本発明の実施の形態に係る論理回路設計装置1は、図1に示すように、構文解析部2、スケジューリング部3、最適化部4、ハードウェア割付部5、RTL記述生成部6、ノード演算子対応情報解析部7、ノード演算器対応情報解析部8、演算子演算器対応情報解析部9、動作記述シミュレーション部10、RTL記述シミュレーション部11、シミュレーション結果比較部12と入出力部16を有している。シミュレーション結果比較部12は、演算子検索部13、記憶データ判定部14と演算器検索部15を有している。
【0013】
構文解析部2は、図2に示すように、論理回路のアルゴリズムを、複数の演算子を有する動作記述D1を入力し、演算子を実行する演算ノードを実行順に配列した未加工データフロー図(DFG)D2を出力する。
【0014】
スケジューリング部3は、未加工データフロー図D2を入力し、未加工データフロー図D2に実行ステップを割り当てる。スケジューリング部3は、演算ノードからの出力データを記憶するレジスタを、未加工データフロー図D2の実行ステップの実行後に挿入する。スケジューリング部3は、スケジューリングデータフロー図D3を出力する。
【0015】
最適化部4は、スケジューリングデータフロー図D3を入力する。最適化部4は、論理回路のアルゴリズムの予想される全実行時間が最短になるように、スケジューリングデータフロー図D3を変更し、最適化データフロー図D4を出力する。
【0016】
ハードウェア割付部5は、最適化データフロー図D4を入力する。ハードウェア部5は、演算ノードとして機能する演算器とレジスタとして機能する記憶素子を有する論理回路のデータパスD5と、データパスの制御情報D5を生成する。
【0017】
RTL記述生成部6は、データパスと制御情報D5を入力する。RTL記述生成部6は、データパスと制御情報D5に基づいて、論理回路のRTL記述D6を生成する。RTL記述生成部6は、RTL記述D6を出力する。
【0018】
ノード演算子対応情報解析部7は、動作記述D1、スケジューリングデータフロー図D3と最適化データフロー図D4を入力する。ノード演算子対応情報解析部7は、動作記述D1、スケジューリングデータフロー図D3と最適化データフロー図D4に基づいて、ノード演算子データベースD7を生成する。ノード演算子データベースD7は、演算ノードで実行する演算子を演算ノードから検索可能であり、レジスタが記憶するデータを出力する演算ノードで実行する演算子をレジスタから検索可能である。
【0019】
ノード演算器対応情報解析部8は、最適化データフロー図D4とデータパスD5を入力する。ノード演算器対応情報解析部8は、最適化データフロー図D4とデータパスD5に基づいて、ノード演算器データベースD8を生成する。ノード演算器データベースD8は、演算ノードとして機能する演算器を演算ノードから検索可能であり、記憶素子の機能をするレジスタを実行ステップと記憶素子から検索可能である。
【0020】
演算子演算器対応情報解析部9は、ノード演算子データベースD7とノード演算器データベースD8を入力する。演算子演算器対応情報解析部9は、ノード演算子データベースD7とノード演算器データベースD8に基づいて、演算子演算器データベースD9を生成する。演算子演算器データベースD9は、演算子を実行する演算器を演算子から検索可能であり、記憶素子の機能をするレジスタが記憶するデータを出力する演算子を実行ステップと記憶素子から検索可能である。
【0021】
動作記述シミュレーション部10は、動作記述D1と入力データD13を入力する。動作記述シミュレーション部10は、動作記述D1に入力データD13を代入し、演算子からの出力データD10を計算する。
【0022】
RTL記述シミュレーション部11は、RTL記述D6と入力データD13を入力する。RTL記述シミュレーション部11は、RTL記述D6に入力データD13を代入し、実行ステップ毎に記憶素子が記憶する記憶データD11を計算する。
【0023】
シミュレーション結果比較部12の演算子検索部13は、演算子演算器データベースD9と、記憶データD11を記憶した際の実行ステップと記憶素子を入力する。演算子検索部13は、演算子演算器データベースD9に基づいて、計算された記憶データの実行ステップと記憶素子から演算子を検索する。
【0024】
シミュレーション結果比較部12の記憶データ判定部14は、記憶データD11と、検索された演算子の出力データを入力する。記憶データ判定部14は、検索された演算子の出力データと記憶データの異同を判定する。検索された演算子の出力データと記憶データが異なる場合は、RTL記述D6に不具合があると判定する。この判定に基づいて、RTL記述D6の不具合の有無D12を出力する。RTL記述D6に不具合がある場合は、さらに、記憶データD11を記憶した際の実行ステップ、記憶素子と演算子D12を出力する。
【0025】
シミュレーション結果比較部12の演算器検索部15は、検索された演算子の出力データと記憶データが異なる場合に、演算子演算器データベースD9と検索された演算子を入力する。演算器検索部15は、演算子演算器データベースD9に基づいて、検索された演算子から演算器を検索する。演算器検索部15は、検索された演算器D12を出力する。
【0026】
入出力部16は、動作記述D1と入力データD13を入力する。入出力部16は、RTL記述D6とRTL記述D6の不具合の有無、不具合の発生した実行ステップ、記憶素子、演算子と演算器D12を出力する。
【0027】
高位合成でC記述等の動作記述D1からRTL記述D6を生成する際に、動作記述D1とRTL記述D6の両者を対応づける演算子演算器データベースD9を生成する。RTL記述D6の検証に、動作記述D1の検証に用いたテストベクトルを使うことができ、かつ、動作記述D1との比較検証をすることにより、不具合が生じた場合には、動作記述D1、RTL記述D6の両者での不具合箇所が特定できる。このことにより、動作記述D1やRTL記述D6の修正が容易に行えるようになり、設計、検証、不具合修正にかかる時間を大幅に短縮することができる。
【0028】
(論理回路設計方法)
本発明の実施の形態に係る論理回路設計方法は、図3に示すように、ステップS1において、構文解析部2で、構文解析をする。論理回路のアルゴリズムを、複数の演算子を有する動作記述D1から、演算子を実行する演算ノードを実行順に配列した未加工データフロー図(DFG)D2に変換する。
【0029】
ステップS2において、スケジューリング部3で、スケジューリングをする。未加工データフロー図D2に実行ステップを割り当て、演算ノードにどの実行ステップで実行するかという時間情報が添付される。未加工データフロー図D2に、演算ノードからの出力データを記憶するレジスタを実行ステップの実行後に挿入する。このレジスタにより、実行ステップをまたがるデータを保持することができる。スケジューリング部3は、このように加工された未加工データフロー図D2をスケジューリングデータフロー図D3として出力する。
【0030】
ステップS3において、最適化部4で、予想される全実行時間が最短になるようにスケジューリングデータフロー図D3を変更する。このように変更されたスケジューリングデータフロー図D3を最適化データフロー図D4として出力する。
【0031】
ステップS4において、ハードウェア割付部5で、演算ノードとして機能する演算器とレジスタとして機能する記憶素子を有する論理回路のデータパスとこのデータパスの制御情報D5を生成する。
【0032】
ステップS5において、RTL記述生成部6で、データパスと制御情報D5に基づいて、RTL記述D6を生成する。
【0033】
ステップS6において、RTL記述シミュレーション部11で、実行ステップiに、最初に実行される実行ステップ1を設定する。
【0034】
ステップS7において、RTL記述シミュレーション部11で、RTL記述D6のシミュレーションを行う。RTL記述D6に入力データD13を代入し、実行ステップiで演算器が出力するデータと記憶素子が記憶する記憶データD11を計算する。
【0035】
一方、ステップS2とS3の実行後に、ステップS8において、ノード演算子対応情報解析部7で、動作記述D1とスケジューリングデータフロー図D3と最適化データフロー図D4に基づいて、ノード演算子データベースD7を生成する。
【0036】
ステップS4の実行後に、ステップS9において、ノード演算器対応情報解析部8で、最適化データフロー図D4とデータパスD5に基づいて、ノード演算器データベースD8を生成する。
【0037】
ステップS10において、演算子演算器対応情報解析部9で、ノード演算子データベースD7とノード演算器データベースD8に基づいて、演算子演算器データベースD9を生成する。
【0038】
ステップS11において、動作記述シミュレーション部10で、動作記述D1のシミュレーションを行う。動作記述D1に入力データD13を代入し、演算子からの出力データD10を計算する。動作記述を実際にコンパイルし実行した場合の各演算子が出力する中間データを計算する。
【0039】
ステップS7とS11の実行後に、ステップS12において、シミュレーション結果比較部12の演算子検索部13で、演算子演算器データベースD9に基づいて、計算された記憶データD11の実行ステップiと記憶素子から演算子を検索する。
【0040】
ステップS13において、記憶データ判定部14で、検索された演算子の出力データD10と、記憶データD11の異同を判定する。異なるとの判定の場合は、ステップS16に進み、同じとの判定の場合は、ステップS14に進む。
【0041】
ステップS16において、演算器検索部15で、演算子演算器データベースD9に基づいて、検索された演算子から演算器を検索する。
【0042】
ステップS17において、論理回路設計装置1あるいはそのオペレータが、検索された演算器に基づいて、RTL記述D6をデバックする。ステップS5に戻る。なお、戻る先は、ステップS5に限らない。再度シミュレーションされるRTL記述がデバックされたRTL記述であれば、ステップS6に戻ってもよい。
【0043】
一方、ステップS14において、シミュレーション結果比較部12で、実行ステップiが最適化データフロー図D4の最大の実行ステップ以上であるか否かを判定する。実行ステップiが最大の実行ステップ以上でない場合は、ステップS15に進む。ステップS15において、実行ステップiを1つ大きくする。そして、ステップS7に進む。実行ステップiが最大の実行ステップ以上である場合は、論理回路設計方法をストップする。このように、動作記述D1のミュレーション結果である演算子の出力データD10と、RTL記述D6のシミュレーション結果である記憶素子の記憶データD11を、実行ステップ毎に比較することで、動作記述と高位合成されたRTL記述との比較検証が行われる。
【0044】
動作記述D1とRTL記述の比較検証をすることにより、不具合が生じた場合には、動作記述D1、RTL記述D6の両者での不具合箇所が特定できる。このことにより、動作記述D1やRTL記述D6の修正が容易に行えるようになり、設計、検証、不具合修正にかかる時間を大幅に短縮することができる。
【0045】
尚、RTL記述D6のシミュレーションでは、1実行ステップ毎にデータを比較しつつシミュレーションを行っている。これに限らず、RTL記述D6の全実行ステップの実行後に、動作記述D1とRTL記述の比較検証を行ってもよい。ただ、先の実行ステップでの不具合が、後の実行ステップでの不具合を起こす場合がある一方で、先の実行ステップでの不具合のデバックが、後の実行ステップで不具合を起こす場合もある。従って、動作記述D1とRTL記述の比較検証の時期は、1実行ステップ毎か、全実行ステップの実行後かを、場合により使い分けることが望ましい。
【0046】
(実施例1)
実施例1では、論理回路設計装置1で論理回路設計方法を用いた。実施例1の論理回路設計方法は、図3のステップS1において、図4に示すような複数の演算子op1乃至op4を有する動作記述D1から、図5に示すような演算子op1乃至op4を実行する演算ノードN1乃至N4を実行順に配列した未加工データフロー図D2に変換する。演算子op1乃至op4は、実際には内部のデータとして管理され、識別番号やポインタ等で認識される。入力データD13の引数i1とi2で、演算ノードN1において、和算の演算子op1を実行する。引数i1とi2で、演算ノードN2において、引き算の演算子op3を実行する。演算ノードN1の演算子op1の出力と演算ノードN2の演算子op2の出力で、演算ノードN3において、積算の演算子op2を実行する。演算ノードN3の演算子op2の出力と定数1で、演算ノードN4において、和算の演算子op4を実行する。
【0047】
ステップS2において、図6に示すように、図5の未加工データフロー図D2に実行ステップ1乃至3を割り当てる。演算ノードN1とN2は、実行ステップ1で実行するという時間情報が添付される。演算ノードN3は、実行ステップ2で実行するという時間情報が添付される。演算ノードN4は、実行ステップ3で実行するという時間情報が添付される。未加工データフロー図D2に、演算ノードN1乃至N4からの出力データを記憶するレジスタR1乃至R4を実行ステップ1乃至3の実行後に挿入する。スケジューリング部3は、このように加工した図5の未加工データフロー図D2を、図6のスケジューリングデータフロー図D3として出力する。
【0048】
ステップS3において、スケジューリングデータフロー図D3を最適化するが、既に、予想される全実行時間が最短であるので、出力された最適化データフロー図D4は、スケジューリングデータフロー図D3に等しい。
【0049】
ステップS8において、図4の動作記述D1と図6のスケジューリングデータフロー図D3に基づいて、図7に示すようなノード演算子データベースD7を生成する。ノード演算子データベースD7は、複数のノード演算子レコード21を有している。ノード演算子レコード21は、ノードフィールド22と演算子フィールド23を有している。ノードフィールド22では、演算ノードN1乃至N4とレジスタR1乃至R4が記憶される。演算子フィールド23では、演算子op1乃至op4が記憶される。演算子op1乃至op4とその演算子op1乃至op4を実行する演算ノードN1乃至N4が、同じノード演算子レコード21内に記憶される。また、演算子op1乃至op4とその演算子op1乃至op4の出力データを記憶するレジスタR1乃至R4が、同じノード演算子レコード21内に記憶される。演算ノードN1乃至N4又はレジスタR1乃至R4から、同じノード演算子レコード21内に記憶された演算子op1乃至op4を検索することが可能である。
【0050】
ステップS4において、ハードウェア割付部5で、図8に示すような論理回路のデータパスD5と、このデータパスの制御情報D5を生成する。データパスD5は、演算ノードN1乃至N4として機能する演算器A1乃至A3と、レジスタR1乃至R4として機能する記憶素子M1とM2と、制御情報D5に基づいて伝達するデータを切り換えるセレクターC1乃至C3を有する。
【0051】
ステップS9において、図6のスケジューリングデータフロー図D3と図8のデータパスD5に基づいて、図9に示すようなノード演算器データベースD8を生成する。ノード演算器データベースD8は、複数のノード演算器レコード24を有している。ノード演算器レコード24は、演算器フィールド25、ノードフィールド26と実行ステップフィールド27を有している。演算器フィールド25では、演算器A1乃至A3と記憶素子M1、M2が記憶される。ノードフィールド22では、演算ノードN1乃至N4とレジスタR1乃至R4が記憶される。実行ステップフィールド27では、実行ステップ1乃至3が記憶される。演算器A1乃至A3と、その演算器A1乃至A3で実行する演算ノードN1乃至N4と、その演算ノードN1乃至N4が実行する実行ステップが、同じノード演算器レコード24内に記憶される。また、記憶素子M1、M2と、その記憶素子M1、M2で記憶するレジスタR1乃至R4と、そのレジスタR1乃至R4が記憶する実行ステップが、同じノード演算器レコード24内に記憶される。
【0052】
すなわち、図6のスケジューリングデータフロー図D3と図8のデータパスD5を参照しながら、図9のノード演算器データベースD8を見ると、実行ステップ1において、演算器A1が演算ノードN1として機能し、演算器A2が演算ノードN2として機能し、演算器A3は働かず、記憶素子M1がレジスタR1として機能し、記憶素子M2がレジスタR2として機能する。実行ステップ2において、演算器A1と演算器A2は働かず、演算器A3が演算ノードN3として機能し、記憶素子M1がレジスタR3として機能し、記憶素子M2は働かない。実行ステップ3において、演算器A1が演算ノードN4として機能し、演算器A2と演算器A3は働かず、記憶素子M1がレジスタR4として機能し、記憶素子M2は働かない。
【0053】
図9のノード演算器データベースD8によれば、演算ノードN1乃至N4から、同じノード演算器レコード24内に記憶された演算器A1乃至A3を検索することが可能である。記憶素子M1、M2と実行ステップ1乃至3から同じノード演算器レコード24内に記憶されたレジスタR1乃至R4を検索することが可能である。
【0054】
ステップS10において、図7のノード演算子データベースD7と図9のノード演算器データベースD8に基づいて、図10に示すような演算子演算器データベースD9を生成する。演算子演算器データベースD9は、複数の演算子演算器レコード28を有している。演算子演算器レコード28は、演算器フィールド29、演算子フィールド30と実行ステップフィールド31を有している。演算器フィールド29では、演算器A1乃至A3と記憶素子M1、M2が記憶される。演算子フィールド30では、演算子op1乃至op4が記憶される。実行ステップフィールド31では、実行ステップ1乃至3が記憶される。演算器A1乃至A3と、その演算器A1乃至A3で実行する演算子op1乃至op4と、その演算子op1乃至op4が実行する実行ステップが、同じ演算子演算器レコード28内に記憶される。また、記憶素子M1、M2と、その記憶素子M1、M2で記憶するデータを出力する演算子op1乃至op4と、その演算子op1乃至op4が実行する実行ステップが、同じ演算子演算器レコード28内に記憶される。
【0055】
すなわち、図7のノード演算子データベースD7と図9のノード演算器データベースD8を参照しながら、図10の演算子演算器データベースD9を見ると、実行ステップ1において、演算器A1が演算子op1として機能し、演算器A2が演算子op3として機能し、演算器A3は働かず、記憶素子M1が演算子op1の出力したデータを記憶し、記憶素子M2が演算子op3の出力したデータを記憶する。実行ステップ2において、演算器A1と演算器A2は働かず、演算器A3が演算子op2として機能し、記憶素子M1が演算子op2の出力したデータを記憶し、記憶素子M2は働かない。実行ステップ3において、演算器A1が演算子op4として機能し、演算器A2と演算器A3は働かず、記憶素子M1が演算子op4の出力したデータを記憶し、記憶素子M2は働かない。
【0056】
図10の演算子演算器データベースD9によれば、演算子op1乃至op4から、同じ演算子演算器レコード28内に記憶された演算器A1乃至A3を検索することが可能である。記憶素子M1、M2と実行ステップ1乃至3から同じ演算子演算器レコード28内に記憶された演算子op1乃至op4を検索することが可能である。
【0057】
ステップS11において、動作記述D1のシミュレーションを行う。図11に示すように、入力データD13として、図4の動作記述D1の引数i1に2を代入し、引数i2に1を代入した。そして、演算子op1からの出力データD10として3を出力した。同様に、演算子op2、op3、op4からの出力データD10として3、1、4を出力した。
【0058】
次に、動作記述D1の引数i1に3を代入し、引数i2に2を代入した。そして、演算子op1、op2、op3、op4からの出力データD10として5、5、1、6を出力した。さらに、動作記述D1の引数i1に2を代入し、引数i2に3を代入した。そして、演算子op1、op2、op3、op4からの出力データD10として5、−5、−1、−4を出力した。
【0059】
なお、入力データD13と出力データD10は、図11に示すように、それぞれフィールドを構成し、入力データD13と出力データD10と演算子フィールド33からなる入力データ出力データレコード32を有するデータベースを構成してもよい。入力データ出力データレコード32を有するデータベースによれば、演算子op1乃至op4と入力データD13から、同じ入力データ出力データレコード32内に記憶された出力データD10を検索することが可能である。
【0060】
ステップS5において、RTL記述生成部6で、データパスと制御情報D5に基づいて、RTL記述D6を生成する。ステップS6において、RTL記述シミュレーション部11で、実行ステップiに、最初に実行される実行ステップ1を設定する。
【0061】
ステップS7において、入力データD13で引数i1が2であり、引数i2が1である場合のRTL記述D6のシミュレーションを行う。図12に示すように、まず、実行ステップ1で、RTL記述D6に入力データD13を代入し、記憶素子M1、M2が記憶する記憶データD11を計算する。RTL記述D6の引数i1に2を代入し、引数i2に1を代入した。そして、実行ステップ1で、記憶素子M1の記憶データD11として3を出力し、記憶素子M2の記憶データD11として1を出力した。
【0062】
ステップS12において、図10の演算子演算器データベースD9に基づいて、計算された記憶データD11の実行ステップ1と記憶素子M1から演算子op1を検索する。また、実行ステップ1と記憶素子M2から演算子op3を検索する。
【0063】
ステップS13において、図11の検索された演算子op1の出力データD10である3と、図12の実行ステップ1で記憶素子M1の記憶データD11である3の異同を判定する。3と3で同じである。また、図11の検索された演算子op3の出力データD10である1と、図12の実行ステップ1で記憶素子M2の記憶データD11である1の異同を判定する。1と1で同じである。これらにより、ステップS14に進む。
【0064】
ステップS14において、実行ステップ1が最適化データフロー図D4の最大の実行ステップ3以上であるか否かを判定する。実行ステップ1が最大の実行ステップ3以上でないので、ステップS15に進む。ステップS15において、実行ステップ1を1つ大きく実行ステップ2にする。そして、ステップS7に進む。
【0065】
再度、ステップS7において、入力データD13で引数i1が2であり、引数i2が1である場合で実行ステップ2のRTL記述D6のシミュレーションを行う。図12に示すように、実行ステップ2で、記憶素子M1の記憶データD11として3を出力した。
【0066】
ステップS12において、図10の演算子演算器データベースD9に基づいて、実行ステップ2と記憶素子M1から演算子op2を検索する。
【0067】
ステップS13において、図11の検索された演算子op2の出力データD10である3と、図12の実行ステップ2で記憶素子M1の記憶データD11である3の異同を判定する。3と3で同じであるので、ステップS14に進む。
【0068】
ステップS14において、実行ステップ2が最適化データフロー図D4の最大の実行ステップ3以上であるか否かを判定する。実行ステップ2が最大の実行ステップ3以上でないので、ステップS15に進む。ステップS15において、実行ステップ2を1つ大きく実行ステップ3にする。そして、ステップS7に進む。
【0069】
三度、ステップS7において、入力データD13で引数i1が2であり、引数i2が1である場合で実行ステップ3のRTL記述D6のシミュレーションを行う。図12に示すように、実行ステップ3で、記憶素子M1の記憶データD11として4を出力した。
【0070】
ステップS12において、図10の演算子演算器データベースD9に基づいて、実行ステップ3と記憶素子M1から演算子op4を検索する。
【0071】
ステップS13において、図11の検索された演算子op4の出力データD10である4と、図12の実行ステップ3で記憶素子M1の記憶データD11である4の異同を判定する。4と4で同じであるので、ステップS14に進む。
【0072】
ステップS14において、実行ステップ3が最適化データフロー図D4の最大の実行ステップ3以上であるか否かを判定する。実行ステップ3が最大の実行ステップ3以上であるので、論理回路設計方法をストップする。
【0073】
このように、動作記述D1のミュレーション結果である演算子の出力データD10と、RTL記述D6のシミュレーション結果である記憶素子の記憶データD11が、実行ステップ毎に一致することを確認することで、動作記述からRTL記述が正確に高位合成されたことが検証できた。
【0074】
(実施例2)
RTL記述D6のシミュレーションを、1実行ステップ毎にデータを比較をするのでなく、RTL記述D6の全実行ステップの実行後に動作記述D1とRTL記述の比較検証を行う場合について説明する。入力データD13は、引数i1が3であり、引数i2が2であるとする。実施例1とステップS1乃至S5、S8乃至S11は同じである。ステップS12、S13、S16、S17の実施に先駆けて、ステップS6、S7、S14とS15を実施する。ステップS7、S14とS15でループを構成する。実行ステップ1から最大の実行ステップ3までの実行ステップiについて、入力データD13で引数i1が3であり、引数i2が2である場合のRTL記述D6のシミュレーションを行う。図12に示すように、まず、実行ステップ1で、記憶素子M1の記憶データD11として5を出力し、記憶素子M2の記憶データD11として1を出力した。次に、実行ステップ2で、記憶素子M1の記憶データD11として5を出力した。最後に、実行ステップ3で、記憶素子M1の記憶データD11として6を出力した。
【0075】
ステップS12において、図10の演算子演算器データベースD9に基づいて、計算された記憶データD11の実行ステップ1と記憶素子M1から演算子op1を検索する。また、実行ステップ1と記憶素子M2から演算子op3を検索する。実行ステップ2と記憶素子M1から演算子op2を検索する。実行ステップ3と記憶素子M1から演算子op4を検索する。
【0076】
ステップS13において、図11の検索された演算子op1の出力データD10である5と、図12の実行ステップ1で記憶素子M1の記憶データD11である5の異同を判定する。5と5で同じである。また、図11の検索された演算子op3の出力データD10である1と、図12の実行ステップ1で記憶素子M2の記憶データD11である1の異同を判定する。1と1で同じである。図11の検索された演算子op2の出力データD10である5と、図12の実行ステップ2で記憶素子M1の記憶データD11である5の異同を判定する。5と5で同じである。図11の検索された演算子op4の出力データD10である6と、図12の実行ステップ3で記憶素子M1の記憶データD11である6の異同を判定する。6と6で同じである。これらの判定により、論理回路設計方法をストップする。
【0077】
このように、動作記述D1のミュレーション結果である演算子の出力データD10と、RTL記述D6のシミュレーション結果である記憶素子の記憶データD11を、全実行ステップにわたって一致することを確認することで、動作記述からRTL記述が正確に高位合成されたことが検証できた。
【0078】
(実施例3)
RTL記述D6に不具合がある場合について説明する。RTL記述D6のシミュレーションは、実施例1と同様に、RTL記述D6の全実行ステップの実行後に動作記述D1とRTL記述D6の比較検証を行った。入力データD13は、引数i1が2であり、引数i2が3であるとする。実施例1とステップS1乃至S5、S8乃至S11は同じである。実施例2と同様に、ステップS12、S13、S16、S17の実施に先駆けて、ステップS6、S7、S14とS15を実施する。図12に示すように、まず、実行ステップ1で、記憶素子M1の記憶データD11として5を出力し、記憶素子M2の記憶データD11として−1を出力した。次に、実行ステップ2で、記憶素子M1の記憶データD11として1275を出力した。最後に、実行ステップ3で、記憶素子M1の記憶データD11として1276を出力した。
【0079】
ステップS12において、図10の演算子演算器データベースD9に基づいて、計算された記憶データD11の実行ステップ1と記憶素子M1から演算子op1を検索する。また、実行ステップ1と記憶素子M2から演算子op3を検索する。実行ステップ2と記憶素子M1から演算子op2を検索する。実行ステップ3と記憶素子M1から演算子op4を検索する。
【0080】
ステップS13において、図11の検索された演算子op1の出力データD10である5と、図12の実行ステップ1で記憶素子M1の記憶データD11である5の異同を判定する。5と5で同じである。また、図11の検索された演算子op3の出力データD10である−1と、図12の実行ステップ1で記憶素子M2の記憶データD11である−1の異同を判定する。−1と−1で同じである。図11の検索された演算子op2の出力データD10である−5と、図12の実行ステップ2で記憶素子M1の記憶データD11である1275の異同を判定する。−5と1275は異なる。図11の検索された演算子op4の出力データD10である−4と、図12の実行ステップ3で記憶素子M1の記憶データD11である1276の異同を判定する。−4と1276は異なる。異なる判定が生じたのでステップS16に進む。検索された演算子op2とop4で異なる判定が生じた。
【0081】
ステップS16において、図10の演算子演算器データベースD9に基づいて、異なる判定が生じた演算子op2から演算器A3を検索する。同様に、異なる判定が生じた演算子op4から演算器A1を検索する。
【0082】
ステップS17において、論理回路設計装置1のオペレータが、検索された演算器A3とA1に基づいて、RTL記述D6をデバックする。なお、演算器A3は演算器A1より早い実行ステップ2で不具合を発生させている。演算器A3での不具合により、演算器A1の不具合が発生する場合も考えられる。このような場合は、まず、演算器A3に関してデバックを行えばよい。そして、ステップS5に戻る。ステップS5に戻ることで、デバックされたRTL記述D6の記憶素子の記憶データD11の値が、動作記述D1の演算子の出力データD10に一致するまで、オペレータはデバックを繰り返すことができる。
【0083】
このように、動作記述D1とRTL記述D6の比較検証をすることにより、不具合が生じた場合には、動作記述D1とRTL記述D6の両者での不具合箇所が特定できる。このことにより、RTL記述D6の修正が容易に行え、設計にかかる時間を大幅に短縮することができる。
【0084】
(実施例4)
実施例4でも、論理回路設計装置1で論理回路設計方法を用いた。実施例4では最適化を実施した場合について説明する。実施例4の論理回路設計方法は、図3のステップS1において、図13に示すような複数の演算子op1乃至op3を有する動作記述D1から、演算子op1乃至op3を実行する演算ノードN1乃至N3を実行順に配列した未加工データフロー図D2に変換する。
【0085】
ステップS2において、図14に示すように、未加工データフロー図D2に実行ステップ1乃至3を割り当てる。入力データD13の引数i1とi2で、演算ノードN1において、和算の演算子op1を実行する。演算ノードN1は、実行ステップ1で実行するという時間情報が添付される。演算ノードN1からの出力データを記憶するレジスタR1を実行ステップ1の実行後に挿入する。
【0086】
演算ノードN1の演算子op1の出力と引数i3で、演算ノードN2において、和算の演算子op2を実行する。演算ノードN2は、実行ステップ2で実行するという時間情報が添付される。演算ノードN2からの出力データを記憶するレジスタR2を実行ステップ2の実行後に挿入する。
【0087】
演算ノードN2の演算子op2の出力と引数i4で、演算ノードN3において、和算の演算子op3を実行する。演算ノードN3は、実行ステップ3で実行するという時間情報が添付される。演算ノードN3からの出力データを記憶するレジスタR3を実行ステップ3の実行後に挿入する。
【0088】
スケジューリング部3は、このように加工した未加工データフロー図D2を、図14のスケジューリングデータフロー図D3として出力する。なお、後述するステップS8の理解が容易になるように、ステップS8の一部を先行して実施する。図13の動作記述D1と図14のスケジューリングデータフロー図D3に基づいて、図15に示すようなノード演算子データベースD7を生成する。ノードフィールド22では、演算ノードN1乃至N3とレジスタR1乃至R3が記憶される。演算子フィールド23では、演算子op1乃至op3が記憶される。演算子op1乃至op3とその演算子op1乃至op3を実行する演算ノードN1乃至N3が、同じノード演算子レコード21内に記憶される。また、演算子op1乃至op3とその演算子op1乃至op3の出力データを記憶するレジスタR1乃至R3が、同じノード演算子レコード21内に記憶される。
【0089】
ステップS3において、図14のスケジューリングデータフロー図D3を、図16に示すように最適化し、最適化データフロー図D4を生成した。直列に処理される和算を並列に処理するように組み替えた。演算ノードN2、N3とレジスタR2が消去されて、代わりに演算ノードN4、N5とレジスタR4が生成された。予想される全実行時間が、実行ステップで3実行ステップから2実行ステップに短縮された。
【0090】
ステップS8において、図13の動作記述D1と図14のスケジューリングデータフロー図D3と図16の最適化データフロー図D4に基づいて、まず、図15のノード演算子データベースD7を生成し、さらに、図17に示すような、ノード演算子データベースD7を生成する。
【0091】
ノードフィールド22では、演算ノードN1乃至N5とレジスタR1乃至R4が記憶される。演算子フィールド23では、演算子op1乃至op3が記憶される。演算子op1乃至op3とその演算子op1乃至op3を実行する演算ノードN1乃至N4が、同じノード演算子レコード21内に記憶される。なお、演算子op2とop3に直接対応する演算ノードN2とN3は、図16の最適化データフロー図D4では存在しない。そこで、演算子op2とop3の実行に影響を受ける演算ノードに、演算ノードN4とN5を設定する。演算子op2とop3とその演算子op2とop3の実行に影響を受ける演算ノードN4が、同じノード演算子レコード21内に記憶される。演算子op2とop3とその演算子op2とop3の実行に影響を受ける演算ノードN5が、同じノード演算子レコード21内に記憶される。
【0092】
また、演算ノードN1と、演算ノードN1に対応するレジスタR1は、演算子op1に関係付けられている。演算ノードN4と、演算ノードN4に対応するレジスタR4は、演算子op2、op3に関係付けられている。演算ノードN5と、演算ノードN5に対応するレジスタR3は、演算子op2、op3に関係付けられている。
【0093】
ステップS4において、図18に示すような論理回路のデータパスD5と、このデータパスの制御情報D5を生成する。データパスD5は、演算ノードN1、N5として機能する演算器A1と、演算ノードN4として機能する演算器A2と、レジスタR1、R3として機能する記憶素子M1と、レジスタR4として機能する記憶素子M2と、制御情報D5に基づいて伝達するデータを切り換えるセレクターC1、C2を有する。
【0094】
ステップS9において、図16の最適化データフロー図D4と図18のデータパスD5に基づいて、図19に示すようなノード演算器データベースD8を生成する。図19のノード演算器データベースD8より、実行ステップ1において、演算器A1が演算ノードN1として機能し、演算器A2が演算ノードN4として機能し、記憶素子M1がレジスタR1として機能し、記憶素子M2がレジスタR4として機能する。実行ステップ2において、演算器A1が演算ノードN5として機能し、記憶素子M1がレジスタR3として機能する。
【0095】
ステップS10において、図17のノード演算子データベースD7と図19のノード演算器データベースD8に基づいて、図20に示すような演算子演算器データベースD9を生成する。図20の演算子演算器データベースD9を見ると、実行ステップ1において、演算器A1が演算子op1として機能し、演算器A2が演算子op2、op3として機能し、記憶素子M1が演算子op1の出力したデータを記憶し、記憶素子M2が演算子op2、op3の出力したデータを記憶する。実行ステップ2において、演算器A1が演算子op2、op3として機能し、記憶素子M1が演算子op3の出力したデータを記憶する。
【0096】
図20の演算子演算器データベースD9によれば、演算子op1乃至op3から、同じ演算子演算器レコード28内に記憶された演算器A1、A2を検索することが可能である。記憶素子M1、M2と実行ステップ1、2から同じ演算子演算器レコード28内に記憶された演算子op1乃至op3を検索することが可能である。例えば、記憶素子M1と実行ステップ1から演算子op1を検索できる。そして、演算子op1から演算器A1を検索できる。また、記憶素子M2と実行ステップ1から演算子op2、op3を検索できる。演算子op2、op3と実行ステップ1から演算器A2を検索できる。
【0097】
このように、動作記述D1からRTL記述D6を生成する際に、動作記述D1とRTL記述D6の両者を対応づける演算子演算器データベースD9が生成できる。このことにより、動作記述D1とRTL記述D6の比較検証をすることができる。この比較検証で不具合が生じた場合には、動作記述D1、RTL記述D6の両者での不具合箇所が特定できる。動作記述D1やRTL記述D6の修正が容易に行える。
【0098】
【発明の効果】
以上説明したように、本発明によれば、動作記述から変換されたRTL記述での論理回路のシミュレーション結果を迅速に解析するための論理回路設計方法を提供できる。
【0099】
本発明によれば、コンピュータが動作記述から変換されたRTL記述での論理回路のシミュレーション結果を迅速に解析するための論理回路設計プログラムを提供せきる。
【0100】
本発明によれば、動作記述から変換されたRTL記述での論理回路のシミュレーション結果を迅速に解析するための論理回路設計装置を提供できる。
【図面の簡単な説明】
【図1】本発明の実施の形態に係る論理回路設計装置の構成図である。
【図2】本発明の実施の形態に係る論理回路設計装置のデータフロー図である。
【図3】本発明の実施の形態に係る論理回路設計方法のフローチャートである。
【図4】実施例1の動作記述を表す図である。
【図5】実施例1の未加工のDFGを表す図である。
【図6】実施例1のスケジューリング後のDFGを表す図である。
【図7】実施例1のノード演算子データベースのデータ構造を表す図である。
【図8】実施例1のデータパスを表す図である。
【図9】実施例1のノード演算器データベースのデータ構造を表す図である。
【図10】実施例1の演算子演算器データベースのデータ構造を表す図である。
【図11】実施例1の動作記述のシミュレーションの結果を表す図である。
【図12】実施例1のRTL記述のシミュレーションの結果を表す図である。
【図13】実施例4の動作記述を表す図である。
【図14】実施例4のスケジューリング後のDFGを表す図である。
【図15】実施例4のノード演算子データベースの最適化前のデータ構造を表す図である。
【図16】実施例4の最適化後のDFGを表す図である。
【図17】実施例4のノード演算子データベースの最適化後のデータ構造を表す図である。
【図18】実施例4のデータパスを表す図である。
【図19】実施例4のノード演算器データベースのデータ構造を表す図である。
【図20】実施例4の演算子演算器データベースのデータ構造を表す図である。
【符号の説明】
1 論理回路設計装置
2 構文解析部
3 スケジューリング部
4 最適化部
5 ハードウェア割付部
6 レジスタ転送レベル(RTL)記述生成部
7 ノード演算子対応情報解析部
8 ノード演算器対応情報解析部
9 演算子演算器対応情報解析部
10 動作記述シミュレーション部
11 RTL記述シミュレーション部
12 シミュレーション結果比較部
13 演算子検索部
14 記憶データ判定部
15 演算器検索部
16 入出力部
21 ノード演算子レコード
22 ノードフィールド
23 演算子フィールド
24 ノード演算器レコード
25 演算器フィールド
26 ノードフィールド
27 実行ステップフィールド
28 演算子演算器レコード
29 演算器フィールド
30 演算子フィールド
31 実行ステップフィールド
32 入力データ出力データレコード
33 演算子フィールド
34 入力データ記憶データレコード
35 記憶素子フィールド
36 実行ステップフィールド

Claims (15)

  1. 論理回路のアルゴリズムを、複数の演算子を有する動作記述から、前記演算子を実行する演算ノードを実行順に配列したデータフロー図に変換するステップと、
    前記データフロー図に実行ステップを割り当て、前記演算ノードからの出力データを記憶するレジスタを前記実行ステップの実行後に挿入するステップと、
    前記演算ノードとして機能する演算器と前記レジスタとして機能する記憶素子を有する前記論理回路のデータパスと、前記データパスの制御情報を生成するステップと、
    前記演算子を実行する前記演算器を前記演算子から検索可能であり、前記記憶素子の機能をする前記レジスタが記憶するデータを出力する前記演算子を前記実行ステップと前記記憶素子から検索可能である演算子演算器データベースを生成するステップとを有することを特徴とする論理回路設計方法。
  2. 前記動作記述と前記データフロー図に基づいて、前記演算ノードで実行する前記演算子を前記演算ノードから検索可能であり、前記レジスタが記憶するデータを出力する前記演算ノードで実行する前記演算子を前記レジスタから検索可能であるノード演算子データベースを生成するステップと、
    前記データフロー図と前記データパスに基づいて、前記演算ノードとして機能する前記演算器を前記演算ノードから検索可能であり、前記記憶素子の機能をする前記レジスタを前記実行ステップと前記記憶素子から検索可能であるノード演算器データベースを生成するステップをさらに有し、
    前記演算子演算器データベースを生成するステップが、前記ノード演算子データベースと前記ノード演算器データベースに基づくこととを特徴とする請求項1に記載の論理回路設計方法。
  3. 前記データパスと前記制御情報に基づいて、前記論理回路のレジスタ転送レベル記述を生成するステップと、
    前記動作記述に入力データを代入し、前記演算子からの出力データを計算するステップと、
    前記レジスタ転送レベル記述に前記入力データを代入し、前記実行ステップで前記記憶素子が記憶する記憶データを計算するステップと、
    演算子演算器データベースに基づいて、計算された前記記憶データの前記実行ステップと前記記憶素子から前記演算子を検索するステップと、
    検索された前記演算子の前記出力データと、前記記憶データの異同を判定するステップとをさらに有することを特徴とする請求項1または請求項2に記載の論理回路設計方法。
  4. 演算子演算器データベースに基づいて、検索された前記演算子から前記演算器を検索するステップをさらに有することを特徴とする請求項1乃至請求項3のいずれか1つに記載の論理回路設計方法。
  5. 予想される全実行時間が最短になるようにデータフロー図を変更するステップとをさらに有することを特徴とする請求項1乃至請求項4のいずれか1つに記載の論理回路設計方法。
  6. 論理回路のアルゴリズムを、複数の演算子を有する動作記述から、前記演算子を実行する演算ノードを実行順に配列したデータフロー図に変換する手順と、
    前記データフロー図に実行ステップを割り当て、前記演算ノードからの出力データを記憶するレジスタを前記実行ステップの実行後に挿入する手順と、
    前記演算ノードとして機能する演算器と前記レジスタとして機能する記憶素子を有する前記論理回路のデータパスと、前記データパスの制御情報を生成する手順と、
    前記演算子を実行する前記演算器を前記演算子から検索可能であり、前記記憶素子の機能をする前記レジスタが記憶するデータを出力する前記演算子を前記実行ステップと前記記憶素子から検索可能である演算子演算器データベースを生成する手順をコンピュータに実行させるための論理回路設計プログラム。
  7. 前記動作記述と前記データフロー図に基づいて、前記演算ノードで実行する前記演算子を前記演算ノードから検索可能であり、前記レジスタが記憶するデータを出力する前記演算ノードで実行する前記演算子を前記レジスタから検索可能であるノード演算子データベースを生成する手順と、
    前記データフロー図と前記データパスに基づいて、前記演算ノードとして機能する前記演算器を前記演算ノードから検索可能であり、前記記憶素子の機能をする前記レジスタを前記実行ステップと前記記憶素子から検索可能であるノード演算器データベースを生成する手順をさらにコンピュータに実行させるためにあり、
    前記演算子演算器データベースを生成する手順が、前記ノード演算子データベースと前記ノード演算器データベースに基づくこととを特徴とする請求項6に記載の論理回路設計プログラム。
  8. 前記データパスと前記制御情報に基づいて、前記論理回路のレジスタ転送レベル記述を生成する手順と、
    前記動作記述に入力データを代入し、前記演算子からの出力データを計算する手順と、
    前記レジスタ転送レベル記述に前記入力データを代入し、前記実行ステップで前記記憶素子が記憶する記憶データを計算する手順と、
    演算子演算器データベースに基づいて、計算された前記記憶データの前記実行ステップと前記記憶素子から前記演算子を検索する手順と、
    検索された前記演算子の前記出力データと、前記記憶データの異同を判定する手順をさらにコンピュータに実行させるための請求項6または請求項7に記載の論理回路設計プログラム。
  9. 演算子演算器データベースに基づいて、検索された前記演算子から前記演算器を検索する手順をさらにコンピュータに実行させるための請求項6乃至請求項8のいずれか1つに記載の論理回路設計プログラム。
  10. 予想される全実行時間が最短になるようにデータフロー図を変更する手順をさらにコンピュータに実行させるための請求項6乃至請求項9のいずれか1つに記載の論理回路設計プログラム。
  11. 論理回路のアルゴリズムを、複数の演算子を有する動作記述から、前記演算子を実行する演算ノードを実行順に配列したデータフロー図に変換する構文解析部と、
    前記データフロー図に実行ステップを割り当て、前記演算ノードからの出力データを記憶するレジスタを前記実行ステップの実行後に挿入するスケジューリング部と、
    前記演算ノードとして機能する演算器と前記レジスタとして機能する記憶素子を有する前記論理回路のデータパスと、前記データパスの制御情報を生成するハードウェア割付部と、
    前記演算子を実行する前記演算器を前記演算子から検索可能であり、前記記憶素子の機能をする前記レジスタが記憶するデータを出力する前記演算子を前記実行ステップと前記記憶素子から検索可能である演算子演算器データベースを生成する演算子演算器対応情報解析部を有することを特徴とする論理回路設計装置。
  12. 前記動作記述と前記データフロー図に基づいて、前記演算ノードで実行する前記演算子を前記演算ノードから検索可能であり、前記レジスタが記憶するデータを出力する前記演算ノードで実行する前記演算子を前記レジスタから検索可能であるノード演算子データベースを生成するノード演算子対応情報解析部と、
    前記データフロー図と前記データパスに基づいて、前記演算ノードとして機能する前記演算器を前記演算ノードから検索可能であり、前記記憶素子の機能をする前記レジスタを前記実行ステップと前記記憶素子から検索可能であるノード演算器データベースを生成するノード演算器対応情報解析部をさらに有し、
    前記演算子演算器データベースを生成することが、前記ノード演算子データベースと前記ノード演算器データベースに基づくこととを特徴とする請求項11に記載の論理回路設計装置。
  13. 前記データパスと前記制御情報に基づいて、前記論理回路のレジスタ転送レベル記述を生成するレジスタ転送レベル記述生成部と、
    前記動作記述に入力データを代入し、前記演算子からの出力データを計算する動作記述シミュレーション部と、
    前記レジスタ転送レベル記述に前記入力データを代入し、前記実行ステップで前記記憶素子が記憶する記憶データを計算するレジスタ転送レベルシミュレーション部と、
    演算子演算器データベースに基づいて、計算された前記記憶データの前記実行ステップと前記記憶素子から前記演算子を検索する演算子検索部と、
    検索された前記演算子の前記出力データと、前記記憶データの異同を判定する記憶データ判定部をさらに有することを特徴とする請求項11または請求項12に記載の論理回路設計装置。
  14. 演算子演算器データベースに基づいて、検索された前記演算子から前記演算器を検索する演算器検索部をさらに有することを特徴とする請求項11乃至請求項13のいずれか1つに記載の論理回路設計装置。
  15. 予想される全実行時間が最短になるようにデータフロー図を変更する最適化部をさらに有することを特徴とする請求項11乃至請求項14のいずれか1つに記載の論理回路設計装置。
JP2002354208A 2002-12-05 2002-12-05 論理回路設計方法、論理回路設計プログラムおよび論理回路設計装置 Expired - Fee Related JP3940668B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2002354208A JP3940668B2 (ja) 2002-12-05 2002-12-05 論理回路設計方法、論理回路設計プログラムおよび論理回路設計装置
US10/642,761 US6968523B2 (en) 2002-12-05 2003-08-19 Design method of logic circuit using data flow graph

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002354208A JP3940668B2 (ja) 2002-12-05 2002-12-05 論理回路設計方法、論理回路設計プログラムおよび論理回路設計装置

Publications (2)

Publication Number Publication Date
JP2004185503A true JP2004185503A (ja) 2004-07-02
JP3940668B2 JP3940668B2 (ja) 2007-07-04

Family

ID=32463333

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002354208A Expired - Fee Related JP3940668B2 (ja) 2002-12-05 2002-12-05 論理回路設計方法、論理回路設計プログラムおよび論理回路設計装置

Country Status (2)

Country Link
US (1) US6968523B2 (ja)
JP (1) JP3940668B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007102271A (ja) * 2005-09-30 2007-04-19 Nec Corp 回路設計支援システム及び方法
JP2010224864A (ja) * 2009-03-24 2010-10-07 Nec Corp 動作合成装置、動作合成方法、及び、プログラム

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2004025468A1 (ja) * 2002-09-13 2006-01-12 株式会社日立製作所 半導体装置
JP2009157440A (ja) * 2007-12-25 2009-07-16 Toshiba Corp 高位合成装置、高位合成システム、及び高位合成方法
US8136063B2 (en) * 2008-11-14 2012-03-13 Synopsys, Inc. Unfolding algorithm in multirate system folding

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5175843A (en) * 1989-10-30 1992-12-29 General Electric Company Computer-aided design method for restructuring computational networks to minimize shimming delays
JPH08101861A (ja) 1994-09-30 1996-04-16 Toshiba Corp 論理回路合成装置
JPH10171845A (ja) 1996-12-05 1998-06-26 Toshiba Corp 高位合成方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007102271A (ja) * 2005-09-30 2007-04-19 Nec Corp 回路設計支援システム及び方法
JP2010224864A (ja) * 2009-03-24 2010-10-07 Nec Corp 動作合成装置、動作合成方法、及び、プログラム

Also Published As

Publication number Publication date
US6968523B2 (en) 2005-11-22
US20040111684A1 (en) 2004-06-10
JP3940668B2 (ja) 2007-07-04

Similar Documents

Publication Publication Date Title
US7206732B2 (en) C-API instrumentation for HDL models
US6321363B1 (en) Incremental simulation using previous simulation results and knowledge of changes to simulation model to achieve fast simulation time
US7529655B2 (en) Program product for defining and recording minimum and maximum event counts of a simulation utilizing a high level language
US8161439B2 (en) Method and apparatus for processing assertions in assertion-based verification of a logic design
US7359847B2 (en) Tracking converage results in a batch simulation farm network
JP2001142937A (ja) 回路のスケジューリング正当性チェック方法及びスケジュール検証方法
EP1769407A2 (en) Loop manipulation in a behavioral synthesis tool
US7158924B2 (en) Dynamic loading of C-API HDL model instrumentation
US7882483B2 (en) Method for checking constraints equivalence of an integrated circuit design
US7194400B2 (en) Method and system for reducing storage and transmission requirements for simulation results
US20060122818A1 (en) Method, system and program product for defining and recording threshold-qualified count events of a simulation by testcases
US7143018B2 (en) Non-redundant collection of harvest events within a batch simulation farm network
US9058452B1 (en) Systems and methods for tracing and fixing unknowns in gate-level simulation
Ribon et al. Assertion support in high-level synthesis design flow
JP3940668B2 (ja) 論理回路設計方法、論理回路設計プログラムおよび論理回路設計装置
Kiaei et al. SoC Root Canal! Root cause analysis of power side-channel leakage in system-on-chip designs
Yalcin et al. An approximate timing analysis method for datapath circuits
Lavagno et al. Incremental high-level synthesis
US7051301B2 (en) System and method for building a test case including a summary of instructions
US10635766B2 (en) Simulation employing level-dependent multitype events
Taher et al. Learning-Based Diversity Estimation: Leveraging the Power of High-Level Synthesis to Mitigate Common-Mode Failure
Suryasarman et al. Rsbst: an accelerated automated software-based self-test synthesis for processor testing
Freuer et al. On the verification of high-order constraint compliance in IC design
Chang et al. Automated methods for eliminating X bugs
US20060089826A1 (en) Method, system and program product for defining and recording minimum and maximum count events of a simulation

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20061227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070109

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070220

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: 20070320

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070402

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

Free format text: PAYMENT UNTIL: 20100406

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110406

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130406

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees