5.4K Views
April 16, 22
スライド概要
1. デジタル回路の基本回路を理解する
2. デジタル素子を使い簡単な回路を作れる
機械系のためのメカトロニクス
⚫ アナログとデジタル
✓ メカトロニクスにおけるアナログとデジタル
✓ アナログとディジタルの関係
• アナログからデジタルへの変換
• デジタル信号表現(標本化,量子化)
⚫ 論理回路
✓ 基本の論理演算(AND,OR,NOT)
✓ 基本の論理素子(AND,OR,NOT,XOR,
NAND,NORの各素子)
⚫ デジタルIC(論理演算の電気回路での実現)
✓ 基本動作(電圧による“0”,“1”表現)
✓ 論理素子の電気回路例
✓ デジタルICの種類(TTL,CMOS)
✓ 論理素子の電気回路例
✓ 正論理と負論理
✓ NAND回路で基本論理回路を実現
⚫ 「論理回路:組合せ回路」と「順序回路」
⚫ 組合せ回路
✓ 現在の入力のみで出力が決まる回路
⚫ 順序回路
✓ 基本論理素子:フリップフロップ
✓ カウンタ
✓ レジスタ
⚫ 加減算回路
✓ 半加算回路
✓ 全加減算回路
これまでに主に,ロボティクス・メカトロニクス研究,特にロボットハンドと触覚センシングの研究を行ってきました。現在は、機械系の学部生向けのメカトロニクス講義資料、そしてロボティクス研究者向けの触覚技術のサーベイ資料の作成などをしております。最近自作センサの解説を動画で始めました。https://researchmap.jp/read0072509 電気通信大学 名誉教授
UEC 第6回エレクトロニクス ディジタル回路 メカトロニクス 「ディジタル回路」 下条 誠* *電気通信大学 名誉教授 機械系のためのメカトロニクス 1
UEC 達成目標 1. デジタル回路の基本回路を理解する 2. デジタル素子を使い簡単な回路を作れる 参考のためのスライドです。とばしても構いません。 2
UEC 内 ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ 容 アナログとデジタル ✓ メカトロニクスにおけるアナログとデジタル ✓ アナログとディジタルの関係 • アナログからデジタルへの変換 • デジタル信号表現(標本化,量子化) 論理回路 ✓ 基本の論理演算(AND,OR,NOT) ✓ 基本の論理素子(AND,OR,NOT,XOR, NAND,NORの各素子) デジタルIC(論理演算の電気回路での実現) ✓ 基本動作(電圧による“0”,“1”表現) ✓ 論理素子の電気回路例 ✓ デジタルICの種類(TTL,CMOS) ✓ 論理素子の電気回路例 ✓ 正論理と負論理 ✓ NAND回路で基本論理回路を実現 「論理回路:組合せ回路」と「順序回路」 組合せ回路 ✓ 現在の入力のみで出力が決まる回路 順序回路 ✓ 基本論理素子:フリップフロップ ✓ カウンタ ✓ レジスタ 加減算回路 ✓ 半加算回路 ✓ 全加減算回路 ⚫ ⚫ ⚫ ⚫ ⚫ アナログとデジタル ✓ メカトロニクスにおけるアナログとデジタル ✓ アナログとディジタルの関係 • アナログからデジタルへの変換 • デジタル信号表現(標本化,量子化) 論理回路 ✓ 基本の論理演算(AND,OR,NOT) ✓ 基本の論理素子(AND,OR,NOT,XOR,NAND,NORの各素子) デジタルIC(論理演算の電気回路での実現) ✓ 基本動作(電圧による“0”,“1”表現) ✓ 論理素子の電気回路例 ✓ デジタルICの種類(TTL,CMOS) ✓ 論理素子の電気回路例 • ゲート動作の利用例 ✓ 正論理と負論理 • 同じ電気回路でも,正論理と負論理では,機能が異なる ✓ NAND回路で基本論理回路を実現 「論理回路:組合せ回路」と「順序回路」 組合せ回路 ✓ 現在の入力のみで出力が決まる回路 ① ② ③ ④ マルチプレクサ デマルチプレクサ エンコーダ デコーダ ⚫ 順序回路 ✓ • • • ✓ ⚫ 基本論理素子:フリップフロップ D フリップフロップの動作 電気回路素子 フリップフロップの種類(D-FF,RS-FF,JK-FF,T-FF) カウンタ ① 1/2逓減回路 ② 1/4逓減回路 ③ 4bitカウンタ ④ 16bitカウンタ ✓ レジスタ ① ラッチ(レジスタ) ② シフトレジスタ 加減算回路 ✓ 半加算回路 ✓ 全加減算回路 ① n桁2進加算器の構成(16桁) ② 減算回路の構成 ③ 補数の作り方 ④ n桁の2進加減算器の構成(16桁) 3
UEC アナログとディジタル ⚫ アナログは連続的に変化する量 ⚫ デジタルは,1/0で表す量 ✓1/0で情報が送れるの? ✓1/0を組み合わせること で単語や文章を伝えるこ とができるというのがデ ジタルの重要な考え方 モールス符号 http://www.linear-news.jp/2006-2010/news/analog/ 4
UEC アナログとディジタル 最近の機器はアナログ回路とディジタル回路を 両方利用 http://www.linear-news.jp/2006-2010/news/analog/ 5
UEC アナログとディジタルの関係 現実の世界 計算機の世界 アナログ量 (連続量) デジタル量 (離散量) (電圧,電流) デジタル制御 digital control 測定量 Hand 物体 位置姿勢 距離 関節 角度 力 ハンド 位置,速度 把持力 位置,速度, 加速度,力 制御量 モータ制御用 電圧電流 Robot Arm アナログ量 ADC Program development 0 0 0 1 1 1 1 ..... 1 1 0 1 1 0 1 1 0 0 1 Filtering, modeling, learning DAC Program execution 0 0 0 1 1 1 1 1 0 0 1 0 1 1 1 1 0 1 1 0 1 1 0 0 1 1 0 1 0 1 1 0 デジタル量 6
UEC アナログとディジタル ⚫ ロボット,携帯電話,自動車,飛行機などなど,現在の工業製品には,アナログ 技術と,デジタル技術の両方が深くかかわってきている。 ⚫ 特に近年,デジタル情報技術の急速な進展は工業製品の性能を大幅に向上させた。 メカトロニクス技術では,このデジタル技術の習得は重要な課題である。 ⚫ ただし,位置,速度,力,圧力,温度など産業用ロボットなどが実際に動作する 場面で関係する物理量は,アナログ量であり,これらの連続量を電気量(電圧, 電流)として計測し,それらに基に,次の動作を時々刻々決定して作業を進める 必要がある。 ⚫ また,ロボットなどの動作を制御する方法は,コンピュータを使ったデジタル制 御が主流となっている。この場合,計測した位置,力などのアナログ量を,コン ピュータが理解できるデジタル量に変換する必要がある。 ⚫ そしてに,計算された制御量であるデジタル量を,実際のモータなどの駆動に必 要なアナログ量に変換する必要がある。 ⚫ 本講義では,アナログとデジタルの変換方法,デジタル情報の基本的な演算操作 について解説を行う。 7
UEC アナログからデジタルへの変換1 2.標本化(サンプリング) 1.アナログ信号 連続信号 時間的に離散化 サンプル値 アナログ値 アナログ値 原信号 サンプリング周期 time time 3.量子化(2bit例) 2進数(2bit) 11 量子化誤差 4.デジタル信号(2bit例) 離散信号のデジタル表現 値の離散化 11 3 原信号 10 2 10 01 1 01 量子化データ 00 time デジタル信号 time 00 0 0 0 1 0 1 1 0 1 1 1 1 1 0 0 1 0 1 0 1 1 0 1 1 1 1 1 0 21 20 8
UEC アナログからデジタルへの変換2 2.標本化(サンプリング) 1.アナログ信号 サンプル値 アナログ信号は, 連続信号で、気温, 速度,電気回路の 電圧など時間を横 軸に,信号の値を 縦軸で表すことが できるものである。 標本化(サンプ リング)とは、 連続信号を一定 の間隔(例えば 1ms毎の時間間 隔)で測定する ことで離散信号 として取集する ことである。 アナログ信号 3.量子化(2bit例) 量子化とは、標本 化されたアナログ 信号などの連続量 1 1 の値を,整数の離 散値で近似的に表 1 0 現することである。 01 この時ビット数と は,信号を何段階 0 の数値で表現する かを表す値である。 4.デジタル信号 デジタル信号とは、量子化され離散値で表され た,離散信号をデジタル表現で表したものであ る。 量子化データ 3 2 1 (2bit例) 0 0 0 1 1 1 1 0 0 0 1 1 1 1 0 1 1 0 1 1 0 1 1 1 0 1 1 0 21 20 0,1,1,2,3,3,2,1,1,1,2,3,3,2 10進数 表現では 9
UEC 論理回路 ⚫ 論理回路 ✓ 基本の論理演算(AND,OR,NOT) ✓ 基本の論理素子(AND,OR,NOT, XOR,NAND,NORの各素子) ⚫ デジタルIC(論理演算の電気回路での実現) ✓ 基本動作(電圧による“0”,“1”表 現) ✓ 論理素子の電気回路例 ✓ デジタルICの種類(TTL,CMOS) ✓ 論理素子の電気回路例 • ゲート動作の利用例 ✓ 正論理と負論理 • 同じ電気回路でも,正論理と負論理 では,機能が異なる ✓ NAND回路で基本論理回路を実現 ⚫ 「論理回路:組合せ回路」と「順序回路」 ⚫ 組合せ回路 ⚫ 順序回路 ⚫ 加減算回路 コンピュータは,数学の加減乗除の四則演算 などを高速に実行する。このコンピュータは, デジタルICによって構成されている。デジタ ルICは論理演算を行う電気回路である。 また今やロボット,自動車などの制御や信号 処理では,デジタルICの利用は避けて通れな い技術である。 ここでは,このデジタルICについて解説を行 う。 10
UEC 基本の論理演算 基本となる論理演算は,AND(論理積),OR(論理和),NOT(否定) である。 AND (論理積) :“・”は積を表す 0・0=0・1=1・0=0,1・1=1 OR (論理和) 0+0=0,0+1=1+0=1+1=1 NOT (否定) 𝟎ሜ = 𝟏, 𝟏ሜ = 𝟎 :“+”は和を表す :上バーは否定を表す ✓ 論理演算は,0または1だけを演算し,その結果も0または1のいずれかになる。 ✓ “0”を偽(False ) ,”1”を真(True)と呼ぶこともある。 11
UEC 基本論理素子1(AND, OR, NOT) x f y x f x f y AND OR (アンド) x 0 0 1 1 y 0 1 0 1 NOT (オア) f 0 0 0 1 AND回路 真理値表 x 0 0 1 1 y 0 1 0 1 OR回路 真理値表 (ノット) f 0 1 1 1 x 0 1 f 1 0 否定を表す NOT回路 真理値表 12
UEC 基本論理素子2( NAND,NOR,XOR) x f y x 0 0 1 1 x f y x f y NAND NOR XOR (ナンド) (ノア) (エクスクルーシブ・オア) y 0 1 0 1 f 1 1 1 0 NAND回路 真理値表 x 0 0 1 1 y 0 1 0 1 NOR回路 真理値表 f 1 0 0 0 x 0 0 1 1 y 0 1 0 1 f 0 1 1 0 XOR回路 真理値表 13
UEC 基本素子の論理式と記号 論理 NOT OR 論理式 回路記号 𝑥 𝑥+𝑦 論理 論理式 回路記号 XOR 𝑥⨁𝑦 x y x f NOR 𝑥+𝑦 𝑥∙𝑦 x y x f y y AND f f NAND 𝑥⋅𝑦 x f y 14
UEC デジタルIC(論理演算の電気回路での実現) ⚫ 論理回路 ✓ 基本の論理演算(AND,OR,NOT) ✓ 基本の論理素子(AND,OR,NOT, XOR,NAND,NORの各素子) ⚫ デジタルIC(論理演算の電気回路での実現) ✓ 基本動作(電圧による“0”,“1”表 現) ✓ 論理素子の電気回路例 ✓ デジタルICの種類(TTL,CMOS) ✓ 論理素子の電気回路例 • ゲート動作の利用例 ✓ 正論理と負論理 • 同じ電気回路でも,正論理と負論理 では,機能が異なる ✓ NAND回路で基本論理回路を実現 ⚫ 「論理回路:組合せ回路」と「順序回路」 ⚫ 組合せ回路 ⚫ 順序回路 ⚫ 加減算回路 15
UEC デジタルIC(電気回路での実現) 代表的論理素子NAND(7400) パッケージ(DIP or DIL) (dual in-line package) TTL:トランジスタで作成した論理素子。 CMOS:相補型MOSを使用。低消費電力 16
UEC 論理素子の基本動作 電圧値 電圧値 x 出力 入力 >4V High level 1 <0.5V Low level 0 f y 電圧値 論理値 電圧値 (電圧値は一例である。電圧の閾値は デジタルICの方式よって異なる) x y f x y f 0 0 0 0V 0V 0V 回路素子: 0 1 0 0V 5V 0V 電圧値(電流値)で 1 0 0 5V 0V 0V “0”,“1” 1 1 1 5V 5V 5V AND回路真理値表 を定める。 回路素子としての動作 注)電圧値と論理値の対応は逆でも良い 17
UEC 論理素子の電気回路例 AND回路 OR回路 5V x R 5V f y f x R2 x R1 f R y 0V 0V NOR回路 NAND回路 5V 5V 5V x R2 R x NOT回路 R1 f y R2 R1 f y 0V 0V 18
UEC デジタルICの種類(TTL,CMOS) 汎用のデジタルICとして,TTL,CMOSが使われてきた。現在は,高速で低消費電力な CMOSが主流である。このほか,電流ロジック用いたECL(Emitter Coupled Logic)がある。 ECLは非常に高速な論理動作が可能であるが,消費電力が大きいため,現在は特殊用途以外 使われないようだ。 ⚫ TTL(Transistor Transistor Logic) ✓ バイポーラトランジスタで回路が作られている。論理レベル を“0”にするには,入力から電流が流れだす必要がある。入力 を接続しない(←非推奨)と論理値“1”となる。 ✓ 通常5V動作の時,入力信号は0Vから0.8Vのとき“0”と定義 され、2.2Vから5Vのとき“1”と定義される。 ✓ 高速版(S-TTL,AS-TTL)、低消費電力版(L-TTL)、高速・低消 費電力版(LS-TTL, ALS-TTL)などのバリエーションがある。 ⚫ CMOS(Complementary MOS) ✓ P型とN型のMOSFETで回路が作られている。上下のMOSFET が相補的に動作し,上がオンの時、下がオフになる。 ✓ この回路はMOSFET のオンとオフを切り替えるときのみゲー ト電流が流れ、定常状態ではほとんど電流が流れない。その ため、CMOS 回路を使ったIC では低消費電流で論理回路を 構成できる。 ✓ 今日ではメインフレーム、さらにはスーパーコンピュータ向 けマイクロプロセッサ市場でもCMOSが主流となっている。 https://ja.wikipedia.org/wiki/Transistor-transistor_logic https://ja.wikipedia.org/wiki/CMOS 19
UEC AND素子の利用例1(ゲート機能) ① ② ③ x x y y ② f yが“1”の時,xからの パルスを通す y 入力によって,x 信号の通り道をON/OFFするゲート機能 入力 x f ON y OFF 出力 y=0 then OFF y=1 then ON ゲートの開閉制御 20
UEC AND素子の利用例2 (デマルチプレクサ機能) ① ② ③ y=“0” x ① ③ (1) 入力 y 出力 ② (2) y=“1” y 入力によって,x 信号の出力先を切り替える機能 ✓ (1)と(2)のAND素子のゲート機能を,NOT素子を用いて反転する ✓ すなわち,(1)がONなら(2)はOFF,逆も成り立つ ✓ よって,y入力により,x入力をどちらへ出力するか制御できる 21
UEC 正論理と負論理(どちらを“1”とする?) 例えば 電圧値 論理値 論理値 4V High level 1 0 0.5V Low level 0 1 正論理 負論理 (一例) 論理値“0”,“1”と電圧値との対応付けは,2つ方法がある 正論理:高い方「 H(ハイ)」を“1”とする 負論理:低い方「 L(ロー)」を“1”とする 22
UEC 正論理と負論理 このような電気回路を作った A 電気 回路 B C これはAND素子? 正論理で 考えると 0V→”0” 5V→”1” A B C 0V 0V 0V 0V 5V 0V 5V 0V 0V 5V 5V 5V 負論理で 考えると 0V→ ”1” 5V→ ”0” 真理値表は A B C 真理値表は A B C AND素子 0 0 0 OR素子 1 1 1 0 1 0 1 0 1 1 0 0 0 1 1 1 1 1 0 0 0 正負の論理が混在する場合には、 反転の小丸をその配線の端部に 付けることで示す慣習がある。 同じ電気回路でも,正論理と負論理では,機能が異なる 23
UEC NAND回路で基本論理回路を構築 NAND回路で,AND回路,OR回路,XOR回路,NOT回路と同じ機能を実現できる。 等 価 NOT回路 AND回路 OR回路 XOR回路 正論理 負論理 正論理 負論理 等 価 AND OR OR AND NANDで表したOR 回路と見くらべる 24
UEC 論理回路:「組合せ回路」 ⚫ 論理回路 ✓ 基本の論理演算(AND,OR,NOT) ✓ 基本の論理素子(AND,OR,NOT,XOR, NAND,NORの各素子) ⚫ デジタルIC(論理演算の電気回路での実現) ✓ 基本動作(電圧による“0”,“1”表現) ✓ 論理素子の電気回路例 ✓ デジタルICの種類(TTL,CMOS) ✓ 論理素子の電気回路例 • ゲート動作の利用例 ✓ 正論理と負論理 • 同じ電気回路でも,正論理と負論理では, 機能が異なる ✓ NAND回路で基本論理回路を実現 ⚫ 「論理回路:組合せ回路」と「順序回路」 ⚫ 組合せ回路 ① マルチプレクサ ② デマルチプレクサ ③ エンコーダ ④ デコーダ ⚫ ⚫ 順序回路 ✓ 基本論理素子:フリップフロップ ✓ カウンタ ✓ レジスタ 加減算回路 ✓ 半加算回路 ✓ 全加減算回路 25
UEC 論理回路:「組合せ回路」と「順序回路」がある 1.組合せ回路 出力 ⚫ 組合せ回路は、現在の入力の みで出力が決まる。 ⚫ 回路素子: AND,OR, など基 本となる論理演算を行う素子 から構成される。 入力 2.順序回路 出力 入力 D CK 内部状態 Q Q ⚫ 順序回路は,入力と内部状 態の両方により決まる。内 部に状態を保持しており、 過去の入力に影響される。 ⚫ 回路素子:AND,OR, など 基本となる論理演算と,フ リップフロップなどの記憶 素子から構成させる 26
UEC 組合せ回路 組合せ回路は,論理回路の基本で,論理素子(AND,OR,NOT,XOR)などを用い て論理演算を行う。以下にその例を示す。 ① マルチプレクサ(Multiplexer): 複数の入力から1つを選んで出力する。「データセレクタ」(Data selector)とも呼ばれる。 ② デマルチプレクサ(Demultiplexer): 1つの入力を複数の出力の内の1つに出力する。 ③ エンコーダ(Encoder): エンコードとは、符号化ともいい、デジタルデータを一定の規則に従っ て、目的に応じた符号に変換すること。 ④ デコーダ(Decoder): デコードとは、復号ともいい、エンコードの対義語。エンコードした情 報を元に戻すこと。 ⑤ 加減算器 : 2進数の加減算を行う。 27
UEC ①マルチプレクサ1 多数の入力端子(2 n) から選択信号によって,1入力を選択し, その入力信号を出力する回路 入力 D0 D0 D1 D2 ⋮ D1 Q D2 出力 Q D7 S2 S1 S0 選択信号 S1,S2,S3の入力パターによって 入力する端子Diが決まる ⋮ Siで選択 D7 S2 S1 S0 Q 0 0 0 D0 0 0 1 D1 ⋮ ⋮ ⋮ ⋮ 1 1 1 D7 28
UEC ①マルチプレクサ2 x ⑤ y ① ② x D0 Q D1 S (1) 選択信号 f ③ ④ (3) y f ① ②③ ④⑤ (2) 𝑥∙𝑆+𝑦∙𝑆 S 例:マルチプレクサ 2入力,1出力 ⚫ 入力は, ✓ “x” ✓ “y” ⚫ 出力は, “f” S f 0 x 1 y S=0 then f=x S=1 then f=y 29
UEC ②デマルチプレクサ1 1つの入力を,多数(2 n) の中から1つの出力端子を選択信号に よって選択し,入力信号を出力する回路 Q0 出力 入力 D Q0 Q1 Q2 ⋮ Q7 S2 S1 S0 選択信号 S1,S2,S3の入力パターによって 出力する端子Qiが決まる Q1 Q2 D ⋮ Q7 Siで選択 S2 S1 S0 D 0 0 0 Q0 0 0 1 Q1 ⋮ ⋮ ⋮ ⋮ 1 1 1 Q7 30
UEC ②デマルチプレクサ2 Q0 x D Q1 S ① ② ③ x a b 選択信号 (1) a ① ③ 𝑥∙𝑆 入力 S (2) ② b 𝑥∙𝑆 例:デマルチプレクサ 1入力,2出力 ⚫ 入力は,“x” ⚫ 出力は, ✓ a端子 ✓ b端子 S a b 0 x 0 1 0 x S=0 then a=x, b=0 S=1 then a=0, b=x 31
UEC ③エンコーダ1 10進数を2進数(3bit)に変換する回路をつくる。 1. 10進入力は,0~7までとする 入 力 D7 D6 D5 D4 D3 D2 D1 D0 0 0 1 0 0 0 0 0 2. 入力端子は,D0~D7あり,10進で“5”を示すとき, D5が“1”で,そのほかが“0”とする 3. 出力端子は,A2,A1,A0とする 変換回路 出 力 A2 A1 A0 1 0 1 4. 入力「D7~D0」と出力「A2,A1,A0」の関係を表に 示す 5. “A0”が“1”となるのは「D1,D3,D5,D7」が,”1“の 場合である。論理和で表現 6. “A1”,”A2”に対しても同様に以下のようになる 入出力対応表 D7 D6 D5 D4 D3 D2 D1 D0 A2 A1 A0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 1 1 1 A0: 𝑫𝟏 + 𝑫𝟑 + 𝑫𝟓 + 𝑫𝟕 論理和 A1: D𝟐 +D3+D6+D7 論理和 A2: D𝟒 + 𝑫𝟓 + 𝑫6+D7 論理和 変換回路は以上の論理演算を行う 回路を設計すればよい。 32
UEC ③エンコーダ2 前式の論理式を行う論理回路を示す。 D 7 D 6 D 5 D 4 D 3 D 2 D 1 D 0 A 2 A 1 A 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 1 1 1 入力 10進数 2進数 論理式 A0 𝑫𝟏 + 𝑫𝟑 + 𝑫𝟓 + 𝑫𝟕 A1 D𝟐 +D3+D6+D7 A2 D𝟒 + 𝑫𝟓 + 𝑫6+D7 (4入力OR回路を利用。2入力ORからも簡単に作れる) 一般に,エンコード(encode)とは、符号 化ともいい、デジタルデータを一定の規則に 従って、目的に応じた符号に変換することで ある。 出力 33
UEC ③エンコーダ3 10進数を4 ビットの2進数に変換の例 D A 3 A 2 A 1 A 0 D0 0 D0 0 0 0 0 D1 1 D1 0 0 0 1 D2 2 D2 0 0 1 0 D3 3 D3 0 0 1 1 D4 4 D4 0 1 0 0 D5 5 D5 0 1 0 1 D6 6 D6 0 1 1 0 D7 7 D7 0 1 1 1 D8 8 D8 1 0 0 0 D9 9 D9 1 0 0 0 N/C 論理式 𝐷1 + 𝐷3 + 𝐷5 + 𝐷7 + 𝐷9 A0 D2 +D3+D6+D7 A1 D4 + 𝐷5 + 𝐷6+D7 A2 𝐷8 + 𝐷9 A3 図表現が異なるが前の図と基本は同じ。 34
UEC ④デコーダ1 デコード(decode)は、復号ともいい、エンコードの対義語。エンコードした 情報を元に戻すこと。 2進数 ⚫ 2進数を10進数に変換 ✓ 3bit 2 進数を 10 進数に変換 するデコーダ A2 A1 A0 D 7 D 6 D 5 D 4 D 3 D 2 D 1 D 0 A 2 A 1 A 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 1 1 1 出力 A2 V A1 V 10進数 論理式 A0 V D0 𝐴2 ⋅ 𝐴1 ⋅ 𝐴0 D1 𝐴2 ⋅ 𝐴1 ⋅ 𝐴0 D2 𝐴2 ⋅ 𝐴1 ⋅ 𝐴0 D3 𝐴2 ⋅ 𝐴1 ⋅ 𝐴0 D4 D5 D6 D7 A2⋅ 𝐴1 ⋅ 𝐴0 A2⋅ 𝐴1 ⋅ 𝐴0 A2⋅ 𝐴1 ⋅ 𝐴0 A2⋅ 𝐴1 ⋅ 𝐴0 入力 35
UEC 論理回路:「順序回路」 ⚫ 論理回路 ⚫ デジタルIC(論理演算の電気回路での実現) ⚫ 「論理回路:組合せ回路」と「順序回路」 ⚫ 組合せ回路 ⚫ 順序回路 ✓ 基本論理素子:フリップフロップ • D フリップフロップの動作 • 電気回路素子 • フリップフロップの種類(D-FF,RS-FF,JKFF,T-FF) ✓ カウンタ ① 1/2逓減回路 ② 1/4逓減回路 ③ 4bitカウンタ ④ 16bitカウンタ ✓ レジスタ ① ラッチ(レジスタ) ② シフトレジスタ ⚫ 加減算回路 ✓ 半加算回路 ✓ 全加減算回路 ① n桁2進加算器の構成(16桁) ② 減算回路の構成 ③ 補数の作り方 ④ n桁の2進加減算器の構成(16桁) 36
UEC 順序論理回路 出力は,入力と内部状態(記憶素子)の両方により定まる論理回路 論理素子:基本論理素子+フリップフロップ(FlipFlop, 略:FF) 入力 D CK 内部状態 Q Q 例) ⚫ カウンタ(Counter)回路: クロックパルスを数えるための論 理回路。2進数、2進化10進数, n進数のカウンタが作れる 出力 ⚫ レジスタ(register)回路: 状態を保持する記憶回路。プロ セッサ内部のレジスタは、計算結 果を一時的に保持したり、メイン メモリを読み書きする際のアドレ スを保持や、プロセッサや周辺機 器の動作状態を保持・変更したり する。 37
UEC 順序論理回路 1. 組合わせ回路:入力が決まると出力が一意に決まる 出力 入力 論理回路 2. 順序論理回路:入力と内部状態によって,出力が決まる 入力 論理回路 記憶回路 出力A 出力B 出力n • 過去の状態 • 入力の履歴 38
UEC 基本論理素子:D フリップフロップ ① クロック(CK)入力でフリップフ ロップ(FF)の状態が変化する 情報(1bit)を"0"または"1"の 状態として保持する(記憶する) ことができる論理素子 セット 入力 クロック D S Q CK Q R ② CKの立上るタイミングでD入力を 読み込み,Qに出力する CKの立上り D入力の 読取り 出力 CK 反転 出力 リセット Dフリップフロップ D-FF (D flip-flop) D Q Q Qに出力 注)セット,リセット端子の説明は後述。本講義 では特に表記しないことにする 39
UEC D フリップフロップの動作 状態遷移表現 入力 クロック D=0 CK D CK Q 出力 Q 反転 出力 D-FF D=1 CK D=1 CK 0 1 D=0 CK D-FF 状態遷移図 CK D Qnext 立上り↑ 0 0 立上り↑ 1 1 立上り↑ なし X Q a. Q=0 で,D=0,CK立上り→ Q=0 b. Q=0 で,D=1,CK立上り→ Q=1 c. Q=1 で,D=1,CK立上り→ Q=1 d. Q=1 で,D=0,CK立上り→ Q=0 Qnext:CKの立上り↑で,出力Qの変化値 40
UEC D フリップフロップ 電源(+5V) 切かき 4Pin S GND(0V) 2Pin D Q 5Pin 3Pin CK Q R 6Pin 1Pin 7474 Dual D-FFs with Preset and Clear 注)Preset,Clearの小丸は負論理入力であることを示す 41
UEC D-FFのほかのフリップフロップ D-FFのほかにも,RS-FF,JK-FF,T-FFなどがある。 S Q Q R S R Q COMMENT 0 0 Q Hold(保持) 0 1 0 Set 1 0 1 Reset 1 1 1,1 禁止(Q=Q) J K Qnext comment 0 0 Q Hold(保持) 0 1 0 Set 1 0 1 Reset 1 1 Q Toggle(反転) FF回路は,入力信号を 取り去っても,その出 力状態を維持する。こ のためFF回路は、ラッ チ(latch:留め金)回路 とも呼ばれる。 RSフリップフロップ J Q CK K Q JKフリップフロップ JK-FFは、CKが入力 されたときのJとKの それぞれの入力状態 によって、その出力 が決定される。 CK毎に変化 42
UEC D-FFの利用回路 ⚫ 論理回路 ⚫ デジタルIC(論理演算の電気回路での実現) ⚫ 「論理回路:組合せ回路」と「順序回路」 ⚫ 組合せ回路 ⚫ 順序回路 ✓ 基本論理素子:フリップフロップ ✓ カウンタ ① 1/2逓減回路 ② 1/4逓減回路 ③ 4bitカウンタ ④ 16bitカウンタ ✓ レジスタ ① ラッチ(レジスタ) ② シフトレジスタ ⚫ 加減算回路 ✓ 半加算回路 ✓ 全加減算回路 • D-FFを利用してパルスを逓減する回路, パルス数を数え上げる回路を作成する • パルス数を逓減する回路は,コンピュー タや制御回路で水晶発振からのタイミン グ信号をていげんすることなどで利用す る。 • パルス数のカウントは例えば回転角度の 検出など多くの用途で利用されている。 43
UEC ①D-FFを用いたパルス数1/2 逓減回路 CK 出力 入力 D CK Q Q D Q Q Q ⚫ CK↑で出力が反転する。 これをパルス毎に繰返す ⚫ その結果,CKパルス数の 1/2逓減回路となる ① CK↑でDの値がQとなる ② すると,DはQに接続されてい るため,Dの入力値が反転する ③ その結果,CK↑のたびに出力Q の反転を繰り返す 44
UEC ②D-FFを用いたパルス数1/4 逓減回路 1/2 逓減 D1 CK1 Q1 Q1 1/2 逓減 D2 CK2 CK1 Q2 Q2 D1 CK2 Ck2↑でQ2が反転する ことの繰返し Q1 Q1 Q1 Q2 D2 Q2 1/2 逓減回路を直列に連結 45
UEC ③D-FFを用いた4進カウンタ 0 1 2 3 0 1 2 3 CK1 1 Q1 21 0 1 0 1 Q2 2 2 21 22 1 0 0 1 0 0 0 0 1 0 0 1 1 1 0 1 2 3 1 1 0 1 0 D1 CK1 パルス 数 Q2 Q1 0 0 0 1 0 1 2 1 0 3 1 1 Q1 D2 CK2 Q1 Q2 Q2 入力パルス数をカウントするカウンター回路 連結数を増やせば2nの2進カウンターが作れる 21 22 46
UEC ④D-FFを用いた16進カウンタ CK1 Q1 D2 CK2 Q1 21 0 1 2 3 5 CK3 Q2 22 Q1 4 D3 Q2 6 7 Q2 8 Q3 D4 CK4 Q3 23 Q3 Q4 Q4 24 Q4 9 10 11 12 13 14 15 CK1 CK1 Q1 CK2 Q2 CK3 Q3 CK4 次のD-FFのCK入力 D1 Q4 47
UEC ④D-FF 16進カウンタ 0 1 2 3 4 5 6 2進数 パルス数 7 8 9 10 11 12 13 14 15 0 CK1 2 進 表 現 Q1 0 0 Q2 0 0 Q3 0 0 Q4 0 0 21 22 23 24 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 48
UEC ①レジスタ(ex.4bit) 小容量の記憶回路の例としてレジスタを示す。 データ用 バス 16,32,64本など 多数線がある 16,32,64bit Registorが一般的 D CK ck↑でデータ保持 Q D CK Q Q0 Q D CK Q Q1 Q D CK Q Q Q Q2 Q3 ck↑のタイミングでデータバス上のデータを保持 多くのコンピュータは、CPUなどと、周辺機器や各種制御部を繋ぐためにバスを 使っている。バス (bus) とは、コンピュータの内部や外部との間でデータを交換す るための共用の経路である。この例では,バス上のデータをタイミングに応じて取 得する回路を示す。このような回路はラッチ(latch)とも呼ばれる。 49
UEC レジスタ(CPU) 50
UEC ②シフトレジスタ(ex.4bit) Q0 Serial In D CK Q Q Parallel Out Q1 D CK Q Q2 D Q CK Q Q3 D CK Q Q Q CK ck↑でdata-shift 1 シリアル入力 データはシリアルに入力端子 から入力され、クロック(CK) 信号が入力されるたびにフ リップフロップを1段ずつ進 んでいく D 0 1 0 1 1 0 Data取込み タイミング Q0 Q1 Q2 Q3 51
UEC 負論理入力(入力の小丸はなに?) この小丸は何? 小丸は,負論理 入力であること を示す。 D PRE CK Q Q CLR CLR入力 ① 電圧が5V→0Vなると,出力Qがクリ アされる。 CK ② レベル信号のため,0Vの間,出力は クリア。 D クリア Q 問題:③の4進カウンタを3進 カウンタにせよ。 ヒント:Q0=1, Q1=1となった時にDーFFをCLRする。 Q CLR 負論理 レベル 信号 52
UEC 加減算回路 ⚫ 論理回路 ⚫ デジタルIC(論理演算の電気回路での実現) ⚫ 「論理回路:組合せ回路」と「順序回路」 ⚫ 組合せ回路 ⚫ 順序回路 ✓ 基本論理素子:フリップフロップ ✓ カウンタ ✓ レジスタ ⚫ 加減算回路 ✓ 半加算回路 ✓ 全加減算回路 ① n桁2進加算器の構成(16桁) ② 減算回路の構成 ③ 補数の作り方 ④ n桁の2進加減算器の構成(16桁 53
UEC 加算回路(半加算回路) 1bit半加算真理値表 ⚫ 1bitでの演算(a+b) a b Sum 0 + 0 0 + 0 1 1 + 0 0 1 Carry a ⚫ 半加算器 + 1 a b C S 1 0 0 0 0 1 0 1 0 1 0 1 0 0 1 1 1 1 0 AND XOR b ✓ 1bit演算を行う ✓ 上位への桁上げ あり ✓ 下位からの桁上 げなし a C Carry 𝑎⨁𝑏 HA Half Adder S 半加算器(1bit) Sum Sum Half Adder Carry 𝑎⋅𝑏 b 1bit半加算回路 54
UEC 加算回路(全加算回路) ⚫ 全加算器 入力 a ✓ 1bit演算を行う b ✓ 上位への桁上げあり 下位からの 桁上げ ✓ 下位からの桁上げあり a HA C b d Carry C Carry HA d FA Full Adder S 全加算器(1bit) Sum 和 S Sum Full Adder 55
UEC n桁2進加算器の構成(16桁) ⚫ n桁2進加算器 ✓ FA(Full Adder) をn個繋ぎ合わ せることで実現 できる ⚫ 計算 ✓ 入力A (16bit) A(a15 a14 a13…a2 a1 a0) ✓ 入力B C15 FA S15 オーバーフロー ビット (16bit) B(b15 b14 b13…b2 b1 b0) ✓ 出力S (16bit) S(s 15 s 14 s 13 …s 2 s 1 s 0 ) ✓ 減算器は次の頁 a15 b15 (16bit) S=A+B a14 b14 d15 C14 FA a1 b1 d14 ・・・ C1 S14 FA S1 a0 b0 d1 C0 FA d0 S0 出力(和) 56
UEC 減算回路の構成(負数の加算) 1. 減算は,負の数の加算とする 𝑎 − 𝑏 = 𝑎 + (−𝑏) 2. 2進数で負の数をどう表すか 負の数は補数表現で表す 3. 2進数の補数表現 𝑋: n桁の2進数 𝑋 = 2𝑛 − 𝑋 𝑋 = 𝑋の補数とする 例)4桁の2進数について例を示す 𝑋 = 0011 𝑋 = 24 − 𝑋 = 10000 − 0011 = 1101 -3 3 検算 𝑋 + 𝑋 = 0011 + 1101 = 10000 無視 下位4桁を取る 0 57
UEC 減算回路の構成(負数の作り方)1 例)4桁(n=4)の補数を作る 𝑋 = − 𝑋 = 10000 − 𝑋 𝑋 = 1111 − 𝑋 + 1 と書換 24 1111 − 𝑋 = 𝑋ത と置くと 𝑋ത はXの全ビットを反転させたもの 𝑋 = 𝑋ത + 1 Xの全ビット反転+1 ⚫ n桁の場合でも同じ 補数 𝑋 = 𝑋ത + 1 全ビットの反転 +1 例) 𝑋 = 0011 3 全ビット 𝑋ത = 0011 = 1100 反転 𝑋 = 𝑋ത + 1 = 1100 + 1 -3 = 1101 +1 5 𝑋 = 0101 全ビット ത 反転 𝑋 = 0101 = 1010 𝑋 = 𝑋ത + 1 = 1010 + 1 = 1011 -5 +1 Xのビットを全て反転させ, +1とすればよい 58
UEC 減算回路の構成(負数の作り方)2 補数:(1)Xのビットを全て反転させ,(2)+1とする (1)Xのビットを全て反転 y=0 2進ビット x f y 制御入力 XOR y=1 x y f 0 0 0 x f x f 0 1 1 0 0 0 1 1 0 1 1 1 1 0 1 1 0 非反転 XOR を使えば, 2 進数の全bit を 反転/非反転とす ることができる 反転 (2)+1とする a15 b15 FA a14 b14 d15 FA C14 C15 S15 a 1 b1 d14 FA ・・・ C1 S14 a 0 b0 d1 FA C0 S1 d0 d0を“1”と すればよい S0 59
UEC n桁の2進加減算器の構成(16桁) 1. 加算:制御信号が”0” S=A+B 2. 減算:制御信号が”1” S=A-B ① XORは反転素子となりB(b15 b14 b13…b2 b1 b0)の全ビットが反転 𝐵ത ② d0=1となり,最下位桁に桁上げがあること,”+1”に相当 = 𝐵ത + 1 ③ この結果入力Bは補数となる 𝐵 ④ よって,S=A+(-B)が実現。即ち減算となる a15 b15 a0 b0 a1 b1 a14 b14 制御信号 オーバーフロー ビット C15 0: add 1: sub FA S15 d15 C14 FA d14 ・・・ FA C1 S14 S1 d1 C0 FA d0 S0 加減算結果出力 60
UEC おわり 61