<?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/"
	xmlns:series="http://unfoldingneurons.com/"
	>

<channel>
	<title>哲子戲 Philosophist’s Camp &#187; verification</title>
	<atom:link href="http://www.horace.org/blog/tag/verification/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.horace.org/blog</link>
	<description>Serious about the frivolous, frivolous about the serious</description>
	<lastBuildDate>Mon, 06 Feb 2012 03:29:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>IP Integration : What is the difference between stitching and weaving?</title>
		<link>http://www.horace.org/blog/2011/02/06/ip-integration-what-is-the-difference-between-stitching-and-weaving/</link>
		<comments>http://www.horace.org/blog/2011/02/06/ip-integration-what-is-the-difference-between-stitching-and-weaving/#comments</comments>
		<pubDate>Sun, 06 Feb 2011 16:54:09 +0000</pubDate>
		<dc:creator>hevangel</dc:creator>
				<category><![CDATA[News Clips]]></category>
		<category><![CDATA[asic]]></category>
		<category><![CDATA[verification]]></category>

		<guid isPermaLink="false">http://www.horace.org/blog/?p=5252</guid>
		<description><![CDATA[I should write a article on: What is the difference between reusing and salvaging&#8230; by David Murray, 12/15/2010, Design and Reuse As a hardware design engineer, I was never comfortable when someone talked about IP integration as ‘stitching&#8230; <a href="http://www.horace.org/blog/2011/02/06/ip-integration-what-is-the-difference-between-stitching-and-weaving/">[...]</a>]]></description>
			<content:encoded><![CDATA[<blockquote><p>
I should write a article on: What is the difference between reusing and salvaging&#8230;
</p></blockquote>
<p>by David Murray, 12/15/2010, Design and Reuse</p>
<p>As a hardware design engineer, I was never comfortable when someone talked about IP integration as ‘stitching a chip together’.  First of all, it sounded like a painful process involving sharp needles, usually preceded by a painful accident. I happened to be the recipient of said stitches when, at 8 years of age, I contested a stairs post with my forehead, and sorely lost. I have to say, luckily, I have been quite adept at avoiding the needle and thread ever since. That was of course until once when, an hour before that important customer presentation, my top-shirt button, due to an over enthusiastic yawn, pinged across my hotel room floor like a nano-UFO. A panicked retrieval of the renegade button was followed quickly with a successful hunt for an elusive emergency sewing-kit.  The crisis quickly dissipated as I stitched back the button in a random-but-directed type of methodology. Needle-less to say stitching, whilst sometimes necessary, makes me uncomfortable.</p>
<p>Stitching, according to Wikipedia, is “.. the fastening of cloth, leather, furs, bark, or other flexible materials, using needle and thread. Its use is nearly universal among human populations and dates back to Paleolithic times (30,000 BCE).”  It also states that stitching predates the weaving of cloth. So, 32,000 years later, in these hi-tech times we are still stitching things together. It’s not fur this time, but ‘ports’. Stitching a chip together involves connecting ports together with wires. (Note the terminology also where, if you don’t use certain ports you ’tie’ them off).</p>
<p>Weaving is a different game altogether. One definition simplifies weaving as ‘creating fabric’. Thus a key differentiator between stitching and weaving is that stitching may refer to fixing/mending things whilst weaving is used to create. Stitching is an emergency, an ah-hoc approach (please refer to my stitched button above) whilst weaving is more structured, more planned. Stitching invokes the image of  being bent over, eyes squinted, immersed in the tiniest of detail. Weaving is more graceful and productive. In IC design flow terms, I equate stitching with scripting. It is task that is useful to join pieces of the flow together. Weaving creates something. It transforms thread to cloth, and therefore equates more to synthesis.  Weaving is a process.</p>
<p>So when it came to developing and naming a tool used to effectively integrate IP and create a chip hierarchy, in a structured manner, we didn’t consider consider ‘STITCHER’ &#8211; It had to be ‘WEAVER’.</p>
<p>Stitching is important to fix things, and is necessary in emergency situations, however it has its limitations and as if used as a core creation process, it may come  undone.   So as I ranted on during that vital presentation, as I got to the cusp of the value-add, I curbed my enthusiasm, keep it slightly in check just in case those button stitches came undone and resulted in a serious eye injury of an altogether innocent customer. What then, of those poor stitched chips? What if those threads start to unravel and your chip integration is running very late. You may have to resort to different type of Weaving, when dealing with your management, customers or partners.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.horace.org/blog/2011/02/06/ip-integration-what-is-the-difference-between-stitching-and-weaving/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Challenging Misconceptions About Verification Languages</title>
		<link>http://www.horace.org/blog/2010/03/11/challenging-misconceptions-about-verification-languages/</link>
		<comments>http://www.horace.org/blog/2010/03/11/challenging-misconceptions-about-verification-languages/#comments</comments>
		<pubDate>Thu, 11 Mar 2010 21:56:08 +0000</pubDate>
		<dc:creator>hevangel</dc:creator>
				<category><![CDATA[News Clips]]></category>
		<category><![CDATA[verification]]></category>

		<guid isPermaLink="false">http://www.horace.org/blog/?p=4169</guid>
		<description><![CDATA[Looks like Cadence is finally on offensive and pushing Specman strongly over SystemVerilog. As a long time user of Specman, I would like to see Specman wins the HVL war at the end which will make my skill and experience more valuable. By Richard&#8230; <a href="http://www.horace.org/blog/2010/03/11/challenging-misconceptions-about-verification-languages/">[...]</a>]]></description>
			<content:encoded><![CDATA[<blockquote><p>
Looks like Cadence is finally on offensive and pushing Specman strongly over SystemVerilog. As a long time user of Specman, I would like to see Specman wins the HVL war at the end which will make my skill and experience more valuable.
</p></blockquote>
<p><span id="more-4169"></span></p>
<p>By Richard Goering on March 10, 2010</p>
<p>One thing I learned from the recent DVCon conference is that there are a number of common misconceptions about hardware verification languages (HVLs). I had a few of these myself. Two provocative and well-attended presentations provided a different way of looking at HVLs:</p>
<p>    * &#8220;Apples Versus Apples HVL Comparison Finally Arrives.&#8221; Presented by Brett Lammers of Cadence Feb. 24.<br />
    * &#8220;Where OOP Falls Short of Verification Needs.&#8221; Presented by Matan Vax of Cadence Feb. 25.</p>
<p>Some of the misconceptions identified in these talks are as follows.</p>
<p>Misconception #1: The design language defines the HVL choice</p>
<p>At the beginning of his talk, Brett noted that verification is fundamentally different from design. With design, one is implementing a spec; with verification, one is checking the implementation. Instead of what the device should do, verification engineers are concerned about what the device should never do. Instead of area, timing and power, verification engineers prioritize test generation, coverage, and corner cases.</p>
<p>It thus makes sense that the unique characteristics of verification make HVLs &#8220;special,&#8221; as Brett put it.</p>
<p>        An attentive DVCon audience listened to Brett Lammers&#8217; HVL presentation.</p>
<p>Misconception #2: Object-oriented programming is the best way to get verification reuse</p>
<p>While OOP facilitates reuse in many software applications, it&#8217;s not a complete solution for HVLs, Matan argued. His paper explained that verification does not lend itself naturally to classic object-oriented design, and that attempts to insert OOP techniques place an additional burden on programmers. In a video interview in a recent blog by Joe Hupcey III, Matan stated that &#8220;what you&#8217;re doing with the object-oriented mechanism is emulating a different paradigm, and it would be much easier if the language could use that paradigm directly.&#8221;</p>
<p>As Brett noted in his presentation, OOP allows a modular approach by encapsulating behavior within objects, but verification presents many &#8220;aspects&#8221; (like checking, coverage, and error injection) that cut across many objects. An aspect-oriented programming (AOP) language like the e language makes it possible to represent aspects as modules of their own. &#8220;Verification represents a lot of aspects, and AOP allows you to capture them in a more manageable way,&#8221; Brett said.</p>
<p>Misconception #3: Verification productivity = simulation runtime</p>
<p>Verification engineers tend to focus on how fast simulators run. But overall project productivity involves more than just simulation speed, Brett noted. If you can shrink the time required to create the verification environment and write the tests, and spend more time, rather than less time, in regression testing, this will provide more time to find and fix bugs.</p>
<p>Brett noted that simulator performance depends on simulation tools and has no inherent connection to the language that&#8217;s chosen.</p>
<p>Misconception #4: Compiling languages are best and fastest</p>
<p>Compiled languages such as e and SystemVerilog do provide the highest simulation performance, Brett acknowledged. But a language that can be either compiled or interpreted, such as e, provides more flexibility. A mix of interpreted and compiled code may be better for development, and using all interpreted code helps with debugging.</p>
<p>Misconception #5: Legacy VIP means you&#8217;re stuck with an HVL forever</p>
<p>Not so, Brett said. Cadence has extended the Open Verification Methodology (OVM) to support e and SystemC testbenches and verification IP (VIP) along with SystemVerilog. VIP in these languages can be mixed in a common environment. The Cadence Incisive Enterprise Simulator supports e, SystemVerilog, and SystemC, making it possible to migrate from one language to another.</p>
<p>Misconception #6: One HVL is best for all</p>
<p>Not even the e language, with all its capabilities, is the best choice for everyone. Brett&#8217;s last slide looked at &#8220;which language fits best where.&#8221; As you can see, there&#8217;s a place for both SystemVerilog and e.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.horace.org/blog/2010/03/11/challenging-misconceptions-about-verification-languages/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What Makes A Great Verification Team Great?</title>
		<link>http://www.horace.org/blog/2009/12/08/what-makes-a-great-verification-team-great/</link>
		<comments>http://www.horace.org/blog/2009/12/08/what-makes-a-great-verification-team-great/#comments</comments>
		<pubDate>Wed, 09 Dec 2009 06:33:29 +0000</pubDate>
		<dc:creator>hevangel</dc:creator>
				<category><![CDATA[News Clips]]></category>
		<category><![CDATA[verification]]></category>

		<guid isPermaLink="false">http://www.horace.org/blog/?p=3829</guid>
		<description><![CDATA[Here is some words of wisdom on verification from thinkverification.com. I could not agree with this article any more, especially on the last point. We verifiers should education the importance of verification to the company, especially&#8230; <a href="http://www.horace.org/blog/2009/12/08/what-makes-a-great-verification-team-great/">[...]</a>]]></description>
			<content:encoded><![CDATA[<blockquote><p>
Here is some words of wisdom on verification from thinkverification.com.  I could not agree with this article any more, especially on the last point.  We verifiers should education the importance of verification to the company, especially to the executives who make the budget decision.
</p></blockquote>
<p><span id="more-3829"></span></p>
<p>Your tool provider won’t tell you that, nor will those fancy methodology books, but verification is not all about mastering technical skills. True, those will help you very much in your daily work but verification is first and foremost TEAM WORK. But not only that, there are several key factors, or qualities if you will, that really distinguish the great verification teams from the good ones. Here there are:</p>
<p><strong>Resourcefulness</strong> &#8211; this is the single most important quality that a verifier should possess. Verifiers live in a turbulent environment, and if there’s one thing certain about verification is that things never go according to plan. This turbulence is caused by two groups of factors – exogenous factors and endogenous factors. Exogenous factors could be vague specifications, evolving requirements and so on. Something that keeps shaking the ground beneath you along the way. Endogenous factors could be debugging complexity, tool problems, and so on. One way or another, these things affect predictability and quite often verification team members get stuck. The path they’re on is blocked and they need to find a new path to proceed. Being able to always come up with new approaches and steer the verification ship forward is paramount.<br />
<em>Executive Tip: Try to predict in advance what could go wrong at any stage of the verification process and always have a Plan B.</em></p>
<p><strong>Excitement </strong>– verifiers, let’s face it, don’t necessarily enjoy much glory in their work. Their job is often (wrongly) perceived as boring and second in importance (not true either). Being able to constantly generate excitement is a key factor. Different team members find excitement in different things. For instance, some verifiers might find it exciting to reveal bugs. They like the feeling of finding a critical bug in the design, and you can’t blame them. Other team members might get a kick out of building comlex environments – they enjoy software engineering challenges and once they manage to put together a really nice verification environment they’re very satisfied.<br />
<em>Executive Tip: Identify what excites your team members, find out what tasks they’re really good at and try to assign each member a matching task, to the extent possible.</em></p>
<p><strong>The Pareto Principle</strong> – as with everything else, the Pareto principle can be applied here as well to optimize the efforts of the verification team. A great verification team knows that 20% of their efforts account for 80% of their achievements.  For example – in Coverage Driven Verification it is a known fact that achieving 80% of the coverage goals is the relatively easy part. Getting to 100% takes much more effort and time.<br />
<em>Executive Tip: The sooner you identify what 20% will generate 80% of your verification goals the better – focus on that!<br />
</em><br />
<strong>Planned Mode vs. Combat Mode</strong> – verification projects typically have a work plan. The project is divided into groups of tasks and sub-tasks of various types along the project’s time-line. Experience shows that there are stages in the verification process where the team should stick to the plan at all costs. Typical stages – during the development of verification IP, or during the process of analyzing the Spec and generating verification plans. There might be, however, periods of times when the plan ought to be tossed away and the team should switch to “combat mode”. Once things start to stabilize again it’s time to go back to the Gantt chart and readjust the work plan. A good “combat mode” example is the regression phase which is usually the last phase of any verification project. In this phase the team is focused on debugging failing tests from the nightly or weekly regression. It’s hard to estimate the duration of this phase. In most cases reality dictates schedule. Another example – integrating verification IP or design IP. It doesn’t matter how much time such tasks should take, in reality those tasks cannot be forced into completion. They need their time. Code integration is therefore a classic “combat mode” phase where plans should be left aside, replaced by a big to do list.<br />
<em>Executive Tip: Plans are nothing; planning is everything (Dwight. D Eisenhower)</em></p>
<p><strong>Educate Your Company</strong> – great verification teams not only outperform the good ones, but they also try to educate their colleagues along the way. Why? Because people who have no hands-on verification experience don’t understand it (“hey- what’s the big deal, just write a bunch of tests and run them. Now how hard could that be right?”). Ignorance and wrong perceptions inevitably lead to wrong decision making. The times are changing, and the sooner chip designers and managers realize that verification is much less bug hunting and much more system engineering than they think, the better.<br />
<em>Executive Tip: Make a short presentation on how verification is done today – concepts, architecture, methodology and tools. Your colleagues will thank you.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.horace.org/blog/2009/12/08/what-makes-a-great-verification-team-great/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>10 Myths About Verification</title>
		<link>http://www.horace.org/blog/2009/05/29/10-myths-about-verification/</link>
		<comments>http://www.horace.org/blog/2009/05/29/10-myths-about-verification/#comments</comments>
		<pubDate>Fri, 29 May 2009 09:02:47 +0000</pubDate>
		<dc:creator>hevangel</dc:creator>
				<category><![CDATA[Know How]]></category>
		<category><![CDATA[verification]]></category>

		<guid isPermaLink="false">http://www.horace.org/blog/?p=3010</guid>
		<description><![CDATA[Every verification engineer should remember this list by heart so that they can educate their managers. The list is so true that I print a copy and pin it to my cube “This is legacy code no need to verify it” - Hold your horses! are you 100% sure&#8230; <a href="http://www.horace.org/blog/2009/05/29/10-myths-about-verification/">[...]</a>]]></description>
			<content:encoded><![CDATA[<blockquote><p>Every verification engineer should remember this list by heart so that they can educate their managers.  The list is so true that I print a copy and pin it to my cube</p></blockquote>
<p><span id="more-3010"></span><br />
<strong><br />
“This is legacy code no need to verify it” </strong>- Hold your horses! are you 100% sure that you’re dealing with silicon proven code? are you sure that nobody’s touched it since it last worked?</p>
<p><strong>“I can come up with a patch in 5 minutes”</strong> &#8211; That’s OK as long as you make sure you don’t end up with a verification environment that looks like a bunch of patches hooked together. Ask yourself how easily it would be to modify or fix your environment a week from today? Isn’t it worth it to take a couple of more minutes and write a robust code?<br />
<strong><br />
“Start checking and plan as you go”</strong> &#8211; A big no no! Don’t be tempted into this. Even if your task looks like a piece of cake, always plan in advance. You’ll be amazed to see how many problems can be completely avoided… With that being said &#8211; I know that some engineers out there prefer to get started and only then stop and plan ahead.</p>
<p><strong>“This is really simple, no need for a test plan”</strong> &#8211; Consider your test plan document as your working contract. Whatever you put in it defines the requirements for your current work. If it’s a simple task then just write a test plan on half a page.</p>
<p><strong>“Verification is not the product, no need to keep software standards”</strong> &#8211; True, verification is not the product but still &#8211; when you’re dealing with thousands lines of code, you’d better make sure there is a certain level of consistency, let alone programming errors.<br />
<strong><br />
“Don’t have time to add comments”</strong> &#8211; Remember the last time you spent half a day on reverse engineering somebody else’s code? How about your own code?<br />
<strong><br />
“Oh I know! Let’s just force the signal from outside”</strong> &#8211; Forced wires have this tendency to get forgotten along the way and then reappear at a later stage, usually a week before tapeout… So be extra careful.</p>
<p><strong>“Must have regression running in the background all the time” </strong>- Regression runs alone can’t do the job. You must have a “Regression Sitter” to monitor and analyze the results or else &#8211; you’re just wearing out your servers.</p>
<p><strong>“We have reached 100% coverage there’s no point in running more tests”</strong> &#8211; Not really. Your coverage model can only capture what you thought about in advance . Obviously a random test bench is capable of generating additional scenarios that might reveal a bug, so don’t stop at 100%. Instead &#8211; enhance the functional coverage model.</p>
<p><strong>“Verifiers should be looking for bugs”</strong> &#8211; This is a common misconception of what verification is all about. Verifiers should be focused on building a well constructed, robust and complete test bench. Bugs will come out on their own.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.horace.org/blog/2009/05/29/10-myths-about-verification/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cadence and my friend&#8217;s love story</title>
		<link>http://www.horace.org/blog/2005/08/02/170/</link>
		<comments>http://www.horace.org/blog/2005/08/02/170/#comments</comments>
		<pubDate>Wed, 03 Aug 2005 07:01:27 +0000</pubDate>
		<dc:creator>hevangel</dc:creator>
				<category><![CDATA[Daily Scribble]]></category>
		<category><![CDATA[love story]]></category>
		<category><![CDATA[verification]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://www.horace.org/blog/?p=170</guid>
		<description><![CDATA[I had to come to work early today to meet up with the representative from Cadence. Somehow I am chose to baby sit them, give them the requirement from the team. I have a feeling they come to help us just because they want to have Cadence&#8217;s product&#8230; <a href="http://www.horace.org/blog/2005/08/02/170/">[...]</a>]]></description>
			<content:encoded><![CDATA[<p>I had to come to work early today to meet up with the representative from Cadence.  Somehow I am chose to baby sit them, give them the requirement from the team.  I have a feeling they come to help us just because they want to have Cadence&#8217;s product more erode into PMC&#8217;s tool chain.  So I end up not thing any work at all today.  Make it worse, I have to come in early tomorrow morning to let them into the building as well.  One good thing about it is one of the representative is base off in Toronto.  I am looking forward to keep him as a contact in what company that I may potentially switch when moving back home.  Companies using Specman would make a perfect match for my skill set.</p>
<p>The story of my friend and her new crush keeps evolving and it&#8217;s getting more and more interesting.  It seems she already know more about that guy than I do, even though it is me who introduce her the guy.  Let&#8217;s see how this romantic adventure will turns out, Pat and I will pay close attention to the latest development.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.horace.org/blog/2005/08/02/170/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

