(57)【要約】【課題】高位設計手法ではない既存の設計手法にて設計されたブロックに対してもレイテンシ調整を可能とする。【解決手段】回路記述情報を読み込み、遅延調整のために必要な情報を生成する半導体設計支援装置であって、前記回路記述情報に基づき論理シミュレーションを実施して論理シミュレーション結果情報を出力する論理シミュレーション手段と、前記論理シミュレーション結果情報から信号合流点における複数ブロックの信号の遅延量情報を求める遅延量情報取得手段と、前記遅延量情報から遅延調整のために必要な調整遅延量情報を計算する調整遅延量計算手段と、前記調整遅延量情報から遅延調整のために必要な調整遅延情報を生成する調整遅延情報生成手段とを備える。【選択図】図３
2011180841.tif 000002
【特許請求の範囲】
【請求項１】
回路記述情報を読み込み、遅延調整のために必要な情報を生成する半導体設計支援装置であって、
前記回路記述情報に基づき論理シミュレーションを実施して論理シミュレーション結果情報を出力する論理シミュレーション手段と、
前記論理シミュレーション結果情報から信号合流点における複数ブロックの信号の遅延量情報を求める遅延量情報取得手段と、
前記遅延量情報から遅延調整のために必要な調整遅延量情報を計算する調整遅延量計算手段と、
前記調整遅延量情報から遅延調整のために必要な調整遅延情報を生成する調整遅延情報生成手段と
を備えたことを特徴とする半導体設計支援装置。
【請求項２】
請求項１に記載の半導体設計支援装置において、
前記論理シミュレーション手段は、前記回路記述情報に基づく回路上の各部の信号の時刻に対する値の変化を前記論理シミュレーション結果情報に記録する
ことを特徴とする半導体設計支援装置。
【請求項３】
請求項１に記載の半導体設計支援装置において、
前記遅延量情報取得手段は、前記論理シミュレーション結果情報から信号合流点における複数ブロックの信号の遅延量を取得して前記遅延量情報として出力する
ことを特徴とする半導体設計支援装置。
【請求項４】
請求項１に記載の半導体設計支援装置において、
前記調整遅延量計算手段は、前記遅延量情報から信号合流点における複数ブロックの信号の遅延量の差を計算して前記調整遅延量情報として出力する
ことを特徴とする半導体設計支援装置。
【請求項５】
請求項１に記載の半導体設計支援装置において、
前記調整遅延情報生成手段は、前記調整遅延量情報の示す遅延量の差に相当する遅延回路を、遅延量の少ないブロック側に追加して前記調整遅延情報として出力する
ことを特徴とする半導体設計支援装置。
【請求項６】
請求項１に記載の半導体設計支援装置において、
前記調整遅延情報生成手段は、前記調整遅延量情報の示す遅延量の差に相当する遅延回路を、遅延量の多いブロック側から削除して前記調整遅延情報として出力する
ことを特徴とする半導体設計支援装置。
【請求項７】
請求項１に記載の半導体設計支援装置において、
前記回路記述情報は、遅延調整が必要な箇所に予め遅延用の記述がされており、
前記調整遅延情報生成手段は、遅延量の多いブロック側の前記遅延回路の遅延量を「０」に設定し、遅延量の少ないブロック側の前記遅延回路の遅延量を前記調整遅延量情報の示す遅延量の差に設定する
ことを特徴とする半導体設計支援装置。
【請求項８】
請求項１に記載の半導体設計支援装置において、
読み込んだ高位レベルの前記回路記述情報と生成された調整遅延情報から、遅延調整済みの下位レベルの回路を生成する回路生成手段
を備えたことを特徴とする半導体設計支援装置。
【請求項９】
回路記述情報を読み込み、遅延調整のために必要な情報を生成する半導体設計支援装置の制御方法であって、
前記回路記述情報に基づき論理シミュレーションを実施して論理シミュレーション結果情報を出力する論理シミュレーション工程と、
前記論理シミュレーション結果情報から信号合流点における複数ブロックの信号の遅延量情報を求める遅延量情報取得工程と、
前記遅延量情報から遅延調整のために必要な調整遅延量情報を計算する調整遅延量計算工程と、
前記調整遅延量情報から遅延調整のために必要な調整遅延情報を生成する調整遅延情報生成工程と
を備えたことを特徴とする半導体設計支援制御方法。
【請求項１０】
回路記述情報を読み込み、遅延調整のために必要な情報を生成する半導体設計支援装置を構成するコンピュータを、
前記回路記述情報に基づき論理シミュレーションを実施して論理シミュレーション結果情報を出力する論理シミュレーション手段、
前記論理シミュレーション結果情報から信号合流点における複数ブロックの信号の遅延量情報を求める遅延量情報取得手段、
前記遅延量情報から遅延調整のために必要な調整遅延量情報を計算する調整遅延量計算手段、
前記調整遅延量情報から遅延調整のために必要な調整遅延情報を生成する調整遅延情報生成手段
として機能させる半導体設計支援制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体製品の電子的な設計技術に関する。
【背景技術】
【０００２】
パイプライン回路を設計する場合、複数ブロック間において各ブロックのレイテンシ（遅延量）が同じになるように設計しなければならない場合がある。レイテンシとは、ブロックの入力にデータが到達してからブロックの出力にデータが伝搬するまでのクロックサイクル数を意味する。
【０００３】
このようなレイテンシ調整について図１を用いて説明する。図１におけるブロックＡのレイテンシは「３」であり、ブロックＢにおけるレイテンシは「２」である。すなわち、ブロックＡでは入力AIN0の変化がレジスタ類の介在により３クロック目に出力AOUT0として出力するため、レイテンシは「３」となる。組み合せ回路はレイテンシに影響しない。また、ブロックＢでは入力BIN0の変化が２クロック目に出力BOUT0として出力するため、レイテンシは「２」となる。
【０００４】
このようなパイプライン回路の場合、図１のブロックＣにおける入力CIN0と入力CIN1でのデータ到達時刻（クロックサイクル時刻）を同じにしなければならない場合がある。図１の場合、ブロックＡのレイテンシが「３」なので、ブロックＣの入力CIN0にデータが到達するのはブロックＡの入力AIN0にデータが到達してから３クロック後である。一方、ブロックＢのレイテンシは「２」なので、ブロックＣの入力CIN1にデータが到達するのはブロックＢの入力BIN0にデータが到達してから２クロック後である。なお、ブロックＡの入力AIN0とブロックＢの入力BIN0へのデータ到達時刻は同じであるとする。
【０００５】
このような状況のもと、ブロックＣの入力CIN0と入力CIN1でのデータ到達時刻を同じにするための従来手法は次のようになる。
【０００６】
先ず、ブロックＣの入力CIN0と入力CIN1でのデータ到達時刻を論理シミュレーション結果から目視により確認し、データ到達時刻の差を人手により計算する。
【０００７】
次いで、データ到達時刻に差がある場合は、レイテンシ調整のためのレジスタ（フリップフロップ）を人手により回路データ中に挿入する。図２はブロックＢにレジスタDELAY_FFを追加した状態を示している。
【０００８】
このようにデータ到達時刻の差を人手により計算してレジスタを挿入する場合、データ合流点が多数あると、データ到達時刻が揃っていない箇所を見逃す、あるいは、データ到達時刻の差を間違って計算してしまう可能性があり、設計効率が低下する。
【０００９】
このような問題を解決するため、特許文献１には、並列動作する複数スレッド間のレイテンシ調整を高位合成手法によって行う手法が開示されている。
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、特許文献１にて開示されている手法では、高位合成手法に基づくものであるため、高位合成手法ではない既存の設計手法にて設計されたブロックと高位合成手法によって設計されたブロックとのレイテンシを調整することはできない。また、高位設計手法ではない既存の設計手法にて設計されたブロックのみから構成される回路に対しても適用できない。
【００１１】
本発明は上記の従来の問題点に鑑み提案されたものであり、その目的とするところは、高位設計手法ではない既存の設計手法にて設計されたブロックに対してもレイテンシ調整を可能とする半導体設計支援装置を提供することにある。
【課題を解決するための手段】
【００１２】
上記の課題を解決するため、本発明にあっては、請求項１に記載されるように、回路記述情報を読み込み、遅延調整のために必要な情報を生成する半導体設計支援装置であって、前記回路記述情報に基づき論理シミュレーションを実施して論理シミュレーション結果情報を出力する論理シミュレーション手段と、前記論理シミュレーション結果情報から信号合流点における複数ブロックの信号の遅延量情報を求める遅延量情報取得手段と、前記遅延量情報から遅延調整のために必要な調整遅延量情報を計算する調整遅延量計算手段と、前記調整遅延量情報から遅延調整のために必要な調整遅延情報を生成する調整遅延情報生成手段とを備える半導体設計支援装置を要旨としている。
【００１３】
また、請求項２に記載されるように、請求項１に記載の半導体設計支援装置において、前記論理シミュレーション手段は、前記回路記述情報に基づく回路上の各部の信号の時刻に対する値の変化を前記論理シミュレーション結果情報に記録するようにすることができる。
【００１４】
また、請求項３に記載されるように、請求項１に記載の半導体設計支援装置において、前記遅延量情報取得手段は、前記論理シミュレーション結果情報から信号合流点における複数ブロックの信号の遅延量を取得して前記遅延量情報として出力するようにすることができる。
【００１５】
また、請求項４に記載されるように、請求項１に記載の半導体設計支援装置において、前記調整遅延量計算手段は、前記遅延量情報から信号合流点における複数ブロックの信号の遅延量の差を計算して前記調整遅延量情報として出力するようにすることができる。
【００１６】
また、請求項５に記載されるように、請求項１に記載の半導体設計支援装置において、前記調整遅延情報生成手段は、前記調整遅延量情報の示す遅延量の差に相当する遅延回路を、遅延量の少ないブロック側に追加して前記調整遅延情報として出力するようにすることができる。
【００１７】
また、請求項６に記載されるように、請求項１に記載の半導体設計支援装置において、前記調整遅延情報生成手段は、前記調整遅延量情報の示す遅延量の差に相当する遅延回路を、遅延量の多いブロック側から削除して前記調整遅延情報として出力するようにすることができる。
【００１８】
また、請求項７に記載されるように、請求項１に記載の半導体設計支援装置において、前記回路記述情報は、遅延調整が必要な箇所に予め遅延用の記述がされており、前記調整遅延情報生成手段は、遅延量の多いブロック側の前記遅延回路の遅延量を「０」に設定し、遅延量の少ないブロック側の前記遅延回路の遅延量を前記調整遅延量情報の示す遅延量の差に設定するようにすることができる。
【００１９】
また、請求項８に記載されるように、請求項１に記載の半導体設計支援装置において、読み込んだ高位レベルの前記回路記述情報と生成された調整遅延情報から、遅延調整済みの下位レベルの回路を生成する回路生成手段を備えるようにすることができる。
【００２０】
また、請求項９に記載されるように、回路記述情報を読み込み、遅延調整のために必要な情報を生成する半導体設計支援装置の制御方法であって、前記回路記述情報に基づき論理シミュレーションを実施して論理シミュレーション結果情報を出力する論理シミュレーション工程と、前記論理シミュレーション結果情報から信号合流点における複数ブロックの信号の遅延量情報を求める遅延量情報取得工程と、前記遅延量情報から遅延調整のために必要な調整遅延量情報を計算する調整遅延量計算工程と、前記調整遅延量情報から遅延調整のために必要な調整遅延情報を生成する調整遅延情報生成工程とを備える半導体設計支援制御方法として構成することができる。
【００２１】
また、請求項１０に記載されるように、回路記述情報を読み込み、遅延調整のために必要な情報を生成する半導体設計支援装置を構成するコンピュータを、前記回路記述情報に基づき論理シミュレーションを実施して論理シミュレーション結果情報を出力する論理シミュレーション手段、前記論理シミュレーション結果情報から信号合流点における複数ブロックの信号の遅延量情報を求める遅延量情報取得手段、前記遅延量情報から遅延調整のために必要な調整遅延量情報を計算する調整遅延量計算手段、前記調整遅延量情報から遅延調整のために必要な調整遅延情報を生成する調整遅延情報生成手段として機能させる半導体設計支援制御プログラムとして構成することができる。
【発明の効果】
【００２２】
本発明の半導体設計支援装置にあっては、データ到達時刻の差を計算する手段を特許文献１に開示されているような高位合成装置に持たせるのではなく、論理シミュレータ側に持たせているため、高位設計手法ではない既存の設計手法にて設計されたブロックに対してもレイテンシ調整を可能とする。
【図面の簡単な説明】
【００２３】
【図１】従来におけるレイテンシ調整の説明図（その１）である。
【図２】従来におけるレイテンシ調整の説明図（その２）である。
【図３】本発明の第１の実施形態にかかる半導体設計支援装置の構成例を示す図である。
【図４】対象となる回路記述情報の例を示す図である。
【図５】レジスタが挿入された回路記述情報の例を示す図である。
【図６】ブロック外にレジスタが挿入された回路記述情報の例を示す図である。
【図７】本発明の第２の実施形態にかかる半導体設計支援装置の構成例を示す図である。
【図８】対象となる回路記述情報の例を示す図である。
【図９】ＳｙｓｔｅｍＣによる高位レベルでの回路記述例を示す図である。
【図１０】高位合成により生成されたＲＴＬの例を示す図である。
【図１１】ＦＩＦＯの深さが調整された状態の例を示す図である。
【図１２】２回目の高位合成により生成されたＲＴＬの例を示す図である。
【発明を実施するための形態】
【００２４】
以下、本発明の好適な実施形態につき説明する。
【００２５】
＜第１の実施形態＞
図３は本発明の第１の実施形態にかかる半導体設計支援装置１の構成例を示す図である。
【００２６】
図３において、半導体設計支援装置１は単体のコンピュータ装置あるいはネットワーク接続された複数のコンピュータ装置から構成される。半導体設計支援装置１の記憶領域２には、回路記述情報２１と論理シミュレーション結果情報２２と遅延量情報２３と調整遅延量情報２４と調整遅延情報２５とが保持される。半導体設計支援装置１の演算機構３においては、コンピュータプログラムの動作により、論理シミュレーション部（論理シミュレータ）３１と遅延量情報取得部３２と調整遅延量計算部３３と調整遅延情報生成部３４とが構築される。
【００２７】
論理シミュレーション部３１は、記憶領域２から回路記述情報２１を入力し、論理シミュレーションを行って、記憶領域２に論理シミュレーション結果情報２２を出力する。回路記述情報２１の具体的な例としては、Ｖｅｒｉｌｏｇ  ＨＤＬやＳｙｓｔｅｍＣ等のハードウェア記述言語による回路記述等が考えられる。本実施形態では、回路記述情報２１としてＶｅｒｉｌｏｇ  ＨＤＬによるＲＴＬ（Register Transfer Level）記述を具体例として使用する。
【００２８】
論理シミュレーション結果情報２２には、時刻（クロックサイクル時刻）に対応付けられた信号名と信号値の情報が含まれる。なお、論理シミュレーション結果情報２２を記憶領域２に明示的に出力せずに、次段の遅延量情報取得部３２が、論理シミュレーション部３１に搭載されるＡＰＩ（Application Programming Interface）を使用して論理シミュレーション部３１から必要な論理シミュレーション結果情報を取得するようにしてもよい。具体的なＡＰＩとしては「ＶＰＩ（Verilog Procedual Interface）」等がある。
【００２９】
論理シミュレーション部３１は、通常は回路の機能を検証するためのテストパターンを回路記述上の外部入力に印加する。外部入力は、ＲＴＬ記述の場合は外部入力のｖａｌｉｄ信号となり、これに論理値「０」もしくは「１」を印加することで論理シミュレーションを行う。
【００３０】
上記テストパターンにおいては、論理シミュレーションの開始時に回路内部のｖａｌｉｄ信号を論理値「０」に初期化し、所定のタイミングで外部入力であるｖａｌｉｄ信号に論理値「１」を印加する。外部入力であるｖａｌｉｄ信号に論理値「１」が印加された後、論理シミュレーション中に内部のｖａｌｉｄ信号の論理値が「１」に変化した場合、その変化した時刻にデータがその内部の信号位置に到達したことになる。この到達時刻の差からレイテンシを知ることが可能となる。
【００３１】
ｖａｌｉｄ信号についてさらに具体的に図４を使って説明する。図４は対象となる回路記述情報２１の例を示す図である。図４において、valid_aとvalid_bが外部入力であるｖａｌｉｄ信号に相当する。また、valid_c0とvalid_c1が内部のｖａｌｉｄ信号に相当する。論理シミュレーション開始時には、valid_a、valid_b、valid_c0、valid_c1は論理シミュレーション部３１により論理値「０」に初期化される。その後、論理シミュレーション部３１により、外部入力であるvalid_aとvalid_bに論理値「１」が印加される。外部入力のvalid_aとvalid_bへの論理値「１」の印加と、内部のvalid_c0、valid_c1での論理値「１」の発生は、対応する時刻とともに論理シミュレーション結果情報２２に記録される。
【００３２】
図３に戻り、遅延量情報取得部３２は、記憶領域２から論理シミュレーション結果情報２２を入力し、あるいは論理シミュレーション部３１からＡＰＩを介して論理シミュレーション結果情報を取得し、所定の情報抽出処理を行って、記憶領域２に遅延量情報２３を出力する。
【００３３】
図４に示した回路記述情報２１に基づく論理シミュレーション結果情報２２には、外部信号であるvalid_aとvalid_bに論理値「１」が印加された時刻を仮に「０」とし、時刻「１」は１クロックサイクルに相当するものとすると、valid_c0が論理値「１」に変化するのは時刻「３」、valid_c1が論理値「１」に変化するのは時刻「２」という情報が含まれる。従って、遅延量情報取得部３２は、valid_c0すなわちブロックＡのレイテンシが「３」、valid_c1すなわちブロックＢのレイテンシが「２」という情報を取得し、記憶領域２に遅延量情報２３として出力する。
【００３４】
図３に戻り、調整遅延量計算部３３は、記憶領域２から遅延量情報２３を入力し、レイテンシ調整のために追加すべき遅延量の計算を行って、記憶領域２に調整遅延量情報２４を出力する。すなわち、調整遅延量計算部３３は、内部の信号の合流点における各ブロックのレイテンシの差を計算し、調整遅延量情報２４として出力する。図４に示した回路記述情報２１に基づく遅延量情報２３には、valid_c0すなわちブロックＡのレイテンシが「３」、valid_c1すなわちブロックＢのレイテンシが「２」という情報が含まれる。従って、調整遅延量計算部３３は、［ブロックＡのレイテンシ］−［ブロックＢのレイテンシ］＝３−２＝１を計算し、当該合流点における調整遅延量情報２４として「１」を出力する。
【００３５】
図３に戻り、調整遅延情報生成部３４は、記憶領域２から回路記述情報２１と調整遅延量情報２４を入力し、レイテンシ調整のために必要な遅延情報を生成し、記憶領域２に調整遅延情報２５として出力する。本実施形態では、回路記述情報２１としてＶｅｒｉｌｏｇ  ＨＤＬによるＲＴＬ記述を例としており、この場合、調整遅延情報２５はレジスタ記述を追加したＲＴＬ記述となる。なお、レジスタ記述を追加したＲＴＬ記述の全体を調整遅延情報２５として出力することなく、レジスタ記述を追加した部分のみの情報とすることもできる。
【００３６】
図４に示した回路記述情報２１に基づいてvalid_c0とvalid_c1への信号到達時刻を同じにする方法としては、ブロックＢにレジスタを１つ追加してブロックＢのレイテンシを「３」にするという方法と、逆にブロックＡのレジスタを１つ削除してブロックＡのレイテンシを「２」にするという方法が考えられる。ここでは、ブロックＢへのレジスタ追加を考えることにする。
【００３７】
従って、調整遅延情報生成部３４は、図５に示すように、ブロックＢにレジスタDELAY_REG1を追加するとともに、入力BIN0が伝搬するデータパス部分に対してもレジスタDELAY_REG0を追加した回路記述を生成し、調整遅延情報２５として記憶領域２に出力する。なお、図５ではブロックＢの内部にレジスタを追加しているが、図６に示すようにブロックＢの外部にレジスタDELAY_REG0、DELAY_REG1を追加するという方法もある。この場合は、既存のブロックＢを修正することなくレイテンシを調整することが可能となる。
【００３８】
＜第２の実施形態＞
図７は本発明の第２の実施形態にかかる半導体設計支援装置１の構成例を示す図である。
【００３９】
図７において、半導体設計支援装置１は単体のコンピュータ装置あるいはネットワーク接続された複数のコンピュータ装置から構成される。半導体設計支援装置１の記憶領域２には、回路記述情報２０１と回路記述情報２０２と論理シミュレーション結果情報２０３と遅延量情報２０４と調整遅延量情報２０５と調整遅延情報２０６とが保持される。半導体設計支援装置１の演算機構３においては、コンピュータプログラムの動作により、高位合成部３０１と論理シミュレーション部（論理シミュレータ）３０２と遅延量情報取得部３０３と調整遅延量計算部３０４と調整遅延情報生成部３０５とが構築される。
【００４０】
前述した第１の実施形態ではＲＴＬ記述等の回路記述情報２１から処理を開始したが、この第２の実施形態ではＳｙｓｔｅｍＣ等により記述された高位レベルの回路記述等である回路記述情報２０１から処理を開始するものとしている。
【００４１】
先ず、事前の処理として、回路記述情報２０１内のレイテンシを調整する必要のある箇所に、深さ「１」のＦＩＦＯ（First-In First-Out）を配置する。この配置は半導体設計支援装置１のユーザが自ら行う。図８は、回路記述情報２０１として、FIFO1、FIFO2を配置した高位レベルでの記述概念を示している。また、図９はＳｙｓｔｅｍＣの記述例を示している。図９において、SC_MODULE(TOP)において、FIFO1、FIFO2の配置およびブロックＡ、Ｂ、Ｃの各信号との接続が記述されている。DEPTH1、DEPTH2は、FIFO1、FIFO2のそれぞれの深さを表し、その具体的な値はユーザが指定できるようになっている。ここではDEPTH1、DEPTH2ともに最初は「１」に設定しておく。
【００４２】
図７に戻り、高位合成部３０１は、記憶領域２から回路記述情報２０１を入力し、回路記述情報２０１に含まれる機能（動作）記述から高位合成を行って、記憶領域２に回路記述情報２０２を出力する。回路記述情報２０２としては、Ｖｅｒｉｌｏｇ  ＨＤＬによるＲＴＬ記述等を想定している。ここでは予め深さ「１」のＦＩＦＯを配置したが、文法上許されるのであれば、深さ「０」のＦＩＦＯを配置（記述）してもよい。
【００４３】
図８に示した回路記述情報２０１から高位合成したＲＴＬ記述等による回路記述情報２０２を図１０に示す。なお、ブロックＡとブロックＢはそれぞれ個別に高位合成を行うものとする。ブロックの規模が大きく一括では高位合成ができない場合、個々のブロックを個別に高位合成するケースは十分に想定できる。高位合成を行った場合、回路記述情報内のＦＩＦＯに対して、ＲＴＬでは深さ「１」のＦＩＦＯ（FIFO1_0、FIFO1_1、FIFO2_0、FIFO2_1）が生成される。
【００４４】
図７に戻り、論理シミュレーション部３０２は、記憶領域２から回路記述情報２０２を入力し、論理シミュレーションを行って、記憶領域２に論理シミュレーション結果情報２０３を出力する。論理シミュレーション結果情報２０３には、時刻（クロックサイクル時刻）に対応付けられた信号名と信号値の情報が含まれる。なお、論理シミュレーション結果情報２０３を記憶領域２に明示的に出力せずに、次段の遅延量情報取得部３０３が、論理シミュレーション部３０２に搭載されるＡＰＩを使用して論理シミュレーション部３０２から必要な論理シミュレーション結果情報を取得するようにしてもよい。
【００４５】
論理シミュレーション部３０２は、後続の機能部で各ブロックのレイテンシを知ることができるように、論理シミュレーションの開始時に回路内部のｖａｌｉｄ信号を論理値「０」に初期化し、所定のタイミングで外部入力であるｖａｌｉｄ信号に論理値「１」を印加する。図１０の回路記述情報２０２では、論理シミュレーション開始時に、valid_a、valid_b、valid_c0、valid_c1等は論理シミュレーション部３０２により論理値「０」に初期化される。その後、論理シミュレーション部３０２により、外部入力であるvalid_aとvalid_bに論理値「１」が印加される。外部入力のvalid_aとvalid_bへの論理値「１」の印加と、内部のvalid_c0、valid_c1での論理値「１」の発生は、対応する時刻とともに論理シミュレーション結果情報２０３に記録される。
【００４６】
図７に戻り、遅延量情報取得部３０３は、記憶領域２から論理シミュレーション結果情報２０３を入力し、あるいは論理シミュレーション部３０２からＡＰＩを介して論理シミュレーション結果情報を取得し、所定の情報抽出処理を行って、記憶領域２に遅延量情報２０４を出力する。
【００４７】
図１０に示した回路記述情報２０２に基づく論理シミュレーション結果情報２０３には、外部信号であるvalid_aとvalid_bに論理値「１」が印加された時刻を仮に「０」とし、時刻「１」は１クロックサイクルに相当するものとすると、valid_c0が論理値「１」に変化するのは時刻「５」、valid_c1が論理値「１」に変化するのは時刻「３」という情報が含まれる。従って、遅延量情報取得部３０３は、valid_c0のレイテンシが「５」（ブロックＡのレイテンシは「４」）、valid_c1のレイテンシが「３」（ブロックＢのレイテンシは「２」）という情報を取得し、記憶領域２に遅延量情報２０４として出力する。
【００４８】
図７に戻り、調整遅延量計算部３０４は、記憶領域２から遅延量情報２０４を入力し、レイテンシ調整のために追加すべき遅延量の計算を行って、記憶領域２に調整遅延量情報２０５を出力する。すなわち、調整遅延量計算部３０４は、内部の信号の合流点における信号のレイテンシの差を計算し、調整遅延量情報２０５として出力する。図１０に示した回路記述情報２０２に基づく遅延量情報２０４には、valid_c0のレイテンシが「５」、valid_c1のレイテンシが「３」という情報が含まれる。従って、調整遅延量計算部３０４は、［valid_c0のレイテンシ］−［valid_c1のレイテンシ］＝５−３＝２を計算し、当該合流点における調整遅延量情報２０５として「２」を出力する。
【００４９】
図７に戻り、調整遅延情報生成部３０５は、記憶領域２から調整遅延量情報２０５を入力し、レイテンシ調整のために必要な深さ情報を生成し、記憶領域２に調整遅延情報２０６として出力する。
【００５０】
図１０に示した回路記述情報２０２に基づく場合、調整遅延情報生成部３０５は、レイテンシの長い方の経路に属するFIFO1_0、FIFO1_1の深さを「０」にし、また、レイテンシの短い方の経路に属するFIFO2_0、FIFO2_1の深さは、valid_c0とvalid_c1の到達時刻の差に相当する「２」とする。この場合、調整後の回路記述は図１１のようになる。調整前の図１０の状態では、valid_c1にデータが到着するのは時刻「３」である。しかし、この時刻にはvalid_c0がまだ到着していないので、ブロックＣは既に到着しているvalid_c1のデータを使って演算することができず、時刻「４」にブロックＢからやって来るデータを取り込むことができない。この取り込むことのできないデータはFIFO2_0とFIFO2_1に蓄えられる。時刻「４」になってブロックＣのvalid_c0が到達し、ブロックＣは演算を開始する。以降は、毎サイクル、valid_c0とvalid_c1にデータは到達し、レイテンシの調整が実現できたことになる。なお、FIFO1_0などが遅延調整のＦＩＦＯであるという情報は、ＲＴＬ記述中でのレジスタの名前、例えば「FIFO」という文字列を含むというルール等を設けることにより判断することが可能である。
【００５１】
図７に戻り、高位合成部３０１は、記憶領域２から回路記述情報２０１と回路記述情報２０２と調整遅延情報２０６を入力し、調整遅延情報２０６に含まれるＦＩＦＯの深さ情報を用いて再度、高位合成を実施し、調整遅延情報２０６に高位合成結果を出力する。ここでいうＦＩＦＯの深さ情報とは、図８の回路記述情報２０１においては、FIFO1の深さが「０」、FIFO2の深さが「２」に変更されるという情報である。更に言うと、図９におけるDEPTH1の値が「０」、DEPTH2の値が「２」という情報である。ただし、この再高位合成ではブロックＡ、ブロックＢに対して高位合成は実施せず、図８におけるFIFO1、FIFO2に対してのみ高位合成を実施する。ブロックＡ、ブロックＢに関しては１回目の高位合成の結果得られたＲＴＬ記述である回路記述情報２０２を再利用する。２回目の高位合成の結果得られるＲＴＬ記述である調整遅延情報２０６を図１２に示す。図１２においては、深さが「０」となったＦＩＦＯ（FIFO1_0、FIFO1_1）が削除されている。なお、再度の高位合成に代え、深さが「０」のＦＩＦＯを回路記述上でスキャンして削除するようにしてもよい。
【００５２】
＜変形例＞
上述した第１および第２の実施形態においては、レイテンシ調整のために追加すべき遅延量が、例えば、画像形成装置に適用した場合に、画像データの複数ライン分といったように、非常に多くなる場合がある。この場合はレジスタ（フリップフロップ）ではなく、ＲＡＭ（Random Access Memory）により構成された遅延回路を使うようにしてもよい。
【００５３】
＜総括＞
以上説明した実施形態によれば、次のような利点がある。
（１）レイテンシ計算を従来のように目視ではなく、論理シミュレータを使って計算するので、レイテンシ計算を正確に実施することができる。
（２）レイテンシ計算を高位合成装置ではなく論理シミュレータを使って計算するので、高位合成装置に入力できない回路記述に対してもレイテンシ計算が可能となる。
（３）レイテンシ調整の必要な箇所を回路記述内に埋め込む場合、レイテンシ調整の必要な箇所を指定するための新たな情報媒体が不要となる。
（４）レイテンシ調整に必要な遅延量の情報を生成しているので、その情報を使って再度、高位合成を実施することによりレイテンシの調整が可能となる。
【００５４】
以上、本発明の好適な実施の形態により本発明を説明した。ここでは特定の具体例を示して本発明を説明したが、特許請求の範囲に定義された本発明の広範な趣旨および範囲から逸脱することなく、これら具体例に様々な修正および変更を加えることができることは明らかである。すなわち、具体例の詳細および添付の図面により本発明が限定されるものと解釈してはならない。
【符号の説明】
【００５５】
１          半導体設計支援装置
２          記憶領域
２１        回路記述情報
２２        論理シミュレーション結果情報
２３        遅延量情報
２４        調整遅延量情報
２５        調整遅延情報
２０１      回路記述情報
２０２      回路記述情報
２０３      論理シミュレーション結果情報
２０４      遅延量情報
２０５      調整遅延量情報
２０６      調整遅延情報
３          演算機構
３１        論理シミュレーション部
３２        遅延量情報取得部
３３        調整遅延量計算部
３４        調整遅延情報生成部
３０１      高位合成部
３０２      論理シミュレーション部
３０３      遅延量情報取得部
３０４      調整遅延量計算部
３０５      調整遅延情報生成部
【先行技術文献】
【特許文献】
【００５６】
【特許文献１】特許第３７６３７００号公報
【図１】
2011180841.tif 000003
【図２】
2011180841.tif 000004
【図３】
2011180841.tif 000005
【図４】
2011180841.tif 000006
【図５】
2011180841.tif 000007
【図６】
2011180841.tif 000008
【図７】
2011180841.tif 000009
【図８】
2011180841.tif 000010
【図９】
2011180841.tif 000011
【図１０】
2011180841.tif 000012
【図１１】
2011180841.tif 000013
【図１２】
2011180841.tif 000014