既存設計言語仕様にフォーカスしたVerilog HDLユーザのためのSystemVerilog教科書 ――『SystemVerilog For Design』
既存設計言語仕様にフォーカスしたVerilog HDLユーザのためのSystemVerilog教科書
Stuart Sutherland,Simon Davidmann,Peter Flake 著
Kluwer Academic Publishers 刊
ISBN:1-4020-7530-8
24×16cm
402ページ
130ドル(2004年4月28日現在のKluwer社の価格)
2003年6月(新版第1版)
SystemVerilogは,2002年6月にバージョン3.0の,2003年6月にバージョン3.1の仕様が公開されたものの,対応するツールがなかなか出てきていませんでした.今年(2004年)になって,米国Mentor Graphics社のHDLシミュレータ「ModelSim」,および米国Synopsys社のRTL記述関連の四つのツール,すなわちHDLシミュレータ「VCS」,論理合成ツール「Design Compiler」,スタイル・ガイド・チェッカ「LEDA」,等価性チェッカ「Formality」がSystemVerilogのサポートを開始しました.これにより,わたしたちユーザが実際にSystemVerilogを利用できる機会が増えてきています.ただし,新しい言語を習得するには,良いガイドとなる教材が必要になります.
ここで紹介するのは,SystemVerilogに関する最初の書籍である「SystemVerilog for Design」です.本書は,入門書というよりも,すでにVerilog HDLを使っている設計者向けに書かれています.著者は,Synopsys社のPeter Flake氏とQueen Mary,University of LondonのSimon Davidmann氏,そしてSystemVerilog 3.0/3.1のリファレンス・マニュアルのエディタであるStuart Sutherland氏です.Sutherland氏はVerilog HDLの専門家であり,"PLI Hand Book","Verilog2001:A Guide to the New Features of the Verilog Hardware Description Language"なども出版しています.
タイトルに"for Design"ということばを掲げているように,SystemVerilogに新しく追加された機能を中心に,Verilog-1995やVerilog-2001に対応した「設計(実装)」に関する例題を多く取り上げています.この点はVerilog HDLユーザにとって有用であるといえます.RTL記述では,always_comb,always_latch,always_ff およびunique,priorityによる記述についても詳細な説明があり,非常にわかりやすくまとめてあります.always_comb,always_latch,always_ffは,組み合わせ回路や順序回路を明確に記述するためのもので,unique,priorityはプラグマfull_case,parallel_caseに替わるものです.
また,各機能が論理合成可能かどうかについて,「合成ガイドライン(Synthesis Guidelines)」のコメントが付いています.SystemVerilogでは,上記以外にも,RTL設計(実装)に対して,以下の機能が追加されています.
- コードの記述量を少なくするための機能
- コードの記述ミスを少なくするための機能
- コードの再利用性を向上させるための機能
これらの三つに対して,特に効果が上がるSystemVerilogの機能は,「ポート記述およびポート接続」と「インターフェース」です.本書では,この二つに対して1章ずつを割いて解説しています.
そのほかのモデリングとしては,Verification Guild(http://www.janick.bergeron.com/guild/project.html)で公開しているATMモデルのSystemVerilog版や,動作およびトランザクション・レベルのモデリングについて説明しています.
最後の章では,現在のSystemVerilogまでの歴史をつづっています.最初のハードウェア記述言語であるHiloからVerilog HDL,そしてSUPERLOG,SystemVerilog 3.0,3.1,3.1aへの流れが示されています.また,Davidmann氏,Flake氏,そしてVerilogの最初のバージョンを開発したPhil Moorby氏の若き日の写真も載っています.
SystemVerilogでは,「設計(実装)」に対する機能の強化だけではなく,「検証」についても非常に多くの機能が追加されています.例えば,検証用言語と同等の機能(Vera言語に相当),アサーション(OpenVera Assertionに相当),C言語などとのインターフェースであるDPI(direct programming interface)があります.こうした検証機能について,上記のSutherland氏が現在,"SystemVerilog for Verification"というタイトルの書籍を執筆中だそうです."Writing Testbench"の著者であるJanick Bergeron氏,Tom Fitzpatrick氏,Artirp Salz氏(いずれもSynopsys社)との共著という形で,今年(2004年)6月のDAC(Design Automation Conference)が開催されるころに出版されるようなので,こちらも入手ししだい紹介したいと思います.
宮下晴信
富士ゼロックス(株)