ハードウェアの気になるあれこれ

技術的に興味のあることを調べて書いてくブログ。主にハードウェアがネタ。

Rocket ChipのGeneratorのソースの解析メモ(6) - ExampleRocketSystemのIOポート

前回はとりあえずLazyModuleを使った最小のモジュールを作ってみる、という話をまとめた。 その際に以下の要素があればLazyModuleを使ったモジュールを作れるということがわかった。

  1. Parametersから派生したモジュールのパラメータクラス
  2. LazyModuleから派生したモジュールの皮でモジュール間の最終的な接続はここっぽい?
  3. LazyModuleImpから派生したモジュールの実装本体

上記のようにLazyModuleImpが実装本体っぽいという当たりがついたので、実際にRocket Chipの実装の解析が少し進むかも!!ということでコードを呼んでみた内容をまとめていく。

  • 例のRocketシステム (ExampleRocketSystem)
    • ExampleRocketSystemのIOポートを探す
    • CanHaveMasterAXI4MemPort / CanHaveMasterAXI4MemPortModuleImp
    • CanHaveMasterAXI4MMIOPort / CanHaveMasterAXI4MMIOPortModuleImp
    • CanHaveSlaveAXI4Port / CanHaveSlaveAXI4PortImp
  • AXIを使うモジュールの一般形?
続きを読む

riscv-toolsリポジトリのデータでRV32Iのビルド環境を作りなおした話

RISC-Vのビルド環境を作りなおす必要が出てきたので、せっかくだから最新のriscv-toolsのリポジトリの環境を使って作りなおすことにした。 今回はその際に幾つか躓いた部分があったのでそれについてまとめておく。

  • crosstool-ngを使ったRISC-Vのコンパイラのビルド
    • 環境
    • crosstool-ngのインストール
  • crosstool-ngを使ったRISC-V環境の構築
    • アップデートの確認
    • riscv32-unknown-elfをビルドしてみる
      • 基本設定を反映
      • インストール先の変更(&必要に応じて設定のカスタマイズ)
    • ビルドの実行
    • 成果物の確認
      • 動作確認
    • riscv-toolsのビルド
続きを読む

Chiselのユーティリティ - log2Up / log2Down / log2Ceil / log2Floorについて

Twitterでつぶやいてた以下のスレッドに書いてたやつをまとめてみた話。

  • Chisel.util.log2xx
  • サンプルコード書いて調べてみる
    • log2xxの計算結果一覧
続きを読む

Rocket ChipのGeneratorのソースの解析メモ(5) - LazyModuleを使った最小??のモジュールを作る

Rocket Chipの解析の話の5回目。 今日はソースコードの解析の傍らで行っていたLazyModuleの使い方を探っていた結果についてを少し。

  • LazyModule
  • LazyModuleを使った最小??のモジュール
続きを読む

Rocket ChipのGeneratorのソースの解析メモ(4) - Config、Parameters、Field

Rocket Chipの解析の話の4回目。 今回は"make"に渡す引数の一つDefaultConfigの中身でああるConfigParametersについて。 この辺の話はすでにmsyksphinzさんのFPGA開発日記で解説してくれているけど、解析の関係上で扱っておくべきだと思うのでざっと見ていく。

  • Rocket Chipのコンフィグレーションについて
続きを読む

Chiselのテストでshould be (true)付けてなくてプチハマりした

今作り直してるオレオレRISC-V(dirv)の対向に接続するメモリモデルがバグってるので、バグ再現パターンを起こしてシミュレーションを行っていた。その際に出くわした「いや、当たり前でしょ」な話をメモ書き程度に残しておく。ScalaTest使ってる人は多分タイトルでわかる方もいる気が。。

  • メモリモデルがバグってて。。
  • バグ再現パターン
  • should be (true) を付与して再度実行
続きを読む

Chisel3.2-SNAPSHOTを試した時に遭遇したエラー

もうそこそこ経ってはいるがChiselの3.2-SNAPSHOTがgithubのリリースに上がっている。今回はそれを使うにあたって遭遇したエラーについて。

  • Chsiel-3.2のSNAPSHOTが公開された
  • ImplicitModuleが、、、消えた??
  • おまけ ~ 他のプロジェクトでもアップデート時に別のエラーが。。
続きを読む