main :2020/9/15(10:14)
SystemVerilog入門―設計・仕様・検証のためのハードウェア記述言語―
篠塚 一也著
https://www.kyoritsu-pub.co.jp/bookdetail/9784320124639

はじめにSystemVerilog の最新仕様は，2018 年 2 月 21 日に規格 IEEE Std 1800–2017 [1]（以降，LRMと略称）として公開され，実質的に Verilog HDL（以降 Verilog と略称）時代に終末を告げ，Sys-temVerilog の時代が到来したと言えます。SystemVerilog は Verilog の持つ曖昧性を除去するとともに Verilog が備えていない多くの機能を追加し，設計，および検証分野での生産性向上と品質向上をもたらします。特に，SystemVerilog が備えるクラスは，検証技術の再利用性を高めるためのデータタイプとして重要な役割を果たします。

LRM は多くの研究者，技術者による長年の努力の賜物として完成された 1300 ページにも及ぶ大作です。一方，LRM は標準規格であるがゆえに，ハードウェアを設計・検証する技術者の誰もが一度は目を通さなければならない言語仕様書です。しかし，その必要性にもかかわらず，LRM は容易に理解できる英文で記述されているとは決して言えません。恐らく，言語としての厳密性が記述の厳密性に繋がり，英文としては難解な解説書となっていると思えます。概して，難解な記述は理解し難いだけでなく，読者による解釈の差異が生じる可能性が潜んでいるため，結果として，多くの混乱を招きます。SystemVerilog は，機能的に複雑であるだけでなく，言語仕様書としても極めて複雑です。この両者の複雑さが，日本国内における SystemVerilog の実践への適用を妨げている要因の一つであるとも考えられます。本書は，このような状況を鑑みて，誰もが LRM を誤解なく解釈する事ができるように基礎知識を提供します。すなわち，本書は，SystemVerilog の根幹を成す基本機能，および難解と考えられる機能を重点的，かつ徹底的に解説し，SystemVerilog を実践に適用する際に必要とされる準備を完全に確立する事を目的としています。
すでに述べたように，SystemVerilog には多くの機能が追加されました。とりわけ，SystemVerilogの豊富なデータタイプは検証作業の実践面での改革を余儀なくさせます。例えば，従来のモジュールベースのテストベンチではなく，SystemVerilog クラスを使用した検証環境構築法は生産性向上と再利用可能性を促進し，検証技術をライブラリとして蓄積する事を可能にします。その意味においては，SystemVerilog では従来と異なる発想が求められる事になります。

Verilog から SystemVerilog への移行，あるいは設計および検証分野の主言語として SystemVerilog を採用する事は時代の趨勢であると受け止めなければなりません。したがって，ハードウェア設計検証技術者にとっては，SystemVerilog に関する実践的な知識を習得する事は，現在では必然的な義務となっています。しかし，どのような良書でも全ての人にとって同様に良書であるとは限りません。それは，人それぞれの思考法，経験，知識，必要性等における差異が，理解度における差として現れるからです。とりわけ，SystemVerilog は欧米人により考え出された言語であり，そmain :2020/9/15(10:14)
SystemVerilog入門―設計・仕様・検証のためのハードウェア記述言語―
篠塚 一也著
https://www.kyoritsu-pub.co.jp/bookdetail/9784320124639
はじめにivの概念は多くの点において日本人の思考法とは必ずしも一致しません。例えば，LRM で記述しているインターフェースクラスの概念がそうです。LRM では冗長な解説でインターフェースクラスの概念を解説していますが，日本人的な考えでは，インターフェースクラスは「仕様の標準化」の一言で説明が付きます。むしろ，その方が日本人にとっては分かりやすい事は明らかです。本書は，日本人の思考法に適するように機能の解説を進めています。
その意味において，本書は単なる SystemVerilog の解説書ではなく，言語の持つ意味を基礎から解説して，実践で使用するための知識を提供する事を主眼にしています。本書は，LRM に書かれている検証機能（ファンクショナルカバレッジ，アサーション）を除く重要な章をほとんど含んでいるため，決して入門書とは言えないかも知れません。しかし，記述スタイルは初心者を対象にしているので，初心者が本書の内容を理解する事は困難ではないと思います。
本書は，LRM の構成を尊重するように構成されているので，本書を読みながら LRM を参照する事は比較的容易です。本書の内容は，LRM のエッセンスを簡潔明瞭に解説した資料ではありますが，さらに詳細な知識を得るためには LRM を参照するのが最も望ましい事です。
本書は，概要を含めて 24 章から構成され，SystemVerilog 言語全般の解説をカバーしています。
ただし，前述の検証機能に関しては概要的な解説になっています。本書は，Verilog との差異，設計および検証作業で必要となる SystemVerilog の基本的な機能を中心にして解説を進め，ランダムスティミュラスの生成機能を解説しています。第 21 章では，モジュール定義の仕方とテストの仕方を解説し，代表的な回路を例にとり SystemVerilog によるモデリング例を紹介しています。これらの例には，組み合わせ回路，シーケンシャル回路，FSM 等が含まれているので，モデリングに関するSystemVerilog 言語機能を使用する知識を再確認する事ができます。しかも，適切な SystemVerilogの機能を使用してそれらのモデリングを検証しているので，検証例は SystemVerilog の機能を例示する最適な素材となっています。要約すると，本書の読了後には SystemVerilog の基礎的な知識を完全に習得できています。
本書は SystemVerilog の入門書である性格から，検証機能の詳細，および最近知られ始めている検証手法 UVM の詳しい解説を省略しています。UVM は，SystemVerilog が備えるほとんど全ての機能を利用して構築された優れた検証パッケージです。したがって，UVM を理解する事はSystemVerilog に関する理解を深める事に繋がります。詳細を割愛した UVM に関しては，巻末に紹介した文献が詳しい解説を含んでいます。
本書は多くの章から構成されてはいますが，第 5 章までの内容を順に読んだ後は，他の章を選択して学習する事ができます。目的と必要性に応じて主題を選択して効果的に学習を進めて下さい。
最後に，本書は SystemVerilog が備える機能を厳密に解説した国内には類のない書物です。それゆえ，SystemVerilog シンタックスの解説，用語の解説，説明図，シミュレーション結果の表現等に関して本書出版社には細かな注文に対応して頂きました。とくに，本書出版に多大な協力をいただいた共立出版の菅沼正裕氏に感謝いたします。

2020 年 7 月
アートグラフィックス
篠塚一也