Updated 10/3/08 |
SystemVerilog ErrataSystemVerilog for Verification, Second Edition, ErrataThank you to everyone who has sent me the mistakes they found in my book, SystemVerilog for Verification, first edition. Like a hardware project, the book has "bugs". Both hardware and books should be verified by someone other than the person who created it. Now if I can only figure out how to perform constrained random testing of text... This page will show any functional mistakes in the SECOND EDITION of the book. Code that does not work, explanations that are incorrect, etc. Simple typos and bad English are not included. The apostrophes point left and right in some examples - blame FrameMaker! Remember - if you are the first to find a mistake in a chapter, you get a free, autographed copy. There are 12 chapters, so that is 12 copies. This offer is open only to residents of the USA, as overseas shipping is too high. You must have a legal copy of the book. Chapter 1 Verification GuidelinesNoneChapter 2 Data Types
Chapter 3 Procedural Statements and Routines
Chapter 4 Connecting the Testbench and Design"Sample 4-32 shows a program that is instantiated in a module that is implictly instantiated in the top-level scope. The program can use a relative or absolute reference to the clk signal in the module. You may want to use a macro to hold the hierarchical path so that when the path changes, you only have to change one piece of code." Sample 4.32 Cross-module references with $root `timescale 1ns/1ns parameter TIMEOUT = 1_000_000; module top; bit clk; test t1(.*); endmodule `define TOP $root.top program automatic test; initial begin // Absolute reference $display("clk=%b", $root.top.clk); $display("clk=%b", `TOP.clk); // With macro // Relative reference $display("clk=%b", top.clk); end endprogram Chapter 5 Basic Object Oriented ProgrammingA SystemVerilog handle can only point to objects of one type, so they are called "type-safe." // Construct a new Statistics object dst = src.copy(); Chapter 6 Randomization// test.sv program automatic test; `include "packet.sv" constraint Packet::c_external {length == 1; } ... Chapter 7 Threads and Interprocess CommunicationNoneChapter 8 Advanced Object Oriented Programming and Testbench GuidelinesNoneChapter 9 Functional CoveragePage 321, Section 9.7.2, final line:other values, 1 or 3, are not seen. Chapter 10 Advanced InterfacesNoneChapter 11 A Complete SystemVerilog TestbenchNoneChapter 12 Interfacing with C
References
CreditsThanks to Tony Hsu, Brian Jensen, Eric Ohana, Dan Shupe, and Randy Wetzel for their help.Home SystemVerilog OpenVera PLI Verilog Verification PMC Emacs Bicycling Personal Viewlogic |