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

公式集、全トピックの解法の要点、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−12806403211618140201

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

1001 11008 bit
N =
2.記数法むずかしい
32 bit1 px640 px480 pxM = ? KiB

非圧縮の画像が 640 × 480 ピクセル、1 ピクセルあたり 32 ビットです。必要なメモリ M は何 KiB(1 KiB = 1024 バイト)ですか?

640 × 480 px32 bit/px1 KiB = 1024 B
M = KiB
3.デジタル論理:ゲート・カルノー図・フリップフロップふつう
ABC00011110011001031204151706

カルノー図を使って F(A, B, C) = Σm(0, 2, 5, 7) の最小の和積形(POS)を求めてください。和項(因数)N はいくつありますか?

F(A, B, C) = Σm(0, 2, 5, 7)
N =
4.デジタル論理:ゲート・カルノー図・フリップフロップむずかしい
ABCD000111100001111010X10312X41517160120130150141819111010

d はドントケア条件を表します。F(A, B, C, D) = Σm(0, 2, 5, 6, 7, 8, 9, 11) + d(1, 4) の最小の SOP 形を求めてください。積項 N はいくつありますか?

F(A, B, C, D) = Σm(0, 2, 5, 6, 7, 8, 9, 11) + d(1, 4)
N =
5.データ収録とサンプリングふつう
Vin​N = 20VFSR​2ᴺ − 101 LSB

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

N = 20
SQNR = dB
6.データ収録とサンプリングむずかしい
T10 mV/°C×2∿01N = 10, 10 V? °C/LSB

温度センサが 10 mV/°C(0 °C で 0 V)を出力します。その信号を 2 倍に増幅し、入力範囲 0〜10 V の 10 ビット ADC に入力します(1 LSB = VFSR/2ᴺ)。1 LSB に対応する温度変化 ΔTLSB を求めなさい。

S = 10 mV/°CG = 2N = 10VFSR = 10 V
ΔTLSB = °C

3溶液

1.記数法

答え: N = −100

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

重みを合計する

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

−128 + 16 + 8 + 4 = −100

答え

N = −100
2.記数法

答え: M = 1200 KiB

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

ビットとバイト

640·480·32 = 9830400 bit = 1228800 B

KiB に換算する

1228800/1024 = 1200 KiB

答え

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

答え: N = 2

カルノー図:セルはグレイコード(00, 01, 11, 10)の順に並んでいるので、端をまたぐものも含め、隣り合うセルはちょうど 1 つの変数だけが異なります。1 を、1, 2, 4, 8, 16 個のセルからなる長方形で、できるだけ大きく、できるだけ少ない数でグループ化し、すべての 1 を覆います。各グループは 1 つの積項で、グループの中で一定のままの変数からなります。2ᵏ 個のセルのグループでは k 個の変数が消えます。ドントケア(X)はグループを大きくするために使えますが、覆う必要はありません。代わりに 0 をグループ化すると、最小の POS 形が得られます。

ABC00011110011001031204151706

0 をグループ化する

各グループは 2ᵏ 個のセルからなる長方形です。端のセルは、反対側の端のセルと隣り合っています。

(A + C′)
(A′ + C)

最小の POS 形

F = (A + C′)(A′ + C)
N = 2

答え

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

答え: N = 4

カルノー図:セルはグレイコード(00, 01, 11, 10)の順に並んでいるので、端をまたぐものも含め、隣り合うセルはちょうど 1 つの変数だけが異なります。1 を、1, 2, 4, 8, 16 個のセルからなる長方形で、できるだけ大きく、できるだけ少ない数でグループ化し、すべての 1 を覆います。各グループは 1 つの積項で、グループの中で一定のままの変数からなります。2ᵏ 個のセルのグループでは k 個の変数が消えます。ドントケア(X)はグループを大きくするために使えますが、覆う必要はありません。代わりに 0 をグループ化すると、最小の POS 形が得られます。

主項

1 と X からつくれる最大のグループ。

B′C′, A′D′, A′C′, A′B, AB′D
ABCD000111100001111010X10312X41517160120130150141819111010

最小被覆

F = B′C′ + A′D′ + A′B + AB′D
N = 4

答え

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

答え: SQNR = 122.2 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·20 + 1.76 = 122.2 dB

答え

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

答え: ΔTLSB = 0.4883 °C

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 を選びます。

ステップ幅

1 LSB = 10000/1024 = 9.766 mV

ADC での感度

10·2 = 20 mV/°C

温度分解能

ΔTLSB = 9.766/20 = 0.4883 °C

答え

ΔTLSB = 0.4883 °C

ADC は 500 °C でフルスケールに達します。

ExamProblems · examproblems.com/courses/digital-electronics