<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>DVClub Blog &#187; functional design verification</title>
	<atom:link href="http://www.dvclub.org/blog/tag/functional-design-verification/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.dvclub.org/blog</link>
	<description>Sharing Knowledge Among the Verification Community</description>
	<lastBuildDate>Tue, 14 Jun 2011 16:24:19 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1.2</generator>
		<item>
		<title>Oracle&#8217;s Presentations on Verification Metrics Now Available</title>
		<link>http://www.dvclub.org/blog/2011/01/oracles-presentations-on-verification-metrics-now-available/</link>
		<comments>http://www.dvclub.org/blog/2011/01/oracles-presentations-on-verification-metrics-now-available/#comments</comments>
		<pubDate>Thu, 13 Jan 2011 23:05:17 +0000</pubDate>
		<dc:creator>saturday</dc:creator>
				<category><![CDATA[Austin]]></category>
		<category><![CDATA[Design Verification]]></category>
		<category><![CDATA[coverage]]></category>
		<category><![CDATA[coverage driven methodology]]></category>
		<category><![CDATA[Coverage metrics]]></category>
		<category><![CDATA[Debugging]]></category>
		<category><![CDATA[functional design verification]]></category>

		<guid isPermaLink="false">http://www.dvclub.org/index.php?option=com_wordpress&amp;p=381&amp;Itemid=127</guid>
		<description><![CDATA[Using Bug Arrival Rates to Predict the Future Greg Smith, Sr. Verification Manager at Oracle Abstract: So much of today&#8217;s metrics used to gauge the progress of a verification project are backwards looking &#8211; telling us what ground we have &#8230; <a href="http://www.dvclub.org/blog/2011/01/oracles-presentations-on-verification-metrics-now-available/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<h3>Using Bug Arrival Rates to Predict the Future</h3>
<h4>Greg Smith, Sr. Verification Manager at Oracle</h4>
<p><strong>Abstract:</strong><br />
So much of today&#8217;s metrics used to gauge the progress of a verification  project are backwards looking &#8211; telling us what ground we have covered.  In addition, many metrics commonly in use are subjective and prone to  human errors of omission.  I would like to present a different approach  to DV project metrics using bug arrivals to actually provide some  predictive capability as well as aid in overall project planning.</p>
<p><a href="../images/Presentations/Greg_Smith.pdf?utm_source=Design+Verification+Club+%28DVClub%29+List&amp;utm_campaign=85d75e840e-DVClub_Newsletter_Jan_11&amp;utm_medium=email">Download the Presentation Here</a><br />
<a href="../images/Presentations/sample_metrics.xls?utm_source=Design+Verification+Club+%28DVClub%29+List&amp;utm_campaign=85d75e840e-DVClub_Newsletter_Jan_11&amp;utm_medium=email">Download the &#8220;Sample Metrics&#8221; File Here</a></p>
<h3>High Performance Collection of Coverage Metrics Using a Relational  Database Backend</h3>
<h4>James Roberts, Sr. Verification Engineer at Oracle</h4>
<p><strong>Abstract:</strong><br />
A database is an ideal medium for collecting and analyzing coverage. At  Oracle, we marry our Oracle database with coverage collection of our  verification, and then use SQL to extract coverage metrics on-demand.  This presentation outlines an intuitive scheme for database collection  of coverage, and presents data showing the scalability and the high  bandwidth this scheme is able to handle.</p>
<p><a href="../images/Presentations/James_Roberts.pdf?utm_source=Design+Verification+Club+%28DVClub%29+List&amp;utm_campaign=85d75e840e-DVClub_Newsletter_Jan_11&amp;utm_medium=email">Download the Presentation Here</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.dvclub.org/blog/2011/01/oracles-presentations-on-verification-metrics-now-available/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Power7 Verification: It&#8217;s Not Rocket Science (It&#8217;s More Advanced)</title>
		<link>http://www.dvclub.org/blog/2010/05/power7-verification-its-not-rocket-science-its-more-advanced/</link>
		<comments>http://www.dvclub.org/blog/2010/05/power7-verification-its-not-rocket-science-its-more-advanced/#comments</comments>
		<pubDate>Thu, 20 May 2010 16:09:18 +0000</pubDate>
		<dc:creator>saturday</dc:creator>
				<category><![CDATA[Austin]]></category>
		<category><![CDATA[Design Verification]]></category>
		<category><![CDATA[Technical Review]]></category>
		<category><![CDATA[Architecture]]></category>
		<category><![CDATA[checkers]]></category>
		<category><![CDATA[Complex Architectures]]></category>
		<category><![CDATA[functional design verification]]></category>
		<category><![CDATA[functional verification]]></category>
		<category><![CDATA[RTL testbench]]></category>
		<category><![CDATA[Verification]]></category>

		<guid isPermaLink="false">http://www.dvclub.org/index.php?option=com_wordpress&amp;p=246&amp;Itemid=127</guid>
		<description><![CDATA[By Hemendra Talesara Complexity In his recent presentation discussing verification of the Power7 processor, John Ludden of IBM opened with a quote from an IBM exec more than a decade ago. &#8220;it&#8217;s not rocket science&#8221;- a perception held by some &#8230; <a href="http://www.dvclub.org/blog/2010/05/power7-verification-its-not-rocket-science-its-more-advanced/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>By <a href="http://www.linkedin.com/in/talesara" target="_blank">Hemendra Talesara</a></p>
<h3>Complexity</h3>
<p>In his recent presentation discussing verification of the Power7 processor, John Ludden of IBM opened with a quote from an IBM exec more than a decade ago. &#8220;it&#8217;s not rocket science&#8221;- a perception held by some members of the management and design communities at that time.</p>
<p>However, designs have become a whole lot more complex over time. The Power7 processor at 45nm has 1.2B transistors on a 567 sq. mm die, supporting 8 cores with 4 threads each, an on-chip eDRAM, 3 levels of caches and 2 DDR memory controllers. Yet as verification complexity multiplies in this multi-threaded design, it&#8217;s very helpful to have some of the more advanced tools and methodology at your disposal.</p>
<h3>Tools and Methodology</h3>
<p>Fortunately for Ludden and the Power7 team, IBM has invested in verification technology for years (in spite the quote from the exec). The company continues to develop and rely on in-house tools for many of the advanced verification technologies for processor-specific testing. These include the test-bench, multi-thread test generators, hardware accelerators, formal and semi-formal tools, micro-architecture checkers (API based), cache coherency checkers and coverage tools. Exercisers<br />
originally developed for post-silicon validation were used to exploit the hardware acceleration platform. Forty-five thousand coverage points were organized to assist with big picture and were used to re-direct the test generator and exercisers for accelerators.</p>
<p><a href="http://www.dvclub.org/images/wordpress/uploads/2010/05/Ludden_Slide28.png"><img class="alignnone size-full wp-image-247" title="Ludden_Slide28" src="http://www.dvclub.org/images/wordpress/uploads/2010/05/Ludden_Slide28.png" alt="" width="695" height="495" /></a></p>
<p>To support corner case testing for events that occur rarely, especially in multi-threaded scenarios, software irritator threads were used. These irritators are capable of creating the worst possible contentions. Through their application, twenty-three high quality bugs were revealed hiding in the corners.</p>
<p><a href="http://www.dvclub.org/images/wordpress/uploads/2010/05/Ludden_Slide37.png"><img class="alignnone size-full wp-image-248" title="Ludden_Slide37" src="http://www.dvclub.org/images/wordpress/uploads/2010/05/Ludden_Slide37.png" alt="" width="695" height="492" /></a></p>
<p>A methodical application of these tools and technology clearly captured and advanced the industry best practices.</p>
<h3>Designing for Verification</h3>
<p>Designing for Verification was an important element in managing the overall risk to verification time line. IBM minimized the risks by maintaining a tight interaction between the specification and verification teams during the design phase and allowing the verification team to maintain architectural changes. &#8220;Chicken switches&#8221; were placed in silicon that allowed verification team to back-off an area considered risky or possible of otherwise compromising the verification effort. These switches provide workarounds, with some small impact on performance but no functional change, for accessing difficult to verify micro architectural features. Hardware irritators were also used to enable stress testing of corner cases in both pre-silicon and post-silicon testing.</p>
<h3>Conclusion</h3>
<p>The Power7 draws many architectural features from the Power5 and 6 designs, although it is a much more complex and powerful processor with a much shorter verification cycle. Ludden and the Power7 team accomplished this remarkable feat with a lot of foresight in planning, metrics collection and careful execution. Tight interlocking between metrics collected and verification plan was key part of tracking mechanism and functional closure. This project should serve as an example of how to plan for and manage risks in a complex verification project.</p>
<p>Kudos to John and the IBM team. His full presentation can be downloaded <a href="http://www.dvclub.org/images/Presentations/Ludden_Power7_Verification.pdf">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dvclub.org/blog/2010/05/power7-verification-its-not-rocket-science-its-more-advanced/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Knowing When Verification is Complete</title>
		<link>http://www.dvclub.org/blog/2009/03/knowing-when-verification-is-complete/</link>
		<comments>http://www.dvclub.org/blog/2009/03/knowing-when-verification-is-complete/#comments</comments>
		<pubDate>Fri, 27 Mar 2009 16:56:12 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Technical Review]]></category>
		<category><![CDATA[checkers]]></category>
		<category><![CDATA[Complex Architectures]]></category>
		<category><![CDATA[corner cases]]></category>
		<category><![CDATA[coverage driven methodology]]></category>
		<category><![CDATA[coverage grid]]></category>
		<category><![CDATA[Coverage metrics]]></category>
		<category><![CDATA[coverage monitors]]></category>
		<category><![CDATA[directed assembly code tests]]></category>
		<category><![CDATA[directed testing]]></category>
		<category><![CDATA[Distribution of Coverage Points]]></category>
		<category><![CDATA[functional design verification]]></category>
		<category><![CDATA[general purpose microprocessor]]></category>
		<category><![CDATA[mobile computing]]></category>
		<category><![CDATA[random test generator]]></category>
		<category><![CDATA[RTL testbench]]></category>
		<category><![CDATA[Verification Progress]]></category>

		<guid isPermaLink="false">http://www.dvclub.org/blog/?p=21</guid>
		<description><![CDATA[This article presents an overview of functional design verification using a coverage driven methodology while attempting to answer the question of how much testing is enough. <a href="http://www.dvclub.org/blog/2009/03/knowing-when-verification-is-complete/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<h3>Introduction</h3>
<p>This article presents an overview of functional design verification using a coverage driven methodology while attempting to answer the question of how much testing is enough. The part being verified in this case will be a general purpose microprocessor, such as those found in mobile computing devices. Note that an approach of this magnitude is not always required. Designs with very limited instruction sets or highly restricted functionalities may be satisfied by simply writing directed assembly code tests to verify their intended functionalities.</p>
<h3>Comparison of Simple and Complex Architectures</h3>
<p>Figure 1 depicts a simple architecture as compared to a complex one. Note that the number of corner cases and unpredictability of the verification space increases as the architecture gains complexity. Thus, the complexity of the architecture determines how much testing will need to be accomplished to properly verify the component’s function.</p>
<p><strong>Figure 1. Comparison of Verification Spaces</strong></p>
<p><img class="alignnone size-medium wp-image-22" title="Comparison of Verification Spaces" src="http://www.dvclub.org/images/wordpress/wp-content/uploads/2009/03/figure-1-300x186.png" alt="Comparison of Verification Spaces" width="336" height="208" /></p>
<h3>Measuring Verification Progress</h3>
<p>Coverage metrics are the dominant method for measuring verification progress in the industry today. Coverage points are normally designated by the design engineers looking at the logic of their block and by verification or system engineers looking at the functional definition of the part. Both of these are critical insights into the required verification coverage of the design.</p>
<p>Coverage points, indicated by the red dots in Figure 2, are deliberately chosen with respect to placement and density according to design knowledge and risk assessment.</p>
<p><strong>Figure 2. Distribution of Coverage Points</strong></p>
<p><strong><img class="alignnone size-medium wp-image-23" title="Distribution of Coverage Points" src="http://www.dvclub.org/images/wordpress/wp-content/uploads/2009/03/figure-2-300x196.png" alt="Distribution of Coverage Points" width="201" height="131" /><br />
</strong></p>
<h3>Directed Testing</h3>
<p>In the past, directed tests were typically written to hit coverage points.  Because directed tests are by their very nature highly targeted and relatively inflexible, this resulted in much of the design not being tested as is shown by the ratio of red to gray in Figure 5. In addition to the low overall coverage that results from this approach, creation of directed tests is time consuming and requires highly skilled engineers. In this approach, testbench checkers that detect hits to coverage points are often overlooked with the assumptions that the engineers writing the tests know how to hit the required coverage points and that human errors will not be significantly problematic. In addition, as the design changes over the course of development, the directed test may lose track of its target coverage point. Without coverage monitors, these types of errors will not be detected and the design will not be as thoroughly verified as it appears to be on paper.</p>
<h3>Using a Random Test Generator to Close Coverage</h3>
<p>As processor designs became more complex, the need to hit more coverage points became apparent. Once the grid has been established, large numbers of purely random tests may be incorporated to begin closing coverage. Some of these tests may hit points on the coverage grid while others will not.</p>
<p><strong>Figure 3. Intersection of Coverage Grid and Pure Random</strong></p>
<p><strong><img class="alignnone size-medium wp-image-24" title="Intersection of Coverage Grid and Pure Random" src="http://www.dvclub.org/images/wordpress/wp-content/uploads/2009/03/figure-3-300x149.png" alt="Intersection of Coverage Grid and Pure Random" width="316" height="156" /><br />
</strong></p>
<p>Approaching the problem of hitting coverage points from a random test generator viewpoint, a single engineer begins by writing a few generator templates and then generates tests using those templates. The generated tests are then run on a testbench which incorporates coverage monitors. The coverage monitors report all coverage points that are hit by the tests. As long as tests generated from the templates continue to hit new coverage points, the templates are kept in the nightly suite. As the rate of hitting new coverage points declines, new generator templates are created to target coverage holes. This approach requires skilled engineers to write checkers for the testbench but less skilled engineers to run the test generator.</p>
<p>Directed-random templates are created around points not hit by the purely random templates. We now begin to see the coverage grid closing more tightly (around 95%), and the verification process comes closer to completion.</p>
<p><strong>Figure 4. Coverage Grid, Directed Random and Pure Random</strong></p>
<p><strong><img class="alignnone size-medium wp-image-25" title="Coverage Grid, Directed Random and Pure Random" src="http://www.dvclub.org/images/wordpress/wp-content/uploads/2009/03/figure-4-300x159.png" alt="Coverage Grid, Directed Random and Pure Random" width="300" height="159" /><br />
</strong></p>
<h3>Hitting Corner Cases</h3>
<p>Not all coverage points will be hit by fully random or directed random templates. Some coverage points require a long series of events before the targeted behavior takes place. In this case, there are two possible approaches: write directed tests and write directed templates. Probably both of these approaches should be used. Directed tests can get to these most difficult coverage points more quickly but prove only one or a few cases around that point. Directed templates take more time to create but can be written to allow as much random behavior around the coverage point as possible.</p>
<p><strong>Figure 5. Review Templates and Relax Restrictions</strong></p>
<p><strong><img class="alignnone size-medium wp-image-26" title="Review Templates and Relax Restrictions" src="http://www.dvclub.org/images/wordpress/wp-content/uploads/2009/03/figure-5-300x173.png" alt="Review Templates and Relax Restrictions" width="300" height="173" /><br />
</strong></p>
<p>Finally, existing tests are reviewed, and as much directed behavior as possible is removed before the tests are run again. Coverage then reaches full closure, and these tests are run until the schedule no longer permits.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dvclub.org/blog/2009/03/knowing-when-verification-is-complete/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

