(57)【特許請求の範囲】
【請求項１】
第１のクロックに同期したデータを入力し、第２のクロックに同期したデータを出力するエラスティック回路において、
前記第２のクロックで動作し読み出しアドレスカウント値を出力するＮ＋１進（Ｎは自然数）の読み出しアドレスカウンタと、
前記読み出しアドレスカウント値を入力し所定時間遅延させて出力する遅延回路と、
前記遅延回路から出力される前記読み出しアドレスカウント値をロード入力とし、前記第１のクロックで動作することにより書き込みアドレスカウント値を出力するＮ＋１進の書き込みアドレスカウンタと、
入力されるデータを前記書き込みアドレスカウント値によって書き込み、書き込まれているデータを前記読み出しアドレスカウント値によって読み出すメモリ回路とを備え、
前記遅延回路は、複数のフリップフロップから構成され、各段の前記フリップフロップの動作クロックはその後段に接続される前記フリップフロップの動作クロックよりも位相が遅れたクロックで動作するシフトレジスタであることを特徴としたエラスティック回路。
【請求項２】
第１のクロックに同期したデータを入力し、第２のクロックに同期したデータを出力するエラスティック回路であって、前記第２のクロックで動作し読み出しアドレスカウント値を出力するＮ＋１進（Ｎは自然数）の読み出しアドレスカウンタと、前記読み出しアドレスカウント値を入力し所定時間遅延させて出力する遅延回路と、前記遅延回路から出力される前記読み出しアドレスカウント値をロード入力とし、前記第１のクロックで動作することにより書き込みアドレスカウント値を出力するＮ＋１進の書き込みアドレスカウンタと、入力されるデータを前記書き込みアドレスカウント値によって書き込み、書き込まれているデータを前記読み出しアドレスカウント値によって読み出すメモリ回路とを備えてなる前記エラスティック回路と、
1クロック周期よりも小さい遅延を持つバッファがＳ段（Ｓは自然数）直列接続されたクロックツリー回路であって、前記第１のクロックを入力し、全体の遅延量がＮ−１クロック周期（Ｎは自然数）以上でＮクロック周期未満の前記第２のクロックを出力する前記クロックツリー回路を備えてなることを特徴とする集積回路。
【請求項３】
請求項２記載の集積回路において、前記遅延回路は、後段に接続される前フリップフロップの動作クロックよりも位相が遅れたクロックで動作する複数のフリップフロップから構成され、前記バッファの所定の段からの出力を動作クロックとして入力し動作することを特徴とする集積回路。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は第１のクロックに同期したデータを入力し、第２のクロックに同期したデータを出力する簡易的なエラスティック回路、およびそのエラスティック回路を備えた集積回路に関する。
【０００２】
【従来の技術】
システムLSIのような大規模集積回路では、一般に、受信したクロックをロジック回路内に分配するためにバッファによるクロックツリー回路を用いている。ロジック回路では、そのクロックツリー回路内で多段に接続されたバッファを経たクロックを用いて受信したデータの処理を行うのであるが、クロックツリー回路内のバッファ段数が多く、その遅延量がクロックの１／２周期を超えるようになると、設計段階において、クロックツリー回路に入力されるクロックとクロックツリー回路から出力されるクロックの位相関係は不定であるとみなし、それらのクロック間でのデータの送受信のためにエラスティック回路を設けておく必要がある。
【０００３】
図６に従来のエラスティック回路を用いた集積回路の構成図を示す。
【０００４】
エラスティック回路５は、メモリ回路５１、書き込みアドレスカウンタ５２、読み出しアドレスカウンタ５３で構成される。
【０００５】
書き込みアドレスカウンタ５２にはクロックツリー回路６０に入力される前のクロックがクロック端子２１から入力される。読み出しアドレスカウンタ５３のクロック入力Ｃにはロジック回路７で使用されるクロックＣ０、つまりクロックツリー回路６０で多段のバッファを経たクロックＣ０が入力される。ロジック回路７にはクロックＣ０、Ｃ１がクロック入力端子４１,４２を経て入力される。
【０００６】
書き込みアドレスカウンタ５２のカウント値によりメモリ回路５１内の記憶領域が指定され、そこに入力端子１から入力される入力データを記憶するとともに、読み出しアドレスカウンタ５３のカウント値によりメモリ回路５１内の記憶領域が指定され、そこに記憶されたデータが読み出され、出力端子３を介してロジック回路７に入力される。よって、ロジック回路７にはクロックツリー回路６０で多段バッファを経たクロックＣ０，Ｃ１に位相同期したデータが入力されるのである。
【０００７】
【発明が解決しようとする課題】
しかしながら、従来の回路では、カウンタは４進以上、メモリも４面以上を必要とすると言う問題点があった。従来のエラスティック回路を用いた場合であって、カウンタを３進とした場合のタイムチャートを図７に示す。以下、図７を用いて、図６の従来回路ではなぜカウンタは４進以上、メモリも４面以上必要かにつき説明する。
【０００８】
図６におけるリセット入力端子２２を介して外部から入力される１ビット幅の非同期リセット信号により、２つのカウント値が０となる場合を考える。書き込みアドレスカウント値がtw1で０になる場合というのは、図７のようにリセット信号が実線から点線の間（約２ビット幅分）のどこかにあるということである。
【０００９】
このリセット信号で読み出しアドレスカウント値が０となる場合というのは、書き込みアドレスカウンタ（５２）に入力されるクロックに対し読み出しアドレスカウンタ（５３）に入力されるクロックの位相はどこにあるかわからないので、読み出しアドレスカウンタ（５３）はtr1〜tr2の間のどこかの立ち上がりでリセットされるということである。
【００１０】
ここで、書き込みアドレスカウント値が０の時に、メモリ回路（５１）に書き込んだ＃０を読み出しアドレスカウント値がいくつの時に読み出すかを考える。書き込みアドレスカウント値が０の時に、読み出しアドレスカウント値も０では＃０が読み出せない。読み出しアドレスカウント値が１では、"読み出しアドレスカウンタ▲１▼"の場合、即ち入力されるクロックがtr1でカウント値が０となる場合にメモリ回路（５１）内における書き込み読み出しタイミングがあまりにもクリティカルなので、確実に＃０が読み出すことができなくなる。また、読み出しアドレスカウント値が２では、"読み出しアドレスカウンタ▲２▼"の場合、即ち入力されるクロックがtr2でカウント値が０となる場合にメモリ回路（５１）内に次のデータが書き込まれようとしているため、これも確実に＃０を読み出すことは困難となる。
【００１１】
そこで、従来回路では、読み出しアドレスカウント値が２の時に確実に＃０が読み出せるように、カウンタは４進以上必要となる。（ここで、メモリ回路５１の容量もカウンタの進数に比例して増やす必要がある。）
【００１２】
【課題を解決するための手段】
本発明は、前記課題を解決するために、請求項１記載の発明として、外部クロックに相当する第１のクロックに同期したデータを入力し、回路中の内部論理回路へ分配される内部クロックに相当する第２のクロックに同期したデータを出力するエラスティック回路において、第２のクロックで動作し読み出しアドレスカウント値を出力するＮ＋１進（Ｎは自然数）の読み出しアドレスカウンタと、前記読み出しアドレスカウント値を入力し所定時間遅延させて出力する遅延回路と、前記遅延回路から出力される前記読み出しアドレスカウント値をロード入力とし、第１のクロックで動作することにより書き込みアドレスカウント値を出力するＮ＋１進の書き込みアドレスカウンタと、入力されるデータを前記書き込みアドレスカウント値によって書き込み、書き込まれているデータを前記読み出しアドレスカウント値によって読み出すメモリ回路とを設けた。
【００１３】
また、請求項２記載の発明として、前記エラスティック回路における遅延回路を、複数のフリップフロップで構成し、各段のフリップフロップの動作クロックをその後段に接続されるフリップフロップの動作クロックよりも位相が遅れたクロックを入力として動作するシフトレジスタで構成した。
【００１４】
さらに、請求項３記載の発明として、前記エラスティック回路にさらに、1クロック周期よりも小さい遅延を持つバッファがＳ段（Ｓは自然数）直列接続されたクロックツリー回路であって、前記第１のクロックを入力し、全体の遅延量がＮ−１クロック周期（Ｎは自然数）以上でＮクロック周期未満の前記第２のクロックを出力する前記クロックツリー回路を設けることにより集積回路を構成した。
【００１５】
そしてさらに、請求項４記載の発明として、この集積回路における遅延回路を、後段に接続される前フリップフロップの動作クロックよりも位相が遅れたクロックで動作する複数のフリップフロップで構成し、前記バッファの所定の段からの出力を動作クロックとして入力し動作するように構成した。
【００１６】
このような構成により、最小限のカウンタ進数及びメモリ容量で、かつ、外部からリセット信号を入力する必要がないエラスティック回路を実現でき、面積縮小およびローパワー化した集積回路を実現することができる。
【００１７】
【発明の実施の形態】
図１は、本発明の実施例である集積回路を説明するためのブロック図である。以下、図面を用いて説明する。
【００１８】
１はデータ入力端子、２は外部クロック入力端子、３はエラスティック回路５からのデータ出力端子、４はクロックツリー回路６からのクロック出力端子、７はロジック回路、１１はメモリ回路、１２は書き込みアドレスカウンタ、１３は読み出しアドレスカウンタ、１４〜１６は遅延回路としてのレジスタを構成するデータフリップフロップ（以下、D-FFという）、１７〜２０はバッファである。
【００１９】
データ入力端子１は、メモリ回路１１のデータ入力Ｄに接続される。メモリ回路１１の出力Ｑはデータ出力端子３に接続され、データ出力端子３はロジック回路７のデータ入力Ｄに接続される。外部クロック入力端子２は書き込みアドレスカウンタ１２のクロック入力Ｃおよびクロックツリー回路６内のバッファ１７の入力に接続される。書き込みアドレスカウンタ１２の出力はメモリ回路１１の書き込みアドレス入力ＷＡに接続される。
【００２０】
読み出しアドレスカウンタ13の出力Ｑはメモリ回路１１の読み出しアドレス入力ＲＡおよびD-FF１６の入力Ｄに接続される。 D-FF１６の出力ＱはD-FF１５の入力Ｄに接続され、 D-FF１５の出力ＱはD-FF１４の入力Ｄに接続される。 D-FF１４の出力Ｑは書き込みアドレスカウンタ１２のデータ入力Ｄに接続される。D-FF１４，１５，１６のクロック入力Ｃは、それぞれクロックツリー回路６内のバッファ１７，１８，１９の出力が順次接続されている。クロックツリー回路６内では、バッファが１７，１８，１９，２０の順に直列に接続され、バッファ２０の出力は読み出しアドレスカウンタ１３のクロック入力Ｃおよびクロック出力端子４に接続され、端子４はロジック回路７のクロック入力Ｃに接続されている。
【００２１】
ここで、図２は動作原理を説明するためのブロック図であり、図３はそのタイムチャートである。以下、これらの図面を用いて、動作原理を説明する。
【００２２】
図２に示される２つのD-FF３１，３２が直列に接続されている回路においては、図３に示されるように、前段のD-FF３１に入力されるクロックＡよりも後段のD-FF３２に入力されるクロックＢの方が、１クロック周期よりも十分に小さい位相（例えば、バッファ1段の遅延時間分）だけ前にある場合、D-FF３２はD-FF３１の出力データを確実にラッチすることができる。
【００２３】
図２におけるD-FF３１とD-FF３２の関係が、図１でいう読み出しアドレスカウンタ１３とD-FF１６、D-FF１６とD-FF１５、D-FF１５とD-FF１４、D-FF１４と書き込みアドレスカウンタ１２に相当し、ぞれぞれの後段の回路は前段の出力データを確実にラッチすることができる、つまり、読み出しアドレスカウンタ１３のカウント値を書き込みアドレスカウンタ１２へ確実に伝達できる。
【００２４】
ここで、図１において、クロックツリー回路６内における最大遅延量が１クロック周期未満である場合、書き込みアドレスカウンタ１２および読み出しアドレスカウンタ１３は2進カウンタで実現できる。図4の（ａ）および（ｂ）は、２進カウンタで実現した場合のそれぞれ、クロックツリー回路６内における遅延量が、０である場合のタイムチャートと、１クロック周期未満である場合のタイムチャートを示し、以下、図面を用いて説明する。
【００２５】
図４に示されるように、クロックツリー回路６内のバッファ２０が出力するクロックの立ち上がりエッジtr1で読み出しアドレスカウンタ１３のカウント値が０になったとする。図４（ａ）に示されるように、クロックツリー回路６における遅延量がない場合（遅延量０）は、入力端子２に入力されるクロックの立ち上がりエッジtw1で書き込みアドレスカウンタ１２のカウント値が０となる。読み出しアドレスカウンタ１３の出力は、D-FF３段を介して書き込みアドレスカウンタ１２に入力されるので、書き込みアドレスカウンタ１２の出力は読み出しアドレスカウンタ１３の出力に対して４ビット分遅れる。
【００２６】
また、図４（ｂ）に示されるように、クロックツリー回路６における遅延量が最大（１クロック周期未満）の場合は、入力端子２に入力されるクロックの立ち上がりエッジtw2で書き込みアドレスカウンタ１２のカウント値が０となる。この場合、１クロック周期（１ビット）分だけ２つのカウンタの出力は近づき、書き込みアドレスカウンタ１２に出力は読み出しアドレスカウンタ１３の出力に対して３ビット分遅れる。
【００２７】
従って、図４（ａ）および（ｂ）に示されるように、書き込みアドレスカウンタ１２のカウント値が０の時にメモリ回路に書き込まれたデータを、読み出しアドレスカウンタ１３のカウント値が１（図中▲１▼で示す）の時に読み出すようにすれば、遅延量が０の時は、データの書き込みと読み出しのタイミングで１クロック程度の時間差があるため安定にデータを読み出すことができ、遅延量が最大の時も、書き込みタイミングの少し前（メモリ１１内のデータが＃０から＃１に書き換わる前）で読み出されるので安定に読み出すことができる。
【００２８】
図1において、クロックツリー回路６内における最大遅延量が１クロック周期以上2クロック周期未満である場合には、書き込みアドレスカウンタ１２および読み出しアドレスカウンタ１３は３進カウンタで実現できる。図5（ａ）および（ｂ）は、３進カウンタで実現した場合のそれぞれ、クロックツリー回路６内における遅延量が、１クロック周期の場合のタイムチャートと、2クロック周期未満である場合のタイムチャートを示し、以下、図面を用いて説明する。
【００２９】
図5に示されるように、クロックツリー回路６内のバッファ２０が出力するクロックの立ち上がりエッジtr1で読み出しアドレスカウンタ１３のカウント値が０になったとする。図５（ａ）に示されるように、クロックツリー回路６における遅延量が最小（１クロック周期）の場合は、入力端子２に入力されるクロックの立ち上がりエッジtw1で書き込みアドレスカウンタ１２のカウント値が０となり、図５（ｂ）に示されるように、遅延量が最大（2クロック周期未満）の場合は、tw2で書き込みアドレスカウンタ１２のカウント値が０となる。
【００３０】
従って、書き込みアドレスカウンタ１２のカウント値が０の時にメモリ回路１１に書き込まれたデータを、読み出しアドレスカウンタ１３のカウント値が２（図中▲２▼で示す）の時に読み出すようにすれば、遅延量が最小の時は、データの書き込みと読み出しのタイミングで１クロック程度の時間差があるため安定にデータ＃０を読み出すことができ、また、遅延量が最大の時も、書き込みタイミングの少し前（メモリ１１内のデータが＃０から＃１に書き換わる前）で読み出されるので安定に読み出すことができる。さらに、遅延量が１クロック周期未満の場合も安定に読み出すことができる。
【００３１】
このように、クロックツリー回路６の最大遅延量がＮ−１クロック周期以上（Ｎは自然数）でＮクロック周期未満であれば、Ｎ＋１進の書き込みアドレスカウンタおよび読み出しアドレスカウンタでエラスティク回路を構成することができる。
【００３２】
以上のように本実施例によれば、読み出しアドレスカウンタ１３の出力を所定遅延量をもって書き込みアドレスカウンタ１２にロードしているので、入力端子２に入力される外部クロックとクロックツリー回路６によって遅延された内部クロックとの位相差を吸収できる。また、所定遅延量を与える遅延回路をD-FF１４,１５,１６で構成し、それらD-FF１４,１５,１６の動作クロックとして直列接続されたバッファ１７,１８,１９からの出力を用いているので、後段のD-FFに入力される動作クロックよりも前段のD-FFに入力される動作クロックの方が位相が遅れることとなり、データを確実にラッチして出力することができる。
【００３３】
なお、本実施例の説明では、クロックツリー回路６内のバッファを4段、エラスティック回路内のD-FFを3段とした場合について説明したが、クロック周期に対応した所定の遅延を与える遅延回路、例えば、バッファがＭ段（Ｍは自然数）であれば、 D-FFはＭ−１段以下とした構成であっても同様に機能する。また、読み出しアドレスカウンタ１３のアドレス値が０の時に書き込みアドレスカウンタ１２のアドレス値がＮとなるようにタイミング設計を行うことで同様に機能する。
【００３４】
【発明の効果】
以上詳細に説明したように、本発明によれば、外部クロックに相当する第１のクロックに同期したデータを入力し、回路中の内部論理回路へ分配される内部クロックに相当する第２のクロックに同期したデータを出力するエラスティック回路において、読み出しアドレスカウンタからの出力を所定時間遅延させて書き込みアドレスカウンタにロード入力しているので、最小限のカウンタ進数およびメモリ容量で、かつ、外部からリセット信号を入力する必要がなくエラスティック回路を実現でき、面積縮小およびローパワー化された集積回路を実現することができる。
【図面の簡単な説明】
【図１】本発明の実施例である集積回路を説明するためのブロック図である。
【図２】図１に示した集積回路の動作原理を説明するためのブロック図である。
【図３】図２のブロック図で示される集積回路のタイムチャートである。
【図４】図１に示した集積回路であって２進カウンタで実現した場合の、クロックツリー回路６内における最大遅延量が１クロック周期未満である場合の、タイムチャートである。
【図５】図１に示した集積回路であって３進カウンタで実現した場合の、クロックツリー回路６内における最大遅延量が１クロック周期以上2クロック周期未満である場合の、タイムチャートである。
【図６】従来のエラスティック回路を有する集積回路のブロック図である。
【図７】図６に示した集積回路のタイムチャートである。
【符号の説明】
１   データ入力端子                   ２   外部クロック入力端子
３ データ出力端子                     ４   クロック出力端子
５ エラスティック回路                 ７   ロジック回路
１１ メモリ回路                      １２   書き込みアドレスカウンタ
１３ 読み出しアドレスカウンタ        １４〜１６   D-FF
１７〜２０   バッファ
【図１】
0004193284.tif 000002
【図２】
0004193284.tif 000003
【図３】
0004193284.tif 000004
【図４】
0004193284.tif 000005
【図５】
0004193284.tif 000006
【図６】
0004193284.tif 000007
【図７】
0004193284.tif 000008