Slide 1

Slide 1 text

UVVMをさわってみた @tethys_seesaa

Slide 2

Slide 2 text

はじめに • RTL設計・検証をVHDLで行っ ている使っている人います か? • Verilog/SystemVerilogを 一切使用しない • 特に検証

Slide 3

Slide 3 text

UVVMとは • UVVM =Universal VHDL Verification Methodology • VHDLの検証メソドロジ+検証IP • OSS(Apache-2.0 license)、GitHubから入手可能 • https://github.com/UVVM/UVVM • ノルウェーのEmLogic社が主に開発を進めている • 動作確認済みのVHDLシミュレータ • ModelSim/QuestaSim(vsim) • Vivado Sim(xsim) • GHDL • nvc

Slide 4

Slide 4 text

UVVMユーザーは増加中?

Slide 5

Slide 5 text

UVVMが想定するテストベンチのニーズ • 単体のテスト • 複数のインターフェイスの同時動作を処理する必要がない • DUT(検証対象)と1対1で簡単な動作確認 • 単一のテストシーケンサプロセスを備えた単純なテストベンチ のみで OK • -> UVVMのBFM(Bus Function Model)で対応 • 複合テスト • 複数のインターフェイスを同時に制御・チェックする必要がある • DUTに潜在的なサイクル関連のコーナーケースがあり、それをチェッ クする必要がある。 • 複数のスレッドやプロセスを同時実行が必要 • -> UVVMのVVC(VVC : VHDL Verification Component)で対応

Slide 6

Slide 6 text

BFMベースのテストベンチ • テストハーネスなし • テストシーケンサはDUT信号に直接アクセスできる。 • BFMはp_mainで順番に実行されるシーケンシャルなプロシー ジャである。

Slide 7

Slide 7 text

VVCベースのテストベンチ • 複数のI/Fで同時動作 • テストシーケンサは各VVCにアクセス • VVCは内部にインタープリターとコマンドキュー、エクゼキュータを 持ちトランザクションを発行 • シーケンサから複雑なシーケンスを制御できるらしい?

Slide 8

Slide 8 text

VVCベースでスコアボードを挿入 • スコアボードの機能もあり、高度な期待値チェックもできそう?

Slide 9

Slide 9 text

UVVMのデモをさわってみる • /UVVM/bitvis_uart/script にUARTのデモがある • zsh ./compile_all_and_simulate.sh vsim • Questa(Intel Starter FPGA Edition)でシミュレーションができる • Vivado Simはスタックトレースを吐きました

Slide 10

Slide 10 text

UVVM 検証コ ンポーネント • 以下のコンポーネントが同梱 • カバレッジ、スコアボード等の検証パーツ • I/F系のVIP

Slide 11

Slide 11 text

UVVMについての感想 (ちょっと触っただけですか) • VHDL OnlyでFPGAを設計している方には向いているかも • ブロックレベルの検証でちょっとした時間短縮が望めるかもしれない • VVCベースの検証を行うには、サポートが必要な印象 • 1人でやるには難しい • ASIC向けにはまだ向いていない • envやsequencerに相当するパーツが見受けられない • スケーラブルな検証環境を構築できるか疑問 • OSVVMはどうなってしまうんや…