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

公式集、全トピックの解法の要点、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.記数法ふつう
8 ビットの 2 の補数0−12806403201608040201

8 ビットの 2 の補数で −9 を格納するようにビットを設定します。符号なしの数として読むと、このパターンの値 U はいくつですか?

N = −98 bit
U =
2.記数法むずかしい
ビットをクリックして設定します012806403201608040201

ビットを 0111 1111 >> 3 の 8 ビットの結果に設定します。結果の値 R は 10 進でいくつですか?

0111 1111>> 3
R =
3.デジタル論理:ゲート・カルノー図・フリップフロップふつう
ABC000111100101324576

F = BC′ + AC′ + B′C′ + A′BC′ を最小の積和形に簡単化してください。簡単化した式に含まれるリテラル L はいくつですか?

F = BC′ + AC′ + B′C′ + A′BC′
L =
4.デジタル論理:ゲート・カルノー図・フリップフロップむずかしい
CLKJK1234567

正エッジトリガの JK フリップフロップが Q = 0 から始まり、図の入力を受け取ります。Q が 1 から 0 に戻る最初のクロックエッジをクリックしてください。

Q₀ = 0JK
  1. 1クロックエッジ 1
  2. 2クロックエッジ 2
  3. 3クロックエッジ 3
  4. 4クロックエッジ 4
  5. 5クロックエッジ 5
  6. 6クロックエッジ 6
  7. 7クロックエッジ 7
5.データ収録とサンプリングふつう
Vin​N = 18VFSR​2ᴺ − 101 LSB

18 ビット ADC の、フルスケールの正弦波に対する理想的な信号対量子化雑音比 SQNR を求めなさい。

N = 18
SQNR = dB
6.データ収録とサンプリングむずかしい
128⋮8 ch∿01tc​ = 20 µstset​ = 0.5 µsfs​ = ?

8 チャネルのマルチプレクサが 1 つの ADC に接続されています。1 回の変換に 20 µs かかり、チャネルを切り替えるたびに入力の整定に 0.5 µs かかります。チャネルは休みなく順に走査されます。各チャネルのサンプリング周波数 fs を kHz で求めなさい。

n = 8tc = 20 µstset = 0.5 µs
fs = kHz

3溶液

1.記数法

答え: U = 247

ビットの設定:各ビットは 2 のべき乗(128、64、…、1)の値をもちます。16 進の 1 桁はちょうど 4 ビットで、8 ビットの 2 の補数では、いちばん左のビットの値は −128 です。ビット演算は、各ビット位置を別々に扱います。

反転して 1 を足す

9 = 0000 1001
反転後: 1111 0110
+1 → 1111 0111

符号なしとして読む

1111 0111₂ = 256 − 9 = 247

答え

U = 247
2.記数法

答え: R = 15

ビットの設定:各ビットは 2 のべき乗(128、64、…、1)の値をもちます。16 進の 1 桁はちょうど 4 ビットで、8 ビットの 2 の補数では、いちばん左のビットの値は −128 です。ビット演算は、各ビット位置を別々に扱います。

ビットごとに

3 だけ右にシフトすると、すべてのビットが 3 桁右へ動きます。右端からはみ出したビットは失われ、左側には 0 が入ります。

0111 1111 >> 3
= 0000 1111

結果の値

0000 1111₂ = 15

答え

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

答え: L = 1

ブール代数:式を簡単にする規則は、X + X′ = 1 と X·X′ = 0、X + X = X、吸収則 X + X·Y = X、結合則 X·Y + X·Y′ = X、X + X′Y = X + Y、そしてコンセンサス定理 XY + X′Z + YZ = XY + X′Z です。ド・モルガンの法則は (X·Y)′ を X′ + Y′ に、(X + Y)′ を X′·Y′ に変えます。カルノー図はこれらの規則を図で適用するものです:隣り合う 2 つのセルのグループは、XY + XY′ = X を 1 回使うことに当たります。

式の最小項

BC′ → m(2, 6)
AC′ → m(4, 6)
B′C′ → m(0, 4)
A′BC′ → m(2)
ABC00011110011001031214050716

グループ化して読み取る

F = C′

リテラルを数える

L = 1

答え

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

答え: クロックエッジ 4

フリップフロップとカウンタ:フリップフロップは、有効なクロックエッジでだけ変化します。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 = 0 → Q = 1
2: J = 1, K = 0 → Q = 1
3: J = 0, K = 0 → Q = 1
4: J = 1, K = 1 → Q = 0
5: J = 0, K = 1 → Q = 0
6: J = 1, K = 1 → Q = 1
7: J = 1, K = 0 → Q = 1

1 から 0 への最初の変化

クロックエッジ 4

答え

クロックエッジ 4
5.データ収録とサンプリング

答え: SQNR = 110.1 dB

ADC の分解能:N ビットの変換器は、フルスケール範囲 VFSR を 0 から 2ᴺ − 1 までの 2ᴺ 個のコードに分けます。1 ステップは 1 LSB = VFSR/2ᴺ で、変換器が表示できる最小の変化です。切り捨て ADC はコード ⌊Vin/LSB⌋ を出力します。四捨五入する ADC は真の値から ½ LSB より離れることがなく、これが量子化誤差です。ビットが 1 つ増えるごとに LSB は半分になり、フルスケールの正弦波に対する理想的な信号対量子化雑音比 SQNR = 6.02·N + 1.76 dB はおよそ 6 dB 向上します。ある範囲で分解能 r を得るには、2ᴺ ≥ 範囲/r を満たす最小の N を選びます。

理想 SQNR

SQNR = 6.02·18 + 1.76 = 110.1 dB

答え

SQNR = 110.1 dB
6.データ収録とサンプリング

答え: fs = 6.098 kHz

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

1 チャネルあたりの時間

20 + 0.5 = 20.5 µs

1 回の走査の時間

8·20.5 = 164 µs

1 チャネルあたりのサンプリング周波数

fs = 1/164 µs = 6.098 kHz

答え

fs = 6.098 kHz

ExamProblems · examproblems.com/courses/digital-electronics