記数法
- 位取り
- 2 進数 2k、8 進数 8k、16 進数 16k
- 10 進数へ
- Σ dk·bk
- 10 進数から
- 基数で割り、余りを下から上へ読む
- 16 進数 ↔ 2 進数
- 16 進数 1 桁 = 4 ビット
- 2 の補数
- ビットを反転して 1 を足す
公式集、全トピックの解法の要点、6 問の演習問題。完全な解答は巻末にあります。
8 ビットのパターン 1011 1111 は、符号付き整数を 2 の補数で表しています。10 進数での値 N はいくつですか?
ビットを 0111 0001 << 2 の 8 ビットの結果に設定します。結果の値 R は 10 進でいくつですか?
カルノー図を使って F(A, B, C) = Σm(1, 2, 3, 4, 7) の最小の積和形(SOP)を求めてください。リテラル L は合計でいくつ含まれますか(プライム付きの変数も 1 つのリテラルと数えます)?
mod-25 カウンタは 25 個の異なる状態を数え上げなければなりません。必要なフリップフロップの最小個数 n はいくつですか?
レコーダが 2 チャネルを各 50 kHz、16 ビット ADC でサンプリングします。各サンプルは整数バイトで保存されます。10 分間の記録に必要なメモリ M を MB(1 MB = 10⁶ バイト)で求めなさい。
クロック 10 MHz のマイクロコントローラが、UART のボーレートを fclk/(16·D) に設定します。D は最も近い値に丸めた整数です。目標は 4800 baud です。実際のボーレートの誤差を百分率で求めなさい(速すぎる場合を正とします)。
答え: N = −65
位取り記数法:各桁の値は、その数字に基数のべき乗を掛けたものです。2 進数では各桁の重みが 1、2、4、8、16、…、16 進数では 1、16、256、… で、A–F は 10–15 を表します。8 ビットの 2 の補数では、最上位ビットの重みが +128 ではなく −128 になり、こうして負の数を表します。
ほかのビットは通常の正の重みのままです。
答え: R = 196
ビットの設定:各ビットは 2 のべき乗(128、64、…、1)の値をもちます。16 進の 1 桁はちょうど 4 ビットで、8 ビットの 2 の補数では、いちばん左のビットの値は −128 です。ビット演算は、各ビット位置を別々に扱います。
2 だけ左にシフトすると、すべてのビットが 2 桁左へ動きます。左端からはみ出したビットは失われ、右側には 0 が入ります。
答え: L = 9
カルノー図:セルはグレイコード(00, 01, 11, 10)の順に並んでいるので、端をまたぐものも含め、隣り合うセルはちょうど 1 つの変数だけが異なります。1 を、1, 2, 4, 8, 16 個のセルからなる長方形で、できるだけ大きく、できるだけ少ない数でグループ化し、すべての 1 を覆います。各グループは 1 つの積項で、グループの中で一定のままの変数からなります。2ᵏ 個のセルのグループでは k 個の変数が消えます。ドントケア(X)はグループを大きくするために使えますが、覆う必要はありません。代わりに 0 をグループ化すると、最小の POS 形が得られます。
各グループは 2ᵏ 個のセルからなる長方形です。端のセルは、反対側の端のセルと隣り合っています。
答え: n = 5
フリップフロップとカウンタ:フリップフロップは、有効なクロックエッジでだけ変化します。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 個あります。
答え: M = 120 MB
データレート:各チャネルは毎秒 fs 個の N ビットのサンプルを出力するので、生のレートは チャネル数 × fs × N bit/s です。メモリ上では 1 サンプルが整数バイトを占める(12 ビットのサンプルは 2 バイトで保存される)ので、記録に必要なメモリは チャネル数 × fs × 1 サンプルのバイト数 × 時間 です。マルチプレクス ADC はチャネルを 1 つずつ順に変換します:1 回の変換(整定時間を含む)に t かかるので、n チャネルの 1 巡に n·t かかり、各チャネルは 1/(n·t) でサンプリングされます。
答え: e = 0.1603 %
UART:調歩同期式のシリアル通信は、各バイトをフレームとして送ります:スタートビット(Low)1 つ、データビット、任意のパリティビット、ストップビット(High)1 つまたは 2 つ。ボーレートは毎秒のビット数なので、1 ビットの長さは Tb = 1/ボーレート、n ビットのフレームの長さは n/ボーレートです。よく使われる 8N1 形式は 1 バイトが 10 ビットです。ボーレート発生器はクロックを分周します:ボーレート = fclk/(16·D)、D は整数なので、実際のボーレートは目標値とわずかに異なります。誤差がおよそ 2 % 未満なら、たいてい許容されます。
誤差がおよそ 2 % 未満なら、たいてい許容されます。
ExamProblems · examproblems.com/courses/digital-electronics