sdf2007 sonac presentation2007/01/29  · 2007/1/29 sonac inc. proprietary and confidential 3333...

38
Sonac Inc. 2007/1/29 Sonac Inc. Proprietary and Confidential SystemVerilogで構築した アレイプロセッサ検証環境とその効果 ソナック株式会社 LSI事業部 清水圭典

Upload: others

Post on 24-Jan-2021

0 views

Category:

Documents


0 download

TRANSCRIPT

Sonac Inc.

2007/1/29 Sonac Inc. Proprietary and Confidential

SystemVerilogで構築したアレイプロセッサ検証環境とその効果

ソナック株式会社

LSI事業部

清水圭典

2007/1/29 Sonac Inc. Proprietary and Confidential 2222

Sonac Inc.

発表内容

アレイプロセッサの概要

従来の検証手法の問題点

検証アーキテクチャの特徴

成果と今後の課題

2007/1/29 Sonac Inc. Proprietary and Confidential 3333

Sonac Inc.

アレイプロセッサの概要 (1)

16ビット演算エレメント(PE)を32個搭載

2個のPEを一組として32ビット演算も可能

各PEはRISCと同レベルの命令セットを持つ

ロード/ストアも可能

接続エレメント(IPE)を用意し複数のアレイプロセッサを直接接続

ストリームデータ処理が可能

from

Array In

terc

onne

ct

to A

rray Inte

rconnect

2007/1/29 Sonac Inc. Proprietary and Confidential 4444

Sonac Inc.

アレイプロセッサの概要 (2)

INT

ArrayProcessor

#1(S2AP #1)

ArrayProcessor

#2(S2AP #2)

ArrayProcessor

#n(S2AP #n)

InternalRAM

Bus InterfaceUnit

GeneralPurpose

Processor(RISC)

AHB

SoC Internal Bus

Array Interconnect

Design UnderVerificationMPU

Array Processors (Configurable)アレイプロセッサ数は要求性能に応じて変更可能

MPUがアレイプロセッサを制御

アレイプロセッサ、内部メモリおよびMPUはAHBで接続

アレイプロセッサ間のデータはAHBを介さずアレイ・インターコネクトを使用

2007/1/29 Sonac Inc. Proprietary and Confidential 5555

Sonac Inc.

発表内容

アレイプロセッサの概要

従来の検証手法の問題点

検証アーキテクチャの特徴

成果と今後の課題

2007/1/29 Sonac Inc. Proprietary and Confidential 6666

Sonac Inc.

ダイレクト検証の問題点

膨大な(1万以上の)テストケースが必要となるRTL開発効率に追いついておらず、LSI開発のボトルネックになっている

いくらテストケースを用意しても、コーナーケースのバグがとれない

テストケースがなければ、その機能は検証されない

想定外のケースが必ず残る

複雑なコーナーケースをすべて想定することは不可能

想定できたとしても、テストケースとして実現するのは困難な場合が多い

冗長なテストケースが多数存在する

2007/1/29 Sonac Inc. Proprietary and Confidential 7777

Sonac Inc.

制約付きランダム検証の導入

複数のシナリオからテストベンチがスティミュラスを自動生成現実には起こりうるが、想定外のコーナーケースにヒットし易い

テストケースが単純主にランダム・パラメタの設定のみ

テストケースではなく、テストベンチがデータ・チェックを行う

ランダム・シードを変えることで検証カバレッジを上げるダイレクト検証

多数(1万以上)のテストケース × 1回の実行

制約付きランダム検証

最小(数十)のテストケース × 数百シードの実行

2007/1/29 Sonac Inc. Proprietary and Confidential 8888

Sonac Inc.

発表内容

アレイプロセッサの概要

従来の検証手法の問題点

検証アーキテクチャの特徴

成果と今後の課題

2007/1/29 Sonac Inc. Proprietary and Confidential 9999

Sonac Inc.

ベースとした検証メソドロジ

Verification Methodology Manual for SystemVerilog (VMM)

VMMを採用した理由アレイプロセッサのコーナーケース・バグを体系的に発見するためのメソドロジが必要であった

将来のプロダクトのためにテストベンチを最大限再利用したかった

SystemVerilogなのでVerilogデザインとの親和性に優れている

仕様がオープンなので、将来、業界標準になりうる

2007/1/29 Sonac Inc. Proprietary and Confidential 10101010

Sonac Inc.

検証アーキテクチャの特徴

階層的テストベンチ

インクリメンタルなテストベンチ

制約付きランダム検証

機能カバレッジ・ドリブン検証

アサーション

検証環境の再利用

VMMに完全準拠

2007/1/29 Sonac Inc. Proprietary and Confidential 11111111

Sonac Inc.

階層的テストベンチ

インクリメンタルなテストベンチテスト階層 … シナリオの選択、ランダム・パラメタの設定

シナリオ階層 … トランザクションの生成

機能階層 … トランザクションからコマンドへの変換

コマンド階層 … コマンドから信号への変換

信号階層 … 検証対象とテストベンチの接続

検証環境の完成を待たずに検証作業が開始可能制約を制限することで、機能の一部実装段階からランダム検証が開始可能

ダイレクト検証もサポート

2007/1/29 Sonac Inc. Proprietary and Confidential 12121212

Sonac Inc.

インクリメンタルなテストベンチ (1)

Design Under Verification

AHB

AHB

Master

Transactor

AHB

Slave

Transactor

Interrupt

Handler

ch

Signal Layer

Command LayerRAM

Transactor

Array

Processor nRAM

Array

Processor 1

ch

ch

ch

Functional

Coverage

TestcaseTest Layer

2007/1/29 Sonac Inc. Proprietary and Confidential 13131313

Sonac Inc.

インクリメンタルなテストベンチ (2)

SoC TransactorArray

Controller

Functional Layer

ch

ch

ch

Design Under Verification

AHB

AHB

Master

Transactor

AHB

Slave

Transactor

Interrupt

Handler

ch

Signal Layer

Command LayerRAM

Transactor

Array

Processor nRAM

Array

Processor 1

ch

ch

ch

Functional

Coverage

Functional

Coverage

TestcaseTest Layer

Array

Processor

Transactors

Scoreboard

2007/1/29 Sonac Inc. Proprietary and Confidential 14141414

Sonac Inc.

インクリメンタルなテストベンチ (3)

SoC TransactorArray

Controller

Functional Layer

ch

ch

ch

Design Under Verification

AHB

AHB

Master

Transactor

AHB

Slave

Transactor

Interrupt

Handler

ch

Signal Layer

Command LayerRAM

Transactor

Array

Processor nRAM

Array

Processor 1

ch

ch

ch

Functional

Coverage

Functional

Coverage

Testcase

Instruction GeneratorScenario Layer

Test Layer

Functional

Coverage

Array

Processor

Transactors

Scoreboard

2007/1/29 Sonac Inc. Proprietary and Confidential 15151515

Sonac Inc.

制約付きランダム検証

SystemVerilogのconstraint構文によって

有効な入力パターンを自動生成する

constraint src0_con {

solve op, D before src0;

if ( D == 1 ) src0 % 2 == 0;

if ( op == NU || op == INPUT ) src0 == 0;

if ( op == OUTPUT ) src0 == y;

if ( op == ELIM )

src0 == y + 8; // self-loop

else if ( closed_loop_en == 0 )

src0 < 8;

else if ( ! ( op == CNST || op == CNSTS ) )

src0 != y + 8; // no self-loop

}

constraint D_con { // double instruction

if ( y % 2 ) D == 0;

D dist { 0 := 100 – D_pct, 1 := D_pct };

}

2007/1/29 Sonac Inc. Proprietary and Confidential 16161616

Sonac Inc.自動生成されたセグメント(アレイプロセッサ命令ツリー)の例

2007/1/29 Sonac Inc. Proprietary and Confidential 17171717

Sonac Inc.

自動生成されたセグメントグループの例

セグメント

2007/1/29 Sonac Inc. Proprietary and Confidential 18181818

Sonac Inc.

機能カバレッジ・ドリブン検証

機能カバレッジとランダム検証は両輪の関係

カバレッジをフィードバックすることによって、シミュレーション効率を上げる

同じ機能を何度も検証しない

カバーされていない機能を重点的にカバーするように制約を変更する

ユーザが後からカバレッジ・ポイントを容易に追加できるようにvmm_xactor_callbacksを利用

2007/1/29 Sonac Inc. Proprietary and Confidential 19191919

Sonac Inc.SystemVerilogによる機能カバレッジ記述例covergroup op_cg; // op-code covergroup

op_cp: coverpoint op {

bins ADD = { pe_inst_class::ADD };

bins SUB = { pe_inst_class::SUB };

}

op_xc: cross op_cp, I_cp, D_cp { // cross coverage among

… // op-code, immediate, double

illegal_bins illegal_imm =

binsof( op_cp ) intersect { pe_inst_class::NOT } &&

binsof( I_cp ) intersect { 1 };

}

}

covergroup ldst_cg; // load/store operation covergroup

sgl_ld_cnt_cp: coverpoint sgl_ld_cnt { // single load count

bins NO_LOAD = { 0 };

bins SINGLE_LOAD_1_TO_7 = { [1:7] };

bins SINGLE_LOAD_8 = { 8 };

}

}

2007/1/29 Sonac Inc. Proprietary and Confidential 20202020

Sonac Inc.

機能カバレッジ出力例

2007/1/29 Sonac Inc. Proprietary and Confidential 21212121

Sonac Inc.

アサーション

バグの発生箇所をピンポイントで見つけるために各種アサーションを使用assert property

assume property

アサーションIP

設計に依存したコーナーケースがどれだけカバーされたかを把握cover property

2007/1/29 Sonac Inc. Proprietary and Confidential 22222222

Sonac Inc.

カバレッジプロパティの記述例

// property declarations

property fifo_full_rose_p;

@ ( posedge clk ) ( rst_n == 1 && clr == 0 ) && $rose( full );

endproperty

property fifo_empty_rose_p;

@ ( posedge clk ) ( rst_n == 1 && clr == 0 ) && $rose( empty );

endproperty

// cover statements

fifo_full_rose_cp: cover property ( fifo_full_rose_p );

fifo_empty_rose_cp: cover property ( fifo_empty_rose_p );

2007/1/29 Sonac Inc. Proprietary and Confidential 23232323

Sonac Inc.

検証環境の再利用

テストベンチの再利用テストファイルからテストベンチを再構成

トランザクタの再利用コールバックによってトランザクタの動作を変更

検証モジュールの入れ替えが容易チャネル接続により検証モジュール間が疎結合

プロジェクト間での再利用

scen_cbs = new; // scenario callbacks

env.scen_gen.append_callbacks( scen_cbs );

env = new( 2 ); // # of array processors

VMM

VMM

2007/1/29 Sonac Inc. Proprietary and Confidential 24242424

Sonac Inc.

発表内容

アレイプロセッサの概要

従来の検証手法の問題点

検証アーキテクチャの特徴

成果と今後の課題

2007/1/29 Sonac Inc. Proprietary and Confidential 25252525

Sonac Inc.

シミュレーションリソース

サン・マイクロシステムズ(株)様より以下のリソースを貸与していただきました

Sun Fire V40z 3台

2.6GHz CPU×4 (トータル12 CPU)

各16GB Memory

x64 Solaris 10

Sun Java Workstation W2100z 1台

トータル2 CPU

Gridジョブ投入用

Sun N1 Grid Engine

使用ツールVCSシミュレータ 16本

2007/1/29 Sonac Inc. Proprietary and Confidential 26262626

Sonac Inc.

シミュレーション環境

2007/1/29 Sonac Inc. Proprietary and Confidential 27272727

Sonac Inc.

リグレッション用テストケースの概要

すべての命令を制約付きランダムに生成

(アレイ)セグメント

最大32個の命令を含む

最大32個のストリームデータを各命令に入力

セグメントグループ

1~7個のセグメントで構成

テスト

100セグメントグループの処理を行う

リグレッション

異なる100シードのシミュレーションを行う

最大で合計32×32×7×100×100=7,168万命令を処理

Bus Access Interface

Array Processor (S2AP) : 32 PEs + 16 IPEs

AHB

IPE

IPE

IPE

IPE

IPE

IPE

IPE

IPE

RF

RF

RF

RF

RF

RF

RF

RF

PE

PE

PE

PE

PE

PE

PE

PE

IPE

IPE

IPE

IPE

IPE

IPE

IPE

IPE

RF

RF

RF

RF

RF

RF

RF

RF

PE

PE

PE

PE

PE

PE

PE

PE

RF

RF

RF

RF

RF

RF

RF

RF

PE

PE

PE

PE

PE

PE

PE

PE

RF

RF

RF

RF

RF

RF

RF

RF

PE

PE

PE

PE

PE

PE

PE

PE

RF

RF

RF

RF

RF

RF

RF

RF

2007/1/29 Sonac Inc. Proprietary and Confidential 28282828

Sonac Inc.

0 10,000 20,000 30,000 40,000 50,000

Testbench

RTL

Number of Lines

コード量比較(1月24日現在)

Verilog RTL合計ライン数=43,513コメントを含む

SystemVerilog検証環境合計ライン数=34,074コメントを含む

テストケース記述は除く

2007/1/29 Sonac Inc. Proprietary and Confidential 29292929

Sonac Inc.

0

10

20

30

40

50

60

70

1 5 9 13 17 21 25 29 33 37 41 45 49 53 57 61 65 69 73 77 81 85

Day

Nu

mb

er

of

Bu

gs

Fo

un

d

RTL Testbench

累積バグ数の推移(1月24日現在)

リグレッション開始前 リグレッション開始後

2007/1/29 Sonac Inc. Proprietary and Confidential 30303030

Sonac Inc.

0

10

20

30

40

50

60

70

80

90

100

12 3 4 5 6 78 91011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586

Day

Nu

mb

er

of

Sim

ula

tio

ns

Pa

ss

ed

0.00

0.50

1.00

1.50

2.00

2.50

3.00

3.50

4.00

To

tal S

imu

lati

on

Cy

cle

s

[millio

n]

Number of Simulations Passed Total Simulation Cycles

シミュレーションサイクル数の推移(1月24日現在)

リグレッション開始後10日程度でサイクル数が急速に増加

命令追加

命令追加

リグレッション開始前

2007/1/29 Sonac Inc. Proprietary and Confidential 31313131

Sonac Inc.

0

10

20

30

40

50

60

70

80

90

100

12 3 45 6 78 91011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586

Day

Nu

mb

er

of

Sim

ula

tio

ns

Pa

ss

ed

0.00%

10.00%

20.00%

30.00%

40.00%

50.00%

60.00%

70.00%

80.00%

90.00%

100.00%

Fu

nc

tio

na

l C

ov

era

ge

[%

]

Number of Simulations Passed FC of Passed Runs

機能カバレッジの推移(1月24日現在)

有効カバレッジbin総数=339

リグレッション開始前

最後の10%は

ダイレクトテストが必要

2007/1/29 Sonac Inc. Proprietary and Confidential 32323232

Sonac Inc.

0

10

20

30

40

50

60

High Medium Low

Nu

mb

er

of

Bu

gs F

ou

nd

RTL Testbench

重要度別バグの分類(1月24日現在)

High – 修正しなければシミュレーションが継続できないバグ

Medium – シミュレーションは継続できるが重要なバグ

Low – その他のバグ

アサーションで発見

2007/1/29 Sonac Inc. Proprietary and Confidential 33333333

Sonac Inc.

検出されたコーナーケースバグの例

コーナーケースバグ1“2つ以上のセグメントを連続で動かす際、S2APがジャンプをISDモジュールに発行し同期待ちをしている間、同期実行終了のACKを受ける前に、Rフラグつきのセグメントのフェッチが完了したとき、S2APがStop→Decode→Runへ状態遷移してしまう”

コーナーケースバグ2“あるクラスタからジャンプ例外を伴ってセグメント切替を行う場合、その例外をクリアするのと同時に、次クラスタの実行要求リクエストがS2APから到達した場合、ISDモジュールが実行開始のACKを返さない”

2007/1/29 Sonac Inc. Proprietary and Confidential 34343434

Sonac Inc.

16.75

5.76

0.56

0 5 10 15 20

Non Grid - Dell Intel

Xeon ×2 CPU

Non Grid - Sun Fire

V40z (OS: RHEL v3)

Grid - Sun Fire V40z

12 CPU

Run Time [hrs]

Grid環境を用いたシミュレーションの効果

リグレッション時間の比較Grid Engine (12 CPU)を用いることによりシミュレーション時間を約1/10に短縮

1/10

2007/1/29 Sonac Inc. Proprietary and Confidential 35353535

Sonac Inc.

成果

SystemVerilogを使用することにより、再利用可能な制約付きランダム検証環境を効率的に構築できた

下位の階層から順次実装することによって、検証環境の完成を待たずに検証作業を開始することができた

制約付きランダム検証により、短期間で十分な機能カバレッジを達成することができた

Grid Engineによるサーバーファームを用いることで、制約付きランダム検証の効率を大幅にあげることができた

2007/1/29 Sonac Inc. Proprietary and Confidential 36363636

Sonac Inc.

今後の課題

機能カバレッジ結果から制約条件へのフィードバック手法の確立

アサーションIPの開発と活用

2007/1/29 Sonac Inc. Proprietary and Confidential 37373737

Sonac Inc.

検証サービスのご案内

検証アーキテクチャの構築再利用を念頭に置いたアーキテクチャ

制約付きランダム検証環境の構築にはノウハウが必要

検証環境の品質が検証対象の品質を左右する

検証ライブラリを用いた検証環境、検証IPの開発コントロール・レジスタ、AMBAトランザクタ等の汎用クラス・ライブラリ

検証ユーティリティの開発と提供

検証マネジメントに関するコンサルティング

2007/1/29 Sonac Inc. Proprietary and Confidential 38383838

Sonac Inc.

お問合せ先

ソナック株式会社LSI事業部〒222-0033 神奈川県横浜市港北区新横浜2-13-6 第一KSビル4階

電話: (045) 470-0313

FAX: (045) 470-0326

E-mail: [email protected]

URL: http://lsi.sonac.co.jp