Microsoft PowerPoint - 01_Vengineer.ppt

Similar documents
Verilog HDL による回路設計記述

PowerPoint Presentation

機能検証トレーニング コース一覧

PowerPoint Presentation

ModelSim-Altera - RTL シミュレーションの方法

Microsoft PowerPoint - 集積回路工学_ ppt[読み取り専用]

Presentation Title

Quartus II クイック・スタート・ガイド

VelilogHDL 回路を「言語」で記述する

Microsoft PowerPoint - EMPro_ADS_co_design_draft.ppt [互換モード]

Nios II 簡易シミュレーション

デジタル回路入門

組込みシステムにおける UMLモデルカタログの実践研究

Report Template

Quartus II クイック・スタートガイド

インテル(R) Visual Fortran コンパイラ 10.0



数はファイル内のどの関数からでも参照できるので便利ではありますが 変数の衝突が起こったり ファイル内のどこで値が書き換えられたかわかりづらくなったりなどの欠点があります 複数の関数で変数を共有する時は出来るだけ引数を使うようにし グローバル変数は プログラムの全体の状態を表すものなど最低限のものに留

Presentation Title

memo

Quartus II はじめてガイド - EDA ツールの設定方法

Microsoft PowerPoint - 第5章補足-DB2組み込みSQL.ppt

TRQerS - Introduction

/

ML 演習 第 4 回

SimscapeプラントモデルのFPGAアクセラレーション

Fortran 勉強会 第 5 回 辻野智紀

Microsoft PowerPoint - CproNt02.ppt [互換モード]

(1) プログラムの開始場所はいつでも main( ) メソッドから始まる 順番に実行され add( a,b) が実行される これは メソッドを呼び出す ともいう (2)add( ) メソッドに実行が移る この際 add( ) メソッド呼び出し時の a と b の値がそれぞれ add( ) メソッド

<<SPICE アナログ コードの生成 >> WaveFormerPro は タイミング ダイヤグラムをアナログ SPICE コードへエクスポートする機能を持ちます これは Waveperl スクリプトにより実現しています 信号波形は PWL(PieceWiseLinear を用いてモデル化されます

2 概要 市場で不具合が発生にした時 修正箇所は正常に動作するようにしたけど将来のことを考えるとメンテナンス性を向上させたいと考えた リファクタリングを実施して改善しようと考えた レガシーコードなのでどこから手をつけて良いものかわからない メトリクスを使ってリファクタリング対象を自動抽出する仕組みを

Microsoft Word - matlab-coder-code-generation-quick-start-guide-japanese-r2016a

プログラミング基礎

言語プロセッサ2005

SystemDirector Developer's Studio(V3.2) 適用ガイド

starc_verilog_hdl pptx

目次 当社のご紹介 モデル駆動開発とは モデル駆動開発ツール BricRobo とは BricRobo で L チカ派生開発 BricRobo の展開 記載された商品名 製品名は各社の登録商標または商標です 1

slide5.pptx

<4D F736F F F696E74202D C190DD B A CB48D65208E DC58F49205B8CDD8AB B83685D>

Oracle SQL Developer Data Modeler

スライド 1

プログラミング実習I

モータ HILS の概要 1 はじめに モータ HILS の需要 自動車の電子化及び 電気自動車やハイブリッド車の実用化に伴い モータの使用数が増大しています 従来行われていた駆動用モータ単体のシミュレーション レシプロエンジンとモータの駆動力分配制御シミュレーションの利用に加え パワーウインドやサ

DAシンポ2003_SLD研_発表原稿

PGRelief C/C++ 強化ポイント説明書

Microsoft PowerPoint pptx

説明書

Presentation Title

Microsoft Word _C2H_Compiler_FAQ_J_ FINAL.doc

White Paper 高速部分画像検索キット(FPGA アクセラレーション)

Microsoft Word - J-jdev_dba_db_developers.doc

CANapeを用いたラピッドコントロールプロトタイピングのバイパス手法による制御モデル開発

エンジニアリング・サービスから見たMBD導入の成功・失敗

Microsoft Word - tutorial3-dbreverse.docx

kiso2-03.key

SOPC Builder ペリフェラル 簡易ユーザ・ガイド - PIO (Parallel I/O)

「RAD Studio XE5によるマルチ言語/マルチデバイス開発の進め方」

SystemC言語概論

エンティティ : インタフェースを定義 entity HLFDD is port (, : in std_logic ;, : out std_logic ) ; end HLFDD ; アーキテクチャ : エンティティの実現 architecture RH1 of HLFDD is <= xor

Unconventional HDL Programming ( version) 1

JAVA とテンプレート

スクールCOBOL2002

Microsoft PowerPoint LC_15.ppt

IM-SecureSignOn

Quartus II はじめてガイド - EDA ツールの設定方法

f2-system-requirement-system-composer-mw

ハードウェア記述言語の今と未来_公開用.ppt

HLS はじめてガイド - 簡易チュートリアル

回路シミュレータ/MATLABリンク~詳細回路設計におけるシステムレベル検証~

COBOL EE開発環境 ご紹介資料

1

intra-mart EX申請システム version.5.3 PDFオプション リリースノート

_...j.f......_..

Simulinkモデル開発における工夫事例

回路 7 レジスタ ( 同期イネーブル及び非同期リセット付 ) 入力データを保持するのに用いる記憶素子 使用用途として, マイクロプロセッサ内部で演算や実行状態の保持に用いられる Fig4-2 のレジスタは, クロック信号の立ち上がり時かつ 信号が 1 のときに外部からの 1 ビットデータ R をレ

ジョブ管理ソフトウェア LoadStar Scheduler ご紹介資料 ~ システム運用品質の向上とコスト削減を実現 ~

目次 1. はじめに 準備 機器構成 やさしく名刺ファイリング Pro v.14.0 セットアップと動作確認 やさしく名刺ファイリング Pro v.14.0 セットアップ... 5 Windows Windows 8.

Notes and Points for TMPR454 Flash memory

TECSをサポートする構造設計ツール ZIPC Toy!

メディプロ1 Javaプログラミング補足資料.ppt

Javaの作成の前に

intra-mart EX申請システム version.7.2 PDFオプション リリースノート

C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ

関数の呼び出し ( 選択ソート ) 選択ソートのプログラム (findminvalue, findandreplace ができているとする ) #include <stdio.h> #define InFile "data.txt" #define OutFile "sorted.txt" #def

CashDrawer ライブラリ API 仕様書 2014/07/09 CashDrawer ライブラリ API 仕様書 Rev / 10

Microsoft PowerPoint - A1-2_株式会社ネクスト_藤澤正通_S _005.pptx

Slide 1

関数の呼び出し ( 選択ソート ) 選択ソートのプログラム (findminvalue, findandreplace ができているとする ) #include <stdiu.h> #define InFile "data.txt" #define OutFile "surted.txt" #def

PowerPoint Presentation

C 言語の式と文 C 言語の文 ( 関数の呼び出し ) printf("hello, n"); 式 a a+4 a++ a = 7 関数名関数の引数セミコロン 3 < a "hello" printf("hello") 関数の引数は () で囲み, 中に式を書く. 文 ( 式文 ) は

Microsoft PowerPoint - 09.pptx


BIP Smart サンプル説明書

Program Design (プログラム設計)

FUJITSU Software Systemwalker for Oracle V15 (15.1) 紹介資料

自己紹介 日本電気株式会社情報 ナレッジ研究所 須堯一志 ( すぎょうかずし ) 主にネットワークのプロトコルを開発している技術者 1997 年に IPv6 のプロトコルスタック開発を通じてオープンソース開発に関わる 2009 年頃から OpenFlow に関わる 2011 年 Trema がオープ

PowerPoint プレゼンテーション

ディジタル回路 第1回 ガイダンス、CMOSの基本回路

IBIS

Transcription:

Software Driven Verification テストプログラムは C 言語で! SystemVerilog DPI-C を使えば こんなに便利に! 2011 年 9 月 30 日 コントローラ開発本部コントローラプラットフォーム第五開発部 宮下晴信

この資料で使用するシステム名 製品名等は一般にメーカーや 団体の登録商標などになっているものもあります なお この資料の中では トレードマーク コピーライト等の表示は 明記しておりません 2

目次 検証という仕事 Software Driven Verification SystemVerilog DPI-C を利用してみる 開発事例 3

検証という仕事

検証という仕事 ハードウェア ソフトウェア 検証検証 システム ツール 5

仕事の詳細は? ハードウェア モデル作成 ( モデリング ) ソフトウェア システム ツール シナリオ作成 ( テストプログラム ) プログラム ( C C++ Java HVL HDL ) スクリプト ( 簡易言語 汎用言語 : Perl/Ruby/Python ) 検証仕様書検証項目リスト作成 テストベンチ作成 データ / 期待値作成 ツール作成自動化 ( 期待値生成 シミュレーション 期待値チェック ) 6

3 つの要素 トップテストベンチ モデル テストプログラム DUT チェッカ / モニタ 7

言語 : 1990 年代 設計 検証 実装 アサーション モデリング テストフ ロク ラム HDL 前半 VHDL VHDL VHDL VHDL 90 94 Verilog-HDL Verilog-HDL Verilog-HDL Verilog-HDL HVL 後半 VHDL e e e 95 99 Verilog-HDL Vera Vera Vera 8

言語 : 2000 年代 設計 検証 実装 アサーション モデリング テストフ ロク ラム C SystemC PSL SystemC SystemC 前半 + + + 00 04 VHDL Verilog-HDL e OVA e OpenVera e OpenVera SV SystemC SystemC SystemC 後半 + + + 05 09 SystemVerilog SVA SystemVerilog SystemVerilog DPI-C 9

Software Driven Verification

Software Driven Verification DUT にソフトウェア ( テストプログラム ) を使って 検証する そこで テストプログラムを何で書いている? トップテストベンチ モデル テストプログラム DUT チェッカ / モニタ 11

BFM によるテストプログラムの実行 HDL / HVL が利用できる Logic Simulator のみで実行可能である HDL / HVL / SystemC / SystemVerilog テストプログラム BFM DUT モデル チェッカー 12

ISS によるテストプログラムの実行 実機と同じプログラムが利用できる ISS が重いと 全体のシミュレーション速度が低下する テストプログラム ISS Assembler / C / C++ モデル BFM DUT チェッカー 13

Co-Simulation によるテストプログラムの実行 C/C++ などのソフトウェアでの言語が利用できるテストプログラムを別の CPU で実行すれば シミュレーション速度の低下は少ない テストプログラム API Assembler / C / C++ モデル API BFM DUT チェッカー 14

テストプログラムの再利用 BFM ISS Co-Simulation テストフ ロク ラム BFM フ ロック検証 再利用 テストフ ロク ラム BFM チッフ 検証 再利用 テストフ ロク ラム BFM 結合検証 15

SystemVerilog DPI-C を利用してみる

SystemVerilog のいろいろな機能 インターフェース 機能カバレッジ 同期機能 ( セマフォ / メイルホ ックス ) 制約付きランダム生成 SystemVerilog アサーション (SVA) DPI-C クラス 記述量の削減 (.* によるホ ートハ イント ) 17

SystemVerilog DPI-C を利用すると 基本的には Co-Simulation によるテストプログラムの実行と同じ特別な仕組み ( 道具は必要なし ) C / C++ テストプログラム DPI-C SystemVerilog BFM BFM + DPI-C DUT モデル チェッカー 18

BFM と BFM+DPI-C の違い ( その 1) 各テストプログラムを使って シミュレーションを実行するとき BFM の場合 テストベンチのコンパイル / エラボレーションが必要 BFM+DPI-Cの場合テストプログラムはCコンパイラでコンパイルし シミュレーション時にオブジェクトファイルを -sv_libオプションで指定するだけ (HDL 側のコンパイル / エラボレーションは必要ない ) 19

BFM と BFM+DPI-C の違い ( その 2) テストプログラムのライブラリ化 BFM の場合 HDL コードでライブラリを構築し include ディレクティブでの取り込みになる BFM+DPI-C の場合 C/C++ でライブラリを構築し 既存ライブラリなどのリンク可能 20

DPI-C によるテストプログラム SystemVerilog 側 C プログラム側 TB コード DUT コード テストプログラム ユーザライブラリ コンパイル シミュレーション環境とテストプログラムの分離 コンパイル 既存ライブラリ エラボレーション リンク シミュレーション -sv_lib オプション 共有ライブラリ 21

開発事例

開発事例 : 画像処理部の検証 IRQ CPU 検証対象 Register I/F DMA Func - F Func - E Func - D Func - C Func - B Func - A DMA Image Data I/F Memory 23

SystemVerilog DPI-C を使った検証環境 IRQ テストプログラム ユーティリティ BFM + DPI-C 検証対象 Register I/F DMA Func - F Func - E Func - D Func - C Func - B Func - A DMA Image Data I/F Memory Model 24

プログラムと検証環境の関係 入力 C テストプログラム 出力 入力データは テストプログラムが読み込む SV+DPI-C BFM 期待値 出力データは テストプログラムが書き込む SV+DPI-C Model DUV SV+DPI-C Model 期待値ファイルは テストプログラムが読み込む 25

DPI-C によるテストプログラム ( その 1) Bus Functional Model module BFM(... ); DPI-C で C 言語とのインターフェースを定義する import DPI-C context task c_main(); export DPI-C task Bus_Load, Bus_Store, Bus_Wait; initial begin c_main(); // C 言語部 end task Bus_Store(.. ); endtask : Bus_Store task Bus_Wait(.. ); endtask : Bus_Wait test_prog.c int c_main(void) { // ここに // テストプログラムを // 書く task Bus_Load(.. ); endtask : Bus_Load endmodule : test_prog } return 0; 26

DPI-C によるテストプログラム ( その 2) SystemVerilog 側 C プログラム側 initial begin c_main(); end task Bus_Store(.. ); endtask : Bus_Store task Bus_Wait(.. ); endtask : Bus_Wait task Bus_Load(.. ); endtask : Bus_Load SV から C を Call C から SV を Call int c_main() { u_int32 addr, data; addr = 0x00000004; } data = 0x12345678; Bus_Store( addr, data ); Bus_Wait( 10 ); Bus_Load( addr, &data ); if( data!= 0x12345678 ) printf( Error n ); return 0; 27

シミュレータでの利用 テストプログラムユーティリティ C 社 HDL シミュレータ テストベンチ各種モデル検証対象 (HDL) M 社 HDL シミュレータ 使用した 2 社のシミュレータ間では テストプログラム / ユーティリティの変更無しで動作確認できた 28

アクセラレータでの利用 : Aldec 社 Riviera-PRO + HES Riviera-PRO C++ ソース ccomp -dpi *.c *.h SystemVerilog ソース VHDL/Verilog RTL alog *.sv -dpiheader *.h 同一の検証環境でデバッグ C++ オブジェクト Import Task Export Task SV オブジェクト RTL シミュレーション カーネルから直接ハードウェアにアクセス 全自動のコンパイラ ソフトウェアクロック変換 /FPGA 分割 FPGA-2 HES5LX660EX Board FPGA-4 FPGA-5 HES Elite FPGA-0 FPGA-1 FPGA-3 アルデック ジャパン株式会社様から掲載許可済 29

エミュレータでの利用 : EVE 社 Zebu-Server ZeBu-Server C テストベンチ PC DPI C ZeBu DPI C DPI C 信号モニタ 波形ビューア SVA ~ 100KHz HDL アクセラレーション ~ 30,000KHz ZEMI-3 メモリエディタ フルアクセス TB C++ DUT In ZeBu 日本イヴ株式会社様から掲載許可済 ハードウェア デバッガ 30

テストプログラムの再利用 テストフ ロク ラム BFM Simulator 再利用 テストフ ロク ラム BFM Accelerator 再利用 テストフ ロク ラム BFM Emulator 31

32