JP2009246629A - 半導体集積回路 - Google Patents

半導体集積回路 Download PDF

Info

Publication number
JP2009246629A
JP2009246629A JP2008089735A JP2008089735A JP2009246629A JP 2009246629 A JP2009246629 A JP 2009246629A JP 2008089735 A JP2008089735 A JP 2008089735A JP 2008089735 A JP2008089735 A JP 2008089735A JP 2009246629 A JP2009246629 A JP 2009246629A
Authority
JP
Japan
Prior art keywords
circuit
input
flop
output
flip
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2008089735A
Other languages
English (en)
Other versions
JP5139132B2 (ja
Inventor
Shinichi Yasuda
心一 安田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2008089735A priority Critical patent/JP5139132B2/ja
Priority to US12/367,379 priority patent/US7795920B2/en
Publication of JP2009246629A publication Critical patent/JP2009246629A/ja
Application granted granted Critical
Publication of JP5139132B2 publication Critical patent/JP5139132B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】データの修正を小さい回路規模で実行できる半導体集積回路を提供する。
【解決手段】入力されたデータをクロックに応じて保持し出力するフリップフロップであって、前記データが入力される入力端に最も近く且つクロックに応じて動作する論理ゲートよりも入力側のノードに入力が接続され、前記論理ゲートよりも出力側のノードに出力が接続され、イネーブル信号によって高インピーダンス状態から信号が伝達される状態に遷移するバッファ回路を有するフリップフロップを備えたことを特徴とする半導体集積回路が提供される。
【選択図】図1

Description

本発明は、半導体集積回路に関し、より詳細には、タイミングエラーを検出可能な半導体集積回路に関する。
半導体集積回路の集積度が上がり、集積回路を構成する半導体素子のサイズが小さくなるにつれて、素子の製造ばらつきが大きくなる。ばらつきが大きくなると、ある確率で動作の遅い回路ブロックが存在することになり、クロック周波数に対して回路の動作が間に合わずタイミングエラーを起こすという問題がある。これを避けるためにクロック周波数を落とせば、要求される動作速度を満たすことが困難になる。また、集積度が上がるにつれて、クロックをチップ上の複数の回路へ等しい遅延で配線することが難しくなり、電源電圧にもノイズが混入しやすくなる。その結果として、少しのばらつきでタイミングエラーを起こす回路が増え、歩留まりが低下するという問題がある。
従来、タイミングエラーやソフトエラーを回避する技術として、クロック信号に応じてデータを保持するフリップフロップ回路において、特許文献1に記載されているような方法が知られている。これは、パイプライン上のフリップフロップと並列に、別のラッチ回路を設け、システムクロックから少し遅れたクロックでこれを使用して、両方が保持しているデータの内容をくらべ、違う場合にエラーがあったと判断してデータの修正を行うものである。
しかし、この方法では、ラッチ回路がもうひとつ必要とされ、さらに、データを比較するための比較回路や、データを修正するための修正回路なども必要とされるために、回路規模が大きくなるという問題がある。
米国特許出願公開第2004/0199821号明細書
本発明は、データの修正を小さい回路規模で実行できる半導体集積回路を提供する。
本発明の一態様によれば、入力されたデータをクロックに応じて保持し出力するフリップフロップであって、前記データが入力される入力端に最も近く且つクロックに応じて動作する論理ゲートよりも入力側のノードに入力が接続され、前記論理ゲートよりも出力側のノードに出力が接続され、イネーブル信号によって高インピーダンス状態から信号が伝達される状態に遷移するバッファ回路を有するフリップフロップを備えたことを特徴とする半導体集積回路が提供される。
本発明によれば、データの修正を小さい回路規模で実行できる半導体集積回路が提供される。
本発明の実施の形態によれば、半導体集積回路に設けるフリップフロップ回路に、外部から供給されるイネーブル信号で制御されるバッファ回路を付加する。ばらつきによりタイミングを満たせない回路が存在した場合には、イネーブル信号を供給することで、フリップフロップ回路でデータの修復を行い、製造後でも動作速度を要求に合うように修正する。これにより、チップ歩留まりが向上する。
以下、図面を参照しつつ、本発明の実施の形態について詳細に説明する。なお、各図において、既出の図面に表したものと同様の要素には同一の符号を付して詳細な説明は適宜省略する。
図1は、本発明の実施の形態に係る半導体装置に設けられる訂正機能付きフリップフロップ300を表すブロック図である。
図1に表した訂正機能付きフリップフロップ300は、マスターラッチ(第1のラッチ回路)302とスレーブラッチ(第2のラッチ回路)304とからなるD型フリップフロップを有する。そして、マスターラッチ302と並列にバッファ回路306が接続されている。バッファ回路306は、イネーブル信号40によって動作する。なお、図1には、立ち上がりエッジで動作するD型フリップフロップ構成を例示し、以下の説明もこれに沿って進めるが、立ち下がりエッジで動作するD型フリップフロップも同様に用いることができる。
バッファ回路306は、イネーブル信号40によって、高インピーダンス状態と、信号が通る状態と、の間で切り替わる回路である。すなわち、バッファ回路306は、イネーブル信号40によって、マスターラッチ302をバイパスし入力20をノードAに伝送する。
図2は、バッファ回路306の具体例を表す模式図である。
バッファ回路306としては、例えば、図2(a)に表したように、スリーステートバッファ回路を用いることができる。すなわち、図(a)に表したバッファ回路306は、NAND362、インバータ364、NOR366、PMOSトランジスタ368、NMOSトランジスタ370を有する。入力20とイネーブル信号40はNAND362にそれぞれ入力され、NAND362の出力がPMOSトランジスタ368のゲートを制御する。一方、イネーブル信号40の反転信号と入力20とがNOR366に入力され、NOR366の出力がNMOSトランジスタ370のゲートを制御する。PMOSトランジスタ368とNMOSトランジスタ370は、電源VDDとグランドとの間にこの順に直列接続され、その接続中点からノードAに信号が出力される。
図2(a)に表したスリーステートバッファ構成によれば、イネーブル信号40がロー(Low)の時には、出力Aは高インピーダンス状態となり、イネーブル信号40がハイ(High)の時には、出力Aは入力20と同一のレベルに遷移する。
図2(b)は、バッファ回路306の第2の具体例を表す模式図である。
本具体例は、インバータ回路とスリーステートインバータ回路との組み合わせである。
すなわち、入力20はインバータ372を介してPMOSトランジスタ376とNMOSトランジスタ382のゲートを制御する。一方、イネーブル信号40はインバータ374を介してPMOSトランジスタ378のゲートを制御する。また、イネーブル信号40はそのままNMOSトランジスタ380のゲートを制御する。
PMOSトランジスタ376、PMOSトランジスタ378、NMOSトランジスタ380、NMOSトランジスタ382は、電源VDDとグランドとの間にこの順に直列接続されている。そして、PMOSトランジスタ378とNMOSトランジスタ380との接続中点からノードAに信号が出力される。
図2(b)に表した回路においても、イネーブル信号40がロー(Low)の時には、出力Aは高インピーダンス状態となり、イネーブル信号40がハイ(High)の時には、出力Aは入力20と同一のレベルに遷移する。
図2(c)は、バッファ回路306の第3の具体例を表す模式図である。
本具体例は、トランスミッションゲート構成である。
すなわち、PMOSトランジスタ386とNMOSトランジスタ388とが、入力20とノードAとの間に並列に接続されている。そして、イネーブル信号40の反転信号がPMOSトランジスタ386を制御し、一方イネーブル信号40がそのままNMOSトランジスタ388のゲートを制御する。
図2(c)に表した回路においても、イネーブル信号40がロー(Low)の時には、出力Aは高インピーダンス状態となり、イネーブル信号40がハイ(High)の時には、出力Aは入力20と同一のレベルに遷移する。
図2(d)は、バッファ回路306の第4の具体例を表す模式図である。
本具体例においては、入力20とノードAとの間にPMOSトランジスタ390を設け、このゲートをイネーブル信号40の反転信号によって制御する。
図2(e)は、バッファ回路306の第5の具体例を表す模式図である。
本具体例においては、入力20とノードAとの間にNMOSトランジスタ392を設け、このゲートをイネーブル信号40によって制御する。
これらいずれの具体例においても、イネーブル信号40がロー(Low)の時には、出力Aは高インピーダンス状態となり、イネーブル信号40がハイ(High)の時には、出力Aは入力20と同一のレベルに遷移する。
再び、図1に戻って説明を続ける。
バッファ回路306は、前述したように、イネーブル信号40がハイ(High)の時にアクティブになり、ロー(Low)のときに高インピーダンス状態になる。図1に表した訂正機能付きフリップフロップ300の動作は、以下の如くである。
まず、クロック10の立ち上がり後に正しいデータが入力20に到達した場合、イネーブル信号40をハイ(High)にして、データをスレーブラッチ304の入力へ渡した後、イネーブル信号40をロー(Low)にする。
ここで、イネーブル信号40は、正しいデータがクロック10より遅れて入力20に到着したことをトリガーとして発生してもよいし、または、クロック10に同期させて、クロック10の立ち上がり後の所定の期間に常にイネーブル信号40を送る方法でもよい。正しいデータがクロック10より遅れて入力20に到着したかどうかを判断する方法としては、例えばフリップフロップの入力と出力をモニタリングする方法がある。
図3は、図1に表した訂正機能付きフリップフロップ300の動作を例示するタイミングチャートである。
ここでは、イネーブル信号40は、クロック10の立ち上がり後の所定の期間だけ、常にハイ(High)になる場合について表した。
入力信号20Aがクロック10Aよりも先に到着した場合は、クロック10Aの立ち上がりと同時に、入力信号20Aのデータがラッチされて出力信号50がハイ(High)に立ち上がる。その後、イネーブル信号40が立ち下がった後に次のデータに変化するように設計すれば、通常のフリップフロップと同様の動作となる。すなわち、クロック10Aで立ち上がった出力50そのまま維持される。そして、次のクロック10Bの立ち上がりの際には、入力20はロー(Low)に遷移しているので、出力50もロー(Low)に遷移する。
ここで、半導体集積回路上のそれぞれの回路が正しく製造され、全ての場合にデータ(入力20)がクロック10の前に到着する場合には、イネーブル信号40を使用する必要はない。しかし、そうではなく、入力信号20Bのように、ばらつき等によりデータがクロック10Cより後に到着してしまう場合のある回路では、イネーブル信号40を供給して、データの修復を行う。このようなタイミングエラーが起きた時、イネーブル信号40がハイ(High)であれば、出力50には若干遅れたタイミングで正しいデータが出力される。
すなわち、クロック10Cが立ち上がった時点では、入力20はまだデータが到着しておらずロー(Low)のままであるので、出力50は立ち上がらずロー(Low)のままである。その後、データ20Bが遅れて到着した時に、イネーブル信号40がハイ(High)であるので、データ20Bの立ち上がりに対応して出力50もハイ(High)に立ち上がる。その後、イネーブル信号40は立ち下がるが、出力50はハイ(High)にラッチされたままである。そして、その次のクロック10Dが立ち上がったとき、入力はロー(Low)に遷移しているので、出力50もロー(Low)に遷移する。
このように、データ20Bがクロック10Aよりも遅れて到着した場合でも、イネーブル信号40によりそのデータを反映させ、修復することが可能となる。
ここで、遅れてきたデータ20Bを出力する際に、そのタイミングがクロックよりも若干遅れるため、次段でのタイミングについても配慮することが望ましいが、次段にかかる遅延時間が相対的に短ければ、タイミングは吸収できる。もし、次段でもタイミングエラーが起きる場合は、その次のフリップフロップでも本実施形態と同様の対策を行うことでデータを修復できる。あるいは、次段のロジックの遅延時間を予め短くしておくことによっても対応できる。
図4は、本発明の実施の形態に係る半導体装置に設けられる訂正機能付きフリップフロップ300の第2の具体例を表すブロック図である。
本具体例の訂正機能付きフリップフロップ300も、マスターラッチ302とスレーブラッチ304とからなるD型フリップフロップを有する。そして、バッファ回路306の出力をスレーブラッチ304の入力ではなく、マスターラッチ302の内部ノードである、スリーステートインバータの出力へ接続する。なお、本具体例においては、バッファ回路306にはスリーステートインバータを用いているが、同様の機能を持ち、論理が反転する回路であれば、これには限らない。これにより、バッファ回路306のトランジスタ数を減らすことができ、回路面積が小型になる。
また、ここでは、クロック10、入力20、出力50だけの、最も機能の少ないD型フリップフロップを例示したが、セットやリセット端子付や、より機能の多いフリップフロップも同様に用いることができる。また、バッファ回路306のスリーステートインバータを構成するトランジスタの幅を小さくすることで、訂正機能付きフリップフロップ300の入力20に接続されるロジック回路が駆動するゲート容量が減り、ロジック回路の動作速度を損ねない。また、バッファ回路306のトランジスタの幅は、マスターラッチ302内のフィードバックループに使われているスリーステートインバータを構成するトランジスタの幅と同等かそれより大きくすることで、フリップフロップ内の修正動作を速く行うことができる。バッファ回路306のトランジスタの幅は、上述したようなトレードオフを考慮して決定すればよい。
図5は、訂正機能付きフリップフロップ300の第3の具体例を表す模式図である。
本具体例の訂正機能付きフリップフロップ300は、マスターラッチ302とスレーブラッチ304とからなるD型フリップフロップを有する。そして、マスターラッチ302の入力のスリーステートインバータを、インバータ302Aとトランスミッションゲート302Bとに分け、トランスミッションゲート302Bの前後にバッファ回路306が接続されている。
本具体例においても、イネーブル信号40がハイ(High)になると、クロック10より遅れてきた演算出力20が内部に取り込まれ、エラーの修正ができる。また、本具体例においては、バッファ回路306としてトランスミッションゲートを用いているが、同様の機能を持ち、論理が反転しないものであれば、これに限らない。これにより、バッファ回路306のトランジスタ数を減らすことができ、回路面積が小型になる。また、訂正機能付きフリップフロップ300の入力端とバッファ回路306とが切り離されるため、訂正機能付きフリップフロップ300の入力端に接続するロジック回路の設計においてバッファ回路306のことを考慮する必要がない。
本具体例も、より機能を多数もつフリップフロップに対しても同様のことが可能である。すなわち、本具体例では、クロック10、入力20、出力50だけの、最も機能の少ないD型フリップフロップを例示したが、セットやリセット端子付や、より機能の多いフリップフロップも同様に用いることができる。
また、本具体例においては、バッファ回路306のトランスミッションゲートを構成するトランジスタの幅を小さくすることで、ソースドレインの容量を減らすことができる。
第1〜第3具体例に関して説明したように、訂正機能付きフリップフロップ300の動作を構成するトランジスタの組み合わせは多数あり、これらに限定するものではない。また、前述した具体例とは異なる構成のフリップフロップに対しても同様にバッファ回路306を用いることで、必要な時にデータを修正することが可能である。すなわち、ロジック回路から出力されるデータの入力端から近い位置にあり、クロック10に応じて動作する論理ゲートに対して、その論理ゲートより前のノードを入力に共通に持ち、その論理ゲートより後のノードを共通に出力に持つようにバッファ回路を接続し、イネーブル信号40によって動作状態か高インピーダンス状態かを選択できるようにすることで、データの修正を可能とすることができる。
図6は、訂正機能付きフリップフロップ300の第4の具体例を表す模式図である。
本具体例は、エッジトリガ型フリップフロップをNANDゲートで実現した回路を設け、さらにその入力20とノードBとの間にバッファ回路306を接続した構成を有する。本具体例においても、クロック10の立ち上がりエッジにおいて、入力20のデータをラッチしそのデータを出力50に出力する。そして、イネーブル信号40がハイ(High)になると、クロック10より遅れてきた演算出力20が内部に取り込まれ、エラーの修正ができる。
本具体例においては、バッファ回路306としてスリーステートインバータを用いているが、同様の機能を持ち、論理が反転するものであれば、これには限定されない。バッファ回路306を構成するスリーステートインバータのトランジスタの幅をNANDゲートのそれに比べて大きくすることで、安定かつ高速動作が可能となる。
バッファ回路306を構成するスリーステートインバータのトランジスタサイズが大きくなると、入力20に接続されるロジック回路の負担が大きくなることもあり得る。これにより、ロジック回路の動作が遅くなることがあれば、入力20からバッファ回路306までの間に、図示しないバッファを挿入することで回避できる。
本具体例のように、異なるタイプのフリップフロップ回路においても、入力20から最も近い位置にある、クロック10に応じて動作する論理ゲートに対して、その論理ゲートより前のノードを入力に共通に持ち、その論理ゲートより後のノードを共通に出力に持つようにバッファ回路306を接続し、イネーブル信号40によって動作状態か高インピーダンス状態かを選択できるようにすることで、データの修正が可能なフリップフロップを実現することが可能である。
以上、第1〜第4の具体例に係る訂正機能付きフリップフロップ300について説明した。次に、このような訂正機能付きフリップフロップ300に出力するイネーブル信号40の生成方法について、具体例を参照しつつ説明する。
図7は、本発明の実施の形態に係る半導体集積回路の要部を表したブロック図である。 また、図8は、本実施形態の半導体集積回路の動作の一例を表したタイミングチャートである。
本実施形態の半導体集積回路は、フリップフロップ100と、組み合わせロジック回路200と、訂正機能付きフリップフロップ300と、信号遷移検出回路400と、イネーブル信号生成回路500と、を備えている。組み合わせロジック回路200は、複数の論理回路200−1、200−2・・・200−Nを組み合わせて、任意の論理を実現する回路である。これら論理回路200−1、200−2・・・200−Nのそれぞれは、ひとつのトランジスタからなるものでもよく、ひとつのロジックゲートからなるものでもよく、複数のロジックゲートからなるものでもよい。
フリップフロップ100の出力が組み合わせロジック回路200に入力され、組み合わせロジック回路200における演算の結果を含む演算出力20が、訂正機能付きフリップフロップ300に入力される。そして、組み合わせロジック回路200の最終段を含む論理回路200−Nに、信号遷移検出回路400が接続されている。
信号遷移検出回路400は、論理回路200−Nが動作しているかどうかを検出する。その検出方法としては、例えばドミノ回路を用いる方法や、後に詳述するように、論理回路200−Nを流れる電流を検出する方法がある。信号遷移検出回路400は、論理回路200−Nが動作している場合、すなわち信号遷移が計測されている間は、それを示す検出信号30をイネーブル信号生成回路500に出力する。
イネーブル信号生成回路500は、クロック10の立ち上がり、すなわちクロックエッジから、信号遷移検出回路400の検出信号30が消えるまでの時間に応じたパルス幅を有するイネーブル信号40を生成し、訂正機能付きフリップフロップ300のイネーブル端子(Enable)に出力する。訂正機能付きフリップフロップ300は、図1〜図6に関して前述した構成を有し、イネーブル信号40がオン(ハイレベル)になっている間、訂正機能を動作させる。
本実施形態においては、訂正機能付きフリップフロップ300の入力直前の論理回路200−Nの動作によって、信号遷移検出回路400から信号遷移に応じた検出信号30が生成される。イネーブル信号生成回路500では、クロック10が立ち上がったときに信号遷移検出回路400から検出信号30が出ている場合に、それに同期させる形でイネーブル信号40を出力する。イネーブル信号生成回路出力500から出力されるイネーブル信号40に基づいて、訂正機能付きフリップフロップ300においてエラーの修正動作が行われ、訂正機能付きフリップフロップ300の出力50をクロックタイミングより遅れて到着したデータに修正する。
図8に表した具体例について説明すると、以下の如くである。
フリップフロップ100は、クロック10に基づいて組み合わせロジック回路200に所定の入力信号を与える。組み合わせロジック回路200は、その入力信号に基づいて所定の演算を実行し、演算出力20を訂正機能付きフリップフロップ300に出力する。この時、組み合わせロジック回路200から出力される出力信号20には、遅延22が生ずることがある。
ここで、最終段の論理回路200−Nが論理演算を開始し、演算出力20を訂正機能付きフリップフロップ300に出力した後に至る期間は、例えば論理回路200−Nにおいて所定の動作電流が流れる。信号遷移検出回路400は、論理回路200−Nにおける電流の流れを検出することにより、論理回路200−Nが動作している間だけ、ハイレベルの検出信号30を出力する。つまり、組み合わせロジック回路200から正しい演算出力20が出力されるタイミングを含めてその前後の期間に、ハイレベルの検出信号30を出力する。
イネーブル信号生成回路500は、ハイレベルの検出信号30を入力し、且つ検出信号30とクロック10がハイレベルの間、ハイレベルのイネーブル信号40を出力する。なお、検出信号30とイネーブル信号40との間に多少の遅延が生じる場合があり、図8に表したように検出信号30とイネーブル信号40との間の立ち下りエッジのずれが現れることがある。
訂正機能付きフリップフロップ300は、ハイレベルのイネーブル信号40を入力すると、組み合わせロジック回路200から正しい演算出力20が送られるのを待つ。そして、組み合わせロジック回路200から演算出力20が出力されると、それに基づいて出力50を反転させる。その後、イネーブル信号40はローレベルに反転するが、訂正機能付きフリップフロップ300は次のクロックエッジ10Sまで出力50を維持する。そして、図8に表した具体例においては、次のクロックエッジ10Sにおいて演算出力20はハイレベルでないので、訂正機能付きフリップフロップ300の出力50はローレベルに遷移する。
以上説明したように、本実施形態によれば、組み合わせロジック回路200の最終段を含む論理回路200−Nの動作を、信号遷移検出回路400により検出し、正しい演算出力20が出力されるタイミングの前後の期間に、訂正機能付きフリップフロップ300にイネーブル信号40を送る。訂正機能付きフリップフロップ300は、イネーブル信号40に基づいて正しい演算出力20を待ち、演算出力20が来ると出力50を反転させる。さらに、その後イネーブル信号40がローレベルに遷移した後も、次のクロックエッジまで出力50を維持する。
このようにすれば、演算出力20がクロック10からみて遅延した場合でも、正しい演算出力20が出力されるタイミングが分かる。そして、そのタイミングに入力した正しい演算出力20を反映させた出力50を得ることができる。
なお、本具体例において、訂正機能付きフリップフロップ300における訂正機能を、少し遅れたクロック10により実現する場合は、イネーブル信号40が消える(ローレベルになる)タイミングで、少し遅れたクロック10を立ち上げればよい。また、訂正機能付きフリップフロップ300の訂正機能が、クロックに同期して動作する場合には、イネーブル信号生成回路500でクロック10を使ってイネーブル信号40を生成しなくても、訂正機能付きフリップフロップ300において自動的にクロックが立ち上がってからエラー修復(訂正機能)が始まることになる。従って、この場合には、イネーブル信号生成回路500へのクロック10の入力は省略できる。
なお、図8に表した具体例においては、それぞれの信号はハイ(High)の状態でアクティブとしており、また、訂正機能付きフリップフロップ300は立ち上がりエッジで動作するとしているが、本発明はこの具体例には限定されない。すなわち、一部または全部が負論理動作であっても、同様の動作を実現することは可能である。なお、実際には、信号遷移検出回路400が電流計測回路の場合、検出信号30はアナログ信号であるが、図8においてはタイミングの説明のため便宜的に矩形波として表した。
図9は、組み合わせロジック回路200、信号遷移検出回路400、イネーブル信号生成回路500の具体例を表す模式図である。
すなわち、図9は、組み合わせロジック回路200を、連続したCMOS(Complementary Metal-Oxide-Semiconductor)インバータ202により形成した具体例を表す。ここで、図9に表したものは、組み合わせロジック回路200の最終段の部分であり、組み合わせロジック回路200は、図示しない回路部分を有していてもよい。また、図9では、組み合わせロジック回路200を直列のインバータ202としているが、もちろんそれ以外の任意の回路にも本発明は適用可能である。
本具体例においては、組み合わせロジック回路200の最終段を含む4段のCMOSインバータ202のグランド端子と、グランドと、の間に、信号遷移検出回路400が挿入されている。信号遷移検出回路400は、ドレインとゲートとが短絡、すなわちダイオード接続されたNMOSトランジスタ402である。組み合わせロジック回路200が動作して、CMOSインバータ202からグランドに電流が流れると、信号遷移検出回路400のNMOSトランジスタ402のゲート電極403に電圧が発生する。すなわち、信号遷移検出回路400は、電流を電圧に変換する。この電圧を、検出信号30として出力する。
一方、イネーブル信号生成回路500は、CMOSインバータ502と、その出力に接続されたインバータ504と、CMOSインバータ502とグランドとの間に接続されたトランジスタ506と、を有する。信号遷移検出回路400からの検出信号30をCMOSインバータ502で受け、クロック10がハイレベルになるとトランジスタ506がオンになるので、インバータ504を介して増幅してイネーブル信号40を出力する。すなわち、検出信号30とクロック10とのアンドに基づいてイネーブル信号40を立ち上げる。
ここで、本具体例においては、信号遷移検出回路400は、組み合わせロジック回路200の動作電流を検出する。この場合、電流の検出は、組み合わせロジック回路200を構成する全ての論理回路(CMOSインバータ202)について実行するよりも、最終段の論理回路(CMOSインバータ202)からみて1つまたは数個の論理回路に対して行う。例えば、最終段からみて、組み合わせロジック回路200の全体のロジックゲートの段数の10パーセント程度の段数のロジックゲートに対して動作電流の検出を実行する。少なくとも、訂正機能付きフリップフロップ300に直接接続される最終段のロジックゲートに対しては電流計測を行う。CMOSインバータ502はクロック10が立ち上がった時のみ動作するように、クロック10をうけるNMOSトランジスタ506が挿入されている。
なお、本具体例においては、信号遷移検出回路400による電流計測を、組み合わせロジック回路200からグランドに流れる電流により実行しているが、同様に、電源から組み合わせロジック回路200に流れる電流を計測することもできるし、両者を組み合わせることもできる。電源から組み合わせロジック回路200に流れる電流を計測する場合には、PMOSトランジスタを使うことができる。
また、信号遷移検出回路400に設ける電流計測回路としては、電流が流れた時に電圧が発生するようにすれば良い。従って、図9に例示したようなダイオード接続されたトランジスタの他にも、ポリシリコンや基板などで作る抵抗素子や、ゲート電圧や基板電圧を他の電源から調整したトランジスタなども使用可能である。
信号遷移検出回路400における電流計測に用いるNMOSトランジスタやPMOSトランジスタの幅は、それらが接続される、組み合わせロジック回路200の共通化されているNMOSトランジスタやPMOSトランジスタの幅の合計値と同じか、それよりも大きくすることが望ましい。このようにすれば、組み合わせロジック回路200の動作へのオーバーヘッドを減らすことができる。
また、イネーブル信号生成回路500の入力回路としては、PMOSトランジスタとNMOSトランジスタの相補型CMOSインバータ502の他にも、組み合わせロジック回路200からグランドへの電流を用いる場合にはNMOSトランジスタと抵抗とを用いることができ、電源から組み合わせロジック回路200への電流を用いる場合にはPMOSトランジスタと抵抗とを用いることもできる。いずれの場合にも、信号遷移検出回路400から出力される電圧値の変化が、イネーブル信号生成回路500の入力回路のゲインが得られる動作可能入力電圧範囲をカバーするようにすればよい。
一方、イネーブル信号生成回路500に入力するクロック10に関しては、電源とPMOSトランジスタの間にPMOSトランジスタを挿入し、そのゲートにクロック10の反転信号を入力してもよい。
また、図9に表した具体例は、訂正機能付きフリップフロップ300が立ち上がりエッジ動作である場合に対応するので、クロック信号をNMOSトランジスタに入力している。これに対して、訂正機能付きフリップフロップ300が立ち下がりエッジ動作である場合には、クロック10の反転信号をNMOSトランジスタに入力するか、電源とCMOSインバータ502との間にPMOSトランジスタを挿入してクロック10をそのPMOSトランジスタに入力するなどの方法がある。
本実施例では、次のクロックサイクルに取り込まれるべきデータは、クロック10がハイ(High)の間には到着しないように、ロジック回路を設計する。もしくは、信号遷移検出回路400において電流計測を行う対象となる組み合わせロジック回路200のゲート数を調整する。
図10は、イネーブル信号40の生成方法の他の具体例を表す模式図である。
本具体例においては、組み合わせロジック回路200の最終出力端と訂正機能付きフリップフロップ300との間にインバータ450を挿入し、そのインバータ450の動作を信号遷移検出回路400でモニタする。すなわち、組み合わせロジック回路200の出力端に接続された複数のインバータ450の間のノードと最終段の出力端とから、信号遷移検出回路400に信号をそれぞれ分岐させる。
図11は、図10の具体例において用いることができる信号遷移検出回路400とイネーブル信号生成回路500の具体例を表す模式図である。
分岐された信号は、それぞれ信号遷移検出回路400に設けられたCMOSインバータ404に入力される。CMOSインバータ404の出力は共通にNMOSトランジスタ406において電圧変換され、検出信号30としてイネーブル信号生成回路500に出力される。
図9に関して前述した具体例の回路では、組み合わせロジック回路200に使われる電圧は、信号遷移検出回路400が無い場合に比べて実効的に減少するため、組み合わせロジック回路200の動作が若干遅くなる。これに対して、本具体例においては、組み合わせロジック回路200の動作電流を直接測定する代わりに、組み合わせロジック回路200中のいくつかのノードから信号を分岐させ、分岐先の回路(CMOSインバータ404)を流れる電流を測定するようにしている。こうすることで、組み合わせロジック回路200の動作速度へのオーバーヘッドを減らすことができる。
ここで、組み合わせロジック回路200における信号の分岐は、全てのノードで行うよりも、最終段の論理ゲート204からみて1つまたは少数のノードに対して行うことが望ましい。例えは、組み合わせロジック回路200の全ノード数の10パーセント程度のノードに対して分岐して信号を取り出せばよい。少なくとも、演算出力20が出力されるノードについては、信号を信号遷移検出回路400に分岐させることが望ましい。
信号の分岐先の信号遷移検出回路400は、電流が測定できれば良いので、トランジスタサイズなどは小さくてよい。そのため、分岐させることによる実行速度の低下は最小に抑えられる。
なお、信号遷移検出回路400は、図11においては、CMOSインバータ404を有するが、これも任意の回路が適用できる。それぞれのノードから分岐された信号を受ける回路はそれぞれ別である必要もなく、複合ゲートのように複数のノードがまとめられた回路を信号遷移検出回路400に設けてもよい。また、分岐の数も4つには限らない。この具体例においても、次のクロックサイクルに取り込まれるべきデータは、クロックがハイ(High)の間には到着しないように、ロジック回路を設計する。もしくは分岐させるノードを調整する。
図10に表した具体例において、挿入するインバータ450の数は、偶数にする。このような構成にすると、組み合わせロジック回路200の部分を変更する必要がなく、新たに回路を追加することで、信号遷移を検出することができる。
また、本具体例は、追加したインバータ450と訂正機能付きフリップフロップ300を一体としてみたときには、入力に少し回路が追加された訂正機能付きフリップフロップ300と考えることもできる。フリップフロップとしては、セットアップ時間がやや長くなってしまうことになるが、このようなタイミングエラーを検出する回路を予め備えた訂正機能付きフリップフロップ300を別に設計しておけば、使用するフリップフロップを交換することで本具体例を実現することでき、ロジック回路を変更する必要がない点で有利である。
ところで、訂正機能付きフリップフロップ300によって組み合わせロジック回路200からの演算出力20のタイミングエラーを修復すると、クロックタイミングから遅れて正しいデータが次段に送られるため、次の演算に使える時間が短くなることになる。演算の種類やデータの組み合わせによっては、それでも十分間に合うこともあり得るが、より信頼性を高くするために、エラー修復が行われた場合はクロックタイミングをずらすということが可能である。
図12は、これを実現するためのクロック生成回路の具体例を表す模式図である。
ここでは最も単純に、奇数個のインバータ702を用いたリング発振器をクロック生成回路とした具体例を表した。リング発振器のNMOSトランジスタとグランドの間に電源制御用トランジスタとしてNMOSトランジスタ704を挿入し、このNMOSトランジスタ704のゲートをイネーブル信号40の反転信号に接続している。イネーブル信号40が立ち上がっていない場合は、電源制御トランジスタ704は全てオン(ON)しているので、リング発振器は発振動作を行う。イネーブル信号40が立ち上がった場合、電源制御トランジスタ704がオフ(OFF)になるので、リング発振器に電源が供給されなくなり、イネーブル信号40が立ち上がっている間、リング発振器の動作が止まる。その後、イネーブル信号40が解除されると、再びリング発振を開始することになる。イネーブル信号40が立ち上がっている時間は短いので、このときリング発振器の内部ノードの状態は、トランジスタや配線のキャパシタンスによって保持され、イネーブル信号40が解除された時、再び前の状態から発振を開始することになる。すなわち、クロックタイミングをイネーブル信号40の時間だけ遅らせることが可能になる。
このような動作は、インバータ702のPMOSトランジスタと電源電圧との間に図示しないPMOSトランジスタを挿入して、イネーブル信号40と同相の信号を入力しても実現可能であり、この回路と図12に表した回路とを組み合わせてもよい。また、このように電源電圧を遮断する方法は、このインバータのリング発振器の例だけでなく、もっと複雑なVCOやPLLを用いたクロック生成回路でも、電源を使用している限り、もちろん同様に適用できる。
以上説明したように、本実施形態によれば、タイミングエラーが起きた時の修正動作を、確実に行うことが可能になり、回路システムの信頼性を向上させることができる。
以上、具体例を参照しつつ、本発明の実施の形態について説明した。しかし、本発明は、これらの具体例に限定されるものではない。例えば、半導体集積回路を構成する各要素の具体的な構成に関しては、当業者が公知の範囲から適宜選択することにより本発明を同様に実施し、同様の効果を得ることができる限り、本発明の範囲に包含される。
また、各具体例のいずれか2つ以上の要素を技術的に可能な範囲で組み合わせたものも、本発明の要旨を包含する限り本発明の範囲に含まれる。
その他、本発明の実施の形態として上述した半導体集積回路を基にして、当業者が適宜設計変更して実施し得る全ての半導体集積回路も、本発明の要旨を包含する限り、本発明の範囲に属する。
その他、本発明の思想の範疇において、当業者であれば、各種の変更例及び修正例に想到し得るものであり、それら変更例及び修正例についても本発明の範囲に属するものと了解される。
本発明の実施の形態に係る半導体装置に設けられる訂正機能付きフリップフロップ300を表すブロック図である。 バッファ回路306の具体例を表す模式図である。 図1に表した訂正機能付きフリップフロップ300の動作を例示するタイミングチャートである。 本発明の実施の形態に係る半導体装置に設けられる訂正機能付きフリップフロップ300の第2の具体例を表すブロック図である。 訂正機能付きフリップフロップ300の第3の具体例を表す模式図である。 訂正機能付きフリップフロップ300の第4の具体例を表す模式図である。 本発明の実施の形態に係る半導体集積回路の要部を表したブロック図である。 本実施形態の半導体集積回路の動作の一例を表したタイミングチャートである。 組み合わせロジック回路200、信号遷移検出回路400、イネーブル信号生成回路500の具体例を表す模式図である。 イネーブル信号40の生成方法の他の具体例を表す模式図である。 図10の具体例において用いることができる信号遷移検出回路400とイネーブル信号生成回路500の具体例を表す模式図である。 図12は、これを実現するためのクロック生成回路の具体例を表す模式図である。
符号の説明
10 クロック
10A クロック
10B クロック
10C クロック
10D クロック
10S クロックエッジ
20 入力(出力信号、演算出力)
20A 入力信号
20B データ
20B 入力信号
22 遅延
30 検出信号
40 イネーブル信号
50 出力(出力信号 )
100 フリップフロップ
200 組み合わせ論理回路(ロジック回路)
202 インバータ
204 論理ゲート
300 フリップフロップ
302 マスターラッチ
302A インバータ
302B トランスミッションゲート
304 スレーブラッチ
306 バッファ回路
364 インバータ
368 トランジスタ
370 トランジスタ
372 インバータ
374 インバータ
376〜392 トランジスタ
400 信号遷移検出回路
402 インバータ
403 ゲート電極
404 インバータ
406 インバータ
450 インバータ
500 イネーブル信号生成回路
502 インバータ
504 インバータ
506 トランジスタ
702 インバータ
704 電源制御トランジスタ

Claims (8)

  1. 入力されたデータをクロックに応じて保持し出力するフリップフロップであって、
    前記データが入力される入力端に最も近く且つクロックに応じて動作する論理ゲートよりも入力側のノードに入力が接続され、前記論理ゲートよりも出力側のノードに出力が接続され、イネーブル信号によって高インピーダンス状態から信号が伝達される状態に遷移するバッファ回路を有するフリップフロップを備えたことを特徴とする半導体集積回路。
  2. 前記フリップフロップは、入力に接続された第1のラッチ回路と、前記第1のラッチ回路と出力との間に接続された第2のラッチ回路と、を有し、
    前記バッファ回路の前記入力は、前記第1のラッチ回路の入力側に接続され、
    前記バッファ回路の前記出力は、前記第1のラッチ回路と前記第2のラッチ回路との間に接続されたことを特徴とする請求項1記載の半導体集積回路。
  3. 前記フリップフロップは、入力に接続された第1のラッチ回路と、前記第1のラッチ回路と出力との間に接続された第2のラッチ回路と、を有し、
    前記第1のラッチ回路は、クロックに応じて動作する複数の論理ゲートを有し、
    前記バッファ回路の前記入力は、前記第1のラッチ回路の入力に接続され、
    前記バッファ回路の前記出力は、前記複数の論理ゲートのうちの入力端に最も近い論理ゲートの出力側に接続されたことを特徴とする請求項1記載の半導体集積回路。
  4. 前記フリップフロップは、入力に接続された第1のラッチ回路と、前記第1のラッチ回路と出力との間に接続された第2のラッチ回路と、を有し、
    前記第1のラッチ回路は、インバータと、前記インバータの出力側に接続されクロックに応じて動作する複数の論理ゲートと、を有し、
    前記バッファ回路の前記入力は、前記インバータと、前記複数の論理ゲートのうちの入力端に最も近い論理ゲートの入力と、の間に接続され、
    前記バッファ回路の前記出力は、前記複数の論理ゲートのうちの入力端に最も近い論理ゲートの出力側に接続されたことを特徴とする請求項1記載の半導体集積回路。
  5. 前記イネーブル信号は、クロックと同期して周期的に供給されることを特徴とする請求項1〜4のいずれか1つに記載の半導体集積回路。
  6. 前記イネーブル信号は、前記フリップフロップに入力されるデータの信号遷移に応じて供給されることを特徴とする請求項1〜4のいずれか1つに記載の半導体集積回路。
  7. 前記フリップフロップに前記データを出力する論理回路をさらに備え、
    前記イネーブル信号は、前記論理回路と電源との間と、前記論理回路とグランドとの間と、の少なくともいずれかを流れる電流に応じて供給されることを特徴とする請求項6記載の半導体集積回路。
  8. 前記フリップフロップに前記データを出力する論理回路と、
    前記論理回路と前記フリップフロップとの間に直列に接続された複数のインバータと、
    をさらに備え、
    前記イネーブル信号は、前記複数のインバータの少なくともいずれかの接続中点における信号の遷移に応じて供給されることを特徴とする請求項1〜4のいずれか1つに記載の半導体集積回路。
JP2008089735A 2008-03-31 2008-03-31 半導体集積回路 Expired - Fee Related JP5139132B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008089735A JP5139132B2 (ja) 2008-03-31 2008-03-31 半導体集積回路
US12/367,379 US7795920B2 (en) 2008-03-31 2009-02-06 Semiconductor integrated circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008089735A JP5139132B2 (ja) 2008-03-31 2008-03-31 半導体集積回路

Publications (2)

Publication Number Publication Date
JP2009246629A true JP2009246629A (ja) 2009-10-22
JP5139132B2 JP5139132B2 (ja) 2013-02-06

Family

ID=41308071

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008089735A Expired - Fee Related JP5139132B2 (ja) 2008-03-31 2008-03-31 半導体集積回路

Country Status (1)

Country Link
JP (1) JP5139132B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011102270A1 (ja) * 2010-02-18 2011-08-25 株式会社日立製作所 電子機器

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59211317A (ja) * 1983-05-16 1984-11-30 Nec Corp フリツプフロツプ
JPS61151894A (ja) * 1984-12-26 1986-07-10 Ricoh Co Ltd 信号変化検出回路
JPH0573703A (ja) * 1990-09-12 1993-03-26 Hitachi Ltd 半導体集積回路装置
JPH05235744A (ja) * 1992-01-06 1993-09-10 Nec Corp 相補型mosfet回路
US5280203A (en) * 1992-05-15 1994-01-18 Altera Corporation Look-ahead asynchronous register set/reset in programmable logic device
JP2004056667A (ja) * 2002-07-23 2004-02-19 Toshiba Corp 半導体集積回路装置
US6864733B2 (en) * 2003-05-29 2005-03-08 Intel Corporation Data-enabled static flip-flop circuit with no extra forward-path delay penalty

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59211317A (ja) * 1983-05-16 1984-11-30 Nec Corp フリツプフロツプ
JPS61151894A (ja) * 1984-12-26 1986-07-10 Ricoh Co Ltd 信号変化検出回路
JPH0573703A (ja) * 1990-09-12 1993-03-26 Hitachi Ltd 半導体集積回路装置
JPH05235744A (ja) * 1992-01-06 1993-09-10 Nec Corp 相補型mosfet回路
US5280203A (en) * 1992-05-15 1994-01-18 Altera Corporation Look-ahead asynchronous register set/reset in programmable logic device
JP2004056667A (ja) * 2002-07-23 2004-02-19 Toshiba Corp 半導体集積回路装置
US6864733B2 (en) * 2003-05-29 2005-03-08 Intel Corporation Data-enabled static flip-flop circuit with no extra forward-path delay penalty

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011102270A1 (ja) * 2010-02-18 2011-08-25 株式会社日立製作所 電子機器
JP2011170606A (ja) * 2010-02-18 2011-09-01 Hitachi Ltd 電子機器
US8904233B2 (en) 2010-02-18 2014-12-02 Hitachi, Ltd. Electronic apparatus

Also Published As

Publication number Publication date
JP5139132B2 (ja) 2013-02-06

Similar Documents

Publication Publication Date Title
US7795920B2 (en) Semiconductor integrated circuit
JP5058503B2 (ja) スキャンテスト用回路を備える電子回路、集積回路及び該集積回路に用いられる消費電力低減方法
US20150358004A1 (en) D-type flip-flop and clock generating circuit
JP2003078407A (ja) 高速サンプリングレシーバー
JP4806417B2 (ja) 論理ブロック制御システム及び論理ブロック制御方法
US20050151560A1 (en) Scan flip flop, semiconductor device, and production method of semiconductor device
US10447251B2 (en) Power efficient high speed latch circuits and systems
US7932750B2 (en) Dynamic domino circuit and integrated circuit including the same
US9755618B1 (en) Low-area low clock-power flip-flop
JPH10303727A (ja) データレシーバ
US7528630B2 (en) High speed flip-flop
JP5139132B2 (ja) 半導体集積回路
US11073862B2 (en) Synchronization circuit and cascaded synchronization circuit for converting asynchronous signal into synchronous signal
US6825707B2 (en) Current mode logic (CML) circuit concept for a variable delay element
US7759999B2 (en) Externally asynchronous internally clocked system
US7622959B2 (en) Phase comparator and semiconductor device with phase comparator
JP2009246650A (ja) 半導体集積回路
US8324942B2 (en) Clock signal amplification circuit, control method thereof, and clock signal distribution circuit
JP7001314B2 (ja) 信号伝送装置及び信号伝送システム
JP2008021340A (ja) 半導体装置
US20100045389A1 (en) Ring oscillator
JPH1155081A (ja) フリップフロップ回路および回路設計システム
US7134034B1 (en) Data paths with receiver timing fixable to a downstream stage and methods of operation thereof
JPH11205096A (ja) ダブル・エッジトリガ・フリップフロップ
JP4524453B2 (ja) フリップフロップ回路

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101027

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120119

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120208

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120405

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20121018

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121115

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151122

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees