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

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

Chisel Bootcamp - 幕間(3) - ChiselのArbiter

前回の記事ではChiselの標準ライブラリからQueueを紹介した。

www.tech-diningyo.info

今日も引き続きChiselの標準ライブラリを紹介していく。今日はChiselのアービターだ。

  • Module 3.2幕間: Chiselの標準ライブラリ
    • アービター
      • サンプルコード
      • 使い方
      • Arbiterから生成されるRTL
      • ArbiterとRRArbiterを使ったサンプル
続きを読む

Chisel Bootcamp - 幕間(2) - ChiselのQueue

前回の記事ではChisel BootcampはModule3.2のと3.3の幕間の章に入り、Chiselの標準ライブラリの紹介の導入としてDecoupledIOについてを学習した。

www.tech-diningyo.info

今日も引き続きChiselの標準ライブラリを紹介していく。今日はChiselのQueueだ。

  • Module 3.2幕間: Chiselの標準ライブラリ
    • Queue
      • Queueを使ったモジュール
        • Flipped
      • Queueのインスタンス
      • Chiselの標準ライブラリQueueから生成されるRTL
      • Queueの引数
続きを読む

Chisel Bootcamp - 幕間(1) - ChiselのAPI - Decoupled

前回の記事ではChisel BootcampはModule3.2の練習問題でRISC-VのISA向けのレジスタファイルを作成した。

www.tech-diningyo.info

今日はModule3.2とModule3.3の間にある幕間の章でChiselの標準ライブラリについて紹介していく。 最初はDecoupledから。

  • Module 3.2幕間: Chiselの標準ライブラリ
    • モチベーション
    • Chiselチートシート
    • Decoupled : 標準のReady-Validインターフェース
続きを読む

Chisel Bootcamp - Module3.2(6) - 練習問題:Vecを使ったRISC-Vのレジスタファイル

前回の記事ではChisel BootcampはChiselのコレクション型であるVecについて調べた。

www.tech-diningyo.info

今日はModule3.2の締めくくりとして練習問題を見ていく。

  • Module 3.2: ジェネレータ:コレクション
    • Chiselのコレクション型の使用例
      • 練習問題: 32-bit RISC-Vプロセッサ
        • テスト用のコード
      • テストの構成
        • readExpect
        • write
      • 実装するレジスタファイルの仕様について
      • レジスタファイルVerilog
続きを読む

Chisel Bootcamp - Module3.2(5) - Chiselのコレクション型"Vec"

前回の記事ではChisel BootcampはChiselで作成した4-tapのFIRフィルタ・ジェネレータをN-tap版FIRフィルタ・ジェネレータに変換する最後のフェイズとしてN-tap版のFIRフィルタ・ジェネレータのテストを作成した。

www.tech-diningyo.info

前回の終わりに書いたとおり、今日の記事ではChiselのコレクション型であるVecについてを見ていく。

  • Module 3.2: ジェネレータ:コレクション
    • Chiselのコレクション型
      • 例題: 実行時のフィルタ係数変更機能を備えたFIRフィルタ・ジェネレータ
        • 1.Bundleにコレクション型を使用する場合
          • Bundleの中にSeq
          • IOの中のBundleにSeq
        • 2. ハードウェアの構成要素を用いてコレクション型にアクセスする場合
        • テストの実行
続きを読む

Chisel Bootcamp - Module3.2(4) - N-tap版FIRフィルタ・ジェネレータに対応したテストの実装

前回の記事ではChisel BootcampはModule3.2の続きでModule2で扱った4-tapのFIRフィルタ・ジェネレータをN-tap対応版に変更していった。

www.tech-diningyo.info

今回は一連の変更作業の最後のフェイズでN-tap版FIRフィルタ・ジェネレータに対応したChiselのテストを作成していく。

  • Module 3.2: ジェネレータ:コレクション
    • tap数を可変にしたFIRフィルタ・ジェネレータのテスト
      • N-tap版のテストの実行結果
        • tap数500のテストと結果
        • 1. 4-tap版のFIRフィルタテストの作成
        • 2. Chiselで4-tap版FIRフィルタ・ジェネレータを作成→1.のテストをPASSさせる。
        • 3. ScalaでFIRフィルタのリファレンスモデルを作成
        • 4. FIRフィルタのリファレンスモデルをChiselのテスト関数に組み込み
        • 5. Chiselの4-tap版FIRフィルタ・ジェネレータをN-tap版に修正してテスト
        • 6. 4.のChiselモジュールテストをN-tap版に適応するように変更
続きを読む

Chisel Bootcamp - Module3.2(3) - N-tap版FIRフィルタ・ジェネレータの作成

前回の記事ではChisel BootcampはModule3.2にの続きでScalaのFIRフィルタのリファレンスモデルをテストし、確認したモデルをChiselのテスト回路に組み込んでいった。

www.tech-diningyo.info

今回は作成したChiselモジュール用のテスト回路を使って4tap固定のFIRフィルタジェネレータをN-tap対応版に変更していく。

  • Module 3.2: ジェネレータ:コレクション
    • 例題:パラメタライズ版FIRフィルタジェネレータ
      • mutable.ArrayBuffer
      • FIRフィルタのRTL
      • N-tap版FIRフィルタで作った4-tap FIRフィルタのテスト
        • テスt実行結果
続きを読む