25
1 Okayama Prefectural University モデル検査技術による 組込みシステム向け フォーマル検証手法 岡山県立大学 情報工学部 情報システム工学科 教授 有本 和民

モデル検査技術による 組込みシステム向け フォーマル検証手法 · H/W設計検証への記号モデル検査の適用 1. Verilog-HDLの振る舞いのSMV言語での表現

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: モデル検査技術による 組込みシステム向け フォーマル検証手法 · H/W設計検証への記号モデル検査の適用 1. Verilog-HDLの振る舞いのSMV言語での表現

1Okayama Prefectural University

モデル検査技術による組込みシステム向けフォーマル検証手法

岡山県立大学 情報工学部 情報システム工学科

教授 有本 和民

Page 2: モデル検査技術による 組込みシステム向け フォーマル検証手法 · H/W設計検証への記号モデル検査の適用 1. Verilog-HDLの振る舞いのSMV言語での表現

2Okayama Prefectural University

HDL記述

仕様

テストベンチ生成

テストベンチ テスト

従来のH/W検証はランダムテストが主流

問題点:ランダムテストではテストの網羅性が保証できない大規模な設計に対しては検証コストが大きい

従来技術とその問題点

Page 3: モデル検査技術による 組込みシステム向け フォーマル検証手法 · H/W設計検証への記号モデル検査の適用 1. Verilog-HDLの振る舞いのSMV言語での表現

3Okayama Prefectural University

モデル生成

HDL記述

仕様

抽象HDL 論理

モデル

モデル検査

抽象化

1.網羅的かつ自動検証が可能なモデル検査を用いた

IPコア検証手法

2.HDLの抽象化技術

従来困難であった、以下が実現可能に○ 網羅的な動作検証が可能○ 抽象化による検証コスト削減

新技術の特徴・従来技術との比較

Page 4: モデル検査技術による 組込みシステム向け フォーマル検証手法 · H/W設計検証への記号モデル検査の適用 1. Verilog-HDLの振る舞いのSMV言語での表現

4Okayama Prefectural University

状態爆発の危険性モデルの網羅的探索

H/W設計検証への記号モデル検査の適用

HDL記述

仕様

論理モデル化

記号モデル検査

設計誤り検出

論理モデル

HDL記述(簡単化)

HDL記述の簡単化により検証コストの増加を抑制

記号モデル検査- 形式検証手法の一種- -論理モデル化された状態遷移系の網羅的探索による検証

仕様

論理モデル化

記号モデル検査

設計誤り検出

論理モデル

HDL記述

新技術の目的

Page 5: モデル検査技術による 組込みシステム向け フォーマル検証手法 · H/W設計検証への記号モデル検査の適用 1. Verilog-HDLの振る舞いのSMV言語での表現

5Okayama Prefectural University

H/W設計検証への記号モデル検査の適用

1. Verilog-HDLの振る舞いのSMV言語での表現2. Verilog-HDL記述の簡単化手法の考案3. 適用実験としてM8RマイクロプロセッサのVerilog-

HDL記述の一部をNuSMVで検証

Verilog-HDL

仕様

HDL(簡単化)

論理モデル(論理式)

モデル(SMV言語)

設計誤り検出

NuSMV

Verilog-HDLによるH/W設計を対象

記号モデル検査器NuSMV(モデル検査ツール)を利用

新技術の概要

Page 6: モデル検査技術による 組込みシステム向け フォーマル検証手法 · H/W設計検証への記号モデル検査の適用 1. Verilog-HDLの振る舞いのSMV言語での表現

6Okayama Prefectural University

SMV言語 - モデルの記法SMV言語:NuSMVのモデル記述言語

VAR

x : word[3];

ASSIGN

init(x) := 0b3_000;

next(x) := case

x = 0b3_011 : 0b3_000;

TRUE : x + 1;

esac;

SPEC AG!(x = 0b3_100)

変数宣言部モデル内の変数をブール型(boolean),列挙型({on,off}) ,ワード型(word[1])等で宣言.

遷移系記述部各変数の初期状態での値(init()),遷移後の状態での値(next())を定義.

検査式記述部モデルが満たすべき特性を時相論理式で記述.(例) AG「必ずつねに〜する」

AF「必ずいつか〜する」

Page 7: モデル検査技術による 組込みシステム向け フォーマル検証手法 · H/W設計検証への記号モデル検査の適用 1. Verilog-HDLの振る舞いのSMV言語での表現

7Okayama Prefectural University

モデルは状態遷移システムとして解釈される

SMV言語 - モデルの解釈

VAR

x : word[3];

ASSIGN

init(x) := 0b3_000;

next(x) := case

x = 0b3_011 : 0b3_000;

TRUE : x + 1;

esac;

SPEC AG!(x = 0b3_100)

変数xは3ビットのワード型x = 000, 001, …, 111

xの初期値は,000

満たすべき特性は「必ずつねにx=100でない」

検査結果はTRUEとなる

xの遷移後の値は,x = 011 のとき 000

それ以外のとき x + 1

000 → 001 → 010 → 011

Page 8: モデル検査技術による 組込みシステム向け フォーマル検証手法 · H/W設計検証への記号モデル検査の適用 1. Verilog-HDLの振る舞いのSMV言語での表現

8Okayama Prefectural University

対象とするVerilog記述

M8Rではassignブロックとalwaysブロックを用いて論理回路の振る舞いを記述

assign R = p & q;

always @(posedge PHI)

begin

x = in1 & in2;

end

イベント:ブロックを実行する条件

ブロック:逐次実行される処理の集合

assignブロック:単純な組み合わせ回路

alwaysブロック:信号の変化によって動作する順序回路

Page 9: モデル検査技術による 組込みシステム向け フォーマル検証手法 · H/W設計検証への記号モデル検査の適用 1. Verilog-HDLの振る舞いのSMV言語での表現

9Okayama Prefectural University

assignブロックの表現

assignブロックは単純な組み合わせ回路

next()を用いた代入文で表現

Verilog記述

assign R = p & q;VAR

R : boolean;

p : boolean;

q : boolean;

ASSIGN

next(R) := p & q;

SMV言語によるモデル

変数Rの値は組み合わせ回路p∧qの出力

次状態のRの値は,p∧q

Page 10: モデル検査技術による 組込みシステム向け フォーマル検証手法 · H/W設計検証への記号モデル検査の適用 1. Verilog-HDLの振る舞いのSMV言語での表現

10Okayama Prefectural University

2.aflgが真ならばブロックを実行

alwaysブロックの表現

alwaysブロックはイベントに起因する順序回路

1.ブロックの実行を表す変数aflgを定義し,イベントに応じてaflgの値を更新

always @(posedge PHI)

begin

x = in1 & in2;

end

PHIの立ち上がりによりブロック内の処理を実行

VAR

PHI : boolean;

aflg : boolean;

ASSIGN

init(aflg) := FALSE;

next(aflg) := case

next(PHI) & !PHI : TRUE;

TRUE : FALSE;

esac;¬PHI∧next(PHI)ならば,aflgは真

Page 11: モデル検査技術による 組込みシステム向け フォーマル検証手法 · H/W設計検証への記号モデル検査の適用 1. Verilog-HDLの振る舞いのSMV言語での表現

11Okayama Prefectural University

alwaysブロックの表現

always @(posedge PHI)

begin

x = in1 & in2;

end

VAR

PHI : …

x : boolean;

in1 : boolean;

in2 : boolean;

ASSIGN

init(aflg) := …

next(x) := case

aflg : in1 & in2;

TRUE : x;

esac;

2.aflgが真ならばブロックを実行

aflgが真なら,

代入文「x=in1&in2」を実行

そうでなければ,変数xについては何もしない

Page 12: モデル検査技術による 組込みシステム向け フォーマル検証手法 · H/W設計検証への記号モデル検査の適用 1. Verilog-HDLの振る舞いのSMV言語での表現

12Okayama Prefectural University

ブロック内の代入文の統合

case文は単一の代入処理を表現

always @(…) begin

if (in0==0) x = in1;

else x = in0;

y = x & in2;

if (in2==0) x = 1;

end

条件演算子(?:)で1つの代入文へと統合x = (in2==0) ? 1 :

(in0==0) ? in1 :

in0

次状態での変数の値が複数の代入文で書かれる場合は?

次状態での変数の値が代入文の逐次処理で決まる場合は?

y = (in0==0) ? in1 & in2 :

in0 & in2

Page 13: モデル検査技術による 組込みシステム向け フォーマル検証手法 · H/W設計検証への記号モデル検査の適用 1. Verilog-HDLの振る舞いのSMV言語での表現

13Okayama Prefectural University

統合した代入文の表現

x = (in2==0) ? 1 :

(in0==0) ? in1 :

in0

y = (in0==0) ? in1 & in2 :

in0 & in2

統合した代入文をcase文で表現

VAR

ASSIGN

next(x) := case

aflg & in2==0 : 1;

aflg & in0==0 : in1;

aflg : in0;

TRUE : x;

esac;

VAR

ASSIGN

next(y) := case

aflg & in0==0 : in1&in2;

aflg : in0&in2;

TRUE : x;

esac;

Page 14: モデル検査技術による 組込みシステム向け フォーマル検証手法 · H/W設計検証への記号モデル検査の適用 1. Verilog-HDLの振る舞いのSMV言語での表現

14Okayama Prefectural University

記述の簡単化

always @( d1ropcod ) begin

casez( d1ropcod )

8'b00000???: d1dop1de = `DEC1¥_ADD;

8'b00010???: d1dop1de = `DEC1¥_ADC;

8'b00100???: d1dop1de = `DEC1¥_SUB;

8'b00001???: d1dop1de = `DEC1¥_AND;

8'b00011???: d1dop1de = `DEC1¥_OR;

8'b00101???: d1dop1de = `DEC1¥_XOR;

default: d1dop1de = `DEC1¥_X;

endcase

end

不定値を含む条件文

always @( d1ropcod ) begin

casez( d1ropcod[7:3] )

8'b00000: d1dop1de = `DEC1¥_ADD;

8'b00010: d1dop1de = `DEC1¥_ADC;

8'b00100: d1dop1de = `DEC1¥_SUB;

8'b00001: d1dop1de = `DEC1¥_AND;

8'b00011: d1dop1de = `DEC1¥_OR;

8'b00101: d1dop1de = `DEC1¥_XOR;

default: d1dop1de = `DEC1¥_X;

endcase

end

判定に影響しない部分を削除

Page 15: モデル検査技術による 組込みシステム向け フォーマル検証手法 · H/W設計検証への記号モデル検査の適用 1. Verilog-HDLの振る舞いのSMV言語での表現

15Okayama Prefectural University

実験

検査対象

検査項目

8bitマイコンM8Rの設計内のデコーダ部分

変数:29,alwaysブロック:6(M8R全体) 変数:149,alwaysブロック:77

AND命令に対応する信号(0b5_00001)が入力されたとき,必ず正しい制御信号(0ud16_57076)が生成される

AG I1HOPCOD[7:3]=0b5_00001

-> AF d1dop1de=0ud16_57076

振る舞いと等価なCTL式

Page 16: モデル検査技術による 組込みシステム向け フォーマル検証手法 · H/W設計検証への記号モデル検査の適用 1. Verilog-HDLの振る舞いのSMV言語での表現

16Okayama Prefectural University

実験結果実験内容

HDL記述の簡単化の有無に関するコスト比較

コスト=BDDノード数と検証時間

COI(cone of influence)オプションの効果についても検討

検査式に関連する部分のみをモデル化

ノード数 検査時間(秒) coi

簡単化無938,293 1,554.12 無

885,617 0.72 有

簡単化有909,919 1,480.96 無

610,372 0.51 有

簡単化によるノード数の減少を確認

簡単化によりCOIの効果が上昇

※実験環境:[OS]Windows 7(32bit),

[CPU]Intel Core i7 2.67GHz, [メモリ]3GB RAM

Page 17: モデル検査技術による 組込みシステム向け フォーマル検証手法 · H/W設計検証への記号モデル検査の適用 1. Verilog-HDLの振る舞いのSMV言語での表現

17Okayama Prefectural University

H/W設計検証への記号モデル検査の適用まとめ

VerilogによるH/W設計へのNuSMVの適用事例を報告

1. Verilog-HDLのSMV言語によるモデル化2. Verilog-HDL記述の簡単化3. M8Rマイクロプロセッサの一部をNuSMVで検証

• COIオプションの効果が大きい• 簡単化によってCOIの効果が上昇

Verilog-HDL

仕様

HDL(簡単化)

論理モデル(論理式)

モデル(SMV言語)

設計誤り検出

NuSMV

今後の課題 HDL記述の抽象化の高品位化と自動化

Page 18: モデル検査技術による 組込みシステム向け フォーマル検証手法 · H/W設計検証への記号モデル検査の適用 1. Verilog-HDLの振る舞いのSMV言語での表現

18Okayama Prefectural University

統合設計フロー

従来方式 本提案方式

Page 19: モデル検査技術による 組込みシステム向け フォーマル検証手法 · H/W設計検証への記号モデル検査の適用 1. Verilog-HDLの振る舞いのSMV言語での表現

19Okayama Prefectural University

当該技術で想定できる事業や解決すべき課題

モデル生成

HDL記述

仕様

抽象HDL 論理

モデル

モデル検査

抽象化

検証支援環境

HDL記述の抽象化およびモデル生成を自動的に行うための検証支援環境⇒市場からの要求は非常に大

技術応用の事例が少なく,開発コスト削減の効果と導入コストを比較しての評価がまだ不十分である.

Page 20: モデル検査技術による 組込みシステム向け フォーマル検証手法 · H/W設計検証への記号モデル検査の適用 1. Verilog-HDLの振る舞いのSMV言語での表現

20Okayama Prefectural University

1.獲得できる技術

2.獲得した技術で可能な応用展開先

•フォーマル検証ツールを利用するための技術•HDL設計にフォーマル検証を適用するためのノウハウ

フォーマル検証技術は初期導入コスト必要だが利用した場合の利益が大きい。(検証ランニングコスト最小化)獲得した技術により組込みシステムの開発コストを大幅に削減できる.

メーカへの効果

Page 21: モデル検査技術による 組込みシステム向け フォーマル検証手法 · H/W設計検証への記号モデル検査の適用 1. Verilog-HDLの振る舞いのSMV言語での表現

21Okayama Prefectural University

想定される用途(1)

1.組込みシステム向けIP設計の網羅検証

2.複数のIPを接続したシステムレベルでの結合網羅検証(プラットフォーム設計スタイルへの適用)

3.組込みシステム向けIPの受け入れ網羅検証(購入IP等への活用)

Page 22: モデル検査技術による 組込みシステム向け フォーマル検証手法 · H/W設計検証への記号モデル検査の適用 1. Verilog-HDLの振る舞いのSMV言語での表現

22Okayama Prefectural University

想定される用途(2)

1.組込みソフトウエアのクリーンルーム検証(アウトソーシング活用)

2.モデルベース設計向け検証ツール(モデルベースデザインへの対応)

3.IP認証機構(コンプライアンス試験等への寄与)

Page 23: モデル検査技術による 組込みシステム向け フォーマル検証手法 · H/W設計検証への記号モデル検査の適用 1. Verilog-HDLの振る舞いのSMV言語での表現

23Okayama Prefectural University

研究者 技術者

検証技術

導入支援

設計データ

現場の評価

開発現場での

実地評価

技術開発現場への導入

評価と分析

製品化

共同研究開発の概要

共同研究開発のロードマップの概要

共同研究開発概要

Page 24: モデル検査技術による 組込みシステム向け フォーマル検証手法 · H/W設計検証への記号モデル検査の適用 1. Verilog-HDLの振る舞いのSMV言語での表現

24Okayama Prefectural University

技術開発• 提供された設計データを利用して,効

果的な抽象化手法について検討• モデルを効率的に生成するための手法

について検討

現場への導入• フォーマル検証ツールの利用支援• 開発した手法を利用した検証の実施

当該年度開発計画案

Page 25: モデル検査技術による 組込みシステム向け フォーマル検証手法 · H/W設計検証への記号モデル検査の適用 1. Verilog-HDLの振る舞いのSMV言語での表現

25Okayama Prefectural University

お問い合わせ先

岡山県立大学地域共同研究機構

産学官連携推進センター

産学官連携コーディネーター 小林東夫

TEL 0866-94 - 2205

FAX 0866-94 - 2206

e-mail koba@fhw.oka-pu.ac.jp