<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>Michael Stellfox Blog</title><link>http://www.cadence.com/Community/search/SearchResults.aspx?&amp;u=2787&amp;un=mstellfox&amp;Scope=Blogs</link><description>Search results by user ID 2787</description><dc:language>en-US</dc:language><generator>CommunityServer 2007.1 (Build: 20917.1142)</generator><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/cadence/community/blogs/2787" /><feedburner:info uri="cadence/community/blogs/2787" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><itunes:explicit>no</itunes:explicit><itunes:subtitle>Search results by user ID 2787</itunes:subtitle><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2Fcadence%2Fcommunity%2Fblogs%2F2787" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Fcadence%2Fcommunity%2Fblogs%2F2787" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.feedburner.com%2Fcadence%2Fcommunity%2Fblogs%2F2787" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/cadence/community/blogs/2787" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Fcadence%2Fcommunity%2Fblogs%2F2787" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Fcadence%2Fcommunity%2Fblogs%2F2787" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Fcadence%2Fcommunity%2Fblogs%2F2787" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><item><title>The Future of OVM, VMM, and UVM</title><link>http://feedproxy.google.com/~r/cadence/community/blogs/2787/~3/F0TfwDJKCeY/the-future-of-ovm-vmm-and-uvm.aspx</link><pubDate>Mon, 24 May 2010 18:30:00 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:62407</guid><dc:creator>mstellfox</dc:creator><description>&lt;p&gt;In my last &lt;a href="http://www.cadence.com/Community/blogs/fv/archive/2010/05/17/uvm-methodology-comes-first-circle.aspx?postID=62169" target="_blank" title="UVM - 10 Years in the Making"&gt;blog&lt;/a&gt;, I took a look back at the history of how we got to the first delivery of UVM. Now, let&amp;#39;s take a look forward.&amp;nbsp; Over the past week since UVM was released, and Cadence opened the &lt;a href="http://uvmworld.org/" target="_blank" title="UVMWorld"&gt;UVMWorld&lt;/a&gt; portal to support the new UVM Community and ecosystem, I have seen a number of customers asking questions about when to move to UVM as well as the future of OVM and VMM.&amp;nbsp;&amp;nbsp; Since my team has been developing the OVM over the past few years, as well as being one of the main contributors to the Accellera UVM development effort, I want to make the Cadence position on this very clear.&lt;/p&gt;&lt;p&gt;For the question about when to move to UVM, of course it depends on where you are in your project, but for OVM Users I recommend you move to UVM as soon as you can.&amp;nbsp; There should not be any significant risk in moving, since the UVM is based on the OVM code base with a few small enhancements.&amp;nbsp; I cut &amp;amp; pasted a section of the &lt;a href="http://www.accellera.org/activities/vip" target="_blank" title="UVM-1.0EA Release"&gt;UVM-1.0EA&lt;/a&gt; release notes below which clearly states this as well as the areas where there are some small backward incompatibilities and new code in the UVM library.&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;i&gt;The UVM is built on the same code base as OVM-2.1.1, with the following new feature enhancements which are described in greater detail in the &amp;quot;New Features&amp;quot; section below and any API changes described in the &amp;quot;API Changes&amp;quot; section.&lt;/i&gt;&amp;nbsp;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;div&gt;&lt;i&gt;All ovm_* symbols converted to uvm_*.&lt;/i&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&lt;i&gt;Enhancements to the OVM callback facility, including a new message catching facility. These enhancements introduce some minor backward incompatibilities to the OVM callback facility.&lt;/i&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&lt;i&gt;Enhancements to the OVM objection mechanism. These enhancements introduce some minor backward incompatibilities to the OVM objection mechanism.&lt;/i&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt;&lt;i&gt;&lt;/i&gt;&lt;p&gt;As you can see, unless you are using the relatively new callback or objection mechanism OVM features which were introduced in OVM 2.1, the only changes to the OVM library are the renaming of the symbols from ovm_* to uvm_*.&amp;nbsp; You should also be aware that any OVM features which were already deprecated have been removed (as documented in the OVM releases in the file named &amp;quot;deprecated.txt&amp;quot;).&amp;nbsp; Cadence has already migrated several customer environments from OVM to UVM leveraging the script which is included in the UVM release which automates the ovm_* to uvm_* changes.&amp;nbsp; &lt;/p&gt;&lt;p&gt;In general, we have found the migration to be pretty painless, and it can typically be achieved in a couple of hours with no issues.&amp;nbsp; If you have been using callbacks or the objection mechanism, there are some small manual code changes required but these are simple changes.&amp;nbsp; If you are using the Cadence Incisive Simulator, versions IUS92s18/INCISIV92s15&amp;nbsp;run UVM today and if you are using Cadence OVM VIP, we plan to have UVM VIP Early Adopter support by July, with the 10.2 production release to follow in Q4. &lt;/p&gt;&lt;p&gt;For VMM users, the move to the UVM will be a bit more challenging.&amp;nbsp; We have had a lot of experience over the past couple of years helping VMM users move to the OVM by leveraging a VMM-OVM interoperability library we created and later provided to the Accellera VIP TSC.&amp;nbsp; The TSC extended this interoperability library and created a Best Practices Standard last year, and Cadence just recently updated the interoperability library to support VMM-UVM interoperability and provided this back to Accellera.&amp;nbsp; This should make it easier for VMM users to consolidate their legacy environments into new UVM environments so they too can gain the productivity advantages of the UVM ecosystem.&lt;/p&gt;&lt;p&gt;The remaining question that customers have been asking is -- &amp;quot;does this mean that OVM and VMM are dead?&amp;quot; &amp;nbsp;I will leave it to Synopsys to answer the question regarding VMM.&amp;nbsp; OVM is certainly not dead since it is the basis of UVM, and as I describe above, there is a straightforward process for OVM users to easily move to the UVM.&amp;nbsp; Cadence will absolutely continue to support customers using the OVM, but since the standard methodology will be based on UVM, moving forward you should expect to see Cadence continue its leadership in methodology innovation and support on top of the UVM.&lt;/p&gt;&lt;p&gt;Mike Stellfox&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/cadence/community/blogs/2787/~4/F0TfwDJKCeY" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.cadence.com/Community/blogs/fv/archive/2010/05/24/the-future-of-ovm-vmm-and-uvm.aspx</feedburner:origLink></item><item><title>UVM - 10 Years in the Making ...</title><link>http://feedproxy.google.com/~r/cadence/community/blogs/2787/~3/UC5LZ9FrABU/uvm-methodology-comes-first-circle.aspx</link><pubDate>Tue, 18 May 2010 03:22:00 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:62169</guid><dc:creator>mstellfox</dc:creator><description>&lt;p&gt;In case you the missed the news today, the Accellera VIP TSC released the first version of the&amp;nbsp;Universal Verification Methodology (UVM).&amp;nbsp; This represents a significant achievement on the part of the TSC as it is the first &lt;i&gt;standard&lt;/i&gt; SystemVerilog Base-Class Library and Methodology.&amp;nbsp;&amp;nbsp;While there has been a lot of hard work by many members of the TSC since December of last year when the OVM was &lt;a href="http://www.accellera.org/activities/vip/VIP-TC_standard_effort_update_Jan_2010.pdf" target="_blank" title="OVM Chosen for UVM"&gt;chosen&lt;/a&gt; to be the basis of the UVM, for some of us, the road to get here was actually much longer -&amp;nbsp;nearly 10 years in the making.&amp;nbsp; Don&amp;#39;t let the &amp;quot;Early Adopter (EA)&amp;quot; tag on this first release of UVM give you the wrong impression, since it is based on testbench best practices that have been used by hundreds of verification engineers for nearly a decade.&lt;/p&gt;&lt;p&gt;It all started back in 2000 at a small start-up named Verisity.&amp;nbsp; At that time, Verisity was&amp;nbsp;having success selling Specman, for building constrained-random, coverage-driven testbenches.&amp;nbsp; However, there was a significant challenge to ramp up new engineers on how to build these powerful, automated verification environments, and there were a lot less verification engineers than today (still not enough in the industry but that is another story).&amp;nbsp; Moshe Gavrielov, as&amp;nbsp;the CEO, decided to form a team&amp;nbsp;called &amp;quot;Specware&amp;quot; who created the first set of verification methodology best practices&amp;nbsp;in the form of&amp;nbsp;software verification patterns in the &amp;quot;Verification Advisor&amp;quot;.&amp;nbsp;&amp;nbsp;This was a great start for helping proliferate verification knowledge transfer, but it was not enough.&amp;nbsp; Verisity had a lot of very savvy Verification AEs and customers, and every AE and customer was very creative in developing their own style of testbench - so creative, in fact, that it was practically impossible for anyone other than the original&amp;nbsp;developer to comprehend the code that had been written, which made testbenches difficult to reuse and a lot of effort to write and&amp;nbsp;maintain.&amp;nbsp; &lt;/p&gt;&lt;p&gt;This lead to Yoav Hollander, the founder of Verisity, working with the Specware team, AEs, and some expert customers and consultants to take things a step further by building the first commercial methodology for constructing reusable verification components, known as the e Reuse Methodology (eRM).&amp;nbsp; (I was fortunate to be one of the AEs involved in this effort.)&amp;nbsp; The eRM was built by generalizing all the best practices that had been accumulated by that time.&amp;nbsp; It included most of the key methodology concepts you see today in UVM including:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;div&gt;Interface verification components as the base reusable building blocks &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;Env/Agent architecture with separate BFM/Driver from Sequence_driver/Sequencer and monitor&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;Common configuration options like active/passive agents, signal port maps, etc...&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;Sequences for building constrained-random, reusable stimulus and having a common test-writer interface&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;Debug messaging and logging&amp;nbsp;and control of messages&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Here is an &amp;quot;old-school&amp;quot; slide from when we introduced the original vision of eRM:&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.cadence.com:443/Community/CSSharedFiles/blogs/fv/eRM%20Vision.jpg"&gt;&lt;img src="https://www.cadence.com:443/Community/CSSharedFiles/blogs/fv/eRM%20Vision.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Over the next several years, the eRM was adopted by hundreds of customers, and Verisity&amp;nbsp;used the eRM to build the first commercial e Verification Components (eVCs) for standard protocols like PCI, AHB, and Ethernet.&amp;nbsp; Many additions were made to eRM including a register package (vr_ad), module to system reuse, and&amp;nbsp;HW/SW co-verification, and customers across the world continue to adopt and&amp;nbsp;apply eRM on projects today.&amp;nbsp; &lt;/p&gt;&lt;p&gt;When Cadence acquired Verisity in 2005, SystemVerilog was starting to gain attention as a second standard verification language, so several of the original eRM experts decided to adapt the eRM concepts to build a SystemVerilog verification methodology, which was released as the URM in 2006.&amp;nbsp; The URM was&amp;nbsp;a single verification methodology for both SystemVerilog and e, including support for multi-language environments.&amp;nbsp; At the time Mentor had developed the AVM base-class library for SystemVerilog, and since both Cadence and Mentor were making their libraries available via open-source, and they shared a common communications approach based on the OSCI TLM standard, the two companies decided to unify AVM and URM to create the OVM, which was released&amp;nbsp;open-source on &lt;a href="http://ovmworld.org/" target="_blank" title="OVMWorld"&gt;OVMWorld&lt;/a&gt; in January of 2008.&amp;nbsp; The OVM&amp;nbsp;has been a&amp;nbsp;very successful joint development effort and Cadence not only managed to bring to it all the mature, proven concepts of eRM, we also contributed a number of SystemVerilog specific features including:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;div&gt;The factory &amp;amp; configuration mechanism&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;Field automation, message macros, &amp;amp; objection mechansim&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;A robust register package&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;Multi-language interoperability with OVM e verification components and OVM SystemC models&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;OVM has been a huge success in the market, which eventually lead the Accellera VIP TSC to choose it as the basis of&amp;nbsp; the UVM,&amp;nbsp; It has been a long time in the making&amp;nbsp;but the core methodology concepts from eRM to URM to OVM to UVM have remained consistent with small refinements along the way.&amp;nbsp; So, as we celebrate the &amp;quot;birth&amp;quot; of UVM today, we also celebrate the 10 year anniversary of the of eRM - a bit corny but appropriate...&lt;/p&gt;&lt;p&gt;Mike&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/cadence/community/blogs/2787/~4/UC5LZ9FrABU" height="1" width="1"/&gt;</description><media:content url="http://feedproxy.google.com/~r/cadence/community/blogs/2787/~5/nBh7w53oEWo/VIP-TC_standard_effort_update_Jan_2010.pdf" fileSize="75043" type="application/pdf" /><itunes:explicit>no</itunes:explicit><itunes:subtitle> In case you the missed the news today, the Accellera VIP TSC released the first version of the&amp;nbsp;Universal Verification Methodology (UVM).&amp;nbsp; This represents a significant achievement on the part of the TSC as it is the first standard SystemVerilog</itunes:subtitle><itunes:summary> In case you the missed the news today, the Accellera VIP TSC released the first version of the&amp;nbsp;Universal Verification Methodology (UVM).&amp;nbsp; This represents a significant achievement on the part of the TSC as it is the first standard SystemVerilog Base-Class Library and Methodology.&amp;nbsp;&amp;nbsp;While there has been a lot of hard work by many members of the TSC since December of last year when the OVM was chosen to be the basis of the UVM, for some of us, the road to get here was actually much longer -&amp;nbsp;nearly 10 years in the making.&amp;nbsp; Don&amp;#39;t let the &amp;quot;Early Adopter (EA)&amp;quot; tag on this first release of UVM give you the wrong impression, since it is based on testbench best practices that have been used by hundreds of verification engineers for nearly a decade. It all started back in 2000 at a small start-up named Verisity.&amp;nbsp; At that time, Verisity was&amp;nbsp;having success selling Specman, for building constrained-random, coverage-driven testbenches.&amp;nbsp; However, there was a significant challenge to ramp up new engineers on how to build these powerful, automated verification environments, and there were a lot less verification engineers than today (still not enough in the industry but that is another story).&amp;nbsp; Moshe Gavrielov, as&amp;nbsp;the CEO, decided to form a team&amp;nbsp;called &amp;quot;Specware&amp;quot; who created the first set of verification methodology best practices&amp;nbsp;in the form of&amp;nbsp;software verification patterns in the &amp;quot;Verification Advisor&amp;quot;.&amp;nbsp;&amp;nbsp;This was a great start for helping proliferate verification knowledge transfer, but it was not enough.&amp;nbsp; Verisity had a lot of very savvy Verification AEs and customers, and every AE and customer was very creative in developing their own style of testbench - so creative, in fact, that it was practically impossible for anyone other than the original&amp;nbsp;developer to comprehend the code that had been written, which made testbenches difficult to reuse and a lot of effort to write and&amp;nbsp;maintain.&amp;nbsp; This lead to Yoav Hollander, the founder of Verisity, working with the Specware team, AEs, and some expert customers and consultants to take things a step further by building the first commercial methodology for constructing reusable verification components, known as the e Reuse Methodology (eRM).&amp;nbsp; (I was fortunate to be one of the AEs involved in this effort.)&amp;nbsp; The eRM was built by generalizing all the best practices that had been accumulated by that time.&amp;nbsp; It included most of the key methodology concepts you see today in UVM including:Interface verification components as the base reusable building blocks Env/Agent architecture with separate BFM/Driver from Sequence_driver/Sequencer and monitorCommon configuration options like active/passive agents, signal port maps, etc...Sequences for building constrained-random, reusable stimulus and having a common test-writer interfaceDebug messaging and logging&amp;nbsp;and control of messages Here is an &amp;quot;old-school&amp;quot; slide from when we introduced the original vision of eRM: &amp;nbsp; Over the next several years, the eRM was adopted by hundreds of customers, and Verisity&amp;nbsp;used the eRM to build the first commercial e Verification Components (eVCs) for standard protocols like PCI, AHB, and Ethernet.&amp;nbsp; Many additions were made to eRM including a register package (vr_ad), module to system reuse, and&amp;nbsp;HW/SW co-verification, and customers across the world continue to adopt and&amp;nbsp;apply eRM on projects today.&amp;nbsp; When Cadence acquired Verisity in 2005, SystemVerilog was starting to gain attention as a second standard verification language, so several of the original eRM experts decided to adapt the eRM concepts to build a SystemVerilog verification methodology, which was released as the URM in 2006.&amp;nbsp; The URM was&amp;nbsp;a single verification methodology for both SystemVerilog and e, including support for multi-language environments.&amp;nbsp; At the time Mentor h</itunes:summary><feedburner:origLink>http://www.cadence.com/Community/blogs/fv/archive/2010/05/17/uvm-methodology-comes-first-circle.aspx</feedburner:origLink><enclosure url="http://feedproxy.google.com/~r/cadence/community/blogs/2787/~5/nBh7w53oEWo/VIP-TC_standard_effort_update_Jan_2010.pdf" length="75043" type="application/pdf" /><feedburner:origEnclosureLink>http://www.accellera.org/activities/vip/VIP-TC_standard_effort_update_Jan_2010.pdf</feedburner:origEnclosureLink></item><item><title>Re: Verilog, System Verilog and SystemC</title><link>http://feedproxy.google.com/~r/cadence/community/blogs/2787/~3/qK57jGyOGl8/20677.aspx</link><pubDate>Thu, 03 Sep 2009 13:03:58 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:20677</guid><dc:creator>mstellfox</dc:creator><description>&lt;p&gt;What do&amp;nbsp; you mean by testing using Verilog? What differentiate the test and verify?&lt;/p&gt;&lt;p&gt;In Verilog, you can write procedural code to define tests to stimulate and check your design.&amp;nbsp; This is a manual process since you have to think of each test, and then write the stimulus and check the expected behavior.&amp;nbsp; This is a way to &amp;quot;verify&amp;quot; the design, but it is a &amp;quot;test-driven&amp;quot; manual approach, and not very efficient or effective. &amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;if i use System Verilog for RTL design, what is the disadvantage?&amp;nbsp; &lt;/p&gt;&lt;p&gt;You need to make sure that all the tools you use support the SystemVerilog constructs you intend to use.&amp;nbsp; This is the only disadvantage. &lt;/p&gt;&lt;p&gt;What is the thing Verilog can do while System Verilog cant?&amp;nbsp; &lt;/p&gt;&lt;p&gt;SystemVerilog is a superset of Verilog. &lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/cadence/community/blogs/2787/~4/qK57jGyOGl8" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.cadence.com/Community/forums/p/13313/20677.aspx#20677</feedburner:origLink></item><item><title>Re: Verilog, System Verilog and SystemC</title><link>http://feedproxy.google.com/~r/cadence/community/blogs/2787/~3/mOx7tXiDJrI/20654.aspx</link><pubDate>Wed, 02 Sep 2009 18:55:24 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:20654</guid><dc:creator>mstellfox</dc:creator><description>&lt;p&gt;&amp;nbsp;Hi Jasonkee111,&lt;/p&gt;&lt;p&gt;Good questions.&amp;nbsp; As you have discovered there are many languages available for design and verification with various advantages/disadvantages.&amp;nbsp; I will try to give you some recommendations based on my experience working with many customers.&lt;/p&gt;&lt;p&gt;For RTL design, Verilog is still the main language being used today (alongside VHDL).&amp;nbsp; SystemVerilog offers some nice new capabilities to Verilog RTL and these new design constructs are incremental and fairly easy for a Verilog RTL designer to understand.&amp;nbsp; These features are mainly &amp;quot;convenience&amp;quot; syntax enhancements but do very little to raise the level of abstraction beyond the register transfer level.&amp;nbsp; If you are doing directed testing, you can use Verilog to write a basic testbench and directed tests for your design.&amp;nbsp; However, for verification most people are moving to a more automated approach to verification applying Coverage Driven and Metric Driven methodology, where you define your verification goals using functional coverage, leverage constrained-random stimulus generation to create the tests automatically, and define your checks independent of your tests.&amp;nbsp; The two best languages being used today for this type of advanced verification are e and SystemVerilog, where a lot of users find the e language to be easier and more efficient for building this type of testbench.&amp;nbsp; SystemVerilog can also be a good choice here, but you should keep in mind that this is a completely separate part of the language from the SystemVerilog constructs you use for design.&amp;nbsp; SystemC provides a class library which extends C++ and defines a common way to write Transaction Level Models (TLM) which are at a much higher abstraction level compared to Verilog/SystemVerilog RTL models.&amp;nbsp; SystemC has traditionally been used for creating models architectural exploration and for providing an early model of the hardware design for software development.&amp;nbsp; Cadence is now offering a synthesis tool, C-to-Silicon, which can be used to synthesize the SystemC TLM.&amp;nbsp; This enables capturing the design at a much higher level of abstraction, while still being able to use the same model for architectural analysis and software development.&amp;nbsp; As part of this offering, Cadence is building a complete methodology for enabling both design and verification to start at the TLM level.&amp;nbsp; For the verification at the TLM level, we are leveraging the same automated Metric driven approach that people are applying on RTL designs today, where e is a more natural choice for the verification language since SystemVerilog was built primarily for Verilog/RTL verification.&amp;nbsp; If you decide to use e or SystemVerilog for verification, you should probably leverage the Open Verification Methodology (OVM) which provides class libraries, utilities, and methodology guidelines for making it easier to write SystemVerilog or e testbenches.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Hopefully that clears up some of your questions.&lt;/p&gt;&lt;p&gt;Regards,&lt;br /&gt;Mike&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/cadence/community/blogs/2787/~4/mOx7tXiDJrI" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.cadence.com/Community/forums/p/13313/20654.aspx#20654</feedburner:origLink></item><item><title>RE: regarding e ports</title><link>http://feedproxy.google.com/~r/cadence/community/blogs/2787/~3/DCr4JwzTVec/16883.aspx</link><pubDate>Fri, 17 Apr 2009 00:00:09 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:16883</guid><dc:creator>mstellfox</dc:creator><description>Hi Krishna,&lt;br /&gt;&lt;br /&gt;I am pretty sure simple ports existed in Specman 4.3.1.&amp;nbsp; You might be setting the record for using the oldest version of Specman since 4.3.1 is about 6 years old.&amp;nbsp; Is there any reason why you can&amp;rsquo;t upgrade to the latest version, 8.2?&lt;br /&gt;&lt;br /&gt;Mike&lt;img src="http://feeds.feedburner.com/~r/cadence/community/blogs/2787/~4/DCr4JwzTVec" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.cadence.com/Community/forums/p/12258/16883.aspx#16883</feedburner:origLink></item><item><title>The OVM extended to support e and SystemC </title><link>http://feedproxy.google.com/~r/cadence/community/blogs/2787/~3/WJUkX9iw0ec/15194.aspx</link><pubDate>Wed, 25 Feb 2009 17:25:21 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:15194</guid><dc:creator>mstellfox</dc:creator><description>&lt;span style="font-size:10pt;font-family:Arial;"&gt;In case you missed the press release, the Open Verification Methodology (OVM) has been updated to support e as well as SystemC:&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;a href="http://www.cadence.com/cadence/newsroom/press_releases/Pages/pr.aspx?xml=022309_extended_ovm"&gt;&lt;font color="#800080"&gt;http://www.cadence.com/cadence/newsroom/press_releases/Pages/pr.aspx?xml=022309_extended_ovm&lt;/font&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&amp;nbsp;&lt;/span&gt; &lt;p style="margin:0in 0in 0pt;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;The first implementation of OVM was for SystemVerilog back in 2007. &lt;span&gt;&amp;nbsp;&lt;/span&gt;This donation from Cadence extends it to both e and SystemC.&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0in 0in 0pt;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0in 0in 0pt;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&lt;span&gt;&lt;/span&gt;For eRM users, OVM e is effectively the next version of eRM with some nice new enhancements, as well as extensions to align it with OVM SystemVerilog to better enable multi-language verification. &lt;span&gt;&amp;nbsp;&lt;/span&gt;Since the OVM SystemVerilog methodology is heavily based on the eRM, the OVM e updates are fully backward compatible with eRM.&amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0in 0in 0pt;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;Many&amp;nbsp;companies are moving to SystemC for architectural&amp;nbsp;exploration and as a way to provide an early virtual prototype&amp;nbsp;for software development, as well as starting to design at the TLM level.&amp;nbsp; The initial focus of OVM SystemC is to enable better consistency and connectivity between SystemC models or basic testbenches with&amp;nbsp;Coverage-driven OVM SystemVerilog or e testbenches.&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;You can download the open-source OVM Multi-language kit from OVM World in the contributions area at:&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&lt;a href="http://ovmworld.org/contributions.php"&gt;&lt;font color="#800080"&gt;http://ovmworld.org/contributions.php&lt;/font&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;The release includes libraries, examples, and the OVM Multi-language User Guide.&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;Mike Stellfox&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&lt;/span&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/cadence/community/blogs/2787/~4/WJUkX9iw0ec" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.cadence.com/Community/forums/p/11747/15194.aspx#15194</feedburner:origLink></item><item><title>&amp;quot;...Yes, Virginia there is a Specman&amp;quot;</title><link>http://feedproxy.google.com/~r/cadence/community/blogs/2787/~3/YMs9baJ4ybo/quot-yes-virginia-there-is-a-specman-quot.aspx</link><pubDate>Mon, 02 Feb 2009 12:00:00 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:14277</guid><dc:creator>mstellfox</dc:creator><description>I usually try to visit many of our customers in Europe (and other parts of the world) at least a couple of times a year.&amp;nbsp; On my last trip in October, while I was in Stockholm, I ended up having beers at a pub with one of our local AEs and a Specman customer.&amp;nbsp; This customer had been telling me about all the &amp;quot;good stuff&amp;quot; that he was leveraging with our Specman Verification Solution which was great to hear, but I also like to understand the &amp;quot;bad and the ugly&amp;quot;.&amp;nbsp;&amp;nbsp; I&amp;nbsp;am always interested to hear ideas from customers on how we can improve our verification solutions, so I figured I would take advantage of the fact that after a few beers most people tend to be a bit more &amp;quot;forthcoming&amp;quot; about what they really think. &lt;p&gt;When I asked this Verification Engineer what he wanted to see us improve, I expected him to start asking for all kinds of new features that would make his life easier, but instead he started hammering on me about his perception that Cadence is promoting SystemVerilog all the time and not&amp;nbsp;saying anything about&amp;nbsp;e and Specman.&amp;nbsp; He was clearly frustrated and didn&amp;#39;t hold back in telling me how, from his perspective, we were screwing up (I did ask for it after all).&amp;nbsp; He explained how after ramping up on Specman and applying our Metric-Driven Verification Methodology over the past couple of years, he was really enjoying his work and success as a bug-finding machine compared to the dark ages of directed testing he endured before using Specman.&amp;nbsp;&amp;nbsp;However, due to the fact that there was a lot more marketing and hype around SystemVerilog relative to Specman/e over the last year, our competitors were spreading rumors to his management that since Cadence was investing in SystemVerilog, they were going to kill Specman/e.&amp;nbsp; This was making his management and him question whether they should continue using e or consider switching to SystemVerilog. &lt;/p&gt;&lt;p&gt;In fact, I have heard this type of FUD being spread to other customers, so I explained that this was simply not true and highlighted all of the recent significant advancements we had made to our Specman solution including &lt;a href="http://www.cadence.com/Community/blogs/fv/archive/2009/01/14/generation-debugging-with-quot-intelligen-quot-with-video.aspx?postID=13920" target="_blank" title="Intelligen Generation Debugger"&gt;Intelligen and the new generation debugger&lt;/a&gt; which are technology innovations well beyond anything being offered by any of our competitors.&amp;nbsp; I also explained that over the past couple of years we had not made a lot of noise about Specman/e because our competitors were using that to spread more FUD to customers about Cadence not being serious about SystemVerilog.&amp;nbsp; However,&amp;nbsp;at the end of 2007 when we introduced the OVM for SystemVerilog with Mentor Graphics and effectively took a position of leadership in the SystemVerilog testbench market with the massive adoption of OVM by customers in 2008, this cleared up any doubts about Cadence being a serious player in the SystemVerilog market.&amp;nbsp; For those customers that choose to use SystemVerilog we will provide the best solution by leveraging our Specman technology and expertise from the past 10+ years, but make no mistake, we absolutely are investing in providing the state-of-the-art solution for e users - the number of which continues to grow every year.&amp;nbsp;&amp;nbsp; I made a promise that we were not going to be shy about promoting our Specman e solution anymore. &lt;/p&gt;&lt;p&gt;When I came back to the US, I explained my conversation over beers with this customer, and challenged the Specman Team to make it clear to the world that Cadence is as serious about Specman and e as it is about SystemVerilog.&amp;nbsp; They rose to the challenge and started up the &amp;quot;&lt;a href="http://www.cadence.com/community/posts/teamspecman.aspx" target="_blank" title="Team Specman Blog"&gt;Team Specman&amp;quot; Blog&lt;/a&gt; on the Cadence web-site at the end of last year.&amp;nbsp; This is a really cool blog since it involves many people across Cadence who work on Specman and e from AEs, Core Comp, R&amp;amp;D, and Methodology Engineering.&amp;nbsp; Each week different people from these organizations write technical blogs on all things Specman.&amp;nbsp; They felt this was the best way to connect directly with Specman customers, and also give some transparency into the large number of people at Cadence across the world who are developing&amp;nbsp;or supporting Specman and e-based verification methodology.&amp;nbsp; So, &amp;quot;yes [Michael] there is a Specman&amp;quot; - thanks for hammering on me and if you haven&amp;#39;t started reading the Team Specman Blog, you really need to check it out.&lt;/p&gt;&lt;p&gt;In fact, rumor has it that Synopsys monitors this blog closely as they continue to work on bringing their e implementation in VCS to the market... ;-)&lt;/p&gt;&lt;p&gt;Mike&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/cadence/community/blogs/2787/~4/YMs9baJ4ybo" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.cadence.com/Community/blogs/fv/archive/2009/02/02/quot-yes-virginia-there-is-a-specman-quot.aspx</feedburner:origLink></item><item><title>RE: RE: RE: Temporal expression in e</title><link>http://feedproxy.google.com/~r/cadence/community/blogs/2787/~3/2-WZZVBSsMY/13976.aspx</link><pubDate>Fri, 16 Jan 2009 17:17:10 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:13976</guid><dc:creator>mstellfox</dc:creator><description>First, I would read the &amp;ldquo;N&amp;rdquo; signal value to a simple_port and use the simple_port in your temporal expression.&amp;nbsp; Below, I assume that the &amp;ldquo;N&amp;rdquo; signal value will not change during the evaluation of the temporal expression, and then I think this will work:&lt;br /&gt;&lt;br /&gt;extend sys {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; n:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; in simple_port of uint is instance;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; event clk is @sys.any;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; event a;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; event b;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; event a_n_is_0 is true(n$ == 0)@a;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; event a_n_greater_0 is true(n$ &amp;gt; 0)@a;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; expect (@a_n_is_0 and @b)@clk or&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ((@a_n_greater_0) =&amp;gt; {[n$ - 1];@b})@clk;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;Mike&lt;img src="http://feeds.feedburner.com/~r/cadence/community/blogs/2787/~4/2-WZZVBSsMY" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.cadence.com/Community/forums/p/11354/13976.aspx#13976</feedburner:origLink></item><item><title>RE: RE: Temporal expression in e</title><link>http://feedproxy.google.com/~r/cadence/community/blogs/2787/~3/tVwkMPlESTA/13935.aspx</link><pubDate>Thu, 15 Jan 2009 16:09:10 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:13935</guid><dc:creator>mstellfox</dc:creator><description>Ok, then you need one temporal expression to capture the case when @a and @b occur on the same cycle, as well as the case when the don&amp;rsquo;t occur on the same cycle.&amp;nbsp; See below &amp;ndash; I think this will work for you.&lt;br /&gt;&lt;br /&gt;expect (@a and @b)@clk or ((@a and not @b) =&amp;gt; {eventually @b})@clk;&lt;br /&gt;&lt;br /&gt;Mike&lt;img src="http://feeds.feedburner.com/~r/cadence/community/blogs/2787/~4/tVwkMPlESTA" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.cadence.com/Community/forums/p/11354/13935.aspx#13935</feedburner:origLink></item><item><title>RE: Temporal expression in e</title><link>http://feedproxy.google.com/~r/cadence/community/blogs/2787/~3/tzv-V5Jiat0/13908.aspx</link><pubDate>Wed, 14 Jan 2009 14:41:11 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:13908</guid><dc:creator>mstellfox</dc:creator><description>Hi Spark,&lt;br /&gt;&lt;br /&gt;Can you write down the english expression of what you want to check?&amp;nbsp; It is not clear from your description below.&lt;br /&gt;&lt;br /&gt;Is this what you want to check:&lt;br /&gt;&lt;br /&gt;If event a occurs, then b must occur on the same cycle as a or any number of cycles after a&lt;br /&gt;&lt;br /&gt;Or do you need to check something else??&lt;br /&gt;&lt;br /&gt;Mike&lt;img src="http://feeds.feedburner.com/~r/cadence/community/blogs/2787/~4/tzv-V5Jiat0" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.cadence.com/Community/forums/p/11354/13908.aspx#13908</feedburner:origLink></item><media:rating>nonadult</media:rating></channel></rss>
