Verilog-HDL
通常運行に戻って、Chiselネタを。 今回はこのつぶやきの話。 なーーーーーーーーーーーーんか、おかしいんだよなーーーーーって、思いながらも動いてるからいっか!!ってなって部分があったんだけど。。。。。読み込んでるBlackBoxのメモリ推定記述のFF推…
Chiselの文法入門の続きで今回は第10回目&最後 前回の終わりに書いたとおり、Chiselのテストの仕組みについてを解説します。 Chisel入門編〜その10:Chiselのテスト機構〜 PeekPokeTesterを使ったテスト用クラスの作成 PeekPokeTesterのテスト用メソッド Dr…
Chiselの文法入門の続きで今回は第8回目 前回までの記事でChiselの基本的な要素についての解説を一通り終えました。 今回からはChiselを使って論理回路を設計する際のメリットである回路のパラメタライズについての基本的な部分を紹介していきます。 Chisel…
前回の続きでChiselの文法入門編その7 今回はChiselにおける拡張型の続きとしてBundleについてを見ていきます Chisel入門編〜その7:Bundle〜 Bundleの宣言 例で見るBundleの使い方 IOで使うBundle
前回の続きでChiselの文法入門編その6 今回はChiselにおける拡張型である`Vec`と`Bundle`の2つについてまとめて書こうを思ったのですが、思いの外膨らんだので、`Vec`メインにしました
前回の続きでChiselの文法入門編その5。 5回目はChiselの制御構文についてです。
前回の続きでChiselの文法入門編その4。4回目はChiselの各演算子について。
前回の続きでChiselの文法入門編その3。 前回の冒頭に書いたChiselにおける3つ目の要素であるChiselのハードウェアの要素について見ていきます。
今年のGWの自分宿題としてものすごく簡単なRISC-Vを作っていました。 ツイッター見てる方はご覧になってたかもしれませんが、GW中に一応riscv-tests位ならPASSするものが出来ています。 今回はその後にVivadoで合成してみた結果も取ることが出来たのでそれも…
今回は最近進めていたRISC-Vの実装の際にBundleの使い方でハマったのでそれについての話を Bundleのおさらい 基本的な使い方 BundleのインスタンスでRegを作る 本題:自分で作ったBundleでRegを作ったらハマった テストコードを作って確認 RTLはどうなってる…
今回もChiselのMemについての話。 元ネタは自分の以下のツイート。 因みにこの先は全部一緒でVecを入れ子にすれば、、、後はわかるな??— diningyo (@diningyo) 2019年4月30日 おそらくお察し頂けたとは思うが、3次元のメモリを作る場合についてまとめてお…
令和になって最初の投稿。ほんとは昨日上げたかったんだけど。。 いずれにしても読んでくれてる方は引き続きどうぞよろしくですm(_ _)m 前回の記事の終わりに以下のようなこと書いた。 MemBaseにマスク付きのライトタスクが用意されているので、ひょっとする…
今回はふとChiselで2次元のメモリは作れるのか??と思ったので試してみたのでそれをまとめてみようと思う Chiselで2次元のメモリ 試してみたことその1~Mem in Mem~ 試してみたことその2~じゃあBundleでくるんでみよう~ 試してみたことその3~それな…
今日は昨日の続き。 昨日はBundleをRegInitに渡すときにBundle内の各フィールドを任意の値で初期化する方法について考えた。 目的の処理は出来ることは分かったのだが、記述がイマイチなので今日はそれを少し整えてみようと思う。
以前にBunldeで構造化したデータを使ってレジスタをインスタンスする方法を紹介したのだがその記事を書いたときにもう一つコレ出来たらいいなっと思いながら出来なかったことがあった。 それは”Bundleを使ってレジスタ郡を作る際に、各フィールド毎に任意の…
前回はChiselのBundleへのアクセスを簡単にする方法を紹介した。 www.tech-diningyo.info 今回はいま実装しているHWの処理の関係で算術右シフトが必要になった時に、どうすれば良いのか悩んだので、その話をまとめておく。 Chiselで算術右シフト Chiselでは…
前回のChiselの記事では`Bundle`を使ってオプションのIOポートをまとめて制御する方法を紹介した。 最近Chisel周りの調査をいろいろやっているが、ChiselのコードをVerilogのRTLに変換する方法についてを簡単にまとめた日本語の記事が見当たらない気がしたの…
前回のChiselの記事ではBundleの基本的な使い方についてをまとめたみた。 www.tech-diningyo.info 今回は前回まとめたBundleを使ってモジュールのIOポートをオプション化する方法についてをまとめておく。 ChiselでIOポートのオプション化するには? モジュ…
前回のChiselの記事ではchisel-templateをIntellij IDEAのプロジェクトにしてChiselの開発環境を構築する方法についてを紹介した。 www.tech-diningyo.info 今回は前回の終わりに書いたとおり、構築したchisel-templateプロジェクトに自前のモジュールを追加…
前回のChiselの記事では標準ライブラリに含まれているマルチプレクサに関するブロック(PriorityMux/Mux1H)を紹介した。 今日は幕間で紹介されているChiselのライブラリとしては最後になる`Counter`について見ていく。
前回の記事ではChiselの標準ライブラリに含まれているOneHotエンコードに関するブロックを紹介した。 今日はChiselのライブラリに用意されている2つのマルチプレクサについて見ていく。
前回の記事ではChiselの標準ライブラリに含まれているビット単位の操作を行うブロックをを紹介した。 今日はChiselからOneHotエンコードのユーティリティを勉強していく。
前回の記事ではChiselの標準ライブラリから`Arbiter`を紹介した。 今日も引き続きChiselの標準ライブラリを紹介していく。今日はChiselのユーティリティブロックからいくつかのモジュールを勉強する。
前回の記事ではChiselの標準ライブラリからQueueを紹介した。 今日も引き続きChiselの標準ライブラリを紹介していく。今日はChiselのアービターだ。
前回の記事ではChisel BootcampはModule3.2のと3.3の幕間の章に入り、Chiselの標準ライブラリの紹介の導入としてDecoupledIOについてを学習した。 今日も引き続きChiselの標準ライブラリを紹介していく。今日はChiselの`Queue`だ。
前回の記事ではChisel Bootcamp]はModule3.2の練習問題でRISC-VのISA向けのレジスタファイルを作成した。 今日はModule3.2とModule3.3の間にある幕間の章でChiselの標準ライブラリについて紹介していく。最初はDecoupledIOから。
前回の記事ではChisel BootcampはChiselのコレクション型である`Vec`について調べた。 今日はModule3.2の締めくくりとして練習問題を見ていく。
前回の記事ではChisel BootcampはChiselで作成した4-tapのFIRフィルタ・ジェネレータをN-tap版FIRフィルタ・ジェネレータに変換する最後のフェイズとしてN-tap版のFIRフィルタ・ジェネレータのテストを作成した。 前回の終わりに書いたとおり、今日の記事で…
前回の記事ではChisel BootcampはModule3.2の続きでModule2で扱った4-tapのFIRフィルタ・ジェネレータをN-tap対応版に変更していった。 今回は一連の変更作業の最後のフェイズでN-tap版FIRフィルタ・ジェネレータに対応したChiselのテストを作成していく。
前回の記事ではChisel BootcampはModule3.2にの続きでScalaのFIRフィルタのリファレンスモデルをテストし、確認したモデルをChiselのテスト回路に組み込んでいった。 今回は作成したChiselモジュール用のテスト回路を使って4tap固定のFIRフィルタジェネレー…