Chisel
前回のChiselの記事ではBundleの基本的な使い方についてをまとめたみた。 www.tech-diningyo.info 今回は前回まとめたBundleを使ってモジュールのIOポートをオプション化する方法についてをまとめておく。 ChiselでIOポートのオプション化するには? モジュ…
前回のChiselの記事では出力ポートに`0xdeadbeaf`を定数で入れたらエラーが出てハマったので解決方法について調べた。 今回はChisel-Bootcampではサラッと流されているChiselの`Bundle`を使ったデータの構造化についてをまとめてみる。
前回のChiselの記事ではChisel-bootcampのModule3.5のコンパニオン・オブジェクトとケース・クラスについてを勉強した。 今回はちょっとChisel-Bootcampから離れてChiselを試していたハマったUIntの大きい定数値の扱いについてを紹介していく。
前回のChiselの記事ではChisel-bootcampのModule3.5に入りScalaのオブジェクト指向言語としての特徴からクラスとトレイトについてを見ていった。・ 今回も引き続きModule3.5に取り組んでいく。前回の最後に記載したとおり今日はScalaのオブジェクト。
前回のChiselの記事ではChisel-bootcampのModule3.4でScalaの持つ関数型言語としての特徴をChiselにどう活かすかについてを勉強した。 www.tech-diningyo.info 前回の終わりにも書いたとおり、今日はModule3.4の残している練習問題に取り組んでいく。 Chisel…
前回のChiselの記事ではChisel-bootcampのModule3.4に入りChiselのベースになっているScalaの関数型言語としての特徴についてを確認した。 今日も引き続きModule3.4を勉強するが、今日はいよいよ関数型言語の特徴をどうChiselに活かすかという部分についてを…
前回のChiselの記事では久しぶりにChisel-bootcampの学習に戻りScalaの高階関数についてを学習した。 www.tech-diningyo.info 今日も引き続き高階関数の章でもう少し例題の確認と練習問題に取り組んでいく。 高階関数 練習問題:map 例題:zipWithIndex 例題:r…
前回のChisel-Bootcampの記事ではやっと標準ライブラリの紹介を終えたところだった。 www.tech-diningyo.info ちょっと間が空いたがChisel-Bootcampを進めていこうと思う。今日は高階関数だ。 Module 3.3: 高階関数 モチベーション 2つのFIRフィルタの物語 …
前回のChiselネタではVCD波形の確認に使うGTKWaveのビルドについてをまとめた。 www.tech-diningyo.info 今回はChisel-bootcampの傍らで確認を始めているRISC-Vの実装の一つsodorの実行&解析環境を作る際にIntelliJ IDEAとsbtの扱いでハマった話を備忘のた…
前回のChiselの記事ではchisel-templateをIntellij IDEAのプロジェクトにしてChiselの開発環境を構築する方法についてを紹介した。 www.tech-diningyo.info 今回は前回の終わりに書いたとおり、構築したchisel-templateプロジェクトに自前のモジュールを追加…
昨年末の記事ではWindowsのノートPCしか作業環境がなく、それをいいことにWindows上でのChisel-Bootcampの環境構築の手順を紹介してみた。 新年最初の記事ではついでにWindows上でChiselの開発環境を整えるには何をすればいいのかを調べてみたので紹介してみ…
現在絶賛Chiselの勉強中で、そのためにChisel-Bootcampというものを使って文法を学んできた。 これまでは自宅のデスクトップPCで作業をしており、そちらはWindowsとLinux(Ubuntu16.04LTS)のデュアルブートになっているため、通常こういった開発系の作業はU…
前回の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フィルタジェネレー…
前回の記事ではChisel BootcampではModule3.2に入り、Scalaのコレクション型を使ったFIRフィルタのリファレンスデザインを実装した。 今回も引き続きModule3.2を見て行くが、今日はScalaで実装したFIRフィルタのテストを行い、リファレンスモデルとしての確…
前回の記事ではChisel BootcampではやっとModule3.1が終わりになった。 今回からはModule3.2に入り、Scalaのコレクション型を使ってChiselのジェネレータを書く方法を学んでいく。
前回の記事ではChisel Bootcampの引き続きModule3.1の学習を進め、Scalaの機能`implicit`とそれをChiselに応用した例を学んだ。 Module3.1も7回目で、今日でついに終わりとなる。Module3.1の最後としてジェネレータの例を紹介する。
前回の記事ではChisel Bootcampの引き続きModule3.1n学習を進め、Moduleクラスの引数を使って作成するモジュールクラスのI/O宣言部分をオプション化する方法を勉強した。 今日も引き続きModule3.1を見ていく。今日は他の言語ではあまり例をみないScalaの機…
前回の記事ではChisel BootcampのModule3.1でScalaの文法である`Match`文の復習とそれをChiselに適用するとどうなるかということについてを見ていった。 今日も引き続きModule3.1を見ていく。今日はオプション付きのIO宣言についてだ。
前回の記事ではChisel BootcampのModule3.1でパラメタライズの際に指定できるオプションとデフォルト引数を見ていった。 今日も引き続きModule3.1を見ていく。今日はScalaの文法である`match`文とそれをChiselに適用するとどうなるかということについて勉強…
前回の記事ではChisel BootcampのModule3.1のパラメタライズの2つ目の例について見ていった。 今日も引き続きModule3.1を見ていく。今日はパラメタライズの際に指定できるオプションとデフォルト引数についてだ。