"The instructor was clearly an expert, and extremely good at presenting the material." |
 |
Welcome
Sutherland HDL provides expert training workshops on Verilog and SystemVerilog.
|
|
|
Sutherland HDL training workshops help engineers become true Verilog and SystemVerilog wizards! Workshops are developed and presented by engineering experts with many years of experience in design and verification. Sutherland HDL has trained thousands of engineers throughout the United States, and in Canada, England, Germany, Japan, Malaysia, and Hong Kong.
Sutherland HDL's expert training workshops are now available online!
Sutherland HDL's eTutored live online workshops are instructor-led workshops that provide all the same learning benefits as classroom based training, but with greater flexibility to mix training and work responsibilities.
- eTutored live workshops can be scheduled for a time that best meets your company's training needs, with a low minimum class size of just four engineers (request training).
- Sutherland HDL also holds perioding public eTutored live workshops (check current schedule).
More...
|
 |
Training Workshops
|
 |
|
Stuart Sutherland, founder of Sutherland HDL, is a recognized Verilog and SystemVerilog expert, with more than 23 years of experience with Verilog and SystemVerilog. He is an active member of the IEEE Verilog and SystemVerilog standards group. He is also been a technical editor for every version of the IEEE Verilog and SystemVerilog Language Reference Manuals since the standards began. Mr. Sutherland has authored several popular books and conference papers on Verilog and SystemVerilog.
Stuart Sutherland holds a Bachelors Degree in Computer Science with an emphasis in Electronic Engineering Technology and a Masters Degree in Education with an emphasis on eLearning online course development.
|
Verilog and SystemVerilog Quiz and Tips
This example illustrates a coding error that is easy to make when creating a SystemVerilog Object-Oriented testbench. Only the relevent portions of code are shown, not the full test context. The test program declares handles for a "Generator" object and a "Scoreboard" object, and then passes those handles to a "build_env" function to actually construct those objects and construct a mailbox so that the generator can communicate with the scoreboard. The problem with this code, however, is that after the "build_env" function returns, the generator and scoreboard handles are still null -- the test program (the "calling scope") does not see the objects that the function created.
program test;
Generator gen; // handle for stimulus generator
Scoreboard sb; // handle for response scoreboard
initial begin
build_env ( .g(gen), .s(sb) ); // pass handles to environment builder
... // gen and sb handles should now reference actual objects, but are null
...
end
function void build_env(Generator g, Scoreboard s);
mailbox mbx;
mbx = new; // construct a mailbox object and store handle in mbx
g = new(mbx); // construct a Generator object and store handle in g
s = new(mbx); // construct a Scoreboard object and store handle in s
return;
endfunction
endprogram
Why does it appear that the Generator and Scoreboard objects did not get created?
See the answer
|
|