JP2011023941A - フリップフロップおよび半導体回路 - Google Patents

フリップフロップおよび半導体回路 Download PDF

Info

Publication number
JP2011023941A
JP2011023941A JP2009166624A JP2009166624A JP2011023941A JP 2011023941 A JP2011023941 A JP 2011023941A JP 2009166624 A JP2009166624 A JP 2009166624A JP 2009166624 A JP2009166624 A JP 2009166624A JP 2011023941 A JP2011023941 A JP 2011023941A
Authority
JP
Japan
Prior art keywords
latch
output
clock signal
clock
recover
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.)
Pending
Application number
JP2009166624A
Other languages
English (en)
Inventor
Hiroshi Yanagiuchi
弘 柳内
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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP2009166624A priority Critical patent/JP2011023941A/ja
Publication of JP2011023941A publication Critical patent/JP2011023941A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】フリップフロップ間の速度マージンを削減する。
【解決手段】マスターラッチ110およびスレーブラッチ120は基本クロックck0に従って動作し、マスタースレーブ型フリップフロップを構成する。リカバーラッチ130は基本クロックck0よりも位相が遅延した遅延クロックck1に従って動作する。比較器140はマスターラッチ110およびリカバーラッチ130の出力を比較して、両者が不一致の場合には、リカバーラッチ130の出力をスレーブラッチ120に供給するよう選択器150を制御する。これにより、入力信号Dの変化が基本クロックck0のタイミングよりも遅れた場合であっても、遅延クロックck1のタイミングに間に合えば、出力Qは正しい値に修復される。
【選択図】図1

Description

本発明は、フリップフロップに関し、特にマスタースレーブ型フリップフロップおよびそれを含む半導体回路に関する。
近年、LSI技術に関して、GHzレベルへの高速化や、SoC(システムオンチップ)化に伴う大規模化への要求が高まっている。実際の設計状況を考察すると、LSI設計においては、設計者が内部目標とするターゲット周波数はトランジスタ能力の限界速度に近くなっている。このターゲット周波数は、仕様上のスペック周波数に対してさらに種々の速度マージンを加味したものであり、スペック周波数よりも高く設定される。ここで加味される値は、プロセスばらつきや動作温度および動作電圧のようにスペック周波数に対する割合として上乗せされる要素と、クロックジッターや電圧降下のように固定値としての上乗せされる要素の大きく二つに分類される。また、トランジスタのゲート遅延ばらつきと配線遅延ばらつきとでは互いにばらつき基準が異なるため、速度マージンが過剰に見積もられることも多い。多種の要素に起因する速度マージンがターゲット周波数を引き上げ、ターゲット周波数が高くなるほどパイプラインを刻むためのフリップフロップの数が増加する。そして、ターゲット周波数が高くなるほどパイプライン間の論理回路を駆動するための負荷が増大するため、それを駆動するバッファのセルサイズが増加して、その結果、マクロ面積が増加することになる。
LSI設計の手法は、大きく分けてカスタム設計と論理合成設計とに分類される。前者のカスタム設計では、設計者の意図が反映され易いため、マクロ面積を小さくすることは可能ではあるが、その反面、フリップフロップの挿入位置がブロック間や論理区切りなどに限定されてしまうため、設計適応効率が悪いと考えられる。この場合、フリップフロップの量が増加してしまうという問題がある。一方、後者の論理合成設計は、ターゲット周波数への適応効率が良いが、マクロ面積は設計ツールの性能に依存することとなる。この設計ツールは、フリップフロップ間の時間配分を考慮してクロックスキュー調整(time tolerant)を行うが、これはターゲット周波数を満たす程度であってそれ以上の調整は行われない。また、合成結果における周波数とマクロ面積の関係として、ターゲット周波数がライブラリの設計限界周波数(トランジスタ能力に起因)に近くなる程、マクロ面積変化量は大きくなることが経験的に知られている。逆に、僅かなターゲット周波数の緩和でマクロ面積の削減が期待される。
このようなLSI設計においては、動作の安定性の観点からマスタースレーブ型のフリップフロップ回路が利用されることが多い。このマスタースレーブ型のフリップフロップ回路900は、図12に示すように、互いに逆相のクロック信号により動作するマスターラッチ910とスレーブラッチ920との組合せにより実現される(例えば、特許文献1参照。)。このマスタースレーブ型のフリップフロップ回路900では、クロック信号の前半にマスターラッチ910において入力信号の取り込みが行われ、後半にスレーブラッチ920においてマスターラッチ910の出力の取り込みが行われる。これにより、データのすり抜けが回避され、安定した動作を得ることができる。
特開2004−064557号公報(図4)
フリップフロップ回路を用いたLSI設計を行う場合、フリップフロップ回路の直前の論理回路において時間を要した結果、フリップフロップ回路においてクロックに同期してデータを取り込めないという事象が生じ得る。この場合、システムはクロックストールを引き起こすため、過度であっても速度マージンを加えたターゲット周波数を設定することになり、マクロ面積が増大してしまう。
本発明はこのような状況に鑑みてなされたものであり、フリップフロップ間の速度マージンを削減することを目的とする。
本発明は、上記課題を解決するためになされたものであり、その第1の側面は、第1のクロック信号に従って入力信号を保持するマスターラッチと、上記第1のクロック信号よりも位相が遅れた第2のクロック信号に従って上記入力信号を保持するリカバーラッチと、上記マスターラッチおよび上記リカバーラッチの何れか一方の出力を選択する選択器と、上記マスターラッチおよび上記リカバーラッチの出力を比較して上記マスターラッチおよび上記リカバーラッチの出力が不一致である場合には上記第2のクロック信号に従って上記リカバーラッチの出力を選択するよう上記選択器を制御する比較器と、上記第1のクロック信号に従って上記選択器の出力を保持するスレーブラッチとを具備するフリップフロップである。これにより、第1のクロック信号のタイミングと第2のクロック信号のタイミングにおいてラッチされた入力信号が異なる場合、後者の値を採用することにより出力を正しい値に修復させるという作用をもたらす。
また、この第1の側面において、上記第1および第2のクロック信号は、第1の状態と第2の状態とを繰り返すクロック信号であり、上記マスターラッチは、上記第1のクロック信号が上記第1の状態を示す間に上記入力信号を取り込んで、上記第1のクロック信号が上記第2の状態を示す間は上記入力信号を保持し、上記リカバーラッチは、上記第2のクロック信号が上記第1の状態を示す間に上記入力信号を取り込んで、上記第2のクロック信号が上記第2の状態を示す間は上記入力信号を保持し、上記比較器は、上記第2のクロック信号が上記第2の状態を示す間に上記マスターラッチおよび上記リカバーラッチの出力が不一致である場合には上記リカバーラッチの出力を選択するよう上記選択器を制御し、上記スレーブラッチは、上記第1のクロック信号が上記第2の状態を示す間に上記選択器の出力を取り込んで、上記第1のクロック信号が上記第1の状態を示す間は上記選択器の出力を保持するようにしてもよい。これにより、第1のクロック信号が第1の状態から第2の状態に遷移するタイミングと第2のクロック信号が第1の状態から第2の状態に遷移する移タイミングにおいてラッチされた入力信号が異なる場合、後者の値を採用することにより出力を正しい値に修復させるという作用をもたらす。
また、この第1の側面において、上記第1および第2のクロック信号の少なくとも何れか一方を生成するクロック生成回路をさらに具備してもよい。これにより、クロックのエッジを鋭くさせるという作用をもたらす。
また、本発明の第2の側面は、基本クロック信号および上記基本クロック信号よりも位相が遅れた遅延クロック信号を供給するクロック供給回路と、上記基本クロック信号に従って入力信号を保持するマスターラッチと、上記遅延クロック信号に従って上記入力信号を保持するリカバーラッチと、上記マスターラッチおよび上記リカバーラッチの何れか一方の出力を選択する選択器と、上記マスターラッチおよび上記リカバーラッチの出力を比較して上記マスターラッチおよび上記リカバーラッチの出力が不一致である場合には上記遅延クロック信号に従って上記リカバーラッチの出力を選択するよう上記選択器を制御する比較器と、上記基本クロック信号に従って上記選択器の出力を保持するスレーブラッチとを具備する半導体回路である。これにより、基本クロック信号のタイミングと遅延クロック信号のタイミングにおいてラッチされた入力信号が異なる場合、後者の値を採用することにより出力を正しい値に修復させるという作用をもたらす。
また、本発明の第3の側面は、基本クロック信号および上記基本クロック信号よりも位相が早い先行クロック信号を供給するクロック供給回路と、上記先行クロック信号に従って入力信号を保持するマスターラッチと、上記基本クロック信号に従って上記入力信号を保持するリカバーラッチと、上記マスターラッチおよび上記リカバーラッチの何れか一方の出力を選択する選択器と、上記マスターラッチおよび上記リカバーラッチの出力を比較して上記マスターラッチおよび上記リカバーラッチの出力が不一致である場合には上記基本クロック信号に従って上記リカバーラッチの出力を選択するよう上記選択器を制御する比較器と、上記先行クロック信号に従って上記選択器の出力を保持するスレーブラッチとを具備する半導体回路である。これにより、基本クロック信号のタイミングと先行クロック信号のタイミングにおいてラッチされた入力信号が異なる場合、後者の値を採用することにより出力を正しい値に修復させるという作用をもたらす。
本発明によれば、フリップフロップ間の速度マージンを削減することができ、これによりマクロ面積を削減することができるという優れた効果を奏し得る。
本発明の第1の実施の形態におけるフリップフロップ回路100の構成例を示す図である。 本発明の実施の形態における比較器140の構成例を示す図である。 本発明の実施の形態における選択器150の機能動作例を示す真理値表である。 本発明の第1の実施の形態におけるフリップフロップ回路100の動作タイミング例を示す図である。 本発明の第2の実施の形態等におけるクロック供給回路300の構成例を示す図である。 本発明の第2の実施の形態におけるフリップフロップ回路100の構成例を示す図である。 本発明の第3の実施の形態におけるフリップフロップ回路100の構成例を示す図である。 本発明の第4の実施の形態におけるフリップフロップ回路100の構成例を示す図である。 本発明の第4の実施の形態におけるフリップフロップ回路100の動作タイミング例を示す図である。 本発明の第5の実施の形態におけるフリップフロップ回路100の構成例を示す図である。 本発明の実施の形態におけるフリップフロップ回路100を利用したLSI設計例の手順を示す図である。 従来のマスタースレーブ型フリップフロップ回路900の構成を示す図である。
以下、本発明を実施するための形態(以下、実施の形態と称する)について説明する。説明は以下の順序により行う。
1.第1の実施の形態(基本クロックおよび遅延クロックをフリップフロップ回路内で生成する例)
2.第2の実施の形態(基本クロックのみをフリップフロップ回路内で生成し、遅延クロックをフリップフロップ回路外から供給する例)
3.第3の実施の形態(基本クロックおよび遅延クロックをフリップフロップ回路外から供給する例)
4.第4の実施の形態(基本クロックのみをフリップフロップ回路内で生成し、先行クロックをフリップフロップ回路外から供給する例)
5.第5の実施の形態(基本クロックおよび先行クロックをフリップフロップ回路外から供給する例)
6.応用例(本発明のフリップフロップ回路を利用したLSI設計の例)
<1.第1の実施の形態>
[フリップフロップ回路100の構成例]
図1は、本発明の第1の実施の形態におけるフリップフロップ回路100の構成例を示す図である。この第1の実施の形態のフリップフロップ回路100は、入力信号Dを一旦保持して、出力信号Qを出力するフリップフロップである。このフリップフロップ回路100は、マスターラッチ110と、スレーブラッチ120と、リカバーラッチ130と、比較器140と、選択器150と、クロック生成回路190とを備えている。この第1の実施の形態では、クロック信号として、回路全体の基本クロックであるck0およびその反転クロックであるckb0が用いられ、さらに、基本クロックよりも位相が遅延する遅延クロックck1およびその反転クロックであるckb1が用いられる。これらクロック信号は、論理L状態および論理H状態を繰り返すものであり、この第1の実施の形態ではフリップフロップ回路100内のクロック生成回路190により生成される。フリップフロップ回路100内においてクロックを生成することにより、クロックのエッジを鋭くさせて高速動作時の誤動作を防止するという利点が得られる。
マスターラッチ110は、マスタースレーブ型フリップフロップを構成し、基本クロックck0およびckb0に従って動作するマスターラッチである。このマスターラッチ110は、インバータ111および113と、トランスミッションゲート112と、トライステートインバータ114とを備えている。
インバータ111は、フリップフロップ回路100への入力信号Dの極性を反転させるバッファである。これにより、トランスミッションゲート112には入力信号Dの反転信号が供給される。トランスミッションゲート112は、インバータ111から供給された入力信号Dの反転信号を通過させるか否かをクロック信号ck0およびckb0に従って制御するものである。すなわち、このトランスミッションゲート112は、クロック信号ckb0が論理H状態(クロック信号ck0が論理L状態)を示す間は信号を通過させ、クロック信号ckb0が論理L状態(クロック信号ck0が論理H状態)を示す間は出力をハイインピーダンスにする。インバータ113は、トランスミッションゲート112またはトライステートインバータ114の出力の極性を反転させるバッファである。トライステートインバータ114は、インバータ113の出力の極性を反転させてインバータ113の入力に戻すか否かをクロック信号ck0およびckb0に従って制御するものである。すなわち、このトライステートインバータ114は、クロック信号ck0が論理H状態(クロック信号ckb0が論理L状態)を示す間はインバータ113の出力の極性を反転させてインバータ113の入力に戻す。また、トライステートインバータ114は、クロック信号ck0が論理L状態(クロック信号ckb0が論理H状態)を示す間は出力をハイインピーダンスにする。このように、トランスミッションゲート112とトライステートインバータ114には互いに正反対の位相のクロック信号が入力されるため、インバータ113への信号は排他的に入力される。したがって、クロック信号ck0が論理H状態を示す間はインバータ113とトライステートインバータ114のループに値が保持される状態になり、クロック信号ck0が論理L状態を示す間は入力信号Dが通過する状態になる。なお、トライステートインバータは、クロックドインバータとも呼称される。
スレーブラッチ120は、マスタースレーブ型フリップフロップを構成し、基本クロックck0およびckb0に従って動作するスレーブラッチである。このスレーブラッチ120は、インバータ121および123と、トランスミッションゲート122と、トライステートインバータ124とを備えている。
インバータ121は、選択器150の出力の極性を反転させるバッファである。これにより、トランスミッションゲート122には選択器150の出力の反転信号が供給される。トランスミッションゲート122は、インバータ121から供給された選択器150の出力の反転信号を通過させるか否かをクロック信号ck0およびckb0に従って制御するものである。すなわち、このトランスミッションゲート122は、クロック信号ck0が論理H状態(クロック信号ckb0が論理L状態)を示す間は信号を通過させ、クロック信号ck0が論理L状態(クロック信号ckb0が論理H状態)を示す間は出力をハイインピーダンスにする。インバータ123は、トランスミッションゲート122またはトライステートインバータ124の出力の極性を反転させるバッファである。トライステートインバータ124は、インバータ123の出力の極性を反転させてインバータ123の入力に戻すか否かをクロック信号ck0およびckb0に従って制御するものである。すなわち、このトライステートインバータ124は、クロック信号ckb0が論理H状態(クロック信号ck0が論理L状態)を示す間はインバータ123の出力の極性を反転させてインバータ123の入力に戻す。また、トライステートインバータ124は、クロック信号ckb0が論理L状態(クロック信号ck0が論理H状態)を示す間は出力をハイインピーダンスにする。このように、トランスミッションゲート122とトライステートインバータ124には互いに正反対の位相のクロック信号が入力されるため、インバータ123への信号は排他的に入力される。したがって、クロック信号ck0が論理L状態を示す間はインバータ113とトライステートインバータ114のループに値が保持される状態になり、クロック信号ck0が論理H状態を示す間は選択器150の出力が通過する状態になる。
リカバーラッチ130は、遅延クロックck1およびckb1に従って動作するラッチである。このリカバーラッチ130は、インバータ131および133と、トランスミッションゲート132と、トライステートインバータ134とを備えている。
インバータ131は、フリップフロップ回路100への入力信号Dの極性を反転させるバッファである。これにより、トランスミッションゲート132には入力信号Dの反転信号が供給される。トランスミッションゲート132は、インバータ131から供給された入力信号Dの反転信号を通過させるか否かをクロック信号ck1およびckb1に従って制御するものである。すなわち、このトランスミッションゲート132は、クロック信号ckb1が論理H状態(クロック信号ck1が論理L状態)を示す間は信号を通過させ、クロック信号ckb1が論理L状態(クロック信号ck1が論理H状態)を示す間は出力をハイインピーダンスにする。インバータ133は、トランスミッションゲート132またはトライステートインバータ134の出力の極性を反転させるバッファである。トライステートインバータ134は、インバータ133の出力の極性を反転させてインバータ133の入力に戻すか否かをクロック信号ck1およびckb1に従って制御するものである。すなわち、このトライステートインバータ134は、クロック信号ck1が論理H状態(クロック信号ckb1が論理L状態)を示す間はインバータ133の出力の極性を反転させてインバータ133の入力に戻す。また、トライステートインバータ134は、クロック信号ck1が論理L状態(クロック信号ckb1が論理H状態)を示す間は出力をハイインピーダンスにする。このように、トランスミッションゲート132とトライステートインバータ134には互いに正反対の位相のクロック信号が入力されるため、インバータ133への信号は排他的に入力される。したがって、クロック信号ck1が論理H状態を示す間はインバータ133とトライステートインバータ134のループに値が保持される状態になり、クロック信号ck1が論理L状態を示す間は入力信号Dが通過する状態になる。
比較器140は、遅延クロックck1およびckb1に従って、マスターラッチ110の出力Aとリカバーラッチ130の出力Bとを比較するものである。すなわち、この比較器140は、クロック信号ck1が論理H状態(クロック信号ckb1が論理L状態)を示す間はマスターラッチ110の出力とリカバーラッチ130の出力とを比較して、その比較結果Xを選択器150に出力する。一方、クロック信号ck1が論理L状態(クロック信号ckb1が論理H状態)を示す間は、比較器140は両者の比較を行わない。なお、この比較器140の構成例については後述する。
選択器150は、比較器140における比較結果に従って、マスターラッチ110の出力およびリカバーラッチ130の出力の何れか一方を選択して、スレーブラッチ120に供給するものである。クロック信号ck1が論理H状態(クロック信号ckb1が論理L状態)を示す間は、比較器140によってマスターラッチ110の出力とリカバーラッチ130の出力とが比較される。このとき、両者の出力が一致しない場合には、基本クロックck0のタイミングに間に合わなかったものの、遅延クロックck1のタイミングで修復(リカバー)可能と判断され、リカバーラッチ130の出力が選択される。両者の出力が一致した場合には、何れの出力を選択しても差異がないため、何れか一方の出力が適宜選択される。また、クロック信号ck1が論理L状態(クロック信号ckb1が論理H状態)を示す間は、リカバーラッチ130の出力が確定していないため、両者の比較は行われず、マスターラッチ110の出力が選択される。
クロック生成回路190は、基本クロックck0およびその反転クロックckb0、遅延クロックck1およびその反転クロックckb1を生成する回路であり、インバータ191乃至194を備える。このクロック生成回路190には大元のクロック信号CKが入力され、このクロック信号CKに基づいて各クロック信号が生成される。
インバータ191乃至194は直列に接続されており、第1段目のインバータ191にはクロック信号CKが入力される。インバータ191は基本クロックの反転クロックckb0を出力する。インバータ192は基本クロックck0を出力する。インバータ193は遅延クロックの反転クロックckb1を出力する。インバータ194は遅延クロックck1を出力する。
[比較器140の構成例]
図2は、本発明の実施の形態における比較器140の構成例を示す図である。この比較器140には、マスターラッチ110の出力A、リカバーラッチ130の出力B、および、クロック信号ckxまたはその反転信号が入力され、選択器150の選択信号Xが出力される。クロック信号ckxは、第1の実施の形態においては、基本クロックck0である。
図2(a)は、比較器140の第1の構成例を示している。この比較器140の第1の構成例では、クロック信号ckxが入力されている。この比較器140の第1の構成例は、排他的論理和(XOR)ゲート141と、論理積(AND)ゲート142とを備えている。排他的論理和ゲート141は、マスターラッチ110の出力Aとリカバーラッチ130の出力Bとの不一致を検出するものである。すなわち、この排他的論理和ゲート141は、マスターラッチ110の出力Aとリカバーラッチ130の出力Bが一致する場合には論理Lを示し、一致しない場合には論理Hを示す。論理積ゲート142は、排他的論理和ゲート141の出力とクロック信号ckxとの論理積を生成するものである。すなわち、この論理積ゲート142は、クロック信号ckxが論理Hを示している間には排他的論理和ゲート141の出力を通過させ、クロック信号ckxが論理Lを示している間には論理Lを出力する。したがって、クロック信号ckxが論理Hを示し、かつ、マスターラッチ110の出力Aとリカバーラッチ130の出力Bが一致しない場合にはリカバーラッチ130の出力Bが選択器150において選択される。また、それ以外の場合にはマスターラッチ110の出力Aが選択される。クロック信号ckxが論理Hを示し、かつ、マスターラッチ110の出力Aとリカバーラッチ130の出力Bが一致する場合には、出力AまたはBの何れを選択しても構わないが、ここでは回路構成を簡単にするため、前者を選択することとしている。
図2(b)は、比較器140の第2の構成例を示している。この比較器140の第2の構成例では、クロック信号ckxの反転信号が入力されている。この比較器140の第2の構成例は、排他的否定論理和(XNOR)ゲート143と、否定論理和(NOR)ゲート144とを備えている。排他的否定論理和ゲート143は、排他的論理和ゲート141と同様にマスターラッチ110の出力Aとリカバーラッチ130の出力Bとの不一致を検出するものであるが、出力の極性がことなる。すなわち、この排他的否定論理和ゲート143は、マスターラッチ110の出力Aとリカバーラッチ130の出力Bが一致する場合には論理Hを示し、一致しない場合には論理Lを示す。否定論理和ゲート144は、排他的否定論理和ゲート143とクロック信号ckxの反転信号との論理和の反転信号を生成するものである。すなわち、この否定論理和ゲート144は、クロック信号ckxが論理Hを示している間には排他的否定論理和ゲート143の出力の反転信号を通過させ、クロック信号ckxが論理Lを示している間には論理Lを出力する。したがって、最終的な動作は第1の構成例と同様になる。
[選択器150の機能動作例]
図3は、本発明の実施の形態における選択器150の機能動作例を示す真理値表である。
クロック信号ck1が論理L状態(クロック信号ckb1が論理H状態)を示す間は、リカバーラッチ130の出力が確定していないため、比較対象外となり、マスターラッチ110の出力Aが選択される。
クロック信号ck1が論理H状態(クロック信号ckb1が論理L状態)を示す間は、以下のように、比較器140によってマスターラッチ110の出力とリカバーラッチ130の出力との関係に応じて何れか一方が選択される。両者の出力が一致しない場合には、基本クロックck0のタイミングに間に合わなかったものの、遅延クロックck1のタイミングで修復(リカバー)可能と判断され、リカバーラッチ130の出力Bが選択される。両者の出力が一致した場合には、何れの出力を選択しても差異がないため、何れか一方の出力AまたはBが適宜選択される。本発明の第1の実施の形態においては、マスターラッチ110の出力Aを選択している。
[フリップフロップ回路100の動作タイミング例]
図4は、本発明の第1の実施の形態におけるフリップフロップ回路100の動作タイミング例を示す図である。ここでは、クロック信号CKが論理L状態にある期間の中間点を区切りとして、周期t1乃至t6を分けている。
周期t1では、入力信号Dが論理Lであり、クロック信号ck0が論理L状態にある期間に変化するマスターラッチ110の出力Aとクロック信号ck1が論理L状態にある期間に変化するリカバーラッチ130の出力Bとがともに論理Lで一致している。したがって、選択器150においてマスターラッチ110の出力Aが選択され、フリップフロップ回路100の出力Qは論理Lとなる。
周期t2では、入力信号Dが論理Hになり、クロック信号ck0が論理L状態にある期間に変化するマスターラッチ110の出力Aとクロック信号ck1が論理L状態にある期間に変化するリカバーラッチ130の出力Bとがともに論理Hで一致している。したがって、選択器150においてマスターラッチ110の出力Aが選択され、フリップフロップ回路100の出力Qは論理Hとなる。
周期t3では、入力信号Dが論理Lになり、クロック信号ck0が論理L状態にある期間に変化するマスターラッチ110の出力Aとクロック信号ck1が論理L状態にある期間に変化するリカバーラッチ130の出力Bとがともに論理Lで一致している。したがって、選択器150においてマスターラッチ110の出力Aが選択され、フリップフロップ回路100の出力Qは論理Lとなる。
周期t4では、入力信号Dが論理Hになり、クロック信号ck0が論理L状態にある期間に変化するマスターラッチ110の出力Aは論理Lとなり、クロック信号ck1が論理L状態にある期間に変化するリカバーラッチ130の出力Bは論理Hとなる。そのため、マスターラッチ110の出力Aとリカバーラッチ130の出力Bは不一致となる。したがって、選択器150においてリカバーラッチ130の出力Bが選択され、フリップフロップ回路100の出力Qは論理Lから論理Hへと変化して正しい値を出力する。このときの遅延は、遅延クロックck1の基本クロックck0に対する位相の遅延差である。
周期t5では、入力信号Dが論理Lになり、クロック信号ck0が論理L状態にある期間に変化するマスターラッチ110の出力Aは論理Hとなり、クロック信号ck1が論理L状態にある期間に変化するリカバーラッチ130の出力Bは論理Lとなる。そのため、マスターラッチ110の出力Aとリカバーラッチ130の出力Bは不一致となる。したがって、選択器150においてリカバーラッチ130の出力Bが選択され、フリップフロップ回路100の出力Qは論理Hから論理Lへと変化して正しい値を出力する。
周期t6では、入力信号Dが論理Hになり、クロック信号ck0が論理L状態にある期間に変化するマスターラッチ110の出力Aとクロック信号ck1が論理L状態にある期間に変化するリカバーラッチ130の出力Bとがともに論理Hで一致している。したがって、選択器150においてマスターラッチ110の出力Aが選択され、フリップフロップ回路100の出力Qは論理Hとなる。
このように、本発明の第1の実施の形態によれば、入力信号Dの変化が基本クロックck0のタイミングよりも遅れた場合であっても、遅延クロックck1のタイミングに間に合えば、出力Qを正しい値に修復(リカバー)することができる。
なお、この第1の実施の形態では、基本クロックおよび遅延クロックを生成するクロック生成回路190をフリップフロップ回路100の内部に含めて構成することを想定したが、以下に説明するように、一部または全てのクロックを外部から供給してもよい。
<2.第2の実施の形態>
[クロック供給回路300の構成例]
図5は、本発明の第2の実施の形態等におけるクロック供給回路300の構成例を示す図である。このクロック供給回路300は、大元のクロックO_CKをバッファまたはインバータにより分配するクロックツリーを構成している。ここでは、インバータ301から322まで直列に接続されているものとする。
インバータ311は、他のフリップフロップに分配されるクロック信号CKを入力して、基本クロックの反転クロックckb0を出力する。インバータ312は基本クロックck0を出力する。インバータ321は基本クロックよりも位相が遅延する遅延クロックの反転クロックckb1を出力する。インバータ322は遅延クロックck1を出力する。また、インバータ301は、基本クロックよりも位相が早い先行クロックの反転クロックP_CKBを出力する。インバータ302は、先行クロックP_CKを出力する。
スタンダードセルの場合、フリップフロップのセルの外部にこのようなクロック供給回路300を設けることにより、基本クロックck0およびckb0と遅延クロックck1およびckb1との遅延差範囲の自由度を向上させることができる。以下の実施の形態では、一部または全てのクロックがこのクロック供給回路300によって供給されることを想定する。
[フリップフロップ回路100の構成例]
図6は、本発明の第2の実施の形態におけるフリップフロップ回路100の構成例を示す図である。この第2の実施の形態におけるフリップフロップ回路100は、第1の実施の形態と同様に、マスターラッチ110と、スレーブラッチ120と、リカバーラッチ130と、比較器140と、選択器150と、クロック生成回路190とを備えている。全体としての動作は第1の実施の形態と同様である。
この第2の実施の形態では、クロック生成回路190において生成されたクロックは、基本クロックであるck0およびその反転クロックckb0のみが使用される。そして、遅延クロックck1およびその反転クロックckb1は、フリップフロップ回路100の外部のクロック供給回路300(図5)から供給される。
この第2の実施の形態によれば、フリップフロップ回路100の内部では基本クロックck0およびckb0のみを生成すればよいため、遅延クロック生成の自由度を向上させることができる。
<3.第3の実施の形態>
[フリップフロップ回路100の構成例]
図7は、本発明の第3の実施の形態におけるフリップフロップ回路100の構成例を示す図である。この第3の実施の形態におけるフリップフロップ回路100は、第1の実施の形態と同様に、マスターラッチ110と、スレーブラッチ120と、リカバーラッチ130と、比較器140と、選択器150とを備えている。ただし、この第3の実施の形態では、クロック生成回路190をフリップフロップ回路100の内部に備えず、基本クロックおよび遅延クロックは外部のクロック供給回路300(図5)から供給される。これ以外の全体としての動作は第1の実施の形態と同様である。
この第2の実施の形態によれば、基本クロックおよび遅延クロックをフリップフロップ回路100の外部のクロック供給回路300から供給するため、基本クロックと遅延クロックとの遅延差範囲の自由度を向上させることができる。
<4.第4の実施の形態>
[フリップフロップ回路100の構成例]
図8は、本発明の第4の実施の形態におけるフリップフロップ回路100の構成例を示す図である。この第4の実施の形態におけるフリップフロップ回路100は、第1の実施の形態と同様に、マスターラッチ110と、スレーブラッチ120と、リカバーラッチ130と、比較器140と、選択器150と、クロック生成回路190とを備えている。ただし、この第4の実施の形態では、マスターラッチ110およびスレーブラッチ120は、基本クロックよりも早い先行クロックP_CKおよびその反転クロックP_CKBに従って動作する。また、リカバーラッチ130および比較器140は、基本クロックに従って動作する。
この第4の実施の形態では、クロック生成回路190において生成されたクロックは、基本クロックであるck0およびその反転クロックckb0のみが使用される。そして、先行クロックP_CKおよびその反転クロックP_CKBは、フリップフロップ回路100の外部のクロック供給回路300(図5)から供給される。
[フリップフロップ回路100の動作タイミング例]
図9は、本発明の第4の実施の形態におけるフリップフロップ回路100の動作タイミング例を示す図である。ここでは、図4と同様に、クロック信号CKが論理L状態にある期間の中間点を区切りとして、周期t1乃至t6を分けている。
周期t1では、入力信号Dが論理Lであり、クロック信号P_CKが論理L状態にある期間に変化するマスターラッチ110の出力Aとクロック信号ck0が論理L状態にある期間に変化するリカバーラッチ130の出力Bとがともに論理Lで一致している。したがって、選択器150においてマスターラッチ110の出力Aが選択され、フリップフロップ回路100の出力Qは論理Lとなる。
周期t2では、入力信号Dが論理Hになり、クロック信号P_CKが論理L状態にある期間に変化するマスターラッチ110の出力Aとクロック信号ck0が論理L状態にある期間に変化するリカバーラッチ130の出力Bとがともに論理Hで一致している。したがって、選択器150においてマスターラッチ110の出力Aが選択され、フリップフロップ回路100の出力Qは論理Hとなる。
周期t3では、入力信号Dが論理Lになり、クロック信号P_CKが論理L状態にある期間に変化するマスターラッチ110の出力Aとクロック信号ck0が論理L状態にある期間に変化するリカバーラッチ130の出力Bとがともに論理Lで一致している。したがって、選択器150においてマスターラッチ110の出力Aが選択され、フリップフロップ回路100の出力Qは論理Lとなる。
周期t4では、入力信号Dが論理Hになり、クロック信号P_CKが論理L状態にある期間に変化するマスターラッチ110の出力Aは論理Lとなり、クロック信号ck0が論理L状態にある期間に変化するリカバーラッチ130の出力Bは論理Hとなる。そのため、マスターラッチ110の出力Aとリカバーラッチ130の出力Bは不一致となる。したがって、選択器150においてリカバーラッチ130の出力Bが選択され、フリップフロップ回路100の出力Qは論理Lから論理Hへと変化して正しい値を出力する。このときの遅延は、基本クロックck0の先行クロックP_CKに対する位相の遅延差である。
周期t5では、入力信号Dが論理Lになり、クロック信号P_CKが論理L状態にある期間に変化するマスターラッチ110の出力Aは論理Hとなり、クロック信号ck0が論理L状態にある期間に変化するリカバーラッチ130の出力Bは論理Lとなる。そのため、マスターラッチ110の出力Aとリカバーラッチ130の出力Bは不一致となる。したがって、選択器150においてリカバーラッチ130の出力Bが選択され、フリップフロップ回路100の出力Qは論理Hから論理Lへと変化して正しい値を出力する。
周期t6では、入力信号Dが論理Hになり、クロック信号P_CKが論理L状態にある期間に変化するマスターラッチ110の出力Aとクロック信号ck0が論理L状態にある期間に変化するリカバーラッチ130の出力Bとがともに論理Hで一致している。したがって、選択器150においてマスターラッチ110の出力Aが選択され、フリップフロップ回路100の出力Qは論理Hとなる。
このように、本発明の第4の実施の形態によれば、入力信号Dの変化が先行クロックP_CKのタイミングよりも遅れた場合であっても、基本クロックck0のタイミングに間に合えば、出力Qを正しい値に修復(リカバー)することができる。先行クロックP_CKを用いる利点は、入力信号Dが比較的早い遅延で値が確定する場合において基本クロックck0よりも速いタイミングで出力Qを確定することにより、それ以降のパスに時間的余裕を与えることが可能となるという点にある。この場合の時間的余裕とは、先行クロックP_CKおよびP_CKBと基本クロックck0およびckb0との遅延差異分である。また、この第4の実施の形態によれば、フリップフロップ回路100の内部では基本クロックck0およびckb0のみを生成すればよいため、先行クロック生成の自由度を向上させることができる。
<5.第5の実施の形態>
[フリップフロップ回路100の構成例]
図10は、本発明の第5の実施の形態におけるフリップフロップ回路100の構成例を示す図である。この第5の実施の形態におけるフリップフロップ回路100は、第4の実施の形態と同様に、マスターラッチ110と、スレーブラッチ120と、リカバーラッチ130と、比較器140と、選択器150とを備えている。すなわち、この第5の実施の形態では、マスターラッチ110およびスレーブラッチ120は、先行クロックP_CKおよびその反転クロックP_CKBに従って動作する。また、リカバーラッチ130および比較器140は、基本クロックに従って動作する。
ただし、この第5の実施の形態では、クロック生成回路190をフリップフロップ回路100の内部に備えず、基本クロックおよび先行クロックは外部のクロック供給回路300(図5)から供給される。これ以外の全体としての動作は第4の実施の形態と同様である。
<6.応用例>
[フリップフロップ回路100を利用した設計例]
図11は、本発明の実施の形態におけるフリップフロップ回路100を利用したLSI設計例の手順を示す図である。
まず、通常のLSI設計時と同じ設計基準による速度マージンが算出される(ステップS801)。そして、この速度マージンを含めたターゲット周波数が設定される(ステップS802)。例えば、スペック周波数80MHzに対して、ターゲット周波数100MHzが設定される。
次に、速度マージン緩和量が算出される(ステップS803)。この速度マージン緩和量は、以下の簡易式によりナノ秒(ns)単位で表される。
速度マージン緩和量=Clock遅延差異−(CKtoQ増減差異+セットアップ増減差異)
ここで、Clock遅延差異は、通常のフリップフロップ回路と本発明の実施の形態によるフリップフロップ回路との内部クロック遅延差異である。また、CKtoQ増減差異は、通常のフリップフロップ回路と本発明の実施の形態によるフリップフロップ回路とのCKtoQ遅延差異である。また、セットアップ増減差異は、通常のフリップフロップ回路と本発明の実施の形態によるフリップフロップ回路とのセットアップタイム差異である。この速度マージン緩和量は、セルを単位として算出される。
この算出された速度マージン緩和量に基づいて、緩和されたターゲット周波数が設定される(ステップS804)。この緩和されたターゲット周波数として、例えば、90MHzが設定される。そして、この緩和されたターゲット周波数を満たすようにLSI設計が行われる(ステップS805)。このようにして設計された回路について、ステップS802において設定された本来のターゲット周波数(例えば、100MHz)に対して正常に動作するか否かのタイミング検証が行われる(ステップS806)。このとき、タイミングを満たしていれば設計完了となる(ステップS807)。
ただし、緩和されたターゲット周波数(例えば、90MHz)により設計されているため、本来のターゲット周波数(例えば、100MHz)では通常の場合、タイミングを満たすことが難しい。タイミング検証の結果、本来のターゲット周波数を満足できない場合は、違反パスにおけるデータ出力側およびデータ受取側のそれぞれのフリップフロップ回路について、本発明の実施の形態のフリップフロップ回路への置換が行われる(ステップS808)。例えば、データ出力側では、本発明の第4または5の実施の形態のように、先行クロックP_CKに従ってマスターラッチ110およびスレーブラッチ120が動作するフリップフロップ回路への置換が行われる。また、データ受取側では、本発明の第1乃至3の実施の形態のように、基本クロックck0に従ってマスターラッチ110およびスレーブラッチ120が動作するフリップフロップ回路への置換が行われる。このような置換が行われた回路について、再びタイミング検証が行われ(ステップS806)、タイミングを満たしていれば設計完了となる(ステップS807)。それでも本来のターゲット周波数を満足できない場合には、ステップS808およびS806が繰り返される。
これらの手順により、本発明の実施の形態によるフリップフロップ回路への置換が行われることで、LSI設計時における速度マージンを緩和し、マクロ面積を削減することが可能となる。
このように、本発明の実施の形態によれば、入力信号Dの変化が本来のクロックのタイミングよりも遅れた場合であっても、本来のクロックよりも一定期間遅延したクロックのタイミングに間に合えば、出力Qを正しい値に修復(リカバー)することができる。
なお、本発明の実施の形態は本発明を具現化するための一例を示したものであり、本発明の実施の形態において明示したように、本発明の実施の形態における事項と、特許請求の範囲における発明特定事項とはそれぞれ対応関係を有する。同様に、特許請求の範囲における発明特定事項と、これと同一名称を付した本発明の実施の形態における事項とはそれぞれ対応関係を有する。ただし、本発明は実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において実施の形態に種々の変形を施すことにより具現化することができる。
また、本発明の実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えてもよく、また、これら一連の手順をコンピュータに実行させるためのプログラム乃至そのプログラムを記憶する記録媒体として捉えてもよい。この記録媒体として、例えば、CD(Compact Disc)、MD(MiniDisc)、DVD(Digital Versatile Disk)、メモリカード、ブルーレイディスク(Blu-ray Disc(登録商標))等を用いることができる。
100 フリップフロップ回路
110 マスターラッチ
120 スレーブラッチ
130 リカバーラッチ
111、113、121、123、131、133 インバータ
112、122、132 トランスミッションゲート
114、124、134 トライステートインバータ
140 比較器
141 排他的論理和(XOR)ゲート
142 論理積(AND)ゲート
143 排他的否定論理和(XNOR)ゲート
144 否定論理和(NOR)ゲート
150 選択器
190 クロック生成回路
191〜194 インバータ
300 クロック供給回路
301、302、311、312、321、322 インバータ
900 フリップフロップ回路
910 マスターラッチ
920 スレーブラッチ

Claims (5)

  1. 第1のクロック信号に従って入力信号を保持するマスターラッチと、
    前記第1のクロック信号よりも位相が遅れた第2のクロック信号に従って前記入力信号を保持するリカバーラッチと、
    前記マスターラッチおよび前記リカバーラッチの何れか一方の出力を選択する選択器と、
    前記マスターラッチおよび前記リカバーラッチの出力を比較して前記マスターラッチおよび前記リカバーラッチの出力が不一致である場合には前記第2のクロック信号に従って前記リカバーラッチの出力を選択するよう前記選択器を制御する比較器と、
    前記第1のクロック信号に従って前記選択器の出力を保持するスレーブラッチと
    を具備するフリップフロップ。
  2. 前記第1および第2のクロック信号は、第1の状態と第2の状態とを繰り返すクロック信号であり、
    前記マスターラッチは、前記第1のクロック信号が前記第1の状態を示す間に前記入力信号を取り込んで、前記第1のクロック信号が前記第2の状態を示す間は前記入力信号を保持し、
    前記リカバーラッチは、前記第2のクロック信号が前記第1の状態を示す間に前記入力信号を取り込んで、前記第2のクロック信号が前記第2の状態を示す間は前記入力信号を保持し、
    前記比較器は、前記第2のクロック信号が前記第2の状態を示す間に前記マスターラッチおよび前記リカバーラッチの出力が不一致である場合には前記リカバーラッチの出力を選択するよう前記選択器を制御し、
    前記スレーブラッチは、前記第1のクロック信号が前記第2の状態を示す間に前記選択器の出力を取り込んで、前記第1のクロック信号が前記第1の状態を示す間は前記選択器の出力を保持する
    請求項1記載のフリップフロップ。
  3. 前記第1および第2のクロック信号の少なくとも何れか一方を生成するクロック生成回路をさらに具備する請求項1記載のフリップフロップ。
  4. 基本クロック信号および前記基本クロック信号よりも位相が遅れた遅延クロック信号を供給するクロック供給回路と、
    前記基本クロック信号に従って入力信号を保持するマスターラッチと、
    前記遅延クロック信号に従って前記入力信号を保持するリカバーラッチと、
    前記マスターラッチおよび前記リカバーラッチの何れか一方の出力を選択する選択器と、
    前記マスターラッチおよび前記リカバーラッチの出力を比較して前記マスターラッチおよび前記リカバーラッチの出力が不一致である場合には前記遅延クロック信号に従って前記リカバーラッチの出力を選択するよう前記選択器を制御する比較器と、
    前記基本クロック信号に従って前記選択器の出力を保持するスレーブラッチと
    を具備する半導体回路。
  5. 基本クロック信号および前記基本クロック信号よりも位相が早い先行クロック信号を供給するクロック供給回路と、
    前記先行クロック信号に従って入力信号を保持するマスターラッチと、
    前記基本クロック信号に従って前記入力信号を保持するリカバーラッチと、
    前記マスターラッチおよび前記リカバーラッチの何れか一方の出力を選択する選択器と、
    前記マスターラッチおよび前記リカバーラッチの出力を比較して前記マスターラッチおよび前記リカバーラッチの出力が不一致である場合には前記基本クロック信号に従って前記リカバーラッチの出力を選択するよう前記選択器を制御する比較器と、
    前記先行クロック信号に従って前記選択器の出力を保持するスレーブラッチと
    を具備する半導体回路。
JP2009166624A 2009-07-15 2009-07-15 フリップフロップおよび半導体回路 Pending JP2011023941A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009166624A JP2011023941A (ja) 2009-07-15 2009-07-15 フリップフロップおよび半導体回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009166624A JP2011023941A (ja) 2009-07-15 2009-07-15 フリップフロップおよび半導体回路

Publications (1)

Publication Number Publication Date
JP2011023941A true JP2011023941A (ja) 2011-02-03

Family

ID=43633630

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009166624A Pending JP2011023941A (ja) 2009-07-15 2009-07-15 フリップフロップおよび半導体回路

Country Status (1)

Country Link
JP (1) JP2011023941A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013089171A (ja) * 2011-10-21 2013-05-13 Fujitsu Ltd 演算処理装置
CN114567295A (zh) * 2022-04-28 2022-05-31 深圳比特微电子科技有限公司 具有多路选择器功能的混合相位锁存器
CN114567293A (zh) * 2022-04-28 2022-05-31 深圳比特微电子科技有限公司 锁存器以及包括锁存器的处理器和计算装置
CN114567297A (zh) * 2022-04-28 2022-05-31 深圳比特微电子科技有限公司 D触发器以及包括d触发器的处理器和计算装置
CN114567292A (zh) * 2022-04-28 2022-05-31 深圳比特微电子科技有限公司 静态锁存器以及包括静态锁存器的处理器和计算装置

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013089171A (ja) * 2011-10-21 2013-05-13 Fujitsu Ltd 演算処理装置
CN114567295A (zh) * 2022-04-28 2022-05-31 深圳比特微电子科技有限公司 具有多路选择器功能的混合相位锁存器
CN114567293A (zh) * 2022-04-28 2022-05-31 深圳比特微电子科技有限公司 锁存器以及包括锁存器的处理器和计算装置
CN114567297A (zh) * 2022-04-28 2022-05-31 深圳比特微电子科技有限公司 D触发器以及包括d触发器的处理器和计算装置
CN114567292A (zh) * 2022-04-28 2022-05-31 深圳比特微电子科技有限公司 静态锁存器以及包括静态锁存器的处理器和计算装置
CN114567295B (zh) * 2022-04-28 2023-01-24 深圳比特微电子科技有限公司 具有多路选择器功能的混合相位锁存器
WO2023207351A1 (zh) * 2022-04-28 2023-11-02 深圳比特微电子科技有限公司 锁存器以及包括锁存器的处理器和计算装置

Similar Documents

Publication Publication Date Title
US7868677B2 (en) Low power flip-flop circuit
JP5807333B2 (ja) ディレイラッチ回路、および、ディレイフリップフロップ
TWI807305B (zh) 反相輸出動態d觸發器
US9853630B2 (en) Skew-tolerant flip-flop
EP2664063B1 (en) Flop type selection for very large scale integrated circuits
US20130021078A1 (en) Latch circuit with a bridging device
JP2011023941A (ja) フリップフロップおよび半導体回路
JP2007184925A (ja) パルス・スタティック・フリップフロップ
US20080054952A1 (en) Circuit for switching between two clock signals independently of the frequency of the clock signals
US9825636B1 (en) Apparatus and method for reduced latency signal synchronization
US7612597B2 (en) Electronic circuit
JP2011233559A (ja) 半導体集積回路及びその設計方法
JP4626656B2 (ja) パルスラッチ回路
US8291363B2 (en) Method of measuring setup time with consideration of characteristic of absorbing clock skew in a pulse-based flip-flop
JP2919378B2 (ja) Pll回路
JP2008172779A (ja) 高速動作のためのフリップフロップ
JP5372613B2 (ja) フリップフロップ、半導体集積回路、半導体デバイスおよびブレードサーバ
JP4419633B2 (ja) 論理回路設計システム、論理回路設計方法およびそのプログラム
US8816759B2 (en) Electric circuit and semiconductor device
JP2008283248A (ja) ホールドフリーレジスタセル
JP2014087008A (ja) 半導体装置及びその設計方法
JP2010252012A (ja) 半導体集積回路およびその動作方法
US9912338B1 (en) Apparatus and method for reduced latency signal synchronization
JP2006237664A (ja) ラッチ回路またはフリップフロップ回路
JP2007336216A (ja) フリップフロップ回路およびそれを用いた半導体集積回路装置