表紙_背景青_一部

「Chiselを始めたい人に読んで欲しい本」書きました!

ヲレの話を聞け〜!

というアドベントカレンダーがあったので参加してみました。
そんなわけで、この記事は

「ヲレの話を聞け〜! 技術の薄い本、著者からのオススメ Advent Calendar 2019」

の9日目のネタになります。普段はブログやらtwitterやらで活動していますが、noteを使ってみたかったのでnoteで書いてます。

技書博2で「Chisel」というHW設計言語の本出します!

ということで本題です。見出しのとおりですが、12/14に開催される第二回技術書同人誌博覧会にて、Chiselのこと書いた

Chiselを始めたい人に読んで欲しい本

表紙_背景青

だします!!

ChiselでHW設計を行う上で必要になるScalaの文法にはじまり、Chiselの基本的な文法、Chiselが備える強力なパラメタライズの機能やテスト機能といった、応用的なトピックまでを、サンプルコードと共に解説しています。
中身はこんな感じ↓。

- Chiselって??
  - Chiselの実行環境構築
- Scalaの基本的な文法
  - Scalaの型
  - 制御式
  - クラス・トレイト・オブジェクト
- Chsielの基本的な文法
  - エレメント型(Bool・UInt/SInt・FixedPoint)
  - アグリゲート型(Vec・Bundle)
  - ハードウェアの構成要素(モジュール・IO・ネット・レジスタ・レジスタ配列)
  - 演算子
  - 制御構文
  - クロックとリセットの仕組み
- Chiselをもっと便利に使うために
  - 標準ライブラリ(ビット幅計算・BlackBox・DecoupledIO)
  - Chiselのテスト機構
  - 回路のパラメタライズ

すぐに動かして試せるようにChisel3.2.0で動作するサンプルコードもついてるよ!!!(え、多い、と言ってもらえたくらいのボリュームだ!)

いや、Chiselってなんやねん??

そうですね、そんな声も聞こえてきそうです。通常のHW設計で使用されているVerilog-HDL/SystemVerilog、VHDLという言語があります。どこかからお叱りが来そうですが「C言語とかで今のスマホのアプリ作れ」みたいな話が、HWの設計においても存在していて、年々設計にかかる時間が増えてきています。

こういった話に対して高位合成というアルゴリズムをHW化する手法もあったりしますが、Chiselはこれに属しているわけではありません。どちらかといえば

- 最近の言語でHW設計できるようにしちゃおうぜ!!したら楽できるやん!

という感じで、今のHDLをパワーアップしたような感じの言語になってます。なのでChiselの公式のアナウンス的にはHCL(ハードウェア構築言語)と呼称しています。

これが広がったきっかけは、ご存じの方もいるとは思いますがRISC-VというオープンソースISAの実装に使われていたからです(Rocket ChipとかBOOM)。また去年あたりにGoogleがEdgeTPUというDL用のアクセラレータの設計がChiselで行われたということで話題になってました。

どうでしょう??少しだけ興味が出てきませんか??

「情報がなくてとっつきづらい」をなくしたい

自分はRISC-VのRokcet Chipの設計に使われたという話を聞いて「面白そうやん!」とChiselを調べ始めましたが、調べること1時間位、感想は

「情報がなーーーーーい!!!」

でした。調べたことある方なら気持ちを分かってもらえるはず。
そんな状態から、コツコツ調べてChiselと仲良くなってみたら、思った以上に楽できることがわかってきた&書いてて楽しいので、これを広めるべく本にしてみた次第です。

そんなこともあり、今回の本にはChiselを学ぶ上で最初に知っておきたかったことや、ソースコードを解析して初めて分かったことなどを中心に盛り込みました。

また最初に始めた際に、学習が進みづらかった理由の1つに「簡単なサンプルコードが少ない」というものがありました(Rocket Chipとかは、最初に読んだら絶望しかねん)。そのため、繰り返しになりますが「そこそこの量のサンプルコード」もつけてます。しかも動作確認を行ったのは今年リリースされたChisel3.2.0なので、これから始めたい人にピッタリ!

Chiselを本格的に触ってみたいけど、情報が無くて手が出ていない人に読んでもらえたら嬉しいなーっと。

ブースの情報、本の情報は以下をご覧ください。ついでにチェックもしといてれくれるとありがたいです!

是非お手にとってもらえると嬉しいです!



いいなと思ったら応援しよう!