(57)【要約】【課題】高速なパイプラインを構成するラッチ回路を提供することにある。【解決手段】基本論理回路に付加してスルー遅延が高速なラッチ回路にするラッチ化回路を用意しておき、スキュー・ジッタなどのクロックエッジのずれを最大限吸収できるラッチ回路位置を求め、求めたポイントに位置する基本論理回路にこのラッチ化回路を付加してラッチ回路を構成する手段とを提供することにより、スキュー・ジッタに最大限影響されないラッチ回路を設計できる。【選択図】      図２
2005277909.tif 000002
【特許請求の範囲】
【請求項１】
論理演算用の基本論理回路と、前記基本論理回路の入出力間に付加されて前記基本論理回路とともにラッチ回路を構成するラッチ化回路とを備えることを特徴とする論理回路。
【請求項２】
フリップフロップ群および基本論理回路群を有する順序回路内に、前記基本論理回路群のうちの予め定める基本論理回路をラッチ回路として機能させるラッチ化回路を有することを特徴とする論理回路。
【請求項３】
前記ラッチ化回路を含んで構成した前記ラッチ回路が、前記順序回路内における伝送信号の遅延時間を短縮する遅延時間短縮機能を備える請求項１記載の論理回路。
【請求項４】
前記ラッチ回路は、前記予め定める基本論理回路を構成要素に含む請求項１または２記載の論理回路。
【請求項５】
入力したクロック信号から互いに極性の異なる第１の制御クロック信号および第２の制御クロック信号を生成する手段と、第１の入力端からの入力信号を前記第１の制御クロック信号で選択的に第１の出力端に伝達する第１の信号伝達手段と、第２の入力端からの入力信号を前記第１の制御クロック信号で選択的に第２の出力端に伝達する第２の信号伝達手段と、第３の入力端からの入力信号を極性反転して出力する極性反転手段と、前記極性反転手段の出力を前記第２の制御クロック信号で選択的に前記第１の出力端に与える第３の信号伝達手段と、前記極性反転手段の出力を前記第２の制御クロック信号で選択的に前記第２の出力端に与える第４の信号伝達手段とを有するラッチ化回路を備えることを特徴とする論理回路。
【請求項６】
前記ラッチ化回路が論理演算用の基本論理回路を有し、前記ラッチ化回路の前記第３の出力端を前記基本論理回路の第１の信号入力端に接続し、前記ラッチ化回路の前記第２の出力端を前記基本論理回路の第２の信号入力端に接続し、前記基本論理回路の出力端を前記第３の入力端に接続して構成したラッチ回路を備えることを特徴とする論理回路。
【請求項７】
記憶媒体のプログラムに基づき中央処理装置（ＣＰＵ）の制御下で動作するラッチ化回路付加手段が、設計対象回路のネットリストからフリップフロップおよびラッチ回路を削除し、削除後のネットリストからラッチ化すべき基本論理回路を抽出してラッチ化回路を付加することを特徴とする論理回路設計方法。
【請求項８】
前記基本論理回路の抽出は、前記ラッチ化回路付加手段が遅延検証を行ってラッチ化回路を付加すべき遅延位置にある基本論理回路を検索した結果に基づき実行する請求項７記載の論理回路設計方法。
【請求項９】
前記ラッチ化回路を付加する処理の外部入力データとして、少なくとも前記設計対象回路のネットリストと各種の基本論理回路に対応するラッチ化回路のライブラリとをそれぞれ用いる請求項７記載の論理回路設計方法。
【請求項１０】
データ入力装置と、記憶媒体のプログラムに基づき中央処理装置（ＣＰＵ）の制御下で動作するとともに設計対象回路の第１のネットリストからフリップフロップおよびラッチ回路を削除し削除後の第２のネットリストからラッチ化すべき基本論理回路を抽出してラッチ化回路を付加するラッチ化回路付加手段を有するデータ処理装置と、前記データ処理装置で引用する処理データおよび処理結果のデータを記憶する記憶装置と、データの表示装置と、データの印字装置とを備え、
前記データ処理装置は、前記データ入力装置からの指示に応答して，前記第１のネットリストと各種の基本論理回路に対応するラッチ化回路ライブラリとを入力データとするとともに、入力された前記第１のネットリストから順序回路のフリップフロップおよびラッチ回路を削除し、削除した順序回路が負論理であれば信号反転手段を挿入し、正論理であればそのままの論理を挿入して第２のネットリストを出力する処理ステップと、前記第２のネットリストの内部を検索し、ラッチ化回路を付加すべき基本論理回路を検索し、ラッチ化の対象となる基本論理回路をラッチ付加リストとして出力する処理ステップと、前記ラッチ付加リストに従い前記ラッチ化回路ライブラリを参照して、前記第２のネットリスト内部の基本論理回路に対して対応するラッチ化回路を付加した第３のネットリストを出力する処理ステップとを、順次実行し，実行結果を前記表示装置および前記印字装置に出力することを特徴とする論理回路設計方法。
【請求項１１】
前記データ処理装置は、前記ラッチ化回路を付加すべき遅延位置にある基本論理回路を求める際に、前記ラッチ回路がスルー状態となるクロック信号の立ち上がりエッジおよび立ち下がりエッジにおいてクロック信号とデータ信号とが干渉を起こす不確定領域をそれぞれ求め、求めた前記不確定領域を、クロック信号の第１の論理レベル期間から差し引いた残りの領域をラッチ回路配置の範囲とし，その中間点をラッチ回路配置の最適点として抽出する請求項８記載の論理回路設計方法。
【請求項１２】
前記ラッチ化回路を付加すべき遅延位置にある基本論理回路を求める際に、前記データ処理装置が、前記ラッチ回路配置の範囲から、予め外部から指定する領域範囲をラッチ化回路を付加した後のスルー遅延領域として除き、残りの領域を立ち上がりエッジ側の遅延マージンおよび立ち下がりエッジ側の遅延マージンとして求める請求項８記載の論理回路設計方法。
【請求項１３】
前記ラッチ化回路を付加すべき遅延位置にある基本論理回路を求める際に、前記データ処理装置は、前記立ち上がりエッジ側の遅延マージンおよび前記立ち下がりエッジ側の遅延マージンとなる前記残りの領域が最大となるポイントを探索し、その地点に存在する基本論理回路を抽出する請求項８記載の論理回路設計方法。
【請求項１４】
前記予め外部から指定する領域範囲の値として、前記ラッチ化回路を付加した後の遅延特性における最大スルー遅延値を、前記ラッチ化回路ライブラリ内に予め記述しておく請求項１２記載の論理回路設計方法。
【請求項１５】
データ入力装置と、記憶媒体のプログラムに基づき中央処理装置（ＣＰＵ）の制御下で動作するとともに設計対象回路のネットリストからフリップフロップおよびラッチ回路を削除し削除後のネットリストからラッチ化すべき論理回路を抽出してラッチ化回路を付加するラッチ化回路付加手段を有するデータ処理装置と、前記データ処理装置で引用する処理データおよび処理結果のデータを記憶する記憶装置と、データの表示装置と、データの印字装置とを備えることを特徴とする論理回路設計システム。
【請求項１６】
前記ラッチ化回路付加手段は、ラッチ化回路付加処理の外部入力データとして、少なくとも前記設計対象回路のネットリストと各種の論理回路に対応するラッチ化回路のライブラリとをそれぞれ備える請求項１５記載の論理回路設計システム。
【請求項１７】
前記ラッチ化回路のライブラリは、前記ラッチ化回路を付加した後の遅延特性における最大スルー遅延値を格納する請求項１６記載の論理回路設計システム。
【請求項１８】
前記ラッチ化回路付加手段は、各種の論理回路に対応するラッチ化回路のライブラリを備え、前記設計対象回路内のフリップフロップおよびラッチ回路を前記第１のネットリストから削除するとともに削除した回路に対応する出力を所定の論理値に置き換えて第２のネットリストとして出力するフリップフロップ／ラッチ回路削除手段と、前記第２のネットリスト内部を検索しラッチ化の対象となる基本論理回路を検出してラッチ回路付加リストとして出力する回路分割手段と、前記ラッチ回路付加リストに従い前記ラッチ化回路ライブラリを参照して対応するラッチ化回路を前記ラッチ化の対象となる基本論理回路に付加し、付加した結果を第３のネットリストとして出力するラッチ回路挿入手段とを含み、前記記憶装置は、第１、第２および第３のネットリストと、前記ラッチ回路付加リストと、前記ライブラリとを含む請求項１５記載の論理回路設計システム。
【請求項１９】
データ入力装置と、記憶媒体のプログラムに基づき中央処理装置（ＣＰＵ）の制御下で動作するとともに設計対象回路の第１のネットリストからフリップフロップおよびラッチ回路を削除し削除後の第２のネットリストからラッチ化すべき基本論理回路を抽出してラッチ化回路を付加するラッチ化回路付加手段を有するデータ処理装置と、前記データ処理装置で引用する処理データおよび処理結果のデータを記憶する記憶装置と、データの表示装置と、データの印字装置とを備え、
前記データ入力装置からの指示に応答して，前記第１のネットリストと各種の基本論理回路に対応するラッチ化回路ライブラリとを入力データとするとともに、入力された前記第１のネットリストから順序回路のフリップフロップおよびラッチ回路を削除し、削除した順序回路が負論理であれば信号反転手段を挿入し、正論理であればそのままの論理を挿入して第２のネットリストを出力する処理ステップと、前記第２のネットリストの内部を検索し、ラッチ化回路を付加すべき基本論理回路を検索し、ラッチ化の対象となる基本論理回路をラッチ回路付加リストとして出力する処理ステップと、前記ラッチ回路付加リストに従い前記ラッチ化回路ライブラリを参照して、前記第２のネットリスト内部の基本論理回路に対して対応するラッチ化回路を付加した第３のネットリストを出力する処理ステップとを順次実行し，実行結果を前記表示装置および前記印字装置に出力する処理を、前記中央処理装置が前記データ処理装置に順次実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は論理回路設計システム、論理回路、論理回路設計方法およびそのプログラムに係わり、特にスキュー・ジッタを改善するために所定の基本論理回路をラッチ化する論理回路設計システム、論理回路、論理回路設計方法およびそのプログラムに関する。
【背景技術】
【０００２】
従来の論理回路設計方法では、順序回路を構成する場合、目的とするサイクルタイムで回路を分割し、間にフリップフロップ（以下、ＦＦと称する）を挿入する。すなわち、ＦＦを挿入することによりパイプラインを構成していた。
【０００３】
ＦＦを駆動するためにはクロック信号が用いられる。そのクロック信号を分配するためには、空間的な分配遅延の不均衡であるスキューが存在する。また、時間的な揺らぎであるジッタなどのばらつきの要素も一般的に存在する。
【０００４】
これらスキューおよびジッタなどのばらつきのオーバーヘッドは、実効的なサイクルタイムを減少させる。特に、高速なＬＳＩに対してはシステム性能の低下という問題を招いている。
【０００５】
上述したスキューおよびジッタに起因して実効的なサイクルタイムが減少する問題に対して、高速なＬＳＩのパイプライン設計に対応するラッチ回路設計技術が提案されている。
【０００６】
すなわち、ラッチ回路設計を行うための基本概念については、例えば、特許文献１や非特許文献１等に詳細に述べられている。
【０００７】
しかしながら、これらの文献で述べられているのはラッチ回路設計を行うための基本概念のみであり、特に実際のラッチ回路の回路構成や設計手法については提供されていなかった。
【０００８】
例えば、特許文献１の場合、２段以上のパイプラインとして動作するラッチ回路において、クロック信号供給手段が、入力及び出力フリップフロップ回路及びラッチ回路に共通のクロック信号を供給する。
【０００９】
さらに、回路挿入位置選定手段が、ラッチ回路のスルー期間の中央でラッチ回路の入力が確定するように、入力及び出力フリップフロップ回路又はラッチ回路の挿入位置を定めるというものである。
【００１０】
つまり、回路挿入位置選定手段により挿入位置を定めるので、トランジスタ性能のばらつきによるスキューにより多段パイプラインラッチ回路の受ける影響を極小化する。同様の理由で、ＬＳＩ動作時に生じるジッタ及びｄｕｔｙ比などの変動に対しても多段パイプラインラッチ回路の受ける影響を極小化する。その結果、ＬＳＩ製品の動作が安定したものとなるとしている。
【００１１】
一方、他の特許文献２によれば、ラッチ化フリップフロップ選定手段により、ラッチに変換しないフリップフロップを選定する。また、ラッチ変換手段により、ラッチ化フリップフロップ選定手段で選定されなかったフリップフロップを、入力側の遅延余裕を出力側に貸し出すことが可能なスルー状態を有するラッチ回路に変換するラッチ変換手段とを含んでいる。
【００１２】
そのため、フリップフロップの出力遅延、セットアップ時間およびクロックスキューの低減が可能となる。しかも利用者から指定されなかった全フリップフロップ、例えば、入力に遅延余裕のないフリップフロップをラッチ回路に変換することも可能になるとしている。
【００１３】
【特許文献１】特開２００１−１５６５９８号公報（段落「０００９」、「００１０」「００１１」）、図１。）。
【００１４】
【特許文献２】２００４−０５６２３８号公報（段落「００１３〜００１７」、図１。）
【非特許文献１】Ｈａｒｒｉｓ，  Ｄ．，  ｅｔ．  ａｌ．，  “Ｓｋｅｗ−Ｔｏｌｅｒａｎｔ  Ｄｏｍｉｎｏ  Ｌｏｇｉｃ  Ｃｉｒｃｕｉｔｓ，”  Ｄｉｇｅｓｔ  Ｐａｐｅｒｓ  ｏｆ  ｔｈｅ  ＩＳＳＣＣ１９９７
【発明の開示】
【発明が解決しようとする課題】
【００１５】
上述した従来のラッチ回路設計手法では、特許文献１のように、回路挿入位置選定手段が、ラッチ回路のスルー期間の中央でラッチ回路の入力が確定するように、入力及び出力フリップフロップ回路又はラッチ回路の挿入位置を定める。特許文献２では入力に遅延余裕のないフリップフロップをラッチ回路に変換することも可能となるものである。
【００１６】
しかし、これらに開示されたラッチ回路設計手法にかかる技術では、ラッチ回路設計に好適であるラッチ回路の回路構成、論理回路をラッチ化するための設計手法が提供されていなかった。
【００１７】
本発明の目的の一つは、上述した従来の欠点に鑑みなされたものであり、スルー遅延が高速であるラッチ回路の提供にある。また、目的の二つ目は、ラッチ回路を含む論理回路の設計手法を提供することにある。目的の三つ目は、ラッチ回路を含む論理回路の設計システムも提供することにある。
【課題を解決するための手段】
【００１８】
本発明の論理回路は、論理演算用の基本論理回路と、前記基本論理回路の入出力間に付加されて前記基本論理回路とともにラッチ回路を構成するラッチ化回路とを備えることを特徴とする。
【００１９】
本発明の論理回路の他の特徴は、フリップフロップ群および基本論理回路群を有する順序回路内に、前記基本論理回路群のうちの予め定める基本論理回路をラッチ回路として機能させるラッチ化回路を有することにある。
【００２０】
また、前記ラッチ化回路を含んで構成した前記ラッチ回路が、前記順序回路内における伝送信号の遅延時間を短縮する遅延時間短縮機能を備えることができる。
【００２１】
さらに、前記ラッチ回路は、前記予め定める基本論理回路を構成要素に含むこともできる。
【００２２】
本発明の論理回路のまた他の特徴は、入力したクロック信号から互いに極性の異なる第１の制御クロック信号および第２の制御クロック信号を生成する手段と、第１の入力端からの入力信号を前記第１の制御クロック信号で選択的に第１の出力端に伝達する第１の信号伝達手段と、第２の入力端からの入力信号を前記第１の制御クロック信号で選択的に第２の出力端に伝達する第２の信号伝達手段と、第３の入力端からの入力信号を極性反転して出力するインバータと、前記インバータの出力を前記第２の制御クロック信号で選択的に前記第１の出力端に与える第３の信号伝達手段と、前記インバータの出力を前記第２の制御クロック信号で選択的に前記第２の出力端に与える第４の信号伝達手段とを有するラッチ化回路を備えることにある。
【００２３】
また、前記ラッチ化回路が論理演算用の基本論理回路を有し、前記ラッチ化回路の前記第３の出力端を前記基本論理回路の第１の信号入力端に接続し、前記ラッチ化回路の前記第２の出力端を前記基本論理回路の第２の信号入力端に接続し、前記基本論理回路の出力端を前記第３の入力端に接続して構成したラッチ回路を備えることができる。
【００２４】
本発明の論理回路設計方法は、記憶媒体のプログラムに基づき中央処理装置（ＣＰＵ）の制御下で動作するラッチ化回路付加手段が、設計対象回路のネットリストからフリップフロップおよびラッチ回路を削除し、削除後のネットリストからラッチ化すべき基本論理回路を抽出してラッチ化回路を付加することを特徴とする。
【００２５】
また、前記基本論理回路の抽出は、前記ラッチ化回路付加手段が遅延検証を行ってラッチ化回路を付加すべき遅延位置にある基本論理回路を検索した結果に基づき実行することができる。
【００２６】
さらに、前記ラッチ化回路を付加する処理の外部入力データとして、少なくとも前記設計対象回路のネットリストと各種の基本論理回路に対応するラッチ化回路のライブラリとをそれぞれ用いることもできる。
【００２７】
本発明の論理回路設計方法の他の特徴は、データ入力装置と、記憶媒体のプログラムに基づき中央処理装置（ＣＰＵ）の制御下で動作するとともに設計対象回路の第１のネットリストからフリップフロップおよびラッチ回路を削除し削除後の第２のネットリストからラッチ化すべき基本論理回路を抽出してラッチ化回路を付加するラッチ化回路付加手段を有するデータ処理装置と、前記データ処理装置で引用する処理データおよび処理結果のデータを記憶する記憶装置と、データの表示装置と、データの印字装置とを備え、
前記データ処理装置は、前記データ入力装置からの指示に応答して，前記第１のネットリストと各種の基本論理回路に対応するラッチ化回路ライブラリとを入力データとするとともに、入力された前記第１のネットリストから順序回路のフリップフロップおよびラッチ回路を削除し、削除した順序回路が負論理であれば信号反転手段を挿入し、正論理であればそのままの論理を挿入して第２のネットリストを出力する処理ステップと、前記第２のネットリストの内部を検索し、ラッチ化回路を付加すべき基本論理回路を検索し、ラッチ化の対象となる基本論理回路をラッチ回路付加リストとして出力する処理ステップと、前記ラッチ回路付加リストに従い前記ラッチ化回路ライブラリを参照して、前記第２のネットリスト内部の基本論理回路に対して対応するラッチ化回路を付加した第３のネットリストを出力する処理ステップとを、順次実行し，実行結果を前記表示装置および前記印字装置に出力することにある。
【００２８】
また、前記データ処理装置は、前記ラッチ化回路を付加すべき遅延位置にある基本論理回路を求める際に、前記ラッチ回路がスルー状態となるクロック信号の立ち上がりエッジおよび立ち下がりエッジにおいてクロック信号とデータ信号とが干渉を起こす不確定領域をそれぞれ求め、求めた前記不確定領域を、クロック信号の第１の論理レベル期間から差し引いた残りの領域をラッチ回路配置の範囲とし，その中間点をラッチ回路配置の最適点として抽出することができる。
【００２９】
また、前記ラッチ化回路を付加すべき遅延位置にある基本論理回路を求める際に、前記データ処理装置が、前記ラッチ回路配置の範囲から、予め外部から指定する領域範囲をラッチ化回路を付加した後のスルー遅延領域として除き、残りの領域を立ち上がりエッジ側の遅延マージンおよび立ち下がりエッジ側の遅延マージンとして求めることもできる。
【００３０】
さらに、前記ラッチ化回路を付加すべき遅延位置にある基本論理回路を求める際に、前記データ処理装置は、前記立ち上がりエッジ側の遅延マージンおよび前記立ち下がりエッジ側の遅延マージンとなる前記残りの領域が最大となるポイントを探索し、その地点に存在する基本論理回路を抽出することでもよい。
【００３１】
さらにまた、前記予め外部から指定する領域範囲の値として、前記ラッチ化回路を付加した後の遅延特性における最大スルー遅延値を、前記ラッチ化回路ライブラリ内に予め記述しておくこともできる。
【００３２】
本発明の論理回路設計システムは、データ入力装置と、記憶媒体のプログラムに基づき中央処理装置（ＣＰＵ）の制御下で動作するとともに設計対象回路のネットリストからフリップフロップおよびラッチ回路を削除し削除後のネットリストからラッチ化すべき論理回路を抽出してラッチ化回路を付加するラッチ化回路付加手段を有するデータ処理装置と、前記データ処理装置で引用する処理データおよび処理結果のデータを記憶する記憶装置と、データの表示装置と、データの印字装置とを備えることを特徴とする。
【００３３】
また、前記ラッチ化回路付加手段は、ラッチ化回路付加処理の外部入力データとして、少なくとも前記設計対象回路のネットリストと各種の論理回路に対応するラッチ化回路のライブラリとをそれぞれ備えることができる。
【００３４】
さらに、前記ラッチ化回路のライブラリは、前記ラッチ化回路を付加した後の遅延特性における最大スルー遅延値を格納することでもよい。
【００３５】
さらにまた、前記ラッチ化回路付加手段は、各種の論理回路に対応するラッチ化回路のライブラリを備え、前記設計対象回路内のフリップフロップおよびラッチ回路を前記第１のネットリストから削除するとともに削除した回路に対応する出力を所定の論理値に置き換えて第２のネットリストとして出力するフリップフロップ／ラッチ回路削除手段と、前記第２のネットリスト内部を検索しラッチ化の対象となる基本論理回路を検出してラッチ回路付加リストとして出力する回路分割手段と、前記ラッチ回路付加リストに従い前記ラッチ化回路ライブラリを参照して対応するラッチ化回路を前記ラッチ化の対象となる基本論理回路に付加し、付加した結果を第３のネットリストとして出力するラッチ回路挿入手段とを含み、前記記憶装置は、第１、第２および第３のネットリストと、前記ラッチ回路付加リストと、前記ライブラリとを含むこともできる。
【発明の効果】
【００３６】
以上説明したように、本発明によれば、スルー遅延が高速なラッチ回路と、スキュー・ジッタなどのクロックエッジのずれを最大限吸収できるラッチ回路の配置位置を検出する手段とを実現する。したって、クロックエッジのずれに影響されない高速な論理回路設計手段を提供することができる。
【発明を実施するための最良の形態】
【００３７】
まず本発明の概要を説明すると、本発明のラッチ回路を含む論理回路設計手法では、第１にＦＦ、ラッチ回路等の回路を含まない回路記述（以下、ネットリストと称する）を準備する。
【００３８】
第２に、上述したネットリストから、遅延検証によりラッチ回路のスキュー耐性が最大となるポイント（最適点）を抽出する。
【００３９】
第３に、上述のポイントに存在する基本論理回路（以下、論理ゲートと称する）に対してラッチ化回路を付加することにより、スキュー耐性の最大化とラッチ回路のスルー遅延の高速化という効果が得られる、という発明である。
【００４０】
次に本発明の実施の形態を図面を参照して詳細に説明する。
【実施例１】
【００４１】
本発明の第１の実施例として、本発明のラッチ化回路と、このラッチ化回路を論理ゲートに付加して構成するラッチ回路を説明する。
【００４２】
図１はラッチ化回路を論理ゲートに付加して構成するラッチ回路の回路図である。図１を参照すると、ラッチ化回路１０１とラッチ化対象の論理ゲートである、例えばＮＡＮＤゲート１０２とにより構成するラッチ回路１００を示してある。
【００４３】
ラッチ化回路１０１は、クロック信号ＣＬＫを受けクロック信号ＣＬＫの負の論理値Ａを生成するクロック用インバータ１１０を有する。また、ラッチ化回路１０１は、クロック信号の正の論理値Ｂを生成するクロック用インバータ１１１を有する。
【００４４】
ラッチ化回路１０１は、ＮＡＮＤゲート１０２の第１の入力信号Ｄ０を、クロック信号ＣＬＫに応答してＮＡＮＤゲート１０２の第１の入力端にクロック制御で選択的に与える第１の信号伝達手段（以下，トランスミッションゲートと称する）１１２を有する。第１のトランスミッションゲート１１２は、クロック信号ＣＬＫの正の論理値ＢをＰチャネル型トランジスタのゲートに与え、負の論理値ＡをＮチャネル型トランジスタのゲートに与える。
【００４５】
ラッチ化回路１０１は、ＮＡＮＤゲート１０２の第２の入力信号Ｄ１を、クロック信号ＣＬＫに応答してＮＡＮＤゲート１０２の第２の入力端に選択的に与える第２のトランスミッションゲート１１３を有する。第２のトランスミッションゲート１１３は、クロック信号ＣＬＫの正の論理値ＢをＰチャネル型トランジスタのゲートに与え、負の論理値ＡをＮチャネル型トランジスタのゲートに与える。
【００４６】
ラッチ化回路１０１は、ＮＡＮＤゲート１０２の出力を受けるフィードバック用インバータ１１４を有する。ラッチ化回路１０１は、そのインバータ１１４の出力を、クロック信号ＣＬＫに応答して選択的に第１の入力端に与える第３のトランスミッションゲート１１５を有する。
【００４７】
第３のトランスミッションゲート１１５は、クロック信号ＣＬＫの負の論理値ＡをＰチャネル型トランジスタのゲートに与え、正の論理値ＢをＮチャネル型トランジスタのゲートに与える。
【００４８】
ラッチ化回路１０１は、インバータ１１４の出力を、クロック信号ＣＬＫに応答して選択的に第２の入力端に与える第４のトランスミッションゲート１１６を有する。第４のトランスミッションゲート１１６は、クロック信号ＣＬＫの負の論理値ＡをＰチャネル型トランジスタのゲートに与え、正の論理値ＢをＮチャネル型トランジスタのゲートに与えるように構成されている。
【００４９】
上述したラッチ化回路１０１をＮＡＮＤゲート１０２に付加して構成したラッチ回路１００の動作を説明する。まず，クロック信号が論理レベルのＨｉｇｈ期間の場合、クロックインバータ１１０の出力は負の論理値Ａであり、クロックインバータ１１１の出力は正の論理値Ｂである。
【００５０】
この状態で、クロックインバータ１１０の出力ＡおよびＢによりトランスミッションゲート１１２および１１３は共に導通しているので、データＤ０およびデータＤ１が共にＨｉｇｈであると、ＮＡＮＤゲート１０２の出力ＱＴはＬｏｗとなる。
【００５１】
クロック信号が論理レベルのＬｏｗ期間の場合、クロックインバータ１１０の出力Ａおよびクロックインバータ１１０の出力Ｂによりトランスミッションゲート１１２および１１３は共に非導通になる。
【００５２】
一方、クロックインバータ１１０の出力Ａおよびクロックインバータ１１０の出力Ｂによりトランスミッションゲート１１５および１１６は共に導通している。
【００５３】
従って、出力ＱＴのＬｏｗレベルはフィードバック用インバータ１１４で反転されてＨｉｇｈレベルになり、トランスミッションゲート１１５および１１６を介してＮＡＮＤゲート１０２の入力に帰還し、その状態を保持する。データＤ０およびＤ１の論理レベルがそれぞれ上記のＨｉｇｈレベル以外の組み合わせでは出力ＱＴはＨｉｇｈレベルを保持する。つまり、論理ゲートの論理に応じたラッチ動作をする。
【００５４】
上述した論理回路によれば、基本論理回路に付加してスルー遅延が高速なラッチ回路にするラッチ化回路を用意してある。したがって、後述するラッチ回路位置を求めたポイントに位置する基本論理回路にこのラッチ化回路を付加してラッチ回路を構成することにより、スキュー・ジッタに最大限影響されないラッチ回路を得る。
【実施例２】
【００５５】
図２は本発明の論理回路設計方法を説明するためのフローチャートであり、図３は本実施例の回路を従来の技術を用いて構成した場合の一例を示す構成図である。
【００５６】
図２および図３を参照すると、従来は図３に示すように、（論理回路３０１）＋（ラッチ回路３０２）という構成をとり前述したパイプラインを構成していた。
【００５７】
このようなパイプライン構成の場合、ラッチ回路が入力データをそのまま出力するスルーモードの時の回路遅延は、（論理ゲート３０１の遅延）＋（ラッチ回路３０２のスルーモードの遅延）となる。
【００５８】
すなわち、二つの遅延値の和であり、遅延が大きい。
【００５９】
これに対して図１に示した本発明の第１の実施例では、論理ゲートそのものをラッチ化する。そのため、その遅延はＮＡＮＤゲート１０２自身の遅延にラッチ化回路１０１の遅延を加えたものとなる。
【００６０】
ラッチ化回路１０１の遅延は、ＮＡＮＤゲート１０２の入出力に対してわずかな負荷容量の増加としてしか働かない。したがって、図１に示した本発明の第１の実施例におけるラッチ回路の遅延は、図３に示した従来例の論理回路の遅延と比較して著しく小さいことは明白である。
【００６１】
図２において、本発明の論理回路設計方法では、予め用意した二つの入力データを備える。一つはネットリスト２１０あり、他の一つは各種の論理ゲートに対応するラッチ化回路ライブラリ２１５である。
【００６２】
ネットリストからＦＦ、ラッチ回路を削除する処理手順Ｓ１０は、ネットリスト２１０から入力したネットリストから順序回路のＦＦやラッチ回路などを削除する。削除したＦＦやラッチ回路の出力が負の論理値であればインバータを挿入する。削除したＦＦやラッチ回路の出力が正の論理値であれば、そのまま手を加えずネットリスト２１１を出力する。
【００６３】
次に、遅延により回路を分割する処理手順Ｓ１１は、ネットリスト２１１の内部を検索し、ラッチ化回路を付加すべき論理ゲートを検出する。検索した結果に基づき、検出した論理ゲートに関わるネットリスト２１２とラッチ化回路を付加する論理ゲートのリスト２１３を出力する。ここでネットリスト２１２と２１１とは同じものである。
【００６４】
最後に、ラッチ回路を付加する処理手順Ｓ１２は、ラッチ化回路を付加する論理ゲートのラッチ付加リスト２１３に従い、かつラッチ化回路ライブラリ２１５を参照して、ネットリスト２１２内部の論理ゲートに適当なラッチ化回路を付加する。その後、ラッチ化回路を付加したネットリスト２１４を出力する。
【００６５】
遅延により回路を分割する処理手順Ｓ１１では、ラッチ化回路を付加すべき論理ゲートを検出する際、遅延検証を行い、ラッチ化回路を付加すべき最適な遅延位置にある論理ゲートを検索する。
【００６６】
ここで、上述したラッチ化すべき論理ゲートが位置する最適な遅延位置について説明する。図４はＦＦを用いた場合の設計とラッチ回路を用いた場合の設計の比較を説明するためのタイミングチャートである。
【００６７】
図４を参照すると、通常、クロック信号には信号の分配に伴うエッジのずれであるスキューあるいはジッタが存在する。ＦＦはエッジトリガ動作を行うため、クロック信号のエッジがずれる場合、そのずれを計算に入れて回路の遅延設計を行う必要がある。
【００６８】
特に、高速なＬＳＩの設計を行う場合には、スキューやジッタなどのエッジのずれの影響が大きく、性能を劣化させる一因となっていた。
【００６９】
ＦＦ０から送出された信号は１サイクル以内にＦＦ１へ到達する必要がある。しかし、実際には１サイクルの遅延時間からクロック信号のエッジのずれ、すなわちスキューやジッタ分を差し引いた遅延時間内でＦＦ１へ到達しなければならないという制約がある。
【００７０】
この制約が性能に対するペナルティとなっている。これに対してラッチ回路を用いた設計の場合には、ロースルーラッチであるラッチ回路１は、クロック信号が論理レベルのＬｏｗである期間内のどこに配置しても良い。
【００７１】
また、ハイスルーラッチであるラッチ回路２は、クロック信号が論理レベルのＨｉｇｈである期間内のどこに配置しても良い。
【００７２】
更に、ラッチ回路１およびラッチ回路２のペアは、機能的にはＦＦとして動作し、互いに相手がスルーの場合にはホールドモードとなる。そのため、いわゆる信号のつきぬけが起こる確率はＦＦを用いた場合の設計と同程度である。
【００７３】
図５は、０．５サイクル以内にラッチ回路を配置できる最適な位置を求める一例を説明するためのタイミングチャートである。
【００７４】
図５を参照しながら、ラッチ回路を付加すべき位置を、ハイスルーラッチ回路の場合を例に説明する。ハイスルーラッチは、クロック信号がＨｉｇｈの期間中のどこにでも配置することができる。しかし、クロックエッジと近接すると、クロック信号と入力データ信号の遷移が同時期に起こることがあり、そのことに起因する遅延変動が見られる。
【００７５】
従って、一般的には、クロックエッジに対して一定のマージンを持たせ、その領域にはラッチ回路、ＦＦは配置しない。
【００７６】
通常、このマージン値はｓｅｔｕｐ時間と呼ばれる。しかし、ここでは一般的な意味合いを持たせるために、ラッチ回路のクロック信号とデータ信号とが干渉を起こす領域を不確定領域と定義する。
【００７７】
ラッチ回路が配置可能な領域は、Ｈｉｇｈ期間からこの不確定領域を差し引いた領域である。前述したスキュー・ジッタは、クロック信号のＲＩＳＥエッジとＦＡＬＬエッジの双方に影響を与える。
【００７８】
そのため、ラッチ回路は双方のエッジからできるだけ離した位置、すなわちＨｉｇｈ期間から不確定領域を差し引いた領域のちょうど中間点が最適点となる。
【００７９】
図中のτ（ｍａｒｇｉｎ）で示される領域は、クロックエッジのずれ、すなわちスキュー・ジッタを吸収する働きをする領域である。もし、ずれがτ（ｍａｒｇｉｎ）以下であれば回路遅延に対して影響を与えない。
【００８０】
第２の処理手順Ｓ１１では遅延検証を行い、その検証結果から、前述したτ（ｍａｒｇｉｎ）が最大となるポイントを探索し、その地点に存在する論理ゲートを報告する。
【００８１】
その際、図５のように、ラッチ化回路を付加した後のスルー遅延Ｔｐｄが必要となるが、ラッチ化回路ライブラリ２１３内に最悪の遅延値を記述しておくことで対応できる。また、このスルー遅延は、本発明の第１の実施例で述べた回路構成を採用することにより、回路遅延に対して最小のインパクトを与えるだけにとどまることは明らかである。
【００８２】
上述したように、基本論理回路に付加してスルー遅延が高速なラッチ回路にするラッチ化回路を用意しておく。次に、スキュー・ジッタなどのクロックエッジのずれを最大限吸収できるラッチ回路位置を求める。求めたポイントに位置する基本論理回路にこのラッチ化回路を付加してラッチ回路を構成することにより、スキュー・ジッタに最大限影響されないラッチ回路を設計できる。
【実施例３】
【００８３】
図６は本発明の第３の実施例であり、前述したラッチ化回路付加方法が適用される論理回路設計システムの構成図である。図６を参照すると、本発明の論理回路設計システムは、キーボード、マウス等を含むデータの入力手段６１１を有する。この論理回路設計システムは、データ処理装置６１２も有する。
【００８４】
データ処理装置６１２は、記憶媒体６１６のプログラムに基づき中央処理装置（ＣＰＵ）６１７の制御下で動作するとともに、ラッチ化回路付加手段６２６を有する。
【００８５】
このラッチ化回路付加手段６２６は、設計対象回路の接続情報を記述したネットリスト６２１からフリップフロップおよびラッチ回路を削除する。
【００８６】
ラッチ化回路付加手段６２６は、フリップフロップおよびラッチ回路を削除後のネットリスト６２２からラッチ化すべき論理ゲートを抽出する。また、ラッチ化回路付加手段６２６は、論理ゲートを抽出してラッチ化回路を付加する。
【００８７】
ラッチ化回路付加手段６２６は、各種の論理ゲートに対応するラッチ化回路のライブラリ６２４を備え、設計対象回路内のＦＦおよびラッチ回路を第１のネットリスト６２１から削除する。
【００８８】
ラッチ化回路付加手段６２６は、ＦＦ／ラッチ回路削除手段６１８を含む。ＦＦ／ラッチ回路削除手段６１８は、削除したＦＦおよびラッチ回路に対応する出力を所定の論理値、例えば正の論理値であれば前段の出力値のままとする。負の論理値であれば前段の出力値をインバータを挿入し反転させる。このように置き換えた結果の接続情報を第２のネットリスト６２２として出力する。
【００８９】
また、ラッチ化回路付加手段６２６は、回路分割手段６１９を含む。この回路分割手段６１９は、第２のネットリスト６２２内部を検索し、ラッチ化の対象となる論理ゲートを検出してラッチ回路付加リスト６２３として出力する。
【００９０】
さらに、ラッチ化回路付加手段６２６は、ラッチ回路付加リスト６２３に従って、ラッチ化回路ライブラリ６２４を参照しながら、対応するラッチ化回路をラッチ化の対象となる論理ゲートに付加する。
【００９１】
ラッチ化回路付加手段６２６は、ラッチ回路挿入手段６２０を含む。ラッチ回路挿入手段６２０は、付加した結果を第３のネットリスト６２３として出力する。
【００９２】
この論理回路設計システムは、さらに、データ処理装置で引用する処理データおよび処理結果のデータを記憶する記憶装置６１５と、データの表示装置６１４と、データの印字装置６１３とを備える。記憶装置６１５は、第１、第２および第３のネットリスト６２１、６２２、６２５と、ラッチ回路付加リスト６２３と、ライブラリ６２４とを含む。
【００９３】
上述したラッチ化回路付加手段は、ラッチ化回路付加処理のための外部入力データとして、設計対象となる回路網のネットリスト６２１とラッチ化回路のライブラリ６２４とを少なくとも備える。
【００９４】
ここでのネットリスト６２１は、設計対象となる回路網の接続情報である。また、ここでのライブラリ６２４は、設計対象となる回路網で使用する各種の論理ゲートに対応するラッチ化回路が記述されている。
【００９５】
さらに、このライブラリ６２４は、ラッチ化回路を付加した後の遅延特性における最大スルー遅延値も記述されている。この最大スルー遅延値は、ラッチ化回路を付加する論理ゲートの特性における遅延値のうちの最大値を外部から予め書き込んでおくものである。この最大値を最大スルー遅延値として利用する。
【００９６】
上述した論理設計システムによりれば、基本論理回路に付加してスルー遅延が高速なラッチ回路にするラッチ化回路を用意しておく。また、スキュー・ジッタなどのクロックエッジのずれを最大限吸収できるラッチ回路位置を求める。求めたポイントに位置する基本論理回路にこのラッチ化回路を付加してラッチ回路を構成する手段とを提供することにより、スキュー・ジッタに最大限影響されないラッチ回路を設計できる。
【産業上の利用可能性】
【００９７】
本発明の活用例として、パイプライン構成の論理回路を高速動作させるＬＳＩに適用できる。
【図面の簡単な説明】
【００９８】
【図１】ラッチ化回路を論理ゲートに付加して構成されるラッチ回路の回路図である。
【図２】本発明の論理回路設計方法を説明するためのフローチャートである。
【図３】本実施例の回路を従来の技術を用いて構成した場合の一例を示す構成図である。
【図４】ＦＦを用いた場合の設計とラッチ回路を用いた場合の設計の比較を説明するためのタイミングチャートである。
【図５】０．５サイクル以内にラッチ回路を配置できる最適な位置を求める一例を説明するためのタイミングチャートである。
【図６】ラッチ化回路付加方法が適用される論理回路設計システムの構成図である。
【符号の説明】
【００９９】
１０１    ラッチ化回路
１０２    ＮＡＮＤゲート
１１０，１１１    クロック用インバータ
１１４    フィードバック用インバータ
１１２，１１３，１１５，１１６    トランスミッションゲート
２１０，２１１，２１２，２１４    ネットリスト
２１３    ラッチ付加リスト
２１５    ラッチ化回路ライブラリ
６１１    入力手段
６１２    データ処理装置
６１３    印字装置
６１４    表示装置
６１５    記憶装置
６１６    記憶媒体
６１７    ＣＰＵ
６１８    ＦＦ／ラッチ回路削除手段
６１９    回路分割手段
６２０    ラッチ回路挿入手段
６２１，６２２，６２５    ネットリスト
６２３    ラッチ回路付加リスト
６２４    ライブラリ
Ｓ１０    ネットリストからＦＦ、ラッチ回路を削除する処理手順
Ｓ１１    遅延により回路を分割する処理手順  
Ｓ１２    ラッチ回路を付加する処理手順
【図１】
2005277909.tif 000003
【図２】
2005277909.tif 000004
【図３】
2005277909.tif 000005
【図４】
2005277909.tif 000006
【図５】
2005277909.tif 000007
【図６】
2005277909.tif 000008