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

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

Chiselのutil.Queueの使い方の再確認

今日はChiselのutilに入っているQueueについてを再度調べてみたのでその内容をまとめようと思う。

  • ChiselのQueue
    • Queueの引数
      • pipe
      • flow
    • 実際にテストしてみた
      • テストコード
      • pipe = false / flow = false
      • pipe = true / flow = false
      • pipe = false / flow = true
      • pipe = true / flow = true
続きを読む

IntelliJ IDEA上でRocket Chipのエミュレータをビルドする

前回に引き続きRocket Chipについて。
通常の手順だとソース追いづらいので、InteliJ IDAE上に環境を構築してデバッガ使ってトレースをするための環境を整えていきます。

続きを読む

Rocket Chipの環境構築

最近Chiselもそれなりに扱えるようになってきたので、もう少し深く突っ込むべくRocket Chipの解析を進めています。
なので、これからしばらくはRocket Chipのコード読み進めた際のメモを垂れ流しにしていくつもりです。
今回はその前段階の準備としてRocket Chipの環境構築をまとめておきます。

続きを読む

Chiselの文法 - 入門編 〜その10:Chiselのテスト機構〜

Chiselの文法入門の続きで今回は第10回目&最後
前回の終わりに書いたとおり、Chiselのテストの仕組みについてを解説します。

  • Chisel入門編〜その10:Chiselのテスト機構〜
    • PeekPokeTesterを使ったテスト用クラスの作成
      • PeekPokeTesterのテスト用メソッド
      • Driver.executeの引数
    • 専用のテストクラスの作成
    • ChiselFlatSpecを使ったテスト
    • 入門編のまとめ
続きを読む

Chiselの文法 - 入門編 〜その9:I/Oポートのパラメタライズ〜

Chiselの文法入門の続きで今回は第9回目
前回の終わりに書いたとおり、I/Oポートのパラメタライズについて
とは言いながら、I/O以外の例も示そうと思います。

  • Chisel入門編〜その9:回路のI/Oポートのパラメタライズ〜
    • I/Oのパラメタライズ
    • パラメタライズしたI/Oポートの使い方
      • Inputポート
      • Outputポート
    • Bundleを使ったI/Oポートのパラメタライズ
続きを読む

Chiselの文法 - 入門編 〜その8:回路のビット幅のパラメタライズとrequire〜

Chiselの文法入門の続きで今回は第8回目
前回までの記事でChiselの基本的な要素についての解説を一通り終えました。
今回からはChiselを使って論理回路を設計する際のメリットである回路のパラメタライズについての基本的な部分を紹介していきます。

  • Chisel入門編〜その8:回路のパラメタライズ:その1〜
    • 簡単なパラメタライズの例
      • ビット幅の調整
      • ビット幅の自動計算
    • パラメタライズに対しての制約の付与
続きを読む