デジタルの基礎 - 東北学院大学

仙台市/ 仙台市産業振興事業団
ロボット博士の 基礎からのメカトロニクスセミナー
C03/Rev 1.0
第3回
デジタルの基礎
仙台市地域連携フェロー
熊 谷 正 朗
kumagai@tjcc.tohoku-gakuin.ac.jp
東北学院大学工学部
ロボット開発工学研究室
RDE
今回の目的
○ デジタルの基礎
テーマ1:デジタルの理論と2進数
・ 演算/処理の基礎ルール
テーマ2:デジタルの電気信号
・ 表現方法と実現方法
テーマ3:デジタル回路の実際
・ ロジック回路
・ 組み合わせ回路と順序回路
・ コンピュータのしくみ
C03 デジタルの基礎
Page. 2
基礎からのメカトロニクスセミナー
イントロダクション
○ デジタルとアナログ
アナログ
・ 連続的な値 (1と1.00……01は異なる)。
・ 世の中のほぼ全ての現象はアナログ。
デジタル
・ いくつかの明確に区別できる値に限定:
「0か1か」 (※0/1限定ではない)
・ 中間を無視することで
曖昧さの排除 / 強さ
C03 デジタルの基礎
Page. 3
基礎からのメカトロニクスセミナー
イントロダクション
○ なぜデジタルか?
信号の劣化が起きにくい
~ 電気信号にはノイズがつきもの
アナログ:元の信号に少しでも変動が出ると、それが
表している「値」の誤差になってしまう。
デジタル:信号を受けるとき「大きい」「小さい」などで
解釈するため、そこそこの変動まで耐えられる。
回路素子が単純
アナログ:「比例関係」に非常に気を使う
デジタル:とにかく振り切れれば良い
C03 デジタルの基礎
Page. 4
基礎からのメカトロニクスセミナー
イントロダクション
○ なぜデジタルか?
アナログでは少しの電圧
変化も値の変化として残る。
デジタルでは閾値(しきい
ち, 中間の基準)を超えな
ければ、値が変わらない。
アナログは「きっちり」倍率
の決まった回路が必須。
デジタルは閾値からの差を、
「倍率問わず」に、
とにかく拡大するだけ。
C03 デジタルの基礎
Page. 5
基礎からのメカトロニクスセミナー
イントロダクション
○ デジタルの弱点
一本の信号線で同時に表せる情報が少ない
アナログ:現実的には千~十万段階くらい
(回路の作り方に大きく依存)
デジタル:一般に2段階
(数段階にする方法もある)
→ 情報を多くしようとすると
1:線の本数を多くする (平行に並ぶ多数の線)
2:1本の線で高速に切り替えて順に送る (シリアル)
C03 デジタルの基礎
Page. 6
基礎からのメカトロニクスセミナー
デジタルの理論と2進数
○ 基礎理論:ブール代数
・ 「かつ」「もしくは」「ではない」
・ 真理値表 と ド・モルガンの定理
・ 補助演算子
○ 2進数:数を表すルール
・ データ表現の基本的発想
・ 2進数
・ 2進数の演算
C03 デジタルの基礎
Page. 7
基礎からのメカトロニクスセミナー
基本理論:ブール代数
○ 2値の理論
状態を2種類のみに限定
・ Yes と No のみ、「中くらい」を無視。
・ 真/偽、T(rue)/F(alse) 、1/0 (、H/L)
基本の演算を3種類のみに限定
・ 論理積 AND 「かつ」
[なし][・][×]
・論理和 OR 「もしくは」 [+]
・ 否 定 NOT 「ではない」 [上に横線][/]
C03 デジタルの基礎
Page. 8
基礎からのメカトロニクスセミナー
基本理論:ブール代数
○ 演算のルール
論理積
A
AND
B、 A・B、 AB
「 A=1【かつ】B=1 なら A・Bは1 」
A=0,
A=0,
A=1,
A=1,
B=0
B=1
B=0
B=1
なら
なら
なら
なら
A・Bは
A・Bは
A・Bは
A・Bは
0
0
0
1
※両方 1 なら 結果が 1
C03 デジタルの基礎
Page. 9
基礎からのメカトロニクスセミナー
基本理論:ブール代数
○ 演算のルール
論理和
A
OR
B、 A+B
「 A=1【もしくは】B=1 なら A+Bは1 」
A=0,
A=0,
A=1,
A=1,
B=0
B=1
B=0
B=1
なら
なら
なら
なら
A+Bは
A+Bは
A+Bは
A+Bは
0
1
1
1
※どちらか 1 なら 結果が 1
C03 デジタルの基礎
Page. 10 基礎からのメカトロニクスセミナー
基本理論:ブール代数
○ 演算のルール
否 定
NOT
A、 A、 /A
「 A=1【でなければ】 Aは1 」
A=0 なら
A=1 なら
Aは1
Aは0
※0と1が逆になる
C03 デジタルの基礎
Page. 11 基礎からのメカトロニクスセミナー
基本理論:真理値表
○ 表による演算結果の表現
A
0
0
1
1
B
0
1
0
1
A・B
0
0
0
1
A+B
0
1
1
1
A
1
1
0
0
B
1
0
1
0
・ 入力の全ての組み合わせに対する、
演算結果を表示する表。
・ 入力が n本あると2×2…2(n回)=2n 行。
・ 「状態問わず」で「X」を書くこともある。
C03 デジタルの基礎
Page. 12 基礎からのメカトロニクスセミナー
基本理論:ド・モルガンの法則
○ A・B=A+B
※[AとB]のANDのあとでNOT
A
1
1
0
0
B A・B A+B A・B A+B A+B A・B
1
1
1
0
0
0
1
1
0
1
1
1
1
0
1
0
0
0
1
1
やってみま しょう
B
0
1
0
1
※[AとB]のORのあとでNOT
等 しい
A
0
0
1
1
A+B=A・B
・ 真理値表で同じ結果→機能的に等しい
・ 「 今日は[晴れ]で[暑い] 」 ではないのは
「 今日は[晴れではない] 」 もしくは
「 今日は[暑くない] 」
C03 デジタルの基礎
Page. 13 基礎からのメカトロニクスセミナー
基本理論:補助演算子
○ AND, OR, NOT 以外の演算
A
0
0
1
1
B A
0
1
0
1
NAND
1
1
1
0
B A
NOR
1
0
0
0
B A
XOR
0
1
1
0
B A
XNOR
B
1
0
0
1
・ 回路で良くつかわれる演算の定義
※全て、AND, OR, NOT の組み合わせ
・ NAND=Not-AND, NOR=Not-OR (なんど、のあ)
XOR=eXclusiveOR/排他的論理和, XNOR=Not-XOR
XOR:異なると1, XNOR:一致すると1
C03 デジタルの基礎
Page. 14 基礎からのメカトロニクスセミナー
2進数:データ表現の基本的発想
○ 0/1だけで様々な情報を表す
0/1を束にする
・ 一つの[0か1]では2種類の情報しか
表せない。
・ 二つの[0か1]では4種類=2×2の
表現ができる。
:
・ N個の[0か1」で、2のN乗 種類 になる。
2のN乗=2N =2×2×…(全部でN個) ×2
C03 デジタルの基礎
Page. 15 基礎からのメカトロニクスセミナー
2進数:データ表現の基本的発想
○ 0と1の組み合わせ 1,2,4,8個の場合
0
1
2種類
0
0
1
1
0
1
0
1
4種類
C03 デジタルの基礎
:
256種類
16種類
Page. 16 基礎からのメカトロニクスセミナー
2進数:データ表現の基本的発想
○ 0/1だけで様々な情報を表す
・ N個(Nビット)の[0か1」で、2のN乗 種類
2のN乗=2N =2×2×…(全部でN個) ×2
この「種類」を使い方に応じて割り当てる
・ 数値 (整数、正負、小数(固定、浮動))
・ 文字
・ 状態 (例:OFF/起動中/待機中/動作中)
※ ただし、文字、状態などは 0/1⇔整数⇔文字など
と、一度整数を介すことが一般的
C03 デジタルの基礎
Page. 17 基礎からのメカトロニクスセミナー
2進数:データ表現の基本的発想
○ 数値の表現:2進数
ルール:普通の数(十進数)と同じように考える
十:0,1,2,…,8,9, 10,11…98,99, 100,101…
二:0,1, 10,11, 100,101,…111, 1000,…
「2」が出そうになったら、もう上の桁
→N桁で0~2N-1を表せる
そのまま使う→
C03 デジタルの基礎
0
0
1
1
0
1
0
1
Page. 18 基礎からのメカトロニクスセミナー
2進数:データ表現の基本的発想
○ 数値の表現:2進数、正負、16進数
2進 正 ± 16
0000 0 0 0
0001 1 1 1
0010 2 2 2
0011 3 3 3
0100 4 4 4
0101 5 5 5
0110 6 6 6
0111 7 7 7
2進
1000
1001
1010
1011
1100
1101
1110
1111
正
8
9
10
11
12
13
14
15
± 16
-8 8
-7 9
-6 A
-5 B
-4 C
-3 D
-2 E
-1 F
2進数で[abcd]→10進数: a×8 + b×4 + c×2 + d
= a×23 + b×22 + c×21 + d×20
C03 デジタルの基礎
Page. 19 基礎からのメカトロニクスセミナー
2進数:データ表現の基本的発想
○ 数値の表現:2進数、正負、16進数
2進
正 ± 16
00000000
0
0 00
00000001
1
1 01
00000010
2
2 02
:
:
: :
:
:
: :
01111101 125 125 7D
01111110 126 126 7E
01111111 127 127 7F
2進
10000000
10000001
10000010
:
:
11111101
11111110
11111111
正 ± 16
128 -128 80
129 -127 81
130 -126 82
:
: :
:
: :
253 -3 FD
254 -2 FE
255 -1 FF
最上位=左端が正負↑
↑-256↑
負の数のほうが1個多い↑
C03 デジタルの基礎
Page. 20 基礎からのメカトロニクスセミナー
2進数:こういうときに必須
○ コンピュータ周りは2進数
純ソフトウエア系
・ 8bit, 16bit, 32bit で表せる数値の限界
・ 複数の情報をまとめる (例8bit←aabbbccd)
・ コンピュータの気持ちでプログラミング
組込ソフトウエア系
・ 数値=2進数→信号の入出力
・ ビットごとの処理
※16進数は2進数の代わりに多用される
C03 デジタルの基礎
Page. 21 基礎からのメカトロニクスセミナー
2進数:演算:四則演算
※参考:page19
○ 加算 (減算)
0+0= 0
0+1= 1
1+0= 1
1+1=10
0110
+ 11101
1
10011
6
+ 13
19
6
+ -3
3
・ 十進数の加算と、[0,1のみ]以外は同じ。
・ 「繰り上がり」が発生しやすい。
・ 解釈によっては正負の加算(引き算)も可。
※論理和(OR)の+と混同に注意。
※一番上にあふれた繰り上がりの扱いは要注意。
C03 デジタルの基礎
Page. 22 基礎からのメカトロニクスセミナー
2進数:演算:四則演算
○ 乗算
0×0=
0×1=
1×0=
1×1=
~ 「1×1=1」
0
0
0
1
0011
× 0101
0011
0000
0011
0000
0001111
3×5=15
6×7=42
0110
× 0111
0110
0110
0110
0000
1 1 1
0101010
・ 乗算そのものの手間はない。 (0か1か)
・ 桁ごとの乗算のあとの、加算が面倒。
※負の乗算では符号の処理は別途行う
C03 デジタルの基礎
Page. 23 基礎からのメカトロニクスセミナー
2進数:演算:四則演算
○ 除算
~ 引き算だけできればいい
0110
11 10011
00
100
11
11
11
19÷3=
01
6あまり1
00
あまり…1
C03 デジタルの基礎
・ 商を立てる判定は
「ただの大小チェック」。
=小学生の悩みが不要
・ 繰り返しの引き算。
※ 似た計算方法を使って
平方根も簡単に求まる
Page. 24 基礎からのメカトロニクスセミナー
2進数:演算:補助
○ ×(-1), シフト演算
負の数 (演算で, 減算で)
・ 「×(-1)」 = 「全部NOTして +1する」
例 0101 (5) → 1010 (-6) → 1011 (-5)
全NOT
+1
シフト演算 (左右にずらす ×2 n 、 ÷2 n)
・ 左シフト 0011 (3) → 0110 (6) ×2
・ 右シフト 1000 (8) → 0010 (2) ÷4
※ 一般に0を導入 例外:左端 1000(-8)→1110(-2)
※ 消える桁がある 例:1011(11)→10(2) (11÷4=2余3)
C03 デジタルの基礎
Page. 25 基礎からのメカトロニクスセミナー
今回の目的
○ デジタルの基礎
テーマ1:デジタルの理論と2進数
・ 演算/処理の基礎ルール
テーマ2:デジタルの電気信号
・ 表現方法と実現方法
テーマ3:デジタル回路の実際
・ ロジック回路
・ 組み合わせ回路と順序回路
・ コンピュータのしくみ
C03 デジタルの基礎
Page. 26 基礎からのメカトロニクスセミナー
デジタルの電気信号
○ デジタルの回路における表現
一般的なデジタル信号
・ 1本の線で一つのデジタル値を表す。
(a) 電圧の高低 (低=0, 高=1, または逆)
(b) 電流の有無/大小 (有,大=1など)
差動デジタル信号 (高速通信向き)
・ 2本の信号線を対で使い, 相対的な
電圧の高低(A>BとA<B) で一つの値。
・ 耐ノイズ性が高い (詳しくは次回)
C03 デジタルの基礎
Page. 27 基礎からのメカトロニクスセミナー
デジタル回路の実現
○ スイッチによる実現
スイッチの並列つなぎ
→ どちらかONなら電気が流れる = OR
スイッチの直列つなぎ
→ ともにONなら電気が流れる = AND
C03 デジタルの基礎
Page. 28 基礎からのメカトロニクスセミナー
デジタル回路の実現
○ リレーによる 実現
※電流が流れると1
リレー:
電磁石でON/OFF, 切替
電源+
A
A
B
B
A
出
出
電源-
出力= A OR B
C03 デジタルの基礎
出
A AND B
NOT A
Page. 29 基礎からのメカトロニクスセミナー
デジタル回路の実現
P
○ MOSトランジスタで実現
CMOS型回路
※電圧が高いと1
+5, 3.3V
OFF
ON
高
低
P
P
N
高
A
低
B
ON
OFF
0
NOT A
ともに高
一方が低
N
N
C03 デジタルの基礎
MOSトランジスタ
P:入力電圧低→ON
N:入力電圧高→ON
A
高
低
NOT追加で
ANDになる
A NAND B (ともに1で0)
N
B
P
P
N
A NOR B (一方1で0)
Page. 30 基礎からのメカトロニクスセミナー
デジタル回路の実現
○ ブ ール代数が実現できればOK
AND OR NOT があればいい
演算回路の実現
昔> 真空管, リレー →
トランジスタ →
DTL, TTL (ダイオード&トランジスタ) →
CMOS (相補型 MOS FET) <今
より速く、より小さく、より省電力
C03 デジタルの基礎
Page. 31 基礎からのメカトロニクスセミナー
今回の目的
○ デジタルの基礎
テーマ1:デジタルの理論と2進数
・ 演算/処理の基礎ルール
テーマ2:デジタルの電気信号
・ 表現方法と実現方法
テーマ3:デジタル回路の実際
・ ロジック回路
・ 組み合わせ回路と順序回路
・ コンピュータのしくみ
C03 デジタルの基礎
Page. 32 基礎からのメカトロニクスセミナー
デジタル回路の実際
○ ロ ジックゲート
論理を実体化する回路素子
A
0
0
1
1
B
0
1
0
1
NOT AND
0
1
0
0
0
1
OR
0
1
1
1
1
1
1
0
NOR XOR
1
0
0
1
0
1
0
0
1
0
0
1
※NOTは一般に
インバータと呼ぶ
※JISでは新しい記号が制定されているが、これらが現役
C03 デジタルの基礎
Page. 33 基礎からのメカトロニクスセミナー
デジタル回路の実際
○ ロ ジックゲート (多入力、入力否定)
A
0
0
0
0
1
1
1
1
B
0
0
1
1
0
0
1
1
C
0
1
0
1
0
1
0
1
AND OR
0
0
0
1
0
1
0
1
0
1
0
1
0
1
1
1
C03 デジタルの基礎
1
1
1
1
1
1
1
0
NOR
1
0
0
0
0
0
0
0
A
0
0
1
1
B
0
1
0
1
A
1
1
0
0
B A・B A+B
1
1
1
0
0
0
0
0
1
0
0
0
機能同一、意味異なる
Page. 34 基礎からのメカトロニクスセミナー
デジタル回路の実際
○ 組 み合わせ回路 (と順序回路)
◇ 入力の0/1の組み合わせだけで
出力が決定される回路
vs 過去の入力の影響も受ける順序回路
=真理値表で定義・説明できる回路
◇ 組み合わせ回路の設計
・ 1:とにかく真理値表を実現する
・ 2:最適化された回路 (速くて安い)
C03 デジタルの基礎
Page. 35 基礎からのメカトロニクスセミナー
組み合わせ回路
A
○ 複 数の実体化
A
0
0
1
1
AND
B 仕様 案1 案2 案3
0
1 1,0,0 1,0 0,1
1
1 0,1,0 1,1 0,1
0
0 0,0,0 0,0 1,0
1
1 0,0,1 0,1 0,1
B
OR
1: 個々の「1」の条件をANDで
作って、最後にORする
2: 「1 OR 1 =1」 なので「1」は
重なっても良い
3: 最後にNOTする(NAND)
※2とド・モルガンの関係
C03 デジタルの基礎
Page. 36 基礎からのメカトロニクスセミナー
組み合わせ回路の実例
○ 一 致検出 信号反転 乗算
A
0
0
1
1
B 一致 反転 乗算
0
1
0
0
1
0
1
0
0
0
1
0
1
1
0
1
A
B
XNOR
A(モード)
反転
B(値)
XOR
1: 2本の入力が一致すると1
2: A=0のときはBを出力
A=1のときはBを出力
A0
A
B
3: A×Bを出力する1ビット乗算
(A=1, B=1, (1×1=1) のみ1)
並べれば1ビット×多ビット
C03 デジタルの基礎
一致
AND
積
B
A1
An
AND
積0
AND
積1
:
Page. 37 基礎からのメカトロニクスセミナー
組み合わせ回路の実例
※参考:page36はこれをOR
○ デコ ーダ
A
0
0
1
1
A
AND
B 出0 出1 出2 出3
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
1
B
出0
出1
出2
出3
入力に応じて、どれか1本だけが
「1」になる。(一般に2進数解釈)
入力に応じて、特定のパターンを
出力するデコーダもある。
例:2進数→数字 (7セグデコーダ)
C03 デジタルの基礎
11111,00111
10110,11011
Page. 38 基礎からのメカトロニクスセミナー
組み合わせ回路の実例
A
○ セレクタ
出力
B
S
0
0
0
0
1
1
1
1
A
0
0
1
1
0
0
1
1
B 出力
0
0
1
0
0
1
1
1
0
0
1
1
0
0
1
1
S=0ならAを出力
S=1ならBを出力
C03 デジタルの基礎
S
0
0
1
1
A
0
1
X
X
B 出力
X
0
X
1
0
0
1
1
S A B 出力
0 X X
A
1 X X B
A
S
B
S
S
0
0
1
1
慣用
記号
B AND 通す
0
0
0
1
0
0
0
B
1
1
Page. 39 基礎からのメカトロニクスセミナー
組み合わせ回路の実例
○ マル チプレクサ
D1
出力
0
D0
1
0
D1
1
0
D2
1
0
D3
1
D2
OR
D3
A
B
(A,B)で選択される入力4本のうち
1本の状態を出力する。
C03 デジタルの基礎
AND
デ コー ダ
A B D0 D1 D2 D3
0 X X X
0 0
1 X X X
X 0 X X
0 1
X 1 X X
X X 0 X
1 0
X X 1 X
X X X 0
1 1
X X X 1
D0
※セレクタは選択が1本、
入力2本のマルチプレクサ
Page. 40 基礎からのメカトロニクスセミナー
組み合わせ回路の実例
○ 半 加算器
実現したい
0+0=00
0+1=01
1+0=01
1+1=10
A
0
0
1
1
B
0
1
0
1
C
0
0
0
1
S
0
1
1
0
A
B
C
S
AND XOR
AとBを加算する。
S:和
(sum)
C:繰り上がり
(carry)
下の位からの繰り上がりに対応
できないので「半」加算器。
C03 デジタルの基礎
Page. 41 基礎からのメカトロニクスセミナー
組み合わせ回路の実例
A
B
○ 全 加算器
実現したい
0+0+0=00
0+0+1=01
0+1+0=01
0+1+1=10
1+0+0=01
1+0+1=10
1+1+0=10
1+1+1=11
Ci
0
0
0
0
1
1
1
1
A
0
0
1
1
0
0
1
1
B
0
1
0
1
0
1
0
1
Co S
0 0
0 1
0 1
1 0
0 1
1 0
1 0
1 1
下の桁からの繰り上がりCiに対応。
Ci+(A+B)、多段に繋ぐと多ビット化。
C03 デジタルの基礎
A
B
C
半加算器
A
Ci
B
S
Co
C
半加算器
S
S
:
A2
B2
A1
B1
A0
B0
全加算器
S2
全加算器
S1
全加算器
S0
0
Page. 42 基礎からのメカトロニクスセミナー
組み合わせ回路の実例
○ 加 減算回路
M=0: 加算 (A+B)
M=1: 減算 (A-B)
→page 25,37
おさらい:
・×(-1)は「NOTして+1」
・反転はXORでできる
↓
・M=1のときXORでBをNOT
・Mを最下のCiに入れる
↓
たくさん積めば乗除算も。
※ただし遅い
C03 デジタルの基礎
オーバーフロー
加算:1 減算:0で
A3
B3
全加算器
S3
A2
B2
全加算器
S2
A1
B1
全加算器
S1
A0
B0
全加算器
S0
M
Page. 43 基礎からのメカトロニクスセミナー
デジタル回路の実際
○ 組 み合わせ回路のまとめ
◇ 実現したいルールを真理値表にする
例)加算
◇ 組み合わせ回路の設計
・ 1:とにかく真理値表を実現する
・ 2:最適化された回路 (速くて安い)
◇ 注意点
・ ゲートの処理には時間がかかる
入力→出力で ns(10-9) ~ps(10-12) 台
C03 デジタルの基礎
Page. 44 基礎からのメカトロニクスセミナー
デジタル回路の実際
○ 順 序回路
◇ 過去の入力にも影響を受ける回路。
例) 電卓 他ほとんど全てのデジタル機器
◇ 真理値表では表せない。
※擬似的に表す方法は回路によってはある
→ タイミングチャートを用いる
※信号の時間変化を表す図
◇ 組み合わせ回路とD-FF(後述)
によって構成されることが多い。
C03 デジタルの基礎
Page. 45 基礎からのメカトロニクスセミナー
順序回路の実例
○ RSフリップフロップ (RS-FF)
A
A
N1
B
N2
Q
Q
A,Bの入力は標準で1。
Aを0にすると出力Qは1。
Aを1に戻してもQ=1を維持。
Bを0にするとQ=0になる。
(N2出力が1になって、
N1出力が0になる→保持)
C03 デジタルの基礎
N1
B
Q
N2
A
N1
B
Q
N2
① A=0にする
② A=1に戻しても保持
A
A
N1
B
Q
N2
③ B=0にする, N1反転
N1
B
Q
N2
④ Q=0を保持できる
Page. 46 基礎からのメカトロニクスセミナー
順序回路の実例
○ RSフリップフロップ (RS-FF)
A
N1
A
Q
A
N1
Q
B
Q
B
① ② ③④ ⑤
⑥ ⑦
⑤ B=1にしてもQ=0を保持
⑥ すでにQ=1になっている
ときにA=0にしても変化無
⑦ A,Bともに0にすると、Qと
Qはともに1に。A,Bのうち
後まで0のほうで決定。
C03 デジタルの基礎
N2
B
N2
① A=0にする
② A=1に戻しても保持
A
A
N1
B
Q
N2
③ B=0にする, N1反転
N1
B
Q
N2
④ Q=0を保持できる
Page. 47 基礎からのメカトロニクスセミナー
順序回路の実例
D Q
○ Dフリップフロップ (D-FF)
Q
CLK
D
N5
N6
CLK
N7
N1
N2
Q
N4
N8
D-FFの構成例
CLKを「0→1にした瞬間」(立ち上がり)
に、Dの値をQに反映、記憶する。
:①、②、④
それ以外はDは影響しない。
C03 デジタルの基礎
Q
N3
D
③
CLK
Q
①
②
④
Page. 48 基礎からのメカトロニクスセミナー
順序回路の実例
○ Dフリップフロップ (D-FF)
D
N5
N6
N7
N1
N2
Q
N3
Q
N4
N8
D Q
CLK
D-FFの構成例
CLKが0の場合
NAND N5, N6はDを反映する。
よって、N1-N2のRSFFがDを記憶。
N7, N8は出力1でN3,N4は保持。
C03 デジタルの基礎
CLK
Q
D
CLK
Q
Page. 49 基礎からのメカトロニクスセミナー
順序回路の実例
○ Dフリップフロップ (D-FF)
D
N5
N6
N7
N1
N2
Q
N3
Q
N4
N8
D Q
CLK
D-FFの構成例
CLKが1の場合
N5,N6=1になって、N1-N2はDに影響
されず→CLK=1の直前を記憶。
N1-2がN7,8経由でN3-4に移される。
C03 デジタルの基礎
CLK
Q
D
CLK
Q
Page. 50 基礎からのメカトロニクスセミナー
順序回路の実例:D-FFを用いた回路
○ シフトレジスタ
Q0
SI
D Q
D Q
Q1
Q2
D Q
D Q
CLK
Q3
CLK
SO
Q0
Q1
SI
CLK↑のたびに、入力SIの状態を
取り込み、Q0~Q3に順番に送る。
CLK
順番に届くデータ(シリアル・・・・)を、
Q3~Q0に並べる(パラレル)。
Q1
用途:通信
C03 デジタルの基礎
遅れ
Q0
Q2
Q3
Page. 51 基礎からのメカトロニクスセミナー
順序回路の実例:D-FFを用いた回路
○ シフトレジスタ(並直)
Q0
SI
D Q
Q1
D Q
Q2
D Q
Q0
D Q
SO
CLK
S/P
D0
D1
D2
D3
D-FFの入力にセレクタを追加、S/Pを0か1かで
「前段の出力」 か 「外部入力D0~D3」 か
を選択してCLK↑でD-FFに。
一度D0~D3をD-FFに入れてから、シフトさせると
並列データを直列にして出せる。
C03 デジタルの基礎
補足:
DとQをともに持つ
場合は少ない。
左右にシフトできる
ものもある。
Page. 52 基礎からのメカトロニクスセミナー
順序回路の実例:D-FFを用いた回路
○ カウンタ (同期カウンタ)
CLK
D3
+1
する
回路
D
Q
Q3
D2
Q2
Q3
D1 D-FF
Q1
Q2
×4
Q0
Q1
D0
CLK
Q0
CLK↑のたびに、「現在の値+1」を Q[0:3] 0 1 2 3 4 5 6 7
D-FFが記憶し直す。
D[0:3] 1 2 3 4 5 6 7
→CLKのたびに1ずつ増える計数
配線をまとめた表現方法
「+1」する回路の工夫
→[カウントする/しない][上限値][up/down][初期設定]等可。
C03 デジタルの基礎
Page. 53 基礎からのメカトロニクスセミナー
デジタル回路の実際
○ 順 序回路のまとめ
◇ 入力の履歴で出力が決まる。
◇ 実用的な回路の多くは
[組み合わせ回路] + [D-FF]
で出来ている。(=順序でも、組み合わせが基本)
◇ 注意点
・ 一般に電源を入れた後の「初期状態」は
未定。「初期化」「リセット」が必要。
※ここまでの説明では「初期値0」を暗黙に。
C03 デジタルの基礎
Page. 54 基礎からのメカトロニクスセミナー
コンピュータのしくみ(超概要)
○ コンピュータは巨大な順序回路
◇
◇
◇
◇
◇
記憶回路
演算回路
動作ステート
命令デコード
入出力回路
:
C03 デジタルの基礎
Page. 55 基礎からのメカトロニクスセミナー
コンピュータのしくみ
・ アドレスの一部で
行を選択(デコーダ)
○ 記 憶回路
読み出し制御
順
)
(
)
C03 デジタルの基礎
書き込み制御
(
順
→p.46
デー タ 入 出 力
アドレス 選 択
組
・ アドレスの一部で
書換え部位を選択
・ 同, 読出した値から
使用する部分を選択
(セレクタ)
デコー ダ
→p.38
順
Page. 56 基礎からのメカトロニクスセミナー
コンピュータのしくみ
・ 記憶回路からデータを
入力用レジスタに設定。
※DFFを並べたもの
○ 演 算回路
演算種
計算済
CLK
入力値2
値2設定
順
順
C03 デジタルの基礎
演算回路群
加減算
→p.42
シフト
論理演算
乗除算
→p.23
小数
:
セレクタ
順 組
演算結果
値1設定
入力値1
データ
・ コンピュータの命令の
一部から演算種類を
選択する。
※回路群+セレクタなど
・ 演算が終わるころを
見計らって結果を確保。
→p.39
Page. 57 基礎からのメカトロニクスセミナー
コンピュータのしくみ
○ 動 作ステ ート
順
→p.23
デコー ダ
ステー トカウンタ
CLK
組
→p.38
C03 デジタルの基礎
動作準備
命令取得アドレス指示
命令取得
命令分析(命令デコード)
入力値1:取得場所指示
入力値1→演算部
入力値2:取得場所指示
入力値2→演算部
(演算中)
演算完了
演算結果:格納場所指示
演算結果→格納
・ コンピュータは「手順」で
動作している。
※プログラムという意味
※ではなく、回路として
・ カウンタ+デコーダで
作るよりは、一体で
設計されていることが多。
・ ここで作る信号は、
各回路へのCLKではなく、
各回路の動作開始信号。
※ないと回路は休止
CLKは全回路で共通。
Page. 58 基礎からのメカトロニクスセミナー
コンピュータのしくみ
・ コンピュータの命令は、
単なるビット列(0/1の組)。
○ 命 令デコ ード
命令デコード
命 令 レジスタ
CLK
:
組
命令取
データ転送
:
演算種類
対象データ
位置特定
デコード
・ ビット列の一部は、命令
の種類を決定するのに
使われる。
例)上位が 000=移動
レジスタ選択
001=加算…
メモリアドレス
特殊データ域
順
C03 デジタルの基礎
組
・ それを「命令として」
解釈する。
※そのルールに従って
※プログラムが作られる
・ 残りの部分で、演算等の
対象を決める。
メモリ、CPU内レジスタ等
Page. 59 基礎からのメカトロニクスセミナー
コンピュータのしくみ
・ 出力回路は、内部で保持
された信号をそのまま
外に引き出す/加工する。
○ 信 号出力回路
方 向 レジスタ
・ 組込マイコンでは、端子
ごとに入出力方向を
決定できる。
CLK
出 力 レジスタ
CLK
C03 デジタルの基礎
入出力端子
入力回路へ
・ 出力端子に設定すると
内部のスイッチがオンして
出力値が外に出るように。
※スイッチには
※「スリーステート型」
※バッファが使われる
→p.63
Page. 60 基礎からのメカトロニクスセミナー
コンピュータのしくみ
○ コンピュータは巨大な順序回路
◇ 同一クロック信号による同期回路
=いわゆる、パソコンの「クロック」
◇ 順序回路にはリセットが必要
= 各種LSIにリセット信号端子
& 電源オン時にリセット信号の回路
& リセットボタン (最近見なくなった)
◇ 仕様があれば気合いと根性?
C03 デジタルの基礎
Page. 61 基礎からのメカトロニクスセミナー
本日のまとめ
○ デジタル回路は少しのルールと根性
◇ 0 と 1 と AND と OR と NOT
・ 簡単な演算規則で、「ルール」に従った
処理を行う回路を構成する。
・ 2進数はその「ルール」の一つ。
◇ 組み合わせ回路と順序回路
・ 組合わせ:そのときの入力だけで決まる。
・ 順序回路:過去の影響も受ける。
順序が大半でも組み合わせが基礎。
C03 デジタルの基礎
Page. 62 基礎からのメカトロニクスセミナー
補遺:ロジック回路のプラスアルファ
○ 動 作速度に起因する注意
A
X
D Q
CLK
○ スリーステ ート
A
X
B
A
B
X
NOTの
遅延
CLK
tsu th
グリッチ
D
変更禁止期間
B=1のときX=A
B=0のときオフ(Z)
B
0
0
1
1
A
0
1
0
1
X
Z
Z
0
1
通常のゲートは常に0か1を
出力するが、追加の制御線
ロジックゲートには遅延がある。低速の回路
で「オフ」にできるものもある
では気にならないことが多いが、遅延が原因
(P60のスイッチに相当)。
で予期せぬ「ヒゲ」(グリッチ)が発生すること
真理値表でオフは「Z」(Hi-Z
がある。(左上)
等)で表記されることが多
D-FF由来の回路には、入力信号変更禁止期
い。信号線の共有(バスなど)
間がある。tsu:セットアップ時間、th:ホールド
で多用されている。
時間。(右上) マイコン駆動時にも注意。
Page. 63 基礎からのメカトロニクスセミナー
C03 デジタルの基礎
補遺:雑学:パイプライン処理
入力
処理回路
(組み合わせ)
入
処理1
D1 D Q Q1
D1
D Q
Q1
出力
入力A
D1
Q1
D2 D Q Q2
処理2
出力
回路の遅延によって複雑な組み合わせ回路
の出力はバタつき(XXX区間)、後に落ち着く。
落ち着いたところでDFFで結果を確定保持す
ることが一般的(さもなければ、次の入力がく
ると前の結果が使えなくなる)。
ここで処理回路を敢えて分割すると、右下図
のように処理結果が出てくる頻度が高くなる
=処理能力があがる。パイプライン処理とい
い、CPUはじめ高速デジタル処理回路でよく
使われる手法。(このCLKが3GHzなどになる)
Page. 64
C03 デジタルの基礎
入力B
結果A
結果までの時間
処理間隔
入力A 入力B 入力C
D1
Q1
中間A 中間B
D2
Q2
結果A 結B
結果まで
処理間隔
基礎からのメカトロニクスセミナー