(57)【特許請求の範囲】
【請求項１】
保持するデータの入力タイミングをイネーブル信号によって制御するイネーブル付きラッチ回路において、
前記データを保持する第１のデータ保持手段と、
前記第１のデータ保持手段に保持されているデータをクロック半周期遅れて保持する第２のデータ保持手段と、
前記イネーブル信号により、入力データを前記第１のデータ保持手段に保持させるか或いは、前記第２のデータ保持手段の保持データを前記第１のデータ保持手段に保持させるかを選択するデータ選択手段と、を具備し、
前記第１のデータ保持手段と前記第２のデータ保持手段を前記クロックの反転クロックにより導通、遮断するパスゲートで接続し、前記第１のデータ保持手段から出力データを出力することを特徴とするイネーブル付きラッチ回路。
【請求項２】
保持するデータの入力タイミングをイネーブル信号によって制御するイネーブル付きラッチ回路において、
前記データを保持する第１のデータ保持手段と、
前記第１のデータ保持手段に保持されているデータをクロック半周期遅れて保持する第２のデータ保持手段と、
前記イネーブル信号により、入力データを前記第１のデータ保持手段に保持させるか或いは、前記第２のデータ保持手段の保持データを前記第１のデータ保持手段に保持させるかを選択するデータ選択手段と、を具備し、
前記第１のデータ保持手段と前記第２のデータ保持手段を前記クロックの反転クロックにより導通、遮断するパスゲートで接続し、
前記データ選択手段は２個のクロックドインバータから成るマルチプレクサ回路で、前記第１、第２のデータ保持手段はそれぞれインバータとクロックドインバータから成るデータ記憶回路で構成され、これら回路は前記クロックとその反転クロックにより動作が制御されることを特徴とするイネーブル付きラッチ回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はイネーブル信号でラッチするデータの入力タイミングを制御できるイネーブル付きラッチ回路に関する。
【０００２】
【従来の技術】
図３は従来のイネーブル付きラッチ回路の回路図である。イネーブル信号１００とクロック２００のＮＡＮＤをＮＡＮＤ１で取り、その出力をＣｌｋＮＮとし、前記出力をインバータ２で反転させてＣｌｋを作成する。Ｃｌｋはクロックドインバータ３に供給され、ＣｌｋＮＮはクロックドインバータ５に供給される。
【０００３】
イネーブル信号１００がローレベルの時は、ＮＡＮＤ１の出力ＣｌｋＮＮがハイレベルで、Ｃｌｋはローレベルであるため、クロックドインバータ３は遮断され、データ３００はインバータ４とクロックドインバータ５から成るラッチ部に入力されない。
【０００４】
イネーブル信号１００がハイレベルになると、Ｃｌｋがハイレベルになる為、クロックドインバータ３が動作し、データ３００がクロックドインバータ３を通して、ラッチ部のインバータ４に入力される。その後、イネーブル信号１００がローレベルになると、クロックドインバータ３が遮断し、ＣｌｋＮＮがハイレベルになってクロックドインバータ５が動作し、入力データを保持する。保持されたデータはインバータ６、７を介して出力される。
【０００５】
【発明が解決しようとする課題】
ところで、上記のような従来のイネーブル付きラッチ回路では、あるクロック半周期期間でイネーブル信号１００がローレベルでなければならないのに、このクロック半周期期間の途中でハイレベルからローレベルになると、クロックドインバータ３の遮断タイミングがずれ、前記ラッチ部に誤データが保持されるという問題がある。
【０００６】
即ち、図４（Ａ）に示したクロック（Ｃｌｏｃｋ）半周期期間（ｔ０、ｔ１）の途中で、本来、この半周期期間ではローレベルになっていなければならないイネーブル信号１００が図４（Ｂ）に示すように、途中でハイレベルからローレベルになると（イネーブル信号１００のタイムボロー）、この半周期期間の最初に、図４（Ｃ）に示すように、一時的にＣｌｋがハイレベルになり、本来この半周期期間では遮断していなければならないクロックドインバータ３が一時的に動作して、入力すべきでないデータ３００をインバータ４に入力して、誤データを保持してしまうという誤動作が生じる。
【０００７】
このため、上記のような従来のイネーブル付きラッチ回路では、イネーブル信号１００がタイムボロー出来ず、イネーブル信号へと至るパスがタイミングクリテイカルとなる。これにより、前記タイムボローが生じないように、前段のロジックを設計しなければならず、前段のロジックの高速化の障害となったり、上記のようなタイムボローが発生すると、前段のロジックを手直ししなければならず、設計に手間及び時間が掛かるという問題があった。
【０００８】
本発明は、上述の如き従来の課題を解決するためになされたもので、その目的は、イネーブル信号がタイムボローしても誤データを保持することがなく、正しいデータを保持することができるイネーブル付きラッチ回路を提供することである。
【０００９】
【課題を解決するための手段】
上記目的を達成するために、本発明の特徴は、保持するデータの入力タイミングをイネーブル信号によって制御するイネーブル付きラッチ回路において、前記データを保持する第１のデータ保持手段と、前記第１のデータ保持手段に保持されているデータをクロック半周期遅れて保持する第２のデータ保持手段と、前記イネーブル信号により、入力データを前記第１のデータ保持手段に保持させるか或いは、前記第２のデータ保持手段の保持データを前記第１のデータ保持手段に保持させるかを選択するデータ選択手段と、を具備し、前記第１のデータ保持手段と前記第２のデータ保持手段を前記クロックの反転クロックにより導通、遮断するパスゲートで接続し、前記第１のデータ保持手段から出力データを出力することにある。
【００１１】
本発明の他の特徴は、保持するデータの入力タイミングをイネーブル信号によって制御するイネーブル付きラッチ回路において、前記データを保持する第１のデータ保持手段と、前記第１のデータ保持手段に保持されているデータをクロック半周期遅れて保持する第２のデータ保持手段と、前記イネーブル信号により、入力データを前記第１のデータ保持手段に保持させるか或いは、前記第２のデータ保持手段の保持データを前記第１のデータ保持手段に保持させるかを選択するデータ選択手段と、を具備し、前記第１のデータ保持手段と前記第２のデータ保持手段を前記クロックの反転クロックにより導通、遮断するパスゲートで接続し、前記データ選択手段は２個のクロックドインバータから成るマルチプレクサ回路で、前記第１、第２のデータ保持手段はそれぞれインバータとクロックドインバータから成るデータ記憶回路で構成され、これら回路は前記クロックとその反転クロックにより動作が制御されることにある。
【００１３】
【発明の実施の形態】
以下、本発明の実施の形態を図面に基づいて説明する。図１は、本発明のイネーブル付きラッチ回路の一実施形態に係る構成を示した回路図である。イネーブル付きラッチ回路は、入力データ３００か、或いはスレーブラッチ５０の保持データ３０１のいずれかを選択して入力するマルチプレクサ３０、入力データ３００を保持するマスターラッチ４０、マスターラッチ４０の保持データを半周期遅れて保持するスレーブラッチ５０から主に成っている。
【００１４】
マルチプレクサ３０はクロックドインバータ１２、１４から成り、マスターラッチ４０はインバータ１６とクロックドインバータ１７から成り、スレーブラッチ５０はインバータ１９とクロックドインバータ２０から成っている。
【００１５】
更に、イネーブル付きラッチ回路は上記回路の他に、クロック２００の反転クロックＣｌｋＮＮを作るインバータ１１と、イネーブル信号１００の反転信号を作るインバータ１３、データ３００の入力遮断を行うクロックドインバータ１５、マスターラッチ４０とスレーブラッチ５０を接続するパスゲート１８、保持データ出力用のインバータ２１を有している。
【００１６】
次に本実施形態の動作について説明する。本例のイネーブル信号１００はマルチプレクサ３０の選択制御に用いられている。即ち、イネーブル信号１００がハイレベルの時、クロックドインバータ１２が動作し、イネーブル信号１００の反転信号が制御端子に入力されるクロックドインバータ１４は遮断する。これにより、マルチプレクサ３０は入力データ３００を選択入力し、クロックドインバータ１５に入力する。この時、クロック２００がハイレベルであると、クロックドインバータ１５が動作して、データ３００をマスターラッチ４０のインバータ１６に入力する。
【００１７】
次にクロック２００がローレベルになるとクロックドインバータ１５が遮断し、この時、ＣｌｋＮＮがハイレベルになってクロックドインバータ１７が動作し、マスターラッチ４０にて前記入力データが保持される。又、この時、パスゲート１８が導通するため、マスターラッチ４０に保持されたデータがスレーブラッチ５０のインバータ１９に入力され、その後クロック２００がハイレベルになると、クロックドインバータ２０が動作して前記データがスレーブラッチ５０に保持される。従って、マスターラッチ４０に保持されたデータと同一データがスレーブラッチ５０に保持される。
【００１８】
その後、イネーブル信号１００がローレベルになると、クロックドインバータ１２が遮断し、クロックドインバータ１４が動作するため、クロックドインバータ１５にはスレーブラッチ５０に保持されたデータが入力される。以降、スレーブラッチ５０に保持されたデータがマスターラッチ４０に保持されるという循環を繰り返して、同一データが保持され続ける。
【００１９】
ここで、イネーブル信号１００にタイムボローが生じた場合の動作について図２のタイムチャートを参照して説明する。イネーブル信号１００が、本来、図２に示したクロック半周期期間（ｔ０、ｔ１）では既にローレベルになっていなければならないのに、このクロック半周期期間の途中で、図２（Ｂ）に示すようにローレベルになると、この半周期期間の最初に、クロックドインバータ１２が導通して、本来選択してはならない図２（Ｃ）に示すようなデータ３００（ｂ）をクロックドインバータ１５に入力してしまう。
【００２０】
この半周期期間、クロックドインバータ１５はＣｌｋがハイレベルであるため、入力されたデータ３００（ｂ）をマスターラッチ４０に入力してしまうが、この時、ＣｌｋＮＮはローレベルであるため、パスゲート１８は遮断しており、入力されたデータ３００（ｂ）はスレーブラッチ５０には入力されず、スレーブラッチ５０は本来保持すべきデータ３０１（ａ）を保持している。
【００２１】
その後、イネーブル信号１００が前記半周期期間の途中でローレベルになると、クロックドインバータ１２が遮断して、クロックドインバータ１４が動作するため、図２（Ｄ）に示すようにスレーブラッチ５０に保持されているデータ３０１（ａ）がクロックドインバータ１４、１５を通してマスターラッチ４０に入力される。
【００２２】
次に、クロック２００がローレベルになると、ＣｌｋＮＮがハイレベルとなって、クロックドインバータ１７が動作し、データ３０１（ａ）がマスターラッチ４０に保持される。以降は、前述した正常動作時と同様である。
【００２３】
本実施形態によれば、イネーブル信号１００がタイムボローしても、一瞬取り込んだ誤データを修復してスレーブラッチ５０に保持されている正常データをマスターラッチ４０に保持させるため、イネーブル信号１００のタイムボローを許しても、ラッチの誤動作を無くすことができる。
【００２４】
従って、イネーブル信号１００のタイムボローが可能になり、クリティカルパスを削滅することができ、その分、前段のロジックの設計を容易にすることができると共に、ロジックの高速化を容易に実現することができる。
【００２５】
又、本例のイネーブル付きラッチ回路を旧来のものに代える際に、周辺回路の変更無しで置き換えが可能であり、ＲＴＬ修正／論理合成などを行なう必要がないため、容易に、タイムボローを許可できる効果を得ることができ、変更設計の期間を短縮化することができる。
【００２６】
更に、本例のイネーブル付きラッチ回路をスタンダードセルにすれば、同様の構成をロジック変更で実現した場合の様に、配線長やラッチ間のホールド違反を考慮する必要がなく、ロジックの設計を極めて容易に行うことができる。
【００２７】
【発明の効果】
以上詳細に説明したように、本発明のイネーブル付きラッチ回路によれば、イネーブル信号がタイムボローしても誤データを保持することがなく、正しいデータを保持することができるため、前段のロジック設計を容易にすると共に、前段のロジックを容易に高速化できる。
【図面の簡単な説明】
【図１】本発明のイネーブル付きラッチ回路の一実施形態に係る構成を示した回路図である。
【図２】図１に示した回路でイネーブル信号のタイムボローが生じた時の動作を説明するタイムチャートである。
【図３】従来のイネーブル付きラッチ回路の構成例を示した回路図である。
【図４】図３に示した回路でイネーブル信号のタイムボローが生じた時の動作を説明するタイムチャートである。
【符号の説明】
１１、１３、１６、１９、２１  インバータ
１２、１４、１５、１７、２０  クロックドインバータ
１８  パスゲート
３０  マルチプレクサ
４０  マスターラッチ
１   スレーブラッチ
【図１】
0003651659.tif 000002
【図２】
0003651659.tif 000003
【図３】
0003651659.tif 000004
【図４】
0003651659.tif 000005