91
2006/10/31 ©2006, Masaharu Imai 1 4章 カウンタ 大阪大学 大学院情報科学研究科 今井 正治 [email protected] http://www-ise1.ist.osaka-u.ac.jp/~imai/

大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 1

第4章 カウンタ

大阪大学 大学院情報科学研究科

今井 正治

[email protected]://www-ise1.ist.osaka-u.ac.jp/~imai/

Page 2: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 2

講義内容

カウンタとは何か?非同期式カウンタと同期式カウンタ

アップダウン・カウンタ

N 進カウンタ

その他のカウンタ

まとめ

Page 3: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 3

カウンタとは?パルスの個数の計測

基本は Tフリップ・フロップ

カウンタの応用ディジタル値の計測

周期的な信号の分周

タイマー

カウンタの機能の分類アップ・カウンタ(Up Counter)/ダウン・カウンタ(Down Counter)非同期式(Asynchronous)カウンタ/同期式(Synchronous)カウンタ

Page 4: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 4

Tフリップ・フロップ(TFF)

入力パルスが入るたびに出力が反転

CLR T Q’

‘0’ ー ‘0’

‘1’ QCLR

T Q

TFF

Page 5: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 5

DFFによるTFFの実現

D Q

DFFCK QCLR

T_in

Q_out

clear

Page 6: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 6

JKFFによるTFFの実現

J Q

CK

JKFF

QCLR

K

Q_outT_in

clear

‘1’

‘1’

J Q

CK

JKFF

QCLR

K

Q_outT_in

clear

Page 7: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 7

講義内容

カウンタとは何か?非同期式カウンタと同期式カウンタ

非同期式カウンタ

同期式カウンタ

アップダウン・カウンタ

N 進カウンタ

その他のカウンタ

まとめ

Page 8: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 8

TFFを用いた非同期式カウンタの実装

Ripple Carry Counter

T

CLR

Q

Q2 Q3

T

TFF

T

CLR

Q

Q1

T

CLR

Q

Q0

T

CLR

Q

CLR

TFFTFFTFF

Page 9: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 9

JKFFを用いた非同期式カウンタの実装

J

K

CKQ

Q

J

K

CKQ

Q

‘1’ ‘1’Q0

J

K

CKQ

Q

‘1’Q1

J

K

CKQ

Q

‘1’Q2 Q3

T

CLRCLR CLR CLRCLR

Page 10: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 10

非同期式カウンタの動作

T

Q0

Q1

Q2

Q3

Page 11: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 11

非同期式カウンタでの遅延

T

Q0

Q1

Q2

Q3

Page 12: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 12

非同期式カウンタの問題点

段数が多い場合に,遅延時間が長くなる

出力に期待しない遷移が現れる

出力をデコードして使用する場合には,ハザードの原因になり得る

⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜

⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜

⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜

⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜

⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜

=

⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜

1

0

0

0

0

0

0

0

0

1

0

0

0

1

1

0

0

1

1

1

Q

Q

Q

Q

3

2

1

0

Page 13: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 13

講義内容

カウンタとは何か?非同期式カウンタと同期式カウンタ

非同期式カウンタ

同期式カウンタ

アップダウン・カウンタ

N 進カウンタ

その他のカウンタ

まとめ

Page 14: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 14

同期式カウンタ

後段になるほど,ANDゲートの入力数が増える

J

K

CKQ

Q

J

K

CKQ

Q

‘1’

Q1

J

K

CKQ

Q

Q2

J

K

CKQ

Q

Q3 Q4

T

Page 15: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 15

リップル・キャリー型同期式カウンタ

ゲートの入力線数は一定

J

K

CKQ

Q

J

K

CKQ

Q

‘1’

Q1

J

K

CKQ

Q

Q2

J

K

CKQ

Q

Q3 Q4

T

Page 16: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 16

同期式カウンタと非同期式カウンタの比較

非同期式カウンタ 同期式カウンタ

特徴

回路構成は簡単

クロック(カウント信号)の変化はFFのスイッチング遅延時間の

限界まで早くできる

カウント値が安定するのに必要な時間が長い

出力にハザードが発生する

回路構成は少し複雑

クロックはキャリーの伝播遅延時間とFFのスイッチング遅延時間で決まる(非同期式より遅い)

カウント値が安定するのに必要な時間が短い

出力にハザードが発生しない

用途

低速の回路

高い周波数のクロックの分周回路

通常のディジタル回路

Page 17: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 17

講義内容

カウンタとは何か?非同期式カウンタと同期式カウンタ

アップダウン・カウンタ非同期式ダウン・カウンタ

同期式ダウン・カウンタ

アップ・ダウン・カウンタ

N 進カウンタ

その他のカウンタ

まとめ

Page 18: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 18

アップ・カウンタのエンティティ記述

library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;

entity up_counter_16 isport (

clock: in std_logic;clr_b: in std_logic;q_out: out std_logic_vector ( 3 downto 0 ) );

end entity up_counter_16;

Page 19: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 19

アップ・カウンタのビヘイビア記述

architecture behavior of up_counter_16 isbegin

process( clock, clr_b ) variable reg: std_logic_vector ( 3 downto 0 );

beginif ( clr_b = '0' ) then

reg := "0000"; elsif ( clock'event and clock = '1' ) then

reg := reg + 1;end if;q_out <= reg;

end process;end architecture behavior;

Page 20: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 20

非同期式アップカウンタの基本構成

J

K

CK

Q

Q

J

K

CK

Q

Q

‘1’ ‘1’Q0

J

K

CK

Q

Q

‘1’Q1

J

K

CK

Q

Q

‘1’Q2 Q3

T

Page 21: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 21

非同期式アップ・カウンタの動作

T

Q0

Q1

Q2

Q3

Page 22: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 22

ダウン・カウンタのエンティティ記述

library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;

entity dn_counter_16 isport (

clock: in std_logic;clr_b: in std_logic;q_out: out std_logic_vector ( 3 downto 0 ) );

end entity dn_counter_16;

Page 23: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 23

ダウン・カウンタのビヘイビア記述

architecture behavior of dn_counter_16 isbegin

process( clock, clr_b ) variable reg: std_logic_vector ( 3 downto 0 );

beginif ( clr_b = '0' ) then

reg := "0000"; elsif ( clock'event and clock = '1' ) then

reg := reg - 1;end if;q_out <= reg;

end process;end architecture behavior;

Page 24: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 24

非同期式ダウン・カウンタの構成方法

方法1: FFの出力信号の変換

内部状態の「1の補数」を出力

方法2: FFへの逆位相入力

Qを次段のクロック信号に加える

方法3: FFの動作モードの変更

立上りエッジトリガFFを利用

Page 25: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 25

1の補数

10進数バイナリコード

1の補数 10進数バイナリコード

1の補数

1000 0111

0110

0101

0100

0011

0010

0001

0000

1001

1010

1011

1100

1101

1110

1111

8

9

10

11

12

13

14

15

0 0000 1111

1 0001 1110

2 0010 1101

3 0011 1100

4 0100 1011

5 0101 1010

6 0110 1001

7 0111 1000

Page 26: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 26

1の補数を用いた非同期式

ダウン・カウンタの実現

内部状態の「1の補数」を出力

J

K

CK

Q

Q

J

K

CK

Q

Q

‘1’ ‘1’

Q0

J

K

CK

Q

Q

‘1’

Q1

J

K

CK

Q

Q

‘1’

Q2 Q3

T

Page 27: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 27

‘1’ ‘0’ ‘1’ ‘0’

‘1’ ‘0’

‘1’ ‘0’ ‘1’ ‘0’ ‘1’ ‘0’ ‘1’ ‘0’

‘1’ ‘0’ ‘1’ ‘0’ ‘1’ ‘0’ ‘1’ ‘0’ ‘1’ ‘0’ ‘1’ ‘0’‘1’ ‘0’ ‘1’ ‘0’

1の補数を用いた非同期式

ダウン・カウンタの動作

T

Q0

Q1

Q2

Q3

Q0

Q1

Q2

Q3

Page 28: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 28

逆位相入力を用いた非同期式ダウン・カウンタの実現

クロックに逆位相の入力を与える

J

K

CK

Q

Q

J

K

CK

Q

Q

‘1’ ‘1’0Q

TJ

K

CK

Q

Q

‘1’1Q

J

K

CK

Q

Q

‘1’2Q Q3

Page 29: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 29

‘0’

‘0’

‘0’

‘0’

‘1’ ‘0’ ‘1’ ‘0’

‘1’ ‘0’

‘1’ ‘0’ ‘1’ ‘0’ ‘1’ ‘0’ ‘1’ ‘0’

‘1’ ‘0’ ‘1’ ‘0’ ‘1’ ‘0’ ‘1’ ‘0’ ‘1’ ‘0’ ‘1’ ‘0’‘1’ ‘0’ ‘1’ ‘0’

逆位相入力を用いた非同期式ダウン・カウンタの動作

T

Q0

Q1

Q2

Q3

Q0

Q1

Q2

Q3

Page 30: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 30

動作モードの変更による非同期式ダウン・カウンタの実現

立上りエッジトリガのFFの利用

J

K

CK

Q

Q

J

K

CK

Q

Q

‘1’ Q0

J

K

CK

Q

Q

Q1

J

K

CK

Q

Q

Q2 Q3

T

Page 31: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 31

‘0’

‘0’

‘0’

‘0’

‘1’ ‘0’ ‘1’ ‘0’

‘1’ ‘0’

‘1’ ‘0’ ‘1’ ‘0’ ‘1’ ‘0’ ‘1’ ‘0’

‘1’ ‘0’ ‘1’ ‘0’ ‘1’ ‘0’ ‘1’ ‘0’ ‘1’ ‘0’ ‘1’ ‘0’‘1’ ‘0’ ‘1’ ‘0’

動作モードの変更による非同期式ダウン・カウンタの動作

T

Q0

Q1

Q2

Q3

Q0

Q1

Q2

Q3

Page 32: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 32

非同期式カウンタの分類

エッジトリガ2段目以降の入

力の位相出力Q 出力Q

立下り 正相 アップ ダウン

立下り 逆相 ダウン アップ

立上り 正相 ダウン アップ

立上り 逆相 アップ ダウン

Page 33: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 33

講義内容

カウンタとは何か?非同期式カウンタと同期式カウンタ

アップダウン・カウンタ非同期式ダウン・カウンタ

同期式ダウン・カウンタ

アップ・ダウン・カウンタ

N 進カウンタ

その他のカウンタ

まとめ

Page 34: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 34

同期式ダウン・カウンタの状態推移

現在の状態 次の状態 現在の状態 次の状態

Q3 Q2 Q1 Q0 Q2 Q1 Q0 Q2 Q1 Q0 Q2 Q1 Q0Q3 Q3 Q3

1 1 1 11 1

100001

110000

1100001

1110000

1 1 1 00 1

010101

011001

0101010

1001100

00000001

00000000

1 1 1 00 0

011001

1101010

01010 1

1001100

11111110

11111111

Page 35: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 35

FFの状態を変化させる条件Q0 Q1

10

11

01

00

Q0 10110100

Q2Q3

1111

1111

1111

1111

Q0 Q1

10

11

01

00

Q1 10110100

Q2Q3

0011

0011

0011

0011

Q0 Q1

10

11

01

00

Q2 10110100

Q2Q3

0001

0001

0001

0001

Q0 Q1

10

11

01

00

Q3 10110100

Q2Q3

0000

0000

0001

0001

Page 36: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 36

同期式ダウン・カウンタの構成

J

K

CKQ

Q

J

K

CKQ

Q

‘1’

Q0

J

K

CKQ

Q

Q1

J

K

CKQ

Q

Q2 Q3

T

Page 37: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 37

講義内容

カウンタとは何か?非同期式カウンタと同期式カウンタ

アップダウン・カウンタ非同期式ダウン・カウンタ

同期式ダウン・カウンタ

アップ・ダウン・カウンタ

N 進カウンタ

その他のカウンタ

まとめ

Page 38: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 38

アップダウン・カウンタのエンティティ記述

library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;

entity updn_counter_16 isport (

clock: in std_logic;clr_b: in std_logic;u_db: in std_logic;q_out: out std_logic_vector ( 3 downto 0 ) );

end entity updn_counter_16;

Page 39: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 39

アップダウン・カウンタのビヘイビア記述(1)architecture behavior of updn_counter_16 isbegin

process( clock, clr_b ) variable reg: std_logic_vector ( 3 downto 0 );

beginif ( clr_b = '0' ) then

reg := "0000"; elsif ( clock'event and clock = '1' ) then

if ( u_db = '1' ) then -- upreg := reg + 1;

elsif ( u_db = '0' ) then – downreg := reg - 1;

Page 40: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 40

アップダウン・カウンタのビヘイビア記述(2)else

reg := "XXXX";end if;

end if;q_out <= reg;

end process;end architecture behavior;

Page 41: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 41

アップ・ダウン・カウンタ

実現の方針1段目: 必ず反転

2段目: カウント・アップ/カウント・ダウンを指示する信号の値によって,Q0 またはQ0 のいずれかを選択し

て反転信号とする。

3段目以降:カウント・アップ/カウント・ダウンを指示する信号の値によって,前段の出力(Qi またはQi )の

いずれかを選択する。その値と前段の反転信号との論理積をその段の反転信号とする。

Page 42: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 42

同期式アップダウン・カウンタの構成

J PR Q

CK

K CLR Q

preset

clear

up/dw

clock

J PR Q

CK

K CLR Q

J PR Q

CK

K CLR Q

J PR Q

CK

K CLR Q

‘1’

Page 43: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 43

マルチプレクサのエンティティ記述

library ieee;use ieee.std_logic_1164.all;

entity mux_2 isport(

s_in: in std_logic;d_in0: in std_logic;d_in1: in std_logic;d_out: out std_logic );

end entity mux_2;

d_in0d_in1

d_out

s_in

Page 44: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 44

マルチプレクサのビヘイビア記述

architecture behavior of mux_2 isbegin

process( s_in, d_in0, d_in1 ) variable d_nxt: std_logic;

beginif s_in = '0' then

d_nxt := d_in0;elsif s_in = '1' then

d_nxt := d_in1;else

d_nxt := 'X';end if;d_out <= d_nxt after Tpd;

end process;end architecture behavior;

Page 45: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 45

講義内容

カウンタとは何か?非同期式カウンタと同期式カウンタ

アップダウン・カウンタ

N 進カウンタ

非同期式 N進カウンタ

同期式 N進カウンタ

その他のカウンタ

まとめ

Page 46: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 46

N進カウンタの設計

強制リセット法所定の値(N)に達したとき,強制的にリセットをかけて初期値(0)に戻す

「ヒゲ」が発生する

カウンタ値修正法所定の値の一つ手前の値(N -1)に達したとき,次のクロックが初段のFFに入るのを止め,そのクロックの立下りでリセットをかけて初期値(0)に戻す

Page 47: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 47

強制リセット法を用いた10進カウンタ

J

K

CK

Q

Q

J

K

CK

Q

Q

‘1’ Q0

J

K

CK

Q

Q

Q1

J

K

CK

Q

Q

Q2 Q3

T

CLRCLR CLR CLR

clear

Page 48: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 48

強制リセット法の問題点

リセット信号の幅が狭いと誤動作する例: リセットがかかる場合Q1=‘1’であるが,リセットがかかるために, Q1は‘1’から‘0’に変化する。その結果,FF2のクロック入力が立下り,リセットされたQ2の値が‘1’に反転してしまう。その時点では, Q3はすでにリセットされているため,リセット信号はもとに戻っている。

対策リセットが確実に行われるようにするため,リセット信号のパルスの幅を広げる。(単安定バイブレータなどを用いる)

Page 49: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 49

強制リセット法を用いた10進カウンタの改善

J

K

CK

Q

Q

J

K

CK

Q

Q

‘1’ Q0

J

K

CK

Q

Q

Q1

J

K

CK

Q

Q

Q2 Q3

T

CLRCLR CLR CLR

clearMM

Page 50: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 50

カウンタ値修正法

所定の値から 0 に戻るときの各FFの状態の変

化パターン1 ⇒ 0 の場合

0 ⇒ 0 の場合

例: 10進カウンタ

Q3 と Q0 : 1 ⇒ 0Q2 と Q1 : 0 ⇒ 0

カウント値 Q3 Q2 Q1 Q0

9 (N – 1) 1 0 0 1

0 0 0 0 0

Page 51: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 51

FFiの状態変化が 1 ⇒ 0 の場合

場合1-a: FFiへの入力が 1 ⇒ 0 の場合FFi への入力の変化にともなって, FFiの値が変化する

よって,FFi への入力は修正する必要がない

場合1-b: FFiへの入力が 0 ⇒ 0 の場合FFi への入力を修正する必要がある

状態N-1のときに1の値をとる全てのFFの出力およびクロックのANDと前段の出力のORをFFiのクロックに入力する

Page 52: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 52

FFiの状態変化が 0 ⇒ 0 の場合

場合2-a: FFiへの入力が 1 ⇒ 0 の場合FFi への入力の変化にともなって, FFiの値が変化してしまうので,FFi への入力を修正する

カウンタの値がN -1のときに0となる信号をFFiのJ入力端子に入力する( FFiより上位のFFについて,出力が1となるFFの出力のNANDでよい)

場合2-b: FFiへの入力が 0 ⇒ 0 の場合FFi への入力を修正する必要がない

Page 53: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 53

例題でのカウンタ値の修正

カウント値 Q3 Q2 Q1 Q0

9 (N – 1) 1 0 0 1

0 0 0 0 0

カウンタ値の修正方法

(1-b) 不要(2-b) (2-a) 不要(1-a)

Page 54: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 54

カウンタ値修正法を用いた非同期式10進カウンタ

J

K

CK

Q

Q

J

K

CK

Q

Q

‘1’ ‘1’0Q

J

K

CK

Q

Q

‘1’1Q

J

K

CK

Q

Q

‘1’Q2 Q3

T

CLRCLR CLR CLRclear

Page 55: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 55

講義内容

カウンタとは何か?非同期式カウンタと同期式カウンタ

アップダウン・カウンタ

N 進カウンタ

非同期式 N進カウンタ

同期式 N進カウンタ

その他のカウンタ

まとめ

Page 56: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 56

例: 同期式5進カウンタの設計

同期式5進カウンタの状態遷移表

現在の状態 次の状態

Q2 Q1 Q0 Q2 Q1 Q0

0 0 0 0 0 0 1

1 0 0 1 0 1 0

2 0 1 0 0 1 1

3 0 1 1 1 0 0

4 1 0 0 0 0 0

状態

カウント値 S0

S1

S2S3

S4

Page 57: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 57

同期式5進カウンタのカルノー図

Q0

Q0 0 1

00 1 0

01 1 0

11 - -

10 0 -

Q2Q1

-010--11

0101Q2Q1

1000

10Q1

Q1

-010--11

1001Q2Q1

0000

10Q2

Q2

01

02122

QQQQQQQ

++=′ 01011 QQQQQ +=′ 02120 QQQQQ +=′

Page 58: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 58

同期式5進カウンタの回路図D

CKQ

QC

DCK

Q

QC

DCK

Q

QC

Q0

Q1

Q2

clearT

01

02122

QQQQQQQ

++=′

01011 QQQQQ +=′

02120 QQQQQ +=′

Page 59: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 59

同期式5進と寄生3進カウンタ

現在の状態 次の状態

Q2 Q1 Q0 Q2 Q1 Q0

0 0 0 0 0 0 11 0 0 1 0 1 02 0 1 0 0 1 1

6 1 1 0 1 1 17 1 1 1 1 0 1

3 0 1 1 1 0 04 1 0 0 0 0 05 1 0 1 1 1 0

状態

カウント値

S0

S1

S2S3

S4

S5

S6S7

M1

M2

M1

M2

Page 60: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 60

より安全な同期式5進カウンタ(1)

現在の状態 次の状態

Q2 Q1 Q0 Q2 Q1 Q0

0 0 0 0 0 0 11 0 0 1 0 1 02 0 1 0 0 1 1

6 1 1 0 1 1 17 1 1 1 0 0 0

3 0 1 1 1 0 04 1 0 0 0 0 05 1 0 1 1 1 0

状態

カウント値

S0

S1

S2S3

S4

S5

S6S7

M1

M2

Page 61: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 61

より安全な同期式5進カウンタ(1)のカルノー図

Q0

Q0 0 100 1 001 1 011 1 010 0 0

Q2Q1

101001110101

Q2Q1

100010Q1

Q0

101001111001

Q2Q1

000010Q2

Q0

012

012

0122

QQQQQQQQQQ

+

+

=′ 01011 QQQQQ +=′ 01020 QQQQQ +=′

Page 62: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 62

より安全な同期式5進カウンタ(1)の回路図

DCK

Q

QC

DCK

Q

QC

DCK

Q

QC

Q0

Q1

Q2

clearT

012

012

0122

QQQQQQQQQQ

+

+

=′

01011 QQQQQ +=′

01020 QQQQQ +=′

Page 63: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 63

より安全な同期式5進カウンタ (2)

現在の状態 次の状態

Q2 Q1 Q0 Q2 Q1 Q0

0 0 0 0 0 0 11 0 0 1 0 1 02 0 1 0 0 1 1

6 1 1 0 0 0 07 1 1 1 0 0 0

3 0 1 1 1 0 04 1 0 0 0 0 05 1 0 1 0 0 0

状態

カウント値

S0

S1

S2S3

S4

S5

S6S7

M1

M2

Page 64: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 64

より安全な同期式5進カウンタ(2)のカルノー図

Q0

Q0 0 100 1 001 1 011 0 010 0 0

Q2Q1

001000110101

Q2Q1

100010Q1

Q0

001000111001

Q2Q1

000010Q2

Q0

0122 QQQQ =′

012

0121

QQQ

QQQQ

+

=′ 020 QQQ =′

Page 65: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 65

より安全な同期式5進カウンタ(2)の回路図

DCK

Q

QC

DCK

Q

QC

DCK

Q

QC

Q0

Q1

Q2

clearT

0122 QQQQ =′

012

0121

QQQ

QQQQ

+

=′

020 QQQ =′

Page 66: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 66

非同期リセットと同期リセット

フリップ・フロップは,非同期リセットを行うものと同期リセットを行うものの2種類に分類される。

非同期リセットを行うFFでは,リセット信号がアクティブになった場合にすぐさまFFの状態がリセットされる。

同期リセットを行うFFでは,リセット信号がアクティブになったとしてもすぐにはFFの状態がリセットされない。FFの状態がリセットされるのは,リセット信号がアクティブになった直後のクロックの立上り(または立下り)である。

Page 67: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 67

非同期リセットと同期リセット

clock

reset

非同期リセット

同期リセット

Page 68: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 68

強制リセット法による同期式カウンタの実現

同期式N進カウンタは強制リセット法でも実現で

きる。

同期リセット型のFFを用いる場合

カウント値がN-1になった時にリセットを行えばよい。

非同期リセット型のFFを用いる場合

カウント値がNになった場合にリセットを行えばよい。

Page 69: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 69

例:非同期リセット型のFFを用いた同期式10進カウンタ

非同期リセット型の同期式16進カウンタを用いて,次のようにして同期式10進カウンタを実装で

きる。Q3=‘1’ and Q1=‘1’の場合にリセットすればよい。 Q3 Q2 Q1 Q0CK

CL

Page 70: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 70

例: 同期リセット型のFFを用いた同期式10進カウンタ

同期リセット型の同期式16進カウンタを用いて,次のようにして同期式10進カウンタを実装できる。

Q3=‘1’ and Q0=‘1’の場合にリセットすればよい。

Q3 Q2 Q1 Q0CK

CL

Page 71: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 71

講義内容

カウンタとは何か?非同期式カウンタと同期式カウンタ

アップダウン・カウンタ

N 進カウンタ

その他のカウンタリング・カウンタ

ジョンソン・カウンタ

グレイコード・カウンタ

まとめ

Page 72: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 72

リング・カウンタ

状態遷移図 状態割り当てOne-hot Codeシフトレジスタによって実現可能

S1

S2

S3

S4

S5

S6

状態 Q0 Q1 Q2 Q3 Q4 Q5

S0 0 0 0 0 0 0S1 1 0 0 0 0 0S2 0 1 0 0 0 0S3 0 0 1 0 0 0S4 0 0 0 1 0 0S5 0 0 0 0 1 0S6 0 0 0 0 0 1

S0

Page 73: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 73

リング・カウンタのエンティティ記述

library ieee;use ieee.std_logic_1164.all;

entity ring_cnt_6 isgeneric(

nbit: natural := 6 );port (

clock: in std_logic;clear: in std_logic;q_out: out std_logic_vector( nbit-1 downto 0 ) );

end entity ring_cnt_6;

Page 74: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 74

リング・カウンタのアーキテクチャ記述(1)architecture behavior of ring_cnt_6 isbegin

process( clock, clear )constant zero: std_logic_vector( nbit-1 downto 0 )

:= ( others => '0' );variable s_reg: std_logic_vector( nbit-1 downto 0 );variable carry: std_logic;

beginif clear = '1' then

s_reg := ( others => '0' );

Page 75: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 75

リング・カウンタのアーキテクチャ記述(2)elsif falling_edge( clock ) then

if s_reg = zero thens_reg( 0 ) := '1';

elsecarry := s_reg( nbit-1 );for i in nbit-1 downto 1 loop

s_reg( i ) := s_reg( i - 1 );end loop;s_reg( 0 ) := carry;

end if;end if;q_out <= s_reg;

end process;end architecture n_behavior;

Page 76: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 76

リングカウンタの動作

Q0

Q1

Q2

clock

clear

Q3

Q4

Q5

Page 77: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 77

リング・カウンタの構成方法

D

CK

Q

QCLR

D

CK

Q

QCLR

D

CK

Q

QCLR

D

CK

Q

QCLR

D

CK

Q

QCLR

D

CK

Q

QCLR

Q0 Q1 Q2 Q3 Q4 Q5

CLKCLR

Page 78: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 78

講義内容

カウンタとは何か?非同期式カウンタと同期式カウンタ

アップダウン・カウンタ

N 進カウンタ

その他のカウンタリング・カウンタ

ジョンソン・カウンタ

グレイコード・カウンタ

まとめ

Page 79: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 79

ジョンソン・カウンタ

状態遷移図 状態割り当て

S0S1

S2

S3S4

S5

状態 Q0 Q1 Q2 Q3

S0 0 0 0 0

0

0

0

1

1

1

1

S1 1 0 0

S2 1 1 0

S3 1 1 1

S4 1 1 1

S5 0 1 1

S6 0 0 1

S7 0 0 0

特徴:

・回路が簡単なので、高速動作が可能。

・隣接する状態コード間のハミング距離が1なので,ハザードが起きない。

S6

S7

Page 80: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 80

ジョンソン・カウンタの構成方法

D

CK

Q

QCLR

D

CK

Q

QCLR

D

CK

Q

QCLR

Q0 Q1 Q2

D

CK

Q

QCLR

Q3

CLOCKCLR

Page 81: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 81

ジョンソン・カウンタのエンティティ記述

library ieee;use ieee.std_logic_1164.all;

entity jhonson_counter isgeneric(

nbit: natural := 4 );port (

clock: in std_logic;clr_b: in std_logic;q_out: out std_logic_vector ( 3 downto 0 ) );

end entity jhonson_counter;

Page 82: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 82

ジョンソン・カウンタのアーキテクチャ記述(1)architecture behavior of jhonson_counter isbegin

process ( clock, clr_b )variable reg: std_logic_vector ( nbit-1 downto 0 );variable carry: std_logic;begin

if ( clr_b = '0' ) thenreg := ( others => '0' );

Page 83: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 83

ジョンソン・カウンタのアーキテクチャ記述(2)elsif ( clock'event and clock = '1' ) then

carry := not ( reg( nbit-1 ) );for i in nbit-1 downto 1 loop

reg( i ) := reg ( i - 1 );end loop;reg( 0 ) := carry;

end if;q_out <= reg;

end process;end architecture behavior;

Page 84: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 84

ジョンソン・カウンタの動作

Q0

Q1

Q2

clock

clear

Q3

Page 85: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 85

講義内容

カウンタとは何か?非同期式カウンタと同期式カウンタ

アップダウン・カウンタ

N 進カウンタ

その他のカウンタリング・カウンタ

ジョンソン・カウンタ

グレイコード・カウンタ

まとめ

Page 86: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 86

グレイコード(Gray Code)

10進数バイナリ

コード

グレイ

コード10進数

バイナリ

コード

グレイ

コード

1000 1100

1101

1111

1110

1010

1011

1001

1000

1001

1010

1011

1100

1101

1110

1111

8

9

10

11

12

13

14

15

0 0000 0000

1 0001 0001

2 0010 0011

3 0011 0010

4 0100 0110

5 0101 0111

6 0110 0101

7 0111 0100

Page 87: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 87

グレイコード・カウンタの構成方法

DFF

D0D1D2

D3

CKCLR

Q0Q1Q2

Q3

Grayto

Binary

clock

clear

NextState

Function

Page 88: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 88

カウンタの比較

種類 周期 特徴

バイナリ・カウンタ 2N 基本のカウンタ

リング・カウンタ N 高々1ビットが ’1’

ジョンソン・カウンタ 2N ハザードなし

グレイ・コード・カウンタ 2N ハザードなし

Page 89: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 89

講義内容

カウンタとは何か?非同期式カウンタと同期式カウンタ

アップダウン・カウンタ

N 進カウンタ

その他のカウンタ

まとめ

Page 90: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 90

まとめ (1)カウンタは、ディジタル値の計測、周期的な信号の分周、タイマーの実装などに用いられる

カウンターには、アップ・カウンタ、ダウン・カウンタ、アップダウン・カウンタの3種類がある

カウンタの実装方法には、同期式と非同期式の2種類がある

カウンタの実装方法のバリエーションとして、リング・カウンタ、ジョンソン・カウンタ、グレイコード・カウンタなどがある

Page 91: 大阪大学大学院情報科学研究科 今井正治 …imai/class/DIGITAL/PDF...N 進カウンタ その他のカウンタ まとめ 2006/10/31 ©2006, Masaharu Imai 14 同期式カウンタ

2006/10/31 ©2006, Masaharu Imai 91

まとめ (2)ダウン・カウンタの実現方法には、1の補数を出力する方法、トグル信号の位相を変更する方法、FFの動作モードを変更する方法がある

非同期式N進カウンタの実現方法には、強制リセット法、およびカウンタ値修正法がある

同期式N進カウンタは、ステートマシンとして設計する

N進カウンタの設計では、予定していない状態に陥らないための工夫が必要である(冗長な状態の除去、リセット)