Slide 1

Slide 1 text

Vivado 2019.2でUVMを 使った話 2019/11/09 @TETHYS_SEESAA

Slide 2

Slide 2 text

Vivado SimulatorがUVM1.2をサポート https://japan.xilinx.com/products/design-tools/vivado/vivado-whats-new.html SystemVerilogのclassやrand変数、covergroupがが使用可能? ◦ ModelSim Intel Edision(Free)ではrandomizeやcoverageは使用不可 ◦ 試してみることにしました。

Slide 3

Slide 3 text

UVMとは Universal Verification Methodologyの略 SystemVerilogで記述されたRTL検証フレームワーク 最近は日本語の情報も充実しています ◦ http://www.artgraphics.co.jp/downloads.html ◦ https://qiita.com/triggerfish

Slide 4

Slide 4 text

デザイン、 テストベンチ 使用したデザイン、テストベンチ ◦ Design and Verification of APB Protocol ◦ Implement an APB Verification environment in UVM based System Verilog ◦ https://www.edaplayground.com/x/2QzY ◦ EDA playgroundより拝借 ◦ $psprintfタスクは$sformatfタスクに変換 以下、一部紹介

Slide 5

Slide 5 text

デザイン APB Slaveモジュール ◦ Interfaceを定義して、モジュールのI/Fに使用

Slide 6

Slide 6 text

テストベンチ UVMライブラリの呼び出し UVMで定義したクラスのinclude

Slide 7

Slide 7 text

デザインとテ ストベンチの 関係 https://www.chipverify.com/u vm/uvm-subscriber より引用

Slide 8

Slide 8 text

apb_base_test クラス UVM_TESTクラスを継承

Slide 9

Slide 9 text

apb_transaction クラス typedefの使用 制約付きランダム変数の定義と設 定

Slide 10

Slide 10 text

apb_subscriberク ラス covergroupの設定

Slide 11

Slide 11 text

ModelSim Intel FPGA Edition(10.6d/19.2) で実行しようとする と... ライセンスエラーで使用不可 # ** Error: (vsim-1) Unable to checkout verification license - testbench generation feature (randomize, randcase, randsequence, covergroup) is only supported with QuestaSim. # Time: 0 ps Iteration: 0 Instance: /test File: ../dv/testbench.sv # Error loading design Error loading design # End time: 17:34:36 on Nov 07,2019, Elapsed time: 0:00:00 # Errors: 2, Warnings: 0

Slide 12

Slide 12 text

Vivado Simulator 2019.2でシミュレー ション

Slide 13

Slide 13 text

Vivado プロジェ クトの設定 Add Sourcesでデザインファイルを 指定

Slide 14

Slide 14 text

シミュレーションの設定 set_property -name {xsim.compile.xvlog.more_options} -value {-L uvm} -objects [get_filesets sim_1] set_property -name {xsim.elaborate.xelab.more_options} - value {-L uvm} -objects [get_filesets sim_1]

Slide 15

Slide 15 text

sim_1用ソース ファイル(テストベ ンチ)追加 testbench.svを追加するのみ

Slide 16

Slide 16 text

Sourceウィンドウ UVMを使用したクラスファイル群は「Verilog Header」として表 示される。

Slide 17

Slide 17 text

シミュレーショ ン実行

Slide 18

Slide 18 text

UVM形式のサマリー出力

Slide 19

Slide 19 text

ランダムなアドレス/データ のリードライトを確認

Slide 20

Slide 20 text

まとめ Windowsで、無料版で、 UVMを使用したシミュ レーションができる! •random, coverage等 本格的に使いこせる のか? •+UVM_TESTNAME •coverage管理等

Slide 21

Slide 21 text

コード https://github.com/hiiaka/uvm_example