2019-07-01から1ヶ月間の記事一覧
今日はChiselで書いたモジュールをテストする際に使用する期待値比較メソッドexpectについての細かい仕様の話。 expectで期待値比較 気づいてなかった細かい仕様 再現コードと動作ログ expectの実装を確認してみる
Chiselで書いたモジュールを`iotesters.Driver`でテストする際に地味ーーに便利(だと思う)なシミュレーションのサイクル数を表示する方法についてまとめる。
今日の記事はChiselでテストを書いていた時に出くわしたトラブルとそれに対する修正について。回路自体は前回まで記事にしていたNICのArbiter部分のような調停回路。 トラブルと言ってもChiselのバグとかそういう話ではなく、自分の理解不足からくるもので、…
前回に引き続きChiselで作るお試しNICの話。 最後はDecoder/ArbiterをインスタンスするTopブロックについて。 NICTop ソースコード パラメタライズ用のパラメータ IOポート Decoder/Arbiterのインスタンス 各モジュールの接続 テスト 動作波形
前回に引き続きChiselで作るお試しNICの話。 3回目はArbiter部分について。 NICDecoder ソースコード IO部分 Arbiter 入力とArbiterの接続 テスト NICDecoderの動作時の波形 レジスタスライスなしの場合 レジスタスライスありの場合
前回に引き続きChiselで作るお試しNICの話。 2回目はDecoder部分について。 NICDecoder ソースコード IO部分 入力用のレジスタスライス 出力のvalidの選択 Queueのdeq.readyの制御 NICDecoderの動作時の波形
ちょっとパラメタライズのやり方を検討したかったので、ものすごく簡単なデータ用のインターコネクト的なやつをChiselで書いてみたのでそれについてをまとめておく。 今回の記事は全体の仕様について。 NICの仕様 バスの仕様 パラメタライズについて ブロッ…
Rocket Chip環境の仕組み解析メモの垂れ流し記事。前回のgenerateFirrtlで実際にChiselのモジュールとして回路化されるTestHarnessを見ていく。 TestHarness dontTouchPorts tieOffInterrupts connectSimAXIMem connectSimAXIMMIO dut.l2_frontend_bus_axi4.…
Rocket Chip環境の仕組み解析メモの垂れ流し記事。前回見ていったGeneratorの中のgenerateFirrtlを見ていくのが良さそうだったので、今回からはそれを少しずつ見ていく。 generateFirrtl トレイト"GeneratorApp"の挙動 elaborateの処理
Rocket Chip環境の仕組み解析メモの垂れ流し記事。とりあえずRTL生成時のざっくりした流れを追ったメモを元に少しだけ手直し。 Rocket ChipのRTL生成フロー(全体の流れ) src/main/system/Generator.scala オブジェクトの宣言 テストスイートの構築メソッド…
Chiselのutil以下に存在するモジュールに自分のモジュールのIOを接続しようとした時に遭遇したエラーとその解決法であるchiselTypeOfについて簡単にまとめておく。
今日はとあるモジュールの実装中にVecの取り扱いで遭遇したエラーとその解決方法について簡単にまとめておく。
今日はChiselのutilに入っているArbiterについてを再度調べてみたのでその内容をまとめようと思う。 ChiselのArbiter utilに入っているArbiterについて テスト対象のアービター・モジュール 動作を確認する Arbiterの波形 RRArbiterの波形 LockingArbiterの…
今日はあるのは知ってたけど、まだ試せてなかったChiselの機能をやっと試せたのでその機能についてご紹介をば。 Chiselのアノテーション@chiselName 使い方 効果をRTLで確認
今日はChiselのutilに入っているQueueについてを再度調べてみたのでその内容をまとめようと思う。
前回に引き続きRocket Chipについて。 通常の手順だとソース追いづらいので、InteliJ IDAE上に環境を構築してデバッガ使ってトレースをするための環境を整えていきます。