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

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

Chisel

Chisel3.5.0のリリースノートを確認した

年末にもうすぐChisel3.5.0が出そう、、、、と書いていたのだが、新年始まってバタバタしてたらとっくにリリースが行われていた。。。。 という事で、勝手に毎度おなじみにしているリリースノートの確認をやっていこうと思う。 Chisel v3.5.0がリリースされ…

iotestersからChiselTestへの移行を考える

この記事はHDL (SystemVerilog/Verilog/VHDL/Chisel/etc.) Advent Calendarの20日目の記事です。 Chiselも含まれてたので、Chiselネタで何か、、、、と考えた結果、あんまりちゃんと調べて&まとめてなかったChiselTestについて書くことにしました。

ゲームボーイを作る(14) - キャッシュ機能付きCI環境構築

ゲームボーイを作るその14。テストを作って実装を進めているが、この作業を進めるうちに、少し前に実装してPASSしたテストがFAILするという事がチラホラ起き始めた。そろそろCIを導入してデグレを早期発見できるようにしてみようと思う。 GitHub Actionsを使…

ゲームボーイを作る(12) - レジスタ表示の改善

ゲームボーイを作るその12。ちょっと寄り道して、デバッグのためにレジスタ表示を改善する。

ゲームボーイを作る(11) - ロード命令の実装

ゲームボーイを作るその11。前回作ったテストをパスするため、ロード命令を実装していく。 ゲームボーイのCPUの命令 CPUの動作波形 とりあえずロードの実装

ゲームボーイを作る(10) - CPUのレジスタ実装

ゲームボーイを作るその10。前回でCPUレジスタの仮実装を行ったので、テスト環境側の期待値比較処理を作っていく。

ゲームボーイを作る(9) - CPUのレジスタ実装

ゲームボーイを作るその9。今回はテストの体裁を調えるために、CPU内部のレジスタを仮実装していく。

ゲームボーイを作る(7) - CPUのテストベンチ作成

ゲームボーイを作るその7。前回は最初のテストコードの準備をしたので、今回はハードウェアの検証環境を整備していく。 CPUのテストベンチ作成 メモリ CPU CpuTb テストクラス ChiselTest CPUのテストクラス

Chisel3.3.0のリリースノートを確認した(5) - NoChiselNamePrefix

引き続きChisel3.3.0の変更点を。。Chisel3.4.0はリリース間近!!(ただいまRC2)。 今回は#1383の@chiselNameの処理を非適用にする機能NoChiselNamePrefixについて。 #1383 @chiselNameの処理を非適用にするトレイトが追加された

Chisel3.3.0のリリースノートを確認した(4) - @chiselNameが強化された

あっという間に9月になりました。。 本題に入る前に少し宣伝的な事も書いてみます。 過ぎ去った8月末に、昨年同人誌で出版したChiselの本の商業誌版が出版されました。 内容的には同人誌版をベースに執筆時点で書ききれなかった内容+執筆時点からのアップ…

Chisel3.3.0のリリースノートを確認した(3) - SyncReadMemに追加された引数

転職でバタバタしてて、気づけば最後に更新してから早2ヶ月。。。 間が空いたけど、前回からの続きでChisel3.3.0の変更点を確認していく。 今回は#1183のSyncReadMemの件について #1183 SyncReadMemに同時アクセス時の挙動を指定するパラメータが追加された …

Chisel3.3.0のリリースノートを確認した(2) - ChiselStageを使ったエラボレート

今日は前回の続きでChisel3.3.0で変更/追加になった機能について確認していく。 今回は一番気になったRTLの生成処理の変更について。 #1213 Driverのいくつかのメソッドが非推奨になった Chisel3.stage.ChiselStage ChiselStage.executeを使ったRTLの生成 C…

Chisel3.3.0のリリースノートを確認した(1) - 概要編

5/4にChiselの3.3.0が正式にリリースされた。今回はリリースノートをざっと確認したのでその内容についてまとめておく。 なお今回の記事はリリースノートのひとくちメモという感じで、中身についてはそこまで深くは追求していない。 気になった機能について…

Chiselのswitchも普通にパラメタライズ出来た

Chiselのswitchについて少し勘違いしていたことがあったのでそのまとめ。

Chisel 3.3.0-RC1で追加された非同期リセットに関する機能を試してみる

Chiselの3.3.0-RC1が公開されたのだが、その中に1つ気になる記述があったので今回は それについて試した内容をまとめておこうと思う。 Chisel 3.3.0-RC1を使ってみる Better Asynchronous Resetってこれのこと? RequireAsyncReset トレイト

Chisel3.2.0で追加された非同期リセットについて(勝手に)勘違いしてた話

Chiselの3.3.0-RC1が公開されて調べたら、自分の把握できていない非同期リセットの振る舞いがあったので それをとめておこうと思う。 非同期リセットはモジュール間も伝搬する useAsyncReset=true useAsyncReset=true

ChiselのBoringUtilsの使い方を確認

ChiselのBorringUtilsについての確認を行ったので、メモ書き。

BlackBoxで参照してたRTLのバグでハマった話

通常運行に戻って、Chiselネタを。 今回はこのつぶやきの話。 なーーーーーーーーーーーーんか、おかしいんだよなーーーーーって、思いながらも動いてるからいっか!!ってなって部分があったんだけど。。。。。読み込んでるBlackBoxのメモリ推定記述のFF推…

Rocket ChipのGeneratorのソースの解析メモ(10) - サンプルに沿ってPWMモジュールをTileLinkバスに追加してみる(4)

「Rocket Chipに自分のモジュールを追加してみる」の4回目&一旦ここまででお終い。 firesimのデータをそのままRocket Chipに持って行ってもエラーが出てビルドできなかったので、Rocket Chip上でビルドするにあたって行った修正についてをまとめておく。

Rocket ChipのGeneratorのソースの解析メモ(9) - サンプルに沿ってPWMモジュールをTileLinkバスに追加してみる(3)

随分間が空いたけど「Rocket Chipに自分のモジュールを追加してみる」の3回目。 残りの2つは短いので今回でまとめて扱う。

Rocket ChipのGeneratorのソースの解析メモ(8) - サンプルに沿ってPWMモジュールをTileLinkバスに追加してみる(2)

随分間が空いたけど「Rocket Chipに自分のモジュールを追加してみる」の2回目。 今回は前回作成したPWMモジュールを組み込むRocket Chipとしてのシステムのトップモジュール部分を見ていく。

Chisel3.2.0が出たので変更点を確認する(2)

前回の続きでChisel3.2.0の気になる機能を使ってみる、の第2回目。

Chisel3.2.0が出たので変更点を確認する(1)

Chiselのtwitterをフォローしている人はご存知と思いますが、先日ついにChiselの3.2.0のリリースが公式にアナウンスされました! ということで今回はRC1/RC2/3.2.0のリリースノートから気になる機能をピックアップして確認しておこうと思います。

GitLab Runnerを使ったChiselの自動テスト環境の構築

技書博向けの作業において、サンプルコードの自動テスト環境を作りたいなーと考えていて、それを構築するにはGitLabとGitLab Runnerを使用するのが良さそうに見えたので試してみた。

ChiselのBlackboxで複数のファイルから構成されるVerilog-HDLのモジュールを読み込む

ふと気になったのでChiselのBlackboxで複数のファイルから構成されたVerilogのRTLを指定できるのかを試してみた。 Blackboxのおさらい Blackboxで指定するモジュールが複数のファイルで構成される場合

Github Actionsを使ってChiselの自動テスト環境を構築

Github Actionsが使えるようになったので、ChiselのCI環境を構築できないかを試してみる。

Chiselで作ったRISC-VとUARTをArty 35Tで動かしてみた

今回は作ってたRISC-V(dirv)とUARTを接続した簡単なシステムがFPGAで動いたので、その結果について簡単にまとめておきたいと思う。

desiredNameを使ったChiselのモジュール名の変更

Chiselのモジュール名は通常宣言したクラス名がそのまま使用されるのだが、これだと問題起こりそうなケースってあるよな、、、って思っていた。 そこで今回はこれに関する解決方法が無いかを調査したので紹介したい。

MultiIOModuleを使ったデバッグ用ポートについての作成

今回はデバッグ用にポートを作る場合の方法について、今の時点の知識で考えなおしてみた。

Chiselのモジュールのテスト時に出くわした分かりにくかったエラー

今日はChiselで実装したモジュールをテストしていて出くわした、わかりにくかったエラーについて解析した際のメモを。