SlideShare a Scribd company logo
1
多重様相論理による
遅延依存非同期回路の形式検証体系
2015.09.17 西村俊二
背景と問題点
2
 同期回路と比べ,非同期回路の設計は複雑だが性能には
期待できる: 設計容易
同期回路
遅延非依存
(Delay Insensitive, DI)
回路
遅延依存回路
高性能
 遅延依存回路はその動作がゲートやワイヤの遅延値に依
存するため,上流工程での検証が困難.
先行研究と本研究
3
 遅延依存回路の検証手法としては,時間オートマトンなどのモデ
ルに基づき,状態空間を探索する方法が知られている.
 状態空間を用いる方法では回路規模の増大に伴い計算量の
爆発が起き,結果が得られるとは限らない.
 本研究では,状態爆発の問題を避けるべく,新たな回路モデル
と,その上で動作の検証を可能とする体系を提案する.
 回路モデルは様相論理に基づき,検証手法としては定理証明
の手法を用いる.
様相論理 (1/2)
必然性や可能性を扱う論理.
状況によって命題の真偽が変わりうる.
 様相論理の一種(時相論理)の例
「晴れてる」
次の日
4
次の日
true falsetrue
状況の移り変わりが「次の日」のみ → 多重でない様相論理
様相論理 (2/2)
 多重様相論理の例
5
先生
クレオパトラは
右利きだった
学生
講義
クレオパトラは
右利きだった
学生
読書
クレオパトラは
左利きだった!
議論…
状況の移り変わりが色々 → 多重様相論理
以下の三つの要素の組(W,R,V)をクリプキ構造という.
 W は可能世界の集合である.
 R は到達可能性と呼ばれる世界の間の二項関係である.
(前ページまでの例でいうと矢印がR)
 V は各世界における命題の解釈である.
クリプキ構造の定義
6
回路モデルの定義 (1/2)
7
 回路をグラフで表す.
(信号を頂点とする)
 グラフの辺をクリプキ構造の
R(到達可能性)として
可能世界を展開
a
b
c
d
a
b
INV
c d
a
b
INV
c d
(この場合変化なし)
回路モデルの定義 (2/2)
8
回路をグラフで表す
a
b
c
a c
b
*AND a
b
c
可能世界を展開
c
c
c
a
b
a
b
INVを通った c と通らない c は別の世界
遅延モデルの妥当性
9
x
y
z
a
b
c
a
b
c
到達可能性の矢印が抽象的な遅延を表している.
各遅延値を未知の変数とした配線遅延モデルと同等.
推論規則
定理証明の手法で検証を行うために,推論規則を定義する.
10
a
b
c
d
a
b
INV
c d
INV
c=0 d=1
INV
c=1 d=0
= INVの規則
*AND
a=0 c=0
*AND
b=0 c=0
a=1
c=1
b=1
ANDの規則
INV
a=0
d=1C=0
a=0を仮定するとd=1が導かれる.
推論の例:
信号a=0とすると然るべき遅延の後, 信号d=1となる.
タイミング制約の表現
相対的なタイミング制約を以下のように表現可能.
11
a
b
c
c
c
a
b
a
b
c
c
c
a
b
∃
∃
早
遅早
遅
タイミングを考慮した検証例 (1/2)
INVを通るパスの方が遅いとすると:
12
a
c
グリッチ・ノイズが発生する
∃Δ
a=0
仮定
結論
c=0
∃Δ’
b=1
Δ’
1
0
1 0
a
b
c
タイミングを考慮した検証例 (2/2)
INVを通るパスの方が早いとすると:
13
∃Δ
a=0
仮定
結論
c=0
b=0
10
0
Δ’
∃Δ’
a
c
グリッチ・ノイズは発生しない
a
b
c
非同期FIFOの検証 (1/4)
遅延依存の非同期FIFOを検証対象とする.
14
ANDN
S
SR-FF
R
Q
D-Latch
EN
D
RQ
ACK
D
RQ
ACK
ユニットユニット ユニット
Din
Write (=RQ)
Full (=ACK)
Dout
Read (=ACK)
Empty (=RQ)
非同期FIFOの検証 (2/4)
D-Latchの推論規則は以下のように定める.
15
Din=a Dout=a
EN=1
Dout=a
EN=0
D-Latch
Din Dout
EN
Din Dout
EN
reg
reg Dout=a
グラフ表現:
(regは内部のフィードバック・ループに相当)
推論規則:
(透過)
(保持)
非同期FIFOの検証 (3/4)
FIFOとして動作するために必要なタイミング制約を確定させる.
16
S
SR-FF
R
Q
D-Latch
EN
D
RQ
ACK
ANDN
S
SR-FF
R
Q
EN
前ユニット 後ユニット
上回りのパスの方が早くなくてはならない.
= 前ユニットのデータが届いてから後ユニットがラッチする
非同期FIFOの検証 (4/4)
“ 回路がステーブルな状態からデータ及び RQ=1 が与えられると,
然るべき後にそのデータが次のユニットの D-Latch に保持される.”
17
Δ2
Δ1
D=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 の箇所に効いている.
前ユニット 後ユニット
まとめと課題
 遅延依存の非同期回路の形式検証を可能とする体系
 定理証明手法なので状態爆発問題が無い
 ただし証明は(現在のところ)人手で行う必要がある
 課題
 回路モデルの厳密な形式化
→ モデルの妥当性の証明
 証明自動化の可能性検討
(時間オートマトンによる方法との比較)
18

More Related Content

More from Shunji Nishimura

同期回路の機能的定義による同期概念の形式化
同期回路の機能的定義による同期概念の形式化同期回路の機能的定義による同期概念の形式化
同期回路の機能的定義による同期概念の形式化
Shunji Nishimura
 
Generalized Isomorphism between Synchronous Circuits and State Machines
Generalized Isomorphism between Synchronous Circuits and State MachinesGeneralized Isomorphism between Synchronous Circuits and State Machines
Generalized Isomorphism between Synchronous Circuits and State Machines
Shunji Nishimura
 
定理証明言語によるハードウェア検証
定理証明言語によるハードウェア検証定理証明言語によるハードウェア検証
定理証明言語によるハードウェア検証
Shunji Nishimura
 
タイミング制約を含んだ回路記述方式とその意味論
タイミング制約を含んだ回路記述方式とその意味論タイミング制約を含んだ回路記述方式とその意味論
タイミング制約を含んだ回路記述方式とその意味論
Shunji Nishimura
 
同期回路-ステート・マシン対応の一般化
同期回路-ステート・マシン対応の一般化同期回路-ステート・マシン対応の一般化
同期回路-ステート・マシン対応の一般化
Shunji Nishimura
 
関数型言語と定理証明
関数型言語と定理証明関数型言語と定理証明
関数型言語と定理証明
Shunji Nishimura
 
Agdaで回路設計(をしたい)
Agdaで回路設計(をしたい)Agdaで回路設計(をしたい)
Agdaで回路設計(をしたい)
Shunji Nishimura
 

More from Shunji Nishimura (7)

同期回路の機能的定義による同期概念の形式化
同期回路の機能的定義による同期概念の形式化同期回路の機能的定義による同期概念の形式化
同期回路の機能的定義による同期概念の形式化
 
Generalized Isomorphism between Synchronous Circuits and State Machines
Generalized Isomorphism between Synchronous Circuits and State MachinesGeneralized Isomorphism between Synchronous Circuits and State Machines
Generalized Isomorphism between Synchronous Circuits and State Machines
 
定理証明言語によるハードウェア検証
定理証明言語によるハードウェア検証定理証明言語によるハードウェア検証
定理証明言語によるハードウェア検証
 
タイミング制約を含んだ回路記述方式とその意味論
タイミング制約を含んだ回路記述方式とその意味論タイミング制約を含んだ回路記述方式とその意味論
タイミング制約を含んだ回路記述方式とその意味論
 
同期回路-ステート・マシン対応の一般化
同期回路-ステート・マシン対応の一般化同期回路-ステート・マシン対応の一般化
同期回路-ステート・マシン対応の一般化
 
関数型言語と定理証明
関数型言語と定理証明関数型言語と定理証明
関数型言語と定理証明
 
Agdaで回路設計(をしたい)
Agdaで回路設計(をしたい)Agdaで回路設計(をしたい)
Agdaで回路設計(をしたい)
 

多重様相論理による遅延依存非同期回路の形式検証体系

Editor's Notes

  1. 熊本大学の西村俊二が 「多重様相論理による遅延依存非同期回路の形式検証体系」 と題して発表いたします。
  2. 背景と問題点です。 広く普及している同期回路と比べ、非同期回路は設計が難しいことからあまり使われていません。ですが、動作スピードや消費電力など、性能については非同期の方にアドバンテージがあります。 本発表では非同期回路の中でも遅延依存回路に注目しています。その位置付けは図で示しますように、同期回路の対極にある回路とも言えます。回路中のゲート遅延やワイヤの遅延に依存する回路ですので、インプリ前の上流工程での検証は困難です。
  3. 先行研究と本研究についてです。 遅延依存回路の検証手法としては,時間オートマトンなどのモデルに基づき,状態空間を探索する方法が知られています。 しかし、状態空間を用いる方法では計算量の爆発により結果が得られない場合があります。 本研究では,このような状態爆発の問題を避けるべく,新たな回路モデルと,その上で動作の検証を可能とする体系を提案します。 回路モデルは様相論理に基づき,検証手法としては定理証明の手法を用いています。
  4. 提案する検証体系には様相論理を使います。様相論理は必然性や可能性を 扱う論理であり、状況によって命題の真偽が変わります。 様相論理の例を挙げています。より正確には、これは時相論理と呼ばれるものです。 「晴れてる」という命題を考えます。今日(*)はこの命題はtrue、次の日になってみると(*)またtrue、その次の日(*)はfalse…となります。命題の真偽が変わっていきます。 キーになる要素はこの「次の日(*)」という矢印です。ここでは矢印を一種類しか考えていないため「多重」でない様相論理の例です。
  5. 次に多重様相論理の例です。 先生が学生に講義(*)を行います。その内容は「クレオパトラは右利きだった」というものです。先生にとってはこれは事実であり、講義でその内容を伝えました。学生はここで(*)「クレオパトラは右利きだった」 を「知識」として持っています。 ところが、ある本を読んだところ、逆の事が書いてあり、学生はこちらを事実と認めました。ここです(*)。読書の後には知識が変わっています。さらには学生がそのことを先生に言ったらどうなるか…なども考えることができます。 この例では何種類かの矢印が出てきており、この点で「多重」相様論理の例です。
  6. 様相論理を厳密に定義するにはクリプキ構造という概念を使います。 クリプキ構造はW,R,Vの組であり、 Wは可能世界と呼ばれる集合、(先程の例でいうと点で表されていました)、 Rは到達可能性と呼ばれる二項関係(先程の例でいうと矢印です)、 Vは各世界における命題です。 様相論理はこの枠組みを使って表すことができます。次のスライドから提案の回路モデルを定義しますが、やはりこのクリプキ構造を使います。
  7. [04:30] 提案する回路モデルは二つのプロセスで得ることができます。 まず、回路をグラフ(*)で表す。ここで、グラフは信号を頂点とし、ゲートを辺とするタイプです。この点、いわゆるネットリストのタイプとは異なりますのでご注意ください。ANDにはaからcのパスとbからcのパスの二つがありますので、それぞれ上アスタリスクAND(*)と下アスタリスクAND(*)と表記しています。 次のプロセスですが、グラフの辺をクリプキ構造のRと見なして可能世界を展開してゆきます。実はこの例では展開といっても元のグラフから何も変化がありません。トリビアルな例となっています。
  8. 次の例はトリビアルではありません。 まずグラフで表します(*)。 そして可能世界を展開する、つまりaを出発点(*としてbを通ってcに…)などと到達した信号をすべて別の世界として展開してゆきます。!!!!!!!!!!!!このような(*)広がりになります。aから見てbを通ったc(*)と通らないc(*)は別の世界と定義します。 このクリプキ構造の矢印が、ゲートの抽象的な遅延を表します。
  9. このような回路モデルの妥当性についてです。 よく知られている配線遅延モデルはワイヤー部分がそれぞれ遅延を持つモデルです。配線遅延モデルの各遅延値を未知の変数とし、例えばこのようにx,y,zとすると、 提案の回路モデルの矢印をそれぞれx+z, y+zを表す記号と解釈することができます。 この解釈により提案モデルでの検証結果が遅延値が未知の場合の配線遅延モデルと同等であるといえます。
  10. 提案モデルの上で検証を行うためには推論規則が必要となります。 この回路の例では、論理素子としてインバータとアンドがありますので、それぞれについての規則をこのように(*)定めます。もちろん論理的には既知のものであり、ただ単にその間が到達可能関係の矢印で繋がっているだけです。 この規則をもとに証明による検証を行うことができます。例えばa=0(*)とすると、この規則(*)よりc=0が得られ、続いてこの規則(*)よりd=1が得られます。すなわち、a=0とするとその後、d=1となることが証明されました。
  11. 回路の検証のためには何らかのタイミング制約を考慮する必要があります。 提案の手法では、相対的なタイミング制約を扱います。つまり、信号が分岐してから合流するまでの二つのパスについての遅延の大小関係です。左の例で、「インバータを通るパスの方が遅い」という制約はこのような矢印(*)の存在で表現します。 逆にインバータを通るパスの方が早ければ逆向きの矢印で表現します。もし半順序(partial order)の概念をご存じであれば、矢印は半順序を表していると考えていただければと思います。
  12. タイミング制約を考慮に入れた検証の例を見ていきます。 インバータを通るパスの方が遅いとすると、このようなΔ(*)が存在し、これからこのようなデルタΔ’(*)の存在もいえます。これを使って、信号aが0から1に変化した場合について検証をすると、出力cにグリッチ・ノイズが発生するという結論が得られます。 … Δ’はここに(*)使っています。
  13. [09:30] 逆にインバータを通すパスの方が早いとし、同様の検証を行うと、グリッチ・ノイズは発生しないという結論が得られます。 aの変化点の周りを見ると、前半は下アスタAND(*)によりcが0におさえられ、後半はINVと上アスタANDによりcが0におさえられています。
  14. より実用的な例として非同期FIFOを対象とした検証を示します。 対象のFIFOはユニットが直列接続される構成で、各ユニットの内部はこのような回路です。 前ユニットからデータ(*)とリクエスト(*)が来るとD-Latchがデータを取り込み、その後、次のユニットにデータを渡そうとします。 RQとACKの制御はありますが、この回路は全体としては遅延依存の回路となっています。
  15. 回路に出てきますD-Latchについての推論規則を考えます。D-Latchは順序回路ですのでこれまで見てきた論理素子の推論規則より若干複雑になります。 中央がD-Latchをグラフで表現したものです。Doutには、regという自分自身に戻る矢印があります。これはD-Latchの内部構成を考えると出てくるフィードバック・ループ、値を保持する部分を表しています。 このようなモデルに基きまして、透過の場合の推論規則は、Dinの値がDoutに移る、となります。保持の場合は以前のDoutの値(*)がそのまま引き継がれる、となります。
  16. 対象のFIFOは遅延依存の回路ですので、何らかのタイミング制約が必要となります。今回検証したプロパティ、これは次のスライドで説明しますが、それを満たすためにはこのようなタイミング制約が必要でした。 前ユニットのRQ信号の分岐点(*)を基準として、上回りのパス(*)の方が、下回りのパス(*)より早くなくてはならない。 FIFOの動作で言いますと、前ユニットのデータが届いてから後ユニットがラッチする。ラッチが早過ぎるとまだ無効な値となってしまいますので、この条件が必要です。
  17. 今回検証したプロパティは次です。 “回路が(*…)” 証明の概要を図示しています。 仮定として「前ユニットのD=a(*とRQ=1)」があれば、結論として後ユニットのD=aが保持される。保持されているというのはここのRQ=1(*)がD-Latchのディセーブル状態を表していることから言えます。 証明においては先程見ましたタイミング制約も使っています。前のスライドで示した制約はΔ1(*)の存在に対応しており、これが結論を導くのに不可欠です。
  18. まとめと課題です。 本研究では遅延依存の(*…)を提案しています。 定理証明手法を使っているので状態爆発問題を避けることができます。 ただし、証明を人の手で行う必要があるという点が、実用化へのハードルとなっていると考えられます。 課題としましては、提案の回路モデルは一部直感的な定義となっており、厳密性に欠けていますので、回路モデルの厳密な形式化が課題です。これをクリアしましたら、モデルとしての妥当性についてより詳しい議論が可能となると考えます。 また、先程もふれましたように人手による証明は課題です。このモデルに関して自動証明が可能となり、もしその性能が時間オートマトンによる方法と同等になれば、今回提案した方法の優位性が確定できると考えます。