(57)【要約】【課題】動作記述からレジスタ転送レベル回路を設計する場合に、従来の高位合成技術では要求性能を満たすスケジューリング結果が得られなかった場合、ユーザが設計したスケジューリングを表現した動作記述に変更する必要があり、動作記述が複雑になることがあった。【解決手段】動作記述ファイルＦ１から第１のレジスタ転送レベル回路を合成する高位合成手段１と、設定ファイルＦ２に記述された所定の付加回路を生成するための回路情報を基に第２のレジスタ転送レベル回路を生成する回路生成手段２と、設定ファイルＦ２に記述された接続情報に従い、第１のレジスタ転送レベル回路と第２のレジスタ転送レベル回路とを接続する回路接続手段３とを用いて、レジスタ転送レベル記述Ｆ１０を生成することで、動作記述を変更することなしに、要求性能を満たす回路を生成することが可能となる。【選択図】図１
2008217071.tif 000002
【特許請求の範囲】
【請求項１】
動作レベル記述から第１のレジスタ転送レベル回路を生成する高位合成手段と、
所定の付加回路を生成するための回路情報に基づき第２のレジスタ転送レベル回路を生成する回路生成手段と、
前記第１のレジスタ転送レベル回路内の信号と前記第２のレジスタ転送レベル回路内の信号との接続関係を記述した接続情報に基づき前記第１のレジスタ転送レベル回路と前記第２のレジスタ転送レベル回路とを接続する回路接続手段とを備えている高位合成装置。
【請求項２】
前記回路接続手段が前記接続情報において参照する信号は、前記動作レベル記述に存在する信号である請求項１に記載の高位合成装置。
【請求項３】
前記回路接続手段が前記接続情報において参照する信号は、前記高位合成手段により生成される制御回路の入出力信号である請求項１に記載の高位合成装置。
【請求項４】
前記回路接続手段が前記接続情報において参照する信号は、前記高位合成手段におけるリソース共有化に伴い生成されるセレクタの制御信号である請求項１に記載の高位合成装置。
【請求項５】
前記回路生成手段が用いる前記回路情報は、組み合わせ回路の論理と遅延回路の遅延量を含んでいる請求項１から請求項４までのいずれかに記載の高位合成装置。
【請求項６】
前記遅延回路の遅延量が、前記第１のレジスタ転送レベル回路の所定の信号間の遅延量から算出する値である請求項５に記載の高位合成装置。
【請求項７】
動作レベル記述から第１のレジスタ転送レベル回路を生成する高位合成手段と、
前記第１のレジスタ転送レベル回路内の信号と所定の第２のレジスタ転送レベル回路内の信号との接続関係を記述した接続情報に基づき前記第１のレジスタ転送レベル回路と前記第２のレジスタ転送レベル回路とを接続する回路接続手段とを備えている高位合成装置。
【請求項８】
前記回路接続手段が前記接続情報において参照する信号は、前記動作レベル記述に存在する信号である請求項７に記載の高位合成装置。
【請求項９】
前記回路接続手段が前記接続情報において参照する信号は、前記高位合成手段により生成される制御回路の入出力信号である請求項７に記載の高位合成装置。
【請求項１０】
前記回路接続手段が前記接続情報において参照する信号は、前記高位合成手段におけるリソース共有化に伴い生成されるセレクタの制御信号である請求項７に記載の高位合成装置。
【請求項１１】
さらに、所定の入力信号の値と、前記高位合成手段のスケジューリング結果と、前記回路情報とから信号遷移波形を表示する波形表示手段を備えている請求項１に記載の高位合成装置。
【請求項１２】
動作レベル記述から第１のレジスタ転送レベル回路を生成する高位合成ステップと、
前記高位合成ステップの結果が所定の要求性能を満たしているかを判定するステップと、
前記要求性能を満たしていない場合に、所定の付加回路を生成するための回路情報とレジスタ転送レベル回路内の信号の接続関係を記述した接続情報を入力するステップと、
前記高位合成ステップの結果と前記回路情報を参照し前記要求性能を満たしているかを判定するステップと、
前記回路情報に基づき第２のレジスタ転送レベル回路を生成する回路生成ステップと、
前記接続情報に基づき前記第１のレジスタ転送レベル回路と前記第２のレジスタ転送レベル回路を接続して目標のレジスタ転送レベル回路を生成するステップとを含む高位合成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、回路の動作レベル記述を入力としてレジスタ転送レベル記述を出力する高位合成装置および高位合成方法に関する。
【背景技術】
【０００２】
ＬＳＩ設計において、近年のＬＳＩの大規模化に伴い、効率の良いＬＳＩ設計手法が必要となっている。このため、レジスタ転送レベルよりも比較的に記述量が少ない動作レベルで回路を記述し、高位合成ツールによって、レジスタ転送レベル回路を合成する手法が使用されるようになってきた。
【０００３】
動作レベル記述はＣ言語のようなプログラミング言語を用いて回路の動作を逐次処理として記述するものであるが、高位合成ツールは、このような動作レベル記述からレジスタ転送レベル記述を生成する。一般に、高位合成では、図１３に示すフローチャートの工程が実施される。
【０００４】
最初に、スケジューリング工程Ｓ１１で、逐次処理として記述してある動作記述を入力し、処理性能を向上させるために演算のスケジューリングを行い、並列処理の方法を決定する。スケジューリングには、データと演算の依存関係をグラフで表現したデータフローグラフ（ＤＦＧ）が使用される。
【０００５】
次に、リソース共有工程Ｓ１２で、回路面積を削減するために、動作レベル記述における演算を実行するリソースの共有化が行われる。このときリソースの入力は、動作レベル記述での演算に応じた入力となるため、リソースの入力を制御するためのセレクタが必要となる。
【０００６】
最後に、制御回路生成工程Ｓ１３で、スケジューリング結果を実現するために必要な制御回路が生成され、リソースの接続であるデータパスと併せてレジスタ転送レベル（ＲＴＬ）記述として出力される。
【０００７】
上記において、データフローグラフは、元の動作記述から依存解析を行い抽出されるが、動作レベル記述が入力値により動作内容が変化する場合等でデータの依存関係が複雑な場合には、必ずしも最小必要限のデータ依存だけを抽出する依存解析ができるとは限らない。このような場合、結果として、ユーザが期待するスケジューリング結果にならない場合がある。
【０００８】
また、レジスタ転送レベル回路の処理性能はスケジューリングにより決定されるため、場合によっては、要求性能を満たすレジスタ転送レベル回路が生成できない場合がある。このような場合、非特許文献１で提案されているようにユーザがスケジューリングを変更可能な機構を用いて、要求性能を満たすスケジューリングを行う方法がある。しかし、スケジューリング結果通りに回路を動作させるための制御回路の生成方法はツールにより制限されているため、結果として、ユーザが変更可能なスケジューリングも制限される。
【０００９】
また、別の手法として、動作レベル記述の段階で部分的にスケジューリングを決定しておき、高位合成ツールによるスケジューリング箇所を削減する手法がある。図１４はスケジューリングを模式的に示した図であり、図１４（ａ）は逐次動作における処理関係を示している。図１４（ｂ）は高位合成のスケジューリング結果での処理関係を示しているが、ユーザが必要とする処理関係が図１４（ｃ）のような場合は、あらかじめ動作レベル記述で図１４（ｃ）と記述しておくこととなる（動作レベル記述の変更）。しかし、図１４（ｃ）の動作を表現するためには、プロセスＡとプロセスＢが並行プロセスであることを表現する必要がある。このような場合、非特許文献２で提案されているような並行プロセスを記述可能な言語を使用することになる。このような言語を用いて動作レベル回路を記述した場合、動作レベル記述の動作検証を行うためには、並行プロセスのシミュレーションを行う機構が必要となる。また、タイミングを考慮した記述であるため、動作レベル記述自体が複雑になってしまう場合がある。
【００１０】
特許文献１で開示されているように、特定のプロトコルで動作するような場合には、タイミングに関する情報をライブラリとして保持し、動作レベル記述はタイミングを考慮しない記述とし、高位合成ツールによりライブラリに定義されたタイミングを基にスケジューリングを行う方法がある。この場合は、適用できる回路は、決まったプロトコルである必要がある。
【特許文献１】特開２００２−１４０３７９号公報（第４−５頁、第１−８図）
【非特許文献１】A.A. JERRAYA, I. PARK, K. O’BRIEN、“AMICAL:AN INTERACTIVE HIGH LEVEL SYNTHESIS”、Proceedings of European Conference onDesign Automation, 1993
【非特許文献２】Thorsten Grotker, Stan Liao, GrantMartin, Stuart Swan著、柿本勝・河原林政道・長谷川隆  監訳、「System Cによるシステム設計」丸善 ２００３年１月発行
【発明の開示】
【発明が解決しようとする課題】
【００１１】
動作レベル記述からレジスタ転送レベル記述の合成を行う場合において、高位合成ツールにより合成された回路が要求性能を満たせない場合、従来の方法として、スケジューリングにユーザが介在できる機構を設けているが、ユーザが制御できる範囲が限定されていた。この場合、結局、要求性能が充分に満たせないことになる。
【００１２】
また、動作レベル記述の段階で、ユーザがスケジューリングを決定する方法（動作レベル記述の変更）があるが、この場合、動作レベル記述の動作検証に特別な機構が必要となったり、動作レベル記述が複雑になるため、設計効率が低下する可能性がある。
【００１３】
また、動作レベル記述を変更せずに、タイミングに関する情報をライブラリとする方法があるが、適用可能な範囲が限定される。この場合も、結局、要求性能が充分に満たせないことになる。
【００１４】
本発明は、このような事情に鑑みて創作したものであり、動作レベル記述を変更することなしに、ユーザが設計したスケジューリングを実現する制御回路を用いて、レジスタ転送レベル記述を生成することができる高位合成装置および高位合成方法を提供することを目的としている。
【課題を解決するための手段】
【００１５】
本発明の高位合成装置は、動作レベル記述からレジスタ転送レベル回路を生成するものであって、
動作レベル記述から第１のレジスタ転送レベル回路を生成する高位合成手段と、
所定の付加回路を生成するための回路情報に基づき第２のレジスタ転送レベル回路を生成する回路生成手段と、
前記第１のレジスタ転送レベル回路内の信号と前記第２のレジスタ転送レベル回路内の信号との接続関係を記述した接続情報に基づき前記第１のレジスタ転送レベル回路と前記第２のレジスタ転送レベル回路とを接続する回路接続手段とを備えたものである。
【００１６】
この構成においては、高位合成手段は、動作レベル記述から本来通りに第１のレジスタ転送レベル回路を生成するだけであり、動作レベル記述の変更はしない。要求性能を満たす上で必要な要素としてのレジスタ転送レベルの付加回路に関係する第２のレジスタ転送レベル回路を、本来の高位合成手段とは別系統の回路生成手段によって生成することにしている。そして、回路接続手段は、高位合成手段による第１のレジスタ転送レベル回路と回路生成手段による第２のレジスタ転送レベル回路とを接続する。この接続に際して、第１のレジスタ転送レベル回路内の信号と第２のレジスタ転送レベル回路内の信号との接続関係を記述した接続情報を利用する。
【００１７】
このようにして、本構成によれば、動作レベル記述を変更することなく、ユーザが設計したスケジューリング結果を実現する制御回路を使用したレジスタ転送レベル回路が生成され、要求性能を満たしたレジスタ転送レベル回路を得ることが可能となる。
【００１８】
上記構成の高位合成装置において、前記回路接続手段が前記接続情報において参照する信号は、前記動作レベル記述に存在する信号であってもよい。
【００１９】
また上記構成の高位合成装置において、前記回路接続手段が前記接続情報において参照する信号は、前記高位合成手段により生成される制御回路の入出力信号であってもよい。
【００２０】
また上記構成の高位合成装置において、前記回路接続手段が前記接続情報において参照する信号は、前記高位合成手段におけるリソース共有化に伴い生成されるセレクタの制御信号であってもよい。
【００２１】
また上記構成の高位合成装置において、前記回路生成手段が用いる前記回路情報は、組み合わせ回路の論理と遅延回路の遅延量を含んでいる場合がある。
【００２２】
上記の遅延回路の遅延量としては、第１のレジスタ転送レベル回路の所定の信号間の遅延量を使用して算出する値であってもよい。
【００２３】
また、本発明の高位合成装置は、動作レベル記述からレジスタ転送レベル回路を生成するものであって、
動作レベル記述から第１のレジスタ転送レベル回路を生成する高位合成手段と、
前記第１のレジスタ転送レベル回路内の信号と所定の第２のレジスタ転送レベル回路内の信号との接続関係を記述した接続情報に基づき前記第１のレジスタ転送レベル回路と前記第２のレジスタ転送レベル回路とを接続する回路接続手段とを備えたものである。
【００２４】
本構成では、回路生成手段は用いられていない。ここでの第２のレジスタ転送レベル回路は、非合成のものである。この場合、ユーザが設計した制御回路を使用して、上記と同様に、動作レベル記述を変更することなく、要求性能を満たすＲＴＬ記述を生成することが可能である。高位合成により生成されたＲＴＬ回路に人手で修正を加える場合に対して、記述ミスの削減が可能となる。
【００２５】
上記構成の高位合成装置において、前記回路接続手段が前記接続情報において参照する信号は、前記動作レベル記述に存在する信号であってもよい。
【００２６】
また上記構成の高位合成装置において、前記回路接続手段が前記接続情報において参照する信号は、前記高位合成手段により生成される制御回路の入出力信号であってもよい。
【００２７】
また上記構成の高位合成装置において、前記回路接続手段が前記接続情報において参照する信号は、前記高位合成手段におけるリソース共有化に伴い生成されるセレクタの制御信号であってもよい。
【００２８】
また上記構成の高位合成装置において、さらに、所定の入力信号の値と、前記高位合成手段のスケジューリング結果と、前記回路情報とから信号遷移波形を表示する波形表示手段を備えているという態様がある。
【００２９】
この構成により、高位合成により生成された回路の信号とユーザにより設計された回路の信号との遷移の関係を確認し、ユーザが入力した回路情報が意図したとおりの動作を行う回路が生成される情報であるかを確認することが可能となる。
【００３０】
また、本発明の高位合成方法は、動作レベル記述からレジスタ転送レベル回路を生成する方法であって、
動作レベル記述から第１のレジスタ転送レベル回路を生成する高位合成ステップと、
前記高位合成ステップの結果が所定の要求性能を満たしているかを判定するステップと、
前記要求性能を満たしていない場合に、所定の付加回路を生成するための回路情報とレジスタ転送レベル回路内の信号の接続関係を記述した接続情報を入力するステップと、
前記高位合成ステップの結果と前記回路情報を参照し前記要求性能を満たしているかを判定するステップと、
前記回路情報に基づき第２のレジスタ転送レベル回路を生成する回路生成ステップと、
前記接続情報に基づき前記第１のレジスタ転送レベル回路と前記第２のレジスタ転送レベル回路を接続して目標のレジスタ転送レベル回路を生成するステップとを含むものである。
【００３１】
この高位合成方法においては、高位合成により動作レベル記述から第１のレジスタ転送レベル回路を生成し、高位合成の結果が要求性能を満たしているかを判定し、要求性能を満たしていない場合は、レジスタ転送レベルの付加回路を生成するための回路情報と信号の接続関係を記述した接続情報を入力し、高位合成の結果と回路情報を参照し要求性能を満たしているかを判定し、回路情報に基づき第２のレジスタ転送レベル回路を生成し、接続情報に基づき第１のレジスタ転送レベル回路と第２のレジスタ転送レベル回路を接続する。
【００３２】
この構成により、動作レベル記述を変更することなく、ユーザが設計したスケジューリング結果を実現する制御回路を使用したレジスタ転送レベル回路が生成され、要求性能を満たしたレジスタ転送レベル回路を得ることが可能となる。
【発明の効果】
【００３３】
本発明によれば、動作レベル記述を変更することなく、ユーザが設計したスケジューリング結果を実現する制御回路を使用したレジスタ転送レベル回路が生成でき、要求性能を満たしたレジスタ転送レベル回路を得ることができる。
【発明を実施するための最良の形態】
【００３４】
以下、本発明にかかわる高位合成装置および高位合成方法の実施の形態を図面を用いて詳細に説明する。
【００３５】
（実施の形態１）
図１は、本発明の実施の形態１における高位合成装置の構成図である。
【００３６】
高位合成装置Ａ１は、動作記述ファイルＦ１から第１のレジスタ転送レベル（ＲＴＬ）回路を生成して主回路データベースＤＢ１に格納する高位合成手段１と、設定ファイルＦ２から第２のレジスタ転送レベル（ＲＴＬ）回路を生成して副回路データベースＤＢ２に格納する回路生成手段２と、設定ファイルＦ２に記述されている接続方法に従って、主回路データベースＤＢ１の第１のＲＴＬ回路と副回路データベースＤＢ２の第２のＲＴＬ回路を接続するための目標とするＲＴＬ記述ファイルＦ１０を生成する回路接続手段３とから構成されている。
【００３７】
動作記述ファイルＦ１は、設計対象である回路の動作を記述したファイルであり、高位合成装置Ａ１の入力ファイルである。動作記述ファイルＦ１は、Ｃ言語等のプログラミング言語により記述されている。
【００３８】
設定ファイルＦ２は、ユーザが設計したＲＴＬ回路を生成するために必要な回路情報と、主回路データベースＤＢ１にある第１のＲＴＬ回路の信号と副回路データベースＤＢ２にある第２のＲＴＬ回路の信号を接続するために必要な接続情報が記述されているファイルであり、高位合成装置Ａ１の入力ファイルである。
【００３９】
目標とするＲＴＬ記述ファイルＦ１０は、レジスタ転送レベルで回路を記述したファイルであり、高位合成装置Ａ１の出力ファイルである。ＲＴＬ記述ファイルＦ１０は、Ｖｅｒｉｌｏｇ−ＨＤＬ言語等のハードウェア記述言語で記述されている。
【００４０】
主回路データベースＤＢ１は、高位合成手段１の高位合成によって動作記述ファイルＦ１から生成される第１のＲＴＬ回路を保存するデータベースである。
【００４１】
副回路データベースＤＢ２は、回路生成手段２によって設定ファイルＦ２に記述されている回路情報から生成される第２のＲＴＬ回路を保存するデータベースである。
【００４２】
主回路データベースＤＢ１と副回路データベースＤＢ２は、ＲＴＬ回路を中間表現として格納している。中間表現は、目標とするＲＴＬ記述ファイルＦ１０に記述する内容と同等の情報と、高位合成手段１によって生成された付加情報を表現している。
【００４３】
高位合成手段１は、従来技術と同等の方法によって、動作記述ファイルＦ１から第１のＲＴＬ回路を生成し、主回路データベースＤＢ１に保存する。
【００４４】
次に、回路生成手段２の動作例について説明する。
【００４５】
図２は動作記述ファイルＦ１の記述例であり、図３は設定ファイルＦ２の記述例である。
【００４６】
設定ファイルＦ２は、目標とするＲＴＬ記述ファイルＦ１０に記述されるモジュールと同一の単位で記述されており、動作記述ファイルＦ１から高位合成手段１により生成されるモジュールの端子以外の端子を生成するための端子情報と、高位合成手段１で生成される制御回路の信号情報と、回路生成手段２で生成される回路情報と、回路接続手段３で使用される接続情報が記述されている。
【００４７】
ｍｏｄｕｌｅ文（１，９，１６，３０行目）は、対象となるモジュール名を指定する。ｉｎｐｕｔ／ｏｕｔｐｕｔ文（２，３，１０，１７〜１９行目）は、端子情報であり、端子名を指定する。出力端子（ｏｕｔｐｕｔ）の場合は、ｏｕｔｐｕｔ文内に端子の入力の論理を左辺を端子名とする代入文で記述する。ｃｏｎｔｒｏｌｌｅｒ文（４／１１行目）は、高位合成手段１により生成される制御回路を示し、ｓｔａｒｔ文（５，１２行目）は制御回路の開始信号が信号名ＳＴであることを示す。ｒｅｇｉｓｔｅｒ文（２０，２４行目）は、遅延回路を生成することを示し、遅延回路の出力の信号名を指定する。ｒｅｇｉｓｔｅｒ文内に遅延回路の入力の論理や遅延回路の書き込み条件（２１／２５行目）を左辺を出力信号名とする代入文で記述し、ｄｅｌａｙ文（２２行目）で遅延回路の遅延量を指定し、ｒｅｓｅｔ文（２６行目）でリセット動作時の値を指定する。遅延量を示す式には、ｃｙｃｌｅ関数を使用して、高位合成手段１のスケジューリング結果における遅延量を参照する。ｉｎｓｔａｎｃｅ文（３１行目）は、モジュールｆ３のインスタンスをインスタンス名ｆ３として生成することを示す。ｗｉｒｅ文（３２，３５）は、組み合わせ回路を生成することを示し、代入文の左辺と右辺を接続することを示す。ｓｅｌｅｃｔ文（３８行目）は、インスタンスｆ２の入力信号としてリソース共有化によりセレクタが生成されている場合は、セレクタの制御信号としてインスタンスｆ３の出力端子ｓ０を接続することを示している。
【００４８】
設定ファイルＦ２で、代入文の右辺となる組み合わせ論理で参照する信号は、動作記述ファイルＦ１に記述されている信号、もしくは、設定ファイルＦ２で定義した信号を使用する。設定ファイルＦ２で定義する信号は、回路生成手段２で生成する回路の出力信号、もしくは、高位合成手段１で生成される制御回路の信号である。組み合わせ論理には、算術・論理・条件演算子を用いて式として記述する。例えば、出力となるＲＴＬ記述ファイルがＶｅｒｉｌｏｇ−ＨＤＬの場合には、Ｖｅｒｉｌｏｇ−ＨＤＬで定義されている演算子を使用する。
【００４９】
回路生成手段２は、設定ファイルＦ２に記述されている回路情報に基づき、第２のＲＴＬ回路を生成し副回路データベースＤＢ２に格納する。図４（ｂ）は、設定ファイルＦ２に基づいて生成された第２のＲＴＬ回路である。
【００５０】
ｏｕｔｐｕｔ文の組み合わせ論理記述ｘ１から出力信号を生成する組み合わせ回路Ｋ１を生成する。ｏｕｔｐｕｔ文で指定された出力端子ＤＮをモジュールｆ１の端子として生成する。
【００５１】
ｒｅｇｉｓｔｅｒ文ｘ２／ｘ３から遅延回路Ｋ２／Ｋ３を生成する。
【００５２】
ｒｅｇｉｓｔｅｒ文記述ｘ２から生成される遅延回路Ｋ２は、入力信号がｆ１＿ＤＮであり、入力信号から出力信号までの遅延サイクルが、主回路データベースＤＢ１内のモジュールｆ１の信号ａｄから信号ｄｏまでの遅延サイクルと同一である回路Ｋ２となる。信号ａｄから信号ｄｏまでの遅延サイクルが２サイクルの場合、遅延回路Ｋ２は、入力から出力までの遅延が１サイクルとなる。
【００５３】
ｒｅｇｉｓｔｅｒ文ｘ３から生成される遅延回路Ｋ３は、リセット時に０に設定されるレジスタであり、入力信号ｆ１＿ＤＮが１の場合に、レジスタ値が更新される回路Ｋ３となる。
【００５４】
次に、回路接続手段３の動作例について説明する。
【００５５】
図４、図５は、生成される回路の一例であり、図４（ａ）は主回路データベースＤＢ１に保存される第１のＲＴＬ回路、図４（ｂ）は副回路データベースＤＢ２に保存される第２のＲＴＬ回路、図５は目標とするＲＴＬ記述ファイルＦ１０に出力される目標とするＲＴＬ回路である。
【００５６】
モジュールｆ１における信号ｃ１は、主回路データベースＤＢ１に生成された信号であり、副回路データベースＤＢ２から参照されている信号であるため、主回路データベースＤＢ１の信号ｃ１と副回路データベースＤＢ２の信号ｃ１は同一信号として接続される。
【００５７】
モジュールｔｏｐでは、ｉｎｓｔａｎｃｅ文ｘ４からモジュールｆ３のインスタンスｆ３がモジュールｔｏｐ内の回路として生成される。
【００５８】
ｗｉｒｅ文ｘ５／ｘ６から、モジュールｆ１とモジュールｆ３、モジュールｆ２とモジュールｆ３間の配線Ｈ１／Ｈ２が結線される。
【００５９】
ｓｅｌｅｃｔ文ｘ７は、モジュールｆ２のリソース共有時に生成されるセレクタを示す記述であり、ｃｏｎｄｉｔｉｏｎ文がセレクタの制御信号が、インスタンスｆ３の端子ｓ０であることを示している。この記述により、モジュールｆ２のリソース共有用セレクタの制御信号の配線Ｈ３は、インスタンスｆ３の端子ｓ０に接続される。
【００６０】
回路接続手段３により、信号間の接続のために生成した配線Ｈ１／Ｈ２／Ｈ３のビット幅が、主回路データベースＤＢ１の信号および副回路データベースＤＢ２の信号のビット幅を基に決定される。
【００６１】
最後に、回路接続手段３は、接続して得た図５に示す回路を目標のＲＴＬ記述ファイルＦ１０として出力する。
【００６２】
以上により、本実施の形態における高位合成装置では、ユーザが設計したスケジューリングを実現する制御回路を生成するための情報を設定ファイルＦ２に記述することにより、動作レベル記述を変更することなく、要求性能を満たすＲＴＬ記述を生成することが可能である。
【００６３】
また、ユーザが生成したい制御回路が、高位合成のスケジューリング結果に依存する場合でも、高位合成の結果から算出した値を使用して、制御回路の生成方法を指定できるため、高位合成により生成されるＲＴＬ回路に対して、相対的な制御を行う制御回路の生成が可能となる。
【００６４】
また、リソース共有に付随して生成されるセレクタの制御に対しても、ユーザが設計した制御回路から制御が可能になるため、高位合成のリソース共有機能を使用することが可能となる。
【００６５】
（実施の形態２）
図６は、本発明の実施の形態２における高位合成装置の構成図である。図６において、実施の形態１の図１におけるのと同じ符号は同一構成要素を指している。
【００６６】
高位合成装置Ａ２は、動作記述ファイルＦ１から第１のＲＴＬ回路を生成して主回路データベースＤＢ１に格納する高位合成手段１と、設定ファイルＦ２に記述されている接続情報に従って、主回路データベースＤＢ１における第１のＲＴＬ回路に、非合成ＲＴＬ記述ファイルＦ３に記述された非合成のＲＴＬ回路を呼び出すインスタンスを追加して目標とするＲＴＬ記述ファイルＦ１０を生成する回路接続手段３から構成されている。本実施の形態においては、実施の形態１の場合の回路生成手段２はない。
【００６７】
非合成ＲＴＬ記述ファイルＦ３は、レジスタ転送レベルで回路を記述したファイルである。非合成ＲＴＬ記述ファイルＦ３は、Ｖｅｒｉｌｏｇ−ＨＤＬ言語等のハードウェア記述言語で記述されている。
【００６８】
次に、回路接続手段３の動作例について説明する。
【００６９】
図７（ａ）は、設定ファイルＦ２の記述例であり、図７（ｂ）は、非合成ＲＴＬ記述ファイルＦ３の記述例である。図８は目標とするＲＴＬ記述ファイルＦ１０の記述例である。
【００７０】
設定ファイルＦ２は、目標とするＲＴＬ記述ファイルＦ１０に記述されているモジュールと同一の単位で記述されており、動作記述ファイルＦ１に記述されているモジュールの端子以外の端子を生成するための端子情報（ｉｎｐｕｔ／ｏｕｔｐｕｔ）と、非合成ＲＴＬ記述ファイルＦ３に記述されているＲＴＬ回路のモジュールを呼び出すためのインスタンス情報（ｉｎｓｔａｎｃｅ）と、信号を接続するための接続情報（ｗｉｒｅ／ｏｕｔｐｕｔ）が記述されている。
【００７１】
回路接続手段３は、端子情報に基づき、モジュールに端子を追加し、インスタンス情報に基づき、モジュールにインスタンスを追加する。ＲＴＬ記述ｚ１は端子情報ｙ１に基づき追加された端子記述であり、ＲＴＬ記述ｚ３はインスタンス情報ｙ２に基づき追加されたインスタンス記述である。その他の端子記述、インスタンス記述は、主回路データベースＤＢ１から生成される記述である。
【００７２】
次に、回路接続手段３は、接続情報ｙ３に基づき、追加した端子またはインスタンスのピンと主回路データベースＤＢ１に存在する第１のＲＴＬ回路の信号と接続する。ＲＴＬ記述ｚ３のインスタンス記述のピンの接続記述は、接続情報ｙ３に基づき接続された記述である。
【００７３】
回路接続手段３により、信号間の接続のために生成した配線ｚ２のビット幅と設定ファイルＦ２の端子情報に基づき追加された端子ｚ１のビット幅が、主回路データベースＤＢ１の信号および非合成ＲＴＬ記述ファイルＦ３の信号のビット幅を基に決定される。
【００７４】
以上により、本実施の形態における高位合成装置では、ユーザが設計した制御回路を使用して、動作レベル記述を変更することなく、要求性能を満たすＲＴＬ記述を生成することが可能である。高位合成により生成されたＲＴＬ回路に人手で修正を加える場合に対して、記述ミスを削減できるという効果がある。
【００７５】
（実施の形態３）
図９は、本発明の実施の形態３における高位合成装置の構成図である。図９において、実施の形態１の図１におけるのと同じ符号は同一構成要素を指している。
【００７６】
高位合成装置Ａ３は、動作記述ファイルＦ１から第１のＲＴＬ回路を生成して主回路データベースＤＢ１に格納する高位合成手段１と、設定ファイルＦ２から第２のＲＴＬ回路を生成して副回路データベースＤＢ２に格納する回路生成手段２と、設定ファイルＦ２に記述されている接続方法に従って、主回路データベースＤＢ１の第１のＲＴＬ回路と副回路データベースＤＢ２の第２のＲＴＬ回路から目標とするＲＴＬ記述ファイルＦ１０を生成する回路接続手段３と、高位合成手段１のスケジューリング結果と設定ファイルＦ２から各信号の波形を生成し、表示する波形表示手段４とから構成されている。
【００７７】
次に波形表示手段４の動作例について説明する。
【００７８】
図１０は、波形表示手段４の構成図である。波形表示手段４は、動作記述ファイルＦ１の入力信号値を入力する入力値設定手段４１と、高位合成手段１のスケジューリング結果から各信号の遷移タイミングを抽出し、波形データベースＤＢ３に保存するスケジューリング結果抽出手段４２と、設定ファイルＦ２で新たに定義された信号の遷移タイミングを計算し、波形データベースＤＢ３に追加する波形追加手段４３と、波形データベースＤＢ３の情報を画面に表示する表示手段４４から構成されている。
【００７９】
最初に、ユーザにより信号の遷移タイミングの計算に必要な値が入力値設定手段４１によって設定される。例えば、動作記述ファイルＦ１の場合、信号ｎにより信号の遷移タイミングが変化するため、信号ｎの値の設定が必要となる。
【００８０】
次に、スケジューリング結果抽出手段４２では、動作記述ファイルＦ１に記述されている信号、および高位合成手段１により生成される制御回路の開始、終了信号が遷移するタイミングを抽出し、波形データベースＤＢ３に格納する。
【００８１】
次に、波形追加手段４３では、設定ファイルＦ２に記述されている遅延回路について、遅延回路が参照している信号の遷移タイミングを波形データベースＤＢ３から取得し、遅延回路の出力信号の遷移タイミングを計算し、波形データベースＤＢ３に追加する。
【００８２】
最後に、表示手段４４によってユーザにスケジューリング結果抽出手段４２により生成された波形と波形追加手段４３により生成された波形とが重ねて画面に表示される。
【００８３】
図１１は、動作記述ファイルＦ１を信号ｎの値が４の場合の表示画面の例であり、波形ｗ１はスケジューリング結果抽出手段４２により生成された波形であり、波形ｗ２は波形追加手段４３により生成された波形である。波形は、１ビットの信号については、信号値０と１の遷移を、１ビット以外の信号については、信号値が変化する時刻を示す波形として表示される。
【００８４】
以上により、本実施の形態における高位合成装置では、高位合成により生成された回路の信号とユーザにより設計された回路の信号との遷移の関係を確認することができるので、ユーザが入力した回路情報が意図したとおりの動作を行う回路が生成される情報であるかを確認することが可能となる。
【００８５】
図１２は、本実施の形態における高位合成方法の処理の手順を示すフローチャートである。
【００８６】
最初に、高位合成ステップＳ１では、高位合成手段１を用いて、動作記述ファイルＦ１に対して高位合成を行い、得られた第１のＲＴＬ回路を主回路データベースＤＢ１に格納する。
【００８７】
次に、性能確認ステップＳ２では、波形表示手段４を用いて、各信号の遷移タイミングを確認し、処理性能が要求されるサイクル数で処理が完了しているかを確認する。
【００８８】
もし、処理性能が要求を満たしていない場合には、設定ファイル入力ステップＳ３で、ユーザは処理性能が要求を満たすように回路構成を決定し、決定した回路を生成するように設定ファイルＦ２を記述する。
【００８９】
性能確認ステップＳ４で、入力した設定ファイルＦ２と高位合成結果を参照して、波形表示手段４を用いて、処理性能の確認を行う。
【００９０】
処理性能の確認後、回路生成ステップＳ５では、回路生成手段２を用いて、設定ファイルＦ２から第２のＲＴＬ回路を生成し、副回路データベースＤＢ２に格納する。
【００９１】
最後に、回路接続ステップＳ５では、回路接続手段３を用いて、主回路データベースＤＢ１に格納されている第１のＲＴＬ回路と副回路データベースＤＢ２に格納されている第２のＲＴＬ回路を設定ファイルＦ２に従って接続し、目標とするＲＴＬ記述ファイルＦ１０を得る。
【００９２】
以上により、本実施の形態における高位合成方法では、ユーザが入力した回路情報によって生成されるＲＴＬ回路の動作を確認しながら設計を行えるため、回路情報の入力ミスを防止しつつ、かつ、要求性能を満たすＲＴＬ回路の生成が可能となる。
【産業上の利用可能性】
【００９３】
本発明の高位合成装置は、動作レベル記述の変更なしに、ユーザが設計した制御回路を使用したレジスタ転送レベル記述を生成できる特徴を有しているので、要求性能を満たすために複雑な制御を必要とするＬＳＩ設計に有用である。
【図面の簡単な説明】
【００９４】
【図１】本発明の実施の形態１における高位合成装置の構成図
【図２】本発明の実施の形態１における動作記述ファイルの記述例を示す図
【図３】本発明の実施の形態１における設定ファイルの記述例を示す図
【図４】本発明の実施の形態１における主・副回路データベースに格納される回路例を示す図
【図５】本発明の実施の形態１における回路接続手段により生成される回路例を示す図
【図６】本発明の実施の形態２における高位合成装置の構成図
【図７】本発明の実施の形態２における設定ファイルと非合成ＲＴＬ記述ファイルの記述例を示す図
【図８】本発明の実施の形態２における目標とするＲＴＬ記述ファイルの記述例を示す図
【図９】本発明の実施の形態３における高位合成装置の構成図
【図１０】本発明の実施の形態３における波形表示手段の構成図
【図１１】本発明の実施の形態３における波形表示手段の表示例を示す図
【図１２】本発明の実施の形態３における高位合成方法の処理の手順を示すフローチャート
【図１３】従来技術での高位合成方法の処理の手順を示すフローチャート
【図１４】処理時間の関係図
【符号の説明】
【００９５】
１  高位合成手段
２  回路生成手段
３  回路接続手段
４  波形表示手段
Ａ１〜Ａ３  高位合成装置
ＤＢ１  主回路データベース
ＤＢ２  副回路データベース
Ｆ１  動作記述ファイル
Ｆ２  設定ファイル
Ｆ３  非合成ＲＴＬ記述ファイル
Ｆ１０  ＲＴＬ記述ファイル
Ｓ１  高位合成ステップ
Ｓ２  性能確認ステップ
Ｓ３  設定ファイル入力ステップ
Ｓ４  性能確認ステップ
Ｓ５  回路生成ステップ
Ｓ６  回路接続ステップ
【図１】
2008217071.tif 000003
【図２】
2008217071.tif 000004
【図３】
2008217071.tif 000005
【図４】
2008217071.tif 000006
【図５】
2008217071.tif 000007
【図６】
2008217071.tif 000008
【図７】
2008217071.tif 000009
【図８】
2008217071.tif 000010
【図９】
2008217071.tif 000011
【図１０】
2008217071.tif 000012
【図１１】
2008217071.tif 000013
【図１２】
2008217071.tif 000014
【図１３】
2008217071.tif 000015
【図１４】
2008217071.tif 000016