[第1の実施形態]
次に、本発明の実施形態について図面を参照して詳細に説明する。
図1は、本発明のエッジ検出回路の第1の実施形態を示す図である。図1に示すエッジ検出回路10は、RS(reset−set)付Dフリップフロップ(以下、「RS付FF」という。)100、200及びリセット付Dフリップフロップ(以下、「R付FF」という。)101、102、201及び202を備える。また、エッジ検出回路10は、ANDゲート120、121、122、インバータ(Inverter、INV)140を備える。
ANDゲート120は、R付FF102及び202の出力Qの論理積演算を行い、入力データのレベル変化を検出する信号を出力する。ANDゲート121及びANDゲート122は、RS付FF100、200の禁止入力であるセットとリセットとが同時にアクティブとなる状態を防ぐために設けられている。
エッジ検出回路10では、入力信号のレベル(ハイレベル又はロウレベル)がRS付FF100及び200にセットされる。そして、エッジ検出回路10は、RS付FFにセットされたレベルを、入力クロックで検出することによりエッジパルスを出力する。
[第1の実施形態の動作の説明]
図1を用いて第1の実施形態のエッジ検出回路の構成及び動作を説明する。
RS付FF100は、セット入力端子S、リセット入力端子R、データ入力端子D、クロック入力端子C、データ出力端子Qを備える。
エッジ検出回路10でエッジを検出される入力信号Sinは、ANDゲート121を経由してRS付FF100のセット入力端子Sに接続されている。リセット入力端子Rには、リセット信号が接続されている。データ入力端子Dは、GND(接地電位)に接続されている。クロック入力端子Cには、クロックが接続されている。
ここで、RS付FF100及び200は、一般にはデータ入力、データ出力、クロック入力、プリセット(PR)端子及びクリア(CLR)端子を備えたDフリップフロップ(以下、「PR/CLR付FF」という。)を用いて実現できる。
PR/CL付FFは、CLR端子をハイレベルに固定した状態で、PR端子がロウレベルになると直ちにデータ出力にロウレベルを出力する。そして、PR端子がハイレベルになるとクロックの立ち上がりに同期してデータ入力のレベルをデータ出力に出力する。
また、PR/CLR付FFは、PR端子をハイレベルに固定した状態で、CLR端子がロウレベルになると直ちにデータ出力にハイレベルを出力する。また、CLR端子がハイレベルになるとクロックの立ち上がりに同期してデータ入力のレベルをデータ出力に出力する。
第1の実施形態で用いられるRS付FF100及び200は、例えばこのようなPR/CLR付FFにおいて、PR端子をリセット入力として用い、CLR端子を負論理動作でセット入力として用いることで実現できる。
また、R付FF101、102、201及び202は、例えばPR/CLR付FFにおいて、CLR端子をハイレベルに固定し、PR端子をリセット入力とすることで実現できる。
このように接続することで、入力信号Sinがハイレベルになると、RS付FF100は、セット状態となる。セット状態になると、RS付FF100のデータ出力端子Dはハイレベルに固定される。すなわち、RS付FF100は、クロックの状態にかかわらず、入力信号がハイレベルになったとき、直ちにハイレベルを出力する。
そして、入力データがハイレベルでなくなったとき、すなわちロウレベルになったときに、RS付FF100のセット条件は無効となる。そして、セット条件が無効となると、RS付FF100は、直後のクロックの立ち上がりにて、RS付FF100のデータ出力端子Qにデータ入力端子Dの値、つまり、ロウレベルを出力する。
一方、RS付FF200も、セット入力端子S、リセット入力端子R、データ入力端子D、クロック入力端子C、データ出力端子Qを備える。
エッジ検出回路10において、入力データSinは、インバータ回路(INV)140を経由し、RS付FF200のセット信号端子Sに接続される。リセット入力端子Rには、リセット信号が接続されている。データ入力端子Dは、GNDに接続されている。クロック入力端子Cには、クロックが接続されている。
このように接続することで、入力データSinがロウレベルになったとき、RS付FF200のセット信号端子Sはハイレベルとなる。従って、RS付FF200はセット状態となり、クロックの状態にかかわらず、RS付FF200はデータ出力端子Qに直ちにハイレベルを出力する。入力信号Sinがロウレベルでなくなった場合、つまりハイレベルになった場合は、RS付FF200のセット条件は無効となる。そして、RS付FF200は、セット条件が無効となった直後のクロックの立ち上がりにおいて、データ入力端子Dの値、つまり、ロウレベルをデータ出力端子Qに出力する。
R付FF101及び102は、リセット付FFである。R付FF101及び102は、RS付FF100の出力を自己のクロックに同期させるように、直列に接続されている。このような接続により、R付FF101及び102における2回の立ち上がりクロックエッジによる同期手順を経て後段のANDゲート120の入力信号にデータが反映される。
同様に、R付FF201及び202は、R付FF200の出力信号を自己のクロックにて同期化させるために、直列に接続されている。このような接続により、2回の立ち上がりクロックエッジを経て後段のANDゲート120の入力信号にデータが反映される。
最後に、ANDゲート120により、R付FF102及び202の出力信号の論理積の演算が行われる。この演算結果である出力信号Soutが、エッジ検出有無を示す信号となる。
図2〜図5は、図1に示すエッジ検出回路の動作時の波形を示すタイミングチャートである。まず、図2を参照しながら動作を説明する。図2において、Q100、Q101等は、それぞれRS付FF100、R付FF101等のデータ出力端子Qの出力信号を示す。
初期状態として、RS付FF100はセット状態でないとする。すなわち、初期状態のとき、入力信号Sinがロウレベルであるとする。RS付FF100がセット状態でない場合、RS付FF100は、データ入力端子Dの値を出力する。そして、エッジ検出回路10においては、RS付FF100のデータ入力端子Dはロウレベルに固定されているので、RS付FF100のデータ出力端子Qは、初期状態ではQ100としてロウレベルを出力する。
一方、入力信号Sinがロウレベルである場合、RS付FF200のセット信号Sはハイレベルとなる。すなわち、RS付FF200の初期状態はセット状態となっている。従って、RS付フリップフロップFF200の出力端子Qは、初期状態ではハイレベルの信号Q200を出力する。
上記の初期状態において、入力信号Sinが、ロウレベルからハイレベルになった場合、FF100はセット状態となる。このとき、R付FF100のデータ出力端子Qから出力される信号Q100は、直ちにハイレベルに変化する。そして、その後のクロックエッジ毎に、R付FF101及び102の出力信号であるQ101及びQ102がロウレベルからハイレベルに変化していく。
一方、RS付FF200は、入力データSinが、ロウレベルからハイレベルになった場合、セット状態が解除される。セット状態が解除されると、RS付FF200は、解除後の最初の立ち上がりクロックエッジにて、データ出力端子Qに、データ入力端子Dの値を出力する。つまり、RS付FF200の出力信号Q200は、入力信号Sinがロウレベルからハイレベルになった後の最初のクロックエッジにて、ロウレベルに変化する。そして、その後のクロックエッジ毎に、R付FF201及び202の出力信号であるQ201及びQ202がハイレベルからロウレベルに変化する。
最後に、ANDゲート120は、R付FF102のデータ出力端子Qから出力される信号Q102と、R付FF202のデータ出力端子Qから出力される信号Q202との論理積を演算する。その結果、ANDゲート120からエッジ検出有無を示す信号Soutが出力される。
以上のように、第1の実施形態のエッジ検出回路の図2に示す動作では、RS付FF100がセット状態でない場合、すなわち入力信号Sinがロウレベルの場合は、入力信号Sinの立ち上りエッジにてRS付FF100がセット状態となる。従って、出力Q100はハイレベルになる。そして、2クロック後にR付FF102の出力Q102がハイレベルになる。
一方、RS付FF200の出力は、セット状態が解除された後は、次の立ち上がりクロックエッジがくるまでハイレベルを維持することになる。このため、R付FF202の出力Q202は、Sinの変化後、3クロック後にハイレベルからロウレベルとなる。
すなわち、入力信号Sinがロウレベルの場合は、Sinの変化後、2クロック後の立ち上がりクロックエッジでQ102がロウレベルからハイレベルになり、3クロック後の立ち上がりクロックエッジでQ202がハイレベルからロウレベルになる。従って、Sinの変化後2クロック後の立ち上がりクロックエッジと3クロック後の立ち上がりクロックエッジとの間でQ102とQ202とが同時にハイレベルとなる区間の論理積をとることにより、エッジ検出パルスが生成される。
次に、図3を用いて、入力信号のパルス幅がクロックの周期よりも小さい場合、たとえば入力信号の周波数がクロック周波数の1/2であるような場合でも、エッジ検出回路10は入力信号のエッジを検出することが可能であることを示す。
図3は、第1の実施形態のエッジ検出回路において、入力信号のパルス幅が、クロック周期の1/2で1パルスのみの場合の波形を示すタイミングチャートである。
図3において、初期状態は図2で説明した場合と同様である。すなわち、初期状態において、RS付FF100はセット状態でなく、RS付FF200は、セット状態となっている。入力信号Sinのハイレベルの期間は、クロック周期の1/2となっている。
図3においても、エッジ検出回路の各FFの動作は図2で説明した場合と同様である。
初期状態において、RS付FF100は、データ入力端子Dの値を出力する。RS付FF100のデータ入力端子Dはロウレベルに固定されているので、RS付FF100のデータ出力端子Qが出力する信号Q100は、初期状態ではロウレベルである。
一方、RS付FFであるFF200の初期状態はセット状態となっているので、RS付FF200の出力端子Q200は、初期状態ではハイレベルの信号を出力する。
上記の初期状態において、入力信号Sinが、ロウレベルからハイレベルになった場合、RS付FF100はセット状態となる。このとき、RS付FF100の出力信号Q100は直ちにハイレベルとなる。そして、その後のクロックエッジ毎に、R付FF101及び102の出力であるQ101及びQ102がロウレベルからハイレベルに変化していく。
その後、入力信号Sinが、ハイレベルからロウレベルになると、RS付FF100のセット状態が解除される。このとき、FF100のデータ出力端子Q100はハイレベルをそのまま維持する。
そして、Sinがロウレベルになった後にクロックが立ち上がると、Q100はロウレベルとなる。そして、Q100は、その後のクロックエッジ毎に、R付FF101及び102の出力であるQ101及びQ102をハイレベルからロウレベルに変化させるように伝搬していく。
なお、図3には詳細に記載していないが、RS付FF100の出力Q100は、Sinがロウレベルになった後の最初のクロックの立ち上がりの後、RS付FF100の伝搬遅延時間だけ遅れてハイレベルからロウレベルに変化する。従って、当該クロックの立ち上がりの時点におけるR付FF101の入力はハイレベルであり、当該クロックの立ち上がりによってQ101の出力もハイレベルに変化する。ここで、R付FF101がクロックの立ち上がる直前のQ100のレベルをより確実に読み出せるように、RS付FF100の出力Q100とR付FF101の入力との間に遅延回路を挿入してもよい。
一方、RS付FF200には反転したSinが入力されるので、入力信号Sinがロウレベルからハイレベルになった場合、RS付FF200のセット状態が解除される。セット状態が解除されると、RS付FF200は、セット状態解除後の最初の立ち上がりクロックエッジにて、データ出力端子Qに、データ入力端子Dの値を出力する。しかしながら、図3に示すように、セット解除後の最初の立ち上がりクロックエッジが来る前に、Sinは再度ハイレベルからロウレベルに変化すると、RS付FF200への入力信号はロウレベルからハイレベルに変化する。このため、RS付FF200は再びセット状態となる。このため、RS付FF200の出力Q200は、入力信号Sinの変化にかかわらず、セット解除後の最初の立ち上がりクロックエッジが来た後もハイレベルを維持する。従って、Q200,Q201,Q202はハイレベルのまま変化しない。
Q202がハイレベルのままであるので、図3に示すように、ANDゲート120の出力には、R付FF102の出力Q102の信号がエッジ検出信号としてそのまま出力される。
このように、図3においては入力信号Sinのハイレベルの区間が、クロック周期の1/2となっている。このような場合には、第1の実施形態のエッジ検出回路は、Sinのロウレベルからハイレベルへの変化及びハイレベルからロウレベルへの変化の両方をRS付FF100のみで検出することができる。そして、S付FF102は、1パルスのロウレベル信号、すなわち、クロック1パルス分のエッジ検出信号Soutを出力する。
続いて、初期状態としてRS付FF100がセット状態である状態、即ち、初期状態のとき入力信号Sinがハイレベルである場合について説明する。この場合のタイミングチャートを図4に示す。RS付フリップフロップFF100はセット状態であるので、RS付FF100の出力Q100はハイレベルとなる。一方、RS付FF200はセット状態ではないため、RS付FF200の出力Q200はデータ入力端子Dの値であるロウレベルとなる。
RS付FF100がセット状態、RS付FF200がセット状態でない上記の初期状態において、入力データSinがハイレベルからロウレベルになった場合、RS付FF100はセット状態が解除され、RS付FF200はセット状態になる。
RS付FF100は、セット状態の解除後の最初のクロックエッジにて、データ出力端子QからQ100としてロウレベルを出力する。その後はクロックエッジ毎に、R付FF101及び102のデータ出力Q101及びQ102がハイレベルからロウレベルに変化していく。
RS付FF200は、初期状態では、セット解除状態であるため、ロウレベルを出力している。しかし、入力信号Sinがハイレベルからロウレベルになったと同時に、RS付FF200はセット状態になるので、RS付FF200は直ちにハイレベルを出力する。その後はクロックエッジ毎に、R付FF201及び202のデータ出力Q201及びQ202がロウレベルからハイレベルに変化していく。よって、ANDゲート120において、R付FF102の出力信号Q102と、R付FF202の出力信号Q202との論理積をとることにより、ANDゲート120からエッジ検出有無を示す信号Soutが1パルス出力される。
上記のように、エッジ検出回路10は、入力信号Sinがハイレベルの場合は、入力信号Sinの立下りエッジにてRS付FF200がセット状態となり出力Q200がハイレベルになる。そして、2クロック後にR付FF202の出力Q202がハイレベルになる。一方、RS付FF100の出力はセット状態が解除されたあとは、次の立ち上がりクロックエッジがくるまでハイレベルを維持する。このため、R付FF102の出力Q102は、Sinの変化後、3クロック後にハイレベルからロウレベルとなる。
すなわち、入力信号Sinがハイレベルの場合は、Sinの変化後、2クロック後の立ち上がりクロックエッジでQ202がロウレベルからハイレベルになり、3クロック後の立ち上がりクロックエッジでQ102がハイレベルからロウレベルになる。従って、Sinの変化後2クロック後の立ち上がりクロックエッジと3クロック後の間でQ202とQ102とが同時にハイレベルとなる区間の論理積をとることにより、エッジ検出パルスが生成される。
次に、この初期状態で、入力信号のパルス幅が、クロック周期の1/2で1パルスのみの場合についてのタイミングチャートを図5に示す。
図5においても、エッジ検出回路の基本的な動作は図2〜図4で説明した場合と同様である。
初期状態において、RS付FF100はセット状態であるので、Q100はハイレベルとなる。
一方、RS付FF200の初期状態はセット解除状態となっているので、RS付FF200は、データ入力端子Dのレベルであるロウレベルの信号をQ200として出力する。
上記の初期状態において、入力信号Sinが、ハイレベルからロウレベルになった場合、RS付FF100はセット解除状態となる。
ここで、セット解除状態の継続中にクロックが立ち上がれば、RS付FF200のデータ出力Q200にはデータ入力端子のロウレベルが現れる。しかし、図5においては、クロックが立ち上がる前に入力信号Sinが再度ハイレベルへ反転してしまうので、Q100のレベルはハイレベルのまま変化しない。このため、Q101及びQ102のレベルもハイレベルのまま変化しない。
一方、RS付FF200には反転したSinが入力されるので、入力信号Sinがハイレベルからロウレベルになった場合、RS付FF200はセット状態となる。このとき、RS付FF200のデータ出力端子Q200は直ちにハイレベルを出力する。そして、その後のクロックエッジ毎に、R付FF201及び202の出力であるQ201及びQ202がロウレベルからハイレベルに変化する。
その後、入力信号Sinが、ロウレベルからハイレベルになった場合、RS付FF200のセット状態が解除される。このとき、RS付FF200の出力信号Q200はハイレベルをそのまま次のクロックの立ち上がりまで維持する。
そして、Sinがハイレベルになった後にクロックが立ち上がると、RS付FF200の出力信号Q200はデータ入力端子Dのレベルであるロウレベルとなる。そして、Q200は、その後の立ち上がりクロックエッジ毎に、R付FF201及び202の出力であるQ201及びQ202の出力をハイレベルからロウレベルに変化させるように伝搬していく。
なお、図5には詳細に記載していないが、RS付FF200の出力Q200は、Sinがハイレベルになった後の最初のクロックの立ち上がりの後、RS付FF200の伝搬遅延時間だけ遅れてハイレベルからロウレベルに変化する。従って、当該クロックの立ち上がりの時点におけるR付FF201の入力はハイレベルであり、当該クロックの立ち上がりによってQ201の出力もハイレベルに変化する。ここで、R付FF201がクロックの立ち上がる直前のQ200のレベルをより確実に読み出せるように、RS付FF200の出力Q200とR付FF201の入力との間に遅延回路を挿入してもよい。
Q102がハイレベルのままであるので、図5においては、ANDゲート120の出力には、R付FF202のデータ出力Q202の信号がエッジ検出信号としてそのまま出力される。
図5においては入力信号Sinのロウレベルの区間が、クロック周期の1/2となっている。このような場合には、第1の実施形態のエッジ検出回路は、Sinのハイレベルからロウレベルへの変化及びロウレベルからハイレベルへの変化の両方をRS付FF200のみで検出することができる。そして、S付FF202は、1パルスのロウレベル信号、すなわち、クロック1パルス分のエッジ検出信号Soutを出力する。
以上説明したように、第1の実施形態のエッジ検出回路は、入力信号Sinの立ち上がりまたは立ち下がりエッジが発生すると、エッジ検出パルスSoutが出力されるので、エッジを確実に検出することができる。
そして、第1の実施形態のエッジ検出回路は、RS付FFのセット機能を用いてエッジ変化を直ちに検出した後、エッジ検出回路のクロックで同期化している。この構成により、第1の実施形態のエッジ検出回路は、入力信号のデータ幅がクロック周期よりも狭い場合、すなわちクロックのナイキスト周波数を超えた周波数成分をもつデータのエッジを検出することができるという効果を奏する。
また、第1の実施形態のエッジ検出回路は、サンプリングするクロック周波数を上げることなく、パルス幅が狭い入力信号のエッジを検出することができる。従って、第1の実施形態のエッジ検出回路は、エッジ検出回路の消費電力の増加を抑制できるという効果もある。
[第2の実施形態]
本発明の第2の実施形態について以下に説明する。
図6は本発明に係るエッジ検出回路の第2の実施形態を示す回路図である。第2の実施形態のエッジ検出回路20は、第1の実施形態で説明したエッジ検出回路10のセット端子とリセット端子を入れ換え、データ入力端子のレベルをハイレベル固定に変更したものである。
第2の実施形態のエッジ検出回路20は、RS付FF400、500、セット付Dフリップフロップ(以下、「S付FF」という。)401、402、501、502を備える。エッジ検出回路20は、さらに、インバータ(INV)440、NORゲート420、ANDゲート421、ANDゲート422を備えている。
図7〜図10は、エッジ検出回路20の動作時の波形を示すタイミングチャートである。まず、図6を参照しながらエッジ検出回路20の構成及び動作を説明する。
RS付FF400は、セット入力端子S、リセット入力端子R、データ入力端子D、クロック入力端子C、データ出力信号Qを備える。
エッジ検出回路20でエッジを検出したい入力データSinは、ANDゲート421経由でRS付FF400のリセット入力端子Rに接続されている。エッジ検出回路20では、セット入力端子Sには回路のリセット信号が接続され、データ入力端子Dはハイレベルに固定され、クロック入力端子Cにはエッジ検出回路のクロックが接続されている。
ここで、第1の実施形態におけるRS付FF100及び200と同様に、第2の実施形態で用いられるRS付FF400及び500は、一般にはデータ入力、データ出力、クロック入力、プリセット(PR)端子及びクリア(CLR)端子を備えたDフリップフロップ(以下、「PR/CLR付FF」という。)を用いて実現できる。
第1の実施形態においても説明したように、PR/CL付FFは、CLR端子をハイレベルに固定した状態でPR端子がロウレベルになると直ちにデータ出力にロウレベルを出力する。そして、PR端子がハイレベルになるとクロックの立ち上がりに同期してデータ入力のレベルをデータ出力に出力する。
また、PR/CLR付FFは、PR端子をハイレベルに固定した状態でCLR端子がロウレベルになると直ちにデータ出力にハイレベルを出力する。また、CLR端子がハイレベルになるとクロックの立ち上がりに同期してデータ入力のレベルをデータ出力に出力する。
第2の実施形態で用いられるRS付FF400及び500は、このようなPR/CLR付FFにおいて、CLR端子をリセット入力として用い、PR端子を負論理動作でセット入力とすることで実現できる。
また、S付FF401、402、501及び502は、例えばPR/CLR付FFにおいて、CLR端子をハイレベルに固定し、PR端子をセット入力とすることで実現できる。
このように接続することで、入力データSinがハイレベルになった場合、RS付FF400のリセット信号端子Rはハイレベルとなる。
RS付FF400のリセット信号端子RがハイレベルとなるとRS付FF400はリセット状態となる。従って、RS付FF400のリセット信号端子Rがハイレベルとなると、RS付FF400は、クロックの状態にかかわらず、直ちにロウレベルを出力する。そして、入力信号がロウレベルになった場合に、リセット条件が無効となる。その結果、直後のクロックの立ち上がりにて、データ入力端子の値、つまり、ハイレベルを出力する。
RS付FF500は、セット入力端子S、リセット入力端子R、データ入力端子D、クロック入力端子C、データ出力信号Qを備える。
入力信号Sinは、RS付FF500のリセット入力端子にインバータ(INV)400及びANDゲート422経由で接続されている。セット入力端子には、回路のリセット信号が接続されている。データ入力端子Dはハイレベルに接続され、クロック入力端子Cには、回路のクロックが接続される。
RS付FF500は、クロックの状態にかかわらず、入力データSinがロウレベルになった場合、直ちにロウレベルを出力する。入力信号がロウレベルでなくなった場合、つまりハイレベルになった場合は、リセット条件が無効となり、直後のクロックの立ち上がりにて、データ出力端子Qにデータ入力端子Dの値、つまり、ハイレベルを出力する。
S付FF401、402は直列に接続され、RS付FF400の出力信号をクロックと同期させながら出力する。このような接続により、2回の立ち上がりクロックエッジを経て後段のNORゲート420にデータが入力される。
同様にS付FF501及び502は直列に接続されており、RS付FF500の出力信号クロックと同期させながら出力する。このような接続により、2回の立ち上がりクロックエッジを経て後段のNORゲートNOR420の入力信号にデータが反映される。
最後に、NORゲート420により、S付FF402及び502の出力信号の反転論理和の演算が行われる。この演算結果である出力信号Soutが、エッジ検出有無を示す信号となる。
図7〜図10は、図6に示すエッジ検出回路の動作時の波形を示すタイミングチャートである。
図7は、Sinの初期状態がロウレベルで、この状態からハイレベルに変化する場合のタイミングチャートである。第1の実施形態と同様に、エッジを検出した場合には、Soutがハイレベルを出力する。
図7を参照しながら第2の実施形態のエッジ検出回路20の動作を説明する。図7において、Q400、Q401等は、それぞれRS付FF400、R付FF401のデータ出力端子Qの出力を示す。
初期状態として、RS付FF400はリセット状態でないとする。すなわち、初期状態のとき、入力信号Sinがロウレベルであるとする。RS付FF400がリセット状態でない場合、RS付FF400は、データ入力端子Dの値を出力する。第2の実施形態においては、FF400のデータ入力端子Dはハイレベルに固定されているので、RS付FF400のデータ出力Q400は、初期状態ではハイレベルを出力する。
一方、入力信号Sinがロウレベルである場合、RS付FF500のリセット入力端子Rはハイレベルとなる。すなわち、RS付FF500の初期状態はリセット状態となっている。従って、RS付FF500の出力端子Qは、初期状態ではロウレベルの信号Q500を出力する。
上記の初期状態において、入力信号Sinが、ロウレベルからハイレベルになった場合、RS付FF400はリセット状態となる。このとき、RS付FF400のデータ出力端子Qの出力信号Q400は、直ちにロウレベルに変化する。そして、その後のクロックエッジ毎に、S付FF401及び402の出力信号であるQ401及びQ402がハイレベルからロウレベルに変化していく。
一方、RS付FF500は、入力信号Sinが、ロウレベルからハイレベルになった場合、リセット状態が解除される。リセット状態が解除されると、RS付FF500は、解除後の最初の立ち上がりクロックエッジにて、データ出力端子Qに、データ入力端子Dの値を出力する。つまり、RS付FF500の出力信号Q500は、入力信号Sinがロウレベルからハイレベルになった後の最初のクロックエッジにて、ハイレベルに変化する。そして、その後のクロックエッジ毎に、S付FF501及び502の出力信号であるQ501及びQ502がロウレベルからハイレベルに変化する。
最後に、NORゲート420は、S付FF402のデータ出力端子Qから出力される信号Q402と、S付FF502のデータ出力端子Qから出力される信号Q502との反転論理和を演算する。その結果、NORゲート420からエッジ検出有無を示す信号Soutが出力される。
以上のように、第2の実施形態のエッジ検出回路の図7に示す動作では、RS付FF400がリセット状態でない場合、すなわち入力信号Sinがロウレベルの場合は、入力信号Sinの立ち上りエッジにてRS付FF400がリセット状態となる。従って、出力Q400はロウレベルになる。そして、2クロック後にS付FF402の出力Q502がロウレベルになる。
一方、RS付FF500の出力は、セット状態が解除された後は、次の立ち上がりクロックエッジがくるまでロウレベルを維持することになる。このため、S付FF502の出力Q502は、Sinの変化後、3クロック後にロウレベルからハイレベルとなる。
すなわち、入力信号Sinがハイレベルの場合は、Sinの変化後、2クロック後の立ち上がりクロックエッジでQ402がハイレベルからロウレベルになり、3クロック後の立ち上がりクロックエッジでQ502がロウレベルからハイレベルになる。従って、Sinの変化後2クロック後の立ち上がりクロックエッジと3クロック後の間でQ502とQ402とが同時にロウレベルとなる区間の反転論理和をとることにより、エッジ検出パルスが生成される。
入力信号の周波数が、クロック周波数と同じで1パルスのみの場合についてのタイミングチャートを図8に示す。エッジ検出してSoutがハイレベルを出力している。
図8は、第2の実施形態のエッジ検出回路において、入力信号のパルス幅が、クロック周期の1/2で1パルスのみの場合の波形を示すタイミングチャートである。
図8において、初期状態は図7で説明した場合と同様であるとする。すなわち、初期状態において、RS付FF400はリセット状態でなく、RS付FF500は、リセット状態であるとする。そして、入力信号Sinのハイレベルの期間は、クロック周期の1/2となっている。
図8においても、エッジ検出回路の各FFの動作は図7で説明した場合と同様である。
初期状態において、RS付FF400は、データ入力端子Dの値を出力する。RS付FF400のデータ入力端子Dはハイレベルに固定されているので、RS付FF400のデータ出力端子Qが出力する信号Q400は、初期状態ではハイレベルである。
一方、RS付FF500の初期状態はリセット状態となっているので、RS付FF500の出力端子Q500は、初期状態ではロウレベルの信号を出力する。
上記の初期状態において、入力信号Sinが、ロウレベルからハイレベルになった場合、RS付FF400はリセット状態となる。このとき、RS付FF400の出力信号Q400は直ちにロウレベルとなる。その後のクロックエッジ毎に、S付FF401及び402の出力であるQ401及びQ402がハイレベルからロウレベルに変化する。
その後、入力信号Sinが、ハイレベルからロウレベルになった場合、FF400のリセット状態が解除される。このとき、RS付FF400の出力Q400はロウレベルをそのまま維持する。
そして、Sinがロウレベルになった後にクロックが立ち上がると、Q400はハイレベルとなる。そして、Q400は、その後のクロックエッジ毎に、S付FF401及び402の出力であるQ401及びQ402の出力をロウレベルからハイレベルに変化させるように伝搬していく。
なお、図8には詳細に記載していないが、RS付FF400の出力Q400は、Sinがロウレベルになった後の最初のクロックの立ち上がりの後、RS付FF400の伝搬遅延時間だけ遅れてロウレベルからハイレベルに変化する。従って、当該クロックの立ち上がりの時点におけるR付FF401の入力はロウレベルであり、当該クロックの立ち上がりによってQ401の出力もロウレベルに変化する。ここで、R付FF401がクロックの立ち上がる直前のQ400のレベルをより確実に読み出せるように、RS付FF400の出力Q400とR付FF401の入力との間に遅延回路を挿入してもよい。
一方、RS付FF500には反転したSinが入力されるので、入力信号Sinがロウレベルからハイレベルになった場合、RS付FF500のリセット状態が解除される。リセット状態が解除されると、RS付FF500は、リセット状態解除後の最初の立ち上がりクロックエッジにて、データ出力端子Qに、データ入力端子Dの値を出力する。しかしながら、図8においては、セット解除後の最初の立ち上がりクロックエッジが来る前にRS付FF500への入力信号はロウレベルからハイレベルに変化し、RS付FF500は再びセット状態となる。このため、RS付FF500の出力Q500は、入力信号Sinの変化にかかわらず、ロウレベルを維持する。従って、図8においては、Q500,Q501,Q502はロウレベルのまま変化しない。
Q502がロウレベルのままであるので、NORゲート420の出力には、S付FF402の出力Q402の信号が反転された信号がエッジ検出信号として出力される。
図8においては入力信号Sinのハイレベルの区間が、クロック周期の1/2となっている。このような場合には、第2の実施形態のエッジ検出回路は、Sinのハイレベルからロウレベルへの変化及びロウレベルからハイレベルへの変化の両方をRS付FF400のみで検出することができる。そして、S付FF402は1パルスのロウレベル信号を出力し、NORゲート420はクロック1パルス分のエッジ検出信号Soutを出力する。
次に、初期状態が異なる場合として、RS付FF400がリセット状態である場合、すなわち、初期状態において入力信号Sinがハイレベルである場合について説明する。この場合のタイミングチャートを図9に示す。RS付FF400はリセット状態であるので、RS付FF400の出力Q400はロウレベルとなり、一方RS付FF500は、リセット状態ではない為、RS付FF500の出力Q500はデータ入力端子Dの値、つまりハイレベルとなる。
RS付FF400がリセット状態、RS付FF500がリセット状態でない上記の初期状態において、入力信号Sinがハイレベルからロウレベルになった場合、RS付FF400はリセット状態が解除され、RS付FF500はリセット状態になる。
RS付FF400は、リセット状態の解除後の最初の立ち上がりクロックエッジにて、データ出力端子Qのデータ出力Q400としてロウレベルを出力する。その後は立ち上がりクロックエッジ毎に、S付FF401及び402のデータ出力Q401及びQ402がハイレベルからロウレベルに変化していく。
RS付FF500は、初期状態では、リセット解除状態のため、ハイレベルを出力している。しかし、入力信号Sinがハイレベルからロウレベルになったのと同時に、RS付FF500はリセット状態になるので、RS付FF500は直ちにロウレベルを出力する。その後はクロックエッジ毎に、S付FF501及び502のデータ出力Q501及びQ502がハイレベルからロウレベルに変化していく。よって、NORゲート420において、S付FF402の出力信号Q402と、S付FF502の出力信号Q502との反転論理和をとることにより、NORゲート420からエッジ検出有無を示す信号Soutが1パルス出力される。
以上のように、第2の実施形態のエッジ検出回路の図9に示す動作では、RS付FF400がリセット状態の場合、すなわち入力信号Sinがハイレベルの場合は、入力信号Sinの立下りエッジにてRS付FF500がリセット状態となる。従って、出力Q500はロウレベルになる。そして、2クロック後にS付FF502の出力Q502がロウレベルになる。
一方、RS付FF400の出力は、セット状態が解除された後は、次の立ち上がりクロックエッジがくるまでロウレベルを維持することになる。このため、S付FF402の出力Q402は、Sinの変化後、3クロック後にロウレベルからハイレベルとなる。
すなわち、入力信号Sinがハイレベルの場合は、Sinの変化後、2クロック後の立ち上がりクロックエッジでQ502がハイレベルからロウレベルになり、3クロック後の立ち上がりクロックエッジでQ402がロウレベルからハイレベルになる。従って、Sinの変化後2クロック後の立ち上がりクロックエッジと3クロック後の間でQ402とQ502とが同時にロウレベルとなる区間の反転論理和をとることにより、エッジ検出パルスが生成される。
次に、この初期状態で、入力信号のパルス幅が、クロック周期の1/2で1パルスのみの場合についてのタイミングチャートを図10に示す。
図10においても、エッジ検出回路の基本的な動作は図7〜図9で説明した場合と同様である。
初期状態において、RS付FF400はリセット状態であるので、Q400はロウレベルとなる。
一方、RS付FF500の初期状態はセット解除状態となっているので、RS付FF500は、データ入力端子のレベルであるハイレベルをQ500として出力する。
上記の初期状態において、入力信号Sinが、ハイレベルからロウレベルになった場合、RS付FF400はリセット解除状態となる。
ここで、リセット解除状態の継続中にクロックが立ち上がれば、RS付FF400のデータ出力Q400にはデータ入力端子Dのハイレベルが現れる。しかし、図10においては、クロックが立ち上がる前に入力信号Sinが再度ハイレベルへ反転してしまうので、Q400のレベルはロウレベルのまま変化しない。このため、Q401及びQ402のレベルもロウレベルのまま変化しない。
一方、FF500には反転したSinが入力されるので、Sinがハイレベルからロウレベルになった場合、RS付FF500はリセット状態となる。このとき、RS付FF500のデータ出力端子Qは、直ちにロウレベルを出力する。そして、その後の立ち上がりクロックエッジ毎に、S付FF501及びFF502の出力であるQ501及びQ502がハイレベルからロウレベルに変化する。
その後、入力信号Sinが、ロウレベルからハイレベルになった場合、FF500のリセット状態が解除される。このとき、FF500の出力信号Q500はハイレベルをそのまま次のクロックの立ち上がりまで維持する。
そして、Sinがハイレベルになった後にクロックが立ち上がると、FF500の出力信号Q500はデータ入力端子Dのレベルであるハイレベルとなる。そして、Q500は、その後のクロックエッジ毎に、FF501及びFF502の出力であるQ501及びQ502の出力をロウレベルからハイレベルに変化させるように伝搬していく。
なお、図10には詳細に記載していないが、RS付FF500の出力Q500は、Sinがハイレベルになった後の最初のクロックの立ち上がりの後、RS付FF500の伝搬遅延時間だけ遅れてロウレベルからハイレベルに変化する。従って、当該クロックの立ち上がりの時点におけるR付FF501の入力はロウレベルであり、当該クロックの立ち上がりによってQ501の出力もロウレベルに変化する。ここで、R付FF501がクロックの立ち上がる直前のQ500のレベルをより確実に読み出せるように、RS付FF500の出力Q500とR付FF501の入力との間に遅延回路を挿入してもよい。
一方、Q402はロウレベルのままであるので、NORゲート420の出力には、FF502のデータ出力Q502の信号が反転された信号がエッジ検出信号Soutとして出力される。
このように、図10においては入力信号Sinのロウレベルの区間が、クロック周期の1/2となっている。このような場合には、第2の実施形態のエッジ検出回路は、Sinのハイレベルからロウレベルへの変化及びロウレベルからハイレベルへの変化の両方をRS付FF500のみで検出することができる。そして、S付FF502は、1パルスのロウレベル信号、すなわち、クロック1パルス分のエッジ検出信号Soutを出力する。
上記のとおり、第2の実施形態のエッジ検出回路は、第1の実施形態のエッジ検出回路と同様に、RS付FF400及び500においてクロックを使用せずに入力信号Sinの変化を捕捉している。
また、第2の実施形態のエッジ検出回路は、第1の実施形態のエッジ検出回路と同様に、入力信号のパルス幅がクロックの周期と比べて小さい場合でも入力信号のエッジを検出することが可能である。
このように、第2の実施形態のエッジ検出回路は、入力信号Sinの立ち上がりまたは立ち下がりエッジが発生すると、エッジ検出パルスSoutがハイレベルとなり、エッジを確実に検出することができる。
以上説明したように、第2の実施形態のエッジ検出回路は、RS付FFのリセット機能を用いてエッジ変化を直ちに検出した後、エッジ検出回路のクロックで同期化している。
この構成により、第2の実施形態のエッジ検出回路は、入力信号のデータ幅がクロック周期よりも狭い場合、すなわちクロックのナイキスト周波数を超えた周波数成分をもつデータのエッジを検出することができるという効果を奏する。
また、第2の実施形態のエッジ検出回路は、サンプリングするクロック周波数を上げることなく、パルス幅が狭い入力信号のエッジを検出することができる。従って、第2の実施形態のエッジ検出回路は、エッジ検出回路の消費電力の増加を抑制できるという効果もある。
なお、第1及び第2の実施形態で説明したエッジ検出回路は、最小構成として以下のようにも記載できる。
すなわち、第1及び第2の実施形態のエッジ検出回路は、図1において、エッジ生成ユニットと900と、エッジ検出信号生成ユニット901とを備える構成としても実現できる。
エッジ生成ユニットは、デジタル信号である入力信号の論理の反転に対して、クロックの状態にかかわらず、直ちに論理を反転させた第1のエッジを含む出力信号を出力する。そして、エッジ生成ユニットは、反転の後に所定のクロックと同期して読み込んだデジタル信号の論理に基づいて生成した第2のエッジを含む出力信号を出力する。
また、エッジ検出信号生成ユニットは、第1のエッジと第2のエッジとの間の時間を期間とするエッジ検出信号を生成する。
このような構成を備えたエッジ検出回路において、エッジ生成ユニットは、入力信号の立ち上がりまたは立ち下がりエッジが発生すると、エッジ生成ユニットでエッジ変化を直ちに検出し、第1と第2のエッジを生成する。そして、エッジ検出信号生成ユニットは、第1と第2のエッジの間隔を期間とするエッジ検出信号を生成する。
このように、上記の構成を備えるエッジ検出回路は、クロックの状態にかかわらず直ちに入力信号の変化を検出しているので、入力信号のデータ幅がクロック周期よりも狭い場合でも、データのエッジを検出することができるという効果を奏する。
このような構成によっても、入力信号の立ち上がりまたは立ち下がりエッジが発生すると、エッジ生成ユニットでエッジ変化を直ちに検出して第1と第2のエッジを生成することができる。そして、第1と第2のエッジの間隔を期間とするエッジ検出信号を生成するエッジ検出信号生成ユニットによって、エッジ検出信号を生成することができる。
従って、上記の最小構成も、入力信号のデータ幅がクロック周期よりも狭い場合でも、データのエッジを検出することができるという効果を奏する。
なお、上記の第1及び第2の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)デジタル信号である入力信号の論理の反転に対して直ちに論理を反転させた第1のエッジを含む出力信号を出力し、前記反転の後に所定のクロックと同期して読み込んだ前記デジタル信号の論理に基づいて生成した第2のエッジを含む出力信号を出力するエッジ生成ユニットと、前記第1のエッジと前記第2のエッジとの間の時間を期間とするエッジ検出信号を生成するエッジ検出信号生成ユニットと、を備えるエッジ検出回路。
(付記2)前記第1のエッジと前記第2のエッジとをそれぞれ前記所定のクロックと同期させる同期ユニットをさらに備える、付記1に記載のエッジ検出回路。
(付記3)前記同期ユニットは、入力された前記第1のエッジの論理と前記第2のエッジの論理とを前記クロックの立ち上がりの時点でそれぞれ読み込んで出力するDフリップフロップ回路を備える、付記2に記載のエッジ検出回路。
(付記4)前記エッジ生成ユニットは、自回路の出力信号がロウレベルである場合に前記入力信号がハイレベルに反転すると直ちに前記自回路の出力信号をハイレベルに反転させて前記第1のエッジを生成し、前記入力信号がハイレベルに反転した後の最初の前記クロックの立ち上がりの時点で前記入力信号がロウレベルである場合には前記自回路の出力信号をロウレベルに反転させて前記第2のエッジを生成する第1の回路と、自回路の出力信号がハイレベルである場合に、前記入力信号がハイレベルに反転した後の最初の前記クロックの立ち上がりの時点で前記入力信号がハイレベルである場合には、前記自回路の出力信号をロウレベルに反転させて前記第2のエッジとして出力する第2の回路と、を備える付記1乃至3のいずれかに記載のエッジ検出回路。
(付記5)前記エッジ生成ユニットは、自回路の出力信号がハイレベルである場合に、前記入力信号がロウレベルに反転した後の最初の前記クロックの立ち上がりの時点で前記入力信号がロウレベルである場合には、前記自回路の出力信号をロウレベルに反転させて前記第2のエッジとして出力する第1の回路と、自回路の出力信号がロウレベルである場合に前記入力信号がロウレベルに反転すると直ちに前記自回路の出力信号をハイレベルに反転させて前記第1のエッジを生成し、前記入力信号がロウレベルに反転した後の最初の前記クロックの立ち上がりの時点で前記入力信号がハイレベルである場合には前記自回路の出力信号をロウレベルに反転させて第2のエッジを生成する第2の回路と、を備える付記1乃至4のいずれかに記載のエッジ検出回路。
(付記6)前記第1の回路は前記入力信号がセット入力端子に接続され、データ入力端子が接地され、前記クロックが入力される第1のRS付Dフリップフロップ回路であり、前記第2の回路は前記入力信号が反転されてセット入力端子に接続され、データ入力端子が接地され、クロック入力端子に前記クロックが入力される第2のRS付Dフリップフロップ回路である、付記4又は5に記載されたエッジ検出回路。
(付記7)前記エッジ検出信号生成ユニットは、前記第1のエッジを含む出力信号と前記第2のエッジを含む出力信号との論理積を前記エッジ検出信号として出力する、付記1乃至6のいずれかに記載されたエッジ検出回路。
(付記8)前記エッジ生成ユニットは、自回路の出力信号がハイレベルである場合に前記入力信号がハイレベルに反転すると直ちに前記自回路の出力信号をロウレベルに反転させて前記第1のエッジを生成し、前記入力信号がハイレベルに反転した後の最初の前記クロックの立ち上がりの時点で前記入力信号がロウレベルである場合には前記自回路の出力信号をハイレベルに反転させて前記第2のエッジを生成する第3の回路と、自回路の出力信号がロウレベルである場合に、前記入力信号がハイレベルに反転した後の最初の前記クロックの立ち上がりの時点で前記入力信号がハイレベルである場合には、前記自回路の出力信号をハイレベルに反転させて前記第2のエッジとして出力する第4の回路と、を備える付記1乃至3のいずれかに記載のエッジ検出回路。
(付記9)前記エッジ生成ユニットは、自回路の出力信号がロウレベルである場合に、前記入力信号がロウレベルに反転した後の最初の前記クロックの立ち上がりの時点で前記入力信号がロウレベルである場合には、前記自回路の出力信号をハイレベルに反転させて前記第2のエッジとして出力する第3の回路と、自回路の出力信号がハイレベルである場合に前記入力信号がロウレベルに反転すると直ちに出力信号をロウレベルに反転させて前記第1のエッジを生成し、前記入力信号がロウレベルに反転した後の最初の前記クロックの立ち上がりの時点で前記入力信号がハイレベルである場合には前記自回路の出力信号をハイレベルに反転させて第2のエッジを生成する第4の回路と、を備える付記1乃至3のいずれか又は付記8に記載のエッジ検出回路。
(付記10)前記第3の回路は前記入力信号がリセット入力端子に接続され、データ入力端子がハイレベルに固定され、前記クロックが入力される第3のRS付Dフリップフロップ回路であり、前記第4の回路は前記入力信号が反転されてセット入力端子に接続され、データ入力端子が接地され、クロック入力端子に前記クロックが入力される第4のRS付Dフリップフロップ回路である、付記8又は9に記載されたエッジ検出回路。
(付記11)前記エッジ検出信号生成ユニットは、前記第1のエッジを含む出力信号と前記第2のエッジを含む出力信号との反転論理和を前記エッジ検出信号として出力する、付記1乃至3及び付記8乃至10のいずれかに記載されたエッジ検出回路。
(付記12)デジタル信号である入力信号の論理の反転に対して直ちに論理を反転させた第1のエッジを含む出力信号を出力し、前記反転の後に所定のクロックと同期して読み込んだ前記デジタル信号の論理に基づいて生成した第2のエッジを含む出力信号を出力し、前記第1のエッジと前記第2のエッジとの間の時間を期間とするエッジ検出信号を生成する、エッジ検出方法。