Verification Martial Arts: A Verification Methodology Blog

Archive for May, 2008

How to contribute to VMM source

Posted by Janick Bergeron on 28th May 2008

Now that you can have full access to the source code for the VMM standard library and the VMM application packages, you are free to modify them at your leisure. Whether or not you should modify the VMM code and what kind of modifications you can safely make will be the object of another post. But let’s assume, for the sake of argument, that you have made a modification that you think should be folded in the VMM source code release. How should you go about it?

  1. Keep an unmodified reference copy of the VMM source code distribution. Let’s assume it is located in a directory whose path is specified in the $VMM_ORIG environment variable.
  2. Make your modifications in a coding style that is consistent with the coding style used in the original code.
  3. Write one or more self-checking testcases (using vmm_log::report() to declare pass or fail) that demonstrate that every aspects of your modifications are working. If your modification fixes a bug (what? a bug?), your testcase must fail in the original version but pass in your modified version.
  4. Write a makefile to run your testcases. The default target “all” should run all of the testcases.
  5. Write the user reference manual page for every user-accessible class method or data member your modification creates or modifies using this template.
  6. Update the file $VMM_HOME/sv/PATCHES.txt with a one-line description of your patch, including a version number. If the files does not exist, create it.
  7. Create a patch file describing your modifications using the following commands:

    % cd $VMM_HOME
    % diff -Naur sv $VMM_ORIG/sv >patchfile
  8. Send me a tarball containing the patchfile, the testcases and the documentation. Be sure to let me know the version number(s) in the original release you started from.

Following this process will not garantee that your modifications will make it into the VMM code base, but it will greatly increase the chances that it might. I will be the final arbiter of which contributions will be included in the VMM code base and when. My decision will be based on the backward compatibility of the modifications, their impact on on-going or future development activities and their potential usefulness to others. Should your modifications be included, proper credit will be given.

Posted in Support, VMM | No Comments »

I guess it was only a matter of time.

Posted by Janick Bergeron on 22nd May 2008

I have now joined the millions of other bloggers out there, adding to a blogosphere of politicians and their opponents, technical enthousiasts, rabid fans, angsty teenagers and the just plain weird.

As many of you probably already know, I am the moderator of the Verification Guild, a website I created in 2003 to replace the electronic newsletter I was editing since 2000. So what is the difference between Janick-the-blogger and Janick-the-moderator?

The Verification Guild is a personal, part-time endeavor that is not owned nor controlled (but supported) by my employer. As the moderator, I simply wish to maintain the technical relevance of its content, not use it as my personal soapbox. I always prefer the contribution of others to my own. I never censor a contribution from a competitor and, thanks to an amazing group of contributors, I do not remember the last time I had to delete a post1. It appears my main task as a moderator has been to not approve weblinks for pills with very dubious claims.

On the other hand, this blog is part of my day job to promote and advance functional verification methodology. Still not a soapbox (I don’t intent to write editorials) but more like a blackboard. I intent for this blog to be highly technical, for each post to be a small tutorial on an aspect of functional verification or one of the languages used in executing a verification project.

For example, as one of the architects of VMM and its application packages, I will write about specific aspects of its implementation, why it was designed a certain way or how it was meant to be used. I will also write about SystemVerilog constructs that are useful for implementing testbenches. I will answer questions I get frequently asked, either through the regular VMM support channels, by email or while visiting customers.

I also welcome your comments and suggestions. If you wish to leave a comment about one of my posts, simply click on the “comments” link at the bottom. Or write to me. Or drop by the Synopsys booth at the DAC Conference in Anaheim June 9-12 and look for the tall bald guy who isn’t wearing a suit!

1 How ironic: A few days after writing this, I had to delete the first spam post!

Posted in Announcements, VMM | 4 Comments »