(57)【要約】      （修正有）【課題】モジュールの最適化と遅延調整を行うことが可能な高位合成装置、及び高位合成方法を提供する。【解決手段】処理動作の記述からＲＴＬに変換するための処理を行う動作合成部７０１と、動作合成処理される際にを抽出したレイテンシ情報を管理するレイテンシ情報抽出部７０２と、回路を構成する全てのパスのデータの流れ全てを指定するパス指定部７０３と、レイテンシ調整するためのパスへの入力を同タイミングにすることを指定するレイテンシ調整指定部７０４と、指定されたパスのレイテンシを算出するパスレイテンシ算出部７０５と、レイテンシ調整に関わるモジュールを抽出する調整箇所関連モジュール抽出部７０６と、関連モジュールの内部タイミング情報を抽出管理するモジュール内部タイミング情報抽出部７０７と、レイテンシ調整方法を判断するレイテンシ調整方法判断部７０８と、レイテンシ方法に従って記述の変更を行う記述変更部７０９を有する。【選択図】図７
2014127048.tif 000002
【特許請求の範囲】
【請求項１】
デジタル回路の処理動作記述からレジスタトランスファレベルの論理回路を生成する高位合成装置において、
複数のモジュールで構成されている回路の前記各モジュールに対し個々に動作合成を行い、前記各モジュール間のレイテンシ調整量を調整する調整回路を生成する処理動作記述を変更する変更手段を備え、
前記変更手段は、
判断結果により前記各モジュールのタイミング変更による処理動作記述の変更と、レイテンシ調整のための遅延回路挿入による処理動作記述の変更と、を行って回路最適化を行うことを特徴とする、高位合成装置。
【請求項２】
前記各モジュールを動作合成したときの内部タイミング情報を収集する収集手段と、
レイテンシ調整をする位置に対して、関連するモジュール及びパスを抽出する抽出手段と、
前記各モジュールに対して、内部タイミングの状態から回路生成タイミングを変更するか否かを判断する判断手段と、を備えたことを特徴とする、請求項１記載の高位合成装置。
【請求項３】
前記各モジュールのタイミング変更による処理動作記述の変更とレイテンシ調整のための遅延回路挿入による処理動作記述の変更を行う変更手段において、
レイテンシ調整のために遅延回路を挿入する箇所が前記各モジュールの入力側と出力側とで挿入する遅延回路の規模が異なり、遅延回路を複数挿入する箇所がある場合、最も規模が小さくなる側を選択して記述変更することを特徴とする、請求項１記載の高位合成装置。
【請求項４】
前記各モジュールのタイミング変更による処理動作記述の変更とレイテンシ調整のための遅延回路挿入による処理動作記述の変更を行う変更手段において、
レイテンシ調整のために遅延回路挿入をすることが出来る箇所が複数存在する場合に、挿入する遅延回路の規模が小さくなる位置を選択して記述変更することを特徴とする、請求項１記載の高位合成装置。
【請求項５】
レイテンシ調整する位置として、遅延回路の挿入、及び前記各モジュールのタイミング変更を行うことを禁止する位置を指定可能と指定し、処理動作記述の変更を行わせないことを特徴とする、請求項１記載の高位合成装置。
【請求項６】
レイテンシ調整の処理動作の記述を変更する手段において、
レイテンシ調整するパスが複数存在する場合に、レイテンシ調整のための遅延回路挿入あるいは遅延調整箇所を共有して行わせることを特徴とする、請求項１記載の高位合成装置。
【請求項７】
デジタル回路の処理動作記述からレジスタトランスファレベルの論理回路を生成する高位合成装置の高位合成方法において、
前記高位合成装置の実質的なコンピュータが、複数のモジュールで構成されている回路のモジュールに対し個々に動作合成を行い、モジュール間のレイテンシ調整量を調整する調整回路を生成する処理動作記述を変更するステップを備え、
前記コンピュータが、判断結果によりモジュールのタイミング変更による処理動作記述の変更と、レイテンシ調整のための遅延回路挿入による処理動作記述の変更と、を行って回路最適化を行うステップとを備えたことを特徴とする、高位合成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、高位合成装置、及び高位合成方法に関する。特に、本発明は、高位合成時に動作記述におけるモジュールのレイテンシを解析し、ツールが自動的にモジュール間のレイテンシを調整し、回路生成のための処理動作記述を変更する際に生成される回路が最適化されるように記述の変更を行うことに関する。
【背景技術】
【０００２】
高位合成方法は、Ｃ、Ｃ＋＋、ｓｙｓｔｅｍＣ言語等による処理動作のみの記述から、レジスタ、演算回路、メモリアクセス制御等ＲＴＬ(Register Transfer Level)の論理回路を自動生成する方法である。
処理動作の記述において、レイテンシ等は、ソースコード上に指定されるディレクティブにより指定して設計することが出来る。
回路を構成する下層モジュールを個々に動作合成して、回路全体の生成を行う場合、モジュール間のレイテンシ調整が必要となる場合がある。
レイテンシ調整として、自動的に遅延を挿入する方法が挙げられる。これは、レイテンシ調整必要箇所を指定し、各モジュールの高位合成時のレイテンシ情報、ソースコード上のディレクティブ情報に基づき上位層の回路で調整するレイテンシを算出し、ＨＤＬ記述を変更する技術である。このような技術は、例えば、特許文献１等が挙げられる。ＨＤＬは、Hardware Description Language（ハードウェア記述言語）の略である。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
しかし、上記方法のスループットとしてのレイテンシ調整は、指定したレイテンシを合わせる箇所において、調整するパスのレイテンシの差異を算出して、指定したレイテンシ調整箇所に遅延回路を挿入するものである。
【０００４】
例えば、図１のように、モジュールＡ→モジュールＢ→モジュールＣの順にデータ転送されるデータパスと、モジュールＣ→モジュールＤの順にデータ転送されるデータパスからのデータがモジュールＤにおいて合流する場合について説明する。
各データパスのレイテンシを算出し、その差異をいずれかのモジュール間、すなわち、図１モジュールＢ→モジュールＤあるいはモジュールＣ→モジュールＤに遅延を挿入する。つまり、図２に示すように、遅延回路が挿入される。
【０００５】
各データパスのレイテンシの差異となる遅延量を遅延回路として挿入しているだけであり、それに接続されるモジュールの高位合成状況としての回路内部タイミング等は考慮されず、回路最適化されていない。つまり、遅延回路が付加されたのみである。
【０００６】
そこで、本発明の目的は、モジュールの最適化と遅延調整を行うことが可能な高位合成装置、及び高位合成方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するため、請求項１に係る発明は、デジタル回路の処理動作記述からレジスタトランスファレベルの論理回路を生成する高位合成装置において、複数のモジュールで構成されている回路の前記各モジュールに対し個々に動作合成を行い、前記各モジュール間のレイテンシ調整量を調整する調整回路を生成する処理動作記述を変更する変更手段を備え、前記変更手段は、判断結果により前記各モジュールのタイミング変更による処理動作記述の変更と、レイテンシ調整のための遅延回路挿入による処理動作記述の変更と、を行って回路最適化を行うことを特徴とする。
【発明の効果】
【０００８】
本発明によれば、モジュールの最適化と遅延調整を行うことが可能な高位合成装置、高位合成方法、及びプログラムの提供を実現できる。
【図面の簡単な説明】
【０００９】
【図１】レイテンシ調整が必要な回路構成を説明するための説明図である。
【図２】レイテンシ調整のため遅延回路を挿入した回路ブロック図である。
【図３】レイテンシ調整のため遅延回路を挿入した回路の内部を説明するための説明図である。
【図４】図１のモジュールＣの内部を説明するための説明図である。
【図５】図１のモジュールＣのタイミングの説明図である。
【図６】図３の３の３の遅延回路挿入の場合のタイミングを説明する図である。
【図７】高位合成装置のブロック図である。
【図８】実施形態１の処理フロー図である。
【図９】モジュールＣのサイクル数緩和したとき生成された回路図である。
【図１０】実施形態１によりレイテンシ調整して生成される回路である。
【図１１】レイテンシ調整前のＴＯＰ階層の処理動作記述ソースコードである。
【図１２】レイテンシ調整前の下階層の処理動作記述ソースコードである。
【図１３】処理動作記述変更されたソースコードである。
【図１４】変更により挿入される遅延回路のソースコードである。
【図１５】ＴＯＰ階層の処理動作記述変更されたソースコードである。
【図１６】遅延挿入をモジュールＣ回路内で行った場合の説明回路図である。
【図１７】実施形態２を説明する回路構成図である。
【図１８】（ａ）は、モジュールＣの出力側に遅延回路を挿入した場合の図であり、（ｂ）は、モジュールＣの入力側に遅延回路を挿入した場合の図である。
【図１９】実施形態２によりレイテンシ調整して生成される回路図である。
【図２０】実施形態２の遅延回路挿入を入力側と出力側を選択する処理フロー図である。
【図２１】ＴＯＰ下階層の処理動作記述変更されたソースコードである。
【図２２】実施形態３を説明する回路構成図である。
【図２３】レイテンシ調整位置候補を説明する図である。
【図２４】実施形態３の処理フロー図である。
【図２５】実施形態３の選択方法を説明する図である。
【図２６】実施形態４のレイテンシ調整位置候補の情報である。
【図２７】実施形態５のモジュール出力が同データ分岐のある回路構成例１である。
【図２８】モジュール出力が同データ分岐のある回路構成例２である。
【図２９】モジュール出力が同データ分岐のある回路構成例２である。
【図３０】図２８のレイテンシ調整位置による回路増減情報である。
【図３１】モジュール出力が同データ分岐のある回路構成例４である。
【図３２】モジュール出力が同データ分岐のある回路構成例４である。
【図３３】図３１のレイテンシ調整位置候補の情報および調整位置決定方法の説明図である。
【発明を実施するための形態】
【００１０】
（第１の実施形態）
図１から図１５を参照して、本発明に係る高位合成装置の実施の形態を詳細に説明する。
図１は、一実施形態の高位合成装置の回路の構成を示したものであり、上位階層ＴＯＰ回路１００の下に個別に動作合成するモジュールとして、モジュールＡ１０１、モジュールＢ１０２、モジュールＣ１０３、及びモジュールＤ１０４がある。
高位合成装置は、デジタル回路の処理動作記述からレジスタトランスファレベルの論理回路を生成する装置である。
変更手段は、判断手段の判断結果により、複数のモジュールで構成されている回路のモジュールに対し個々に動作合成を行い、モジュール間のレイテンシ調整量を調整する調整回路を生成する処理動作記述を変更する。
判断手段は、モジュールに対して、内部タイミングの状態から回路生成タイミングを変更するか否かを判断する。
【００１１】
ＴＯＰ１００には、入力として信号Ｔ１＿ＩＮとＴ２＿ＩＮとがあり、出力として信号Ｔ１＿ＯＵＴがある。
信号Ｔ１＿ＩＮの入力は、モジュールＡ１０１へ入力され、モジュールＡ１０１の処理出力がモジュールＢ１０２へ入力される。モジュールＢの処理出力は、モジュールＤ１０４へ入力される（以下、このパスをＡＢＤパスと呼ぶ）信号Ｔ２＿ＩＮの入力は、モジュールＣ１０３へ入力される。モジュールＣ１０３の処理出力がモジュールＤ１０４へ入力される（以下、このパスをＣＤパスと呼ぶ）。
モジュールＤ１０４は、ＡＢＤパスとＣＤパスからの２系統のデータ信号を受け、Ｔ１＿ＯＵＴへ処理出力される。
【００１２】
ＴＯＰへ入力されるＴ１＿ＩＮとＴ２＿ＩＮデータ信号は、同タイミングで入力され、ＡＢＤパスとＣＤパスとの各々で処理されたデータは、同タイミングでモジュールＤ１０４へ入力される回路構成である。
【００１３】
高位合成装置において、上位階層ＴＯＰ回路１００下のモジュールＡ，Ｂ，Ｃ，Ｄを個別に動作合成を行った場合、それぞれのモジュールにレイテンシ（遅延量）があり、モジュールＤの入力における入力は、同タイミングとなっていない場合がある。
【００１４】
例えば、図１においてモジュールＡは、Ａ１＿ＩＮ（Ｔ１＿ＩＮ）からＡ１＿ＯＵＴまでの遅延量（ｄｅｌａｙ）が１であるとする。モジュールＢは，Ｂ１＿ＩＮからＢ１＿ＯＵＴまでの遅延量（ｄｅｌａｙ）が２であるとする。モジュールＣは、Ｃ１＿ＩＮからＣ１＿ＯＵＴまでの遅延量（ｄｅｌａｙ）が１であるとすると、モジュールＤへ入力される２つのパスの遅延量は以下のようになる。
ＡＢＤパスのデータは、Ｔ１＿ＩＮ→Ａ１＿ＩＮ→Ａ１＿ＯＵＴ→Ｂ１＿ＩＮ→Ｂ１＿ＯＵＴ→Ｄ１＿ＩＮの順でデータ処理が行われ、１＋２＝３の遅延量でＤモジュールに入力される。ＣＤパスのデータは、Ｔ２＿ＩＮ→Ｃ１＿ＩＮ→Ｃ１＿ＯＵＴ→Ｄ２＿ＩＮの順でデータ処理が行われ、１の遅延量でＤモジュールに入力される。
【００１５】
このようにモジュールＤへの２系統の入力Ｄ１＿ＩＮとＤ２＿ＩＮの入力遅延が異なるため、タイミング（遅延）調整をする必要があり、ＡＢＤパスとＣＤパスの遅延量が同じになるように調整する。
つまり、この２つのパスの差異を遅延回路挿入することで調整を行う。
ＡＢＤパス−ＣＤパス＝３−１＝２の遅延量をＣＤパスに挿入を行うことになる。
【００１６】
モジュールＤへの２系統の入力パスの遅延量を調整した回路の簡略図を図３に示した。
【００１７】
それぞれのモジュールは、組み合わせ回路３０１とフリップフロップ（ＦＦ）３０２の構成であり、ＦＦとＦＦとの間は１ｃｙｃｌｅでの処理となる。
【００１８】
モジュールＡ１０１では、ＦＦ１段、モジュールＢ１０２は２段、モジュールＣ１０３は１段、遅延量調整のために挿入される遅延回路２０１は２段となる。
【００１９】
特許文献１に記載の発明においては、モジュールＤへの２系統の入力のレイテンシを同タイミングにするように図１のモジュールＡ１０５の位置を指示し、図３に示すようにモジュールＣとモジュールＤとの間に遅延回路を挿入するものである。
遅延量調整のため、遅延回路２０１を挿入し、それに接続されるモジュールＣの状態能（回路内部のタイミング）とは無関係に遅延回路された回路生成のための記述が変更される。
【００２０】
このとき、モジュールＣの内部タイミングが厳しい状態である場合、内部タイミングを達成させるために回路を生成させるセルは、高速なプリミティブセルが使用されることもある。高速なプリミティブセルは、規模が大きい場合があり、結果、生成される回路は、大きくなることになる。
レイテンシ調整のための遅延量をモジュールＣの内部タイミングを緩和して、回路生成を行えるようにする。
【００２１】
モジュールＣの内部タイミングが厳しい状態を考える。
モジュールＣ１０１の内部タイミングは、図４に示すように、前段ＦＦ（４０３）あるいは、外部（Ｔ２＿ＩＮ）から入力され、モジュールＣ内において所望の処理が行われ（組み合わせ回路４０１）、ＦＦ（４０２）に到達する。
このＦＦ（４０３）（あるいは外部Ｔ２＿ＩＮ）からＦＦ（４０２）までのデータ転送を１ｃｙｃｌｅで受けることでタイミングを満たしている状態となる。
当然、ＦＦ（４０２）には、ｓｅｔｕｐ／ｈｏｌｄがある。
【００２２】
例えば、図５に示すように、生成する回路が２００ＭＨｚのクロック周波数で動作するものとすると、１ｃｙｃｌｅ（５０１）５．０ｎｓとなる。
前段ＦＦ（４０３）の出力遅延と組み合わせ回路（４０１）の組み合わせ回路の遅延時間は４．５ｎｓある。ＦＦ（４０２）のｓｅｔｕｐが０．５ｎｓ必要としている場合、この期間（５０１）のタイミングの余裕（ｓｌａｃｋ）は、５−（４．５＋０．５）＝０ｎｓとなる。つまり、ほとんど余裕のないタイミングを達成している状態である。
【００２３】
図３のように遅延回路２０１の挿入場合は、図６に示すようにモジュールＣのタイミングであるＦＦ６０１〜ＦＦ６０２のタイミングに関わらず、遅延回路２０１が挿入される処理動作記述の変更が行われる。このため、モジュールＣが上述のようなタイミング状態である場合、ほとんど余裕のないタイミングのまま回路生成となる。
【００２４】
モジュールＣの内部タイミングに余裕をもたせ、回路規模が必要以上に大きくならないように回路最適化を行う高位合成装置について図７〜１５により詳細を説明する。
【００２５】
図７は、一実施形態に係る高位合成装置のブロック図である。図８は、処理フローの一例である。
図７において、高位合成装置は、動作合成部７０１、レイテンシ情報抽出部７０２、レイテンシ調整指定部７０４、パスレイテンシ算出部７０５、調整箇所関連モジュール抽出部７０６、モジュール内部タイミング情報抽出部７０７、レイテンシ調整方法判断部７０８、及び記述変更部７０９を有する。
【００２６】
動作合成部７０１は処理動作の記述からＲＴＬに変換するための処理を行う。
レイテンシ情報抽出部７０２は動作合成処理される際にレイテンシ情報を抽出して、抽出した情報を管理する。
パス指定部７０３は回路を構成する全てのパス、すなわち図１におけるＡＢＤパス、ＣＤパスのデータの流れ全てを指定する。
レイテンシ調整指定部７０４はレイテンシ調整するためのパス、すなわちモジュールＤへの入力を同タイミングにすることを指定する。
パスレイテンシ算出部７０５は指定されたパスのレイテンシを算出する。
調整箇所関連モジュール抽出部７０６はレイテンシ調整に関わるモジュール、すなわちモジュールＣ、Ｄを抽出する。
モジュール内部タイミング情報抽出部７０７は関連モジュールの内部タイミング情報を抽出管理する。
レイテンシ調整方法判断部７０８はレイテンシ調整を行う方法を判断する。
記述変更部７０９はレイテンシ方法に従って記述の変更を行う。
【００２７】
処理について、図８の処理フローにより詳細説明を行う。
図１に示すように、下階層に複数のモジュールで構成される回路が、動作合成部７０１にて、個々に動作合成が行われる（Ｓ１）。動作合成が行われた際に個々モジュールのレイテンシ（遅延）を抽出し情報として管理をレイテンシ情報抽出部７０２にて行う（Ｓ２）。
【００２８】
Ｓ３において、データの流れであるパスの指定をパス指定部７０３にて行う。
図１の回路構成の場合、ＡＢＤパスとＣＤパスとがそれぞれデータの流れとしてわかるように指定を行う。
図１の構成の場合、ＡＢＤパスは、Ｔ１＿ＩＮ→Ａ１＿ＩＮ→Ａ１＿ＯＵＴ→Ｂ１＿ＩＮ→Ｂ１＿ＯＵＴ→Ｄ１＿ＩＮ→Ｄ１＿ＯＵＴ→Ｔ１＿ＯＵＴのパスとなる。ＣＤパスは、Ｔ２＿ＩＮ→Ｃ１＿ＩＮ→Ｃ１＿ＯＵＴ→Ｄ２＿ＩＮ→Ｄ１＿ＯＵＴ→Ｔ１＿ＯＵＴのようにデータの流れがわかるパスを指定する。
【００２９】
Ｓ４において、レイテンシ調整指定部７０４でのレイテンシの調整が必要なパスを指定する。
図１の場合は、モジュールＤへの入力となるＡＢＤパスとＣＤパスのパスとを指定することになる（図１：モジュールＤ（１０５））。
【００３０】
Ｓ５において、Ｓ３で指定した各パスのレイテンシを抽出する。
図１の場合は、ＡＢＤパスは、モジュールＡとモジュールＢとのレイテンシを抽出し、パスとして、１＋２＝３のレイテンシを算出する。
ＣＤパスは、モジュールＣのレイテンシを抽出し、１のレイテンシを算出する。
【００３１】
Ｓ６において、調整するパスの各レイテンシから差異を求め調整遅延量を算出する。
図１の場合、ＡＢＤパス−ＣＤパス＝３−１＝２の遅延量が調整値となる。
抽出（Ｓ５）および調整量算出（Ｓ６）は，パスレイテンシ算出部７０５にて行われる。
【００３２】
Ｓ７は、調整箇所関連モジュール抽出部７０６にて、レイテンシ調整するパスと関わるモジュールを抽出する。ＣＤパスがレイテンシ調整を行うこととＣＤパスに関連するモジュールとして、モジュールＣを抽出する。
【００３３】
Ｓ８において、Ｓ７で抽出したレイテンシ調整箇所の関連モジュールであるモジュールＣの内部タイミングの情報をモジュール内部タイミング情報収集部７０７にて収集を行う。
ここでは、モジュールＣが上述のように内部タイミングの余裕がないものとして説明する。
【００３４】
Ｓ９において、Ｓ８にて収集した関連モジュールのタイミング情報により、最適化が必要であるか否かを判断する。
最適化が必要であるか否かの判断は、内部タイミングが厳しいか否かの判断と、厳しい場合には、モジュールの処理サイクル数を変更することにより回路規模が小さくなるか否かの判断である。
【００３５】
動作合成時に内部タイミング情報として、上述のモジュールＣのように内部タイミングの余裕がなくタイミングが厳しいと判断する。また、このモジュールに対してサイクル数を変更することにより、図９に示すように、ＦＦ（９０１）が１段増加した回路の生成となる。モジュールＣの内部タイミングとして（９０２、９０３）の余裕が出来るようにしたとき、生成される回路規模が小さくなる、すなわち最適化されるか否かを判断する。
【００３６】
Ｓ９で最適化する場合（Ｙｅｓ）は、Ｓ１０の処理となる。
Ｓ９で最適化しない場合（Ｎｏ）は、Ｓ１１の処理となる。
【００３７】
Ｓ１０において、関連するモジュールの最適化を行ため、タイミング記述の変更を行う。
【００３８】
図１１、１２は、図１に示す回路構成の処理動作記述のソースコードの一部である。
図１１は、ＴＯＰ階層のモジュール間の接続を記述したものである。
ＴＯＰ階層へ入力されたＴ１＿ＩＮは、モジュールＡの入力ｉｎ（１１０１）に接続される。モジュールＡの出力ｏｕｔ（１１０２）は、モジュールＢの入力ｉｎ（１１０３）、モジュールＢの出力ｏｕｔ（１１０４）は、モジュールＤの入力（１１０５）に接続される。同様に、ＣＤパスもＴ２＿ＩＮは、モジュールＣの入力ｉｎ（１１０６）接続され、その出力ｏｕｔ（１１０７）がモジュールＤの入力ｉｎ（１１０８）に接続される。
【００３９】
モジュールＣの記述の一部を図１２に示した。
１２０１部分の所望の処理を行うための記述であり、１２０２部分等（ＣＹＣＬＥ（１））のディレクティブと呼ばれる記述によりタイミング記述が行われている。
この場合、１２０１部分の範囲の処理をサイクル１（ＣＹＣＬＥ（１））で回路生成を行う記述である。
【００４０】
Ｓ１０における記述変更は、モジュールＣのタイミングがサイクル数を増やすことでタイミングに余裕を持たせるものである。
記述としては、図１３に示すように、１３０２部分の範囲の処理をサイクル数２（１３０１）として記述に変更したものである。
生成される回路としては、図９に示すモジュールＣのように回路生成が変更されることになる。
【００４１】
Ｓ１１において、レイテンシ調整のために挿入する遅延回路（図６：遅延回路２０１）の遅延量２の内、遅延量１をモジュールＣの処理サイクルを緩和させるために使用する（図９：遅延回路９０２，９０３）。
残りの遅延量を遅延回路（図９：遅延回路９０４）として記述を変更する。
図１４、１５は、モジュールＣとモジュールＤとの間に遅延回路を挿入する場合の記述変更例である。新たな遅延回路モジュールＣ＿Ｄｄｅｌａｙの記述（図１４）と遅延回路（図１４）とを追加する記述（１５０１）を行う。モジュールＣからモジュールＣ＿Ｄｅｌａｙを接続し（１５０２）、モジュールＤへ接続する（１５０３）記述の変更を行う。
【００４２】
このように、遅延回路の遅延を１として、モジュールＣのタイミング緩和のためサイクルを１増やすように記述変更する判断をレイテンシ調整方法判断部７０８にて行い、記述変更を記述変更部７０９にて行う。
【００４３】
Ｓ１２にて記述変更されたコードに対して動作合成を行うことで、図１０に示すような回路が生成されることになる。
【００４４】
本実施形態では、遅延調整のための遅延回路挿入について、モジュールを追加する方法を例として説明したが、図１２のモジュールＣの記述内において、遅延記述を行う記述変更も可能である。
図１３の１３０１の上の行に"ＤＥＬＡＹ（１）；"の記述を行い、ＴＯＰは図１１の記述とすることも可能である。
この場合、生成される回路は図１６に示すようになる。
【００４５】
以上において、複数のモジュールを個々に動作合成を行い、回路構成によりレイテンシ調整が必要な場合、レイテンシ調整のために処理動作記述の変更を行う際には以下の効果が得られる。すなわち、レイテンシ調整箇所に関わるモジュールの内部タイミングの状態を考慮し、モジュールのタイミング緩和の記述変更と遅延挿入によるレイテンシ調整の記述変更を行わせるのである。これにより、全体のレイテンシとしての遅延量を変更させることなく、ゲート規模が大きくならない回路生成を行うことが可能となる。
【００４６】
（第２の実施形態）
図１７〜図２１を参照して、第２の実施形態について説明する。
レイテンシ調整のための遅延回路挿入およびモジュール内部タイミングの最適化を行う位置として、入力側と出力側とから選択をする高位合成装置の実施形態の詳細を説明する。
【００４７】
図１７に示した回路は、図１と同様な回路構成である。
入力されたデータは、モジュールＡとモジュールＢとで処理され、モジュールＤへ入力される。同様に、入力されたデータは、モジュールＣで処理されたモジュールＤへ入力され、モジュールＤは、２つの入力されるデータを同タイミングとして処理を行う。
【００４８】
各モジュールは、各々個別に動作合成が行われ、モジュールＤへ入力されるデータのタイミングを合わせるために、レイテンシ調整が第１の実施形態と同様に行われる。
【００４９】
モジュールＡの遅延（ｄｅｌａｙ）が１であり、モジュールＢの遅延が２であり、モジュールＣの遅延が１である場合、モジュールＣに関わるパスがレイテンシ調整のパスとなる。
【００５０】
モジュールＣは、図１７に示すように、入力側が２ｂｉｔのデータバスであり、出力側が８ｂｉｔのデータバスである。このとき、遅延回路の挿入の位置により、回路の規模は異なってくる。
【００５１】
出力側にレイテンシ調整のために遅延回路を挿入すると、８ｂｉｔのバスに対しての遅延回路１８０１を挿入するため、ＦＦが８ｂｉｔ×遅延量となる。図１８（ｂ）に示すように、入力側にレイテンシ調整のために遅延回路１８０２を挿入すると、２ｂｉｔのパスに対しての遅延回路１８０２を挿入するため、ＦＦが２ｂｉｔ×遅延量となる。このように、挿入する箇所により回路の規模が変わってくる。
【００５２】
遅延回路挿入は、図１９に示すように入力側に挿入（１９０１）される方が、回路規模が小さく最適化されることになる。
【００５３】
図２０に処理フローを示し、処理手順を説明する。
Ｓ１からＳ１０までは、第１の実施形態と同様である。
【００５４】
個々のモジュールの動作合成が行われる（Ｓ１）。
【００５５】
動作合成が行われた際に個々のモジュールのレイテンシとしての遅延を抽出し情報として管理する（Ｓ２）。
【００５６】
Ｓ３において、ＡＢＤパスとＣＤパスとのそれぞれデータの流れとして把握できるように指定を行う。
【００５７】
Ｓ４において、レイテンシの調整が必要なパス（図１６：１６０１）を指定する。
【００５８】
Ｓ５において、Ｓ３で指定した各パスのレイテンシを抽出する。
図１６に示す場合は、ＡＢＤパスは、１＋２＝３のレイテンシ、ＣＤパスは、１のレイテンシを算出する。
【００５９】
Ｓ６において、調整するパスの各レイテンシから差異を求め調整遅延量を算出する。
ＡＢＤ−ＣＤ＝３−１＝２の遅延量が調整値となる。
【００６０】
Ｓ７は、レイテンシ調整するパスとモジュールとを抽出する。
ＣＤパス側にレイテンシ調整を行うことと、ＣＤパスの関連モジュールとしてモジュールＣを抽出する。
【００６１】
Ｓ８において、Ｓ７で抽出した関連モジュールの内部タイミングの情報の収集を行う。ここでは、モジュールＣに内部タイミングの余裕があるものとして、遅延回路挿入のみとする場合について説明する。
【００６２】
Ｓ９において、Ｓ８にて収集した関連モジュールのタイミング情報により最適化が必要であるか否かを判断する。
【００６３】
最適化する場合（Ｙｅｓ）はＳ１０の処理となる。
最適化しない場合（Ｎｏ）はＳ１１の処理となる。
【００６４】
Ｓ１０において、関連するモジュールの最適化を行ため，タイミング記述の変更を行う。
【００６５】
Ｓ１１において、レイテンシ調整のために挿入する遅延回路の遅延量２の内、遅延量１をモジュールＣの処理サイクルを緩和させるために使用する。
残りの遅延量を遅延回路とする。
遅延回路をどの位置に挿入するかを判断するため、挿入可能な位置における遅延回路生成の回路規模を比較する。
【００６６】
Ｓ１２において、上述のように図１７に示すモジュールＣの入力と出力のデータバス幅である場合に対して、遅延回路は、入力側（図１８（ｂ））と出力側（図１８（ａ））とで回路規模が異なる。この規模の比較を行い、回路規模が小さい方の位置に挿入する。
【００６７】
Ｓ１３において、Ｓ１１で遅延回路を挿入する位置での記述変更を行う。
【００６８】
図２１に、モジュールＣの入力側に遅延回路を挿入する場合の記述の変更例を示す。
新たな遅延回路モジュールＣ＿Ｄｄｅｌａｙを追加する記述（２１０１）と、モジュールＣからモジュールＣ＿Ｄｅｌａｙを接続し（２１０２）、モジュールＤへつなげる（２１０３）記述の変更を行う。
【００６９】
Ｓ１４にて記述変更されたコードに対して動作合成を行うことで図１９に示すような回路が生成されることになる。
【００７０】
以上のように、レイテンシ調整のための遅延回路挿入において、挿入する位置を入力側と出力側とにおいて、それぞれのデータバス幅を考慮に入れ、回路規模が小さくなるように回路生成できる処理動作記述の変更を行うことができる。
【００７１】
（第３、４の実施形態）
図２２〜図２６を参照して、第３の発明である、レイテンシ調整のための遅延回路挿入及びモジュール内部タイミングの最適化を行う位置として、複数のモジュール及びモジュール間から選択する高位合成装置の実施形態の詳細を説明する。
【００７２】
図２２に示す回路は、ＴＯＰへの２系統の入力データ（２２０１，２２０２）が１出力するもので、入力の１系統は、モジュールＡに入力され、モジュールＡ→モジュールＢ→モジュールＣの順でデータ処理が行われ、モジュールＦに入力される。もう１系統の入力は、モジュールＤに入力され、モジュールＤ→モジュールＥの順でデータ処理が行われ、モジュールＦに入力される。モジュールＦは、この２つの入力を同タイミングで受け取り、処理して出力をする構成である。
【００７３】
モジュールＡ〜モジュールＦを個別に動作合成が行われ、モジュールＦの入力位置２２０３において、レイテンシ調整をする必要がある。
【００７４】
第３、４の発明のレイテンシ調整の処理の流れを図２４に示し説明する。
【００７５】
Ｓ１〜Ｓ４は、第１、２の発明と同様の処理が行われる。
【００７６】
Ｓ４において、図２２の２２０３の位置を指定されると、Ｓ５の処理において、図２２に示すようにそれぞれの遅延量が算出される。
モジュールＡの遅延は１とし、モジュールＢの遅延は２とし、モジュールＣの遅延は１とし、モジュールＤの遅延は３とし、モジュールＥの遅延は２とする。
【００７７】
Ｓ６では、ＡＢＣＤパスとＥＦパスのレイテンシからＥＦパス−ＡＢＣＤパス＝（１＋２＋１）−（３＋２）＝−１となり、ＡＢＣＤパスに遅延量１のレイテンシ調整が必要であることを算出する。
【００７８】
Ｓ７において、レイテンシ調整のための遅延回路挿入あるいはモジュールのサイクル緩和を行える位置の候補を抽出する。
レイテンシ調整位置の候補として、モジュールＡの前後（図２３の２３０１、２３０３）、モジュールＡ（図２３の２３０２）、モジュールＢの前後（図２３の２３０３，２３０５）、モジュールＢ（図２３の２３０４）、モジュールＣの前後（図２３の２３０５、２３０７）、及びモジュールＣ（図２３の２３０６）が挙げられる。
これらの候補の中から、レイテンシ調整に最適な箇所の決定を行う。
【００７９】
第４の発明のレイテンシ調整のための遅延回路挿入及びモジュールの最適化を禁止させる方法は、予め禁止位置を指定する、図示しない処理を行う。
レイテンシ調整する位置として、遅延回路の挿入、及びモジュールのタイミング変更を行うことを禁止する位置を指定可能と指定し、処理動作の変更を行わせない。
２３０１〜２３０７の位置、あるいはＤＥパス側において候補となるような箇所を禁止位置として指定する。
禁止指定されている場合は、Ｓ７において、候補としては除外し、候補として抽出しないことになる。図２６の２６０１に示すように、モジュールＡをレイテンシ調整位置の対象外、つまりモジュールＡの処理動作記述の変更を禁止すること管理するようになる。
【００８０】
Ｓ８において、Ｓ７で候補に挙がったモジュールに関する内部タイミング情報の収集を行う。
【００８１】
Ｓ９において、Ｓ８において収集した各モジュールの内部タイミング情報から、タイミングが厳しい箇所であるか否かの判断と、タイミングが厳しい場合にサイクル緩和することによる回路規模の増減を計測し情報を収集する。
【００８２】
Ｓ１０において、Ｓ７であがったモジュール間の遅延回路を挿入する場合の遅延回路規模の情報を収集する。遅延回路規模に関しては、第２の説明のようにデータパス幅で求めることになる。
【００８３】
Ｓ７からＳ１０の情報収集より、図２５に示すようにレイテンシ調整位置のそれぞれにおける情報が収集できる。
【００８４】
各モジュール間（２５０１）に対して、モジュールに接続されるデータバスの幅（２５０２）より、遅延回路の規模（２５０３）を測定する。
例えば、モジュールＡの入力は、データバス幅は８ｂｉｔであり、遅延量１の回路としてレイテンシ調整するため、挿入する回路の規模は、８０（ｇａｔｅ）増加する（２５０４）ことになる。
【００８５】
各モジュール（２５０５）に対しては、内部タイミング（２５０７）に余裕があるか否かを判断する。タイミングに余裕がない場合は、サイクル数の緩和した場合に生成される回路規模の増減を調べる（２５０８）。
例えば、モジュールＡは、内部タイミングが０．０ｎｓと厳しい状態にあるため、サイクルを緩和して回路生成すると、規模は１０（ｇａｔｅ）小さくできる結果となる。
２５０６は、モジュール（２５０５）のレイテンシの値である。
【００８６】
これらの情報より、調整位置の決定（Ｓ１１）を行う。
図２５の例では、モジュールＡの入力側に遅延回路を挿入する場合が８０（ｇａｔｅ）増加し、モジュールＡのサイクル緩和による回路生成する場合が１０（ｇａｔｅ）減少する。同様にジュールＡの出力側、モジュールＢの入力側、モジュールＢの出力側あるいはモジュールＣの入力側は、それぞれ遅延回路を挿入する場合が８０（ｇａｔｅ）増加する。モジュールＢ及びモジュールＣは、内部タイミングに余裕があるため、サイクル緩和は行わないため、増減がない。モジュールＣの出力側あるいはモジュールＤの入力側は、遅延回路を挿入する場合が２０（ｇａｔｅ）の増加ということになる。
【００８７】
回路規模が小さくなるようにレイテンシ調整を行う場合は、モジュールＡのサイクル緩和による回路生成の最適化（２５０８）による調整対応と決定できる。
【００８８】
第４の発明の例では、モジュールＡの処理動作記述の変更禁止の指定（図２６の２６０１）であるため、それ以外の候補から決定する。その結果、モジュールＣの出力側で遅延回路挿入による調整対応と決定できる。
【００８９】
Ｓ１１の調整位置の決定において、記述変更による回路規模の増減が最小となる箇所が同じ値である場合が複数あるときは、予め優先順位をつける等により処理を行う。優先順位として、例えば、レイテンシ調整が必要となるモジュールに近い箇所とする等が挙げられる。
【００９０】
調整位置が決定された後は、Ｓ１２及びＳ１４において、タイミング記述の変更か遅延回路挿入の記述の変更か否かを判断し、それぞれ処理動作記述に対してタイミング記述の変更（Ｓ１３）と遅延回路挿入追加記述変更（Ｓ１５）を行う。
第３の発明の場合の例では，タイミング記述変更箇所があるか否かの判断（Ｓ１２）においてＹｅｓとなり、Ｓ１３においてタイミング記述変更を行う。Ｓ１４において、遅延回路挿入箇所があるか否かの判断でＮｏとなり、Ｓ１６へ処理を進める。
これとは逆に、第４の発明の場合の例では、タイミング記述変更箇所があるか否かの判断（Ｓ１２）においてＮｏとなり、Ｓ１４へ処理を進める。Ｓ１４の処理において、遅延回路挿入箇所があるか否かの判断でＹｅｓとなり、Ｓ１５において、遅延回路挿入記述追加変更を行う。
【００９１】
Ｓ１６において変更した処理動作記述のコードに対して動作合成を行い、回路生成を行う。
【００９２】
以上のようにして、レイテンシ調整のための調整位置として複数ある場合でも、最適な位置を選択して調整が可能である。
【００９３】
（第５の実施形態）
図２７〜３４を参照して、第５の発明であるレイテンシ調整の処理動作の記述を変更する手段について説明する。この変更する手段において、レイテンシ調整するパスが複数存在する場合に、調整のための遅延回路挿入あるいは、タイミング変更の一部を共有する回路となるように記述変更する高位合成装置の実施形態の詳細を説明する。
【００９４】
図２７は、回路構成として、２系統のデータが入力（２７０１，２７０２）され、２系統の出力（２７０３，２７０４）をする回路であり、内部モジュールとして、モジュールＡ、モジュールＢ、モジュールＣ、及びモジュールＤを有する。入力信号２７０１は、モジュールＡに入力され、モジュールＡの処理出力は、モジュールＣへ受け渡される。もう一方の入力信号２７０２は、モジュールＢに入力されモジュールＢの処理の出力は、同データが２つに分岐され、モジュールＣ及びモジュールＤに受け渡され、モジュールＤの処理結果が出力２７０４される。モジュールＣは、モジュールＡとモジュールＢとからの処理結果が入力（２７０５，２７０６）を受けて出力２７０３される。モジュールＣにおいて、モジュールＡとモジュールＢとからの入力を同タイミングで受け取り処理を行う。
【００９５】
モジュールＡ〜Ｄを個別に動作合成を行ったとき、モジュールＣの入力を同タイミングとするため、モジュールＡとモジュールＢとの遅延量により、レイテンシ調整が必要となる。
【００９６】
モジュールＡの遅延量を３とし、モジュールＢの遅延量を２とした場合、モジュールＢ側のパスに遅延量１のレイテンシ調整が必要となる。
上述の第１〜４の発明によりレイテンシ調整を行うと、モジュールＢとモジュールＣとの間に遅延回路を挿入することになる。図２７の例の場合は、内部タイミングの緩和となる箇所２７０８〜２７０９は、同データが分岐して出力されるため、調整の必要ないモジュールＤへ影響が出るため、２７０７への遅延回路挿入となる。
【００９７】
図２８の回路構成の例の場合は、遅延回路の挿入あるいは、サイクル緩和を共有箇所（パス）に行う場合である。
図２８の回路構成は、２系統のデータが入力（２８０１，２８０２）され、２系統の出力（２８０３，２８０４）をする回路であり、内部モジュールは、モジュールＡ、モジュールＢ、モジュールＣ、及びモジュールＤを有する。入力２８０１は、モジュールＡに入力され、モジュールＡの処理出力は、同データが２つに分岐され、モジュールＣとモジュールＤとに受け渡される（２８０５，２８０６）。もう一方の入力（２８０２）は、モジュールＢに入力される。モジュールＢの処理出力は、同データが２つに分岐され、モジュールＣとモジュールＤとに受け渡される（２８０７，２８０８）。モジュールＣは、モジュールＡとモジュールＢからのデータを受け（２８０５，２８０７）、処理結果を出力する。モジュールＤは、モジュールＡとモジュールＢとからのデータを受け（２８０６，２８０８）、処理結果を出力する。
【００９８】
モジュールＣにおいて、モジュールＡとモジュールＢとからの入力（２８０５，２８０７）を同タイミングで受ける取り処理を行う。同様に、モジュールＤにおいても、モジュールＡとモジュールＢからの入力（２８０６，２８０８）を同タイミングで受け取り処理を行う。
【００９９】
モジュールＡ〜Ｄを個別に動作合成を行ったとき、モジュールＣ及びモジュールＤのそれぞれの入力を同タイミングとするため、モジュールＡとモジュールＢとの遅延量により、レイテンシ調整が必要となる。
【０１００】
モジュールＡの遅延量を３とし、モジュールＢの遅延量を２とした場合、遅延量１のレイテンシ調整をモジュールＣの入力位置とモジュールＤの入力位置とで行う必要がある。
【０１０１】
先ず、モジュールＣの入力位置（２８０５，２８０７）においてのレイテンシ調整を考える。
モジュールＡからの出力Ａ１＿ＯＵＴであるＣ１＿ＩＮとモジュールＢからの出力Ｂ１＿ＯＵＴであるＣ２＿ＩＮを同タイミングになるようにする。
図２９は、図２８と同じ回路構成である。
第１〜４の発明によるレイテンシ調整を行うと、調整する位置候補として、モジュールＢの入力側（図２９の２９０１）、モジュールＢの出力側でモジュールＣに接続されるＢ１＿ＯＵＴのパス（２９０２）、モジュール内のタイミング緩和（２９０３）が挙げられる。
但し、入力側２９０１に関しては、出力であるＢ１＿ＯＵＴとＢ２＿ＯＵＴに影響するため、モジュールＤへパスレイテンシ調整とを考慮する必要がある。
ここで、図２９に示す回路において、モジュールＣとモジュールＤのそれぞれのパスの遅延調整を行うと、パス（２９０２）とパス（２９０４）の箇所にそれぞれ遅延回路を挿入するのではなく、パス（２９０１）で共有できる遅延回路を挿入する。
【０１０２】
レイテンシ調整位置の決定は、上述のようにモジュールのサイクル数緩和による回路規模の増減と挿入する遅延回路の回路規模とから選択する。
例えば、図３０に示すように、２９０１の位置に遅延回路挿入すると８０ｇａｔｅ増加する。２９０２の位置に遅延回路挿入すると５０ｇａｔｅ増加する。モジュールＢ（２９０３）は、タイミングに余裕があるためサイクル緩和しないとすると、２９０２の位置で調整が行われることになる。
【０１０３】
次に、モジュールＤの入力位置においてのレイテンシ調整を考える。
モジュールＡからの出力Ａ２＿ＯＵＴであるＤ１＿ＩＮとモジュールＢからの出力Ｂ２＿ＯＵＴであるＤ２＿ＩＮを同タイミングになるようにする。
同様に上述の第１〜４の発明によるレイテンシ調整を行うと、調整する位置候補として、モジュールＢの入力側（２９０１）、モジュールＢの出力側でモジュールＤに接続されるＢ２＿ＯＵＴのパス（２９０４）、モジュール内のタイミング緩和（２９０３）がある。
上述のように同様にレイテンシ調整位置を決定する。
【０１０４】
図３０に示すように、２９０１の位置に遅延回路挿入すると８０ｇａｔｅ増加する。２９０２の位置に遅延回路挿入すると５０ｇａｔｅ増加する。モジュールＢ（２９０３）は、タイミングに余裕があるためサイクル緩和しないとすると、２９０４の位置で調整が行われることになる。
【０１０５】
モジュールＣとモジュールＤとの両方を調整することで、５０＋５０＝１００ｇａｔｅの回路規模増加となる。
【０１０６】
しかし、モジュールＣとモジュールＤとで共有で調整可能な箇所（２９０１）が存在する。
２９０１の位置により調整することで８０ｇａｔｅの回路規模増加で済むことになる。
これを考慮することによりレイテンシ調整位置を決定する。
【０１０７】
図３１のような回路構成の場合の例について説明する。
図３１の回路構成は、２系統のエータ（３１０１，３１０２）が入力され、２系統の出力（３１０３，３１０４）する回路である。内部モジュールは、モジュールＡ、モジュールＢ、モジュールＣ、及びモジュールＤを有する。入力３１０１は、モジュールＡに入力されモジュールＡの処理出力は、モジュールＣ及び、モジュールＤに受け渡される。もう一方の入力３１０２は、モジュールＢに入力されモジュールＢの処理出力は、モジュールＣ及びモジュールＤへ受け渡される。モジュールＣにおいて入力されるモジュールＡとモジュールＢからの２つデータは、同タイミングで受けとり処理を行う。モジュールＤにおいても、入力されるモジュールＡとモジュールＢからの２つのデータは、同タイミングで受け取り処理を行う。
【０１０８】
モジュールＡ〜Ｄを個別に動作合成を行ったとき、モジュールＣの入力を同タイミングとするため、モジュールＡ及びモジュールＢの遅延量により、レイテンシ調整が必要となる。
同様に、モジュールＤの入力も同タイミングするため、レイテンシ調整が必要となる。
【０１０９】
モジュールＣに関してレイテンシ調整を考える。
モジュールＡの出力は２系統あり、同一データの分岐ではなく、それぞれ遅延量が４と３である。モジュールＣへデータを受け渡すパスは、遅延量４である。モジュールＢの出力は、同一データを分岐したものであり、モジュールＣへのデータを受け渡すパスは遅延量２である。
モジュールＣの入力でのレイテンシ調整は、４−２＝２の遅延量となる。
レイテンシを調整する候補として、モジュールＢの入力側（図３２−３２０１）、モジュールＢの出力側でモジュールＣに接続されるＢ１＿ＯＵＴのパス３２０２、モジュール内のタイミング緩和３２０３がある。但し、入力側３２０１に関しては、出力であるＢ１＿ＯＵＴとＢ２＿ＯＵＴに影響するため、モジュールＤへパスレイテンシ調整とを考慮する必要がある。
【０１１０】
モジュールＤに関してレイテンシ調整を考える。
モジュールＡからモジュールＤへデータを受け渡すパスは、遅延量３である。モジュールＢの出力は遅延量２である。
モジュールＤの入力でのレイテンシ調整は、３−２＝１の遅延量となる。
レイテンシを調整する候補として、モジュールＢの入力側（図３２−３２０１）、モジュールＢの出力側でモジュールＤに接続されるＢ２＿ＯＵＴのパス３２０４、モジュール内のタイミング緩和３２０３となる。
【０１１１】
２つのレイテンシ調整を必要とする箇所、すなわちモジュールＣ，モジュールＤから、遅延挿入及びモジュールのサイクル数緩和による回路最適化を行う位置を決定する。
それぞれのパスにおけるレイテンシ調整の候補として、３２０１〜３２０４の位置への対応となる。
【０１１２】
図３３に決定するための情報管理の例を示した。
３３０１は、調整位置の候補であるモジュール及びモジュール間の遅延回路挿入３２０１〜３２０４に対して、回路規模の情報である。
モジュール（３２０３）は、内部タイミング情報とサイクル数緩和による回路削減規模、モジュール間の遅延回路挿入は、データ幅とそれによる遅延回路の回路増加規模である。
それぞれ、３３０２が８０ｇａｔｅ増加し、３３０３が１０ｇａｔｅ減少し、３３０１が８０Ｇａｔｅ増加し、３３０４が８０ｇａｔｅ増加する。
【０１１３】
３３０２は、ＢＣパスのレイテンシ調整を行う場合の候補位置（３２０１〜３２０３）の組み合わせとその増減回路規模である。
組み合わせとは、モジュールＢからモジュールＣでの調整が遅延量２等の２以上の場合、複数個所での調整をあらわす。
組み合わせ１は、３２０２と３２０３の位置の調整となり、７０ｇａｔｅの増加となる。組み合わせ２は、３２０３と３２０１の位置の調整となり、７０ｇａｔｅの増加となる。組み合わせ３は、３２０２と３２０１の位置の調整となり、１６０ｇａｔｅの増加となる。
組み合わせ４、５はそれぞれ１箇所の位置での調整であり、１６０ｇａｔｅ増加となる。
【０１１４】
３３０３は、ＢＤパスのレイテンシ調整を行う場合の候補位置（３２０１，３２０３，３２０４）の組み合わせとその増減回路規模である。但し、ＢＤバスは、レイテンシ調整の遅延量が１であるため、組み合わせはなく、調整位置となる。
回路規模の増減は、図３３に示す様に１０ｇａｔｅ減少〜８０ｇａｔｅ増加となる。
【０１１５】
３３０２と３３０３のそれぞれのレイテンシ調整から、共通化を考慮して、回路全体として全てのレイテンシ調整の位置を決定する。共通化を考慮した回路規模の増減を比較したものが３３０４である。
【０１１６】
共通化１（３３０５）は、ＢＣパスとＢＤパスのレイテンシ調整において、３２０３の位置の調整を共通化することで全体の回路規模の増加が７０ｇａｔｅとなる。共通化２（３３０５）は、３２０２の位置の調整を共通化することで全体の回路規模の増減が１６０ｇａｔｅとなる。共通化しない場合に関しても比較対象としている。
【０１１７】
共通化することが必ずしもレイテンシ調整時の回路規模増減を小さくすることにはならない。共通化なし２（３３０７）は、１５０ｇａｔｅの増加のように、共通化２（３３０６）の１６０増加より回路規模の増加は、小さくなっている。このため共通化する場合と共通化しない場合も比較が必要である。結果として、共通化１のレイテンシ調整方法として決定することになる。
ここで、レイテンシ調整の処理動作の記述を変更する手段において、レイテンシ調整するパスが複数存在する場合に、レイテンシ調整のための遅延回路挿入あるいは遅延調整箇所を共有して行わせるようにしてもよい。
【０１１８】
以上のように、レイテンシ調整する位置において、同一データが分岐してモジュールへの受け渡しをする回路構成である場合、調整を分岐まで行うことで共通化することでレイテンシ調整のための最適化回路や遅延調整回路の規模の小型化が可能である。
【０１１９】
＜効  果＞
本発明によれば、高位合成装置により動作合成された複数のモジュールで構成される回路において、モジュール間のパスのレイテンシ調整を行う場合、遅延回路挿入の処理動作記述の変更を行うことができる。また、レイテンシ調整に関わるモジュールの内部タイミング状態を考慮して、モジュールの回路生成のため最適化を行うように処理動作記述の変更も行うこと可能とする高位合成装置を提供することが可能となる。
【０１２０】
尚、上述した実施の形態は、本発明の好適な実施の形態の一例を示すものであり、本発明はそれに限定されることなく、その要旨を逸脱しない範囲内において、種々変形実施が可能である。
【符号の説明】
【０１２１】
１００    ＴＯＰ回路
１０１    モジュールＡ
１０２    モジュールＢ
１０３    モジュールＣ
１０４    モジュールＤ
１０５    レイテンシ調整箇所
２０１    遅延回路
３０１    組み合わせ回路
３０２    フリップフロップ（ＦＦ）
４０１    組み合わせ回路
４０２    モジュールＣのフリップフロップ（ＦＦ）
４０３    前段のフリップフロップ
５０１    １ｃｙｃｌｅ
６０１    前段のフリップフロップ
６０２    モジュールＣのフリップフロップ
７００    高位合成装置
７０１    動作合成部
７０２    レイテンシ情報抽出部
７０３    パス指定部
７０４    レイテンシ調整指定部
７０５    パスレイテンシ算出部
７０６    調整箇所関連モジュール抽出部
７０７    モジュール内部タイミング情報収集部
７０８    レイテンシ調整方法判断部
７０９    記述変更部
９０１    緩和によるフリップフロップ
９０２、９０３    タイミング
１１０１    モジュールＡの入力部の記述
１１０２    モジュールＡの出力部の記述
１１０３    モジュールＢの入力部の記述
１１０４    モジュールＢの出力部の記述
１１０５、１１０８    モジュールＤの入力部の記述
１１０６    モジュールＣの入力部の記述
１１０７    モジュールＣの出力部の記述
１２０１    サイクル指定の記述
１２０２    指定サイクルで処理する範囲
１３０１    サイクル数の変更
１３０２    指定サイクルで処理する範囲
１５０１    挿入する遅延回路の追加する記述
１５０２    挿入する遅延回路接続記述
１５０３    モジュールＤの接続変更記述
１８０１    出力側挿入の遅延回路
１８０２    入力側挿入の遅延回路
１９０１    遅延回路
２１０１    挿入する遅延回路の追加する記述
２１０２    挿入する遅延回路接続記述
２１０３    モジュールＣの室族変更記述
２２０１、２２０２    入力信号
２２０３    レイテンシ調整位置
２３０１、２３０２、２３０３、２３０４、２３０５、２３０６、２３０７    レイテンシ調整箇所候補
２５０１    モジュール間の情報
２５０２    入出力のデータ幅
２５０３    遅延回路追加増加規模
２５０４    モジュールＡ間の増加量
２５０５    モジュールの情報
２５０６    レイテンシ
２５０７    内部タイミング
２５０８    モジュールＡの増減量
２６０１    レイテンシ調整禁止位置
２７０１、２７０２    入力信号
２７０３、２７０４    出力信号
２７０５    モジュールＡからの入力
２７０６    モジュールＢからの入力
２７０７    レイテンシ調整位置
２８０１、２８０２    入力信号
２８０３、２８０４    出力信号
２８０５、２８０６    モジュールＡからの入力
２８０７、２８０８    モジュールＢからの入力
２９０１、２９０２    遅延回路挿入位置候補
２９０３    モジュールサイクル緩和
２９０４    遅延回路挿入位置候補
３１０１、３１０２    入力信号
３１０３、３１０４    出力信号
３１０５、３１０６    モジュールＢからの入力
３２０１、３２０２    遅延回路挿入位置候補
３２０３    モジュールサイクル緩和
３２０４    遅延回路挿入位置候補
３３０１    各調整位置の回路規模の増減情報
３３０２    ＢＣパスの遅延調整組み合わせ回路規模の増減情報
３３０３    ＢＤパスの遅延調整組み合わせ回路規模の増減情報
３３０４    回路全体の遅延調整の増減情報
３３０５    共通化１
３３０６    共通化２
３３０７    共通化なし２
【先行技術文献】
【特許文献】
【０１２２】
【特許文献１】特開２０１０−１６５３３４号公報
【図１】
2014127048.tif 000003
【図２】
2014127048.tif 000004
【図３】
2014127048.tif 000005
【図４】
2014127048.tif 000006
【図５】
2014127048.tif 000007
【図６】
2014127048.tif 000008
【図７】
2014127048.tif 000009
【図８】
2014127048.tif 000010
【図９】
2014127048.tif 000011
【図１０】
2014127048.tif 000012
【図１１】
2014127048.tif 000013
【図１２】
2014127048.tif 000014
【図１３】
2014127048.tif 000015
【図１４】
2014127048.tif 000016
【図１５】
2014127048.tif 000017
【図１６】
2014127048.tif 000018
【図１７】
2014127048.tif 000019
【図１８】
2014127048.tif 000020
【図１９】
2014127048.tif 000021
【図２０】
2014127048.tif 000022
【図２１】
2014127048.tif 000023
【図２２】
2014127048.tif 000024
【図２３】
2014127048.tif 000025
【図２４】
2014127048.tif 000026
【図２５】
2014127048.tif 000027
【図２６】
2014127048.tif 000028
【図２７】
2014127048.tif 000029
【図２８】
2014127048.tif 000030
【図２９】
2014127048.tif 000031
【図３０】
2014127048.tif 000032
【図３１】
2014127048.tif 000033
【図３２】
2014127048.tif 000034
【図３３】
2014127048.tif 000035