TOP > 国内特許検索 > フリップフロップ回路 > 明細書

明細書 :フリップフロップ回路

発行国 日本国特許庁(JP)
公報種別 公開特許公報(A)
公開番号 特開2015-012362 (P2015-012362A)
公開日 平成27年1月19日(2015.1.19)
発明の名称または考案の名称 フリップフロップ回路
国際特許分類 H03K   3/037       (2006.01)
H03K   3/356       (2006.01)
FI H03K 3/037 C
H03K 3/356 D
請求項の数または発明の数 6
出願形態 OL
全頁数 20
出願番号 特願2013-134719 (P2013-134719)
出願日 平成25年6月27日(2013.6.27)
発明者または考案者 【氏名】米田 友洋
【氏名】今井 雅
出願人 【識別番号】504202472
【氏名又は名称】大学共同利用機関法人情報・システム研究機構
個別代理人の代理人 【識別番号】110000925、【氏名又は名称】特許業務法人信友国際特許事務所
審査請求 未請求
テーマコード 5J034
5J043
Fターム 5J034AB04
5J034CB02
5J043AA04
5J043HH02
5J043KK10
要約 【課題】様々な用途に対応した高度な処理を行うフリップフロップ回路を提供する。
【解決手段】1個のフリップフロップ回路に第1のデータと第2のデータが入力されるようにし、クロックについても第1のクロックと第2のクロックが入力されるようにする。そして、例えば第1のクロックがローレベルからハイレベルに変化したタイミングで第1のデータがサンプリングされると共に、第2のクロックがローレベルからハイレベルに変化したタイミングで第2のデータがサンプリングされるようにし、そのサンプリングされたデータを保持する。
【選択図】図1
特許請求の範囲 【請求項1】
第1のデータが供給される第1のデータ入力端と、
第2のデータが供給される第2のデータ入力端と、
前記第1のデータ入力端に得られる第1のデータのサンプリングタイミングを規定する第1のクロックが供給される第1のクロック入力端と、
前記第2のデータ入力端に得られる第2のデータのサンプリングタイミングを規定する第2のクロックが供給される第2のクロック入力端と、
前記第1のクロック入力端に得られる第1のクロックによるサンプリング動作の有効又は無効を規定する第1のクロックイネーブル信号が供給される第1のクロックイネーブル入力端と、
前記第2のクロック入力端に得られる第2のクロックによるサンプリング動作の有効又は無効を規定する第2のクロックイネーブル信号が供給される第2のクロックイネーブル入力端と、
前記第1のクロックイネーブル入力端に得られる第1のクロックイネーブル信号が有効な状態で、前記第1のクロックが所定状態に変化したとき、前記第1のデータ入力端に得られる第1のデータをサンプリングすると共に、前記第2のクロックイネーブル入力端に得られる第2のクロックイネーブル信号が有効な状態で、前記第2のクロックが所定状態に変化したとき、前記第2のデータ入力端に得られる第2のデータをサンプリングし、サンプリングしたデータを保持する記憶回路と、
前記記憶回路が保持したデータを出力する出力端とを備えた
フリップフロップ回路。
【請求項2】
前記記憶回路は、前記第1のクロックがローレベルからハイレベルに変化したタイミングで前記第1のデータをサンプリングすると共に、前記第2のクロックがローレベルからハイレベルに変化したタイミングで前記第2のデータをサンプリングする
請求項1に記載のフリップフロップ回路。
【請求項3】
前記記憶回路は、さらに、前記第1のクロックがハイレベルからローレベルに変化したタイミングで前記第1のデータをサンプリングすると共に、前記第2のクロックがハイレベルからローレベルに変化したタイミングで前記第2のデータをサンプリングする
請求項2に記載のフリップフロップ回路。
【請求項4】
前記記憶回路は、さらに、前記第2のクロックがハイレベルからローレベルに変化したタイミングで前記第2のデータをサンプリングする
請求項2に記載のフリップフロップ回路。
【請求項5】
前記第1のクロックイネーブル信号として、受信データのヘッダ期間を示す信号とし、前記第2のクロックイネーブル信号として、受信データのテイル期間を示す信号とし、
前記第1のクロック入力端と前記第2のクロック入力端に、共通のクロックを供給するようにして、前記記憶回路が受信データのヘッダ期間とテイル期間のサンプリングを行うようにした
請求項3に記載のフリップフロップ回路。
【請求項6】
前記第1のデータ入力端と前記第2のデータ入力端には、同じデータを供給するようにし、
前記第1のクロック入力端に得られる第1のクロックを所定期間遅延させた信号を第2のクロックとして前記第2のクロック入力端に供給するようにした
請求項3に記載のフリップフロップ回路。
発明の詳細な説明 【技術分野】
【0001】
本発明は、各種電子回路に使用されるフリップフロップ回路に関する。
【背景技術】
【0002】
入力したデータを保持するフリップフロップ回路は、各種電子回路に使用されている。例えば、非同期で作動する複数の回路の間でのデータ転送時に、通信路を確立するための信号を、フリップフロップ回路で検出して保持することが行われている。このような通信路を確立する処理は、ハンドシェイクなどと称される。ハンドシェイクには、4相ハンドシェイクプロトコルと2相ハンドシェイクプロトコルが知られている。
【0003】
図19は、4相ハンドシェイクプロトコルの例を示す図である。
図19(a)に示すように、通信相手側から送信されたリクエスト信号(req)が特定の回路に入力すると、図19(b)に示すように、この回路が、応答信号(ack)を通信相手に出力する。
ここで、4相ハンドシェイクプロトコルの場合、リクエスト信号は、ローレベルからハイレベルに立ち上がった後、応答信号のローレベルからハイレベルへの立ち上がりを確認して、ローレベルに戻る。また、応答信号についても、リクエスト信号がローレベルに戻ったことを確認して、ローレベルに戻る。このように4相ハンドシェイクプロトコルでは、[リクエスト信号の立ち上がり]→[応答信号の立ち上がり]→[リクエスト信号の立ち下がり]→[応答信号の立ち下がり]の4つの変化がある。
なお、リクエスト信号が変化してから応答信号が変化するまでの時間は、回路内での信号の処理状況などで変化し、一定とは限らない。図19の例では、1回目のリクエスト信号の立ち上がりがあったときには、比較的短時間で応答信号が立ち上がっている。これに対して、2回目のリクエスト信号の立ち上がり時には、破線の矢印で示すように、比較的長い時間が経過した後、応答信号が立ち上がっている。
【0004】
図20は、2相ハンドシェイクプロトコルの例を示す図である。
この2相ハンドシェイクプロトコルの場合にも、図20(a)に示すように、通信相手側から送信されたリクエスト信号(req)が特定の回路に入力すると、図20(b)に示すように、この回路が、応答信号(ack)を通信相手に出力する。
ここで、2相ハンドシェイクプロトコルの場合、リクエスト信号は、ローレベルからハイレベルへの変化、またはハイレベルからローレベルへの変化の、いずれかの変化でリクエストを行う。そして、応答信号についても、リクエスト信号の変化の後の1回の状態変化で応答を行う。
したがって、2相ハンドシェイクプロトコルでは、例えば[リクエスト信号立ち上がり]→[応答信号立ち上がり]の2つの変化や、[リクエスト信号立ち下がり]→[応答信号立ち下がり]の2つの変化のような、2つの変化だけである。
【0005】
従来、ハンドシェイクプロトコルとしては、4相ハンドシェイクプロトコルが一般的であり、2相ハンドシェイクプロトコルを適用した例は少なかった。
特許文献1には、複数の回路ブロックの間でハンドシェイク信号をやり取りする例についての記載がある。
【先行技術文献】
【0006】

【特許文献1】特開2008-181170号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
上述したように、従来、ハンドシェイクプロトコルは、4相ハンドシェイクプロトコルが一般的であった。しかしながら、図19と図20を比較すると判るように、2相ハンドシェイクプロトコルの方がプロトコルとしては簡単であり、データ転送効率の向上などに貢献する。しかしながら、2相ハンドシェイクプロトコルを行うためには、このような処理に適したフリップフロップ回路が必要である。すなわち、信号の立ち上がりと立ち下がりのいずれの状態変化があったときにも、その状態変化を検出して保持する必要があり、そのような用途に使用するフリップフロップ回路の開発が望まれていた。
【0008】
また、ハンドシェイクプロトコル回路に適用する場合とは別の、フリップフロップ回路を使用する場合の問題として、高速動作時に高速のクロックが必要になる問題がある。すなわち、フリップフロップ回路は、回路に入力した信号の変化を確実に検出するために、その信号変化に追随した周波数の高いクロックが必要であるという問題がある。クロック周波数が低いと、フリップフロップ回路に入力した信号の変化に追随できない。つまり、適正な入力検出とその保持ができなくなってしまう。
【0009】
本発明は、これらの問題を解決したフリップフロップ回路を提供することを目的とする。
【課題を解決するための手段】
【0010】
本発明のフリップフロップ回路は、入力端として、第1のデータが供給される第1のデータ入力端と、第2のデータが供給される第2のデータ入力端と、第1のデータ入力端に得られる第1のデータのサンプリングタイミングを規定する第1のクロックが供給される第1のクロック入力端と、第2のデータ入力端に得られる第2のデータのサンプリングタイミングを規定する第2のクロックが供給される第2のクロック入力端と、第1のクロック入力端に得られるクロックによるサンプリング動作の有効又は無効を規定する第1のクロックイネーブル信号が供給される第1のクロックイネーブル入力端と、第2のクロック入力端に得られるクロックによるサンプリング動作の有効又は無効を規定する第2のクロックイネーブル信号が供給される第2のクロックイネーブル入力端とを備える。
そして、サンプリングした信号を保持する記憶回路は、第1のクロックイネーブル入力端に得られる第1のクロックイネーブル信号が有効な状態で、第1のクロックが所定状態に変化したとき、第1のデータ入力端に得られる第1のデータをサンプリングすると共に、第2のクロックイネーブル入力端に得られる第2のクロックイネーブル信号が有効な状態で、第2のクロックが所定状態に変化したとき、第2のデータ入力端に得られる第2のデータをサンプリングする。
さらに、記憶回路が保持したデータを出力する出力端を備える。
【発明の効果】
【0011】
本発明によると、2つの入力データのサンプリングを、それぞれ別のクロック信号でサンプリングすることで出力データを得るフリップフロップ回路が得られ、2つのクロック信号や2つのクロックイネーブル信号の設定で、様々な用途に適した動作状態になる。
【図面の簡単な説明】
【0012】
【図1】本発明の第1の実施の形態の例のフリップフロップ回路の構成図である。
【図2】本発明の第1の実施の形態の例のフリップフロップ回路の真理値表を示す図である。
【図3】本発明の第1の実施の形態の例のフリップフロップ回路の動作例を示す波形図である。
【図4】本発明の第1の実施の形態の例のフリップフロップ回路の回路図である。
【図5】図4の回路の動作例を示す波形図である。
【図6】本発明の第1の実施の形態のフリップフロップ回路の適用例(例1)を示す構成図である。
【図7】図6の構成による動作例を示す波形図である。
【図8】本発明の第1の実施の形態のフリップフロップ回路の適用例(例2)を示す構成図である。
【図9】図8の構成による動作例を示す波形図である。
【図10】本発明の第2の実施の形態の例のフリップフロップ回路の構成図である。
【図11】本発明の第2の実施の形態の例のフリップフロップ回路の動作例を示す波形図である。
【図12】本発明の第2の実施の形態の例のフリップフロップ回路の回路図である。
【図13】本発明の第3の実施の形態の例のフリップフロップ回路の構成図である。
【図14】本発明の第3の実施の形態の例のフリップフロップ回路の動作例を示す波形図である。
【図15】本発明の第3の実施の形態の例のフリップフロップ回路の回路図である。
【図16】本発明の第4の実施の形態の例のフリップフロップ回路の構成図である。
【図17】本発明の第4の実施の形態の例のフリップフロップ回路の回路図(その1)である。
【図18】本発明の第4の実施の形態の例のフリップフロップ回路の回路図(その2)である。
【図19】4相ハンドシェイクプロトコルを説明する波形図である。
【図20】2相ハンドシェイクプロトコルを説明する波形図である。
【発明を実施するための形態】
【0013】
[1.第1の実施の形態の例(図1~図8)]
図1は、本発明の第1の実施の形態の例のフリップフロップ回路100を示す図である。
フリップフロップ回路100は、第1のデータ入力端101と第2のデータ入力端102を備える。第1のクロックイネーブル入力端103に得られる第1のクロックイネーブル信号CE1で有効が示されたとき、第1のデータ入力端101に得られる第1のデータD1が、第1のクロック入力端105に得られる第1のクロックCK1によりサンプリングされる。

【0014】
また、第2のクロックイネーブル入力端104に得られる第2のクロックイネーブル信号CE2で有効が示されたとき、第2のデータ入力端102に得られる第2のデータD2が、第2のクロック入力端106に得られる第2のクロックCK2によりサンプリングされる。

【0015】
それぞれのクロックでサンプリングされてホールドされた信号である信号Qが、Q出力端107から出力される。また、信号Qを反転した信号(信号Qn)が、反転Q出力端108から出力される。また、リセット入力端109に得られるリセット信号RSTで、サンプリング動作がリセットされる。

【0016】
第1のクロックCK1で第1のデータD1をサンプリングするタイミングとしては、第1のクロックCK1がローレベルからハイレベルに変化したタイミングで、第1のデータD1がサンプリングされる。さらに、第1のクロックCK1がハイレベルからローレベルに変化したタイミングでも、第1のデータD1がサンプリングされる。
なお、図1において、第1のクロックCK1の入力端105の箇所に、三角の印△を横に2つ並べて示すのは、ローレベルからハイレベルへの変化時とハイレベルからローレベルへの変化時の両方でサンプリングされることを示す。他の図についても同様である。また、三角の印△を横に1つだけ示したときには、クロックの何れか一方の変化時(例えばローレベルからハイレベルへの変化時)だけサンプリングされることを示す。

【0017】
図2は、フリップフロップ回路100の真理値表である。この真理値表は、第1のデータD1、第1のクロックイネーブル信号CE1、第1のクロックCK1、第2のデータD2、第2のクロックイネーブル信号CE2、第2のクロックCK2、リセット信号RSTが各状態のときのQ出力を示す。この真理値表において、“1”はハイレベルの状態を示し、“0”はローレベルの状態を示す。また、「↑」はローレベルからハイレベルに変化したときを示し、「↓」ハイレベルからローレベルに変化したときを示す。また、「1/0」は、信号が1(ハイレベル)と0(ローレベル)のいずれでもよい場合を示す。さらに、「*」は1/0に加え、信号がどのように変化してもよい場合を示す。ここでは、説明の便宜上、真理値表の左端に示すように、各状態を状態1~状態10と称する。

【0018】
図2の各状態について説明すると、状態1は、第1のデータD1が値“a”であり、第1のクロックイネーブル信号CE1がハイレベルのときである。この状態で、第1のクロックCK1がローレベルからハイレベルに変化したとき、第1のデータD1の値“a”がサンプリングされる。そして、Q出力として、サンプリングされた値“a”が出力される。
図2の状態2は、第1のクロックイネーブル信号CE1がハイレベルで、第1のクロックCK1がハイレベルからローレベルに変化したときである。このときにも、第1のデータD1の値“a”がサンプリングされ、Q出力として値“a”が出力される。

【0019】
図2の状態3は、第1のクロックイネーブル信号CE1がハイレベルで、第1のクロックCK1がハイレベルまたはローレベルで変化がないときである。このときには、直前のQ出力が維持される。図2で、Q-1と示したのは、直前のQ出力が維持される状態を示す。
図2の状態4は、第1のクロックイネーブル信号CE1がローレベルになり、第2のクロックCK2の状態がハイレベルまたはローレベルで変化がないときである。このときにも、直前のQ出力が維持される。
図2の状態5は、第2のデータD2が値“b”であり、第2のクロックイネーブル信号CE2がハイレベルで、第2のクロックCK2がローレベルからハイレベルに変化したときである。このとき、第2のデータD2の値“b”がサンプリングされ、Q出力として、サンプリングされた値“b”が出力される。
図2の状態6は、第2のクロックイネーブル信号CE2がハイレベルで、第2のクロックCK2がハイレベルからローレベルに変化したときである。このときにも、第2のデータD2の値“b”がサンプリングされて、そのサンプリングされた値がQ出力となる。

【0020】
図2の状態7は、第2のクロックイネーブル信号CE2がハイレベルで、第2のクロックCK2がハイレベルまたはローレベルで変化がないときである。このときには、直前のQ出力が維持される。
図2の状態8は、第2のクロックイネーブル信号CE2がローレベルになり、第1のクロックCK1の状態がハイレベルまたはローレベルで変化がないときである。このときにも、直前のQ出力が維持される。

【0021】
図2の状態9は、リセット信号RSTが、ハイレベルのときである。このときには、Q出力が0にリセットされる。
図2の状態10は、クロックイネーブル信号CE1,CE2がいずれもハイレベルで、第1のクロックCK1と、第2のクロックCK2が同時に変化したときである。フリップフロップ回路100は、この状態10の変化を禁止している。

【0022】
図3は、フリップフロップ回路100に信号が入力したときの一例を示す波形図である。図3の例は、クロックイネーブル信号CE1,CE2はいずれもハイレベルであり、リセット信号RSTはローレベルの状態である。
図3(a)に示す第1のデータD1が、図3(b)に示す第1のクロックCK1の変化タイミングでサンプリングされる。このサンプリングされた信号が、出力Q(図3(e))及び反転出力Qn(図3(f))に反映される。
また、図3(c)に示す第2のデータD2が、図3(d)に示す第2のクロックCK2の変化タイミングでサンプリングされる。このサンプリングされた信号が、出力Q(図3(e))及び反転出力Qn(図3(f))に反映される。
図3の例では、前半に第1のクロックCK1が変化し、後半に第2のクロックCK2が変化しているため、出力Q及び反転出力Qとして、前半で第1のデータD1に対応した変化が表れ、後半で第2のデータD2に対応した変化が表れるようになる。

【0023】
図4は、フリップフロップ回路100の回路図の例である。
第1のデータD1が得られる入力端101は、トランジスタM101のソース・ドレイン間とトランジスタM102のソース・ドレイン間の並列回路を介して、インバータ回路111の入力に接続される。また、第1のデータD1が得られる入力端101は、トランジスタM103のソース・ドレイン間とトランジスタM104のソース・ドレイン間の並列回路を介して、インバータ回路111の入力に接続される。さらに、第1のデータD1が得られる入力端101は、トランジスタM112のゲートとトランジスタM116のゲートに接続される。
なお、図中で、ゲート部分に丸印を付けたトランジスタはP型トランジスタであり、ゲート部分に丸印がないトランジスタはN型トランジスタである。他の実施の形態の例の回路図についても、P型トランジスタとN型トランジスタを同様に区別して示す。

【0024】
第2のデータD2が得られる入力端102は、トランジスタM105のソース・ドレイン間とトランジスタM106のソース・ドレイン間の並列回路を介して、インバータ回路111の入力に接続される。また、第2のデータD2が得られる入力端102は、トランジスタM107のソース・ドレイン間とトランジスタM108のソース・ドレイン間の並列回路を介して、インバータ回路111の入力に接続される。さらに、第2のデータD2が得られる入力端102は、トランジスタM115のゲートとトランジスタM119のゲートに接続される。

【0025】
インバータ回路111の出力は、NORゲート回路112を介してインバータ回路111の入力に戻す構成としてある。NORゲート回路112には、インバータ回路111の出力の他に、リセット信号RSTの入力端109に得られる信号が供給される。
このインバータ回路111とNORゲート回路112とによるループ回路で、サンプリングされた信号を保持する記憶回路が構成される。この記憶回路は、リセット信号RSTがローレベルであるとき、インバータ回路111とNORゲート回路112とで反転を繰り返すことで、信号が保持される。そして、リセット信号RSTがハイレベルのときには、NORゲート回路112の出力が強制的にローレベルにリセットされる。

【0026】
そして、インバータ回路111の出力が、インバータ回路151を介してQ出力端107に供給される。さらに、インバータ回路151の出力が、別のインバータ回路152を介して反転Q出力端108に供給される。

【0027】
第1のクロックCK1の入力端105には、インバータ回路121,122,123と遅延回路124とインバータ回路125,126とを順に接続した直列回路が接続される。そして、インバータ回路122の出力CK1iPとインバータ回路126の出力CK1oPとが、NANDゲート回路127に供給される。第1のクロックイネーブル入力端103に得られる第1のクロックイネーブル信号CE1についても、NANDゲート回路127に供給される。
そして、NANDゲート回路127の出力W1PBが、トランジスタM103及びトランジスタM111のゲートに供給される。また、NANDゲート回路127の出力W1PBをインバータ回路128で反転した信号W1Pが、トランジスタM104及びトランジスタM117のゲートに供給される。

【0028】
さらに、インバータ回路121の出力CK1iNとインバータ回路125の出力CK1oNとが、NANDゲート回路129に供給される。第1のクロックイネーブル入力端103に得られる第1のクロックイネーブル信号CE1についても、NANDゲート回路129に供給される。
そして、NANDゲート回路129の出力W1NBが、トランジスタM101及びトランジスタM110のゲートに供給される。また、NANDゲート回路129の出力をインバータ回路130で反転した信号W1Nが、トランジスタM102及びトランジスタM118のゲートに供給される。

【0029】
第2のクロックCK2の入力端106には、インバータ回路131,132,133と遅延回路134とインバータ回路135,136とを順に接続した直列回路が接続される。そして、インバータ回路132の出力CK2iPとインバータ回路136の出力CK2oPとが、NANDゲート回路137に供給される。第2のクロックイネーブル入力端104に得られる第2のクロックイネーブル信号CE2についても、NANDゲート回路137に供給される。
そして、NANDゲート回路137の出力W2PBが、トランジスタM107及びトランジスタM114のゲートに供給される。また、NANDゲート回路137の出力をインバータ回路138で反転した信号W2Pが、トランジスタM108及びトランジスタM120のゲートに供給される。

【0030】
さらに、インバータ回路131の出力CK2iNとインバータ回路135の出力CK2oNとが、NANDゲート回路139に供給される。第2のクロックイネーブル入力端104に得られる第2のクロックイネーブル信号CE2についても、NANDゲート回路139に供給される。
そして、NANDゲート回路139の出力W2NBが、トランジスタM105及びトランジスタM113のゲートに供給される。また、NANDゲート回路139の出力をインバータ回路140で反転した信号W2Nが、トランジスタM106及びトランジスタM121のゲートに供給される。

【0031】
電源電位と接地電位部との間には、トランジスタM110,M112,M116,M117のソース・ドレイン間が順に接続される。トランジスタM110には、並列にトランジスタM111が接続される。トランジスタM117には、並列にトランジスタM118が接続される。トランジスタM112とトランジスタM116の接続点は、インバータ回路111の出力部に接続される。

【0032】
また、電源電位と接地電位部との間には、トランジスタM113,M115,M119,M120のソース・ドレイン間が順に接続される。トランジスタM113には、並列にトランジスタM114が接続される。トランジスタM120には、並列にトランジスタM121が接続される。トランジスタM115とトランジスタM119の接続点は、インバータ回路111の出力部に接続される。

【0033】
この図4に示す回路構成とすることで、図3に示す動作を行うフリップフロップ回路100が得られる。この場合、図4の回路では、サンプリングされた信号を保持する記憶回路として、インバータ回路111とNORゲート回路112とをループ状に接続した回路としたことで、消費電力の小さな記憶回路が得られる。NORゲート回路112はインバータ回路として使用されるものであり、2つのインバータ回路によるラッチで信号を保持する構成である。ここで、図4に示す回路としたことで、そのラッチを構成する2つのインバータ回路の入力側と出力側で同時に書き込み動作が行われるため、2つのインバータ回路で効率よくデータを書き換えることができる。具体的には、信号を書き換える際には、記憶回路を構成するインバータ回路111とNORゲート回路112の内で、インバータ回路111の入力については、トランジスタM101~M108による回路で書き換えが実行される。また、NORゲート回路112の入力については、トランジスタM110~M121による回路で、逆の値に書き換えが実行される。したがって、書き換え時にインバータ回路111とNORゲート回路112とで衝突が起こることがなく、書き換え時に一時的に記憶回路のループを切り離すなどの処理が必要ない。これにより低消費電力で良好に動作する効果を有する。
なお、ループ状の記憶回路は、インバータ回路111とNORゲート回路112で構成したが、リセット信号RSTが供給されない場合には、2つのインバータ回路でループ状の記憶回路が構成される。

【0034】
図5は、図4の回路の各部の波形の例を示す図である。
図5(a)に示すように、第1のクロック入力端105に第1のクロックCK1が入力したとき、インバータ回路121の出力信号CK1iNは、図5(b)に示すように、信号の変化タイミングが立ち上がった状態で反転した信号になる。
さらに、インバータ回路122の出力信号CK1iPは、図5(c)に示すように、信号CK1iNが遅れて反転した信号になる。

【0035】
さらに、図5(d)に示すように、インバータ回路123と遅延回路124とインバータ回路125を通過した信号CK1oNが得られ、さらに、図5(e)に示すように、その信号CK1oNをインバータ回路126で反転させることで、信号CK1oPが得られる。
そして、信号CK1iP(図5(c))の立ち上がりと、信号CK1oP(図5(e))の立ち下がりで規定される信号W1PB(図5(g))が、NANDゲート回路127の出力に得られる。さらに、この信号W1PBをインバータ回路128で反転させた信号W1P(図5(f))が得られる。

【0036】
また、信号CK1iN(図5(b))の立ち上がりと、信号CK1oN(図5(d))の立ち下がりで規定される信号W1NB(図5(i))が、NANDゲート回路129の出力に得られる。さらに、この信号W1NBをインバータ回路130で反転させた信号W1N(図5(h))が得られる。
そして、第1のデータ入力端101に得られる第1のデータD1が、これらの信号によってサンプリングされ、サンプリングされた値がホールドされる。

【0037】
第2のクロックCK2が入力した場合にも同様の信号が生成される。各信号の生成状態は図5に示した第1のクロックCK1の場合と同様であり、ここでは省略する。そして、第2のデータ入力端102に得られる第2のデータD2が、これらの第2のクロックCK2に基づいて生成された信号によってサンプリング動作とホールド動作とが行われる。

【0038】
次に、フリップフロップ回路100の使用例を説明する。
図6及び図7は、他の回路から送信されるデータを受信する受信回路に適用した例である。この例では、伝送データとして、図7(a)に示すように、最初にヘッダ区間[header]が伝送され、続いてデータ本体の区間[data]が伝送され、最後にテイル区間[tail]が伝送される。
このとき、送信の要求を行うリクエスト信号oreq(図7(b))と、その信号に対する応答信号iack(図7(c))は、2相ハンドシェイクプロトコルで送受信が行われるとする。2相ハンドシェイクプロトコルは、[リクエスト信号変化]→[応答信号変化]でハンドシェイクが行われるものである。

【0039】
図6のフリップフロップ回路100は、この2相ハンドシェイクプロトコルで応答を行う場合の受信回路に適用したものである。この例では、2つのクロック入力端105,106に、応答信号iack(図7(c))を供給する。
すなわち、図6に示すように、フリップフロップ回路100の2つのクロック入力端105,106に、共通の応答信号iackが供給される。そして、第1のクロックイネーブル入力端103に、図7(d)に示すヘッダ区間を示す信号が供給される。また、第2のクロックイネーブル入力端104に、図7(e)に示すテイル区間を示す信号が供給される。

【0040】
このような信号がフリップフロップ回路100に供給されることで、反転Q出力端108に得られる信号は、図7(f)に示すように、ヘッダ区間で応答信号iackが変化したタイミングで立ち下がり、テイル区間で応答信号iackが変化したタイミングで立ち上がるゲート信号となる。このゲート信号で、受信したデータを取り出す処理などが実行される。このように、本例のフリップフロップ回路100を使用することで、2相ハンドシェイクプロトコルで通信を行う回路を、簡単な構成で実現することができる。

【0041】
次に、フリップフロップ回路100の別の使用例を、図8及び図9を参照して説明する。この例は、クロック信号を分配して高速動作を行う場合の例である。
この例では、図8に示すように、第1のデータ入力端101に供給する第1のデータD1と第2のデータ入力端102に供給する第2のデータD2とを、同じデータとする。そして、第1のクロック入力端105と第2のクロック入力端106に供給するクロックを、同じクロック周波数の信号とする。但し、第1のクロックCK1と第2のクロックCK2は、位相が90°異なる信号とする。

【0042】
ここで、例えば図9(a)に示すように、第1のデータ入力端101と第2のデータ入力端102に共通のデータDが供給されるとする。
このとき、データDのサンプリングが、図9(b)に示す第1のクロックCK1の変化タイミングと、図9(c)に示す第2のクロックCK2の変化タイミングとで実行され、図9(d)に示すようにQ出力が得られる。
この図9(d)に示す出力は、2つのクロックCK1,CK2でサンプリングされた信号であるので、それぞれのクロックの2倍の周波数でサンプリングされたことになる。したがって、低周波数のクロックを分配して2つのクロックCK1,CK2を生成させることで、本来のクロック周波数を超える高い周波数で入力データをサンプリングすることができ、低周波数クロックによる高速動作が行える。このようなクロック周波数の低周波数化により、回路設計が容易になる効果がある。

【0043】
[2.第2の実施の形態の例(図10~図12)]
図10は、本発明の第2の実施の形態の例のフリップフロップ回路200を示す図である。
フリップフロップ回路200は、第1のデータ入力端201と第2のデータ入力端202を備える。第1のクロックイネーブル入力端203に得られる第1のクロックイネーブル信号CE1で有効が示されたとき、第1のデータ入力端201に得られる第1のデータD1が、第1のクロック入力端205に得られる第1のクロックCK1によりサンプリングされる。ここで、第1のクロックCK1によるサンプリングは、第1のクロックCK1がローレベルからハイレベルに立ち上がったタイミングで行われる。第1のクロックCK1がハイレベルからローレベルに変化したタイミングでは、データのサンプリングが行われない。

【0044】
また、第2のクロックイネーブル入力端204に得られる第2のクロックイネーブル信号CE2で有効が示されたとき、第2のデータ入力端202に得られる第2のデータD2が、第2のクロック入力端206に得られる第2のクロックCK2によりサンプリングされる。ここで、第2のクロックCK2によるサンプリングは、第2のクロックCK2がローレベルからハイレベルに立ち上がったタイミングと、第2のクロックCK2がハイレベルからローレベルに変化したタイミングの双方で実行される。

【0045】
そして、それぞれのクロックでサンプリングされてホールドされた信号である信号Qが、Q出力端207から出力される。また、信号Qを反転した信号(信号Qn)が、反転Q出力端208から出力される。また、リセット入力端209に得られるリセット信号RSTで、サンプリング動作がリセットされる。

【0046】
図11は、図10に示すフリップフロップ回路200の動作例を示す波形図である。
図11(a)は第1のデータD1を示し、図11(c)は第2のデータD2を示す。第1のデータD1は、図11(b)に示す第1のクロックCK1がローレベルからハイレベルに立ち上がるタイミングでサンプリングされる。第2のデータD2は、図11(d)に示す第2のクロックCK2がローレベルからハイレベルに立ち上がるタイミングと、ハイレベルからローレベルに変化するタイミングでサンプリングされる。
図11(e)に示すQ出力及び図11(f)に示す反転Q出力は、2つのクロックCK1,CK2でサンプリングされた結果がホールドされた信号である。

【0047】
このように、図10に示すフリップフロップ回路200によると、2つのクロックの内の第1のクロックCK1は信号の立ち上がりだけでサンプリングが行われ、第2のクロックCK2は信号の立ち上がりと立ち下がりの双方でサンプリングが行われるようになる。したがって、第1のクロックCK1でサンプリングされる第1のデータD1と、第2のクロックCK2でサンプリングされる第2のデータD2とで異なるサンプリング状態を設定でき、それぞれのデータに適したサンプリングを行うフリップフロップ回路が得られる。

【0048】
図12は、フリップフロップ回路200の回路図の例である。
第1のデータD1が得られる入力端201が、トランジスタM201のソース・ドレイン間とトランジスタM202のソース・ドレイン間の並列回路を介して、インバータ回路211の入力に接続される。また、第1のデータD1が得られる入力端201が、トランジスタM208のゲートとトランジスタM212のゲートとに接続される。

【0049】
第2のデータD2が得られる入力端202が、トランジスタM203のソース・ドレイン間とトランジスタM204のソース・ドレイン間の並列回路を介して、インバータ回路211の入力に接続される。また、第2のデータD2が得られる入力端202が、トランジスタM211のゲートとトランジスタM214のゲートとに接続される。

【0050】
インバータ回路211の出力は、NORゲート回路212を介してインバータ回路211の入力に戻す構成としてある。NORゲート回路212には、インバータ回路211の出力の他に、リセット信号RSTの入力端209に得られる信号が供給される。
このインバータ回路211とNORゲート回路212とによるループ回路で、サンプリングされた信号を保持する記憶回路が構成される。この記憶回路は、リセット信号RSTがローレベルであるとき、インバータ回路211とNORゲート回路112とで反転を繰り返すことで、信号が保持される。そして、リセット信号RSTがハイレベルのときには、NORゲート回路212の出力が強制的にローレベルにリセットされる。

【0051】
そして、インバータ回路211の出力が、インバータ回路251を介してQ出力端207に供給される。さらに、インバータ回路251の出力が、別のインバータ回路252を介して反転Q出力端208に供給される。

【0052】
第1のクロックCK1の入力端205には、インバータ回路221,222,223と遅延回路224とインバータ回路225,226とを順に接続した直列回路が接続される。そして、インバータ回路222の出力とインバータ回路226の出力とが、NANDゲート回路227に供給される。第1のクロックイネーブル入力端203に得られる第1のクロックイネーブル信号CE1についても、NANDゲート回路227に供給される。
そして、NANDゲート回路227の出力が、トランジスタM201及びトランジスタM207のゲートに供給される。また、NANDゲート回路227の出力が、インバータ回路228を介してトランジスタM202及びトランジスタM213のゲートに供給される。

【0053】
第2のクロックCK2の入力端206には、インバータ回路231,232,233と遅延回路234とインバータ回路235,236とを順に接続した直列回路が接続される。そして、インバータ回路232の出力とインバータ回路236の出力とが、NANDゲート回路237に供給される。第2のクロックイネーブル入力端204に得られる第2のクロックイネーブル信号CE2についても、NANDゲート回路237に供給される。
そして、NANDゲート回路237の出力が、トランジスタM205及びトランジスタM210のゲートに供給される。また、NANDゲート回路237の出力が、インバータ回路238を介してトランジスタM206及びトランジスタM215のゲートに供給される。

【0054】
さらに、インバータ回路231の出力とインバータ回路235の出力とが、NANDゲート回路239に供給される。第2のクロックイネーブル入力端204に得られる第2のクロックイネーブル信号CE2についても、NANDゲート回路239に供給される。
そして、NANDゲート回路239の出力が、トランジスタM203及びトランジスタM209のゲートに供給される。また、NANDゲート回路239の出力が、インバータ回路240を介してトランジスタM204及びトランジスタM216のゲートに供給される。

【0055】
また、電源電位と接地電位部との間には、トランジスタM207,M208,M212,M213のソース・ドレイン間が順に接続される。トランジスタM208とトランジスタM212の接続点は、インバータ回路211の出力部に接続される。

【0056】
さらに、電源電位と接地電位部との間には、トランジスタM209,M211,M214,M215のソース・ドレイン間が順に接続される。トランジスタM209には、並列にトランジスタM210が接続される。トランジスタM215には、並列にトランジスタM216が接続される。トランジスタM211とトランジスタM214の接続点は、インバータ回路211の出力部に接続される。

【0057】
この図12に示す回路構成とすることで、図11に示す動作を行うフリップフロップ回路200が得られる。この図12に示す回路の場合にも、第1の実施の形態で説明した図4の回路と同様に、記憶回路を構成するループ回路(インバータ回路211,NORゲート回路212)の入力側と出力側で同時に書き込み動作が行われるため、低消費電力で効率よくデータを書き換えることができる。

【0058】
[3.第3の実施の形態の例(図13~図15)]
図13は、本発明の第3の実施の形態の例のフリップフロップ回路300を示す図である。
フリップフロップ回路300は、第1のデータ入力端301と第2のデータ入力端302を備える。第1のクロックイネーブル入力端303に得られる第1のクロックイネーブル信号CE1で有効が示されたとき、第1のデータ入力端301に得られる第1のデータD1が、第1のクロック入力端305に得られる第1のクロックCK1によりサンプリングされる。ここで、第1のクロックCK1によるサンプリングは、第1のクロックCK1がローレベルからハイレベルに立ち上がったタイミングで行われる。第1のクロックCK1がハイレベルからローレベルに変化したタイミングでは、データのサンプリングが行われない。

【0059】
また、第2のクロックイネーブル入力端304に得られる第2のクロックイネーブル信号CE2で有効が示されたとき、第2のデータ入力端302に得られる第2のデータD2が、第2のクロック入力端306に得られる第2のクロックCK2によりサンプリングされる。第2のクロックCK2によるサンプリングについても、第2のクロックCK2がローレベルからハイレベルに立ち上がったタイミングで行われる。第2のクロックCK2がハイレベルからローレベルに変化したタイミングでは、データのサンプリングが行われない。

【0060】
そして、それぞれのクロックでサンプリングされてホールドされた信号である信号Qが、Q出力端307から出力される。また、信号Qを反転した信号(信号Qn)が、反転Q出力端308から出力される。また、リセット入力端309に得られるリセット信号RSTで、サンプリング動作がリセットされる。

【0061】
図14は、図13に示すフリップフロップ回路300の動作例を示す波形図である。
図14(a)は第1のデータD1を示し、図14(c)は第2のデータD2を示す。第1のデータD1は、図14(b)に示す第1のクロックCK1がローレベルからハイレベルに立ち上がるタイミングでサンプリングされる。第2のデータD2は、図14(d)に示す第2のクロックCK2がローレベルからハイレベルに立ち上がるタイミングでサンプリングされる。
図14(e)に示すQ出力及び図14(f)に示す反転Q出力は、2つのクロックCK1,CK2でサンプリングされた結果がホールドされた信号である。

【0062】
このように、図13に示すフリップフロップ回路300によると、2つのクロックのそれぞれの立ち上がりだけでサンプリングが行われるようになり、2つのデータD1,D2を適切にサンプリングしたフリップフロップ回路が得られる。

【0063】
図15は、フリップフロップ回路300の回路図の例である。
第1のデータD1が得られる入力端301が、トランジスタM301のソース・ドレイン間とトランジスタM302のソース・ドレイン間の並列回路を介して、インバータ回路311の入力に接続される。また、第1のデータD1が得られる入力端301が、トランジスタM310のゲートとトランジスタM311のゲートとに接続される。

【0064】
第2のデータD2が得られる入力端302が、トランジスタM303のソース・ドレイン間とトランジスタM304のソース・ドレイン間の並列回路を介して、インバータ回路311の入力に接続される。また、第2のデータD2が得られる入力端302が、トランジスタM306のゲートとトランジスタM307のゲートとに接続される。

【0065】
インバータ回路311の出力は、NORゲート回路312を介してインバータ回路311の入力に戻す構成としてある。NORゲート回路312には、インバータ回路311の出力の他に、リセット信号RSTの入力端309に得られる信号が供給される。
このインバータ回路311とNORゲート回路312とによるループ回路で、サンプリングされた信号を保持する記憶回路が構成される。この記憶回路は、リセット信号RSTがローレベルであるとき、インバータ回路311とNORゲート回路312とで反転を繰り返すことで、信号が保持される。そして、リセット信号RSTがハイレベルのときには、NORゲート回路312の出力が強制的にローレベルにリセットされる。

【0066】
そして、インバータ回路311の出力が、インバータ回路341を介してQ出力端307に供給される。さらに、インバータ回路341の出力が、別のインバータ回路342を介して反転Q出力端308に供給される。

【0067】
第1のクロックCK1の入力端305には、インバータ回路321,322,323と遅延回路324とインバータ回路325,326とを順に接続した直列回路が接続される。そして、インバータ回路322の出力とインバータ回路326の出力とが、NANDゲート回路327に供給される。第1のクロックイネーブル入力端303に得られる第1のクロックイネーブル信号CE1についても、NANDゲート回路327に供給される。
そして、NANDゲート回路327の出力が、トランジスタM301及びトランジスタM309のゲートに供給される。また、NANDゲート回路327の出力が、インバータ回路328を介してトランジスタM302及びトランジスタM312のゲートに供給される。

【0068】
第2のクロックCK2の入力端306が、インバータ回路331,332,333と遅延回路334とインバータ回路335,336とを順に接続した直列回路が接続される。そして、インバータ回路332の出力とインバータ回路336の出力とが、NANDゲート回路337に供給される。第2のクロックイネーブル入力端304に得られる第2のクロックイネーブル信号CE2についても、NANDゲート回路337に供給される。
そして、NANDゲート回路337の出力が、トランジスタM303及びトランジスタM305のゲートに供給される。また、NANDゲート回路337の出力が、インバータ回路338を介してトランジスタM304及びトランジスタM308のゲートに供給される。

【0069】
また、電源電位と接地電位部との間には、トランジスタM305,M306,M307,M308のソース・ドレイン間が順に接続される。トランジスタM306とトランジスタM307の接続点は、インバータ回路311の出力部に接続される。

【0070】
さらに、電源電位と接地電位部との間には、トランジスタM309,M310,M311,M312のソース・ドレイン間が順に接続される。トランジスタM310とトランジスタM311の接続点は、インバータ回路311の出力部に接続される。

【0071】
この図15に示す回路構成とすることで、図14に示す動作を行うフリップフロップ回路300が得られる。この図14に示す回路の場合にも、第1の実施の形態で説明した図4の回路と同様に、記憶回路を構成するループ回路(インバータ回路311,NORゲート回路312)の入力側と出力側で同時に書き込み動作が行われるため、効率よく低消費電力でデータを書き換えることができる。

【0072】
[4.第4の実施の形態の例(図16~図18)]
図16は、本発明の第4の実施の形態の例のフリップフロップ回路400を示す図である。
フリップフロップ回路400は、4つのクロック入力端401~404と、Q出力端405と反転Q出力端406とリセット入力端407を備える。
この例では、4つのクロックCK1,CK2,CK3,CK4の4つのクロックのいずれか1つの信号が、ローレベルからハイレベルに変化するとき、ならびにハイレベルからローレベルに変化するときに、Q出力及び反転Q出力が変化する回路である。4つのクロックCK1,CK2,CK3,CK4は、同時に変化しない限り、いずれが変化しても出力を変化させる。

【0073】
図17及び図18は、フリップフロップ回路400の回路図の例である。
図17は、それぞれのクロックCK1,CK2,CK3,CK4を処理する回路を示す図である。すなわち、第1のクロックCK1が、インバータ回路411a,412a,413aと遅延回路414aとインバータ回路415a,416aとを順に接続した直列回路に供給される。そして、インバータ回路412aの出力CK1iPとインバータ回路416aの出力CK1oPとが、NANDゲート回路421aに供給される。このNANDゲート回路421aの出力信号W1PBが、インバータ回路422aに供給される。インバータ回路422aが出力する信号が、信号W1Pとなる。

【0074】
また、インバータ回路411aの出力CK1iNとインバータ回路415aの出力CK1oNとが、NANDゲート回路431aに供給される。このNANDゲート回路431aの出力信号W1NBが、インバータ回路432aに供給される。インバータ回路432aが出力する信号が、信号W1Nとなる。

【0075】
第2のクロックCK2,第3のクロックCK3,第4のクロックCK4が処理される回路は、第1のクロックCK1が処理される回路と同じ構成である。なお、図17では、第nのクロック(nは2,3,4のいずれか)を処理する回路を、符号の末尾にnを付して示す。図17及び図18では、第1のクロックCK1を処理する回路と、第nのクロックを処理する回路の2つの系を示すが、実際には4つのクロックに対応して4つの系を備える。

【0076】
図18は、これらのクロックが処理された信号が供給される回路の例を示す。この図18についても、4つのクロックごとに用意される回路については、第1のクロックCK1に基づいた信号を処理する系の回路(符号の末尾にaを付けた回路)と、第nのクロックCKnに基づいた信号を処理する系の回路(符号の末尾にnを付けた回路)とを示し、一部を省略する。

【0077】
図18の回路を説明すると、第1のクロックCK1に基づいて生成された信号W1NBが、トランジスタM401aのゲートとトランジスタM412aのゲートに供給される。また、第1のクロックCK1に基づいて生成された信号W1PBが、トランジスタM403aのゲートとトランジスタM411aのゲートに供給される。
また、第1のクロックCK1に基づいて生成された信号W1Nが、トランジスタM402aのゲートとトランジスタM416aのゲートに供給される。また、第1のクロックCK1に基づいて生成された信号W1Pが、トランジスタM404aのゲートとトランジスタM415aのゲートに供給される。

【0078】
同様に、第nのクロック(nは2,3,4のいずれか)CKnに基づいて生成された信号WnNBが、トランジスタM401nのゲートとトランジスタM412nのゲートに供給される。また、第nのクロックCKnに基づいて生成された信号WnPBが、トランジスタM403nのゲートとトランジスタM411nのゲートに供給される。
また、第nのクロックCKnに基づいて生成された信号WnNが、トランジスタM402nのゲートとトランジスタM416nのゲートに供給される。また、第nのクロックCKnに基づいて生成された信号WnPが、トランジスタM404nのゲートとトランジスタM415nのゲートに供給される。

【0079】
そして、インバータ回路445の出力信号が、トランジスタM401aのソース・ドレイン間とトランジスタM402aのソース・ドレイン間の並列回路を介して、インバータ回路441の入力に供給される。同様に、インバータ回路445の出力信号が、トランジスタM403aのソース・ドレイン間とトランジスタM404aのソース・ドレイン間の並列回路を介して、インバータ回路441の入力に供給される。
同様に、インバータ回路445の出力信号が、トランジスタM401nのソース・ドレイン間とトランジスタM402nのソース・ドレイン間の並列回路を介して、インバータ回路441の入力に供給される。同様に、インバータ回路445の出力信号が、トランジスタM403nのソース・ドレイン間とトランジスタM404nのソース・ドレイン間の並列回路を介して、インバータ回路441の入力に供給される。

【0080】
インバータ回路441の出力は、NORゲート回路442を介してインバータ回路441の入力に戻す構成としてある。NORゲート回路442には、インバータ回路441の出力の他に、リセット信号RSTの入力端407に得られる信号が供給される。
このインバータ回路441とNORゲート回路442とによるループ回路で、信号を保持する記憶回路が構成される。この記憶回路は、リセット信号RSTがローレベルであるとき、インバータ回路441とNORゲート回路442とで反転を繰り返すことで、信号が保持される。そして、リセット信号RSTがハイレベルのときには、NORゲート回路442の出力が強制的にローレベルにリセットされる。

【0081】
そして、インバータ回路441の出力が、インバータ回路443を介してQ出力端405に供給される。さらに、インバータ回路443の出力が、別のインバータ回路444を介して反転Q出力端406に供給される。
また、インバータ回路443の出力が、インバータ回路445に供給される。

【0082】
電源電位と接地電位部との間には、トランジスタM411a,M413,M414,M415aのソース・ドレイン間が順に接続される。トランジスタM413とトランジスタM414との接続点は、インバータ回路441の出力部に接続される。
トランジスタM411aには、並列にトランジスタM412aが接続される。さらに、トランジスタM411aには、第1のクロックCK1以外の系の信号により制御されるトランジスタM411n,M412nが並列に接続される。

【0083】
トランジスタM415aには、並列にトランジスタM416aが接続される。さらに、トランジスタM415aには、第1のクロックCK1以外の系の信号により制御されるトランジスタM415n,M416nが並列に接続される。
また、インバータ回路445の出力信号が、トランジスタM413のゲートとトランジスタM414のゲートに供給される。

【0084】
この図17及び図18に示す回路構成とすることで、図16に示すフリップフロップ回路400が得られる。この図17及び図18に示す回路の場合にも、第1の実施の形態で説明した図4の回路と同様に、その記憶回路を構成するループの入力側と出力側で同時に書き込み動作が行われるため、低消費電力で効率よくデータを書き換えることができる。

【0085】
なお、ここまで説明した各実施の形態の例で説明した具体的な回路構成は、好適な一例を示したものであり、その他の回路構成で同様の処理を行うようにしてもよい。
また、図6や図8で説明したフリップフロップ回路の適用例は、それぞれ一例を示したものであり、本発明のフリップフロップ回路をその他の回路に適用してもよい。
【符号の説明】
【0086】
100,200,300,400…フリップフロップ回路、101,201,301…第1のデータ入力端、102,202,302…第2のデータ入力端、103,203,303…第1のクロックイネーブル入力端、104,204,304…第2のクロックイネーブル入力端、105,205,305…第1のクロック入力端、106,206,306…第2のクロック入力端、107,207,307…Q出力端、108,208,308…反転Q出力端、109,209,309…リセット入力端、401…第1のクロック入力端、402…第2のクロック入力端、403…第3のクロック入力端、404…第4のクロック入力端、405…Q出力端、406…反転Q出力端、407…リセット入力端
図面
【図1】
0
【図2】
1
【図3】
2
【図4】
3
【図5】
4
【図6】
5
【図7】
6
【図8】
7
【図9】
8
【図10】
9
【図11】
10
【図12】
11
【図13】
12
【図14】
13
【図15】
14
【図16】
15
【図17】
16
【図18】
17
【図19】
18
【図20】
19