(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0016】
以下、本発明が属する技術分野で通常の知識を持つ者が本発明の技術的思想を容易に実施することができる程度に詳細に説明するために、本発明の実施形態を添付の図面を参照して説明する。
【0017】
図1は、本発明の実施形態に係るフリップフロップを利用した論理回路を示すブロック図である。
図1を参照すれば、論理回路100は、第1フリップフロップ110、第2フリップフロップ120、及び負荷ブロック130を含んでいる。第1フリップフロップ110の出力端と第2フリップフロップ120の出力端は、各々負荷ブロック130の入力端に接続されている。
【0018】
第1フリップフロップ110は、クロック信号CLKに応答して、第1外部入力信号D1に対応する第1出力信号Q1を出力する。第2フリップフロップ120は、クロック信号CLKに応答して、第2外部入力信号D2に対応する第2出力信号Q2を出力する。負荷ブロック130には、第1フリップフロップ110及び第2フリップフロップ120からそれぞれ第1出力信号Q1及び第2出力信号Q2が、入力信号として伝達される。そして、負荷ブロック130は、内部の論理演算(logic operation)によって、負荷ブロック130の入力信号に対する出力信号OUTを出力する。
【0019】
第1フリップフロップ110、第2フリップフロップ120、及び負荷ブロック130は、それぞれ複数の論理ゲート(logic gate)の組合せから構成されうる。ここで、論理ゲートは、インバータ(inverter)、AND、OR、NAND、NOR、XOR、及びXNORゲートなどを含む。各々の入力と出力との間の経路(path)は、論理ゲートの種類及び個数によって多様に構成することができる。例えば、第1外部入力信号D1に対する経路は、2つのインバータと1つのANDゲートから構成されうる。一方、第2外部入力信号D2に対する経路は、1つのインバータ、1つのANDゲート、及び2つのNANDゲートから構成されうる。
【0020】
各々の入出力間の経路(path)において、1つの論理ゲートを経るつど論理演算のための遅延(delay)が発生する。したがって、論理ゲートの数が多いほどさらに遅延が発生する。このような遅延を減らすためには、同じ論理演算を実行する論理回路でも、より少ない数の論理ゲートを用いて回路を設計することが必要である。
【0021】
図2は、本発明の実施形態に係るフリップフロップを利用した論理回路の回路図である。
【0022】
図2を参照すれば、論理回路200は、第1フリップフロップ210、第2フリップフロップ220、及び負荷ブロック230を含んでいる。第1フリップフロップ210の出力端と第2フリップフロップ220の出力端は、それぞれ負荷ブロック230の入力端に接続されている。
【0023】
第1フリップフロップ210は、第1入力部211、第1ラッチ回路212、第1出力部213、及び第1パルス生成器214を含んでいる。第1パルス生成器214は、入力されるクロック信号CLKよりパルス幅が減少したパルス信号PSを出力する。第1入力部211は、パルス信号PSに応答して第1外部入力信号D1に対する出力信号を第1ラッチ回路212に伝達する。第1ラッチ回路212は、第1入力部211の出力信号に対する1ビットのデータ情報を格納する。第1出力部213は、第1ラッチ回路212に格納されたデータ情報に対する第1出力信号Q1を出力する。
【0024】
第1入力部211は、第1PMOSトランジスタ211a、第2PMOSトランジスタ211b、第1NMOSトランジスタ211c、第2NMOSトランジスタ211d、及びインバータ211eを含んでいる。第1PMOSトランジスタ211a、第2PMOSトランジスタ211b、第1NMOSトランジスタ211c、及び第2NMOSトランジスタ211dは、電圧端子Vccと接地GNDとの間で順に直列接続されている。ここで、第2PMOSトランジスタ211bと第1NMOSトランジスタ211cは、インバータを構成する。
【0025】
パルス信号PSは、インバータ211eを経て第1PMOSトランジスタ211aのゲートに入力される。そして、クロック信号CLKは、第2NMOSトランジスタ211dのゲートに入力される。第1入力信号D1は、第2PMOSトランジスタ211bと第1NMOSトランジスタ211cのゲートに入力される。
【0026】
パルス信号PSがハイレベル(high level)の場合、第1PMOSトランジスタ211aと第2NMOSトランジスタ211dは、ターンオン(turn−on)される。したがって、第2PMOSトランジスタ211bと第1NMOSトランジスタ211cは、動作可能な状態になる。すなわち、第2PMOSトランジスタ211bと第1NMOSトランジスタ211cは、出力信号として第1外部入力信号D1の反転された信号を出力する。
【0027】
一方、パルス信号PSがローレベル(low level)の場合、第1PMOSトランジスタ211aと第2NMOSトランジスタ211dは、ターンオフ(turn−off)される。したがって、第2PMOSトランジスタ211bと第1NMOSトランジスタ211cは、動作することができない状態になる。すなわち、第2PMOSトランジスタ211bと第1NMOSトランジスタ211cは、第1外部入力信号D1に対して応答しない。
【0028】
第1ラッチ回路212は、互いにフィードバック(feedback)するように構成される2つのインバータ212a、212bを含む。互いにフィードバックする構成を有する2つのインバータ212a、212bによって、第1入力部211の出力信号に対する1ビットのデータ情報を保持する。
【0029】
第1出力部213は、インバータにより構成されている。したがって、第1出力部213は、第1出力信号Q1として第1ラッチ回路212が保持しているデータ情報の反転された値を出力する。また、第1出力部213は、第1フリップフロップ210の出力端に接続される負荷(load)を駆動する。そして、第1出力部213は、外部負荷によって影響を受けないように第1フリップフロップ210の内部インピーダンスを一定に保持する。
【0030】
上述のように、第1入力部211は、パルス信号PSに応答して、出力信号として第1外部入力信号D1の反転された信号を出力する。第1ラッチ回路212は、このような第1入力信号D1の反転された信号に対応する1ビットのデータ情報を保持する。第1出力部213は、第1ラッチ回路212の保持しているデータ情報を再び反転する。すなわち、第1出力信号Q1は、第1外部入力信号D1と同じ値を有する。
【0031】
第2フリップフロップ220は、第2入力部221、第2ラッチ回路222、第2出力部223、及び第2パルス生成器224を含んでいる。第2パルス生成器224は、入力されるクロック信号CLKよりパルス幅が減少したパルス信号PSを出力する。第2入力部221は、パルス信号PSに応答して、第2外部入力信号D2に対する出力信号を第2ラッチ回路222に伝達する。第2ラッチ回路222は、第2入力部221の出力信号に対応する1ビットのデータ情報を格納する。第2出力部223は、第2ラッチ回路222に格納されたデータ情報に対する第2出力信号Q2を出力する。
【0032】
第2フリップフロップ220の構造及び動作は、第1フリップフロップ210の構造及び動作と同一である。したがって、これに対する詳細な説明は省略する。
【0033】
負荷ブロック230は、複数の論理ゲートを含む。負荷ブロック230は、2つのインバータ231、232、1つのORゲート233、及び1つのNANDゲート234を含む。
【0034】
また、負荷ブロック230は、入力信号として第1出力信号Q1及び第2出力信号Q2が入力されて論理演算を行う。負荷ブロック230に含まれる複数の論理ゲートにより実行される論理演算は、以下の数式1により表現される。
【0036】
数式1を参照すれば、第1出力信号Q1に対するNOT演算を行う。該NOT演算結果と第2出力信号Q2に対するOR演算を行う。該OR演算結果に対するNOT演算を行う。該NOT演算結果と第1出力信号Q1に対するNAND演算を行う。該NAND演算結果は負荷ブロック230の出力信号OUTに該当する。
【0037】
図2の負荷ブロック230に示されるように、2つのインバータ231、232、1つのORゲート233、及び1つのNANDゲート234は、数式1による論理演算を行うように組み合わせられる。具体的には、第1出力信号Q1は、インバータ231を経てORゲート233の一方の入力端と、NANDゲート234の一方の入力端とに入力される。第2出力信号Q2は、ORゲート233の他方の入力端に入力される。ORゲート233の演算結果は、インバータ232を経て、NANDゲート234の他方の入力端に入力される。負荷ブロック230は、出力信号OUTとしてNANDゲート234の演算結果を出力する。
【0038】
なお、上述のような複数の論理ゲートの種類、個数、及び組合せは例示的に過ぎない。したがって、負荷ブロック230を多様に構成することができることは、この分野の通常の知識を習得した者等に自明である。
【0039】
本実施形態に係る論理回路では、第1フリップフロップ210は、クロック信号CLKに応答して、第1入力信号D1に対する出力信号として第1出力信号Q1を出力する。第2フリップフロップ220は、クロック信号CLKに応答して、第2入力信号D2に対する出力信号として第2出力信号Q2を出力する。負荷ブロック230は、第1出力信号Q1と第2出力信号Q2に対する出力信号OUTとして、論理演算結果を出力する。
【0040】
この時、第1外部入力信号D1または第2外部入力信号D2と出力信号OUT間の遅延を減らすためには、同じ論理演算を実行してもさらに少ない論理ゲートを用いて回路を設計することが必要である。
【0041】
この点、本発明の他の実施形態に係るフリップフロップは、出力部をインバータの代わりに2つ以上の入力信号に対して論理演算を行う論理ゲートから構成されうる。このような設計は、入力と出力との間の経路においてインバータを経る間に発生する遅延を減らすことができる。また、フリップフロップ内部で全体論理演算のうちの一部を行うことができる。このような構成について、以下
図3を例に詳細に説明する。
【0042】
図3は、本発明の他の実施形態に係るフリップフロップを利用した論理回路の回路図である。
図3を参照すれば、論理回路300は、第1フリップフロップ310、第2フリップフロップ320、及び負荷ブロック330を含んでいる。第1フリップフロップ310の出力端と第2フリップフロップ320の出力端は、それぞれ負荷ブロック330の入力端に接続されている。
【0043】
第1フリップフロップ310は、第1入力部311、第1ラッチ回路312、第1出力部313、及び第1パルス生成器314を含んでいる。第1パルス生成器314は、入力されるクロック信号CLKよりパルス幅が減少したパルス信号PSを出力する。第1入力部311は、パルス信号PSに応答して第1外部入力信号D1に対する出力信号を第1ラッチ回路312に伝達する。第1ラッチ回路312は、第1入力部311の出力信号に対する1ビットのデータ情報を格納する。第1出力部313は、第1ラッチ回路312に格納されたデータ情報に対する第1出力信号Q1を出力する。
【0044】
第1フリップフロップ310の構造及び動作は、
図2の第1フリップフロップ210の構造及び動作と同一である。したがって、これに対する詳細な説明は省略する。
【0045】
第2フリップフロップ320は、第2入力部321、第2ラッチ回路322、第2出力部323、及び第2パルス生成器324を含んでいる。第2パルス生成器324は、入力されるクロック信号CLKよりパルス幅が減少したパルス信号PSを出力する。第2入力部321は、パルス信号PSに応答して第2外部入力信号D2に対する出力信号を、第2ラッチ回路322に伝達する。第2ラッチ回路322は、第2入力部321の出力信号に対応する1ビットのデータ情報を格納する。第2出力部323は、一方の入力端において、第1フリップフロップ310の出力端と接続されている。したがって、第1出力信号Q1は、第1フリップフロップ310から第2出力部323に伝達される。そして、第2出力部323は、他方の入力端において、第2出力信号Q2として第2ラッチ回路322に格納されたデータ情報と第1出力信号Q1とに対する論理演算結果を出力する。
【0046】
第2入力部321と第2ラッチ回路322の構造及び動作は、
図2の第2入力部221と第2ラッチ回路222の構造及び動作と同一である。したがって、これに対する詳細な説明は省略する。
【0047】
第2出力部323は、NANDゲートにより構成されている。したがって、第2出力部323は、第2出力信号Q2として第2ラッチ回路322が保持しているデータ情報と第1出力信号Q1とに対するNAND演算結果を出力する。また、第2出力部323は、第2フリップフロップ320の出力端に接続される負荷を駆動する。そして、第2出力部323は、外部負荷によって影響を受けないように、第2フリップフロップ320の内部インピーダンスを一定に保持する。
【0048】
ここで、
図2及び以下の数式2を参照すれば、第2出力部223のインバータ、負荷ブロック230のインバータ231、及びORゲート233は、1つのNANDゲートから構成することができる。すなわち、NANDゲートは、両方の入力端に各々インバータを接続したORゲートと同一の論理演算を行う。
【0050】
論理回路200では、このように構成されたNANDゲートが、第1フリップフロップ210または第2フリップフロップ220の内部に含まれるように設計することができる。すなわち、第1出力部213または第2出力部223は、NANDゲートで構成することができる。
【0051】
なお、数式2は、ブール代数のDe−Morgan律として知られる。
【0052】
再び
図3を参照すれば、負荷ブロック330は、1つのインバータ331及び1つのNANDゲート332を含む。また、負荷ブロック330は、入力信号として第1出力信号Q1及び第2出力信号Q2が入力されて論理演算を行う。ここで、インバータ331及びNANDゲート332は、数式3による論理演算を行うように組み合わせられる。
【0053】
以下の数式3を参照すれば、第2出力信号Q2に対するNOT演算を行う。該NOT演算結果と第1出力信号Q1に対するNAND演算を行う。該NAND演算結果は負荷ブロック330の出力信号OUTに該当する。
【0055】
図3の負荷ブロック330に示されるように、第1出力信号Q1は、NANDゲート332の一方の入力端に入力される。第2出力信号Q2は、インバータ331を経てNANDゲート332の他方の入力端に入力される。負荷ブロック330は、出力信号OUTとしてNANDゲート332の演算結果を出力する。
【0056】
図2及び
図3を参照すれば、上述のように、NANDゲートは、両方の入力端に各々インバータを接続したORゲートと同一の論理演算を行う。すなわち、
図3の第2出力部323のNANDゲートは、
図2の第2出力部223のインバータ、負荷ブロック230のインバータ231及びORゲート233の組合せと同一である。したがって、
図2の論理回路200及び
図3の論理回路300の論理演算結果は同一である。
【0057】
結局、
図2及び
図3を比較すれば、フリップフロップの出力部をインバータの代わりにNANDゲートにより構成することによって、入力と出力との間の経路にあるインバータ1つを減らすことができる。これにより、論理演算結果に影響を与えることなく、インバータによる一段階(stage)の遅延を減らす効果を得ることができる。
【0058】
もし、インバータによる遅延を減らすためにフリップフロップの出力部に構成されたインバータを単純に除去すれば、出力端に接続される負荷は安定的に駆動することができない。それだけではなく、フリップフロップの内部インピーダンスは、外部負荷により容易に影響を受けて一定の値を保持することができない。したがって、フリップフロップの出力部でインバータを除去せず、フリップフロップの出力部を論理ゲートから構成することが望ましい。
【0059】
図2及び
図3で説明した本発明の実施形態に係るフリップフロップは、例示に過ぎない。本発明の実施形態に係るフリップフロップは、Dフリップフロップ、RSフリップフロップ、JKフリップフロップ、及びTフリップフロップなどに構成することができる。すなわち、フリップフロップの種類に制限はない。そして、同じ種類のフリップフロップでも内部構造は異なるように構成することができる。この時、フリップフロップは、マスト−スレーブ形式で構成することができる。
【0060】
また、フリップフロップの出力部にNANDゲートを含むことは、例示に過ぎない。本発明の実施形態に係るフリップフロップは、出力部に2つ以上の入力端を有するAND、OR、NOR、XOR、及びXNORゲートなどの論理演算ブロックを含むことができる。これは、フリップフロップに論理演算機能を追加することができることを意味する。そして、フリップフロップは、データが伝達されるための複数の入力端を含むことができることを意味する。
【0061】
ここで、同一の論理演算を行っても論理演算ブロックの内部構成が制限されないことはこの分野の通常的な知識を習得した者等に自明である。すなわち、多様な方法でトランジスタを組み合わせて同じ論理演算を行う論理演算ブロックを構成することができる。
【0062】
図4〜
図6は本発明の多様な実施形態に係るフリップフロップの回路図である。
【0063】
図4を参照すれば、フリップフロップ410は、入力部411、ラッチ回路412、出力部413、及びパルス生成器414を含んでいる。パルス生成器414は、入力されるクロック信号CLKよりパルス幅が減少したパルス信号PSを出力する。入力部411は、パルス信号PSに応答して外部入力信号Dに対する出力信号をラッチ回路412に伝達する。ラッチ回路412は、入力部411の出力信号に対応する1ビットのデータ情報を格納する。出力部413は、2つの入力に対するNOR演算を行う論理演算ブロックを含む。したがって、出力部413は、出力信号Qとしてラッチ回路412に格納されたデータ情報と他の外部入力信号D’に対するNOR演算結果を出力する。
【0064】
入力部411とラッチ回路412の構造及び動作は、
図3の第2入力部321と第2ラッチ回路322の構造及び動作と同一である。したがって、これに対する詳細な説明は省略する。
【0065】
図5を参照すれば、フリップフロップ510は、入力部511、ラッチ回路512、出力部513、及びパルス生成器514を含んでいる。パルス生成器514は、入力されるクロック信号CLKよりパルス幅が減少したパルス信号PSを出力する。入力部511は、パルス信号PSに応答して外部入力信号Dに対する出力信号をラッチ回路512に伝達する。ラッチ回路512は、入力部511の出力信号に対応する1ビットのデータ情報を格納する。出力部513は、3つの入力に対するNAND演算を行う論理演算ブロックを含む。したがって、出力部513は、出力信号Qとしてラッチ回路512に格納されたデータ情報と、他の複数の外部入力信号D’およびD”とに対するNAND演算結果を出力する。
【0066】
入力部511とラッチ回路512の構造及び動作は、
図3の第2入力部321と第2ラッチ回路322の構造及び動作と同一である。したがって、これに対する詳細な説明は省略する。
【0067】
図6を参照すれば、フリップフロップ610は、入力部611、ラッチ回路612、出力部613、及びパルス生成器614を含んでいる。パルス生成器614は、入力されるクロック信号CLKよりパルス幅が減少したパルス信号PSを出力する。入力部611は、パルス信号PSに応答して、外部入力信号Dに対する出力信号をラッチ回路612に伝達する。ラッチ回路612は、入力部611の出力信号に対応する1ビットのデータ情報を格納する。出力部613は、3つの入力に対するNOR演算を行う論理演算ブロックを含む。したがって、出力部613は、出力信号Qとしてラッチ回路612に格納されたデータ情報と、他の複数の外部入力信号D’およびD”とに対するNOR演算結果を出力する。
【0068】
入力部611とラッチ回路612の構造及び動作は、
図3の第2入力部321と第2ラッチ回路322の構造及び動作と同一である。したがって、これに対する詳細な説明は省略する。
【0069】
ASICsの設計において、本発明の実施形態に係るフリップフロップは、格納機能を提供するスタンダードセル(standard cell)として構成されることができる。
【0070】
本発明の範囲または技術的思想を逸脱せず、本発明の構造を多様に修正、または変更することができることはこの分野に熟練された者等に自明である。上述の内容を考慮し、本発明の修正及び変更による結果物も、下記の請求項及びその同等物の範疇内に属するものと見なされる。