Digital Design with Chiselはハードウェア記述言語Chiselについて書かれた解説書だ。 英語で書かれてはいるがおそらく世界で最初に出版されたChiselに関する技術書で、Chisel初心者にとって分かりやすく詳しく書かれている。
去年正式版が公開されたのだが、早くもSecond Editionが出てきたようだ。メーリングリストでオフィシャルアナウンスがなされた。
とりあえず目次を読んでみた。見つけることのできた第一版との差分は以下の通り。
- Introduction
- Basic Components
- Build Process and Testing
PeekPokeTester
,printf()
デバッグなどの項目が追加されている。
- Components
- Combinational Building Blocks
- Sequential Building Blocks
- PWMの項目とシフトレジスタに関する項目が追加。
- Input Processing この章が新設となった。Asynchronous Input、Debouncing、Input SignalのFiltering、Combining the Input Processing with Functionのサブセクションが新設。
- Finite-State Machines
- Communicating State Machines
- Hardware Generators
- Example Designs サンプルの量が増加。特にFIFOの設計について。
- Design of a Processor
- Contributing to Chisel
細かなところの増設、というのが正しいかな?新設の章をチェックしてみる。
- Asynchronous Inputというのは話題のAsynchronous Resetではなく、単純にクロックをまたぐときにFFを2回たたく、という話だった。
val btnSync = RegNext(RegNext(btn))
ここまで読んでわかった。Input Processingというのは入力信号に対する処理、というか、外部入力に対する処理、ということなのか。