JP2006172113A - 高位合成装置、自動高位合成方法及び高位合成プログラム - Google Patents
高位合成装置、自動高位合成方法及び高位合成プログラム Download PDFInfo
- Publication number
- JP2006172113A JP2006172113A JP2004363240A JP2004363240A JP2006172113A JP 2006172113 A JP2006172113 A JP 2006172113A JP 2004363240 A JP2004363240 A JP 2004363240A JP 2004363240 A JP2004363240 A JP 2004363240A JP 2006172113 A JP2006172113 A JP 2006172113A
- Authority
- JP
- Japan
- Prior art keywords
- assertion
- description
- assertion information
- information
- rtl
- 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.)
- Pending
Links
Images
Abstract
【課題】 動作記述に記述されたアサーション情報を、RTL記述で記述可能なアサーション情報に自動変換する高位合成装置、自動高位合成方法及び高位合成プログラムを提供する。
【解決手段】 動作記述からその動作記述に記述された回路動作を検証する第1アサーション情報を含むコントロールデータフローグラフを抽出するC/DFG抽出部101、コントロールデータフローグラフから第1アサーション情報を抽出するアサーション抽出部102、コントロールデータフローグラフから第1アサーション情報を除いた回路コントロールデータフローグラフのスケジューリングの結果及びアロケーションの結果に基づき、第1アサーション情報をレジスタ転送レベル記述で記述可能な第2アサーション情報に変換する変換部110、変換された第2アサーション情報に基づきレジスタ転送レベル記述で記述されたRTLアサーション記述を作成するRTL作成部106を備える。
【選択図】 図1
【解決手段】 動作記述からその動作記述に記述された回路動作を検証する第1アサーション情報を含むコントロールデータフローグラフを抽出するC/DFG抽出部101、コントロールデータフローグラフから第1アサーション情報を抽出するアサーション抽出部102、コントロールデータフローグラフから第1アサーション情報を除いた回路コントロールデータフローグラフのスケジューリングの結果及びアロケーションの結果に基づき、第1アサーション情報をレジスタ転送レベル記述で記述可能な第2アサーション情報に変換する変換部110、変換された第2アサーション情報に基づきレジスタ転送レベル記述で記述されたRTLアサーション記述を作成するRTL作成部106を備える。
【選択図】 図1
Description
本発明は、高位合成方法に係り、特にアサーションが記述された動作記述の高位合成を行う高位合成装置、自動高位合成方法及び高位合成プログラムに関する。
動作記述言語を用いた半導体集積回路等のハードウェア設計では、動作記述に記述された動作が所定の仕様を満たしているかどうかを確認する必要がある。更に、動作記述に基づき高位合成によって生成されるレジスタ転送レベル(RTL)記述において、記述された動作が所定の仕様を満たすかどうかを確認する必要がある。テスト用データ作成等の工程を減らすために、動作記述の検証とRTL記述の検証に同一のテストが実施できることが望ましい。そのため、動作記述に使用されたテストデータを、動作記述とRTL記述を参照してRTL記述に使用可能なテストデータに変換する方法が提案されている(例えば、特許文献1参照。)。
ところで、テストデータを用意する方法以外に、動作記述やRTL記述に記述された回路動作が所定の仕様を満たしているかどうかを検証するために、動作記述やRTL記述中にアサーションが設定される場合がある。「アサーション」は例えば以下のように設定される。動作記述等に記述された回路動作中において、ある条件の成立が禁止される期間、回路動作を監視する。そして、監視している期間に、その条件が成立した場合にエラーを出力する。回路動作を監視する期間の条件及びエラーを出力する条件等のアサーション情報が動作記述等に記述される。
しかし、動作記述中のアサーション情報の記述(以下において、「アサーション記述」という。)は、回路データの記述ではない。そのため、通常の高位合成では、動作記述からRTL記述が生成される際に、パーサ等によりアサーション記述は省かれる。つまり、アサーション記述はコントロールデータフローグラフには抽出されず、動作記述中に設定されたアサーション情報は失われる。そのため、生成されたRTL記述について、再度アサーションを設定しなくてはならず、二度手間となる。さらに、自動合成されたRTL記述と元の動作記述との対応を取るのは難しく、動作記述中に設定されたアサーション記述に対応して、RTL記述中にアサーション記述を設定するのは困難である。
特開平7−254008号公報
本発明は、動作記述に記述されたアサーション情報を、RTL記述で記述可能なアサーション情報に自動変換する高位合成装置、自動高位合成方法及び高位合成プログラムを提供する。
本発明の第1の特徴は、(イ)動作記述からその動作記述に記述された回路動作を検証する第1アサーション情報を含むコントロールデータフローグラフを抽出するC/DFG抽出部と、(ロ)コントロールデータフローグラフから、第1アサーション情報を抽出するアサーション抽出部と、(ハ)コントロールデータフローグラフから第1アサーション情報を除いた回路コントロールデータフローグラフのスケジューリングの結果及びアロケーションの結果に基づき、抽出された第1アサーション情報をレジスタ転送レベル記述で記述可能な第2アサーション情報に変換する変換部と、(ニ)変換された第2アサーション情報に基づき、レジスタ転送レベル記述で記述されたRTLアサーション記述を作成するRTL作成部とを備える高位合成装置であることを要旨とする。
本発明の第2の特徴は、(イ)C/DFG抽出部が、動作記述からその動作記述に記述された回路動作を検証する第1アサーション情報を含むコントロールデータフローグラフを抽出し、抽出したコントロールデータフローグラフをC/DFG記憶領域に格納するステップと、(ロ)アサーション抽出部が、C/DFG記憶領域から読み出したコントロールデータフローグラフから、第1アサーション情報を抽出し、抽出した第1アサーション情報をアサーション情報記憶領域に格納するステップと、(ハ)変換部が、コントロールデータフローグラフから第1アサーション情報を除いた回路コントロールデータフローグラフのスケジューリングの結果及びアロケーションの結果に基づき、アサーション情報記憶領域から読み出した第1アサーション情報をレジスタ転送レベル記述で記述可能な第2アサーション情報に変換するステップと、(ニ)RTL作成部が、第2アサーション情報に基づき、レジスタ転送レベル記述で記述されたRTLアサーション記述を作成し、作成したRTLアサーション記述をRTL記述記憶領域に格納するステップとを含む自動高位合成方法であることを要旨とする。
本発明の第3の特徴は、(イ)C/DFG抽出部に、動作記述からその動作記述に記述された回路動作を検証する第1アサーション情報を含むコントロールデータフローグラフを抽出させ、抽出したコントロールデータフローグラフをC/DFG記憶領域に格納させる命令と、(ロ)アサーション抽出部に、C/DFG記憶領域から読み出したコントロールデータフローグラフから、第1アサーション情報を抽出させ、抽出した第1アサーション情報をアサーション情報記憶領域に格納させる命令と、(ハ)変換部に、コントロールデータフローグラフから第1アサーション情報を除いた回路コントロールデータフローグラフのスケジューリングの結果及びアロケーションの結果に基づき、アサーション情報記憶領域から読み出した第1アサーション情報をレジスタ転送レベル記述で記述可能な第2アサーション情報に変換させる命令と、(ニ)RTL作成部に、第2アサーション情報に基づき、レジスタ転送レベル記述で記述されたRTLアサーション記述を作成させ、作成したRTLアサーション記述をRTL記述記憶領域に格納させる命令とを実行させるための高位合成プログラムであることを要旨とする。
本発明の第3の特徴は、(イ)C/DFG抽出部に、動作記述からその動作記述に記述された回路動作を検証する第1アサーション情報を含むコントロールデータフローグラフを抽出させ、抽出したコントロールデータフローグラフをC/DFG記憶領域に格納させる命令と、(ロ)アサーション抽出部に、C/DFG記憶領域から読み出したコントロールデータフローグラフから、第1アサーション情報を抽出させ、抽出した第1アサーション情報をアサーション情報記憶領域に格納させる命令と、(ハ)変換部に、コントロールデータフローグラフから第1アサーション情報を除いた回路コントロールデータフローグラフのスケジューリングの結果及びアロケーションの結果に基づき、アサーション情報記憶領域から読み出した第1アサーション情報をレジスタ転送レベル記述で記述可能な第2アサーション情報に変換させる命令と、(ニ)RTL作成部に、第2アサーション情報に基づき、レジスタ転送レベル記述で記述されたRTLアサーション記述を作成させ、作成したRTLアサーション記述をRTL記述記憶領域に格納させる命令とを実行させるための高位合成プログラムであることを要旨とする。
本発明によれば、動作記述に記述されたアサーション情報を、RTL記述で記述可能なアサーション情報に自動変換する高位合成装置、自動高位合成方法及び高位合成プログラムを提供することができる。
次に、図面を参照して、本発明の実施の形態を説明する。以下の図面の記載において、同一又は類似の部分には同一又は類似の符号を付している。又、以下に示す実施の形態は、この発明の技術的思想を具体化するための装置や方法を例示するものであって、この発明の技術的思想は、構造、配置等を下記のものに特定するものでない。この発明の技術的思想は、特許請求の範囲において、種々の変更を加えることができる。
本発明の実施の形態に係る高位合成装置は、図1に示すように、動作記述からその動作記述に記述された回路動作を検証する第1アサーション情報を含むコントロールデータフローグラフを抽出するC/DFG抽出部101と、コントロールデータフローグラフから、第1アサーション情報を抽出するアサーション抽出部102と、コントロールデータフローグラフから第1アサーション情報を除いた回路コントロールデータフローグラフのスケジューリングの結果及びアロケーションの結果に基づき、第1アサーション情報をレジスタ転送レベル記述で記述可能な第2アサーション情報に変換する変換部110と、変換された第2アサーション情報に基づき、レジスタ転送レベル記述で記述されたRTLアサーション記述を作成するRTL作成部106とを備える。
ここで、コントロールデータフローグラフ(以下において、「C/DFG」という。)は、動作記述に記述された回路動作を行うために必要な演算の実行やデータ参照の順序を設定した情報である。 C/DFG抽出部101、アサーション抽出部102、変換部110及びRTL作成部106は、処理装置10に含まれる。
更に、処理装置10は、回路C/DFG生成部103、スケジューリング部104及びアロケーション部105を備える。回路C/DFG生成部103は、第1アサーション情報を含むC/DFGに基づき、第1アサーション情報を除いた回路C/DFGを生成する。「回路C/DFG」は、例えば動作記述の回路データの情報に基づき抽出することができる。スケジューリング部104は、回路C/DFGに記述された演算について、それぞれの演算を実行するサイクルを割り当てるスケジューリングを行う。又、スケジューリング部104は、スケジューリングを実行する際に、有限状態機械(FSM)を作成する。FSMは、動作記述に基づき生成されるデータパスの各サイクルでの動作を制御する信号を生成する。そのため、FSMを作成する際に、動作記述に記述された回路の各サイクルにおける状態を知ることができる。スケジューリング部104は、動作記述に記述された回路の各サイクルにおける状態情報(ステート情報)を取得する。アロケーション部105は、スケジューリング結果を用いて、動作記述に記述された回路動作を実現するために必要な演算器及びレジスタの必要数を算出し、演算及び変数配列を演算器及びレジスタに割り当てるアロケーションを実行する。
又、変換部110は、監視条件変換部111及び出力条件変換部112を備える。監視条件変換部111は、C/DFGのスケジューリング結果に基づき第1アサーション情報に含まれる監視条件をレジスタ転送レベル記述で記述可能な監視条件に変換する。「監視条件」とは、回路動作を監視する期間の条件である。出力条件変換部112は、スケジューリング結果を用いて実行されるアロケーションの結果に基づき、第1アサーション情報に含まれるエラー出力条件をレジスタ転送レベル記述で記述可能なエラー出力条件に変換する。「エラー出力条件」とは、アサーションにより設定されるエラーを出力する条件である。
更に、図1に示す高位合成装置は、記憶装置20、入力装置30及び出力装置40を備える。記憶装置20は、動作記述を格納する動作記述記憶領域201、合成制約を格納する合成制約記憶領域202、C/DFGを格納するC/DFG記憶領域203、第1アサーション情報及び第2アサーション情報を格納するアサーション情報記憶領域204、回路C/DFGを格納する回路C/DFG記憶領域205、スケジューリング結果を格納するスケジュール情報記憶領域206、FSMを格納するFSM記憶領域207、アロケーション結果を格納するアロケーション記憶領域208、RTL記述を格納するRTL記述記憶領域209を備える。
入力装置30はキーボード、マウス、ライトペン又はフレキシブルディスク装置などで構成される。入力装置30より高位合成実行者は、入力する動作記述を指定したり、設定することができる。又、出力装置40としては、高位合成結果を表示するディスプレイやプリンタ、或いはコンピュータ読み取り可能な記録媒体に保存する記録装置等が使用可能である。ここで、「コンピュータ読み取り可能な記録媒体」とは、例えばコンピュータの外部メモリ装置、半導体メモリ、磁気ディスク、光ディスク、光磁気ディスク、磁気テープなどの電子データを記録することができるような媒体などを意味する。具体的には、フレキシブルディスク、CD−ROM,MOディスク、カセットテープ、オープンリールテープなどが「コンピュータ読み取り可能な記録媒体」に含まれる。
図1に示す高位合成装置により自動高位合成を行う例を、図2に示すフローチャートを用いて説明する。以下の説明では、動作記述言語の例として、C言語を使用する例を説明する。
動作記述言語にC言語を使用した場合、例えば、命令「try−catch」を使用して変数の値を監視するアサーションが設定される。そして、ある関数が実行される間に監視している変数が設定した条件になった場合、エラーとして検出する。図3に、アサーションが設定された動作記述の例の一部を示す。図3は、変数daと変数dbの乗算が実行されている間、変数modeが1になった場合にエラーメッセージを出力するアサーション記述の例である。つまり、変数mode=1がエラー発生条件である。又、変数da、変数db及び変数modeが使用される期間の条件が監視条件である。図3に示したアサーション記述を含む動作記述の自動高位合成を行う例を以下に説明する。
(イ)図2に示すステップS11において、図1に示す入力装置30を介して、高位合成を行う動作記述、及び合成制約が入力され、それぞれ動作記述記憶領域201、及び合成制約記憶領域202に格納される。「合成制約」には、動作記述に記述された回路動作を実現するハードウェアの種類や個数の制約等が記述される。
(ロ)ステップS12において、C/DFG抽出部101が、動作記述記憶領域201及び合成制約記憶領域202から、動作記述、及び合成制約をそれぞれ読み出す。そして、C/DFG抽出部101は、合成制約に基づいて、図3に示す動作記述から第1アサーション情報を含むC/DFGを抽出する。抽出されたC/DFGの第1アサーション情報を図4に示す。図4は、ノード{P+1}で入力された変数daとノード{P+2}で入力された変数dbとが、ノード{P+3}で乗算され、乗算された結果がノード{P+4}で変数aとして出力されることを示す。又、ノード{N+1}で計算され、ノード{N+2}で出力される変数modeが1の場合にmode_errorとなる。抽出されたC/DFGは、C/DFG記憶領域203に格納される。
(ハ)ステップS13において、アサーション抽出部102が、C/DFG記憶領域203からC/DFGを読み出す。そして、アサーション抽出部102は、図4に示したC/DFGから第1アサーション情報を抽出する。抽出された第1アサーション情報を図5に示す。図5に示す第1アサーション情報は、監視条件のノードにおいて、エラー出力条件を満たす状態になった場合に、エラーメッセージを出力するというものである。具体的には、ノード{P+1}、{P+2}、{P+3}及び{P+4}を監視条件して監視する。監視するノードを以下において「監視ノード」という。そして監視ノードを監視している間に、ノード{N+2}で出力される変数modeについてエラー出力条件「変数mode==1」が成立した場合に、エラーメッセージ”mode error occurred!!”が出力される。抽出された第1アサーション情報は、アサーション情報記憶領域204に格納される。一方、回路C/DFG生成部103が、図4に示したC/DFGから第1アサーション情報を除いた、回路C/DFGを生成する。生成された回路C/DFGを図6に示す。回路C/DFGは、回路C/DFG記憶領域205に格納される。
(ニ)ステップS14において、スケジューリング部104が、回路C/DFG記憶領域205から回路C/DFGを読み出す。そして、スケジューリング部104は、図6に示した回路C/DFGに記述された演算を実行するサイクルの割り当てを設定するスケジューリングを行う。スケジューリング結果の例を図7に示す。図7に示すように、監視ノード{P+1}、{P+2}、{P+3}及び{P+4}は、サイクルC3〜C5にスケジューリングされる。つまり、監視すべきサイクルは、サイクルC3〜C5である。又、サイクルC2〜C5に、エラー出力条件の対象である変数modeが存在する。したがって、監視条件はサイクルC3〜C5である。スケジューリング結果は、スケジュール情報記憶領域206に格納される。
(ホ)ステップS15において、スケジューリング部104が、スケジュール情報記憶領域206からスケジューリング結果を読み出す。そして、スケジューリング部104は、図7に示したスケジューリング結果に基づき、FSMを作成する。更にスケジューリング部104は、FSMを作成する際に得られるステート情報を取得する。作成されたFSM及び取得されたステート情報は、FSM記憶領域207に格納される。
(ヘ)ステップS16において、監視条件変換部111が、アサーション情報記憶領域204に格納された第1アサーション情報及びFSM記憶領域207に格納されたステート情報を読み出す。そして、監視条件変換部111は、ステート情報を参照して、図7に示したサイクルC3〜C5がFSMに制御されるどのステートに対応するかという対応情報を取得する。監視条件変換部111は、取得した対応情報に基づき、第1アサーション情報の監視条件をサイクルの監視条件からステートの監視条件に変換する。サイクルC3〜C5がステートST3〜ST5に対応する場合の第1アサーション情報の例を図8に示す。FSMがステート情報を格納するレジスタをStRegとすると、図8に示すように、監視条件は「ST3≦StReg≦ST5」に変換される。「ST3≦StReg≦ST5」は、RTL記述で記述することが可能である。変換された第1アサーション情報は、アサーション情報記憶領域204に格納される。
(ト)ステップS17において、アロケーション部105が、スケジュール情報記憶領域206に格納されたスケジューリング情報を読み出す。そして、アロケーション部105は、図7に示したスケジューリング情報に基づきアロケーションを実行する。ここで、レジスタを割り当てるために、変数のライフタイム解析が行われる。つまり、変数の値をどのサイクルにおいて保持しなくてはならないかを解析する。そして解析結果に基づき、必要なレジスタの数が算出される。ライフタイム解析の結果、及びライフタイム結果に基づき変数をレジスタに割り当てた例を図9に示す。図9に示したように、変数mode、da、db、a、cntを保持するために、3つのレジスタreg1、reg2およびreg3が使用される。図9では、変数modeにレジスタreg1を割り当てた例を示している。アロケーション結果は、アロケーション記憶領域208に格納される。
(チ)ステップS18において、出力条件変換部112が、アサーション情報記憶領域204に格納された第1アサーション情報及びアロケーション記憶領域208に格納されたアロケーション結果を読み出す。そして、出力条件変換部112は、アロケーション結果に基づき、図8に示した第1アサーション情報のエラー出力条件を変換する。具体的には、図10に示すように、変数modeが割り当てられたレジスタreg1について、「reg1==1」がエラー出力条件となる。「reg1==1」は、RTL記述で記述することが可能である。監視条件及びエラー出力条件が変換された第2アサーション情報は、アサーション情報記憶領域204に格納される。
(リ)ステップS19において、RTL作成部106が、アサーション情報記憶領域204に格納された第2アサーション情報を読み出す。そして、RTL作成部106は、図10に示した第2アサーション情報に基づきRTL記述に対応したRTLアサーション記述を作成する。作成されたRTLアサーション記述の例を図11に示す。作成されたRTLアサーション記述は、RTL記述記憶領域209に格納される。RTL記述記憶領域209に格納されたRTLアサーション記述は、出力装置40を介して高位合成装置の外部に出力することができる。
又、自動生成されたRTLアサーション記述のみを高位合成装置の外部に出力するだけでなく、高位合成対象の動作記述に記述された回路動作及びアサーション情報を含んだRTL記述を出力することができる。
本発明の実施の形態に係る高位合成装置によれば、動作記述中の第1アサーション情報を動作記述から抽出し、スケジューリング及びアロケーションの結果に基づき、RTLアサーション記述に自動変換できる。そのため、RTL記述中に、改めてアサーションを記述する必要がない。その結果、RTL記述の検証時間の増加を抑制できる。又、動作記述中に記述されたアサーション記述に基づきRTLアサーション記述が生成されるため、高位合成されたRTL記述のRTLアサーション記述と元の動作記述のアサーション記述の対応が取れている。
図2に示した一連の自動高位合成方法は、図2と等価なアルゴリズムのプログラムにより、図1に示した高位合成装置を制御して実行できる。このプログラムは、図1に示した高位合成装置を構成する記憶装置20に記憶させればよい。また、このプログラムは、コンピュータ読取り可能な記録媒体に保存し、この記録媒体を図1に示した記憶装置20に読み込ませることにより、本発明の一連の自動高位合成操作を実行することができる。
<変形例>
図1に示す高位合成装置により、動作記述に記述された第1アサーション情報に基づき自動生成されるRTLアサーション記述の他の例について説明する。
図1に示す高位合成装置により、動作記述に記述された第1アサーション情報に基づき自動生成されるRTLアサーション記述の他の例について説明する。
合成制約の違いにより、動作記述から生成されるRTL記述が異なる場合がある。合成制約が異なる場合においても、図3に示した動作記述から得られる第1アサーション情報及び回路C/DFGは、図5に示した第1アサーション情報及び図6に示した回路C/DFGとそれぞれと同一である。
(イ)ステップS14において、スケジューリング部104が、図6に示した回路C/DFGに基づきスケジューリングを行った例を図12に示す。合成制約の違いにより、図12に示したスケジューリング結果は、図7に示したスケジューリング結果と異なる。図12に示すように、監視ノード{P+1}、{P+2}、{P+3}及び{P+4}は、サイクルC1〜C3にスケジューリングされる。つまり、監視すべきサイクルは、サイクルC1〜C3である。一方、エラー出力条件の対象である変数modeが存在するのは、サイクルC1である。したがって、監視条件はサイクルC1である。
(ロ)ステップS15において、スケジューリング部104が、図12に示したスケジューリング情報に基づき、FSMを作成し、ステート情報を取得する。次いで、ステップS16において、監視条件変換部111は、ステート情報を参照して、図12に示したサイクルC1がFSMに制御されるどのステートに対応するかという対応情報を取得する。そして、監視条件変換部111は、取得した対応情報に基づき、第1アサーション情報の監視条件を変換する。監視条件が変換された第1アサーション情報の例を図13に示す。図13は、サイクルC1がステートST7に対応する場合の第1アサーション情報の例を示している。
(ハ)ステップS17において、アロケーション部105が、図12に示したスケジューリング情報に基づきアロケーションを実行する。図12に示したように、変数modeのライフタイムは0であり、変数modeにレジスタは割り当てられない。そのため、変数modeは、アロケートされるデータパス中の演算器をつなぐ信号(ワイヤ)に対応する。アロケーションでは、スケジューリング結果から、演算器をアロケートして信号でつなぎデータパスを作成する。図12に示したスケジューリング結果に基づき作成されたデータパスの例を、図14に示す。図14に示すように、図3に示した動作記述に記述された回路動作は、レジスタ61、62、63、セレクタ71、72、73、及び演算器81、82、83、84により実現される。図14において、変数da、db、mode及びaは、信号w1、w2、w3及びw4にそれぞれに置き換えられる。
(ニ)ステップS18において、出力条件変換部112は、図14に示したアロケーション結果に基づき、第1アサーション情報のエラー出力条件を変換する。具体的には、図15に示すように、変数modeが置き換えられた信号w3について、「w3==1」がエラー発生条件となる。
(ホ)ステップS19において、RTL作成部106が、図15に示した第2アサーション情報に基づきRTL記述に対応したRTLアサーション記述を作成する。作成されたRTLアサーション記述の例を図16に示す。
以上に説明したように、本発明の実施の形態の変形例に係る高位合成装置によれば、エラー出力条件の対象である変数modeが信号に置き換えられた場合でも、動作記述中の第1アサーション情報をRTLアサーション記述に自動変換することができる。
(その他の実施の形態)
上記のように、本発明は実施の形態によって記載したが、この開示の一部をなす論述及び図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態、実施例及び運用技術が明らかとなろう。
上記のように、本発明は実施の形態によって記載したが、この開示の一部をなす論述及び図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態、実施例及び運用技術が明らかとなろう。
既に述べた実施の形態の説明においては、動作記述からRTL記述が生成される例を示したが、動作記述から論理回路記述が生成される場合にも、本発明を適用することができる。つまり、動作記述中の第1アサーション情報を論理回路記述に対応したアサーション記述に自動変換することができる。
このように、本発明はここでは記載していない様々な実施の形態等を含むことは勿論である。したがって、本発明の技術的範囲は上記の説明から妥当な特許請求の範囲に係る発明特定事項によってのみ定められるものである。
101…C/DFG抽出部
102…アサーション抽出部
106…RTL作成部
110…変換部
111…監視条件変換部
112…出力条件変換部
203…C/DFG記憶領域
204…アサーション情報記憶領域
209…RTL記述記憶領域
102…アサーション抽出部
106…RTL作成部
110…変換部
111…監視条件変換部
112…出力条件変換部
203…C/DFG記憶領域
204…アサーション情報記憶領域
209…RTL記述記憶領域
Claims (5)
- 動作記述から該動作記述に記述された回路動作を検証する第1アサーション情報を含むコントロールデータフローグラフを抽出するC/DFG抽出部と、
前記コントロールデータフローグラフから、前記第1アサーション情報を抽出するアサーション抽出部と、
前記コントロールデータフローグラフから前記第1アサーション情報を除いた回路コントロールデータフローグラフのスケジューリングの結果及びアロケーションの結果に基づき、前記第1アサーション情報をレジスタ転送レベル記述で記述可能な第2アサーション情報に変換する変換部と、
前記第2アサーション情報に基づき、レジスタ転送レベル記述で記述されたRTLアサーション記述を作成するRTL作成部
とを備えることを特徴とする高位合成装置。 - 前記変換部は、
前記スケジューリングの結果に基づき、前記第1アサーション情報に含まれる監視条件をレジスタ転送レベル記述で記述可能な監視条件に変換する監視条件変換部と、
前記アロケーションの結果に基づき、前記第1アサーション情報に含まれるエラー出力条件をレジスタ転送レベル記述で記述可能なエラー出力条件に変換する出力条件変換部
とを備えることを特徴とする請求項1に記載の高位合成装置。 - C/DFG抽出部が、動作記述から該動作記述に記述された回路動作を検証する第1アサーション情報を含むコントロールデータフローグラフを抽出し、抽出した前記コントロールデータフローグラフをC/DFG記憶領域に格納するステップと、
アサーション抽出部が、前記C/DFG記憶領域から読み出した前記コントロールデータフローグラフから、前記第1アサーション情報を抽出し、抽出した前記第1アサーション情報をアサーション情報記憶領域に格納するステップと、
変換部が、前記コントロールデータフローグラフから前記第1アサーション情報を除いた回路コントロールデータフローグラフのスケジューリングの結果及びアロケーションの結果に基づき、前記アサーション情報記憶領域から読み出した前記第1アサーション情報をレジスタ転送レベル記述で記述可能な第2アサーション情報に変換するステップと、
RTL作成部が、前記第2アサーション情報に基づき、レジスタ転送レベル記述で記述されたRTLアサーション記述を作成し、作成した前記RTLアサーション記述をRTL記述記憶領域に格納するステップ
とを含むことを特徴とする自動高位合成方法。 - 前記第1アサーション情報を前記第2アサーション情報に変換するステップは、
監視条件変換部が、前記スケジューリングの結果に基づき、前記第1アサーション情報に含まれる監視条件をレジスタ転送レベル記述で記述可能な監視条件に変換するステップと、
出力条件変換部が、前記アロケーションの結果に基づき、前記第1アサーション情報に含まれるエラー出力条件をレジスタ転送レベル記述で記述可能なエラー出力条件に変換するステップ
とを含むことを特徴とする請求項3に記載の自動高位合成方法。 - C/DFG抽出部に、動作記述から該動作記述に記述された回路動作を検証する第1アサーション情報を含むコントロールデータフローグラフを抽出させ、抽出した前記コントロールデータフローグラフをC/DFG記憶領域に格納させる命令と、
アサーション抽出部に、前記C/DFG記憶領域から読み出した前記コントロールデータフローグラフから、前記第1アサーション情報を抽出させ、抽出した前記第1アサーション情報をアサーション情報記憶領域に格納させる命令と、
変換部に、前記コントロールデータフローグラフから前記第1アサーション情報を除いた回路コントロールデータフローグラフのスケジューリングの結果及びアロケーションの結果に基づき、前記アサーション情報記憶領域から読み出した前記第1アサーション情報をレジスタ転送レベル記述で記述可能な第2アサーション情報に変換させる命令と、
RTL作成部に、前記第2アサーション情報に基づき、レジスタ転送レベル記述で記述されたRTLアサーション記述を作成させ、作成した前記RTLアサーション記述をRTL記述記憶領域に格納させる命令
とを実行させるための高位合成プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004363240A JP2006172113A (ja) | 2004-12-15 | 2004-12-15 | 高位合成装置、自動高位合成方法及び高位合成プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004363240A JP2006172113A (ja) | 2004-12-15 | 2004-12-15 | 高位合成装置、自動高位合成方法及び高位合成プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006172113A true JP2006172113A (ja) | 2006-06-29 |
Family
ID=36672807
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004363240A Pending JP2006172113A (ja) | 2004-12-15 | 2004-12-15 | 高位合成装置、自動高位合成方法及び高位合成プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006172113A (ja) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006285333A (ja) * | 2005-03-31 | 2006-10-19 | Nec Corp | 動作合成装置及び方法 |
JP2008047053A (ja) * | 2006-08-21 | 2008-02-28 | Toshiba Corp | アサーション記述変換装置および変換方法 |
JP2009009418A (ja) * | 2007-06-28 | 2009-01-15 | Toshiba Corp | 検証装置および検証方法 |
JP2009230677A (ja) * | 2008-03-25 | 2009-10-08 | Nec Corp | プロパティ生成システムおよびプロパティ検証システム |
JP2009230667A (ja) * | 2008-03-25 | 2009-10-08 | Nec Corp | プロパティ生成システムおよびプロパティ検証システム |
KR20140034050A (ko) * | 2012-09-07 | 2014-03-19 | 삼성전자주식회사 | 사용자 프로그램 코드에 기반한 어써션 생성 장치 및 방법, 어써션을 이용한 프로세서 검증 장치 및 방법 |
JP2014053011A (ja) * | 2012-09-07 | 2014-03-20 | Samsung Electronics Co Ltd | アサーション生成装置及び方法並びにプロセッサ検証装置及び方法 |
-
2004
- 2004-12-15 JP JP2004363240A patent/JP2006172113A/ja active Pending
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006285333A (ja) * | 2005-03-31 | 2006-10-19 | Nec Corp | 動作合成装置及び方法 |
JP4492803B2 (ja) * | 2005-03-31 | 2010-06-30 | 日本電気株式会社 | 動作合成装置及びプログラム |
JP2008047053A (ja) * | 2006-08-21 | 2008-02-28 | Toshiba Corp | アサーション記述変換装置および変換方法 |
JP2009009418A (ja) * | 2007-06-28 | 2009-01-15 | Toshiba Corp | 検証装置および検証方法 |
US8578308B2 (en) | 2007-06-28 | 2013-11-05 | Kabushiki Kaisha Toshiba | Verification apparatus and verification method |
JP2009230677A (ja) * | 2008-03-25 | 2009-10-08 | Nec Corp | プロパティ生成システムおよびプロパティ検証システム |
JP2009230667A (ja) * | 2008-03-25 | 2009-10-08 | Nec Corp | プロパティ生成システムおよびプロパティ検証システム |
KR20140034050A (ko) * | 2012-09-07 | 2014-03-19 | 삼성전자주식회사 | 사용자 프로그램 코드에 기반한 어써션 생성 장치 및 방법, 어써션을 이용한 프로세서 검증 장치 및 방법 |
JP2014053011A (ja) * | 2012-09-07 | 2014-03-20 | Samsung Electronics Co Ltd | アサーション生成装置及び方法並びにプロセッサ検証装置及び方法 |
KR101968214B1 (ko) * | 2012-09-07 | 2019-04-11 | 삼성전자주식회사 | 사용자 프로그램 코드에 기반한 어써션 생성 장치 및 방법, 어써션을 이용한 프로세서 검증 장치 및 방법 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7685576B2 (en) | System and method for model based system testing of interactive applications | |
US9501269B2 (en) | Automatic source code generation for accelerated function calls | |
US7237229B2 (en) | Debugging aid parallel execution of a plurality of iterations with source lists display corresponding to each iteration | |
JP4965995B2 (ja) | プログラム処理方法、処理プログラム及び情報処理装置 | |
JP4492803B2 (ja) | 動作合成装置及びプログラム | |
JP4853312B2 (ja) | テストベンチ生成機能を有する動作合成装置と方法及びプログラム | |
JP2007034887A (ja) | ハイレベル合成コンパイラ用のシフトレジスタファイルを自動生成するための方法および装置 | |
JP2006048525A (ja) | シミュレーション方法 | |
JP4654203B2 (ja) | デジタルシステムのhdl記述ファイルを作成する方法、および得られるシステム | |
JP2006172113A (ja) | 高位合成装置、自動高位合成方法及び高位合成プログラム | |
JP4770657B2 (ja) | パイプライン合成システム、方法及びプログラム | |
JP5233355B2 (ja) | プロパティ生成システムおよびプロパティ検証システム | |
US20080071514A1 (en) | Apparatus for handling register-transfer-level description, method thereof, and program storage medium storing program thereof | |
JP4938991B2 (ja) | プログラムコード生成装置、プログラムコード生成方法、及びコンピュータプログラム | |
US7971167B2 (en) | Semiconductor design support device, semiconductor design support method, and manufacturing method for semiconductor integrated circuit | |
JP4730536B2 (ja) | 動作合成システム、動作合成方法およびプログラム | |
US6532584B1 (en) | Circuit synthesis method | |
US20040143813A1 (en) | System development supporting apparatus, system development supporting method, and computer-readable recorded medium | |
US20090077357A1 (en) | Method of Power Simulation and Power Simulator | |
JP2008204341A (ja) | インタフェース合成装置 | |
JP2007018313A (ja) | 回路設計プログラム、回路設計装置、回路設計方法 | |
JP5233354B2 (ja) | プロパティ検証システム、プロパティ検証方法、及びプログラム | |
JP2006171913A (ja) | 情報処理装置、情報処理方法、ならびにプログラム、記憶媒体 | |
JP5267376B2 (ja) | 動作合成装置、動作合成方法、ならびに、プログラム | |
JP5347995B2 (ja) | 動作合成装置、動作合成方法及びプログラム |