以下に添付図面を参照して、このパラレル−シリアル変換器の好適な実施の形態を詳細に説明する。
(実施の形態1)
図1は、実施の形態1にかかるパラレル−シリアル変換器を示す図である。図1に示すように、実施の形態1にかかるパラレル−シリアル変換器100は、変換回路110と、フリップフロップ回路120と、生成回路130と、検出回路140と、制御回路150と、を備えている。パラレル−シリアル変換器100は、入力されたパラレルデータ(データid0aおよびデータid1a)を、データレートが2倍のシリアルデータ(データodata)に変換するパラレル−シリアル変換器である。
変換回路110は、入力されるデータid0aおよびデータid1aをパラレルデータからシリアルデータに変換する。たとえば、変換回路110は、供給される第一クロック信号に同期して各データの切り替えを行う。具体的には、変換回路110は、第一クロック信号の立ち上がりに同期してデータid0aを出力し、第一クロック信号の立ち下がりに同期してデータid1aを出力する。変換回路110の出力は、データdataとしてフリップフロップ回路120へ入力される。
フリップフロップ回路120は、変換回路110から出力されたデータdataを整形する。たとえば、フリップフロップ回路120は、供給される第二クロック信号の立ち上がりに同期してデータdataを整形する。フリップフロップ回路120の出力は、データodataとして後段に出力される。フリップフロップ回路120により、データdataを整形してデータodataとして出力することができる。
生成回路130は、変換回路110から出力されるデータdataのレプリカデータrep−dataを生成し、生成したレプリカデータrep−dataを検出回路140へ出力する。データdataのレプリカデータrep−dataは、たとえば、データdataがデータid0aとデータid1aを交互に繰り返すのと同様に、第一データと第二データを交互に繰り返すシリアルデータである。
検出回路140は、生成回路130から出力されたレプリカデータrep−dataの第一切り替わり点と、第一切り替わり点の次の第二切り替わり点と、を検出する。第一切り替わり点は、たとえば、レプリカデータrep−dataにおいて第一データから第二データへ切り替わる点である。第二切り替わり点は、レプリカデータrep−dataにおいて第二データから第一データへ切り替わる点である。検出回路140は、検出した第一切り替わり点および第二切り替わり点を制御回路150へ通知する。
制御回路150は、検出回路140から通知された第一切り替わり点および第二切り替わり点に基づいて、変換回路110から出力されるシリアルデータとフリップフロップ回路120の相対的なタイミングを制御する。シリアルデータのタイミングは、たとえばデータid0aおよびデータid1aが切り替わるタイミングである。
フリップフロップ回路120のタイミングは、フリップフロップ回路120がデータdataを出力するタイミングである。たとえば、制御回路150は、変換回路110へ供給される第一クロック信号と、フリップフロップ回路120へ供給される第二クロック信号と、の相対的な位相を制御する。これにより、変換回路110の切り替えタイミングに対するフリップフロップ回路120のタイミングを制御することができる。
このように、実施の形態1にかかるパラレル−シリアル変換器100は、データdataのレプリカデータrep−dataの切り替わり点に基づいて、変換回路110の切り替えタイミングに対するフリップフロップ回路120のタイミングを制御する。これにより、変換回路110の切り替えタイミングに対するフリップフロップ回路120のタイミングを任意に制御し、シリアルデータ(データdata)を精度よく整形することができる。
また、パラレル−シリアル変換器100は、レプリカデータrep−dataの第一切り替わり点および第二切り替わり点をそれぞれ検出し、検出した各切り替わり点に基づいて各タイミングを制御する。これにより、シリアルデータ(データdata)のデューティ比が50%でなくても、シリアルデータを精度よく整形することができる。
(実施の形態2)
図2は、実施の形態2にかかるパラレル−シリアル変換器を示す図である。図2に示すように、実施の形態2にかかるパラレル−シリアル変換器200は、入力端子211と、分周回路212と、任意位相生成回路213と、バッファ214と、入力端子221,222と、フリップフロップ回路223〜227(FF)と、選択回路230と、フリップフロップ回路240(FF)と、入力端子251,252と、選択回路253と、検出回路260と、制御回路270と、を備えている。
パラレル−シリアル変換器200は、入力端子221および入力端子222から供給されるデータid0およびデータid1を、データレートが2倍のデータodataに変換する。データodataは、たとえば受信回路(不図示)に供給され、パラレル−シリアル変換器200と受信回路とを含むデータ受信システムが構成される。
入力端子211にはクロック信号clkが入力される。入力端子211は、入力されたクロック信号clkを、分周回路212、フリップフロップ回路240および検出回路260へ出力する。分周回路212は、入力端子211から出力されたクロック信号clkを1/2の周波数に分周することにより分周クロック信号div−clkを生成する。分周回路212は、生成した分周クロック信号div−clkを任意位相生成回路213および検出回路260へ出力する。
任意位相生成回路213は、分周回路212から出力され、互いに位相が異なる多相の分周クロック信号div−clkから、任意の位相の分周クロック信号を生成する位相補間回路である。任意位相生成回路213は、制御回路270の制御によって、生成する分周クロック信号の位相を変化させる。任意位相生成回路213は、生成した分周クロック信号をクロック信号data−clkとしてバッファ214へ出力する。
バッファ214は、任意位相生成回路213から出力されたクロック信号data−clkを、数多くの素子に供給できるように十分な駆動力に増幅する。バッファ214は、増幅したクロック信号data−clkを、選択回路230およびフリップフロップ回路223〜227のそれぞれへ出力する。
入力端子221にはデータid0が入力される。入力端子221は、入力されたデータid0をフリップフロップ回路223へ出力する。フリップフロップ回路223へ入力されたデータid0は、フリップフロップ回路223〜225によって、クロック信号data−clkに基づいて順次ラッチされる。フリップフロップ回路223〜225によって順次ラッチされたデータid0は、クロック信号data−clkの1周期分遅延し、データid0aとして選択回路230へ出力される。
入力端子222にはデータid1が入力される。入力端子222は、入力されたデータid1をフリップフロップ回路226へ出力する。フリップフロップ回路226へ入力されたデータid1は、フリップフロップ回路226,227によって、クロック信号data−clkに基づいて順次ラッチされる。フリップフロップ回路226,227によって順次ラッチされたデータid1は、クロック信号data−clkの半周期分遅延し、データid1aとして選択回路230へ出力される。したがって、選択回路230へ入力されるデータid0aとデータid1aとは、位相が互いに180°ずれることになる。
また、バッファ214から出力されたクロック信号data−clk(第一クロック信号)は選択回路230へ供給される。選択回路230は、たとえば図1の変換回路110に対応する構成である。選択回路230は、入力されるデータid0aおよびデータid1aのいずれかを選択して出力するとともに、供給されるクロック信号data−clk(第一クロック信号)に同期してデータの選択を切り替える。
たとえば、選択回路230は、バッファ214から供給されるクロック信号data−clkの立ち上がりに同期してデータid0aを選択し、クロック信号data−clkの立ち下がりに同期してデータid1aを選択する。選択回路230は、選択したデータをデータdataとしてフリップフロップ回路240へ出力する。
フリップフロップ回路240は、たとえば図1のフリップフロップ回路120に対応する構成である。フリップフロップ回路240には、入力端子221から出力されたクロック信号clk(第二クロック信号)が供給される。フリップフロップ回路240は、クロック信号clkの立ち上がりに同期して、選択回路230から出力されたデータdataをラッチする。フリップフロップ回路240の出力は、データodataとして後段へ出力される。
入力端子251には、固定データ「0」(const0)が入力される。入力端子251は、入力された固定データ「0」を選択回路253へ出力する。入力端子252には、固定データ「1」(const1)が入力される。入力端子252は、入力された固定データ「1」を選択回路253へ出力する。
選択回路253は、たとえば図1の生成回路130に対応する構成である。選択回路253は、入力される複数のレプリカデータのいずれかを選択して出力する。また、選択回路253は、選択回路230のデータ選択の切り替えに同期してレプリカデータの選択を切り替える。たとえば、選択回路230へ供給されるクロック信号data−clkが選択回路253にも供給され、選択回路253は、供給されたクロック信号data−clkに同期してレプリカデータの選択を切り替える。
具体的には、選択回路253は、供給されるクロック信号data−clkの立ち上がりに同期して固定データ「0」を選択し、クロック信号data−clkの立ち下がりに同期して固定データ「1」を選択する。選択回路253は、選択したデータをレプリカデータrep−dataとして検出回路260へ出力する。
検出回路260は、たとえば図1の検出回路140に対応する構成である。検出回路260は、レプリカデータrep−dataの第一切り替わり点および第二切り替わり点に対する、クロック信号clkの立ち下がりの各ずれを検出する。第一切り替わり点は、たとえば固定データ「0」から固定データ「1」への切り替わり点である。
第二切り替わり点は、たとえば固定データ「1」から固定データ「0」への切り替わり点である。具体的には、検出回路260は、フリップフロップ回路261(FF)と、フリップフロップ回路262(Ph−FF)と、フリップフロップ回路263(Ph−FF)と、を備えている。
フリップフロップ回路261は、入力端子221から出力されたクロック信号clkの立ち下りに、選択回路253から出力されたレプリカデータrep−dataを同期させるレプリカフリップフロップ回路である。たとえば、フリップフロップ回路261の前段には反転回路261aが設けられており、フリップフロップ回路261は、クロック信号clkの反転信号の立ち上がりに、レプリカデータrep−dataを同期させる。フリップフロップ回路261の出力phは、フリップフロップ回路262,263へ出力される。
フリップフロップ回路262は、分周回路212から出力された分周クロック信号div−clkの立ち上がりに、フリップフロップ回路261からの出力phを同期させる第一フリップフロップ回路である。フリップフロップ回路262の出力dif1は、制御回路270へ出力される。
フリップフロップ回路263は、分周回路212から出力された分周クロック信号div−clkの立ち下がりに、フリップフロップ回路261からの出力phを同期させる第二フリップフロップ回路である。たとえば、フリップフロップ回路263の前段には反転回路263aが設けられており、フリップフロップ回路263は、分周クロック信号div−clkの反転信号の立ち上がりに出力phを同期させる。フリップフロップ回路263の出力dif2は制御回路270へ出力される。
フリップフロップ回路262から出力される出力dif1は、レプリカデータrep−dataの第一切り替わり点に対するクロック信号clkの立ち下がりのずれの方向を示している。フリップフロップ回路263から出力される出力dif2は、レプリカデータrep−dataの第二切り替わり点に対するクロック信号clkの立ち下がりのずれの方向を示している。
たとえば、クロック信号clkの立ち上がりがデータdataの最適点に対して遅延している場合は、クロック信号clkの立ち下がりがレプリカデータrep−dataの各切り替わり点に対して遅延する。この場合は、たとえば出力dif1が「0」で出力dif2が「1」となる。ここで、データdataの最適点とは、たとえばデータdataにおける、データid0aとデータid1aとの間の中央である。
また、クロック信号clkの立ち上がりがデータdataの最適点に対して進んでいる場合は、クロック信号clkの立ち下がりレプリカデータrep−dataの切り替わり点に対して進んだ状態となる。この場合は、たとえば出力dif1が「1」で出力dif2が「0」となる。
また、クロック信号clkの立ち上がりがデータdataの最適点と一致している場合は、クロック信号clkの立ち下がりレプリカデータrep−dataの切り替わり点と一致する。この場合は、出力dif1と出力dif2がともに「0」となり、または、出力dif1と出力dif2がともに「1」となる。
制御回路270は、たとえば図1に示した制御回路150に対応する構成である。制御回路270は、検出回路260から出力された出力dif1および出力dif2に基づいて、クロック信号data−clkとクロック信号clkの相対的な位相を制御する。具体的には、制御回路270は、位相制御回路272と、位相判定回路271と、を備えている。
位相判定回路271は、検出回路260から出力された出力dif1,dif2に基づいて、フリップフロップ回路240へ入力されるクロック信号clkの立ち上がりに対するデータdataの最適点のずれを判定する。たとえば、位相判定回路271は、出力dif1が「0」で出力dif2が「1」の場合は、クロック信号clkがデータdataに対して遅延していると判定する。この場合は、位相判定回路271は、判定結果「−1」を位相制御回路272へ出力する。
また、位相判定回路271は、出力dif1が「1」で出力dif2が「0」の場合は、クロック信号clkがデータdataに対して進んでいると判定する。この場合は、位相判定回路271は、判定結果「+1」を位相制御回路272へ出力する。また、位相判定回路271は、出力dif1および出力dif2が同じである場合は、クロック信号clkがデータdataに対して最適な位相であると判定する。この場合は、位相判定回路271は、判定結果「0」を位相制御回路272へ出力する。
位相制御回路272は、位相判定回路271から出力された判定結果に基づいてクロック信号data−clkとクロック信号clkの相対的な位相を制御する。具体的には、位相制御回路272は、位相判定回路271から判定結果「−1」が出力された場合はクロック信号data−clkの位相を進めるように任意位相生成回路213を制御する。
また、位相制御回路272は、位相判定回路271から判定結果「+1」が出力された場合はクロック信号data−clkの位相を遅延させるように任意位相生成回路213を制御する。また、位相制御回路272は、位相判定回路271から判定結果「0」が出力された場合は、クロック信号data−clkの位相を維持するように任意位相生成回路213を制御する。
このように、制御回路270は、レプリカデータrep−dataの第一切り替わり点および第二切り替わり点に対する、クロック信号clkの立ち下がりの各ずれが小さくなる方向にクロック信号data−clkの位相を制御する。ただし、制御回路270は、クロック信号clkの位相を制御することによってクロック信号data−clkとクロック信号clkの相対的な位相を制御する構成としてもよい。
図3−1は、図2に示したパラレル−シリアル変換器の動作のタイムチャートを示す図(その1)である。図3−1は、フリップフロップ回路240へ入力されるクロック信号clkの立ち上がりが、フリップフロップ回路240へ入力されるデータdataの最適点に対して遅延した状態を示している。図3−1において、横軸は時間を示している。
符号310は、選択回路230からフリップフロップ回路240へ入力されるデータdataを示している。符号320は、選択回路253からフリップフロップ回路261へ出力されるレプリカデータrep−dataを示している。選択回路253は選択回路230と同期してデータの選択を切り替えるため、レプリカデータrep−dataの切り替わり点は、データdataの切り替わり点と同期している。
符号330は、入力端子221からフリップフロップ回路261へ入力されるクロック信号clkを示している。符号331はクロック信号clkの立ち上がりを示している。符号331に示すように、クロック信号clkの立ち上がりはデータdataの最適点に対して遅延している。したがって、クロック信号clkの立ち下がりは、データdataの各切り替わり点に対して遅延している。
符号340は、フリップフロップ回路261の出力phを示している。符号350は、分周回路212から出力される分周クロック信号div−clkを示している。符号360は、フリップフロップ回路262から位相判定回路271へ出力される出力dif1を示している。符号370は、フリップフロップ回路263から位相判定回路271へ出力される出力dif2を示している。
ここでは、出力dif1が常に「0」となり(all:0)、出力dif2が常に「1」となる(all:1)。この場合は、制御回路270の制御によりクロック信号data−clkの位相が遅延する。これにより、データdataの位相が遅延し、クロック信号clkの立ち上がりをデータdataの最適点に近づけることができる。
図3−2は、図2に示したパラレル−シリアル変換器の動作のタイムチャートを示す図(その2)である。図3−2は、フリップフロップ回路240へ入力されるクロック信号clkの立ち上がりが、フリップフロップ回路240へ入力されるデータdataの最適点と一致した状態を示している。図3−2において、図3−1に示した部分と同様の部分については同一の符号を付して説明を省略する。
図3−2の符号331に示すように、クロック信号clkの立ち上がりはデータdataの最適点とほぼ一致している。ただし、ここではデータdataのデューティ比が50%でないため、クロック信号clkの立ち下がりのタイミングにおいて、レプリカデータrep−dataが常に「1」となっている。
このため、符号340に示すように、フリップフロップ回路261の出力phが常に「1」となっている(all:1)。したがって、符号360および符号370に示すように、出力dif1および出力dif2が常に「1」となる(all:1)。この場合は、制御回路270の制御によってクロック信号data−clkの位相が維持される。これにより、クロック信号clkの立ち上がりがデータdataの最適点と一致した状態を維持することができる。
図3−3は、図2に示したパラレル−シリアル変換器の動作のタイムチャートを示す図(その3)である。図3−3は、フリップフロップ回路240へ入力されるクロック信号clkの立ち上がりが、フリップフロップ回路240へ入力されるデータdataの最適点に対して進んでいる状態を示している。図3−3において、図3−1に示した部分と同様の部分については同一の符号を付して説明を省略する。
図3−3の符号331に示すように、クロック信号clkの立ち上がりはデータdataの最適点に対して進んでいる。したがって、クロック信号clkの立ち下がりは、データdataの切り替わり点に対して進んでいる。
ここでは、出力dif1が常に「1」となり(all:1)、出力dif2が常に「0」となる(all:0)。この場合は、制御回路270の制御によりクロック信号data−clkの位相が進められる。これにより、データdataの位相が進み、クロック信号clkの立ち上がりをデータdataの最適点に近づけることができる。
図3−1〜図3−3に示したように、クロック信号clkとデータdataとのタイミングが最適である場合(図3−2)と、クロック信号がデータdataに対して進んでいる場合(図3−3)と、においては出力dif1が常に「1」となる。このため、出力dif1のみを検出する場合はそれぞれの場合を区別することができない。
これに対して、パラレル−シリアル変換器200は、出力dif1,dif2を検出することで、データdataのデューティ比が50%でなくても、クロック信号clkの立ち上がりとデータdataの最適点とのずれを精度よく判定することができる。このため、パラレル−シリアル変換器200は、データdataのデューティ比が50%でなくてもデータdataを精度よく整形することができる。
なお、データdataやクロック信号clkはノイズやジッタを有するため、出力dif1および出力dif2が「0」と「1」のいずれになるかは確率的に変化する。以下の図4〜図7において、出力dif1および出力dif2の確率的な変化に基づく位相制御について説明する。
図4は、出力dif1のみに基づく位相制御(デューティ比=50%)を示す参考図である。図4において、横軸は、制御回路270によって制御されるクロック信号data−clkの位相(データ位相)を示している。横軸の位相p1は、クロック信号data−clkの最適な位相を示している。縦軸は確率を示している。図4は、データdataのデューティ比が50%であり、制御回路270が出力dif1のみに基づいて位相制御を行うと仮定した場合について参考として示している。
たとえば、制御回路270が、出力dif1が「1」であればクロック信号data−clkの位相を遅延させ、出力dif1が「0」であればクロック信号data−clkの位相を進める位相制御を行うとする。
関係410は、クロック信号data−clkの位相と、出力dif1が「1」となる確率との関係を示している。関係410に示すように、クロック信号data−clkの位相が位相p1に対して大きく遅延しているときは、出力dif1が「1」となる確率は0%になる。また、クロック信号data−clkの位相が位相p1に対して大きく進んでいるときは、出力dif1が「1」となる確率は100%になる。
また、クロック信号data−clkの位相が位相p1に近いときは、クロック信号data−clkの位相が進むほど、出力dif1が「1」となる確率が高くなる。クロック信号data−clkの位相変化量は、(出力dif1が「1」となる確率)−(出力dif1が「0」となる確率)に比例する。
関係420は、クロック信号data−clkの位相と、(出力dif1が「1」となる確率)−(出力dif1が「0」となる確率)と、の関係を示している。制御回路270による制御により、クロック信号data−clkの位相は、関係420の確率が0%になる位相に収束する。したがって、クロック信号data−clkの位相は、最適な位相p1に収束する。
図5は、出力dif1,dif2に基づく位相制御(デューティ比=50%)を示す図である。図5は、クロック信号data−clkのデューティ比が50%であり、制御回路270が出力dif1および出力dif2に基づいて位相制御を行う場合を示している。図5において、図4に示した部分と同様の部分については同一の符号を付して説明を省略する。
関係511は、クロック信号data−clkの位相と、出力dif1が「1」となる確率と、の関係を示している。関係512は、クロック信号data−clkの位相と、出力dif2が「1」となる確率と、の関係を示している。
関係521は、クロック信号data−clkの位相と、出力dif1が「1」で出力dif2が「0」となる確率と、の関係を示している。関係522は、クロック信号data−clkの位相と、出力dif1が「0」で出力dif2が「1」となる確率と、の関係を示している。
クロック信号data−clkの位相変化量は、(出力dif1が「1」で出力dif2が「0」となる確率)−(出力dif1が「0」で出力dif2が「1」となる確率)に比例する。関係530は、関係521から関係522を引いたものである。すなわち、関係530は、クロック信号data−clkの位相と、(出力dif1が「1」で出力dif2が「0」となる確率)−(出力dif1が「0」で出力dif2が「1」となる確率)と、の関係を示している。
制御回路270による制御により、クロック信号data−clkの位相は、関係530の確率が0%になる位相に収束する。したがって、クロック信号data−clkの位相は最適な位相p1に収束する。このように、制御回路270による制御により、クロック信号data−clkの位相は最適な位相p1に収束させ、クロック信号clkの立ち上がりをデータdataの最適点に近づけることができる。
図6は、出力dif1のみに基づく位相制御(デューティ比≠50%)を示す参考図である。図6は、データdataのデューティ比が50%でなく、制御回路270が出力dif1のみに基づいて位相制御を行うと仮定した場合について参考として示している。図6において、図4に示した部分と同様の部分については同一の符号を付して説明を省略する。
図6の関係420に示すように、データdataのデューティ比が50%でない場合は、関係420の確率が0%になるときのクロック信号data−clkの位相が位相p1とならない。したがって、制御回路270が出力dif1のみに基づいて位相制御を行う場合は、データdataの整形を精度よく行うことができない。
図7は、出力dif1,dif2に基づく位相制御(デューティ比≠50%)を示す図である。図7は、データdataのデューティ比が50%でなく、制御回路270が出力dif1,dif2に基づいて位相制御を行う場合を示している。図7において、図5に示した部分と同様の部分については同一の符号を付して説明を省略する。
図7の関係530に示すように、クロック信号data−clkのデューティ比が50%でない場合であっても、関係530の確率が0%になるときのクロック信号data−clkの位相は最適な位相p1となる。したがって、制御回路270の制御により、クロック信号data−clkの位相を、最適な位相p1に収束させることができる。
このように、実施の形態2にかかるパラレル−シリアル変換器200は、レプリカデータrep−dataの切り替わり点に対するクロック信号clkの立ち下がりのずれを検出する。そして、パラレル−シリアル変換器200は、検出したずれを用いることで、データdataに対するクロック信号clkの立ち上がりのタイミングを任意に制御することができる。このため、データdataを精度よく整形することができる。
また、パラレル−シリアル変換器200は、レプリカデータrep−dataの第一切り替わり点および第二切り替わり点に対して第二クロック信号の立ち上がりのずれをそれぞれ検出する。これにより、データdataのデューティ比が50%でなくても、データdataに対するクロック信号clkの立ち上がりのずれを精度よく検出し、データdataを精度よく整形することができる。
(実施の形態3)
図8は、実施の形態3にかかるパラレル−シリアル変換器の構成を示す図である。図8において、図2に示した構成と同様の構成については同一の符号を付して説明を省略する。図8に示すように、実施の形態3にかかるパラレル−シリアル変換器200の制御回路270は、図2に示した構成に加えて、否定排他的論理和回路811と、割合算出回路812と、ゲイン制御回路813と、ゲイン回路814と、を備えている。
ゲイン回路814は、位相判定回路271から出力された判定結果(「+1」、「0」または「−1」)をゲインGにより増幅して位相制御回路272へ出力する。位相制御回路272へ出力される判定結果は、「+G」、「0」または「−G」となる。ゲイン回路814のゲインGはゲイン制御回路813によって制御される。
位相制御回路272は、位相判定回路271から判定結果「−G」が出力された場合は、クロック信号data−clkの位相をゲインGに応じた分だけ遅延させるように任意位相生成回路213を制御する。また、位相制御回路272は、位相判定回路271から判定結果「+G」が出力された場合は、クロック信号data−clkの位相をゲインGに応じた分だけ進めるように任意位相生成回路213を制御する。
否定排他的論理和回路811は、検出回路260から出力された出力dif1および出力dif2の排他的論理和の否定を算出し、算出結果を割合算出回路812へ出力する。割合算出回路812は、否定排他的論理和回路811から出力された算出結果が「1」である割合を算出する。割合算出回路812により算出される割合は、検出回路260から出力された出力dif1,dif2の各組合せのうちの、出力dif1,dif2の組合せの値が「11」または「00」であった割合を示す。
割合算出回路812は、算出した割合をゲイン制御回路813へ通知する。ゲイン制御回路813は、割合算出回路812から通知された割合が大きくなるほどゲイン回路814のゲインGが大きくなるようにゲイン回路814を制御する。このように、制御回路270は、出力dif1および出力dif2が同じ値になる割合が大きくなるほど、選択回路230のパラレルデータの切り替えに対するフリップフロップ回路240のラッチの相対的なタイミングに対する制御単位量を大きくする。
図9−1は、出力dif1,dif2が同じ値になる確率を示す図(その1)である。図9−1において、図5に示した部分と同様の部分については同一の符号を付して説明を省略する。関係910は、データdataのデューティ比が50%からずれた場合の、クロック信号data−clkの位相と、出力dif1と出力dif2が同じ値(「1」または「0」)になる確率と、の関係を示している。関係910に示すように、クロック信号data−clkの位相が位相p1に近くなるときに、出力dif1と出力dif2が同じ値になる確率が高くなる。
図9−2は、出力dif1,dif2が同じ値になる確率を示す図(その2)である。図9−3は、出力dif1,dif2が同じ値になる確率を示す図(その3)である。図9−2において、図9−1に示した部分と同様の部分については同一の符号を付して説明を省略する。
図9−2は、図9−1において示した場合に対して、データdataのデューティ比が50%からさらにずれた状態を示している。この場合は、図9−2の関係910に示すように、出力dif1と出力dif2が同じ値になる確率がさらに高くなる。図9−3は、図9−2において示した場合に対して、データdataのデューティ比が50%からさらにずれた状態を示している。この場合は、図9−3の関係910に示すように、出力dif1と出力dif2が同じ値になる確率がさらに高くなる。
図9−1〜図9−3の関係530に示すように、クロック信号data−clkのデューティ比が50%からずれるほど、クロック信号data−clkの位相に対する確率変動が小さくなる。したがって、クロック信号data−clkのデューティ比が50%からずれるほど、クロック信号data−clkの位相が位相p1に収束するまでの時間が長くなり、シリアルデータの整形の精度が劣化する。
また、図9−1〜図9−3の関係910に示すように、クロック信号data−clkのデューティ比が50%からずれるほど、出力dif1と出力dif2が同じ値になる確率が高くなる。
制御回路270は、出力dif1と出力dif2が同じとなる割合が高くなるほどクロック信号data−clkの位相の制御単位量を大きくする。これにより、クロック信号data−clkのデューティ比が50%からずれるほどクロック信号data−clkの位相の制御単位量を大きくすることができる。このため、クロック信号data−clkのデューティ比が50%からずれても、クロック信号data−clkが最適な位相p1に収束するまでの時間を短くすることができる。
図10は、ゲイン制御回路によるゲインの制御の一例を示す図である。図10において、横軸は出力dif1と出力dif2の組合せが「11」または「00」となる割合を示している。縦軸は、ゲイン回路814におけるゲインGを示している。ゲイン制御回路813は、出力dif1と出力dif2の組合せが「11」または「00」となる割合が50%以下の場合は、ゲインGを1に制御する。
また、ゲイン制御回路813は、出力dif1と出力dif2の組合せが「11」または「00」となる割合が50%を超えると、「11」または「00」の割合の増加に応じてゲインGを増加させる。そして、ゲイン制御回路813は、出力dif1と出力dif2の組合せが「11」または「00」となる割合が100%になるとゲインGを2に制御する。
このように、ゲイン制御回路813は、割合算出回路812から通知された割合が大きくなるほどゲイン回路814のゲインGが大きくなるようにゲイン回路814を制御する。ここでは「11」または「00」の割合が50%を超えるとゲインGを連続的に増加させていく場合について説明した。これに対して、ゲイン制御回路813は、「11」または「00」の割合に段階的な閾値を設け、「11」または「00」の割合が閾値を超えるごとにゲインGを段階的に増加させるようにしてもよい。
図11は、ゲインの制御に応じた位相制御を示す図である。図11において、図5に示した部分と同様の部分については同一の符号を付して説明を省略する。図11において、関係530aは、図5(デューティ比=50%)に示した関係530である。関係530bは、図7(デューティ比≠50%)に示した関係530である。
関係1110は、ゲイン制御回路813の制御によってクロック信号data−clkの位相の制御単位量が大きくなったときの関係530bを示している。ここでは、「11」または「00」が50%を超える範囲1120においてゲインGを増加させている。関係1110は、関係530bに比べて、クロック信号data−clkの位相に対する確率変動が大きくなっている。このため、デューティ比が50%からずれても、クロック信号data−clkが最適な位相p1に収束するまでの時間を短くすることができる。
このように、実施の形態3にかかるパラレル−シリアル変換器200は、出力dif1と出力dif2が同じ値になる割合が大きくなるほど、クロック信号data−clkとクロック信号clkのタイミング制御の制御単位量を大きくする。これにより、実施の形態2にかかるパラレル−シリアル変換器200と同様の効果を得ることができるとともに、デューティ比が50%からずれても、クロック信号data−clkが最適な位相p1に収束するまでの時間を短くすることができる。このため、データdataの整形をさらに精度よく行うことができる。
(実施の形態4)
図12は、実施の形態4にかかるパラレル−シリアル変換器の構成を示す図である。図12において、図2に示した構成と同様の構成については同一の符号を付して説明を省略する。図12に示すように、実施の形態4にかかるパラレル−シリアル変換器200は、入力端子211と、分周回路212と、バッファ214と、入力端子221,222と、フリップフロップ回路223〜227と、選択回路230と、フリップフロップ回路240と、入力端子1211,1212と、選択回路1213と、入力端子1221,1222と、選択回路1223と、第一検出回路1230と、第二検出回路1240と、位相調整回路1250と、を備えている。
入力端子211は、入力されたクロック信号clkを、分周回路212、フリップフロップ回路240、第一検出回路1230および第二検出回路1240へ出力する。分周回路212は、生成した分周クロック信号div−clkを第一検出回路1230、第二検出回路1240および位相調整回路1250へ出力する。
入力端子1211には、固定データ「0」(const0)が入力される。入力端子1211は、入力された固定データ「0」を選択回路1213へ出力する。入力端子1212には、固定データ「1」(const1)が入力される。入力端子1212は、入力された固定データ「1」を選択回路1213へ出力する。
選択回路1213および選択回路1223は、たとえば図1に示した生成回路130に対応する構成である。選択回路1213は、入力される各固定データのいずれかを選択して出力する。また、選択回路1213は、第一検出回路1230から出力されるレプリカクロック信号rep−clk1に同期して固定データの選択を切り替える。
たとえば、選択回路1213は、供給されるレプリカクロック信号rep−clk1の立ち上がりに同期して固定データ「0」を選択し、レプリカクロック信号rep−clk1の立ち下がりに同期して固定データ「1」を選択する。選択回路1213は、選択したデータをレプリカデータrep−data1(第一レプリカデータ)として第一検出回路1230へ出力する。
入力端子1221には、固定データ「0」(const0)が入力される。入力端子1221は、入力された固定データ「0」を選択回路1223へ出力する。入力端子1222には、固定データ「1」(const1)が入力される。入力端子1222は、入力された固定データ「1」を選択回路1223へ出力する。
選択回路1223は、入力される各固定データのいずれかを選択して出力する。また、選択回路1223は、第二検出回路1240から出力されるレプリカクロック信号rep−clk2に同期して固定データの選択を切り替える。
具体的には、選択回路1223には入力端子1221からの固定データ「0」と、入力端子1222からの固定データ「1」と、が入力される。選択回路1223は、供給されるレプリカクロック信号rep−clk2の立ち上がりに同期して固定データ「0」を選択し、レプリカクロック信号rep−clk2の立ち下がりに同期して固定データ「1」を選択する。選択回路1223は、選択したデータをレプリカデータrep−data2(第二レプリカデータ)として第二検出回路1240へ出力する。
第一検出回路1230および第二検出回路1240は、たとえば図1に示した検出回路140に対応する構成である。第一検出回路1230は、選択回路1213から出力されたレプリカデータrep−data1の第一切り替わり点を検出する。第一切り替わり点は、たとえば固定データ「0」から固定データ「1」への切り替わり点である。また、第一検出回路1230は、検出したレプリカデータrep−data1の第一切り替わり点を示す位相コードcode1(第一位相コード)を生成する。第一検出回路1230は、生成した位相コードcode1を位相調整回路1250へ出力する。
また、第一検出回路1230は、クロック信号data−clkとデューティ比が同じレプリカクロック信号rep−clk1を選択回路1213へ出力する。これにより、選択回路1213は、クロック信号data−clkとデューティ比が同じレプリカデータrep−data1を生成することができる。
第二検出回路1240は、選択回路1223から出力されたレプリカデータrep−data2の第二切り替わり点を検出する。第二切り替わり点は、たとえば固定データ「1」から固定データ「0」への切り替わり点である。また、第二検出回路1240は、検出したレプリカデータrep−data2の第二切り替わり点を示す位相コードcode2(第二位相コード)を生成し、生成した位相コードcode2を位相調整回路1250へ出力する。
また、第二検出回路1240は、クロック信号data−clkとデューティ比が同じレプリカクロック信号rep−clk2を選択回路1223へ出力する。これにより、選択回路1223は、クロック信号data−clkとデューティ比が同じレプリカデータrep−data2を生成することができる。
位相調整回路1250は、第一検出回路1230から出力された位相コードcode1が示す位相と、第二検出回路1240から出力された位相コードcode2が示す位相と、の中間位相となるようにクロック信号data−clkの位相を調整する。このように、第一検出回路1230および第二検出回路1240によって検出された各切り替わり点の中間位相に基づいてクロック信号data−clkの位相を制御する。
図13は、図12に示したパラレル−シリアル変換器の具体例を示す図である。図13において、図12に示した構成と同様の構成については同一の符号を付して説明を省略する。図13に示すように、第一検出回路1230は、任意位相生成回路1331と、バッファ1332と、フリップフロップ回路1333と、フリップフロップ回路1334(Ph−FF)と、制御回路1335と、を備えている。
任意位相生成回路1331は、分周回路212から出力され、互いに位相が異なる多相の分周クロック信号div−clkから、任意の位相の分周クロック信号を生成する位相補間回路である。任意位相生成回路1331は、制御回路1335の制御によって、生成する分周クロック信号の位相を変化させる。任意位相生成回路1331は、生成した分周クロック信号をバッファ1332へ出力する。
バッファ1332は、任意位相生成回路1331から出力された分周クロック信号を増幅する。バッファ1332は、増幅した分周クロック信号を、レプリカクロック信号rep−clk1として選択回路1213へ出力する。バッファ1332は、たとえば、バッファ214と同等の遅延特性を有するバッファである。
フリップフロップ回路1333は、入力端子221から出力されたクロック信号clkの立ち上がりに同期して、選択回路1213から出力されたレプリカデータrep−data1をラッチする。フリップフロップ回路1333の出力ph1は、フリップフロップ回路1334へ出力される。
フリップフロップ回路1334は、分周回路212から出力された分周クロック信号div−clkの立ち上がりに同期して、フリップフロップ回路1333からの出力ph1をラッチする。フリップフロップ回路1334の出力dif1は制御回路1335へ出力される。
フリップフロップ回路1334から出力される出力dif1は、レプリカデータrep−data1の第一切り替わり点(「0」から「1」への切り替わり点)に対するクロック信号clkの立ち上がりのずれの方向を示している。
たとえば、レプリカデータrep−data1の第一切り替わり点に対してクロック信号clkの立ち上がりが進んでいる場合は、出力dif1が常に「0」となる。また、レプリカデータrep−data1の第一切り替わり点に対してクロック信号clkの立ち上がりが遅延している場合は、出力dif1が常に「1」となる。また、レプリカデータrep−data1の第一切り替わり点とクロック信号clkの立ち上がりが一致している場合は、出力dif1において「0」と「1」が混在する。
制御回路1335は、フリップフロップ回路1334から出力された出力dif1に基づいて、任意位相生成回路1331が出力するレプリカクロック信号rep−clk1の位相を制御する。たとえば、制御回路1335は、出力dif1が「0」である場合は、レプリカクロック信号rep−clk1の位相を進めるように任意位相生成回路1331を制御する。また、制御回路1335は、出力dif1が「1」である場合は、レプリカクロック信号rep−clk1の位相を遅延させるように任意位相生成回路1331を制御する。
制御回路1335の制御により、レプリカデータrep−data1の第一切り替わり点とクロック信号clkの立ち上がりが一致した状態へ収束する。このように、制御回路1335は、レプリカデータrep−data1の第一切り替わり点を、クロック信号clkの立ち上がりに同期させる。
また、制御回路1335は、レプリカデータrep−data1の第一切り替わり点を示す位相コードcode1を生成する。たとえば、レプリカデータrep−data1の一周期を分割し、分割した各区間に異なるコードを割り振る。制御回路1335は、レプリカデータrep−data1の第一切り替わり点に対応する区間に割り当てられたコードを位相コードcode1として生成する。制御回路1335は、生成した位相コードcode1を位相調整回路1250へ出力する。
第二検出回路1240は、任意位相生成回路1341と、バッファ1342と、フリップフロップ回路1343(FF)と、フリップフロップ回路1344(Ph−FF)と、制御回路1345と、を備えている。
任意位相生成回路1341は、分周回路212から出力され、互いに位相が異なる多相の分周クロック信号div−clkから、任意の位相の分周クロック信号を生成する位相補間回路である。任意位相生成回路1341は、制御回路1345の制御によって、生成する分周クロック信号の位相を変化させる。任意位相生成回路1341は、生成した分周クロック信号をバッファ1342へ出力する。
バッファ1342は、任意位相生成回路1341から出力された分周クロック信号を増幅する。バッファ1342は、増幅した分周クロック信号を、レプリカクロック信号rep−clk2として選択回路1223へ出力する。バッファ1342は、たとえば、バッファ214と同等の遅延特性を有するバッファである。
フリップフロップ回路1343は、入力端子221から出力されたクロック信号clkの立ち上がりに、選択回路1223から出力されたレプリカデータrep−data2を同期させる。フリップフロップ回路1343の出力ph2は、フリップフロップ回路1344へ出力される。
フリップフロップ回路1344は、分周回路212から出力された分周クロック信号div−clkの立ち上がりに、フリップフロップ回路1343からの出力ph2を同期させる。フリップフロップ回路1344の出力dif2は制御回路1345へ出力される。
制御回路1345の前段には反転回路1345aが設けられており、制御回路1345は、フリップフロップ回路1344から出力された出力dif2を反転させた状態で取得する。制御回路1345によって取得される反転した出力dif2は、レプリカデータrep−data2の第二切り替わり点(「1」から「0」への切り替わり点)に対するクロック信号clkの立ち上がりのずれの方向を示している。
たとえば、レプリカデータrep−data2の第二切り替わり点に対してクロック信号clkの立ち上がりが進んでいる場合は、出力dif2が常に「1」となる。また、レプリカデータrep−data2の第二切り替わり点に対してクロック信号clkの立ち上がりが遅延している場合は、出力dif2が常に「0」となる。また、レプリカデータrep−data2の第二切り替わり点とクロック信号clkの立ち上がりが一致している場合は、出力dif2において「0」と「1」が混在する。
制御回路1345は、フリップフロップ回路1344から出力された出力dif2に基づいて、任意位相生成回路1341が出力するレプリカクロック信号rep−clk2の位相を制御する。たとえば、制御回路1345は、出力dif2が「1」である場合は、レプリカクロック信号rep−clk2の位相を進めるように任意位相生成回路1341を制御する。また、制御回路1345は、出力dif2が「0」である場合は、レプリカクロック信号rep−clk2の位相を遅延させるように任意位相生成回路1341を制御する。
制御回路1345の制御により、レプリカデータrep−data2の第二切り替わり点とクロック信号clkの立ち上がりが一致した状態へ収束する。このように、制御回路1345は、レプリカデータrep−data2の第二切り替わり点を、クロック信号clkの立ち上がりに同期させる。
また、制御回路1345は、レプリカデータrep−data2の第二切り替わり点を示す位相コードcode2を生成する。たとえば、レプリカデータrep−data2の一周期を分割し、分割した各区間に異なるコードを割り振る。なお、ここでのコードの割り振りは、制御回路1345におけるコードの割り振りと同様のルールによって行う。制御回路1345は、レプリカデータrep−data2の第二切り替わり点に対応する区間に割り当てられたコードを位相コードcode2として生成する。制御回路1345は、生成した位相コードcode2を位相調整回路1250へ出力する。
位相調整回路1250は、中間位相生成回路1351と、任意位相生成回路1352と、を備えている。中間位相生成回路1351は、第一検出回路1230からの位相コードcode1が示す位相と、第二検出回路1240からの位相コードcode2が示す位相と、の中間位相を示す中間位相コードcode3を生成する。中間位相生成回路1351は、生成した中間位相コードcode3を任意位相生成回路1352へ出力する。
任意位相生成回路1352は、分周回路212から出力され、互いに位相が異なる多相の分周クロック信号div−clkから、任意の位相のクロック信号data−clkを生成する位相補間回路である。任意位相生成回路1352は、中間位相生成回路1351から出力された中間位相コードcode3が示す位相となるようにクロック信号data−clkの位相を制御する。
図14−1は、図13に示した第一検出回路の動作のタイムチャートを示す図(その1)である。図14−1において、横軸は時間を示している。図14−1は、レプリカデータrep−data1の第一切り替わり点に対してクロック信号clkの立ち上がりが遅延した状態を示している。
符号1410は、選択回路1213へ入力されるレプリカクロック信号rep−clk1を示している。符号1420は、選択回路1213からフリップフロップ回路1333へ入力されるレプリカデータrep−data1を示している。レプリカデータrep−data1の切り替わり点は、レプリカクロック信号rep−clk1と同期している。符号1421は、レプリカデータrep−data1の第一切り替わり点を示している。
符号1430は、入力端子221からフリップフロップ回路1333へ入力されるクロック信号clkを示している。ここでは、クロック信号clkの立ち上がりは、レプリカデータrep−data1の第一切り替わり点(「0」から「1」への切り替わり点)に対して遅延している。
符号1440は、フリップフロップ回路1333の出力ph1を示している。符号1450は、分周クロック信号div−clkを示している。符号1460は、フリップフロップ回路1334から制御回路1335へ出力される出力dif1を示している。この場合は、出力dif1が常に「0」となる(all0)。
このため、制御回路1335の制御によってレプリカクロック信号rep−clk1の位相が遅延する。これにより、レプリカデータrep−data1の位相が遅延し、クロック信号clkの立ち上がりをレプリカデータrep−data1の第一切り替わり点に近づけることができる。
図14−2は、図13に示した第一検出回路の動作のタイムチャートを示す図(その2)である。図14−2において、図14−1に示した部分と同様の部分については同一の符号を付して説明を省略する。図14−2は、レプリカデータrep−data1の第一切り替わり点と、クロック信号clkの立ち上がりとが一致した状態を示している。
符号1430に示すように、ここでは、クロック信号clkの立ち上がりと、レプリカデータrep−data1の第一切り替わり点と、が一致している。この場合は、出力dif1において「0」と「1」が混在する(0or1)。これにより、制御回路1335の制御によってレプリカクロック信号rep−clk1の位相が維持される。このため、レプリカデータrep−data1の第一切り替わり点と、クロック信号clkの立ち上がりとが一致した状態を維持することができる。
図14−3は、図13に示した第一検出回路の動作のタイムチャートを示す図(その3)である。図14−3において、図14−1に示した部分と同様の部分については同一の符号を付して説明を省略する。図14−3は、レプリカデータrep−data1の第一切り替わり点に対してクロック信号clkの立ち上がりが進んでいる状態を示している。
符号1430に示すように、ここでは、クロック信号clkの立ち上がりは、レプリカデータrep−data1の第一切り替わり点に対して進んでいる。この場合は、出力dif1が常に「1」となる(all1)。このため、制御回路1335の制御によってレプリカクロック信号rep−clk1の位相が進められる。これにより、レプリカデータrep−data1の位相が進み、クロック信号clkの立ち上がりをレプリカデータrep−data1の第一切り替わり点に近づけることができる。
図15−1は、図13に示した第二検出回路の動作のタイムチャートを示す図(その1)である。図15−1において、図14−1に示した部分と同様の部分については同一の符号を付して説明を省略する。図15−1は、レプリカデータrep−data2の第二切り替わり点に対してクロック信号clkの立ち上がりが遅延した状態を示している。
符号1510は、選択回路1223へ入力されるレプリカクロック信号rep−clk2を示している。符号1520は、選択回路1223からフリップフロップ回路1343へ入力されるレプリカデータrep−data2を示している。レプリカデータrep−data2の切り替わり点は、レプリカクロック信号rep−clk2と同期している。符号1521は、レプリカデータrep−data2の第二切り替わり点を示している。
ここでは、クロック信号clkの立ち上がりは、レプリカデータrep−data2の第二切り替わり点(「1」から「0」への切り替わり点)に対して遅延している。符号1540は、フリップフロップ回路1343の出力ph2を示している。符号1560は、フリップフロップ回路1344から制御回路1345へ出力される出力dif2を示している。この場合は、出力dif2が常に「0」となる。
このため、制御回路1345の制御によってレプリカクロック信号rep−clk2の位相が遅延する。これにより、レプリカデータrep−data2の位相が遅延し、クロック信号clkの立ち上がりをレプリカデータrep−data2の第二切り替わり点に近づけることができる。
図15−2は、図13に示した第二検出回路の動作のタイムチャートを示す図(その2)である。図15−2において、図15−1に示した部分と同様の部分については同一の符号を付して説明を省略する。図15−2は、レプリカデータrep−data2の第二切り替わり点と、クロック信号clkの立ち上がりと、が一致した状態を示している。
符号1430に示すように、ここでは、クロック信号clkの立ち上がりと、レプリカデータrep−data2の第二切り替わり点と、が一致している。この場合は、出力dif2において「0」と「1」が混在する(0or1)。これにより、制御回路1345の制御によってレプリカクロック信号rep−clk2の位相が維持される。このため、レプリカデータrep−data2の第二切り替わり点と、クロック信号clkの立ち上がりとが一致した状態を維持することができる。
図15−3は、図13に示した第二検出回路の動作のタイムチャートを示す図(その3)である。図15−3において、図15−1に示した部分と同様の部分については同一の符号を付して説明を省略する。図15−3は、レプリカデータrep−data2の第二切り替わり点に対してクロック信号clkの立ち上がりが進んでいる状態を示している。
符号1430に示すように、ここでは、クロック信号clkの立ち上がりは、レプリカデータrep−data2の第二切り替わり点に対して進んでいる。この場合は、出力dif2が常に「1」となる。このため、制御回路1345の制御によってレプリカクロック信号rep−clk2の位相が進められる。これにより、レプリカデータrep−data2の位相が進み、クロック信号clkの立ち上がりをレプリカデータrep−data2の第二切り替わり点に近づけることができる。
図16は、図13に示した第一検出回路の制御回路の動作の一例を示す図である。図16に示す「0」および「1」は、フリップフロップ回路1334から制御回路1335へ入力される出力dif1の値を示している。制御回路1335はカウンタを有しており、出力dif1が「0」である場合はカウンタの値をアップ(up)させ、出力dif1が「1」である場合はカウンタの値をダウン(down)させる。
また、制御回路1335は、出力dif1の値が変化した場合は、レプリカデータrep−data1の第一切り替わり点が、クロック信号clkの立ち上がりに収束したと判断し、カウンタの値を維持する。任意位相生成回路1331は、制御回路1335のカウンタの値に応じてレプリカクロック信号rep−clk1の位相を変化させる。
たとえば、出力dif1の値が「0」「0」「1」の順に変化した場合(符号1611〜1613)は、制御回路1335は、カウンタを2回アップさせた後に1回ダウンさせて収束する。また、出力dif1の値が「1」「1」「1」「0」の順に変化した場合(符号1621〜1624)は、制御回路1335は、カウンタを3回ダウンさせた後に1回アップさせて収束する。
図17は、図13に示した第二検出回路の制御回路の動作の一例を示す図である。図17に示す「0」および「1」は、フリップフロップ回路1344から制御回路1345へ入力される出力dif2の値を示している。制御回路1345はカウンタを有しており、出力dif2が「0」である場合はカウンタの値をダウン(down)させ、出力dif2が「1」である場合はカウンタの値をアップ(up)させる。
また、制御回路1345は、入力される出力dif2の値が変化した場合は、レプリカデータrep−data2の第二切り替わり点が、クロック信号clkの立ち上がりに収束したと判断し、カウンタの値を維持する。制御回路1345は、カウンタの値を任意位相生成回路1341へ出力する。任意位相生成回路1341は、制御回路1345のカウンタの値に応じてレプリカクロック信号rep−clk2の位相を変化させる。
たとえば、出力dif2の値が「0」「0」「1」の順に変化した場合(符号1711〜1713)は、制御回路1345は、カウンタを2回ダウンさせた後に1回アップさせて収束する。また、出力dif2の値が「1」「1」「1」「0」の順に変化した場合(符号1721〜1724)は、制御回路1345は、カウンタを3回アップさせた後に1回ダウンさせて収束する。
図18は、図13に示した位相調整回路の動作の一例を示す図である。図18において、図14−1〜図15−3に示した部分と同様の部分については同一の符号を付して説明を省略する。符号1810は位相調整回路1250へ入力される位相コードcode1を示し、符号1820は位相調整回路1250へ入力される位相コードcode2を示している。
ここでは、レプリカデータrep−data1の一周期を8分割し、分割した各区間にコード「000」、「001」、「010」、「011」、「110」、「111」、「100」、「101」を割り振るとする。この場合は、レプリカデータrep−data2についても一周期を8分割し、分割した各区間にコード「000」、「001」、「010」、「011」、「110」、「111」、「100」、「101」を割り振る。
位相コードcode1は、符号1420に示すレプリカデータrep−data1の第一切り替わり点の位相が0°であることを示すコード「000」となっている。位相コードcode2は、符号1520に示すレプリカデータrep−data2の第二切り替わり点の位相が270°であることを示すコード「100」となっている。
符号1830は、任意位相生成回路1352によって生成されたクロック信号data−clkを示している。符号1840は、中間位相生成回路1351から任意位相生成回路1352へ出力される中間位相コードcode3を示している。中間位相コードcode3は、位相コードcode1が示す0°と、位相コードcode2が示す270°と、の中間位相である135°を示す「011」となる。
任意位相生成回路1352は、中間位相コードcode3が示す135°となるようにクロック信号data−clkの位相を調整する。このように、クロック信号data−clkの位相を、レプリカデータrep−data1の第一立ち上がり点と、レプリカデータrep−data2の第二立ち上がり点と、の中間位相となるように制御する。
図19は、図13に示したパラレル−シリアル変換器の制御結果を示す図である。図19において、図18に示した部分と同様の部分については同一の符号を付して説明を省略する。符号1910は、フリップフロップ回路240へ入力されるデータdataを示している。データdataは、クロック信号data−clkに同期してデータが切り替わる。
したがって、データdataの最適点1911(各切り替わり点の間の中央)をクロック信号clkの立ち上がりに同期させることができる。これにより、フリップフロップ回路240において、データdataが最適点1911によって整形される。このため、データdataを精度よく整形することができる。
図20は、図13に示したパラレル−シリアル変換器の変形例を示す図である。図20において、図13に示した構成と同様の構成については同一の符号を付して説明を省略する。入力端子1221には、固定データ「1」(const1)が入力される。入力端子1221は、入力された固定データ「1」を選択回路1223へ出力する。入力端子1222には、固定データ「0」(const0)が入力される。入力端子1222は、入力された固定データ「0」を選択回路1223へ出力する。
制御回路1345は、フリップフロップ回路1344から出力された出力dif2を反転させずに取得する。制御回路1345によって取得される出力dif2は、レプリカデータrep−data2の第二切り替わり点(「1」から「0」への切り替わり点)に対するクロック信号clkの立ち上がりのずれを示している。
図20に示す変形例のように、入力端子1221および入力端子1222へ入力する固定データを反転させることで、制御回路1345が出力dif2を反転させずに取得する構成としても、図13に示した構成と同等の結果を得ることができる。
このように、実施の形態4にかかるパラレル−シリアル変換器200は、各レプリカデータの第一切り替わり点および第二切り替わり点の中間位相に基づいてタイミングの制御を行う。これにより、データdataのデューティ比が50%でなくても、データdataに対するクロック信号clkの立ち上がりのタイミングを任意に制御し、データdataを精度よく整形することができる。
また、クロック信号data−clkの位相を調整することでタイミング制御を行うため、分周回路212によって分周された分周クロック信号div−clkの周波数での制御が可能である。このため、タイミング制御を安定して精度よく行うことができる。
(実施の形態5)
図21は、実施の形態5にかかるパラレル−シリアル変換器の構成を示す図である。図21において、図12に示した構成と同様の構成については同一の符号を付して説明を省略する。図21に示すように、実施の形態5にかかるパラレル−シリアル変換器200は、入力端子211と、分周回路212と、バッファ214と、入力端子221,222と、フリップフロップ回路223〜227と、選択回路230と、フリップフロップ回路240と、入力端子1211,1212と、選択回路1213と、入力端子1221,1222と、選択回路1223と、第一検出回路2110と、第二検出回路2120と、位相調整回路2130と、を備えている。
入力端子211は、入力されたクロック信号clkを、分周回路212、第一検出回路2110、第二検出回路2120および位相調整回路2130へ出力する。分周回路212は、生成した分周クロック信号div−clkを、バッファ214、第一検出回路2110および第二検出回路2120へ出力する。バッファ214は、分周回路212から出力された分周クロック信号div−clkを増幅する。バッファ214は、増幅した分周クロック信号div−clkをクロック信号data−clkとして選択回路230およびフリップフロップ回路223〜227へ出力する。
第一検出回路2110は、選択回路1213から出力されたレプリカデータrep−data1の第一切り替わり点を検出する。また、第一検出回路2110は、検出したレプリカデータrep−data1の第一切り替わり点を示す位相コードcode1を生成し、生成した位相コードcode1を位相調整回路2130へ出力する。
第二検出回路2120は、選択回路1223から出力されたレプリカデータrep−data2の第二切り替わり点を検出する。また、第二検出回路2120は、検出したレプリカデータrep−data2の第二切り替わり点を示す位相コードcode2を生成し、生成した位相コードcode2を位相調整回路2130へ出力する。
位相調整回路2130は、入力端子211から出力されたクロック信号clkの位相を、第一検出回路2110から出力された位相コードcode1が示す位相と、第二検出回路2120から出力された位相コードcode2が示す位相と、に基づいて調整する。具体的には、位相調整回路2130は、クロック信号clkの位相を、位相コードcode1が示す位相と、位相コードcode2が示す位相との中間位相となるように調整する。
位相調整回路2130は、位相を調整したクロック信号clkをクロック信号FF−clkとしてフリップフロップ回路240へ出力する。フリップフロップ回路240は、クロック信号FF−clkの立ち上がりに、選択回路230から出力されたデータdataを同期させる。
図22は、図21に示したパラレル−シリアル変換器の具体例を示す図である。図22において、図21に示した構成と同様の構成については同一の符号を付して説明を省略する。図22に示すように、第一検出回路2110は、バッファ2211と、任意位相生成回路2212と、フリップフロップ回路2213(FF)と、フリップフロップ回路2214(Ph−FF)と、制御回路2215と、を備えている。
バッファ2211は、分周回路212から出力された分周クロック信号div−clkを増幅する。バッファ2211は、増幅した分周クロック信号div−clkを、レプリカクロック信号rep−clk1として選択回路1213へ出力する。バッファ2211は、たとえば、バッファ214と同等の遅延特性を有するバッファである。
このように、クロック信号data−clkとして選択回路230へ供給される分周クロック信号div−clkを、レプリカクロック信号rep−clk1として選択回路1213へ供給する。これにより、選択回路230のパラレルデータの切り替えに同期してレプリカデータrep−data1の値を切り替えることができる。
任意位相生成回路2212は、入力端子211から出力され、互いに位相が異なる多相のクロック信号clkから、任意の位相の分周クロック信号を生成する位相補間回路である。任意位相生成回路2212は、制御回路2215の制御によって、生成するクロック信号の位相を変化させる。任意位相生成回路2212は、生成したクロック信号をレプリカクロック信号FF−rep−clk1としてフリップフロップ回路2213へ出力する。
フリップフロップ回路2213は、任意位相生成回路2212から出力されたレプリカクロック信号FF−rep−clk1の立ち上がりに、選択回路1213から出力されたレプリカデータrep−data1を同期させる。フリップフロップ回路2213の出力ph1は、フリップフロップ回路2214へ出力される。
フリップフロップ回路2214は、分周回路212から出力された分周クロック信号div−clkの立ち上がりに、フリップフロップ回路2213からの出力ph1を同期させる。フリップフロップ回路2214の出力dif1は制御回路2215へ出力される。
フリップフロップ回路2214から出力される出力dif1は、レプリカデータrep−data1の第一切り替わり点(「0」から「1」への切り替わり点)に対するレプリカクロック信号FF−rep−clk1の立ち上がりのずれを示している。
たとえば、レプリカデータrep−data1の第一切り替わり点に対してレプリカクロック信号FF−rep−clk1の立ち上がりが進んでいる場合は、出力dif1が常に「0」となる。また、レプリカデータrep−data1の第一切り替わり点に対してレプリカクロック信号FF−rep−clk1の立ち上がりが遅延している場合は、出力dif1が常に「1」となる。また、レプリカデータrep−data1の第一切り替わり点とレプリカクロック信号FF−rep−clk1の立ち上がりが一致している場合は、出力dif1において「0」と「1」が混在する。
制御回路2215は、フリップフロップ回路2214から出力された出力dif1に基づいて、任意位相生成回路2212が出力するレプリカクロック信号FF−rep−clk1の位相を制御する。たとえば、制御回路2215は、出力dif1が「0」である場合は、レプリカクロック信号FF−rep−clk1の位相を進めるように任意位相生成回路2212を制御する。また、制御回路2215は、出力dif1が「1」である場合は、レプリカクロック信号FF−rep−clk1の位相を遅延させるように任意位相生成回路2212を制御する。
制御回路2215の制御により、レプリカデータrep−data1の第一切り替わり点とレプリカクロック信号FF−rep−clk1の立ち上がりが一致した状態へ収束する。このように、制御回路2215は、レプリカデータrep−data1の第一切り替わり点を、レプリカクロック信号FF−rep−clk1の立ち上がりに同期させる。
また、制御回路2215は、レプリカデータrep−data1の第一切り替わり点を示す位相コードcode1を生成する。たとえば、レプリカデータrep−data1の一周期を分割し、分割した各区間に異なるコードを割り振る。制御回路2215は、レプリカデータrep−data1の第一切り替わり点に対応する区間に割り当てられたコードを位相コードcode1として生成する。制御回路2215は、生成した位相コードcode1を位相調整回路2130へ出力する。
第二検出回路2120は、バッファ2221と、任意位相生成回路2222と、フリップフロップ回路2223(FF)と、フリップフロップ回路2224(Ph−FF)と、制御回路2225と、を備えている。
バッファ2221は、分周回路212から出力された分周クロック信号div−clkを増幅する。バッファ2221は、増幅した分周クロック信号div−clkを、レプリカクロック信号rep−clk2として選択回路1223へ出力する。バッファ2221は、たとえば、バッファ214と同等の遅延特性を有するバッファである。
任意位相生成回路2222は、入力端子211から出力され、互いに位相が異なる多相のクロック信号clkから、任意の位相の分周クロック信号を生成する位相補間回路である。任意位相生成回路2222は、制御回路2225の制御によって、生成するクロック信号の位相を変化させる。任意位相生成回路2222は、生成したクロック信号をレプリカクロック信号FF−rep−clk2としてフリップフロップ回路2223へ出力する。
フリップフロップ回路2223は、任意位相生成回路2222から出力されたレプリカクロック信号FF−rep−clk2の立ち上がりに、選択回路1223から出力されたレプリカデータrep−data2を同期させる。フリップフロップ回路2223の出力ph2は、フリップフロップ回路2224へ出力される。
フリップフロップ回路2224は、分周回路212から出力された分周クロック信号div−clkの立ち上がりに、フリップフロップ回路2223からの出力ph2を同期させる。フリップフロップ回路2224の出力dif2は制御回路2225へ出力される。
制御回路2225の前段には反転回路2225aが設けられており、制御回路2225は、フリップフロップ回路2224から出力された出力dif2を反転させた状態で取得する。制御回路2225によって取得される反転した出力dif2は、レプリカデータrep−data2の第二切り替わり点(「1」から「0」への切り替わり点)に対するレプリカクロック信号FF−rep−clk2の立ち上がりのずれを示している。
たとえば、レプリカデータrep−data2の第二切り替わり点に対してレプリカクロック信号FF−rep−clk2の立ち上がりが進んでいる場合は、出力dif2が常に「0」となる。また、レプリカデータrep−data2の第二切り替わり点に対してレプリカクロック信号FF−rep−clk2の立ち上がりが遅延している場合は、出力dif2が常に「1」となる。また、レプリカデータrep−data2の第二切り替わり点とレプリカクロック信号FF−rep−clk2の立ち上がりが一致している場合は、出力dif2において「0」と「1」が混在する。
制御回路2225は、フリップフロップ回路2224から出力された出力dif2に基づいて、任意位相生成回路2222が出力するレプリカクロック信号FF−rep−clk2の位相を制御する。たとえば、制御回路2225は、出力dif2が「0」である場合は、レプリカクロック信号FF−rep−clk2の位相を進めるように任意位相生成回路2222を制御する。また、制御回路2225は、出力dif2が「1」である場合は、レプリカクロック信号FF−rep−clk2の位相を遅延させるように任意位相生成回路2222を制御する。
制御回路2225の制御により、レプリカデータrep−data2の第二切り替わり点とレプリカクロック信号FF−rep−clk2の立ち上がりが一致した状態へ収束する。このように、制御回路2225は、レプリカデータrep−data2の第二切り替わり点を、レプリカクロック信号FF−rep−clk2の立ち上がりに同期させる。
また、制御回路2225は、レプリカデータrep−data2の第二切り替わり点を示す位相コードcode2を生成する。たとえば、レプリカデータrep−data2の一周期を分割し、分割した各区間に異なるコードを割り振る。なお、ここでのコードの割り振りは、制御回路2225におけるコードの割り振りと同様のルールによって行う。制御回路2225は、レプリカデータrep−data2の第二切り替わり点に対応する区間に割り当てられたコードを位相コードcode2として生成する。制御回路2225は、生成した位相コードcode2を位相調整回路2130へ出力する。
位相調整回路2130は、中間位相生成回路2231と、任意位相生成回路2232と、を備えている。中間位相生成回路2231は、第一検出回路2110からの位相コードcode1が示す位相と、第二検出回路2120からの位相コードcode2が示す位相と、の中間位相を示す中間位相コードcode3を生成する。中間位相生成回路2231は、生成した中間位相コードcode3を任意位相生成回路2232へ出力する。
任意位相生成回路2232は、入力端子211から出力され、互いに位相が異なる多相のクロック信号clkから、任意の位相のクロック信号FF−clkを生成する位相補間回路である。任意位相生成回路2232は、中間位相生成回路2231から出力された中間位相コードcode3が示す中間位相に基づいて、生成するクロック信号FF−clkの位相を制御する。具体的には、任意位相生成回路2232は、中間位相コードcode3が示す位相となるようにクロック信号FF−clkの位相を制御する。
図23は、図22に示した位相調整回路の動作の一例を示す図である。図23において、図18に示した部分と同様の部分については同一の符号を付して説明を省略する。符号2310は、フリップフロップ回路2213へ入力されるレプリカクロック信号FF−rep−clk1を示している。制御回路2215の制御により、レプリカクロック信号FF−rep−clk1の立ち上がりは、レプリカデータrep−data1の第一切り替わり点(符号1421)と同期する。符号2320は、第一検出回路2110から位相調整回路2130へ入力される位相コードcode1を示している。
符号2330は、フリップフロップ回路2223へ入力されるレプリカクロック信号FF−rep−clk2を示している。制御回路2225の制御により、レプリカクロック信号FF−rep−clk2の立ち上がりは、レプリカデータrep−data2の第二切り替わり点(符号1521)と同期する。符号2340は、第二検出回路2120から位相調整回路2130へ入力される位相コードcode2を示している。
ここでは、レプリカデータrep−data1の一周期を8分割し、分割した各区間にコード「000」、「001」、「010」、「011」、「110」、「111」、「100」、「101」を割り振るとする。この場合は、レプリカデータrep−data2についても一周期を8分割し、分割した各区間にコード「000」、「001」、「010」、「011」、「110」、「111」、「100」、「101」を割り振る。
位相コードcode1は、レプリカデータrep−data1の第一切り替わり点の位相が0°であることを示すコード「000」となっている。位相コードcode2は、符号1520に示すレプリカデータrep−data2の第二切り替わり点の位相が270°であることを示すコード「100」となっている。
符号2350は、選択回路230へ入力されるクロック信号data−clkを示している。符号2360は、中間位相生成回路2231から任意位相生成回路2232へ出力される中間位相コードcode3を示している。符号2370は、フリップフロップ回路240へ入力されるクロック信号FF−clkを示している。中間位相コードcode3は、位相コードcode1が示す0°と位相コードcode2が示す270°との中間位相である135°を示す「011」となる。このため、任意位相生成回路2232は、クロック信号FF−clkの位相を135°に調整する。
図24は、図22に示したパラレル−シリアル変換器の制御結果を示す図である。図24において、図23に示した部分と同様の部分については同一の符号を付して説明を省略する。レプリカデータrep−data1とレプリカデータrep−data2は同期しているため、図24においては1つの波形によって示している。
符号2410は、フリップフロップ回路240へ入力されるデータdataを示している。符号2370に示すクロック信号FF−clkの位相は、レプリカデータrep−data1の第一切り替わり点(符号1421)と、レプリカデータrep−data2の第二切り替わり点(符号1521)と、の中間位相に制御される。
したがって、データdataの最適点2411(各切り替わり点の間の中央)をクロック信号FF−clkの立ち上がりに同期させることができる。これにより、フリップフロップ回路240において、データdataが最適点2411によって整形される。このため、データdataを精度よく整形することができる。
図25は、図22に示したパラレル−シリアル変換器の変形例を示す図である。図25において、図22に示した構成と同様の構成については同一の符号を付して説明を省略する。入力端子1221には、固定データ「1」(const1)が入力される。入力端子1221は、入力された固定データ「1」を選択回路1223へ出力する。入力端子1222には、固定データ「0」(const0)が入力される。入力端子1222は、入力された固定データ「0」を選択回路1223へ出力する。
制御回路2225は、フリップフロップ回路2224から出力された出力dif2を反転させずに取得する。制御回路2225によって取得される出力dif2は、レプリカデータrep−data2の第二切り替わり点(「1」から「0」への切り替わり点)に対するクロック信号clkの立ち上がりのずれを示している。
図25に示す変形例のように、入力端子1221および入力端子1222へ入力する固定データを反転させることで、制御回路2225が出力dif2を反転させずに取得する構成としても、図22に示した構成と同等の結果を得ることができる。
このように、実施の形態5にかかるパラレル−シリアル変換器200は、各レプリカデータの第一切り替わり点および第二切り替わり点の中間位相に基づいてタイミングの制御を行う。これにより、データdataのデューティ比が50%でなくても、データdataに対するクロック信号FF−clkの立ち上がりのタイミングを任意に制御し、データdataを精度よく整形することができる。
以上説明したように、開示のパラレル−シリアル変換器によれば、レプリカデータの第一,第二切り替わり点に基づいて変換回路の切り替えタイミングに対するフリップフロップ回路のタイミングを制御する。これにより、デューティ比が50%でなくてもシリアルデータを精度よく整形することができる。
なお、上述した各実施の形態においては、フリップフロップ回路240においてデータdataの各切り替わり点の間の中央にクロック信号clk(またはクロック信号FF−clk)の立ち上がりを同期させる構成について説明した。ただし、クロック信号clkの立ち上がりを同期させるのはデータdataの各切り替わり点の間の中央に限らず、パラレル−シリアル変換器100(またはパラレル−シリアル変換器200)の後段の回路の特性などに応じて任意に設定すればよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)パラレルデータをシリアルデータに変換する変換回路と、
前記変換回路によって出力されたシリアルデータが入力されるフリップフロップ回路と、
前記シリアルデータのレプリカデータを生成する生成回路と、
前記生成回路によって生成されたレプリカデータの第一切り替わり点と、前記第一切り替わり点の次の第二切り替わり点と、を検出する検出回路と、
前記検出回路によって検出された各切り替わり点に基づいて、前記シリアルデータと前記フリップフロップ回路の相対的なタイミングを制御する制御回路と、
を備えることを特徴とするパラレル−シリアル変換器。
(付記2)前記生成回路は、前記変換回路における前記パラレルデータの切り替えに同期して前記レプリカデータの値を切り替えることを特徴とする付記1に記載のパラレル−シリアル変換器。
(付記3)前記検出回路は、前記第一切り替わり点および前記第二切り替わり点に対する前記フリップフロップ回路の各ずれを検出し、
前記制御回路は、前記検出回路によって検出された各ずれに基づいて前記タイミングを制御することを特徴とする付記2に記載のパラレル−シリアル変換器。
(付記4)前記制御回路は、前記各切り替わり点に対する前記フリップフロップ回路のずれが小さくなる方向に前記タイミングを制御することを特徴とする付記3に記載のパラレル−シリアル変換器。
(付記5)前記フリップフロップ回路へ供給されるクロック信号を分周する分周回路を備え、
前記生成回路によって生成されたレプリカデータを前記クロック信号の立ち下がりに同期させるレプリカフリップフロップ回路と、
前記レプリカフリップフロップ回路の出力を、前記分周回路によって分周された分周クロック信号の立ち上がりに同期させる第一フリップフロップ回路と、
前記レプリカフリップフロップ回路の出力を、前記分周回路によって分周された分周クロック信号の立ち下がりに同期させる第二フリップフロップ回路と、を備え、
前記制御回路は、前記第一フリップフロップ回路および前記第二フリップフロップ回路の各出力に基づいて前記タイミングを制御することを特徴とする付記3または4に記載のパラレル−シリアル変換器。
(付記6)前記制御回路は、前記第一フリップフロップ回路および前記第二フリップフロップ回路の各出力が同じ値になる割合が大きくなるほど前記タイミングの制御単位量を大きくすることを特徴とする付記5に記載のパラレル−シリアル変換器。
(付記7)前記変換回路は、供給されるクロック信号に同期して前記パラレルデータを切り替え、
前記制御回路は、前記変換回路へ供給されるクロック信号の位相を制御することを特徴とする付記2〜6のいずれか一つに記載のパラレル−シリアル変換器。
(付記8)前記制御回路は、前記フリップフロップ回路へ供給されるクロック信号の位相を制御することを特徴とする付記2〜6のいずれか一つに記載のパラレル−シリアル変換器。
(付記9)前記制御回路は、前記検出回路によって検出された各切り替わり点の中間位相に基づいて前記タイミングを制御することを特徴とする付記1に記載のパラレル−シリアル変換器。
(付記10)前記生成回路は、前記第一切り替わり点が前記フリップフロップ回路に同期した第一レプリカデータと、前記第二切り替わり点が前記フリップフロップ回路に同期した第二レプリカデータと、を生成し、
前記検出回路は、前記第一レプリカデータの前記第一切り替わり点と、前記第二レプリカデータの前記第二切り替わり点と、を検出することを特徴とする付記9に記載のパラレル−シリアル変換器。
(付記11)前記変換回路は、供給されるクロック信号に同期して前記パラレルデータを切り替え、
前記生成回路は、前記変換回路へ供給されるクロック信号とデューティ比が同じ前記第一レプリカデータおよび前記第二レプリカデータを生成することを特徴とする付記10に記載のパラレル−シリアル変換器。
(付記12)前記検出回路は、前記第一切り替わり点の位相を示す第一位相コードと、前記第二切り替わり点の位相を示す第二位相コードと、を出力し、
前記制御回路は、前記検出回路によって出力された第一位相コードと第二位相コードが示す各位相の中間位相となるように、前記変換回路へ供給されるクロック信号の位相を制御することを特徴とする付記11に記載のパラレル−シリアル変換器。
(付記13)前記生成回路は、前記変換回路の前記パラレルデータの切り替えに同期して前記レプリカデータの値を切り替えることを特徴とする付記9に記載のパラレル−シリアル変換器。
(付記14)前記フリップフロップ回路は、供給されるクロック信号の立ち上がりに前記シリアルデータのタイミングを同期させ、
前記検出回路は、前記第一切り替わり点の位相を示す第一位相コードと、前記第二切り替わり点の位相を示す第二位相コードと、を出力し、
前記制御回路は、前記検出回路によって出力された第一位相コードと第二位相コードが示す各位相の中間位相となるように、前記フリップフロップ回路へ供給されるクロック信号の位相を制御することを特徴とする付記13に記載のパラレル−シリアル変換器。