● flipflip-flop (FF) の発振現象と 発振現象と同期化 下図で 下図で『○部に↑』は、 flipflip-flop(FF) 回路部であることを 回路部であることを示 であることを示し、『ck 『 ck』 ck』信号の 信号の立ち上り時 ('0'から ('0'から'1' から'1'へ '1'へ の変化時) 変化時)に『data』 data』信号( 信号(の値)を内部に 内部に取りこむ( りこむ(保持する 保持する) する)ものとします。 ものとします。 FF に正しく data を取りこみ、 りこみ、保持させる 保持させるため させるためには ためには、 には、『data 『datadata-setup(Tsu)時間 setup(Tsu)時間』 時間』(ck 信号の 信号の立ち上りに先 りに先だ って確定 って確定していなければならない 確定していなければならない時間 していなければならない時間) 時間)と『datadata-hold(Thd)時間 hold(Thd)時間』 時間』(ck 信号の 信号の立ち上り後も確定していなけれ 確定していなけれ ばならない時間 ばならない時間) 時間)の両方で 両方 で、その最小規定 その最小規定を 最小規定を守らないと q_出力 q_出力が 出力が発振し 発振し、 '1'か '1'か'0'のどちらの '0'のどちらの状態 のどちらの 状態に 状態に落ち着 不定とな となります ります。 これは、 くかが が不定 とな ります 。これは 、FF を作るフィードバック回路 フィードバック回路の 回路の遅延時間 遅延時間の 時間の遅さによるものです。 よるものです。 くか 発振期間(Tvib) 発振期間(Tvib)は (Tvib)は、TTL素子 TTL素子で 素子で数10ナノ 10ナノ秒 ナノ秒、CMOS素子 CMOS素子で 素子で数マイクロ秒 マイクロ秒程度と 程度と報告されています 報告されています。 されています。 『発振』 発振』が他の論理素子に 論理素子に伝わって行 わって行くと、 くと、誤動作( 誤動作(事故) 事故)の原因となる 原因となるので となるので、 ので、外部から 外部から入 から入ってくる信号 ってくる信号を 信号を 自分勝手なタイミングで 自分勝手 なタイミングで取 なタイミングで取り込む場合には 場合には『 には『二段取り 二段取り込み』などの方法 などの方法で 方法で、入口部で 入口部で自分のタイミングに 自分 のタイミングに合 のタイミングに 合 わせた信号 せた信号に 信号に作り変えます。 えます。この処置 この処置を 処置を『同期化』 同期化』と呼びます。 びます。 このような発振現象 発振現象を 現象を知らないで、不具合( 不具合(事故) 事故)に頭を悩ましている人もいます。 電子回路設計 確実なタイミング設計 タイミング設計』 設計』が最も重要な 重要なのです。 電子回路設計で 設計では『 FF での確実な ck data q [正しい動作 しい動作] 動作] data Tsu don't_Care(どのような don't_Care(どのような値 どのような値でもよい) でもよい) '1' '0' Thd ck Tck q '1' '0' Tco [誤動作の 誤動作の原因: 原因:発振現象] 発振現象] data Tsu don't_Care(どのような don't_Care(どのような値 どのような値でもよい) でもよい) Thd Tsu Thd ck Tsu 不足 q Tvib Thd 不足 '1' or '0'のどちらになるか '0'のどちらになるか不定 のどちらになるか不定 ・『clockclock-toto-output(Tco)』 output(Tco)』時間は 時間は、ck の立上りから 立上りから data_入力 data_入力の 入力の q_出力 q_出力への 出力への信号伝達時間 への信号伝達時間。 信号伝達時間。 - 1 - 【信号の 信号の同期化について 同期化について】 について】 二段の 二段の FF で受ける『 ける『二段取り 二段取り込み』の方法を 方法を紹介します 紹介します。 します。 ここでは、 ここでは、クロック周期 クロック周期_Tck 周期_Tck が、発振期間_Tvib 発振期間_Tvib よりも長 よりも長いことが必要 ことが必要条件 必要条件となります 条件となります。 となります。 次図で 次図で、rQ0 出力に 出力に発振が 発振が発生します 発生しますが しますが、rQ1 出力には伝達 には伝達され 伝達されません されません。 ません。 不定領域の 不定領域の値は、'1'か '1'か'0'かどちらになるかはわかりません '0'かどちらになるかはわかりませんが かどちらになるかはわかりませんが、DATA 入力の 入力の値に落ち着けば良 けば良し、そうでな くとも、 くとも、次クロックで DATA 入力値にな 入力値になります になります。 ります。 結局、 結局、取り込みまでの時間 までの時間は 時間は、1クロック分 クロック分ばらつくことになりますが ばらつくことになりますが、 ことになりますが、自分の 自分のクロック(CLK) クロック(CLK)に (CLK)に同期化した 同期化した 信号が 信号が得られます。 られます。 図では Tsu 時間違反の 時間違反の場合を 場合を示しますが、 しますが、Thd 時間違反の 時間違反の場合も 場合も同じです。 です。 CLK DATA q rQ0 rQ1 [同期化] 同期化] SCLK Tck Tsu DATA '0' rQ0 '0' rQ1 '0' Thd Tsu Thd '1' '1' Tvib '1' 不定が 不定が '1' に落ち着けば良 けば良し。 '0' であれば次 であれば次クロックで'1' クロックで'1'になる '1'になる。 になる。 いずれにせよ、 いずれにせよ、SCLK に同期した 同期した信号 した信号 rQ1 が得られる。 られる。 - 2 -
© Copyright 2024