Upload
shunji-nishimura
View
396
Download
4
Embed Size (px)
Citation preview
1
タイミング制約を含んだ回路記述方式と
その意味論
2014/11 西村俊二
背景・目的
非動期回路の形式検証(プロパティ・チェッキング)を行う
ためにはタイミング制約の情報が不可欠である.
回路記述のみでは遅延値が不明であるため,検証が意味
をなさない.
回路記述とタイミング制約をもとに検証を行う手法/ツール
(Veraci)がある.
タイミング制約を含んだ回路記述が可能であれば,非動
期回路のプロパティ・チェッキングが可能となる.
2
背景・目的(修正)
非動期回路の形式検証(プロパティ・チェッキング)を行う
ためにはタイミング制約の情報が不可欠である.
回路記述のみでは遅延値が不明であるため,検証が意味
をなさない.
回路記述とタイミング制約をもとに検証を行う手法/ツール
(Veraci)がある.
タイミング制約を含んだ回路記述が可能であれば,非動
期回路のプロパティ・チェッキングが可能となる.
回路とタイミング制約を同時に記述する方法があれば,よ
り良い設計言語となり得る.3
もくじ
4
課題設定
理論の準備
回路の動作の表現
タイミング制約について
タイミング制約の導入
回路例
まとめ
課題設定:クロック切替え回路
次のクロック切替え回路のプロパティ・チェッキングを行いたい.
clk0
clk1
sel out
en0
en1
5
クロック切替え回路の動作
クロック切替え回路の動作は次のようになる.
clk0出力
clk0
clk1
sel
out
clk1出力切替え中
en0
en1
6
ON
OFF
OFF
ON
クロック切替え回路の問題
7
OFF ON
outen1
clk1
上のパス
下のパス
<clk1
out
en1
clk1出力切替え中
遅延値の関係によってはグリッチ・ノイズが発生する.
Arrowによる回路の表現
8
プログラミング言語HaskellのクラスであるArrowで回路を表現できる.
f g
>>
f
f
**
f g
g
g
直列合成 f >> g 並列合成 f ** g
クリプキ構造
クリプキ構造 (W, R, V) :
W : 可能世界の集合
R : 到達可能性 (R ⊆ W ×W)
V : 命題の解釈 (V : W → 真or偽)
例 :
W : 先祖代々の家族
R : 親
命題 : 「先祖代々色黒である」
9
私
父
母
偽
真
回路の制限
回路中の経路(パス)を表現するためのオペレータ
L| , R| , |L , |R を導入.
10
f
f |R
f |L
R| f
L| f
ディレイを考慮した回路の動作を以下のように表現する.
回路の動作を表現
11
AND0
0
R|AND
a
bc
a cR|AND
0 0 W : 信号線
R : その接続関係
命題 : 信号値
(don’t care)
00
ac
一般の回路とプリミティブで異なるディレイモデルを用いる.
二つのディレイモデルを用いる
12
OR0
0a
bc
a×b cOR
0×0 0
0
vu
acf
a cR|f
v w
一般の回路 :
Data-dependent のモデル
プリミティブ :
Data-independent のモデル
下の二つの経路の遅延の大小関係を規定したい.
マイナスの経路,及び,経路LRを導入する.
分岐する経路の遅延 (1/3)
13
f
g
fork|L
f
-g
-fork|R
LR
f
g
a
bc
a×b cAND
a × b
=
LR
fork
Δ := fork|L >> f >> LR >> -g >> -fork|R (下記経路)
とすると,
Δ >> fork|R >> g = fork|L >> f >> LR .
分岐する経路の遅延 (2/3)
14
f
g
fork|L
f
-g
-fork|R
LR
Δ := fork|L >> f >> LR >> -g >> -fork|R
とすると,
Δ >> fork|R >> g = fork|L >> f >> LR .
Δ は f 側の遅延と g 側の遅延の
「ずれ」を表す.
分岐する経路の遅延 (3/3)
15
f
g
fork|L
f
gfork|R
LR
タイミング制約をもたせた fork< を導入する.
fork< で分岐した信号が再び合流する点において,常に
左の経路の遅延 < 右の経路の遅延
であることを制約とする.
タイミング制約の導入 (1/2)
16
f
g
fork<
<
タイミング制約の導入 (2/2)
17
“正のクリプキ経路”を以下で定義する.(時間の進行方向)
プリミティブ(fork,fork< を含む)は正
f, g が正 ⇒ f >> g は正
f が正 ⇒ - ( - f ) は正
fork|R >> f >> -fork|L は正
fork|L >> f >> -fork|R は正
fork<|R >> f >> -fork<|L は正
fork
fork
fork<
fork< 無 し
下記の回路を例に fork と fork< の差異を説明する.
INVAND := fork >> BUF ** INV >> AND
回路例:INVAND (1/5)
18
or
(low)
回路例:INVAND (2/5)
19
1 0
1
1
1
0
0
0
t
↓
t
入力波形は以下のように表現できる:
変化点を t として,
ある点から t に向かう正の経路があればその点では入力は 1
t においては入力は↓(立ち下がり)
t からある点への正の経路があればその点では入力は 0 .
fork >> BUF ** INV >> AND
回路例:INVAND (3/5)
20
(low)
0↓
t
X↑ 0
1
X
0
0 ↓
0
Δ : 正の経路
ΔΔΔΔ
fork >> BUF ** INV >> AND
回路例:INVAND (4/5)
21
0↓
t
X
↑
1
1
X1 ↓
↓
注意:fork の代わりに fork< を使った場合,Δ’ は正でない.
Δ’ : 正の経路
Δ’ Δ’ Δ’ Δ’
↑
INVANDの結果をまとめると以下となる.
⇒ ゲート遅延を考慮した非同期回路についても形式検証
の適用が可能となった.
回路例:INVAND (5/5)
22
or
(low)
fork >> BUF ** INV >> AND
fork< >> BUF ** INV >> AND (low)
まとめ
回路とタイミング制約を同時に記述する方法を提案した.
Arrowの導入により構造ベースの回路表現が可能となった.
クリプキ意味論により,抽象的な遅延の概念を導入.
定理証明言語Agdaでの実装試行を行った.
課題
Veraci(回路記述とタイミング制約をもとに検証を行う手法/
ツール)との比較・検討
プロパティ記述からの回路生成についての検討.
23
補足:同期回路の制約
24
delay pfork<
FF FF
delay pfork<
MU
X1
MU
X0
MU
X0
FF
補足 : loop
25
f
g
g f
g
f
f
g
背景・目的(修正)
非動期回路の形式検証(プロパティ・チェッキング)を行う
ためにはタイミング制約の情報が不可欠である.
回路記述のみでは遅延値が不明であるため,検証が意味
をなさない.
回路とタイミング制約を同時に記述する方法があれば,よ
り良い設計言語となり得る
26