Vengineerの戯言

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

Zynq VIPを利用したテストベンチを振り返る

はじめに

今から約5年前の2017年8月26日(土曜)に開催した「SystemVerilogによるテストベンチ実践会(2017夏)」

fpgax.connpass.com

この時あたしが発表した「Zynq VIPを利用したテストベンチ」を振り返ってみる

何故なら? 先週までの連載の 「Xilinx ZynqMP SoC VIP の中を調べる」に非常に関係しているので。

スライド

Zynq VIPを利用したテストベンチのスライドか下記のSlideshareにあります。

www.slideshare.net

この中で、Zynq VIP の各APIを説明しています。

  • set_stop_on_error
  • set_debug_level_info
  • fpga_soft_reset
  • pre_load_mem_from_file
  • pre_load_mem
  • read_interrupt
  • wait_interrupt
  • write_from_file
  • read_to_file
  • write_data
  • read_data
  • write_burst
  • write_burst_concurrent
  • read_burst
  • read_register
  • read_register_map
  • set_slave_profile
  • wait_reg_update
  • peek_mem_to_file
  • read_mem
  • write_mem

なんか、Zynq Ultrascale+ MPSoC VIP の API と同じですね。

DPI-C

この資料の後半で、SystemVerilog DPI-Cを使って、Software Driven Verification を試みたのですが、この時点では DPI-C の task export をサポートしていなかったです。

下記のブログには、DPI-C task export できるよ、とありますが、DPI-C の task の書き方の何かがサポートしていなかったのだと思います。

shibatchii.cocolog-nifty.com

DPI-C 再び

Vivado 2017.1 から 2022.1 になり、5年経ったので、もしかしたらできるんじゃんと思ったのでトライしてみました。

なんと、DPI-C の task export が動きました。

おわりに

ということで、どのようにしてやれば、Vivado 2022.1 の xsim で DPI-C task export が動くかについては、

Xilinx ZynqMP SoC VIPの中を調べる」の薄い本を書いてあります。興味がある方は、是非、覗いてみてください。

vengineer.hatenablog.com

下記の8/31(水)に開催される ACRiスピンオフ企画:「実践的!FPGA開発セミナー vol.13」 前半の 「論理検証の効率化&自動化テクニック ~テストベンチ作成からCIまで ラクできる検証環境を創る~」 の 「DPI-Cを利用したテストベンチ作成の効率化」 にも関連するのですよ。

acri.connpass.com