(57)【要約】【課題】仕様を入力することなく生成可能で、回路のタイミング仕様が変化しても、容易に最適な調整機構を生成し直すことができ、調整機構の設計期間を短縮することが可能な集積回路生成装置およびその方法、並びにプログラムを提供する。【解決手段】集積回路を検証するためのテスト回路情報を記憶するテスト回路記憶部１１と、回路情報を記憶する回路情報記憶部１２と、調整機構の構成情報を構成情報生成中に集計するための回路の動作情報を記憶する構成情報出力回路記憶部１３と、テスト回路記憶部、回路情報記憶部、および構成情報出力回路記憶部に記憶されているテスト回路の回路情報、集積回路の回路情報、回路の動作情報を用いて調整機構の構成情報を生成し、集計する構成情報生成部１４と、構成情報生成部による調整機構構成情報をもとに最適な調整機構の回路情報を生成する回路生成装置１６と有する。【選択図】図３
2008242993.tif 000002
【特許請求の範囲】
【請求項１】
並列に動作している回路から逐次的に出力される値のタイミングを調整する調整機構を含む集積回路を生成する集積回路生成装置であって、
集積回路を検証するためのテスト回路情報を記憶するテスト回路記憶部と、
回路情報を記憶する回路情報記憶部と、
調整機構の構成情報を構成情報生成中に集計するための回路の動作情報を記憶する構成情報出力回路記憶部と、
上記テスト回路記憶部、回路情報記憶部、および構成情報出力回路記憶部に記憶されているテスト回路の回路情報、集積回路の回路情報、回路の動作情報を用いて調整機構の構成情報を生成し、集計する構成情報生成部と、
上記構成情報生成部による調整機構構成情報をもとに最適な調整機構の回路情報を生成する回路生成装置と
を有する集積回路生成装置。
【請求項２】
上記構成情報出力回路記憶部に記憶されている構成情報出力回路は、処理するデータに有効または無効な値が設定されていることを示す有効信号に対応したカウンタを含み、
上記構成情報生成部は、
有効信号の状態に応じて対応するカウンタ値を設定して、構成情報の生成、集計を行う
請求項１記載の集積回路生成装置。
【請求項３】
上記回路生成装置は、
上記構成情報生成部で生成された構成情報に基づいて、調整機構回路を複数生成した場合の各回路の面積を見積もり、見積もった面積のうち小さい面積の回路を生成する
請求項１記載の集積回路生成装置。
【請求項４】
上記回路生成装置は、
面積の見積もりを、調整機構回路のアーキテクチャ毎に決まる近似式に基づいて行う
請求項３記載の集積回路生成装置。
【請求項５】
上記構成情報生成部で生成された調整機構構成情報を記憶する構成情報記憶部を含み、
上記回路生成装置は、
上記構成情報記憶部に記憶された構成情報を読み出して回路情報を生成する
請求項１から４のいずれか一に記載の集積回路生成装置。
【請求項６】
上記調整機構は、
並列に動作する複数の回路から逐次的に出力される値にタイミングをそろえるための同期機構を含む
請求項１から５のいずれか一に記載の集積回路生成装置。
【請求項７】
上記調整機構は、
並列にアクセスするタイミングを調整する並列アクセス機構を含む
請求項１から５のいずれか一に記載の集積回路生成装置。
【請求項８】
並列に動作している回路から逐次的に出力される値のタイミングを調整する調整機構を含む集積回路を生成する集積回路生成方法であって、
集積回路を検証するためのテスト回路情報、集積回路の回路情報、構成情報出力回路の動作情報を用いて調整機構の構成情報を生成し、集計する構成情報生成ステップと、
上記構成情報生成ステップによる調整機構構成情報をもとに最適な調整機構の回路情報を生成する回路生成ステップと
を有する集積回路生成方法。
【請求項９】
上記構成情報出力回路に、処理するデータに有効または無効な値が設定されていることを示す有効信号に対応したカウンタを持たせ、
上記構成情報生成ステップにおいては、
有効信号の状態に応じて対応するカウンタ値を設定して、構成情報の生成、集計を行う
請求項８記載の集積回路生成方法。
【請求項１０】
上記回路生成ステップにおいては、
上記構成情報生成部で生成された構成情報に基づいて、調整機構回路を複数生成した場合の各回路の面積を見積もり、見積もった面積のうち小さい面積の回路を生成する
請求項８記載の集積回路生成方法。
【請求項１１】
並列に動作している回路から逐次的に出力される値のタイミングを調整する調整機構を含む集積回路を生成する処理であって、
集積回路を検証するためのテスト回路情報、集積回路の回路情報、構成情報出力回路の動作情報を用いて調整機構の構成情報を生成し、集計する構成情報生成処理と、
上記構成情報生成ステップによる調整機構構成情報をもとに最適な調整機構の回路情報を生成する回路生成処理と
をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、並列に動作する複数の回路から逐次的に出力される値にタイミングをそろえるための同期機構あるいは複数の回路から並列にアクセスするタイミングを調整する並列アクセス機構等の調整機構を含む集積回路を生成する集積回路生成装置およびその方法、並びにプログラムに関するものである。
【背景技術】
【０００２】
逐次的に値を出力する回路が複数存在している集積回路においては、並列に動作しているそれぞれの回路から逐次的に出力された値のタイミングをそろえるための同期機構が必要になる。
【０００３】
図１は、一般的な同期機構回路生成装置の構成例を示すブロック図である。
図１の同期機構回路生成装置は、同期機構構成記憶部１、同期機構生成装置２、同期機構回路情報記憶部３、および表示装置４を有する。
【０００４】
この同期機構回路生成装置において、並列に動作しているそれぞれの回路から逐次的に出力された値のタイミングをそろえるための同期機構を生成する場合、図１に示すように、同期機構構成記憶部１に記憶させた同期機構構成情報を同期機構生成装置２に与える必要がある。
【０００５】
また、図２は、一般的な並列アクセス機構回路生成装置の構成例を示すブロック図である。
図２の並列アクセス機構回路生成装置は、並列アクセス機構構成記憶部５、並列アクセス機構生成装置６、並列アクセス機構回路情報記憶部７、および表示装置８を有する。
【０００６】
この並列アクセス機構回路生成装置においても、並列アクセス機構を生成する場合、図２に示すように、並列アクセス機構構成記憶部５に記憶させた並列アクセス機構構成情報を並列アクセス機構生成装置６に与える必要がある。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかし、集積回路の大規模化に伴い、同期機構構成情報や並列アクセス機構構成情報を適切に決定することは困難で時間がかかるようになってきている。また、回路の仕様が変更されるたびに、同期機構や並列アクセス機構のタイミング調整機構の構成情報を決定し直す必要がある。
このため、上述した同期機構回路生成装置および並列アクセス機構回路生成装置では、同期機構および並列アクセス機構の調整機構の設計期間が増大するという不利益があった。
【０００８】
本発明は、仕様を入力することなく生成可能で、回路のタイミング仕様が変化しても、容易に最適な同期機構、並列アクセス機構等の調整機構を生成し直すことができ、同期機構、並列アクセス機構等の調整機構の設計期間を短縮することが可能な集積回路生成装置およびその方法、並びにプログラムを提供することにある。
【課題を解決するための手段】
【０００９】
本発明の第１の観点は、並列に動作している回路から逐次的に出力される値のタイミングを調整する調整機構を含む集積回路を生成する集積回路生成装置であって、集積回路を検証するためのテスト回路情報を記憶するテスト回路記憶部と、回路情報を記憶する回路情報記憶部と、調整機構の構成情報を構成情報生成中に集計するための回路の動作情報を記憶する構成情報出力回路記憶部と、上記テスト回路記憶部、回路情報記憶部、および構成情報出力回路記憶部に記憶されているテスト回路の回路情報、集積回路の回路情報、回路の動作情報を用いて調整機構の構成情報を生成し、集計する構成情報生成部と、上記構成情報生成部による調整機構構成情報をもとに最適な調整機構の回路情報を生成する回路生成装置とを有する。
【００１０】
本発明の第２の観点は、並列に動作している回路から逐次的に出力される値のタイミングを調整する調整機構を含む集積回路を生成する集積回路生成方法であって、集積回路を検証するためのテスト回路情報、集積回路の回路情報、構成情報出力回路の動作情報を用いて調整機構の構成情報を生成し、集計する構成情報生成ステップと、上記構成情報生成ステップによる調整機構構成情報をもとに最適な調整機構の回路情報を生成する回路生成ステップとを有する。
【００１１】
本発明の第３の観点は、並列に動作している回路から逐次的に出力される値のタイミングを調整する調整機構を含む集積回路を生成する処理であって、集積回路を検証するためのテスト回路情報、集積回路の回路情報、構成情報出力回路の動作情報を用いて調整機構の構成情報を生成し、集計する構成情報生成処理と、上記構成情報生成ステップによる調整機構構成情報をもとに最適な調整機構の回路情報を生成する回路生成処理とをコンピュータに実行させるプログラムである。
【００１２】
本発明によれば、構成情報生成部において、テスト回路記憶部、回路情報記憶部、および構成情報出力回路記憶部に記憶されているテスト回路の回路情報、集積回路の回路情報、回路の動作情報を用いて調整機構の構成情報が生成され、集計される。その情報は回路生成装置により用いられる。
そして、回路生成装置において、構成情報生成部による調整機構構成情報をもとに最適な調整機構の回路情報が生成される。
【発明の効果】
【００１３】
本発明によれば、仕様を入力することなく生成可能で、回路のタイミング仕様が変化しても、容易に最適な同期機構、並列アクセス機構等の調整機構を生成し直すことができ、同期機構、並列アクセス機構等の調整機構の設計期間を短縮することが可能になる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の実施形態を添付図面に関連付けて説明する。
【００１５】
＜第１実施形態＞
図３は、本発明の第１の実施形態に係る集積回路生成装置の構成例を示す図である。
【００１６】
本集積回路生成装置１０は、図３に示すように、テスト回路記憶部１１、回路情報記憶部１２、同期機構構成出力回路記憶部１３、構成情報生成装置としてのシミュレーション装置１４、同期機構構成記憶部１５、同期機構生成装置１６、同期機構回路情報記憶部１７、および表示装置１８を有する。
【００１７】
このような構成を有する集積回路生成装置１０は、同期機構の構成情報を入力とすることなく、調整機構の一つである同期機構を生成可能にした装置として構成されている。
【００１８】
テスト回路記憶部１１、回路情報記憶部１２、同期機構構成出力回路記憶部１３、同期機構構成記憶部１５、および同期機構回路情報記憶部１７は、たとえばメモリにより構成される。
なお、これらのテスト回路記憶部１１、回路情報記憶部１２、同期機構構成出力回路記憶部１３、同期機構構成記憶部１５、および同期機構回路情報記憶部１７は、記憶装置であれば他のものでもよく、ハードディスクなどであっても構わない。
【００１９】
テスト回路記憶部１１は、設計（生成）する集積回路を検証するためのテスト回路情報を記憶している。
【００２０】
回路情報記憶部１２は、設計する集積回路の動作情報を記憶している。
【００２１】
同期機構構成出力回路記憶部１３は、同期機構の構成情報をシミュレーション中に集計するための回路の動作情報を記憶している。
【００２２】
同期機構構成記憶部１５は、同期機構生成情報生成装置としてのシミュレーション装置１４から供給される、シミュレーション装置１４によりシミュレーションを行った際に同期機構構成出力回路記憶部１３が集計する同期機構構成情報を記憶する。
【００２３】
同期機構回路情報記憶部１７は、同期機構生成装置１６から供給される同期機構の回路情報を記憶する。
【００２４】
シミュレーション装置１４および同期機構生成装置１６は、たとえばワークステーションにより構成される。なお、シミュレーション装置１４および同期機構生成装置１６は、計算装置であれば、他のものでも構わない。
【００２５】
シミュレーション装置１４は、テスト回路記憶部１１、回路情報記憶部１２、および同期機構構成出力回路記憶部１３に記憶されているテスト回路の回路情報、集積回路の回路情報、同期機構構成出力回路の回路情報を用いたシミュレーションが行えるように構成されている。
【００２６】
回路生成装置としての同期機構生成装置１６は、同期機構構成記憶部１５に記憶されている同期機構構成情報をもとに最適な同期機構の回路情報を生成する。
【００２７】
表示装置１８は、たとえばＣＲＴにより構成され、同期機構回路情報記憶部１７に記憶されている同期機構回路情報を表示できるようになっている。
なお、表示装置１８は、表示デバイスであれば、他のものでもよく液晶ディスプレイなどであっても構わない。
【００２８】
以下に、同期機構回路生成装置として集積回路生成装置１０のより具体的な構成および機能について説明する。
【００２９】
はじめに、同期機構回路とはどのような回路なのかについて説明する。
【００３０】
図４は、同期機構回路を説明するための図である。
【００３１】
図４では、データ入力および有効信号入力がそれぞれ２つになっているが、これは２つに限らずさらに多くても良い。
同期機構回路１００へは複数のデータＤＴが有効信号ＶＬＤとともに入力される。
有効信号ＶＬＤとは、ある時刻にその第１および第２の有効信号入力ＶＬＤＩ１，ＶＬＤＩ２と対になる第１および第２のデータ入力ＤＴＩ１，ＤＴＬＩ２に有効な値が設定されているかを示す信号である。
同期機構回路１００では、入力された複数のデータを一時的に記憶し、全てのデータ入力から有効な値が入力されたときに、各データ入力から入力された値を各データ出力から出力する。その際、有効信号出力ＶＬＤＯに有効なデータを出力していることを示す値を設定する。
【００３２】
図５は、同期機構回路を動作させた場合のタイミングチャートの一例を示す図である。
【００３３】
図５に示すように、有効信号ＶＬＤはハイ（High）レベルになっているときに有効、ロー（Low）レベルになっているときに無効を示す。
図５において、時刻Ｔ１にデータ入力ＤＴＩ１から初めの有効なデータが入力される。
時刻Ｔ１の時点では、データ入力ＤＴＩ２から有効なデータが入力されていないためデータ入力ＤＴＩ１から入力された値"ａ１"は後の時刻に出力できるよう同期機構回路１００内で記憶しておく。
時刻Ｔ２にデータ入力ＤＴＩ１から次の有効なデータが入力される。時刻Ｔ２の時点でも、データ入力ＤＴＩ２からはまだ有効なデータが入力されていないためデータ入力ＤＴＩ１から入力された値"a2"は後の時刻に出力できるよう同期機構回路１００内で記憶しておく。
時刻Ｔ３になると、データ入力ＤＴＩ２から有効なデータ"ｂ１"が入力される。この時点でデータ入力ＤＴＩ１，ＤＴＩ２ともに有効なデータが揃うためデータ入力ＤＴＩ１から初めに入力された値"ａ１"をデータ出力ＤＴＯ１、データ入力ＤＴＩ２から初めに入力された値"ｂ１"をデータ出力ＤＴＯ２から出力し、有効信号出力ＶＬＤＯを"High"にする。
同様にして、データ入力ＤＴＩ１，ＤＴＩ２から入力された有効な値が揃った時点で、データ出力ＤＴＯ１，ＤＴＯ２から値を出力し、有効信号を"High"にするという動作を繰り返す。
このような動作を行う回路を、同期機構回路と呼ぶことにする。
【００３４】
これまでは、同期機構回路を生成するには、図１に示すように、同期機構の構成を同期機構生成装置に与える必要があった。
それに対し、本実施形態では、図３に示すように、テスト回路記憶部１１、回路情報記憶部１２、同期機構構成出力回路記憶部１３、およびシミュレーション装置１４によるシミュレーションにより、同期機構の構成を生成させることで、同期機構回路１００を生成する。
これにより、同期機構の構成情報を入力する必要がなくなるため、最適な同期機構回路１００を短期間で生成することができるようになる。
【００３５】
テスト回路記憶部１１、回路情報記憶部１２、同期機構構成出力回路記憶部１３に記憶された情報を用いて、シミュレーション装置１４でシミュレーションを行い、同期機構構成情報を生成する動作を図６のフローチャートに関連付けて説明する。
【００３６】
同期機構構成出力回路記憶部１３で記憶している同期機構構成出力回路の回路情報が、シミュレーション装置１４でシミュレーションされ始めると、はじめに同期機構構成出力回路内の全てのカウンタが０で初期化される（ＳＴ１）。
次に、同期機構構成出力回路は有効信号ＶＬＤの更新を待つ（ＳＴ２）。有効信号ＶＬＤの更新のタイミングは、たとえば、一例をあげるとクロック信号ＣＬＫの立ち上がりや立下りである。
有効信号ＶＬＤが更新されたのちに、各有効信号ＶＬＤの値が有効を示しているかを順次調べていく（ＳＴ３，ＳＴ４）。
有効を示している有効信号ＶＬＤが見つかった場合には、選択した有効信号に対応しているカウンタの値に１を加える。また、このとき、必要があれば、現在の状態を記憶する（ＳＴ５）。
たとえば、一例を挙げると、選択している有効信号に対応する記憶素子に、現在のシミュレーション中での時刻を記憶する。
全ての有効信号ＶＬＤの値を調べたら（ＳＴ６）、次に、全てのカウンタが１以上になっているかを確認する（ＳＴ７）。
全てのカウンタが１以上になっている場合、各有効信号に対応する情報を出力し（ＳＴ８）、各カウンタの値から１減らす（ＳＴ９）。
たとえば、一例を挙げると、各有効信号がこれまでに入力された数や各有効信号が入力されたときのシミュレーション中での時刻を出力する。最後に、シミュレーションが終了しているかを確認し（ＳＴ１０）、シミュレーションが終了していなければ、次の有効信号ＶＬＤの更新待ちまで戻る。
【００３７】
シミュレーション装置１４によるシミュレーション結果を同期機構構成記憶部１５に記憶したら、次に、同期機構構成記憶部１５に記憶された情報を用いて、同期機構生成装置１６で同期機構の生成を行う。
【００３８】
同期機構生成装置１６で同期機構を生成する動作を図７のフローチャートに関連付けて説明する。
【００３９】
最初に同期機構構成記憶部１５に記憶された同期機構構成情報を読み込む（ＳＴ１１）。次に、その構成情報に対して最も適切な回路構成を決定する（ＳＴ１２）。最後に、その回路構成に基づいて同期機構回路１００を生成する（ＳＴ１３）。
同期機構生成装置１６で同期機構回路を生成したら、その回路情報を同期機構回路情報記憶部１７に記憶する。
【００４０】
次に、より具体的な構成例について説明する。
図８は、本実施形態により実現する集積回路の例を示す図である。
【００４１】
この集積回路１１０は、図８に示すように、第１〜第６回路１１１〜１１６（回路１〜回路６）が縦続にかつ並列に接続にされている。
第１および第６回路１１１，１１６はこの集積回路１１０を検証するためのテスト回路、第２、第３、および第５回路１１２，１１３，１１５は同期機構回路を除く回路、第４回路１１４は本実施形態により生成する同期機構回路を示している。
【００４２】
本実施形態により生成する同期機構回路としての第４回路１１４は、第２および第３回路１１２，１１３から入力された値のタイミングを揃えて第５回路１１５へ出力する機能を、最適な回路品質で実現する。
【００４３】
図９は、図８の第４回路（同期機構回路）の動作例を示すタイミングチャートである。
【００４４】
図１０は、本実施形態に係る並列プロセスの出力同期機構生成装置へ入力する情報を示す図である。
図８と重複するが、図１０の第１および第６回路１１１，１１６はこの集積回路を検証するためのテスト回路であり、図３のテスト回路記憶部１１に記憶される。図１０の第２、第３、および第５回路１１２，１１３，１１５は同期機構回路を除く回路であり、その回路情報は図３の回路情報記憶部１２に記憶される。図１０の第７回路は、同期機構構成出力回路であり、その回路情報は図３の同期機構構成出力回路記憶部１３に記憶される。
【００４５】
はじめに、動作の概要について説明する。
まず、同期機構構成出力回路（図１０の回路７）１１７の入力であるデータ入力ＤＴＩ１，ＤＴＩ２、有効信号入力ＶＬＤＩ１，ＶＬＤＩ２に同期機構回路（図８の回路４）１１４が対応すべき信号（図９）を入力してシミュレーションを行う。
この際、同期機構構成出力回路１１７内に仮に想定したカウンタやキューＱの値を、たとえば図１１に示すような同期機構構成情報ＳＣＩＮＦとして記憶する。
また、同期機構構成出力回路１１７は、図１２に示すように、擬似的に理想的な同期機構回路の振舞いをさせてシミュレーションを行う。
上記の同期機構構成情報ＳＣＩＮＦに基づいて、上記の入力信号（図９）に対応可能な回路構成の候補の情報を、図１３や図１４に示すような回路で複数抽出し、たとえば図１５の手順に従ってそれらの中から、たとえば回路規模に基づいて、同期機構回路を生成する。
【００４６】
図１３は、図１１で示す同期機構構成情報から生成される同期機構回路の第１の構成例を示す図である。
【００４７】
この同期機構回路２００は、イネーブル機能付きラッチ２０１，２０２，２０３、ラッチ２０４，２０５、演算回路２０６〜２１０、およびセレクタ２１７、２１８を有する。
【００４８】
ラッチ２０１，２０２は、第１有効信号入力ＶＬＤ１をイネーブル信号として受けて第１データ入力ＤＴＩ１を順次にラッチする。
ラッチ２０３は、第２有効信号入力ＶＬＤＩ２をイネーブル信号として受けて第２データ入力ＤＴＩ２をラッチする。
演算回路２０６は、ラッチ２０４の出力が帰還され、第１有効信号入力ＶＬＤ１がハイレベルにときに＋１して演算回路２０８および２１０に出力する。
演算回路２０７は、ラッチ２０５の出力が帰還され、第２有効信号入力ＶＬＤ２がハイレベルにときに＋１して演算回路２０９および２１０に出力する。
演算回路２０８は、演算回路２１０から出力される有効信号出力ＶＬＤＯがハイレベル（論理１）のときに演算回路２０６の出力を−１する。
演算回路２０９は、演算回路２１０から出力される有効信号出力ＶＬＤＯがハイレベル（論理１）のときに演算回路２０７の出力を−１する。
演算回路２１０は、演算回路２０６，２０７の両出力が０でないとき（非０のとき）に有効信号出力ＶＬＤＯをハイレベル（論理１）とする。
ラッチ２０４は、演算回路２０８の出力をラッチして、演算回路２０６に出力し、かつ、第１選択信号ＳＥＬ１をセレクタ２１１に出力する。
ラッチ２０５は、演算回路２０９の出力をラッチして、演算回路２０７に出力し、かつ、第２選択信号ＳＥＬ２をセレクタ２１２に出力する。
セレクタ２１１は、第１選択信号ＳＥＬ１が２のときはラッチ２０２の出力を第１データ出力ＤＴＯ１とし、第１選択信号ＳＥＬ１が１のときはラッチ２０１の出力を第１データ出力ＤＴＯ１とし、第１選択信号ＳＥＬ１が０のときは第１データ入力ＤＴＩ１を第１データ出力ＤＴＯ１として出力する。
セレクタ２１２は、第２選択信号ＳＥＬ２が１のときはラッチ２０３の出力を第２データ出力ＤＴＯ２とし、第２選択信号ＳＥＬ２が０のときは第２データ入力ＤＴＩ２を第２データ出力ＤＴＯ２として出力する。
【００４９】
図１４は、図１１で示す同期機構構成情報から生成される同期機構回路の第２の構成例を示す図である。
【００５０】
この同期機構回路２００Ａは、ラッチ２１１〜２１５、制御回路２１６、およびセレクタ２１７、２１８を有する。
【００５１】
ラッチ２１１〜２１４は、第１データ入力ＤＴＩ１を順次にラッチする。
ラッチ２１５は、第２データ入力ＤＴＩ２をラッチする。
制御回路２１６は、第１有効信号入力ＶＬＤ１および第２有効信号入力ＶＬＤ２を受けて、第１選択信号ＳＥＬ１を生成してセレクタ２１７に出力し、第２選択信号ＳＥＬ２を生成してセレクタ２１８に出力し、かつ、有効信号出力ＶＬＤＯを生成する。
【００５２】
また、図１５の処理は以下のように行われる。
まず、同期機構構成情報を読み込む（ＳＴ２１）。
次に、候補１で同期機構回路を生成した場合の面積を見積もりその値をＡ１とする（ＳＴ２２）。
候補２で同期機構回路を生成した場合の面積を見積もりその値をＡ２とする（ＳＴ２３）。
そして、面積Ａ１が面積Ａ２より小さいか否かの判別を行う（ＳＴ２４）。
面積Ａ１が小さい場合、候補１で同期機構回路を生成する（ＳＴ２５）。一方、面積Ａ１が面積Ａ２より小さくない場合は候補２で同期機構回路を生成する（ＳＴ２６）。
【００５３】
次に、上記の動作の詳細を説明する。
【００５４】
テスト回路記憶部１１、回路情報記憶部１２、同期機構構成出力回路記憶部１３に記憶された情報をシミュレーション装置１４へ入力してシミュレーションすると、同期機構の構成情報が出力される。
また、同期機構構成出力回路記憶部１３に記憶した同期機構構成出力回路は、同期機構の構成情報を出力するだけでなく、擬似的に理想的な同期機構回路の振舞いを行う。これは、同期機構回路の振舞いを行うブロックが存在していないと、同期機構回路以外の回路が正しく動作せず、同期機構構成出力回路に正しい値を入力できない可能性があるためである。
【００５５】
動作の一例として、図９で示す信号が入力された場合の、理想的な同期機構回路の出力を図１２に示している。
第１データ入力ＤＴＩ１と第２データ入力ＤＴＩ２の両方のデータが揃ったら即座に第１データ出力ＤＴＯ１と第２データ出力ＤＴＯ２へそのデータが出力される。
たとえば、時刻Ｔ３に第２データ入力ＤＴＩ２からｂ１が入力されると、第１データ入力ＤＴＩ１と第２データ入力ＤＴＩ２のデータが揃うため、第１データ出力ＤＴＯ１からは第１データ入力ＤＴＩ１から初めに入力されたａ１、第２データ出力ＤＴＯ２からは第２データ入力ＤＴＯ２から初めに入力されたｂ１が出力される。
【００５６】
図１６は、同期機構の構成情報を出力する動作の一例を説明するためのフローチャートである。
【００５７】
シミュレーション装置１４によりシミュレーションが開始されたら、はじめにcounter[1]およびcounter[2]を０にする（ＳＴ３１）。counter[1], counter[2]はそれぞれ第１および第２データ入力ＤＴＩ１，ＤＴＩ２より入力された有効な値のうち、まだ出力されずに同期機構内で保持していなければならない値の数である。
次に、クロック信号ＣＬＫの立ち上がりを待ち（ＳＴ３２）、クロックが立ち上がったら、有効信号入力を順に選択する（ＳＴ３３）。
有効信号入力Nを選択した場合、まず、counter_next[N]をcounter[N]の値で初期化する（ＳＴ３４）。次に、有効信号入力Nがハイレベル（High）になっているかを確認し（ＳＴ３５）、Highになっていた場合counter_next[N]を+1し、キューＱNにシミュレーション上での現在時刻を追加する（ＳＴ３６）。
この処理を行うと、counter_next[1], counter_next[2]はそれぞれ今回のクロックの立ち上がりでデータ入力ＤＴＩ１，ＤＴＩ２より入力された有効信号も含めて、まだ出力されずに同期機構内で保持していなければならない値の数を表すようになる。
【００５８】
全ての有効信号入力に対して、Highになっているかのチェックを行ったら（ＳＴ３７）、次に、counter_next[1]およびcounter_next[2]が１以上になっているかを確認する（ＳＴ３８）。counter_next[1]およびcounter_next[2]が１以上というのは、同期機構内に出力可能な有効なデータがすでに入力されているということを意味している。
counter_next[1]およびcounter_next[2]が１以上の場合には、counter[1]およびcounter[2]の値およびキューＱ１，２の先頭に記憶されている値から現在時刻を減算した値を出力し（ＳＴ３９）、counter_next[1]およびcounter_next[2]の値を-1し、キューＱ１，２の先頭に記憶されている値をキューＱから削除する（ＳＴ４０）。
出力したcounter[1], counter[2]の値は、それぞれ、今回のクロックの立ち上がり時に同期機構内で最低限保持していなければならないデータ入力ＤＴＩ１、データ入力ＤＴＩ２の値の数を表している。また、キューＱの先頭の値から現在時刻を減算した値は、各データ入力から入力された値がデータ出力から出力されるまでに要する時間を表している。
最後にcounterの値をcounter_nextの値で更新し（ＳＴ４１）、シミュレーションがまだ続く場合には（ＳＴ４２）、クロックの立ち上がり待ちへ戻り、処理を繰り返す。
【００５９】
図１７は、動作の一例として、図９で示す信号が入力された場合の、各時刻での出力およびcounter[1], counter[2], キューＱ1, キューＱ2の値を示す図である。
【００６０】
時刻Ｔ１では、第１有効信号入力ＶＬＤＩ１のみHighのため、counter[1]の値を+1し、キューＱ１の先頭に現在時刻である1を追加する。
同様に処理を行っていき、時刻Ｔ３では、第２有効信号入力ＶＬＤＩ２がHighになり、counter_next[1]が2, counter_next[2]が1, キューＱ1が"1, 2", キューＱ2が"3"になる。
counter_next[1]およびcounter_next[2]が1以上となるため、出力として、counter[1]の値である2と、counter[2]の値である0、現在時刻Ｔ３からキューＱ1の先頭の値1を減算した2、現在時刻3からキューＱ2の先頭の値3を減算した0を出力する。
以降の説明では現在時刻からキューＱの先頭の値を減算した値のことを時間差ＴＤＦと呼ぶ。
図９で示す全ての信号を入力するまで同様の処理を繰り返す。
【００６１】
前述したように、図１１は、図９で示す信号が入力された場合に、同期機構構成記憶部１５へ出力される同期機構の構成情報の例を示している。
同期機構構成記憶部１５が記憶している同期機構構成情報を、同期機構生成装置１６へ入力して同期機構回路を生成し、その回路情報を同期機構回路情報記憶部１７へ出力する。
【００６２】
図１５は、図１１の同期機構構成情報が入力された時に、同期機構生成装置１６で行われる同期機構回路の生成動作の例を示している。
はじめに同期機構構成情報を読み込む（ＳＴ２１）。次にその構成情報を元に、構成の候補１で同期機構回路を生成した場合の面積の見積もりを行い、その値をＡ１とする（ＳＴ２２）。同様に構成の候補２で同期機構回路を生成した場合の面積の見積もり値をＡ２とする（ＳＴ２３）。
【００６３】
見積もり値の計算は、たとえば、下記の式（１）、（２）で示すような近似式により求める。面積見積もりの近似式は同期機構回路のアーキテクチャ毎に決まる。用意してあるアーキテクチャ全ての面積見積もりを近似式により行う。
【００６４】
【数１】
2008242993.tif 000003
【００６５】
【数２】
2008242993.tif 000004
【００６６】
最後に、Ａ１とＡ２の比較を行い（ＳＴ２４）、Ａ１のほうが小さい場合は候補１で（ＳＴ２５）、Ａ２のほうが小さい場合は候補２で同期機構回路を生成する（ＳＴ２６）。
【００６７】
図１８は、構成の候補１の例を示す図である。また、図１９は、構成の候補２の例を示す図である。
【００６８】
図１８の回路構成と図１３の構成と異なる点は、第１データ入力ＤＴＩ１に対してＮ個のイネーブル機能付きラッチ２０１−１〜２０１−Ｎを縦続接続して配置し、第２データ入力ＤＴＩ２に対してＭ個のイネーブル機能付きラッチ２０３−１〜２０３−Ｍを縦続接続して配置し、セレクタ２１１Ｂが０〜ＮのＮ＋１の入力から一を選択し、セレクタ２１２Ｂが０〜ＭのＭ＋１の入力から一を選択するように構成したことにある。
【００６９】
また、図１９の回路構成が図１４の構成と異なる点は、第１データ入力ＤＴＩ１に対してＮ個のラッチ２１１−１〜２１１−Ｎを縦続接続して配置し、第２データ入力ＤＴＩ２に対してＭ個のラッチ２１５−１〜２１５−Ｍを縦続接続して配置し、セレクタ２１７Ｃが０〜ＮのＮ＋１の入力から一を選択し、セレクタ２１８Ｃが０〜ＭのＭ＋１の入力から一を選択するように構成したことにある。
【００７０】
図１８の構成の候補１は、データ入力からの有効な値のみ同期機構回路内で保持する構成である。
最適化された同期機構回路を生成する前は、図１８に示すように、任意のタイミングで入力の同期をとれる構成になっている。図１８のキューＱ１、キューＱ２でデータ入力からの有効な値のみを保持し、選択信号ＳＥＬ１、選択信号ＳＥＬ２でその保持している値を選択し、第１データ出力ＤＴＯ１、第２データ出力ＤＴＯ２へ出力する。
キューＱ１およびキューＱ２で保持するデータの数N, Mは、図１１で示す同期機構構成情報のうち、それぞれcounter[1], counter[2]の最大値にする。図１１で示す同期機構構成情報から生成される構成１の同期機構回路が図１３に示す回路である。
counter[1]の最大値は２, counter[2]の最大値は１のため、キューＱ１は２つ、キューＱ２は１つになる。
【００７１】
構成１の面積は、記憶素子の面積とセレクタの面積が支配的である。したがって、構成１の面積見積もりのための近似式は、記憶素子の面積の合計とセレクタの面積の合計をあわせたものになる。
記憶素子の個数はキューＱ１、キューＱ２の数、すなわちcounter[1], counter[2]の最大値で決まる。また、２→１セレクタの数も、キューＱ１、キューＱ２の数、すなわちcounter[1], counter[2]の最大値で決まる。したがって、面積の近似式は、上記式（１）になる。この式を使用してＡ１を求める。
【００７２】
図２０は、図１８の回路に図９で示す信号が入力された場合の動作の例を示す図である。
【００７３】
時刻Ｔ１に第１データ入力ＤＴＩ１からａ１が入力されると、その値は時刻Ｔ２にキューＱ1[1]で保持される。
時刻Ｔ２に第１データ入力ＤＴＩ１からａ２が入力されると、時刻Ｔ３にはキューＱ1[1]がａ２,キューＱ1［2］がａ１を保持した状態になる。
時刻Ｔ３には第２データ入力ＤＴＩ２からb1が入力されており、１つ目のデータを出力できるため、選択信号ＳＥＬ１は２になりキューＱ1［2］のａ１を選択する。同様に選択信号ＳＥＬ２は０になり、今入力されているデータ入力２のｂ１を選択する。
この結果、第１データ出力ＤＴＯ１からａ1、第２データ出力ＤＴＯ２からｂ１が出力される。
【００７４】
図１９の構成の候補２は、データ入力からの有効な値、無効な値、両方を同期機構回路内で保持する構成である。
最適化された同期機構回路を生成する前は、図１９に示すように、任意のタイミングで入力の同期を取れる構成になっている。図１９のキューＱ１、キューＱ２でデータ入力からの値を有効・無効区別せずに保持し、選択信号ＳＥＬ１、選択信号ＳＥＬ２でその保持している値を選択し、第１データ出力ＤＴＯ１、第２データ出力ＤＴＯ２へ出力する。
キューＱ１およびキューＱ２で保持するデータの数N, Mは、図１１で示す同期機構構成情報のうち、それぞれ時間差ＴＤＦ１,時間差ＴＤＦ２の最大値にする。また、セレクタの入力は時間差ＴＤＦ１,時間差ＴＤＦ２が取らない値は不要なため削除する。図１１で示す同期機構構成情報から生成される構成２の同期機構回路が図１４に示す回路である。
時間差ＴＤＦ１の最大値は４、時間差ＴＤＦ２の最大値は１のため、キューＱ１は４つ、キューＱ２は１つになる。また、時間差ＴＤＦ１は0,2,4, 時間差ＴＤＦ２は0,1しか取らないため、時間差ＴＤＦ１の1,3が不要である。そのため、データ出力１用セレクタ２１７Ｃの入力のうち、キューＱ１[1]の出力、および、キューＱ１[3]の出力と接続されているものは削除する。
【００７５】
構成２の面積は、記憶素子の面積とセレクタの面積が支配的である。したがって、構成２の面積見積もりのための近似式は、記憶素子の面積の合計とセレクタの面積の合計をあわせたものになる。
記憶素子の個数はキューＱ１、キューＱ２の数、すなわち時間差ＴＤＦ１、時間差ＴＤＦ２の最大値で決まる。２→１セレクタの数は、(時間差ＴＤＦ１，時間差ＴＤＦ２が取る値の数)-２になる。図１１で示す同期機構構成情報の場合、時間差ＴＤＦ１が0,2,4の３つ、時間差ＴＤＦ２が0,1の２つであるため、３＋２−２で２→１セレクタの数は３つになる。したがって、面積の近似式は、上記式（２）になる。この式（２）を使用してＡ２を求める。
【００７６】
図２１は、図１９の回路に図９で示す信号が入力された場合の動作の例を示す図である。
【００７７】
キューＱ１、キューＱ２では有効・無効区別せずにそれぞれ第１データ入力ＤＴＩ１、第２データ入力ＤＴＩ２の値を保持しているため、キューＱ１[N]はN時刻前のデータ入力１の値、キューＱ２[N]はN時刻前のデータ入力ＤＴＩ２の値を保持している。
たとえば、時刻Ｔ５のキューＱ１[3]は時刻Ｔ５から３時刻前の値を保持しているため、時刻Ｔ２のデータ入力ＤＴＩ１の値、すなわちａ２を保持している。
選択信号ＳＥＬ１、選択信号ＳＥＬ２は何時刻前の第１データ入力ＤＴＩ１、第２データ入力ＤＴＩ２の値を出力するかを表している。
たとえば、時刻Ｔ３の時には、２時刻前のデータ入力１の値ａ１と、現在の第２データ入力ＤＴＩ２の値ｂ１を選択して、第１データ出力ＤＴＯ１、第２データ出力ＤＴＯ２へ出力するため、選択信号ＳＥＬ１は２、選択信号ＳＥＬ２は０となる。
【００７８】
以上説明したように、本第１の実施形態によれば、同期機構回路生成装置１０は、集積回路を検証するためのテスト回路情報を記憶するテスト回路記憶部１１と、回路情報を記憶する回路情報記憶部１２と、シミュレーション中に同期機構の構成情報を生成するための同期機構構成出力回路記憶部１３と、テスト回路記憶部１１、回路情報記憶部１２、および同期機構構成出力回路記憶部１３に記憶されている回路情報のシミュレーション装置（構成情報生成装置）１４と、シミュレーション装置１４によりシミュレーションを行った際に同期記憶構成出力回路億部１３が集計する同期機構構成情報を記憶するための同期機構構成記憶部１５と、同期機構構成記憶部１５に記憶されている同期機構構成情報をもとに同期機構の回路情報を生成するための同期機構生成装置１６と、同期機構生成装置１６から出力された同期機構の回路情報を記憶するための同期機構回路情報記憶部１７と、生成した同期機構の回路情報を表示するための表示装置１８とを有することから、以下の効果を得ることができる。
【００７９】
すなわち、本実施形態によれば、並列に動作する回路から出力される値の同期機構を、同期機構の仕様を入力することなく、生成することができる。また、回路のタイミング仕様が変化しても、容易に最適な同期機構を生成し直すことができる。このため、同期機構の設計期間を大幅に短縮することが可能になる。
【００８０】
＜第２実施形態＞
図２２は、本発明の第２の実施形態に係る集積回路生成装置の構成例を示す図である。
【００８１】
本第２の実施形態に係る集積回路生成装置１０Ａが第１の実施形態の集積回路生成装置１０と異なる点は、同期機構構成出力回路記憶部１３のほかに１または複数の構成情報出力情報記憶部の情報も選択的にシミュレーション装置１４に供給する構成情報出力回路選択装置１９を設け、さらに、同期機構生成情報記憶部２０のほかに１または複数の回路生成情報記憶部の情報も選択的に回路生成装置１６Ａに供給する回路生成情報選択装置２１を設けたことにある。
【００８２】
このような構成を有する集積回路生成装置１０Ａは、同期機構回路のみならず、他の回路生成にも対応することができる。
そのため、図３の同期機構構成記憶部１５の代わりに構成情報記憶部１５Ａが配置され、同期機構生成装置１６の代わりに回路生成装置１６Ａが配置され、同期機構回路情報記憶部１７の代わりに回路情報記憶部１７Ａが配置されている。
【００８３】
本第２の実施形態によれば、上述した第１の実施形態に効果を得られることはもとより、複数種の回路生成に対応可能であるという利点がある。
【００８４】
＜第３実施形態＞
図２３は、本発明の第３の実施形態に係る集積回路生成装置の構成例を示す図である。
【００８５】
本第３の実施形態に係る集積回路生成装置１０Ｂが第２の実施形態の集積回路生成装置１０Ａと異なる点は、同期機構構成出力回路記憶部１３のほかに並列アクセス機構構成出力回路記憶部２２を構成情報出力回路選択装置１９に接続し、同期機構生成情報記憶部２０のほかに並列アクセス機構生成情報記憶部２３を回路生成情報選択装置２１に接続して、同期機構回路または並列アクセス機構回路を生成可能としたことにある。
【００８６】
以下、並列アクセス機構生成方法を中心に説明する。
【００８７】
図２４は、並列アクセス機構回路を説明するための図である。
【００８８】
図２４では、逐次データ入力ＩＯＤＴＩ、逐次データ入力有効信号ＤＴＩＶＬＤ、および逐次データ入力受信可能信号ＤＴＩＲＰＳがそれぞれ１つ、並列データ出力ＰＤＴＯが３つ、並列データ出力有効信号ＰＤＴＯＶＬＤが１つ、並列アクセスパターン入力ＰＡＰＴＮＩ、並列アクセスパターン入力有効信号ＰＡＰＴＮＶＬＤ、および並列アクセスパターン入力受信可能信号ＰＡＰＴＮＲＰＳがそれぞれ１つになっているが、これらの数が図２４の例に限らずさらに多くても良い。
【００８９】
並列アクセス機構回路３００は、逐次データが有効信号ＶＬＤとともに入力され、並列アクセスパターンが有効信号ＶＬＤとともに入力され、並列アクセスパターン入力ＰＡＰＴＮＩの値に対応した並列データ出力ＰＤＴＯ１〜３から出力する。
有効信号ＶＬＤとは、ある時刻にその有効信号入力と対になる逐次データ入力ＩＯＤＴＩ、並列アクセスパターン入力ＰＡＰＴＮＩに有効な値が設定されているかを示す信号である。
並列アクセス機構回路３００は入力受信可能信号ＲＰＳを出力する。入力受信可能信号ＲＰＳとは、ある時刻にその入力受信可能信号と対になる逐次データ入力ＩＯＤＴＩ、並列アクセスパターン入力ＰＡＰＴＮＩを並列アクセス機構回路３００が受信できるか否かを示す信号である。並列アクセス機構回路３００が受信できない期間は、それぞれの信号を変更せず保持している必要がある。
【００９０】
図２５は、並列アクセス機構回路を動作させた場合のタイミングチャートの一例を示す図である。
【００９１】
図２５に示すように、有効信号ＶＬＤはハイ（High）レベルになっているときに有効、ロー（Low）レベルになっているときに無効を示す。同様に、受信可能信号ＲＰＳもハイ（High）レベルになっているときに受信可能、ロー（Low）レベルになっているときに受信不可能を示す。
図２５において、時刻Ｔ１にデータ入力ＤＴＩ１から初めの有効なデータが入力可能となるが、このとき逐次データ入力受信可能信号ＤＴＩＲＰＳがLowであり、時刻Ｔ２で受信可能信号ＤＴＩRPSがHighとなり、この時点で有効な値ａ１のデータが入力される。
そして、時刻Ｔ３に値ａ２のデータが入力され、時刻Ｔ４に値ａ３のデータが入力され、時刻Ｔ５に値ａ４のデータが入力され、時刻Ｔ６に値ａ５のデータが入力され、時刻Ｔ７に値ａ６のデータが入力され、時刻Ｔ９に値ａ７のデータが入力され、時刻Ｔ１１に値ａ８のデータが入力される。
また、時刻Ｔ１においては、並列アクセスパターン有効信号ＰＡＰＴＮＶＬＤおよびその受信可能信号ＰＡＰＴＮＲＰＳもHighであることから、並列パターンｐ１が入力される。時刻Ｔ２、Ｔ３には受信可能信号ＰＡＰＴＮＲＰＳがLowであり、時刻Ｔ３にHighになることから、時刻Ｔ４に並列アクセス入力パターンＰ２が入力される。同様にして、時刻Ｔ６にパターンｐ３が入力され、時刻Ｔ１０にパターンｐ４が入力される。
そして、並列アクセスパターンがｐ１の場合、値ａ１とａ３のデータが並列データ出力ＤＴＯ１，ＤＴＯ２から出力される。並列アクセスパターンがｐ２の場合、値ａ２とａ４のデータが並列データ出力ＤＴＯ１，ＤＴＯ２から出力される。並列アクセスパターンがｐ４の場合、値ａ５とａ７のデータが並列データ出力ＤＴＯ１，ＤＴＯ２から出力される。並列アクセスパターンがｐ４の場合、値ａ６とａ８のデータが並列データ出力ＤＴＯ１，ＤＴＯ２から出力される。
【００９２】
テスト回路記憶部１１、回路情報記憶部１２、並列アクセス機構構成出力回路記憶部２２に記憶された情報を用いて、シミュレーション装置１４でシミュレーションを行い、並列アクセス機構構成情報を生成する動作を図２６のフローチャートに関連付けて説明する。
【００９３】
このように、アクセスパターン入力とは、逐次データ入力の何番目と何番目の値をアクセスするのかを示す値を含む。
以下では、ｘ１番目とｘ２番目の値をアクセスするという意味でＡ（ｘ１，ｘ２）として表現する。
また、図２６の中で、Ｍａｘ（アクセスパターン）とは、アクセスパターンがＡ（ｘ１，ｘ２）の場合、ｘ１とｘ２のうち最大の値を返すということである。
Ｄｉｆｆ（アクセスパターン，Ｍａｘ）とは、アクセスパターンがＡ（ｘ１，ｘ２）の場合、Ａ（ｘ１−Ｍａｘ，ｘ２−Ｍａｘ）を返すということである。
また、Ａ（ＮＵＬＬ）とは、何もアクセスしないことを表す。
【００９４】
並列アクセス機構構成出力回路記憶部２２で記憶している並列アクセス機構構成出力回路の回路情報が、シミュレーション装置１４でシミュレーションされ始めると、はじめにこれまでにアクセスした逐次入力データのうち最後に入力された値の番号をしめすＭａｘＰｔｒを０で初期化する（ＳＴ５１）。
次に、並列アクセス機構構成出力回路は有効信号ＶＬＤの更新を待つ。有効信号ＶＬＤの更新のタイミングは、たとえば、一例をあげるとクロック信号ＣＬＫの立ち上がりや立下りである（ＳＴ５２）。
次に、並列アクセスパターン入力有効信号ＰＡＰＴＮが有効で、かつ、並列アクセスパターン受信可能信号ＰＡＰＴＮＲＰＳが受信可能であるか否かを判別する（ＳＴ５３）。
ステップＳＴ５３で肯定的な判定結果を得ると、不足データ数、差分パターン、最小保持データ数を出力する。そして、ＭａｘＰｔｒ＝Ｍａｘ（アクセスパターン）とする（ＳＴ５４）。
ステップＳＴ５３で否定的な判定結果を得ると、並列アクセスパターン受信可能信号ＰＡＰＴＮＲＳＰが有効であるか否かを判断する（ＳＴ５５）。
ステップＳＴ５４で肯定的な判定結果を得ると、不足データ数＝０、差分パターン＝Ａ（ＮＵＬＬ）、最小保持データ数＝ＮＵＬＬを出力する（ＳＴ５６）。
ステップＳＴ５４、ＳＴ５６の処理が終了し、また、ステップＳＴ５５において否定的な判定結果を得た場合には、シミュレーションが終了しているかを確認し（ＳＴ５７）、シミュレーションが終了していなければ、次の有効信号ＶＬＤの更新待ちまで戻る。
【００９５】
図２８は、構成情報記憶部１５Ａに供給される情報を示している。
【００９６】
シミュレーション装置１４によるシミュレーション結果を構成情報記憶部１５Ａに記憶したら、次に、構成情報記憶部１５Ａに記憶された情報を用いて、回路生成装置１６Ａで並列アクセス機構の生成を行う。
【００９７】
回路生成装置１６Ａで並列アクセス機構を生成する動作を図２７のフローチャートに関連付けて説明する。
【００９８】
最初に構成情報記憶部１５Ａに記憶された並列アクセス機構構成情報を読み込む（ＳＴ６１）。次に、その構成情報に対して最も適切な回路構成を決定する（ＳＴ６２）。最後に、その回路構成に基づいて並列アクセス機構回路３００を生成する（ＳＴ６３）。
回路生成装置１６Ａで並列アクセス機構回路を生成したら、その回路情報を回路情報記憶部１７Ａに記憶する。
【００９９】
次に、より具体的な構成例について説明する。
図２９は、本実施形態により実現する集積回路の例を示す図である。
図３０は、本実施形態に係る並列プロセスの回路生成装置へ入力する情報を示す図である。
【０１００】
この集積回路３１０は、図２９および図３０に示すように、第１〜第３回路３１１〜３１３（回路１〜回路３）が縦続接続にされている。
第２回路３１２が本実施形態により生成する並列アクセス機構回路に相当する。
そして、第１回路３１１が第２回路３１２に対して逐次データ入力ＩＯＤＴＩに逐次データを供給するとともに、逐次データ入力有効信号ＤＴＩＶＬＤを供給する。また、第２回路３１２が第１回路に対して逐次データ入力受信可能信号ＤＴＩＲＰＳを供給する。
また、第３回路３１３が第２回路に対して並列アクセスパターン入力ＰＡＰＴＮＩに並列アクセスパターンを供給するとともに、並列アクセスパターン有効信号ＰＡＰＴＮＶＬＤを供給する。また、第２回路３１２が第３回路に対して並列アクセスパターン入力受信可能信号ＰＡＰＴＮＲＳＰを供給する。
そして、第２回路３１２が第３回路３１３に対して並列データおよび並列データ出力有効信号ＰＤＴＯＶＬＤを供給する。
【０１０１】
図３１は、回路生成装置１６Ａで行われる並列アクセス機構回路の生成動作の例を示すフローチャートである。
【０１０２】
はじめに並列アクセス機構構成情報を読み込む（ＳＴ７１）。次にその構成情報を元に、構成の候補１で並列アクセス機構回路を生成した場合の面積の見積もりを行い、その値をＡ１とする（ＳＴ７２）。同様に構成の候補２で並列アクセス機構回路を生成した場合の面積の見積もり値をＡ２とする（ＳＴ７３）。
【０１０３】
見積もり値の計算は、たとえば、下記の式（３）、（４）で示すような近似式により求める。面積見積もりの近似式は並列アクセス機構回路のアーキテクチャ毎に決まる。用意してあるアーキテクチャ全ての面積見積もりを近似式により行う。
【０１０４】
【数３】
2008242993.tif 000005
【０１０５】
式（３）において、並列データの出力数をＮとする。また、並列出力ポートＭの差分パターンの最大値をＭａｘ（Ｍ）、最小値をＭｉｎ（Ｍ）とする。そして、全並列出力ポートにおける最大のＭａｘ（Ｍ）をＭＭａｘ、最小のＭｉｎ（Ｍ）をＭＭｉｎとしている。
【０１０６】
【数４】
2008242993.tif 000006
【０１０７】
式（４）において、不足データ数の最大値をＭ、不足データ数がＭとなる出力から次のＭとなる出力の直前までの期間での不足データ数の合計をＳｄ、各並列データ出力のアクセスパターンの種類の合計をＳａ、Ｓｄの最大値をＭａｘ（Ｓｄ）、Ｓａの最大値をＭａｘ（Ｓａ）としている。
【０１０８】
最後に、Ａ１とＡ２の比較を行い（ＳＴ２４）、Ａ１のほうが小さい場合は候補１で（ＳＴ２５）、Ａ２のほうが小さい場合は候補２で並列アクセス機構回路を生成する（ＳＴ２６）。
【０１０９】
図３２は、生成される並列アクセス機構回路の第１の構成例を示す図である。
【０１１０】
この同期機構回路４００は、イネーブル機能付きラッチ４０１〜４０６、セレクタ４０７，４０８、および制御回路４０９を有する。
【０１１１】
ラッチ４０１〜４０６は、制御回路４０９によりイネーブル信号を受けて逐次データを順次にラッチする。
セレクタ４０７は、制御回路４０９による第１選択信号ＳＥＬ１１に応じてラッチ４０１〜４０４の出力のうちのいずれかを選択して並列データ出力ＰＡＤＴＯ１として出力する。
セレクタ４０８は、制御回路４０９による第２選択信号ＳＥＬ１２に応じてラッチ４０３〜４０６の出力のうちのいずれかを選択して並列データ出力ＰＡＤＴＯ２として出力する。
【０１１２】
図３３は、生成される並列アクセス機構回路の第２の構成例を示す図である。
【０１１３】
この同期機構回路４００Ａは、イネーブル機能付きラッチ４１１〜４１８、セレクタ４１９〜４２４、および制御回路４２５を有する。
【０１１４】
ラッチ４１１〜４１４は、制御回路４２５によりイネーブル信号を受けて逐次データを順次にラッチする。
同様に、ラッチ４１５〜４１８は、制御回路４２５によりイネーブル信号を受けて逐次データを順次にラッチする。
セレクタ４１９は、制御回路４２５の制御の下、ラッチ４１１および４１２の出力のうちいずれかを選択してセレクタ４２３に出力する。
セレクタ４２０は、制御回路４２５の制御の下、ラッチ４１１および４１４の出力のうちいずれかを選択してセレクタ４２４に出力する。
セレクタ４２１は、制御回路４２５の制御の下、ラッチ４１５および４１６の出力のうちいずれかを選択してセレクタ４２３に出力する。
セレクタ４２２は、制御回路４２５の制御の下、ラッチ４１７および４１８の出力のうちいずれかを選択してセレクタ４２４に出力する。
セレクタ４２３は、制御回路４２５による第１選択信号ＳＥＬ１１に応じてセレクタ４１９、４２１の選択出力のうちのいずれかを選択して並列データ出力ＰＡＤＴＯ１として出力する。
セレクタ４２４は、制御回路４２５による第２選択信号ＳＥＬ１２に応じてセレクタ４２０、４２２の選択出力のうちのいずれかを選択して並列データ出力ＰＡＤＴＯ２として出力する。
【０１１５】
すなわち、本３の実施形態によれば、並列に動作する回路から出力される値の同期機構または並列アクセス機構を、同期機構または並列アクセス機構の仕様を入力することなく、生成することができる。また、回路のタイミング仕様が変化しても、容易に最適な同期機構または並列アクセス機構を生成し直すことができる。このため、同期機構、並列アクセス機構の設計期間を大幅に短縮することが可能になる。
【０１１６】
以上では、同期機構または並列アクセス機構の生成について説明したが、上記した構成に限定されるものではない。以下、例として同期機構の他のアーキテクチャや面積見積もり法、モジュール数、構成情報の内容、回路の仕様、他の応用例等について述べる。
【０１１７】
＜同期機構回路の別のアーキテクチャ＞
上記した実施形態では、フリップフロップベース（ラッチ）の同期機構回路アーキテクチャについて取り扱っているが、たとえば図３４および図３５に示すように、ＳＲＡＭベースのアーキテクチャにも同様に適用可能である。
図３４の回路５００は制御回路５０１とデュアルポートＳＲＡＭ５０２により構成されている。
図３５の回路５００Ａは制御回路５０１とシングルポートＳＲＡＭ５０３により構成されている。
【０１１８】
＜同期機構回路の面積見積もり方法＞
上記した実施形態では、面積見積もり近似式を用いたが、全パターン同期機構回路情報を生成し、その回路を全て、論理合成したり、レイアウトしたりして、その面積を見積もり値としても良い
また、上記実施形態で使用した近似式を使う方法については、制御回路の面積を含めたより精度の良い近似式にしても良い。
【０１１９】
＜同期機構回路アーキテクチャの選択方法＞
上記した実施例では、近似式で面積見積もりを行い、その結果を比較して選択したが、counter[1], counter[2]の値が閾値以上の場合は、ＳＲＡＭベースのアーキテクチャ、閾値以下の場合はフリップフロップベースのアーキテクチャというように、閾値を用いて、選択しても良い
【０１２０】
＜モジュール数＞
上記した実施形態では、図１０の回路１〜６と同期機構構成出力回路（回路７）で、同期機構回路を生成する例を示したが、同期機構構成出力回路以外の回路は１つだけでも６つ以上でも構わない。また。同期機構構成出力回路を複数置いて、複数の同期機構回路を同時に生成しても構わない。
【０１２１】
＜同期機構構成情報の内容について＞
上記した実施例では、図１１で示すようにcounter[1], counter[2], 時間差ＴＤＦ１, 時間差ＴＤＦ２の４つの値を出力したが、counter[1], counter[2]のみや、時間差ＴＤＦ１, 時間差ＴＤＦ２のみでも構わない。
また、(出力時刻), (データ出力1から出力したデータが入力された時刻), (データ出力2から出力したデータが入力された時刻)というように、上記実施形態では取り上げていない形式の構成情報でも良い。
【０１２２】
＜同期機構回路の仕様について＞
上記した実施形態では、同期機構回路は、出力できる状態で即座に出力するという仕様にしたが、出力できる状態の次の時刻に出力するというような仕様でも良い。
また、シリアル→パラレル変換とあわせて、２つデータが貯まったら、まとめて１つデータを出力するという仕様などもありうる。
【０１２３】
＜同期機構生成装置について＞
上記した実施形態では、同期機構構成装置からの情報のみで同期機構回路を生成するという内容にしたが、それに加えて、外部から制約条件を与えられるようにしても良い。
【０１２４】
＜他の応用例について＞
(1) 動作合成前後でのレイテンシの違いの吸収と同期機構回路の生成：
動作合成前は演算遅延の無いモデルで設計を行うが、動作合成を行うと実デバイスの遅延が考慮されたモデルになる。そのため、複数モジュールの出力の同期を取る必要がある場合に、動作合成前と動作合成後では、異なるタイミングで同期を取る必要がある。
設計したいのは動作合成後のタイミングで同期を取れる回路のため、動作合成前は実際に実装可能な同期機構回路である必要は無い。
そこで、まず、動作合成前は、同期機構構成出力回路の持つ擬似的に理想的な同期機構の振舞いを利用して、シミュレーションを行う。
次に、動作合成を行って、同期機構回路以外が全て正確なタイミングで動作するようにする。そして、もう一度、同期機構構成出力回路を利用してシミュレーションを行い、同期機構構成情報を取得し、その情報から同期機構回路を生成する。
【０１２５】
(2) 範囲をかなり広げて考えた場合の応用例：
シミュレーションでプロファイリングを行って、その結果から回路を生成するという手法は、他に以下のような応用がある
・キャッシュメモリの生成；
メモリアクセスパターンと希望するキャッシュヒット率から適切なキャッシュメモリを生成する。
・バスマトリクスの生成；
モジュール間の通信量を元に適切なバスマトリクスを生成する（通信量の多い部分には帯域の広いバス、通信量の少ない部分には面積の小さなバス）。
・ＦＩＦＯ入りＤＭＡの生成；
バスの混雑度と後段ブロックのパフォーマンスからＦＩＦＯ段数を決定し、ＦＩＦＯ入りのＤＭＡを生成する；
・動作合成時のパフォーマンス制約の抽出
入力データ流量からボトルネックにならずに処理するために必要なパフォーマンス制約を抽出する。
【０１２６】
なお、本発明の実施形態は、上述した実施形態に拘泥せず、当業者であれば、本発明の要旨を変更しない範囲内で様々な改変が可能である。
【０１２７】
また、以上詳細に説明した方法は、上記手順に応じたプログラムとして形成し、ＣＰＵ等のコンピュータで実行するように構成することも可能である。
また、このようなプログラムは、半導体メモリ、磁気ディスク、光ディスク、フロッピー（登録商標）ディスク等の記録媒体、この記録媒体をセットしたコンピュータによりアクセスし上記プログラムを実行するように構成可能である。
【図面の簡単な説明】
【０１２８】
【図１】一般的な同期機構回路生成装置の構成例を示すブロック図である。
【図２】一般的な並列アクセス機構回路生成装置の構成例を示すブロック図である。
【図３】本発明の実施形態に係る集積回路生成装置の構成例を示す図である。
【図４】同期機構回路を説明するための図である。
【図５】同期機構回路を動作させた場合のタイミングチャートの一例を示す図である。
【図６】シミュレーション装置でシミュレーションを行い、同期機構構成情報を生成する動作を説明するためのフローチャートである。
【図７】同期機構生成装置で同期機構を生成する動作を説明するためのフローチャートである。
【図８】本実施形態により実現する集積回路の例を示す図である。
【図９】図８の第４回路（同期機構回路）の動作例を示すタイミングチャートである。
【図１０】本実施形態に係る並列プロセスの出力同期機構生成装置へ入力する情報を示す図である。
【図１１】本実施形態に係る同期機構構成情報の一例を示す図である。
【図１２】擬似的に理想的な同期機構回路の振舞いをさせる各時刻におけるデータ入力、データ出力を示す図である。
【図１３】図１１で示す同期機構構成情報から生成される同期機構回路の第１の構成例を示す図である。
【図１４】図１１で示す同期機構構成情報から生成される同期機構回路の第２の構成例を示す図である。
【図１５】回路規模に基づいて、同期機構回路を生成する手順を説明するための図である。
【図１６】同期機構の構成情報を出力する動作の一例を説明するためのフローチャートである。
【図１７】動作の一例として、図９で示す信号が入力された場合の、各時刻での出力およびcounter[1], counter[2], キューＱ1, キューＱ2の値を示す図である。
【図１８】構成の候補１の例を示す図である。
【図１９】構成の候補２の例を示す図である。
【図２０】図１８の回路に図９で示す信号が入力された場合の動作の例を示す図である。
【図２１】図１９の回路に図９で示す信号が入力された場合の動作の例を示す図である。
【図２２】本発明の第２の実施形態に係る集積回路生成装置の構成例を示す図である。
【図２３】本発明の第３の実施形態に係る集積回路生成装置の構成例を示す図である。
【図２４】並列アクセス機構回路を説明するための図である。
【図２５】並列アクセス機構回路を動作させた場合のタイミングチャートの一例を示す図である。
【図２６】シミュレーション装置でシミュレーションを行い、並列アクセス機構構成情報を生成する動作を説明するためのフローチャートである。
【図２７】回路生成装置で並列アクセス機構を生成する動作を説明するためのフローチャートである。
【図２８】構成情報記憶部に供給される情報を示す図である。
【図２９】本実施形態により実現する集積回路の例を示す図である。
【図３０】本実施形態に係る並列プロセスの回路生成装置へ入力する情報を示す図である。
【図３１】回路生成装置で行われる並列アクセス機構回路の生成動作の例を示すフローチャートである。
【図３２】生成される並列アクセス機構回路の第２の構成例を示す図である。
【図３３】生成される並列アクセス機構回路の第２の構成例を示す図である。
【図３４】同期機構回路のＳＲＡＭベースの第１の構成例を示す図である。
【図３５】同期機構回路のＳＲＡＭベースの第２の構成例を示す図である。
【符号の説明】
【０１２９】
１０，１０Ａ，１０Ｂ・・・集積回路生成装置、１１・・・テスト回路記憶部、１２・・・回路情報記憶部、１３・・・同期機構構成出力回路記憶部、１４・・・構成情報生成装置としてのシミュレーション装置、１５・・・同期機構構成記憶部、１５Ａ・・・構成情報記憶部、１６Ａ・・・回路生成装置、１７Ａ・・・回路情報記憶部、１６・・・同期機構生成装置、１７・・・同期機構回路情報記憶部、１８・・・表示装置、１９・・・構成情報出力回路選択装置、２０・・・同期機構生成情報記憶部、２１・・・回路生成情報選択装置、２２・・・並列アクセス機構構成出力回路記憶部、２３・・・並列アクセス機構生成情報記憶部。
【図１】
2008242993.tif 000007
【図２】
2008242993.tif 000008
【図３】
2008242993.tif 000009
【図４】
2008242993.tif 000010
【図５】
2008242993.tif 000011
【図６】
2008242993.tif 000012
【図７】
2008242993.tif 000013
【図８】
2008242993.tif 000014
【図９】
2008242993.tif 000015
【図１０】
2008242993.tif 000016
【図１１】
2008242993.tif 000017
【図１２】
2008242993.tif 000018
【図１３】
2008242993.tif 000019
【図１４】
2008242993.tif 000020
【図１５】
2008242993.tif 000021
【図１６】
2008242993.tif 000022
【図１７】
2008242993.tif 000023
【図１８】
2008242993.tif 000024
【図１９】
2008242993.tif 000025
【図２０】
2008242993.tif 000026
【図２１】
2008242993.tif 000027
【図２２】
2008242993.tif 000028
【図２３】
2008242993.tif 000029
【図２４】
2008242993.tif 000030
【図２５】
2008242993.tif 000031
【図２６】
2008242993.tif 000032
【図２７】
2008242993.tif 000033
【図２８】
2008242993.tif 000034
【図２９】
2008242993.tif 000035
【図３０】
2008242993.tif 000036
【図３１】
2008242993.tif 000037
【図３２】
2008242993.tif 000038
【図３３】
2008242993.tif 000039
【図３４】
2008242993.tif 000040
【図３５】
2008242993.tif 000041