Vengineerの妄想(準備期間)

人生は短いけど、長いです。人生を楽しみましょう!

UVM の検索結果:

NVIDIA GH180とTH500とは?

…ported = !uvm_gpu_is_coherent(parent_gpu); とGH180とあります。 もう一つは、この部分 // With GH180 C2C, VF BAR1/2 are disabled and therefore expected to be 0. C2C ともありますね。 ここにもありました。 {PCI_VENDOR_ID_NVIDIA, 0x22B1, CS_NVIDIA_TH500}, // NVIDIA TH500 RP for GH1…

半導体の検証について、ChatGPTに聞いてみた!

…emVerilogやUVM(Universal Verification Methodology)を始めとした検証言語や手法の詳細なチュートリアル、トレーニングビデオ、実践的なノウハウなどが提供されています。 サイト:https://verificationacademy.com/ IEEE Xplore: IEEE Xploreは、電気・電子工学分野の学術論文やカンファレンスプロシーディングを提供するデータベースです。検証に関連する最新の研究論文やテクニカルペーパーが閲覧で…

ほー、SambaNova Systemsでは、Cadence Palladium Z1を導入していたんだ。。。。

…Labs の名前が出ています。。。 関連記事として、 Cadence's (CDNS) Palladium Z1 Enables Acacia to Design ASIC そして、 Liang Di san Cadence で UVM and SV Assertions on Palladium Hardware Emulation だったようです。。。プロですね。。 おわりに ハードウェアエミュレータ、結構使っていましたので、、、気になったので、記録として残しておきます。

2022年を振り返って

…ールに関してです。 UVM-SystemCを調べる RISC-Vの薄い本、「OpenSBIとLinuxを調べる」 Verilatorの薄い本「Verilatorの中を調べる」No.3、SystemC編 Verilatorの薄い本「Verilatorの中を調べる」No.2、テストデータ解析編 Verilatorの薄い本「Verilatorの中を調べる」No.1、例題解析編 半導体チップ雑談 2021年の夏から始めた「半導体チップ雑談」、2022年12月25日で、70回になりまし…

NVIDIAがGPUのKernel Modulesを公開したので、ソースコード解析をしてみる(その9)

…対応 nvidia-uvm (Universal Virtual Memory 関連)の clc86f.h : HOPPER__CHANNEL_GPFIFO clc8b5.h : HOPPER_DMA_COPY が追加されました。 clcX6f.h は、CHANNEL_GPFIFO 関連 clcXb5.h は、DMA_COPY 関連 nvidia-uvm/hwref/hopper nvidia-uvm/uvm_hopper_fault_buffer.c nvidia-uvm/…

SystemVerilog本

…プログラミング 実践UVM入門:検証のためのSystemVerilogクラスライブラリー SystemVerilog入門: 設計・仕様・検証のためのハードウェア記述言語 は、リファレンスマニュアル的なものとして使って。 検証では、 検証のためのSystemVerilogプログラミング SystemVerilogによる検証の基礎 実践UVM入門:検証のためのSystemVerilogクラスライブラリー の順に使うのがいいのでは?と思いました。 検証について、詳しく知りたいのなら…

Xilinx ZynqMP SoC VIP の中を調べる(その11)

…1_0_12 -L uvm -L xilinx_vip -L unisims_ver -L unimacro_ver -L secureip -L xpm --snapshot tb_behav xil_defaultlib.tb xil_defaultlib.glbl -log elaborate.log Vivado Simulator v2022.1 Copyright 1986-1999, 2001-2022 Xilinx, Inc. All Rights Reser…

「Xilinx ZynqMP SoC VIPの中を調べる」の薄い本をリリースしました

… の中を調べる、基本編 Xilinx xsim の中を調べる、マニアック編 2021年にリリースした薄い本は、下記の5冊です。 UVM-SystemCを調べる RISC-Vの薄い本、「OpenSBIとLinuxを調べる」 Verilatorの薄い本「Verilatorの中を調べる」No.3、SystemC編 Verilatorの薄い本「Verilatorの中を調べる」No.2、テストデータ解析編 Verilatorの薄い本「Verilatorの中を調べる」No.1、例題解析編

Xilinx ZynqMP SoC VIP の中を調べる(その3)

…-relax -L uvm -L axi_vip_v1_1_12 -L zynq_ultra_ps_e_vip_v1_0_12 -L xilinx_vip -prj tb_vlog.prj" xvlog --incr --relax -L uvm -L axi_vip_v1_1_12 -L zynq_ultra_ps_e_vip_v1_0_12 -L xilinx_vip -prj tb_vlog.prj 2>&1 | tee compile.log # compile VH…

「Xilinx Vitis の中を調べる」の薄い本をリリースしました

… の中を調べる、基本編 Xilinx xsim の中を調べる、マニアック編 2021年にリリースした薄い本は、下記の5冊です。 UVM-SystemCを調べる RISC-Vの薄い本、「OpenSBIとLinuxを調べる」 Verilatorの薄い本「Verilatorの中を調べる」No.3、SystemC編 Verilatorの薄い本「Verilatorの中を調べる」No.2、テストデータ解析編 Verilatorの薄い本「Verilatorの中を調べる」No.1、例題解析編

Xilinx Vitis の中を調べる(その19)

…<32) ); < uvm_info("control start dut by axilite", $sformatf("%0dth(total 10): begin to set start bit",i), UVM_LOW) < uvm_send(axi_master_wr_control_seq); < end < begin < `uvm_info("control wait for ap_ready for next trans", $sformatf("%0dt…

Xilinx Vitis の中を調べる(その18)

…p delays `uvm_create_on(axi_slave_BUS_A_seq, p_sequencer.BUS_A_sqr); axi_slave_BUS_A_seq.misc_if = refm.misc_if; axi_slave_BUS_A_seq.ap_done = refm.ap_done_for_nexttrans ; axi_slave_BUS_A_seq.ap_ready = refm.ap_ready_for_nexttrans ; axi_sla…

Xilinx Vitis の中を調べる(その15)

…k body(); uvm_phase starting_phase; virtual interface misc_interface misc_if; multi_apuint_reference_model refm; この部分は、axi_pkg を使うようになりました。 axi_pkg::axi_busdatas_master_sequence#(6, 32) axi_master_wr_control_seq; axi_pkg::axi_busdatas_maste…

Xilinx Vitis の中を調べる(その14)

…。これは、AXI用のUVMベースの検証モデルっぽいです。 ls axivip/ axi_base_sequence.sv axi_master_agent.sv axi_master_wdrv.sv axi_slave_awdrv.sv axi_transfer.sv axi_cfg.sv axi_master_ardrv.sv axi_monitor.sv axi_slave_bdrv.sv axi_type.sv axi_driver_base.sv axi_master…

Xilinx Vitis の中を調べる(その12)

…その12。 その他のUVM 関連コード 今まで見てきたUVM関連コード以外で、UVM に関するコードは、verilog/multi_apuint_subsystem ディレクトリにあります。このディレクトリには、下記のようなファイルがあります。基本的には、UVMで必要なクラスを定義していることになります。 multi_apuint_config.sv multi_apuint_env.sv multi_apuint_pkg_sequence_lib.sv multi_apui…

Xilinx Vitis の中を調べる(その11)

…ラム(シーケンス) UVMではテストプログラムをシーケンスと呼んでいます。この例では、multi_apuint_test_lib クラスの中で、uvm_config_db にて、multi_apuint_subsys_test_sequence_lib をシーケンスとして設定しています。 uvm_config_db#(uvm_object_wrapper)::set( this, "top_env.multi_apuint_virtual_sqr.run_phase", "d…

Xilinx Vitis の中を調べる(その10)

… の続き。今回は、 uvm_config_db の中で指定している uvm_test_top.top_env について、みていきます。 uvm_test_top.top_env は? uvm_test_top.top_env は、svtb/multi_apuint_test_lib.sv の中で、下記のようになっています。multi_apuint_env クラスのインスタンスです。 `ifndef MULTI_APUINT_TEST_LIB__SV `define MULTI…

Xilinx Vitis の中を調べる(その9)

…`include "uvm_macros.svh" import uvm_pkg::*; import file_agent_pkg::*; import svr_pkg::*; import multi_apuint_subsystem_pkg::*; `include "multi_apuint_subsys_test_sequence_lib.sv" `include "multi_apuint_test_lib.sv" module sv_module_top; mi…

Xilinx Vitis の中を調べる(その8)

…を調べるのその7。 UVM関連のファイルを調べるです。 multi_apuint.autotb.v これがトップテストベンチで、下記のような構造になっているっぽいです。 Random Stall が OFF の時のトップテストベンチの構造が下記のようなので、ファイルの入出力が無くなった代わりに、sv_module_top モジュールの svtb_top というインスタンスが追加されたっぽいです。 test_multi_apuint_test_lib まずは、xsim コマンド…

Xilinx Vitis の中を調べる(その7)

… Stall では、UVM(Universal Verification Methodology) を使っています。Xilinx xsim では、このために UVM を導入しているっぽいです。 UVMについては、このブログでもかなりの量書いていますので、参考にしてくださいね。 vengineer.hatenablog.com 生成されるファイルは? sim ディレクトリの下に下記のようなファイル/ディレクトリが生成されます。 autowrap multi_apuint_cos…

Xilinx Vitis の中を調べる (その1)

…という機能を使うと、UVMを使うっポイです。 Vitisをやってみた 上記の記事の中の下記のサンプルコードを使いました。。。2つの8ビットのUINTを掛け算して、16ビットのUINTを生成するというものです。 // multi_apuint.cpp #include <ap_int.h> void multi_apuint(ap_uint<8> multi_in0, ap_uint<8> multi_in1, ap_uint<16> *multi_out){ #pragma …

Xilinx xsimを調べる(その3)

…は、0 です。 --uvm_version arg UVMのバージョンを指定します。デフォルトでは、1.2 です。1.1 と 1.2 以外を指定すると、以下のメッセージが表示されます。 ERROR: [XSIM 43-4555] Incorrect value specified for switch -uvm_version, the valid values are 1.1 and 1.2 (default) --mt arg (=auto) コンパイル時のジョブ数を指定…

Vengineerの薄い本シリーズ第二弾:Xilinx xsimの中を調べる

…編 おまけとして、 UVM-SystemCを調べる RISC-Vの薄い本、「OpenSBIとLinuxを調べる」 も。 Xilinx xsimの中を調べる」シリーズ 昨日、第二弾として、「Xilinx xsimの中を調べる」シリーズをBOOTHからダウンロード販売の開始を行いました。 Xilinx xsimの中を調べる (基本編) Xilinx xsimの中を調べる (Software Driven Verification編) Xilinx xsimの中を調べる (マニアッ…

Xilinx xsimを調べる(その1)

…e block --uvm_version arg Specify the uvm version(default: 1.2) --work arg Specify the work library. The format of the argument is <name>[=<dir>] where <name> is the logical name of the library and <dir> is an optional physical directory of…

NVIDIAがGPUのKernel Modulesを公開したので、ソースコード解析をしてみる(その6)

…, { GP100_UVM_SW, ENG_SW }, { KEPLER_CHANNEL_GROUP_A, ENG_KERNEL_FIFO }, { KEPLER_INLINE_TO_MEMORY_B, ENG_GR(0) }, { MMU_FAULT_BUFFER, ENG_GR(0) }, { NV0060_SYNC_GPU_BOOST, ENG_GPU }, { NV01_MEMORY_VIRTUAL, ENG_DMA }, { NV04_SOFTWARE_TEST, …

Verilator開発者の Wilson Snyder のお話

…: Unpacked structs Classes, methods, IEEE Scheduler, Tempral assertions, Coverage bins, Random Constraints Parser & XML ; Full UVMXML, UHDM 現在、SystemVerilog UVM をサポートするために頑張っている おわりに Verilator、Full SystemVerilog Simulator になるべき、頑張っているっぽいです。

2021年のGW、11連休にやったことメモ

…目 (5/5水) [UVM-SystemCの薄い本、UVM-SystemCを調べる、作成中 8日目 (5/6:木) UVM-SystemCの薄い本、UVM-SystemCを調べる、ダウンロード開始 9日目 (5/7:金) 密会を1時間半ぐらい。 Verilatorの勉強会をやることにした UVM-SystemC用に crave をビルド中だけど、うまくいかない。accellera-contribution branch でビルド中。 10日目 (5/8:土) Verilato…

薄い本シリーズ:UVM-SystemCを調べる

…ド解析職人の薄い本 UVM-SystemCを調べる ができました。 vengineer.booth.pm Verilator では、テストベンチ側にSystemCが使えるので、今回の UVM-SystemC を組み合わせて、UVM-SystemC-Verilator(Verilog HDL/SystemVerilog)の組み合わせにて検証環境が構築できそうです。 Verilatorの薄い本:Verilatorの中を調べる、第一弾、例題解析編 Verilatorの薄い本:Ver…

SystemVerilogに関する日本語の書籍「SystemVerilog入門」

…、45頁 第22章、UVM概説、9頁 第23章、コンパイラディレクティブ、6頁 第24章、シミュレーション実行モデル、5頁 SystemVerilogの和書で、今でも発行しているのは、 CQ出版社のSystemVerilog設計スタートアップ のみです。 www.cqpub.co.jp この書籍は、344頁で、2008年5月15日発行です。といっても、元ネタはCQ出版が発行していた雑誌「Design Wave Magazine」に掲載された記事をベースに書籍として構成したもの…

Google の RISCV-DV

…g; import uvm_pkg::*; import riscv_instr_pkg::*; `include "riscv_instr_base_test.sv" `include "riscv_instr_test_lib.sv" `include "riscv_instr_cov_test.sv" endpackage baseのテストになるものが、risc_instr_base_test.sv virtual function void build_phase(u…