以下、この発明の実施の形態について、以下の順序に従って説明する。
1.発明を適用可能なシステムの概要
2−1.発明の実施の第1の形態について
2−1−1.シミュレーションモデルについて
2−1−2.エンコーダの構成について
2−1−3.エンコーダの動作について
2−2.発明の実施の第1の形態の変形例について
3−1.実施の第2の形態について
3−1−1.シミュレーションモデルについて
3−1−2.エンコーダの構成について
3−1−3.エンコーダの動作について
3−2.実施の第2の形態の変形例について
3−2.発明の実施の第1および第2の形態の補足
4−1.発明の実施の第3の形態について
4−1−1.シミュレーションモデルについて
4−1−2.デコーダの構成について
4−1−3.デコーダの動作について
4−2.発明の実施の第3の形態の変形例について
4−2−1.デコーダの構成について
4−2−2.デコーダの動作について
4−3.発明の実施の第3の形態の他の変形例について
4−4.発明の実施の第3の形態の補足
5−1.発明の実施の第4の形態について
5−1−1.シミュレーションモデルについて
5−1−2.デコーダの構成について
5−1−3.デコーダの動作について
5−2.発明の実施の第4の形態の変形例について
5−2−1.シミュレーションモデルについて
5−2−2.デコーダの構成について
5−2−3.デコーダの動作について
5−3.発明の実施の第4の形態の補足
1.発明を適用可能なシステムの概要
先ず、この発明を適用可能な一例のシステム構成を図1を用いて説明する。送信装置1に対して、例えばデータ幅が1ビットのシリアルディジタル信号3が入力される。このシリアルディジタル信号3は、送信装置1内のこの発明の実施の第1の形態および第1の形態の変形例、ならびに、実施の第2の形態に係るエンコーダ6で、3組の2値論理信号に変換される。このとき、エンコーダ6は、3組の2値論理信号からなる3ビットの信号が1乃至2個の"0"および1乃至2個の"1"からなるようにし、3ビットが同時に同値にならないように変換を行う。
エンコーダ6の出力は、ドライバ7に供給される。ドライバ7は、供給された3組の2値論理信号を、3値3差動論理信号に変換する。この3値3差動論理信号は、背景技術で既に説明したような、低レベル、中位レベルおよび高レベルの3種類の電圧を、3本の伝送路において必ず一つずつ用い、入力信号の状態の遷移の度に3個のうち2個を入れ替えるようにされた信号である。
ドライバ7から出力された3値3差動論理信号は、3本の伝送路からなる伝送路4を介して受信装置2に対して伝送される。受信装置2は、伝送された信号を受信し、レシーバ8に供給する。レシーバ8は、受信された信号から伝送路4に対して変動的に付加されるコモンモード電圧を除去する。そして、ドライバ7と逆の動作を行い、受信された3値3差動論理信号からクロックを抽出すると共に、この3値3差動論理信号を3組の2値論理信号に変換して出力する。レシーバ8の出力は、この発明の実施の第3の形態、第3の形態の変形例および第3の形態の他の変形例、ならびに、実施の第4の形態および第4の形態の変形例に係るデコーダ9に供給される。デコーダ9では、供給された3組の2値論理信号を元の例えばデータ幅が1ビットのシリアルディジタル信号5に復号して、出力する。
2−1.発明の実施の第1の形態について
この発明の実施の第1の形態について説明する。この実施の第1の形態によるエンコーダは、2相のシリアルディジタルデータに対してクロックの立ち上がりおよび立ち下がりの両エッジでデータをサンプリングし、3本の伝送路を用いて6種類の状態遷移によってデータを伝送するようにしている。
2−1−1.シミュレーションモデルについて
図2は、この実施の第1の形態によるエンコーダ10の動作の検証に用いたシミュレーションモデルの概要について示す。テストユニット500は、エンコーダ10を動作させるためのクロック信号N080を発生させると共に、データ信号N092およびN093を疑似乱数に基づいて発生する。データ信号N092およびN093は、擬似乱数を交互にサンプリングし、クロックN080のそれぞれ逆のエッジに同期して伝送できるようにされる。クロックN080は、エンコーダ10のクロック入力N100に加えられる。データ信号N092およびN093は、エンコーダ10のデータ入力N112およびN113にそれぞれ加えられる。
エンコーダ10の出力N187〜N189を、動作説明用の状態番号を生成する状態番号変換回路510に入力することで、変換回路の状態番号出力N187Sが得られる。状態番号は、以後の説明で使用する、整数値で"1"〜"6"までの値をとり、1回に"1"ずつ加減算される値である。状態番号は、"6"の状態で"1"が加算されれば"1"となり、"1"の状態から"1"が減算されれば、"6"になる。
図3は、状態番号変換回路510における一例の真理値表を示す。このように、状態番号変換回路510は、6状態を表す3ビット(x,x,x)が入力されると、入力された6状態を"1"から"6"までの状態番号に変換して出力する。この例では、3ビットが状態(0,0,1)で状態番号"1"、状態(0,1,1)で状態番号"2"、状態(0,1,0)で状態番号"3"、状態(1,1,0)で状態番号"4"、状態(1,0,0)で状態番号"5"、状態(1,0,1)で状態番号"6"とされる。図3において、状態番号"0"に相当する状態は、状態(0,0,0)であり、状態番号"7"に相当する状態は、状態(1,1,1)であるが、これらの3ビットが全て同値になる状態は、用いられない。
なお、この発明の説明の全般にわたって、状態番号および状態番号変換回路は、シミュレーション結果の波形表示などにおいて説明のために用いるものであり、各エンコーダおよびデコーダの実際の作用は、状態番号に変換する元の3ビットに基づいて行われる。
図4は、この実施の第1の形態における3ビット6状態の状態遷移図を示す。クロックN100の立ち上がり(図4では「0→1」と表記、以降の状態遷移図でも、同様である)でデータ入力N112をサンプリングすると、出力において、状態番号が奇数から偶数へと変化する状態遷移が発生する。このとき、データ入力N112が"1"のときは、状態番号N187S=3から状態番号N187S=4の状態遷移のように、状態番号が増える遷移が発生する。また、データ入力N112が"0"のときは、状態番号N187S=3から状態番号N187S=2、ならびに、状態番号N187S=5から状態番号N187S=4のように、状態番号が減る遷移が発生する。
クロックN100の立ち下がり(図4では「1→0」と表記、以降の状態遷移図でも同様である)でデータ入力N113をサンプリングすると、出力において、状態番号が偶数から奇数へ変化する状態遷移が発生する。このとき、データ入力N113が"1"のときは、状態番号N187S=2から状態番号N187S=3、ならびに、状態番号N187S=4から状態番号N187S=5のように、状態番号が増える遷移が発生する。また、データ入力N113が"0"のときは、状態番号N187S=4から状態番号N187S=3のように、状態番号が減る遷移が発生する。
2−1−2.エンコーダの構成について
図5は、この実施の第1の形態によるエンコーダ10の一例の回路を示す。エンコーダ10は、データ入力N112およびN113と、正負エッジを用いる1ビットのクロック入力N100を入力し、エンコード処理を行う。エンコード結果は、3ビットのデータとしてエンコーダ出力N187、N188およびN189に出力される。
エンコーダ10は、第1の3ビット2入力1出力マルチプレクサ、第1の3ビットラッチ、第2の3ビット2入力1出力マルチプレクサ、第2の3ビットラッチ、ならびに、第3の3ビット2入力1出力マルチプレクサにより構成される。第1の3ビットラッチと第2の3ビットラッチは、クロック入力N100の立ち上がりのタイミングと立ち下がりのタイミングとで、交互にホールド動作を繰り返す。
第1の3ビット2入力1出力マルチプレクサと第1の3ビットラッチとで、第1の状態遷移部を構成する。第1の状態遷移部は、クロック入力N100の立ち上がりに対応する状態遷移を行う。状態遷移は、3ビット信号N154〜N156を、データ入力112の値によって決まる方向に遷移し、クロックでホールドして反転した結果を第1のラッチ出力N134〜N136へ出力することによって行う。
第1の3ビット2入力1出力マルチプレクサは、第1の組み合わせ論理回路であって、ANDゲートA121〜A126およびORゲートA127〜A129より構成される。選択入力であるデータ入力N112およびN113は、何方か一方だけが必ず"1"になるので、マルチプレクサとして動作し、入力と出力の組み合わせが変化する。第1の3ビット2入力1出力マルチプレクサの出力は、第1の3ビットラッチに供給される。
第1の3ビットラッチは、3ビット3安定NAND型トランスペアレントラッチであり、ORゲートA131〜A133およびNANDゲートA134〜A136から構成される。この第1の3ビットラッチは、3個のNANDゲートA134〜A136から構成される第1の3安定順序論理回路の入力に、ORゲートA131〜A133によるホールド回路を追加したものである。図6は、NANDゲートA134〜A136から構成される3安定順序論理回路の真理値表を示す。ORゲートA131〜A133に対するクロックN102が"0"の場合(イネーブル動作)の、データN127〜N129による、現在の入力(t)および直前の入力(t−1)による入力状態と、データ出力N147〜N149の出力状態との関係を示す。
イネーブル動作時において、第1の3安定順序論理回路は、データN127〜N129の何れか2つが値"0"である場合に、データ出力N147〜N149として対応する入力の反転信号を出力する。次に、データN127〜N129の2つの値"0"のうち何れかが値"0"から値"1"に変化し、データN127〜N129の値"0"が2個から1個になったときは、直前の状態をホールドする。一方、データN127〜N129の値"0"の個数が1個から2個に変化したときは、データ出力N147〜N149に対して、対応する入力の反転信号を出力する。このような第1の3安定順序論理回路は、真理値表に示されるように、出力状態として(0,1,1)、(1,0,1)および(1,1,0)の、安定的な3状態を得ることができる。
ORゲートA131〜A133に対するクロックN102が"0"から"1"になると、第1の3安定順序論理回路の安定状態がホールドされる。ホールド動作時には、データ出力N147〜N149の3出力のうち1本だけが"0"で、他の2本が"1"になるような3通りの安定状態のうち、1通りを保つ。また、イネーブル動作時には、図6に示した真理値表に従った振る舞いを示し、データ入力N127〜N129のうち1ビットだけが値"0"で、それ以外が値"1"の入力があった場合、データ入力N127〜N129の値を反転してデータ出力N134〜N136とする。
第1の3ビットラッチの出力は、第2の3ビット2入力1出力マルチプレクサと、第3の3ビット2入力1出力マルチプレクサにそれぞれ供給される。
第2の3ビット2入力1出力マルチプレクサと第2の3ビットラッチとで、第2の状態遷移部を構成する。第2の状態遷移部は、クロック入力N100の立ち上がりに対応する状態遷移を行う。状態遷移は、3ビット信号N134〜N136を、データ入力113の値によって決まる方向に遷移し、クロックでホールドして反転した結果を第1のラッチ出力N154〜N156へ出力することによって行う。
第2の3ビット2入力1出力マルチプレクサは、第2の組み合わせ論理回路であって、ANDゲートA141〜A146およびORゲートA147〜A149より構成される。選択入力であるデータ入力N112およびN113は、何方か一方だけが必ず"1"になるので、マルチプレクサとして動作し、入力と出力の組み合わせが変化する。第2の3ビット2入力1出力マルチプレクサの出力は、第2の3ビットラッチに供給される。
第2の3ビットラッチは、3ビット3安定NOR型トランスペアレントラッチであり、ANDゲートA151〜A153およびNORゲートA154〜A156から構成される。この第1の3ビットラッチは、3個のNORゲートA154〜A156から構成される第2の3安定順序論理回路の入力に、ANDゲートA151〜A153によるホールド回路を追加したものであって、上述した第1の3ビットラッチに対して正負の論理が反転した出力を得る。図7は、NORゲートA154〜A156から構成される第2の3安定順序論理回路の真理値表を示す。ANDゲートA151〜A153に対するクロックN102が"0"の場合(イネーブル動作)の、データN147〜N149による、現在の入力(t)および直前の入力(t−1)による入力状態と、データ出力N154〜N156の出力状態との関係を示す。
イネーブル動作時において、第2の3安定順序論理回路は、データN147〜N149の何れか2つが値"1"である場合に、データ出力N154〜N156として対応する入力の反転信号を出力する。次に、データN147〜N149の2つの値"1"のうち何れかが値"1"から値"0"に変化し、データN147〜N149の値"1"が2個から1個になったときは、直前の状態をホールドする。一方、データN147〜N149の値"0"の個数が1個から2個に変化したときは、データ出力N154〜N154に対して、対応する入力の反転信号を出力する。このような第2の3安定順序論理回は、真理値表に示されるように、出力状態として(0,0,1)、(0,1,0)および(1,0,0)の、安定的な3状態を得ることができる。
ANDゲートA151〜A153に対するクロックN102が"1"から"0"になると、第2の3安定順序論理回路の安定状態がホールドされる。ホールド動作時には、データ出力N154〜N156の3出力のうち1本だけが"1"で、他の2本が"0"になるような3通りの安定状態のうち、1通りを保つ。また、イネーブル動作時には、図7に示した真理値表に従った振る舞いを示し、データ入力N147〜N149のうち1ビットだけが値"1"で、それ以外が値"0"の入力があった場合、データ入力N147〜N149の値を反転してデータ出力N154〜N156とする。
第2の3ビットラッチの出力は、第3の3ビット2入力1出力マルチプレクサおよび第1の3ビット2入力1出力マルチプレクサにそれぞれ供給される。
第3の3ビット2入力1出力マルチプレクサは、第3の組み合わせ論理回路であって、ORゲートA181〜A186およびANDゲートA187〜A189より構成される。この第3の3ビット2入力1出力マルチプレクサにより、出力選択部が形成される。第3の3ビット2入力1出力マルチプレクサは、クロックN102およびN103によって第1の3ビットラッチの出力と、第2の3ビットラッチの出力のうち後から変化した方を選択し、エンコーダ10の最終的な出力であるエンコード出力N187〜N189に出力する。
なお、エンコード出力N187〜N189は、所定の状態番号変換回路により、図2に一例が示されるような、対応する状態番号N187Sに変換される。
2−1−3.エンコーダの動作について
次に、上述のエンコーダ10の一例の動作について、図8のタイミングチャートを用いて説明する。なお、この図8やこの発明の説明に用いる他のタイミングチャートは、ソフトウェア「Baige Bag Software社製 B2Spice A/D リリース4.26」を用い、同ソフトウエアに付属のXSpiceディジタルゲートモデルを用いて各回路の動作をシミュレートした結果得られたものである。付属のディジタルゲートモデルの遅延はすべて100psとしている。
タイミングチャートは、エンコーダ10の入力クロックN100の電圧v(n100)、データ入力N112の電圧v(n112)およびデータ入力N113の電圧v(n113)と、エンコーダ10の出力であるデータ出力N187〜N189に対応する状態番号N187Sと、時間軸との関係をプロットしたものである。状態番号N187Sの遷移は、上述した図3の状態遷移図に基づき発生することになる。
クロックN100の立ち上がりエッジN100−212のタイミングで、データ入力112がサンプリングされる。サンプリングされた結果は、論理"0"であるので、直前の状態番号N187Sの"5"が"1"だけ減算される遷移が生じ、状態番号N187Sが"4"となる。次にクロックN100の立ち下がりエッジN100−216のタイミングで、データ入力N113がサンプリングされる。サンプリングされた結果は、論理"1"であるので、直前の状態番号N187Sの"4"が"1"だけ加算される遷移が生じ、状態番号N187Sが"5"となる。
さらに、その次のクロックN100の立ち上がりエッジN100−220のタイミングで、データ入力N112がサンプリングされる。サンプリングされた結果は、論理"1"であるので、直前の状態番号N187Sの"5"が"1"だけ加算される遷移が生じ、状態番号N187Sが"6"となる。次のクロックN100の立ち下がりエッジN100−224のタイミングで、データ入力N113がサンプリングされる。サンプリングされた結果は、論理"0"であるので、直前の状態番号N187Sの"6"が"1"だけ減算される遷移が生じ、状態番号N187Sが"5"となる。
エンコーダ10は、以下同様にしてサンプリングと状態遷移とを繰り返すことにより、順序論理回路によるエンコード動作を行う。
2−2.発明の実施の第1の形態の変形例について
次に、この発明の実施の第1の形態の変形例について説明する。この変形例は、上述した実施の第1の形態のエンコーダ10において、別のシミュレーションモデルを用いた例である。図9は、実施の第1の形態の変形例による別のシミュレーションモデルの概要について示す。この別のシミュレーションモデルの構成要素は、図2を用いて説明したシミュレーションモデルと、構成要素は同一であり、エンコーダ10も、図5で説明したものと同一の構成とする。図9の別のシミュレーションモデルでは、テストユニット500において1ビットの擬似乱数が取り出されるデータ出力N090に対し、エンコーダ10のデータ入力N112およびN113が共通に接続される。また、データ出力N090は、クロックN080の正負両エッジで擬似乱数をサンプリングできるタイミングで出力される。
図10は、この別のシミュレーションモデルの場合におけるエンコーダ10の動作を、上述のシミュレーションソフトウェアを用いてシミュレートした結果の一例のタイミングチャートである。このタイミングチャートは、上述した図8のタイムチャートと同様に、エンコーダ10の入力クロックN100の電圧v(n100)、データ入力N112の電圧v(n112)およびデータ入力N113の電圧v(n113)と、エンコーダ10の出力であるデータ出力N187〜N189に対応する状態番号N187Sと、時間軸との関係をプロットしたものである。状態番号N187Sの遷移は、上述した図3の状態遷移図に基づき発生することになる。
図10において、クロックN100の立ち上がりエッジN100−212のタイミングで、データ入力N112がサンプリングされる。サンプリングされた結果は、論理"1"であるので、状態番号N187Sの"5"が"1"だけ加算される遷移が生じ、状態番号N187Sが"6"となる。次にクロックN100の立ち下がりエッジN100−216のタイミングで、データ入力112と共通のデータ入力N113がサンプリングされる。サンプリングされた結果は、論理"1"であるので、状態番号N187Sの"6"が"1"だけ加算される遷移が生じ、状態番号N187Sが"1"となる。
その次のクロックN100の立ち上がりエッジN100−220のタイミングで、データ入力N112がサンプリングされる。サンプリングされた結果は、論理"0"であるので、状態番号N187Sの"1"が"1"だけ減算される遷移が生じ、状態番号N187Sが"6"となる。さらにその次のクロックN100の立ち下がりエッジN100−224のタイミングで、データ入力113がサンプリングされる。サンプリングされた結果は、論理"0"であるので、状態番号N187Sの"6"が"1"だけ減算される遷移が生じ、状態番号N187Sが"5"となる。
エンコーダ10は、以下同様にしてサンプリングと状態遷移とを繰り返すことにより、第1および第2の3安定順序論理回路によるエンコード動作を行う。
この発明の実施の第1の形態および第1の形態の変形例によれば、クロックの正負両エッジによって入力データのサンプリングを行う構成となっているため、論理回路やラッチ回路の最大動作周波数が同じであっても、より高速にデータ伝送を行うことができる。
また、3状態で安定を保つ3ビットラッチ回路を使用する構成となっているため、初期化回路が不要であり、尚かつ、ノイズなどの影響による不正な状態遷移が起こりにくい。
さらに、2系統のデータ入力を独立させる構成となっているため、ラッチのタイミングマージンを大きくすることができる。
3−1.実施の第2の形態について
次に、この発明の実施の第2の形態について説明する。この実施の第2の形態における、図1のエンコーダ6に対応するエンコーダ11(図11参照)は、4相のシリアルディジタルデータに対し、位相が90度ずれた2つのクロックの立ち上がりおよび立ち下がりの両エッジでデータをサンプリングし、3本の伝送路を用いて6種類の状態遷移によってデータを伝送するようにしている。
3−1−1.シミュレーションモデルについて
図11は、この実施の第2の形態によるエンコーダ11の動作の検証に用いたシミュレーションモデルの概要について示す。テストユニット501は、エンコーダ11を動作させるための、互いに90度位相がずれたクロック信号N081およびN082を発生させると共に、データ信号N096、N097、N098およびN099を擬似乱数に基づいて発生させる。クロック信号N081およびN082は、エンコーダ11のクロック入力N200およびN201にそれぞれ加えられる。データ信号N096、N097、N098およびN099は、エンコーダ11のデータ入力N216、N217、N218およびN219にそれぞれ加えられる。
エンコーダ11の出力N397、N398およびN399を、動作説明用の状態番号を生成する状態番号変換回路511に入力することで、変換回路の状態番号出力NN397Sが得られる。状態番号は、以後の説明で使用する、整数値で"1"〜"6"までの値をとり、1回に"1"ずつ加減算される値である。状態番号は、"6"の状態で"1"が加算されれば"1"となり、"1"の状態から"1"が減算されれば、"6"になる。
図12は、状態番号変換回路511における一例の真理値表を示す。この状態番号変換回路511は、上述した実施の第1の形態で説明した、状態番号変換回路510と同様の変換を行う。すなわち、状態番号変換回路511は、6状態を表す3ビット(x,x,x)が入力されると、入力された6状態を"1"から"6"までの状態番号に変換して出力する。この例では、3ビットが状態(0,0,1)で状態番号"1"、状態(0,1,1)で状態番号"2"、状態(0,1,0)で状態番号"3"、状態(1,1,0)で状態番号"4"、状態(1,0,0)で状態番号"5"、状態(1,0,1)で状態番号"6"とされる。図12において、状態番号"0"に相当する状態は、状態(0,0,0)であり、状態番号"7"に相当する状態は、状態(1,1,1)であるが、これらの3ビットが全て同値になる状態は、用いられない。
図13は、この実施の第2の形態における3ビット6状態の入出力の一例の状態遷移図を示す。状態番号N397Sは、エンコーダ11の出力の状態番号を示す。クロックN200の立ち下がり(図13では「N200→0」と表記)で、データ入力N216に基づき、内部状態の状態番号N337Sに対する状態遷移の結果が、状態番号N277Sに入力される。このとき、データ入力N216が"1"であれば、状態番号N337S="4"から状態番号N277S="5"のように状態番号が増える遷移が発生する。また、データ入力N216が"0"であれば、状態番号N337S="4"から状態番号N277S="3"のように、状態番号が減る遷移が発生する。これらの場合において、結果として得られる状態番号は、奇数である。状態番号の遷移と共に、状態番号N337Sを決定する3ビットがエンコード結果として出力される。
次に、クロックN201の立ち下がり(図13では「N201→0」と表記)のタイミングで、データ入力N217に基づき、内部状態の状態番号N277Sに対する状態遷移の結果が、状態番号N297Sに入力される。このとき、データ入力N217が"1"であれば、状態番号N277S="5"から状態番号N297S="6"のように状態番号が増える遷移が発生する。また、データ入力N217が"0"であれば、状態番号N277S="5"から状態番号N277S="4"のように、状態番号が減る遷移が発生する。これらの場合において、結果として得られる状態番号は、偶数である。状態番号の遷移と共に、状態番号N277Sを決定する3ビットがエンコード結果として出力される。
次に、クロックN200の立ち上がり(図13では「N200→1」と表記)のタイミングで、データ入力N218に基づき、内部状態の状態番号N297Sに対する状態遷移の結果が、状態番号N317Sに入力される。このとき、データ入力N218が"1"であれば、状態番号N297S="4"から状態番号N317S="5"のように状態番号が増える遷移が発生する。また、データ入力N218が"0"であれば、状態番号N297S="4"から状態番号N317S="5"のように、状態番号が減る遷移が発生する。これらの場合において、結果として得られる状態番号は、奇数である。状態番号の遷移と共に、状態番号N297Sを決定する3ビットがエンコード結果として出力される。
次に、クロックN201の立ち上がり(図13では「N201→1」と表記)のタイミングで、データ入力N219に基づき、内部状態の状態番号N317Sに対する状態遷移の結果が、状態番号N337Sに入力される。このとき、データ入力N219が"1"であれば、状態番号N317S="3"から状態番号N337S="4"のように状態番号が増える遷移が発生する。また、データ入力N219が"0"であれば、状態番号N317S="3"から状態番号N337S="2"のように、状態番号が減る遷移が発生する。これらの場合において、結果として得られる状態番号は、偶数である。状態番号の遷移と共に、状態番号N317Sを決定する3ビットがエンコード結果として出力される。
エンコーダ11では、以上で述べた4種類の状態遷移の繰り返しにより入力データがエンコードされ、出力される。
3−1−2.エンコーダの構成について
図14は、この実施の第2の形態によるエンコーダ11の一例の回路を示す。エンコーダ11は、4ビットのデータ入力N216〜N219と、正負エッジを用いる2ビットのクロックN200およびN201とを入力し、エンコードを行う。エンコード結果は、3ビットのデータとしてエンコーダ出力N397、N398およびN399に出力される。
エンコーダ11は、第1〜第4の3ビット2入力1出力マルチプレクサ、第1〜第4の3ビット3安定ラッチ(3ビットラッチ)、ならびに、第1〜第3の3ビット4入力1出力マルチプレクサにより構成される。
第1の3ビット2入力1出力マルチプレクサは、ORゲートA261〜A266およびANDゲートA267〜A269により構成される。この第1の3ビット2入力1出力マルチプレクサは、第4の3ビット3安定ラッチの出力と、データ入力N216とに基づいて、次の状態番号を決定する。データ入力N216が"1"のときには、状態番号が"1"増加する状態を出力し、データ入力N216が"0"のときには、状態番号が"1"減少する状態を出力する。第1の3ビット2入力1出力マルチプレクサの出力は、第1の3ビット3安定ラッチに供給される。
第1の3ビット3安定ラッチは、実施の第1の形態で図6の真理値表を用いて既に説明した3ビット3状態NAND型トランスペアレントラッチと同様の回路であって、NANDゲートA274、A275およびA276から構成される3安定順序論理回路にNANDゲートA271〜A273によるホールド回路が付加されてなる。第1の3ビット3安定ラッチは、クロックN200が"0"且つクロックN201が"1"のときにイネーブル動作とされ、その他の状態でホールド動作とされる。第1の3ビット3安定ラッチの出力は、反転されて3ビット4入力1出力マルチプレクサに供給される。
これら第1の3ビット2入力1出力マルチプレクサと、第1の3ビット3安定ラッチにより、第1の状態遷移制御部が構成される。
第2の3ビット2入力1出力マルチプレクサは、ORゲートA281〜A286およびANDゲートA287〜A289により構成される。この第2の3ビット2入力1出力マルチプレクサは、第1の3ビット3安定ラッチの出力と、データ入力N217とに基づいて、次の状態番号を決定する。データ入力N217が"1"のときには、状態番号が"1"増加する状態を出力し、データ入力N217が"0"のときには、状態番号が"1"減少する状態を出力する。第2の3ビット2入力1出力マルチプレクサの出力は、第2の3ビット3安定ラッチに供給される。
第2の3ビット3安定ラッチは、NANDゲートA294、A295およびA296から構成される3安定順序論理回路にNANDゲートA291〜A293によるホールド回路が付加されてなる。第2の3ビット3安定ラッチは、クロックN200が"0"且つクロックN201が"0"のときにイネーブル動作とされ、その他の状態でホールド動作とされる。
これら第2の3ビット2入力1出力マルチプレクサと、第2の3ビット3安定ラッチにより、第2の状態遷移制御部が構成される。
第3の3ビット2入力1出力マルチプレクサは、ORゲートA301〜A306およびANDゲートA307〜A309により構成される。この第3の3ビット2入力1出力マルチプレクサは、第2の3ビット3安定ラッチの出力と、データ入力N218とに基づいて、次の状態番号を決定する。データ入力N218が"1"のときには、状態番号が"1"増加する状態を出力し、データ入力N218が"0"のときには、状態番号が"1"減少する状態を出力する。
第3の3ビット3安定ラッチは、NANDゲートA314、A315およびA316から構成される3安定順序論理回路にNANDゲートA311〜A313によるホールド回路が付加されてなる。第3の3ビット3安定ラッチは、クロックN200が"1"且つクロックN201が"0"のときにイネーブル動作とされ、その他の状態でホールド動作とされる。
これら第3の3ビット2入力1出力マルチプレクサと、第3の3ビット3安定ラッチにより、第3の状態遷移制御部が構成される。
第4の3ビット2入力1出力マルチプレクサは、ORゲートA321〜A326およびANDゲートA327〜A329により構成される。この第4の3ビット2入力1出力マルチプレクサは、第3の3ビット3安定ラッチの出力と、データ入力N219とに基づいて、次の状態番号を決定する。データ入力N219が"1"のときには、状態番号が"1"増加する状態を出力し、データ入力N218が"0"のときには、状態番号が"1"減少する状態を出力する。
第4の3ビット3安定ラッチは、NANDゲートA334、A335およびA336から構成される3安定順序論理回路にNANDゲートA331〜A333によるホールド回路が付加されてなる。第4の3ビット3安定ラッチは、クロックN200が"1"且つクロックN201が"1"のときにイネーブル動作とされ、その他の状態でホールド動作とされる。
これら第4の3ビット2入力1出力マルチプレクサと、第4の3ビット3安定ラッチにより、第4の状態遷移制御部が構成される。
出力選択部は、第1〜第3の3ビット4入力1出力マルチプレクサから構成される。第1の3ビット4入力1出力マルチプレクサは、3入力NANDゲートA365、A366、A367およびA368、ならびに、4入力NANDゲートA369から構成される。第2の3ビット4入力1出力マルチプレクサは、3入力NANDゲートA375、A376、A377およびA378、ならびに、4入力NANDゲートA379から構成される。第3の3ビット4入力1出力マルチプレクサは、3入力NANDゲートA385、A386、A387およびA388、ならびに、4入力NANDゲートA389から構成される。第1〜第3の3ビット4入力1出力マルチプレクサは、第1〜第4の3ビット3安定ラッチの出力がそれぞれ供給され、供給された信号の中から、クロックN200およびN201の組み合わせに応じて1組を選択し、エンコード出力N397、N398およびN399に出力する。
すなわち、出力選択部では、クロックN200が"0"且つクロックN201が"0"のときに、第1の3ビット3安定ラッチの出力N277〜N279が選択される。クロックN200が"1"且つクロックN201が"0"のときに、第2の3ビット3安定ラッチの出力の反転出力N297〜N299が選択される。クロックN200が"1"且つクロックN201が"1"のときに、第3の3ビット3安定ラッチの出力N317〜N319が選択される。また、クロックN200が"0"且つクロックN201が"1"のときに、第4の3ビット3安定ラッチの出力の反転出力N337〜N339が選択される。
なお、エンコード出力N397〜N399は、所定の状態番号変換回路により、図12に一例が示されるような、対応する状態番号N397Sに変換される。
3−1−3.エンコーダの動作について
次に、上述のエンコーダ11の一例の動作について、上述のシミュレーションソフトウェアを用いてシミュレートした一例の結果の、図15および図16のタイミングチャートを用いて説明する。タイミングチャートは、エンコーダ11の入力クロックN200およびN201の電圧v(n200)およびv(n201)、ならびに、データ入力N216、N217、N218およびN219の電圧v(n216)、v(n217)、v(n218)およびv(n219)と、時間との関係をプロットしている。そして、これらのプロットに対応して、エンコーダ11の内部における、3ビットの値で表される状態番号N277S、N297S、N317S、N337Sと時間との関係をそれぞれプロットすると共に、エンコーダ11から出力される3ビットの値で表される状態番号N397Sと時間との関係をプロットしたものである。
なお、図15および図16は、タイミングチャートとしては同一の内容であって、説明用の符号などが異なっている。
先ず、図15を用いて、クロックとデータの入力に基づく状態遷移の作用について説明する。クロックN200の立ち下がりN200−204のタイミングで、データ入力N216に基づく状態遷移の結果をサンプリングする。この図15の例では、立ち下がりN200−204の直前の状態番号N337Sが"2"であり、立ち下がりN200−204によりサンプリングされるデータ入力N216の値が"0"なので、図13の状態遷移を参照し、状態番号が減少する状態遷移が発生する。その結果、立ち下がりN200−204によりサンプリングされた状態番号N277Sは、"1"となる。
次に生じるクロックN201の立ち下がりN201−208のタイミングで、データ入力N217に基づく状態遷移の結果をサンプリングする。立ち下がりN201−208の直前の状態番号N277Sが"1"であり、データ入力N217の値が"0"なので、状態番号が減少する状態遷移が発生する。その結果、立ち下がりN201−208によりサンプリングされた状態番号N297Sは、"6"になる。
さらに、クロックN200の立ち上がりN200−212のタイミングで、データ入力N218に基づく状態遷移の結果をサンプリングする。直前の状態番号N297Sは"6"であり、データ入力N218の値は"0"なので、状態番号が減少する状態遷移が発生する。その結果、立ち下がりN200−212によりサンプリングされた状態番号N317Sは、"5"になる。
同様に、次に生じるクロックN201の立ち上がりN201−216のタイミングで、データ入力219に基づく状態遷移の結果をサンプリングする。直前の状態番号N317Sは"5"であり、データ入力N219の値は"0"であるので、状態番号が減少する状態遷移が発生する。その結果、立ち上がりN201−216によりサンプリングされた状態番号N337Sは、"4"になる。
以上で、上述した第1〜第4の状態遷移制御部の作用が一巡する。これら第1〜第4の状態遷移制御部による状態遷移の結果としてサンプリングされた状態番号は、最短でも、サンプリングのきっかけになったクロックが変化するまでの間は、ホールドされる。
図15において、一巡後の再度のクロックN200の立ち上がりN200−220は、データ入力N216に基づく状態遷移の結果をサンプリングする。直前の状態番号N337Sは"4"であり、データ入力N216の値は"1"なので、状態番号が増加する状態遷移が発生する。その結果、立ち上がりN200−220によりサンプリングされた状態番号N277Sは、"5"となる。以下同様にして、サンプリングと状態遷移の作用の繰り返しによって、順序回路によるエンコード動作が行われる。
次に、図16のタイミングチャートを用いて、エンコーダ11における出力選択の作用について説明する。これは、上述した出力選択部を構成する3ビット4入力1出力マルチプレクサによる作用である。
クロックN200が"0"且つクロックN201が"1"になったとき、内部状態番号N337Sに対応する3ビットの内部状態が選択されて出力される。その結果、出力の状態番号N397Sは、内部状態番号N337Sと同一の値(図16の例では"2")になる。
クロックN200が"0"且つクロックN201が"0"になったとき、内部状態番号N277Sに対応する3ビットの内部状態が選択されて出力される。その結果、出力の状態番号N397Sは、内部状態番号N277Sと同一の値(図16の例では"2")になる。
クロックN200が"1"且つクロックN201が"0"になったとき、内部状態番号N297Sに対応する3ビットの内部状態が選択されて出力される。その結果、出力の状態番号N397Sは、内部状態番号N297Sと同一の値(図16の例では"2")になる。
クロックN200が"1"且つクロックN201が"1"になったとき、内部状態番号N317Sに対応する3ビットの内部状態が選択されて出力される。その結果、出力の状態番号N397Sは、内部状態番号N317Sと同一の値(図16の例では"2")になる。
以上の繰り返しにより、4種類の内部状態が3ビット4入力1出力マルチプレクサにより順次選択され、出力の状態番号N397Sが表す状態番号に対応する3ビットの組み合わせが出力される。
3−2.実施の第2の形態の変形例について
次に、この実施の第2の形態の変形例について説明する。図17は、この実施の第2の形態の変形例によるエンコーダ11の動作の検証に用いたシミュレーションモデルの概要について示す。テストユニット502は、エンコーダ11を動作させるための、互いに90度位相がずれたクロック信号N081およびN082を発生させると共に、データ信号N092およびN093を擬似乱数に基づいて発生させる。このとき、クロックN082の正負両エッジでN092が、クロックN083の正負両エッジでN093を、サンプリングできるタイミングで疑似乱数の値を出力する。
この実施の第2の形態の変形例では、エンコーダ11は、4相のデータ入力のうちデータ入力N216とデータ入力N218とを接続して共通の1本の入力とし、テストユニット502のデータ信号N092を入力する。同様に、データ入力N217とデータ入力N219とを接続して共通の1本の入力とし、テストユニット502のデータ信号N093を入力する。エンコーダ11は、図14を用いて説明した実施の第2の形態の構成と同一の回路構成を適用することができる。
この実施の第2の形態の変形例によるエンコーダ11の一例の動作について、上述のシミュレーションソフトウェアを用いてシミュレートした一例の結果の、図18および図19のタイミングチャートを用いて説明する。タイミングチャートは、エンコーダ11の入力クロックN200およびN201の電圧v(n200)およびv(n201)、ならびに、データ入力N216、N217、N218およびN219の電圧v(n216)、v(n217)、v(n218)およびv(n219)と、時間との関係をプロットしている。そして、これらのプロットに対応して、エンコーダ11の内部における、3ビットの値で表される状態番号N277S、N297S、N317S、N337Sと時間との関係をそれぞれプロットすると共に、エンコーダ11から出力される3ビットの値で表される状態番号N397Sと時間との関係をプロットしたものである。
なお、図18および図19は、タイミングチャートとしては同一の内容であって、説明用の符号などが異なっている。
先ず、図18を用いて、エンコーダ11におけるクロック信号とデータ入力に基づく状態遷移の作用について説明する。なお、この図18におけるクロック信号とデータ入力に基づく状態遷移の作用は、データ入力が2本ずつ共通であることと、データ入力のクロックとタイミングの関係が異なることを除き、図15のタイミングチャートを用いて説明した作用と同等である。
クロックN200の立ち下がりN200−204のタイミングで、データ入力N216に基づく状態遷移の結果をサンプリングする。この図18の例では、立ち下がりN200−204の直前の状態番号N337Sが"2"であり、立ち下がりN200−204によりサンプリングされるデータ入力の値が"0"なので、状態番号が減少する状態遷移が発生する。その結果、クロックN200の立ち下がりN200−204でサンプリングされた状態番号N277は、"1"となる。
次に生じるクロックN201の立ち下がりN201−208のタイミングで、データ入力217に基づく状態遷移の結果をサンプリングする。立ち下がりN201−208の直前の状態番号N277Sが"1"であり、データ入力N217の値が"0"なので、状態番号が減少する状態遷移が発生する。その結果、クロックN201の立ち下がりN201−208でサンプリングされた状態番号N297Sは、"6"になる。
さらに、クロックN200の立ち上がりN200−212のタイミングで、データ入力N218に基づく状態線の結果をサンプリングする。立ち上がりN200−212の直前の状態番号N297Sは"6"であり、データ入力N218の値が"0"なので、状態番号が減少する状態遷移が発生する。その結果、クロックN200の立ち上がりN200−212でサンプリングされた状態番号N317Sは、"5"となる。
同様に、次に生じるクロックN201の立ち上がりN201−216のタイミングで、データ入力N219に基づく状態遷移の結果をサンプリングする。立ち上がりN201−216の直前の状態番号N317Sが"5"であり、データ入力N219の値が"1"なので、状態番号が増加する状態遷移が発生する。その結果、クロックN201の立ち上がりN201−216でサンプリングされた状態番号N297Sは、"6"となる。
以上で、上述した第1〜第4の状態遷移制御部の作用が一巡する。これら第1〜第4の状態遷移制御部による状態遷移の結果としてサンプリングされた状態番号は、最短でも、サンプリングのきっかけになったクロックが変化するまでの間は、ホールドされる。
図18において、一巡後の再度のクロックN200の立ち上がりN200−220のタイミングで、データ入力N216に基づく状態遷移の結果をサンプリングする。直前の状態番号N337Sは"6"であり、データ入力N216の値は"1"なので、状態番号が増加する状態遷移が発生する。その結果、立ち上がりN200−220によりサンプリングされた状態番号N277Sは、"1"となる。以下同様にして、サンプリングと状態遷移の作用の繰り返しによって、順序回路によるエンコード動作が行われる。
次に、図19を用いて、エンコーダ11の出力選択の作用について説明する。これは、上述した図16と同様に、図14に示す出力選択部を構成する3ビット4入力1出力マルチプレクサによる作用である。なお、図19は、タイミングチャートとしては上述の図18と同一のもので、説明のための符号が異なる。
クロックN200が"0"且つクロックN201が"1"の場合、内部状態番号N337Sに対応する3ビットの内部状態が選択されて出力される。その結果、出力の状態番号N397Sは、内部状態番号N337Sと同じ値(図19の例では"2")になる。
クロックN200が"0"且つクロックN201が"0"の場合、内部状態番号N277Sに対応する3ビットの内部状態が選択されて出力される。その結果、出力の状態番号N397Sは、内部状態番号N277Sと同じ値(図19の例では"1")になる。
クロックN200が"1"且つクロックN201が"0"の場合、内部状態番号N297Sに対応する3ビットの内部状態を選択して出力する。その結果、出力の状態番号N397Sは、内部状態番号N297Sと同じ値(図19の例では"6")になる。
クロックN200が"1"且つクロックN201が"1"の場合、内部状態番号N317Sに対応する3ビットの内部状態を選択して出力する。その結果、出力の状態番号N397Sは、内部状態番号N317Sと同じ値(図19の例では"5")になる。
この発明の実施の第2の形態および第2の形態の変形例によれば、4相クロックを採用していることにより、同一速度の論理回路を使用した場合により、高速が可能となる。また、伝送速度が同一であれば、より低速な論理回路を用いることができるため、消費電力の低減を図ることができると共に、コストも削減できる。
さらに、4相クロックを用いることで、内部で信号をサンプリングするタイミングの前後で信号が変化しない期間を長く取れるため、より広いタイミングマージンを確保することができる。
3−2.発明の実施の第1および第2の形態の補足
なお、実施の第1の形態および第1の形態の変形例、ならびに、実施の第2の形態(および第2の形態の変形例)で説明したエンコーダ10、10’および11は、3ビット2入力1出力マルチプレクサをANDゲートやORゲートを組み合わせて用いて、実現しているが、これはこの例に限定されない。例えば、3ビット2入力1出力マルチプレクサを、トランスファゲートや3ステートバッファゲート回路を用いて構成してもよい。
また、実施の第1の形態および第1の形態の変形例、ならびに、実施の第2の形態(および第2の形態の変形例)で説明したエンコーダ10、10’および11では、3安定順序論理回路に基づく3ビットラッチを用いているが、これはこの例に限定されない。例えば、通常のトランスペアレントラッチとその反転出力を用いることもできる。この場合には、適切な初期化回路またはブービートラップ回路を付加する必要がある。
また、実施の第1の形態および第1の形態の変形例、ならびに、実施の第2の形態(および第2の形態の変形例)で説明したエンコーダ10、10’のエンコーダ出力N187〜N189や、エンコーダ11のエンコード出力N397〜N399に、本出願人による特許である特許公報第3360861号に示すような差動ドライバ回路等を接続することによって、3値3差動伝送が可能となる。
図20は、この特許公報第3360861号に示される差動ドライバ回路50の構成を示し、図21に、この差動ドライバ回路50による入力と出力の真理値表を示す。差動ドライバ回路50において、3個の差動ラインドライバ51A、51Bおよび51C、6個の抵抗器52A、52Bおよび52C、ならびに、抵抗器53A、53Bおよび53Cを有する。各差動ドライバ51A、51Bおよび51Cのうち1の正のドライバ出力端と、他の1の差動ラインドライバの負のドライバ出力端とがそれぞれ抵抗器を介して出力端に接続される。例えば、差動ラインドライバ51Aの正のドライバ出力端は、抵抗器R53Aを介して出力端Orに接続される。差動ラインドライバ51Bの負のドライバ出力端が抵抗器R52Bを介して出力端Orに接続される。出力端Osおよび出力端Otについても、同様である。このような構成の差動ドライバ装置50の入力端Ou、OvおよびOwに対し、図21の真理値表のドライバ入力が入力されると、出力端Or、OsおよびOtにドライバ出力のような出力が現れる。
4−1.発明の実施の第3の形態について
次に、この発明の実施の第3の形態について説明する。この実施の第3の形態は、3本の伝送路を用いて伝送された6種類の状態遷移を示す3値3差動論理信号を、2相シリアルディジタル信号にデコードするデコード装置に関する。
図22は、この実施の第3の形態に適用可能な一例のシステム構成を示す。エンコーダ601は、2相のシリアルディジタル信号N112およびN113を、クロック入力N100に基づき、信号N187〜N189による3ビット6状態間の遷移へと変換する。信号N187〜N189は、ドライバ603で電圧レベルの変換やシングルエンドから差動信号への変化などが施され、3本の伝送路に送出される。信号N187〜N189は、伝送路を介してレシーバ604に受信され、電圧レベルの変換や差動信号からシングルエンドへの変換処理などを施される。そして、3ビット6状態遷移信号として、データ出力N691〜N693から出力され、デコーダ21のデータ入力N901〜N903に入力される。この実施の第3の形態に関わるデコーダ21は、入力された3ビット6状態遷移信号に対し、データとクロックとを分離する処理を行う。こうして得られたクロック信号は、クロック出力N930から出力される。また、位相の異なる2相のデータがデータ出力N938およびN939にそれぞれ出力される。
なお、テストユニット600は、テスト用の信号を発生するためのもので、エンコーダ602を動作させるためのクロックを発生し、クロック出力N089から出力すると共に、擬似乱数に基づき発生させた2相のデータ信号を、データ出力N092〜N093から出力する。
4−1−1.シミュレーションモデルについて
図23は、この実施の第3の形態によるデコーダ21の動作の検証に用いたシミュレーションモデルの概要について示す。このシミュレーションモデルは、デコーダ21の入出力の関係を検証するのが目的であるので、送信側のドライバおよび受信側のレシーバは省略して、エンコーダ601とデコーダ21とを直結した状態でシミュレーションを行う。エンコーダ601は、上述した実施の第1および第2の形態で説明したエンコーダ10および11を用いてもよいし、2相シリアルディジタルデータを6種類の状態遷移を示す3値3差動論理信号に変換して、3本の伝送路を用いて伝送することができれば、他の構成のエンコーダを用いてもよい。
テストユニット600は、エンコーダ601に入力するためのクロックN080と、擬似乱数に基づき生成した2相シリアルディジタル信号N092およびN093を出力する。クロックN080および2相シリアルディジタル信号N092およびN093は、エンコーダ601に入力される。エンコーダ601は、入力された2相シリアルディジタル信号を、クロックに基づき、6種類の状態遷移を示す3値3差動論理信号に変換し、データ出力N187、N188およびN189として3本の伝送路に対して出力する。
エンコーダ601の3本の出力は、デコーダ21にデータ入力N901、N902およびN903として入力されると共に、動作説明用の状態番号を生成する状態番号変換回路602に入力する。状態番号変換回路602は、入力信号に応じた状態番号出力N901Sが得られる。状態番号は、以後の説明で使用する、整数値で"1"〜"6"までの値をとり、1回に"1"ずつ加減算される値である。状態番号は、"6"の状態で"1"が加算されれば"1"となり、"1"の状態から"1"が減算されれば、"6"になる。
図24Aは、状態番号変換回路602における一例の真理値表を示す。このように、状態番号変換回路602は、6状態を表す3ビット(x,x,x)が入力されると、入力された6状態を"1"から"6"までの状態番号に変換して出力する。この例では、3ビットが状態(0,0,1)で状態番号"1"、状態(0,1,1)で状態番号"2"、状態(0,1,0)で状態番号"3"、状態(1,1,0)で状態番号"4"、状態(1,0,0)で状態番号"5"、状態(1,0,1)で状態番号"6"とされる。図24Aにおいて、状態番号"0"に相当する状態は、状態(0,0,0)であり、状態番号"7"に相当する状態は、状態(1,1,1)であるが、これらの3ビットが全て同値になる状態は、用いられない。
また、図24Aは、デコーダ21の内部状態として現れるホールド出力N924、N922およびN926を状態番号N922Sに変換する際の一例の真理値表が同時に示されている。また、図24Bは、同様にして内部状態N921、N925およびN923をビット反転して状態番号N921Sに変換する論理の一例の真理値表が示されている。
なお、状態番号変換回路602などの変換回路や状態番号は、シミュレーション結果の波形表示などにおいて説明のために用いるものであり、デコーダ21の実際の作用は、状態番号に変換する元の3ビットのデータ入力について行われる。
図25は、この発明の実施の第3の形態によるデコーダ21の一例の状態遷移を示す。デコーダ21は、入力された3ビットから、図24Aの真理値表に従い変換した状態番号N901Sで表される入力データの、現在の値と変化後の値とに基づいてクロックN983が毎回反転し、それに伴い、データ出力N938およびN939が交互に更新される。
4−1−2.デコーダの構成について
図26は、この実施の第3の形態によるデコーダ21の一例の回路図を示す。このデコーダ21は、デコード入力N901、N902およびN903に2値3ビット6状態遷移の信号を入力し、クロック出力N982およびN983にクロックと反転クロックとを出力する。また、デコード出力N938およびN939に、それぞれ位相の異なる出力データを出力する。
デコード入力N901、N902およびN903は、ゲート回路A904〜A909からなる入力バッファ回路に供給され、入力信号とその反転信号がそれぞれ生成される。なお、この入力バッファ回路は、デコーダ21に対して3ビットのエンコード入力と、当該エンコード入力の反転信号が入力される場合には、省略することができる。
第1の組み合わせ論理回路は、EXORゲートA983およびA982からなる。これらの回路A983およびA982は、入力された値のうち値"1"の個数が奇数か偶数かを検出する。EXORゲートA983には、デコード入力N901、N902およびN903の入力信号がそのまま入力される。一方、EXORゲートA984には、デコード入力N901、N902およびN903の反転信号が入力される。
3値3差動論理信号においては、上述の実施の第1および第2の形態で図3および図4、ならびに、図12および図13を用いて説明したように、状態番号が"1"ずつ増減し、それに伴い、エンコーダ10または11の3本の出力は、"1"または"0"の個数が偶数個、奇数個を交互に繰り返して変化する。そのため、EXORゲートA983およびEXORゲートA984は、互いに逆位相のクロック出力である、クロック出力N982および反転クロック出力N983をそれぞれ出力する。
第1のデータホールド回路は、NANDゲートA921、A923およびA925からなる。この第1のデータホールド回路および後述する第2のデータホールド回路は、実施の第1の形態で図6の真理値表を用いて説明した3安定順序論理回路と同等の回路である。第1のデータホールド回路は、データ入力N901〜N903の状態番号が奇数から偶数に変化したときに、変化の直前の状態を反転した信号をホールドする。第1のデータホールド回路の出力と対応する状態番号を図24Bに示す。なお、図24Bでは、第1のデータホールド回路の出力がNANDゲートA921、A925およびA923の順に並べられている。
第2のデータホールド回路は、NANDゲートA922、A924およびA926からなる。第2のデータホールド回路は、入力データN901〜N903の状態番号が偶数から奇数に変化したときに、変化の直前の状態の信号をホールドする。第2のデータホールド回路の出力と対応する状態番号を図22Aに示す。なお、図24Aでは、第2のデータホールド回路の出力がNANDゲートN924、N922およびN926の順に並べられている。第1のデータホールド回路の出力と第2のホールド回路の出力とは、このように、状態番号に対して互いに反転関係にある。
第2の組み合わせ論理回路は、ORゲートA931、A933およびA935と、NANDゲートA937とからなる。ORゲートA931、A933およびA935は、第1および第2のデータホールド回路の3本ずつの出力のそれぞれが第1および第2のデータホールド回路で対とされて、それぞれ入力される。ORゲートA931、A933およびA935の出力は、3入力のNANDゲートに入力される。この第2の組み合わせ論理回路は、第1および第2のデータホールド回路のうち一方がホールドした直前の状態と、他方が出力する現在の状態とを比較して、状態遷移方向を判定する。
図27は、この第2の組み合わせ論理回路の一例の真理値表を示す。第2の組み合わせ論理回路は、状態番号が奇数の状態をホールドする第1のデータホールド回路と、状態番号が偶数の状態をホールドする第2のデータホールド回路とを比較し、奇数の状態番号が偶数の状態番号より大きいときに"1"、偶数の状態番号が奇数の状態番号より大きいときに"0"をNANDゲートA937(すなわち第2の組み合わせ論理回路)から出力する。なお、状態番号"6"と"1"との比較においては、状態番号"6"が小さいと判定される。
奇数の状態番号の状態から偶数の状態番号の状態に遷移した場合、NANDゲートA937の出力が"1"の場合は、状態番号が減少する遷移が判定される。また、NANDゲートA937の出力が"0"の場合は、状態番号が増加する遷移が判定される。一方、偶数の状態番号の状態から奇数の異の状態番号の状態に遷移した場合、NANDゲートA937の出力が"1"の場合は、状態番号が増加する遷移が判定される。また、NANDゲートA937の出力が"0"の場合は、状態番号が減少する遷移が判定される。
第1および第2の出力ラッチ回路は、ラッチ回路A938およびA939によりそれぞれ構成される。これら第1および第2のラッチ回路は、ラッチ入力に第2の組み合わせ論理回路の出力が供給されると共に、第1の組み合わせ論理回路から出力される、互いに逆位相のクロックN982およびN983がそれぞれイネーブル信号として入力される。これら第1および第2のラッチ回路は、交互に判定した状態遷移をラッチして、デコード出力N938およびN939として出力する。クロックの位相によって、第2の組み合わせ論理回路に現れる結果が逆になるので、第2のラッチ回路A939は、反転出力N939をデコード出力として用いる。
4−1−3.デコーダの動作について
この実施の第3の形態によるデコーダ21の一例の動作について、図28および図29のタイミングチャートを用いて説明する。図28および図29のタイミングチャートは、このデコーダ21の動作を、上述のシミュレーションソフトウェアを用いてシミュレートした一例の結果を示す。このタイミングチャートは、データ出力信号電圧N938およびN939、デコーダ21で再生されるクロック信号N983、ならびに、シミュレーションにおける参照用のエンコーダのデータ入力v(n112)およびv(n113)と、時間との関係をプロットしている。そして、これらのプロットに対応して、デコーダ21の内部における状態番号N921およびN922と時間との関係をそれぞれプロットすると共に、デコーダ21の入力信号を表す状態番号N901と時間との関係をプロットしている。
なお、図28および図29は、タイミングチャートとしては同一の内容であって、説明用の符号などが異なっている。
先ず、図28のタイミングチャートを用いて、デコーダ21のクロック再生の作用と、データホールドの作用について説明する。クロック再生の作用に関しては、デコード入力N901、N902およびN903の状態番号が奇数であれば"1"、偶数であれば"0"がクロック出力N983に出力される。すなわち、図24を参照して、入力信号中の値"1"の個数は、状態番号が偶数のときは2個で、奇数のときは1個である。また、図25を参照し、状態番号は、偶数および奇数の間で遷移を繰り返すので、EXORゲートN938の出力によりクロックが再生される。
データホールドの作用は、第1のデータホールド回路と第2のデータホールド回路によってなされ、第1のデータホールド回路は、内部状態N921Sとして、状態番号が奇数である最も新しい状態を保持する。また、第2のデータホールド回路は、内部状態N922Sとして、状態番号が偶数である最も新しい状態を保持する。
図28のタイミングチャートにおいて、状態遷移N901S−204では、入力の状態番号N901が"1"から"6"に変化している。その結果、入力の状態番号N901Sは、偶数であり、クロックN983は、"0"レベルとなる。また、最も新しい、偶数の状態番号が"6"となるので、内部状態N922Sとして保持される状態番号は、"6"である。
次に、状態遷移N901S−208では、入力の状態番号N901Sが"6"から"5"に変化している。その結果、入力の状態番号N901Sは、偶数であり、クロックN983は"1"レベルとなる。また、最も新しい、奇数の状態番号が"5"となったので、内部状態N921Sとして保持される状態番号は、"5"となる。
同様に、状態遷移N901S−212では、入力の状態番号N901Sが"5"から"4"に変化している。その結果、入力の状態番号N901Sは、偶数であり、クロックN983は、"0"レベルとなる。また、最も新しい、偶数の状態番号が"4"となるので、内部状態N922Sとして保持される状態番号は、"4"となる。
さらに、状態遷移N901S−216では、入力の状態番号が4から5に変化している。その結果、入力の状態番号N901Sは、奇数であり、クロックN983は、1レベルとなる。また、最も新しい奇数の状態番号が5となるので、内部状態N921Sとして保持される状態番号は、5のまま変化しない。
このようなクロック再生作用と状態番号の保持作用は、入力信号が状態遷移する度に繰り返される。
図29を用いて、デコーダ21におけるデータ再生の作用について説明する。クロックN983の再生については、図28を用いて既に説明したので、このクロックN983と、第1および第2のデータホールド回路によりそれぞれ保持されている内部状態N921SおよびN922Sに基づいたデコード作用について説明する。
第1および第2のラッチ回路は、クロックN983の立ち下がりエッジN983−204のタイミングで、第2の組み合わせ論理回路の出力、すなわち内部状態N921SとN922Sとの比較結果をサンプリングする。クロックN983の立ち下がりN983−204によって生じた状態遷移は、状態番号が奇数("1")から偶数("6")への遷移であり、内部状態N921Sが"1"で、内部状態N922Sが"6"であるので、遷移によって状態番号が減少したことになる。この結果から、データ出力N938に対して論理値"0"が出力される。
同様に、クロックN983の立ち上がりN983−208のタイミングで、内部状態N921SとN922Sとの比較結果をサンプリングする。クロックN983の立ち上がりN983−208によって生じた状態遷移は、状態番号が偶数("6")ら奇数("5")への遷移であり、内部状態N921Sが"5"で内部状態N922Sが"6"であるので、状態番号が減少する遷移が判定される。この結果から、データ出力N939に対して論理値0が出力される。
さらに同様に、クロックN983の立ち下がりエッジN983−212のタイミングで、内部状態N921SとN922Sとの比較結果をサンプリングする。クロックN983の立ち下がりN983−212によって生じた状態遷移は、状態番号が奇数("5")から偶数("4")への遷移であり、内部状態N921Sが"5"で内部状態N922Sが"4"であるので、状態番号が減少する遷移が判定される。この結果から、データ出力N938に対して論理値"0"が出力される。
同様に、クロックN983の立ち上がりN983−216のタイミングの、立ち上がり前の状態遷移は、状態番号が偶数"4"から奇数"5"への遷移であり、内部状態N921Sが前のタイミングと変わらず"5"で、内部状態N922Sが"4"であるので、状態番号が増加する遷移が判定される。この結果から、データ出力N939に対して論理値"1"が出力される。
なお、タイミングチャート上では、クロックN983の変化と、内部状態N921SおよびN922Sの変化とがほぼ同時に生じているように見えるが、実際には、ゲート回路の遅延などによりタイミングが一定の許容範囲内なれば、このデコーダ21は、動作可能である。
また、シミュレータによるエンコードの結果は、多少のグリッチが見られるものの、エンコーダのデータ入力v(n112)およびv(n113)を遅延した波形と略一致しており、正常に動作していることが確認される。
4−2.発明の実施の第3の形態の変形例について
次に、この発明の実施の第3の形態の変形例について説明する。この実施の第3の形態の変形例は、上述した実施の第3の形態の異なる実装例である。図30は、この実施の第3の形態の変形例で用いるシミュレーションモデルを示す。デコーダ21’がこの発明の実施の第3の形態の変形例によるデコーダ装置である。テストユニット600、エンコーダ601および状態番号変換回路602や、状態番号変換回路602の真理値表は、上述した実施の第3の形態と同一であるため、詳細な説明を省略する。
デコーダ21’に対して、エンコーダ601の3本の出力がデコード入力N901、N902およびN903として入力される。デコーダ21’の出力は、デコード出力N996およびN997に導出される。また、再生されたクロック信号がクロック出力N983に導出され、反転クロックが図示されない反転クロック出力N982に導出される。
4−2−1.デコーダの構成について
図31は、この発明の実施の第3の形態の変形例によるデコーダ21’の一例の回路を示す。デコーダ21’は、上述したように、デコード入力N901、N902およびN903に2値3ビット6状態遷移の信号を入力し、クロック出力N982およびN983にクロックと反転クロックとを出力する。また、デコード出力N996およびN997に、それぞれ位相の異なる出力データを出力する。
デコード入力N901、N902およびN903は、ゲート回路A904〜A909からなる入力バッファ回路に供給され、入力信号とその反転信号がそれぞれ生成される。入力バッファ回路から出力された入力信号およびその反転信号は、第1の組み合わせ論理回路のEXORゲートA983およびA982にそれぞれ入力され、非反転の入力信号および反転入力信号のそれぞれについて、値"1"の数が奇数か偶数かが検出され、EXORゲートA983およびEXORゲートA984から、互いに逆位相のクロック出力である、クロック出力N982および反転クロック出力N983がそれぞれ出力される。
入力バッファ回路から出力された非反転の入力信号は、NANDゲートA921、A923およびA925からなる第1のデータホールド回路に入力される。第1のデータホールド回路は、3安定順序論理回路であり、上述した実施の第3の形態と同様に、データ入力N901〜N903の非反転信号による状態番号が奇数から偶数に変化したときに、変化の直前の状態を反転した信号をホールドする。入力バッファから出力された反転入力信号は、NANDゲートA922、A924およびA926による3安定順序論理回路である第2のデータホールド回路に入力される。第2のデータホールド回路は、データ入力N901〜N903の反転信号による状態番号が偶数から奇数に変化したときに、変化の直前の状態の信号をホールドする。
第1および第2のデータホールド回路の出力は、第1および第2の中間ラッチ回路にそれぞれ供給される。第1の中間ラッチ回路と第2の中間ラッチ回路は、EXORゲートA982およびA983から供給されるクロック出力の立ち上がりと立ち下がりとで、交互にホールド動作を繰り返す。
第1のラッチ回路は、3ビットエッジトリガDフリップフロップであり、ラッチ回路A941、A943およびA945によって構成される中間ラッチ回路である。この第1のラッチ回路は、クロックN982が"1"から"0"に変化したときに、第1のデータホールド回路の出力N921、N923およびN925(それぞれNANDゲートA921、A923およびA925の出力)をサンプリングする。第1の中間ラッチ回路の出力は、第2の組み合わせ論理回路に供給される。
第2の組み合わせ論理回路は、上述した実施の第3の形態における第2の組み合わせ論理回路と同等の回路であって、ORゲートA942、A944およびA946、ならびに、NANDゲートA947からなる。第1の中間ラッチ回路を構成するラッチ回路A941、A943およびA945の出力は、それぞれORゲートA942、A944およびA946の一方の入力端に入力される。ORゲートA942、A944およびA946の他方の入力端には、第2のデータホールド回路の3本の出力がそれぞれ入力される。第2の組み合わせ論理回路は、第1のラッチ回路の出力と第2のデータホールド回路の出力とを比較して、状態遷移方向を判定し、状態番号が増加すれば"1"、減少すれば"0"を出力する。
第2の組み合わせ論理回路の出力は、第3のラッチ回路A996に供給される。第3のラッチ回路A996は、出力ラッチ回路であって、1ビットエッジトリガDフリップフロップであって、NANDゲートA947の出力をクロックN983の変化によってサンプリングし、その結果としてデコード出力N996を得る。
第2のラッチ回路は、3ビットエッジトリガDフリップフロップであり、ラッチ回路A952、A954およびA956によって構成される中間ラッチ回路である。この第2のラッチ回路は、クロックN983が"1"から"0"に変化したときに、第2のデータホールド回路の出力N922、N924およびN926(それぞれNANDゲートA922、A924およびA926の出力)をサンプリングする。第1の中間ラッチ回路の出力は、第3の組み合わせ論理回路に供給される。
第3の組み合わせ論理回路は、上述した第2の組み合わせ論理回路と同等の回路であって、ORゲートA951、A953およびA955、ならびに、NANDゲートA957からなる。第2の中間ラッチ回路を構成するラッチ回路A952、A954およびA956の出力は、それぞれORゲートA953、A955およびA951の一方の入力端に入力される。ORゲートA953、A955およびA951の他方の入力端には、第1のデータホールド回路の3本の出力がそれぞれ入力される。第3の組み合わせ論理回路は、第2のラッチ回路の出力と第1のデータホールド回路の出力とを比較して、状態遷移方向を判定し、状態番号が増加すれば"1"、減少すれば"0"を出力する。
第3の組み合わせ論理回路の出力は、第4のラッチ回路A997に供給される。第4のラッチ回路A997は、出力ラッチ回路であって、1ビットエッジトリガDフリップフロップであって、NANDゲートA957の出力をクロックN982の変化によってサンプリングし、その結果としてデコード出力N997を得る。
4−2−2.デコーダの動作について
この実施の第3の形態の変形例によるデコーダ21’の動作について、図32のタイミングチャートを用いて説明する。図32は、このデコーダ21’の動作を、上述のシミュレーションソフトウェアを用いてシミュレートした一例の結果を示す。このタイミングチャートは、データ出力信号電圧N992およびN993、デコーダ21’で再生されるクロック信号N983、ならびに、シミュレーションにおける参照用のエンコーダのクロックv(n100)、データ入力v(n112)およびv(n113)と、時間との関係をプロットしている。そして、これらのプロットに対応して、デコーダ21の内部における状態番号N921およびN922と時間との関係をそれぞれプロットすると共に、デコーダ21の入力信号を表す状態番号N901と時間との関係をプロットしている。
この実施の第3の形態の変形例におけるクロック再生の作用と、データホールドの作用については、図28を用いて既に説明した実施の第3の形態と同様なので、説明を省略する。ここでは、データ再生の作用に先立って生じる中間ラッチの作用について説明する。
第1の中間ラッチ回路の出力N941S(ラッチ回路A941、A943およびA945の出力N941、N943およびN945)は、第1のデータホールド回路の出力N921S(NANDゲートA921、A923およびA925の出力N921、N923およびN925)をサンプリングによって半周期遅延させた信号である。また、第2の中間ラッチ回路の出力N952S(ラッチ回路A952、A954およびA956の出力N952、N954およびN956)は、第2のデータホールド回路の出力N922S(NANDゲートA922、A924およびA926の出力N922、N924およびN926)をサンプリングによって半周期遅延させた信号である。
図32において、クロックN983の立ち下がりエッジN983−204のタイミングで、第3の組み合わせ論理回路の出力、すなわち内部状態N952とN921Sとの比較結果をサンプリングする。クロックN983の立ち下がりN983−204によって生じた状態遷移は、状態番号が"2"から"1"への遷移であるので、状態番号の減少が判定され、データ出力N996に対して論理値"0"が出力される。
クロックN983の立ち上がりN983−208のタイミングで、第2の組み合わせ論理回路の出力、すなわち内部状態N941SとN922Sとの比較結果をサンプリングする。クロックN983の立ち上がりN983−208によって生じた状態遷移は、状態番号が"6"から"1"への遷移であるので、状態番号の減少が判定され、データ出力N997に対して論理値"0"が出力される。
クロックN983の立ち下がりエッジN983−212のタイミングで、内部状態N952SとN921Sとの比較結果をサンプリングする。クロックN983の立ち下がりN983−212によって生じた状態遷移は、状態番号が"6"から"5"への遷移であるので、状態番号の減少が判定され、データ出力N996には、論理値"0"が出力される。
クロックN983の立ち上がりN983−216のタイミングで、内部状態N952SとN921Sとの比較結果をサンプリングする。クロックN983の立ち上がりN983−216によって生じた状態遷移は、状態番号が"5"から"4"への遷移であるので、状態番号の減少が判定され、データ出力N997には、論理値"0"が出力される。
クロックN983の立ち下がりエッジN983−220のタイミングで、内部状態N952とN921Sとの比較結果をサンプリングする。クロックN983の立ち下がりN983−220によって生じた状態遷移は、状態番号が"4"から"5"への遷移であるので、状態番号の増加が判定され、データ出力N996には論理値"1"が出力される。
この実施の第3の形態の変形例において、第3および第4のラッチ回路A996およびA997がサンプリングする信号は、クロックの前後の凡そ半周期の間、変化することがない。このため、サンプリングのタイミングマージンが、上述の実施の第3の形態の例に比較して増大している。一方、この実施の第3の形態の変形例の構成では、データの出力タイミングが実施の第3の形態の構成に対して、半周期分だけ、遅延する。
また、図32において、参照用のエンコーダ入力v(n112)とデコーダ出力N996(図32中ではv(n996))とを比較すると、上述の実施の第3の形態に比較すると(図28、図29参照)、グリッチも少なく、エンコーダに入力された信号がデコーダにおいて略忠実に復元されていることが分かる。参照用のエンコーダ入力v(n113)とデコーダ出力v(n997)を比較した場合も、同様である。
4−3.発明の実施の第3の形態の他の変形例について
図33は、この発明の実施の第3の形態の他の変形例によるデコーダ21”の一例の回路を示す。この実施の第3の形態の他の変形例は、シミュレーションモデルの概要は、上述の実施の第3の形態および第3の形態の変形例と同様である。デコードされた信号は、デコード出力N992およびN993から取り出される。
また、この実施の第3の形態の他の変形例によるデコーダ21”は、上述した実施の第3の形態の変形例によるデコーダ21’におけるエッジトリガDフリップフロップを、トランスペアレントラッチに置き換えている。すなわち、図31を参照し、実施の第3の形態の変形例において第1の中間ラッチ回路を形成する、エッジトリガDフリップフロップによるラッチ回路A941、A943およびA945が、トランスペアレントラッチによるラッチ回路A961、A963およびA965に置き換えられている。同様に、図31において第2の中間ラッチ回路を形成する、エッジトリガDフリップフロップによるラッチ回路A952、A954およびA956が、トランスペアレントラッチによるラッチ回路A972、A974およびA976に置き換えられている。さらに、図31において第3および第4のラッチ回路を形成する、エッジトリガDフリップフロップによるラッチ回路A996およびA997が、それぞれトランスペアレントラッチによるラッチ回路A992およびA993に置き換えられている。デコードされた出力は、これらラッチ回路A992およびA993から取り出される。
なお、図33に示す構成は、図31に示した構成と接続関係などが共通なので、構成に関する詳細な説明は、省略する。
この実施の第3の形態の他の変形例では、第1および第2のラッチ回路、ならびに、第3および第4のラッチ回路を構成するラッチ回路を、エッジトリガDフリップフロップからトランスペアレントラッチに置き換えたので、第1および第2の中間ラッチがデータをホールドする時間が短く、データ出力のタイミングが上述の実施の第3の形態と略同等になる。
図34は、この実施の第3の形態の他の変形例によるデコーダ21”の一例の動作について、上述のシミュレーションソフトウェアを用いてシミュレートした一例の結果を示すタイミングチャートである。この図34のタイミングチャートと、図28の、上述した実施の第3の形態によるデコーダ21のタイミングチャートとを比較すると、図34のデコード出力v(n992)およびv(n993)と、図28のデコード出力v(n938)およびv(n939)とにおいて、略同様の結果が得られていることが分かる。
この発明の実施の第3の形態、第3の形態の変形例および第3の形態の他の変形例では、デコーダ21、21’および21”を、一般的なディジタル回路のみを用いて構成している。そのため、クロックを再生するための微分回路などが不要となり、デコード可能な伝送速度の範囲が広い。
また、エンコードされたデータを、入力のサンプリングに先立ってデータホールド回路に入力する構成により、サンプリング対象信号の最小反転間隔が延長される。その結果、タイミングマージンが増大し、論理回路やラッチ回路等の動作速度が同じであれば、最大伝送帯域が向上される。一方、最大伝送帯域が同じであれば、より低速に動作する論理回路や論理回路を用いてデコーダを構成することが可能であり、消費電力やコストを低減できる。
さらに、入力データをホールドするデータホールド回路の出力をクロックでラッチする中間ラッチ回路を設けた構成により、内部的なタイミングマージンが増大する。その結果、状態遷移の判定に必要な組み合わせ論理回路の遅延の大小に関わらず、デコード動作を安定的に行うことができる。
さらにまた、3状態で安定を保つ3ビット3安定ラッチ回路を、入力データをホールドするデータホールド回路に用いているため、ノイズ等による不正な状態遷移が起こりにくい。
また、入力データをホールドするデータホールド回路の入出力、組み合わせ論理回路の入出力やラッチ回路の入出力を差動にした構成により、論理回路やラッチ回路の内部的な非対称性によるタイミングマージンの減少を最小限にすることができる。なお、ここでいう内部的な非対称性とは、例えば立ち上がり時間と立ち下がり時間の非対称性や、立ち上がり駆動能力と立ち下がり駆動能力の非対称性などを指す。
4−4.発明の実施の第3の形態の補足
この発明の実施の第3の形態、第3の形態の変形例および第3の形態の他の変形例では、第1および第2のデータホールド回路に、NAND型データホールド回路を用いたが、これらをNOR型に置き換えても、入出力の論理を反転すれば、同等の作用を得られる。
また、第1のデータホールド回路は、正論理のエンコード入力をNAND型データホールド回路に接続したものと、負論理のエンコード入力をNOR型データホールドに接続したものとを組み合わせ、データホールド出力を差動出力としても、同等の作用を得られる。同様に、第2の入力ホールド回路は、負論理のエンコード入力をNAND型データホールド回路に接続しものと、負論理のエンコード入力をNOR型データホールド回路に接続したものとを組み合わせ、データホールド出力を差動出力としても、同等の作用を得られる。
さらに、第1の組み合わせ論理回路および第2の組み合わせ論理回路を差動入力とし、差動の第1および第2のデータホールド出力をそれぞれ接続しても、同等の作用を得られる。
さらにまた、状態遷移表上の表記で、第1および第2の組み合わせ論理回路は、状態番号が増加する遷移を検出しても、減少する遷移を検出しても、増加する遷移と減少する遷移を両方検出して差動出力としても、何れの場合も、同等の作用を得られる。
また、第1のラッチ回路および第2のラッチ回路として正負両入力を備えるラッチやセンスアンプ等を用い、組み合わせ論理回路の差動出力を接続しても、同等の作用を得られる。
さらに、上述では、第1のラッチ回路ならびに第2のラッチ回路をトランスペアレントラッチを用いて構成したが、この例に限らず、第1および第2のラッチを3状態ラッチ回路を用いて構成しても、同等の作用を得られる。
さらにまた、第3のラッチ回路および第4のラッチ回路を省略し、デコード出力を別のモジュールに入力してそのモジュールでクロックによってサンプリングしても、同等の作用を得られる。また、第3のラッチ回路および第4のラッチ回路を、エッジトリガDフリップフロップなどに置き換えても、同等の作用を得られる。
また、この実施の第3の形態、第3の形態の変形例および第3の形態の他の変形例によるデコーダのデコーダ入力N901〜N903に、例えば本出願人による特許である特許公報第3360861号に示すような差動レシーバ回路を接続した構成によって、3値3差動入力が可能となる。
図35は、この特許公報第3360861号による差動レシーバ装置70の構成を示し、この差動レシーバ装置70による入力と出力の真理値表を図36に示す。この差動レシーバ装置70は、3値3差動論理信号が伝送される3本の伝送路にそれぞれ接続された3個の入力端子70r、70sおよび70tを有し、3本の伝送路のインピーダンス整合をとるために、各入力端子70r、70sおよび70t間に3角接続された3個の終端抵抗72rs、72stおよび72trと、終端抵抗72rs、72stおよび72trの各端子電圧を入力とする3個の電圧比較器71u、71vおよび71wを備える。電圧比較器71u、71vおよび71wは、例えば差動増幅回路を用いて、正負の入力端にそれぞれ入力された信号の電圧を比較する。そして、差動レシーバ装置70は、図36の真理値表の伝送路入力が入力端子70r、70sおよび70tに入力されると、出力端子Ou、OvおよびOwに、レシーバ出力のような出力が現れる。
さらに、この実施の第3の形態、第3の形態の変形例および第3の形態の他の変形例におけるシミュレーションでは、上述の実施の第1の形態または実施の第1の形態の変形例で説明したエンコーダを用いたが、これはこの例に限られない。すなわち、この実施の第3の形態、第3の形態の変形例および第3の形態の他の変形例によるデコーダは、背景技術で図49を用いて既に説明したようなエンコーダ装置や、この発明の実施の第2の形態および第2の形態の変形例で説明したような、他のエンコーダ装置の出力を用いて駆動してもよい。
5.発明の実施の第4の形態について
次に、この発明の実施の第4の形態について説明する。この実施の第4の形態は、3本の伝送路を用いて伝送された6種類の状態遷移を示す3値3差動論理信号を、4相シリアルディジタル信号にデコードするデコード装置に関する。
図37は、この実施の第4の形態に適用可能な一例のシステム構成を示す。エンコーダ602は、4相のシリアルディジタル信号N216〜N219を、クロック入力N200およびN201に基づき、信号N397〜N399による3ビット6状態間の遷移へと変換する。信号N397〜N399は、ドライバ603で電圧レベルの変換やシングルエンドから差動信号への変化などが施され、3本の伝送路に送出される。信号N397〜N399は、伝送路を介してレシーバ604に受信され、電圧レベルの変換や差動信号からシングルエンドへの変換処理などを施される。そして、3ビット6状態遷移信号として、データ出力N691〜N693から出力され、デコーダ22のデータ入力N801〜N803に入力される。この実施の第4の形態に関わる、図1のデコーダ9に対応するデコーダ22は、入力された3ビット6状態遷移信号に対し、データとクロックとを分離する処理を行う。こうして得られたクロック信号は、クロック出力N882およびN883から出力される。また、位相の異なる4相のデータがデータ出力N896〜N899にそれぞれ出力される。
なお、テストユニット605は、テスト用の信号を発生するためのもので、エンコーダ602を動作させるためのクロックを発生し、クロック出力N081およびN082からそれぞれ出力すると共に、擬似乱数に基づき発生させた、互いに位相が異なる4相のデータ信号を、データ出力N096〜N099から出力する。
5−1−1.シミュレーションモデルについて
図38は、この実施の第4の形態によるデコーダ22の動作の検証に用いたシミュレーションモデルの概要について示す。このシミュレーションモデルは、デコーダ22の入出力の関係を検証するのが目的であるので、送信側のドライバ603および受信側のレシーバ604を省略し、エンコーダ602とデコーダ22とを直結した状態でシミュレーションを行う。エンコーダ602の出力信号N397〜N399は、デコーダ22に入力すると共に、分岐させて、動作説明用の状態番号を生成する状態番号変換回路606の入力N801〜N803にそれぞれ入力する。状態番号変換回路602は、入力信号を状態番号に変換し、状態番号出力N801Sを得る。状態番号は、既に説明したように、整数値で"1"〜"6"までの値を取り、1回に"1"ずつ加減算される。また、状態番号は、巡回的な値であって、"6"に"1"が加算されれば"1"となり、"1"から"1"が減算されれば"6"になる。
図39Aは、状態番号変換回路606における一例の真理値表を示す。状態番号変換回路606は、入力された6状態を"1"から"6"までの状態番号に変換して出力する。この例では、3ビットが状態(0,0,1)で状態番号"1"、状態(0,1,1)で状態番号"2"、状態(0,1,0)で状態番号"3"、状態(1,1,0)で状態番号"4"、状態(1,0,0)で状態番号"5"、状態(1,0,1)で状態番号"6"とされる。状態番号"0"および状態番号"7"に相当する状態は、3ビットが全て同値になるため用いられない。
なお、図39Aには、デコーダ22の内部状態として現れる、後述する第1のデータホールド回路によるホールド出力N824、N822およびN826(図41参照)を状態番号N822Sに変換する際の真理値表が同時に示されている。また、図39Bは、第1のデータホールド回路に対応する第2のデータホールド回路によるホールド出力N821、N825およびN823をビット反転して状態番号N821Sに変換する論理の真理値表が示されている。
なお、状態番号変換回路607などの変換回路や状態番号は、シミュレーション結果の波形表示などにおいて説明のために用いるものであり、デコーダ22の実際の作用は、状態番号に変換する元の3ビットのデータ入力について行われる。
図40は、この発明の実施の第4の形態によるデコーダ22の一例の状態遷移を示す。デコーダ22は、入力された3ビットから、図39Aの真理値表に従い変換した状態番号N801Sで表される入力データの、現在の値と変化後の値とに基づいて、第1のクロック出力N882と第2のクロック出力N883とが交互に反転し、データ出力N896〜N899が順次更新される。
5−1−2.デコーダの構成について
図41は、この発明の実施の第4の形態によるデコーダ22の一例の回路を示す。このデコーダ22は、デコード入力N801、N802およびN803に2値3ビット6状態遷移の信号を入力し、クロック出力N882およびN883に、位相が90度異なるクロック信号を出力する。また、デコード出力N896〜N899に、それぞれ位相の異なる出力データを出力する。
デコード入力N801、N802およびN803は、ゲート回路A804〜A809からなる入力バッファ回路に供給され、入力信号とその反転信号がそれぞれ形成される。なお、この入力バッファ回路は、デコーダ22に対して3ビットのエンコード入力と、当該エンコードの反転信号が入力される場合には、省略することができる。
デコード入力N801の非反転および反転信号は、トランスペアラッチA811およびA814からなる第1の順序論理回路に供給される。トランスペアラッチA811およびA814は、2個を一組としてTフリップフロップを構成しており、各ラッチの出力をそれぞれ利用して、デコード入力N801の立ち上がりのタイミングで反転する出力と、デコード入力N801の立ち下がりのタイミングで反転する出力とを得る。
デコード入力N802の非反転および反転信号は、トランスペアラッチA815およびA812からなる第2の順序論理回路に供給される。トランスペアラッチA815およびA812は、2個を一組としてTフリップフロップを構成し、各ラッチの出力をそれぞれ利用して、デコード入力N802の立ち上がりのタイミングで反転する出力と、デコード入力N802の立ち下がりのタイミングで反転する出力とを得る。
同様に、デコード入力N803の非反転および反転信号は、トランスペアラッチA813およびA816からなる第3の順序論理回路に供給される。トランスペアラッチA813およびA816は、2個を一組としてTフリップフロップを構成し、各ラッチの出力をそれぞれ利用して、デコード入力N803の立ち上がりのタイミングで反転する出力と、デコード入力N803の立ち下がりのタイミングで反転する出力とを得る。
トランスペアレントラッチA814、A816およびA812の非反転出力は、EX−NORゲートA831およびEX−ORゲートA833からなる第1の組み合わせ論理回路に供給される。また、トランスペアレントラッチA811、A813およびA915の非反転出力は、EX−NORゲートA830およびEX−ORゲートA832からなる第2の組み合わせ論理回路に供給される。
すなわち、第1および第2の組み合わせ論理回路は、デコード入力N801〜N803の何れかの立ち上がりのタイミングで反転する3本の入力を持つEX−ORゲートおよびEX−NORゲートと、デコード入力N801〜N803の何れかの立ち下がりのタイミングで反転する3本の入力を持つEX−ORゲートおよびEX−NORゲートとにより構成される。第1の組み合わせ論理回路は、第1のクロックN883を生成する。第2の組み合わせ論理回路は、第1のクロックN883と位相が90度異なる第2のクロックN882を生成する。
第1のデータホールド回路は、NANDゲートA821、A823およびA825からなる。この第1のデータホールド回路および後述する第2のデータホールド回路は、実施の第1の形態で図6の真理値表を用いて説明した3安定順序回路と同等の回路である。第1のデータホールド回路には、デコード入力N801〜N803の非反転信号が入力され、デコード入力N801〜N803の状態番号が奇数から偶数に変化したときに、変化の直前の状態を反転した信号をホールドする。第1のデータホールド回路の出力と対応する状態番号を図39Bに示す。なお、図39Bでは、第1のデータホールド回路の出力がNANDゲートA821、A825およびA823の順に並べられている。
第2のデータホールド回路は、NANDゲートA822、A824およびA826からなる。第2のデータホールド回路には、デコード入力N801〜N803の反転信号が入力され、デコード入力N801〜N803の状態番号が偶数から奇数に変化したときに、変化の直前のデータをホールドする。第2のデータホールド回路の出力と対応する状態番号を図39Aに示す。なお、図39Aでは、第2のデータホールド回路の出力がNANDゲートA824、A822およびA826の順に並べられている。第1のデータホールド回路の出力と第2のホールド回路の出力とは、このように、状態番号に対して互いに反転関係にある。
第1のデータホールド回路の出力は、第1の中間ラッチ回路および第3の中間ラッチ回路、ならびに、第4の組み合わせ論理回路および第6の組み合わせ論理回路に供給される。第2のデータホールド回路の出力は、第2の中間ラッチ回路および第4の中間ラッチ回路、ならびに、第3の組み合わせ論理回路および第5の組み合わせ論理回路に供給される。
第1の中間ラッチ回路は、トランスペアレントラッチA841、A843およびA845から構成され、EX−NORゲートA830から出力されるクロックにより、第1のデータホールド回路の出力をサンプリングする。サンプリング出力は、第3の組み合わせ論理回路に供給される。
第3の組み合わせ論理回路は、ORゲートA842、A844およびA846、ならびに、NANDゲートA847により構成される。第3の組み合わせ論理回路は、第1の中間ラッチ回路がホールドした直前の状態と、第2のデータホールド回路が出力する現在の状態とを比較して、状態遷移を判定する。第3の組み合わせ論理回路の出力は、フリップフロップ回路A897に供給される。
第2の中間ラッチ回路は、トランスペアレントラッチA852、A854およびA856から構成され、EX−NORゲートA831から出力されるクロックにより、第2のデータホールド回路の出力をサンプリングする。サンプリング出力は、第4の組み合わせ論理回路に供給される。
第4の組み合わせ論理回路は、ORゲートA853、A855およびA857、ならびに、NANDゲートA857により構成される。第4の組み合わせ論理回路は、第2の中間ラッチ回路がホールドした直前の状態と、第1のデータホールド回路が出力する現在の状態とを比較して、状態遷移を判定する。第4の組み合わせ論理回路の出力は、フリップフロップ回路A898に供給される。
第3の中間ラッチ回路は、トランスペアレントラッチA861、A863およびA865から構成され、EX−ORゲートA832から出力されるクロックにより、第1のデータホールド回路の出力をサンプリングする。サンプリング出力は、第5の組み合わせ論理回路に供給される。
第5の組み合わせ論理回路は、ORゲートA862、A864およびA866、ならびに、NANDゲートA867により構成される。第5の組み合わせ論理回路は、第3の中間ラッチ回路がホールドした直前の状態と、第2のデータホールド回路が出力する現在の状態とを比較して、状態遷移を判定する。第5の組み合わせ論理回路の出力は、フリップフロップ回路A899に供給される。
第4の中間ラッチ回路は、トランスペアレントラッチA872、A874およびA876から構成され、EX−ORゲートA833から出力されるクロックにより、第2のデータホールド回路の出力をサンプリングする。サンプリング出力は、第6の組み合わせ論理回路に供給される。
第6の組み合わせ論理回路は、ORゲートA873、A875およびA877、ならびに、NANDゲートA877により構成される。第6の組み合わせ論理回路は、第4の中間ラッチ回路がホールドした直前の状態と、第1のデータホールド回路が出力する現在の状態とを比較して、状態遷移を判定する。第6の組み合わせ論理回路の出力は、フリップフロップ回路A896に供給される。
フリップフロップ回路A896は、第1の出力ラッチ回路を構成し、第6の組み合わせ論理回路が判定した状態遷移の判定結果に基づく論理値を、EX−ORゲートA832から出力されるクロックによりラッチして、デコード出力N896として出力する。
フリップフロップ回路A897は、第2の出力ラッチ回路を構成し、第3の組み合わせ論理回路が判定した状態遷移の判定結果に基づく論理値を、EX−ORゲートA833から出力されるクロックによりラッチして、デコード出力N897として出力する。
フリップフロップ回路A898は、第3の出力ラッチ回路を構成し、第4の組み合わせ論理回路が判定した状態遷移の判定結果に基づく論理値を、EX−NORゲートA830から出力されるクロックによりラッチして、デコード出力N898として出力する。
フリップフロップ回路A899は、第4の出力ラッチ回路を構成し、第5の組み合わせ論理回路が判定した状態遷移の判定結果に基づく論理値を、EX−NORゲートA831から出力されるクロックによりラッチして、デコード出力N899として出力する。
5−1−3.デコーダの動作について
この実施の第4の形態によるデコーダ22の一例の動作について、図42および図43のタイミングチャートを用いて説明する。図42および図43のタイミングチャートは、このデコーダ22の動作を、上述のシミュレーションソフトウェアを用いてシミュレートした一例の結果を示す。このタイミングチャートは、データ出力信号電圧N896〜N899、デコーダ22で再生されるクロック信号N882およびN883、ならびに、シミュレーションにおける参照用のエンコーダのデータ入力v(n200)、v(n201)、v(n216)およびv(n217)、ならびに、クロック電圧v(n200)と、時間との関係をプロットしている。そして、これらのプロットに対応して、デコーダ22の内部における状態番号N821S、N822S、N841S、N852S、N861SおよびN872Sと時間との関係をそれぞれプロットすると共に、デコーダ21の入力信号を表す状態番号N801Sと時間との関係をプロットしている。
なお、図42および図43は、タイミングチャートとしては同一の内容であって、説明用の符号などが異なっている。
先ず、図42のタイミングチャートを用いて、デコーダ22のクロック再生の作用と、データホールドの作用について説明する。クロック再生の作用に関しては、デコード入力N801〜N803の状態番号N801Sが奇数から偶数に変化する度に、クロック信号N882が反転する。また、デコード入力N801〜N803の状態番号N801Sが偶数から奇数に変化する度に、クロック信号N883が反転する。以上の結果から、位相が90度ずれた2種類のクロック信号が再生される。
データホールドの作用は、第1および第2のデータホールド回路によってなされ、第1のデータホールド回路は、内部状態N821Sとして入力信号の状態番号N801Sが偶数になったときにその状態をホールドし、再度偶数になるまでその状態を保つ。また、第2のデータホールド回路は、内部状態N822Sとして入力信号の状態番号N801Sが奇数になったときにその状態をホールドし、再度奇数になるまでその状態を保つ。変化によって現れた状態番号は、4つの内部状態N841S、N852S、N861SおよびN872Sのうちの一つにコピーされ、コピーされた状態番号は、クロックが少なくとも3回変化する間、同じ状態を保つ。
図42のタイミングチャートにおいて、状態遷移N801S−204では、入力の状態番号N801Sが"3"から"2"へ変化している。その結果、入力の状態番号N801Sは、偶数となり、クロック信号N882が反転して"1"レベルとなる。また、最も新しい偶数の状態番号が"2"となるので、内部状態N822Sとして保持される状態番号は、"2"である。内部状態N822Sの状態番号は、内部状態N872Sにコピーされ、内部状態N872Sは、クロックが3回変化する間、その状態を保つ。
次に、状態遷移N801S−208では、入力の状態番号N801Sが"2"から"1"へ変化している。その結果、入力の状態番号N801Sは、奇数となり、クロック信号N883が反転して"1"レベルとなる。また、最も新しい奇数の状態番号が"1"となるので、内部状態N821Sとして保持される状態番号は、"2"である。内部状態N821Sの状態番号は、内部状態N841Sにコピーされ、内部状態N841Sは、クロックが3回変化する間、その状態を保つ。
同様に、状態遷移N801S−212では、入力の状態番号N801Sが"1"から"6"へ変化している。その結果、入力の状態番号N801Sは、偶数となり、クロック信号N882が反転して"0"レベルとなる。また、最も新しい偶数の状態番号が"6"となるので、内部状態N822Sとして保持される状態番号は、"6"である。内部状態N822Sの状態番号は、内部状態N852Sにコピーされ、内部状態N852Sは、クロックが3回変化する間、その状態を保つ。
さらに、状態遷移N801S−216では、入力の状態番号N801Sが"6"から"5"へ変化している。その結果、入力の状態番号N801Sは、奇数となり、クロック信号N883が反転して"0"レベルとなる。また、最も新しい偶数の状態番号が"5"となるので、内部状態N821Sとして保持される状態番号は、"5"である。内部状態N821Sの状態番号は、内部状態N861Sにコピーされ、内部状態N861Sは、クロックが3回変化する間、その状態を保つ。
このようなクロック再生作用と、状態番号の保持作用は、入力信号の状態遷移毎に繰り返される。
図43を用いて、デコーダ22におけるデータ再生の作用について説明する。クロックN882およびN883の再生については、図42を用いて既に説明したので、このクロックN882およびN883と、第1および第2のホールド回路によりそれぞれ保持されている内部状態N821SおよびN822S、ならびに、第1〜第4の中間ラッチ回路でそれぞれ保持されている内部状態N841S、N852S、N861SおよびN872Sに基づいたデコード作用について説明する。
クロックN883の立ち上がりN883−208のタイミングで、2クロック前の内部状態N861Sと直前の内部状態N822Sとの比較結果がサンプリングされる。すなわち、クロックN883の立ち上がりN883−208のタイミングで、第4のラッチ回路A899により第5の組み合わせ論理回路の出力がラッチされる。内部状態N861Sの状態番号が"3"で、内部状態N822Sの状態番号が"2"であるので、状態番号が減少する遷移が判定され、データ出力N899に対して論理値"0"が出力される。
次に、クロックN882の立ち下がりエッジN882−212のタイミングで、2クロック前の内部状態N872Sと直前の内部状態N821Sとの比較結果がサンプリングされる。すなわち、クロックN882の立ち下がりエッジN882−212のタイミングで、第1のラッチ回路A896により第6の組み合わせ論理回路の出力がラッチされる。内部状態N872Sの状態番号が"2"で、内部状態N821Sの状態番号が"1"であるので、状態番号が減少する遷移が判定され、データ出力N896に対して論理値"0"が出力される。
同様に、クロックN883の立ち下がりエッジN883−216のタイミングで、2クロック前の内部状態N841Sと直前の内部状態N822Sとの比較結果がサンプリングされる。すなわち、クロックN883の立ち下がりエッジN883−216のタイミングで、第2のラッチ回路により第3の組み合わせ論理回路の出力がラッチされる。内部状態N841Sの状態番号が"1"で、内部状態N822Sの状態番号が"6"であるので、状態番号が減少する遷移が判定され、データ出力N897に対して論理値"0"が出力される。
さらに、クロックN882の立ち上がりN882−220のタイミングで、2クロック前の内部状態N852Sと直前の内部状態N821Sとの比較結果がサンプリングされる。すなわち、クロックN882の立ち上がりN882−220のタイミングで、第3のラッチ回路により第4の組み合わせ論理回路の出力がラッチされる。内部状態N852Sの状態番号が6で、内部状態N822Sの状態番号が5であるので、状態番号が減少する遷移が判定され、データ出力N898に対して論理値0が出力される。
同様の作用の繰り返しにより、4本のデータ出力N896、N897、N898およびN899に対して、デコード結果として得られる論理値が順次、出力される。
図44は、デコーダ22の動作のシミュレーション結果をより長い時間範囲で示す一例のタイミングチャートである。なお、図44では、状態番号の表示は省略されている。ラッチやフリップフロップが初期化されていない初期のサイクル(0ns〜25ns付近)を除き、エンコーダ602に対して入力されたデータ入力N216、N217、N218およびN219が、エンコーダ602およびデコーダ22を通した結果として、それぞれ遅延したデコーダ出力N896、N897、N898およびN899として現れていることが分かる。
5−2.発明の実施の第4の形態の変形例について
5−2−1.シミュレーションモデルについて
次に、この発明の実施の第4の形態の変形例について説明する。図45は、この実施の第4の形態の変形例によるデコーダ22’の動作の検証に用いたシミュレーションモデルの概要について示す。エンコーダ602および状態番号変換回路606、ならびに、状態番号変換回路606の真理値表などは、上述の実施の第4の形態と同一である。テストユニット605’は、エンコーダ602を動作させるクロック信号をクロック出力N081およびN082から出力すると共に、疑似乱数に基づき発生させた、互いに位相が異なる2相のデータ信号を、データ出力N092およびN093から出力する。データ出力N092から出力されたデータ信号は、エンコーダ602のエンコード入力N216およびN218にそれぞれ供給される。データ出力N093から出力されたデータ信号は、エンコーダ602のエンコード入力N217およびN219にそれぞれ入力される。
図46は、この発明の実施の第4の形態の変形例によるデコーダ22’の一例の状態遷移を示す。デコーダ22’は、入力された3ビットから、上述した図39Aの真理値表に従い変換した状態番号N801Sで表される入力データの、現在の値と変化後の値とに基づいて、第1のクロック出力N882と第2のクロック出力N883とが交互に反転する。また、組み合わせ論理回路による状態遷移の判定結果に基づき、状態N847、N857、N867およびN868が順次更新される。これらの判定結果は、次のクロックエッジにおいて、デコード出力N893またはN892を交互に更新する。
5−2−2.デコーダの構成について
図47は、この発明の実施の第4の形態の変形例によるデコーダ22’の一例の回路を示す。デコーダ22’は、デコード入力N801〜N803に2値3ビット6状態遷移の信号を入力し、クロック出力N882およびN883にクロックと反転クロックとを出力し、デコード出力N892およびN893に、それぞれ位相の異なる出力データを出力する。
このデコーダ22’は、図41に示したデコーダ22における第1〜第4の出力ラッチ回路(フリップフロップ回路A896、A897、A898およびA899)がデコーダ22とは異なる構成とされ、他の部分は、デコーダ22およびデコーダ22’で共通である。以下では、共通部分についての説明は、省略する。
トランスペアレントラッチA880は、第1の出力ラッチ回路を構成し、第6の組み合わせ論理回路が判定した状態遷移の判定結果に基づく論理値を、EX−ORゲートA832から出力されるクロックによりラッチする。第1の出力ラッチ回路の出力は、第1の出力選択回路に供給される。
トランスペアレントラッチA881は、第2の出力ラッチ回路を構成し、第3の組み合わせ論理回路が判定した状態遷移の判定結果に基づく論理値を、EX−ORゲートA833から出力されるクロックによりラッチする。第2のラッチ出力回路の出力は、第2の出力選択回路に供給される。
トランスペアレントラッチA882は、第3の出力ラッチ回路を構成し、第4の組み合わせ論理回路が判定した状態遷移の判定結果に基づく論理値を、EX−NORゲートA830から出力されるクロックによりラッチする。第3の出力ラッチ回路の出力は、第1の出力選択回路に供給される。
また、トランスペアレントラッチA883は、第4の出力ラッチ回路を構成し、第5の組み合わせ論理回路が判定した状態遷移の判定結果に基づく論理値を、EX−NORゲートA831から出力されるクロックによりラッチする。第4のラッチ出力回路の出力は、第2の出力選択回路に供給される。
なお、トランスペアレントラッチA880〜A883は、入力が"0"でデータをホールドするトランスペアレントラッチである。これはこの例に限らず、ネガティブエッジトリガDフリップフロップを用いても同等の効果を得ることができる。
第1の出力選択回路は、ANDゲートA884およびA886、ならびに、ORゲートA893から構成される1ビット2入力1出力マルチプレクサである。この第1の出力選択回路は、クロックN882によって、第1の出力ラッチ回路の出力と、第3の出力ラッチ回路の出力とを交互に切り替えて、デコード出力N893として出力する。
第2の出力選択回路は、ANDゲートA885およびA887、ならびに、ORゲートA892から構成される1ビット2入力1出力マルチプレクサである。この第2の出力選択回路は、クロックN883によって、第2の出力ラッチ回路の出力と、第4の出力ラッチ回路の出力とを交互に切り替えて、デコード出力N892として出力する。
5−2−3.デコーダの動作について
この実施の第4の形態の変形例によるデコーダ22’の一例の動作について、図48のタイミングチャートを用いて説明する。図48のタイミングチャートは、このデコーダ22’の動作を、上述のシミュレーションソフトウェアを用いてシミュレートした一例の結果を示す。このタイミングチャートは、データ出力信号電圧N892およびN893、デコーダ22’で再生されるクロック信号N883、ならびに、シミュレーションにおける参照用のエンコーダのデータ入力v(n212)およびv(n213)ならびに、クロック電圧v(n200)と、時間との関係をプロットしている。そして、これらのプロットに対応して、デコーダ22’の内部における状態番号N821S、N822S、N841S、N852S、N861SおよびN872Sと時間との関係をそれぞれプロットすると共に、デコーダ21の入力信号を表す状態番号N801Sと時間との関係をプロットしている。
この実施の第4の形態の変形例では、デコーダ22’において、クロック再生の作用、データホールドの作用、データホールド結果を中間ラッチ回路でクロックが3回変化する間、保持する作用といった各作用は、上述した実施の第4の形態によるデコーダ22と同一であるので、ここでは説明を省略する。以下では、デコーダ22と異なる点、すなわち、データ再生の作用、第1〜第4の出力ラッチ回路の作用、第1および第2の出力選択回路の作用について説明する。デコーダ22’は、第1および第2の出力選択回路の作用により、デコード出力となる論理値が2系統の出力に交互に出力される点が、上述のデコーダ22と異なる点である。
クロックN883の立ち上がりN883−208のタイミングで、内部状態N861Sと内部状態N822Sとの比較結果がサンプリングされる。すなわち、クロックN883の立ち上がりN883−208のタイミングで、第1の出力ラッチ回路により第6の組み合わせ論理回路の出力がラッチされる。内部状態N861Sの状態番号が"3"で、内部状態N822Sの状態番号が"2"であるので、状態番号が減少する遷移が判定され、データ出力N892に対して論理値"0"が出力される。
クロックN882の立ち下がりN882−212のタイミングで、内部状態N872Sと内部状態N821Sとの比較結果がサンプリングされる。すなわち、クロックN882の立ち下がりN882−212のタイミングで、第4の出力ラッチ回路により第5の組み合わせ論理回路の出力がラッチされる。内部状態N872Sの状態番号が"2"で、内部状態N821Sの状態番号が"1"であるので、状態番号が減少する遷移が判定され、データ出力N893に対して論理値"0"が出力される。
クロックN883の立ち下がりN883−216のタイミングで、内部状態N841Sと内部状態N822Sとの比較結果がサンプリングされる。すなわち、クロックN883の立ち下がりN883−216のタイミングで、第2の出力ラッチ回路により第3の組み合わせ論理回路の出力がラッチされる。内部状態N841Sの状態番号が"1"で、内部状態N822Sの状態番号が"6"であるので、状態番号が減少する遷移が判定され、データ出力N892に対して論理値"0"が出力される。
クロックN882の立ち上がりN882−220のタイミングで、内部状態N852Sと内部状態N821Sとの比較結果がサンプリングされる。すなわち、クロックN882の立ち上がりN882−220のタイミングで、第3の出力ラッチ回路により第4の組み合わせ論理回路の出力がラッチされる。内部状態N852Sの状態番号が"6"で、内部状態N821Sの状態番号が"5"であるので、状態番号が減少する遷移が判定され、データ出力N893に対して論理値"0"が出力される。
クロックN883の立ち上がりN883−224のタイミングで、内部状態N861Sと内部状態N822Sとの比較結果がサンプリングされる。すなわち、クロックN883の立ち上がりN883−224のタイミングで、第4の出力ラッチ回路により第5の組み合わせ論理回路の出力がラッチされる。内部状態N861Sの状態番号が"5"で、内部状態N822Sの状態番号が"6"であるので、状態番号が増加する遷移が判定され、データ出力N892に対して論理値"1"が出力される。
同様の状態遷移の判定作用の繰り返しにより、データ出力N892およびN893に対して、デコード結果として得られる論理値が交互に出力される。
なお、上述した実施の第4の形態および第4の形態の変形例において、第1および第2のデータホールド回路をNANDゲートを用いて構成したが、これらをNORゲートに置き換えることもできる。この場合には、入出力の論理を反転することで、同等の作用を得ることができる。
この発明の実施の第4の形態および第4の形態の変形例では、デコーダ22および22’を、一般的なディジタル回路のみを用いて構成している。そのため、クロックを再生するための微分回路などが不要となり、デコード可能な伝送速度の範囲が広い。
また、エンコードされたデータを、入力のサンプリングに先立ってデータホールド回路に入力する構成により、サンプリング対象信号の最小反転間隔が延長される。その結果、タイミングマージンが増大し、論理回路やラッチ回路等の動作速度が同じであれば、最大伝送帯域が向上される。一方、最大伝送帯域が同じであれば、より低速に動作する論理回路や論理回路を用いてデコーダを構成することが可能であり、消費電力やコストを低減できる。
さらに、入力データをホールドするデータホールド回路の出力をクロックでラッチする中間ラッチ回路を設けた構成により、内部的なタイミングマージンが増大する。その結果、状態遷移の判定に必要な組み合わせ論理回路の遅延の大小に関わらず、デコード動作を安定的に行うことができる。
さらにまた、3状態で安定を保つ3ビット3安定ラッチ回路を、入力データをホールドするデータホールド回路に用いているため、ノイズ等による不正な状態遷移が起こりにくい。
また、入力データをホールドするデータホールド回路の入出力、組み合わせ論理回路の入出力やラッチ回路の入出力を差動にした構成により、論理回路やラッチ回路の内部的な非対称性によるタイミングマージンの減少を最小限にすることができる。なお、ここでいう内部的な非対称性とは、例えば立ち上がり時間と立ち下がり時間の非対称性や、立ち上がり駆動能力と立ち下がり駆動能力の非対称性などを指す。
5−3.発明の実施の第4の形態の補足
なお、上述の実施の第4の形態および第4の形態の変形例では、第1および第2のデータホールド回路にNAND型データホールド回路を用いたが、これらをNOR型に置き換えても、入出力の論理を反転すれば、同等の作用を得られる。
また、第1および第2のデータホールド回路は、正論理のエンコード入力をNAND型データホールド回路に接続したものと、負論理のエンコード入力をNOR型データホールドに接続したものの組み合わせとして、データホールド出力を差動出力としても、同等の作用を得られる。
さらに、第3〜第6の組み合わせ論理回路を差動入力とし、差動動作とした第1および第2のデータホールド出力をそれぞれ接続しても作用は同じである。
状態遷移表上の表記で、第3〜第6の組み合わせ論理回路は、状態番号が増加する遷移を検出しても、減少する遷移を検出しても、増加する遷移と減少する遷移を両方検出して差動出力としても、何れの場合も、同等の作用を得られる。
また、第1〜第3の順序論理回路や、第1〜第4のラッチ回路として、正負両入力を備えるラッチやセンスアンプなどを用い、組み合わせ論理回路の差動出力を接続しても、同等の作用を得られる。
さらに、第1のラッチ回路および第2のラッチ回路でトランスペアレントラッチを用いたが、これに限らず、例えば第1および第2のラッチ回路として3状態ラッチ回路を用いても、同等の作用を得られる。
さらにまた、第3および第4のラッチ回路を省略し、デコード出力を別のモジュールに入力し、そのモジュールでクロックによってサンプリングしても、同等の作用を得られる。第3および第4のラッチ回路を、エッジトリガDフリップフロップなどに置き換えても、同等の作用を得られる。
さらに、この実施の第3の形態、第3の形態の変形例および第3の形態の他の変形例によるデコーダのデコーダ入力N801〜N803に、図35および図36を用いて既に説明したような差動レシーバ回路を接続した構成によって、3値3差動入力が可能となる。