JP6255880B2 - 高位合成用データ生成装置、高位合成装置、高位合成用データ生成方法及びプログラム - Google Patents

高位合成用データ生成装置、高位合成装置、高位合成用データ生成方法及びプログラム Download PDF

Info

Publication number
JP6255880B2
JP6255880B2 JP2013213145A JP2013213145A JP6255880B2 JP 6255880 B2 JP6255880 B2 JP 6255880B2 JP 2013213145 A JP2013213145 A JP 2013213145A JP 2013213145 A JP2013213145 A JP 2013213145A JP 6255880 B2 JP6255880 B2 JP 6255880B2
Authority
JP
Japan
Prior art keywords
information
level synthesis
data
design
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.)
Expired - Fee Related
Application number
JP2013213145A
Other languages
English (en)
Other versions
JP2015076013A (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.)
Socionext Inc
Original Assignee
Socionext Inc
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 Socionext Inc filed Critical Socionext Inc
Priority to JP2013213145A priority Critical patent/JP6255880B2/ja
Priority to US14/466,766 priority patent/US9235672B2/en
Publication of JP2015076013A publication Critical patent/JP2015076013A/ja
Application granted granted Critical
Publication of JP6255880B2 publication Critical patent/JP6255880B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist

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)
  • Design And Manufacture Of Integrated Circuits (AREA)

Description

本発明は、高位合成用データ生成装置、高位合成装置、高位合成用データ生成方法及びプログラムに関する。
近年における回路設計は、ムーアの法則にしたがって集積度の向上が年々とどまるところを知らず、回路設計の複雑度は日々増加している。現在、回路設計の主流であるHDL(Hardware Description Language)を用いたRTL(Register Transfer Level)設計は、ゲートレベル設計に比べて設計抽象度が高いが、年々増加している回路規模に対応できなくなりつつある。
そこで、RTLよりもさらに抽象度の高い高位合成(高位設計とも呼ばれる)が利用され始めている。高位合成で用いられる入力言語(たとえば、高位言語)としてはソフトウェア言語の利用が多く、もっとも利用されているものはC/C++言語、ハードウェア記述向けクラスライブラリを実装したSystemCとなっている。入力言語として他には、Java(登録商標)や、BASIC、アセンブリ言語などがある。高位合成では、高位言語の他に、制約やテクノロジライブラリが参照され、VHDL(VHSIC(Very High Speed Integrated Circuit)HDL)やVerilogHDL、SystemVerilogなどの、HDLが作成される。
高位合成では、半導体装置(または半導体回路)の設計データであるソースコードは、提供者側からユーザに提供され、ユーザ側でそのソースコードに基づく高位合成やシミュレーションが行われる。
なお、HDLを用いたRTL設計では、論理合成後に生成されるネットリストから元のHDLは再現されづらい。また、HDLのコンパイラ識別子として暗号化のための仕組みがサポートされており、RTLシミュレーションや論理合成のEDA(Electronic Design Automation)ツールで、暗号化したHDLをそのまま利用することが可能となっている。そのため、提供者側は、ネットリストや暗号化したHDLをユーザに提供することで、設計データであるHDLそのものを提供せずに済む。
特開2003−99409号公報 特開2011−170602号公報 特開2010−146577号公報
高位合成では、RTLよりも抽象度の高いソフトウェア言語を用いて設計が行われるため、その設計データであるソースコードは、人が容易に解読可能となっている。従来の高位合成では、このように人が容易に解読可能なソースコードがユーザに提供されるため、提供者側のノウハウ(知的財産)が流出してしまう懸念があった。
発明の一観点によれば、半導体装置の設計データであるソースコードを解析し、前記半導体装置のデータ及び制御の流れを示す情報を生成する解析部と、前記ソースコードをコンパイルすることで得られる第1の中間データを取得して、前記解析部が生成した前記情報を、前記第1の中間データに組み込んだ第2の中間データを生成し、高位合成用データとして出力する高位合成用データ生成部と、を備えた高位合成用データ生成装置が提供される。
また、発明の一観点によれば、半導体装置の設計データであるソースコードをコンパイルすることで得られる第1の中間データに、前記半導体装置のデータ及び制御の流れを示す情報が組み込まれた第2の中間データを取得して、前記第2の中間データから前記情報を抽出する抽出部と、前記抽出部で抽出された前記情報に基づき高位合成を行う高位合成部と、を備えた高位合成装置が提供される。
開示の高位合成用データ生成装置、高位合成用データ生成方法及びプログラムによれば、ノウハウの流出を抑制できる。
本実施の形態の高位合成用データ生成装置及び高位合成装置の一例を示す図である。 高位合成装置の一例を示す図である。 高位合成用データ生成装置または高位合成装置のハードウェア例を示す図である。 高位合成用データ生成装置の処理の流れを示すフローチャートである。 コード解析処理の一例の流れを示すフローチャートである。 ソースコードの一例を示す図である。 制約設定可能情報の表示例を示す図である。 ユーザから入力される制限情報の一例を示す図である。 ユーザから入力される設定情報の他の例を示す図である。 制約設定情報の一例を示す図である。 CDFG解析処理の一例の流れを示すフローチャートである。 CDFG情報の一例を示す図である。 制約設定対応情報の一例を示す図である。 高位合成用データ生成処理の一例の流れを示すフローチャートである。 中間データ生成装置に入力されるソースコードの例を示す。 ELFの構造の例を示す図である。 アセンブリコードの一例を示す図である。 高位合成用セクション情報の追加例を示す図である。 高位合成装置の抽出部での抽出処理の一例を示すフローチャートである。 高位合成装置の制約検証部での制約検証処理の一例を示すフローチャートである。
以下、発明を実施するための形態を、図面を参照しつつ説明する。
図1は、本実施の形態の高位合成用データ生成装置及び高位合成装置の一例を示す図である。
高位合成用データ生成装置1は、解析部2、記憶部3、高位合成用データ生成部4を有している。
解析部2は、半導体装置(以下、半導体回路も含むものとする)の設計データであるソースコードD1を解析し、設計対象である半導体装置のデータ及び制御の流れを示す情報D2(以下CDFG(Control Data Flow Graph)情報と呼ぶ)を生成する。ソースコードD1は、C/C++言語、SystemC、JavaBASIC、アセンブリ言語などの高位言語で記述されている。CDFGは、ソースコードD1の動作(ビヘイビア)記述から作成されるデータの流れを示すDFG(Date Flow Graph)と、制御の流れを示すCFG(Control Flow Graph)を合わせたものである。CDFG情報D2の例については後述する(図12参照)。
なお、解析部2は、コード解析部2aとCDFG解析部2bを有する。コード解析部2aは、ソースコードD1を解析して、設定可能な高位合成情報を、制約設定可能情報(設計情報)D3として出力して、高位合成用データ生成装置1を使用する提供者に提示する機能を有する。また、高位合成用データ生成装置1を使用する提供者が制約設定可能情報(設計情報)D3に基づいて作成した制限情報(設計条件情報)D4を、コード解析部2aが取得し、さらに、コード解析部2aは、制約設定可能情報(設計情報)D3に制限情報(設計条件情報)D4を追加した制約設定情報(設計条件込みの設計情報)D5を生成して記憶部3に記憶する。
制限情報(設計条件情報)D4は、制約設定可能情報(設計情報)D3の設定条件を示すもの、換言すると、設定を制限するものであり、各種パラメータの制限値や、使用を認めるライブラリ情報などを含む。
CDFG解析部2bは、ソースコードD1の解析結果に基づきCDFG情報D2を生成して記憶部3に記憶する。また、CDFG解析部2bは、制約設定情報D5に含まれる制限情報(設計条件情報)D4とCDFG情報D2とを対応付けた制約設定対応情報D6を生成し、記憶部3に記憶する。
記憶部3は、解析部2で生成されたCDFG情報D2、制約設定情報D5、制約設定対応情報D6を記憶する。
高位合成用データ生成部4は、ソースコードD1をコンパイルすることで得られる中間データを取得して、CDFG情報D2と制約設定対応情報D6を、その中間データに組み込んだ中間データを生成し、高位合成用データとして出力する。
図1の例では、ソースコードD1は、中間データ生成装置5のコンパイル部6でアセンブリコードD7に変換され、アセンブル部7にてオブジェクトファイルD8に変換される。高位合成用データ生成装置1の高位合成用データ生成部4は、オブジェクトファイルD8を中間データとして取得し、CDFG情報D2と制約設定対応情報D6を組み込んだオブジェクトファイルD9を、高位合成用データとして出力する。
このように高位合成用データの提供者側装置(図1の例では高位合成用データ生成装置1と中間データ生成装置5)で生成された高位合成用データは、ユーザ側装置に提供される。ユーザ側装置は、シミュレーション装置8と高位合成装置11がある。
上記のような高位合成用データ生成装置1によって、ソースコードD1の代わりに、CDFG情報D2を組み込んだ中間データ(オブジェクトファイルD9)が高位合成用データとしてユーザ側装置に提供される。オブジェクトファイルD9やCDFG情報D2からソースコードD1に戻すことは困難であるため、ソースコードD1は保護される。そのため、ノウハウの流出を抑えることができる。
また、制限情報(設計条件情報)D4とCDFG情報D2とが対応付けられた制約設定対応情報D6をオブジェクトファイルD8に組み込むことで、ユーザ側装置では、CDFG情報D2の要素に対して、どのような高位合成制約が設定できるのか、容易に把握できるようになる。
また、高位合成用データ生成装置1は、1つのオブジェクトファイルD9により、CDFG情報D2や制約設定対応情報D6をユーザ側装置に提供できる。
以下、ユーザ側装置の一例を説明する。
(ユーザ側装置の一例)
図1のように、シミュレーション装置8は、高位合成用データであるオブジェクトファイルD9を取得して実行形式ファイルD10を生成するリンク部9を有する。シミュレーション実行部10は、実行形式ファイルD10を実行することで、シミュレーションを実行し、ユーザが意図する動作を行うか確認する。後述するように、オブジェクトファイルD9に組み込まれるCDFG情報D2と制約設定対応情報D6は、リンク部9での処理には影響を与えない。
以下、高位合成装置11の一例を説明する。
図2は、高位合成装置の一例を示す図である。
高位合成装置11は、抽出部20、高位合成部21、記憶部22を有する。
抽出部20は、高位合成用データとして供給される中間データ(オブジェクトファイルD9)から、CDFG情報D2と制約設定対応情報D6を抽出する。また、抽出部20は、抽出した制約設定対応情報D6を出力して、高位合成装置11のユーザに提示する。ユーザは制約設定対応情報D6に基づき、高位合成制約情報(高位合成設計情報)D11を作成して、高位合成装置11に入力する。
高位合成部21は、抽出部20で抽出されたCDFG情報D2に基づき高位合成を行う。高位合成部21は、制約検証部21a、CDFG最適化部21b、ライブラリ処理部21c、アロケーション部21d、スケジューリング部21e、バインディング部21f、FSMD(Finite State Machine Data path)生成部21g、HDL生成部21hを有している。
制約検証部21aは、高位合成制約情報(高位合成設計情報)D11を取得し、ユーザが作成した高位合成制約情報(高位合成設計情報)D11が、制約設定対応情報D6に含まれる制限情報(設計条件情報)D4に規定されている制限を満たしているか否かを検証する。そして、制約検証部21aは、高位合成制約情報(高位合成設計情報)D11が、上記制限を満たしていないときには警告を発し、高位合成の実行を制限する。
CDFG最適化部21bは、制約検証部21aで高位合成制約情報(高位合成設計情報)D11に問題がないと判定されたときに、抽出部20で抽出されたCDFG情報D2を最適化する。CDFG最適化部21bは、たとえば、重複している掛け算があればそれをまとめたり、共通化できる変数を共通化したりして最適化を行う。
ライブラリ処理部21cでは、記憶部22に記憶されている高位合成ライブラリD12からタイミング情報やエリア情報を取得する。
アロケーション部21dは、足し算や掛け算などの演算の情報をマッピングする。
スケジューリング部21eは、タイミング情報にしたがって、演算や配列アクセスの実行ステップを決定する。
バインディング部21fは、演算子や変数、配列を演算器や、レジスタ、メモリに割り付ける。
FSMD生成部21gは、ステートマシンを生成する。
HDL生成部21hは、合成された回路のアーキテクチャをRTLレベルのHDLデータD13に変換して、記憶部22に記憶する。
このような高位合成装置11によれば、オブジェクトファイルD9に含まれるCDFG情報D2に基づいて高位合成を行うことができる。また、オブジェクトファイルD9に含まれる制約設定対応情報D6が出力されユーザに提示されるので、ユーザは、CDFG情報D2の要素に対してどのような高位合成制約が設定できるのか、容易に把握できる。また、制約検証部21aはユーザが入力した高位合成制約情報(高位合成設計情報)D11が、提供者側で設定された制限情報(設計条件情報)D4で規定される制限を満たさないときには警告を発し、高位合成の実行を制限することで、提供者側が意図していない設定で高位合成が行われることを防げる。
なお、提供者側装置である高位合成用データ生成装置1は、高位合成装置11の機能を有していてもよい。また、中間データ生成装置5においても、シミュレーション装置8の機能を有していてもよい。
以下、より詳細に本実施の形態の高位合成用データ生成装置1及び高位合成装置11の例を説明する。
(ハードウェア例)
図3は、高位合成用データ生成装置または高位合成装置のハードウェア例を示す図である。
高位合成用データ生成装置1または高位合成装置11は、図3に示すようなコンピュータ30にて実現される。中間データ生成装置5やシミュレーション装置8も同様のハードウェアにて実現可能である。
コンピュータ30は、プロセッサ31によって装置全体が制御されている。プロセッサ31には、バス39を介してRAM(Random Access Memory)32と複数の周辺機器が接続されている。プロセッサ31は、マルチプロセッサであってもよい。プロセッサ31は、たとえばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、またはPLD(Programmable Logic Device)である。またプロセッサ31は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。
RAM32は、コンピュータ30の主記憶装置として使用される。RAM32には、プロセッサ31に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM32には、プロセッサ31による処理に必要な各種データが格納される。
バス39に接続されている周辺機器としては、HDD(Hard Disk Drive)33、グラフィック処理装置34、入力インタフェース35、光学ドライブ装置36、機器接続インタフェース37及びネットワークインタフェース38がある。
HDD33は、内蔵したディスクに対して、磁気的にデータの書き込み及び読み出しを行う。HDD33は、コンピュータ30の補助記憶装置として使用される。HDD33には、OSのプログラム、アプリケーションプログラム、及び各種データが格納される。なお、補助記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
グラフィック処理装置34には、モニタ34aが接続されている。グラフィック処理装置34は、プロセッサ31からの命令にしたがって、画像をモニタ34aの画面に表示させる。モニタ34aとしては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置などがある。
入力インタフェース35には、キーボード35aとマウス35bとが接続されている。入力インタフェース35は、キーボード35aやマウス35bから送られてくる信号をプロセッサ31に送信する。なお、マウス35bは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
光学ドライブ装置36は、レーザ光などを利用して、光ディスク36aに記録されたデータの読み取りを行う。光ディスク36aは、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク36aには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。
機器接続インタフェース37は、コンピュータ30に周辺機器を接続するための通信インタフェースである。たとえば機器接続インタフェース37には、メモリ装置37aやメモリリーダライタ37bを接続することができる。メモリ装置37aは、機器接続インタフェース37との通信機能を搭載した記録媒体である。メモリリーダライタ37bは、メモリカード37cへのデータの書き込み、またはメモリカード37cからのデータの読み出しを行う装置である。メモリカード37cは、カード型の記録媒体である。
ネットワークインタフェース38は、ネットワーク38aに接続されている。ネットワークインタフェース38は、ネットワーク38aを介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
以上のようなハードウェア構成によって、図1、図2に示した高位合成用データ生成装置1または高位合成装置11の処理機能を実現することができる。たとえば、プロセッサ31の制御によって、図1に示した高位合成用データ生成装置1の解析部2、高位合成用データ生成部4、図2に示した抽出部20、高位合成部21の処理機能が実現される。
コンピュータ30は、たとえばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、高位合成用データ生成装置1または高位合成装置11の処理機能を実現する。コンピュータ30に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。たとえば、コンピュータ30に実行させるプログラムをHDD33に格納しておくことができる。プロセッサ31は、HDD33内のプログラムの少なくとも一部をRAM32にロードし、プログラムを実行する。またコンピュータ30に実行させるプログラムを、光ディスク36a、メモリ装置37a、メモリカード37cなどの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、たとえばプロセッサ31からの制御により、HDD33にインストールされた後、実行可能となる。またプロセッサ31が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
次に、高位合成用データ生成装置1の処理を、具体例をあげてより詳細に説明する。
(高位合成用データ生成装置の処理例)
図4は、高位合成用データ生成装置の処理の流れを示すフローチャートである。
高位合成用データ生成装置1は、解析処理(ステップS1)と、高位合成データ生成処理(ステップS2)を行う。
解析処理では、まずコード解析部2aによるコード解析処理(ステップS1a)が行われ、次にCDFG解析部2bによるCDFG解析処理(ステップS1b)が行われる。
図5は、コード解析処理の一例の流れを示すフローチャートである。
コード解析処理では、先ず、ソースコードD1の読み込みが行われ(ステップS10)、その後、コード解析が行われる(ステップS11)。
図6は、ソースコードの一例を示す図である。
図6に示されているソースコードD1の例では、シフトレジスタと積和演算器を有する半導体装置が記述されている。8〜15行目にシフトレジスタが記述されており、17〜22行目に積和演算器が記述されている。
ステップS11の処理では、コード解析部2aは、ソースコードD1の記述から、for文やif文などの高位合成で制約を設定可能な箇所を抽出する。
その後、抽出した情報が制約設定可能情報(設計情報)D3として、たとえば、図3に示したモニタ34aに表示される(ステップS12)。
図7は、制約設定可能情報の表示例を示す図である。
図7には、CDFG情報D2の要素のID(IDentification)(後述する)、ソースコードD1の行番号、ラベル名、関数名、提供者が定義する名前、制限情報(設計条件情報:設定項目、デフォルト値、制限値)が示されている。制約設定可能情報(設計情報)D3としては、図6に示したソースコードD1において、2行目の関数名“sample”の情報、9行目の、ラベル名“shift”の情報、18行目の、ラベル名“mac”の情報があることが示されている。
ステップS12の処理後、コード解析部2aは、ユーザから入力される制限情報(設計条件情報)D4を取得する(ステップS13)。コード解析部2aは、たとえば、以下のようにユーザがファイルで作成した制限情報(設計条件情報)D4を取得する。
図8は、ユーザから入力される制限情報の一例を示す図である。
図8の制限情報(設計条件情報)D4の例では、ソースコードD1の9行目のラベル“shift”のループ文に対して並列化の設定値を4〜8とすることが示されている。また、ソースコードD1の18行目のラベル“mac”のループ文に対して、パイプラインの設定値を1〜4とすることが示されている。
なお、制限情報(設計条件情報)D4には、制約設定可能情報(設計情報)D3として示された項目以外にも、図8のように、半導体装置の動作周波数の値、使用可能とするライブラリの名前などが含まれる。図8の例では、動作周波数のデフォルト値が100MHzであり、50−200Mhzの範囲で設定可能とすることが示されている。
このような制限を加えることで、高位合成用データの提供者側が意図しない設定で、ユーザ側で高位合成が行われることを防げる。たとえば、特定のライブラリや、ある範囲の動作周波数で最適化が行われている場合には、そのライブラリや動作周波数の範囲以外を用いる設定が行われないように制限を加えることで、より適切な高位合成が可能となる。
図9は、ユーザから入力される設定情報の他の例を示す図である。
図9では、“shift”や“mac”のようなラベル名ではなく、ソースコードD1において設定する行の行番号が指定されている。図9中の“L9”や“L18”が、9行目、18行目を示している。設定する内容は、図8に示した内容と同じである。
図9に示すように、制限情報(設計条件情報)D4は、ラベルではなく、行番号で設定する箇所が示されるようなものであってもよい。
なお、ユーザは、たとえば、モニタ34a上に表示される図7に示したようなテーブルに、設定項目、デフォルト値、制限値などを入力することで、コード解析部2aが、それらの情報を制限情報(設計条件情報)D4として取得するようにしてもよい。また、このときユーザは、各設定項目に対し、後述の図10に示すような「提供者が定義する名前」を書き入れるようにしてもよい。
次に、コード解析部2aは、取得した制限情報(設計条件情報)D4に基づき、制約設定情報D5を生成する(ステップS14)。
図10は、制約設定情報の一例を示す図である。
図10に示されている制約設定情報D5は、図7に示した制約設定可能情報(設計情報)D3が、制限情報(設計条件情報)D4に基づき更新された形で示されており、図8、図9に示した制限情報(設計条件情報)D4で指定されている内容が示されている。また、「提供者が定義する名前」が各設定項目に対して示されている。
その後、CDFG解析処理が行われる。
図11は、CDFG解析処理の一例の流れを示すフローチャートである。
CDFG解析部2bは、コード解析部2aでのコード解析結果を読み込み(ステップS20)、ループ解析(ステップS21)や、条件分岐解析(ステップS22)を行い、CDFG情報D2を生成する(ステップS23)。なお、ステップS21,S22の順序は入れ替えてもよい。
図12は、CDFG情報の一例を示す図である。
図6に示したソースコードD1の“sample”という関数がCDFGで示されている。
パーツ40,43はループの開始を示し、パーツ42,46は、ループの終わりを示している。パーツ40,42は、“shift”のループであり、パーツ43,46は、“mac”のループである。また、パーツ41は、if(条件分岐)を示しており、パーツ44は乗算、パーツ45は加算、パーツ47はシフトを示している。
ステップS23の処理後、CDFG解析部2bは、制約設定情報D5を読み込み(ステップS24)、CDFG情報D2と制約設定情報D5に含まれる制限情報(設計条件情報)D4との対応付けを行う(ステップS25)。
ステップS25の処理では、CDFG解析部2bは、図12に示したように、CDFGの各要素(パーツ40,41,43〜45,47)にIDを割り付け、制限情報(設計条件情報)D4と対応付ける。図12に示した例では、関数“sample”もパーツの1つとして“ID=0001”が割り付けられている。
ステップS25の処理では、このIDと制限情報(設計条件情報)D4とが対応付けられる。
CDFG解析部2bは、CDFG情報D2と制限情報(設計条件情報)D4との対応付けの結果に基づき、制約設定対応情報D6を生成する(ステップS26)。
図13は、制約設定対応情報の一例を示す図である。
図13に示されている制約設定対応情報D6は、図10に示した制約設定情報D5が、ステップS25の処理に基づき更新された形で示されている。図10に示されている制約設定情報D5に対し、図12に示したCDFGのパーツのIDが割り付けられている。
以上のように、解析部2での処理が終わると、高位合成用データ生成部4による高位合成データ生成処理が行われる。
図14は、高位合成用データ生成処理の一例の流れを示すフローチャートである。
高位合成用データ生成部4は、CDFG情報D2、制約設定対応情報D6、中間データ生成装置5で生成されたオブジェクトファイルD8をそれぞれ読み込み(ステップS30,S31,S32)、高位合成用セクション情報を作成する(ステップS33)。なお、ステップS30〜S32の順序は適宜入れ替えてもよい。
ここで、簡単に中間データ生成装置5によるオブジェクトファイルD8の生成例を説明する。
図15は、中間データ生成装置に入力されるソースコードの例を示す。
図15では、説明の都合上、積和演算を行う“mac”という1つの関数を有する簡単なソースコードの例が示されている。このようなソースコードを、コンパイル部6でコンパイルすることで、アセンブリコードD7が得られる。そしてアセンブル部7にてアセンブリコードD7がオブジェクトファイルD8に変換される。以下では、アセンブリコードD7やオブジェクトファイルD8のファイルフォーマットとして、ELF(Executable and Linking Format)を用いるものとして説明する。
図16は、ELFの構造の例を示す図である。
ELFには、ELFヘッダ、プログラムヘッダテーブル、セクションヘッダテーブルが含まれる。また、ELFでは、基本的にセクション単位でデータが扱われる。代表的なセクションとしては、プログラムが配置される“.text”セグメントや、データが配置される“.data”セグメント、リードオンリーの定数を格納する“.rodata”セグメントなどがある。さらに、ELFでは、ユーザが追加で補足できる情報が配置される“.note”セクションがある。
たとえば、図16のフォーマットにおいて、section1〜section3を含むsegment1が、“.text”セグメントで、section4,section5を含むsegment2が、“.data”セグメントである。また、section6を含むsegment3が、“.note”セクションである。
図17は、アセンブリコードの一例を示す図である。
図17では、図15に示したソースコードのコンパイルによって得られたアセンブリコードの例が示されている。
コードやデータが適切なセグメントに配置されている。図17のアセンブリコードの例では、前述したような“.text”セグメント、“.rodata”セグメントの他、“.eh_frame”セグメントが示されており、最後に、“.note”セクションが示されている。
ステップS32の処理で、高位合成用データ生成部4に読み込まれるオブジェクトファイルD8は、図17に示したようなアセンブリコードD7がバイナリに変換されたオブジェクトファイルD8であるが、図17と同様のフォーマット(ELF)となる。
ステップS33で作成される高位合成用セクション情報は、CDFG情報D2と制約設定対応情報D6とに基づく情報であり、次のステップS34の処理で“.note”セクションに追加される。
ステップS34の処理では、高位合成用データ生成部4は、オブジェクトファイルD8の、“.note”セクションに、高位合成用セクション情報を追加してオブジェクトファイルD9を生成する。
図18は、高位合成用セクション情報の追加例を示す図である。
なお、図18では、分かりやすいように図17に示したようなアセンブリコードに高位合成用セクション情報を追加した例を示しているが、実際にはオブジェクトファイルD8の“.note”セクションに追加される。
図18の例では、“.note”セクションに、高位合成用のセクションであることを示す識別子として、“HLS”という名前でセクションが定義されている。また、高位合成用のセクションにおいて、“namesz”というラベルの次の行では、“name_s”に記述される文字列のサイズが定義される。また、“descsz”というラベルの次の行では、“dsec_s”に記述されるデータのサイズが定義される。“name_s”というラベルの次の行では、任意の文字列が定義される。図18の例では、高位合成ツール名“HLS Compiler”が定義されている。“dsec_s”というラベルの次の行では、ユーザ任意で追加できる情報が定義されている。図18の例では、CDFG情報と制約設定対応情報がデータとして追加されている。
以上のように、高位合成用データ生成部4は、オブジェクトファイルにおいてユーザが追加で補足できるセクションに、CDFG情報D2と制約設定対応情報D6を追加するので、1つのファイルで高位合成用データを、ユーザ側装置に提供できる。なお、“.note”セクションは、シミュレーション装置8のリンク部9でのリンク動作の際に影響を与えないため、問題なく実行形式ファイルD10が作成できる。そのため、シミュレーション装置8としては、特別な変更を行わなくてもよく、既存の装置が適用できる。
次に、高位合成装置11の処理例を説明する。
(高位合成装置11の処理例)
図19は、高位合成装置の抽出部での抽出処理の一例を示すフローチャートである。
抽出部20は、高位合成用データ生成装置1で生成されたオブジェクトファイルD9を読み込み(ステップS40)、読み込んだオブジェクトファイルD9から、高位合成用セクションを検索する(ステップS41)。そして、抽出部20は、高位合成用セクションを検出できたか否かを判定する(ステップS42)。高位合成用セクションを検出できなかったときには、抽出部20は、高位合成セクションが未検出である旨のエラーメッセージを、たとえば、モニタ34aに表示させ、高位合成部21での高位合成の実行を中止させ、ステップS40の処理に戻る。
抽出部20が高位合成用セクションを検出したときには、抽出部20は、高位合成用セクションを読み込み(ステップS44)、高位合成用セクションに含まれるCDFG情報D2と制約設定対応情報D6を抽出する(ステップS45)。抽出部20は、抽出した制約設定対応情報D6を、たとえば、モニタ34aに表示させる(ステップS46)。また、抽出部20は、CDFG情報D2をCDFG最適化部21bに渡し(ステップS47)、制約設定対応情報D6を制約検証部21aに渡し(ステップS48)、抽出処理を終える。なお、ステップS46〜S48の順序は適宜入れ替えてもよい。
上記のように、ユーザ側装置である高位合成装置11には、ソースコードD1がそのまま供給されるのではなく、ソースコードD1がCDFG情報D2に変換されてオブジェクトファイルD9に追加された形で供給される。そのため、ループ情報や条件分岐などの項目について、ソースコードD1とCDFG情報D2との対応関係が分からない。
しかし、本実施の形態の高位合成装置11では、図14に示したような制約設定対応情報D6をユーザに提示できるため、高位合成制約の設定を自由に行える。また、図14のように、提供者が設定項目に名前を付けているため、ユーザは、ソースコードD1がなくても何の設定であるかが容易に把握できる。
次に、高位合成装置11の制約検証部21aの処理を説明する。
図20は、高位合成装置の制約検証部での制約検証処理の一例を示すフローチャートである。
制約検証部21aは、抽出部20から渡される制約設定対応情報D6を読み込み(ステップS50)、制約設定対応情報D6を、たとえばモニタ34aに表示させる(ステップS51)。なお、図19のステップS46に示したように抽出部20での処理の際に、制約設定対応情報D6を表示させている場合には、ステップS51の処理はなくてもよい。
さらに、制約検証部21aは、ユーザから入力される高位合成制約情報(高位合成設計情報)D11を読み込み(ステップS52)、制約設定対応情報D6を用いて高位合成制約情報(高位合成設計情報)D11を検証する(ステップS53)。
そして、制約検証部21aは、高位合成制約情報(高位合成設計情報)D11が制約設定対応情報D6に含まれる制限情報(設計条件情報)D4で規定されている制限を満たしているか否かを判定する(ステップS54)。
ユーザから入力される高位合成制約情報(高位合成設計情報)D11が制限を満たしていないときには、制約検証部21aは警告を発する(ステップS55)。たとえば、図13に示したように、動作周波数が50−200MHzで制限されているとき、高位合成制約情報(高位合成設計情報)D11で、動作周波数が250MHzと指定されたときには、制約検証部21aは警告を発する。
ステップS55の処理では、制約検証部21aは、たとえば、モニタ34aに警告(エラーメッセージ)を表示させることで、高位合成制約情報(高位合成設計情報)D11の設定をユーザに直すように促し(ステップS55)、その後、ステップS50の処理に戻る。ユーザから入力される高位合成制約情報(高位合成設計情報)D11が正しい内容であるときには、CDFG最適化処理に進み(ステップS56)、制約検証処理は終了する。
その後は、前述したCDFG最適化部21b、ライブラリ処理部21c、アロケーション部21d、スケジューリング部21e、バインディング部21f、FSMD生成部21g、HDL生成部21hによる高位合成が行われる。HDL生成部21hにより生成されるHDLデータD13は、論理合成ツールなどの下流のツールに供給され、設計対象の半導体装置のマスクデータが生成される。
以上のような高位合成装置11による処理によれば、オブジェクトファイルD9の高位合成用セクションに含まれるCDFG情報D2に基づいて高位合成を行うことができる。
また、オブジェクトファイルD9の高位合成用セクションに含まれる制約設定対応情報D6が出力されユーザに提示されるので、ユーザは、CDFG情報D2の要素に対してどのような高位合成制約が設定できるのか、容易に把握できる。
また、高位合成制約情報(高位合成設計情報)D11が制限情報(設計条件情報)D4に規定された制限を満たさないとき、制約検証部21aは警告を発し、CDFG最適化処理が行われないようにして高位合成の実行を制限する。これにより、提供者側が意図していない設定で高位合成が行われることを防げる。
以上、実施の形態に基づき、本発明の高位合成用データ生成装置、高位合成装置、高位合成用データ生成方法及びプログラムの一観点について説明してきたが、これらは一例にすぎず、上記の記載に限定されるものではない。
なお、上記では、高位言語としてC/C++/SystemC言語を想定して説明したが、これに限定されず、他の高位言語(たとえば、Javaなど)を用いてもよい。
また、上記ではアセンブリコードやオブジェクトファイルのファイルフォーマットを、ELFであるものとして説明したがELFに限定されるものではない。ユーザが追加で情報を補足できる領域を含むファイルフォーマットを適用できる。
なお、上記の説明では、中間データ生成装置5が中間データであるオブジェクトファイルを生成するものとして説明したが、高位合成用データ生成装置1がコンパイルやアセンブルを行い、オブジェクトファイルD8を生成するようにしてもよい。
また、高位合成用セクション情報を暗号化して、オブジェクトファイルD8に組み込むようにしてもよい。
以上説明した複数の実施の形態に関し、さらに以下の付記を開示する。
(付記1)半導体装置の設計データであるソースコードを解析し、前記半導体装置のデータ及び制御の流れを示す情報を生成する解析部と、
前記ソースコードをコンパイルすることで得られる第1の中間データを取得して、前記解析部が生成した前記情報を、前記第1の中間データに組み込んだ第2の中間データを生成し、高位合成用データとして出力する高位合成用データ生成部と、
を有することを特徴とする高位合成用データ生成装置。
(付記2)前記解析部は、前記ソースコードを解析して、設定可能な高位合成情報である設計情報を出力し、前記設計情報の設定条件を示す設計条件情報を外部から取得し、前記設計条件情報と前記情報とを対応付けた対応情報を生成し、
前記高位合成用データ生成部は、前記情報と前記対応情報を前記第1の中間データに組み込んだ前記第2の中間データを生成すること、
を特徴とする付記1に記載の高位合成用データ生成装置。
(付記3)前記設計条件情報は、高位合成で使用するライブラリ情報を含むこと、を特徴とする付記2に記載の高位合成用データ生成装置。
(付記4)前記設計条件情報は、前記半導体装置の動作周波数の条件値を含むこと、を特徴とする付記2または3に記載の高位合成用データ生成装置。
(付記5)前記設計条件情報は、前記半導体装置で行われるパイプライン処理の設定値を含むこと、を特徴とする付記2乃至4の何れか一つに記載の高位合成用データ生成装置。
(付記6)前記設計条件情報は、前記半導体装置で行われる並列化処理の設定値を含むこと、を特徴とする付記2乃至5の何れか一つに記載の高位合成用データ生成装置。
(付記7)半導体装置の設計データであるソースコードをコンパイルすることで得られる第1の中間データに、前記半導体装置のデータ及び制御の流れを示す情報が組み込まれた第2の中間データを取得して、前記第2の中間データから前記情報を抽出する抽出部と、
前記抽出部で抽出された前記情報に基づき高位合成を行う高位合成部と、
を有することを特徴とする高位合成装置。
(付記8)前記第2の中間データは、設定可能な高位合成情報である設計情報の設定条件を示す設計条件情報と、前記情報とが対応付けられた対応情報を含み、
前記抽出部は、前記対応情報を抽出して、前記対応情報を出力し、
前記高位合成部は、高位合成設計情報を外部から取得して、前記高位合成設計情報が前記設計条件情報に規定されている条件を満たしているか否かを検証する設計検証部を有し、
前記設計検証部は、前記高位合成設計情報が、前記条件を満たしていないときには警告を発し、前記高位合成の実行を制限することを特徴とする付記7に記載の高位合成装置。
(付記9)半導体装置の設計データであるソースコードを解析して前記半導体装置内でのデータ及び制御の流れを示す情報を生成し、
前記ソースコードをコンパイルすることで得られる第1の中間データを取得して、前記情報を前記第1の中間データに組み込んだ第2の中間データを生成し、高位合成用データとして出力する、
ことを特徴とする高位合成用データ生成方法。
(付記10)半導体装置の設計データであるソースコードを解析して前記半導体装置内でのデータ及び制御の流れを示す情報を生成し、
前記ソースコードをコンパイルすることで得られる第1の中間データを取得して、前記情報を前記第1の中間データに組み込んだ第2の中間データを生成し、高位合成用データとして出力する、
処理をコンピュータに実行させるプログラム。
(付記11)半導体装置の設計データであるソースコードをコンパイルすることで得られる第1の中間データに、前記半導体装置のデータ及び制御の流れを示す情報が組み込まれた第2の中間データを取得して、前記第2の中間データから前記情報を抽出し、
抽出した前記情報に基づき高位合成を行う、
ことを特徴とする高位合成方法。
(付記12)半導体装置の設計データであるソースコードをコンパイルすることで得られる第1の中間データに、前記半導体装置のデータ及び制御の流れを示す情報が組み込まれた第2の中間データを取得して、前記第2の中間データから前記情報を抽出し、
抽出した前記情報に基づき高位合成を行う、
処理をコンピュータに実行させるプログラム。
1 高位合成用データ生成装置
2 解析部
2a コード解析部
2b CDFG解析部
3 記憶部
4 高位合成用データ生成部
5 中間データ生成装置
6 コンパイル部
7 アセンブル部
8 シミュレーション装置
9 リンク部
10 シミュレーション実行部
11 高位合成装置
D1 ソースコード
D2 CDFG情報
D3 制約設定可能情報
D4 制限情報
D5 制約設定情報
D6 制約設定対応情報
D7 アセンブリコード
D8,D9 オブジェクトファイル
D10 実行形式ファイル

Claims (8)

  1. 半導体装置の設計データであるソースコードを解析し、前記半導体装置のデータ及び制御の流れを示す情報を生成する解析部と、
    前記ソースコードをコンパイルすることで得られる第1の中間データを取得して、前記解析部が生成した前記情報を、前記第1の中間データに組み込んだ第2の中間データを生成し、高位合成用データとして出力する高位合成用データ生成部と、
    を有することを特徴とする高位合成用データ生成装置。
  2. 前記解析部は、前記ソースコードを解析して、設定可能な高位合成情報である設計情報を出力し、前記設計情報の設定条件を示す設計条件情報を外部から取得し、前記設計条件情報と前記情報とを対応付けた対応情報を生成し、
    前記高位合成用データ生成部は、前記情報と前記対応情報を前記第1の中間データに組み込んだ前記第2の中間データを生成すること、
    を特徴とする請求項1に記載の高位合成用データ生成装置。
  3. 前記設計条件情報は、高位合成で使用するライブラリ情報を含むこと、を特徴とする請求項2に記載の高位合成用データ生成装置。
  4. 前記設計条件情報は、前記半導体装置の動作周波数の条件値を含むこと、を特徴とする請求項2または3に記載の高位合成用データ生成装置。
  5. 半導体装置の設計データであるソースコードをコンパイルすることで得られる第1の中間データに、前記半導体装置のデータ及び制御の流れを示す情報が組み込まれた第2の中間データを取得して、前記第2の中間データから前記情報を抽出する抽出部と、
    前記抽出部で抽出された前記情報に基づき高位合成を行う高位合成部と、
    を有することを特徴とする高位合成装置。
  6. 前記第2の中間データは、設定可能な高位合成情報である設計情報の設定条件を示す設計条件情報と、前記情報とが対応付けられた対応情報を含み、
    前記抽出部は、前記対応情報を抽出して、前記対応情報を出力し、
    前記高位合成部は、高位合成設計情報を外部から取得して、前記高位合成設計情報が前記設計条件情報に規定されている条件を満たしているか否かを検証する設計検証部を有し、
    前記設計検証部は、前記高位合成設計情報が、前記条件を満たしていないときには警告を発し、前記高位合成の実行を制限することを特徴とする請求項5に記載の高位合成装置。
  7. コンピュータが、半導体装置の設計データであるソースコードを解析して前記半導体装置内でのデータ及び制御の流れを示す情報を生成し、
    前記コンピュータが、前記ソースコードをコンパイルすることで得られる第1の中間データを取得して、前記情報を前記第1の中間データに組み込んだ第2の中間データを生成し、高位合成用データとして出力する、
    ことを特徴とする高位合成用データ生成方法。
  8. 半導体装置の設計データであるソースコードを解析して前記半導体装置内でのデータ及び制御の流れを示す情報を生成し、
    前記ソースコードをコンパイルすることで得られる第1の中間データを取得して、前記情報を前記第1の中間データに組み込んだ第2の中間データを生成し、高位合成用データとして出力する、
    処理をコンピュータに実行させるプログラム。
JP2013213145A 2013-10-10 2013-10-10 高位合成用データ生成装置、高位合成装置、高位合成用データ生成方法及びプログラム Expired - Fee Related JP6255880B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013213145A JP6255880B2 (ja) 2013-10-10 2013-10-10 高位合成用データ生成装置、高位合成装置、高位合成用データ生成方法及びプログラム
US14/466,766 US9235672B2 (en) 2013-10-10 2014-08-22 High-level synthesis data generation apparatus, high-level synthesis apparatus, and high-level synthesis data generation method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013213145A JP6255880B2 (ja) 2013-10-10 2013-10-10 高位合成用データ生成装置、高位合成装置、高位合成用データ生成方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2015076013A JP2015076013A (ja) 2015-04-20
JP6255880B2 true JP6255880B2 (ja) 2018-01-10

Family

ID=52810759

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013213145A Expired - Fee Related JP6255880B2 (ja) 2013-10-10 2013-10-10 高位合成用データ生成装置、高位合成装置、高位合成用データ生成方法及びプログラム

Country Status (2)

Country Link
US (1) US9235672B2 (ja)
JP (1) JP6255880B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10192014B2 (en) * 2015-08-27 2019-01-29 Mitsubishi Electric Corporation Circuit design support apparatus and computer readable medium
JP2017111591A (ja) * 2015-12-16 2017-06-22 株式会社ソシオネクスト 設計方法、設計プログラム及び設計装置
US10013517B1 (en) * 2016-01-06 2018-07-03 Xilinx, Inc. High level programming language core protection for high level synthesis
JP2017156937A (ja) * 2016-03-01 2017-09-07 ヤンマー株式会社 端末装置およびソフトウェア書き換えプログラム
WO2018146727A1 (ja) * 2017-02-07 2018-08-16 三菱電機株式会社 高位合成装置、高位合成方法および高位合成プログラム
US11361133B2 (en) * 2017-09-26 2022-06-14 Intel Corporation Method of reporting circuit performance for high-level synthesis

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08101861A (ja) * 1994-09-30 1996-04-16 Toshiba Corp 論理回路合成装置
JP3921367B2 (ja) 2001-09-26 2007-05-30 日本電気株式会社 データ処理装置および方法、コンピュータプログラム、情報記憶媒体、並列演算装置、データ処理システム
US6983456B2 (en) 2002-10-31 2006-01-03 Src Computers, Inc. Process for converting programs in high-level programming languages to a unified executable for hybrid computing platforms
JP4397744B2 (ja) * 2004-06-25 2010-01-13 パナソニック株式会社 半導体集積回路の高位合成方法
US7565631B1 (en) * 2004-07-02 2009-07-21 Northwestern University Method and system for translating software binaries and assembly code onto hardware
JP4165712B2 (ja) * 2004-11-10 2008-10-15 シャープ株式会社 データフローグラフの同一サブグラフ検出装置、高位合成装置、データフローグラフの同一サブグラフ検出方法、データフローグラフの同一サブグラフ検出制御プログラムおよび可読記録媒体
JP2007193529A (ja) * 2006-01-18 2007-08-02 Matsushita Electric Ind Co Ltd 半導体集積回路の高位合成方法
JP2011022690A (ja) * 2009-07-14 2011-02-03 Renesas Electronics Corp シミュレーションモデル生成装置
JP2011059895A (ja) * 2009-09-08 2011-03-24 Toshiba Corp 高位合成装置
JP5471413B2 (ja) * 2009-12-21 2014-04-16 日本電気株式会社 動作合成装置及び方法
JP5467512B2 (ja) 2010-02-18 2014-04-09 日本電気株式会社 動作合成装置、動作合成方法、及び、動作合成プログラム
JP2011192001A (ja) * 2010-03-15 2011-09-29 Toshiba Corp 高位合成装置及び高位合成方法
JP2011237989A (ja) * 2010-05-10 2011-11-24 Toshiba Corp 半導体集積回路の設計装置、その設計方法、及びその設計プログラム
US8458630B1 (en) * 2010-06-26 2013-06-04 Cadence Design Systems, Inc. Supporting dynamic aspects of polymorphism in high-level synthesis of integrated circuit designs
JP5910108B2 (ja) * 2012-01-25 2016-04-27 株式会社ソシオネクスト 高位合成装置,高位合成方法,高位合成プログラム,集積回路の設計方法
JP5910230B2 (ja) * 2012-03-26 2016-04-27 富士通株式会社 設計支援プログラム、設計支援方法、および設計支援装置

Also Published As

Publication number Publication date
US9235672B2 (en) 2016-01-12
JP2015076013A (ja) 2015-04-20
US20150106774A1 (en) 2015-04-16

Similar Documents

Publication Publication Date Title
JP6255880B2 (ja) 高位合成用データ生成装置、高位合成装置、高位合成用データ生成方法及びプログラム
Meeus et al. An overview of today’s high-level synthesis tools
JP5910108B2 (ja) 高位合成装置,高位合成方法,高位合成プログラム,集積回路の設計方法
US9501269B2 (en) Automatic source code generation for accelerated function calls
JP4492803B2 (ja) 動作合成装置及びプログラム
JP2007034584A (ja) 高位合成装置、自動高位合成方法、高位合成プログラム及びゲートネットリスト自動検証方法
US20160321218A1 (en) System and method for transforming image information for a target system interface
JP4147842B2 (ja) 論理検証システム及び方法、論理コーン抽出装置及び方法、論理検証及び論理コーン抽出プログラム
Vanderperren et al. Extending UML for electronic systems design: A code generation perspective
KR102530599B1 (ko) 반도체 설계 공정 비용 감소를 위한 hdevs 기반 rtl 설계 도구 및 복합 시뮬레이터
Ravi et al. Open source HLS tools: A stepping stone for modern electronic CAD
JP4586864B2 (ja) プロパティ自動生成装置
US10740210B1 (en) Kernel tracing for a heterogeneous computing platform and data mining
JP5233355B2 (ja) プロパティ生成システムおよびプロパティ検証システム
US8650517B1 (en) Automatically documenting circuit designs
JP2008276735A (ja) プログラムコード変換装置及びプログラムコード変換方法
JP4881769B2 (ja) 半導体集積回路設計支援装置、半導体集積回路設計支援方法、半導体集積回路設計支援プログラム
US8196085B1 (en) Interactive design optimization techniques and interface
Yu et al. CHA: Supporting SVA-like assertions in formal verification of Chisel programs (tool paper)
US10936776B1 (en) Analyzing waveform data generated for simulated circuit design
JP2019139675A (ja) ソースコード最適化装置、プログラムおよび方法
JP5233354B2 (ja) プロパティ検証システム、プロパティ検証方法、及びプログラム
JP5034867B2 (ja) ソフトウェア検証支援プログラム、該プログラムを記録した記録媒体、ソフトウェア検証支援装置、およびソフトウェア検証支援方法
JP5110206B2 (ja) 動作合成装置、動作合成方法、ならびに、プログラム
de Medeiros et al. Designing embedded systems with MARTE: A PIM to PSM converter

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20150611

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160427

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170421

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170502

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170629

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171120

R150 Certificate of patent or registration of utility model

Ref document number: 6255880

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees