(57)【要約】【課題】メタステーブル状態を発生させることなく、対象論理回路ブロックにおける非同期リセットを解除する。【解決手段】シンクロナイザ１０の非同期リセット入力端子に、対象論理回路１００に対して任意の同期関係にある非同期リセット入力信号ｒｓｔ＿ｎが入力され、Ｄ入力端子に、対象論理回路ブロック１００に対して任意の同期関係にあるソフトウェアリセット信号ｓｒｓｔ＿ｎが入力され、クロック入力端子に、クロック入力信号ｃｌｋが入力されると、シンクロナイザ１０は、対象論理回路１００に非同期リセット信号ｒｅｓｅｔを出力する。ゲーティングセル２０は、クロックイネーブル端子に、シンクロナイザ１０から出力された非同期リセット信号が入力され、クロック入力端子に、クロック入力信号ｃｌｋが入力されると、対象論理回路１００にクロック信号ｃｌｏｃｋを出力する。【選択図】      図１
2009080634.tif 000002
【特許請求の範囲】
【請求項１】
対象論理回路に入力される非同期リセット信号と、クロック信号とを出力するリセットクロック制御回路であって、
縦続接続された複数のフリップフロップから構成され、非同期リセット入力端子に、前記対象論理回路に対して任意の同期関係にある第１のリセット信号が入力され、Ｄ入力端子に、前記対象論理回路ブロックに対して任意の同期関係にある第２のリセット信号が入力され、クロック入力端子に、クロック入力信号が入力されると、前記対象論理回路に非同期リセット信号を出力するシンクロナイザと、
クロックイネーブル端子に、前記シンクロナイザから出力された前記非同期リセット信号が入力され、クロック入力端子に、クロック入力信号が入力されると、前記対象論理回路にクロック信号を出力するゲーティングセルと、
を備えることを特徴とするリセットクロック制御回路。
【請求項２】
縦続接続された複数のフリップフロップから構成され、非同期リセット入力端子に、前記第１のリセット信号が入力され、Ｄ入力端子に、前記対象論理回路ブロックのクロックをオン又はオフ制御するためのクロックイネーブル信号が入力され、クロック入力端子に、クロック入力信号が入力される第２のシンクロナイザを更に備え、
前記ゲーティングセルの前記クロックイネーブル端子に、前記第２のシンクロナイザからの出力と、シンクロナイザからの出力の論理積が入力されることを特徴とする請求項１に記載のリセットクロック制御回路。
【請求項３】
前記シンクロナイザにおいて、初段のフリップフロップへ入力される前記第１のリセット信号は、遅延素子によって、前記シンクロナイザに含まれる前記初段のフリップフロップ以外のフリップフロップに比べて、遅く入力されることを特徴とする請求項１に記載のリセットクロック制御回路。
【請求項４】
前記第２のシンクロナイザにおいて、初段のフリップフロップへ入力される前記第１のリセット信号は、遅延素子によって、前記シンクロナイザに含まれる前記初段のフリップフロップ以外のフリップフロップに比べて、遅く入力されることを特徴とする請求項２に記載のリセットクロック制御回路。
【請求項５】
前記シンクロナイザからの出力を遅延させて、前記ゲーティングセルに入力するシフトレジスタ
を更に備えることを特徴とする請求項１に記載のリセットクロック制御回路。
【請求項６】
対象論理回路に入力される非同期リセット信号と、クロック信号とを出力するリセットクロック制御回路であって、
第１のリセット信号と第２のリセット信号との論理積を、非同期リセット信号として出力する第１の論理積回路と、
前記第２のリセット信号を遅延させるシフトレジスタと、
縦続接続された複数のフリップフロップから構成され、非同期リセット入力端子に、前記第１のリセット信号が入力され、Ｄ入力端子に、前記対象論理回路ブロックのクロックをオン又はオフ制御するためのクロックイネーブル信号が入力され、クロック入力端子に、クロック入力信号が入力されるシンクロナイザと、
前記シフトレジスタからの出力と、前記シンクロナイザからの出力の論理積を出力する第２の論理積回路と、
クロックイネーブル端子に、前記第２の論理積回路からの出力が入力され、クロック入力端子に、クロック入力信号が入力されると、前記対象論理回路にクロック信号を出力するゲーティングセルと、
を備えることを特徴とするリセットクロック制御回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、対象論理回路に入力される非同期リセット信号と、クロック信号とを出力するリセットクロック制御回路に関する。
【背景技術】
【０００２】
クロック同期式の論理回路で構成されるＬＳＩ（Large Scale Integration）は、動作開始時に、所定の状態に初期化する必要がある。このため、初期化する際には、ＬＳＩの外部端子に、リセット信号が入力される。
【０００３】
このリセット方法には、同期リセットと非同期リセットの２種類がある。クロックに依存することなく直接的にかつ確実にリセットできるため、非同期リセットが用いられることが多い。
【０００４】
非同期リセット信号は、フリップフロップ（ＦＦ）の非同期リセット入力（Ｒ入力）又は非同期セット入力（Ｓ入力）に供給されて用いられる。非同期リセット信号がアクティブのとき、フリップフロップのＱ出力は、それぞれ０または１の状態になる。なお、一般的に非同期リセット信号はアクティブＬｏｗであることが多い。ここで、アクティブＬｏｗとは、論理０、すなわち、信号レベルがＬｏｗのときに、リセットが有効になることである。
【０００５】
図１９を参照して、非同期リセット入力信号ｒｓｔ＿ｎが、回路に入力されている場合を説明する。図１９においては、非同期リセット入力信号ｒｓｔ＿ｎと、クロック入力信号ｃｌｋが、対象論理回路ブロック１００に入力されている。ここで、対象論理回路ブロック１００は、任意の論理回路である。非同期リセット入力信号ｒｓｔ＿ｎは、対象論理回路ブロック１００に含まれるフリップフロップのＳ入力やＲ入力にそれぞれ接続されている。図１９においては、非同期リセットの解除に伴って、リセット対象である対象論理回路ブロック１００が動作を開始する。
【０００６】
この場合、リセット解除タイミングが、クロックの立ち上がりエッジに対するタイミング制約を満たさない場合、メタステーブル状態が発生する可能性がある。メタステーブルとは、セットアップ時間やホールド時間が守られなかった場合に、出力信号が不安定な状態になることである。リセット信号は、リセット対象の対象論理回路ブロックの動作の基準クロックとは非同期の信号である。従って、クロックに対してどのタイミングで変化するか不定であるので、メタステーブル状態が発生する可能性がある。
【０００７】
ここで、図２０に示すように、非同期リセットの解除タイミングは、リリースタイム（Release Time）Ｔａより前か、リムーバルタイム（Removal Time）Ｔｂより後でなければならない。従って、リリースタイムＴａとリムーバルタイムＴｂの間は、遷移禁止期間であり、非同期リセットは解除することができない。この範囲で非同期リセットが解除されると、リセット状態と異なる状態の信号がデータ入力（Ｄ入力）に供給されている場合、メタステーブル状態になる可能性がある。これにより、フリップフロップのＱ出力が暫くの間、不安定になったり、発振したりすることがある。
【０００８】
図２１を参照して、メタステーブルの状態になる場合について説明する。例えば、Ｄ入力が１の状態で、リリースタイムとリムーバルタイムとの間で非同期リセットが解除されたとする。その場合、Ｑ出力は、発振後に「１」の値で安定する、発振後に「０」の値で安定する、中間電位後に「０」または「１」の値で安定するなど、不安定な状態になってしまう。このような状態が発生すると、対象論理回路ブロック１００が誤作動してしまう可能性がある。
【０００９】
このような状態を回避するために、図２２に示すように、非同期リセット信号を同期化して対象論理回路ブロック１００に入力する方法がある。図２２に示す回路には、非同期リセット信号を同期化するシンクロナイザ９０１を備えている。
【００１０】
シンクロナイザ９０１は、図２３に示すように、フリップフロップを２段縦続接続した回路である。シンクロナイザ９０１は、少なくとも２段縦続接続されていればよく、フリップフロップが３段以上縦続接続されてもよい。少なくとも２段縦続接続することにより、１段目のフリップフロップで発生したメタステーブルを、２段目のフリップフロップでサンプリングしなおすことができる。これにより、メタステーブルの影響を後段に伝えにくくすることができる。また、シンクロナイザ９０１においては、メタステーブルの発生を極力抑えるため、２個のフリップフロップをできるだけ近接配置することもある。また、１段目のフリップフロップに、メタステーブルが発生しにくい特殊なフリップフロップを用いる場合もある。このような構成を備えることにより、一般に、１段目のフリップフロップでメタステーブルが発生しても、２段目のフリップフロップでは、常に安定した出力を得ることができる。
【００１１】
図２２に示すように、Ｄ入力には固定値「１」を入力し、２つのフリップフロップの非同期リセット端子に非同期リセット信号を入力する構成をとっている。これにより、非同期リセットを解除した後、固定値「１」が、クロックで同期化されて出力される。この同期化された信号が、対象論理回路ブロック１００の非同期リセット信号として用いられる。
【００１２】
図２４は、図２２に示した回路の動作タイミングを示した図である。非同期リセット入力信号は、シンクロナイザ９０１で同期化されて、Ｑ出力として対象論理回路ブロック１００に供給される。従って、対象論理回路ブロック１００の各フリップフロップの非同期リセット端子への遅延時間が、１クロックサイクル以内に抑えることができれば、対象論理回路ブロック１００の各フリップフロップにおいて、メタステーブルを避け、かつ同一クロックサイクル内にリセットを行うことができる。
【００１３】
また、メタステーブルを回避する方法として、クロック信号を遅延させる方法がある（例えば、特許文献１参照）。この特許文献１に記載の半導体集積回路装置は、リセット信号がアクティブから非アクティブに遷移した際に、クロック信号を所定の時間だけ遅延させた遅延クロック信号を生成する遅延部と、遅延部に生成された遅延クロック信号に同期した非アクティブの遅延リセット信号を生成し、リセットの必要なそれぞれの論理ブロックに出力する信号同期部とよりなるリセット信号解除手段を有する。
【００１４】
一方、昨今の回路技術の発達に伴い、数１００万ゲートを越える回路規模のＬＳＩがある。また、数１００ＭＨｚを越える動作周波数を持つ回路や、ＬＳＩのテクノロジによっては、数１０ＭＨｚの動作周波数を持つ回路もある。
【特許文献１】特許第３６２６３４３号公報
【発明の開示】
【発明が解決しようとする課題】
【００１５】
しかしながら、従来のシンクロナイザ９０１を用いることによってメタステーブルを回避する方法は問題がある。
【００１６】
図２２に示す回路では、非同期リセット入力信号ｒｓｔ＿ｎは、図２４に示すマージンの時間内に対象論理回路ブロック１００の各フリップフロップへ入力されなければならない。各フリップフロップへの非同期リセット入力信号ｒｓｔ＿ｎの到達時間のばらつきが発生したとしても、遅延時間がマージン時間を越えると、各フリップフロップにおいて、タイミング違反や、異なるクロックサイクルでの初期化動作となってしまう場合がある。これにより、対象論理回路ブロック１００の誤動作につながる恐れがある。
【００１７】
対象となるフリップフロップの全てに、非同期リセット入力信号ｒｓｔ＿ｎの遅延時間の制約を１クロックを１クロック未満に抑えることは難しい。可能であっても、チップ面積の増大や、レイアウト時間の増大による開発期間の増大につながる問題がある。特に上述したように、大規模回路においては、非同期リセット入力信号ｒｓｔ＿ｎの遅延時間の制約は顕著である。
【００１８】
詳述すると、対象論理回路ブロック１００の各フリップフロップが同一クロックサイクルで初期化されずに、各フリップフロップが個別のクロックサイクルで初期化されると、既に動作を開始しているフリップフロップとリセット状態のフリップフロップが混在するサイクルが存在することになる。対象論理回路ブロックの中には、このような状態を想定せずに設定されている場合があり、場合によっては、初期化が正しく行われず、回路が正常動作しない可能性がある。
【００１９】
一般的に、リセット系の信号は、クロック系の信号と同様に、回路内でもっとも分岐が多く、クロック入力よりも入力容量が大きい。従って、リセット系の信号は、クロック信号と同じ分岐数であっても、配線容量において、クロック系の信号の２〜３倍を要する。そのため、リセット系の信号の遅延時間は、テクノロジや回路規模によっては、１０数ｎｓｅｃ、あるいはそれ以上に及ぶ場合もある。このため、リセット系の信号は、負荷の分散を目的として、ＣＴＳ（Clock Tree Synthesis）を用いる場合がある。しかし、クロック系の信号とは異なり、非同期リセット信号は、タイミングを考慮することなくレイアウトされるので、対象論理回路ブロック１００内の個々のフリップフロップに到着する時間はまちまちであり、同一クロックサイクルで初期化することができない。
【００２０】
これを回避するために、リセット経路にもタイミング制約を与えてレイアウトする方法がある。しかし、回路が大規模になるに伴い、また動作周波数が大きくなるに伴い、タイミング制約を遵守することが困難になる場合がある。
【００２１】
一方、上述した特許文献１に記載の方法においては、図２５に示すように、あるノードａに供給されるクロック信号は、遅延されたクロック信号である。そのため、データ出力部Ｑで生成されるリセット信号は、対象論理回路ブロック１００に供給されるクロックの立ち上がりよりも、大きく遅延する。従って、対象論理回路ブロック１００への非同期リセット信号の遅延時間のばらつきが許されるマージンの時間は、図２２の場合に比べて短くなってしまう。これにより、上述した特許文献１に記載の方法においては、回路設計におけるレイアウトの条件が厳しくなってしまう問題がある。
【００２２】
更に、図２５に示すように、非同期リセット入力信号と、クロックの関係によっては、ＡＮＤ出力の最初のパルスが、フリップフロップの最小幅を満たさないような髭状のパルス（ハザード）になってしまう可能性がある。その場合、フリップフロップが正常に動作しないので、データ出力部のＱ出力が、不安定になってしまう問題がある。図２５において、ＲＴとは、非同期リセット入力信号である。
【００２３】
そこで本発明は、メタステーブル状態を発生させることなく、対象論理回路ブロックにおける非同期リセットを解除することのできるリセットクロック制御回路を提供することを目的とする。
【００２４】
また本発明は、対象論理回路ブロックにおける非同期リセット信号の到達の遅延時間のばらつき回避して、リセットの同時性を保証するリセットクロック制御回路を提供することを目的とする。
【課題を解決するための手段】
【００２５】
上記課題を解決するために、本発明の第１の特徴は、対象論理回路（１００）に入力される非同期リセット信号（ｒｅｓｅｔ）と、クロック信号（ｃｌｏｃｋ）とを出力するリセットクロック制御回路（１）に関する。すなわち、本発明の第１の特徴に係るリセットクロック制御回路（１）は、縦続接続された複数のフリップフロップから構成され、非同期リセット入力端子に、対象論理回路（１００）に対して任意の同期関係にある第１のリセット信号（ｒｓｔ＿ｎ）が入力され、Ｄ入力端子に、対象論理回路ブロック（１００）に対して任意の同期関係にある第２のリセット信号（ｓｒｓｔ＿ｎ）が入力され、クロック入力端子に、クロック入力信号（ｃｌｋ）が入力されると、対象論理回路（１００）に非同期リセット信号（ｒｅｓｅｔ）を出力するシンクロナイザ（１０）と、クロックイネーブル端子に、シンクロナイザ（１０）から出力された非同期リセット信号が入力され、クロック入力端子に、クロック入力信号（ｃｌｋ）が入力されると、対象論理回路（１００）にクロック信号（ｃｌｏｃｋ）を出力するゲーティングセル（２０）と、を備える。
【００２６】
ここで、縦続接続された複数のフリップフロップから構成され、非同期リセット入力端子に、第１のリセット信号（ｒｓｔ＿ｎ）が入力され、Ｄ入力端子に、対象論理回路ブロック（１００）のクロックをオン又はオフ制御するためのクロックイネーブル信号（ｃｌｋｅｎ）が入力され、クロック入力端子に、クロック入力信号（ｃｌｋ）が入力される第２のシンクロナイザ（１０ａ）を更に備えてもよい。この場合、ゲーティングセル（２０）のクロックイネーブル端子に、第２のシンクロナイザ（１０ａ）からの出力と、シンクロナイザ（１０）からの出力の論理積が入力される。
【００２７】
また、シンクロナイザ（１０）において、初段のフリップフロップ（１１ａ）へ入力される第１のリセット信号（ｒｓｔ＿ｎ）は、遅延素子（１２）によって、シンクロナイザ（１０）に含まれる初段のフリップフロップ（１１ａ）以外のフリップフロップ（１１ｂ）に比べて、遅く入力されてもよい。
【００２８】
同様に、第２のシンクロナイザ（１０ｃ）において、初段のフリップフロップ（１１ｃ）へ入力される第１のリセット信号（ｒｓｔ＿ｎ）は、遅延素子（１２ｂ）によって、シンクロナイザ（１０ｃ）に含まれる初段のフリップフロップ（１１ｃ）以外のフリップフロップ（１１ｄ）に比べて、遅く入力されてもよい。
【００２９】
更に、シンクロナイザ（１０）からの出力を遅延させて、ゲーティングセル（２０）に入力するシフトレジスタ（４０）を備えてもよい。
【００３０】
本発明の第２の特徴は、対象論理回路（１００）に入力される非同期リセット信号（ｒｅｓｅｔ）と、クロック信号（ｃｌｏｃｋ）とを出力するリセットクロック制御回路（１ｆ）に関する。すなわち、本発明の第２の特徴に係るリセットクロック制御回路（１ｆ）は、第１のリセット信号（ｒｓｔ＿ｎ）と第２のリセット信号（ｓｒｓｔ＿ｎ）との論理積を、非同期リセット信号（ｒｅｓｅｔ）として出力する第１の論理積回路（３１）と、第２のリセット信号（ｓｒｓｔ＿ｎ）を遅延させるシフトレジスタ（４０）と、縦続接続された複数のフリップフロップから構成され、非同期リセット入力端子に、第１のリセット信号（ｒｓｔ＿ｎ）が入力され、Ｄ入力端子に、対象論理回路ブロック（１００）のクロックをオン又はオフ制御するためのクロックイネーブル信号（ｃｌｋｅｎ）が入力され、クロック入力端子に、クロック入力信号（ｃｌｋ）が入力されるシンクロナイザ（１０ａ）と、シフトレジスタ（４０）からの出力と、シンクロナイザ（１０ａ）からの出力の論理積を出力する第２の論理積回路（３０）と、クロックイネーブル端子に、前記第２の論理積回路（３０）からの出力が入力され、クロック入力端子に、クロック入力信号（ｃｌｋ）が入力されると、対象論理回路（１００）にクロック信号（ｃｌｏｃｋ）を出力するゲーティングセル（２０）と、を備える。
【発明の効果】
【００３１】
本発明によれば、対象論理回路ブロックのクロックに同期した非同期リセット信号を安定して生成し、かつ同一クロックサイクル内のリセットを実現することにより、レイアウト時の負担をなくすことができるリセットクロック制御回路を提供することができる。
【発明を実施するための最良の形態】
【００３２】
次に、図面を参照して、本発明の実施の形態を説明する。以下の図面の記載において、同一又は類似の部分には同一又は類似の符号を付している。
【００３３】
発明を実施するための最良の形態においては、特に断りのない限り、非同期リセット回路において、非同期リセット信号がアクティブＬｏｗである場合について説明している。また、本願発明におけるフリップフロップは、クロックの立ち上がり又は立ち下がりのいずれかで動作してもよいし、混在していても適用可能であるが、発明を実施するための最良の形態においては、フリップフロップが、全て立ち上がりエッジで動作する場合について説明する。
【００３４】
また、リセット時に０にするか１にするかは、回路の目的に依存するが、どちらも非同期リセット信号を使って、その値にする動作に変わりはない。従って、発明を実施するための最良の形態においては、特に断りのない限り、非同期リセット信号を使って、Ｑ出力を０または１の所定の状態にすることを、「非同期リセットをかける」または単に「リセットする」と表現する。
【００３５】
また、本発明の実施の形態においては、クロック関係が非同期の関係の場合について説明しているが、同期関係にあるクロックを入力しても構わない。非同期関係にあるクロックに対応した回路は、任意の位相関係にあるクロックに対しても成り立つため、非同期クロックのかわりに、同期関係にあるクロックを入力しても問題がない。従って、実施の形態において、「非同期」という文言は、「同期」と排他関係にあるものではなく、「同期及び非同期を問わず、任意の同期関係である」ことを意味する。
【００３６】
（実施の形態）  
図１を参照して、本発明の実施の形態に係るリセットクロック制御回路１を説明する。
【００３７】
図１に示す本発明の実施の形態に係るリセットクロック制御回路１は、対象論理回路１００に入力される非同期リセット信号ｒｅｓｅｔと、クロック信号ｃｌｏｃｋとを出力する。実施の形態に係るリセットクロック制御回路１は、シンクロナイザ１０と、ゲーティングセル２０とを備える。
【００３８】
シンクロナイザ１０は、縦続接続された複数のフリップフロップ１１ａ、１１ｂから構成される。シンクロナイザ１０の非同期リセット入力端子に、対象論理回路１００に対して任意の同期関係にある非同期リセット入力信号（第１のリセット信号）ｒｓｔ＿ｎが入力され、Ｄ入力端子に、対象論理回路ブロック１００に対して任意の同期関係にあるソフトウェアリセット信号（第２のリセット信号）ｓｒｓｔ＿ｎが入力され、クロック入力端子に、クロック入力信号ｃｌｋが入力されると、シンクロナイザ１０は、対象論理回路１００に非同期リセット信号ｒｅｓｅｔを出力する。ここでフリップフロップ１１ａ、１１ｂは、例えば、Ｄタイプのフリップフロップである。
【００３９】
ゲーティングセル２０は、クロックイネーブル端子に、シンクロナイザ１０から出力された非同期リセット信号が入力され、クロック入力端子に、クロック入力信号ｃｌｋが入力されると、対象論理回路１００にクロック信号ｃｌｏｃｋを出力する。
【００４０】
ソフトウェアリセット信号ｓｒｓｔ＿ｎは、シンクロナイザ１０によって、非同期リセット入力信号ｒｓｔ＿ｎと同期されて、非同期リセット信号ｒｅｓｅｔを出力する。シンクロナイザ１０を経由したソフトウェアリセット信号ｓｒｓｔ＿ｎと、クロックイネーブル信号ｃｌｋｅｎは、論理積回路３０に入力される。論理積回路３０によって算出された値が、ゲーティングセル２０に入力され、ゲーティングセル２０から、クロック信号ｃｌｏｃｋが出力される。
【００４１】
図１に示すリセットクロック制御回路１は、図２に示すように、非同期リセット信号ｒｅｓｅｔと、クロック信号ｃｌｏｃｋとを、対象論理回路ブロック１００に供給する。対象論理回路ブロック１００は、非同期リセット信号ｒｅｓｅｔとクロック信号ｃｌｏｃｋとに基づいて、任意の機能を有する回路である。
【００４２】
リセットクロック制御回路１には、非同期リセット入力信号ｒｓｔ＿ｎ、制御信号ｔｅｎ、ソフトウェアリセット信号ｓｒｓｔ＿ｎ、クロックイネーブル信号ｃｌｋｅｎ、クロック信号ｃｌｋが入力される。
【００４３】
非同期リセット入力信号ｒｓｔ＿ｎは、例えば、ＬＳＩ外部から供給される非同期リセット信号である。非同期リセット入力信号ｒｓｔ＿ｎは、ＬＳＩ内部の他のブロックで生成されたリセット制御信号であってもよい。クロック信号ｃｌｋは、リセットクロック制御装置１を制御するとともに、対象論理回路ブロック１００のクロック信号ｃｌｏｃｋの元になる信号である。
【００４４】
制御信号ｔｅｎは、対象論理回路ブロック１００をテストするか否かを制御するための制御信号である。一般的には、制御信号ｔｅｎが「１」に設定されている場合に、テストされ、通常時には、「０」に設定されている。実施の形態においては、通常時の動作をするため、制御信号ｔｅｎは「０」に固定されているものとする。
【００４５】
ソフトウェアリセット信号ｓｒｓｔ＿ｎは、対象論理回路ブロック１００におけるリセット信号であって、非同期リセット入力信号ｒｓｔ＿ｎとは、非同期で動作する第２のリセット信号である。ソフトウェアリセット信号ｓｒｓｔ＿ｎは、対象論理回路ブロック１００を実行するソフトウェアからの制御によりリセットするための信号である。ソフトウェアによるリセット動作をしない場合は、ソフトウェアリセット信号ｓｒｓｔ＿ｎは、「１」に固定される。本実施の形態においては、ソフトウェアリセット信号ｓｒｓｔ＿ｎが入力される場合について説明するが、必ずしも入力されなくてもよい。
【００４６】
クロックイネーブル信号ｃｌｋｅｎは、対象論理回路ブロック１００のクロック信号ｃｌｏｃｋのオン又はオフを制御するための信号である。クロック信号ｃｌｏｃｋのオン又はオフを制御しない場合は、クロックイネーブル信号ｃｌｋｅｎは、「１」に固定される。本実施の形態においては、クロックイネーブル信号ｃｌｋｅｎが入力される場合について説明するが、必ずしも入力されなくてもよい。
【００４７】
ここで、図３を参照して、一般的なゲーティングセルを説明する。図３（ａ）は、ＡＮＤタイプのゲーティングセル２０ａである。ＡＮＤタイプのゲーティングセル２０ａは、ＨｉｇｈレベルラッチとＡＮＤゲートの組み合わせである。一方、図３（ｂ）は、ＯＲタイプのゲーティングセル２０ｂである。ＯＲタイプのゲーティングセル２０ｂは、ＬｏｗレベルラッチとＯＲゲートの組み合わせである。図３（ａ）及び図３（ｂ）に示した各ゲーティングセル２０ａ及び２０ｂは、クロックイネーブル入力信号ＣＥＮのＨｉｇｈ期間に対応する期間、ゲーテッドされたクロック信号ＧＣＬＫを出力する。
【００４８】
ゲーティングセル２０は、クロック信号をオン又はオフするために一般的に用いられる専用の論理素子である。クロック信号に同期したクロックイネーブ入力信号を、ＣＥＮ端子に入力することにより、髭のようなパルスを出すことなく、原クロック信号ＣＬＫに対して、遅延の影響が少ないクロック信号ＧＣＬＫを出力することができる。
【００４９】
本発明の実施の形態に係るゲーティングセル２０は、図４に示すように、図３に示した基本的なゲーティングセルを改良したもので、これも一般的に使用されている。具体的には、ｔｅｎ入力信号と、クロックイネーブル入力信号ｃｌｋｅｎが、ＯＲゲートを通してＣＥＮ端子に接続されている。これにより、ＬＳＩのテスト時に、常にクロックをオンにすることができる。また、図４に示すゲーティングセル２０には、故障検出のため、クロックイネーブル入力信号ｃｌｋｅｎをそのまま出力するｏｂｓ端子が設けられている。この故障は、例えば、クロックイネーブル入力信号が入力されるｃｌｋｅｎ端子を制御する信号を生成する回路における故障である。ここで、ｏｂｓ端子の出力には、図５に示すように、スキャンテスト用フリップフロップ２１が接続されてもよい。本発明の実施の形態においては、スキャンテスト用フリップフロップ２１は、本発明の目的とは関係ないため、図によっては省略されている場合がある。
【００５０】
ここで、図６を参照して、実施の形態に係るリセットクロック制御回路１の動作タイミングを説明する。図６において、ソフトウェアリセット信号ｓｒｓｔ＿ｎと、クロックイネーブル信号ｃｌｋｅｎは、「１」に固定されている。
【００５１】
図１に示すように、非同期リセット入力信号ｒｓｔ＿ｎは、縦続接続された２段のフリップフロップ１１ａ及び１１ｂで構成されるシンクロナイザの非同期リセット端子に入力される。マスターリセットが解除されると、１段目の第１のフリップフロップ１１ａの入力信号ｓｒｓｔ＿ｎ（＝１）が、２段目の第２のフリップフロップ１１ｂから同期化されて出力される。第１のフリップフロップ１１ａは、クロックの立ち上がりと、非同期リセット入力信号ｒｓｔ＿ｎの立ち上がりがほぼ同時の場合、第１のフリップフロップ１１ａのハッチングされた領域のタイミングで、メタステーブルが発生する場合がある。このメタステーブル状態が、１クロック以内に収束すれば、次のクロックの立ち上がりで、「０」または「１」に安定しているが、どちらになるかは不定である。図６において、第１のフリップフロップ出力が「１」で安定する場合を、ケース１として、「０」で安定する場合をケース２として、記載している。図６に示すように、第２のフリップフロップ１１ｂの出力は、「０」または「１」のいずれかで安定するかによって、１クロックのタイミングのずれが発生する。いずれの場合でも、第２のフリップフロップ１１ｂの出力は、クロック信号に同期化して出力され、図１に示されるように、セレクタ５０に入力される。
【００５２】
セレクタ５０は、０側にシンクロナイザ１０の出力が接続され、１側に非同期リセット入力信号ｒｓｔ＿ｎが入力されている。セレクタ５０は、０側または１側のいずれかの信号を出力する。セレクタ５０には、制御信号ｔｅｎも入力される。テスト時には、制御信号ｔｅｎに従って、セレクタ５０は動作する。
【００５３】
セレクタ５０は、通常時は０側に固定されており、シンクロナイザ１０から、第２のフリップフロップ１１ｂの出力が入力されると、セレクタ５０は、この出力を、非同期リセット信号ｒｅｓｅｔとして、出力する。
【００５４】
一方、シンクロナイザ１０の第２のフリップフロップ１１ｂの出力は、論理積回路３０を経由して、ゲーティングセル２０に入力される。このゲーティングセル２０は、例えば、ＡＮＤタイプである場合、その出力は、図６に示すクロック信号ｃｌｏｃｋのタイミングで、対象論理回路ブロック１００に入力される。
【００５５】
図１においては、クロックイネーブル信号ｃｌｋｅｎを「１」に固定する場合、クロック信号のオン又はオフは、非同期リセット入力信号ｒｓｔ＿ｎと、ソフトウェアリセット信号ｓｒｓｔ＿ｎの状態のみに依存する。具体的には、非同期リセット入力信号ｒｓｔ＿ｎと、ソフトウェアリセット信号ｓｒｓｔ＿ｎとのいずれもが、リセット解除した場合、常にクロックはオン状態になる。従って、消費電力削減のため、内部状態を保ったままクロックを止めるためには、クロックイネーブル信号ｃｌｋｅｎを、任意の期間、「０」に固定すればよい。このとき、クロックイネーブル信号ｃｌｋｅｎは、クロック入力信号ｃｌｋに同期して変化させる必要がある。すなわち、クロックをオンする場合は、クロック入力信号ｃｌｋに同期して「０」から「１」に変化させ、クロックをオフする場合は、クロック入力ｃｌｋに同期して「１」から「０」に変化させる。
【００５６】
ここで、図７を参照して本発明の実施の形態に係るソフトウェアリセット信号ｓｒｓｔ＿ｎを説明する。ソフトウェアリセット信号ｓｒｓｔ＿ｎは、外部から入力される非同期リセットとは別に、論理回路ブロックごとに選択してリセットするために設けられた第２のリセット制御信号である。他の論理回路ブロックに影響を与えることなく、所定の論理回路ブロックだけを初期化したり、その論理回路ブロックの動作自体を完全に停止させたりすることに利用できる。アプリケーションから呼び出し、プログラム内でソフトウェア的にリセットをかけることから、ソフトリセットと呼ばれることもある。
【００５７】
一般的に、対象論理回路ブロック１００にソフトリセットをかける場合は、単にソフトウェアリセット信号ｓｒｓｔ＿ｎを「０」に設定する。解除する場合は、ソフトウェアリセット信号ｓｒｓｔ＿ｎを「１」に設定する。
【００５８】
本発明の実施の形態においては、ソフトウェアリセット信号ｓｒｓｔ＿ｎを、シンクロナイザ１０のＤ入力端子に入力している。従ってソフトウェアリセット信号ｓｒｓｔ＿ｎは、非同期の制御信号とすることができ、自由度が高くなる。特に図７に示すように、ソフトウェアリセットが解除されたときに、第１のフリップフロップ１１ａでメタステーブル状態になっても、第２のフリップフロップ１１ｂからは、メタステーブルのない同期化された非同期リセット信号を生成することができる。
【００５９】
図１に示すリセットクロック制御回路１においては、非同期リセットが解除された後に、第２のフリップフロップ１１ｂの出力が「１」になってから、最初のクロックが立ち上がるまでは、ほぼ１クロックである。従って、対象論理回路ブロック１００内の各フリップフロップの非同期リセット端子までの非同期リセット信号ｒｅｓｅｔの遅延を、このマージンより小さくなるようにレイアウトすればよい。
【００６０】
また、図１に示す実施の形態に係るシンクロナイザ１においては、２段のＤタイプのフリップフロップを接続したもので説明したが、フリップフロップが３段以上縦続接続されてもよい。
【００６１】
（第１の変形例）
図８を参照して、本発明の実施の形態の第１の変形例に係るリセットクロック制御回路１ａを説明する。図８に示すリセットクロック制御回路１ａは、図１に示すリセットクロック制御回路１と比べて、クロックイネーブル信号ｃｌｋｅｎも、ソフトウェアリセット信号ｓｒｓｔ＿ｎと同様に、シンクロナイザ１０ａに入力されている。
【００６２】
図８に示す第１の変形例に係るリセットクロック制御回路１ａは、縦続接続された複数のフリップフロップから構成され、非同期リセット入力端子に、非同期リセット入力信号（第１のリセット信号）ｒｓｔ＿ｎが入力され、Ｄ入力端子に、対象論理回路ブロック１００のクロックをオン又はオフ制御するためのクロックイネーブル信号ｃｌｋｅｎが入力され、クロック入力端子に、クロック入力信号ｃｌｋが入力される第２のシンクロナイザ１０ａを更に備える。このとき、ゲーティングセル２０のクロックイネーブル端子に、第２のシンクロナイザ１０ａからの出力と、シンクロナイザ１０からの出力の論理積が入力される。
【００６３】
クロックイネーブル信号ｃｌｋｅｎが入力されたシンクロナイザ１０ａの出力は、ソフトウェアリセット信号ｓｒｓｔ＿ｎが入力されたシンクロナイザ１０の出力とともに、論理積回路３０に入力される。論理積回路３０によって出力される論理積の値は、ゲーティングセル２０のクロックイネーブル端子に入力される。
【００６４】
クロックイネーブル信号ｃｌｋｅｎが「１」に固定されている場合、クロックイネーブル信号ｃｌｋｅｎを同期化するシンクロナイザ１０ａも、ソフトウェアリセット信号ｓｒｓｔ＿ｎを同期化するシンクロナイザ１０と同様の回路構成を備えるので、図６と同様に動作する。電源立ち上がり時に、ソフトウェアリセット信号ｓｒｓｔ＿ｎと、クロックイネーブル信号ｃｌｋｅｎのどちらも「１」の場合、クロック信号が出力されるタイミングは、ソフトウェアリセット信号ｓｒｓｔ＿ｎを同期化するシンクロナイザ１０と、クロックイネーブル信号ｃｌｋｅｎを同期化するシンクロナイザ１０ａのいずれかのシンクロナイザの出力のうち、遅い方の出力に依存する。
【００６５】
図８に示すリセットクロック制御回路１ａにおいては、非同期リセットが解除された後に、第２のフリップフロップ１１ｂの出力が「１」になってから、最初のクロックが立ち上がるまでは、ほぼ１クロックである。従って、対象論理回路ブロック１００内の各フリップフロップの非同期リセット端子までの非同期リセット信号ｒｅｓｅｔの遅延を、このマージンより小さくなるようにレイアウトすればよい。
【００６６】
また、図８に示す第１の変形例に係るシンクロナイザ１ａにおいては、２段のＤタイプのフリップフロップを接続したもので説明したが、フリップフロップが３段以上縦続接続されてもよい。
【００６７】
（第２の変形例）
図９を参照して、本発明の第２の変形例に係るリセットクロック制御回路１ｂを説明する。図９に示す第２の変形例に係るリセットクロック制御回路１ｂは、図８に示す第１の変形例に係るリセットクロック制御回路１ａと比べて、シンクロナイザ１０ｂが、遅延素子１２を備えている点が異なる。
【００６８】
図１及び図８において、シンクロナイザ１０の第１のフリップフロップ１１ａと第２のフリップフロップ１１ｂの非同期リセット端子に入力される非同期リセット入力信号ｒｓｔ＿ｎのタイミングによっては、第２のフリップフロップ１１ｂの出力においても、メタステーブルが発生し、シンクロナイザの意味をなさない場合がありえる。
【００６９】
具体的には、第２のフリップフロップ１１ｂのリセット解除時に、第１のフリップフロップの出力が「０」であれば、第２のフリップフロップ１１ｂにおいてメタステーブルが発生することはない。しかし、第２のフリップフロップの非同期リセット入力端子に入力される非同期リセット入力信号ｒｓｔ＿ｎが、第１のフリップフロップ１１ａに対し、１クロック遅れて到着する場合がある。この場合、第２のフリップフロップ１１ｂのリセット解除時にクロックが立ち上がり、入力信号の値「１」を取り込もうとして、メタステーブル状態になる場合がある。一般的に、シンクロナイザ１０の複数のフリップフロップは、近接に配置されるので、このような状況が発生する可能性は少ない。しかし、タイミングが保証されているわけではないので、動作周波数が高い場合は特に、このようなメタステーブルが発生する可能性がある。図９に示す第２の変形例に係るリセットクロック制御回路１ｂは、このような問題を解決したものである。
【００７０】
図９に示す第２の変形例に係るリセットクロック制御回路１ｂは、シンクロナイザ１０ｂにおいて、遅延素子１２を備え、第１のフリップフロップ１１ａへ入力される非同期リセット入力信号（第１のリセット信号）ｒｓｔ＿ｎは、遅延素子１２によって、シンクロナイザ１０に含まれる第１のフリップフロップ１１ａ以外の第２のフリップフロップ１１ｂ等に比べて、遅く入力される。
【００７１】
図９に示す第２の変形例に係るリセットクロック制御回路１ｂについて、図１０（ａ）を参照して説明する。図１０（ａ）に示すシンクロナイザ１０ｂは、上記のようなタイミングでメタステーブルが発生することを回避するために、第１のフリップフロップ１１ａの非同期リセット入力端子へ入力される信号は、図１０（ｂ）に示すように、非同期リセット入力信号ｒｓｔ＿ｎが遅延素子１２によって遅延されたものである。これにより、第１のフリップフロップ１１ａのリセット入力が、第２のフリップフロップ１１ｂのリセット入力より、遅れることを保証することができる。
【００７２】
ここで、遅延素子１２は、例えば、バッファなどで、所定の時間、信号を遅延させる素子である。実際の遅延量は、フリップフロップ間のクロックスキューや、マージンなどを想定して、適切な値が設定される。この遅延量は、プロセスやライブラリによって、適切な値が設定されることが好ましい。
【００７３】
図１１を参照して、第２の変形例に係るリセットクロック制御回路１ｂの動作タイミングを説明する。図１１において、ＲＥＳＥＴ１は、第１のフリップフロップ１１ａへの非同期リセット入力信号ｒｓｔ＿ｎの到着タイミングであって、ＲＥＳＥＴ２は、第２のフリップフロップ１１ｂへの非同期リセット入力信号ｒｓｔ＿ｎの到着タイミングである。第２のフリップフロップ１１ｂへの到着時刻が、第１のフリップフロップ１１ａの到着時刻より１クロック近く遅れてしまうと、第２のフリップフロップ１１ｂの出力（Ｑ２）において、メタステーブルが発生してしまう場合がある。一方、本発明の第２の変形例のように、第１のフリップフロップ１１aへの到着時刻が、第2のフリップフロップ１１bの到着時刻より遅くなれば、第２のフリップフロップ１１ｂの出力（Ｑ２）において、メタステーブルが発生することはなく、安定した値をとることができる。第２の変形例によれば、遅延素子１２で適切に遅延させた非同期リセット入力信号ｒｓｔ＿ｎを第１のフリップフロップ１１ａに入力させることにより、どのようなクロック周波数でも、第２のフリップフロップ１１ｂの出力において、メタステーブルの発生を防ぐことができる。
【００７４】
また、図９に示す第２の変形例に係るシンクロナイザ１ｂにおいては、２段のＤタイプのフリップフロップを接続したもので説明したが、フリップフロップが３段以上縦続接続されてもよい。この場合、初段のフリップフロップ１１ａに、２段目以降の他のどのフリップフロップよりも遅く、非同期リセット入力信号ｒｓｔ＿ｎが入力されればよい。２段目以降の非同期リセット入力信号ｒｓｔ＿ｎの信号がリセット入力端子に到達するタイミングは、お互いに任意に前後しても問題ない。
【００７５】
（第３の変形例）
図１２を参照して、本発明の第３の変形例に係るリセットクロック制御回路１ｃを説明する。図１２に示す第３の変形例に係るリセットクロック制御回路１ｃは、図９に示す第２の変形例に係るリセットクロック制御回路１ｂと比べて、シンクロナイザ１０ｃが、遅延素子１２ｂを備えている点が異なる。
【００７６】
図１２に示す第３の変形例に係るリセットクロック制御回路１ｃは、第２のシンクロナイザ１０ｃにおいて、遅延素子１２ｂを備え、第３のフリップフロップ１１ｃへ入力される非同期リセット入力信号（第１のリセット信号）ｒｓｔ＿ｎは、遅延素子１２ｂによって、シンクロナイザ１０ｃに含まれる第３のフリップフロップ１１ｃ以外の第４のフリップフロップ１１ｄ等に比べて、遅く入力される。
【００７７】
第３の変形例においては、クロックイネーブル信号ｃｌｋｅｎ用のシンクロナイザ１０ｃにおいても、初段の第３のフリップフロップ１１ｃの非同期リセット入力端子へ入力される信号は、非同期リセット入力信号ｒｓｔ＿ｎが遅延素子１２ｂによって遅延されたものである。これにより、第３のフリップフロップ１１ｃのリセット入力が、第４のフリップフロップ１１ｄのリセット入力より、遅れることを保証することができる。遅延素子１２ｂは、シンクロナイザ１０ｃに含まれるフリップフロップのうち、第２の遅延素子１２ｂに接続された第３のフリップフロップ１１ｃに、もっとも遅く非同期リセット信号ｒｓｔ＿ｎが入力されることを保証している。
【００７８】
（第４の変形例）
図１３を参照して、本発明の第４の変形例に係るリセットクロック制御回路１ｄを説明する。図１３に示す第４の変形例に係るリセットクロック制御回路１ｄは、図８に示す第１の変形例に係るリセットクロック制御回路１ａと比べて、シフトレジスタ４０を備えている点が異なる。
【００７９】
図８に示す第１の変形例に係るリセットクロック制御回路１ａ、図９に示す第２の変形例に係るリセットクロック制御回路１ｂ及び図１２に示す第３の変形例に係るリセットクロック制御回路１ｃにおいては、図６に示すように、対象論理回路ブロック１００において、非同期リセット信号のレイアウトのためのマージンは、１クロック弱である。この場合、対象論理回路ブロック１００が大きい場合や、動作周波数が高い場合は、この制約が厳しく、レイアウトが困難になる場合がある。
【００８０】
そこで、図１３に示す第４の変形例に係るリセットクロック制御回路１ｄは、シンクロナイザ１０からの出力を遅延させて、ゲーティングセル２０に入力するシフトレジスタ４０を更に備える。
【００８１】
リセットクロック制御回路１ｄにおいて、シンクロナイザ１０の出力が、シフトレジスタ４０に接続されている。シフトレジスタ４０は、ｎ段のフリップフロップが設けられている。シフトレジスタ４０は、非同期リセット信号が到達する時間を確保するために設けられている。
【００８２】
図１４を参照して、ｎ＝２の場合の動作タイミングを説明する。非同期リセット信号ｒｅｓｅｔ、具体的には、第２のフリップフロップ１１ｂの出力の立ち上がりから、シフトレジスタがない場合のクロック信号ｃｌｏｃｋの立ち上がりまでのマージンが１クロック弱である。一方、シフトレジスタ４０がある場合、第２のフリップフロップ１１ｂの出力は、シフトレジスタ４０によって約２クロック遅延される。従って、第２のフリップフロップ１１ｂの出力の立ち上がりから、シフトレジスタがある場合のクロック信号ｃｌｏｃｋの立ち上がりまでのマージンは３クロック弱となる。このように、シフトレジスタ４０によって、シフトレジスタに含まれるフリップフロップの段数分のクロック数に相当する遅延量をレイアウト時の余裕度として確保することができる。
【００８３】
従って、シフトレジスタ４０に、対象論理回路ブロック１００の動作周波数、プロセス、回路規模に応じて適切な段数のシフトレジスタを挿入することにより、対象論理回路ブロックのリセットラインに対して、タイミングを考慮することなく、レイアウトすることができる。
【００８４】
これにより、対象論理回路ブロック１００の全てのフリップフロップを、同一クロックサイクルで初期化することができる。従って、設計者は、設計時に、リセットタイミングのばらつきによって、フリップフロップがそれぞれ異なるタイミングで初期化されることを、考慮する必要が全くなくなる。また、ＡＳＩＣ（Application Specific Integrated Circuit）のレイアウト時に、リセットラインについては、タイミングを考慮したレイアウトを行う必要がなくなる。設計者は、対象論理回路ブロック１００のレイアウトが終了した後に、リセットラインの信号の到達時間のばらつきが、シフトレジスタの段数の時間より少ないことを確認するだけでよい。
【００８５】
なお、このシフトレジスタ４０の入出力は、通常動作時は「１」に固定されるため、ほとんど電力を消費しない。また、シフトレジスタ４０の回路規模も、対象論理回路ブロック１００の回路規模に比べると、無視できるほど小さい。
【００８６】
（第５の変形例）
図１５を参照して、本発明の第５の変形例に係るリセットクロック制御回路１ｅを説明する。図１５に示す第５の変形例に係るリセットクロック制御回路１ｅは、図１３に示す第４の変形例に係るリセットクロック制御回路１ｄと比べて、シンクロナイザ１０ｂが異なる。図１５に示すリセットクロック制御装置１ｅのシンクロナイザ１０ｂは、図９を参照して説明した第２の変形例に係るリセットクロック制御回路１ｂのシンクロナイザ１０ｂと同様である。
【００８７】
第５の変形例に係るリセットクロック制御回路１ｅは、シフトレジスタ４０により、対象論理回路ブロック１００の非同期リセット信号のレイアウトのためのマージンを確保する。更に、第５の変形例に係るリセットクロック制御回路１ｅは、シンクロナイザ１０ｂに設けられた遅延素子１２により、第１のフリップフロップ１１ａが、シンクロナイザ１０ｂに含まれる他のフリップフロップ１１ｂより遅く、非同期リセット入力信号ｒｓｔ＿ｎが入力される。
【００８８】
（第６の変形例）
図１６を参照して、本発明の第６の変形例に係るリセットクロック制御回路１ｆを説明する。図１６に示す第６の変形例に係るリセットクロック制御回路１ｆは、図１５に示す第５の変形例に係るリセットクロック制御回路１ｅと比べて、シンクロナイザ１０ｂを備えていない点が異なる。
【００８９】
第６の変形例に係るリセットクロック制御回路１ｆは、第１の論理積回路３１と、シフトレジスタ４０と、シンクロナイザ１０ａと、第２の論理積回路３０と、ゲーティングセル２０を備える。
【００９０】
第１の論理積回路３１は、非同期リセット入力信号（第１のリセット信号）ｒｓｔ＿ｎとソフトウェアリセット信号（第２のリセット信号）ｓｒｓｔ＿ｎとの論理積を、非同期リセット信号ｒｅｓｅｔとして出力する。シフトレジスタ４０は、ソフトウェアリセット信号ｓｒｓｔ＿ｎを遅延させる。シンクロナイザ１０ａは、縦続接続された複数のフリップフロップから構成され、非同期リセット入力端子に、非同期リセット入力信号ｒｓｔ＿ｎが入力され、Ｄ入力端子に、対象論理回路ブロック１００のクロックをオン又はオフ制御するためのクロックイネーブル信号ｃｌｋｅｎが入力され、クロック入力端子に、クロック入力信号ｃｌｋが入力される。第２の論理積回路３０は、シフトレジスタ４０からの出力と、シンクロナイザ１０ａからの出力の論理積を出力する。ゲーティングセル２０は、クロックイネーブル端子に、第２の論理積回路３０からの出力が入力され、クロック入力端子に、クロック入力信号ｃｌｋが入力されると、対象論理回路１００にクロック信号ｃｌｏｃｋを出力する。
【００９１】
具体的には、ソフトウェアリセット信号ｓｒｓｔ＿ｎは、論理積回路３１に入力される。論理積回路３１においては、ソフトウェアリセット信号ｓｒｓｔ＿ｎと、非同期リセット入力信号ｒｓｔ＿ｎとの論理積をとり、その値を、セレクタ４０の０側に入力される。更にソフトウェアリセット信号ｓｒｓｔ＿ｎは、シフトレジスタ４０に入力され、遅延された後、論理積回路３０に入力される。論理積回路３０は、シフトレジスタ４０から出力されたソフトウェアリセット信号ｓｒｓｔ＿ｎの遅延信号と、シンクロナイザ１０ａによって同期化されたクロックイネーブル信号ｃｌｋｅｎとの論理積をとり、その値を、ゲーティングセル２０に入力する。
【００９２】
第６の変形例においては、リセット時は、シフトレジスタ４０の出力が「０」に固定されるため、クロックが停止する。また、リセット解除時は、シフトレジスタがシンクロナイザの役割を果たすので、非同期リセット解除から、最初のクロックまでの立ち上がりまでの時間は、シフトレジスタ４０によって、確実に遅延させることができる。従って、対象論理回路ブロック１００への非同期リセット信号ｒｅｓｅｔは、同期化されていないものの、同様の効果を得ることができる。
【００９３】
（第７の変形例）
図１７を参照して、本発明の第７の変形例を説明する。本発明の第７の変形例においては、ソフトリセット制御回路６０及びクロック制御回路７０が、本発明の実施の形態に係るリセットクロック制御装置１を制御している。図１７においては、第４の変形例に係るリセットクロック制御回路１ｄを制御しているが、上述したいずれかのリセットクロック制御回路に置換されてもよい。ソフトリセット制御回路６０及びクロック制御回路７０は、例えば、ＡＳＩＣ内のＣＰＵからの命令を受けて、その内容を反映する制御をするためのレジスタを含む。
【００９４】
対象論理回路ブロック１００が、リセット直後から、直ちに動き出す必要のあるブロックである場合、ソフトウェアリセット信号ｓｒｓｔ＿ｎが、非同期リセット時に「１」になるように、ソフトリセット制御回路６０は設計される。一方、直ちに動き出す必要のないブロックである場合、ソフトウェアリセット信号ｓｒｓｔ＿ｎが、「０」になり、必要になった時点で「１」になるように、ソフトリセット制御回路６０は設計される。
【００９５】
同様に  対象論理回路ブロック１００が、リセット直後から、直ちにクロックを供給する必要のあるブロックである場合、クロックイネーブル信号ｃｌｋｅｎが、非同期リセット時に「１」になるように、クロック制御回路７０は設計される。一方、直ちにクロックを供給する必要のないブロックである場合、クロックイネーブル信号ｃｌｋｅｎが、「０」になり、必要になった時点で「１」になるように、クロック制御回路７０は設計される。
【００９６】
図１７に示す例においては、ソフトリセット制御回路６０及びクロック制御回路７０は、制御対象であるリセットクロック制御回路と同様のリセットクロック制御回路１ｇで制御されている。リセットクロック制御回路１ｇは、ソフトリセット制御回路６０及びクロック制御回路７０に、「１」に固定されたソフトウェアリセット信号ｓｒｓｔ＿ｎと、「１」に固定されたクロックイネーブル信号ｃｌｋｅｎを入力する。これにより、リセットクロック制御回路１ｇは、ソフトリセット制御回路６０及びクロック制御回路７０を動作可能な状態にすることができる。
【００９７】
なお、図１７に含まれる各リセットクロック制御回路は、上記の実施の形態及び第１乃至第７の変形例のうちの任意の構成を備える。また、リセットクロック制御回路１ｇに入力される第２のクロック入力信号ｃｌｋ２と、リセットクロック制御回路１ｄに入力される第１のクロック入力信号ｃｌｋ１は、非同期関係でよい。
【００９８】
（第８の変形例）
図１８を参照して、本発明の第８の変形例を説明する。本発明の第８の変形例においては、図１７を参照して説明した第７の変形例と比べて、ソフトリセット制御回路６０及びクロック制御回路７０を制御するリセットクロック制御回路が、それぞれ個別に設けられている点が異なる。
【００９９】
第８の変形例においては、ソフトウェアリセット信号（ｓｒｓｔ＿ｎ）は、リセットクロック制御回路１ｉによって制御されるソフトリセット制御回路６０によって生成され、リセットクロック制御回路１ｄに入力される。一方、クロックイネーブル信号ｃｌｋｅｎは、リセットクロック制御回路１ｈによって制御されるクロック制御回路７０によって生成される。
【０１００】
図１８に示す例では、ソフトリセット制御回路６０は、クロックリセット制御回路１ｉが制御する一方、クロック制御回路７０は、クロックリセット制御回路１ｈが制御する。
【０１０１】
なお、図１８に含まれる各リセットクロック制御回路は、上記の実施の形態及び第１乃至第７の変形例のうちの任意の構成を備える。リセットクロック制御回路１ｄを制御する第１のクロック信号ｃｌｋ１と、リセットクロック制御回路１ｈを制御する第２のクロック信号ｃｌｋ２と、リセットクロック制御回路１ｉを制御する第３のクロック信号ｃｌｋ３は、相互に非同期関係でよい。
【図面の簡単な説明】
【０１０２】
【図１】本発明の実施の形態に係るリセットクロック制御回路の回路図である。
【図２】本発明の実施の形態に係るリセットクロック制御回路を適用した回路のブロック図である。
【図３】一般的なゲーティングセルを説明する図である。
【図４】本発明の実施の形態に係るゲーティングセルを説明する図である。
【図５】本発明の実施の形態に係るゲーティングセルの変形例を説明する図である。
【図６】本発明の実施の形態に係るリセットクロック制御回路の動作タイミングを説明する図である。
【図７】本発明の実施の形態に係るソフトウェアリセットを説明する図である。
【図８】本発明の第１の変形例に係るリセットクロック制御回路の回路図である。
【図９】本発明の第２の変形例に係るリセットクロック制御回路の回路図である。
【図１０】本発明の第２の変形例に係るリセットクロック制御回路のシンクロナイザを説明する図である。
【図１１】本発明の第２の変形例に係るリセットクロック制御回路のシンクロナイザの動作タイミングを説明する図である。
【図１２】本発明の第３の変形例に係るリセットクロック制御回路の回路図である。
【図１３】本発明の第４の変形例に係るリセットクロック制御回路の回路図である。
【図１４】本発明の第４の変形例に係るリセットクロック制御回路の動作タイミングを説明する図である。
【図１５】本発明の第５の変形例に係るリセットクロック制御回路の回路図である。
【図１６】本発明の第６の変形例に係るリセットクロック制御回路の回路図である。
【図１７】本発明の第７の変形例に係るリセットクロック制御回路の回路図である。
【図１８】本発明の第８の変形例に係るリセットクロック制御回路の回路図である。
【図１９】一般的な非同期リセット入力信号を説明する図である。
【図２０】非同期リセットの解除タイミングの制約について説明する図である。
【図２１】メタステーブルを説明する図である。
【図２２】シンクロナイザの出力を、対象論理回路ブロックに入力する回路を示した図である。
【図２３】図２２に示したシンクロナイザを示した図である。
【図２４】図２２に示した回路の動作タイミングを示した図である。
【図２５】従来の方法におけるマージンの時間およびハザードを説明する図である。
【符号の説明】
【０１０３】
１  リセットクロック制御回路
１０、９０１  シンクロナイザ
１１  フリップフロップ
１２  遅延素子
２０  ゲーティングセル
３０  論理積回路
４０  シフトレジスタ
５０  セレクタ
６０  ソフトリセット制御回路
７０  クロックイネーブル信号
１００  対象論理回路ブロック
【図１】
2009080634.tif 000003
【図２】
2009080634.tif 000004
【図３】
2009080634.tif 000005
【図４】
2009080634.tif 000006
【図５】
2009080634.tif 000007
【図６】
2009080634.tif 000008
【図７】
2009080634.tif 000009
【図８】
2009080634.tif 000010
【図９】
2009080634.tif 000011
【図１０】
2009080634.tif 000012
【図１１】
2009080634.tif 000013
【図１２】
2009080634.tif 000014
【図１３】
2009080634.tif 000015
【図１４】
2009080634.tif 000016
【図１５】
2009080634.tif 000017
【図１６】
2009080634.tif 000018
【図１７】
2009080634.tif 000019
【図１８】
2009080634.tif 000020
【図１９】
2009080634.tif 000021
【図２０】
2009080634.tif 000022
【図２１】
2009080634.tif 000023
【図２２】
2009080634.tif 000024
【図２３】
2009080634.tif 000025
【図２４】
2009080634.tif 000026
【図２５】
2009080634.tif 000027