<?xml version="1.0" encoding="UTF-8"?><rss version="2.0">
    <channel>
        <title><![CDATA[TB-Articles - TechBites]]></title>
        <description><![CDATA[TechBites - The Science and Technology Collaborative Community]]></description>
        <link>http://www.techbites.com/</link>
		        	        	        <item>
                <guid isPermaLink="false">1587-434</guid>
	            <title><![CDATA[ESL Verification Languages. What will it be based on?: Good article]]></title>
	            <link>/200912281587/myblog/articles/z000e-esl-verification-languages-what-will-it-be-based-on.html</link>
	            <description><![CDATA[
	            	            Brian, I wonder about the verification issues you bring up quite a bit. This is not an official Cadence statement, but I can share some personal thoughts. 

I have been working on functional verification of embedded software for a few years using methodologies based on hardware verification. When the "thing to be verified" is not RTL you have to ask yourself about tools and languages that should be used for this kind of verification. As always it depends on what you are trying to do. Generally, I think OVM is a good solution for any serious verification problem that is beyond what simple scripts or directed tests can do. A lot of the simulation being done with Virtual Platforms uses nothing more than simple tcl scripts for the hardware stimulus and checking and I think there a lot of holes that can be improved to get more verification value from a Virtual Platform environment, but there is always the constraint to run very fast and not bog down performance. Some SystemC users will continue to use SystemC verification for a SystemC model even if it doesn't have all the power of e or SV for verification.

A lot seems to depend on reuse. If the plan is to reuse verification from ESL to RTL you have a different situation compared to just doing verification at ESL. ESL does have the potential for big verification savings, but the details of how to maximize this saving are still emerging. Constructing reusable verification across ESL and RTL is feasible, but does take some planning and skill.

I don't have anything against SystemVerilog, but I find it hard to propose it for abstract ESL verification because it feels a bit heavy to apply an HDL simulator to abstract verification.

I have a 5 part (with more to come) blog series on Android System Verification in which I use Specman for Verification of Android. Although OVM is mostly the same in e or SV, I feel better about e since it just does verification and from the start it was constructed to be separate from the "thing to be verified" so it works the same if applied to SystemC, embedded software, or in my case the Android emulator (which is based on qemu).

The first post is at:
http://www.cadence.com/Community/blogs/sd/archive/2009/11/09/android-system-verification.aspx

Another interesting thing I found is that when I talk to embedded software people, they are quite open to something like e, it looks very cool to them. It's only people that have been around EDA that have lots of bias about language wars between e, SC, and SV. 

Jason Andrews

	            ]]></description>
                <category><![CDATA[TB-Articles]]></category>
                <pubDate>Wed, 06 Jan 2010 20:08:59 -0600</pubDate>
            </item>
	        	        <item>
                <guid isPermaLink="false">1587-422</guid>
	            <title><![CDATA[ESL Verification Languages. What will it be based on?: Different descriptions are essential for good verification]]></title>
	            <link>/200912281587/myblog/articles/z000e-esl-verification-languages-what-will-it-be-based-on.html</link>
	            <description><![CDATA[
	            	            
In the spirit of the New Year of a new decade....

I've long been an advocate of declarative languages - declaring an intent / requirement as a "specification" which tools can convert to executable code seems an elegant and efficient solution, particularly where two or more abstractions of the same model will be required. The problem comes with verification - you can obviously do some formal checks on the "specification" but that's not enough to know that your network adaptor or co-processor or whatever will actually do the job required.  Related to this there are also serious doubts in my mind about the value of automatically creating tests to achieve coverage goals unless you can guarantee independence.

When you strip away all the noise it seems like verification is really a comparison of two or more representations of the same model, hoping that the same mistake won't be repeated in all representations.  That suggests the description of 'design' and 'testbench' ought to be as widely different as possible and written by two groups from different backgrounds.

One model I see evolving amongst customers at present is the use of system-level models as the core of a block-level 'testbench' and/or reference model.  This has a lot of value because it's the same model that's used for early / parallel software development in an era where > 50% of the functionality is now software determined. The problem with this is it's often not exhaustive enough to achieve good coverage of the RTL.

It seems to me therefore that the logical conclusion a decade down the road is a combination of a declarative description of the functionality from which the implementation (RTL?) is automatically converted / generated together with an enhanced system-level test derived from models used by software groups.

As I've said several times before I feel SystemVerilog is an expensive distraction on a path to solving the real problem.  It doesn't have either the declarative nature or the real Object Orientation to handle either of these roles.

I do, however, expect the more abstract aspects of SystemC, particularly the TLM spec. to be developed and to achieve the status amongst software & hardware engineers that, say, STL containers have today - SystemC isn't the solution - it's basic building blocks from which application-specific solutions can be built.

Finally, from what I've seen, I can't re-implement my transactor tests environments in OVM, and have had a similar amount of trouble with VMM.  It seems to me that these only work if you have the same style of application as the model that was in the mind of the authors when they wrote the spec for the library.  As such they seem to fit a couple of application areas but don't seem universal enough for a broad range of applications so I predict either a limited life or a major overhaul.	            ]]></description>
                <category><![CDATA[TB-Articles]]></category>
                <pubDate>Sat, 02 Jan 2010 10:11:33 -0600</pubDate>
            </item>
	        		    </channel>
</rss>

