2024-10-01から1ヶ月間の記事一覧
前回はこちら:msyksphinz.hatenablog.com UVMのさらなるテストベンチを試行するために、以下のウェブサイトのサンプルを試してみることにした。 www.chipverify.com 今回は以下のスイッチ。アドレスに対してどちらかの出力に入力を転送する。この時に1サイ…
前回:msyksphinz.hatenablog.com github.com RISC-V IOMMUの構成について、概略をざっくり理解するためのメモ。 何回か読もうとして挫折してきたので、もう一度ちゃんと読んでみようと思う。 ファースト・ステージ・コンテキスト (fsc) DC.tc.PDTV が0の場…
前回:msyksphinz.hatenablog.com github.com RISC-V IOMMUの構成について、概略をざっくり理解するためのメモ。 何回か読もうとして挫折してきたので、もう一度ちゃんと読んでみようと思う。 2.1.3. デバイス・コンテキスト・フィールド トランスレーション…
前回:msyksphinz.hatenablog.com github.com RISC-V IOMMUの構成について、概略をざっくり理解するためのメモ。 何回か読もうとして挫折してきたので、もう一度ちゃんと読んでみようと思う。 2.1. デバイス・ディレクトリ・テーブル(DDT) DDTは、デバイス…
前回はこちら:msyksphinz.hatenablog.com UVMのさらなるテストベンチを試行するために、以下のウェブサイトのサンプルを試してみることにした。 www.chipverify.com このページでは、別ページで作ったSystemVerilogのレジスタコントローラ(レジスタファイ…
前回はこちら: msyksphinz.hatenablog.com UVMのさらなるテストベンチを試行するために、以下のウェブサイトのサンプルを試してみることにした。 www.chipverify.com このページでは、別ページで作ったSystemVerilogのレジスタコントローラ(レジスタファイ…
前回はこちら: msyksphinz.hatenablog.com UVMのさらなるテストベンチを試行するために、以下のウェブサイトのサンプルを試してみることにした。 www.chipverify.com このページでは、別ページで作ったSystemVerilogのレジスタコントローラ(レジスタファイ…
UVMのさらなるテストベンチを試行するために、以下のウェブサイトのサンプルを試してみることにした。 www.chipverify.com このページでは、別ページで作ったSystemVerilogのレジスタコントローラ(レジスタファイルみたいなもの)を検証するためのUVM環境を…
RISC-V IOMMUについて。各記事の構成要素まとめ: RISC-V IOMMU の構成についてマニュアルを読んでまとめる (24/02/11) RISC-V IOMMU の構成についてマニュアルを読んでまとめる (1. 概要) (24/10/16) RISC-V IOMMU の構成についてマニュアルを読んでまとめ…
前回:msyksphinz.hatenablog.com github.com RISC-V IOMMUの構成について、概略をざっくり理解するためのメモ。 何回か読もうとして挫折してきたので、もう一度ちゃんと読んでみようと思う。 2. データ構造 デバイス・コンテキスト(DC)は、デバイスとアド…
前回:msyksphinz.hatenablog.com github.com RISC-V IOMMUの構成について、概略をざっくり理解するためのメモ。 何回か読もうとして挫折してきたので、もう一度ちゃんと読んでみようと思う。 1.4. IOMMUの特徴 RISC-V IOMMU仕様のバージョン1.0は、以下の機…
前回:msyksphinz.hatenablog.com github.com RISC-V IOMMUの構成について、概略をざっくり理解するためのメモ。 何回か読もうとして挫折してきたので、もう一度ちゃんと読んでみようと思う。 1.3 配置とデータの流れ 図5に示されるように、典型的なRISC-V H…
前回:msyksphinz.hatenablog.com github.com RISC-V IOMMUの構成について、概略をざっくり理解するためのメモ。 何回か読もうとして挫折してきたので、もう一度ちゃんと読んでみようと思う。 1.2 使用モデル IOMMUは、非仮想化OSにおいて以下の主要なシステ…
github.com RISC-V IOMMUの構成について、概略をざっくり理解するためのメモ。 何回か読もうとして挫折してきたので、もう一度ちゃんと読んでみようと思う。 用語の定義 用語 定義 AIA RISC-V Advanced Interrupt Architecture ATS / PCIe ATS Address Trans…
デバッグについて考えている。 例えば、今試しているUVMのデザインで、以下のようなエラーが出てしまった。 ERROR: File: /home/msyksphinz/work/sv/uvm_study/bfm/sample_monitor.sv Line: 24 : Accessing null or invalid reference to virtual interface …
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 #…
sites.google.com 次は、期待値の自動比較を考えていく。 スコアボードを導入するというわけだ。 1000回のランダム書き込みの後、1000回リードして比較をする、ということを自動化できるようにする。 このために、スコアボードを組み込む。このためにはモニ…
もう何回目になるのかわからないが、そろそろUVMを覚えなければならないのでVivado Simulatorを使ってUVMに入門してみよう。 前回作ったテストが、Vivado 2023.2 だと、なんとなく動かなかったので、DSimでも試行している。 参考にしているのは例によって以…
もう何回目になるのかわからないが、そろそろUVMを覚えなければならないのでVivado Simulatorを使ってUVMに入門してみよう。 前回作ったテストが、Vivado 2023.2 だと、なんとなく動かなかったので、DSimでも試行している。 参考にしているのは例によって以…
もう何回目になるのかわからないが、そろそろUVMを覚えなければならないのでVivado Simulatorを使ってUVMに入門してみよう。 前回作ったテストが、Vivado 2023.2 だと、なんとなく動かなかったので、DSimでも試行している。 参考にしているのは例によって以…
もう何回目になるのかわからないが、そろそろUVMを覚えなければならないのでVivado Simulatorを使ってUVMに入門してみよう。 今回はVivado 2023.2を使っている。 参考にしているのは例によって以下のウェブサイトだ: sites.google.com 前回のコードをVivado…
もう何回目になるのかわからないが、そろそろUVMを覚えなければならないのでVivado Simulatorを使ってUVMに入門してみよう。 今回はVivado 2023.2を使っている。 参考にしているのは例によって以下のウェブサイトだ: sites.google.com 今回はUVMのスティミ…
もう何回目になるのかわからないが、そろそろUVMを覚えなければならないのでVivado Simulatorを使ってUVMに入門してみよう。 今回はVivado 2023.2を使っている。 参考にしているのは例によって以下のウェブサイトだ: sites.google.com 前回に追加して、以下…
もう何回目になるのかわからないが、そろそろUVMを覚えなければならないのでVivado Simulatorを使ってUVMに入門してみよう。 今回はVivado 2023.2を使っている。 参考にしているのは例によって以下のウェブサイトだ: sites.google.com tb_top.sv `timescale…
先頭まとめページ: Vivado Simulatorを使ってUVMに入門する (21/04/01) Vivado Simulatorを使ってUVMに入門する (2. driver / agent / monitor / sequencer などなど) (21/04/05) Vivado Simulatorを使ってUVMに入門する (3. sequence / sequence_item / dr…
いまさらながら、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"…