FPGA開発日記

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

2024-10-01から1ヶ月間の記事一覧

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…

Verilator 5.0のtiming controlを試す

いまさらながら、Verilator 5のtest benchのタイミング制御機能のサポートを試したいと思い、テストを開始している。 $ verilator --version Verilator 5.020 2024-01-01 rev v5.020 verilator5_test.sv module tb; initial begin $display ("%t test start"…