(57)【要約】【課題】一つのモジュール内に複数のクロック領域を含む場合、一つのモジュール内に他のモジュールを含む場合等においてテクノロジライブラリの選択を最適化する。【解決手段】回路機能に関する回路記述データ、論理合成における制約条件を入力する入力部１０、回路記述データを解析した結果を用いてモジュールに含まれる経路を選択する経路選択部２１、選択された経路における始点及び終点を認識しそれぞれ属するクロック領域を認識する認識部２２、始点及び終点がそれぞれ属するクロック領域に応じてテクノロジライブラリの初期設定を行い始点を終点とする前段の経路に設定されるテクノロジライブラリと始点に初期設定されたテクノロジライブラリとの優先順位に基づいていずれかを始点に設定し終点を始点とする後段の経路に設定されるテクノロジライブラリと終点に初期設定されたテクノロジライブラリとの優先順位に基づいていずれかを終点に設定するテクノロジライブラリ設定部２３を備える。【選択図】図１
2009020729.tif 000002
【特許請求の範囲】
【請求項１】
複数のクロック領域を有するモジュールに対して論理合成を行う装置であって、
回路機能に関する回路記述データと、論理合成における制約条件とを入力する入力部と、
前記回路記述データを解析して得られた結果を用いて、前記モジュールに含まれる経路を選択する経路選択部と、
選択された前記経路における始点及び終点を認識し、前記始点及び終点がそれぞれ属するクロック領域を認識する認識部と、
前記始点及び終点がそれぞれ属する前記クロック領域に応じて、テクノロジライブラリの初期設定を行い、
前記始点を終点とする前段の経路に対して設定される前記テクノロジライブラリと、前記始点に初期設定された前記テクノロジライブラリとに対して予め設定された優先順位に基づいていずれかを前記始点に対して設定し、
前記終点を始点とする後段の経路に対して設定される前記テクノロジライブラリと、前記終点に初期設定された前記テクノロジライブラリとに対して予め設定された優先順位に基づいていずれかを前記終点に対して設定するテクノロジライブラリ設定部と、
を備えることを特徴とする論理合成装置。
【請求項２】
前記認識部は、
前記経路における始点及び終点を認識する際に、前記モジュールの入力端子又はクロックに同期する記憶素子を前記経路の始点として認識し、前記モジュールの出力端子又はクロックに同期する記憶素子を前記経路の終点として認識することを特徴とする請求項１記載の論理合成装置。
【請求項３】
前記テクノロジライブラリ設定部は、前記始点と前記終点との間の組み合わせ回路に対しては、前記初期設定されたテクノロジライブラリを設定することを特徴とする請求項１又は２記載の論理合成装置。
【請求項４】
複数のクロック領域を有するモジュールに対して論理合成を行う装置であって、
回路機能に関する回路記述データと、論理合成における制約条件とを入力する入力部と、
前記回路記述データを解析して得られた結果を用いて、前記モジュールに含まれる経路を選択する経路選択部と、
選択された前記経路における始点及び終点を認識し、前記始点及び終点がそれぞれ属するクロック領域を認識する認識部と、
前記始点が属するクロック領域と前記終点が属するクロック領域とが同一である場合、このクロック領域に対応したテクノロジライブラリの設定を前記経路に対して行い、
前記始点が属するクロック領域と前記終点が属するクロック領域とが異なる場合、前記始点には前記始点が属するクロック領域に対応したテクノロジライブラリの設定を行い、前記終点には前記終点が属するクロック領域に対応したテクノロジライブラリの設定を行い、前記始点と前記終点との間に設けられた組み合わせ回路に対しては、前記始点に設定された前記テクノロジライブラリと前記終点に設定された前記テクノロジライブラリとに対して予め設定された優先順位に基づいていずれかを設定するテクノロジライブラリ設定部と、
を備えることを特徴とする論理合成装置。
【請求項５】
前記認識部は、
前記経路における始点及び終点を認識する際に、前記モジュールの入力端子又はクロックに同期する記憶素子を前記経路の始点として認識し、前記モジュールの出力端子又はクロックに同期する記憶素子を前記経路の終点として認識することを特徴とする請求項４記載の論理合成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、論理合成装置に係わり、特に複数のテクノロジライブラリのいずれかを選択し設定するための論理合成に好適なものに関する。
【背景技術】
【０００２】
近年の半導体集積回路設計における論理合成では、動作速度、消費電力等において所望の性能を得るために、対象となる一つのＬＳＩ内、あるいは一つのモジュール内においても、複数のテクノロジライブラリの中から適切なものを選択して設定することが行われている。
【０００３】
複数のテクノロジライブラリの適用例として、複数の閾値電圧Ｖthごとに個別のテクノロジライブラリを用意し、それらを使い分けるというものがある。
【０００４】
例えば、高速動作が必要な箇所には、閾値電圧Ｖthの低いセルを有するテクノロジライブラリを選択し設定して論理合成、最適化を行い、消費電力を抑える必要のある箇所には、閾値電圧Ｖthの高いセルを有するテクノロジライブラリを設定する。また、同時に複数のテクノロジライブラリを設定して論理合成を行い、論理合成ツールの最適化機能を利用してセル毎に選択することも行われている。
【０００５】
最近のＬＳＩ製品は仕様が複雑であり、複数のクロック、動作モードを有し、要求もそれぞれのモードで異なる場合が多い。一つの製品に対して高速化と低消費電力化の両方が要求されるため、閾値電圧Ｖthの選択並びにテクノロジライブラリの選択の最適化が必要である。
【０００６】
例えば、同一モジュール内部に複数のクロックが用いられている場合、遅いクロック領域は回路動作上クリティカルになることは少ない。そこでこのようなクロック領域には、低消費電力化のためには、閾値電圧Ｖthの高いセルが配置されることが望ましい。しかし、従来はテクノロジライブラリの選択に関して以下のような問題があった。
【０００７】
１）閾値電圧Ｖthの異なる二つのテクノロジライブラリを用いた論理合成の手法として、論理合成とその後の論理最適化でのテクノロジライブラリの使い分けがある。前述したように、同時に複数のテクノロジライブラリを設定し、論理合成ツールの最適化機能によりセルを選択することが可能であるが、動作速度と消費電力の両方の要求仕様を満たさない場合には、次の二段階に分割する。
【０００８】
第１に、合成対象の上層から一括して、閾値電圧Ｖthの高いテクノロジライブラリを用いて論理合成する。この時点では、速度制約条件を満たしていない可能性がある。そこで第２に、閾値電圧Ｖthの高いテクノロジライブラリ及び閾値電圧Ｖthの低いテクノロジライブラリを用いて論理最適化を行う。これにより、速度制約条件を満たしていない経路において、閾値電圧Ｖthの高いセルから低いセルへの置換が行われ、高速化が図られる。
【０００９】
但し、従来はテクノロジライブラリの設定をモジュール全体に対して画一的に行うため、不必要な箇所にまで閾値電圧Ｖthの低いセルが割り付けられて、消費電力の増加を招くことがあった。
【００１０】
２）従来の手法には、クロック領域毎にモジュールが分割されているような場合に、モジュール単位でテクノロジライブラリを設定することにより、各クロック領域毎に特定のテクノロジライブラリを割り当てることができるものがあった。しかし、一つのモジュール内に複数のクロック領域を含む場合には、個々の領域ごとにテクノロジライブラリの設定を行うことはできなかった。
【００１１】
３）最下層のモジュールからボトムアップで論理合成を行う手法がある。閾値電圧Ｖthの低いセルが必要なモジュールにのみ、該当するテクノロジライブラリを設定して論理合成、最適化を行い、それ以外のモジュールでは、閾値電圧Ｖthの低いテクノロジライブラリは設定しないというものである。しかし、全体の論理合成に時間を要するうえに、複数のモジュール間をまたいで最適化を十分に行うことができないという問題があった。
【００１２】
以下に、従来の論理合成技術を開示した文献名を記載する。
【特許文献１】特開平０５−２７４３９０号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
本発明は、一つのモジュール内に複数のクロック領域を含む場合、また一つのモジュール内に他のモジュールを含む場合等においても、テクノロジライブラリの選択を最適化することが可能な論理合成装置を提供することを目的とする。
【課題を解決するための手段】
【００１４】
本発明の一態様による論理合成装置は、複数のクロック領域を有するモジュールに対して論理合成を行う装置であって、回路機能に関する回路記述データと、論理合成における制約条件とを入力する入力部と、前記回路記述データを解析して得られた結果を用いて、前記モジュールに含まれる経路を選択する経路選択部と、選択された前記経路における始点及び終点を認識し、前記始点及び終点がそれぞれ属するクロック領域を認識する認識部と、前記始点及び終点がそれぞれ属する前記クロック領域に応じて、テクノロジライブラリの初期設定を行い、前記始点を終点とする前段の経路に対して設定される前記テクノロジライブラリと、前記始点に初期設定された前記テクノロジライブラリとに対して予め設定された優先順位に基づいていずれかを前記始点に対して設定し、前記終点を始点とする後段の経路に対して設定される前記テクノロジライブラリと、前記終点に初期設定された前記テクノロジライブラリとに対して予め設定された優先順位に基づいていずれかを前記終点に対して設定するテクノロジライブラリ設定部とを備えることを特徴とする。
【００１５】
本発明の一態様による論理合成装置は、複数のクロック領域を有するモジュールに対して論理合成を行う装置であって、回路機能に関する回路記述データと、論理合成における制約条件とを入力する入力部と、前記回路記述データを解析して得られた結果を用いて、前記モジュールに含まれる経路を選択する経路選択部と、選択された前記経路における始点及び終点を認識し、前記始点及び終点がそれぞれ属するクロック領域を認識する認識部と、前記始点が属するクロック領域と前記終点が属するクロック領域とが同一である場合、このクロック領域に対応したテクノロジライブラリの設定を前記経路に対して行い、前記始点が属するクロック領域と前記終点が属するクロック領域とが異なる場合、前記始点には前記始点が属するクロック領域に対応したテクノロジライブラリの設定を行い、前記終点には前記終点が属するクロック領域に対応したテクノロジライブラリの設定を行い、前記始点と前記終点との間に設けられた組み合わせ回路に対しては、前記始点に設定された前記テクノロジライブラリと前記終点に設定された前記テクノロジライブラリとに対して予め設定された優先順位に基づいていずれかを設定するテクノロジライブラリ設定部とを備えることを特徴とする。
【発明の効果】
【００１６】
本発明の論理合成装置によれば、一つのモジュール内に複数のクロック領域を含む場合、一つのモジュール内に他のモジュールを含む場合等においてもテクノロジライブラリの選択の最適化が可能である。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の実施の形態について図面を参照して説明する。
【００１８】
（１）実施の形態１
図１に、本実施の形態１による論理合成装置の構成を示す。
【００１９】
この論理合成装置は、入力部１０、回路素子割り付け部２０、記憶部３０、出力部４０を備える。回路素子割り付け部２０は、経路選択部２１、認識部２２、テクノロジライブラリ設定部２３を有する。
【００２０】
入力部１０は、ＲＴＬ回路記述データ１１と制約条件１２とを入力する。入力されたデータは、一旦記憶部３０に記憶される。
【００２１】
回路素子割り付け部２０において、経路選択部２１は、入力されたＲＴＬ回路記述データ１１に基づいて回路に含まれる経路の選択を行う。
【００２２】
認識部２２は、選択された経路に含まれる始点と終点とを認識し、さらにそれぞれがいずれのクロック領域に属するかを認識する。
【００２３】
テクノロジライブラリ設定部２３は、当該経路に対しテクノロジライブラリの設定を行い、このテクノロジライブラリが有するセルを割り付ける。
【００２４】
出力部４０は、回路素子割り付け部２０が行った結果を出力する。
【００２５】
本実施の形態１では、論理合成の対象となるモジュールに含まれる各経路毎に、始点、終点が属するクロック領域を設定する処理が行われる。ここで経路には、図２に示されたように、あるモジュールＡ  Ｍ５０１内において、
Ａ）フリップフロップＦ５０１からフリップフロップＦ５０２への経路Ｐ５０１
Ｂ）入力端子ＩＰ５０１からフリップフロップＦ５０３への経路Ｐ５０２
Ｃ）フリップフロップＦ５０４から出力端子ＯＰ５０１への経路Ｐ５０３
Ｄ）入力端子から出力端子への経路Ｐ５０４
に分類される。
【００２６】
ここで、各フリップフロップＦ５０１〜Ｆ５０４は、クロックＣＬＫ１に同期して動作する記憶素子としての機能を有しており、例えばメモリ、ラッチ等で構成される。また、フリップフロップＦ５０１とＦ５０２との間、入力端子ＩＰ５０１とフリップフロップＦ５０３との間、フリップフロップＦ５０４と出力端子ＯＰ５０１との間、入力端子ＩＰ５０２と出力端子ＯＰ５０２との間には、記憶機能を有していない組み合わせ論理回路Ｃ５０１、Ｃ５０２、Ｃ５０３、Ｃ５０４がそれぞれ配置されている。
【００２７】
尚、このような経路の抽出は、既存の論理合成ツール、静的タイミング解析ツール、タイミングドリブンレイアウトツール等に組み込まれている経路抽出エンジンを用いることにより、容易に行うことができる。
【００２８】
本実施の形態では以下に説明するように、各経路をこのようなタイプＡ〜Ｄに分類し、各経路毎にテクノロジライブラリの選択を行う。
【００２９】
図３に、論理合成対象となるモジュール内に、二種類のクロック領域を有する場合の各経路を示す。このモジュールＡ  Ｍ１０１内には、クロックＣＬＫ１が用いられるクロック領域Ｒ１０１と、クロックＣＬＫ２が用いられるクロック領域Ｒ１０２とが存在する。
【００３０】
このモジュールＡ  Ｍ１０１に適用するテクノロジライブラリの設定例を図４に示す。
【００３１】
ここで、クロックＣＬＫ１とクロックＣＬＫ２との間の周波数は、ＣＬＫ１＜ＣＬＫ２の関係にあるものとする。クロックＣＬＫ２が適用される経路は、閾値電圧Ｖthが高いテクノロジライブラリが適用され消費電力の低減が優先され、動作速度は優先されない経路となる。逆に、クロックＣＬＫ２が適用される経路は、閾値電圧Ｖthが低いテクノロジライブラリが適用され動作速度が速いことが優先され、消費電力の低減は優先されない経路である。
【００３２】
設定１では、始点がクロックＣＬＫ１、終点がクロックＣＬＫ１である場合に、閾値電圧Ｖthが高いテクノロジライブラリＬ１が適用される。
【００３３】
設定２では、始点がクロックＣＬＫ２、終点がクロックＣＬＫ２である場合に、閾値電圧Ｖthが高いテクノロジライブラリＬ１と、閾値電圧Ｖthが低いテクノロジライブラリＬ２が適用される。
【００３４】
設定３では、始点がクロックＣＬＫ２、終点がクロックＣＬＫ１である場合に、閾値電圧Ｖthが高いテクノロジライブラリＬ１と、閾値電圧Ｖthが低いテクノロジライブラリＬ２が適用される。
【００３５】
設定４では、始点がクロックＣＬＫ１、終点がクロックＣＬＫ２である場合に、閾値電圧Ｖthが高いテクノロジライブラリＬ１が適用される。
【００３６】
図３に示された構成において、論理合成対象における最上位がモジュールＡ  Ｍ１０１に相当する。このモジュールＡ  Ｍ１０１における全体にクロックＣＬＫ２が用いられるクロック領域Ｒ１０２が配置され、クロック領域Ｒ１０２内の一部にクロックＣＬＫ１が用いられるクロック領域Ｒ１０１が島状に配置されている。
【００３７】
クロック領域Ｒ１０１内において、経路Ｐ１０１は始点、終点ともクロックＣＬＫ１が用いられるため、設定１が適用される。これにより、始点のフリップフロップＦ１０１、終点のフリップフロップＦ１０２、その間の組み合わせ論理回路Ｃ１０１に対して、テクノロジライブラリＬ１のセルが割り当てられる。
【００３８】
クロック領域Ｒ１０２内において、経路Ｐ１０２は始点、終点ともクロックＣＬＫ２が用いれるため、設定２が適用される。これにより、始点のフリップフロップＦ１０３、終点のフリップフロップＦ１０４、その間の組み合わせ論理回路Ｃ１０２に対して、テクノロジライブラリＬ１、Ｌ２のセルが割り当てられる。
【００３９】
経路Ｐ１０１、Ｐ１０２はそれぞれクロック領域Ｒ１０１、Ｒ１０２に完全に囲まれている。これに対し経路Ｐ１０３は、クロック領域Ｒ１０１からＲ１０２へ跨ぐように配置されており、始点がクロックＣＬＫ２、終点がクロックＣＬＫ１であるため設定３が適用される。これにより、フリップフロップＦ１０５、組み合わせ論理回路Ｃ１０３、フリップフロップＦ１０６に対しては、テクノロジライブラリＬ１、Ｌ２のセルが割り付けられる。
【００４０】
経路Ｐ１０４は、始点、終点ともクロックＣＬＫ２が用いられるため、設定２が適用される。これにより、始点のフリップフロップＦ１０７、終点のフリップフロップＦ１０５、その間の組み合わせ論理回路Ｃ１０４に対して、テクノロジライブラリＬ１、Ｌ２のセルが割り当てられる。
【００４１】
ここでフリップフロップＦ１０５は、経路Ｐ１０３の始点であると同時に、経路Ｐ１０４の終点でもあり、従って、設定２と３の両方が適用され得る。このような場合は、設定に優先順位を設けることで一意に決定することが可能である。
【００４２】
例えば、優先順位の高いものから順に、設定１、２、３、４とする。この場合には、フリップフロップＦ１０５に対しては優先順位の高い設定２が選択されて、テクノロジライブラリＬＬ１、Ｌ２のセルが割り付けられることになる。
【００４３】
さらに経路Ｐ１０５は始点、終点ともクロックＣＬＫ１が用いられるため、設定１が適用される。これにより、始点のフリップフロップＦ１０６、終点のフリップフロップＦ１０８、その間の組み合わせ論理回路Ｃ１０５に対して、テクノロジライブラリＬ１のセルが割り当てられる。
【００４４】
しかし、フリップフロップＦ１０６は、経路Ｐ１０５の始点であると同時に、経路Ｐ１０３の終点でもある。
【００４５】
フリップフロップＦ１０５の場合と同様に優先順位を設けることで、設定１が適用されることとなり、テクノロジライブラリＬ１のセルが割り付けられる。
【００４６】
経路Ｐ１０６は、始点がクロックＣＬＫ１、終点がクロックＣＬＫ２であり設定４が適用される。このため、フリップフロップＦ１０９、組み合わせ論理回路Ｃ１０６、フリップフロップＦ１１０に対して、テクノロジライブラリＬ１のセルが割り付けられる。
【００４７】
しかし、フリップフロップＦ１１０は経路Ｐ１０８の始点でもあり、経路Ｐ１０８は始点、終点ともクロックＣＬＫ２ゆえ設定２が適用されテクノロジライブラリＬ１、Ｌ２が適用される。上述した優先順位を適用すると、フリップフロップＦ１１０には設定２が適用されて、テクノロジライブラリＬ１、Ｌ２が割り付けられることになる。
【００４８】
また、フリップフロップＦ１０９は経路Ｐ１０７の終点でもあり、経路Ｐ１０７は始点、終点ともにクロックＣＬＫ１ゆえ設定１が適用されテクノロジライブラリＬ１が適用される。上述した優先順位を適用すると、フリップフロップＦ１０９には設定１が適用され、テクノロジライブラリＬ１が割り当てられる。但し、この例ではフリップフロップＦ１０９は、最初に設定４としてテクノロジライブラリＬ１が適用されていたため、優先順位適用によるテクノロジライブラリの変更は発生しない。
【００４９】
図５のフローチャートを用いて、本実施の形態１における論理合成、最適化処理の手順について説明する。尚、図５に示された処理内容はテクノロジライブラリの選択に焦点をあてたものであり、記載された内容以外の処理を含むこともできる。
【００５０】
ステップＳ１０として、入力部１１にＲＴＬ（Register Transfer Level）記述言語により回路機能が記述された回路記述データが入力され、ステップＳ１１として、入力部１１に論理合成、最適化処理における各種制約条件として、例えば動作速度や消費電力に関する条件が入力される。入力されたデータは、記憶部３０に一旦記憶される。
【００５１】
ステップＳ１２として、経路選択部２１において、即ち入力されたＲＴＬ記述データの構文解析が行われ、ステップＳ１３として、経路選択部２１において入力された各制約条件の解析が行われる。
【００５２】
ステップＳ１４として、経路選択部２１において、ＲＴＬ記述構文解析で得られた回路構成に含まれる経路の選択が行われる。
【００５３】
ステップＳ１６として、認識部２２において、選択された経路における始点、終点が認識され、さらにそれぞれが属するクロック領域が認識され、テクノロジライブラリ設定部２３において、当該経路に適用するテクノロジライブラリの設定が行われる。
【００５４】
ステップＳ１８として、テクノロジライブラリ設定部２３において、選択された経路における各構成要素に、選択されたテクノロジライブラリが用いられてセルが割り付けられる。ステップＳ２０からステップＳ１４までの処理を繰り返すことで、全経路に対してセルの割り付けが行われる。
【００５５】
ここで、ステップＳ１６におけるテクノロジライブラリの選択処理の流れについて、図６のフローチャートを用いて説明する。
【００５６】
ステップＳ４０として、認識部２２において、始点が属するクロック領域、終点が属するクロック領域が認識される。テクノロジライブラリ設定部２３において、始点が属するクロック領域と終点が属するクロック領域との組み合わせに応じて、例えば上述した図４に示されたような始点、終点のクロックＣＬＫ１、ＣＬＫ２の組み合わせに応じて、テクノロジライブラリの初期選択が行われる。
【００５７】
ステップＳ４２として、テクノロジライブラリ設定部２３において、当該経路のなかの構成要素に着目し、例えば上記例ではクロックに同期してデータを記憶するフリップフロップに着目し、それが始点か否かの判断が行われる。始点である場合は、ステップＳ４４へ移行する。
【００５８】
ステップＳ４４として、テクノロジライブラリ設定部２３において、この始点となる当該構成要素を終点とするような前段の経路において決められたテクノロジライブラリと、ステップＳ４０において初期選択されたテクノロジライブラリとが予め設定された優先順位に基づいて比較され、優先順位の高い方に再設定が行われる。
【００５９】
ステップＳ４２において、当該構成要素が経路の始点ではない場合は、ステップＳ４６へ移行する。
【００６０】
ステップＳ４６として、テクノロジライブラリ設定部２３において、当該構成要素が経路の終点か否かが判断され、終点である場合は、ステップＳ４８として、それを始点とするような後段の経路において決められたテクノロジライブラリと、初期選択されたテクノロジライブラリとが優先順位に基づいて比較され、再選択が行われる。
【００６１】
ステップＳ４６において、テクノロジライブラリ設定部２３により、当該構成要素が経路の始点でもなく終点でもない中間に位置する組み合わせ回路であると判断された場合は、初期選択されたテクノロジライブラリをそのまま最終的に選択することになる。
【００６２】
本実施の形態１によれば、複数のクロック領域を有するモジュールの論理合成を行う際に、モジュール内の各々のクロック領域ごとに、高速動作、低消費電力等の要求に応じた最適なテクノロジライブラリを個別に設定することにより、論理合成品質を向上させることができる。
【００６３】
即ち、例えば低消費電力動作が要求されるクロック領域に対しては閾値電圧Ｖthの高いセルを有するテクノロジライブラリを設定し、高速動作を要求されるクロック領域に対しては閾値電圧Ｖthの低いセルのテクノロジライブラリのみを設定することで、最適化を図ることができる。
【００６４】
（２）実施の形態２
本発明の実施の形態２による論理合成装置について説明する。
【００６５】
上記実施の形態１は、全体で１つのモジュールが存在するが、本実施の形態２では１つのモジュール内に他のモジュールが存在する場合に相当する。
【００６６】
図７に、論理合成対象となるモジュールＢ  Ｍ３０１の構成を示す。モジュールＢ  Ｍ３０１全体が、クロックＣＬＫ４に同期して動作するクロック領域Ｒ３０２に相当し、その内部に、クロックＣＬＫ３に同期して動作するクロック領域Ｒ３０１が島状に配置されている。そして、クロック領域Ｒ３０１とクロック領域Ｒ３０２とに跨るように、モジュールＣ  Ｍ３０２が配置されている。
【００６７】
このようにモジュールＢ  Ｍ３０１は階層構造を有し、その内部にモジュールＣ  Ｍ３０２が配置されており、モジュールＣ  Ｍ３０２の内部に二つのクロック領域Ｒ３０１と領域Ｒ３０２とが含まれている。
【００６８】
このようなモジュールＢ  Ｍ３０１に適用するテクノロジライブラリの設定例を図８に示す。
【００６９】
ここで、クロックＣＬＫ３とクロックＣＬＫ４との間の周波数は、ＣＬＫ３＜ＣＬＫ４の関係にあるものとする。クロックＣＬＫ３が適用される経路は、閾値電圧Ｖthが高いテクノロジライブラリが適用され消費電力の低減が優先され、逆にクロックＣＬＫ４が適用される経路は、閾値電圧Ｖthが低いテクノロジライブラリが適用され動作速度が速いことが優先される。
【００７０】
設定１では、始点がクロックＣＬＫ３、終点がクロックＣＬＫ３である場合に、閾値電圧Ｖthが高いテクノロジライブラリＬ３が適用される。
【００７１】
設定２では、始点がクロックＣＬＫ４、終点がクロックＣＬＫ４である場合に、閾値電圧Ｖthが低いテクノロジライブラリＬ４が適用される。
【００７２】
設定３では、始点がクロックＣＬＫ４、終点がクロックＣＬＫ３である場合に、閾値電圧Ｖthが低いテクノロジライブラリＬ４が適用される。
【００７３】
設定４では、始点がクロックＣＬＫ３、終点がクロックＣＬＫ４である場合に、閾値電圧Ｖthが高いテクノロジライブラリＬ３が適用される。
【００７４】
図７において、モジュールＣ  Ｍ３０２とモジュールＢ  Ｍ３０１とに跨る経路Ｐ３０１は、始点、終点が共にクロック領域Ｒ３０１であるため、設定１が適用される。始点のフリップフロップＦ３０１、終点のフリップフロップＦ３０２、その間の組み合わせ論理回路Ｃ３０１、Ｃ３０２に対して、テクノロジライブラリＬ３のセルが割り当てられる。
【００７５】
経路Ｐ３０２は、モジュールＣ  Ｍ３０２とモジュールＢ  Ｍ３０１とに跨り、さらにクロック領域Ｒ３０２とクロック領域Ｒ３０１とに跨る。始点のフリップフロップＦ３０３がクロック領域Ｒ３０２、終点のフリップフロップＦ３０４がクロック領域Ｒ３０１であるため、設定３が適用される。フリップフロップＦ３０３、Ｆ３０４、これらのフリップフロップ間の組み合わせ論理回路Ｃ３０３、Ｃ３０４に対して、テクノロジライブラリＬ４のセルが割り付けられる。
【００７６】
ここで、経路Ｐ３０２における始点のフリップフロップＦ３０３は、図示されていないがその前段の経路がクロック領域Ｒ３０２内で閉じているとすると、この経路の終点がフリップフロップＦ３０３となり、この経路には設定２が適用される。従って、フリップフロップＦ３０３には設定２と３とが適用され得ることになる。
【００７７】
このような場合、上記実施の形態１と同様に設定条件に優先順位を設けることで解消する。例えば、優先順位の高いものから順に、設定１、２、３、４とすると、この場合には設定２が選択されて、テクノロジライブラリＬ４のセルが割り付けられることになる。
【００７８】
終点のフリップフロップＦ３０４は、これを始点とする後段の経路がクロック領域Ｒ３０１内で閉じているとすると、設定１が適用されることとなる。その結果、フリップフロップＦ３０４には設定１、３が適用されることとなり得る。
【００７９】
この場合、フリップフロップＦ３０３と同様に優先順位を考慮すると、設定１が適用されることになり、テクノロジライブラリＬ３のセルが割り付けられる。
【００８０】
経路Ｐ３０３は、始点のフリップフロップＦ３０５がクロック領域Ｒ３０１、終点のフリップフロップＦ３０６がクロック領域Ｒ３０２であり、設定４が適用される。これらのフリップフロップＦ３０５、Ｆ３０６、さらにこれらの間の組み合わせ論理回路Ｃ３０５、Ｃ３０６に対して、テクノロジライブラリＬ３のセルが割り付けられる。
【００８１】
経路Ｐ３０２において述べたように、フリップフロップＦ３０５の図示されていない前段の経路がクロック領域Ｒ３０１内で閉じていた場合、その経路の構成要素には設定１が適用される。優先順位を考慮すると、フリップフロップＦ３０５には設定１が適用されることになる。
【００８２】
さらにフリップフロップＦ３０６の図示されていない後段の経路がクロック領域Ｒ３０２で閉じていた場合、その経路の構成要素には設定２が適用される。優先順位に従い、フリップフロップＦ３０６には設定２が適用されることになる。
【００８３】
この結果、フリップフロップＦ３０５には設定１が適用され、テクノロジライブラリＬ３のセルが割り付けられ、フリップフロップＦ３０６には設定２が適用され、テクノロジライブラリＬ４のセルが割り付けられ、組み合わせ回路Ｃ３０５、Ｃ３０６に対しては設定４が適用され、テクノロジライブラリＬ３のセルが割り付けられる。
【００８４】
論理合成、最適化処理の手順は上記実施の形態１の場合と同様であり、説明を省略する。
【００８５】
本実施の形態２によれば、複数のモジュールの存在にとらわれることなく、各経路毎に始点、終点のフリップフロップにそれぞれ入力されるクロックに応じてテクノロジライブラリを容易に設定し最適化を図ることが可能である。
【００８６】
（３）実施の形態３
本発明の実施の形態３について、図面を参照して説明する。本実施の形態３で論理合成の対象とするモジュールは、上記実施の形態１において参照した図３に示されたものと同一であるとする。
【００８７】
そして、このモジュールＡ  Ｍ１０１に適用するテクノロジライブラリの設定例を図９に示す。上記実施の形態１では、始点となるフリップフロップ、および終点となるフリップフロップに入力されるクロックに応じて、テクノロジライブラリを設定する。これに対し本実施の形態３では、クロック領域を単位としてテクノロジライブラリを設定する点で相違する。
【００８８】
ここで、クロックＣＬＫ１とクロックＣＬＫ２との間の周波数は、ＣＬＫ１＜ＣＬＫ２という関係にあるものとする。そして、テクノロジライブラリＬ１は閾値電圧Ｖthが高く動作速度が相対的に遅いが消費電力が低いセルを有し、テクノロジライブラリＬ２は閾値電圧Ｖthが低く動作速度が速いが消費電力が高いセルを有する。
【００８９】
設定１では、クロックＣＬＫ１が用いられるクロック領域Ｒ１０１において、テクノロジライブラリＬ１が適用される。
【００９０】
設定２では、クロックＣＬＫ２が用いられるクロック領域Ｒ１０２において、テクノロジライブラリＬ２が適用される。
【００９１】
図３の各経路のうち、経路Ｐ１０１はその始点、終点のフリップフロップＦ１０１、Ｆ１０２がともにクロックＣＬＫ１が用いられるクロック領域Ｒ１０１に属している。この場合には設定１が適用され、これらのフリップフロップＦ１０１、Ｆ１０２とその間の組み合わせ論理回路Ｃ１０１に対して、テクノロジライブラリＬ１のセルが割り当てられる。
【００９２】
経路Ｐ１０２は、その始点、終点のフリップフロップＦ１０３、Ｆ１０４がともにクロックＣＬＫ２が用いられるクロック領域Ｒ１０２に属している。この場合は設定２が適用され、これらのフリップフロップＦ１０３、Ｆ１０４とその間の組み合わせ論理回路Ｃ１０２に対し、テクノロジライブラリＬ２のセルが割り当てられる。
【００９３】
同様にして、経路Ｐ１０４には設定２が、経路Ｐ１０５には設定１が適用され、それぞれ始点、終点のフリップフロップとその間の組み合わせ論理回路にテクノロジライブラリＬ２、Ｌ１のセルが割り当てられる。
【００９４】
一方、経路Ｐ１０３はクロック領域Ｒ１０２からクロック領域Ｒ１０１へ跨ぐように配置されている。このような場合は、始点、終点の中間に位置する組み合わせ論理回路Ｃ１０３に対する設定を、例えば、
１）始点に適用される設定２と終点に適用される設定１のうち、予め定められた優先順位の高い方を適用する、あるいは
２）始点に適用される設定２を適用する、又は終点に適用される設定１を適用する、
というように行う。
【００９５】
この場合の論理合成、最適化の処理の手順について説明する。全体の処理の手順は、上記実施の形態１において図５を用いて説明した内容と同一である。
【００９６】
このうち、本実施の形態３ではステップＳ１６におけるテクノロジライブラリの設定が上記実施の形態１と相違し、図１０に示されるようである。ここでは、上記２）に従いテクノロジライブラリの設定を行う。但し、図５、図１０に示された処理内容はテクノロジライブラリの選択に焦点をあてたものであって、他の処理を含むこともできる。
【００９７】
ステップＳ６０として、認識部２２により、始点が属するクロック領域が認識され、このクロック領域に応じて、図９に示された設定例に従い、テクノロジライブラリ設定部２３においてテクノロジライブラリの初期選択が行われる。
【００９８】
ステップＳ６２として、認識部２２により認識された経路が属するクロック領域が複数のクロック領域であるか否か、具体的な処理としては始点が属するクロック領域と終点が属するクロック領域が異なるか否か、テクノロジライブラリ設定部２３において判断される。
【００９９】
経路が複数のクロック間を跨がない場合は、始点と終点とが同一のクロック領域に属するため、初期設定されたテクノロジライブラリを最終的なものとして設定する。この場合、当該経路に存在する全ての構成要素に対して初期選択されたテクノロジライブラリのセルが配置される。経路が複数のクロック間を跨ぐ場合には、ステップＳ６４へ移行する。
【０１００】
テクノロジライブラリ設定部２３において、経路のなかの特定の構成要素に着目し、それが始点であるか否かが判断される。始点である場合は、始点に初期選択されたテクノロジライブラリを最終的なものとして設定される。
【０１０１】
当該構成要素が始点でない場合は、ステップＳ６６へ移行し、当該構成要素が終点であるか否かを判断する。
【０１０２】
その構成要素が終点である場合は、ステップＳ６８へ移行し、テクノロジライブラリ設定部２３において、始点に初期設定されたものを変更し、その終点となっている構成要素が属するクロック領域に対応したテクノロジライブラリの再選択を行う。
【０１０３】
終点でない場合、即ち始点、終点の間に設けられた組み合わせ回路である場合には、ステップＳ７０へ移行し、テクノロジライブラリ設定部２３において、始点に対して初期選択されたテクノロジライブラリと、終点に対して再選択されたテクノロジライブラリとが比較され、再選択が行われる。この場合、例えば優先順位を予め設定しておき、優先順位の高いテクノロジライブラリを選択する。
【０１０４】
あるいは、上記２）のようにステップＳ７０において、始点と終点の中間に位置する組み合わせ回路に対し、予め定められた始点又は終点と同一のテクノロジライブラリを設定してもよい。
【０１０５】
本実施の形態３によれば、各クロック領域を単位としてテクノロジライブラリが設定されるが、複数のクロック領域を有するモジュールの論理合成を行う際に、各々のクロック領域ごとに高速動作、低消費電力等の要求に応じた最適なテクノロジライブラリを個別に設定することにより、論理合成品質を向上させることができる。
【０１０６】
上述した実施の形態はいずれも一例であって、本発明を限定するものではなく、本発明の技術的範囲内において様々に変形することが可能である。
【図面の簡単な説明】
【０１０７】
【図１】本発明の実施の形態１による論理合成装置の構成を示すブロック図。
【図２】同実施の形態１においてテクノロジライブラリが適用される単位となる４種類の経路を示すブロック図。
【図３】同実施の形態１による論理合成の対象となるモジュールに含まれる複数のクロック領域と各経路の構成を示したブロック図。
【図４】同実施の形態１におけるテクノロジライブラリの設定例を示す説明図。
【図５】同実施の形態１における論理合成の処理の手順を示したフローチャート。
【図６】同実施の形態１において、図５におけるテクノロジライブラリの選択処理の手順を示したフローチャート。
【図７】本発明の実施の形態２による論理合成の対象となるモジュールに含まれる複数のクロック領域、複数のモジュール、各経路の構成を示したブロック図。
【図８】同実施の形態２におけるテクノロジライブラリの設定例を示す説明図。
【図９】本発明の実施の形態３におけるテクノロジライブラリの設定例を示す説明図。
【図１０】同実施の形態３による論理合成において、図５におけるテクノロジライブラリの選択処理の手順を示したフローチャート。
【符号の説明】
【０１０８】
１０  入力部
１１  ＲＴＬ回路記述データ
１２  制約条件
２０  回路素子割り付け部
２１  経路選択部
２２  認識部
２３  テクノロジライブラリ設定部
３０  記憶部
４０  出力部
【図１】
2009020729.tif 000003
【図２】
2009020729.tif 000004
【図３】
2009020729.tif 000005
【図４】
2009020729.tif 000006
【図５】
2009020729.tif 000007
【図６】
2009020729.tif 000008
【図７】
2009020729.tif 000009
【図８】
2009020729.tif 000010
【図９】
2009020729.tif 000011
【図１０】
2009020729.tif 000012