2019-01-01から1年間の記事一覧
去年は始めたばかりということもありやりませんでしたが、大晦日なので今年のまとめを。
通常運行に戻って、Chiselネタを。 今回はこのつぶやきの話。 なーーーーーーーーーーーーんか、おかしいんだよなーーーーーって、思いながらも動いてるからいっか!!ってなって部分があったんだけど。。。。。読み込んでるBlackBoxのメモリ推定記述のFF推…
もう終了して1週間以上経ちましたが、、、、とりあえずまとめを。。。 何をって、前回のブログで宣伝した技書博2の話。 今回は、技術ネタ無し!! 執筆編 申し込み(8月) 申し込んだはいいものの(9月くらい) さあ、ぼちぼち書くかー(10月) やばいわー…
しばらくブログの更新が滞っていました。。。。twitterを見てる方がいらっしゃいましたら、理由はお察しと思います。。 この一月くらいはひたすら本を書いていました↓。 ということで、宣伝を。 12/14に開催される第二回技術書同人誌博覧会が開催されます。 …
「Rocket Chipに自分のモジュールを追加してみる」の4回目&一旦ここまででお終い。 firesimのデータをそのままRocket Chipに持って行ってもエラーが出てビルドできなかったので、Rocket Chip上でビルドするにあたって行った修正についてをまとめておく。
随分間が空いたけど「Rocket Chipに自分のモジュールを追加してみる」の3回目。 残りの2つは短いので今回でまとめて扱う。
随分間が空いたけど「Rocket Chipに自分のモジュールを追加してみる」の2回目。 今回は前回作成したPWMモジュールを組み込むRocket Chipとしてのシステムのトップモジュール部分を見ていく。
前回の続きでChisel3.2.0の気になる機能を使ってみる、の第2回目。
Chiselのtwitterをフォローしている人はご存知と思いますが、先日ついにChiselの3.2.0のリリースが公式にアナウンスされました! ということで今回はRC1/RC2/3.2.0のリリースノートから気になる機能をピックアップして確認しておこうと思います。
技書博向けの作業において、サンプルコードの自動テスト環境を作りたいなーと考えていて、それを構築するにはGitLabとGitLab Runnerを使用するのが良さそうに見えたので試してみた。
ふと気になったのでChiselのBlackboxで複数のファイルから構成されたVerilogのRTLを指定できるのかを試してみた。 Blackboxのおさらい Blackboxで指定するモジュールが複数のファイルで構成される場合
Github Actionsが使えるようになったので、ChiselのCI環境を構築できないかを試してみる。
今回は作ってたRISC-V(dirv)とUARTを接続した簡単なシステムがFPGAで動いたので、その結果について簡単にまとめておきたいと思う。
Chiselのモジュール名は通常宣言したクラス名がそのまま使用されるのだが、これだと問題起こりそうなケースってあるよな、、、って思っていた。 そこで今回はこれに関する解決方法が無いかを調査したので紹介したい。
唐突にgithubのGPG keysの設定を行ってみたのでそれの手順をメモ。
今回はデバッグ用にポートを作る場合の方法について、今の時点の知識で考えなおしてみた。
今日はChiselで実装したモジュールをテストしていて出くわした、わかりにくかったエラーについて解析した際のメモを。
なんとなく内部構造も見えてきたので、ここらでRocket Chipにモジュールを追加する例題を追っていった際のメモ書き。 長くなりそうなので、適宜分割予定(Maxで5回、、かな)。最初にお断りしておきますが、まだ理解があやふやなのです。 ご承知おきください…
Rocket Chipの記事で以下のように書いたのを試してみたという記事。 あとRocketChipで使われているMultiIOModuleについても少し気になることがあるので、それは別途紹介する予定。 LazyModuleImp MultiIOModule 簡単な例 Rocket Chipの実装から出来そうなこ…
ChiselのQueueを使って設計をしていて、少し考えたことがあったので今日はそれについて。 ただ単にDecoupledIOをどう使うか、、、という話。 Queueの実装例 IOの形を書き換えてみる 継承してスッキリ コンパニオンオブジェクト版
前回はとりあえずLazyModuleを使った最小のモジュールを作ってみる、という話をまとめた。 その際に以下の要素があればLazyModuleを使ったモジュールを作れるということがわかった。 Parametersから派生したモジュールのパラメータクラス LazyModuleから派生…
RISC-Vのビルド環境を作りなおす必要が出てきたので、せっかくだから最新のriscv-toolsのリポジトリの環境を使って作りなおすことにした。 今回はその際に幾つか躓いた部分があったのでそれについてまとめておく。 crosstool-ngを使ったRISC-Vのコンパイラの…
Twitterでつぶやいてた以下のスレッドに書いてたやつをまとめてみた話。 ある数字Nが表せる状態数のビット幅を取得するとき→log2Ceil(N)その数字Nを表現するために必要なビット数を取得するとき→log2Ceil(N+1)を使えってソースに書いてあった!(ランダム試…
Rocket Chipの解析の話の5回目。 今日はソースコードの解析の傍らで行っていたLazyModuleの使い方を探っていた結果についてを少し。 LazyModule LazyModuleを使った最小??のモジュール
Rocket Chipの解析の話の4回目。 今回は"make"に渡す引数の一つDefaultConfigの中身でああるConfigやParametersについて。 この辺の話はすでにmsyksphinzさんのFPGA開発日記で解説してくれているけど、解析の関係上で扱っておくべきだと思うのでざっと見てい…
今作り直してるオレオレRISC-V(dirv)の対向に接続するメモリモデルがバグってるので、バグ再現パターンを起こしてシミュレーションを行っていた。その際に出くわした「いや、当たり前でしょ」な話をメモ書き程度に残しておく。ScalaTest使ってる人は多分タイ…
もうそこそこ経ってはいるがChiselの3.2-SNAPSHOTがgithubのリリースに上がっている。今回はそれを使うにあたって遭遇したエラーについて。 Chsiel-3.2のSNAPSHOTが公開された ImplicitModuleが、、、消えた?? おまけ ~ 他のプロジェクトでもアップデート…
ある意味前々回の続きのネタ。前々回の記事ではシミュレーション実行時にログにサイクル数を出す方法を探したが、今回は波形上で確認するための細工を行ってみる。 ”前々回の記事”は以下。 Chiselの波形上に経過サイクルを表示 WDT(Watchdog Timer) WDTが勝…
今日はChiselで書いたモジュールをテストする際に使用する期待値比較メソッドexpectについての細かい仕様の話。 expectで期待値比較 気づいてなかった細かい仕様 再現コードと動作ログ expectの実装を確認してみる
Chiselで書いたモジュールを`iotesters.Driver`でテストする際に地味ーーに便利(だと思う)なシミュレーションのサイクル数を表示する方法についてまとめる。