書評

お勧め度は5段階評価。基本的に3以上の物しか紹介しない

SystemVerilog関係

設計に使用するのであれば、日本語であれば「SystermVerilogによるLSI設計」が良い。ただし、Verilogが分っている人向け。

検証向けは、英語ではあるが「SystermVerilog for Verification」。

アサーションは、ここでは日本語版を紹介している「SystemVerilogアサーション・ハンドブック」の英語版のほうをお勧めする。

SystemVerilog for Design Second Edition: A Guide to Using SystemVerilog for Hardware Design and Modeling

Stuart Sutherland (Author), Simon Davidmann (Author), Peter Flake (Author), P. Moorby (Foreword)

お勧め度:☆☆☆☆☆

SystemVeilogの、設計に関する部分に絞って解説をしている。

注意する点は、Verilogに関する知識を前提にしている点。全くのVerilog初心者が本書を読んでも、ほとんど理解できないと思われる。

逆に、Verillogに関する知識があれば、本書は要点を押さえ、簡潔に必要なことが記載されているため、非常にわかりやすい。

SystemVerilogの設計に関する書籍では、今のところ最高の教科書だと思う。

ちなみに第二版では、IEEE Std 1800-2005に対応するほか、第一版で不満の多かった索引の貧弱さにも改善されている。

SystemVerilogによるLSI設計

Stuart Sutherland (著), Peter Flake (著), Simon Davidmann (著), 浜口 加寿美 (翻訳), 高嶺 美夫 (翻訳), 河原林 政道 (翻訳), 明石 貴昭 (翻訳)

お勧め度:☆☆☆☆

上記SystemVerilog for Designの日本語訳版。残念ながら今のところ第一版の訳しか出ていない。

対象はSystemVerilog 3.1a draft2のようだが、特に不便は感じなかった。この版での最の問題は、索引が貧弱で、ほとんど役に立っていない点だ。

とは言え、SystemVerilogに関する日本語の本では、現在最高の内容だと思う。Verilogを知っていることが前提になっているのは英語版とも同じで、全くの初心者には向かないことも注意してほしい。

System Verilog for Verification: A Guide to Learning the Testbench Language Features

Chris Spear (著)

お勧め度:☆☆☆☆☆

SystemVerilogの検証にかかわるトピックを中心に書かれている。ただし、アサーションについては触れられていない。Second Editionでは執筆時点でのSytemVerilogの2008版の情報が可能な限り盛り込まれている。

対象の読者としてはVerilog2001を知っていることが前提となっている。

前半は、SystemVerilogで拡張された機能のうち、検証にかかわるものでClass以外の説明、後半からはClassの話が中心になるのだが、VMMを題材としている。だからといってVMMを使わない人に向かないかというとそうでもなく、SystemVerilogのclassを使用して論理検証を行う場合に、いろいろと参考になる記述があり、有用性は高い。ただし、VMMの説明自体は、書かれた時期から2010年時点での最新版であるVMM 1.2が対象ではないと思われるので、これを目的に買う場合は注意してほしい。

オブジェクト指向そのものについての説明も最初に触れられているが、全くオブジェクト指向に触れたことがない人がこの説明のみで後半部分を理解するのは難しいだろう。

Verilog2001とオブジェクト指向を理解している読者にとっては非常に有用性の高い一冊だと言える。

SystemVerilog for Designと並んで、SystemVerilogに関して、現時点で最高の一冊だと思う。

SystemVerilogアサーション・ハンドブック

Ben Cohen (著), Ajeetha Kumari (著), Srinivasan Venkataramanan (著), 三橋 明城男 (翻訳), 茂木 幸夫 (翻訳), 明石 貴昭 (翻訳), 朽木 順一 (翻訳), 小笠原 敦 (翻訳)

お勧め度:☆☆(英語版は☆☆☆☆)

SystemVerilogのアサーションは、文法自体は正規表現風で決して難しくはないのだが、いざ使おうとすると、どこで使うべきか迷ったり、思ったようにルールを記述できなかったりでなかなか使いこなしが難しい。本書は、全体の設計フェーズのどこでアサーションを使うべきか、どのように指定するのかを具体的な例を交えて説明しており、とても参考になる。アサーション自体の説明も、間違いやすい点などを丁寧に解説してある。

本書の最大の問題点は日本語訳の質が非常に悪いこと。自動翻訳をそのまま出版しているのではないかと疑うぐらいの質の低さだ。直訳で、文章の意味を取りにくい。日本語化によって表のレイアウトがくずれているのに修正しない。原文に、ちゃんと読んでいれば気づくようなあきらかな間違いがあっても訳注も入れない等、やっつけ仕事であることが明らかだ。SystemVerilogのアサーションで、現在入手可能な日本語の本はこれしかないのに、非常にもったいない。

内容自体は優れているので、よっぽど英語が苦手な人以外には英語版をお勧めする。

SystemC関係

SytemCの入門用に何冊かの本を読んだが、その中でお勧めできるのは下の一冊のみだった。

SystemCによるシステム設計

Thorsten Gr¨otker (著), Grant Martin (著), Stan Liao (著), Stuart Swan (著), 柿本 勝 (翻訳), 長谷川 隆 (翻訳), 河原林 政道 (翻訳) , 丸善 (2003/02)

お勧め度:☆☆☆☆

私もSystemCはまだまだ勉強中なのだが、SystemCに関して、読んだ中で唯一お勧めできるのが本書。SystemCを知らない人の、SystemCで何ができるのか、何を目指しているのかなどの疑問に答えてくれる。ただし、オブジェクト指向とC++の理解が前提知識として必要。 これを読んでSystemCのコンセプトを理解したら、後は、SytemCのディストリビューションに添付されているドキュメントやサンプルコードを読めば、SystemCに関する一通りのことは理解できるのではないだろうか。

検証関係

アサーションベース設計 原書2版

Harry D. Foster (著), David J. Lacey (著), Adam C. Krolnik (著), 東野 輝夫 (翻訳), 岡野 浩三 (翻訳), 中田 明夫 (翻訳)

お勧め度:☆☆☆☆

アサーションの言語面での解説のみならず、HDLでの設計において、アサーションを、設計の中のどのフェーズに適用していくべきかへの指針も解説されている。

SystemVerilogだけではなく、PSL等他の言語の説明もされている。個人的にはSystemVerilogしか使用しないので、これだけに絞られたほうが見やすいのだが。後半はアサーションのデザインパターンとなっており、FIFO等の回路例毎に、どのようなアサーション記述にするといいかの例が豊富にのっている。

いい本だが、残念ながら現在絶版のようだ。WEBで調べた限りでは、中古の値段は元の倍程度とかなり高い。英語版は普通に買える。

Step-by-step Functional Verification with SystemVerilog and OVM

Sasan Iman (Author)

お勧め度:☆☆☆

OVMの解説本。OVMの入門用として購入してみたのだが、入門としては、OVM worldからダウンロードできるcookbookのほうがわかりやすかった。内容としてはお互いに補完しあうような部分も多いので、cookbookを読み終わって余力があれば読むぐらいのスタンスでいいのではないだろうか。