(57)【要約】      （修正有）【課題】高位合成の処理時間及び半導体集積回路の設計期間を短縮する。【解決手段】高位合成装置は、半導体集積回路の動作を表す動作記述に対して、抽象構文木を生成する字句構文解析部１１と、字句構文解析部１１の解析結果に基づいて、半導体集積回路の制約を満たすように各演算の実行タイミングを決定するスケジューリング部１３と、スケジューリング結果に基づいて、ハードウェア資源の量及び回路構成を決定するバインディング部１４と、スケジューリング結果及びバインディング結果に基づいて、回路記述を生成する回路記述生成部１５と、スケジューリング結果及び制約に基づいて、入出力信号に依存する演算が存在しないマージン時間を含むマージン情報を生成するマージン情報生成部１６と、回路記述生成部１５によって生成された回路記述及びマージン情報生成部１６によって生成されたマージン情報を出力する出力部１７と、を備える。【選択図】図２
2011090518.tif 000002
【特許請求の範囲】
【請求項１】
半導体集積回路の動作を表す動作記述に対して、字句及び構文の解析を行って抽象構文木を生成するように構成される字句構文解析部と、
前記字句構文解析部の解析結果に基づいて、前記半導体集積回路の制約を満たすように前記動作記述に現れる各演算の実行タイミングを決定するスケジューリングを行うように構成されるスケジューリング部と、
前記スケジューリング部のスケジューリング結果に基づいて、ハードウェア資源の量及び回路構成を決定するバインディングを行うように構成されるバインディング部と、
前記スケジューリング結果及び前記バインディング部のバインディング結果に基づいて、回路記述を生成するように構成される回路記述生成部と、
前記スケジューリング結果及び前記制約に基づいて、入出力信号に依存する演算が存在しないマージン時間を含むマージン情報を生成するように構成されるマージン情報生成部と、
前記回路記述生成部によって生成された回路記述及び前記マージン情報生成部によって生成されたマージン情報を出力するように構成される出力部と、を備えることを特徴とする高位合成装置。
【請求項２】
前記制約は、レジスタへのアクセス可能期間を示すアクセス制約を含み、
前記マージン情報生成部は、前記アクセス制約のアクセス可能期間の始点と入力信号が最初に与えられるサイクルとの差を前記マージン時間とする請求項１記載の高位合成装置。
【請求項３】
前記制約は、入力信号に対する出力信号の遅延時間を示すレイテンシ制約を含み、
前記マージン情報生成部は、前記遅延時間を前記マージン時間とする請求項１記載の高位合成装置。
【請求項４】
半導体集積回路の動作を表す動作記述に対して、字句及び構文の解析を行って抽象構文木を生成し、
前記動作記述に対する解析結果に基づいて、前記半導体集積回路の制約を満たすように前記動作記述に現れる各演算の実行タイミングを決定するスケジューリングを行い、
スケジューリング結果に基づいて、ハードウェア資源の量及び回路構成を決定するバインディングを行い、
前記スケジューリング結果及びバインディング結果に基づいて、回路記述を生成し、
前記スケジューリング結果及び前記制約に基づいて、入出力信号に依存する演算が存在しないマージン時間を含むマージン情報を生成し、
前記回路記述及び前記マージン情報を出力することを特徴とする高位合成方法。
【請求項５】
半導体集積回路の動作を表す動作記述に対して、字句及び構文の解析を行って抽象構文木を生成し、
前記動作記述に対する解析結果に基づいて、前記半導体集積回路の制約を満たすように前記動作記述に現れる各演算の実行タイミングを決定するスケジューリングを行い、
スケジューリング結果に基づいて、ハードウェア資源の量及び回路構成を決定するバインディングを行い、
前記スケジューリング結果及びバインディング結果に基づいて、回路記述を生成し、
前記スケジューリング結果及び前記制約に基づいて、入出力信号に依存する演算が存在しないマージン時間を含むマージン情報を生成し、
前記回路記述及び前記マージン情報を出力する処理をコンピュータに実行させることを特徴とする高位合成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＬＳＩ（Large Scale Integration）等の半導体集積回路の設計に使用される高位合成装置、高位合成方法、及び高位合成プログラムに関する。
【背景技術】
【０００２】
ＬＳＩの設計に使用される高位合成は、レジスタ転送レベル（以下、「ＲＴＬ（Register Transfer Level）」という）記述よりも抽象度の高い動作記述からＲＴＬ記述を生成する技術である。高位合成は、ＬＳＩの設計生産性を向上させるために重要な技術である。
【０００３】
高位合成では、一般に、Ｃ言語などの動作記述、合成回路の入出力情報、及び回路規模やタイミングなどの制約を入力として、動作記述の制御やデータの依存を解析し、制約に基づいて最適な演算の実行タイミングを決定するスケジューリング及びハードウェア資源の量及び回路構成を決定するバインディングを行い、スケジューリング結果及びバインディング結果に基づいてＲＴＬ記述が生成される。
【０００４】
従来の高位合成では、設計者がＲＴＬ記述を作成する場合と同様に、合成の対象となる範囲（以下、「合成対象モジュール」という）が予め決まっているので、最適化の対象は合成対象モジュール内のみとなる。そのため、チップ全体を組み上げる配置配線において、他のモジュールの状況によっては最適な結果を得ることができず、且つ、動作クロックをターゲットクロックに合わせること（以下、「タイミング収束」という）が困難になるという問題がある。さらに、モジュールが密集することによって配線が困難になるという問題もある。
【０００５】
これらの問題の解決方法として、高位合成と配置配線とを繰り返す技術が知られている（特許文献１を参照）。しかしながら、特許文献１では、チップ全体又は十分に大規模な回路を一括して合成対象モジュールとする必要がある。従って、高位合成の処理時間が増大する。さらに、配置配線の結果をフィードバックすることによって各高位合成結果が変化するので、その度に高位合成と配置配線とを繰り返す必要がある。従って、ＬＳＩの設計期間が増大する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００４−２６５２２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明の目的は、高位合成の処理時間及び半導体集積回路の設計期間を短縮することである。
【課題を解決するための手段】
【０００８】
本発明の第１態様によれば、
半導体集積回路の動作を表す動作記述に対して、字句及び構文の解析を行って抽象構文木を生成するように構成される字句構文解析部と、
前記字句構文解析部の解析結果に基づいて、前記半導体集積回路の制約を満たすように前記動作記述に現れる各演算の実行タイミングを決定するスケジューリングを行うように構成されるスケジューリング部と、
前記スケジューリング部のスケジューリング結果に基づいて、ハードウェア資源の量及び回路構成を決定するバインディングを行うように構成されるバインディング部と、
前記スケジューリング結果及び前記バインディング部のバインディング結果に基づいて、回路記述を生成するように構成される回路記述生成部と、
前記スケジューリング結果及び前記制約に基づいて、入出力信号に依存する演算が存在しないマージン時間を含むマージン情報を生成するように構成されるマージン情報生成部と、
前記回路記述生成部によって生成された回路記述及び前記マージン情報生成部によって生成されたマージン情報を出力するように構成される出力部と、を備えることを特徴とする高位合成装置
が提供される。
【０００９】
本発明の第２態様によれば、
半導体集積回路の動作を表す動作記述に対して、字句及び構文の解析を行って抽象構文木を生成し、
前記動作記述に対する解析結果に基づいて、前記半導体集積回路の制約を満たすように前記動作記述に現れる各演算の実行タイミングを決定するスケジューリングを行い、
スケジューリング結果に基づいて、ハードウェア資源の量及び回路構成を決定するバインディングを行い、
前記スケジューリング結果及びバインディング結果に基づいて、回路記述を生成し、
前記スケジューリング結果及び前記制約に基づいて、入出力信号に依存する演算が存在しないマージン時間を含むマージン情報を生成し、
前記回路記述及び前記マージン情報を出力することを特徴とする高位合成方法
が提供される。
【００１０】
本発明の第３態様によれば、
半導体集積回路の動作を表す動作記述に対して、字句及び構文の解析を行って抽象構文木を生成し、
前記動作記述に対する解析結果に基づいて、前記半導体集積回路の制約を満たすように前記動作記述に現れる各演算の実行タイミングを決定するスケジューリングを行い、
スケジューリング結果に基づいて、ハードウェア資源の量及び回路構成を決定するバインディングを行い、
前記スケジューリング結果及びバインディング結果に基づいて、回路記述を生成し、
前記スケジューリング結果及び前記制約に基づいて、入出力信号に依存する演算が存在しないマージン時間を含むマージン情報を生成し、
前記回路記述及び前記マージン情報を出力する処理をコンピュータに実行させることを特徴とする高位合成プログラム
が提供される。
【発明の効果】
【００１１】
本発明によれば、高位合成の処理時間及び半導体集積回路の設計期間を短縮することができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の第１実施形態に係る高位合成装置１の構成を示すブロック図である。
【図２】図１のプロセッサ１０によって実現される機能を示すブロック図である。
【図３】本発明の第１実施形態に係る高位合成処理の手順を示すフローチャートである。
【図４】図３の高位合成処理を実行するために与えられる動作記述及び制約の一例を示す概略図である。
【図５】図３のスケジューリングステップ（Ｓ３０３）のスケジューリング結果の一例を示す概略図である。
【図６】本発明の第１実施形態の変形例に係る画像情報の一例を示す概略図である。
【図７】本発明の第２実施形態に係る高位合成処理を実行するために与えられる動作記述及び制約の一例を示す概略図である。
【図８】本発明の第２実施形態に係る高位合成処理のスケジューリングステップ（Ｓ３０３）のスケジューリング結果の一例を示す概略図である。
【図９】本発明の第２実施形態の変形例に係る画像情報の一例を示す概略図である。
【図１０】本発明の第１実施形態に係る高位合成装置１のプロセッサ１０によって実現される機能を示すブロック図である。
【図１１】本発明の第３実施形態に係る高位合成処理の手順を示すフローチャートである。
【図１２】本発明の第３実施形態の変形例に係る画像情報の一例を示す概略図である。
【発明を実施するための形態】
【００１３】
以下、本発明の実施形態について、図面を参照して詳細に説明する。
【００１４】
（第１実施形態）
本発明の第１実施形態について説明する。本発明の第１実施形態は、回路記述に加えて、タイミング緩和に関するマージン情報が出力される高位合成装置の例である。
【００１５】
本発明の第１実施形態に係る高位合成装置の構成について説明する。図１は、本発明の第１実施形態に係る高位合成装置１の構成を示すブロック図である。図２は、図１のプロセッサ１０によって実現される機能を示すブロック図である。
【００１６】
図１に示すように、本発明の第１実施形態に係る高位合成装置１は、プロセッサ１０と、メモリ２０と、入力装置３０と、出力装置４０と、を備える。プロセッサ１０は、メモリ２０、入力装置３０、及び出力装置４０に接続される。プロセッサ１０は、メモリ２０に記憶された高位合成プログラムを起動することによって、本発明の第１実施形態に係る高位合成処理に必要な機能を実現するように構成される。入力装置３０は、半導体集積回路の動作を表す動作記述及び半導体集積回路の制約等の高位合成処理に必要な情報の入力を受け付けるように構成される。出力装置４０は、高位合成処理の結果を出力するように構成される。例えば、プロセッサ１０は、ＣＰＵ（Central Processing Unit）であり、メモリ２０は、ハードディスクドライブ又はフラッシュメモリ等のコンピュータ読み取り可能な記憶媒体であり、入力装置３０は、キーボード等の入力デバイスであり、出力装置４０は、液晶ディスプレイ等の出力デバイスである。
【００１７】
図２に示すように、プロセッサ１０は、字句構文解析部１１と、スケジューリング部１３と、バインディング部１４と、回路記述生成部１５と、マージン情報生成部１６と、出力部１７と、を実現する。
【００１８】
字句構文解析部１１は、半導体集積回路の動作を表す動作記述に対して字句及び構文の解析を行って抽象構文木を生成し、その抽象構文木の変形及び最適化、コントロールデータフロー（以下、「ＣＤＦＧ（Conrtol Data Flow Graph）」という）の作成制御、並びにデータ依存の解析を行うように構成される。
【００１９】
スケジューリング部１３は、字句構文解析部１１の解析結果に基づいて、半導体集積回路の制約を満たすように動作記述に現れる各演算の実行タイミングを決定するスケジューリングを行うように構成される。
【００２０】
バインディング部１４は、スケジューリング部１３のスケジューリング結果に基づいて、ハードウェア資源の量及び回路構成を決定するバインディングを行うように構成される。例えば、バインディング部１４は、演算器の量及びレジスタの量をハードウェア資源の量として決定し、ＦＳＭ（Finite State Machine）の生成及びマルチプレクサの生成を行うことによって回路構成を決定する。
【００２１】
回路記述生成部１５は、スケジューリング結果及びバインディング部１４のバインディング結果に基づいて、ＲＴＬ等の回路記述を生成するように構成される。
【００２２】
マージン情報生成部１６は、スケジューリング結果及び制約に基づいて、入出力信号に依存する演算が存在しない時間（以下、「マージン時間」という）を含むマージン情報を生成するように構成される。マージン情報は、半導体集積回路の設計における余裕度を表す情報である。マージン時間は、タイミング緩和可能な時間である。
【００２３】
出力部１７は、回路記述生成部１５によって生成された回路記述及びマージン情報生成部１６によって生成されたマージン情報を出力するように構成される。
【００２４】
本発明の第１実施形態に係る高位合成処理について説明する。図３は、本発明の第１実施形態に係る高位合成処理の手順を示すフローチャートである。図４は、図３の高位合成処理を実行するために与えられる動作記述及び制約の一例を示す概略図である。図５は、図３のスケジューリングステップ（Ｓ３０３）のスケジューリング結果の一例を示す概略図である。
【００２５】
図３の本発明の第１実施形態に係る高位合成処理は、図４（Ａ）の動作記述及び図４（Ｂ）の制約が与えられたときに開始する。図４（Ｂ）に示すように、制約は、レジスタへのアクセス可能期間を示すアクセス制約を含む。アクセス可能期間は、始点及び終点から構成される。図４（Ａ）の動作記述は、開始信号（start_sig）が“１”になった後に演算が開始することを示している。図４（Ｂ）の制約は、開始信号（start_sig）がアサートされた後はいつでもレジスタがアクセス可能である（すなわち、開始信号（start_sig）が“１”になった後はいつでも入力信号（regA）を用いた演算結果が同じである）ことを示している。
【００２６】
＜図３：字句構文解析ステップ（Ｓ３０１）＞  字句構文解析部１１が、図４（Ａ）の動作記述に対して、字句及び構文の解析を行って抽象構文木を生成し、その抽象構文木の変形及び最適化、ＣＤＦＧの作成制御、並びにデータ依存の解析を行う。
【００２７】
＜図３：スケジューリングステップ（Ｓ３０３）＞  スケジューリング部１３が、字句構文解析ステップ（Ｓ３０１）の解析結果に基づいて、図４（Ｂ）の制約を満たすように動作記述に現れる各演算の実行タイミングを決定するスケジューリングを行う。
【００２８】
＜図３：バインディングステップ（Ｓ３０４）＞  バインディング部１４が、スケジューリングステップ（Ｓ３０３）のスケジューリング結果に基づいて、ハードウェア資源の量及び回路構成を決定するバインディングを行う。
【００２９】
＜図３：回路記述生成ステップ（Ｓ３０５）＞  回路記述生成部１５が、スケジューリング結果及びバインディングステップ（Ｓ３０４）のバインディング結果に基づいて、ＲＴＬ等の回路記述を生成する。
【００３０】
＜図３：マージン情報生成ステップ（Ｓ３０６）＞  マージン情報生成部１６が、スケジューリング結果及び図４（Ｂ）の制約に基づいて、マージン時間を含むマージン情報を生成する。ここで、マージン情報生成部１６は、アクセス制約のアクセス可能期間の始点と入力信号が最初に与えられるサイクルとの差を算出し、その算出結果をマージン時間とするマージン情報を生成する。例えば、図４（Ｂ）の制約では、１サイクル目（C1）からレジスタへアクセス可能であり、図５のスケジューリング結果では、入力信号（regA）は、開始信号（start_sig）が“１”になった後、３サイクル目（C3）及び４サイクル目（C4）に与えられる。この場合には、マージン情報生成部１６は、アクセス制約のアクセス可能期間の始点（C1）と入力信号（regA）が最初に与えられるサイクル（C3）との差を算出し、その算出結果である２サイクルをマージン時間ＭＴとするマージン情報を生成する。換言すると、マージン時間は、タイミング緩和可能な時間であって、時間的な余裕度を示している。
【００３１】
＜図３：出力ステップ（Ｓ３０７）＞  出力部１７が、回路記述生成ステップ（Ｓ３０５）において生成された回路記述及びマージン情報生成ステップ（Ｓ３０６）において生成されたマージン情報を出力する。
【００３２】
従来は、ユーザから与えられた制約はＲＴＬ記述の生成にのみ利用されていた。その結果、半導体集積回路の設計期間が増大していた。これに対して、本発明の第１実施形態では、ユーザから与えられた制約がマージン情報の生成にも利用され、そのマージン情報がＲＴＬ記述等の回路記述とともに出力される。従って、ユーザは、複雑な計算を行うことなく、回路記述中に存在する時間的な余裕度を容易に知ることができる。その結果、半導体集積回路の設計期間が短縮する。
【００３３】
また、従来は、高位合成と配置配線とが繰り返されていた。その結果、高位合成の処理時間が増大していた。これに対して、本発明の第１実施形態では、１回の高位合成処理において回路記述及びマージン情報が生成される。従って、高位合成が繰り返されることはない。その結果、高位合成の処理時間が短縮する。
【００３４】
なお、本発明の第１実施形態では、マージン情報が回路記述とともに出力される例について説明したが、本発明の範囲はこれに限られるものではない。例えば、出力部１７は、回路記述に加えて、ＣＤＦＧに基づいて表現されたスケジューリング結果にマージン時間ＭＴが付加された情報（図５を参照）を画像情報として出力しても良い。
【００３５】
また、本発明の第１実施形態では、マージン時間を含むマージン情報が生成される例について説明したが、本発明の範囲はこれに限られるものではない。例えば、マージン情報生成部１６は、マージン時間に挿入可能なモジュール（例えば、フリップフロップ）を示すマージン情報を画像情報として生成しても良い（図６を参照）。図６は、本発明の第１実施形態の変形例に係る画像情報の一例を示す概略図である。図６の画像情報は、入力信号（regA）の経路に０乃至２段のフリップフロップが挿入可能であることを示している。なお、マージン情報生成部１６は、フリップフロップの挿入に代えて、マルチサイクルパス指定等の他のタイミング緩和手段を適用すべきことを示す画像情報を生成しても良い。
【００３６】
（第２実施形態）
本発明の第２実施形態について説明する。本発明の第１実施形態では、制約がレジスタへのアクセス可能期間に関するアクセス制約を含む例について説明したが、本発明の第２実施形態では、制約が入力信号に対する出力信号の遅延時間に関するレイテンシ制約を含む例について説明する。なお、上述した実施形態と同様の内容についての説明は省略する。
【００３７】
本発明の第２実施形態に係る高位合成装置１の構成は、本発明の第１実施形態と同様である。
【００３８】
本発明の第２実施形態に係る高位合成処理について説明する。図７は、本発明の第２実施形態に係る高位合成処理を実行するために与えられる動作記述及び制約の一例を示す概略図である。図８は、本発明の第２実施形態に係る高位合成処理のスケジューリングステップ（Ｓ３０３）のスケジューリング結果の一例を示す概略図である。
【００３９】
本発明の第２実施形態に係る高位合成処理は、図３の手順で行われる。
【００４０】
図３の高位合成処理は、図７（Ａ）の動作記述及び図７（Ｂ）の制約が与えられたときに開始する。図７（Ｂ）に示すように、制約は、入力信号に対する出力信号の遅延時間を示すレイテンシ制約を含む。レイテンシ制約は、入力信号名、出力信号名、及び遅延時間を含む。図７（Ａ）の動作記述は、入力信号（din, din_valid）を受け取って演算を行い、出力信号（dout, dout_valid）を出力する動作を示している。図７（Ｂ）の制約は、入力信号（din）から出力信号（dout）までの遅延時間（処理クロックサイクル数）が４サイクルである（すなわち、入力信号を受け取ってから６サイクル以内に出力信号を生成する必要がある）ことを示している。
【００４１】
マージン情報生成ステップ（Ｓ３０６）以外のステップは、本発明の第１実施形態と同様である。
【００４２】
＜図３：マージン情報生成ステップ（Ｓ３０６）＞  マージン情報生成部１６が、スケジューリング結果及び制約に基づいて、入出力信号に依存する演算が存在しないマージン時間を含むマージン情報を生成する。ここで、マージン情報生成部１６は、スケジューリング結果の総サイクル数がレイテンシ制約の遅延時間以下である（すなわち、半導体集積回路が制約を満たす）場合には、遅延時間をマージン時間とするマージン情報を生成する。例えば、図８のスケジューリング結果では、総サイクル数が６サイクルであり、図７（Ｂ）の制約では、遅延時間が４サイクルである。この場合には、マージン情報生成部１６は、４サイクルをマージン時間とするマージン情報を生成する。
【００４３】
本発明の第２実施形態によれば、レイテンシ制約が与えられた場合であっても、本発明の第１実施形態と同様の効果を得ることができる。
【００４４】
なお、本発明の第２実施形態では、マージン情報が回路記述とともに出力される例について説明したが、本発明の範囲はこれに限られるものではない。例えば、出力部１７は、回路記述に加えて、ＣＤＦＧに基づいて表現されたスケジューリング結果にマージン時間ＭＴが付加された情報（図８を参照）を画像情報として出力しても良い。
【００４５】
また、本発明の第２実施形態では、マージン時間を含むマージン情報が生成される例について説明したが、本発明の範囲はこれに限られるものではない。例えば、マージン情報生成部１６は、マージン時間に挿入可能なモジュール（例えば、フリップフロップ）を示すマージン情報を画像情報として生成しても良い（図９を参照）。図９は、本発明の第２実施形態の変形例に係る画像情報の一例を示す概略図である。図９の画像情報は、入力信号（din, din_valid）を受けるＬＳＩの出力信号（dout, dout_valid）の経路に０乃至２段のフリップフロップが挿入可能であることを示している。また、図９の画像情報は、出力信号（dout）の経路と出力信号（dout_valid）の経路には同じ段数のフリップフロップを挿入する必要があることを示している。なお、マージン情報生成部１６は、フリップフロップの挿入に代えて、マルチサイクルパス指定等の他のタイミング緩和手段を適用すべきことを示す画像情報を生成しても良い。
【００４６】
（第３実施形態）
本発明の第３実施形態について説明する。本発明の第１及び第２実施形態では、高位合成装置がタイミング緩和に関するマージン情報を出力する例について説明したが、本発明の第３実施形態では、高位合成装置が面積に関するマージン情報を出力する例について説明する。なお、上述した実施形態と同様の内容についての説明は省略する。
【００４７】
本発明の第３実施形態に係る高位合成装置の構成について説明する。図１０は、本発明の第１実施形態に係る高位合成装置１のプロセッサ１０によって実現される機能を示すブロック図である。
【００４８】
本発明の第３実施形態に係る高位合成装置１の構成は、本発明の第１実施形態と同様である（図１を参照）。
【００４９】
図１０に示すように、プロセッサ１０は、字句構文解析部１１と、スケジューリング部１３と、バインディング部１４と、回路記述生成部１５と、マージン情報生成部１６と、出力部１７と、面積見積情報生成部１８と、を実現する。
【００５０】
字句構文解析部１１、スケジューリング部１３、バインディング部１４、回路記述生成部１５、及び出力部１７は、本発明の第１実施形態と同様である（図２を参照）。
【００５１】
面積見積情報生成部１８は、スケジューリング結果及びバインディング結果に基づいて、半導体集積回路の面積見積情報を生成するように構成される。
【００５２】
マージン情報生成部１６は、スケジューリング結果及び制約（アクセス制約又はレイテンシ制約）に基づいて、入出力信号に依存する演算が存在しないマージン時間を含むマージン情報を生成し、面積見積情報生成部１８によって生成された面積見積情報及び制約（面積制約）に基づいて、半導体集積回路の面積の余裕度を示すマージン面積を含むマージン情報を生成するように構成される。
【００５３】
本発明の第３実施形態に係る高位合成処理について説明する。図１１は、本発明の第３実施形態に係る高位合成処理の手順を示すフローチャートである。
【００５４】
図１１の本発明の第３実施形態に係る高位合成処理は、図４（Ａ）の動作記述及び図４（Ｂ）のアクセス制約、又は図７（Ａ）の動作記述及び図７（Ｂ）のレイテンシ制約に加えて、半導体集積回路の面積制約が与えられたときに開始する。
【００５５】
＜図１１：変換ステップ（Ｓ１１０１）乃至回路記述生成ステップ（Ｓ１１０５）＞  本発明の第１実施形態と同様である（図３：字句構文解析ステップ（Ｓ３０１）乃至回路記述生成ステップ（Ｓ３０５）を参照）。
【００５６】
＜図１１：面積見積情報生成ステップ（Ｓ１１０６）＞  面積見積情報生成部１８は、スケジューリングステップ（Ｓ１１０３）のスケジューリング結果及びバインディングステップ（Ｓ１１０４）のバインディング結果に基づいて、回路記述生成ステップ（Ｓ１１０５）において生成された回路記述に対応する半導体集積回路の面積見積情報を生成する。面積見積情報は、回路記述に基づいて設計される半導体集積回路の面積の見積値である。
【００５７】
＜図１１：マージン情報生成ステップ（Ｓ１１０７）＞  マージン情報生成部１６が、スケジューリング結果及び制約に基づいて、入出力信号に依存する演算が存在しないマージン時間を含むマージン情報を生成し、面積見積情報生成ステップ（Ｓ１１０６）において生成された面積見積情報及び面積制約に基づいて、マージン面積を含むマージン情報を生成する。例えば、マージン情報生成部１６は、“Amargin = {Aconst - Aest} / Aff”（Amargin：マージン面積、Aconst：面積制約、Aest：面積見積情報、Aff：フリップフロップの面積）という演算を行って、挿入可能なフリップフロップの最大数を含むマージン面積を含むマージン情報を生成する。
【００５８】
＜図１１：出力ステップ（Ｓ１１０８）＞  本発明の第１実施形態と同様である（図３：出力部（Ｓ３０７）を参照）。
【００５９】
本発明の第３実施形態では、高位合成装置１は、タイミング緩和に関するマージン情報に加えて、面積に関するマージン情報も出力する。従って、ユーザは、複雑な計算を行うことなく、ＲＴＬ記述中に存在する時間的な余裕度に加えて、ＲＴＬ記述に対応する半導体集積回路の面積的な余裕度をマージン情報から容易に知ることができる。その結果、レイテンシが短く且つ面積の小さい半導体集積回路の設計が容易になる。
【００６０】
なお、本発明の第３実施形態では、マージン時間及びマージン面積を含むマージン情報が生成される例について説明したが、本発明の範囲はこれに限られるものではない。例えば、マージン情報生成部１６は、マージン時間及びマージン面積を考慮して挿入可能なモジュール（例えば、フリップフロップ）を示すマージン情報を画像情報として生成しても良い（図１２を参照）。図１２は、本発明の第３実施形態の変形例に係る画像情報の一例を示す概略図である。図１２は、入力信号（din1）の経路に０又は１段のフリップフロップが挿入可能であり、入力信号（din2）の経路に０乃至２段のフリップフロップが挿入可能であり、出力信号（dout1, dout2）の経路に０乃至２段のフリップフロップが挿入可能であることを示している。また、図１２は、出力信号（dout1）の経路と出力信号（dout2）の経路には同じ段数のフリップフロップを挿入する必要があることを示している。
【００６１】
本発明の実施形態に係る高位合成装置の少なくとも一部は、ハードウェアで構成しても良いし、ソフトウェアで構成しても良い。ソフトウェアで構成する場合には、高位合成装置１の少なくとも一部の機能を実現するプログラムをフレキシブルディスクやＣＤ−ＲＯＭ等の記録媒体に収納し、コンピュータに読み込ませて実行させても良い。記録媒体は、磁気ディスクや光ディスク等の着脱可能なものに限定されず、ハードディスク装置やメモリなどの固定型の記録媒体でも良い。
【００６２】
また、本発明の実施形態に係る高位合成装置の少なくとも一部の機能を実現するプログラムを、インターネット等の通信回線（無線通信も含む）を介して頒布しても良い。さらに、同プログラムを暗号化したり、変調をかけたり、圧縮した状態で、インターネット等の有線回線や無線回線を介して、あるいは記録媒体に収納して頒布しても良い。
【００６３】
上述した実施形態は、いずれも一例であって限定的なものではないと考えられるべきである。本発明の技術的範囲は、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【００６４】
１  高位合成装置
１０  プロセッサ
１１  字句構文解析部
１３  スケジューリング部
１４  バインディング部
１５  回路記述生成部
１６  マージン情報生成部
１７  出力部
１８  面積見積情報生成部
２０  メモリ
３０  入力装置
４０  出力装置
【図１】
2011090518.tif 000003
【図２】
2011090518.tif 000004
【図３】
2011090518.tif 000005
【図４】
2011090518.tif 000006
【図５】
2011090518.tif 000007
【図６】
2011090518.tif 000008
【図７】
2011090518.tif 000009
【図８】
2011090518.tif 000010
【図９】
2011090518.tif 000011
【図１０】
2011090518.tif 000012
【図１１】
2011090518.tif 000013
【図１２】
2011090518.tif 000014