電気工学通論Ⅱsakai/tsuron2/tsuron6.pdf電気工学通論Ⅱ 6.2...

29
東大・坂井 電気工学通論電気工学通論(6) 坂井 修一 東京大学大学院 情報理工学系研究科 電子情報学専攻 東京大学 工学部 電子情報工学科 工学部講義 スケジュール 基本的な順序回路

Transcript of 電気工学通論Ⅱsakai/tsuron2/tsuron6.pdf電気工学通論Ⅱ 6.2...

Page 1: 電気工学通論Ⅱsakai/tsuron2/tsuron6.pdf電気工学通論Ⅱ 6.2 非同期カウンタ(asynchronous counter) エッジトリガ形JK-FF → J=1、K=1: クロックの立ち下がりで値が反転する

東大・坂井電気工学通論Ⅱ

電気工学通論Ⅱ(6)

坂井 修一東京大学大学院 情報理工学系研究科 電子情報学専攻東京大学 工学部 電子情報工学科

工学部講義

• スケジュール

• 基本的な順序回路

Page 2: 電気工学通論Ⅱsakai/tsuron2/tsuron6.pdf電気工学通論Ⅱ 6.2 非同期カウンタ(asynchronous counter) エッジトリガ形JK-FF → J=1、K=1: クロックの立ち下がりで値が反転する

電気工学通論Ⅱ

はじめに

本講義の目的

– ディジタル回路とコンピュータアーキテクチャの基礎を学習する

時間・場所

– 火曜日 8:30 - 10:15、工学部2号館213

ホームページ(ダウンロード可能)

– url: http://www.mtl.t.u-tokyo.ac.jp/~sakai/tsuron2/

教科書

– 坂井修一『論理回路入門』(培風館)

– 坂井修一 『コンピュータアーキテクチャ』(コロナ社)

東大・坂井

Page 3: 電気工学通論Ⅱsakai/tsuron2/tsuron6.pdf電気工学通論Ⅱ 6.2 非同期カウンタ(asynchronous counter) エッジトリガ形JK-FF → J=1、K=1: クロックの立ち下がりで値が反転する

電気工学通論Ⅱ

講義の概要と予定(1/2)

1.ディジタル回路入門

ディジタルとアナログ、2進数、補数表現、四則演算

2.論理演算

論理演算とは、3つの基本論理演算、NORとNAND、完備性、ディジタル回路の表現、ブール代数、標準形

3.組み合わせ回路の構成法

真理値表と組合せ回路、組合せ回路の簡単化

4.組合せ回路の実例

加算器、補数、減算器、ALU、デコーダ、セレクタなど

5.フリップフロップ

FF、SRラッチ、Dラッチ、非同期と同期、SR-FF、D-FF、

マスタスレーブ形とエッジトリガ形, JK-FF, レジスタ

6.基本的な順序回路

7.一般的な順序回路の作り方

東大・坂井

Page 4: 電気工学通論Ⅱsakai/tsuron2/tsuron6.pdf電気工学通論Ⅱ 6.2 非同期カウンタ(asynchronous counter) エッジトリガ形JK-FF → J=1、K=1: クロックの立ち下がりで値が反転する

電気工学通論Ⅱ

講義の概要と予定(2/2)

8.コンピュータアーキテクチャ入門

計算のサイクル、主記憶装置、メモリの構成と分類、レジスタファイル、命令、命令実行の仕組み、実行サイクル、算術論理演算命令、シーケンサ、条件分岐命令

9.命令セットアーキテクチャ

操作とオペランド、命令の表現形式、アセンブリ言語、命令セット、算術論理演算命令、データ移動命令、分岐命令、アドレシング、サブルーチン、RISCとCISC

10.パイプライン

11.キャッシュと仮想記憶

12.入出力と周辺装置

周辺装置、ディスプレイ、二次記憶装置、ハードウェアインタフェース、割り込みとポーリング、アービタ、DMA、例外処理試験: 1月14日 8:30~10:00成績: 出席(小テスト)+試験 4年生:追試・レポート無し

東大・坂井

Page 5: 電気工学通論Ⅱsakai/tsuron2/tsuron6.pdf電気工学通論Ⅱ 6.2 非同期カウンタ(asynchronous counter) エッジトリガ形JK-FF → J=1、K=1: クロックの立ち下がりで値が反転する

復習: フリップフロップ 1ビットの記憶回路

電気工学通論Ⅱ 東大・坂井

S R Next Q Next Q 意味

0 0 Q Q 前の状態

0 1 0 1 リセット

1 0 1 0 セット

1 1 0 0 禁止入力

Q

R

S

Q

R

S Q

Q

SRラッチ

S=R=0のときに、値を保持する

Page 6: 電気工学通論Ⅱsakai/tsuron2/tsuron6.pdf電気工学通論Ⅱ 6.2 非同期カウンタ(asynchronous counter) エッジトリガ形JK-FF → J=1、K=1: クロックの立ち下がりで値が反転する

S=R=0 のときの回路の状態

電気工学通論Ⅱ 東大・坂井

Q

R

S

Q

R

S Q

Q

0

0

0

0

Q

Q

互いが互いを否定しあって、ループを作っている

1ビットの値を保持している

Page 7: 電気工学通論Ⅱsakai/tsuron2/tsuron6.pdf電気工学通論Ⅱ 6.2 非同期カウンタ(asynchronous counter) エッジトリガ形JK-FF → J=1、K=1: クロックの立ち下がりで値が反転する

電気工学通論Ⅱ

6.基本的な順序回路

6.1 順序回路とは

状態をもつ論理回路のこと。メモリ(記憶装置)を含む

組合せ回路: 入力 → 出力

順序回路: (入力、状態) → (出力、次の状態)

組合せ回路

入力0入力1

入力N-1

出力0出力1

出力N-1

メモリ

東大・坂井

メモリ

≌ フリップフロップを並べたもの

Page 8: 電気工学通論Ⅱsakai/tsuron2/tsuron6.pdf電気工学通論Ⅱ 6.2 非同期カウンタ(asynchronous counter) エッジトリガ形JK-FF → J=1、K=1: クロックの立ち下がりで値が反転する

電気工学通論Ⅱ

6.2 非同期カウンタ (asynchronous counter)

エッジトリガ形JK-FF→ J=1、K=1: クロックの立ち下がりで値が反転する→ 一つ右のFFは周期が2倍の動作をする→ カウンタになる(アップカウンタ)

J

Q

Q

K

SET

CLR

high

J

Q

Q

K

SET

CLR

high

J

Q

Q

K

SET

CLR

high

J

Q

Q

K

SET

CLR

high

clock

clear

D0 D1 D2 D3

東大・坂井

Page 9: 電気工学通論Ⅱsakai/tsuron2/tsuron6.pdf電気工学通論Ⅱ 6.2 非同期カウンタ(asynchronous counter) エッジトリガ形JK-FF → J=1、K=1: クロックの立ち下がりで値が反転する

電気工学通論Ⅱ

非同期カウンタの動作 (1)

J

Q

Q

K

SET

CLR

high

J

Q

Q

K

SET

CLR

high

J

Q

Q

K

SET

CLR

high

J

Q

Q

K

SET

CLR

high

clock

clear

D0 D1 D2 D3

東大・坂井

基本

① JK-FF: J=K=1なので、クロック入力の立ち下げで反転する

② 初段はclock = 立ち下げで値が反転

動作:クロックが立ち下がるたびに変化(左が下のケタ)

0000→1000→0100→1100→0010→1010→0110→1110→0001

→1001→0101→1101→0011→1011→0111→1111→0000

Page 10: 電気工学通論Ⅱsakai/tsuron2/tsuron6.pdf電気工学通論Ⅱ 6.2 非同期カウンタ(asynchronous counter) エッジトリガ形JK-FF → J=1、K=1: クロックの立ち下がりで値が反転する

電気工学通論Ⅱ

非同期カウンタの動作 (2)

タイミング図(タイミングチャート)

– 複数の信号の関係や振る舞いを時間軸に表した図

東大・坂井

clock

D0

D1

D2

D3

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0

0

0

0

0

1

0

0

0

1

1

0

0

1

0

1

0

1

1

1

0

1

0

0

1

0

1

0

1

0

0

1

1

1

1

1

1

0

1

0

0

0

1

1

0

0

0

1

0

0

0

0

1

0

1

0

1

1

0

1

1

0

1

1

1

エッジトリガ形JK-FF:クロックの立ち下がりで値が反転する→ 一つ右のFFは周期が2倍の動作をする→ カウンタになる(アップカウンタ)

Page 11: 電気工学通論Ⅱsakai/tsuron2/tsuron6.pdf電気工学通論Ⅱ 6.2 非同期カウンタ(asynchronous counter) エッジトリガ形JK-FF → J=1、K=1: クロックの立ち下がりで値が反転する

同期? 非同期?

個々のフリップフロップは同期式– エッジトリガ形JK-FF

クロックは初段のFFだけに入る– すべてのフリップフロップが一つのクロックに同期しているわけで

はない

→ この回路は、非同期式 である

電気工学通論Ⅱ 東大・坂井

J

Q

Q

K

SET

CLR

high

J

Q

Q

K

SET

CLR

high

J

Q

Q

K

SET

CLR

high

J

Q

Q

K

SET

CLR

high

clock

clear

D0 D1 D2 D3

Page 12: 電気工学通論Ⅱsakai/tsuron2/tsuron6.pdf電気工学通論Ⅱ 6.2 非同期カウンタ(asynchronous counter) エッジトリガ形JK-FF → J=1、K=1: クロックの立ち下がりで値が反転する

電気工学通論Ⅱ

非同期ダウンカウンタ 降順に数を生成するカウンタ

各段のクロックの入力をQではなく、Qにすればよい

D0 D1 D2

clock

D0

D1

D2

D3

(a) 回路図

(b) タイミング図

0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

J

Q

Q

K

SET

CLR

high

J

Q

Q

K

SET

CLR

high

J

Q

Q

K

SET

CLR

high

J

Q

Q

K

SET

CLR

high

clock

clear

D0 D1 D2 D3

東大・坂井

Page 13: 電気工学通論Ⅱsakai/tsuron2/tsuron6.pdf電気工学通論Ⅱ 6.2 非同期カウンタ(asynchronous counter) エッジトリガ形JK-FF → J=1、K=1: クロックの立ち下がりで値が反転する

非同期ダウンカウンタの動作

基本

① JK-FF: J=K=1なので、クロック入力の立ち下げで反転する

② 初段はclock = clock立ち上げで値が反転

動作:Qが立ち下がるたび=Qが立ちあがるたびに次段FFが変化(左が下のケタ)

0000→1111→0111→1011→0011→1101→0101→1001→

0001→1110→0110→1010→0010→1100→0100→1000→

0000電気工学通論Ⅱ 東大・坂井

D0 D1 D2

J

Q

Q

K

SET

CLR

high

J

Q

Q

K

SET

CLR

high

J

Q

Q

K

SET

CLR

high

J

Q

Q

K

SET

CLR

high

clock

clear

Page 14: 電気工学通論Ⅱsakai/tsuron2/tsuron6.pdf電気工学通論Ⅱ 6.2 非同期カウンタ(asynchronous counter) エッジトリガ形JK-FF → J=1、K=1: クロックの立ち下がりで値が反転する

電気工学通論Ⅱ

非同期アップダウンカウンタ 制御信号によって昇順・降順を変えられるカウンタ

JK-FFの間は、2入力セレクタ(=マルチプレクサ)の回路が入る

コントロール端子: H=アップ、L=ダウン

J

Q

Q

K

SET

CLR

high

J

Q

Q

K

SET

CLR

high

J

Q

Q

K

SET

CLR

J

Q

Q

K

SET

CLR

clock

clear

D0 D3

セレクタ

D1

セレクタ

high

D2

セレクタ

high

up/down

セレクタ

=

東大・坂井

Page 15: 電気工学通論Ⅱsakai/tsuron2/tsuron6.pdf電気工学通論Ⅱ 6.2 非同期カウンタ(asynchronous counter) エッジトリガ形JK-FF → J=1、K=1: クロックの立ち下がりで値が反転する

電気工学通論Ⅱ

N進(N≠2べき)非同期カウンタ

0~Nー1までを数える回路

2ベキのカウンタで、Nになったときにリセットする回路をつければよい。Nの値を示す細いパルスが出る点に注意が必要

J

Q

Q

K

SET

CLR

high

J

Q

Q

K

SET

CLR

high

J

Q

Q

K

SET

CLR

high

J

Q

Q

K

SET

CLR

high

clock

clear

D0 D1 D2 D3

clock

D0

D1

D2

D3

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6

init

(a) 論理回路

(b) タイミング図

init

10進非同期アップカウンタ

東大・坂井

Page 16: 電気工学通論Ⅱsakai/tsuron2/tsuron6.pdf電気工学通論Ⅱ 6.2 非同期カウンタ(asynchronous counter) エッジトリガ形JK-FF → J=1、K=1: クロックの立ち下がりで値が反転する

電気工学通論Ⅱ

非同期カウンタの問題点

1. フリップフロップの伝播遅延が累積する。後段にいくほど遅延の影響が出る

2. N進カウンタ(N≠2冪)では、細いパルスが出る– 値がNにならないとクリアがかからないため

東大・坂井

D0

D1

D2

D3

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6

init

Page 17: 電気工学通論Ⅱsakai/tsuron2/tsuron6.pdf電気工学通論Ⅱ 6.2 非同期カウンタ(asynchronous counter) エッジトリガ形JK-FF → J=1、K=1: クロックの立ち下がりで値が反転する

電気工学通論Ⅱ

6.3 同期カウンタ (synchronous counter)

原理:自分の値が反転するのは、自分より小さい桁の数がすべて1のときである。このときだけ、J、Kに1を入れればカウンタになる

J

Q

Q

K

SET

CLR

high

J

Q

Q

K

SET

CLR

J

Q

Q

K

SET

CLR

J

Q

Q

K

SET

CLR

clock

clear

D0 D1 D2 D3

clock

D0

D1

D2

D3

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0

(a) 論理回路

(b) タイミング図

東大・坂井

Page 18: 電気工学通論Ⅱsakai/tsuron2/tsuron6.pdf電気工学通論Ⅱ 6.2 非同期カウンタ(asynchronous counter) エッジトリガ形JK-FF → J=1、K=1: クロックの立ち下がりで値が反転する

同期カウンタの動作 すべてのフリップフロップは同一のクロックで動作する

(=「同期」の定義)

値の反転をするのは、自分より下のケタがすべて1のときだけ

– 下のケタの出力すべてのANDをJとKの入力とすればよい

電気工学通論Ⅱ 東大・坂井

J

Q

Q

K

SET

CLR

high

J

Q

Q

K

SET

CLR

J

Q

Q

K

SET

CLR

J

Q

Q

K

SET

CLR

clock

clear

D0 D1 D2 D3

Page 19: 電気工学通論Ⅱsakai/tsuron2/tsuron6.pdf電気工学通論Ⅱ 6.2 非同期カウンタ(asynchronous counter) エッジトリガ形JK-FF → J=1、K=1: クロックの立ち下がりで値が反転する

電気工学通論Ⅱ

同期ダウンカウンタと同期アップダウンカウンタ

同期ダウンカウンタ

– 各桁のJ、Kに入力するのを、下の桁のQのANDではなく、QのANDにすればよい

同期アップダウンカウンタ

– アップのときには各桁のJ、Kへの入力を「下の桁のQのAND」とし、ダウンのときには「下の桁のQのAND」にするセレクタ(マルチプレクサ)をつければよい

東大・坂井

Page 20: 電気工学通論Ⅱsakai/tsuron2/tsuron6.pdf電気工学通論Ⅱ 6.2 非同期カウンタ(asynchronous counter) エッジトリガ形JK-FF → J=1、K=1: クロックの立ち下がりで値が反転する

電気工学通論Ⅱ

N進同期カウンタ

0~Nー1までを数える回路

2ベキのカウンタで、N-1になったときに次のクロックですべてのフリップフロップの値を0にする回路をつければよい。非同期カウンタのように細いパルスは出ない

J

Q

Q

K

SET

CLR

high

J

Q

Q

K

SET

CLR

J

Q

Q

K

SET

CLR

J

Q

Q

K

SET

CLR

clock

clear

D0 D1 D2 D3

clock

D0

D1

D2

D3

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6

(a) 論理回路

(b) タイミング図

FF0 FF1 FF2 FF3

同期10進カウンタ

東大・坂井

Page 21: 電気工学通論Ⅱsakai/tsuron2/tsuron6.pdf電気工学通論Ⅱ 6.2 非同期カウンタ(asynchronous counter) エッジトリガ形JK-FF → J=1、K=1: クロックの立ち下がりで値が反転する

カウンタの用途

センサと組み合わせて個数を自動で数える

– 製品出荷数

– 駐車場: 空車? 満車?

– 自動販売機(もっと複雑な論理回路になる)

– 歩数計

クロックの分周

– 2倍の周期、4倍の周期。。。

– タイマー機能

• ストップウォッチ

電気工学通論Ⅱ 東大・坂井

Page 22: 電気工学通論Ⅱsakai/tsuron2/tsuron6.pdf電気工学通論Ⅱ 6.2 非同期カウンタ(asynchronous counter) エッジトリガ形JK-FF → J=1、K=1: クロックの立ち下がりで値が反転する

電気工学通論Ⅱ

6.4 シフトレジスタ各フリップフロップの情報を順次隣のフリップフロップに移すことのできる回路

J

Q

Q

K

SET

CLR

J

Q

Q

K

SET

CLR

J

Q

Q

K

SET

CLR

J

Q

Q

K

SET

CLR

clock

clear

D0 D1 D2 D3

clock

D0

D1

D2

D3

(a) 論理回路

(b) タイミング図

A

clear

A

東大・坂井

Page 23: 電気工学通論Ⅱsakai/tsuron2/tsuron6.pdf電気工学通論Ⅱ 6.2 非同期カウンタ(asynchronous counter) エッジトリガ形JK-FF → J=1、K=1: クロックの立ち下がりで値が反転する

シフトレジスタの構成と動作

構成

– 同期式フリップフロップを直列につなぐ

動作

– クロックが来るたびに、値が1ビットずつ右に送られる

注意

– クロックは正確に入っているか?

– 右のFFのクロックが左のものより遅く入ると、2ビット左の値が入ってしまう!

電気工学通論Ⅱ 東大・坂井

Page 24: 電気工学通論Ⅱsakai/tsuron2/tsuron6.pdf電気工学通論Ⅱ 6.2 非同期カウンタ(asynchronous counter) エッジトリガ形JK-FF → J=1、K=1: クロックの立ち下がりで値が反転する

電気工学通論Ⅱ

並列入力直列出力型シフトレジスタ

J

Q

Q

K

SET

CLR

J

Q

Q

K

SET

CLR

J

Q

Q

K

SET

CLR

J

Q

Q

K

SET

CLR

clock

clear

DO0 DO1 DO2 DO3

A

DI1 DI2 DI3DI0

select

Computer 1 Computer 2

PISO型シフトレジスタ SIPO型シフトレジスタ

計算機間の直列データ転送

東大・坂井

Page 25: 電気工学通論Ⅱsakai/tsuron2/tsuron6.pdf電気工学通論Ⅱ 6.2 非同期カウンタ(asynchronous counter) エッジトリガ形JK-FF → J=1、K=1: クロックの立ち下がりで値が反転する

並列 ⇔ 直列 変換の意味

データ処理や高速バスはビット並列

– ALUや実数の計算

– メモリバス

データ転送はビット直列が有利な場合がある

– Ethernet

– USB

電気工学通論Ⅱ 東大・坂井

Page 26: 電気工学通論Ⅱsakai/tsuron2/tsuron6.pdf電気工学通論Ⅱ 6.2 非同期カウンタ(asynchronous counter) エッジトリガ形JK-FF → J=1、K=1: クロックの立ち下がりで値が反転する

電気工学通論Ⅱ

6.5 リングカウンタ (ビットローテータ)

N段シフトレジスタの1段だけに“1”を与え、他は0としておき、この“1”の位置をクロックパルスによってシフトすることで計数を行うカウンタ

自己補正形: 1が複数入っても修復できる

J

Q

Q

K

SET

CLR

J

Q

Q

K

SET

CLR

J

Q

Q

K

SET

CLR

J

Q

Q

K

SET

CLR

clock

D0 D1 D2 D3

clock

D0

D1

D2

D3

(a) 論理回路

(b) タイミング図

修復時間 カウンタ動作

東大・坂井

Page 27: 電気工学通論Ⅱsakai/tsuron2/tsuron6.pdf電気工学通論Ⅱ 6.2 非同期カウンタ(asynchronous counter) エッジトリガ形JK-FF → J=1、K=1: クロックの立ち下がりで値が反転する

リングカウンタの動作(1)

修復

– 1が立っているFFがあるときは、NOR回路によって初段のFFが0になる(D0=0)

– クロックの立ち下げごとに0が右のFFに伝播していく

– D2まで0になったところで、初段の入力がJ=1、K=0となる

電気工学通論Ⅱ 東大・坂井

J

Q

Q

K

SET

CLR

J

Q

Q

K

SET

CLR

J

Q

Q

K

SET

CLR

J

Q

Q

K

SET

CLR

D0 D1 D2 D3

Page 28: 電気工学通論Ⅱsakai/tsuron2/tsuron6.pdf電気工学通論Ⅱ 6.2 非同期カウンタ(asynchronous counter) エッジトリガ形JK-FF → J=1、K=1: クロックの立ち下がりで値が反転する

リングカウンタの動作(2)

カウンタ動作

– D2まで0になったところで、初段の入力がJ=1、K=0となり、初段のFFが1となる(D0=1、 D1=D2=D3=0)

– 以下は、シフトレジスタの動作となるが、0001となったところで、次に再び初段のFFが1となる

電気工学通論Ⅱ 東大・坂井

J

Q

Q

K

SET

CLR

J

Q

Q

K

SET

CLR

J

Q

Q

K

SET

CLR

J

Q

Q

K

SET

CLR

D0 D1 D2 D3

Page 29: 電気工学通論Ⅱsakai/tsuron2/tsuron6.pdf電気工学通論Ⅱ 6.2 非同期カウンタ(asynchronous counter) エッジトリガ形JK-FF → J=1、K=1: クロックの立ち下がりで値が反転する

電気工学通論Ⅱ

問題1. 非同期14進カウンタの回路図を書き、タイミング図を

示して動作を確認せよ

2. 同期16進アップカウンタの回路図を書き、タイミング図を示して動作を確認せよ

3. 4ビット直列入力並列出力シフトレジスタの回路図を書け。最下位の値を適当なパターンでセットし続けたとし、タイミング図を示して動作を確認せよ

4. 非同期式で、「7から3までの数を降順で出力し、3の次には7を出力する」ことを無限に繰り返す回路を書け

5. 同期式で、初期化後14クロックの区間だけ1を出力し、以後は0を出力し続ける回路を書け

6. 順番に 000 → 001 → 011 → 010 → 110 → 111 → 101 → 100 → 000と計数するカウンタ(グレイコードカウンタ)の回路図を書け。リプルでも並列でもよい

東大・坂井