概要
コミックマーケット90(C90)の3日目(8/14)、TechBoosterという技術書サークル(西a-05ab)にて「The Web Explorer 2」という本が出ます。このなかに、私の書いた「Scalaでイージーにハードを設計する」という記事が収録されます。Scala言語とChisel(Chisel HDL)というライブラリを利用してデジタル回路を設計する入門記事です。図1.1の、めちゃめちゃかわいい表紙が目印です。
誰に向けた記事なの
主に想定した読者像は次のとおりです。- 普段Javaでコードを書いているソフトウェア開発者
- Scalaという言語は聞いたことがあるけれど、なんかコンパイル遅そう&怖そうというイメージぐらいしかない
- CPU上でプログラムを走らせているだけでなく、ハードウェア(デジタル回路)を作ってみたいと感じている。あるいは、なんならFPGA評価ボードは買ってみた
- Verilog HDLやVHDLの書き方をチラッと調べた結果「えっ、この言語ほんとに書くの?つらくない??」という気持ちになった
- 普段だいたいmacOS上で開発作業をしている
- IntelliJ IDEAやAndroid Studioにそこそこ馴染んでいる
デジタル回路に関する事前知識はあまり要求しない作りです。序盤では専用のデジタル回路をわざわざ組む理由はどこにあるのか、どのようなユースケースを探るべきなのか、といった基礎部分もカバーしています。
いっぽう、Scalaの言語仕様に関する説明は最低限に留め、いわゆる「Scalaらしいコードの書き方」にはほとんど触れていません。わりと「行末にセミコロンを打たない&便利構文がいくつか追加されたJava」ぐらいの使い方をしています。これは、私自身のScala経験が浅いという事情に加えて、Scalaの学習よりもChisel HDLの学習にページ数を割きたかったためです*1。
[*1] なんたって、Scalaらしいプログラミングスタイルを学べる良書はすでに世の中に存在します。もちろん今回の記事中でも紹介しています。
どういう記事なの
Scala言語とChisel(Chisel HDL)というライブラリを利用してデジタル回路を設計する入門記事です。主にソフトウェア開発者をターゲットとしています。
内容
- なぜCPUを使わず、わざわざ専用デジタル回路を作るのか
- 演算の向き不向き
- FPGAとASICの簡単な違いとコスト差
- Scala+Chisel HDLを使うメリットの提示
- Chisel HDLのごくごく基礎紹介
- Chisel HDLがなにものであって、なにものでないか
- とりあえずChisel HDLを使って半加算器を作ってみる
- テストコードはScalaで書き、シミュレータをもちいた動作検証をおこなう
- Chisel HDLで実用的な回路開発。TMDS変換(DVI/HDMI用信号変換の一部)回路を書く
- TMDS変換アルゴリズムの簡単な紹介
- 実際にChisel HDLでコードを書く
- Scala版の実装をあわせて作成する
- Chisel HDL版の動作を検証する
- FPGAマガジンNo.13に掲載のカメラ出力コードの一部をChisel HDL版に差し替えてシミュレーション結果の性能を比較する
- よく使われるVCDファイルのダンプを分析する手順の紹介
- 参考文献
- おまけ: はじめよう、FPGA!(2016年7月時点で、ひとまず始めるのにオススメのボード紹介)
今回、Chisel HDLのコーディングに利用した環境はmacOSですが、拙作のDockerイメージを利用することでWindows上での作業も可能であることを確認しています。
うぇ、Web Explorer…?
目次を見てのとおり、この本はWeb系の技術(JavaScript系)がメインの本です。いえ実はTensorFlowでRNNというホットな記事も載っています。ちなみにThe Web Explorer 2は計128ページの薄い本()ですが、そのうち52ページがScala+Chiselを扱った章です。Scala+Chiselの章に疲れたらWebとTensorFlowの話を読み、それらに疲れたらまた戻ってScala+Chiselの章を読むこともできてお得ですね!!
あと、紙の本にはおまけとして電子版のダウンロードクーポンが付属するとのことです。PDF派(私もです)も安心ですね。なお、私の記事タイトルは@vvakameがつけてくれました。
0 件のコメント:
コメントを投稿