Upload
shunji-nishimura
View
213
Download
3
Embed Size (px)
DESCRIPTION
マルチクロック同期回路の形式検証(プロパティ・チェック)を可能にする検証体系を提案します。また、この体系を用いた例としてクロック切替え回路の検証を示します。
Citation preview
1
様相論理による
マルチクロック同期回路の形式検
証体系
2014/09 西村 俊二
背景・目的
形式検証 * の多くは単一クロック同期回路が対象である.
時相論理ベース ⇒ “次”が一種類 ⇒ 単一クロック
マルチクロック同期回路の形式検証としては,それぞれのクロック間の関係を条件として与えた上でモデル検査を適用する方法がある.
⇒ 時間軸を含めた状態空間の制限が可能に
本研究では,クロック間の条件を定めることなくマルチクロック同期回路の形式検証を可能とする検証体系を提案する.
2* : 本研究ではプロパティ・チェッキングを対象とする.
もくじ
3
様相論理による回路記述
公理の定義
検証体系の位置付け
検証例
まとめ
様相論理
必然性や可能性を扱う論理. □P : P が必然的に真
「先祖代々仏教だ」 ⇒ 私の先祖は仏教,その先祖も仏教,その先祖も …
□ 仏教
◇P : P である可能性がある (◇ P := ¬□¬ P : P でないことが必然ではない)
「キリスト教の方もいた」
◇ キリスト教
私
父
母
私
父
母
4
時相論理
時間上の必然性や可能性を扱う.
○P : 次の時刻において P
「明日は晴れる」
○ 晴れ
「明後日以降ずっと晴れる」
○ ○ □ 晴れ
今日 明日
明後日今日
5
明日を表す○ のみでは不便な場合もある 「来週は晴れる」
⇒ ?
来週を表すⓌを導入すれば
Ⓦ 晴れ
様相記号の追加(多重様相論理)
: ○: Ⓦ
Mon Tue SunSunSat Mon
Mon Tue SunMon Tue Sun
6
FF 同期の信号にとって,エッヂをまたいだ後が “次”.(離散時間を前提としている)
クロック同期の表現
7
clk0
clk1
: clk1 の“次”
単位時間の“次”
:
: clk0 の“次”
回路記述
様相記号を使って同期回路を表現することができる.( clk0/clk1 の様相記号をそれぞれ ⓪ /① とする)
f
g0
g1
clk0
clk1
a
s0
s1
out
out = f(a, s0, s1)
⓪ s0 = g0 (a, s0, s1)
① s1 = g1 (a, s0, s1)
8
検証体系の要素(1/2)
回路記述の原理
前ページの回路記述は「同期回路 - ステートマシン対応」の拡張.
f
gclk
a
s
out
out = f(a, s)
s’ = g(a, s)
f
g
a
s
out
=nex
t
(出力関数)
(ステート関数)
9
恒真命題 (1/2)
考える命題にかかわらず成り立つ関係がある. □P ⇒ P
□P ⇒ □□P
P P P ⇒ P
10
P
P P P ⇒P P P PP
P P P
P P
クロックの様相記号についての恒真命題も存在する. clki 同期のステート信号 si について,
○si =
∃n . ⓘ = ○n
恒真命題 (2/2)
11
si
ⓘ si(または)
∃
n
: ⓘ: ○
検証体系の定義
代表的な恒真命題を集めた以下を公理とする.
前出の回路記述方式とこれらの公理をもって検証体系とする.12
検証体系の要素(2/2)
回路記述方式 + 公理
検証体系と実際の検証
次の関係にある.
矢印による意味付け⇒⇒
対象回路が仕様を満たすか?
検証体系の構築
実際の検証
実際の検証では “ 回路と公理を前提として仕様を満たすかどうかをチェックする”
検証体系
13
検証体系の健全性
この検証体系から導かれた結論は常に正しいか?
矢印による意味付けのもとに, 回路記述は「同期回路 - ステートマシン対応」の原理に
より正しい.
公理は恒真命題であるので正しい.
よつて,
この検証体系から導かれた結論は論理的に正しい.
14
検証例:対象の回路
次のクロック切替え回路を対象に検証を行う.
clk0
clk1
sel1
out
en0
en1
15
検証例:回路の振るまい (1/4)
sel1
en0
16
clk0
clk1
sel1
out
en0
en1OFF
ON
0 ( =clk0 を選択)
ON
検証例:回路の振るまい (2/4)
clk0
sel1
en0
17
clk0
clk1
sel1
out = 0
en0
en1OFF
OFF
OFFON
検証例:回路の振るまい (3/4)
18
clk0
clk1
sel1
en0
en1ON
OFF
clk1
en0
en1
out
OFF ON
OFFON
検証例:回路の振るまい (4/4)
まとめると次のタイミング・チャートとなる.
clk0 出力
clk0
clk1
sel1
out
clk1 出力切替え中
en0
en1
19
ON
OFF
OFF
ON
検証例:回路記述
20
clk0
clk1
sel1
en0
en1
out
様相論理による回路記述は下のようになる.
out = en0 & clk0 | en1 &
clk1
⓪ en0 = sel1 & en1
① en1 = sel1 & en0
検証例:仕様
求められる振るまいは:
仕様 1 :選択された方のクロックが出力されること
仕様 2 :グリッチ・ノイズが発生しないこと.
以下,仕様 1 について示す.切替え中かもしれないので,
仕様 1-0 : clk0 を選択し続ければそのうち clk0 が出力されること
仕様 1-1 : clk1 を選択し続ければそのうち clk1 が出力されること.
様相記号を用いて,
仕様 1-0 :□ (sel1 = 0) ⇒ ◇□(out = clk0)
仕様 1-1 :□ (sel1 = 1) ⇒ ◇□(out = clk1) .
21
検証例:補題
動作例から推測できるように,次が成り立つ.
補題:常に en0 か en1 のどちらかが 0 である.
これを様相記号を使って示すと,
□ (en0 | en1) .
回路記述をもとに適宜公理を使うことによりこれを
証明することができる.
22
sel1=1
⓪en0=0 ∴ ①en⓪ 1=1
①⓪ en0=0, ①en⓪ 1=1 ∴ ①(out = clk⓪ 1)
①□⓪ (out = clk1)
◇□ (out = clk1)
検証例:証明
23
⓪ en0 = sel1 &
en1
① en1 = sel1 &
en0
回路の定義(右)より
前ページの補題よりen0 か en1 のどちらかが
0
公理 V4 など
公理 VN2 など
証明の概要:
en1=1
out
clk0
clk1
en0=0
まとめ
マルチクロック同期回路の形式検証を可能とする検証体系
多重様相論理に基づく演繹的な体系
得られる結果について正当性が保証される(健全である)
課題
健全性は言えるが,完全性(成立する命題のすべてが導かれること)は不明
証明を人手で行っていては厳密性が担保できない
自動証明
証明は人が行うが,その整合性を計算機でチェック 24