FPGA開発日記

カテゴリ別記事インデックス https://msyksphinz.github.io/github_pages , English Version https://fpgadevdiary.hatenadiary.com/

2024-01-01から1年間の記事一覧

Vivado Simulatorを使ってUVMに入門する (17. arbiter向けのUVMを作る)

前回はこちら:msyksphinz.hatenablog.com UVMについて理解を深めるために、4入力のArbiterを用いたデザインのUVM検証パタンを作っていこうと思う。 arbiter4.sv デザインとしては非常にシンプルで優先度も単純なのだが、とりあえずこれでUVMが走るところま…

RISC-V IOMMU の構成についてマニュアルを読んでまとめる (10. IOVA の変換プロセス)

前回:msyksphinz.hatenablog.com github.com RISC-V IOMMUの構成について、概略をざっくり理解するためのメモ。 何回か読もうとして挫折してきたので、もう一度ちゃんと読んでみようと思う。 IOVAを変換するプロセスは、ハードウェアID(device_id とprocess…

RISC-V IOMMU の構成についてマニュアルを読んでまとめる (9. プロセス・コンテキスト)

前回:msyksphinz.hatenablog.com github.com RISC-V IOMMUの構成について、概略をざっくり理解するためのメモ。 何回か読もうとして挫折してきたので、もう一度ちゃんと読んでみようと思う。 プロセス・ディレクトリ・テーブル (PDT) PDTは、process_id の…

RISC-V IOMMU の構成についてマニュアルを読んでまとめる (8. MSIアドレス・マスク)

前回:msyksphinz.hatenablog.com github.com RISC-V IOMMUの構成について、概略をざっくり理解するためのメモ。 何回か読もうとして挫折してきたので、もう一度ちゃんと読んでみようと思う。 MSI ページテーブルポインタ (msiptp) .MSIページテーブルポイン…

Vivado Simulatorを使ってUVMに入門する (16. arbiter向けのUVMを作る)

前回はこちら:msyksphinz.hatenablog.com UVMについて理解を深めるために、4入力のArbiterを用いたデザインのUVM検証パタンを作っていこうと思う。 arbiter4.sv デザインとしては非常にシンプルで優先度も単純なのだが、とりあえずこれでUVMが走るところま…

Vivado Simulatorを使ってUVMに入門する (15. UVM Testbench Example 2を試す)

前回はこちら:msyksphinz.hatenablog.com UVMのさらなるテストベンチを試行するために、以下のウェブサイトのサンプルを試してみることにした。 www.chipverify.com 前回はScoreboardまで作ったので、残りを組み立てていこう。 テストの構成 class test ext…

RISC-V Summit 2024 North America の資料を概観する (1. State of the Union)

RISC-V Summit 2024 North Americaの発表資料が一部公開されているので、それを眺めてみよう。 riscvsummit2024.sched.com RISC-V State of the Unionは、Krste Asanovicが毎回基調講演的な感じで、現在のRISC-Vの最新状況を伝える機会になっている。 https:…

Vivado Simulatorを使ってUVMに入門する (14. UVM Testbench Example 2を試す)

前回はこちら:msyksphinz.hatenablog.com UVMのさらなるテストベンチを試行するために、以下のウェブサイトのサンプルを試してみることにした。 www.chipverify.com 今回は以下のスイッチ。アドレスに対してどちらかの出力に入力を転送する。この時に1サイ…

RISC-V IOMMU の構成についてマニュアルを読んでまとめる (7. ファースト・ステージ・コンテキスト (fsc))

前回:msyksphinz.hatenablog.com github.com RISC-V IOMMUの構成について、概略をざっくり理解するためのメモ。 何回か読もうとして挫折してきたので、もう一度ちゃんと読んでみようと思う。 ファースト・ステージ・コンテキスト (fsc) DC.tc.PDTV が0の場…

RISC-V IOMMU の構成についてマニュアルを読んでまとめる (6. トランスレーション・コントロール)

前回:msyksphinz.hatenablog.com github.com RISC-V IOMMUの構成について、概略をざっくり理解するためのメモ。 何回か読もうとして挫折してきたので、もう一度ちゃんと読んでみようと思う。 2.1.3. デバイス・コンテキスト・フィールド トランスレーション…

RISC-V IOMMU の構成についてマニュアルを読んでまとめる (5. デバイス・ディレクトリ・テーブル)

前回:msyksphinz.hatenablog.com github.com RISC-V IOMMUの構成について、概略をざっくり理解するためのメモ。 何回か読もうとして挫折してきたので、もう一度ちゃんと読んでみようと思う。 2.1. デバイス・ディレクトリ・テーブル(DDT) DDTは、デバイス…

Vivado Simulatorを使ってUVMに入門する (13. UVM Testbench Exampleを試す)

前回はこちら:msyksphinz.hatenablog.com UVMのさらなるテストベンチを試行するために、以下のウェブサイトのサンプルを試してみることにした。 www.chipverify.com このページでは、別ページで作ったSystemVerilogのレジスタコントローラ(レジスタファイ…

Vivado Simulatorを使ってUVMに入門する (12. UVM Testbench Exampleを試す)

前回はこちら: msyksphinz.hatenablog.com UVMのさらなるテストベンチを試行するために、以下のウェブサイトのサンプルを試してみることにした。 www.chipverify.com このページでは、別ページで作ったSystemVerilogのレジスタコントローラ(レジスタファイ…

Vivado Simulatorを使ってUVMに入門する (11. UVM Testbench Exampleを試す)

前回はこちら: msyksphinz.hatenablog.com UVMのさらなるテストベンチを試行するために、以下のウェブサイトのサンプルを試してみることにした。 www.chipverify.com このページでは、別ページで作ったSystemVerilogのレジスタコントローラ(レジスタファイ…

Vivado Simulatorを使ってUVMに入門する (10. UVM Testbench Exampleを試す)

UVMのさらなるテストベンチを試行するために、以下のウェブサイトのサンプルを試してみることにした。 www.chipverify.com このページでは、別ページで作ったSystemVerilogのレジスタコントローラ(レジスタファイルみたいなもの)を検証するためのUVM環境を…

RISC-V IOMMU の構成についてマニュアルを読んでまとめる (4. IOMMUの特徴)

前回:msyksphinz.hatenablog.com github.com RISC-V IOMMUの構成について、概略をざっくり理解するためのメモ。 何回か読もうとして挫折してきたので、もう一度ちゃんと読んでみようと思う。 2. データ構造 デバイス・コンテキスト(DC)は、デバイスとアド…

RISC-V IOMMU の構成についてマニュアルを読んでまとめる (4. IOMMUの特徴)

前回:msyksphinz.hatenablog.com github.com RISC-V IOMMUの構成について、概略をざっくり理解するためのメモ。 何回か読もうとして挫折してきたので、もう一度ちゃんと読んでみようと思う。 1.4. IOMMUの特徴 RISC-V IOMMU仕様のバージョン1.0は、以下の機…

RISC-V IOMMU の構成についてマニュアルを読んでまとめる (3. 配置とデータの流れ)

前回:msyksphinz.hatenablog.com github.com RISC-V IOMMUの構成について、概略をざっくり理解するためのメモ。 何回か読もうとして挫折してきたので、もう一度ちゃんと読んでみようと思う。 1.3 配置とデータの流れ 図5に示されるように、典型的なRISC-V H…

RISC-V IOMMU の構成についてマニュアルを読んでまとめる (2. 使用モデル)

前回:msyksphinz.hatenablog.com github.com RISC-V IOMMUの構成について、概略をざっくり理解するためのメモ。 何回か読もうとして挫折してきたので、もう一度ちゃんと読んでみようと思う。 1.2 使用モデル IOMMUは、非仮想化OSにおいて以下の主要なシステ…

RISC-V IOMMU の構成についてマニュアルを読んでまとめる (1. 概要)

github.com RISC-V IOMMUの構成について、概略をざっくり理解するためのメモ。 何回か読もうとして挫折してきたので、もう一度ちゃんと読んでみようと思う。 用語の定義 用語 定義 AIA RISC-V Advanced Interrupt Architecture ATS / PCIe ATS Address Trans…

Vivado Simulatorを使ってUVMに入門する (9. UVMのデバッグはやりにくい)

デバッグについて考えている。 例えば、今試しているUVMのデザインで、以下のようなエラーが出てしまった。 ERROR: File: /home/msyksphinz/work/sv/uvm_study/bfm/sample_monitor.sv Line: 24 : Accessing null or invalid reference to virtual interface …

riscv-perf-model を試す (1. Dhrystoneを試す)

github.com とりあえず olympia の実行方法を試してみようと思う。 ./olympia ../traces/dhry_riscv.zstf --report-all dhry_report.out # Name: Olympia RISC-V Perf Model # Cmdline: ./olympia ../traces/dhry_riscv.zstf --report-all dhry_report.out #…

Vivado Simulatorを使ってUVMに入門する (8. スコアボードの導入)

sites.google.com 次は、期待値の自動比較を考えていく。 スコアボードを導入するというわけだ。 1000回のランダム書き込みの後、1000回リードして比較をする、ということを自動化できるようにする。 このために、スコアボードを組み込む。このためにはモニ…

Vivado Simulatorを使ってUVMに入門する (7. 複数のテストを試行する)

もう何回目になるのかわからないが、そろそろUVMを覚えなければならないのでVivado Simulatorを使ってUVMに入門してみよう。 前回作ったテストが、Vivado 2023.2 だと、なんとなく動かなかったので、DSimでも試行している。 参考にしているのは例によって以…

Vivado Simulatorを使ってUVMに入門する (6. MasterとSlaveのモデルを試行する)

もう何回目になるのかわからないが、そろそろUVMを覚えなければならないのでVivado Simulatorを使ってUVMに入門してみよう。 前回作ったテストが、Vivado 2023.2 だと、なんとなく動かなかったので、DSimでも試行している。 参考にしているのは例によって以…

Vivado Simulatorを使ってUVMに入門する (5. DSimで動作を確認する)

もう何回目になるのかわからないが、そろそろUVMを覚えなければならないのでVivado Simulatorを使ってUVMに入門してみよう。 前回作ったテストが、Vivado 2023.2 だと、なんとなく動かなかったので、DSimでも試行している。 参考にしているのは例によって以…

Vivado Simulatorを使ってUVMに入門する (4. Vivado Simでの動作確認)

もう何回目になるのかわからないが、そろそろUVMを覚えなければならないのでVivado Simulatorを使ってUVMに入門してみよう。 今回はVivado 2023.2を使っている。 参考にしているのは例によって以下のウェブサイトだ: sites.google.com 前回のコードをVivado…

Vivado Simulatorを使ってUVMに入門する (3. テストのシーケンスを作る)

もう何回目になるのかわからないが、そろそろUVMを覚えなければならないのでVivado Simulatorを使ってUVMに入門してみよう。 今回はVivado 2023.2を使っている。 参考にしているのは例によって以下のウェブサイトだ: sites.google.com 今回はUVMのスティミ…

Vivado Simulatorを使ってUVMに入門する (2. sequencer, monitor, driver)

もう何回目になるのかわからないが、そろそろUVMを覚えなければならないのでVivado Simulatorを使ってUVMに入門してみよう。 今回はVivado 2023.2を使っている。 参考にしているのは例によって以下のウェブサイトだ: sites.google.com 前回に追加して、以下…

Vivado Simulatorを使ってUVMに入門する

もう何回目になるのかわからないが、そろそろUVMを覚えなければならないのでVivado Simulatorを使ってUVMに入門してみよう。 今回はVivado 2023.2を使っている。 参考にしているのは例によって以下のウェブサイトだ: sites.google.com tb_top.sv `timescale…