今回は平成26年度 機械科目 B問題18を解説します。JK-フリップフロップ(FF1,FF2,FF3)と論理回路Dを用いた非同期式カウンタ回路について、論理回路Dの種類とカウンタの最大数・リセット後の値を求める(a)と、タイムチャート上のグリッチと伝搬遅れを読み解く(b)の問題です。
(a)はJKフリップフロップがJ=K=1でトグル動作すること、論理回路Dが特定の状態でリセット信号を出すNANDゲートであることから、カウンタの最大数と初期化後の値を求めます。(b)はFF2・FF3の出力とNAND回路の出力の変化を順にたどり、伝搬遅れによってタイムチャート上に時間差が生じる仕組みを理解します。
平成26年度 機械科目 B問題18:問題文と選択肢
まずは、実際の試験問題を確認してみましょう。

出典:一般財団法人 電気技術者試験センター「平成26年度 第三種電気主任技術者試験」機械科目 B問題18
電験3種 機械科目 【情報】 平成26年度 B問題18
図はJK-フリップフロップ(FF1,FF2,FF3)と論理回路Dを用いた非同期式カウンタ回路とそのタイムチャートである。次の(a)及び(b)の問に答えよ。
(a) カウンタ回路における論理回路Dは,(ア)回路で,その役割は出力(CBA)が2進数でカウンタの最大数(イ)になった後,次のクロック入力の立ち下がりによって出力(CBA)を2進数で(ウ)にすることである。上記の記述中の空白箇所(ア),(イ)及び(ウ)に当てはまる組合せとして,正しいものを次の(1)〜(5)のうちから一つ選べ。
(b) タイムチャートにおいて,クロック入力のパルス6の立ち下がりでFF1のQ出力は1から0へ変化する。FF1の立ち下がりはFF2を動作させ,0から1に変化させる。図のa時点でFF2及びFF3のQ出力はともに(ア)である。これら二つの(ア)は論理回路Dに入力され,その出力は(イ)となる。この(イ)は三つのJK-フリップフロップのCLR入力端子に入って,b時点において,クリアされている。a時点からb時点までのFF2のQに現われるパルスは,パルス幅が非常に狭いため,カウンタの出力(ア)としてはカウントされない。カウンタは再びカウントを開始する。クロック入力のパルス6が1から0に変化する時刻と,FF2及びFF3が最終的にb時点でクリアされる時刻とには時間遅れが生じている。これは論理回路Dとフリップフロップの入出力における信号の(ウ)遅れに起因している。上記の記述中の空白箇所(ア),(イ)及び(ウ)に当てはまる組合せとして,正しいものを次の(1)〜(5)のうちから一つ選べ。
(ア) (イ) (ウ) (1) NOR 101 000 (2) NOR 110 111 (3) NAND 110 111 (4) NAND 110 000 (5) NAND 101 000
(ア) (イ) (ウ) (1) 1 0 伝搬 (2) 0 1 伝搬 (3) 1 1 伝搬 (4) 0 1 同期 (5) 1 0 同期

出題のポイント:110 を検出して000 へ戻す
3段のJK-FF は本来8通り(000〜111)を数えます——そこに「特定の値でリセット」を仕込むと、任意の進数のカウンタになります。
| 空欄 | 答え | 理由 |
| (ア) | NAND | ★両入力が1 のとき出力0 |
| (イ) | 101 | 安定して数えられる最大値 |
| (ウ) | 000 | クリア後の値 |
論理回路D の入力はFF2 とFF3 の出力(B とC)——両方が1 になったときに0 を出す必要があります。「両方1 で0」はNAND です。
NOR なら「両方0 で1」——向きが逆になります。CLR がアクティブLow(0 で効く)なので、0 を出せるNAND でなければなりません。
なぜ最大数が101 なのか
B とC が両方1 になるのは (CBA)=110 のとき——そこでリセットがかかります。ところが110 は一瞬しか存在しません。
| (CBA) | 状態 | D の出力 |
| 000〜101 | ★安定して数える | 1(何もしない) |
| 110 | ★一瞬だけ現れる | 0(クリア) |
| 000 | 戻る | 1 |
だから実際に数えられるのは000 から101 までの6通り——6進カウンタになっています。「最大数」は安定して現れる最後の値101 です。
110 は数えたことにならない——問題文にも「パルス幅が非常に狭いためカウントされない」と書かれています。


(b) a点からb点までの遅れ
タイムチャートに現れる「細いひげ」——これがグリッチです。
| 空欄 | 答え | 意味 |
| (ア) | 1 | a点でFF2、FF3 の出力がともに1 |
| (イ) | 0 | ★NAND の出力(クリア信号) |
| (ウ) | 伝搬 | 信号がゲートを通る時間 |
ゲートは入力が変わってもすぐには出力が変わりません——ほんのわずか(ナノ秒単位)遅れるのです。これが伝搬遅延(伝搬遅れ)です。
a点でB とC が1 になる→NAND が0 を出す→CLR が効いて000 へ戻る——この3段階それぞれに遅れがあるので、クロックの立下りからb点までに時間差が生じます。
その間だけ110 という状態が存在してしまう——これがグリッチの正体です。回路の設計ミスではなく、物理的に避けられない現象になります。

⚠️ よくある間違い
論理回路D をNOR と答えてしまうのが典型的な誤り——選択肢(1)(2)がNOR です。
「B=C=1 のときに0 を出したい」——NAND なら1·1 の否定で0。NOR だと1+1 の否定でやはり0 になりますが、他の状態でも0 になってしまうのが問題です。
NOR は「どちらかが1 なら0」——B だけ1 のときにもクリアがかかってしまい、2 すら数えられません。
もう1つ、(イ)の最大数と(ウ)のリセット後を混同しない——110 でクリアがかかるが、最大数は101 です。
任意のn進カウンタを作る
この考え方を使えば、何進のカウンタでも作れます——手順は決まっています。
| 手順 | やること | 本問(6進)の場合 |
| ① | 必要なFF の段数を決める | 23=8≧6 なので3段 |
| ② | ★止めたい値(n)を2進数にする | 6=110 |
| ③ | その値で1 になるビットをNAND へ | C とB(Aは0 なので使わない) |
| ④ | NAND 出力をCLR へつなぐ | 0 で全段クリア |
10進カウンタなら10=1010 を検出——4段のFF を使い、D とB をNAND へ入れます。これで0〜9 を数える回路になります。
ディジタル時計の秒表示は、この10進カウンタを2つ並べたもの——ただし十の位は6進(0〜5)です。本問の6進カウンタが、まさにそこで使われているのです。
⏱️ 本番での進め方
①(ア) CLR は0 で効く→両入力1 で0 を出すNAND。
②(イ) 安定に数えるのは000〜101 の6通り。最大数は101。
③(ウ) 110 は一瞬で消え、000 へ戻る。
④(b) 遅れの正体は★伝搬遅延。同期/非同期ではない。
💡 覚え方
「止めたい数を2進数にして、1 のビットをNAND へ」——これでn進カウンタが作れます。そして「ゲートには必ず伝搬遅延がある」——だから一瞬だけ余分な状態が現れるのです。
JK-FF のタイムチャートは平成21年度 B問題18や令和3年度 B問題18でも出題されています(平成21年度/令和3年度)。

非同期式カウンタの弱点
本問の回路は非同期式(リップルカウンタ)——作りは簡単ですが、弱点があります。
| 非同期式(本問) | 同期式 | |
| クロックの与え方 | 前段の出力を次段へ | ★全段に共通のクロック |
| 回路 | 簡単 | 帰還論理が必要 |
| 遅れ | ★段ごとに積み重なる | 1段分だけ |
| グリッチ | ★出やすい | 出にくい |
非同期式では、上位の桁ほど変化が遅れます——3段なら3段分の伝搬遅延が積み重なる。その間、ありえない値が一瞬だけ現れます。
たとえば011 から100 へ進むとき——下位から順に変わるので、011 →010 →000 →100 という経路をたどります。途中の010 や000 が一瞬見えてしまうのです。
この出力をそのまま表示や制御に使うと誤動作します——だから高速な回路では同期式を使うのが原則。本問の(b)が伝搬遅れを問うているのは、この弱点を理解させるためです。
それでも非同期式が使われる場面
単純な分周器なら非同期式で十分——最終段の出力だけを使うなら、途中のグリッチは問題になりません。
部品が少なく消費電力も小さい——用途に応じて使い分けるのが実際です。
まとめ
| (a)(ア) 論理回路D | NAND |
| (a)(イ) 最大数 | 101 |
| (a)(ウ) リセット後 | 000 |
| (b)(ア) | 1 |
| (b)(イ) | 0 |
| (b)(ウ) 遅れの種類 | 伝搬 |
| 答え | (a)-(5),(b)-(1) |
▼あわせて解きたい関連問題
・n個の配列を降順に並べ替えるフローチャートと交換回数:【機械】令和2年度B問題18
・チャタリング防止回路とJK-FFカウンタのJ入力値トレース:【機械】平成18年度B問題18

コメント