(57)【要約】【課題】  動作記述に記述されたアサーション情報を、ＲＴＬ記述で記述可能なアサーション情報に自動変換する高位合成装置、自動高位合成方法及び高位合成プログラムを提供する。【解決手段】  動作記述からその動作記述に記述された回路動作を検証する第１アサーション情報を含むコントロールデータフローグラフを抽出するＣ／ＤＦＧ抽出部１０１、コントロールデータフローグラフから第１アサーション情報を抽出するアサーション抽出部１０２、コントロールデータフローグラフから第１アサーション情報を除いた回路コントロールデータフローグラフのスケジューリングの結果及びアロケーションの結果に基づき、第１アサーション情報をレジスタ転送レベル記述で記述可能な第２アサーション情報に変換する変換部１１０、変換された第２アサーション情報に基づきレジスタ転送レベル記述で記述されたＲＴＬアサーション記述を作成するＲＴＬ作成部１０６を備える。【選択図】      図１
2006172113.tif 000002
【特許請求の範囲】
【請求項１】
動作記述から該動作記述に記述された回路動作を検証する第１アサーション情報を含むコントロールデータフローグラフを抽出するＣ／ＤＦＧ抽出部と、
前記コントロールデータフローグラフから、前記第１アサーション情報を抽出するアサーション抽出部と、
前記コントロールデータフローグラフから前記第１アサーション情報を除いた回路コントロールデータフローグラフのスケジューリングの結果及びアロケーションの結果に基づき、前記第１アサーション情報をレジスタ転送レベル記述で記述可能な第２アサーション情報に変換する変換部と、
前記第２アサーション情報に基づき、レジスタ転送レベル記述で記述されたＲＴＬアサーション記述を作成するＲＴＬ作成部
とを備えることを特徴とする高位合成装置。
【請求項２】
前記変換部は、
前記スケジューリングの結果に基づき、前記第１アサーション情報に含まれる監視条件をレジスタ転送レベル記述で記述可能な監視条件に変換する監視条件変換部と、  
前記アロケーションの結果に基づき、前記第１アサーション情報に含まれるエラー出力条件をレジスタ転送レベル記述で記述可能なエラー出力条件に変換する出力条件変換部
とを備えることを特徴とする請求項１に記載の高位合成装置。
【請求項３】
Ｃ／ＤＦＧ抽出部が、動作記述から該動作記述に記述された回路動作を検証する第１アサーション情報を含むコントロールデータフローグラフを抽出し、抽出した前記コントロールデータフローグラフをＣ／ＤＦＧ記憶領域に格納するステップと、
アサーション抽出部が、前記Ｃ／ＤＦＧ記憶領域から読み出した前記コントロールデータフローグラフから、前記第１アサーション情報を抽出し、抽出した前記第１アサーション情報をアサーション情報記憶領域に格納するステップと、
変換部が、前記コントロールデータフローグラフから前記第１アサーション情報を除いた回路コントロールデータフローグラフのスケジューリングの結果及びアロケーションの結果に基づき、前記アサーション情報記憶領域から読み出した前記第１アサーション情報をレジスタ転送レベル記述で記述可能な第２アサーション情報に変換するステップと、
ＲＴＬ作成部が、前記第２アサーション情報に基づき、レジスタ転送レベル記述で記述されたＲＴＬアサーション記述を作成し、作成した前記ＲＴＬアサーション記述をＲＴＬ記述記憶領域に格納するステップ
とを含むことを特徴とする自動高位合成方法。  
【請求項４】
前記第１アサーション情報を前記第２アサーション情報に変換するステップは、
監視条件変換部が、前記スケジューリングの結果に基づき、前記第１アサーション情報に含まれる監視条件をレジスタ転送レベル記述で記述可能な監視条件に変換するステップと、  
出力条件変換部が、前記アロケーションの結果に基づき、前記第１アサーション情報に含まれるエラー出力条件をレジスタ転送レベル記述で記述可能なエラー出力条件に変換するステップ
とを含むことを特徴とする請求項３に記載の自動高位合成方法。  
【請求項５】
Ｃ／ＤＦＧ抽出部に、動作記述から該動作記述に記述された回路動作を検証する第１アサーション情報を含むコントロールデータフローグラフを抽出させ、抽出した前記コントロールデータフローグラフをＣ／ＤＦＧ記憶領域に格納させる命令と、
アサーション抽出部に、前記Ｃ／ＤＦＧ記憶領域から読み出した前記コントロールデータフローグラフから、前記第１アサーション情報を抽出させ、抽出した前記第１アサーション情報をアサーション情報記憶領域に格納させる命令と、
変換部に、前記コントロールデータフローグラフから前記第１アサーション情報を除いた回路コントロールデータフローグラフのスケジューリングの結果及びアロケーションの結果に基づき、前記アサーション情報記憶領域から読み出した前記第１アサーション情報をレジスタ転送レベル記述で記述可能な第２アサーション情報に変換させる命令と、
ＲＴＬ作成部に、前記第２アサーション情報に基づき、レジスタ転送レベル記述で記述されたＲＴＬアサーション記述を作成させ、作成した前記ＲＴＬアサーション記述をＲＴＬ記述記憶領域に格納させる命令
とを実行させるための高位合成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、高位合成方法に係り、特にアサーションが記述された動作記述の高位合成を行う高位合成装置、自動高位合成方法及び高位合成プログラムに関する。
【背景技術】
【０００２】
動作記述言語を用いた半導体集積回路等のハードウェア設計では、動作記述に記述された動作が所定の仕様を満たしているかどうかを確認する必要がある。更に、動作記述に基づき高位合成によって生成されるレジスタ転送レベル（ＲＴＬ）記述において、記述された動作が所定の仕様を満たすかどうかを確認する必要がある。テスト用データ作成等の工程を減らすために、動作記述の検証とＲＴＬ記述の検証に同一のテストが実施できることが望ましい。そのため、動作記述に使用されたテストデータを、動作記述とＲＴＬ記述を参照してＲＴＬ記述に使用可能なテストデータに変換する方法が提案されている（例えば、特許文献１参照。）。
【０００３】
ところで、テストデータを用意する方法以外に、動作記述やＲＴＬ記述に記述された回路動作が所定の仕様を満たしているかどうかを検証するために、動作記述やＲＴＬ記述中にアサーションが設定される場合がある。「アサーション」は例えば以下のように設定される。動作記述等に記述された回路動作中において、ある条件の成立が禁止される期間、回路動作を監視する。そして、監視している期間に、その条件が成立した場合にエラーを出力する。回路動作を監視する期間の条件及びエラーを出力する条件等のアサーション情報が動作記述等に記述される。
【０００４】
しかし、動作記述中のアサーション情報の記述（以下において、「アサーション記述」という。）は、回路データの記述ではない。そのため、通常の高位合成では、動作記述からＲＴＬ記述が生成される際に、パーサ等によりアサーション記述は省かれる。つまり、アサーション記述はコントロールデータフローグラフには抽出されず、動作記述中に設定されたアサーション情報は失われる。そのため、生成されたＲＴＬ記述について、再度アサーションを設定しなくてはならず、二度手間となる。さらに、自動合成されたＲＴＬ記述と元の動作記述との対応を取るのは難しく、動作記述中に設定されたアサーション記述に対応して、ＲＴＬ記述中にアサーション記述を設定するのは困難である。
【特許文献１】特開平７−２５４００８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、動作記述に記述されたアサーション情報を、ＲＴＬ記述で記述可能なアサーション情報に自動変換する高位合成装置、自動高位合成方法及び高位合成プログラムを提供する。
【課題を解決するための手段】
【０００６】
本発明の第１の特徴は、（イ）動作記述からその動作記述に記述された回路動作を検証する第１アサーション情報を含むコントロールデータフローグラフを抽出するＣ／ＤＦＧ抽出部と、（ロ）コントロールデータフローグラフから、第１アサーション情報を抽出するアサーション抽出部と、（ハ）コントロールデータフローグラフから第１アサーション情報を除いた回路コントロールデータフローグラフのスケジューリングの結果及びアロケーションの結果に基づき、抽出された第１アサーション情報をレジスタ転送レベル記述で記述可能な第２アサーション情報に変換する変換部と、（ニ）変換された第２アサーション情報に基づき、レジスタ転送レベル記述で記述されたＲＴＬアサーション記述を作成するＲＴＬ作成部とを備える高位合成装置であることを要旨とする。
【０００７】
本発明の第２の特徴は、（イ）Ｃ／ＤＦＧ抽出部が、動作記述からその動作記述に記述された回路動作を検証する第１アサーション情報を含むコントロールデータフローグラフを抽出し、抽出したコントロールデータフローグラフをＣ／ＤＦＧ記憶領域に格納するステップと、（ロ）アサーション抽出部が、Ｃ／ＤＦＧ記憶領域から読み出したコントロールデータフローグラフから、第１アサーション情報を抽出し、抽出した第１アサーション情報をアサーション情報記憶領域に格納するステップと、（ハ）変換部が、コントロールデータフローグラフから第１アサーション情報を除いた回路コントロールデータフローグラフのスケジューリングの結果及びアロケーションの結果に基づき、アサーション情報記憶領域から読み出した第１アサーション情報をレジスタ転送レベル記述で記述可能な第２アサーション情報に変換するステップと、（ニ）ＲＴＬ作成部が、第２アサーション情報に基づき、レジスタ転送レベル記述で記述されたＲＴＬアサーション記述を作成し、作成したＲＴＬアサーション記述をＲＴＬ記述記憶領域に格納するステップとを含む自動高位合成方法であることを要旨とする。  
本発明の第３の特徴は、（イ）Ｃ／ＤＦＧ抽出部に、動作記述からその動作記述に記述された回路動作を検証する第１アサーション情報を含むコントロールデータフローグラフを抽出させ、抽出したコントロールデータフローグラフをＣ／ＤＦＧ記憶領域に格納させる命令と、（ロ）アサーション抽出部に、Ｃ／ＤＦＧ記憶領域から読み出したコントロールデータフローグラフから、第１アサーション情報を抽出させ、抽出した第１アサーション情報をアサーション情報記憶領域に格納させる命令と、（ハ）変換部に、コントロールデータフローグラフから第１アサーション情報を除いた回路コントロールデータフローグラフのスケジューリングの結果及びアロケーションの結果に基づき、アサーション情報記憶領域から読み出した第１アサーション情報をレジスタ転送レベル記述で記述可能な第２アサーション情報に変換させる命令と、（ニ）ＲＴＬ作成部に、第２アサーション情報に基づき、レジスタ転送レベル記述で記述されたＲＴＬアサーション記述を作成させ、作成したＲＴＬアサーション記述をＲＴＬ記述記憶領域に格納させる命令とを実行させるための高位合成プログラムであることを要旨とする。
【発明の効果】
【０００８】
本発明によれば、動作記述に記述されたアサーション情報を、ＲＴＬ記述で記述可能なアサーション情報に自動変換する高位合成装置、自動高位合成方法及び高位合成プログラムを提供することができる。
【発明を実施するための最良の形態】
【０００９】
次に、図面を参照して、本発明の実施の形態を説明する。以下の図面の記載において、同一又は類似の部分には同一又は類似の符号を付している。又、以下に示す実施の形態は、この発明の技術的思想を具体化するための装置や方法を例示するものであって、この発明の技術的思想は、構造、配置等を下記のものに特定するものでない。この発明の技術的思想は、特許請求の範囲において、種々の変更を加えることができる。
【００１０】
本発明の実施の形態に係る高位合成装置は、図１に示すように、動作記述からその動作記述に記述された回路動作を検証する第１アサーション情報を含むコントロールデータフローグラフを抽出するＣ／ＤＦＧ抽出部１０１と、コントロールデータフローグラフから、第１アサーション情報を抽出するアサーション抽出部１０２と、コントロールデータフローグラフから第１アサーション情報を除いた回路コントロールデータフローグラフのスケジューリングの結果及びアロケーションの結果に基づき、第１アサーション情報をレジスタ転送レベル記述で記述可能な第２アサーション情報に変換する変換部１１０と、変換された第２アサーション情報に基づき、レジスタ転送レベル記述で記述されたＲＴＬアサーション記述を作成するＲＴＬ作成部１０６とを備える。
【００１１】
ここで、コントロールデータフローグラフ（以下において、「Ｃ／ＤＦＧ」という。）は、動作記述に記述された回路動作を行うために必要な演算の実行やデータ参照の順序を設定した情報である。 Ｃ／ＤＦＧ抽出部１０１、アサーション抽出部１０２、変換部１１０及びＲＴＬ作成部１０６は、処理装置１０に含まれる。
【００１２】
更に、処理装置１０は、回路Ｃ／ＤＦＧ生成部１０３、スケジューリング部１０４及びアロケーション部１０５を備える。回路Ｃ／ＤＦＧ生成部１０３は、第１アサーション情報を含むＣ／ＤＦＧに基づき、第１アサーション情報を除いた回路Ｃ／ＤＦＧを生成する。「回路Ｃ／ＤＦＧ」は、例えば動作記述の回路データの情報に基づき抽出することができる。スケジューリング部１０４は、回路Ｃ／ＤＦＧに記述された演算について、それぞれの演算を実行するサイクルを割り当てるスケジューリングを行う。又、スケジューリング部１０４は、スケジューリングを実行する際に、有限状態機械（ＦＳＭ）を作成する。ＦＳＭは、動作記述に基づき生成されるデータパスの各サイクルでの動作を制御する信号を生成する。そのため、ＦＳＭを作成する際に、動作記述に記述された回路の各サイクルにおける状態を知ることができる。スケジューリング部１０４は、動作記述に記述された回路の各サイクルにおける状態情報（ステート情報）を取得する。アロケーション部１０５は、スケジューリング結果を用いて、動作記述に記述された回路動作を実現するために必要な演算器及びレジスタの必要数を算出し、演算及び変数配列を演算器及びレジスタに割り当てるアロケーションを実行する。
【００１３】
又、変換部１１０は、監視条件変換部１１１及び出力条件変換部１１２を備える。監視条件変換部１１１は、Ｃ／ＤＦＧのスケジューリング結果に基づき第１アサーション情報に含まれる監視条件をレジスタ転送レベル記述で記述可能な監視条件に変換する。「監視条件」とは、回路動作を監視する期間の条件である。出力条件変換部１１２は、スケジューリング結果を用いて実行されるアロケーションの結果に基づき、第１アサーション情報に含まれるエラー出力条件をレジスタ転送レベル記述で記述可能なエラー出力条件に変換する。「エラー出力条件」とは、アサーションにより設定されるエラーを出力する条件である。
【００１４】
更に、図１に示す高位合成装置は、記憶装置２０、入力装置３０及び出力装置４０を備える。記憶装置２０は、動作記述を格納する動作記述記憶領域２０１、合成制約を格納する合成制約記憶領域２０２、Ｃ／ＤＦＧを格納するＣ／ＤＦＧ記憶領域２０３、第１アサーション情報及び第２アサーション情報を格納するアサーション情報記憶領域２０４、回路Ｃ／ＤＦＧを格納する回路Ｃ／ＤＦＧ記憶領域２０５、スケジューリング結果を格納するスケジュール情報記憶領域２０６、ＦＳＭを格納するＦＳＭ記憶領域２０７、アロケーション結果を格納するアロケーション記憶領域２０８、ＲＴＬ記述を格納するＲＴＬ記述記憶領域２０９を備える。
【００１５】
入力装置３０はキーボード、マウス、ライトペン又はフレキシブルディスク装置などで構成される。入力装置３０より高位合成実行者は、入力する動作記述を指定したり、設定することができる。又、出力装置４０としては、高位合成結果を表示するディスプレイやプリンタ、或いはコンピュータ読み取り可能な記録媒体に保存する記録装置等が使用可能である。ここで、「コンピュータ読み取り可能な記録媒体」とは、例えばコンピュータの外部メモリ装置、半導体メモリ、磁気ディスク、光ディスク、光磁気ディスク、磁気テープなどの電子データを記録することができるような媒体などを意味する。具体的には、フレキシブルディスク、ＣＤ−ＲＯＭ，ＭＯディスク、カセットテープ、オープンリールテープなどが「コンピュータ読み取り可能な記録媒体」に含まれる。
【００１６】
図１に示す高位合成装置により自動高位合成を行う例を、図２に示すフローチャートを用いて説明する。以下の説明では、動作記述言語の例として、Ｃ言語を使用する例を説明する。
【００１７】
動作記述言語にＣ言語を使用した場合、例えば、命令「ｔｒｙ−ｃａｔｃｈ」を使用して変数の値を監視するアサーションが設定される。そして、ある関数が実行される間に監視している変数が設定した条件になった場合、エラーとして検出する。図３に、アサーションが設定された動作記述の例の一部を示す。図３は、変数ｄａと変数ｄｂの乗算が実行されている間、変数ｍｏｄｅが１になった場合にエラーメッセージを出力するアサーション記述の例である。つまり、変数ｍｏｄｅ＝１がエラー発生条件である。又、変数ｄａ、変数ｄｂ及び変数ｍｏｄｅが使用される期間の条件が監視条件である。図３に示したアサーション記述を含む動作記述の自動高位合成を行う例を以下に説明する。
【００１８】
（イ）図２に示すステップＳ１１において、図１に示す入力装置３０を介して、高位合成を行う動作記述、及び合成制約が入力され、それぞれ動作記述記憶領域２０１、及び合成制約記憶領域２０２に格納される。「合成制約」には、動作記述に記述された回路動作を実現するハードウェアの種類や個数の制約等が記述される。
【００１９】
（ロ）ステップＳ１２において、Ｃ／ＤＦＧ抽出部１０１が、動作記述記憶領域２０１及び合成制約記憶領域２０２から、動作記述、及び合成制約をそれぞれ読み出す。そして、Ｃ／ＤＦＧ抽出部１０１は、合成制約に基づいて、図３に示す動作記述から第１アサーション情報を含むＣ／ＤＦＧを抽出する。抽出されたＣ／ＤＦＧの第１アサーション情報を図４に示す。図４は、ノード｛Ｐ＋１｝で入力された変数ｄａとノード｛Ｐ＋２｝で入力された変数ｄｂとが、ノード｛Ｐ＋３｝で乗算され、乗算された結果がノード｛Ｐ＋４｝で変数ａとして出力されることを示す。又、ノード｛Ｎ＋１｝で計算され、ノード｛Ｎ＋２｝で出力される変数ｍｏｄｅが１の場合にｍｏｄｅ＿ｅｒｒｏｒとなる。抽出されたＣ／ＤＦＧは、Ｃ／ＤＦＧ記憶領域２０３に格納される。
【００２０】
（ハ）ステップＳ１３において、アサーション抽出部１０２が、Ｃ／ＤＦＧ記憶領域２０３からＣ／ＤＦＧを読み出す。そして、アサーション抽出部１０２は、図４に示したＣ／ＤＦＧから第１アサーション情報を抽出する。抽出された第１アサーション情報を図５に示す。図５に示す第１アサーション情報は、監視条件のノードにおいて、エラー出力条件を満たす状態になった場合に、エラーメッセージを出力するというものである。具体的には、ノード｛Ｐ＋１｝、｛Ｐ＋２｝、｛Ｐ＋３｝及び｛Ｐ＋４｝を監視条件して監視する。監視するノードを以下において「監視ノード」という。そして監視ノードを監視している間に、ノード｛Ｎ＋２｝で出力される変数ｍｏｄｅについてエラー出力条件「変数ｍｏｄｅ＝＝１」が成立した場合に、エラーメッセージ”ｍｏｄｅ  ｅｒｒｏｒ ｏｃｃｕｒｒｅｄ！！”が出力される。抽出された第１アサーション情報は、アサーション情報記憶領域２０４に格納される。一方、回路Ｃ／ＤＦＧ生成部１０３が、図４に示したＣ／ＤＦＧから第１アサーション情報を除いた、回路Ｃ／ＤＦＧを生成する。生成された回路Ｃ／ＤＦＧを図６に示す。回路Ｃ／ＤＦＧは、回路Ｃ／ＤＦＧ記憶領域２０５に格納される。
【００２１】
（ニ）ステップＳ１４において、スケジューリング部１０４が、回路Ｃ／ＤＦＧ記憶領域２０５から回路Ｃ／ＤＦＧを読み出す。そして、スケジューリング部１０４は、図６に示した回路Ｃ／ＤＦＧに記述された演算を実行するサイクルの割り当てを設定するスケジューリングを行う。スケジューリング結果の例を図７に示す。図７に示すように、監視ノード｛Ｐ＋１｝、｛Ｐ＋２｝、｛Ｐ＋３｝及び｛Ｐ＋４｝は、サイクルＣ３〜Ｃ５にスケジューリングされる。つまり、監視すべきサイクルは、サイクルＣ３〜Ｃ５である。又、サイクルＣ２〜Ｃ５に、エラー出力条件の対象である変数ｍｏｄｅが存在する。したがって、監視条件はサイクルＣ３〜Ｃ５である。スケジューリング結果は、スケジュール情報記憶領域２０６に格納される。
【００２２】
（ホ）ステップＳ１５において、スケジューリング部１０４が、スケジュール情報記憶領域２０６からスケジューリング結果を読み出す。そして、スケジューリング部１０４は、図７に示したスケジューリング結果に基づき、ＦＳＭを作成する。更にスケジューリング部１０４は、ＦＳＭを作成する際に得られるステート情報を取得する。作成されたＦＳＭ及び取得されたステート情報は、ＦＳＭ記憶領域２０７に格納される。
【００２３】
（ヘ）ステップＳ１６において、監視条件変換部１１１が、アサーション情報記憶領域２０４に格納された第１アサーション情報及びＦＳＭ記憶領域２０７に格納されたステート情報を読み出す。そして、監視条件変換部１１１は、ステート情報を参照して、図７に示したサイクルＣ３〜Ｃ５がＦＳＭに制御されるどのステートに対応するかという対応情報を取得する。監視条件変換部１１１は、取得した対応情報に基づき、第１アサーション情報の監視条件をサイクルの監視条件からステートの監視条件に変換する。サイクルＣ３〜Ｃ５がステートＳＴ３〜ＳＴ５に対応する場合の第１アサーション情報の例を図８に示す。ＦＳＭがステート情報を格納するレジスタをＳｔＲｅｇとすると、図８に示すように、監視条件は「ＳＴ３≦ＳｔＲｅｇ≦ＳＴ５」に変換される。「ＳＴ３≦ＳｔＲｅｇ≦ＳＴ５」は、ＲＴＬ記述で記述することが可能である。変換された第１アサーション情報は、アサーション情報記憶領域２０４に格納される。
【００２４】
(ト)ステップＳ１７において、アロケーション部１０５が、スケジュール情報記憶領域２０６に格納されたスケジューリング情報を読み出す。そして、アロケーション部１０５は、図７に示したスケジューリング情報に基づきアロケーションを実行する。ここで、レジスタを割り当てるために、変数のライフタイム解析が行われる。つまり、変数の値をどのサイクルにおいて保持しなくてはならないかを解析する。そして解析結果に基づき、必要なレジスタの数が算出される。ライフタイム解析の結果、及びライフタイム結果に基づき変数をレジスタに割り当てた例を図９に示す。図９に示したように、変数ｍｏｄｅ、ｄａ、ｄｂ、ａ、ｃｎｔを保持するために、３つのレジスタｒｅｇ１、ｒｅｇ２およびｒｅｇ３が使用される。図９では、変数ｍｏｄｅにレジスタｒｅｇ１を割り当てた例を示している。アロケーション結果は、アロケーション記憶領域２０８に格納される。
【００２５】
(チ)ステップＳ１８において、出力条件変換部１１２が、アサーション情報記憶領域２０４に格納された第１アサーション情報及びアロケーション記憶領域２０８に格納されたアロケーション結果を読み出す。そして、出力条件変換部１１２は、アロケーション結果に基づき、図８に示した第１アサーション情報のエラー出力条件を変換する。具体的には、図１０に示すように、変数ｍｏｄｅが割り当てられたレジスタｒｅｇ１について、「ｒｅｇ１＝＝１」がエラー出力条件となる。「ｒｅｇ１＝＝１」は、ＲＴＬ記述で記述することが可能である。監視条件及びエラー出力条件が変換された第２アサーション情報は、アサーション情報記憶領域２０４に格納される。
【００２６】
（リ）ステップＳ１９において、ＲＴＬ作成部１０６が、アサーション情報記憶領域２０４に格納された第２アサーション情報を読み出す。そして、ＲＴＬ作成部１０６は、図１０に示した第２アサーション情報に基づきＲＴＬ記述に対応したＲＴＬアサーション記述を作成する。作成されたＲＴＬアサーション記述の例を図１１に示す。作成されたＲＴＬアサーション記述は、ＲＴＬ記述記憶領域２０９に格納される。ＲＴＬ記述記憶領域２０９に格納されたＲＴＬアサーション記述は、出力装置４０を介して高位合成装置の外部に出力することができる。
【００２７】
又、自動生成されたＲＴＬアサーション記述のみを高位合成装置の外部に出力するだけでなく、高位合成対象の動作記述に記述された回路動作及びアサーション情報を含んだＲＴＬ記述を出力することができる。
【００２８】
本発明の実施の形態に係る高位合成装置によれば、動作記述中の第１アサーション情報を動作記述から抽出し、スケジューリング及びアロケーションの結果に基づき、ＲＴＬアサーション記述に自動変換できる。そのため、ＲＴＬ記述中に、改めてアサーションを記述する必要がない。その結果、ＲＴＬ記述の検証時間の増加を抑制できる。又、動作記述中に記述されたアサーション記述に基づきＲＴＬアサーション記述が生成されるため、高位合成されたＲＴＬ記述のＲＴＬアサーション記述と元の動作記述のアサーション記述の対応が取れている。
【００２９】
図２に示した一連の自動高位合成方法は、図２と等価なアルゴリズムのプログラムにより、図１に示した高位合成装置を制御して実行できる。このプログラムは、図１に示した高位合成装置を構成する記憶装置２０に記憶させればよい。また、このプログラムは、コンピュータ読取り可能な記録媒体に保存し、この記録媒体を図１に示した記憶装置２０に読み込ませることにより、本発明の一連の自動高位合成操作を実行することができる。
【００３０】
＜変形例＞
図１に示す高位合成装置により、動作記述に記述された第１アサーション情報に基づき自動生成されるＲＴＬアサーション記述の他の例について説明する。
【００３１】
合成制約の違いにより、動作記述から生成されるＲＴＬ記述が異なる場合がある。合成制約が異なる場合においても、図３に示した動作記述から得られる第１アサーション情報及び回路Ｃ／ＤＦＧは、図５に示した第１アサーション情報及び図６に示した回路Ｃ／ＤＦＧとそれぞれと同一である。
【００３２】
(イ)ステップＳ１４において、スケジューリング部１０４が、図６に示した回路Ｃ／ＤＦＧに基づきスケジューリングを行った例を図１２に示す。合成制約の違いにより、図１２に示したスケジューリング結果は、図７に示したスケジューリング結果と異なる。図１２に示すように、監視ノード｛Ｐ＋１｝、｛Ｐ＋２｝、｛Ｐ＋３｝及び｛Ｐ＋４｝は、サイクルＣ１〜Ｃ３にスケジューリングされる。つまり、監視すべきサイクルは、サイクルＣ１〜Ｃ３である。一方、エラー出力条件の対象である変数ｍｏｄｅが存在するのは、サイクルＣ１である。したがって、監視条件はサイクルＣ１である。
【００３３】
（ロ）ステップＳ１５において、スケジューリング部１０４が、図１２に示したスケジューリング情報に基づき、ＦＳＭを作成し、ステート情報を取得する。次いで、ステップＳ１６において、監視条件変換部１１１は、ステート情報を参照して、図１２に示したサイクルＣ１がＦＳＭに制御されるどのステートに対応するかという対応情報を取得する。そして、監視条件変換部１１１は、取得した対応情報に基づき、第１アサーション情報の監視条件を変換する。監視条件が変換された第１アサーション情報の例を図１３に示す。図１３は、サイクルＣ１がステートＳＴ７に対応する場合の第１アサーション情報の例を示している。
【００３４】
（ハ）ステップＳ１７において、アロケーション部１０５が、図１２に示したスケジューリング情報に基づきアロケーションを実行する。図１２に示したように、変数ｍｏｄｅのライフタイムは０であり、変数ｍｏｄｅにレジスタは割り当てられない。そのため、変数ｍｏｄｅは、アロケートされるデータパス中の演算器をつなぐ信号（ワイヤ）に対応する。アロケーションでは、スケジューリング結果から、演算器をアロケートして信号でつなぎデータパスを作成する。図１２に示したスケジューリング結果に基づき作成されたデータパスの例を、図１４に示す。図１４に示すように、図３に示した動作記述に記述された回路動作は、レジスタ６１、６２、６３、セレクタ７１、７２、７３、及び演算器８１、８２、８３、８４により実現される。図１４において、変数ｄａ、ｄｂ、ｍｏｄｅ及びａは、信号ｗ１、ｗ２、ｗ３及びｗ４にそれぞれに置き換えられる。
【００３５】
（ニ）ステップＳ１８において、出力条件変換部１１２は、図１４に示したアロケーション結果に基づき、第１アサーション情報のエラー出力条件を変換する。具体的には、図１５に示すように、変数ｍｏｄｅが置き換えられた信号ｗ３について、「ｗ３＝＝１」がエラー発生条件となる。
【００３６】
（ホ）ステップＳ１９において、ＲＴＬ作成部１０６が、図１５に示した第２アサーション情報に基づきＲＴＬ記述に対応したＲＴＬアサーション記述を作成する。作成されたＲＴＬアサーション記述の例を図１６に示す。
【００３７】
以上に説明したように、本発明の実施の形態の変形例に係る高位合成装置によれば、エラー出力条件の対象である変数ｍｏｄｅが信号に置き換えられた場合でも、動作記述中の第１アサーション情報をＲＴＬアサーション記述に自動変換することができる。
【００３８】
（その他の実施の形態）
上記のように、本発明は実施の形態によって記載したが、この開示の一部をなす論述及び図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態、実施例及び運用技術が明らかとなろう。
【００３９】
既に述べた実施の形態の説明においては、動作記述からＲＴＬ記述が生成される例を示したが、動作記述から論理回路記述が生成される場合にも、本発明を適用することができる。つまり、動作記述中の第１アサーション情報を論理回路記述に対応したアサーション記述に自動変換することができる。
【００４０】
このように、本発明はここでは記載していない様々な実施の形態等を含むことは勿論である。したがって、本発明の技術的範囲は上記の説明から妥当な特許請求の範囲に係る発明特定事項によってのみ定められるものである。
【図面の簡単な説明】
【００４１】
【図１】本発明の実施の形態に係る高位合成装置の構成を示す模式図である。
【図２】本発明の実施の形態に係る自動高位合成方法を説明するフローチャートである。
【図３】本発明の実施の形態に係る自動高位合成方法の対象である動作記述の例である。
【図４】本発明の実施の形態に係る高位合成装置により、図３に示す動作記述から抽出されるＣ／ＤＦＧの例である。
【図５】本発明の実施の形態に係る高位合成装置により、図４に示すＣ／ＤＦＧから抽出される第１アサーション情報である。
【図６】本発明の実施の形態に係る高位合成装置により、図３に示す動作記述から第１アサーション情報を除いて抽出される回路Ｃ／ＤＦＧの例である。
【図７】本発明の実施の形態に係る高位合成装置により、図６に示す回路Ｃ／ＤＦＧのスケジューリングを行った例である。
【図８】本発明の実施の形態に係る高位合成装置により、図７に示すスケジューリング結果に基づき変換された第１アサーション情報の例である。
【図９】本発明の実施の形態に係る高位合成装置により、図６に示すスケジューリング結果に基づき変数のライフタイム解析を行った結果の例である。
【図１０】本発明の実施の形態に係る高位合成装置により、図９に示すライフタイム解析結果に基づき変換された第２アサーション情報の例である。
【図１１】本発明の実施の形態に係る高位合成装置により、図１０に示す第２アサーション情報に基づき生成されたＲＴＬアサーション記述の例である。
【図１２】本発明の実施の形態に係る高位合成装置により、図６に示す回路Ｃ／ＤＦＧのスケジューリングを行った他の例である。
【図１３】本発明の実施の形態に係る高位合成装置により、図１２に示すスケジューリング結果に基づき変換された第１アサーション情報の例である。
【図１４】本発明の実施の形態に係る高位合成装置により、図１２に示したスケジューリング結果に基づき作成されたデータパスの例である。
【図１５】本発明の実施の形態に係る高位合成装置により、図１４に示すデータパスに基づき変換された第２アサーション情報の例である。
【図１６】本発明の実施の形態に係る高位合成装置により、図１５に示す第２アサーション情報に基づき生成されたＲＴＬアサーション記述の他の例である。
【符号の説明】
【００４２】
１０１…Ｃ／ＤＦＧ抽出部
１０２…アサーション抽出部
１０６…ＲＴＬ作成部
１１０…変換部
１１１…監視条件変換部
１１２…出力条件変換部
２０３…Ｃ／ＤＦＧ記憶領域
２０４…アサーション情報記憶領域
２０９…ＲＴＬ記述記憶領域
【図１】
2006172113.tif 000003
【図２】
2006172113.tif 000004
【図３】
2006172113.tif 000005
【図４】
2006172113.tif 000006
【図５】
2006172113.tif 000007
【図６】
2006172113.tif 000008
【図７】
2006172113.tif 000009
【図８】
2006172113.tif 000010
【図９】
2006172113.tif 000011
【図１０】
2006172113.tif 000012
【図１１】
2006172113.tif 000013
【図１２】
2006172113.tif 000014
【図１３】
2006172113.tif 000015
【図１４】
2006172113.tif 000016
【図１５】
2006172113.tif 000017
【図１６】
2006172113.tif 000018