(57)【特許請求の範囲】
【請求項１】
動作記述からＲＴＬ記述を合成する動作合成システムであって、
前記動作記述に基づき、コントロール・データフローグラフを作成し、前記コントロール・データフローグラフ中の演算を実行するコントロールステップを決定し、前記コントロール・データフローグラフ中の演算を行う演算器とデータを格納するレジスタを決定するスケジューリング・バインディング手段と、
前記コントロールステップをステージにグループ化し、前記ステージに１対１に対応する制御回路であって、対応するステージ内のステップの実行を制御する制御論理と、対応するステージの実行そのものを制御する制御論理とを有する制御回路を作成するパイプライン制御回路作成手段と、
データパスと前記制御回路からなるＲＴＬ記述を作成するＲＴＬ記述生成手段と、
を備え、
前記対応するステージの実行そのものを制御する制御論理は、該ステージの直前のステージが同じループに属しているかどうか及び該ステージの直後のステージが同じループに属しているかどうかをもとに該ステージの最初のステップの実行を開始するか開始せずに待つかを制御する論理である
動作合成システム。
【請求項２】
動作記述からＲＴＬ記述を合成する動作合成システムであって、
前記動作記述に基づき、コントロール・データフローグラフを作成し、前記コントロール・データフローグラフ中の演算を実行するコントロールステップを決定し、前記コントロール・データフローグラフ中の演算を行う演算器とデータを格納するレジスタを決定するスケジューリング・バインディング手段と、
前記コントロールステップをステージにグループ化し、前記ステージに１対１に対応する制御回路であって、対応するステージ内のステップの実行を制御する制御論理と、対応するステージの実行そのものを制御する制御論理とを有する制御回路を作成するパイプライン制御回路作成手段と、
データパスと前記制御回路からなるＲＴＬ記述を作成するＲＴＬ記述生成手段と、
を備え、
前記対応するステージの実行そのものを制御する制御論理は、
該ステージの最初のステップの実行を開始するか、開始せずに待つかを制御する論理であり、
該ステージの最初のステップの実行を開始するかどうかは、（イ）直前のステージまたはループの実行状況、および、（ロ）直後のステージまたはループの実行状況によって決定され、
直前のステージまたはループの実行状況による決定は、（イ−１）直前のステージが同じループに属している場合は、直前のステージの最後のステップが完了したか否かにより決定され、（イ−２）直前のステージが違うループに属している場合は、直前のステージが属するループの処理がすべて完了したかどうかにより決定され、
直後のステージまたはループの実行状況による決定は、（ロ−１）直後のステージが同じループに属している場合は、開始条件が常に成り立つものとし、(ロ−２)直後のステージが異なるループに属している場合には、該ステージの実行が開始されていないかどうか、もしくは、ループの実行が完了しているかどうかにより決定される
動作合成システム。
【請求項３】
動作記述からＲＴＬ記述を合成する動作合成方法であって、
前記動作記述に基づき、コントロール・データフローグラフを作成し、前記コントロール・データフローグラフ中の演算を実行するコントロールステップを決定し、前記コントロール・データフローグラフ中の演算を行う演算器とデータを格納するレジスタを決定するスケジューリング・バインディング工程と、
前記コントロールステップをステージにグループ化し、前記ステージに１対１に対応する制御回路であって、対応するステージ内のステップの実行を制御する制御論理と、対応するステージの実行そのものを制御する制御論理とを有する制御回路を作成するパイプライン制御回路作成工程と、
データパスと前記制御回路からなるＲＴＬ記述を作成するＲＴＬ記述生成工程と、
を含み、
前記対応するステージの実行そのものを制御する制御論理は、該ステージの直前のステージが同じループに属しているかどうか及び該ステージの直後のステージが同じループに属しているかどうかをもとに該ステージの最初のステップの実行を開始するか開始せずに待つかを制御する論理である
動作合成方法。
【請求項４】
動作記述からＲＴＬ記述を合成する動作合成方法であって、
前記動作記述に基づき、コントロール・データフローグラフを作成し、前記コントロール・データフローグラフ中の演算を実行するコントロールステップを決定し、前記コントロール・データフローグラフ中の演算を行う演算器とデータを格納するレジスタを決定するスケジューリング・バインディング工程と、
前記コントロールステップをステージにグループ化し、前記ステージに１対１に対応する制御回路であって、対応するステージ内のステップの実行を制御する制御論理と、対応するステージの実行そのものを制御する制御論理とを有する制御回路を作成するパイプライン制御回路作成工程と、
データパスと前記制御回路からなるＲＴＬ記述を作成するＲＴＬ記述生成工程と、
を含み、
前記対応するステージの実行そのものを制御する制御論理は、
該ステージの最初のステップの実行を開始するか、開始せずに待つかを制御する論理であり、
該ステージの最初のステップの実行を開始するかどうかは、（イ）直前のステージまたはループの実行状況、および、（ロ）直後のステージまたはループの実行状況によって決定され、
直前のステージまたはループの実行状況による決定は、（イ−１）直前のステージが同じループに属している場合は、直前のステージの最後のステップが完了したか否かにより決定され、（イ−２）直前のステージが違うループに属している場合は、直前のステージが属するループの処理がすべて完了したかどうかにより決定され、
直後のステージまたはループの実行状況による決定は、（ロ−１）直後のステージが同じループに属している場合は、開始条件が常に成り立つものとし、(ロ−２)直後のステージが異なるループに属している場合には、該ステージの実行が開始されていないかどうか、もしくは、ループの実行が完了しているかどうかにより決定される
動作合成方法。
【請求項５】
コンピュータに、
前記動作記述に基づき、コントロール・データフローグラフを作成し、前記コントロール・データフローグラフ中の演算を実行するコントロールステップを決定し、前記コントロール・データフローグラフ中の演算を行う演算器とデータを格納するレジスタを決定するスケジューリング・バインディング工程と、
前記コントロールステップをステージにグループ化し、前記ステージに１対１に対応する制御回路であって、対応するステージ内のステップの実行を制御する制御論理と、対応するステージの実行そのものを制御する制御論理とを有する制御回路を作成するパイプライン制御回路作成工程と、
データパスと前記制御回路からなるＲＴＬ記述を作成するＲＴＬ記述生成工程と、
を実行させるためのプログラムであって、
前記対応するステージの実行そのものを制御する制御論理は、該ステージの直前のステージが同じループに属しているかどうか及び該ステージの直後のステージが同じループに属しているかどうかをもとに該ステージの最初のステップの実行を開始するか開始せずに待つかを制御する論理である
動作合成用プログラム。
【請求項６】
コンピュータに、
前記動作記述に基づき、コントロール・データフローグラフを作成し、前記コントロール・データフローグラフ中の演算を実行するコントロールステップを決定し、前記コントロール・データフローグラフ中の演算を行う演算器とデータを格納するレジスタを決定するスケジューリング・バインディング工程と、
前記コントロールステップをステージにグループ化し、前記ステージに１対１に対応する制御回路であって、対応するステージ内のステップの実行を制御する制御論理と、対応するステージの実行そのものを制御する制御論理とを有する制御回路を作成するパイプライン制御回路作成工程と、
データパスと前記制御回路からなるＲＴＬ記述を作成するＲＴＬ記述生成工程と、
を実行させるためのプログラムであって、
前記対応するステージの実行そのものを制御する制御論理は、
該ステージの最初のステップの実行を開始するか、開始せずに待つかを制御する論理であり、
該ステージの最初のステップの実行を開始するかどうかは、（イ）直前のステージまたはループの実行状況、および、（ロ）直後のステージまたはループの実行状況によって決定され、
直前のステージまたはループの実行状況による決定は、（イ−１）直前のステージが同じループに属している場合は、直前のステージの最後のステップが完了したか否かにより決定され、（イ−２）直前のステージが違うループに属している場合は、直前のステージが属するループの処理がすべて完了したかどうかにより決定され、
直後のステージまたはループの実行状況による決定は、（ロ−１）直後のステージが同じループに属している場合は、開始条件が常に成り立つものとし、(ロ−２)直後のステージが異なるループに属している場合には、該ステージの実行が開始されていないかどうか、もしくは、ループの実行が完了しているかどうかにより決定される
動作合成用プログラム。
【請求項７】
多重にネストしたループ処理を実行するための複数のステージから構成されるデータパスと該データパスを制御する複数の制御回路とから構成されたパイプライン回路であって、それぞれの前記制御回路は、前記ステージに１対１に対応し、対応するステージ内のステップの実行を制御する制御論理と、対応するステージの実行そのものを制御する制御論理とを有し、
前記対応するステージの実行そのものを制御する制御論理は、該ステージの直前のステージが同じループに属しているかどうか及び該ステージの直後のステージが同じループに属しているかどうかをもとに該ステージの最初のステップの実行を開始するか開始せずに待つかを制御する論理である
パイプライン回路。
【請求項８】
多重にネストしたループ処理を実行するための複数のステージから構成されるデータパスと該データパスを制御する複数の制御回路とから構成されたパイプライン回路であって、それぞれの前記制御回路は、前記ステージに１対１に対応し、対応するステージ内のステップの実行を制御する制御論理と、対応するステージの実行そのものを制御する制御論理とを有し、
前記対応するステージの実行そのものを制御する制御論理は、
該ステージの最初のステップの実行を開始するか、開始せずに待つかを制御する論理であり、
該ステージの最初のステップの実行を開始するかどうかは、（イ）直前のステージまたはループの実行状況、および、（ロ）直後のステージまたはループの実行状況によって決定され、
直前のステージまたはループの実行状況による決定は、（イ−１）直前のステージが同じループに属している場合は、直前のステージの最後のステップが完了したか否かにより決定され、（イ−２）直前のステージが違うループに属している場合は、直前のステージが属するループの処理がすべて完了したかどうかにより決定され、
直後のステージまたはループの実行状況による決定は、（ロ−１）直後のステージが同じループに属している場合は、開始条件が常に成り立つものとし、(ロ−２)直後のステージが異なるループに属している場合には、該ステージの実行が開始されていないかどうか、もしくは、ループの実行が完了しているかどうかにより決定される
動作合成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は動作合成システム、動作合成方法および動作合成用プログラムに関し、特に多重ループ処理を含む動作記述をパイプライン回路として合成できる動作合成システム、動作合成方法および動作合成用プログラムに関する。
【背景技術】
【０００２】
動作合成装置は、半導体回路の動作記述からレジスタトランスファーレベル（ＲＴＬ）記述を合成する、半導体回路設計装置であり、半導体回路設計の効率化ために近年広く利用されている。
【０００３】
動作合成装置においてループパイプライン技法は、半導体回路の性能を向上させる重要な技法であり、その実現方法が従来より提案されている。動作記述は、たとえばＣ言語、Ｃ＋＋言語、Ｊａｖａ（登録商標）言語などのソフトウェアプログラミング言語や、ＳｙｓｔｅｍＣやＳｐｅｃＣといったソフトウェアプログラム言語に半導体回路のために拡張を施した言語で記述される。このようなソフトウェアプログラム言語で記述された動作記述から高性能な半導体回路を合成するためには、記述中のループ処理を高速に実行することのできるアーキテクチャをもつ半導体回路を合成することが望まれる。なぜなら、記述中のループ処理の性能が、全体の処理性能に大きな影響を与えるためである。ループ処理を高速に実行することのできるアーキテクチャとして、パイプラインアーキテクチャがある。ループ処理をパイプラインアーキテクチャとして合成する技法のひとつがループパイプライン技法（もしくは、ループフォールディング技法、パイプライン技法とも呼ばれる）である。ループパイプライン技法は、ループの一回分の処理（以下、イタレーションと呼ぶ）が終了する以前に、次の一回分の処理（イタレーション）の実行を開始するような半導体回路を合成することにより、パイプラインアーキテクチャを実現する。特許文献１−８、非特許文献１−２などループパイプライン技法の実現方法が従来数々提案されている。
【０００４】
ループパイプライン技法の実現方法としては、種々のループ構造に対応可能であることが望ましく、特に、多重にネストしたループに適用可能であることが望ましいが、その効率的な実現方法は開示されていない。ソフトウェアプログラム言語で記述された動作記述には種々のループ構造が含まれる。特に、多重にネストしたループが含まれることが多々あるが、従来技術のほとんどが、多重にネストしたループにループパイプライン技法を適用できないという制限がある。
【０００５】
たとえば、特許文献６では、各パイプラインステージでの処理を制御する制御論理を生成することを特徴とするパイプラインプロセッサの自動設計方法を開示しているが、ネストしたループ構造を有する動作記述が与えられたときにどのような制御論理を作成すればネストしたループ構造に対してループパイプライン技法を適用できるかが開示されていない。
【０００６】
また、特許文献７ではループのイタレーションの間の依存関係の解析を行うためにコントロール・データフローグラフを複数回作成、解析する実現方法が開示されているが、多重にネストしたループにループパイプライン技法を適用する方法が開示されていない。
【０００７】
多重にネストしたループに適用可能な従来技術として特許文献８がある。しかしながら、多重にネストしたループにループパイプライン技法を適用するときにどのような制御回路を構成すればよいかを開示していない。たとえば、ネストした内側のループと外側のループでパイプラインピッチが異なるときにどのように制御回路を構成すれば、合成されたデータパスが正しく動作記述で指定された動作を達成するのかが開示されていない。
【０００８】
【特許文献１】特開平８−４４７７３号公報
【特許文献２】特開２００３−３０２６１号公報
【特許文献３】特開２００７−２７２７２７号公報
【特許文献４】特開２００７−２８７０４４号公報
【特許文献５】特開２００４−３２６４６３号公報
【特許文献６】特開平６−６０１４７号公報
【特許文献７】特開平０８−０４４７７３号公報
【特許文献８】特開２００６−３５０８４９号公報
【非特許文献１】John P. Elliott, 「Understanding Behavioral Synthesis」, Kluwer Academic Publishers, p26-40.
【非特許文献２】Cheng-Tsung Hwang他、「Scheduling for Functional Pipelining and Loop Winding」, 28th, ACM/IEEE Design Automation Conference, p764-769.
【発明の開示】
【発明が解決しようとする課題】
【０００９】
［発明の目的］
本発明の目的は、多重にネストしたループに適用可能なループパイプライン技法の効率的な実現方法を有する動作合成システムを提供することにある。
【課題を解決するための手段】
【００１０】
本発明の動作合成システムは、動作記述に基づき、コントロール・データフローグラフを作成し、前記コントロール・データフローグラフ中の演算を実行するコントロールステップを決定し、前記コントロール・データフローグラフ中の演算を行う演算器とデータを格納するレジスタを決定するスケジューリング・バインディング手段と、前記コントロールステップをステージにグループ化し、前記ステージに１対１に対応する制御回路であって、対応するステージ内のステップの実行を制御する制御論理と、対応するステージの実行そのものを制御する制御論理とを有する制御回路を生成するパイプライン制御回路作成手段と、データパスと前記制御回路からなるＲＴＬ記述を作成するＲＴＬ生成手段とを備える。
【発明の効果】
【００１１】
本発明の効果は、多重にネストしたループ処理を含む動作記述にループフォールディング技法を適用できることにある。
【００１２】
その理由は、ステップをステージにグループ化し、ステージに１対１に対応する制御回路であって、対応するステージ内のステップの実行を制御する制御論理と、対応するステージの実行そのものを制御する制御論理とを有する制御回路を作成するためである。
【発明を実施するための最良の形態】
【００１３】
［１］第１の実施の形態の構成の説明
次に、発明を実施するための最良の形態について図面を参照して詳細に説明する。
【００１４】
図１を参照すると、本発明の第１の実施の形態は、プログラム制御により動作する処理装置１００と、記憶装置１１０とから構成されている。
【００１５】
処理装置１００は、スケジューリング・バインディング手段１０１と、パイプライン制御回路作成手段１０２と、ＲＴＬ記述生成手段１０３とを含む。
【００１６】
記憶装置１１０は、動作記述記憶部１１１と、ＲＴＬ記述記憶部１１２とを含む。
【００１７】
これらの手段はそれぞれ概略つぎのように動作する。
【００１８】
スケジューリング・バインディング手段１０１は、動作記述を記憶装置１１０の動作記述記憶部１１１から読み出し、動作記述に基づき、コントロール・データフローグラフ（ＣＤＦＧ）を作成し、ＣＤＦＧ中の演算を実行するコントロールステップ（以下単にステップと表記する）を決定し（スケジューリング）、ＣＤＦＧ中の演算を行う演算器とデータを格納するレジスタを決定する（バインディング）。スケジューリング・バインディング手段１０１には、例えば非特許文献１にて開示される従来技術を使用することができる。
【００１９】
パイプライン制御回路作成手段１０２は、スケジューリング・バインディング手段１０１にて決定されたステップをもとに、ステップを実行するステージを決定し、ステージ内のステップの実行を制御する制御論理とステージの実行そのものを制御する制御論理とを有する複数の制御回路を作成する。
【００２０】
ＲＴＬ記述生成手段１０３は、スケジューリング・バインディング手段１０１にて決定された演算器とレジスタからデータパスを作成し、パイプライン制御回路作成手段１０２にて作成された制御回路とともに、ＲＴＬ記述を作成し、記憶装置１１０のＲＴＬ記述記憶部１１２に格納する。
【００２１】
［２］第１の実施の形態の動作の説明
次に、図１及び図２のフローチャートを参照して本実施の形態の全体の動作について詳細に説明する。
【００２２】
まず、スケジューリング・バインディング手段１０１は、動作記述を記憶装置１１０の動作記述記憶部１１１から読み出し、動作記述に基づき、コントロール・データフローグラフ（ＣＤＦＧ）を作成し、ＣＤＦＧ中の演算を実行するステップを決定し（スケジューリング）、ＣＤＦＧ中の演算を行う演算器とデータを格納するレジスタを決定する（バインディング）（図２のステップＡ１）。このとき、スケジューリングでは、異なるループに属する演算は異なるステップに割り当てることが望ましい。
【００２３】
次に、パイプライン制御回路作成手段１０２は、スケジューリングにて決定されたステップをステージに割り当てる（ステップＡ２）。ここでのステージとは、単一または連続して実行される複数のステップをグループ化したものである。ひとつのグループに含まれるステップの数はあらかじめ与えられたイニシエーションインターバルのクロック数と同じか、それ以下とする。ループパイプライン技法が適用されたループ処理では、ひとつのイタレーションが最後まで終了する前に次のイタレーションを開始するように動作する。このとき、ひとつのイタレーションの開始から次のイタレーションの開始までの時間（クロック数）を、イニシエーションインターバルと呼ぶ。ひとつのステップに着目すると、一つ目のイタレーションのための実行を行ってから、イニシエーションインターバルの時間（クロック数）が経過するまでは、実行されないという性質がある。連続して実行される複数のステップを、イニシエーションインターバルのクロック数ごとにグループ化すると、１イタレーションは１イニシエーションインターバルごとにひとつずつステージを移動する。このとき、異なるステージに属する演算は同じ演算器を共有しないようにバインディングの際にあらかじめ考慮することが望ましい。さらには、異なるステージ間でレジスタを共有しないようにバインディングの際にあらかじめ考慮することが望ましい。
【００２４】
次に、パイプライン制御回路作成手段１０２は、ステージごとに、そのステージに属するステップの実行を制御する制御論理を作成する（ステップＡ３）。当該制御論理は、たとえば、有限状態機械（ＦＳＭ）で構成される。当該制御論理は、ステージごとに作成され、該ステージに属するステップを順に実行するように構成される。
【００２５】
次に、パイプライン制御回路作成手段１０２は、ステージごとに、そのステージの実行そのものを制御する制御論理を作成する(ステップＡ４)。当該制御論理では、各ステージにおいて、ステージの最初のステップの実行を開始するか、開始せずに待つかを制御するように構成される。
【００２６】
あるステージの開始条件の一つ(イ)は、直前のステージまたはループの実行状況（終了状況）によって決定される。また、該開始条件の別の一つ(ロ)は、直後のステージまたはループの実行状況によって決定される。(イ)、(ロ)の両方の開始条件が満たされるときに実行を開始するように制御論理を構成する。
【００２７】
直前のステージまたはループの実行状況（終了状況）によって決定される開始条件(イ)は以下の（イ−１）、(イ−２)に基づき決定される。（イ−１）直前のステージが同じループに属している場合は、直前のステージの最後のステップが完了したときに成り立つものとする。（イ−２）直前のステージが違うループに属している場合は、直前のステージが属するループの処理がすべて完了した次のクロックサイクルとする。
【００２８】
直後のステージまたはループの実行状況（終了状況）によって決定される開始条件(ロ)は以下の(ロ−１)、(ロ−２)に基づき決定される。（ロ−１）直後のステージが同じループに属している場合は、開始条件は常に成り立つものとする。(ロ−２)直後のステージが異なるループに属している場合には、該ステージの実行が開始されていないか、もしくは、ループの実行が完了しているときに成り立つものとする。
【００２９】
最後に、スケジューリング・バインディング手段１０１にて決定された演算器とレジスタからデータパスを作成し、パイプライン制御回路作成手段１０２にて各ステージごとに作成された制御論理（ステージ内のステップの実行を制御する制御論理とステージの実行そのものを制御する制御論理）を持つ制御回路を生成し、これらのデータパスおよび制御回路を表現するＲＴＬ記述を作成し、記憶装置１１０のＲＴＬ記述記憶部１１２に格納する(ステップＡ５)。
【００３０】
次に、本実施の形態の効果について説明する。
【００３１】
本実施の形態では、ステップをステージにグループ化し、ステージ内のステップの実行を制御する制御論理とステージの実行そのものを制御する制御論理とを有する制御回路を生成するように構成されているため、多重にネストしたループ処理を含む動作記述にループフォールディング技法を適用できる。
【００３２】
［３］第２の実施の形態の動作の説明
次に、本発明の第２の実施の形態について図面を参照して詳細に説明する。
【００３３】
本発明の第２の実施の形態は、パイプライン制御回路作成手段１０２が、ステージの実行開始を制御する制御論理を作成するステップＡ４において、前のステージの動作が完了していても（条件イ−１が成り立っていても）、continue文を実行しているときは、そのステージを実行しないように制御論理を作成する点で異なる。
【００３４】
次に、本実施の形態の効果について説明する。
【００３５】
本実施の形態では、ステージの実行開始を制御する制御論理を、continue文の実行を考慮して作成するように構成されているため、その処理中にcontinue文があるような複雑なループ処理に対してループパイプライン技法を適用できる。
【００３６】
［４］第３の実施の形態の動作の説明
次に、本発明の第３の実施の形態について図面を参照して詳細に説明する。
【００３７】
本発明の第３の実施の形態は、パイプライン制御回路作成手段１０２が、ステージの実行開始を制御する制御論理を作成するステップＡ４において、あるステージより後のステージにてbreak文が実行されたときには、そのステージにおけるステップの実行を即座に終了するように制御論理を作成する点で異なる。ここで、あるステージより後のステージとは、ループパイプライン技法を適用しないときに、より後に実行されるステップを含むステージのことを言う。
【００３８】
次に、本実施の形態の効果について説明する。
【００３９】
本実施の形態では、ステージの実行開始を制御する制御論理を、break文の実行を考慮して作成するように構成されているため、その処理中にbreak文があるような複雑なループ処理に対してループパイプライン技法を適用できる。
【実施例】
【００４０】
［５］第１の実施の形態に対応する実施例
次に、具体的な実施例を用いて本発明を実施するための最良の形態の動作を説明する。
【００４１】
図３を参照すると、動作記述が例示されている。当該動作記述は、ＳｙｓｔｅｍＣ言語を用いて表記されているが、本発明の説明に関連ない部分は一部省略されている。
【００４２】
図３の動作記述には３つのループ処理が記述されている。一つ目は４行目から１６行目に渡るループ処理Ｌ１、２つ目は、７行目から９行目にわたるループ処理Ｌ２、３つ目は、１１行目から１３行目にわたるループ処理Ｌ３。ループ処理Ｌ２，Ｌ３はどちらもループ処理Ｌ１に完全に包含されているネストしたループ処理となっている。
【００４３】
図３の動作記述を順にみていくと、５行目にて変数vを０で初期化している。７行目から９行目のループ処理Ｌ２で、配列ary1[]の０番地から３番地までの各要素を変数vに足しこんでいる。１１行目から１３行目までのループ処理Ｌ３で、配列ary2[]の０番地から３番地までの各要素を変数vに足しこんでいる。最後に１４行目にて変数vの値を出力変数out0へ書き込んでいる。
【００４４】
図３の３つのループ処理のうち、すべてのループに対して、イニシエーションインターバルを１としてループパイプライン技法を適用する指示がプラグマとして記載されている（３行目、６行目、および、１０行目）。
【００４５】
図３の動作記述はあらかじめ記憶装置１１０の動作記述記憶部１１１に格納されている。
【００４６】
スケジューリング・バインディング手段１０１は、記憶装置１１０の動作記述記憶部１１１から図３の動作記述を読み出し、ＣＤＦＧを作成し、スケジューリングを行い、バインディングを行う（図２のステップＡ１）。
【００４７】
図４−１、図４−２、図４−３、図４−４、図４−５は、図３に対してスケジューリング・バインディング手段を適用した後の各ステップでの処理をあらわす図である。
【００４８】
図４−１を参照すると、ステップ１に割り当てられた処理が図示されている。図４−１の４０１の矩形内部にステップ１の処理が図示されている。図４−１の４１２は変数vに対応した記憶素子v_3をあらわしている。また、４１３は変数iに対応した記憶素子i_2をあらわしている。ステップ１の処理は、記憶素子v_3およびi_2を定数０で初期化することをあらわしており、図３の動作記述の５行目と、７行目のfor()文の初期設定部に対応する。さらに、ステップ２がステップ１に引き続き実行されることを表している。
【００４９】
図４−２を参照すると、ステップ２、および、ステップ３に割り当てられた処理が図示されている。ステップ２、３では、図３の動作記述のループ処理Ｌ２が実行されている。図４−１乃至図４−５では、同じ記憶素子には同じ番号を使用している。
【００５０】
図４−２の矩形４０４の中に、ループ処理Ｌ２を行うステップ２、ステップ３の処理が図示されている。矩形４０２の中にステップ２の処理が、矩形４０３の中にステップ３の処理が図示されている。ステップ２では、記憶素子i_2（図４−２の４１３）の値と定数４を比較し、i_2の値のほうが小さいときにi_2の値をインクリメントし、再度記憶素子i_2に格納し、同時に、記憶素子（同期メモリ）ary1[]（図４−２の４１４）のアドレスにi_2の値を供給している。さらに、i_2の値のほうが小さいときには、ステップ３が、そうでないときにはステップ４がステップ２に引き続いて実行されることを表している。
【００５１】
ステップ３では、記憶素子（同期メモリ）ary1[]のデータ端子から値を読み出し、記憶素子v_3の値に足し合わせて、再度記憶素子v_3に格納している。さらに、ステップ２がステップ３に引き続いて実行されることを表している。
【００５２】
図４−３を参照すると、ステップ４に割り当てられた処理が図示されている。ステップ４では、図３の動作記述のループ処理Ｌ３の初期設定部が実行されている。
【００５３】
図４−３の矩形４０５の中に、ステップ４の処理が図示されている。ステップ４では、記憶素子v_3の値を読み出し、記憶素子v_6に格納するとともに、記憶素子j_5を０に初期化している。さらに、ステップ５がステップ４に引き続いて実行されることを表している。
【００５４】
図４−４を参照すると、ステップ５、および、ステップ６に割り当てられた処理が図示されている。ステップ５、６では、図３の動作記述のループ処理Ｌ３が実行されている。
【００５５】
図４−４の矩形４０８の中に、ループ処理Ｌ３を行うステップ５、ステップ６の処理が図示されている。矩形４０６の中にステップ５の処理が、矩形４０７の中にステップ６の処理が図示されている。ステップ５では、記憶素子j_5（図４−４の４１６）の値と定数４を比較し、j_5の値のほうが小さいときにj_5の値をインクリメントし、再度記憶素子j_2に格納する。同時に、記憶素子（同期メモリ）ary2[]（図４−４の４１７）のアドレスにj_5の値を供給している。さらに、j_5の値のほうが小さいときには、ステップ６が、そうでないときにはステップ７がステップ４に引き続いて実行されることを表している。
【００５６】
ステップ６では、記憶素子（同期メモリ）ary2[]のデータ端子から値を読み出し、記憶素子v_6の値に足し合わせて、再度記憶素子v_6に格納している。さらに、ステップ５がステップ６に引き続いて実行されることを表している。
【００５７】
図４−５を参照すると、ステップ７に割り当てられた処理が図示されている。ステップ７では、図３の動作記述の１４行目の処理が実行されている。
【００５８】
図４−５の矩形４０９の中に、ステップ７の処理が図示されている。ステップ７では、記憶素子v_6の値を読み出し、出力端子out0に出力する。
【００５９】
図４−１乃至図４−５の各ステップを順に実行することにより、図３の動作記述の処理を実現している。ステップ１がループＬ１に、ステップ２、ステップ３がループＬ１およびＬ２に、ステップ４がループＬ１に、ステップ５，６がループＬ１およびＬ３に、ステップ７がループＬ１にそれぞれ属している。すなわち、すべてのステップがループＬ１に属している。ステップ２，３はループＬ１に属しているのと同時にループＬ２に属しており、ステップ５，６がループＬ１に属しているのと同時にループＬ３にも属している。
【００６０】
ループ処理Ｌ２において、ステップ３の完了を待たずにステップ２の実行を開始することで、ループ処理Ｌ２をループパイプラインとして実現できる。ループ処理Ｌ３において、ステップ６の処理の完了を待たずにステップ５の実行を開始することでループ処理Ｌ３をループパイプラインとして実現できる。さらには、ループ処理Ｌ１において、ステップ７の完了を待たずにステップ１の処理を開始することでループ処理Ｌ１をループパイプラインとして実現できる。
【００６１】
各ループ処理はイニシエーションインターバル１にてループパイプライン技法を適用するため、各ステージに含まれるステップの数は１つである。そのため、パイプライン制御回路作成手段１０２では、まず、各ステップをひとつのステージとしてグループ化する（図２のステップＡ２）。ステージ１ではステップ１を、ステージ２ではステップ２を、同様に、ステージ７でステップ７を実行するようにグループ化する。
【００６２】
その結果、すべてのステージがループＬ１に属している。ステージ２，３はループＬ１に属しているのと同時にループＬ２に属しており、ステージ５，６がループＬ１に属しているのと同時にループＬ３にも属している。これにより、前後のステージのループの帰属関係を考えると、ステージ２，３が同じループに属していることとなる。また、ステージ５，６が同じループに属していることとなる。これ以外のステージはそれぞれ別のループに属していることとなる。
【００６３】
図５−１乃至図５−２を参照すると、パイプライン制御回路作成手段１０２によって作成されたステージ内のステップの実行を制御する制御論理が例示されている。
【００６４】
図５−１の矩形５０１の中に、ステージ１の制御論理が有限状態機械（ＦＳＭ）として表現されている。ステージ１のＦＳＭには、ひとつの状態５１１と２つの遷移５２１、５２２が備えられている。遷移５２１が実行されるときステップ１が実行され、遷移５２２が実行されるときは何もしない。遷移５２１，５２２の実行条件は、まだ指定されていない。同様に矩形５０２から矩形５０７の中に、各ステージの制御論理がＦＳＭとして表現されている。各ＦＳＭは、実行するステップが異なるのみで、その他はステージ１のＦＳＭと同様である。
【００６５】
図６−１乃至図６−２を参照すると、パイプライン制御回路作成手段１０２によって作成された、ステージの実行そのものを制御する制御論理が例示されている。
【００６６】
図６−１を参照すると、ステージ１（矩形５０１）とステージ２（矩形５０２）の間に、ループＬ２の終了を通知する信号６０１とステージ１の終了を通知する信号６０２が図示されている。
【００６７】
ステージ１には直前のステージが存在しないので、ステージの最初のステップの実行を制御する遷移５２１の実行条件は、ステージ１の直後のステージ、もしくは、直後のステージが属するループの実行状況（終了状況）によってのみ決定される。ステージ１の直後のステージ２は、ステージ１とは別のループ処理Ｌ２に属しているため、ステージ１の遷移５２１の遷移条件は、ループＬ２の実行が開始されていないこと、もしくは、ループＬ２のすべてのステージの実行がすべて完了していることとなる。遷移５２１が実行されない間は遷移５２２が実行される。
【００６８】
ステージ１にて遷移５２１が実行される、すなわち、ステップ１が実行されるとき、ステージ１の終了を信号６０２にてステージ２に通知する。
【００６９】
図６−１を参照すると、ステージ２（矩形５０２）とステージ３(矩形５０３)との間に、ステージ２の終了を通知する信号６０３が、ステージ２とステージ４（矩形５０４）との間に、ループＬ２の終了を通知する信号６０４とステージ４の終了を通知する信号６０５が図示されている。
【００７０】
ステージ２の開始条件の一つは直前のステージ１の実行状況（終了状況）によって決定される。また、開始条件の別の一つは、もうひとつの直後のステージ４の実行状況（終了状況）によって決定される。
【００７１】
ステージ２の最初の開始条件は、ステージ１からその終了を信号６０２にて通知されたときに成立する。また、ステージ２の２番目の開始条件は、ステージ４がまだ実行されていないか、もしくは、ステージ４よりその終了を通知されたときに成立する。
【００７２】
すべての開始条件が成り立つとき、ステージ２では遷移５２３が実行され、すなわち、ステップ２が実行される。遷移５２３が実行されない間は遷移５２４が実行される。ステージ２にて、遷移５２３が実行されるとき、ステージ２からステージ３にステージ２の処理の終了を信号６０２にて通知する。
【００７３】
ステージ３の開始条件は、直前のステージ２の実行状況（終了状況）によって決定される。すなわち、ステージ２からそのステージの実行が終了したことを信号６０３にて通知されたときに成立する。ステージ３の開始条件が成り立つとき、ステージ３では遷移５２５が実行され、すなわち、ステップ３が実行される。遷移５２５が実行されない間は遷移５２６が実行される。
【００７４】
同様に、ステージ４，５，６，７の実行条件が前後のステージの実行状況にて決定され、それぞれに属するステップの実行が制御される。
【００７５】
図１５を参照すると、合成されたＲＴＬが例示されている。図１５のＲＴＬは、ＦＳＭ１５０１乃至ＦＳＭ１５０７の７つのＦＳＭをもつ。各ＦＳＭがそれぞれステージ１乃至ステージ７のＦＳＭに対応している。図１５のＲＴＬには、さらにレジスタi_2,v_3,j_5,v_6を備えている。それぞれ図４−１乃至４−５のレジスタ４１３、４１２、４１６、４１５に対応している。図１５のＲＴＬには、さらに加算器１５２０、比較器１５２１、加算器１５２２、加算器１５２３、比較器１５２４、加算器１５２５を備えている。それぞれ図４−１乃至４−５のステップ２の加算器、比較器、ステップ３の加算器、ステージ５の加算器、比較器、ステップ６の加算器に対応している。図１５のＲＴＬには、さらにメモリary1[]１５２６、メモリary2[]１５２７を備えている。それぞれ、図４−１乃至４−５の４１４、４１７に対応している。
【００７６】
図１５のＲＴＬには、マルチプレクサ（ＭＵＸ）１５１０，１５１１，１５１２，１５１３を備えており、ＦＳＭ１５０１乃至１５０７にて制御されている。
【００７７】
ステージ１の動作はＦＳＭ１５０１によって制御される。ＦＳＭ１５０１は、最初のクロック、および、ステージ２と３からなるループ処理Ｌ２の実行完了をＦＳＭ１５０２からの制御信号にて伝えられたときにステージ１の実行を開始する。ＦＳＭ１５０１はステージ１のステップ１を実行するとき、ＭＵＸ１５１０および１５１２に制御信号を与え、レジスタi_2およびv_3にそれぞれ０を代入するように動作する。さらにＦＳＭ１５０２にステージ１の実行が完了したことを制御信号にて伝える。
【００７８】
ステージ２の動作はＦＳＭ１５０２によって制御される。ＦＳＭ１５０２は、ステージ１および４の実行完了をそれぞれＦＳＭ１５０１および１５０４からの制御信号にて伝えられたときにステージ２の実行を開始する。ＦＳＭ１５０２はステージ２のステップ２を実行するとき、ＭＵＸ１５１０とメモリary1[]を制御する。まず、比較器１５２１がレジスタi_2の保持する値と定数4を比較する。レジスタi_2の値が定数4より小さいときに、ＦＳＭ１５０２は、加算器１５２０の出力であるレジスタi_2の値と定数１の和をレジスタi_2に格納するようにＭＵＸ１５１０に制御信号を与える。さらに、メモリary1[]からi_2番地の値を読み出すようにメモリary1[]に制御信号を与える。加えてＦＳＭ１５０３にステージ２の実行が完了したことを制御信号にて伝える。ＦＳＭ１５０２は、ステージ２の実行をレジスタi_2の値が定数4以上になるまで繰り返す。レジスタi_2の値が定数4以上のときは、ＦＳＭ１５０３からステージ３の実行が完了したことの制御信号を待ち、ステージ３の実行が完了したとき、ＦＳＭ１５０１およびＦＳＭ１５０４にステージ２と３からなるループの実行が完了したことを制御信号にて通知する。
【００７９】
ステージ３の動作はＦＳＭ１５０３によって制御される。ＦＳＭ１５０３は、ステージ２の実行完了をＦＳＭ１５０２からの制御信号にて伝えられたときにステージ３の実行を開始する。ＦＳＭ１５０３はステージ３のステップ３を実行するとき、ＭＵＸ１５１１を制御する。ＦＳＭ１５０３はステップ３を実行するとき、加算器１５２２の結果であるレジスタv_3の値とメモリary1[]の出力値を再びレジスタv_3に格納するようＭＵＸ１５１１に制御信号を与える。さらに、ＦＳＭ１５０２にステージ３の実行が完了したことを制御信号にて伝える。
【００８０】
ステージ４の動作はＦＳＭ１５０４によって制御される。ＦＳＭ１５０４は、ステージ２と３からなるループ処理Ｌ２の実行完了をＦＳＭ１５０２からの制御信号にて伝えられたとき、かつ、ステージ５と６からなるループ処理Ｌ３の実行が行われていないことをＦＳＭ１５０５からの制御信号にて伝えられたときにステージ４の実行を開始する。ＦＳＭ１５０４はステージ４のステップ４を実行するとき、ＭＵＸ１５１２とＭＵＸ１５１３に制御信号を与え、レジスタj_5に０を格納し、レジスタv_6にレジスタv_3の値を格納するように動作する。さらに、ＦＳＭ１５０５にステージ４の実行が完了したことを制御信号にて伝える。
【００８１】
ステージ５の動作はＦＳＭ１５０５によって制御される。ＦＳＭ１５０５は、ステージ４および７の実行完了をそれぞれＦＳＭ１５０４および１５０７からの制御信号にて伝えられたときにステージ５の実行を開始する。ＦＳＭ１５０５はステージ５のステップ５を実行するとき、ＭＵＸ１５１２とメモリary2[]を制御する。まず、比較器１５２４がレジスタj_5の保持する値と定数4を比較する。レジスタj_5の値が定数4より小さいときに、ＦＳＭ１５０５は、加算器１５２３の出力であるレジスタj_5の値と定数１の和をレジスタj_5に格納するようにＭＵＸ１５１２に制御信号を与える。さらに、メモリary2[]からj_5番地の値を読み出すようにメモリary2[]に制御信号を与える。加えて、ＦＳＭ１５０６にステージ５の実行が完了したことを制御信号にて伝える。ＦＳＭ１５０５は、ステージ５の実行をレジスタj_5の値が定数4以上になるまで繰り返す。レジスタj_5の値が定数4以上のときは、ＦＳＭ１５０６からステージ６の実行が完了したことの制御信号を待ち、ステージ６の実行が完了したとき、ＦＳＭ１５０４およびＦＳＭ１５０７にステージ５と６からなるループの実行が完了したことを制御信号にて通知する。
【００８２】
ステージ６の動作はＦＳＭ１５０６によって制御される。ＦＳＭ１５０６は、ステージ５の実行完了をＦＳＭ１５０５からの制御信号にて伝えられたときにステージ６の実行を開始する。ＦＳＭ１５０６はステージ６のステップ６を実行するときＭＵＸ１５１３を制御する。ＦＳＭ１５０６はステップ６を実行するとき、加算器１５２５の結果であるレジスタv_6とメモリary1[]の出力値を再びレジスタv_6に格納するようＭＵＸ１５１３に制御信号を与える。さらに、ＦＳＭ１５０５にステージ６の実行が完了したことを制御信号にて伝える。
【００８３】
ステージ７の動作はＦＳＭ１５０７によって制御される。ＦＳＭ１５０７は、ステージ５と６からなるループ処理Ｌ３の実行完了をＦＳＭ１５０５からの制御信号にて伝えられたときにステージ７の実行を開始する。ＦＳＭ１５０７はステージ７のステップ７を実行するとき、ＭＵＸ１５１４に制御信号を与え、レジスタv_6の値を出力端子out0に出力する。さらにＦＳＭ１５０５にステージ７の実行が終了したことを制御信号にて伝える。
【００８４】
このように、ステージ内のステップの実行を制御する制御論理を構成し、さらに、ステージ間の実行を制御する制御論理を構成することにより、ループパイプライン技法を適用できる。すなわち、ループ処理Ｌ１において、ステージ１は、前のイタレーションのステップ７の完了を待つことなく次のイタレーションの処理を開始できる。また、ループ処理Ｌ２において、ステージ２は、前のイタレーションのステップ３の完了を待つことなく次のイタレーションの処理を開始できる。同様に、ループ処理Ｌ３において、ステージ５は、前のイタレーションのステップ６の完了を待つことなく次のイタレーションの処理を開始できる。
【００８５】
［６］第２の実施の形態に対応する実施例
次に第２の実施例を、図面を参照して説明する。かかる実施例は、第２の実施の形態に対応するものである。
【００８６】
図７を参照すると、動作記述が例示されている。当該動作記述は、ＳｙｓｔｅｍＣ言語を用いて表記されているが、本発明の説明に関連ない部分は一部省略されている。
【００８７】
図７の動作記述は、図３の動作記述のループ処理Ｌ２に似ているが、ループ処理Ｌ４の４行目にcontinue文が記述されている点で第１の実施例と異なる。
【００８８】
図７の動作記述は、あらかじめ記憶装置１１０の動作記述記憶部１１１に格納されている。
【００８９】
スケジューリング・バインディング手段１０１は、記憶装置１１０の動作記述記憶部１１１から図７の動作記述を読み出し、ＣＤＦＧを作成し、スケジューリングを行い、バインディングを行う(図２のステップＡ１)。
【００９０】
図８は、図７に対してスケジューリング・バインディング手段を適用した後の各ステップでの処理を表す図である。
【００９１】
図８の矩形８０１で囲まれているのがステップ１での処理、矩形８０２で囲まれているのがステップ２の処理であり、同様に、矩形８０５で囲まれているのがステップ５での処理である。図８の各ステップの処理は、図４−２に例示されたループ処理Ｌ２の各ステップでの処理に似ているが、ステップ３にてcontinue文の処理が行われている点が異なる。すなわち、配列ary1[]から読み出し、記憶素子u_2（動作記述における変数uに対応する）に格納した値と、定数0とを比較し、u_2の値が小さいときにはステップ４を実行せずにステップ１に戻るものである。別の見方をするとステップ３にて実行されたイタレーションでは、ステップ４は実行されないことになる。
【００９２】
ループＬ４はイニシエーションインターバル１にてループパイプライン技法を適用するため、各ステージに含まれるステップの数は１つである。そのため、パイプライン制御回路作成手段１０２では、まず、各ステップをひとつのステージとしてグループ化する（図２のステップＡ２）。ステージ１ではステップ１を、ステージ２ではステップ２を、同様に、ステージ５でステップ５を実行するようにグループ化する。
【００９３】
図９を参照すると、パイプライン制御回路作成手段１０２によって作成されたステージ内のステップの実行を制御する制御論理が例示されている。
【００９４】
たとえば、図９の矩形９０１の中に、ステージ１の制御論理が有限状態機械（ＦＳＭ）として表現されている。詳細は、図５−１乃至図５−２に例示されている有限状態機械と同様である。
【００９５】
図１０を参照すると、パイプライン制御回路作成手段１０２によって作成された、ステージの実行そのものを制御する制御論理が例示されている。
【００９６】
図１０を参照すると、ステージ３（矩形９０３）とステージ４（矩形９０４）との間に、ステージ３の終了を通知する信号１００１とステージ３にてcontinue文が実行されたことを通知する信号１００２が図示されている。
【００９７】
ステージ４の直前のステージ３にcontinue文が存在するため、ステージ４はステージ３が終了したことを信号１００１にて通知されていてもステージ３にてcontinue文が実行されたことを信号１００２にて通知された場合には、ステージ４にてステップ４の実行を行わない。すなわち、ステージ３のステップ３にて実行されたイタレーションに対応するステップ４の実行を行わないことになり、continue文の動作を実現していることになる。
【００９８】
［７］第３の実施の形態に対応する実施例
次に第３の実施例を、図面を参照して説明する。かかる実施例は、第３の実施の形態に対応するものである。
【００９９】
図１１を参照すると、動作記述が例示されている。当該動作記述は、ＳｙｓｔｅｍＣ言語を用いて表記されているが、本発明の説明に関連ない部分は一部省略されている。
【０１００】
図１１の動作記述は、図７の動作記述のループ処理Ｌ４に似ているが、ループ処理Ｌ５の４行目にbreak文が記述されている点で第１の実施例と異なる。
【０１０１】
図１１の動作記述は、あらかじめ記憶装置１１０の動作記述記憶部１１１に格納されている。
【０１０２】
スケジューリング・バインディング手段１０１は、記憶装置１１０の動作記述記憶部１１１から図１１の動作記述を読み出し、ＣＤＦＧを作成し、スケジューリングを行い、バインディングを行う(図２のステップＡ１)。
【０１０３】
図１２は、図１１に対してスケジューリング・バインディング手段を適用した後の各ステップでの処理を表す図である。
【０１０４】
図１２の矩形１２０１で囲まれているのがステップ１での処理、矩形１２０２で囲まれているのがステップ２の処理であり、同様に、矩形１２０５で囲まれているのがステップ５での処理である。図１２の各ステップの処理は、図８に例示されたループ処理Ｌ４の各ステップでの処理に似ているが、ステップ３にてbreak文の処理が行われている点が異なる。すなわち、配列ary1[]から読み出し、記憶素子u_2（動作記述における変数uに対応する）に格納した値と、定数0とを比較し、u_2の値が小さいときにはループ処理を中断し、ステップ５を実行する。
【０１０５】
ループＬ５はイニシエーションインターバル１にてループパイプライン技法を適用するため、各ステージに含まれるステップの数は１つである。そのため、パイプライン制御回路作成手段１０２では、まず、各ステップをひとつのステージとしてグループ化する（図２のステップＡ２）。ステージ１ではステップ１を、ステージ２ではステップ２を、同様に、ステージ５でステップ５を実行するようにグループ化する。
【０１０６】
図１３を参照すると、パイプライン制御回路作成手段１０２によって作成されたステージ内のステップの実行を制御する制御論理が例示されている。
【０１０７】
たとえば、図１３の矩形９０１の中に、ステージ１の制御論理が有限状態機械（ＦＳＭ）として表現されている。詳細は、図９に例示されている有限状態機械と同様である。
【０１０８】
図１４を参照すると、パイプライン制御回路作成手段１０２によって作成された、ステージの実行そのものを制御する制御論理が例示されている。
【０１０９】
図１４を参照すると、ステージ３（矩形１３０３）と、ステージ２（矩形１３０２）およびステージ１（矩形１３０１）との間に、ステージ３でbreak文が実行されたことを通知する信号１４０１、１４０２が図示されている。
【０１１０】
パイプライン制御回路作成手段１０２によって作成されたステージの実行そのものを制御する制御論理によって、ステージ２、及び、ステージ１は、ステージ３にてbreak文が実行されたことを信号１４０１、１４０２にて通知されると、該ステージの実行を中止する。
【０１１１】
ループ処理にループパイプライン技法を適用した場合、一つのイタレーションの完了を待たずに次のイタレーションの実行を開始する。そのため、ステージ３にてbreak文が実行されたときに、ステージ１，２を実行中のイタレーションは本来（ループパイプライン技法を適用しなければ）実行されないイタレーションである。パイプライン制御回路作成手段１０２によって作成された制御回路によって該ステージの実行を中止することによりbreak文の動作を実現している。
【産業上の利用可能性】
【０１１２】
本発明によれば、半導体回路の動作記述からＲＴＬ記述を合成する動作合成装置や、動作合成装置をコンピュータに実現するためのプログラムといった用途に適用できる。
【図面の簡単な説明】
【０１１３】
【図１】本発明の第１の実施の形態の構成を示すブロック図である。
【図２】本発明の第１の実施の形態の動作を示す流れ図である。
【図３】本発明の第１の実施の形態の実施例における動作記述の具体例を示す図である。
【図４−１】本発明の第１の実施の形態の実施例におけるスケジューリング・バインディング手段の動作の具体例を表す図である。
【図４−２】本発明の第１の実施の形態の実施例におけるスケジューリング・バインディング手段の動作の具体例を表す図である。
【図４−３】本発明の第１の実施の形態の実施例におけるスケジューリング・バインディング手段の動作の具体例を表す図である。
【図４−４】本発明の第１の実施の形態の実施例におけるスケジューリング・バインディング手段の動作の具体例を表す図である。
【図４−５】本発明の第１の実施の形態の実施例におけるスケジューリング・バインディング手段の動作の具体例を表す図である。
【図５−１】本発明の第１の実施の形態の実施例におけるパイプライン制御回路作成手段が作成するステージ内のステップの実行を制御する制御論理を表す図である。
【図５−２】本発明の第１の実施の形態の実施例におけるパイプライン制御回路作成手段が作成するステージ内のステップの実行を制御する制御論理を表す図である。
【図６−１】本発明の第１の実施の形態の実施例におけるパイプライン制御回路作成手段が作成するステージの実行そのものを制御する制御論理を表す図である。
【図６−２】本発明の第１の実施の形態の実施例におけるパイプライン制御回路作成手段が作成するステージの実行そのものを制御する制御論理を表す図である。
【図７】本発明の第２の実施の形態における動作記述の具体例を示す図である。
【図８】本発明の第２の実施の形態の実施例におけるスケジューリング・バインディング手段の動作の具体例を表す図である。
【図９】本発明の第２の実施の形態の実施例におけるパイプライン制御回路作成手段が作成するステージ内のステップの実行を制御する制御論理を表す図である。
【図１０】本発明の第２の実施の形態の実施例におけるパイプライン制御回路作成手段が作成するステージの実行そのものを制御する制御論理を表す図である。
【図１１】本発明の第３の実施の形態における動作記述の具体例を示す図である。
【図１２】本発明の第３の実施の形態の実施例におけるスケジューリング・バインディング手段の動作の具体例を表す図である。
【図１３】本発明の第３の実施の形態の実施例におけるパイプライン制御回路作成手段が作成するステージ内のステップの実行を制御する制御論理を表す図である。
【図１４】本発明の第３の実施の形態の実施例におけるパイプライン制御回路作成手段が作成するステージの実行そのものを制御する制御論理を表す図である。
【図１５】本発明の第１の実施の形態におけるＲＴＬ記述の具体例を表す図である。
【符号の説明】
【０１１４】
１００…処理装置
１０１…スケジューリング・バインディング手段
１０２…パイプライン制御回路作成手段
１０３…ＲＴＬ記述生成手段
１１０…記憶装置
１１１…動作記述記憶部
１１２…ＲＴＬ記述記憶部
【図１】
0005110525.tif 000002
【図２】
0005110525.tif 000003
【図３】
0005110525.tif 000004
【図４−１】
0005110525.tif 000005
【図４−２】
0005110525.tif 000006
【図４−３】
0005110525.tif 000007
【図４−４】
0005110525.tif 000008
【図４−５】
0005110525.tif 000009
【図５−１】
0005110525.tif 000010
【図５−２】
0005110525.tif 000011
【図６−１】
0005110525.tif 000012
【図６−２】
0005110525.tif 000013
【図７】
0005110525.tif 000014
【図８】
0005110525.tif 000015
【図９】
0005110525.tif 000016
【図１０】
0005110525.tif 000017
【図１１】
0005110525.tif 000018
【図１２】
0005110525.tif 000019
【図１３】
0005110525.tif 000020
【図１４】
0005110525.tif 000021
【図１５】
0005110525.tif 000022