(57)【特許請求の範囲】
【請求項１】
コンピュータ装置がハードウェア記述とセルライブラリの部品とを用いた論理合成を行ってクロック同期型の順序回路と組み合わせ回路との直列パスを含む論理回路のネットリストを生成する論理回路の設計方法であって、
前記コンピュータ装置は、正論理入力端子と正論理非反転出力端子を有する第１順序回路、及び正論理入力端子と正論理反転出力端子を有する第２順序回路に加えて、前記第１順序回路と当該入力端子及び出力端子の論理以外が同一の論理で負論理入力端子と負論理非反転出力端子を有する第３順序回路、及び前記第２順序回路と当該入力端子及び出力端子の論理以外が同一の論理で負論理入力端子と負論理反転出力端子を有する第４順序回路を用いて、前記直列パスにおけるクリティカルパスのゲート段数を減らす最適化処理を行い、
前記第１順序回路は、インバータが直列に接続された第１インバータ列を含み、
前記第２順序回路は、前記第１インバータ列とは異なる段数のインバータが直列に接続された第２インバータ列を含む、論理回路の設計方法。
【請求項２】
前記コンピュータ装置は前記最適化処理において、第１順序回路の正論理入力端子に接続する組み合わせ回路の最終段に正論理への極性整合用のインバータを配置可能なとき、これに代えて、当該極性整合用のインバータを削除し且つ第１順序回路を第４順序回路とする、請求項１記載の論理回路の設計方法。
【請求項３】
前記第２順序回路及び第４順序回路のゲート段数は第１順序回路及び第３順序回路のゲート段数よりも１段少ない、請求項２記載の論理回路の設計方法。
【請求項４】
前記コンピュータ装置は前記最適化処理において、第２順序回路の正論理入力端子に接続する組み合わせ回路の最終段に正論理への極性整合用のインバータを配置可能なとき、これに代えて、当該極性整合用のインバータを削除し且つ第２順序回路を第３順序回路とする、請求項１記載の論理回路の設計方法。
【請求項５】
前記第１順序回路及び第３順序回路のゲート段数は第２順序回路及び第４順序回路のゲート段数よりも１段少ない、請求項４記載の論理回路の設計方法。
【請求項６】
前記セルライブラリは前記第１順序回路、第２順序回路、第３順序回路及び第４順序回路を別々の部品として持つ、請求項１記載の論理回路の設計方法。
【請求項７】
ハードウェア記述とセルライブラリの部品とを用いた論理合成を行ってクロック同期型の順序回路と組み合わせ回路との直列パスを含む論理回路のネットリストを生成するコンピュータ装置で実行可能な論理設計プログラムであって、
前記コンピュータ装置に、正論理入力端子と正論理非反転出力端子を有する第１順序回路、及び正論理入力端子と正論理反転出力端子を有する第２順序回路に加えて、前記第１順序回路と当該入力端子及び出力端子の論理以外が同一の論理で負論理入力端子と負論理非反転出力端子を有する第３順序回路、及び前記第２順序回路と当該入力端子及び出力端子の論理以外が同一の論理で負論理入力端子と負論理反転出力端子を有する第４順序回路を用いて、前記直列パスにおけるクリティカルパスのゲート段数減らす最適化処理を実行させ、
前記第１順序回路は、インバータが直列に接続された第１インバータ列を含み、
前記第２順序回路は、前記第１インバータ列とは異なる段数のインバータが直列に接続された第２インバータ列を含む、論理設計プログラム。
【請求項８】
前記最適化処理は、第１順序回路の正論理入力端子に接続する組み合わせ回路の最終段に正論理への極性整合用のインバータを配置可能なとき、これに代えて、当該極性整合用のインバータを削除し且つ第１順序回路を第４順序回路とする処理を含む、請求項７記載の論理設計プログラム。
【請求項９】
前記第２順序回路及び第４順序回路のゲート段数は第１順序回路及び第３順序回路のゲート段数よりも１段少ない、請求項８記載の論理設計プログラム。
【請求項１０】
前記最適化処理は、第２順序回路の正論理入力端子に接続する組み合わせ回路の最終段に正論理への極性整合用のインバータを配置可能なとき、これに代えて、当該極性整合用のインバータを削除し且つ第２順序回路を第３順序回路とする処理を含む、請求項７記載の論理設計プログラム。
【請求項１１】
前記第１順序回路及び第３順序回路のゲート段数は第２順序回路及び第４順序回路のゲート段数よりも１段少ない、請求項１０記載の論理設計プログラム。
【請求項１２】
前記最適化処理は、前記第１順序回路、第２順序回路、第３順序回路及び第４順序回路をそれぞれ別々の部品としてセルライブラリから読み込んで利用する、請求項７記載の論理設計プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クロック同期型の順序回路と組み合わせ回路との直列パスを含む論理回路のネットリストを生成する論理回路の設計方法、その設計方法を実現するために用いる論理設計プログラム、更にはその設計方法が適用されて構成された半導体集積回路に関し、例えばマイクロコンピュータやデータプロセッサなどのデータ処理用半導体集積回路の論理合成ツールに適用して有効な技術に関する。
【背景技術】
【０００２】
クロック同期で論理動作を行う論理回路には組み合わせ回路の前後に順序回路を配置したデータパスを用意し、所定のクロック周期で順序回路に入出力動作をさせることによって、データパスにクロック同期でデータを順次伝達させながら論理動作を行っていく。したがって、一つの順序回路からデータが出力されてこれを組み合わせ回路が入力して論理動作を完了するまでの論理動作時間は所要のクロック周期よりも短いことが必要になる。換言すれば、一つの順序回路からデータが出力されてこれを組み合わせ回路が入力して論理動作を完了するまでにデータが伝達されるゲート段数が最も大きい場合に必要なクロック周期によってその論理回路の論理動作速度が決まる。したがって、順序回路についてもそのゲート段数は少ないほど好ましい。特許文献１，２はそのような観点に立ってクロック同期型の順序回路それ自体のゲート段数を減らすことを可能にするものである。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平７−２４９９６８号公報
【特許文献２】特開平８−１８１５７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明者は、クロック同期でデータ伝達を行ないながら論理動作を行なう論理回路のゲート段数を削減することについて、コンピュータ装置を用いた論理合成における組み合わせ回路と順序回路との間のデータ伝達の観点より検討した。この観点は特許文献１，２による観点とは全く相違される。本発明者による検討によれば、従来の論理合成では部品として扱われるクロック同期型順序回路の入力を正論理入力に統一することが暗黙的に行なわれていたと考えられる。例えばマスタ・スレーブ型の典型的なクロック同期順序回路は、正論理の入力端子とその非反転出力端子を有する部品と、正論理の入力端子とその反転出力端子を有する部品との２種類とされる。このとき、データパスに配置される組み合わせ回路の論理は必ずしも正論理又は負論理の一方に統一されるとは限らない。したがって、順序回路前段の組み合わせ回路が負論理回路の場合には例えば其の出力を反転するインバータを順序回路の正論理入力端子の前段に追加することが行なわれる。或いは、前段の順序回路の反転出力端子を受ける正論理の組み合わせ回路の出力を反転するインバータを次段の順序回路の正論理入力端子の前に追加することが行なわれる。このようにしてインバータが追加されたパスはクリティカルパスになることが多くなり、ゲート段数を削減して論理回路の高速化を図る上で大きな課題になることが明らかになった。
【０００５】
本発明の目的は、クロック同期型の順序回路と組み合わせ回路との直列パスを含む論理回路に配置された冗長なインバータを削減してゲート段数を低減することができる論理回路の設計方法を提供することにある。
【０００６】
更に、その方法に関連して、当該方法を容易に実現できるコンピュータ実行可能なプログラムを提供することにある。同じく、その方法に関連して、当該方法が適用された半導体集積回路を提供することにある。
【０００７】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００８】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【０００９】
すなわち、ハードウェア記述とセルライブラリの部品とを用いた論理合成を行ってクロック同期型の順序回路と組み合わせ回路との直列パスを含む論理回路のネットリストを生成するコンピュータ装置は、正論理入力端子と正論理非反転出力端子を有する第１順序回路、及び正論理入力端子と正論理反転出力端子を有する第２順序回路に加えて、負論理入力端子と負論理非反転出力端子を有する第３順序回路、及び負論理入力端子と負論理反転出力端子を有する第４順序回路を用いて、直列パスにおける順序回路間のクリティカルパスのゲート段数減らす最適化処理を行う。
【００１０】
これによれば、最適化処理では必要に応じて第１順序回路に代えて第３順序回路を利用し、また、第２順序回路に代えて第４順序回路を利用する。
【発明の効果】
【００１１】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
【００１２】
すなわち、クロック同期型の順序回路と組み合わせ回路との直列パスを含む論理回路に配置された冗長なインバータを削減してゲート段数を低減することができる。
【図面の簡単な説明】
【００１３】
【図１】図１は本実施の形態に係る論理回路の設計方法を適用する前の直列パスと適用して得られる直列パスとを対比して例示した説明図である。
【図２】図２は第１順序回路ＦＦ１の一例を示す論理回路図である。
【図３】図３は第１順序回路ＦＦ1の動作説明図である。
【図４】図４は第２順序回路ＦＦ２の一例を示す論理回路図である。
【図５】図５は第３順序回路ＦＦ３の一例を示す論理回路図である。
【図６】図６は第４順序回路ＦＦ４の一例を示す論理回路図である。
【図７】図７は正論理順序回路の別の例を示す論理回路図である。
【図８】図８は負論理順序回路の別の例を示す論理回路図である。
【図９】図９は論理合成における最適化処理の具体例を示す説明図である。
【図１０】図１０は論理合成における最適化処理の別の例を示す説明図である。
【図１１】図１１は論理合成における最適化処理の更に別の例を示す説明図である。
【図１２】図１２は上記最適化処理を採用した論理回路の設計方法を実現するシステム構成を例示する説明図である。
【図１３】図１３は負論理順序回路ＦＦ３，ＦＦ４を部品に追加して論理合成を行なうときの直列パスに対する最適化処理の処理フローを例示するフローチャートである。
【図１４】図１４は正論理の入力端子Ｄｐと正論理の非反転出力端子Ｑｐを有する第１順序回路ＦＦ１１を例示する論理回路図である。
【図１５】図１５は正論理の入力端子Ｄｐと正論理の反転出力端子Ｑｐ／を有する第２順序回路ＦＦ１２を例示する論理回路図である。
【図１６】図１６は負論理の入力端子Ｄｎ／と負論理の非反転出力端子Ｑｎ／を有する第３順序回路ＦＦ１３を例示する論理回路図である。
【図１７】図１７は負論理の入力端子Ｄｎ／と負論理の反転出力端子Ｑｎを有する第４順序回路ＦＦ１４を例示する論理回路図である。
【図１８】図１８は論理合成における最適化処理の具体例を示す説明図である。
【図１９】図１９は論理合成における最適化処理の別の例を示す説明図である。
【図２０】図２０は論理合成における最適化処理の更に別を示す説明図である。
【図２１】図２１は上記論理合成ツール３０をコンピュータ装置３で実行することにとって得られたネットリスト３１などを用いて製造された半導体集積回路のブロック構成を例示するブロック図である。
【図２２】図２２は順序回路の別の具体例としてリセット機能付きの第２順序回路ＦＦ２２を例示する論理回路図である。
【図２３】図２３は順序回路の別の具体例としてリセット機能付きの第３順序回路ＦＦ３２を例示する論理回路図である。
【発明を実施するための形態】
【００１４】
１．実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００１５】
〔１〕＜正論理入力端子を有する順序回路と負論理入力端子を有する順序回路を併用＞
本発明の代表的な実施の形態に係る論理回路の設計方法は、コンピュータ装置（３）がハードウェア記述（１）とセルライブラリ（２）の部品とを用いた論理合成を行ってクロック同期型の順序回路と組み合わせ回路との直列パスを含む論理回路のネットリスト（３１）を生成する方法である。この方法において、前記コンピュータ装置は、正論理入力端子（Ｄｐ）と正論理非反転出力端子（Ｑｐ）を有する第１順序回路（ＦＦ１，ＦＦ１１）、及び正論理入力端子（Ｄｐ）と正論理反転出力端（Ｑｐ／）を有する第２順序回路（ＦＦ２，ＦＦ１２）に加えて、負論理入力端子（Ｄｎ／）と負論理非反転出力端子（Ｑｎ／）を有する第３順序回路（ＦＦ３，ＦＦ１３）、及び負論理入力端子（Ｄｎ／）と負論理反転出力端子（Ｄｎ）を有する第４順序回路（ＦＦ４，ＦＦ１４）を用いて、前記直列パスにおける順序回路間のクリティカルパスのゲート段数を減らす最適化処理を行う。
【００１６】
これによれば、最適化処理では必要に応じて第１順序回路（図１９のＦＦ１１＿ｂ））に代えて第３順序回路（図１９のＦＦ１３＿ｂ）を利用することにより、例えば当該第１順序回路の出力段に配置された回路からインバータを１段削除することができる。また、第２順序回路（図９のＦＦ２＿ｃ）に代えて第４順序回路（図９のＦＦ４＿ｃ）を利用することにより例えば当該第２順序回路の出力段に配置された回路からインバータを１段削除することができる。したがって、クロック同期型の順序回路と組み合わせ回路との直列パスを含む論理回路に配置された冗長なインバータを削減してゲート段数を低減することができる。
【００１７】
〔２〕＜正論理への極性整合用インバータの削除、第１順序回路→第４順序回路＞
項１の論理回路の設計方法において、前記コンピュータ装置は前記最適化処理において、第１順序回路の正論理入力端子に接続する組み合わせ回路の最終段に正論理への極性整合用のインバータを配置可能なとき、これに代えて、当該極性整合用のインバータを削除し且つ第１順序回路を第４順序回路とする（図１０、図１１）。
【００１８】
これにより、正論理への極性整合用のインバータの削除によってクリティカルパスのゲート段数削減に資することができる。
【００１９】
〔３〕＜第４順序回路のゲート段数は第１順序回路のゲート段数よりも少ない＞
項１の論理回路の設計方法において、前記第２順序回路及び第４順序回路（図１０のＦＦ４＿ｂ）のゲート段数は第１順序回路（図１０のＦＦ１＿ｂ）及び第３順序回路のゲート段数よりも１段少ない。
【００２０】
これにより、順序回路についてもゲート段数の少ないものを採用可能であるから当該経路のクリティカルパスのゲート段数制約を緩和することができる。
【００２１】
〔４〕＜正論理への極性整合用のインバータの削除、第２順序回路→第３順序回路＞
項１の論理回路の設計方法において、前記コンピュータ装置は前記最適化処理において、第２順序回路の正論理入力端子に接続する組み合わせ回路の最終段に正論理への極性整合用のインバータを配置可能なとき、これに代えて、当該極性整合用のインバータを削除し且つ第２順序回路を第３順序回路とする（図２０）。
【００２２】
これにより、正論理への極性整合用のインバータの削除によってクリティカルパスのゲート段数削減に資することができる。
【００２３】
〔５〕＜第３順序回路のゲート段数は第２順序回路のゲート段数よりも少ない＞
項４の論理回路の設計方法において、前記第１順序回路及び第３順序回路（図２０のＦＦ１３＿ｂ）のゲート段数は第２順序回路（図２０のＦＦ１２＿ｂ）及び第４順序回路のゲート段数よりも１段少ない。
【００２４】
これにより、順序回路についてもゲート段数の少ないものを採用可能であるから当該経路のクリティカルパスのゲート段数制約を緩和することができる。
【００２５】
〔６〕＜第１乃至第４順序回路をそれぞれ別部品として持つ＞
項１の論理回路の設計方法において、前記セルライブラリは前記第１順序回路、第２順序回路、第３順序回路及び第４順序回路を別々の部品として持つ。
【００２６】
これにより、冗長なインバータを削減するための論理回路の設計を行なうのに必要な順序回路の部品を容易に得ることができる
〔７〕＜正論理入力端子を有する順序回路と負論理入力端子を有する順序回路を併用＞
本発明の別の実施の形態に係る論理設計プログラム（３０）は、ハードウェア記述とセルライブラリの部品とを用いた論理合成を行ってクロック同期型の順序回路と組み合わせ回路との直列パスを含む論理回路のネットリストを生成するコンピュータ装置で実行可能なプログラムである。このプログラムは、前記コンピュータ装置に、正論理入力端子と正論理非反転出力端子を有する第１順序回路、及び正論理入力端子と正論理反転出力端子を有する第２順序回路に加えて、負論理入力端子と負論理非反転出力端子を有する第３順序回路、及び負論理入力端子と負論理反転出力端子を有する第４順序回路用いて、データパスにおける順序回路間のクリティカルパスのゲート段数を減らす最適化処理を実行させる。
【００２７】
この論理設計プログラムによれば、クロック同期型の順序回路と組み合わせ回路との直列パスを含む論理回路に配置された冗長なインバータを削減してゲート段数を低減する方法を容易に実現することができるようになる。
【００２８】
〔８〕＜正論理への極性整合用のインバータの削除、第１順序回路→第４順序回路＞
項７の論理設計プログラムにおいて、前記最適化処理は、第１順序回路の正論理入力端子に接続する組み合わせ回路の最終段に正論理への極性整合用のインバータを配置可能なとき、これに代えて、当該極性整合用のインバータを削除し且つ第１順序回路を第４順序回路とする処理を含む。
【００２９】
これにより、正論理への極性整合用のインバータの削除によってクリティカルパスのゲート段数削減に資することができるようになる。
【００３０】
〔９〕＜第４順序回路のゲート段数は第１順序回路のゲート段数よりも少ない＞
項８の論理設計プログラムにおいて、前記第２順序回路及び第４順序回路のゲート段数は第１順序回路及び第３順序回路のゲート段数よりも１段少ない。
【００３１】
これにより、順序回路についてもゲート段数の少ないものを採用可能であるから当該経路のクリティカルパスのゲート段数制約を緩和することができるようになる。
【００３２】
〔１０〕＜正論理への極性整合用のインバータの削除、第２順序回路→第３順序回路＞
項７の論理設計プログラムにおいて、前記最適化処理は、第２順序回路の正論理入力端子に接続する組み合わせ回路の最終段に正論理への極性整合用のインバータを配置可能なとき、これに代えて、当該極性整合用のインバータを削除し且つ第２順序回路を第３順序回路とする処理を含む。
【００３３】
これにより、正論理への極性整合用のインバータの削除によってクリティカルパスのゲート段数削減に資することができるようになる。
【００３４】
〔１１〕＜第３順序回路のゲート段数は第２順序回路のゲート段数よりも少ない＞
項１０の論理設計プログラムにおいて、前記第１順序回路及び第３順序回路のゲート段数は第２順序回路及び第４順序回路のゲート段数よりも１段少ない。
【００３５】
これにより、順序回路についてもゲート段数の少ないものを採用可能であるから当該経路のクリティカルパスのゲート段数制約を緩和することができるようになる。
【００３６】
〔１２〕＜第１乃至第４順序回路をそれぞれ別部品として持つ＞
項７の論理設計プログラムにおいて、前記最適化処理は、前記第１順序回路、第２順序回路、第３順序回路及び第４順序回路をそれぞれ別々の部品としてセルライブラリから読み込んで利用する。
【００３７】
これにより、冗長なインバータを削減するための論理回路の設計を行なうのに必要な順序回路の部品を容易に得ることができる。
【００３８】
〔１３〕＜正論理入力端子を有する順序回路と負論理入力端子を有する順序回路が混在するLSI＞
本発明の更に別の実施の形態に係る半導体集積回路（４０）は、クロック同期型の順序回路と組み合わせ回路との直列パスを含む論理回路を備えてデータ処理を行なうものである。この半導体集積回路は、前記論理回路の直列パスに、正論理入力端子と正論理非反転出力端子を有する第１順序回路、及び正論理入力端子と正論理反転出力端子を有する第２順序回路に加えて、負論理入力端子と負論理非反転出力端子を有する第３順序回路、及び負論理入力端子と負論理反転出力端子を有する第４順序回路を有する。
【００３９】
これによれば、必要に応じて第１順序回路に代えて第３順序回路が利用されることにより例えば当該第１順序回路の出力段に配置された回路からインバータが１段削除されている。また、第２順序回路に代えて第４順序回路が利用されることにより例えば当該第２順序回路の出力段に配置された回路からインバータが１段削除されている。したがって、クロック同期型の順序回路と組み合わせ回路との直列パスを含む論理回路に配置された冗長なインバータを削減してゲート段数を低減することが実現されている。
【００４０】
〔１４〕＜負論理組み合わせ回路の出力に結合する第３順序回路＞
項１３の半導体集積回路において、前記直列パスは、負論理組み合わせ回路の出力を前記第３順序回路の負論理入力端子に受ける信号経路を含む。
【００４１】
これにより、負論理組み合わせ回路の出力を前記第１順序回路の正論理入力端子に受けるとした場合に必要な正論理への論理整合用のインバータが不要になっている。
【００４２】
〔１５〕＜負論理組み合わせ回路の出力に結合する第４順序回路＞
項１３の半導体集積回路において、前記直列パスは、負論理組み合わせ回路の出力を前記第４順序回路の負論理入力端子に受ける信号経路を含む。
【００４３】
これにより、負論理組み合わせ回路の出力を前記第２順序回路の正論理入力端子に受けるとした場合に必要な正論理への論理整合用のインバータが不要になっている。
【００４４】
〔１６〕＜正論理組み合わせ回路の出力に結合する第３順序回路＞
項１３の半導体集積回路において、前記直列パスは、正論理組み合わせ回路の出力を前記第３順序回路の負論理入力端子に受ける信号経路を含む。
【００４５】
これにより、正論理組み合わせ回路が負論理信号を受けて動作されるような場合にその出力に対して必要な正論理への論理整合用のインバータが不要になっている。
【００４６】
〔１７〕＜正論理組み合わせ回路の出力に結合する第４順序回路＞
項１３の半導体集積回路において、前記直列パスは、正論理組み合わせ回路の出力を前記第４順序回路の負論理入力端子に受ける信号経路を含む。
【００４７】
これにより、正論理組み合わせ回路が負論理信号を受けて動作されるような場合にその出力に対して必要な正論理への論理整合用のインバータが不要になっている。
【００４８】
２．実施の形態の詳細
実施の形態について更に詳述する。
【００４９】
《実施の形態１》
本実施の形態に係る論理回路の設計方法は、論理合成プログラムを実行するＥＷＳ（Engineering Workstation）などのコンピュータ装置がハードウェア記述とセルライブラリの部品とを用いた論理合成を行ってクロック同期型の順序回路と組み合わせ回路との直列パスを含む論理回路のネットリストを生成する方法である。この方法では、順序回路と組み合わせ回路の直列パスを、代表的に示された図１の直列パスＤＰＳ２のように、正論理入力端子と正論理非反転出力端子を有する第１順序回路ＦＦ１、正論理入力端子と正論理反転出力端子を有する第２順序回路ＦＦ２に加えて、負論理入力端子と負論理非反転出力端子を有する第３順序回路ＦＦ３、及び負論理入力端子と負論理反転出力端子を有する第４順序回路ＦＦ４用いて構成可能にするものであり、直列パスにどの順序回路を用いるかについては、最適化処理によって前記直列パスにおける順序回路間のクリティカルパスのゲート段数減らすようにするものである。例えば、図１に代表的に示された直列パスＤＰＳ１において組み合わせ回路ＣＭＢＬが負論回路であるとき、その負論理出力を受ける順序回路に第１順序回路ＦＦ１又は第２順序回路ＦＦ２を用いる場合には、それら順序回路の入出力端子は正論理入力端子であることから、当該順序回路の前段には論理整合用のインバータＩＮＶを配置することが必要になる。このようなとき、図１の直列パスに例示されるように、負論理組み合わせ回路の負論理出力を受ける順序回路に、第３順序回路ＦＦ３又は第４順序回路ＦＦ４を用いれば、それら順序回路の入出力端子は負論理端子であることが定義されているので、上記論理整合用にインバータＮＶを不用にすることができる。
【００５０】
ここで、図２乃至図６に基づいて正論理順序回路としての第１順序回路ＦＦ１及び第２順序回路ＦＦ２と、負論理順序回路としての第３順序回路ＦＦ３及び第４順序回路との具体例を説明する。何れにおいても、順序回路の一つの例として、マスタ・スレーブの構成を持つディレイタイプの順序回路（フリップフロップ）を挙げて説明する。
【００５１】
図２には第１順序回路ＦＦ１の一例が示される。第１順序回路ＦＦ１は、正論理の入力端子Ｄｐと正論理の非反転出力端子Ｑｐを有し、その間にはＣＭＯＳトランスファゲートＴＧで区切られたマスタ段ＭＳＴとスレーブ段ＳＬＶが配置される。マスタ段ＭＳＴは入力ゲートを構成するクロックドインバータＣＩＮＶ１にマスタラッチＭＬＴＣＨが直列接続されて構成される。マスタラッチＭＬＴＣＨはインバータＩＮＶ２とクロックドインバータＣＩＮＶ２が逆並列接続されて構成される。スレーブ段ＳＬＶは、インバータＩＮＶ３とクロックドインバータＣＩＮＶ３が逆並列接続されたスレーブラッチＳＬＴＣＨに３段のインバータＩＮＶ４，ＩＮＶ５，ＩＮＶ６が直列接続されて構成される。インバータＩＮＶ４は波形整形用であり、インバータＩＮＶ６は外部出力用であり、インバータＩＮＶ５は非反転出力のための反転用インバータである。
【００５２】
尚、出力用のインバータＩＮＶ６によってスレーブラッチＳＬＴＣＨの出力に対する波形整形機能も達成できる場合にはインバータＩＮＶ４、ＩＮＶ５を省略することができるが、図２乃至図６の構成説明では出力用のインバータＩＮＶ６とは別に波形整形用のインバータＩＮＶ４を１段必要とする場合を一例とする。
【００５３】
第１順序回路において、クロックドインバータＣＩＮＶ１，ＣＩＮＶ３はクロック信号ＣＬＫの反転クロック信号ＣＬＫ＿Ｎと非反転クロック信号ＣＬＫ＿Ｐの２層のクロック信号によって制御され、クロック信号ＣＬＫのハイレベルによって高インピーダンス状態、クロック信号ＣＬＫのローレベルによって出力可能な状態に制御される。クロックドインバータＣＩＮＶ２はクロック信号ＣＬＫの反転クロック信号ＣＬＫ＿Ｎと非反転クロック信号ＣＬＫ＿Ｐの２層のクロック信号によって制御され、クロック信号ＣＬＫのローレベルによって高インピーダンス状態、クロック信号ＣＬＫのハイレベルによって出力可能な状態に制御される。ＣＭＯＳトランスファゲートＣＴＧはクロック信号ＣＬＫの反転クロック信号ＣＬＫ＿Ｎと非反転クロック信号ＣＬＫ＿Ｐの２層のクロック信号によって制御され、クロック信号ＣＬＫのローレベルによってオフ状態、クロック信号ＣＬＫのハイレベルによってオン状態に制御される。したがって、第１順序回路ＦＦ1は図３に例示されるようにクロック信号ＣＬＫの立ち上がりで正論理の入力端子Ｄｐの値を取り込んでと正論理の非反転出力端子Ｑｐの値が変化されることになる。
【００５４】
図４には第２順序回路ＦＦ２の一例が示される。第２順序回路ＦＦ２は正論理の入力端子Ｄｐと正論理の反転出力端子Ｑｐ／を有し、スレーブ段ＳＬＶの波形整形用インバータＩＮＶ４の次段には反転インバータＩＮＶ５が設けられておらず、その他の構成は図２と同様であり、同一回路には同一符号を付してその詳細な説明を省略する。この第２順序回路ＦＦ２はクロック信号ＣＬＫの立ち上がりで正論理の入力端子Ｄｐの値を取り込んで、正論理非反転出力端子Ｑｐの値がその反転論理値に変化されることになる。第２順序回路ＦＦ２は第１順序回路ＦＦ１に比べては反転動作が１回少ないからその分だけ出力の確定が速くなる。
【００５５】
図５には第３順序回路ＦＦ３の一例が示される。第３順序回路ＦＦ３は負論理の入力端子Ｄｎ／と負論理の非反転出力端子Ｑｎ／を有し、その他の構成は図３と同様であり同一回路には同一符号を付してその詳細な説明を省略する。要するに、第１順序回路ＦＦ１の正論理入力端子Ｄｐには正論理の論理信号、例えば論理値１がハイレベル、又は論理値０がローレベルの信号が供給されるものとすることに対して、第３順序回路ＦＦ３の負論理入力端子Ｄｎ／には負論理の論理信号、例えば論理値１がローレベル、論理値０がハイレベルの信号が供給されるものとする、点が相違される。正論理出力端子と非反転出力端子との関係も同様であり、第１順序回路ＦＦ１の正論理出力端子Ｑｐには正論理の論理信号、例えば論理値１がハイレベル、又は論理値０がローレベルの信号が出力されるものとすることに対して、第３順序回路ＦＦ３の負論理非反転出力端子Ｑｎ／には負論理の論理信号、例えば論理値１がローレベル、論理値０がハイレベルの信号が出力されるものとする、点が相違される。この第３順序回路ＦＦ３はクロック信号ＣＬＫの立ち上がりで負論理の入力端子Ｄｎ／の値を取り込んで、負論理非反転出力端子Ｑｐ／の値がその非反転論理値に変化されることになる。
【００５６】
図６には第４順序回路ＦＦ４の一例が示される。第４順序回路ＦＦ４は負論理の入力端子Ｄｎ／と負論理の反転出力端子Ｑｎを有し、その他の構成は図４と同様であり同一回路には同一符号を付してその詳細な説明を省略する。要するに、第２順序回路ＦＦ１の正論理入力端子Ｄｐには正論理の論理信号、例えば論理値１がハイレベル、又は論理値０がローレベルの信号が供給されるものとすることに対して、第４順序回路ＦＦ３の負論理入力端子Ｄｎ／には負論理の論理信号、例えば論理値１がローレベル、論理値０がハイレベルの信号が供給されるものとする、点が相違される。正論理出力端子と非反転出力端子との関係も同様であり、第２順序回路ＦＦ２の正論理出力端子Ｑｐには正論理の論理信号、例えば論理値１がハイレベル、又は論理値０がローレベルの信号が出力されるものとすることに対して、第４順序回路ＦＦ４の負論理反転出力端子Ｑｎには負論理の論理信号、例えば論理値１がローレベル、論理値０がハイレベルの信号が出力されるものとする、点が相違される。この第４順序回路ＦＦ４はクロック信号ＣＬＫの立ち上がりで負論理の入力端子Ｄｎ／の値を取り込んで、負論理反転出力端子Ｑｐの値がその反転論理値に変化されることになる。第４順序回路ＦＦ４は第３順序回路ＦＦ３に比べては反転動作が１回少ないからその分だけ出力の確定が速くなる。
【００５７】
図７には正論理順序回路の別の例が示される。図７に示される順序回路ＦＦ１・２は前記第１順序回路ＦＦ１と第２順序回路ＦＦ２を集約した構成を備えるものであり、正論理入力端子Ｄｐ，正論理非反転出力端子Ｑｐ及び正論理反転出力端子Ｑｐ／を備え、図２及び図４の構成に対して、マスタ段ＭＳＴ、トランスファゲートＴＧ、スレーブラッチＳＬＴＣＨ及び波形整形用インバータＩＮＶ４が共通化され、出力用インバータＩＮＶ６＿Ａが非反転出力用に専用化され、出力用インバータＩＮＶ６＿Ｂが反転出力用に専用化されて構成される。この順序回路ＦＦ１・２は正論理入力端子Ｄｐからの入力を正論理非反転出力端子Ｑｐと正論理反転出力端子Ｑｐ／の双方に分配するときに用いられる。尚、本明細書において第１順序回路ＦＦ１というときは正論理入力端子Ｄｐと正論理非反転出力端子Ｑｐとを用いた順序回路ＦＦ１・２を意味するものとし、第２順序回路ＦＦ２というときは正論理入力端子Ｄｐと正論理反転出力端子Ｑｐ／とを用いた順序回路ＦＦ１・２を意味するものとする。
【００５８】
図８には負論理順序回路の別の例が示される。図８に示される順序回路ＦＦ３・４は前記第３順序回路ＦＦ３と第４順序回路ＦＦ４を集約した構成を備えるものであり、負論理入力端子Ｄｎ／，負論理非反転出力端子Ｑｎ／及び負論理反転出力端子Ｑｎを備え、図５及び図６の構成に対して、マスタ段ＭＳＴ、トランスファゲートＴＧ、スレーブラッチＳＬＴＣＨ及び波形整形用インバータＩＮＶ４が共通化され、出力用インバータＩＮＶ６＿Ａが非反転出力用に専用化され、出力用インバータＩＮＶ６＿Ｂが反転出力用に専用化されて構成される。この順序回路ＦＦ３・４は負論理入力端子Ｄｎからの入力を負論理非反転出力端子Ｑｎ／と負論理反転出力端子Ｑｎの双方に分配するときに用いられる。尚、本明細書において第３順序回路ＦＦ３というときは負論理入力端子Ｄｎと負論理非反転出力端子Ｑｎ／とを用いた順序回路ＦＦ３・４を意味するものとし、第４順序回路ＦＦ４というときは負論理入力端子Ｄｎと負論理反転出力端子Ｑｎとを用いた順序回路ＦＦ３・４を意味するものとする。
【００５９】
図９には論理合成における最適化処理の具体例が示される。ここでは正論理組み合わせ回路ＣＭＢＬｐ＿ａ、負論理組み合わせ回路ＣＭＢＬｎ＿ｂ、及び正論理組み合わせ回路ＣＮＢＬｐ＿ｃによる直列系を考えるものとし、それらの組み合わせ回路に正論理順序回路ＦＦ１，ＦＦ２だけを挿入して構成する直列経路ＤＰＳ２に対して、それらの組み合わせ回路に正論理順序回路ＦＦ１，ＦＦ２だけでなく負論理順序回路ＦＦ４（ＦＦ３）を挿入して構成した直列パスＤＰＳ３を採用した例が示される。
【００６０】
直列パスＤＰＳ２では、正論理組み合わせ回路ＣＭＢＬｐ＿ａの前段に正論理順序回路ＦＦ１＿ａが配置され、その後段に正論理順序回路ＦＦ１＿ｂが配置され、負論理組み合わせ回路ＣＭＢＬｎ＿ｂの後段にインバータＩＮＶ＿ｂと正論理順序回路ＦＦ１＿ｃが配置され、正論理組み合わせ回路ＣＮＢＬｐ＿ｃの後段にインバータＩＮＶ＿ｃと正論理順序回路ＦＦ１＿ｄが配置される。インバータＩＮＶ＿ｂは負論理組み合わせ回路ＣＭＢＬｎ＿ｂの負論理出力を正論理順序回路ＦＦ２＿ｃに供給するための論理整合用インバータとして機能する。インバータＩＮＶ＿ｃは反転信号を受けて論理動作を行なう正論理組み合わせ回路ＣＭＢＬｐ＿ｃの負論理出力を正論理順序回路ＦＦ２＿ｄに供給するための論理整合用インバータとして機能する。
【００６１】
直列パスＤＰＳ３では、正論理順序回路ＦＦ１＿ｂ、ＦＦ２＿ｃを負論理順序回路ＦＦ４＿ｂ、ＦＦ４＿ｃに変更し、インバータＩＮＶ＿ｂ、ＩＮＶ＿ｃを廃止し、正論理組み合わせ回路ＣＭＢＬｐ＿ａの次段に論理整合用のインバータＩＮＶ＿ａを追加して、当該直列パスのゲート段数に対する最適化が行なわれる。即ち、正論理順序回路ＦＦ１＿ｂを負論理順序回路ＦＦ４＿ｂに変えることによってゲート段数が１段減る。正論理組み合わせ回路ＣＭＢＬｐ＿ａの出力を当該負論理順序回路ＦＦ４＿ｂの負論理入力端子に受けるために論理整合用のインバータＩＮＶ＿ａを追加してゲート段数が１段増える。正論理順序回路ＦＦ１＿ｃを負論理順序回路ＦＦ４＿ｃに変えることによってゲート段数が１段減る。負論理順序回路ＦＦ４＿ｃは負論理組み合わせ回路ＣＭＢＬｎ＿ｂの負論理出力を負論理入力端子Ｄｎ／で直接受け取ることができるからインバータＩＮＶ＿ｂを廃止してゲート段数が１段減る。正論理組み合わせ回路ＣＭＢＬｐ＿ｃは負論理順序回路ＦＦ４＿ｃから出力される負論理信号の反転信号を入力するからインバータＩＮＶ＿ｃを廃止してゲート段数が１段減る。直列パスＤＰＳ３に入力されて当該パスから出力される信号の論理値は直列パスＤＰＳ２に入力されて当該パスから出力される信号の論理値と一致する。従って、直列パスＤＰＳ２が直列パスＤＰＳ３に置き換えられるような最適化の例に拠れば、そのゲート段数を全体として２段減らすことができ、直列パスＤＰＳ２に含まれるゲート段数１６段と１７段のクリティカルパスが直列パスＤＰＳ３ではゲート段数１５段と１６段に改善される。
【００６２】
図１０には論理合成における最適化処理の別の例が示される。ここでは負論理組み合わせ回路ＣＭＢＬｎ＿ａによる直列パスを考えるものとし、この組み合わせ回路に正論理順序回路ＦＦ１だけを挿入して構成する直列パスＤＰＳ４に対して、それらの組み合わせ回路に正論理順序回路ＦＦ１だけでなく負論理順序回路ＦＦ４を挿入して構成した直列パスＤＰＳ５を採用した例が示される。直列パスＤＰＳ４では、負論理組み合わせ回路ＣＭＢＬｎ＿ａの前段に正論理順序回路ＦＦ１＿ａが配置され、その後段にインバータＩＮＶ＿ａと正論理順序回路ＦＦ１＿ｂが配置される。インバータＩＮＶ＿ａは負論理組み合わせ回路ＣＭＢＬｎ＿ａの負論理出力を正論理順序回路ＦＦ１＿ｂに供給するための論理整合用インバータとして機能する。
【００６３】
直列パスＤＰＳ５では、正論理順序回路ＦＦ１＿ｂを負論理順序回路ＦＦ４＿ｂに変更し、インバータＩＮＶ＿ａを廃止して、当該直列パスのゲート段数に対する最適化が行なわれる。即ち、正論理順序回路ＦＦ１＿ｂを負論理順序回路ＦＦ４＿ｂに変えることによってゲート段数が１段減る。負論理順序回路ＦＦ４＿ｂは負論理組み合わせ回路ＣＭＢＬｎ＿ａの負論理出力を負論理入力端子Ｄｎ／で直接受け取ることができるからインバータＩＮＶ＿ａを廃止してゲート段数が１段減る。直列パスＤＰＳ４に入力されて当該パスから出力される信号の論理値は直列パスＤＰＳ５に入力されて当該パスから出力される信号の論理値と一致する。従って、直列パスＤＰＳ４が直列パスＤＰＳ５に置き換えられるような最適化の例に拠れば、そのゲート段数を全体として２段減らすことができる。そのうちの１段は論理整合用のインバータＩＮＶ＿ａの削減によるものである。
【００６４】
図１１には論理合成における最適化処理の更に別の例が示される。ここでは正論理組み合わせ回路ＣＭＢＬｐ＿ａによる直列パスを考えるものとし、この組み合わせ回路に正論理順序回路ＦＦ１、ＦＦ２だけを挿入して構成する直列パスＤＰＳ６に対して、それらの組み合わせ回路に正論理順序回路ＦＦ１、ＦＦ２だけでなく、負論理順序回路ＦＦ４を挿入して構成した直列パスＤＰＳ７を採用した例が示される。直列パスＤＰＳ６では、正論理組み合わせ回路ＣＭＢＬｐ＿ａの前段に正論理順序回路ＦＦ２＿ａが配置され、その後段にインバータＩＮＶ＿ａと正論理順序回路ＦＦ１＿ｂが配置される。インバータＩＮＶ＿ａは正論理組み合わせ回路ＣＭＢＬｐ＿ａから出力される正論理出力の反転信号を正論理順序回路ＦＦ１＿ｂに供給するための論理整合用インバータとして機能する。
【００６５】
直列パスＤＰＳ７では、正論理順序回路ＦＦ１＿ｂが負論理順序回路ＦＦ４＿ｂに変更され、インバータＩＮＶ＿ａが廃止されて、当該直列パスのゲート段数に対する最適化が行なわれる。即ち、正論理順序回路ＦＦ１＿ｂを負論理順序回路ＦＦ４＿ｂに変えることによってゲート段数が１段減る。負論理順序回路ＦＦ４＿ｂは正論理組み合わせ回路ＣＭＢＬｐ＿ａの反転出力信号を負論理信号として負論理入力端子Ｄｎ／で直接受け取ることができるから、インバータＩＮＶ＿ａを廃止してゲート段数が１段減る。直列パスＤＰＳ６に入力されて当該パスから出力される信号の論理値は直列パスＤＰＳ７に入力されて当該パスから出力される信号の論理値と一致する。従って、直列パスＤＰＳ６が直列パスＤＰＳ７に置き換えられるような最適化の例に拠れば、そのゲート段数を全体として２段減らすことができる。そのうちの１段は論理整合用のインバータＩＮＶ＿ａの削減によるものである。
【００６６】
図１２には上記最適化処理を採用した論理回路の設計方法を実現するシステム構成が例示される。
【００６７】
１は半導体集積回路、或いはそれを構成するための回路モジュール等の論理設計対象とされる回路の構成が特定のハードウェア記述言語で記述されたハードウェア記述である。特定の言語として、ＨＤＬ（Hardware description language）、ＲＴＬ（Register Transfer Level、又はRegister Transfer Language）或いはＣ言語などが用いられる。ハードウェア記述はＬＳＩ（半導体集積回路）の製造会社、設計会社又は販売会社などのベンダーが提供する所謂ＩＰ（Intellectual Property）モジュールとして提供される。或いは自社開発して揃えることも可能である。
【００６８】
２はセルライブラリであり、ＡＮＤゲート、ＯＲゲート、ＮＡＮＤゲート、ＮＯＲゲート、クロックドインバータ、インバータなどに代表される基本ロジック回路などを構成するための機能データやパターンデータとされる多種の部品が格納された部品データベースである。このセルライブラリには組み合わせ回路はもとより順序回路の部品も含まれている。順序回路の部品は上述のように正論理順序回路だけでない、負論理順序回路の部品も保有している。ディレイタイプのクロック同期型順序回路であれば図２乃至図８で説明した第１順序回路ＦＦ１，第２順序回路ＦＦ２，第３順序回路ＦＦ３及び第４順序回路ＦＦ４を別々に含む。
【００６９】
３はコンピュータ装置である。コンピュータ装置３は、デザインコンパイラーとも称されるような論理合成ツール３０を実行することにより、組み合わせ回路との直列パスを含む論理回路のネットリスト３１を生成する。更にコンピュータ装置３は、ＩＣコンパイラーとも称される物理配置配線ツール３２を実行することにより、前記ネットリスト３１に基づいて半導体集積回路や、半導体集積回路に搭載される回路モジュールについて配置配線を行なってマスクパターンデータ若しくはエレクトロンビーム描画などのためパターン描画データなどを生成する。上記論理合成の処理では、前記第１順序回路ＦＦ１、第２順序回路ＦＦ２に加えて、第３順序回路ＦＦ３及び第４順序回路ＦＦ４用いて、クロック同期型の順序回路と組み合わせ回路との直列パスにおける順序回路間のクリティカルパスのゲート段数を減らす最適化処理を行う。
【００７０】
ＩＰモジュールとしてハードウェアモジュールが提供される場合には、提供者はその記述に基づいて製造される回路機能を保証するために一切の改変を禁止する禁止条項の遵守をＩＰの提供条件とするのが普通である。従ってそのような条件でＩＰモジュールを利用することを想定すると、当該ＩＰモジュールによって実現される回路の機能上の信頼性を高くするには、一般的に、論理合成ツールを提供するベンダーが提供するセルライブラリを用いることが得策となる。従って、異なる半導体集積回路会社が同じベンダーのＩＰモジュールを用いて同じベンダーが提供するセルライブラリを用いて論理合成した結果は同一になると考えられる。セルライブラリに登録する部品は自社で開発することも可能であり、そのような部品が登録されたセルライブラリを用いて論理合成したときは、ＩＰモジュールが同じでも結果は同一になるとは限らない。なぜならば、デザインコンパイラーなどの論理合成ツールはハードウェア記述で特定される機能を実現することができる構成を多様に生み出すことができ、論理合成ツールに与えられる動作速度やチップサイズなどのコンパイル条件（パラメータ）を満足するように最適化されたネットリストを生成する最適化機能をもともと備えている。したがって、使用できる部品の種類が多ければ、その最大限の範囲で最適化が行なわれるため、論理合成の結果も相違することが予想されるからである。負論理順序回路ＦＦ３，ＦＦ４を用いた上記最適化の処理もそれに依存して行うことができる。これについて図１３を参照しながら更に詳述する。
【００７１】
図１３には負論理順序回路ＦＦ３，ＦＦ４を部品に追加して論理合成を行なうときの直列パスに対する最適化処理の処理フローが例示される。
【００７２】
従来、負論理順序回路ＦＦ３，ＦＦ４はセルライブラリの部品として提供されていないので、セルライブラリに負論理順序回路ＦＦ３，ＦＦ４を追加し、或いは負論理順序回路ＦＦ３，ＦＦ４を有するセルライブラリを予め開発しておく（Ｓ１）。ディレイタイプのクロック同期型順序回路であってもその種類は図２乃至図８で説明したノーマル機能の範囲に限定されるものではなく、リセット機能付き、セット機能付き、スキャン回路機能付きなど多種に及び、夫々の機能について負論理順序回路を用意しておく。この場合にそれぞれ別々に全て用意することまで意味するものではなく、正論理順序回路と負論理順序回路の間で共通化できるパターンや一部の機能記述などのデータについては共用できるデータ形式にすればよい。尚、図２２にはリセット機能付きの第２順序回路ＦＦ２２が例示され、図２３にはリセット機能付きの第３順序回路ＦＦ３２が例示される。
【００７３】
論理合成の条件として、動作速度（又は動作遅延時間）、チップ面積（又はチップ占有面積）、消費電力、及びリーク電力などの指示が記述されたパラメータファイルをコンピュータ装置３に与える（Ｓ２）。
【００７４】
コンピュータ装置３にはパラメータファイルと共にＲＴＬなどによるハードウェア記述が与えられ、セルライブラリを参照しながらハードウェア記述に従って、論理合成を行なって（Ｓ４）、ネットリストを生成する（Ｓ５）。ステップＳ４の論理合成では、与えられたパラメータの優先順位に従ってタイミングやチップサイズなどの最適化が行なわれる。組み合わせ回路とクロック同期型の順序回路とによる直列バスの生成では、速度などの優先順位に応じて、図９、図１０及び図１１などで説明したように負論理順序回路を用いて論理整合用インバータを削減したりする最適化処理が行なわれる。この処理はコンピュータ装置３が実行するデザインコンパイラーのような論理合成ツールとしての論理設計プログラムのより制御に従って実行される。その制御内容は上述した通りであり、繰り返し説明は省略する。
【００７５】
この実施の形態によれば以下の作用効果を得る。
【００７６】
（１）最適化処理では図９に例示されるように必要に応じて第２順序回路ＦＦ２＿ｃに代えて第４順序回路ＦＦ４＿ｃを利用することにより例えば当該第２順序回路の出力段に配置された回路からインバータＩＮＶ＿ｂを１段削除することができる。したがって、クロック同期型の順序回路と組み合わせ回路との直列パスを含む論理回路に配置された冗長なインバータを削減してゲート段数を低減することができる。
【００７７】
（２）前記コンピュータ装置３は前記最適化処理において、図１０、図１１に例示されるように、第１順序回路ＦＦ１＿ｂの正論理入力端子に接続する組み合わせ回路の最終段に正論理への極性整合用のインバータＩＮＶ＿ａを配置可能なとき、これに代えて、当該極性整合用のインバータを削除し且つ第１順序回路を第４順序回路ＦＦ４＿ｂとすることにより、正論理への極性整合用のインバータの削除によってクリティカルパスのゲート段数削減に資することができる。
【００７８】
（３）図４乃至図８に例示されるように前記第２順序回路ＦＦ２及び第４順序回路ＦＦ４のゲート段数は第１順序回路ＦＦ１及び第３順序回路ＦＦ３のゲート段数よりも１段少なくされることにより、図１０、図１１の場合には、ＦＦ１からＦＦ４への変更に際して順序回路それ自体についてもゲート段数の少ないものを採用可能であるから当該経路のクリティカルパスのゲート段数制約を緩和することができる。
【００７９】
《実施の形態２》
実施の形態１で説明した順序回路ＦＦ１、ＦＦ２，ＦＦ３，ＦＦ４では出力用のインバータＩＮＶ６とは別に波形整形用のインバータＩＮＶ４を１段必要とする場合を一例としたが、実施の形態２では、出力用のインバータＩＮＶ６によってスレーブラッチＳＬＴＣＨの出力に対する波形整形機能も達成できるものとし、それに伴って、図２乃至図６のインバータＩＮＶ４、ＩＮＶ５を省略した順序回路ＦＦ１１、ＦＦ１２，ＦＦ１３，ＦＦ１４を用いる場合について説明する。
【００８０】
図１４には正論理の入力端子Ｄｐと正論理の非反転出力端子Ｑｐを有する第１順序回路ＦＦ１１が例示される。これは図２に対してインバータＩＮＶ４，ＩＮＶ５を削除して構成したが点が相違され、その他は同じであり、同一回路には同じ符号を付してその詳細な説明を省略する。図２に比べてゲート段数は２段少なくなっている。
【００８１】
図１５には正論理の入力端子Ｄｐと正論理の反転出力端子Ｑｐ／を有する第２順序回路ＦＦ１２が例示される。これは図４に対してインバータＩＮＶ４を反転出力用の反転インバータＩＮＶ５に変更して構成したが点が相違され、その他は同じであり、同一回路には同じ符号を付してその詳細な説明を省略する。ゲート段数は図４と同じである。
【００８２】
図１６には負論理の入力端子Ｄｎ／と負論理の非反転出力端子Ｑｎ／を有する第３順序回路ＦＦ１３が例示される。これは図５に対してインバータＩＮＶ４，ＩＮＶ５を削除して構成したが点が相違され、その他は同じであり、同一回路には同じ符号を付してその詳細な説明を省略する。図５に比べてゲート段数は２段少なくなっている。
【００８３】
図１７には負論理の入力端子Ｄｎ／と負論理の反転出力端子Ｑｎを有する第４順序回路ＦＦ１４が例示される。これは図６に対してインバータＩＮＶ４を反転出力用の反転インバータＩＮＶ５に変更して構成したが点が相違され、その他は同じであり、同一回路には同じ符号を付してその詳細な説明を省略する。ゲート段数は図６と同じである。
【００８４】
図１８には論理合成における最適化処理の具体例が示される。ここでは正論理組み合わせ回路ＣＭＢＬｐ＿ａ、負論理組み合わせ回路ＣＭＢＬｎ＿ｂ、及び正論理組み合わせ回路ＣＮＢＬｐ＿ｃによる直列系を考えるものとし、それらの組み合わせ回路に正論理順序回路ＦＦ１１，ＦＦ１２だけを挿入して構成する直列経路ＤＰＳ１２に対して、それらの組み合わせ回路に正論理順序回路ＦＦ１１，ＦＦ１２だけでなく負論理順序回路ＦＦ１３を挿入して構成した直列パスＤＰＳ１３を採用した例が示される。
【００８５】
直列パスＤＰＳ１２では、正論理組み合わせ回路ＣＭＢＬｐ＿ａの前段に正論理順序回路ＦＦ１１＿ａが配置されその後段に正論理順序回路ＦＦ１１＿ｂが配置され、負論理組み合わせ回路ＣＭＢＬｎ＿ｂの後段にインバータＩＮＶ＿ｂと正論理順序回路ＦＦ１１＿ｃが配置され、正論理組み合わせ回路ＣＮＢＬｐ＿ｃの後段にインバータＩＮＶ＿ｃと正論理順序回路ＦＦ１１＿ｄが配置される。インバータＩＮＶ＿ｂは負論理組み合わせ回路ＣＭＢＬｎ＿ｂの負論理出力を正論理順序回路ＦＦ２＿ｃに供給するための論理整合用インバータとして機能し、インバータＩＮＶ＿ｃは反転信号を受けて論理動作を行なう正論理組み合わせ回路ＣＭＢＬｐ＿ｃの負論理出力を正論理順序回路ＦＦ２＿ｄに供給するための論理整合用インバータとして機能する。
【００８６】
直列パスＤＰＳ１３では、正論理順序回路ＦＦ１１＿ｂ、ＦＦ１２＿ｃを負論理順序回路ＦＦ１３＿ｂ、ＦＦ１３＿ｃに変更し、インバータＩＮＶ＿ｂ、ＩＮＶ＿ｃを廃止し、正論理組み合わせ回路ＣＭＢＬｐ＿ａの次段に論理整合用のインバータＩＮＶ＿ａを追加して、当該直列パスのゲート段数に対する最適化が行なわれる。即ち、正論理順序回路ＦＦ１１＿ｂを負論理順序回路ＦＦ１３＿ｂに変えることによってゲート段数が１段減る。正論理組み合わせ回路ＣＭＢＬｐ＿ａの出力を当該負論理順序回路ＦＦ１３＿ｂの負論理入力端子に受けるために論理整合用のインバータＩＮＶ＿ａを追加してゲート段数が１段増える。正論理順序回路ＦＦ１１＿ｃを負論理順序回路ＦＦ１３＿ｃに変えることによってゲート段数が１段減る。負論理順序回路ＦＦ１３＿ｃは負論理組み合わせ回路ＣＭＢＬｎ＿ｂの負論理出力を負論理入力端子Ｄｎ／で直接受け取ることができるからインバータＩＮＶ＿ｂを廃止してゲート段数が１段減る。正論理組み合わせ回路ＣＭＢＬｐ＿ｃは負論理順序回路ＦＦ１３＿ｃから出力される負論理信号の反転信号を入力するからインバータＩＮＶ＿ｃを廃止してゲート段数が１段減る。直列パスＤＰＳ１３に入力されて当該パスから出力される信号の論理値は直列パスＤＰＳ１２に入力されて当該パスから出力される信号の論理値と一致する。従って、直列パスＤＰＳ１２が直列パスＤＰＳ１３に置き換えられるような最適化の例に拠れば、そのゲート段数を全体として２段減らすことができ、直列パスＤＰＳ１２に含まれるゲート段数１６段と１７段のクリティカルパスが直列パスＤＰＳ１３ではゲート段数１５段と１６段に改善される。
【００８７】
図１９には論理合成における最適化処理の別の例が示される。ここでは負論理組み合わせ回路ＣＭＢＬｎ＿ａによる直列パスを考えるものとし、この組み合わせ回路に正論理順序回路ＦＦ１１だけを挿入して構成する直列パスＤＰＳ１４に対して、それらの組み合わせ回路に正論理順序回路ＦＦ１１だけでなく負論理順序回路ＦＦ１３を挿入して構成した直列パスＤＰＳ１５を採用した例が示される。直列パスＤＰＳ１４では、負論理組み合わせ回路ＣＭＢＬｎ＿ａの前段に正論理順序回路ＦＦ１１＿ａが配置され、その後段にインバータＩＮＶ＿ａと正論理順序回路ＦＦ１１＿ｂが配置される。インバータＩＮＶ＿ａは負論理組み合わせ回路ＣＭＢＬｎ＿ａの負論理出力を正論理順序回路ＦＦ１＿ｂに供給するための論理整合用インバータとして機能する。
【００８８】
直列パスＤＰＳ１５では、正論理順序回路ＦＦ１１＿ｂを負論理順序回路ＦＦ１３＿ｂに変更し、インバータＩＮＶ＿ａを廃止して、当該直列パスのゲート段数に対する最適化が行なわれる。即ち、正論理順序回路ＦＦ１１＿ｂを負論理順序回路ＦＦ１３＿ｂに変えることによってゲート段数が１段減る。負論理順序回路ＦＦ１３＿ｂは負論理組み合わせ回路ＣＭＢＬｎ＿ａの負論理出力を負論理入力端子Ｄｎ／で直接受け取ることができるからインバータＩＮＶ＿ａを廃止してゲート段数が１段減る。直列パスＤＰＳ１４に入力されて当該パスから出力される信号の論理値は直列パスＤＰＳ１５に入力されて当該パスから出力される信号の論理値と一致する。従って、直列パスＤＰＳ１４が直列パスＤＰＳ１５に置き換えられるような最適化の例に拠れば、そのゲート段数を全体として２段減らすことができる。そのうちの１段は論理整合用のインバータＩＮＶ＿ａの削減によるものである。
【００８９】
図２０には論理合成における最適化処理の更に別の例が示される。ここでは正論理組み合わせ回路ＣＭＢＬｐ＿ａによる直列パスを考えるものとし、この組み合わせ回路に正論理順序回路ＦＦ１２だけを挿入して構成する直列パスＤＰＳ１６に対して、それらの組み合わせ回路に正論理順序回路ＦＦ１２だけでなく負論理順序回路ＦＦ１３を挿入して構成した直列パスＤＰＳ１７を採用した例が示される。直列パスＤＰＳ１６では、正論理組み合わせ回路ＣＭＢＬｐ＿ａの前段に正論理順序回路ＦＦ１２＿ａが配置されその後段にインバータＩＮＶ＿ａと正論理順序回路ＦＦ１２＿ｂが配置される。インバータＩＮＶ＿ａは正論理組み合わせ回路ＣＭＢＬｐ＿ａから出力される正論理出力の反転信号を正論理順序回路ＦＦ１２＿ｂに供給するための論理整合用インバータとして機能する。
【００９０】
直列パスＤＰＳ１７では、正論理順序回路ＦＦ１２＿ｂが負論理順序回路ＦＦ１３＿ｂに変更され、インバータＩＮＶ＿ａが廃止されて、当該直列パスのゲート段数に対する最適化が行なわれる。即ち、正論理順序回路ＦＦ１２＿ｂを負論理順序回路ＦＦ１３＿ｂに変えることによってゲート段数が１段減る。負論理順序回路ＦＦ１３＿ｂは正論理組み合わせ回路ＣＭＢＬｐ＿ａの反転出力信号を負論理信号として負論理入力端子Ｄｎ／で直接受け取ることができるからインバータＩＮＶ＿ａを廃止してゲート段数が１段減る。直列パスＤＰＳ１６に入力されて当該パスから出力される信号の論理値は直列パスＤＰＳ１７に入力されて当該パスから出力される信号の論理値と一致する。従って、直列パスＤＰＳ１６が直列パスＤＰＳ１７に置き換えられるような最適化の例に拠れば、そのゲート段数を全体として２段減らすことができる。そのうちの１段は論理整合用のインバータＩＮＶ＿ａの削減によるものである。
【００９１】
上記最適化処理を採用した論理回路の設計方法は図１２のシステムを利用して実現すればよい。負論理順序回路ＦＦ１３，ＦＦ１４を部品に追加して論理合成を行なうときの直列パスに対する最適化処理も図１３の処理フローに従って行なえばよい。
【００９２】
この実施の形態によれば以下の作用効果を得る。
【００９３】
（１）図１９のように最適化処理では必要に応じて第１順序回路ＦＦ１１＿ｂに代えて第３順序回路ＦＦ１３＿ｂを利用することにより、例えば当該第１順序回路ＦＦ１１＿ｂの出力段に配置された回路からインバータＩＮＶ＿ａを１段削除することができる。したがって、クロック同期型の順序回路と組み合わせ回路との直列パスを含む論理回路に配置された冗長なインバータを削減してゲート段数を低減することができる。
【００９４】
（２）図１８（図２０）に示されるように前記最適化処理において、図１８の第２順序回路ＦＦ１２＿ｃ（図２０のＦＦ１２＿ｂ）の正論理入力端子に接続する組み合わせ回路の最終段に正論理への極性整合用のインバータＩＮＶ＿ｂ（図２０のＩＮＶ＿ａ）を配置可能なとき、これに代えて、当該極性整合用のインバータを削除し且つ第２順序回路を第３順序回路ＦＦ１３＿ｃ（図２０のＦＦ１３＿ｂ）とすることにより、正論理への極性整合用のインバータの削除によってクリティカルパスのゲート段数削減に資することができる。
【００９５】
（３）図１４乃至図１７に例示されるように前記第１順序回路ＦＦ１１及び第３順序回路ＦＦ１３のゲート段数は第２順序回路ＦＦ１２及び第４順序回路ＦＦ１４のゲート段数よりも１段少ないから、図１８及び図２０の場合には、ＦＦ１２からＦＦ１３への変更に際して順序回路それ自体についてもゲート段数の少ないものを採用可能であるから当該経路のクリティカルパスのゲート段数制約を緩和することができる。
【００９６】
《実施の形態３》
図２１には上記論理合成ツール３０をコンピュータ装置３で実行することにとって得られたネットリスト３１などを用いて製造された半導体集積回路のブロック構成が例示される。同図に示される半導体集積回路４０は、特に制限されないが、単結晶シリコンのような1個の半導体基板にＣＭＯＳ集積回路製造技術に形成される。
【００９７】
半導体集積回路（ＬＳＩ）４０はマイクロコンピュータ、マイクロプロセッサ、プロセッサ若しくはシステムオンチップのシステムＬＳＩ（ＳＯＣ）のようなデータ処理用デバイスとされる。ここでは、ＣＰＵ（中央処理装置）やキャッシュメモリなどを有するプロセッサコア（ＰＲＣＳＣＯＲ）５０を中心に、アクセラレータとしての２次元グラフィック処理モジュール（２ＤＭＤＬ）５１、３次元グラフィック処理モジュール（３ＤＭＤＬ）５２、画像圧縮伸張モジュール（ＭＰＧＭＤＬ）５３、及びオーディー処理モジュール（ＡＵＤＭＤＬ）５４、さらにはワークメモリやデータメモリとして用いられるＲＡＭ５５などが内部バス５６に接続されて構成される。夫々の回路モジュール５０乃至５５は、特に制限されないが、ＣＰＵによるプログラム制御或いは専用ロジックによる論理動作を行なって所定のデータ処理を行なう。特に図示はしないが回路モジュール５０乃至５５はクロック同期型の順序回路と組み合わせ回路との直列パスを含む論理回路を備えてデータ処理を行なうものである。この半導体集積回路４０は、前記論理回路の直列パスに、正論理入力端子と正論理非反転出力端子を有する第１順序回路ＦＦ１，ＦＦ１１、及び正論理入力端子と正論理反転出力端を有する第２順序回路ＦＦ２，ＦＦ１２に加えて、負論理入力端子と負論理非反転出力端子を有する第３順序回路ＦＦ３，ＦＦ１３、及び負論理入力端子と負論理反転出力端子を有する第４順序回路ＦＦ４，ＦＦ１４を有する。
【００９８】
例えば、前記直列パスは、例えば図１８（図１９）に例示されるように負論理組み合わせ回路ＣＭＢＬｎ＿ｂ（図１９のＣＭＢＬｎ＿ａ）の出力を前記第３順序回路ＦＦ１３＿ｃ（図１９のＦＦ１３＿ｂ）の負論理入力端子に受ける信号経路を含む。これにより、負論理組み合わせ回路の出力を前記第１順序回路の正論理入力端子に受けるとした場合に必要な正論理への論理整合用のインバータが不要になっている。
【００９９】
また、図９（図１０）に例示されるように、前記直列パスは、負論理組み合わせ回路ＣＭＢＬｎ＿ｂ（図１０のＣＭＢＬｎ＿ａ）の出力を前記第４順序回路ＦＦ４＿ｃ（ＦＦ４＿ｂ）の負論理入力端子に受ける信号経路を含む。これにより、負論理組み合わせ回路の出力を前記第２順序回路の正論理入力端子に受けるとした場合に必要な正論理への論理整合用のインバータが不要になっている。
【０１００】
更に別の例として、図２０に例示されるように、前記直列パスは、正論理組み合わせ回路ＣＭＢＬｐ＿ａの出力を前記第３順序回路ＦＦ１３＿ｂの負論理入力端子に受ける信号経路を含む。これにより、正論理組み合わせ回路が負論理信号を受けて動作されるような場合のその出力に対して必要な正論理への論理整合用のインバータが不要になっている。
【０１０１】
また、図１１に例示されるように、前記直列パスは、正論理組み合わせ回路ＣＭＢＬｐ＿ａの出力を前記第４順序回路ＦＦ４＿ｂの負論理入力端子に受ける信号経路を含む。これにより、正論理組み合わせ回路が負論理信号を受けて動作されるような場合のその出力に対して必要な正論理への論理整合用のインバータが不要になっている。
【０１０２】
したがって、クロック同期型の順序回路と組み合わせ回路との直列パスを含む論理回路に配置された冗長なインバータを削減してゲート段数を低減することが実現されている。
【０１０３】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【０１０４】
例えば、順序回路の種類、機能、ゲート段数などについては上記実施の形態に限定されず適宜変更可能であることは言うまでもない。
【０１０５】
本発明による論理回路の設計方法を用いて製造された半導体集積回路であるか否かについては、それに含まれる順序回路が正論理順序回路であるのか負論理順序回路であるのかを直列経路の回路接続によって特定すればよい。それが難しい場合には、順序回路の部品が異なるときに同じハードウェア記述と論理合成ツールを用いた時に現れるゲート段数の相違から、その方法に使用を推定することが可能である。前述のように一般にＩＰモジュールの改変が禁止されていれば、同じＩＰモジュールを使って設計された回路の構成に相違がある場合には使用した部品が相違することになるからである。
【符号の説明】
【０１０６】
ＤＰＳ１、ＤＰＳ２  直列パス
ＦＦ１、ＦＦ１１  第１順序回路
ＦＦ２、ＦＦ１２  第２順序回路
ＦＦ３、ＦＦ１３  第３順序回路
ＦＦ４、ＦＦ１４  第４順序回路
ＣＭＢＬ  組み合わせ回路
ＣＭＢＬｐ  正論理組み合わせ回路
ＣＭＢＬｎ  負論理組み合わせ回路
Ｄｐ  正論理の入力端子
Ｑｐ  非反転出力端子
ＴＭ  ＣＭＯＳトランスファゲート
ＭＳＴ  マスタ段
ＳＬＶ  スレーブ段
Ｑｐ／  正論理の反転出力端子
Ｄｎ／  負論理の入力端子
Ｑｎ／  負論理の非反転出力端子
Ｑｎ  負論理の反転出力端子
ＦＦ１・２  第１順序回路及び第２順序回路の集約型順序回路
ＦＦ３・４  第３順序回路及び第４順序回路の集約型順序回路
１  ハードウェア記述
２  セルライブラリ
３  コンピュータ装置
３０  論理合成ツール
３１  ネットリスト
４０  半導体集積回路（ＬＳＩ）
５０  プロセッサコア（ＰＲＣＳＣＯＲ）
５１  ２次元グラフィック処理モジュール（２ＤＭＤＬ）
５２  ３次元グラフィック処理モジュール（３ＤＭＤＬ）
５３  画像圧縮伸張モジュール（ＭＰＧＭＤＬ）
５４  オーディー処理モジュール（ＡＵＤＭＤＬ）
５５  ＲＡＭ
５６  内部バス
【図１】
0005797928.tif 000002
【図２】
0005797928.tif 000003
【図３】
0005797928.tif 000004
【図４】
0005797928.tif 000005
【図５】
0005797928.tif 000006
【図６】
0005797928.tif 000007
【図７】
0005797928.tif 000008
【図８】
0005797928.tif 000009
【図９】
0005797928.tif 000010
【図１０】
0005797928.tif 000011
【図１１】
0005797928.tif 000012
【図１２】
0005797928.tif 000013
【図１３】
0005797928.tif 000014
【図１４】
0005797928.tif 000015
【図１５】
0005797928.tif 000016
【図１６】
0005797928.tif 000017
【図１７】
0005797928.tif 000018
【図１８】
0005797928.tif 000019
【図１９】
0005797928.tif 000020
【図２０】
0005797928.tif 000021
【図２１】
0005797928.tif 000022
【図２２】
0005797928.tif 000023
【図２３】
0005797928.tif 000024