FPGA開発日記

カテゴリ別記事インデックス https://msyksphinz.github.io/github_pages , English Version https://fpgadevdiary.hatenadiary.com/

Digital Design with ChiselのSecond Editionが正式発行

Digital Design with Chiselはハードウェア記述言語Chiselについて書かれた解説書だ。 英語で書かれてはいるがおそらく世界で最初に出版されたChiselに関する技術書で、Chisel初心者にとって分かりやすく詳しく書かれている。

msyksphinz.hatenablog.com

去年正式版が公開されたのだが、早くもSecond Editionが出てきたようだ。メーリングリストでオフィシャルアナウンスがなされた。

www.imm.dtu.dk

http://www.imm.dtu.dk/~masca/cover-small.jpg

とりあえず目次を読んでみた。見つけることのできた第一版との差分は以下の通り。

    1. Introduction
    1. Basic Components
    1. Build Process and Testing
    2. PeekPokeTester, printf()デバッグなどの項目が追加されている。
    1. Components
    1. Combinational Building Blocks
    1. Sequential Building Blocks
    2. PWMの項目とシフトレジスタに関する項目が追加。
    1. Input Processing この章が新設となった。Asynchronous Input、Debouncing、Input SignalのFiltering、Combining the Input Processing with Functionのサブセクションが新設。
    1. Finite-State Machines
    1. Communicating State Machines
    1. Hardware Generators
    1. Example Designs サンプルの量が増加。特にFIFOの設計について。
    1. Design of a Processor
    1. Contributing to Chisel

細かなところの増設、というのが正しいかな?新設の章をチェックしてみる。

  • Asynchronous Inputというのは話題のAsynchronous Resetではなく、単純にクロックをまたぐときにFFを2回たたく、という話だった。
val btnSync = RegNext(RegNext(btn))
  • Deboucingというのはいわゆるチャタリング防止回路のこと。外部入力からのチャタリング防止回路についてChiselでの実装を考えている。

ここまで読んでわかった。Input Processingというのは入力信号に対する処理、というか、外部入力に対する処理、ということなのか。