stateless circuit model toward a theorem-proving hardware description language

92
1 Stateless Circuit Model toward a Theorem-proving Hardware Description Language 2017.01.30 学位論⽂発表会 ⻄村 俊二

Upload: shunji-nishimura

Post on 12-Apr-2017

62 views

Category:

Engineering


0 download

TRANSCRIPT

Page 1: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

1

Stateless Circuit Model toward a Theorem-proving Hardware

Description Language

2017.01.30 学位論⽂発表会

⻄村 俊二

Page 2: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

コンピュータ・システムの設計検証

コンピュータ・システムはあらゆる所で使用され,正しく動作することが求められている.

基本的な設計検証方法 ︓(ハードウェア/ソフトウェアを問わず)

2

テスト

与えた⼊⼒パターンに対してしか正しさを検証できない

⼊⼒パターンを与えて期待する動作か確認

Page 3: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

形式手法による検証

テストに代わる検証手法として,数学をベースとした ︓

3

形式手法

網羅的な,厳密な正しさを検証できる可能性あり

設計物(コード等)に対して厳密な意味を定義し,求めるものとなっているか確認

Page 4: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

形式手法の分類

形式手法は2つに分類できる.

4

形式手法

ツールによる自動検証なので広く普及 設計物の動作を状態遷移で表し,

検証ツールが状態空間を探索する

モデル検査手法 定理証明手法

計算リソースが⾜りないと探索しきれない(結果が得られない)

状態爆発問題

Page 5: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

形式手法の分類

形式手法は2つに分類できる.

5

形式手法

定理証明⾔語内で設計物と要求仕様を表現し,証明を試みる

証明は基本的に⼈手によるので専門知識が必要

モデル検査手法 定理証明手法

状態爆発問題を避けることができる

Page 6: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

ハードウェアでの定理証明手法

ハードウェアの検証には,定理証明⾔語の中に構築されたドメイン固有⾔語(Domain Specific Language, DSL)が提案されてきた.

6

一般的には使われていない

定 理 証 明 ⾔ 語

ドメイン固有⾔語=回路モデル

回路モデルについての知識と定理証明⾔語についての知識の両方が必要(極めて高い専門性)

Page 7: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

ソフトウェアでの定理証明手法 [1/2]

7

x = f (a, b)

論理プログラム

引数 a と引数 b が与えられると関数 f が新たな値を計算し,x に代⼊.

証明 a と証明 b が与えられると手続き f が新たな証明を作成し,x に代⼊.

定理証明⾔語かつプログラミング⾔語であるものが存在.Coq, Agda等

これらでは⼀つの記述がプログラムと論理の二つの意味を表す︓

Page 8: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

ソフトウェアでの定理証明手法 [2/2]

8

定理証明HDL(ハードウェア記述⾔語)

プログラミングの背後にある論理が利用されているため,プログラミング⾔語レベルの専門性で修得可能.

定理証明⾔語かつプログラミング⾔語であるものが存在.Coq, Agda等

これらでは⼀つの記述がプログラムと論理の二つの意味を表す.

ハードウェアでもこのような⾔語︓

ができないか︖

Page 9: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

定理証明HDL実現のためには

9

ソフトウェアでの定理証明かつプログラミング⾔語に学ぶ︓ 型付きラムダ計算の理論に基づいている. 型が論理,ラムダ計算がプログラムを表しており,

この2つが融合している.

ハードウェアでも回路と論理を融合する理論があれば定理証明HDLを実現できそう

回路モデル + 証明が可能な論理体系

が必要.

Page 10: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

ハードウェアでの先⾏研究

10

同期回路のみ設計・検証が可能

先⾏研究 ︓ アサーションからのハードウェア合成 アサーション⾔語PSL(Property Specification Language)

のサブセットで回路を記述. それをハードウェアとして合成できる.

(合成できる記述のみがサブセットとして定められている.) PLSは時相論理(Temporal Logic)をベースとしているので,

証明による検証が可能.

汎用HDLではないので普及しない

Page 11: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

背景と目的のまとめ

11

非同期回路も記述可能な回路モデル+ 証明が可能な論理体系

汎用HDL定理証明手法

非同期回路記述

定理証明HDL

状態爆発問題

Page 12: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

12

フィードバック・リープモデル

ステートレス・モデル

同期回路の特徴付け

Page 13: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

フィードバック・ループによる回路表現 [1/2]

例えば,フィードバック・ループにD-FF(フリップ・フロップ)を持つ回路を次のように表現する︓

D-FF

⼊⼒ 出⼒

ステート出⼒

クロック

ステート⼊⼒

13

組合せ回路

Page 14: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

14

D-FF

i o

clk

D-FF D-FF

io

clk=

組合せ回路

フィードバック・ループによる回路表現 [2/2]

下の左の回路は右のように書き換えることができるため,この回路は前ページで表現された回路の⼀つである.

Page 15: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

フィードバック・リープモデル [1/5]

15

組合せ回路⼊⼒ 出⼒ステート

関数

フィードバック・ループモデル(従来)

フィードバック・リープモデル

組合せ回路⼊⼒ 出⼒ステート

ディレイ

Page 16: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

フィードバック・リープモデル [2/5]

f

⼊⼒ 出⼒

ステート出⼒

時刻t0

fステート⼊⼒

時刻t1

フィードバック・ディレイ

⼊⼒ 出⼒

f

⼊⼒ 出⼒

ステート出⼒

時刻ta

fステート⼊⼒

時刻tb

時間の順序

⼊⼒ 出⼒

直前の値を参照

過去の値を参照

フィードバック・ループモデル(従来)

フィードバック・リープモデル

16

Page 17: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

←を参照

直前でない時刻のステート出⼒を参照可能

D-FF同期回路であれば下のような参照関係︓

f f f

ラッチされたステート

クロック

←を参照

フィードバック・リープモデル [3/5]

17

Page 18: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

f

参照先の時刻を関数 r(参照関数)で表す.

f f

t0 t1 t2

r(t1)= t0 r(t2)= t0

フィードバック・リープモデル [4/5]

18

Page 19: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

フィードバック・リープモデル [5/5]

19

組合せ回路

非同期回路も表現できる

ディレイ1

ディレイn

組合せ回路

D-FF

D-FF同期回路を表現できる

(D-FFの働きを関数で表す) (各ディレイを関数で表す)

Page 20: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

様相論理

必然性や可能性を扱う論理. □P ︓ Pが必然的に真

「先祖代々⾊⿊だ」 ⇒ 私の先祖は⾊⿊,その先祖も⾊⿊,その先祖も …

□⾊⿊

◇P ︓ Pである可能性がある(◇P := ¬□¬P ︓ Pでないことが必然ではない)「⾊白の方もいた」

◇⾊白

20

私⺟

Page 21: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

時相論理

時間上の必然性や可能性を扱う. ○P ︓ 次の時刻においてP 「明日は晴れる」

○晴れ

「明後日以降ずっと晴れる」

○ ○ □晴れ

今日 明日

明後日今日

21

Page 22: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

明日を表す○ のみでは不便な場合もある 「来週は晴れる」

⇒︖

来週を表すⓌを導⼊すればⓌ晴れ

様相記号の追加(多重様相論理)

: ○: Ⓦ

Mon Tue SunSunSat Mon

Mon Tue SunMon Tue Sun

22

Page 23: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

FF同期の信号にとって,エッヂをまたいだ後が “次”.

クロック同期の表現

23

clk0

clk1

: clk1の“次”

単位時間の“次”

:

: clk0の“次”

Page 24: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

24

組合せ回路

0

⓪ st0 = f0 (in, st0, st1)① st1 = f1 (in, st0, st1)

○ st = f (in, st)

時相論理による表現

in

1

多重様相論理による表現

st0

st1

組合せ回路in

st

様相論理による回路表現

シングルクロック同期回路 マルチクロック同期回路

Page 25: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

クロック切替え回路の検証 [1/5]

次のクロック切替え回路を対象に検証を⾏う.

clk0

clk1

sel1 out

en0

en1

25

Page 26: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

動作は次のタイミング・チャートとなる︓

clk0出⼒

clk0

clk1

sel1

out

clk1出⼒切替え中

en0

en1

26

ON

OFF

OFF

ON

クロック切替え回路の検証 [2/5]

Page 27: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

27

clk0

clk1

sel1

en0

en1

out

様相論理による回路記述は下のようになる.

out = en0 & clk0 | en1 & clk1

⓪ en0 = sel1 & en1

① en1 = sel1 & en0

クロック切替え回路の検証 [3/5]

Page 28: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

求められる振るまいは︓仕様1︓選択された方のクロックが出⼒されること仕様2︓グリッチ・ノイズが発⽣しないこと.

以下,仕様1について⽰す.切替え中かもしれないので,仕様1-0︓clk0を選択し続ければそのうちclk0が出⼒されること仕様1-1︓clk1を選択し続ければそのうちclk1が出⼒されること.

様相記号を用いて,仕様1-0︓□(sel1 = 0) ⇒ ◇□(out = clk0)仕様1-1︓□(sel1 = 1) ⇒ ◇□(out = clk1).

28

クロック切替え回路の検証 [4/5]

Page 29: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

sel1=1

⓪en0=0 ∴ ⓪①en1=1

⓪①en0=0, ⓪①en1=1 ∴ ⓪①(out = clk1)

⓪①□(out = clk1)

◇□ (out = clk1)29

⓪ en0 = sel1 & en1

① en1 = sel1 & en0回路の定義(右)より

補題(省略)より en0かen1のどちらかが0

公理V4など

公理VN2など

証明の概要︓

en1=1out

clk0

clk1

en0=0

クロック切替え回路の検証 [5/5]

Page 30: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

フィードバック・リープモデルのまとめ [1/2]

30

非同期回路も表現できる. 様相論理による証明が可能.

つまり,目標であった︓

を満たしている.

ただし…

非同期回路も記述可能な回路モデル+ 証明が可能な論理体系

Page 31: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

31

非同期回路も記述可能な回路モデル+ 証明が可能な論理体系

汎用HDL定理証明手法

非同期回路記述

定理証明HDL

状態爆発問題

(背景と目的はこうであった)

Page 32: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

32

非同期回路も記述可能な回路モデル+ 証明が可能な論理体系

汎用HDL定理証明手法

非同期回路記述

定理証明HDL

状態爆発問題

フィードバック・リープモデルのまとめ [2/2]

回路の表現にステートを使っているため,状態爆発問題が

完全には払拭できない

Page 33: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

33

フィードバック・リープモデル

ステートレス・モデル

同期回路の特徴付け

Page 34: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

新たなモデルに求められること

34

非同期回路も記述可能な回路モデル+ 証明が可能な論理体系

基本的な目的︓

を満たした上で,

を可能にするモデル.

ステートを用いない回路表現

Page 35: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

ステートレス・モデル [1/2]

回路は 過去の⼊⼒に依存して出⼒を定める関数 とする.

関数ft1

t1

時間t2

t1の出⼒は t1の過去の⼊⼒に依存

t2の出⼒は t2の過去の⼊⼒に依存

関数ft2

(各時刻毎に1つの関数)

35

Page 36: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

36

ステートレス・モデル [2/2]

ゲート・レベルでのステートレス・モデル

慣性遅延イデアル遅延

遅延

時間

⼊⼒

出⼒

この時刻の⼊⼒の関数

遅延

時間

⼊⼒

出⼒

この期間の⼊⼒の関数

要求パルス幅

Page 37: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

フィードバック・リープモデルとの関係

フィードバック・リープモデルの回路もステートレス・モデルに読み替えることができる.

r(参照関数)rr

ステートレス・モデルの方が抽象度が高い

37

Page 38: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

クリプキ構造と様相論理

クリプキ構造 (W, Rel, V) : W : 可能世界の集合 Rel : 到達可能性 (Rel ⊆ W × W) V : 命題の解釈 (V : W → 真or偽)

例 : W : 先祖代々の家族 Rel : 親 命題 : 「先祖代々⾊⿊である」

38

偽真

論理体系としては前と同様に様相論理を用いるが,ここではクリプキ構造による様相論理の表現が必要となる.

Page 39: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

様相論理とイデアル遅延 [1/2]

39

回路をグラフで表す.(信号を頂点とする)

グラフの辺をクリプキ構造のRel(到達可能性)として可能世界を展開

ab

cd

a

b

INVc d

(この場合変化なし)

a

b

INVc d

Page 40: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

様相論理とイデアル遅延 [2/2]

40

回路をグラフで表す

ab

c

a c

b

*AND ab

c

可能世界を展開 c

c

c

ab

ab

INVを通った c と通らない c は別の世界とする.⇒ 2つの経路の遅延の違いを表現している.

Page 41: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

推論規則

定理証明の手法で検証を⾏うために,推論規則を定義する.

41

INVc=0 d=1INVc=1 d=0=

INVの規則*ANDa=0 c=0*ANDb=0 c=0

a=1c=1

b=1

ANDの規則

INVa=0

d=1C=0

a=0を仮定するとd=1が導かれる.

推論の例︓

信号a=0とすると然るべき遅延の後, 信号d=1となる.

ab

cd

a

b

INVc d

Page 42: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

タイミング制約の表現

相対的なタイミング制約を以下のように表現可能.

42

ab

c

c

c

ab

ab

c

c

c

a

b∃

(存在する)

遅早

∃(存在する)

Page 43: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

タイミングを考慮した検証例

INVを通るパスの方が遅いとすると︓

43

a

c

グリッチ・ノイズが発⽣する

a=0

仮定(⼊⼒)

結論(出⼒)c=0

b=1

Δ 1

0

1 0

a bc

a=0

仮定

結論c=0

b=0

10

Δ

a

c

グリッチ・ノイズは発⽣しない

逆に早いとすると︓

Page 44: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

非同期FIFOの検証 [1/3]

遅延依存の非同期FIFOを検証対象とする.

44

ANDN

SSR-FF

RQ

D-Latch

END

RQ

ACK

D

RQ

ACK

ユニットユニット ユニットDin

Write (=RQ)_Full (=ACK)

Dout

Read (=ACK)Empty (=RQ)

Page 45: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

非同期FIFOの検証 [2/3]

FIFOとして動作するために必要なタイミング制約を確定させる.

45

S

SR-FF

RQ

D-Latch

EN

D

RQ

ACK

ANDN

S

SR-FF

RQ

EN

前ユニット 後ユニット

上回りのパスの方が早くなくてはならない.= 前ユニットのデータが届いてから後ユニットがラッチし始める.

Page 46: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

非同期FIFOの検証 [3/3]

“ 回路がステーブルな状態からデータ及び RQ=1 が与えられると,然るべき後にそのデータが次のユニットの D-Latch に保持される.”

46

Δ2

Δ1D=a D=a

D=a

D=a

D=a

D=a

RQ=1

ACK=1

RQ=1 RQ=0

D=a

D

RQ=0 RQ=1*

*

(1)仮定

(2)

(3)

(4) (5)結論

(3)reg

前ユニット 後ユニット

タイミング制約が Δ1, Δ2 の箇所に効いている

Page 47: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

47

非同期回路も記述可能な回路モデル+ 証明が可能な論理体系

基本的な目的︓

を満たした上で,

を可能としている.

ステートを用いない回路表現

ステートレス・モデルのまとめ [1/3]

ただし…

Page 48: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

ステートレス・モデルのまとめ [2/3]

48

ステートを用いない回路表現

次の懸念が⽣じる︓同期回路は⼀般にステートを用いて表され,設計者が直感的に表現し易い回路である.ステートレス・モデルでは同期回路を直接的に表現できなくなったのではないか︖

Page 49: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

49

非同期回路も記述可能な回路モデル+ 証明が可能な論理体系

汎用HDL定理証明手法

非同期回路記述

定理証明HDL

状態爆発問題

(背景と目的はこうであった)

Page 50: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

50

非同期回路も記述可能な回路モデル+ 証明が可能な論理体系

汎用HDL定理証明手法

非同期回路記述

定理証明HDL

状態爆発問題

ステートレス・モデルのまとめ [3/3]

ステート表現なしでも同期回路を直感的に

記述できるか︖

Page 51: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

51

フィードバック・リープモデル

ステートレス・モデル

同期回路の特徴付け

Page 52: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

回路モデルの⽐較

52

状態爆発対策 汎用HDL

定理証明手法

ステート表現回避

非同期回路

同期回路

フィードバック・リープモデル ○ × ○ ○ステートレス

・モデル ○ ○ ○ ︖

︖について要調査

Page 53: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

ステートレス・モデルにおける同期回路

ステートレス・モデルをベースとしたHDLで,同期回路を直感的に記述できるか︖

まだHDLを実装していないので,現時点では︓

53

ステートレス・モデルにおいて,同期回路を特徴付けすることができるか︖

非同期回路同期回路

Page 54: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

同期回路の定義について [1/4]

[従来の定義1]︓同期回路 = フィードバック・ループにD-FFを持つ回路

組合せ回路

D-FF

⼊⼒ 出⼒

ステート出⼒

クロック

ステート⼊⼒

54

ステートレス・モデルで同期回路を特徴付けるためには,従来考えられてきた同期回路の定義を⾒直す必要がある.

Page 55: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

同期回路の定義について [2/4]

[従来の定義1]は回路の構造を指定しているため,ステートレス・モデルに適用できない.

D-FFが天下り的に与えられており,あまりに経験的な,視野の狭い定義と思われる.

他方,[従来の定義2]︓制御信号の変化に基づいてステートが遷移すること

を同期とする考え方もある.

55

Page 56: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

同期回路の定義について [3/4]

フィードバック・ループにメモリを持つ回路を考える.

[従来の定義2]にマッチするが,これは同期回路と⾔って良いものだろうか…︖理論的には任意の過去の⼊⼒を参照できるので,これは順序回路全体を表しているようなもの.

メモリデータライト

制御信号, アドレス

データリード

組合せ回路⼊⼒ 出⼒

ステート出⼒ステート⼊⼒

56⇒ これを同期回路と考えない

Page 57: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

同期回路の定義について [4/4]

D-FFを用いた定義 [従来の定義1] ⇒ 狭過ぎる

制御信号でステート遷移 [従来の定義2] ⇒ 広過ぎる

57

この間に位置する新たな同期回路クラスをステートレス・モデル上で定義したい.

Page 58: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

議論の道筋

従来の同期回路の定義はフィードバック・ループモデル上でなされているため,まずはこれの抽象化であるフィードバック・リープモデルにおいて議論する.

フィードバック・ループモデル

(従来の同期)

フィードバック・リープモデル

ステートレス・モデル

(目的はここ)

抽象的具体的

58

Page 59: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

f

D-FF同期回路の参照関数 rは以下のようであった︓

f f

t0 t1 t2

r(t1)= t0 r(t2)= t0

r : 時間 → 時間

フィードバック・リープモデルでの同期回路 [1/5]

59

Page 60: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

フィードバック・リープモデルでの同期回路 [2/5] D-FF同期回路

クロック

直列D-FF同期回路

クロック

: 参照関数

D-FF D-FF

組合せ回路

D-FF

⼊⼒ 出⼒

ステート出⼒

クロック

ステート⼊⼒

60

組合せ回路

⼊⼒ 出⼒

ステート出⼒

クロック

ステート⼊⼒

Page 61: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

フィードバック・リープモデルでの同期回路 [3/5]

メモリ装備回路

t0 t1

制御信号 t1のステートをリード

ステートのライト

ステートのライト

t2 t3

t0のステートをリード

61

メモリライトリード

組合せ回路⼊⼒ 出⼒

ステート出⼒ステート⼊⼒

制御信号

Page 62: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

フィードバック・リープモデルでの同期回路 [4/5]

参照関数の⽐較︓

メモリ装備回路

︓ 時間の流れ︓ 参照関数

D-FF同期回路

直列D-FF同期回路

順序保存(order-preserving)

順序保存でない

62

Page 63: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

フィードバック・リープモデルでの同期回路 [5/5]

フィードバック・リープモデルについて次を提案︓

妥当性︓1. 従来の同期回路を含む. ⇒ 上位概念2. 特定の回路要素に依存しない. ⇒ 狭すぎない3. メモリ装備回路は含まれない. ⇒ 広すぎない4. 時間が唯⼀持つ構造である

順 序 に基づいている. ⇒ 必然的63

参照関数が順序保存のものを同期回路とする.

Page 64: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

定義域を与える関数 d : T → P(T) に注目

ステートレス・モデルでの同期回路 [1/7]

定義域

t0

定義域

t1 t2 t3t1

ft1の定義域 ft1

t2

ft2の定義域 ft2

一般的な定義域=過去 特定の回路クラス⇒より限定される

時間 時間のべき集合 64

過去の⼊⼒に依存して出⼒を定める関数 であった.

Page 65: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

ステートレス・モデルでの同期回路 [2/7]

D-FF同期回路の定義域に注目.

定義域

t0

定義域

t1 t2 t3

クロック

定義域はクロック・エッジに限定できる.

時間の進⾏と供に,定義域が包含関係となっている.65

Page 66: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

ステートレス・モデルでの同期回路 [3/7]

マルチクロック同期回路の定義域︓

クロック1

クロック2

66やはり,時間の進⾏と供に定義域が包含関係となっている.

Page 67: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

ステートレス・モデルでの同期回路 [4/7]

直列D-FF同期回路(下図)の定義域︓

組合せ回路

D-FF D-FF

⼊⼒ 出⼒ステート出⼒

クロック

ステート⼊⼒

クロック

包含関係にはなっていないが,時間の進⾏と供に,定義域も時間方向に進⾏する感じはある.⇒ 順序保存性

67

Page 68: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

ステートレス・モデルでの同期回路 [5/7]

メモリ装備回路の定義域︓

時間の進⾏と定義域変化の間に関係性が⾒られない.

t0 t1

メモリコントロール信号

ステートをライト

ステートをライト

t2 t3

68

t1のステートをリード

t0のステートをリード

Page 69: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

ステートレス・モデルでの同期回路 [6/7]

やはり “順序保存=同期回路” といえそう.

D-FF同期回路,マルチクロック同期回路

包含

直列D-FF同期回路順序保存 順序保存でない

メモリ装備回路

定義域の変化について…

69

Page 70: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

ステートレス・モデルでの同期回路 [7/7]

順序構成的 = 制御信号の与え方に依らず順序保存= 時間Tの順序をP(T)に導⼊可能

70

次を提案︓

定義域関数が順序構成的なものを同期回路とする.

これはフィードバック・リープモデルでの同期回路を含む.⇒ 従来の同期回路を含む.

より正確には,定義域はクロック等の制御信号に応じて決まるので,“クロック等の制御信号の与え方に依らず順序保存である”

という考慮が必要.こうして定義される性質を順序構成的と呼ぶ.

Page 71: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

ステートレス・モデルでの同期回路 – まとめ

ステートレス・モデルでの同期回路の特徴付けとして,同期回路の新たな定義(広義の同期)を提案

71

新たな定義の妥当性︓1. 従来の同期回路を含む. ⇒ 上位概念2. 特定の回路要素に依存しない. ⇒ 狭すぎない3. メモリ装備回路は含まれない. ⇒ 広すぎない4. 時間が唯⼀持つ構造である

順 序 に基づいている. ⇒ 必然的

Page 72: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

本研究の副産物として [1/2]

ここまでフィードバック・リープモデルでの同期概念について議論してきたが、これはより⼀般的な結果とみることができる.

72

従来の同期(フィードバック・ループ

による定義)

抽象的具体的機能的視点構造的視点

理論的経験的

広義の同期(ステートレス・モデルでの順序構成的)

回路の同期概念について理論的な定義を⽰した

Page 73: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

D-FF同期回路の位置付け(一般にべき集合には包含関係による順序が定まるが,)P(T)に導かれるのが包含順序 ⇔ D-FF同期回路.

73

本研究の副産物として [2/2]

広義の同期の妥当性を裏付けている

D-FF同期回路は,広義の同期においても唯⼀の特別なクラスとなっている.

Page 74: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

74

非同期回路も記述可能な回路モデル+ 証明が可能な論理体系

汎用HDL定理証明手法

非同期回路記述

定理証明HDL

状態爆発問題

(背景と目的はこうであった)

Page 75: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

全体のまとめ [1/4]

背景︓ ハードウェアの形式検証をより実用的にしたい 状態爆発問題の回避のために定理証明手法に注目 定理証明⾔語上のドメイン固有⾔語では普及しない 同期回路のみを対象としていては普及しない

目的︓定理証明HDLの実現を目指し,非同期回路も記述可能な回路モデルと,証明が可能な論理体系

を構築する.75

Page 76: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

全体のまとめ [2/4]

76

提案1︓フィードバック・リープ回路モデル フィードバック・ループを抽象化したモデル 様相論理による証明が可能

しかし,状態爆発問題の懸念が残る

提案2︓ステートレス回路モデル 回路を過去の⼊⼒の関数として表したモデル やはり様相論理による証明が可能 ステートを用いないが同期回路を特徴付け可能

定理証明HDLのベースとなり得る

Page 77: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

77

状態爆発対策 汎用HDL

定理証明手法

ステート表現回避

非同期回路

同期回路

フィードバック・リープモデル ○ × ○ ○ステートレス

・モデル ○ ○ ○ △

特徴付けは可能

全体のまとめ [3/4]

Page 78: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

全体のまとめ [4/4]

78

提案3︓広義の同期回路という概念 ステートレス・モデルでの同期回路の特徴付けは,

⼀般的な概念といえる. 広義の同期とは

“時間の順序を保存しつつ時間を再定義するもの”であった.

その中でもD-FF同期回路はやはり特徴的位置付けとなる.

Page 79: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

今後の課題

79

課題1︓ステートレス・モデル+慣性遅延ステートレス・モデルについて本論⽂で⽰した論理体系はイデアル遅延を対象としていたが,より⼀般的な慣性遅延について実現性の検討が必要である.

課題2︓複数ビット信号の表現本論⽂で⽰したステートレス・モデルでは複数ビットの信号を直接的に記述することができない.対策として圏論のプロダクトを応用した表現方法が有⼒と思われる.

課題3︓同期回路の設計容易性本論⽂ではステートレス・モデルにおける同期回路の特徴付けを明らかにしたが,これは定理証明HDLを実装したときの設計容易性を保証するものではない.同期回路の設計を容易にするには様相論理を時相論理に帰着させるなどの対策が必要である.

Page 80: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

80

以降は補⾜資料

Page 81: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

補⾜1 : フィードバック・リープモデルの定理

⇔ FIFO同期回路(下図)で表せる.定理︓参照関数が順序保存

組合せ回路

FIFO

⼊⼒ 出⼒ステート出⼒

制御信号

ステート⼊⼒

81

Page 82: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

補⾜2 : マルチクロック検証の公理

代表的な恒真命題を集めた以下を公理とする.

82

Page 83: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

補⾜3 : 公理の健全性と完全性

前掲の公理の健全性クリプキ意味論に基づき,成り⽴つする命題を公理としているので,健全性がいえる.(⼀般論として,クリプキ意味論から導かれる公理には健全性がある.)

前掲の公理の完全性完全性を⽰すのは難しいと思われる.

83

健全性︓公理から導かれた結果が元々の意味において正しい完全性︓元々の意味において正しいことは全て公理から導かれる

Page 84: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

補⾜3 : 公理の健全性と完全性

前掲の公理の健全性クリプキ意味論に基づき,成り⽴つする命題を公理としているので,健全性がいえる.(⼀般論として,クリプキ意味論から導かれる公理には健全性がある.)

前掲の公理の完全性完全性を⽰すのは難しいと思われる.

84

健全性︓公理から導かれた結果が元々の意味において正しい完全性︓元々の意味において正しいことは全て公理から導かれる

Page 85: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

補⾜5︓ステートレス・モデルの健全性と完全性

85

前提とする回路要素(例では論理ゲートなど)に関する推論規則を公理とみなしたとき︓ 健全性

クリプキ意味論に基づき,成り⽴つする命題を公理としているので,健全性がいえる.

完全性回路から導かれるべき性質を表すために必要となる前提が全てそろっていれば,完全性が成り⽴つといえる.

健全性︓公理から導かれた結果が元々の意味において正しい完全性︓元々の意味において正しいことは全て公理から導かれる

Page 86: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

補⾜6︓非同期FIFOの検証

RS-FFの推論規則︓

86

S=1 Q=1

Q=a

R=0

S Q

R

reg

reg Q=a

グラフ表現︓

(regは内部のフィードバック・ループに相当)

推論規則︓

(セット)

(保持)

S

RS-FF

R

Q

R=1 Q=0(リセット)

S=0

Page 87: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

補⾜7︓非同期FIFOの検証

87

regDD

RQ

D

RQ

ACK

D∃Δ1

regDD

RQ

D

RQ

ACK

D∃Δ reg

DD

RQ

D

RQ

ACK

D∃

線型性

regD D

regD D

Δ∃

線型性

この制約を後の証明のために表現し直す︓

Page 88: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

補⾜8︓非同期FIFOの検証

必要なタイミング制約その2︓

88

左側を通るパスの方が遅くなくてはならない.= 前ユニットがデータを出し終える前に後ユニットはラッチを終える.

S

SR-FF

RQ

D-Latch

EN

D

RQ

ACK

ANDN

S

SR-FF

RQ

EN

前ユニット 後ユニット

Page 89: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

補⾜9︓非同期FIFOの検証

89

やはり後の証明のために表現し直す︓

regD D

RQ

D

RQ

ACK

D∃Δ

regD D

RQ

D

RQ

ACK

D∃Δ2線型性

Page 90: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

補⾜10︓同期回路の定義について

[従来の定義1’]︓

(いわゆるマルチクロック同期)

組合せ回路

D-FF

⼊⼒ 出⼒

ステート出⼒

クロック1

ステート⼊⼒

D-FFクロック2

複数種類のクロックについても含めて“同期回路”とされる場合もある.

90

Page 91: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

補⾜11︓順序構成的の定義1

より正確には,定義域はクロック等の制御信号に応じて決まるので,“クロック等の制御信号の与え方に依らず順序保存か︖”

を議論する必要がある. P(T) に,定義域関数 d から導かれる二項関係 R を定義できる︓

t0 < t1 ⇒ (d t0) R (d t1)例︓

t0 t1 t2 t3

{t0,t1} R {t0,t2}d t2

d t3

91

Page 92: Stateless Circuit Model toward a Theorem-proving Hardware Description Language

補⾜11︓順序構成的の定義2

導⼊されるこの二項関係Rが半順序となっているとき,定義域関数dを順序構成的と呼ぶ.

順序構成的 = 制御信号の与え方に依らず順序保存= 時間Tの順序をP(T)に導⼊可能= 時間Tの順序をP(T)上に再定義可能

92