2025-12-01から1ヶ月間の記事一覧
Riescue-Dのサンプルテストコード(bfs.s、幅優先探索のテスト)を実行してみた。 riescued --testfile riescue/riescue/dtest_framework/tests/bfs.s --cpuconfig cpu_config.json --run_dir bfs --iss spike 実行ログ: fpgen unavailable, skipping /home/…
Riescue-C(CTK: Compliance Test Kit)を使ってテストキットを生成してみた。 Riescue-Cとは RiescueDは単一のテストファイルを処理するフレームワークだが、Riescue-CはCompliance Testを含めて複数のテストを自動生成できる点が本質的な違いだ。 Riescue-…
RiescueDダイレクトテスト実装メモ 実行コマンド: riescued --testfile test1.s --cpuconfig cpu_configuration.yml --run_dir test1 --iss spike まず、以下のエラーが生成された。 ValueError: key test_access is not a boolean in cfg={'address': '0x20…
Riscue-D(正式名称 RiescueD)は、Tenstorrent が提供する RISC-V 向け Directed Test Framework である。 単なる ISA 命令列テストの生成ツールではなく、特権レベル、仮想メモリ、例外処理、OS ライクな実行環境まで含めたシステムレベルのテストを、アセ…
前回の続き。Sniperによるシミュレーションを実行してみる。 make run_sniper_403.gcc sed: -e expression #1, char 11: unknown option to `s' === Running Sniper simulations for 403.gcc === find /home/msyksphinz/work/bench_trace/bench_trace_env/sp…
SPEC CPU2006のベンチマークをSniperでシミュレーションするために、Sniperのダウンロードからビルドまでのフローをspec2006_work/Makefileに追加した。 Makefileに以下のターゲットを追加した。 # Download and build Sniper build_sniper: .build_sniper .…
msyksphinz.hatenablog.com 実際の解析パイプラインは、以下のような流れになった。 make prepare CDROM_DIR=/home/msyksphinz/spec_bechmarks/spec2006_cdrom && \ make build -j${NPROC} && \ make run_bbv -j${NPROC} && \ make build_simpoint && \ make…
SPEC CPU2006のSimPoint解析までをGitHub Actionsで自動化する必要があった。 セルフホステッドランナーとDockerを使って実装したので、その作業ログを残しておく。 まずは、GitHub Actionsのワークフローファイルを作成した。最初は以下のような構成にした…
https://github.com/pulp-platform/common_cells/blob/master/src/cdc_4phase.sv 基本設計方針 cdc_4phase.svは、4相ハンドシェイクプロトコルを使用してクロックドメイン間でデータを転送するモジュールである。 4相ハンドシェイクでは、req信号とack信号が…
cdc_2phase.svは、2相ハンドシェイクプロトコルを使用してクロックドメイン間でデータを転送するモジュールである。2相ハンドシェイクでは、各トランザクションごとにreq信号とack信号がトグルする。この方式は、4相ハンドシェイクと比較して効率的であるが…
Common Cellsライブラリには、クロックドメイン間(Clock Domain Crossing, CDC)でデータを安全に転送するための実装が8つ用意されている: github.com cdc_2phase.sv: 2相ハンドシェイクによるCDC cdc_2phase_clearable.sv: クリア機能付き2相ハンドシェイ…
github.com 5. isochronous_spill_register.sv:等時性クロックドメイン間スピルレジスタ 基本設計方針 isochronous_spill_register.svは、等時性(isochronous)クロックドメイン間でデータを転送するためのスピルレジスタである。 等時性とは、2つのクロッ…
github.com 3. spill_register.sv:後方互換性ラッパー 基本設計方針 spill_register.svは、spill_register_flushableのラッパーモジュールであり、後方互換性を維持するために提供されている。 flush_i信号を常に1'b0に固定して、フラッシュ機能なしのスピ…
github.com 2. fall_through_register.sv:フォールスルー動作レジスタ 基本設計方針 fall_through_register.svは、フォールスルー(fall-through)動作を実装したレジスタである。 出力側のモジュールが同じクロックサイクル内でデータを受け取る準備ができ…
github.com Common Cellsライブラリには、ready/validハンドシェイクプロトコルに対応したレジスタの実装が5つ用意されている: stream_register.sv: シンプルなストリームレジスタ fall_through_register.sv: フォールスルー動作を持つレジスタ spill_regis…