デジタル電子回路:直前対策パック

公式集、全トピックの解法の要点、6 問の演習問題。完全な解答は巻末にあります。

新しい問題科目に戻る

印刷ウィンドウで「PDF として保存」を選ぶと、コピーを端末に保存できます。

1公式と解法

記数法

位取り
2 進数 2k、8 進数 8k、16 進数 16k
10 進数へ
Σ dk·bk
10 進数から
基数で割り、余りを下から上へ読む
16 進数 ↔ 2 進数
16 進数 1 桁 = 4 ビット
2 の補数
ビットを反転して 1 を足す

デジタル論理:ゲート・カルノー図・フリップフロップ

基本ゲート
A·B, A + B, A′, (A·B)′, (A + B)′, A ⊕ B
ブールの規則
X + X′ = 1, X·X′ = 0, X + XY = X, XY + XY′ = X
ド・モルガンの法則
(X·Y)′ = X′ + Y′, (X + Y)′ = X′·Y′
カルノー図の並び順
00, 01, 11, 10 (Gray code)
2ᵏ 個のセルのグループ
k 個の変数が消える
4 対 1 マルチプレクサ
F = A′B′I0 + A′BI1 + AB′I2 + ABI3
フリップフロップ
D: Q⁺ = D, T: Q⁺ = T ⊕ Q, JK: Q⁺ = JQ′ + K′Q
カウンタ
n ビット:2ⁿ 状態; mod-N:2ⁿ ≥ N を満たす最小の n; fout = fclk/N
リップルカウンタ
fmax = 1/(n·tpd)
リングカウンタとジョンソンカウンタ
n 状態と 2n 状態

解き方

  1. 回路では、入力から出力へ向かってゲートを 1 つずつ進み、各配線に値を書き込むか、式を書いて真理値表を埋めましょう。
  2. 簡単化するには、1(とドントケアは X として)を、行と列がグレイコード 00, 01, 11, 10 のカルノー図に書き込みましょう。
  3. 1 を、1, 2, 4, 8, 16 個のセルからなる、できるだけ少なくできるだけ大きなグループで、端をまたぎながら覆いましょう。各グループは、一定のままの変数からなる 1 つの積項です。POS 形には 0 をグループ化します。
  4. フリップフロップとカウンタでは、各有効クロックエッジで入力を読み取り、エッジごとの状態を書き出し、n ビットのカウンタは 2ⁿ 個の状態で折り返すことを忘れないようにしましょう。

データ収録とサンプリング

ナイキスト条件
fs > 2·fmax, fN = fs/2
エイリアス周波数
fa = |f − k·fs|, k = round(f/fs)
ステップ幅
1 LSB = VFSR/2ᴺ
量子化誤差(四捨五入)
±½ LSB
切り捨て ADC のコード
D = ⌊Vin/LSB⌋
分解能 r に必要なビット数
2ᴺ ≥ span/r
理想 SQNR(フルスケールの正弦波)
SQNR = 6.02·N + 1.76 dB
データレート
チャネル数 × fs × N bit/s
マルチプレクス ADC
fs = 1/(n·(tc + tset))
UART
Tb = 1/ボーレート;8N1 = 1 バイトあたり 10 ビット;バイト/s = ボーレート/1 フレームのビット数
ボーレート分周比
baud = fclk/(16·D)

解き方

  1. まず与えられた値を書き出します:サンプリング周波数、信号の周波数、ビット数、入力レンジ、ボーレート。
  2. サンプリングの問題では、各周波数を fs/2 と比べます。それより高い周波数は、fs の最も近い整数倍を使って fa = |f − k·fs| の位置に現れます。
  3. 分解能の問題では、1 LSB = VFSR/2ᴺ を求めるか、2ᴺ ≥ 範囲/分解能 を満たす最小の N を求めます。
  4. データレートと UART 通信では、送られるものをすべて数えます:チャネル数、毎秒のサンプル数、1 サンプルあたりのビット数またはバイト数、そして各フレームのスタートビット、パリティビット、ストップビット。

2演習問題

1.記数法ふつう
2 の補数での桁の重み1−12816413211618041211

8 ビットのパターン 1111 1011 は、符号付き整数を 2 の補数で表しています。10 進数での値 N はいくつですか?

1111 10118 bit
N =
2.記数法むずかしい
32 ビットの 2 の補数, N = ??符号???????????????????????????????

32 ビットの 2 の補数で表せる最小(最も負の)整数 N はいくつですか?

32 bit
N =
3.デジタル論理:ゲート・カルノー図・フリップフロップふつう
MUXC′I0​C′I1​0I2​0I3​ABS1​S0​F

4 対 1 マルチプレクサの選択入力が S₁ = A、S₀ = B で、データ入力は I₀ = C′、I₁ = C′、I₂ = 0、I₃ = 0 につながれています。A, B, C の 8 通りの組み合わせのうち、出力 F = 1 になるのはいくつですか? N を求めてください。

I₀ = C′I₁ = C′I₂ = 0I₃ = 0
N =
4.デジタル論理:ゲート・カルノー図・フリップフロップむずかしい
CLKJK123456

正エッジトリガの JK フリップフロップが Q = 0 から始まり、6 回の立ち上がりクロックエッジで図の入力を受け取ります。Q は何回N状態を変えますか?

Q₀ = 0JK
N =
5.データ収録とサンプリングふつう
124⋮4 ch∿01N = 1450 kHz? MB

レコーダが 4 チャネルを各 50 kHz、14 ビット ADC でサンプリングします。各サンプルは整数バイトで保存されます。60 分間の記録に必要なメモリ M を MB(1 MB = 10⁶ バイト)で求めなさい。

n = 4fs = 50 kHzN = 14t = 60 min
M = MB
6.データ収録とサンプリングむずかしい
f0fs​/2fs​2.4 kHz5f₁?

2.4 kHz の方形波を、アンチエイリアシングフィルタなしで 8 kHz でサンプリングします。方形波には奇数次の高調波 3f₁、5f₁、7f₁、… が含まれます。サンプリングされたデータでは、高調波 5f₁ はどの周波数 fa に現れますか。Hz で答えなさい。

f₁ = 2.4 kHzfs = 8 kHz高調波: 5f₁
fa = Hz

3溶液

1.記数法

答え: N = −5

位取り記数法:各桁の値は、その数字に基数のべき乗を掛けたものです。2 進数では各桁の重みが 1、2、4、8、16、…、16 進数では 1、16、256、… で、A–F は 10–15 を表します。8 ビットの 2 の補数では、最上位ビットの重みが +128 ではなく −128 になり、こうして負の数を表します。

重みを合計する

ほかのビットは通常の正の重みのままです。

−128 + 64 + 32 + 16 + 8 + 2 + 1 = −5

答え

N = −5
2.記数法

答え: N = −2.147 × 10⁹

位取り記数法:各桁の値は、その数字に基数のべき乗を掛けたものです。2 進数では各桁の重みが 1、2、4、8、16、…、16 進数では 1、16、256、… で、A–F は 10–15 を表します。8 ビットの 2 の補数では、最上位ビットの重みが +128 ではなく −128 になり、こうして負の数を表します。

最も負の値

−231 = −2147483648

答え

N = −2147483648
3.デジタル論理:ゲート・カルノー図・フリップフロップ

答え: N = 2

マルチプレクサ:2ⁿ 対 1 のマルチプレクサは、データ入力の 1 つを出力に通します。選択線を 2 進数として読んだ値が、どれを通すかを決めます。選択線 S₁S₀ = AB の 4 対 1 MUX では、F = A′B′·I₀ + A′B·I₁ + AB′·I₂ + AB·I₃ です。データ入力を 0, 1, C, C′ につなぐと、MUX は A, B, C の任意の関数を出力でき、1 つのチップで論理をつくる一般的な方法です。

出力の式

F = A′B′C′ + A′BC′

F = 1 の行

ABC = 000, 010
N = 2

答え

N = 2
4.デジタル論理:ゲート・カルノー図・フリップフロップ

答え: N = 3

フリップフロップとカウンタ:フリップフロップは、有効なクロックエッジでだけ変化します。D は入力をコピーし(Q⁺ = D)、T は T = 1 のときトグルし、JK は 00 で保持、01 でリセット、10 でセット、11 でトグルします。n ビットの 2 進カウンタには 2ⁿ 個の状態があり、2ⁿ を法として数えます。mod-N カウンタは 0, 1, …, N − 1 と数えて 0 に戻り、2ⁿ ≥ N を満たす最小の n 個のフリップフロップが必要です。リップルカウンタの各段は周波数を半分にするので、mod-N カウンタの最後の出力は fclk/N で動作します。n 個のフリップフロップのジョンソンカウンタには 2n 個の状態があり、リングカウンタには n 個あります。

エッジごとの Q

JK フリップフロップ:00 は保持、01 はリセット(Q = 0)、10 はセット(Q = 1)、11 はトグルです。

1: J = 1, K = 1 → Q = 1
2: J = 1, K = 1 → Q = 0
3: J = 0, K = 0 → Q = 0
4: J = 1, K = 0 → Q = 1
5: J = 1, K = 0 → Q = 1
6: J = 1, K = 0 → Q = 1

変化を数える

0 → 1 → 0 → 0 → 1 → 1 → 1
N = 3

答え

N = 3
5.データ収録とサンプリング

答え: M = 1440 MB

データレート:各チャネルは毎秒 fs 個の N ビットのサンプルを出力するので、生のレートは チャネル数 × fs × N bit/s です。メモリ上では 1 サンプルが整数バイトを占める(12 ビットのサンプルは 2 バイトで保存される)ので、記録に必要なメモリは チャネル数 × fs × 1 サンプルのバイト数 × 時間 です。マルチプレクス ADC はチャネルを 1 つずつ順に変換します:1 回の変換(整定時間を含む)に t かかるので、n チャネルの 1 巡に n·t かかり、各チャネルは 1/(n·t) でサンプリングされます。

1 サンプルのバイト数

⌈14/8⌉ = 2 B

バイトレート

4·50000·2 = 400000 B/s

メモリ

M = 400000·3600 = 1.44 × 10⁹ B = 1440 MB

答え

M = 1440 MB
6.データ収録とサンプリング

答え: fa = 4000 Hz

サンプリング:ADC は信号を毎秒 fs 回測定します。ナイキスト–シャノンの標本化定理により、周波数 f が正しく捉えられるのは f < fs/2 の間だけです。これはナイキスト(折り返し)周波数なので、サンプリング周波数は信号の最高周波数の 2 倍を超えなければなりません。それより高い周波数は失われるのではなく、fa = |f − k·fs| の位置にエイリアスとして現れます。ここで整数 k は、結果が 0 から fs/2 の間に入るように選びます。サンプルからは両者を区別できないので、ADC の前に、fs/2 より上をすべて除去するアナログのアンチエイリアシングフィルタが必要です。

高調波の周波数

5f₁ = 5·2.4 kHz = 12 kHz

サンプリング周波数の最も近い整数倍

m = round(1.5) = 2

エイリアス周波数

fa = |12000 − 2·8000| = 4000 Hz

答え

fa = 4000 Hz

エイリアスは信号帯域の内側に落ち、どんなデジタルフィルタでも除去できません。ADC の前に置くアナログフィルタだけが有効です。

ExamProblems · examproblems.com/courses/digital-electronics