<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://www.cadence.com/Community/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">Functional Verification</title><subtitle type="html" /><id>http://www.cadence.com/Community/blogs/fv/atom.aspx</id><link rel="alternate" type="text/html" href="http://www.cadence.com/Community/blogs/fv/default.aspx" /><link rel="self" type="application/atom+xml" href="http://www.cadence.com/Community/blogs/fv/atom.aspx" /><generator uri="http://communityserver.org" version="3.1.20917.1142">Community Server</generator><updated>2011-06-28T09:00:00Z</updated><entry><title>Incisive Performance Scales to Meet Advanced Node SoC Verification Requirements</title><link rel="alternate" type="text/html" href="http://www.cadence.com/Community/blogs/fv/archive/2012/01/30/incisive-performance-scales-to-meet-advanced-node-soc-verification-requirements.aspx" /><id>http://www.cadence.com/Community/blogs/fv/archive/2012/01/30/incisive-performance-scales-to-meet-advanced-node-soc-verification-requirements.aspx</id><published>2012-01-30T14:00:00Z</published><updated>2012-01-30T14:00:00Z</updated><content type="html">&lt;p&gt;Its&amp;rsquo; all about RTL simulation.&amp;nbsp; I mean gates.&amp;nbsp; I mean turn-around-time.&amp;nbsp; Project-level productivity.&amp;nbsp; Mixed-signal.&amp;nbsp; Low-power. UVM.&amp;nbsp; And. And. And. &amp;hellip; And the reality is that advanced node SoCs are so complex that it is truly about all of these.&amp;nbsp; Our new white paper details a &lt;a target="_blank" href="http://www.cadence.com/rl/Resources/technical_papers/perf_scaling_adv_node_SoC_tp.pdf"&gt;systematic approach to verification performance&lt;/a&gt; you can use immediately at all levels from core simulation to advanced technologies and methodologies.&lt;/p&gt;&lt;p&gt;For certain, the most common use of simulation is RTL and gate-level simulation.&amp;nbsp; During 25 years since the start of the RTL era, &lt;a target="_blank" href="http://www.intel.com/about/companyinfo/museum/exhibits/moore.htm"&gt;Moore&amp;rsquo;s law&lt;/a&gt; has held true as designs have doubled every 24 months.&amp;nbsp; While the design work is still all done in IEEE 1076 and 1364 (+1800 since 2005 and now some 1666), verification productivity, predictability, and quality is now derived from an ever-increasing suite of standard languages and methodologies.&amp;nbsp; The result is that the typical simulation run today employs a wide range of features beyond RTL and gate.&lt;/p&gt;&lt;p&gt;That history lesson is probably common knowledge, but how to deal with the performance requirements of advanced node SoCs isn&amp;rsquo;t. Because of all the complexity, the simulator has to be measured in multiple ways to build-in the best performance.&amp;nbsp; That will give us a fast simulator, but if we run that simulator using the golden scripts we created years ago the effect on this fast engine is akin to strapping model-T tires on an F1 car. After we&amp;rsquo;ve got all the elements of our simulation balanced for performance, it&amp;rsquo;s time to dig deeper into the code we&amp;rsquo;re running on the engine.&amp;nbsp; Sure, that code is running accurately, but is it running efficiently?&amp;nbsp; The simulator is just going to execute the code we provide, so we need to profile our code and find algorithms that get the same task done but do it faster.&amp;nbsp; We introduce this last concept in the white paper, but that&amp;rsquo;s a teaser for a &lt;a target="_blank" href="http://dvcon.org/eventdetails?id=131-4"&gt;DVCon 2012 SystemVerilog performance paper&lt;/a&gt;. Stepping back from profiling, keep watching this blog stream for application notes that will help you implement the ideas in this core simulation section of the white paper.&lt;/p&gt;&lt;p&gt;Now that your simulations are running fast, where do you go to get even more performance?&amp;nbsp; The &amp;ldquo;Advanced Node SoC Verification Requirements&amp;rdquo; section of the white paper introduces several technologies and methodologies that, with varying degrees of investment, can provide substantial improvements in performance and productivity. If you are at or below 40nm, or planning to go there, pay careful attention to this section and the &lt;a target="_blank" href="http://www.cadence.com/products/fv/Pages/advanced_verification.aspx?CMP=121511_avbook_sb"&gt;Advanced Verification Topics&lt;/a&gt; book to understand the options you have for further performance improvements.&lt;/p&gt;&lt;p&gt;When Cadence pioneered commercial simulation with Verilog-XL 25 years ago, life was simple.&amp;nbsp; Chips were designed in schematics, and RTL and gate simulation was all we needed.&amp;nbsp; Simulation has come a long way from those days and is even more relevant in today&amp;rsquo;s complex chips.&amp;nbsp; This white paper will help you understand how the &lt;a target="_blank" href="http://www.cadence.com/products/fv/enterprise_simulator/pages/default.aspx"&gt;Incisive Enterprise Simulator&lt;/a&gt; has adapted to today&amp;rsquo;s advanced node SoCs and how it will continue to scale for tomorrow.&lt;/p&gt;&lt;p&gt;=Adam Sherer&lt;/p&gt;&lt;img src="http://www.cadence.com/Community/aggbug.aspx?PostID=1307439" width="1" height="1"&gt;</content><author><name>Adam Sherilog</name><uri>http://www.cadence.com/Community/members/Adam-Sherilog.aspx</uri></author><category term="Functional Verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Functional+Verification/default.aspx" /><category term="Low Power" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Low+Power/default.aspx" /><category term="Simulation acceleration" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Simulation+acceleration/default.aspx" /><category term="IES" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/IES/default.aspx" /><category term="Incisive Enterprise Simulator (IES)" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Incisive+Enterprise+Simulator+_2800_IES_2900_/default.aspx" /><category term="DVcon" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/DVcon/default.aspx" /><category term="IES-XL" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/IES-XL/default.aspx" /><category term="Incisive" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Incisive/default.aspx" /><category term="Mixed-Signal" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Mixed-Signal/default.aspx" /><category term="Low-power" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Low-power/default.aspx" /><category term="uvm" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/uvm/default.aspx" /><category term="testbench" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/testbench/default.aspx" /><category term="whitepaper" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/whitepaper/default.aspx" /><category term="simulation" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/simulation/default.aspx" /><category term="assertion-based verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/assertion-based+verification/default.aspx" /><category term="20nm" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/20nm/default.aspx" /><category term="Incisive Enterprise Simulator" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Incisive+Enterprise+Simulator/default.aspx" /><category term="gate level" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/gate+level/default.aspx" /><category term="gate-level" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/gate-level/default.aspx" /><category term="verification speed" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/verification+speed/default.aspx" /><category term="Incisive performance" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Incisive+performance/default.aspx" /><category term="simulation speed" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/simulation+speed/default.aspx" /></entry><entry><title>Video Killed The Reference Manual Star</title><link rel="alternate" type="text/html" href="http://www.cadence.com/Community/blogs/fv/archive/2012/01/26/video-killed-the-reference-manual-star.aspx" /><id>http://www.cadence.com/Community/blogs/fv/archive/2012/01/26/video-killed-the-reference-manual-star.aspx</id><published>2012-01-26T14:00:00Z</published><updated>2012-01-26T14:00:00Z</updated><content type="html">&lt;p&gt;[Preface: recall the melody of the Buggles&amp;#39; 1979 hit &amp;quot;&lt;a href="http://bit.ly/tBPhdG"&gt;Video Killed the Radio Star&lt;/a&gt;&amp;quot; as you read the following]&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;i&gt;Q: What is your favorite pastime? &lt;br /&gt;&lt;br /&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;i&gt;A: Reading reference manuals!&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;No?&amp;nbsp; Really?&lt;/p&gt;&lt;p&gt;OK -- with all due respect to our Tech Pubs team, virtually no one wants to sit down and read reference manuals if they can help it. &amp;nbsp;And in a perfect world, it should not be required in the first place.&amp;nbsp; Alas, our world is not perfect, but that should not preclude us from striving toward Nirvana.&lt;/p&gt;&lt;p&gt;And thus, I assert that for many, a good picture says more than a thousand words. &amp;nbsp;It is a clich&amp;eacute;, but it is true. However, even the most complete infographic might not always be sufficient to convey a concept or feature - particularly if you do not have someone providing verbal context to the picture.&amp;nbsp; Thus, moving pictures -- &lt;i&gt;videos&lt;/i&gt; -- can convey certain concepts more effectively and will have a longer lasting (memorization) effect than a reference manual.&lt;/p&gt;&lt;p&gt;Hence, Team Verify has produced the following series of short, focused videos on various aspects of formal and ABV techniques. &amp;nbsp;All of them are short (around 5 minutes) and focused -- we&amp;#39;ve posted the &amp;quot;Introduction to Assertion-Driven Simulation&amp;quot; to give you an exact idea of what you can expect. The rest of the videos require a &lt;a href="http://support.cadence.com/wps/mypoc/cos?uri=deeplinkmin:SearchResult;sort=date;%20producttypes=EF-41519;documenttypes=Video%20Library;searchText=*"&gt;Support login&lt;/a&gt; ID only.&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;u&gt;Assertion Driven Simulation&lt;br /&gt;&lt;/u&gt;&lt;/b&gt;&lt;a href="http://youtu.be/DiFUP5AaVe8"&gt;Introduction to Assertion-Driven Simulation (YouTube-based sample)&lt;br /&gt;&lt;/a&gt;Soft Constraints in Assertion-Driven Simulation&lt;br /&gt;Dead Ends in Assertion-Driven Simulation&lt;br /&gt;Seeds in Assertion-Driven Simulation&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;u&gt;Tool Basics&lt;br /&gt;&lt;/u&gt;&lt;/b&gt;Introduction to Interactive Properties&lt;br /&gt;Local Property Distribution&lt;br /&gt;Property Distribution using LSF&lt;br /&gt;Engine Distribution&lt;br /&gt;Introduction to Cutpoints&lt;br /&gt;Introduction to Initialization&lt;br /&gt;Localization Abstraction &amp;amp; Halo&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;u&gt;Concepts&lt;br /&gt;&lt;/u&gt;&lt;/b&gt;Introduction to Cranks&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;u&gt;Methodology and Flows&lt;br /&gt;&lt;/u&gt;&lt;/b&gt;Introduction to Formal Scoreboarding&lt;br /&gt;Introduction to the Coverage Unreachability flow&lt;/p&gt;&lt;p&gt;Enjoy!&lt;/p&gt;&lt;p&gt;Axel Scherer&lt;br /&gt;Solution Architect&lt;br /&gt;For Team Verify&lt;/p&gt;&lt;p&gt;&lt;br /&gt;On Twitter: &lt;a href="http://twitter.com/teamverify"&gt;http://twitter.com/teamverify&lt;/a&gt;, @teamverify&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cadence.com/Community/aggbug.aspx?PostID=1307376" width="1" height="1"&gt;</content><author><name>TeamVerify</name><uri>http://www.cadence.com/Community/members/TeamVerify.aspx</uri></author><category term="Functional Verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Functional+Verification/default.aspx" /><category term="Formal Analysis" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Formal+Analysis/default.aspx" /><category term="metric driven verification (MDV)" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/metric+driven+verification+_2800_MDV_2900_/default.aspx" /><category term="PSL" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/PSL/default.aspx" /><category term="SVA" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/SVA/default.aspx" /><category term="ABV" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/ABV/default.aspx" /><category term="MDV" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/MDV/default.aspx" /><category term="IEV" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/IEV/default.aspx" /><category term="formal" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/formal/default.aspx" /><category term="IFV" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/IFV/default.aspx" /><category term="assertions" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/assertions/default.aspx" /><category term="ABVIP" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/ABVIP/default.aspx" /><category term="simulation" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/simulation/default.aspx" /><category term="formal verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/formal+verification/default.aspx" /><category term="assertion-based verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/assertion-based+verification/default.aspx" /><category term="videos" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/videos/default.aspx" /><category term="Assertion-Driven Simulation" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Assertion-Driven+Simulation/default.aspx" /><category term="YouTube" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/YouTube/default.aspx" /><category term="Axel Scherer" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Axel+Scherer/default.aspx" /></entry><entry><title>UVM:  "Everything that Can be Invented Has Been Invented" Not True!</title><link rel="alternate" type="text/html" href="http://www.cadence.com/Community/blogs/fv/archive/2012/01/26/uvm-everything-that-can-be-invented-has-been-invented.aspx" /><id>http://www.cadence.com/Community/blogs/fv/archive/2012/01/26/uvm-everything-that-can-be-invented-has-been-invented.aspx</id><published>2012-01-26T14:00:00Z</published><updated>2012-01-26T14:00:00Z</updated><content type="html">&lt;p&gt;Much like Charles Duell&amp;#39;s famous 1899 quote**, the notion that the Universal Verification Methodology (&lt;a target="_blank" href="http://www.uvmworld.org"&gt;UVM&lt;/a&gt;) is the be-all and end-all of verification methodology is an urban legend.&amp;nbsp; The new &lt;a target="_blank" href="http://www.cadence.com/products/fv/Pages/advanced_verification.aspx?CMP=121511_avbook_sb"&gt;Advanced Verification Topics &lt;/a&gt;book dispells this myth with five topics that describe methodology layers that build on the UVM to serve the requirements of advanced node SoCs.&lt;/p&gt;&lt;p&gt;The &lt;a target="_blank" href="http://www.accellera.org/activities/committees/vip/"&gt;Accellera Systems Initiative UVM&lt;/a&gt; is gaining great momentum in the industry.&amp;nbsp; From the &lt;a target="_blank" href="http://www.cadence.com/Alliances/languages/Pages/uvm.aspx"&gt;Cadence perspective&lt;/a&gt;, our customers starting new SystemVerilog projects are doing so with&amp;nbsp;UVM, and those starting new &lt;strong&gt;&lt;em&gt;e&lt;/em&gt;&lt;/strong&gt; projects are doing so with our &lt;strong&gt;&lt;em&gt;e&lt;/em&gt;&lt;/strong&gt;-based equivalent. Those customers are enjoying the reuse that is built into the UVM and the Cadence differentiators that work with the UVM like verification IP and debug.&amp;nbsp; But the wise verification lead faced with low-power, massive designs,&amp;nbsp;multi-language IP,&amp;nbsp;and more challenges that seem to be prevalent at 40nm and below is asking -- what&amp;#39;s next?&lt;/p&gt;&lt;p&gt;The Advanced Verification Topics book describes what&amp;#39;s next.&amp;nbsp; The five chapters, expertly described by &lt;a target="_blank" href="http://www.cadence.com/Community/blogs/ii/archive/2012/01/17/advanced-verification-book-brings-uvm-to-mixed-signal-low-power-multi-language.aspx?postID=1306959"&gt;Richard Goering in his blog&lt;/a&gt;, introduce methodologies that will improve productivity, predictability, and quality building on the UVM methodology base. Verification engineers reading this book will gain an appreciation for the work that needs to be done to implement these methodologies and the potential gains they represent.&lt;/p&gt;&lt;p&gt;In stark contrast to Mr. Duell&amp;#39;s quote, Cadence has only just begun.&amp;nbsp; Watch us in 2012 as we introduce several other topics and expand the languages used in our examples. We have a bigger boast for verification&amp;nbsp;-- everything that can be invented WILL be invented and quite likely it will be from the engineers at Cadence.&lt;/p&gt;&lt;p&gt;=Adam Sherer, MS EE, BS EE, BA CS&lt;/p&gt;&lt;p&gt;** Note:&amp;nbsp; &lt;a target="_blank" href="http://www.patentlyo.com/patent/2011/01/tracing-the-quote-everything-that-can-be-invented-has-been-invented.html"&gt;Dennis Crouch&amp;#39;s&lt;/a&gt; research suggests the quote actually comes from a &lt;a target="_blank" href="http://books.google.com/books?id=LaMwAAAAYAAJ&amp;amp;dq=%22everything%20that%20can%20be%20invented%20has%20been%20invented%22&amp;amp;pg=PR32#v=onepage&amp;amp;q=%22everything%20that%20can%20be%20invented%20has%20been%20invented%22&amp;amp;f=false"&gt;1899 humor magazine&lt;/a&gt; that described a fictitious exchange between a genius and a young lad at the patent office.&lt;/p&gt;&lt;img src="http://www.cadence.com/Community/aggbug.aspx?PostID=1307396" width="1" height="1"&gt;</content><author><name>Adam Sherilog</name><uri>http://www.cadence.com/Community/members/Adam-Sherilog.aspx</uri></author><category term="Functional Verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Functional+Verification/default.aspx" /><category term="SystemVerilog" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/SystemVerilog/default.aspx" /><category term="IES" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/IES/default.aspx" /><category term="multi-language" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/multi-language/default.aspx" /><category term="Incisive" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Incisive/default.aspx" /><category term="MDV" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/MDV/default.aspx" /><category term="Mixed Signal" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Mixed+Signal/default.aspx" /><category term="Mixed-Signal" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Mixed-Signal/default.aspx" /><category term="Low-power" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Low-power/default.aspx" /><category term="VMM" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/VMM/default.aspx" /><category term="uvm" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/uvm/default.aspx" /><category term="Acellera VIP TSC" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Acellera+VIP+TSC/default.aspx" /><category term="20nm" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/20nm/default.aspx" /><category term="UVM-MS" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/UVM-MS/default.aspx" /><category term="UVM e" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/UVM+e/default.aspx" /></entry><entry><title>Event Report: Club Formal UK – Cache Coherency, UVM for ABV, and Brainstorming with R&amp;D</title><link rel="alternate" type="text/html" href="http://www.cadence.com/Community/blogs/fv/archive/2012/01/24/event-report-club-formal-uk-cache-coherency-uvm-for-abv-and-brainstorming-with-r-amp-d.aspx" /><id>http://www.cadence.com/Community/blogs/fv/archive/2012/01/24/event-report-club-formal-uk-cache-coherency-uvm-for-abv-and-brainstorming-with-r-amp-d.aspx</id><published>2012-01-24T19:56:00Z</published><updated>2012-01-24T19:56:00Z</updated><content type="html">&lt;p&gt;Right before the December holidays it was my privilege to host the first &amp;quot;Club Formal&amp;quot;&amp;nbsp;here in the U.K.&amp;nbsp; My colleagues and I welcomed over 20 power users from 8 different companies, providing an exciting diversity of ideas and applications.&amp;nbsp; We also took the opportunity to sneak preview some new technologies, share our product roadmap, and discuss new requirements from the attendees to better align our R&amp;amp;D development with their needs.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.flickr.com/photos/24605532@N08/sets/72157629006216257/"&gt;&lt;img src="http://www.cadence.com/Community/CSSharedFiles/blogs/fv/Joe_Hupcey_III/JH3_012412.JPG" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;(If the image gallery doesn&amp;#39;t open, &lt;a href="http://www.flickr.com/photos/24605532@N08/sets/72157629006216257/"&gt;click here&lt;/a&gt;.)&lt;/i&gt;&lt;/p&gt;&lt;p&gt;Here are some specific highlights of the event:&lt;/p&gt;&lt;p&gt;&lt;b&gt;Customer Presentation&lt;/b&gt;&lt;b&gt;: Finding A Cache Coherency bug with formal&lt;/b&gt;&lt;br /&gt;In a very motivating talk, engineer David Lewsey shared how he was able unearth a nasty cache controller bug -- something&amp;nbsp;engineers had not been able to detect with simulation -- via a clever combination of optimizing the design and applying abstraction methodologies.&amp;nbsp; Specifically, putting some parameters in the code can really reduce the size of the design that the tool &amp;quot;sees.&amp;quot;&amp;nbsp; Plus, you can avoid modifying the RTL with concurrent, judicious applications of cut points, forces, and init commands in TCL scripts.&amp;nbsp; In roughly the same amount of time it would have taken just setup a block level test bench, they were able to uncover the root cause of a complex bug that had eluded detection for some time.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Presentation: UVM with ABV&lt;/b&gt;&lt;br /&gt;In this talk and supporting demo, Kong Woei Susanto showed how the basic principles of the popular Universal Verification Methodology (&amp;quot;UVM&amp;quot;) can be readily extended to the formal and assertion-based verification (ABV) space.&amp;nbsp; In the context of an easy to understand router example, Kong showed how simple reuse techniques/templates, and coverage-driven driven verification methodologies so common in the dynamic simulation world map directly to ABV and how the strengths of formal techniques can be used to compliment weaknesses in a pure simulation flow.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Keynote speech on &amp;quot;Verifying Memory Coherency&amp;quot;&lt;/b&gt;&lt;br /&gt;Continuing on the cache coherency theme, it was a real treat to introduce &lt;a href="http://youtu.be/sXp_Z25JFkc"&gt;R&amp;amp;D Fellow Bob Kurshan&lt;/a&gt;, a true pioneer in the field of formal analysis (remember the ground breaking &amp;quot;Formal Check&amp;quot; tool?), to present a deep dive on the challenges and pitfalls of cache&amp;nbsp;and memory coherency verification. &lt;/p&gt;&lt;p&gt;&lt;b&gt;Panel Discussion&lt;/b&gt;&lt;br /&gt;Yours truly was honored to lead the panel discussion with Solutions Architect Joerg Muller, and our AE speaker Kong Woei Susanto to brainstorm with the audience on a wide variety of topics.&amp;nbsp;&amp;nbsp; Allow me to publicly thank the attendees again for being so generous with their thoughts and recommendations, which was to the benefit of all!&lt;/p&gt;&lt;p&gt;&lt;b&gt;Training, Roadmaps and new Product Previews&lt;br /&gt;&lt;/b&gt;Allow me to again thank the attendees for their warm reception of our product roadmap, and being generous with comments about where you&amp;#39;d like to see more attention.&amp;nbsp; This feedback is invaluable to R&amp;amp;D, and as you saw we were all taking careful notes.&amp;nbsp;&amp;nbsp; In addition, the attention paid to the &lt;a href="http://www.cadence.com/cadence/events/Pages/event.aspx?eventid=562"&gt;coverage unreachability&lt;/a&gt; and &lt;a href="http://www.cadence.com/cadence/events/Pages/event.aspx?eventid=560"&gt;formal scoreboarding&lt;/a&gt; reviews made it clear these were areas of high interest for everyone.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Lunch, Snacks, and Happy hour!&lt;/b&gt;&lt;br /&gt;Last but not least, the intermissions and social segments of the day were of high value as well.&amp;nbsp;&amp;nbsp; Whether it was the casual lunchtime discussions, or informal Q&amp;amp;A at the pub, truly these venues -- comfortable, community settings where users get to swap stories with other users to brainstorm solutions and share tips and tricks -- were some of the best parts of the day.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Bottom-line:&lt;/b&gt; an engaging, informative time was had by all, and I believe I speak for everyone in looking forward to the next event later in 2012!&lt;/p&gt;&lt;p&gt;Until the next Club Formal, happy verifying!&lt;/p&gt;&lt;p&gt;Vincent Reynolds&lt;br /&gt;Application Engineering Leader&lt;br /&gt;Bracknell, UK&lt;br /&gt;for Team Verify&lt;/p&gt;&lt;p&gt;On Twitter: http://twitter.com/teamverify, @teamverify&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;P.S. Team Verify is working on the 2012 event calendar now.&amp;nbsp; &amp;nbsp;Hence, this the perfect time to let us know If you would like to see a Club Formal in your area!&amp;nbsp; Simply &lt;a href="http://www.cadence.com/community/members/TeamVerify.aspx"&gt;jump to the Team Verify home page&lt;/a&gt; and &amp;quot;send Team Verify a private message&amp;quot;.&lt;/p&gt;&lt;p&gt;P.S.S.&amp;nbsp; In case you are unable to attend a Club Formal near you, be sure to check out our archive of free, technical webinars:&lt;br /&gt;&lt;a href="http://www.cadence.com/Community/blogs/fv/archive/2011/12/27/free-formal-amp-abv-webinar-recordings-from-2011-online-now.aspx?postID=1306428"&gt;http://www.cadence.com/Community/blogs/fv/archive/2011/12/27/free-formal-amp-abv-webinar-recordings-from-2011-online-now.aspx?postID=1306428&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cadence.com/Community/aggbug.aspx?PostID=1307343" width="1" height="1"&gt;</content><author><name>TeamVerify</name><uri>http://www.cadence.com/Community/members/TeamVerify.aspx</uri></author><category term="metric driven verification (MDV)" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/metric+driven+verification+_2800_MDV_2900_/default.aspx" /><category term="ABV" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/ABV/default.aspx" /><category term="MDV" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/MDV/default.aspx" /><category term="uvm" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/uvm/default.aspx" /><category term="assertions" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/assertions/default.aspx" /><category term="ABVIP" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/ABVIP/default.aspx" /><category term="assertion-based verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/assertion-based+verification/default.aspx" /><category term="Club Formal" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Club+Formal/default.aspx" /><category term="coherency" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/coherency/default.aspx" /><category term="Joerg Mueller" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Joerg+Mueller/default.aspx" /><category term="Bob Kurshan" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Bob+Kurshan/default.aspx" /><category term="UK" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/UK/default.aspx" /><category term="Vincent Reynolds" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Vincent+Reynolds/default.aspx" /></entry><entry><title>2012 CES: Top 3 Trends Impacting EDA This Year</title><link rel="alternate" type="text/html" href="http://www.cadence.com/Community/blogs/fv/archive/2012/01/17/2012-ces-top-3-trends-impacting-eda-this-year.aspx" /><id>http://www.cadence.com/Community/blogs/fv/archive/2012/01/17/2012-ces-top-3-trends-impacting-eda-this-year.aspx</id><published>2012-01-17T22:00:00Z</published><updated>2012-01-17T22:00:00Z</updated><content type="html">&lt;p&gt;For years now consumer electronics have driven (nay, saved) the EDA industry.&amp;nbsp; Hence, many events at last week&amp;#39;s annual Consumer Electronics Show (CES) in Las Vegas can be extrapolated as leading indicators for the EDA business.&amp;nbsp; While I couldn&amp;#39;t personally attend CES this year, I had two trusted agents (specifically, Unified Communications (UC) expert &lt;a href="http://danto.info/"&gt;David Danto of Dimension Data&lt;/a&gt;, and Joseph Hupcey Jr., video &amp;amp; communications systems architect and father of yours truly) on the ground to field check the myriad of reports streaming in from legacy and new media.&amp;nbsp; Thus, allow me to highlight the following&amp;nbsp;three trends from CES 2012 that I suggest will have a big impact on EDA this year.&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.cadence.com:443/Community/CSSharedFiles/blogs/fv/Joe_Hupcey_III/CES.JPG"&gt;&lt;img border="0" src="https://www.cadence.com:443/Community/CSSharedFiles/blogs/fv/Joe_Hupcey_III/CES.JPG" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;1. TV&amp;#39;s rapid evolution: &lt;/b&gt;ahead of the equally dramatic and lucrative transition from feature phones to smart phones, virtually all TVs shown at CES were &amp;quot;smart.&amp;quot;&amp;nbsp; Specifically, as the &lt;a href="https://www.cadence.com:443/eda360/pages/default.aspx"&gt;EDA360 vision paper&lt;/a&gt; foretold, it&amp;#39;s not enough for TVs to support passive visual entertainment.&amp;nbsp; Instead, the TV of today must support a library of interactive apps, coupled with some sort of digital video recording (DVR) solution to be viable in all but the most niche markets.&amp;nbsp; That said, EE&amp;#39;s and physicists alike should take comfort that raw hardware can still deliver its own differentiating punch: my agents reported several very good, &amp;quot;no glasses&amp;quot; 3-dimsenional displays, where the best of show was LG&amp;#39;s prototype OLED 3D display.&amp;nbsp; &lt;a href="http://www.imcca.org/news/a-view-from-the-road-%E2%80%93-volume-6-number-1-ces-2012-new"&gt;Quoting David Danto&amp;#39;s eyewitness account&lt;/a&gt;:&lt;/p&gt;&lt;p&gt;&lt;i&gt;&amp;quot;Hands down - no contest, my pick hit of the show is LG&amp;#39;s new 55 inch OLED 3D display. ...&amp;nbsp; I&amp;#39;ve been evaluating displays for most of my 30 year career and I&amp;#39;ve never seen anything that looked as good as this.&amp;nbsp; First of all, it uses LGs passive glasses technology. &amp;nbsp;No electronic shutters, no charging, no feeling like a reject from Tron.&amp;nbsp; Then, the actual images sacrifice nothing to achieve the 3D effect - bright, vivid, lifelike colors, deep blacks, true whites.&amp;nbsp; Then, to top it all off, it is so thin that from the side the thing is practically invisible.&amp;quot;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;(Note: from my experience, I agree that no picture or contemporary video can do a well sourced OLED justice -- to give you some idea of the bold visual character of an OLED&amp;#39;s imagery, try to imagine a living magazine animated with rich, saturated colors like you get from the best dye sub printers.)&lt;br /&gt;&lt;br /&gt;So what&amp;#39;s the bottom-line for EDA for all this TV innovation?&amp;nbsp; In a word, growth.&amp;nbsp; How?&amp;nbsp; This new generation of TVs deliver a visibly different experience than the best &amp;quot;dumb&amp;quot; TVs of even a few years ago -- they &lt;b&gt;&lt;i&gt;will&lt;/i&gt;&lt;/b&gt; inspire new sales / upgrades.&amp;nbsp; Granted, you might be able to extend the &amp;quot;useful&amp;quot; life of a good-yet-dumb screen via web enabled boxes like TiVo DVRs and BlueRay players (like I&amp;#39;m doing with my 4 year old Sony Bravia LCD).&amp;nbsp; But either way -- via new TVs or new set top boxes -- many more SoC&amp;#39;s and peripheral IC&amp;#39;s will be shipped.&lt;/p&gt;&lt;p&gt;&lt;b&gt;2. ARM vs. Intel competition:&lt;/b&gt;&amp;nbsp; While ARM is justifiably proud of &lt;a href="http://blogs.arm.com/smart-connected-devices/655-arm-powered-at-ces-from-tablets-dtvs-automotive-even-your-pet/"&gt;the plethora of sockets they supported across the show floor&lt;/a&gt;, Intel fired a substantial broadside with the announcement they would be sourcing Atom architecture processors for Motorola Mobility (read, &amp;quot;soon to be Google&amp;quot;, and all the Android market reach that implies) and Lenovo (read, &amp;quot;China and rest-of-world!&amp;quot;).&amp;nbsp; In a provocative article &lt;a href="http://www.extremetech.com/computing/113123-how-intels-medfield-will-dismantle-arm"&gt;&amp;quot;How Intel&amp;#39;s Medfield Will Dismantle ARM&amp;quot;&lt;/a&gt;, author Sebastian Anthony asserts that these announcements are only the opening salvo, and that Intel will be able to leverage their research and manufacturing strength to &amp;quot;physically&amp;quot; outpace competitors stuck on bigger nodes.&amp;nbsp; Indeed, while ARM has a lot of momentum to say the least, &lt;a href="http://www.eetimes.com/electronics-news/4231282/Intel-14-nm-process-running"&gt;Intel&amp;#39;s tantalizing hints last December that they have 14 nm devices working in the lab&lt;/a&gt;&amp;nbsp;gives credence to Anthony&amp;#39;s aggressive theories.&amp;nbsp; As for myself, I&amp;#39;ll make the oh-so-daring prediction that whoever can deliver the best MIPS/watt by a &amp;gt;= 50% margin will be the ultimate victor.&lt;/p&gt;&lt;p&gt;&lt;b&gt;3. The future of CES itself, and lessons for DAC:&lt;/b&gt; despite record breaking attendance, my agents confirm that there was palpable undercurrent of dissent -- fed by Microsoft&amp;#39;s announcement that this was their last CES -- that the value of CES has diminished and/or is not aligned with the needs of the industry.&amp;nbsp;&amp;nbsp; This expression of frustration about misalignment between show management and attendees triggered a personal flashback to the very last COMDEX (despite it being a very productive show for my company, where we sold hundreds of eyemodules in the temporary Handspring store between the exhibit halls). &lt;/p&gt;&lt;p&gt;Suffice to say there has been a lot of punditry about the future of the Design Automation Conference (DAC) over the past several years.&amp;nbsp; Aside from concerns about maintaining a forum for startups to introduce themselves, what seems to be missing are customers coming forward en-masse demanding that the show must go on.&amp;nbsp; To wit, in past years major semiconductor and systems houses would send dozens of front line engineering managers and developers, CAD staffers, and R&amp;amp;D executives.&amp;nbsp; Now you are lucky to see those same companies send a lone VP accompanied by 1-2 CAD managers.&amp;nbsp; And from the vendors&amp;#39; point of view, is it all worth it, in terms of marcom dollars ROI, or from the more abstract &amp;quot;branding&amp;quot; value?&amp;nbsp; Time will tell ...&lt;/p&gt;&lt;p&gt;Joe Hupcey III&lt;/p&gt;&lt;p&gt;On Twitter: &lt;a href="http://twitter.com/jhupcey"&gt;http://twitter.com/jhupcey&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;P.S. Speaking of trade shows, in the verification space &lt;a href="http://dvcon.org/"&gt;the annual DVCon&amp;#39;s&lt;/a&gt; clear focus on functional verification technology and methodology has made it a growing, high value technical and trade forum.&amp;nbsp; Hence, my colleagues and fellow bloggers will be there in force!&amp;nbsp; In particular I welcome you to join me at the tutorial I&amp;#39;m hosting, entitled &lt;a href="http://dvcon.org/eventdetails?id=131-5-T"&gt;&amp;quot;Using &amp;quot;Apps&amp;quot; to Take Formal Analysis Mainstream&amp;quot;, on Thursday March 1 from 8:30am-Noon&lt;/a&gt; (includes coffee &amp;amp; lunch)&amp;nbsp; &lt;a href="http://dvcon.org/registration"&gt;Register today!&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cadence.com/Community/aggbug.aspx?PostID=1307114" width="1" height="1"&gt;</content><author><name>jvh3</name><uri>http://www.cadence.com/Community/members/jvh3.aspx</uri></author><category term="Formal Analysis" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Formal+Analysis/default.aspx" /><category term="DAC" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/DAC/default.aspx" /><category term="ARM" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/ARM/default.aspx" /><category term="DVcon" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/DVcon/default.aspx" /><category term="formal" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/formal/default.aspx" /><category term="EDA360" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/EDA360/default.aspx" /><category term="Joe Hupcey III" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Joe+Hupcey+III/default.aspx" /><category term="14nm" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/14nm/default.aspx" /><category term="CES" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/CES/default.aspx" /><category term="apps" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/apps/default.aspx" /><category term="OLED" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/OLED/default.aspx" /><category term="Intel" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Intel/default.aspx" /><category term="LG" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/LG/default.aspx" /><category term="OLED 3D" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/OLED+3D/default.aspx" /><category term="Consumer Electronics Show" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Consumer+Electronics+Show/default.aspx" /><category term="TV" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/TV/default.aspx" /><category term="CES2012" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/CES2012/default.aspx" /></entry><entry><title>Video: Bob Kurshan, Cadence Fellow and Incisive Formal R&amp;D Leader, talks about Formal Engine Tech</title><link rel="alternate" type="text/html" href="http://www.cadence.com/Community/blogs/fv/archive/2012/01/05/video-bob-kurshan-cadence-fellow-and-incisive-formal-r-amp-d-leader-talks-about-formal-engine-tech.aspx" /><id>http://www.cadence.com/Community/blogs/fv/archive/2012/01/05/video-bob-kurshan-cadence-fellow-and-incisive-formal-r-amp-d-leader-talks-about-formal-engine-tech.aspx</id><published>2012-01-05T21:00:00Z</published><updated>2012-01-05T21:00:00Z</updated><content type="html">&lt;p&gt;Continuing the series of introducing you to the people that create the tools you use every day, in this video I ask Bob Kurshan, Cadence Fellow and R&amp;amp;D leader of the &lt;a href="http://www.cadence.com/products/fv/formal_verifier/pages/default.aspx"&gt;Incisive Formal Verifier (&amp;quot;IFV&amp;quot;)&lt;/a&gt; &amp;quot;Engines Team,&amp;quot; about the challenges and/or tradeoffs in creating a formal engine, how to avoid gotchas in tricky problems like cache coherency verification, and how formal technology might evolve over the next 5 years.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;If the embedded video doesn&amp;#39;t play, &lt;a href="http://youtu.be/sXp_Z25JFkc"&gt;click here&lt;/a&gt;. &lt;/p&gt;&lt;p&gt;Please feel free to ask Bob questions via the comments below; or &lt;a href="http://www.cadence.com/community/members/TeamVerify.aspx"&gt;jump to the Team Verify home page&lt;/a&gt; to &amp;quot;send Team Verify a private message&amp;quot; for forwarding to him offline.&lt;/p&gt;&lt;p&gt;Joe Hupcey III&lt;br /&gt;for Team Verify&lt;br /&gt;&lt;br /&gt;On Twitter: &lt;a href="http://twitter.com/teamverify"&gt;http://twitter.com/teamverify&lt;/a&gt;, @teamverify&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;u&gt;Reference links to prior R&amp;amp;D interviews:&lt;/u&gt;&lt;br /&gt;&lt;a href="http://youtu.be/mbSv5muFV6g"&gt;Distinguished Engineer Alok Jain&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://youtu.be/dlkK2u71bgo"&gt;Incisive Formal R&amp;amp;D team leader Deepak Pant&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://youtu.be/Vgb-iXhWitY"&gt;Incisive Enterprise Verifier R&amp;amp;D Architect Vinaya Singh&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://youtu.be/5vhR3KVDbGQ"&gt;Incisive Formal Verifier R&amp;amp;D leader Pradeep Goyal&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cadence.com/Community/aggbug.aspx?PostID=1306752" width="1" height="1"&gt;</content><author><name>TeamVerify</name><uri>http://www.cadence.com/Community/members/TeamVerify.aspx</uri></author><category term="Formal Analysis" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Formal+Analysis/default.aspx" /><category term="verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/verification/default.aspx" /><category term="ABV" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/ABV/default.aspx" /><category term="IEV" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/IEV/default.aspx" /><category term="formal" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/formal/default.aspx" /><category term="IFV" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/IFV/default.aspx" /><category term="formal verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/formal+verification/default.aspx" /><category term="assertion-based verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/assertion-based+verification/default.aspx" /><category term="video" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/video/default.aspx" /><category term="cache coherency" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/cache+coherency/default.aspx" /><category term="Bob Kurshan" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Bob+Kurshan/default.aspx" /><category term="Kurshan" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Kurshan/default.aspx" /></entry><entry><title>Free Formal and ABV Webinar Recordings from 2011 Online Now!</title><link rel="alternate" type="text/html" href="http://www.cadence.com/Community/blogs/fv/archive/2011/12/27/free-formal-amp-abv-webinar-recordings-from-2011-online-now.aspx" /><id>http://www.cadence.com/Community/blogs/fv/archive/2011/12/27/free-formal-amp-abv-webinar-recordings-from-2011-online-now.aspx</id><published>2011-12-27T14:00:00Z</published><updated>2011-12-27T14:00:00Z</updated><content type="html">&lt;p&gt;In case you missed any of the 5 free webinars Team Verify presented in 2011, you&amp;#39;re in luck: all of them have been recorded and posted for you to review at your leisure. Take your pick from the following - or pop a bucket of popcorn and a family sized bag of chips and watch them all at once!&lt;/p&gt;&lt;p&gt;----------&lt;/p&gt;&lt;p&gt;&lt;b&gt;How to Completely Eliminate SoC Connectivity Bugs - Really!&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cadence.com/cadence/events/Pages/event.aspx?eventid=516"&gt;http://www.cadence.com/cadence/events/Pages/event.aspx?eventid=516&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Bugs from incorrect connectivity -- whether they&amp;#39;re misconnected IP blocks inside an SoC or erroneous muxing of pad rings -- can kill a chip just easily as more sophisticated functional bugs. With internal connection points surpassing hundreds of thousands of nodes, the traditional approach of assigning detail-oriented summer interns to spot-check connectivity with dynamic simulations is rapidly losing effectiveness. How do you ensure that two versions of your design are equivalent (e.g., the design before power techniques and after)? &lt;/p&gt;&lt;p&gt;In this technical webinar, we&amp;#39;ll show you how to apply formal verification technology to exhaustively prove with 100% mathematical certainty that all of your SoC&amp;#39;s internal and external pad ring connections are completely correct. &amp;nbsp;An included demonstration (recorded live) reinforces the concepts presented.&lt;/p&gt;&lt;p&gt;----------&lt;/p&gt;&lt;p&gt;&lt;b&gt;Verification 1-2-3 with Assertion-Driven Simulation&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cadence.com/cadence/events/Pages/event.aspx?eventid=518"&gt;http://www.cadence.com/cadence/events/Pages/event.aspx?eventid=518&lt;/a&gt;&lt;/p&gt;&lt;p&gt;This is it: a simple, straightforward methodology that increases bug detection and produces much cleaner RTL. Totally revolutionary &amp;quot;assertion-driven simulation&amp;quot; leverages easy constraint and assertion properties to simulate, visualize, and debug your design -- plus drive coverage collection.&lt;/p&gt;&lt;p&gt;----------&lt;/p&gt;&lt;p&gt;&lt;b&gt;Automate Assertion Generation for Simulation, Formal and Emulation Flows&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cadence.com/cadence/events/Pages/event.aspx?eventid=557"&gt;http://www.cadence.com/cadence/events/Pages/event.aspx?eventid=557&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Assertion-based verification (ABV) helps design and verification teams using simulation, formal analysis, and emulation methodologies accelerate verification signoff by enhancing the RTL and test specifications to include assertions and functional coverage properties, which are logic statements that define the intended behavior of signals in the design.&lt;/p&gt;&lt;p&gt;The emergence of &amp;quot;assertion synthesis&amp;quot; allows for true proliferation of ABV by automating the often painful manual process of creating meaningful white-box assertions and functional coverage properties with sufficient capacity to handle complex SoC designs. Without writing any additional code, stimulus generation and additional tests will find additional bugs and improve functional coverage, integrating into your metric-driven verification (MDV) flow. &lt;/p&gt;&lt;p&gt;In this webinar, Cadence and NextOp Software show how assertion synthesis enables a progressive, targeted verification process, allowing design and verification teams to more easily uncover corner-case bugs, expose functional coverage holes, and increase verification observability. &amp;nbsp;The included demonstration (recorded live) reinforces the concepts presented during the session.&lt;/p&gt;&lt;p&gt;----------&lt;/p&gt;&lt;p&gt;&lt;b&gt;Quickly Find Data Transport Bugs with Formal Scoreboarding&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cadence.com/cadence/events/Pages/event.aspx?eventid=560"&gt;http://www.cadence.com/cadence/events/Pages/event.aspx?eventid=560&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;quot;Scoreboards&amp;quot; have been used in advanced simulation testbench environments for years.&amp;nbsp; In this webinar we will show how this same concept can be implemented with formal verification tools. Consequently, you will see how to benefit from powerful formal analysis algorithms to automatically test data integrity and root out the spectrum of simple problems to extreme corner cases.&lt;/p&gt;&lt;p&gt;The formal scoreboarding methodology is flexible and extendable such that it can be applied to various data transport blocks including bridges, switches, routers, matrices, memory controllers, DMA controllers, and buffers. &amp;nbsp;Its value to the user is a significant reduction in simulation runtime and the ability to find bugs faster with less effort. &amp;nbsp;This is an exciting topic for anyone in the functional verification space.&lt;/p&gt;&lt;p&gt;----------&lt;/p&gt;&lt;p&gt;&lt;b&gt;Simplifying Code Coverage Analysis: Automatically Separating the Wheat from the Chaff&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cadence.com/cadence/events/Pages/event.aspx?eventid=562"&gt;http://www.cadence.com/cadence/events/Pages/event.aspx?eventid=562&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Code coverage is a popular methodology let alone a signoff criterion for many companies.&amp;nbsp; Unfortunately, code coverage can produce an enormous number of objects, where analysis of even a small number of coverage holes can be very tedious and time consuming. &amp;nbsp;Of course, completely ignoring those holes can introduce risk that might not be acceptable. &lt;/p&gt;&lt;p&gt;In this webinar, we show how new automation and a revolutionary &amp;quot;case-splitting&amp;quot; methodology can help you separate the wheat from the chaff -- the &amp;quot;reachable&amp;quot; versus the &amp;quot;unreachable&amp;quot; code coverage holes. While formal analysis engines (and the mathematical certainty they offer) are used under the hood, perhaps the best part of the new case-splitting approach is that the flow does not require any understanding of formal analysis and is accessible to anyone familiar with simulation. This is an exciting topic for anyone in the functional verification space. &amp;nbsp;The included demonstration (recorded live) reinforces the concepts presented in the lecture portion of the presentation.&lt;/p&gt;&lt;p&gt;----------&lt;/p&gt;&lt;p&gt;Happy learning and Happy New Year!&lt;/p&gt;&lt;p&gt;Team Verify&lt;/p&gt;&lt;p&gt;On Twitter: &lt;a href="http://twitter.com/teamverify"&gt;http://twitter.com/teamverify&lt;/a&gt;, @teamverify&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cadence.com/Community/aggbug.aspx?PostID=1306428" width="1" height="1"&gt;</content><author><name>TeamVerify</name><uri>http://www.cadence.com/Community/members/TeamVerify.aspx</uri></author><category term="Functional Verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Functional+Verification/default.aspx" /><category term="Formal Analysis" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Formal+Analysis/default.aspx" /><category term="metric driven verification (MDV)" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/metric+driven+verification+_2800_MDV_2900_/default.aspx" /><category term="coverage driven verification (CDV)" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/coverage+driven+verification+_2800_CDV_2900_/default.aspx" /><category term="Incisive" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Incisive/default.aspx" /><category term="ABV" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/ABV/default.aspx" /><category term="MDV" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/MDV/default.aspx" /><category term="IEV" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/IEV/default.aspx" /><category term="formal" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/formal/default.aspx" /><category term="IFV" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/IFV/default.aspx" /><category term="NextOp" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/NextOp/default.aspx" /><category term="SoC Connectivity" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/SoC+Connectivity/default.aspx" /><category term="formal verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/formal+verification/default.aspx" /><category term="BugScope" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/BugScope/default.aspx" /><category term="assertion-based verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/assertion-based+verification/default.aspx" /><category term="ADS" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/ADS/default.aspx" /><category term="Assertion-Driven Simulation" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Assertion-Driven+Simulation/default.aspx" /><category term="scoreboard" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/scoreboard/default.aspx" /></entry><entry><title>Some Final Real-World Assertions for the Holidays</title><link rel="alternate" type="text/html" href="http://www.cadence.com/Community/blogs/fv/archive/2011/12/20/some-final-real-world-assertions-for-the-holidays-1.aspx" /><id>http://www.cadence.com/Community/blogs/fv/archive/2011/12/20/some-final-real-world-assertions-for-the-holidays-1.aspx</id><published>2011-12-20T16:05:00Z</published><updated>2011-12-20T16:05:00Z</updated><content type="html">&lt;p&gt;My last &amp;quot;real-world assertions&amp;quot; &lt;a href="https://www.cadence.com:443/Community/blogs/fv/archive/2011/11/17/india-needs-real-world-assertions-too.aspx?postID=1305498"&gt;blog post&lt;/a&gt; seems to have tickled a bunch of people with my story about the racy narration at the historic Red Fort in Delhi. I&amp;#39;ve heard from several folks who have also seen the show and had a similar reaction. Just out of curiosity, I did a Web search and found a half-dozen or so other blogs and travelogues with comments similar to mine. Concluding my series, and in the spirit of the holiday season, here are a few final amusing incidents related to shopping that would also have benefitted from assertions. &lt;/p&gt;&lt;p&gt;The first occurred as I was browsing the DVD shelves in &lt;a href="http://superspacecat.com/"&gt;Space Cat Comics&lt;/a&gt;, a San Jose institution that has a big selection of used music and movies in addition to comics and collectables of many kinds. This particular portion of their selection contained bargain releases, primarily movies and TV shows now in the public domain. My attention was drawn to a very inexpensive four-movie collection entitled Hollywood Classics: Alfred Hitchcock. I&amp;#39;m a big fan of Hitchcock&amp;#39;s work so I pulled the DVD off the shelf to take a look. &lt;/p&gt;&lt;p&gt;I was amused to see that the four movies included were The 39 Steps, The Man Who Knew Too Much, Secret Agent, and Sabotage. These are all good titles; in fact The 39 Steps is widely regarded as the first truly great Hitchcock film. However, all four were made in the U.K. in the 1930s, well before producer Davis O. Selznick lured Hitchcock to Hollywood to make Rebecca and start the American phase of his career. These are not &amp;quot;Hollywood classics&amp;quot; at all, and the kicker is that this &lt;a href="http://www.horrormovieszone.com/classics/alfred-hitchcock-hollywood-classics/"&gt;DVD&lt;/a&gt; is released by the &amp;quot;Genius Entertainment&amp;quot; brand. &lt;/p&gt;&lt;p&gt;My second example comes from an email message sent by &lt;a href="https://www.bookbuyers.com/isc/"&gt;BookBuyers&lt;/a&gt; in Mountain View, the largest used bookstore in Silicon Valley. They also have lots of used movies, music, video games, computer software, magazine, comics, and more. I can easily lose track of time and spend hours browsing there. The email message included a discount coupon with the following statement: &lt;/p&gt;&lt;p&gt;&lt;i&gt;Thanks for making Small Business Saturday such a success last week. Many people asked for more time to use their coupons, so... buy one, get one half off again this Friday, Saturday and Sunday, December 3, 4 and 5. &lt;/i&gt;&lt;/p&gt;&lt;p&gt;Of course, the first weekend of December 2011 was actually the 2nd, 3rd, and 4th. The bottom of the message said &amp;quot;Valid 12/2/2011 - 12/4/2011&amp;quot; so it wasn&amp;#39;t even self-consistent. We all make typographical errors, and in past posts I have not elevated garden-variety typos to the status of missing assertions. So why tease a bookstore that I really like? This particular case made me chuckle because BookBuyers is especially well known for having a big selection of calendars at great prices. They seemed like the last folks I would expect to mix up dates. &lt;/p&gt;&lt;p&gt;My final example also involves a typo, but one of the more dramatic I&amp;#39;ve seen in a while. A recent EE Times &lt;a href="http://www.eetimes.com/electronics-news/4233136/Top-10-innovative-USBs-and-peripherals?pageNumber=8"&gt;article&lt;/a&gt; presented a top 10 list of innovative USB devices that might make nice holiday gifts. One of the more unusual entries was the &amp;quot;Infinite USB Memory (IUM)&amp;quot; stick from Infinitec. This USB stick has no actual memory inside; instead it sends the data to a laptop via a wireless link. I&amp;#39;ll admit I had to scratch my head a bit over that concept. If you need to transfer more data than today&amp;#39;s high-capacity USB drives hold, it would take a long time to do so wirelessly. &lt;/p&gt;&lt;p&gt;But what really caught my eye was what appears to be a &lt;a href="http://www.eetimes.com/ContentEETimes/Images/sylvie/infinite2.jpg"&gt;screen shot&lt;/a&gt; in the article. At the top appear the words &amp;quot;Infinte Portal&amp;quot; rather than &amp;quot;Infinite Portal&amp;quot; as one would expect. I checked the company&amp;#39;s site, and the same &lt;a href="http://infinitec.com/ium_drive/how_it_works.php"&gt;image&lt;/a&gt; appears there. Sure, I&amp;#39;ve had my share of embarrassing typos, including in this blog, but the &amp;quot;Infinte&amp;quot; type appears to have been coded into the Infinitec laptap GUI and propagated in many forms. Presumably it was missed by R&amp;amp;D, QA, Product Management, Marketing, Advertising, and more. Again, I just had to chuckle. &lt;/p&gt;&lt;p&gt;This concludes my &amp;quot;real-world assertion&amp;quot; series, and in fact my blogging with Cadence. I truly hope that you have enjoyed reading my posts as much as I&amp;#39;ve enjoyed writing them. I&amp;#39;ll be moving on to new adventures in January. Thanks, and happy holidays everyone! &lt;br /&gt;&lt;br /&gt;Tom A. &lt;br /&gt;&lt;i&gt;The truth is out there...sometimes it&amp;#39;s in a blog.&lt;/i&gt;&lt;/p&gt;&lt;img src="http://www.cadence.com/Community/aggbug.aspx?PostID=1306498" width="1" height="1"&gt;</content><author><name>tomacadence</name><uri>http://www.cadence.com/Community/members/tomacadence.aspx</uri></author><category term="Functional Verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Functional+Verification/default.aspx" /><category term="ABV" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/ABV/default.aspx" /><category term="assertions" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/assertions/default.aspx" /><category term="assertion-based verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/assertion-based+verification/default.aspx" /><category term="real-world assertions" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/real-world+assertions/default.aspx" /><category term="holidays" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/holidays/default.aspx" /></entry><entry><title>Video: Incisive Formal Verifier R&amp;D Leader Pradeep Goyal talks about Expert Formal Use Cases</title><link rel="alternate" type="text/html" href="http://www.cadence.com/Community/blogs/fv/archive/2011/12/19/video-incisive-formal-verifier-r-amp-d-leader-pradeep-goyal-talks-about-expert-formal-use-cases.aspx" /><id>http://www.cadence.com/Community/blogs/fv/archive/2011/12/19/video-incisive-formal-verifier-r-amp-d-leader-pradeep-goyal-talks-about-expert-formal-use-cases.aspx</id><published>2011-12-19T14:00:00Z</published><updated>2011-12-19T14:00:00Z</updated><content type="html">&lt;p&gt;Continuing the series that introduces you to the people that create the tools you use every day, in this video R&amp;amp;D lead for expert-level use cases in &lt;a href="http://www.cadence.com/products/fv/formal_verifier/pages/default.aspx"&gt;Incisive Formal Verifier (a/k/a &amp;quot;IFV&amp;quot;)&lt;/a&gt; Pradeep Goyal talks about the common use cases for &amp;quot;pure&amp;quot; formal users. He also notes how expert-level formal techniques might evolve over the next 5 years -- both alone, and in combination with simulation technologies.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;If the embedded video doesn&amp;#39;t play, &lt;a href="http://youtu.be/5vhR3KVDbGQ"&gt;click here&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Please feel free to ask Pradeep questions via the comments below; or click here to jump to the &lt;a href="http://www.cadence.com/community/members/TeamVerify.aspx"&gt;Team Verify home page&lt;/a&gt; to &amp;quot;send Team Verify a private message&amp;quot; for forwarding to him offline.&lt;/p&gt;&lt;p&gt;Joe Hupcey III&lt;br /&gt;for Team Verify&lt;br /&gt;&lt;br /&gt;On Twitter: http://twitter.com/teamverify, @teamverify&lt;/p&gt;&lt;p&gt;&lt;u&gt;Reference links to prior R&amp;amp;D interviews:&lt;/u&gt;&lt;br /&gt;&lt;a href="http://youtu.be/mbSv5muFV6g"&gt;Distinguished Engineer Alok Jain&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://youtu.be/dlkK2u71bgo"&gt;Incisive Formal R&amp;amp;D team leader Deepak Pant&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://youtu.be/Vgb-iXhWitY"&gt;Incisive Enterprise Verifier R&amp;amp;D Architect Vinaya Singh&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cadence.com/Community/aggbug.aspx?PostID=1306357" width="1" height="1"&gt;</content><author><name>TeamVerify</name><uri>http://www.cadence.com/Community/members/TeamVerify.aspx</uri></author><category term="Functional Verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Functional+Verification/default.aspx" /><category term="Formal Analysis" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Formal+Analysis/default.aspx" /><category term="Model-checking" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Model-checking/default.aspx" /><category term="verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/verification/default.aspx" /><category term="Incisive" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Incisive/default.aspx" /><category term="ABV" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/ABV/default.aspx" /><category term="formal" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/formal/default.aspx" /><category term="IFV" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/IFV/default.aspx" /><category term="assertions" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/assertions/default.aspx" /><category term="formal verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/formal+verification/default.aspx" /><category term="assertion-based verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/assertion-based+verification/default.aspx" /><category term="Joe Hupcey III" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Joe+Hupcey+III/default.aspx" /><category term="Pradeep Goyal" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Pradeep+Goyal/default.aspx" /></entry><entry><title>Early Holiday Present: Sudoku Solver Using Incisive Enterprise Verifier (IEV) and Assertion-Driven Simulation (ADS)</title><link rel="alternate" type="text/html" href="http://www.cadence.com/Community/blogs/fv/archive/2011/12/13/early-holiday-present-sudoku-solver-using-incisive-enterprise-verifier-iev-and-assertion-driven-simulation-ads.aspx" /><id>http://www.cadence.com/Community/blogs/fv/archive/2011/12/13/early-holiday-present-sudoku-solver-using-incisive-enterprise-verifier-iev-and-assertion-driven-simulation-ads.aspx</id><published>2011-12-13T23:30:00Z</published><updated>2011-12-13T23:30:00Z</updated><content type="html">&lt;p&gt;Allow me to interrupt the excellent &lt;a href="http://www.cadence.com/Community/blogs/fv/archive/2011/11/29/video-meet-incisive-enterprise-verifier-r-amp-d-architect-vinaya-singh.aspx"&gt;&amp;quot;Meet R&amp;amp;D&amp;quot; series&lt;/a&gt; to share a small holiday present.&amp;nbsp; &amp;nbsp;On the &lt;a href="http://www.cadence.com/Community/forums/69.aspx"&gt;Functional Verification Shared Code Forum&lt;/a&gt; I&amp;#39;ve just posted a ZIP file with Sudoku solver code for &lt;a href="http://www.cadence.com/products/fv/enterprise_verifier/pages/default.aspx"&gt;Incisive Enterprise Verifier (IEV)&lt;/a&gt;. The file is at &lt;a href="http://www.cadence.com/community/forums/T/21110.aspx"&gt;http://www.cadence.com/community/forums/T/21110.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;u&gt;The Details:&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;First, we map a standard 9x9 Sudoku puzzle into a 9x9 Verilog number array with unknown (X) locations, and then apply 3 sets of PSL assertions to constrain:&lt;/p&gt;&lt;p&gt;&amp;nbsp; a) unique numbers in rows&lt;/p&gt;&lt;p&gt;&amp;nbsp; b) unique numbers in columns&lt;/p&gt;&lt;p&gt;&amp;nbsp; c) unique numbers within squares&lt;/p&gt;&lt;p&gt;The solution is calculated using IEV&amp;#39;s Assertion-Drive Simulation capability -- recall prior posts on &lt;a href="http://www.cadence.com/Community/blogs/fv/archive/2011/05/31/dac-preview-make-assertions-come-alive-with-assertion-driven-simulation.aspx"&gt;how &amp;quot;ADS&amp;quot; works&lt;/a&gt; and &lt;a href="http://www.cadence.com/Community/blogs/fv/archive/2011/07/05/true-stories-of-assertion-driven-simulation-ads-in-the-wild.aspx"&gt;user experiences&lt;/a&gt; -- specifically, we use the &amp;quot;search&amp;quot; command with the results shown in the familiar SimVision waveform viewer.&lt;/p&gt;&lt;p align="center"&gt;&lt;a href="http://www.cadence.com/Community/CSSharedFiles/blogs/fv/Joe_Hupcey_III/JH3_sudoku.JPG"&gt;&lt;img src="http://www.cadence.com/Community/CSSharedFiles/blogs/fv/Joe_Hupcey_III/JH3_sudoku.JPG" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;If the provided Sudoku puzzle has no solution the tool will report a conflict as follows:&lt;/p&gt;&lt;p&gt;&lt;font face="Courier New"&gt;&amp;nbsp; formalverifier: *E,VACNUL: Verification cannot proceed because conflicting constraints have blocked all paths. Remodel your constraints before invoking the tool again.&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Courier New"&gt;&amp;nbsp; formalverifier: *W,SRDEAD: The tool has encountered a deadend state. Use debug -solver -deadend command to view the conflicting constraints.&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Courier New"&gt;&lt;br /&gt;&lt;/font&gt;For example, if we add another numeral &amp;lsquo;6&amp;#39; in column 1 (by adding &amp;quot;s[1][1] = 4&amp;#39;d6&amp;quot;) we will see a message highlighting the constraint in conflict with the Sudoku:&lt;/p&gt;&lt;p&gt;&lt;font face="Courier New"&gt;&amp;nbsp; FormalVerifier&amp;gt; debug -solver -deadend &lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Courier New"&gt;&amp;nbsp; Deadend-state constraints/conditions &lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Courier New"&gt;&amp;nbsp; sudoku.gen_col[1].col_unique, file ../rtl/sudoku_solver.psl, line 18&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;To run the solver code after you unpack &amp;amp; install it:&lt;/p&gt;&lt;p&gt;&lt;font face="Courier New"&gt;% cd iev&lt;br /&gt;% iev -f iev_sudoku.f&lt;/font&gt;&lt;/p&gt;&lt;p&gt;or&lt;/p&gt;&lt;p&gt;&lt;font face="Courier New"&gt;% irun -f irun_sudoku.f&amp;nbsp; &lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;Enjoy!&lt;/p&gt;&lt;p&gt;Joerg Mueller&lt;br /&gt;Solutions Engineer&lt;br /&gt;for Team Verify&lt;/p&gt;&lt;p&gt;On Twitter: http://twitter.com/teamverify, @teamverify&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cadence.com/Community/aggbug.aspx?PostID=1306306" width="1" height="1"&gt;</content><author><name>TeamVerify</name><uri>http://www.cadence.com/Community/members/TeamVerify.aspx</uri></author><category term="PSL" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/PSL/default.aspx" /><category term="ABV" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/ABV/default.aspx" /><category term="SimVision" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/SimVision/default.aspx" /><category term="IEV" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/IEV/default.aspx" /><category term="formal" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/formal/default.aspx" /><category term="formal verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/formal+verification/default.aspx" /><category term="ADS" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/ADS/default.aspx" /><category term="Assertion-Driven Simulation" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Assertion-Driven+Simulation/default.aspx" /><category term="Joerg Mueller" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Joerg+Mueller/default.aspx" /><category term="Sudoku" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Sudoku/default.aspx" /></entry><entry><title>Report on ARM Techcon 2011: Real and Virtual Software Apps, High-Speed Silicon and Lego Hardware</title><link rel="alternate" type="text/html" href="http://www.cadence.com/Community/blogs/fv/archive/2011/12/13/report-on-arm-techcon-2011-real-and-virtual-software-apps-high-speed-silicon-amp-lego-hardware.aspx" /><id>http://www.cadence.com/Community/blogs/fv/archive/2011/12/13/report-on-arm-techcon-2011-real-and-virtual-software-apps-high-speed-silicon-amp-lego-hardware.aspx</id><published>2011-12-13T17:00:00Z</published><updated>2011-12-13T17:00:00Z</updated><content type="html">&lt;p&gt;The acid test of any conference is how long the information and lessons learned linger in your mind after the keynotes, panels, and demos wrap up.&amp;nbsp; Like last year, the 2011 edition of ARM Techcon is passing the test of time.&amp;nbsp; Below are some of the highlights that have stuck with me and/or have been prompted by follow-on news since the event.&lt;/p&gt;&lt;p align="center"&gt;&lt;a href="https://www.cadence.com:443/Community/CSSharedFiles/blogs/fv/Joe_Hupcey_III/JH3_ARM2011.jpg"&gt;&lt;img src="https://www.cadence.com:443/Community/CSSharedFiles/blogs/fv/Joe_Hupcey_III/JH3_ARM2011.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p align="center"&gt;&lt;i&gt;This year&amp;#39;s ARM Techcon highlighted advances on many fronts - &lt;br /&gt;semiconductor tech., business models and &amp;quot;apps&amp;quot;, virtual prototypes, &lt;br /&gt;and record breaking Rubik&amp;#39;s cube solving!&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;u&gt;&lt;br /&gt;&amp;quot;The ARM v. Intel fight just got good&amp;quot;:&lt;/u&gt;&lt;/b&gt; This headline borrowed from &lt;a href="http://gigaom.com/cloud/the-arm-v-intel-fight-just-got-good/"&gt;this short&amp;amp;sweet GigaOm piece&lt;/a&gt; on &lt;a href="http://www.arm.com/about/newsroom/arm-discloses-technical-details-of-the-next-version-of-the-arm-architecture.php"&gt;ARM&amp;#39;s 64 bit architecture announcement&lt;/a&gt; hits the nail on the head whether you are talking about the mobile domain, or the less glamorous server-based processors.&amp;nbsp; Specifically, everywhere you looked at Techcon there was something competitive, if not outright threatening, to &amp;quot;only the paranoid survive&amp;quot; Intel fans.&amp;nbsp;&amp;nbsp; Suffice to say both companies have their work cut out for them in this high-stakes competition that&amp;#39;s unfolding at both the &amp;quot;macro&amp;quot; systems level, as well as the nanometer level (to wit: compare announcements of &lt;a href="http://www.cadence.com/Community/blogs/ii/archive/2011/12/08/arm-techcon-paper-inside-story-of-a-20nm-test-chip-tapeout.aspx"&gt;ARM-based 20 nm test chips&lt;/a&gt; vs. &lt;a href="http://www.eetimes.com/electronics-news/4231282/Intel-14-nm-process-running"&gt;Intel&amp;#39;s tantalizing hints of 14nm processes working in the lab&lt;/a&gt;).&amp;nbsp; &amp;nbsp;On this score it will be interesting to parse through the upcoming CES 2012 product &amp;amp; design win announcements to see how this competition is paying out.&amp;nbsp; &lt;/p&gt;&lt;p&gt;Speaking of semi news from Techcon ...&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;u&gt;Sub-20nm is the Rubicon:&lt;/u&gt;&lt;/b&gt;&amp;nbsp; Long time followers of semiconductor technology are used to periodic &amp;quot;sky is falling&amp;quot; comments (remember the &amp;quot;electromigration crisis&amp;quot;?).&amp;nbsp; However, in two different keynote speeches it was made clear that below 20nm it truly is a brave new world.&amp;nbsp; First, I was struck by the blunt clarity of TSMC&amp;#39;s CEO Dr. Shang-Yi Chiang&amp;#39;s statement that &amp;quot;20nm is the last generation of planar transistor.&amp;quot;&amp;nbsp; Later that morning, &lt;a href="http://www.cadence.com/Community/blogs/ii/archive/2011/10/25/arm-techcon-address-high-stakes-at-low-process-nodes.aspx"&gt;Cadence&amp;#39;s Chi-Ping Hsu&amp;#39;s keynote titled &amp;quot;High Stakes at Low Process Nodes&amp;quot;&lt;/a&gt; drove home the consequences of this statement in a myriad of ways.&amp;nbsp; Perhaps due to my EDA-origins, one 20nm discontinuity that stuck with me is that 20nm design adds more than 400 design rules to the layout process.&amp;nbsp; Reinforcing Dr. Chiang&amp;#39;s statement with a few simple examples of these seemingly contradictory rules, he dramatized how layout is now even more of a 3D chess puzzle than ever.&amp;nbsp; As such, Chi-Ping&amp;#39;s assertion that the &amp;quot;aggregate EDA tool development costs ... are estimated at $400-$500 million at 32/28nm and $800 million - $1.2B at 22/20nm&amp;quot; seem like underestimates, if anything.&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;u&gt;New Avnet &amp;amp; ARM software store shows EDA360 in action:&lt;/u&gt;&lt;/b&gt; &amp;nbsp;When long time component distributor Avnet partners with IP leader ARM to leap into the software services business, you know that the electronics industry&amp;#39;s tectonic plates have shifted by a few yards.&amp;nbsp; Specifically, the announcement of a &lt;a href="http://www.eetimes.com/electronics-news/4230086/ARM--Avnet-launch-embedded-software-store"&gt;new embedded software app store&lt;/a&gt; seems like it was torn out of the pages of the &lt;a href="http://www.cadence.com/downloads/eda360/EDA360_Milestones.pdf"&gt;EDA360 vision document&lt;/a&gt;, where Avnet realized that there is money to be made by enabling their customers to &amp;quot;differentiate silicon with software&amp;quot; as so crisply stated by Harvey Feldberg in his keynote.&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;u&gt;&amp;quot;Look Ma, no hardware&amp;quot; with Virtual Software Prototyping:&lt;/u&gt;&lt;/b&gt;&amp;nbsp; As the many vendors writing apps for the aforementioned embedded software store can no doubt attest, the plethora of processing options and low cost of processors in general are drastically complicating the system development task.&amp;nbsp; Fortunately, virtual prototyping - i.e. complete system models that enable software development and debugging before system hardware is available - took a quantum leap at Techcon with the introduction of the &amp;quot;Virtual System Platform&amp;quot; by my colleague and Cadence R&amp;amp;D Architect Jason Andrews.&amp;nbsp; In his paper on &lt;a href="http://www.cadence.com/Community/blogs/ii/archive/2011/11/21/arm-techcon-paper-using-a-virtual-platform-for-multi-core-software-development.aspx"&gt;&amp;quot;Creation and Usage of SystemC Virtual Platforms for Multi-Core System Debugging and Analysis&amp;quot;&lt;/a&gt;, Jason showed a no-kidding case of how this new platform can simultaneously help everyone from system architects, pure software coders, and RTL developers, get the design and debug information they need in the format that they are most comfortable using.&amp;nbsp; (In addition to the written paper in the &lt;a href="http://e.ubmelectronics.com/armtechcon/proceedings/"&gt;conference&amp;nbsp;proceedings&lt;/a&gt;, a video of Jason&amp;#39;s presentation is publicly &lt;a href="http://youtu.be/4vA_gFZPI64"&gt;available on YouTube&lt;/a&gt;.&amp;nbsp; Jason is an engineer&amp;#39;s engineer, so while the video is 47 minutes it&amp;#39;s no-hype, productive lunchtime viewing.)&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;u&gt;Lego Rubik&amp;#39;s cube robot:&lt;/u&gt;&lt;/b&gt; last but not least, I must again tip my hat to the &lt;a href="http://youtu.be/_d0LfkIut2M"&gt;world-record breaking &amp;quot;CubeStormer II&amp;quot;&lt;/a&gt;.&amp;nbsp; It&amp;#39;s such a fun display of ARM&amp;#39;s expertise that my product team has replicated the idea using our formal verification product as the &amp;quot;brain&amp;quot; of our own (mechanically slower) Lego robot - &lt;a href="http://youtu.be/NEsiBI_a59Q"&gt;coming soon to a trade show near you ...&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Finally, included below are some additional links to high-value ARM Techcon-related articles, blogs, and videos.&lt;br /&gt;&lt;br /&gt;Until next year, may your power consumption be low and your throughput be high!&lt;/p&gt;&lt;p&gt;Joe Hupcey III&lt;/p&gt;&lt;p&gt;Twitter: @jhupcey,&amp;nbsp;&lt;a href="http://twitter.com/jhupcey"&gt;http://twitter.com/jhupcey&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;u&gt;Reference Links&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;u&gt;&lt;br /&gt;&lt;/u&gt;&lt;/b&gt;More from Richard Goering&amp;#39;s &amp;quot;Industry Insights&amp;quot; column: &lt;a href="http://www.cadence.com/Community/blogs/ii/archive/2011/11/03/arm-techcon-coverage-roundup-blogs-videos-and-more.aspx"&gt;ARM TechCon Highlights Roundup - Blogs, Videos, and More&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://eda360insider.wordpress.com/?s=armtechcon"&gt;Highlights from Steve Leibson, the &amp;quot;EDA360 Insider&amp;quot;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;quot;Charbax&amp;#39;s&amp;quot; (a/k/a Nicolas Charbonnier of &lt;a href="http://www.armdevices.net/"&gt;ARMdevices.net&lt;/a&gt;) &lt;a href="http://armdevices.net/category/tradeshows/arm-techcon/"&gt;catalog of ARM Techcon video blog entries&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Gary
Smith: ARM TECHCON 2011 - The Week The World Changed&lt;br /&gt;&lt;a href="http://www.garysmitheda.com/read.php?story=iNotes_106"&gt;http://www.garysmitheda.com/read.php?story=iNotes_106&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;ARM
Chips Away at Intel&amp;#39;s Server Business!&lt;br /&gt;

&lt;a href="http://www.semiwiki.com/forum/content/850-arm-chips-away-intel%92s-server-business.html"&gt;http://www.semiwiki.com/forum/content/850-arm-chips-away-intel%92s-server-business.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;img src="http://www.cadence.com/Community/aggbug.aspx?PostID=1306254" width="1" height="1"&gt;</content><author><name>jvh3</name><uri>http://www.cadence.com/Community/members/jvh3.aspx</uri></author><category term="ARM" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/ARM/default.aspx" /><category term="Jason Andrews" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Jason+Andrews/default.aspx" /><category term="EDA360" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/EDA360/default.aspx" /><category term="Lego" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Lego/default.aspx" /><category term="robot" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/robot/default.aspx" /><category term="Rubik's Cube" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Rubik_2700_s+Cube/default.aspx" /><category term="Joe Hupcey III" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Joe+Hupcey+III/default.aspx" /><category term="VSP" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/VSP/default.aspx" /><category term="Virtual System Platform" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Virtual+System+Platform/default.aspx" /><category term="20nm" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/20nm/default.aspx" /><category term="YouTube" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/YouTube/default.aspx" /><category term="Steve Leibson" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Steve+Leibson/default.aspx" /><category term="ARM TechCon" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/ARM+TechCon/default.aspx" /><category term="14nm" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/14nm/default.aspx" /><category term="Charbax" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Charbax/default.aspx" /><category term="Richard Goering" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Richard+Goering/default.aspx" /><category term="Chi-Ping Hsu" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Chi-Ping+Hsu/default.aspx" /></entry><entry><title>Embracing Our Competitors with the Connections Program</title><link rel="alternate" type="text/html" href="http://www.cadence.com/Community/blogs/fv/archive/2011/12/06/embracing-our-competitors-with-the-connections-program.aspx" /><id>http://www.cadence.com/Community/blogs/fv/archive/2011/12/06/embracing-our-competitors-with-the-connections-program.aspx</id><published>2011-12-06T23:00:00Z</published><updated>2011-12-06T23:00:00Z</updated><content type="html">In my last blog &lt;a href="http://www.cadence.com/community/blogs/fv/archive/2011/11/29/secrets-of-the-verification-alliance.aspx?postID=1305777"&gt;post&lt;/a&gt;,
I described the Cadence Verification Alliance (VA) and how it provides value to
customers, VA members, and us. I&amp;#39;ve been pleasantly surprised at the readership
numbers given that this is what radio commentator Paul Harvey used to call
&amp;quot;shop talk&amp;quot; when he discussed his own industry. I believe it&amp;#39;s important for
EDA users to know that their vendors and ecosystem partners put a great deal of
effort into working together. We don&amp;#39;t do this work just to sit around and sing
&amp;quot;Kumbaya&amp;quot; with our competitors -- we do it because our customers need us to do it. &lt;p&gt;The truth is that very few customers have a single-vendor
EDA environment. For any number of technical or business reasons they have
tools, design IP, verification IP, and libraries from multiple sources. Users
look to the EDA industry to reduce their integration effort by validating that
products from different vendors interoperate and work well together. Virtually
all EDA vendors have agreements with complementary suppliers as well as
competitors, often exchanging tools so that each pair of products linked together
can be validated by both vendors. &lt;/p&gt;

&lt;p&gt;At Cadence, our EDA interoperability program is called
Connections, and it&amp;#39;s one of the largest such alliances in the industry. We
have roughly 80 &lt;a href="http://www.cadence.com/alliances/connections/pages/default.aspx"&gt;member&lt;/a&gt;
companies today; that number moves up and down a bit over time as existing
companies merge or fail and as new startups emerge. Scan through the list, and
you&amp;#39;ll see that we are quite inclusive. Many Connections members have products
that are directly competitive with Cadence offerings, but that is not a
fundamental barrier to joining the program. As noted above, we do what our customers
need us to do. &lt;/p&gt;

&lt;p&gt;The most important criterion for joining Connections is
identification of mutual customers who are asking for the interoperability testing
possible only when two vendors exchange tools. Sure, I would love it if every
one of our simulation customers used only Cadence solutions. But that&amp;#39;s not
reality; we have some &lt;b&gt;&lt;i&gt;e&lt;/i&gt;&lt;/b&gt; customers who run Specman with
other simulators, some mixed-signal customers who run our digital simulator
with someone else&amp;#39;s analog simulator, and vice-versa. We always try to offer a
better combined solution ourselves, but that will never satisfy everyone. &lt;/p&gt;

&lt;p&gt;Of course, there are also some Connections members whose
products are mostly or entirely complementary with ours. In my series on
automatic assertions I mentioned &lt;a href="http://www.cadence.com/community/blogs/fv/archive/2011/04/25/why-can-t-you-write-my-assertions-for-me-part-2.aspx"&gt;NextOp&lt;/a&gt;
and &lt;a href="http://www.cadence.com/community/blogs/fv/archive/2011/05/04/why-can-t-you-write-my-assertions-for-me-part-3.aspx"&gt;Zocalo&lt;/a&gt;
as examples of vendors in this space, and we recently presented a joint Webinar
with &lt;a href="http://www.duolog.com/duolog-and-cadence-to-present-joint-webinar-on-automated-uvm-solutions-to-common-hwsw-integration-problems/"&gt;Duolog&lt;/a&gt;.
All three companies are in Connections and are fine examples of partners with
complementary offerings and with whom we do joint marketing activities. If we
can offer customers a broader solution by working together with another vendor,
we&amp;#39;re glad to do so. &lt;/p&gt;

&lt;p&gt;If you haven&amp;#39;t read about EDA alliances before, you may be
surprised that we have so many of each other&amp;#39;s tools. The agreements are
carefully written so that we don&amp;#39;t reverse-engineer our competitor&amp;#39;s products
or otherwise take unfair advantage of having them. In my dozen years in EDA, I
can recall only one incident in which a partner blatantly violated such an
agreement by benchmarking my company&amp;#39;s tool against their own competitive
offering. That&amp;#39;s the exception; these alliances work because we focus on
interoperability testing (only) for the benefit of our mutual customers. &lt;/p&gt;

&lt;p&gt;So now I&amp;#39;ve shared the &amp;quot;secrets&amp;quot; of both the &lt;a href="http://www.cadence.com/community/blogs/fv/archive/2011/11/29/secrets-of-the-verification-alliance.aspx?postID=1305777"&gt;Verification
Alliance&lt;/a&gt; and the Connections Program. You can read about a closely related
program, the &lt;a href="http://www.cadence.com/community/blogs/sd/archive/2010/07/21/eda360-system-realization-collaboration.aspx"&gt;System
Realization Alliance&lt;/a&gt;, from my colleague Steve Brown and see the complete
scope of our ecosystem activities on our Web &lt;a href="http://www.cadence.com/Alliances/Pages/default.aspx"&gt;site&lt;/a&gt;. If you
have any questions or wish to suggest additional partners or ideas for
alliances, please comment. As you can imagine, we bloggers are a lot happier
when we see a few comments rolling in, so don&amp;#39;t be shy!&lt;/p&gt;

&lt;p&gt;Tom A.&lt;/p&gt;



&lt;p&gt;&lt;i&gt;The truth is out there...sometimes
it&amp;#39;s in a blog.&lt;/i&gt;&lt;/p&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cadence.com/Community/aggbug.aspx?PostID=1306011" width="1" height="1"&gt;</content><author><name>tomacadence</name><uri>http://www.cadence.com/Community/members/tomacadence.aspx</uri></author><category term="Functional Verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Functional+Verification/default.aspx" /><category term="VIP" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/VIP/default.aspx" /><category term="verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/verification/default.aspx" /><category term="EDA360" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/EDA360/default.aspx" /><category term="Duolog" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Duolog/default.aspx" /><category term="NextOp" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/NextOp/default.aspx" /><category term="Zocalo" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Zocalo/default.aspx" /><category term="verification alliance" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/verification+alliance/default.aspx" /><category term="VA" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/VA/default.aspx" /><category term="partnerships" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/partnerships/default.aspx" /><category term="collaboration" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/collaboration/default.aspx" /><category term="Connections" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Connections/default.aspx" /><category term="interoperability" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/interoperability/default.aspx" /></entry><entry><title>Holiday Idea #1:  Give the Gift of UVM Knowledge</title><link rel="alternate" type="text/html" href="http://www.cadence.com/Community/blogs/fv/archive/2011/12/06/holiday-idea-1-give-the-gift-of-uvm-knowledge.aspx" /><id>http://www.cadence.com/Community/blogs/fv/archive/2011/12/06/holiday-idea-1-give-the-gift-of-uvm-knowledge.aspx</id><published>2011-12-06T21:00:00Z</published><updated>2011-12-06T21:00:00Z</updated><content type="html">&lt;p&gt;Your favorite verification engineer has been good all year.&amp;nbsp; Thousands of tests run. Nights and weekends of debug.&amp;nbsp; So how do reward her? Why, with &lt;a href="http://www.cadence.com/Training/NA/Pages/coursedetails.aspx?componentID=ES_84497_1.0" target="_blank"&gt;UVM Training&lt;/a&gt;, of course!&lt;/p&gt;&lt;p&gt;Cadence experts have trained hundreds of engineers on OVM and UVM.&amp;nbsp; These trainers have deep knowledge in both the methodology and the Incisive simulators that run it.&amp;nbsp; They track the latest activities in the &lt;a href="http://www.accellera.org" target="_blank"&gt;Accellera Systems Initiative&lt;/a&gt; standards committee, and the latest releases from that group,&amp;nbsp;to keep their training on the leading edge.&amp;nbsp; Each of the trainers avidly read and contribute to the &lt;a href="http://www.uvmworld.org" target="_blank"&gt;UVM World&lt;/a&gt; forums to understand current issues and to share their knowledge.&amp;nbsp; Whether you attend a standard Cadence UVM training class or a custom one, you are in good hands.&lt;/p&gt;&lt;p style="word-spacing:0px;text-transform:none;color:#3f3f3f;text-indent:0px;white-space:normal;letter-spacing:normal;background-color:#ffffff;orphans:2;widows:2;"&gt;The course begins with a short review of SystemVerilog classes and class constructs, together with an overview of object-oriented concepts and features.&lt;/p&gt;&lt;p style="word-spacing:0px;text-transform:none;color:#3f3f3f;text-indent:0px;white-space:normal;letter-spacing:normal;background-color:#ffffff;orphans:2;widows:2;"&gt;The reminder of the course describes the Universal Verification Methodology (UVM) class library, which provides the building blocks and infrastructure for a verification environment, and defines a methodology to show how the class library can be used to create powerful, reusable UVM Verification Components (UVCs) based on a standard architecture.&lt;/p&gt;&lt;p style="word-spacing:0px;text-transform:none;color:#3f3f3f;text-indent:0px;white-space:normal;letter-spacing:normal;background-color:#ffffff;orphans:2;widows:2;"&gt;UVM is the Accellera standard replacement for OVM (Open Verification Methodology), a class-based verification library and reuse methodology for SystemVerilog&amp;reg;. UVM is supported and endorsed by almost all EDA vendors, including Cadence, Mentor, and Synopsys. The UVM class library provides the basic building blocks for creating verification data and components. The UVM methodology allows engineers to quickly develop powerful, reusable, and scalable object-oriented verification environments. It also shows how to combine multiple UVCs into a full verification environment.&lt;/p&gt;&lt;p style="word-spacing:0px;text-transform:none;color:#3f3f3f;text-indent:0px;white-space:normal;letter-spacing:normal;background-color:#ffffff;orphans:2;widows:2;"&gt;&lt;b style="color:#3f3f3f;"&gt;Learning Objectives&lt;/b&gt;&lt;/p&gt;&lt;p style="word-spacing:0px;text-transform:none;color:#3f3f3f;text-indent:0px;white-space:normal;letter-spacing:normal;background-color:#ffffff;orphans:2;widows:2;"&gt;&lt;b style="color:#3f3f3f;"&gt;After completing this course you will be able to:&lt;/b&gt;&lt;/p&gt;&lt;ul style="list-style-position:outside;word-spacing:0px;text-transform:none;color:#3f3f3f;text-indent:0px;white-space:normal;list-style-type:disc;letter-spacing:normal;background-color:#ffffff;orphans:2;widows:2;"&gt;&lt;li style="font-size:12px;color:#3f3f3f;"&gt;Review SystemVerilog class-based features and to examine the use of dynamic class instances to create both data objects and verification components.&lt;/li&gt;&lt;li style="font-size:12px;color:#3f3f3f;"&gt;Explore the features and capabilities of the UVM class library for SystemVerilog.&lt;/li&gt;&lt;li style="font-size:12px;color:#3f3f3f;"&gt;Define and explain a clear, proven methodology for creating reusable, scalable and robust verification components.&lt;/li&gt;&lt;li style="font-size:12px;color:#3f3f3f;"&gt;Gain hands-on experience of how the UVM class library can be used to implement a verification environment based on the methodology above.&lt;/li&gt;&lt;/ul&gt;&lt;p style="font-size:12px;color:#3f3f3f;"&gt;So if you are in a bind and your favorite verification engineer has a hankerin&amp;#39; to stay on the leading edge, give them the gift of Cadence UVM training this holiday season. &lt;a href="http://www.cadence.com/Training/NA/Pages/coursedetails.aspx?componentID=ES_84497_1.0"&gt;Click here&lt;/a&gt; for more details. &lt;/p&gt;&lt;p style="font-size:12px;color:#3f3f3f;"&gt;Adam Sherer &lt;/p&gt;&lt;p&gt;.&amp;nbsp; &lt;/p&gt;&lt;img src="http://www.cadence.com/Community/aggbug.aspx?PostID=1306054" width="1" height="1"&gt;</content><author><name>Adam Sherilog</name><uri>http://www.cadence.com/Community/members/Adam-Sherilog.aspx</uri></author><category term="OVM" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/OVM/default.aspx" /><category term="IES" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/IES/default.aspx" /><category term="IES-XL" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/IES-XL/default.aspx" /><category term="uvm" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/uvm/default.aspx" /><category term="Accellera VIP TSC" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Accellera+VIP+TSC/default.aspx" /><category term="Incisive Enterprise Simulator" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Incisive+Enterprise+Simulator/default.aspx" /><category term="UVM training" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/UVM+training/default.aspx" /></entry><entry><title>Secrets of the (Verification) Alliance</title><link rel="alternate" type="text/html" href="http://www.cadence.com/Community/blogs/fv/archive/2011/11/29/secrets-of-the-verification-alliance.aspx" /><id>http://www.cadence.com/Community/blogs/fv/archive/2011/11/29/secrets-of-the-verification-alliance.aspx</id><published>2011-11-29T23:00:00Z</published><updated>2011-11-29T23:00:00Z</updated><content type="html">In a recent&amp;nbsp;&lt;a href="https://www.cadence.com:443/Community/blogs/fv/archive/2011/10/28/verification-and-the-need-for-collaboration.aspx?postID=1304841"&gt;post&lt;/a&gt;, I discussed the need for cross-vendor cooperation in EDA, especially in my world
of functional verification. It takes a blend of innovative technologies and
methodologies to verify a modern system-on-chip (SoC). Customers also need
training, consulting services to fill short-term needs or expand current skill
sets, and providers of verification IP (VIP) for multiple purposes. As we say
on our Web site, no one company can do it alone. Both the Cadence Connections
program for EDA vendors and our &lt;a href="http://www.cadence.com/Alliances/verificationalliance/pages/default.aspx"&gt;Verification Alliance&lt;/a&gt; (VA) provide solutions. 

&lt;p&gt;I mentioned in my post that I lead the VA program, so
I&amp;#39;d like to talk about it a bit more and discuss why many of you readers should
care about this alliance. I&amp;#39;ll start with a bit of history: the VA was started
more than ten years ago by &lt;a href="http://web.archive.org/web/20030612063147/http:/verisity.com/"&gt;Verisity
Design&lt;/a&gt; as a way to rally partners around their innovative &lt;b&gt;&lt;i&gt;e&lt;/i&gt;&lt;/b&gt;
verification language. The VA contained numerous companies providing training
and consulting services for &lt;b&gt;&lt;i&gt;e&lt;/i&gt;&lt;/b&gt;-based verification. These partners
played an important role in helping customers get up to speed on the language
and object-oriented programming. &lt;/p&gt;

&lt;p&gt;One critical segment of the VA was the partners providing
VIP. The SoCs that were verified with Verisity&amp;#39;s Specman Elite tool often contained
standard interfaces. Licensing robust &lt;b&gt;&lt;i&gt;e&lt;/i&gt;&lt;/b&gt; VIP saved customers considerable
time and effort while increasing confidence in the implementation of the
standards. The range of protocols required was more than any one small company
could provide, so Verisity proactively built a VIP ecosystem within VA. After Cadence acquired Verisity in 2005, the focus of the VA
program broadened to include companies with expertise in SystemVerilog,
SystemC, and formal analysis. &lt;/p&gt;&lt;p&gt;Today the Verification Alliance remains very much alive and
active. There are currently more than 40 &lt;a href="https://www.cadence.com:443/Alliances/verificationalliance/pages/default.aspx"&gt;members&lt;/a&gt; spanning 14 counties, ranging from solo consultants to some rather large firms. As the primary
approver for membership, I actively seek appropriate companies and invite them
to join. We typically provide a few copies of relevant products so that members
can train their staffs on Cadence verification solutions. Every year we license
several million dollars&amp;#39; worth of our products to our VA partners in exchange
for a small fee.&lt;/p&gt;

&lt;p&gt;So what do we get in return? In cases where a VA member is a
product company, they may provide reciprocal copies of their tools or VIP. The
VA consulting and training companies offer a trusty place to send our customers
who might benefit from their services. Sure, Cadence has consulting and
training services too, but we can&amp;#39;t always satisfy every demand in every corner
of the world so the VA partners are a welcome backup. As experts in their
fields, many VA partners also provide feedback to help us improve our solutions
for our customers. &lt;/p&gt;

&lt;p&gt;Finally, we actively look for opportunities to work with our
partners in public events, especially those reporting on mutual customer
success. For example, Oski Technology gave a presentation at the Design Automation Conference (DAC) last year on a consulting &lt;a href="http://www.youtube.com/watch?v=H-QNR8agW4A"&gt;project&lt;/a&gt;
for Cisco. Using Cadence&amp;#39;s formal-analysis tools, they successfully verified a
complex statistics block in only 3 months versus the 18 months projected for
simulation. As another example, when we launched the &lt;a href="http://www.uvmworld.org/"&gt;UVM World&lt;/a&gt; site we called on VA partners to
endorse it, contribute content, and later present at the DAC UVM booth. &lt;/p&gt;

&lt;p&gt;I could give lots more examples (AMIQ presenting at
CDNLive!, joint seminars with Doulos, etc.) but I&amp;#39;m sure that you get the
point. The Verification Alliance is an essential program with many proven
benefits to customers, partners, and Cadence. It&amp;#39;s a big deal for me, but it&amp;#39;s
just one of six major &lt;a href="https://www.cadence.com:443/Alliances/pages/default.aspx"&gt;alliance programs&lt;/a&gt; here
at Cadence. In my next post I&amp;#39;ll pass on some information and thoughts about
the Connections Program. Until then, please let me know if you have any questions
about the VA program or any of its members.&lt;/p&gt;

&lt;p&gt;Tom A.&lt;/p&gt;



&lt;p&gt;&lt;i&gt;The truth is out there...sometimes
it&amp;#39;s in a blog.&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cadence.com/Community/aggbug.aspx?PostID=1305777" width="1" height="1"&gt;</content><author><name>tomacadence</name><uri>http://www.cadence.com/Community/members/tomacadence.aspx</uri></author><category term="Functional Verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Functional+Verification/default.aspx" /><category term="VIP" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/VIP/default.aspx" /><category term="Doulos" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Doulos/default.aspx" /><category term="Specman" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Specman/default.aspx" /><category term="EDA" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/EDA/default.aspx" /><category term="verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/verification/default.aspx" /><category term="AMIQ" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/AMIQ/default.aspx" /><category term="uvm" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/uvm/default.aspx" /><category term="EDA360" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/EDA360/default.aspx" /><category term="verification alliance" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/verification+alliance/default.aspx" /><category term="VA" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/VA/default.aspx" /><category term="partnerships" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/partnerships/default.aspx" /><category term="collaboration" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/collaboration/default.aspx" /><category term="Oski" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Oski/default.aspx" /><category term="VAalliance" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/VAalliance/default.aspx" /><category term="Verisity" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Verisity/default.aspx" /></entry><entry><title>Video: Meet Incisive Enterprise Verifier R&amp;D Architect Vinaya Singh</title><link rel="alternate" type="text/html" href="http://www.cadence.com/Community/blogs/fv/archive/2011/11/29/video-meet-incisive-enterprise-verifier-r-amp-d-architect-vinaya-singh.aspx" /><id>http://www.cadence.com/Community/blogs/fv/archive/2011/11/29/video-meet-incisive-enterprise-verifier-r-amp-d-architect-vinaya-singh.aspx</id><published>2011-11-29T22:30:00Z</published><updated>2011-11-29T22:30:00Z</updated><content type="html">&lt;p&gt;Continuing the series of introducing you to the people that create the tools you use every day, in this video the R&amp;amp;D Architect of &lt;a href="https://www.cadence.com:443/products/fv/enterprise_verifier/pages/default.aspx"&gt;Incisive Enterprise Verifier (a/k/a &amp;quot;IEV&amp;quot;)&lt;/a&gt; Vinaya Singh talks about the advantages of combining formal and simulation technologies, the most common misconceptions people have about mixing the two, and where this technology might go in 5 years time (preview: beyond RTL verification!).&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;If the embedded video doesn&amp;#39;t play, &lt;a href="http://youtu.be/Vgb-iXhWitY"&gt;click here&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Please feel free to ask Vinaya questions via the comments below; or click here to jump to &lt;a href="https://www.cadence.com:443/community/members/TeamVerify.aspx"&gt;the Team Verify home page&lt;/a&gt; to &amp;quot;send Team Verify a private message&amp;quot; for forwarding to Vinaya offline.&lt;/p&gt;&lt;p&gt;Joe Hupcey III&lt;br /&gt;for Team Verify&lt;br /&gt;&lt;br /&gt;On Twitter: http://twitter.com/teamverify, @teamverify&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;u&gt;Reference links to prior R&amp;amp;D interviews:&lt;/u&gt;&lt;br /&gt;&lt;a href="http://youtu.be/mbSv5muFV6g"&gt;Distinguished Engineer Alok Jain&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://youtu.be/dlkK2u71bgo"&gt;Incisive Formal R&amp;amp;D team leader Deepak Pant&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cadence.com/Community/aggbug.aspx?PostID=1305815" width="1" height="1"&gt;</content><author><name>TeamVerify</name><uri>http://www.cadence.com/Community/members/TeamVerify.aspx</uri></author><category term="Functional Verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Functional+Verification/default.aspx" /><category term="Formal Analysis" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Formal+Analysis/default.aspx" /><category term="ABV" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/ABV/default.aspx" /><category term="IEV" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/IEV/default.aspx" /><category term="formal" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/formal/default.aspx" /><category term="assertions" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/assertions/default.aspx" /><category term="formal verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/formal+verification/default.aspx" /><category term="assertion-based verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/assertion-based+verification/default.aspx" /><category term="Joe Hupcey III" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Joe+Hupcey+III/default.aspx" /><category term="Assertion-Driven Simulation" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Assertion-Driven+Simulation/default.aspx" /><category term="video" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/video/default.aspx" /><category term="Vinaya Singh" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Vinaya+Singh/default.aspx" /></entry><entry><title>Update to the OVM Register Package</title><link rel="alternate" type="text/html" href="http://www.cadence.com/Community/blogs/fv/archive/2011/11/29/update-to-the-ovm-register-package.aspx" /><id>http://www.cadence.com/Community/blogs/fv/archive/2011/11/29/update-to-the-ovm-register-package.aspx</id><published>2011-11-29T14:00:00Z</published><updated>2011-11-29T14:00:00Z</updated><content type="html">&lt;p&gt;OVM users have something new to give thanks for this holiday season -- an update to the &lt;a target="_blank" href="http://www.cadence.com/Community/CSSharedFiles/blogs/fv/adam_sherer/ovm_rgm_2.7.1.tar.gz"&gt;OVM Register Package&lt;/a&gt;&amp;nbsp;(new link!!). This package is used by novice and advanced users and embodies years of experience gathered through hundreds of SystemVerilog projects.&lt;/p&gt;&lt;p&gt;The Cadence genIES team has been remiss since the demise of&amp;nbsp;the OVM World, which left the OVM community to use OVM_RGM 2.5.&amp;nbsp; We did try to post to &lt;a target="_blank" href="http://www.uvmworld.org"&gt;UVM World&lt;/a&gt;, but that is really dedicated to the UVM.&amp;nbsp; Therefore, we will be picking up the contribution thread and maintaining the Cadence contributions to the OVM here.&amp;nbsp;&amp;nbsp;By&amp;nbsp;far the most popular is the register package so we are posting the latest version 2.7.1&amp;nbsp;here.&amp;nbsp; We&amp;#39;ve included the release notes from 2.6, 2.7, and 2.7.1 to&amp;nbsp;bring you all up to date.&amp;nbsp;&amp;nbsp;Of course, the complete release note history is in the tarball.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Release Notes for OVM_RGM2.7.1&lt;br /&gt;Nov 18, 2011&lt;/p&gt;&lt;p&gt;** Bug Fixed:&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;macr;&amp;macr;&amp;macr;&amp;macr;&amp;macr;&amp;macr;&amp;macr;&amp;macr;&amp;macr;&amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;curren; Fixed issue with backdoor read for special read fields&lt;br /&gt;&amp;nbsp; &amp;curren; Fixed issue with sync for special read fields&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Release Notes for OVM_RGM2.7&lt;br /&gt;Sept 21, 2011&lt;/p&gt;&lt;p&gt;** Bug Fixed:&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;macr;&amp;macr;&amp;macr;&amp;macr;&amp;macr;&amp;macr;&amp;macr;&amp;macr;&amp;macr;&amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;curren; Walking one sequence did not create the regOp when writing&lt;br /&gt;&amp;nbsp; &amp;curren; Mode based register enum field macro having wrong case statement&lt;br /&gt;&amp;nbsp; &amp;curren; Typo in DPI file (vhpiHandleT changed to vpiHandle)&lt;br /&gt;&amp;nbsp; &amp;curren; Check for address overlap for indirect / shared and mode-based corrected&lt;/p&gt;&lt;p&gt;** Enhancements:&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;macr;&amp;macr;&amp;macr;&amp;macr;&amp;macr;&amp;macr;&amp;macr;&amp;macr;&amp;macr;&amp;macr;&amp;macr;&amp;macr;&amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;curren; Added support for mode based registers having separate storage&lt;/p&gt;&lt;p&gt;Release Notes for OVM_RGM2.6.1&lt;br /&gt;Aug 18, 2011&lt;/p&gt;&lt;p&gt;** Bug Fixed:&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;macr;&amp;macr;&amp;macr;&amp;macr;&amp;macr;&amp;macr;&amp;macr;&amp;macr;&amp;macr;&amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;curren; Fixed issue with syncing to VHDL&lt;br /&gt;&amp;nbsp; &amp;curren; Register overlap check error with end address&lt;br /&gt;&amp;nbsp; &amp;curren; Backdoor read of register fields was not properly masked&lt;br /&gt;&amp;nbsp; &amp;curren; Filtering of registers having unknown value is now only for rd_all regs seq&lt;/p&gt;&lt;p&gt;** Enhancements:&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;macr;&amp;macr;&amp;macr;&amp;macr;&amp;macr;&amp;macr;&amp;macr;&amp;macr;&amp;macr;&amp;macr;&amp;macr;&amp;macr;&amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;curren; Allowed backdoor write to read-only fields &lt;br /&gt;&amp;nbsp; &amp;curren; Allowed register&amp;#39;s reset value over-ride using plusArgs&lt;br /&gt;&amp;nbsp; &amp;curren; Added register array delete at the end of built-in-seq&lt;br /&gt;&amp;nbsp; &amp;curren; Added support field-level backdoor access for shared register&lt;br /&gt;&amp;nbsp; &amp;curren; Modified shared_reg_backdoor example and added ipxact file&lt;br /&gt;&amp;nbsp; &amp;curren; Removed all uvm deprication warnings from examples&lt;br /&gt;&amp;nbsp; &amp;curren; Added more support for VHDL backdoor std_ulogic_[ports|signals|vector_signals] &lt;br /&gt;&amp;nbsp; &amp;curren; Modified all headers of XML files to get schema from http&lt;br /&gt;&amp;nbsp; &amp;curren; Added objection to built-in-sequences&lt;br /&gt;&amp;nbsp; &amp;curren; Added a global field to mask-out comparison of all non-read-write fields&lt;br /&gt;&amp;nbsp; &amp;curren; Added a global field to enable warning when accessed address is outside container&lt;/p&gt;&lt;p&gt;&amp;nbsp;=Incisive genIES Team&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cadence.com/Community/aggbug.aspx?PostID=1305627" width="1" height="1"&gt;</content><author><name>Team genIES</name><uri>http://www.cadence.com/Community/members/Team-genIES.aspx</uri></author><category term="Functional Verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Functional+Verification/default.aspx" /><category term="OVM" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/OVM/default.aspx" /><category term="OVMWorld" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/OVMWorld/default.aspx" /><category term="IES" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/IES/default.aspx" /><category term="Register Package" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Register+Package/default.aspx" /><category term="IP-XACT" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/IP-XACT/default.aspx" /><category term="verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/verification/default.aspx" /><category term="Incisive" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Incisive/default.aspx" /><category term="uvm" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/uvm/default.aspx" /></entry><entry><title>Video: Meet Formal and ABV R&amp;D Team Leader Deepak Pant</title><link rel="alternate" type="text/html" href="http://www.cadence.com/Community/blogs/fv/archive/2011/11/22/video-meet-formal-and-abv-r-amp-d.aspx" /><id>http://www.cadence.com/Community/blogs/fv/archive/2011/11/22/video-meet-formal-and-abv-r-amp-d.aspx</id><published>2011-11-22T19:00:00Z</published><updated>2011-11-22T19:00:00Z</updated><content type="html">&lt;p&gt;Inspired by the positive response to my &lt;a href="https://www.cadence.com:443/Community/blogs/fv/archive/2011/01/23/video-distinguished-engineer-alok-jain-on-formal-amp-assertion-based-verification-abv-today-and-tomorrow.aspx"&gt;interview of Formal R&amp;amp;D Distinguished Engineer Alok Jain&lt;/a&gt;, while I was &lt;a href="https://www.cadence.com:443/Community/blogs/fv/archive/2011/11/07/report-on-cdnlive-india-2011-provocative-keynotes-detailed-papers-and-robots.aspx"&gt;in India for CDNLive!&lt;/a&gt; I jumped at the opportunity to introduce to this community to more leaders in our R&amp;amp;D organization -- people that directly drive the development of the tools you use every day.&amp;nbsp; Hence, in this video &lt;a href="https://www.cadence.com:443/products/fv/enterprise_verifier/pages/default.aspx"&gt;Incisive Formal&lt;/a&gt; R&amp;amp;D team leader Deepak Pant talks about how formal has gone well beyond basic, IP-level verification, and how the concept of coverage can extend to formal -- both for debugging formal constraints as well as for simulation-style progress measurement and coverage unreachability.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;If the embedded video doesn&amp;#39;t play, &lt;a href="http://youtu.be/dlkK2u71bgo"&gt;click here&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Please feel free to ask Deepak questions via the comments below; or click here to jump to &lt;a href="https://www.cadence.com:443/community/members/TeamVerify.aspx"&gt;the Team Verify home page&lt;/a&gt; and&amp;nbsp;click on&amp;nbsp;&amp;quot;Send Team Verify a private message&amp;quot; for forwarding to Deepak offline.&lt;/p&gt;&lt;p&gt;Joe Hupcey III&lt;br /&gt;for Team Verify&lt;br /&gt;&lt;br /&gt;On Twitter: http://twitter.com/teamverify, @teamverify&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cadence.com/Community/aggbug.aspx?PostID=1305573" width="1" height="1"&gt;</content><author><name>TeamVerify</name><uri>http://www.cadence.com/Community/members/TeamVerify.aspx</uri></author><category term="Functional Verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Functional+Verification/default.aspx" /><category term="Formal Analysis" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Formal+Analysis/default.aspx" /><category term="metric driven verification (MDV)" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/metric+driven+verification+_2800_MDV_2900_/default.aspx" /><category term="ABV" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/ABV/default.aspx" /><category term="IEV" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/IEV/default.aspx" /><category term="formal" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/formal/default.aspx" /><category term="IFV" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/IFV/default.aspx" /><category term="Alok Jain" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Alok+Jain/default.aspx" /><category term="assertions" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/assertions/default.aspx" /><category term="formal verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/formal+verification/default.aspx" /><category term="assertion-based verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/assertion-based+verification/default.aspx" /><category term="ADS" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/ADS/default.aspx" /><category term="video" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/video/default.aspx" /><category term="Deepak Pant" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Deepak+Pant/default.aspx" /></entry><entry><title>India Needs Real-World Assertions Too</title><link rel="alternate" type="text/html" href="http://www.cadence.com/Community/blogs/fv/archive/2011/11/17/india-needs-real-world-assertions-too.aspx" /><id>http://www.cadence.com/Community/blogs/fv/archive/2011/11/17/india-needs-real-world-assertions-too.aspx</id><published>2011-11-18T01:09:00Z</published><updated>2011-11-18T01:09:00Z</updated><content type="html">I&amp;#39;ve just returned from a week-long trip to India, spending
most of my time at the Cadence R&amp;amp;D center in Noida. I was last there a year
ago for our CDNLive! India 2010 event, a great show that prompted me to write a
glowing blog &lt;a href="http://www.cadence.com/community/blogs/fv/archive/2010/11/18/does-it-get-any-better-than-cdnlive-india.aspx"&gt;post&lt;/a&gt;.
This year&amp;#39;s show was &lt;a href="http://www.cadence.com/community/blogs/fv/archive/2011/11/07/report-on-cdnlive-india-2011-provocative-keynotes-detailed-papers-and-robots.aspx?postID=1305156"&gt;covered&lt;/a&gt;
admirably by my colleague Joe Hupcey, which was fine with me since traveling to
India twice in three weeks would be tough even for us seasoned road warriors.
This time my focus was strictly on product development and deployment, topics
that consumed a full week very easily.

&lt;p&gt;It&amp;#39;s amazing how much my Indian experience has changed since
I had my first R&amp;amp;D site there 15 years ago. In those days we had a small
office suite leased from a tile manufacturing company, one window air
conditioner that didn&amp;#39;t really keep the place cool, a single speakerphone
shared by the entire staff, and dial-up Internet access so unreliable that we
sent floppy discs through the mail rather than trying to send source code via
FTP. When the power went out, typically 2-3 times a day, we would start up a noisy
gas-fired generator out on the balcony.&lt;/p&gt;

&lt;p&gt;To be fair, at the time I worked for a startup and doubtless
larger companies had somewhat better offices. But today the Cadence Noida site
is the peer of any in the world, not just in physical facilities but also in
terms of engineering talent and productivity. I really enjoy visiting India,
and our team in particular. But I didn&amp;#39;t start this blog post just to talk
about my trip. Along the way I had a few experiences that reminded me yet again
that the real world seems to be missing assertions that would prevent some
illogical situations from arising.&lt;/p&gt;

&lt;a href="http://www.cadence.com/Community/CSSharedFiles/blogs/fv/Tom_Anderson/Comments.JPG"&gt;&lt;img src="http://www.cadence.com/Community/CSSharedFiles/blogs/fv/Tom_Anderson/Comments.JPG" align="right" border="0" height="295" hspace="10" width="225" alt="" /&gt;&lt;/a&gt;&lt;p&gt;My first example occurred before I even left the ground. In
the departure lounge at San Francisco International Airport (SFO), I noticed
the sign shown at the right: &lt;/p&gt;



&lt;p&gt;In case you have difficulty viewing the image, below the
sign and arrow requesting &amp;quot;comments&amp;quot; are two holes and an outline on the wall
where clearly some sort of receptacle for comments had once been attached. I
got a good chuckle out of that, promptly snapping the photo and posting on
Facebook with the comment &amp;quot;Apparently somebody decided that they didn&amp;#39;t want
passenger comments after all.&amp;quot;&amp;nbsp; It&amp;#39;s
almost too easy a target, but I&amp;#39;ll assert that if you&amp;#39;re going to remove the
receptacle for comments you must remove the sign requesting them as well.&lt;/p&gt;

&lt;p&gt;My second example occurred at a fairly new and very nice
Southeastern Asian restaurant near my hotel in Noida. Of course we ate a lot of
good Indian food on the trip but the menu at this place looked promising for
something different. In fact the food was very good and the service quite
solicitous; clearly they were looking to build a positive reputation. When the
waiter brought the check I gave them my credit card, and when he returned he
brought the familiar printed receipt with a line to specify the tip and a line
below to indicate the total.&lt;/p&gt;

&lt;p&gt;Since the service had been good I wanted to give him a nice
tip, so I wrote in the amount and the total. He returned a few minutes later
saying that the tip would not work on the card; after a few minutes of
confusion we realized that they had no way to add the tip to the credit charge.
This is fairly common outside of the United States, especially in Europe, but
the receipt generally does not leave a space for a tip. So I left the tip in
cash, but I&amp;#39;ll assert that if a credit-card receipt has a place to write in a
tip the restaurant must allow the tip to actually be charged to the same card.&lt;/p&gt;

&lt;p&gt;My final example is a bit odd. It&amp;#39;s a rarity on a business
trip to see much of anything beyond hotel rooms and conference rooms, but my
colleagues kindly arranged for a pedicab tour of Old Delhi (check out &lt;a href="http://www.wheninindia.com/"&gt;wheninindia.com&lt;/a&gt; - highly recommended).
Several hours of visiting historic mosques, markets, and other sites led us to
the &lt;a href="http://whc.unesco.org/en/list/231"&gt;Red Fort&lt;/a&gt;, a staggeringly
impressive complex once the center of the whole Mughal Empire. As dusk was
settling over the city we settled down to watch a &amp;quot;light and sound show&amp;quot; of the
fort&amp;#39;s history.&lt;/p&gt;

&lt;p&gt;The multi-media aspect was dated, but I enjoyed a narration that
filled in some gaps in my knowledge of Indian history. In one segment, the
narrator mentioned a king falling in love with a woman of dubious reputation (I
won&amp;#39;t use the word here) and installing her in his palace along with her friend
who had &amp;quot;the most luscious watermelons.&amp;quot; I&amp;#39;ll assert that you shouldn&amp;#39;t use
derogatory slang for women and double-entendres in a family show intending to
teach history. My Indian colleagues had the same reaction so I don&amp;#39;t think I&amp;#39;m guilty
of cross-cultural judgment.&lt;/p&gt;

&lt;p&gt;So that&amp;#39;s a quick summary of a business trip that was much more
enjoyable than most, and three more real-world assertion stories for you. My
next blog post will jump back into more serious topics, based on a request from
my last &lt;a href="http://www.cadence.com/Community/blogs/fv/archive/2011/10/28/verification-and-the-need-for-collaboration.aspx?postID=1304841"&gt;post&lt;/a&gt; on cooperation in EDA and verification. One of
my colleagues suggested that readers probably don&amp;#39;t know much about the Cadence
partnership programs, and the Verification Alliance in particular. Unless
there&amp;#39;s some major industry change that would take priority, I will cover
partners in my next post.&lt;/p&gt;

&lt;p&gt;Tom A.&lt;/p&gt;

&lt;p&gt;&lt;i&gt;The truth is out there...sometimes
it&amp;#39;s in a blog.&lt;/i&gt;&lt;/p&gt;



&lt;img src="http://www.cadence.com/Community/aggbug.aspx?PostID=1305498" width="1" height="1"&gt;</content><author><name>tomacadence</name><uri>http://www.cadence.com/Community/members/tomacadence.aspx</uri></author><category term="Functional Verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Functional+Verification/default.aspx" /><category term="India" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/India/default.aspx" /><category term="assertions" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/assertions/default.aspx" /><category term="New Delhi" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/New+Delhi/default.aspx" /><category term="real-world assertions" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/real-world+assertions/default.aspx" /><category term="Old Delhi" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Old+Delhi/default.aspx" /><category term="Noida" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Noida/default.aspx" /></entry><entry><title>Event Report: Club Formal Shanghai</title><link rel="alternate" type="text/html" href="http://www.cadence.com/Community/blogs/fv/archive/2011/11/14/event-report-club-formal-shanghai.aspx" /><id>http://www.cadence.com/Community/blogs/fv/archive/2011/11/14/event-report-club-formal-shanghai.aspx</id><published>2011-11-15T00:00:00Z</published><updated>2011-11-15T00:00:00Z</updated><content type="html">&lt;p&gt;The first &amp;quot;Club Formal&amp;quot; event in China was held in Shanghai on Oct. 21 2011, and as you can see in the image gallery below 24 customers from different 6 companies came together to share their general experiences and detailed case studies on formal and assertion-based verification (ABV).&amp;nbsp; We also took the opportunity to announce and demonstrate some new technologies, share our product roadmap, and learn new requirements from the attendees to better align our R&amp;amp;D development with their needs.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cadence.com/Community/CSSharedFiles/blogs/fv/Joe_Hupcey_III/Shanghai1.jpg"&gt;&lt;img src="http://www.cadence.com/Community/CSSharedFiles/blogs/fv/Joe_Hupcey_III/Shanghai1.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Here are some specific highlights from our information-rich agenda:&lt;/p&gt;&lt;p&gt;&lt;b&gt;1. &lt;/b&gt;&lt;b&gt;&amp;quot;Warm-up&amp;quot; Demo: rapid design bring-up&lt;br /&gt;&lt;/b&gt;To give everyone some &amp;quot;food for thought&amp;quot; and seed our later conversations, I kicked off the proceedings with a brief demo on &lt;a href="http://www.cadence.com/Community/blogs/fv/archive/2011/05/09/free-webinar-this-thursday-rapid-design-bring-up-using-formal-and-simulation-together.aspx"&gt;our rapid &amp;quot;bring-up&amp;quot; flow&lt;/a&gt;.&amp;nbsp; Specifically, I showed how &lt;a href="http://www.cadence.com/Community/blogs/fv/archive/2010/04/12/hate-writing-assertions-no-problem-let-automatic-formal-analysis-do-the-work.aspx"&gt;Automatic Formal Analysis (AFA)&lt;/a&gt;, Assertion-Driven Simulation (see prior&amp;nbsp;&lt;a href="http://www.cadence.com/Community/blogs/fv/archive/2011/07/05/true-stories-of-assertion-driven-simulation-ads-in-the-wild.aspx"&gt;post&lt;/a&gt; and&amp;nbsp;&lt;a href="http://www.cadence.com/cadence/events/Pages/event.aspx?eventid=518"&gt;archived webinar&lt;/a&gt; on &amp;quot;ADS&amp;quot;), Assertion-Based Verification IP and pure formal together can shorten the cycles of designer and verification engineers to bring-up and explore a new design without testbench.&lt;/p&gt;&lt;p&gt;&lt;b&gt;2.&amp;nbsp;&lt;/b&gt;&lt;b&gt;Incisive HDL analysis (&amp;quot;HAL&amp;quot;) overview and usage with IFV/IEV&lt;br /&gt;&lt;/b&gt;R&amp;amp;D&amp;#39;s Jianxin Bai talked about the HAL technology in general, and how its linting capabilities can be used to tee up efficient IFV/IEV runs.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;3. &lt;/b&gt;&lt;b&gt;Automated SoC iIntegration verification and demo&lt;br /&gt;&lt;/b&gt;Peng Yu showed how formal technology can be applied to connectivity verification in SoCs via automatically generated assertions, and how this methodology out-performs the traditional simulation approach on coverage and productivity.&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;i&gt;&amp;nbsp;(Ed. Note: there is an archived webinar on this topic posted &lt;a href="http://www.cadence.com/cadence/events/Pages/event.aspx?eventid=516"&gt;here&lt;/a&gt;)&lt;/i&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;4.&amp;nbsp;&lt;/b&gt;&lt;b&gt;Code coverage unreachability analysis with &lt;a href="http://www.cadence.com/products/fv/enterprise_verifier/pages/default.aspx"&gt;Incisive Enterprise Verifier (IEV)&lt;/a&gt;&amp;nbsp;demo&lt;br /&gt;&lt;/b&gt;I had the honor of presenting the newly released coverage unreachability flow, which aims to reduce the time to coverage closure by determining the unreachable code coverage automatically by formal technology, and most important it&amp;#39;s an integrated solution to existing simulation.&lt;/p&gt;&lt;p&gt;&lt;b&gt;5. &lt;/b&gt;&lt;b&gt;Writer block verification using &lt;a href="http://www.cadence.com/products/fv/formal_verifier/pages/default.aspx"&gt;Incisive Formal Verifier (IFV)&lt;/a&gt;&lt;br /&gt;&lt;/b&gt;Legang Sun (LSI) shared his experience on applying RTL checks and AFA of IFV to the &amp;quot;writer&amp;quot; block (a block shaping the write signals to a hard disk). Those automatic checks and assertions detected design issues with very low effort, thus visibly increased the team&amp;#39;s productivity.&lt;/p&gt;&lt;p&gt;&lt;b&gt;6. &lt;/b&gt;&lt;b&gt;CRG block verification using IEV (Hisilicon)&lt;br /&gt;&lt;/b&gt;Ke Xu (Hisilicon) shared his work on Clock Reset Generation (CRG) block with ABV and IEV. He spoke about the reasons for adopting formal verification on this block and how several efficient&amp;nbsp; corner case bugs were caught by IEV, and also shared feedback on how to make the tool and workflow better.&lt;/p&gt;&lt;p&gt;&lt;b&gt;7. &lt;/b&gt;&lt;b&gt;IFV &amp;amp; IEV roadmap highlights&lt;br /&gt;&lt;/b&gt;Last but not least, Product Engineering lead Axel Scherer presented the big picture of solutions we offer today around formal verification, and shared our near term product roadmap.&lt;/p&gt;&lt;p&gt;At the end of the day, everyone was a little overwhelmed by so much information, but in a good way.&amp;nbsp; Everyone found the presentations and demos to be of immediate, &amp;quot;I can go back to my desk and try this right now&amp;quot; value; plus they gave our factory representatives lots of valuable feedback which will definitely help us to improve our solutions.&lt;/p&gt;&lt;p&gt;Until the next Club Formal, happy verifying!&lt;/p&gt;&lt;p&gt;Jin Tang&lt;br /&gt;Principal Solutions Engineer&lt;br /&gt;Shenzhen, China&lt;br /&gt;for Team Verify&lt;br /&gt;&lt;br /&gt;On Twitter: http://twitter.com/teamverify, @teamverify&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cadence.com/Community/aggbug.aspx?PostID=1305386" width="1" height="1"&gt;</content><author><name>TeamVerify</name><uri>http://www.cadence.com/Community/members/TeamVerify.aspx</uri></author><category term="Functional Verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Functional+Verification/default.aspx" /><category term="verification strategy" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/verification+strategy/default.aspx" /><category term="events" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/events/default.aspx" /><category term="ABV" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/ABV/default.aspx" /><category term="IEV" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/IEV/default.aspx" /><category term="formal" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/formal/default.aspx" /><category term="IFV" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/IFV/default.aspx" /><category term="assertions" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/assertions/default.aspx" /><category term="ABVIP" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/ABVIP/default.aspx" /><category term="formal verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/formal+verification/default.aspx" /><category term="assertion-based verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/assertion-based+verification/default.aspx" /><category term="ADS" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/ADS/default.aspx" /><category term="Assertion-Driven Simulation" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Assertion-Driven+Simulation/default.aspx" /><category term="Club Formal" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Club+Formal/default.aspx" /><category term="verification IP" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/verification+IP/default.aspx" /><category term="Jin Tang" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Jin+Tang/default.aspx" /><category term="Axel Scherer" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Axel+Scherer/default.aspx" /><category term="China" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/China/default.aspx" /><category term="Shanghai" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Shanghai/default.aspx" /></entry><entry><title>Report on CDNLive! India 2011: Provocative Keynotes, Detailed Papers, and Robots!</title><link rel="alternate" type="text/html" href="http://www.cadence.com/Community/blogs/fv/archive/2011/11/07/report-on-cdnlive-india-2011-provocative-keynotes-detailed-papers-and-robots.aspx" /><id>http://www.cadence.com/Community/blogs/fv/archive/2011/11/07/report-on-cdnlive-india-2011-provocative-keynotes-detailed-papers-and-robots.aspx</id><published>2011-11-08T01:00:00Z</published><updated>2011-11-08T01:00:00Z</updated><content type="html">&lt;p&gt;Recently I had the honor of presenting the functional verification roadmap at CDNLive! India in Bangalore.&amp;nbsp; With the high quality of content and networking, it was easy to see why attendance has increased year-over-year; and why CDNLive India has become the premier conference on the region&amp;#39;s engineering community calendar.&amp;nbsp; The following video montage should give you a flavor of the event (if video does not appear, &lt;a href="http://youtu.be/NEsiBI_a59Q"&gt;click here&lt;/a&gt;).&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Plus, here are some additional (functional verification-centric) highlights:&lt;/p&gt;&lt;p&gt;* &lt;u&gt;&lt;b&gt;Functional verification roadmap:&lt;/b&gt;&lt;/u&gt; I was excited that our roadmap was well received, drawing questions around low power, UVM, class debug, and assertion-based verification (ABV).&amp;nbsp; Note to attendees: for those of you that requested we smooth out the process of upgrading new versions, be advised that I have communicated your feedback directly to my colleagues in Product Management and R&amp;amp;D leadership in Chelmsford, Noida, and San Jose.&lt;/p&gt;&lt;p&gt;* &lt;u&gt;&lt;b&gt;Formal verification interest:&lt;/b&gt;&lt;/u&gt; While the Functional Verification track covered topics spanning UVM, metric-driven verification (MDV),&amp;nbsp;low power, and analog-mixed signal verification, the popularity of formal and assertion-based verification paper -- 4 out of 8 papers in the track -- clearly signals formal and assertion-based verification (ABV) is breaking out of niche, expert-only usage and into mainstream design and verification flows.&amp;nbsp; Colleague Lokesh Pundreeka summarizes the formal analysis papers in this recent blog post:&lt;br /&gt;&lt;a href="https://www.cadence.com:443/Community/blogs/fv/archive/2011/10/26/report-formal-analysis-papers-at-cdnlive-india-2011.aspx"&gt;http://www.cadence.com/Community/blogs/fv/archive/2011/10/26/report-formal-analysis-papers-at-cdnlive-india-2011.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt;In general, all of the papers were excellent, and I urge you to download and review all them: &lt;br /&gt;&lt;a href="http://www.cadence.com/cdnlive/in/2011/pages/proceedings.aspx"&gt;http://www.cadence.com/cdnlive/in/2011/pages/proceedings.aspx&lt;/a&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;* &lt;u&gt;Our Rubik&amp;#39;s Cube solving robot:&lt;/u&gt;&lt;/b&gt; Speaking of formal verification, we couldn&amp;#39;t resist the opportunity to introduce formal/ABV to the general assembly via a booth hosting our own Rubik&amp;#39;s Cube robot.&amp;nbsp; Leveraging &lt;a href="http://tiltedtwister.com/tiltedtwister2.html"&gt;a mechanical design by Lego Mindstorms wizard Hans Andersson&lt;/a&gt;, colleagues Apurva Kalia, Suman Ray, and Manu Chopra setup the brain of the robot to be a single SVA assertion that is solved in a few seconds by &lt;a href="https://www.cadence.com:443/products/fv/formal_verifier/pages/default.aspx"&gt;Incisive Formal Verifier (IFV).&lt;/a&gt;&amp;nbsp; (The core program is a single SVA assertion (in a nutshell, &amp;quot;never (solved cube)&amp;quot;), which IFV solves and then produces a counter example which turns out to be the optimal solution to the cube.&amp;nbsp; A script translates the counter-example signals into a set of actuator commands for the robot to execute.)&amp;nbsp; As you can see in the summary video above, the demo itself was a hit and enabled us to demystify formal and ABV for many attendees in a fun way.&lt;/p&gt;&lt;p&gt;* &lt;u&gt;&lt;b&gt;Solid keynotes:&lt;/b&gt;&lt;/u&gt; Last but not least, the keynotes by our own Charlie Huang and Dr. Srini Rajam, chairman and CEO of Ittiam Systems were really thought provoking.&amp;nbsp; In particular, in his talk &amp;quot;Designing Systems to Thrive in Disruptive Trends,&amp;quot; I really liked how Dr. Rajam smoothly made his point via a quasi-Socratic method of delivery.&amp;nbsp; Specifically, he invited the audience to consider a hypothetical conversation between a design engineer and end-customer of a consumer electronic device to make the point that to successfully manage &amp;quot;convergence&amp;quot; of capabilities you need to support successive layers of abstraction.&amp;nbsp; His follow-on anecdote centered on thinking and designing &amp;quot;big&amp;quot; first, then scaling down later, nicely reinforced his main thesis.&lt;/p&gt;&lt;p&gt;Until next year, happy bug hunting!&lt;/p&gt;&lt;p&gt;Joe Hupcey III&lt;br /&gt;On Twitter: @jhupcey --&amp;nbsp;&amp;nbsp;&lt;a href="http://twitter.com/jhupcey"&gt;http://twitter.com/jhupcey&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;u&gt;Reference Links:&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;All CDNLive India 2011 papers have now been posted online.&amp;nbsp; I strongly urge you to download and review them!&lt;br /&gt;&lt;a href="http://www.cadence.com/cdnlive/in/2011/pages/proceedings.aspx"&gt;http://www.cadence.com/cdnlive/in/2011/pages/proceedings.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Report: Formal Analysis Papers at CDNLive India 2011&lt;br /&gt;&lt;a href="https://www.cadence.com:443/Community/blogs/fv/archive/2011/10/26/report-formal-analysis-papers-at-cdnlive-india-2011.aspx"&gt;http://www.cadence.com/Community/blogs/fv/archive/2011/10/26/report-formal-analysis-papers-at-cdnlive-india-2011.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Cadence Announces Winners of CDNLive! India 2011 Best Paper Awards and Cadence India Design Contest&lt;br /&gt;&lt;a href="https://www.cadence.com:443/cadence/newsroom/press_releases/pages/pr.aspx?xml=102011_cdnlive"&gt;http://www.cadence.com/cadence/newsroom/press_releases/pages/pr.aspx?xml=102011_cdnlive&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Video Easter Egg: Incisive Formal Verifier and SVA driving a Rubik&amp;#39;s Cube robot&lt;br /&gt;&lt;a href="https://www.cadence.com:443/Community/blogs/fv/archive/2011/04/21/video-easter-egg-incisive-formal-verifier-and-sva-driving-a-rubik-s-cube-robot.aspx"&gt;http://www.cadence.com/Community/blogs/fv/archive/2011/04/21/video-easter-egg-incisive-formal-verifier-and-sva-driving-a-rubik-s-cube-robot.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cadence.com/Community/aggbug.aspx?PostID=1305156" width="1" height="1"&gt;</content><author><name>jvh3</name><uri>http://www.cadence.com/Community/members/jvh3.aspx</uri></author><category term="Functional Verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Functional+Verification/default.aspx" /><category term="Low Power" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Low+Power/default.aspx" /><category term="Formal Analysis" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Formal+Analysis/default.aspx" /><category term="metric driven verification (MDV)" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/metric+driven+verification+_2800_MDV_2900_/default.aspx" /><category term="CDNLive" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/CDNLive/default.aspx" /><category term="verification strategy" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/verification+strategy/default.aspx" /><category term="SVA" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/SVA/default.aspx" /><category term="Incisive" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Incisive/default.aspx" /><category term="ABV" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/ABV/default.aspx" /><category term="MDV" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/MDV/default.aspx" /><category term="formal" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/formal/default.aspx" /><category term="IFV" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/IFV/default.aspx" /><category term="assertions" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/assertions/default.aspx" /><category term="formal verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/formal+verification/default.aspx" /><category term="assertion-based verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/assertion-based+verification/default.aspx" /><category term="Lego" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Lego/default.aspx" /><category term="Manu Chopra" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Manu+Chopra/default.aspx" /><category term="Suman Ray" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Suman+Ray/default.aspx" /><category term="Apurva Kalia" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Apurva+Kalia/default.aspx" /><category term="robot" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/robot/default.aspx" /><category term="Rubik's Cube" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Rubik_2700_s+Cube/default.aspx" /><category term="Joe Hupcey III" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Joe+Hupcey+III/default.aspx" /><category term="Lokesh Pundreeka" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Lokesh+Pundreeka/default.aspx" /></entry><entry><title>Shameless Promotion: Free Club Formal San Jose, Formal Scoreboard Webinar</title><link rel="alternate" type="text/html" href="http://www.cadence.com/Community/blogs/fv/archive/2011/11/04/shameless-promotion-free-club-formal-san-jose-formal-scoreboard-webinar.aspx" /><id>http://www.cadence.com/Community/blogs/fv/archive/2011/11/04/shameless-promotion-free-club-formal-san-jose-formal-scoreboard-webinar.aspx</id><published>2011-11-04T22:00:00Z</published><updated>2011-11-04T22:00:00Z</updated><content type="html">&lt;p&gt;Please join Team Verify and other D&amp;amp;V engineers for one or both of the following free events over the next 2 weeks:&lt;/p&gt;&lt;p&gt;* This coming Tuesday November 8 starting at 11:30am on our San Jose campus, we are holding the next installment of &amp;quot;Club Formal.&amp;quot;&amp;nbsp; The main topics for this event will be abstraction and coverage unreachability methodologies.&amp;nbsp; Here are more specifics: &lt;a href="https://www.cadence.com:443/cadence/events/Pages/event.aspx?eventid=617"&gt;http://www.cadence.com/cadence/events/Pages/event.aspx?eventid=617&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Register today!&amp;nbsp; &lt;a href="http://www.secure-register.net/cadence.php?product=228"&gt;http://www.secure-register.net/cadence.php?product=228&lt;/a&gt;&lt;/p&gt;&lt;p&gt;* On Thursday November 17 at 9 am Pacific time, Solutions Engineer Joerg Muller (you may recognize him as the author of the recent &lt;a href="https://www.cadence.com:443/Community/blogs/fv/archive/2011/10/13/formal-verification-with-asynchronous-clocks.aspx?postID=1301685"&gt;&amp;quot;Formal Verification of Asynchronous Clocks&amp;quot; post&lt;/a&gt;) will show how the popular dynamic simulation methodology of scoreboarding can also be extended to the formal verification domain.&amp;nbsp; Furthermore, &lt;a href="http://eda360insider.wordpress.com/2011/11/04/scoreboarding-%e2%80%9capp%e2%80%9d-for-formal-verification-tools-allows-anyone-to-get-exhaustive-verification-results%e2%80%94even-on-datapaths/"&gt;as the EDA360 Insider notes&lt;/a&gt;, Joerg will show how we can fashion the scoreboard to be like an &amp;quot;app&amp;quot; so engineers with little assertion-based verification (ABV) experience can apply the technique.&amp;nbsp; Here are more details on this free event:&lt;br /&gt;&lt;a href="https://www.cadence.com:443/cadence/events/Pages/event.aspx?eventid=560"&gt;http://www.cadence.com/cadence/events/Pages/event.aspx?eventid=560&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Register today!&lt;br /&gt;&lt;a href="https://www.secure-register.net/register.php?event=12027"&gt;https://www.secure-register.net/register.php?event=12027&lt;/a&gt;&lt;/p&gt;&lt;p&gt;See you in San Jose, or &amp;quot;on the radio&amp;quot;, soon!&lt;/p&gt;&lt;p&gt;Team Verify&lt;/p&gt;&lt;p&gt;On Twitter: &lt;a href="http://twitter.com/teamverify"&gt;http://twitter.com/teamverify&lt;/a&gt;, @teamverify&lt;/p&gt;&lt;p&gt;P.S.&amp;nbsp; What&amp;#39;s a free &amp;quot;Club Formal&amp;quot; user group event like?&amp;nbsp; Here are highlights from prior events we&amp;#39;ve held here in San Jose and around the world:&lt;br /&gt;&lt;a href="https://www.cadence.com:443/Community/blogs/fv/archive/2011/06/28/before-dac-there-was-club-formal-an-event-series-completely-focused-on-formal-and-abv.aspx?postID=1285587"&gt;http://www.cadence.com/Community/blogs/fv/archive/2011/06/28/before-dac-there-was-club-formal-an-event-series-completely-focused-on-formal-and-abv.aspx?postID=1285587&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.cadence.com:443/Community/blogs/fv/archive/2011/06/28/before-dac-there-was-club-formal-an-event-series-completely-focused-on-formal-and-abv.aspx?postID=1285587"&gt;&lt;/a&gt;&lt;/p&gt;&lt;a href="https://www.cadence.com:443/Community/CSSharedFiles/blogs/fv/Joe_Hupcey_III/JH3_ClubFormal.JPG"&gt;&lt;img src="https://www.cadence.com:443/Community/CSSharedFiles/blogs/fv/Joe_Hupcey_III/JH3_ClubFormal.JPG" border="0" alt="" /&gt;&lt;/a&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;P.P.S.: What are our free webinars like?&amp;nbsp; In a nutshell, they are technical deep dives by domain experts on specific topics - with code examples and everything.&amp;nbsp; &amp;nbsp;Plus: attendees are always welcome to jump in and ask questions of the presenter via text chat or the live audio connection.&amp;nbsp; It&amp;#39;s easy to confirm this for yourself -- all of our webinars are recorded and archived here for you listening pleasure:&lt;br /&gt;&lt;a href="https://www.cadence.com:443/cadence/events/pages/archive.aspx"&gt;http://www.cadence.com/cadence/events/pages/archive.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cadence.com/Community/aggbug.aspx?PostID=1305095" width="1" height="1"&gt;</content><author><name>TeamVerify</name><uri>http://www.cadence.com/Community/members/TeamVerify.aspx</uri></author><category term="Functional Verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Functional+Verification/default.aspx" /><category term="Formal Analysis" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Formal+Analysis/default.aspx" /><category term="verification strategy" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/verification+strategy/default.aspx" /><category term="ABV" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/ABV/default.aspx" /><category term="IEV" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/IEV/default.aspx" /><category term="formal" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/formal/default.aspx" /><category term="methodology" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/methodology/default.aspx" /><category term="IFV" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/IFV/default.aspx" /><category term="EDA360" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/EDA360/default.aspx" /><category term="formal verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/formal+verification/default.aspx" /><category term="assertion-based verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/assertion-based+verification/default.aspx" /><category term="webinar" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/webinar/default.aspx" /><category term="Club Formal" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Club+Formal/default.aspx" /><category term="Joerg Mueller" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Joerg+Mueller/default.aspx" /><category term="scoreboard" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/scoreboard/default.aspx" /></entry><entry><title>Verification and the Need for Collaboration</title><link rel="alternate" type="text/html" href="http://www.cadence.com/Community/blogs/fv/archive/2011/10/28/verification-and-the-need-for-collaboration.aspx" /><id>http://www.cadence.com/Community/blogs/fv/archive/2011/10/28/verification-and-the-need-for-collaboration.aspx</id><published>2011-10-28T15:00:00Z</published><updated>2011-10-28T15:00:00Z</updated><content type="html">Earlier this week I was at the ARM &lt;a href="http://e.ubmelectronics.com/armtechcon/index.html"&gt;TechCon&lt;/a&gt; in Santa
Clara, a show that gets better and busier every year. I was walking around the
expo floor, checking out the new vendors and saying hello to old friends, when
I got into a conversation with one of our more active partners. He thanked me
for supporting the various activities that we have done together and said that he
felt we were much more open to EDA partnerships that the &amp;quot;Cadence of old&amp;quot; (his
term). He asked whether that was specific to the functional verification space
or was true in general.&lt;p&gt;We chatted about that a bit, and I gave it some thought
afterwards. I&amp;#39;ve been an employee, an EDA partner, or a customer of Cadence for
20 years nonstop, ever since the acquisition of Valid Logic way back in 1991.
Looking back over that time span, it does seem to me that there have been ebbs
and flows in the company&amp;#39;s eagerness for partnerships. From the outside looking
in, sometimes it seemed as if Cadence, then the largest EDA supplier by far,
wanted to do everything themselves with minimal collaboration. &lt;/p&gt;

&lt;p&gt;Well, that&amp;#39;s certainly not the Cadence I&amp;#39;ve known for the
past five years as an employee. We work every day with partners of all shapes
and sizes: EDA, VIP, design IP, consulting, and training companies. We commit a
big chunk of resources to standards activities, another vital form of partnership.
The strong progress that Accellera has made on the Universal Verification
Methodology (UVM) and the Unified Coverage Interoperability Standard (UCIS)
would never have happened if we stuck our heads in the sand and refused to cooperate
with competitors. &lt;/p&gt;

&lt;p&gt;If you look at the Cadence Web &lt;a href="https://www.cadence.com:443/Alliances/pages/default.aspx"&gt;site&lt;/a&gt; you&amp;#39;ll see
that we have a wide range of alliance programs that cover just about everyone
in the industry. As we say on the site, &amp;quot;No one company can do it alone.&amp;quot; I
strongly believe this and in fact I devote a significant portion of my time to leading
the Verification Alliance (VA) program and participating in other partnership
and standards programs. My colleagues and I actively engage in joint marketing
activities with many partners; &lt;a href="https://www.cadence.com:443/community/blogs/fv/archive/2011/06/22/video-update-on-amiq-s-dvt-ide-at-dac-2011-specman-debugger-integration-open-api.aspx"&gt;AMIQ&lt;/a&gt;,
&lt;a href="https://www.cadence.com:443/community/blogs/ii/archive/2011/04/06/q-amp-a-duolog-cto-discusses-soc-integration-challenges.aspx"&gt;Duolog&lt;/a&gt;,
&lt;a href="https://www.cadence.com:443/cadence/events/Pages/event.aspx?eventid=557"&gt;NextOp&lt;/a&gt;,
and &lt;a href="https://www.cadence.com:443/cdnlive/library/Documents/2009/NA/101509%20-%20Track2-3%20-%20Howard%20Martin%20-%20Zocalo_Final.pdf"&gt;Zocalo&lt;/a&gt;
are just a few recent examples. &lt;/p&gt;

&lt;p&gt;This brings me back around to the question from my partner
at DAC, and (finally!) to the title of this blog post. Indeed, I do believe
that partnerships and collaboration are particularly important in the realm of
functional verification. As I&amp;#39;ve said &lt;a href="https://www.cadence.com:443/community/blogs/fv/archive/2009/08/25/functional-verification-and-eda-startups.aspx"&gt;before&lt;/a&gt;,
there is no silver bullet for verification. Chips are only getting bigger and
more complex, the verification problem is only getting harder, and EDA360 requires much more soffware verification. It takes a
combination of technologies and techniques all operating on a base of industry
standards to provide efficient and effective solutions. &lt;/p&gt;

&lt;p&gt;No one company can do it alone. Cadence has the broadest
verification offerings in the industry, but we know that&amp;#39;s not always enough.
We will continue to drive standards, partner with companies offering
complementary technologies, and work with competitors to support our mutual customers.
If you see interesting new technology outside of Cadence, please let us know,
and we will find an appropriate relationship to work together. Functional
verification is a very tough nut to crack, and we&amp;#39;re open to any novel kinds of
hammers that may come along.&lt;/p&gt;

&lt;p&gt;Tom A.&lt;/p&gt;



&lt;p&gt;&lt;i&gt;The truth is out there...sometimes
it&amp;#39;s in a blog.&lt;/i&gt;&lt;/p&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cadence.com/Community/aggbug.aspx?PostID=1304841" width="1" height="1"&gt;</content><author><name>tomacadence</name><uri>http://www.cadence.com/Community/members/tomacadence.aspx</uri></author><category term="Functional Verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Functional+Verification/default.aspx" /><category term="EDA" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/EDA/default.aspx" /><category term="AMIQ" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/AMIQ/default.aspx" /><category term="uvm" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/uvm/default.aspx" /><category term="EDA360" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/EDA360/default.aspx" /><category term="Duolog" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Duolog/default.aspx" /><category term="NextOp" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/NextOp/default.aspx" /><category term="Zocalo" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Zocalo/default.aspx" /><category term="UCIS" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/UCIS/default.aspx" /><category term="verification alliance" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/verification+alliance/default.aspx" /><category term="VA" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/VA/default.aspx" /><category term="partnerships" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/partnerships/default.aspx" /><category term="collaboration" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/collaboration/default.aspx" /><category term="standards" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/standards/default.aspx" /><category term="ARM TechCon" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/ARM+TechCon/default.aspx" /></entry><entry><title>Report: Formal Analysis Papers at CDNLive India 2011</title><link rel="alternate" type="text/html" href="http://www.cadence.com/Community/blogs/fv/archive/2011/10/26/report-formal-analysis-papers-at-cdnlive-india-2011.aspx" /><id>http://www.cadence.com/Community/blogs/fv/archive/2011/10/26/report-formal-analysis-papers-at-cdnlive-india-2011.aspx</id><published>2011-10-27T05:24:00Z</published><updated>2011-10-27T05:24:00Z</updated><content type="html">&lt;p&gt;On October 19, 2011 in Bangalore, India more than 800 engineers across all domains came together for CDNLive India 2011.&amp;nbsp; Among the attendees were over 300 design and verification professionals who focused on the functional and system verification tracks.&amp;nbsp; In this post I&amp;#39;ll pull together some highlights from the customer presentations, with particular emphasis on the papers about formal, formal combined with simulation, and assertion-based verification (ABV).&lt;/p&gt;&lt;p&gt;Preface: prior to the event we were blessed with an embarrassment of riches. We received 12 very strong abstracts on formal and ABV-related topics from world-class organizations like LSI, Cisco, TI, NXP, STMicro, Freescale, KPIT, WiPro, NVIDIA and SanDisk that covered SoC integration, constraints validation, coverage closure, complex IP verification, AMBA-specific bus metric-driven verification using ABV IP, cache controller verification ... and more! &amp;nbsp;&lt;/p&gt;&lt;p&gt;Clearly formal and ABV were hot topics, but the program committee needed to balance it with other major industry issues like Universal Verification Methodology (UVM) adoption, low power design and verification, etc.&amp;nbsp; Consequently, our panel of judges (comprised of well known VLSI industry experts) had a very tough time to short-list only 4 formal-related abstracts along with papers covering UVM, Low Power, and high speed IP verification in the Functional Verification track.&lt;/p&gt;&lt;p&gt;The formal and ABV-related papers included these highlights:&lt;/p&gt;&lt;p&gt;* The first paper on formal and ABV was presented by &lt;b&gt;Cisco Bangalore&lt;/b&gt;.&amp;nbsp; Entitled &amp;quot;&lt;b&gt;Formal verification or simulation? Which way: Case study on a packet parser block&lt;/b&gt;&amp;quot;, this paper explained the reasoning behind their selection of formal verification instead of simulation for verification of complex IP blocks.&amp;nbsp; Initially they had a few setbacks by choosing sub-optimal methodologies for formal verification.&amp;nbsp; But with some coaching and experience their final approach gave them visibly better returns than prior projects.&amp;nbsp; Case in point: they quickly discovered some bugs with formal that would have been very difficult to catch with simulation. The Q&amp;amp;A after the paper made clear that it was well received by all attendees.&lt;/p&gt;&lt;p&gt;* The &lt;b&gt;Freescale Noida&lt;/b&gt; team presented a paper on an &amp;quot;&lt;b&gt;Innovative Approach to Coverage Closure through Un-reach ability analysis Flow&lt;/b&gt;&amp;quot;. &amp;nbsp;This paper explained how difficult and important it is to get code coverage closure on IP and the parent subsystems.&amp;nbsp; They explained how Incisive Enterprise Verifier (IEV) based coverage hole analysis flow helped them to quickly reach their coverage goals and pinpoint unreachable (dead) code for the designers. &amp;nbsp;As with the earlier formal paper, this one also generated lots of visible interest, and I dare say it opened a lot of eyes to the benefits of mixing formal and simulation-based approaches.&lt;/p&gt;&lt;p&gt;* &lt;b&gt;NVIDIA Bangalore&lt;/b&gt; presented &amp;quot;&lt;b&gt;Complex IP Verification Methodology using Property Driven Simulation (PDS) in IEV and Case study on memory controller&amp;quot;&lt;/b&gt;.&amp;nbsp; This paper clearly highlighted how PDS (&lt;a href="http://www.cadence.com/Community/blogs/fv/archive/2011/07/05/true-stories-of-assertion-driven-simulation-ads-in-the-wild.aspx"&gt;also called &amp;quot;Assertion-Driven Simulation&amp;quot;&lt;/a&gt;) helped them in several ways simultaneously: they could define correct design constraints in much less time than before, they could overcome design complexity that was hard to process with pure formal alone (the design had over 80,000 flip-flops), and PDS-based coverage maximization techniques helped them to identify blocks for exhaustive verification. &amp;nbsp;This paper enabled each and every attendee to realize how applying formal and simulation engines together can tackle significantly higher levels of complexity without worrying much about design size.&lt;/p&gt;&lt;p&gt;* Last but not least, &lt;b&gt;TI Bangalore&lt;/b&gt; presented &amp;quot;&lt;b&gt;A Novel Approach to Coverage Completeness in Formal Checks for SOC Integration&lt;/b&gt;&amp;quot;. &amp;nbsp;As usual the TI team came up with a provocative paper that addressed thorny questions like, &amp;quot;do I have enough assertion to check my SoC integration?&amp;quot;, and, &amp;quot;Has every net/pin in the assertion cone been toggled to all possible values?&amp;quot; &amp;nbsp;In short, this paper clearly showed how important -- and feasible -- it is to get 100% coverage closure on all integration checks; and conversely, how less than 100% coverage can mask bugs if you ignore what the coverage holes are trying to tell you.&lt;/p&gt;&lt;p&gt;Again, it&amp;#39;s safe to say that all of papers in the track were well received by audience.&amp;nbsp; However, the &lt;b&gt;NVIDIA&lt;/b&gt; paper &amp;quot;&lt;b&gt;Complex IP Verification Methodology using Property Driven Simulation (PDS) in IEV and Case study on memory controller&amp;quot; &lt;/b&gt;received &lt;b&gt;Best&lt;/b&gt; &lt;b&gt;Paper Award&lt;/b&gt; in the functional verification category.&amp;nbsp; In talking with the judges and attendees after the event, they were most impressed how the innovative combination of formal and simulation could provide so many benefits for the given effort.&lt;/p&gt;&lt;p&gt;Finally, if you attended the event, on behalf of all my colleagues at Cadence please accept my thanks for your active engagement!&amp;nbsp; An archive of all the papers will be posted shortly on &lt;a href="http://www.cdnlive.com/"&gt;http://www.cdnlive.com/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Warm Regards,&lt;/p&gt;&lt;p&gt;Lokesh Pundreeka&lt;br /&gt;Technical Field Leader &lt;br /&gt;Cadence India, Bangalore&lt;br /&gt;for Team Verify&lt;/p&gt;&lt;p&gt;&lt;br /&gt;On Twitter: http://twitter.com/teamverify, @teamverify&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cadence.com/Community/aggbug.aspx?PostID=1304799" width="1" height="1"&gt;</content><author><name>TeamVerify</name><uri>http://www.cadence.com/Community/members/TeamVerify.aspx</uri></author><category term="Functional Verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Functional+Verification/default.aspx" /><category term="Formal Analysis" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Formal+Analysis/default.aspx" /><category term="CDNLive" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/CDNLive/default.aspx" /><category term="ABV" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/ABV/default.aspx" /><category term="MDV" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/MDV/default.aspx" /><category term="IEV" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/IEV/default.aspx" /><category term="formal" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/formal/default.aspx" /><category term="IFV" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/IFV/default.aspx" /><category term="metric-driven verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/metric-driven+verification/default.aspx" /><category term="India" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/India/default.aspx" /><category term="assertions" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/assertions/default.aspx" /><category term="ABVIP" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/ABVIP/default.aspx" /><category term="formal verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/formal+verification/default.aspx" /><category term="assertion-based verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/assertion-based+verification/default.aspx" /><category term="ADS" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/ADS/default.aspx" /><category term="Assertion-Driven Simulation" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Assertion-Driven+Simulation/default.aspx" /><category term="Lokesh Pundreeka" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Lokesh+Pundreeka/default.aspx" /></entry><entry><title>Come See How to Connect SystemVerilog and SystemC Using UVM</title><link rel="alternate" type="text/html" href="http://www.cadence.com/Community/blogs/fv/archive/2011/10/18/come-see-how-to-connect-systemverilog-and-systemc-using-uvm.aspx" /><id>http://www.cadence.com/Community/blogs/fv/archive/2011/10/18/come-see-how-to-connect-systemverilog-and-systemc-using-uvm.aspx</id><published>2011-10-18T19:47:00Z</published><updated>2011-10-18T19:47:00Z</updated><content type="html">&lt;p&gt;All pun-tastic references aside, connecting SystemVerilog and SystemC is becoming a commonplace request.&amp;nbsp; In most cases, the request is to do this using &lt;a href="http://www.uvmworld.org" target="_blank"&gt;UVM &lt;/a&gt;as the testbench methodology. One of our resident technical experts, Phu Huynh, will lead a &lt;a href="http://www.cadence.com/cadence/events/Pages/event.aspx?eventid=558" target="_blank"&gt;webinar on this subject&lt;/a&gt; on October 20. &lt;/p&gt;&lt;p&gt;Cadence pioneered efforts to connect a major methodology across multiple languages in 2009 with the release of OVM multi-language support.&amp;nbsp; We updated that again for the Accellera UVM 1.0 EA and we will be keeping that up-to-date with on the &lt;a href="http://www.uvmworld.org/contributions-details.php?id=98&amp;amp;keywords=UVM_ML" target="_blank"&gt;UVM World contributions page&lt;/a&gt;.&amp;nbsp; While our contribution is not part of the Accellera standard, it is a response to many user requests.&amp;nbsp; For example, we just received one this week in our &lt;a href="http://www.cadence.com/community/forums/T/20559.aspx" target="_blank"&gt;functional verification forum&lt;/a&gt;.&amp;nbsp; Even users of competitors&amp;#39; simulation solutions are seeking out our multi-language capabilities.&lt;/p&gt;&lt;p&gt;The webinar content is dominated by technical material describing the open source solution.&amp;nbsp; We&amp;#39;ll lead you through the overall requirements as we&amp;#39;ve collected from users and the solution we have availble for general use.&amp;nbsp; Phu will also show how the solution applies to a realistic example and, if we have time, demonstrate that solution.&amp;nbsp; There will be time during the webinar for you to ask questions to tap into the oceans of experience Phu has with SystemVerilog and SystemC.&amp;nbsp; Sorry, I just had one more pun in me.&lt;/p&gt;&lt;p&gt;The seminar is will be held Thursday October 20, 2011 at noon EDT and you can still sign-up here: &lt;a href="http://www.cadence.com/cadence/events/Pages/event.aspx?eventid=558" target="_blank"&gt;www.cadence.com/cadence/events/Pages/event.aspx?eventid=558&lt;/a&gt;&amp;nbsp; &lt;/p&gt;&lt;p&gt;=Adam&amp;nbsp; &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cadence.com/Community/aggbug.aspx?PostID=1301990" width="1" height="1"&gt;</content><author><name>Adam Sherilog</name><uri>http://www.cadence.com/Community/members/Adam-Sherilog.aspx</uri></author><category term="Functional Verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Functional+Verification/default.aspx" /><category term="SystemVerilog" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/SystemVerilog/default.aspx" /><category term="IES" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/IES/default.aspx" /><category term="multi-language" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/multi-language/default.aspx" /><category term="SystemC" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/SystemC/default.aspx" /><category term="OVM ML" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/OVM+ML/default.aspx" /><category term="uvm" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/uvm/default.aspx" /><category term="webinar" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/webinar/default.aspx" /></entry><entry><title>Too Many Missing Real-World Assertions?</title><link rel="alternate" type="text/html" href="http://www.cadence.com/Community/blogs/fv/archive/2011/10/14/too-many-missing-real-world-assertions.aspx" /><id>http://www.cadence.com/Community/blogs/fv/archive/2011/10/14/too-many-missing-real-world-assertions.aspx</id><published>2011-10-14T22:56:00Z</published><updated>2011-10-14T22:56:00Z</updated><content type="html">&lt;p&gt;Well, here I am embarking on my fifth post in which I point
out illogical situations I&amp;#39;m come across in my daily life and suggest that the
real world is missing some useful assertions. What started out as a fun way to
fill a blog post has turned into a series that has received a lot of positive
feedback and, as I mentioned in my &lt;a href="http://www.cadence.com/community/blogs/fv/archive/2011/09/26/missing-real-world-assertions-in-computer-land.aspx?postID=1301226"&gt;most
recent post&lt;/a&gt;, plenty of page views. I&amp;#39;m beginning to wonder if I&amp;#39;m beating
this idea into the ground but I have faith that you, the readers, will comment
and take me to task if you&amp;#39;re getting tired of this topic.&lt;/p&gt;

&lt;p&gt;In my previous set of examples, I complained about how much
Web content is not date-stamped or datelined in any way. It is ironic that this
wonderful medium for real-time updates so often has outdated content. Here&amp;#39;s
another example of that irony: online business listings. Physical phone books with
&amp;quot;Yellow Pages&amp;quot; were (and some still are) published once a year. The Web offers
many sites that list businesses &amp;agrave; la the Yellow Pages, but with the ability to
do an instant update when a new business starts or an existing one closes. That
should be an improvement, yes?&lt;/p&gt;

&lt;p&gt;However, any search will find many such sites that are
terribly outdated; &lt;a href="http://silicon.valley.diningguide.com/"&gt;this one&lt;/a&gt;
in its second paragraph plugs a San Jose donut shop that closed in mid-2006. Of
course, such sites rarely have any dates to alert that they&amp;#39;re dusty. At least
with the physical Yellow Pages you knew whether you had the latest book and
would &lt;u&gt;never&lt;/u&gt; be consulting listings five years of date. Many sites have
this problem but some, &lt;a href="http://www.yelp.com/biz/calvins-world-famous-south-philly-cheesesteak-san-jose"&gt;Yelp&lt;/a&gt;
in particular, do a good job of noting when a business has closed. Assertion: if
you have a Web site, date your content and keep it as updated as you can.&lt;/p&gt;

&lt;p&gt;My second example occurred a couple of weeks ago at the
Hardly Strictly Bluegrass &lt;a href="http://www.strictlybluegrass.com/"&gt;Festival&lt;/a&gt;
in San Francisco. I could go on and on about this free annual event; it&amp;#39;s in
its eleventh year and now up to 3 full days, 6 stages, and 90 acts. I was at
the &amp;quot;Towers of Gold&amp;quot; stage enjoying some bluegrass from Ricky Skaggs when a
young woman asked me who was playing. I answered &amp;quot;Ricky Skaggs&amp;quot; and she looked
dubious. One of her two companions asked someone else and received the same
reply, at which point she started juggling her festival map.&lt;/p&gt;

&lt;p&gt;As she turned her map every which way, she kept insisting
that &amp;quot;This can&amp;#39;t be Ricky Skaggs because he&amp;#39;s at the Towers of Gold stage.&amp;quot; I
said &amp;quot;Trust me, this is the Towers of Gold stage and that is Ricky Skaggs.&amp;quot; She
just kept pointing west and insisting that there was another stage over there.
Never mind that there was an eight-foot high multi-sided sign that said &amp;quot;Towers
of Gold&amp;quot; next to us; the three of them headed off toward the Polo Fields.
Assertions: if you can&amp;#39;t read a map, ask someone who can &lt;u&gt;and&lt;/u&gt; if you ask
someone for help, pay attention to the answer.&lt;/p&gt;

&lt;p&gt;My final example involves the all-too-familiar scenario of
dealing with a utility customer support line. I wanted to make some changes
in my cable service that would entail upgrading my set-top box. I read all the
information on the site and then started a chat with one of their customer
service representatives. He was helpful enough, although he couldn&amp;#39;t provide a
delta list of channels between two tiers of service. I didn&amp;#39;t feel like
manually comparing the lists so I pasted them into two files, sorted them and
ran &amp;quot;diff&amp;quot; courtesy of &lt;a href="http://www.cygwin.com/"&gt;Cygwin&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;The only hitch was that the checkout process said that I had
to pick up the new box at a Best Buy store 25 miles away. The rep said he
couldn&amp;#39;t change that, and to expect email with instructions on pickup. By the
next day I had received no such message, so I started another chat. Here&amp;#39;s an
abbreviated version of the chat transcript:&lt;/p&gt;&lt;div style="margin-left:40px;"&gt;&lt;i&gt;Rep
&amp;gt; May I ask what specific changes being made in the account, Thomas?&lt;/i&gt;&lt;br /&gt;&lt;i&gt;Thomas
&amp;gt; Yesterday I changed over to a new package and I was told I would receive a
confirmation email with instructions about picking up my new set-top box&lt;/i&gt;&lt;br /&gt;&lt;i&gt;Thomas
&amp;gt; I have not received such an email&lt;/i&gt;&lt;br /&gt;&lt;i&gt;Rep
&amp;gt; Normally, we only send emails for installation or tech appointment
confirmation, Thomas.&lt;/i&gt;&lt;br /&gt;&lt;i&gt;Rep
&amp;gt; You can actually go to your local office to swap the box or you can have
it via mail, Thomas.&lt;/i&gt;&lt;br /&gt;&lt;i&gt;Thomas
&amp;gt; Can I go to a local service office? The online instructions said that I
had to go to a Best Buy 30 miles away...&lt;/i&gt;&lt;br /&gt;&lt;i&gt;Rep
&amp;gt; I am afraid to say that it could be a spam, Thomas.&lt;/i&gt;&lt;br /&gt;&lt;i&gt;Thomas
&amp;gt; No - it was a form on your site&lt;/i&gt;&lt;br /&gt;&lt;i&gt;Rep
&amp;gt; Okay, actually you can go directly to the local office to have your box
swapped, Thomas, just bring a valid ID with you.&lt;/i&gt;&lt;br /&gt;&lt;i&gt;Thomas
&amp;gt; OK, I will take the old unit to my local COMCAST service center as you
suggest. Thank you for your help!&lt;/i&gt;&lt;br /&gt;&lt;i&gt;Rep
&amp;gt; You are most welcome.&lt;/i&gt;&lt;br /&gt;











&lt;/div&gt;&lt;p&gt;So the second rep told me that they never send email for
equipment exchanges (the exact opposite of what I read on their own Web site)
and that I could do the exchange at my local service center in San Jose (the
exact opposite of what the other rep told me). Assertion: if you provide
customer support, have one consistent set of information available to your
customers and all your reps. Please comment if you have any such stories of your
own to share.&lt;/p&gt;

&lt;p&gt;Tom A.&lt;/p&gt;

&lt;p&gt;&lt;i&gt;The truth is out there...sometimes
it&amp;#39;s in a blog.&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;



&lt;img src="http://www.cadence.com/Community/aggbug.aspx?PostID=1301752" width="1" height="1"&gt;</content><author><name>tomacadence</name><uri>http://www.cadence.com/Community/members/tomacadence.aspx</uri></author><category term="Functional Verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Functional+Verification/default.aspx" /><category term="ABV" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/ABV/default.aspx" /><category term="formal" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/formal/default.aspx" /><category term="assertions" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/assertions/default.aspx" /><category term="assertion-based verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/assertion-based+verification/default.aspx" /></entry><entry><title>Formal Verification with Asynchronous Clocks</title><link rel="alternate" type="text/html" href="http://www.cadence.com/Community/blogs/fv/archive/2011/10/13/formal-verification-with-asynchronous-clocks.aspx" /><id>http://www.cadence.com/Community/blogs/fv/archive/2011/10/13/formal-verification-with-asynchronous-clocks.aspx</id><published>2011-10-13T20:00:00Z</published><updated>2011-10-13T20:00:00Z</updated><content type="html">&lt;p&gt;&lt;a href="http://www.cadence.com/Community/CSSharedFiles/blogs/fv/Joe_Hupcey_III/Georg_Muller.JPG"&gt;&lt;img src="http://www.cadence.com/Community/CSSharedFiles/blogs/fv/Joe_Hupcey_III/Georg_Muller.JPG" align="right" border="0" height="150" hspace="10" width="120" alt="" /&gt;&lt;/a&gt;Many designs have multiple independent clock inputs with different frequency specifications and/or different frequency ranges. In simulation based environments we see regressions run with randomly varying clock phase timing parameters to cover the many possible combinations. A simple Verilog example might look like:&lt;/p&gt;&lt;p&gt;&lt;b&gt;initial begin&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;clk = 0;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; forever #(RANDOM_PERIOD/2) clk = !clk;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;end&lt;/b&gt;&lt;/p&gt;&lt;p&gt;In the formal world we can also specify the clocks as discrete crank based waveforms, using Tcl commands which allow for verification of varying clock ratios and phase relationships.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cadence.com/Community/CSSharedFiles/blogs/fv/Joe_Hupcey_III/TV_async%20clock%20spec.JPG"&gt;&lt;img src="http://www.cadence.com/Community/CSSharedFiles/blogs/fv/Joe_Hupcey_III/TV_async%20clock%20spec.JPG" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p align="center"&gt;Figure 1: Clock Waveform Specification in IEV&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;Unfortunately, both approaches only cover a subset of all possible clock waveforms -- in effect, they represent over-constrained environments (recall Team Verify&amp;#39;s &lt;a href="http://www.cadence.com/Community/blogs/fv/archive/2011/01/03/the-role-of-coverage-in-formal-verification-part-1-of-3.aspx"&gt;prior post on over- constraining&lt;/a&gt;).&amp;nbsp; Thus, for the purpose of hunting corner case bugs in the clock synchronization logic we need a more aggressive, &amp;quot;under constrained&amp;quot; approach for the clock waveform specification.&lt;p&gt;A quick and slick solution is to simply leave the clock pins completely free as randomly toggling inputs. &amp;nbsp;In Incisive Formal or Incisive Enterprise Verifier we can achieve this by omitting the Tcl clock constraints above and adding &amp;quot;clock fairness constraints&amp;quot; instead. &amp;nbsp;Here is a PSL example:&lt;/p&gt;&lt;p&gt;&lt;b&gt;clk1_toggles: assume always eventually! (rose(clk1));&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;clk2_toggles: assume always eventually! (rose(clk2));&lt;/b&gt;&lt;/p&gt;&lt;p&gt;This will create completely unrelated clock frequency and phase relationships, modeling any possible glitch and hazard scenarios you can imagine. &amp;nbsp;However, since this is an aggressively under constrained environment it might work too well and you may face failures due to extreme, illegal clock waveforms. &amp;nbsp;Still, since this is so easy to setup and run, it is usually an acceptable price for exhaustive scenario coverage in a single formal run. &lt;/p&gt;&lt;p&gt;Surprisingly many counter examples come with pretty regular clock shapes for at least one clock, since it is in the interest of the formal engine to provide a short trace, which requires clocks to toggle. &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;a href="http://www.cadence.com/Community/CSSharedFiles/blogs/fv/Joe_Hupcey_III/TV_async_wave.JPG"&gt;&lt;img src="http://www.cadence.com/Community/CSSharedFiles/blogs/fv/Joe_Hupcey_III/TV_async_wave.JPG" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p align="center"&gt;Figure 2: Screenshot of asynchronous clock waveform using assertion driven simulation&lt;/p&gt;The point is that you can bracket the clock waveform verification with the most conservative and most aggressive approaches.&amp;nbsp; Specifically, we recommend the following 2-staged approach to verify designs with independent, asynchronous clocks:&lt;p&gt;1) Sync: Fixed simple (equivalent) synchronous clocks to flush out all bugs unrelated to clocking issues&lt;/p&gt;&lt;p&gt;2) Async: Unspecified clock waveforms to target bugs related to clock frequency, phase and glitch issues&lt;/p&gt;&lt;p&gt;Note that there are also approaches in between these extremes, which try to keep the clocks within a range using counters and auxiliary logic. &amp;nbsp;But they come with a higher price since complexity is more likely to explode with such clock generating networks. &amp;nbsp;Hence, we do not recommend such methodologies unless they are absolutely required.&lt;/p&gt;&lt;p&gt;Happy clocking!&lt;/p&gt;&lt;p&gt;Joerg Mueller&lt;br /&gt;Solutions Engineer&lt;br /&gt;for Team Verify&lt;/p&gt;&lt;p&gt;On Twitter: http://twitter.com/teamverify, @teamverify&lt;/p&gt;&lt;img src="http://www.cadence.com/Community/aggbug.aspx?PostID=1301685" width="1" height="1"&gt;</content><author><name>TeamVerify</name><uri>http://www.cadence.com/Community/members/TeamVerify.aspx</uri></author><category term="Functional Verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Functional+Verification/default.aspx" /><category term="Formal Analysis" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Formal+Analysis/default.aspx" /><category term="Verification methodology " scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Verification+methodology+/default.aspx" /><category term="PSL" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/PSL/default.aspx" /><category term="SVA" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/SVA/default.aspx" /><category term="verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/verification/default.aspx" /><category term="ABV" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/ABV/default.aspx" /><category term="IEV" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/IEV/default.aspx" /><category term="formal" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/formal/default.aspx" /><category term="IFV" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/IFV/default.aspx" /><category term="assertions" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/assertions/default.aspx" /><category term="formal verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/formal+verification/default.aspx" /><category term="asssertion-based verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/asssertion-based+verification/default.aspx" /><category term="Joerg Mueller" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Joerg+Mueller/default.aspx" /></entry><entry><title>Automating UVM to Tackle Insidious HW/SW Bugs</title><link rel="alternate" type="text/html" href="http://www.cadence.com/Community/blogs/fv/archive/2011/10/10/automating-uvm-to-tackle-insidious-hw-sw-bugs.aspx" /><id>http://www.cadence.com/Community/blogs/fv/archive/2011/10/10/automating-uvm-to-tackle-insidious-hw-sw-bugs.aspx</id><published>2011-10-10T18:21:00Z</published><updated>2011-10-10T18:21:00Z</updated><content type="html">&lt;p&gt;You&amp;#39;ve just sat through a 2-hour program review.&amp;nbsp; The 30 minutes you spent describing your sparkling new &lt;a href="http://www.uvmworld.org" target="_blank"&gt;UVM &lt;/a&gt;verification environment were electrifying.&amp;nbsp; Of course, the hardware and software reviews were boring.&amp;nbsp; Blah, blah, blah about design trade-offs with some buried references to register APIs.&amp;nbsp; Your metric-driven verification (&lt;a href="http://www.cadence.com/products/fv/enterprise_manager/pages/default.aspx" target="_blank"&gt;MDV&lt;/a&gt;) plan completely covers the spec, so you are sitting pretty.&amp;nbsp; Or are you... &lt;/p&gt;&lt;p&gt;Duolog and Cadence are hosting a webinar on October 11, 2011 at 9a PDT / 5p CET to discuss what happens if you don&amp;#39;t pay careful attention, and how to correct that.&amp;nbsp; Specifically, those design trade-offs that occur during the life-cycle of all projects often lead to changes in the API between the verification, hardware, and software domains. The verification environment is constructed, in part, to understand the bit fields in the registers that make up the API. If the tradeoffs change the bit fields in any way, the verification environment must change as well. The biggest issue is that the changes must be communicated and recognized among the team members in each domain. We all can point to cases where one team makes a &amp;quot;simple&amp;quot; change that has an unexpected impact on another.&lt;/p&gt;&lt;p&gt;Automation can help solve this problem.&amp;nbsp; Attendees to the webinar will hear a clear description of the problem, the UVM register-package that provides a framework for the solution, and a novel technology suite that automates that solution.&amp;nbsp; Led by Duolog&amp;#39;s CTO, David Murray, the webinar will also include a demonstration of how these insidious bugs can slip through and how the Duolog solution automates the elimination of those bugs.&lt;/p&gt;&lt;p&gt;For more information and to register, go to &lt;a href="http://www.duolog.com/webinar-automating-uvm-to-tackle-insidious-hwsw-bugs/" target="_blank"&gt;http://www.duolog.com/webinar-automating-uvm-to-tackle-insidious-hwsw-bugs/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;=Adam Sherer, Cadence &lt;/p&gt;&lt;img src="http://www.cadence.com/Community/aggbug.aspx?PostID=1301580" width="1" height="1"&gt;</content><author><name>Adam Sherilog</name><uri>http://www.cadence.com/Community/members/Adam-Sherilog.aspx</uri></author><category term="SystemVerilog" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/SystemVerilog/default.aspx" /><category term="IES" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/IES/default.aspx" /><category term="uvm" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/uvm/default.aspx" /><category term="Accellera VIP TSC" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Accellera+VIP+TSC/default.aspx" /><category term="Duolog" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Duolog/default.aspx" /><category term="bugs" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/bugs/default.aspx" /><category term="David Murray" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/David+Murray/default.aspx" /><category term="universal verification methodology" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/universal+verification+methodology/default.aspx" /></entry><entry><title>Free Webinar Thursday 10/13 -- Automating Assertion Generation for Simulation, Formal and Emulation</title><link rel="alternate" type="text/html" href="http://www.cadence.com/Community/blogs/fv/archive/2011/10/05/free-webinar-next-thursday-10-13-on-automating-assertion-generation-for-simulation-formal-and-emulation-flows.aspx" /><id>http://www.cadence.com/Community/blogs/fv/archive/2011/10/05/free-webinar-next-thursday-10-13-on-automating-assertion-generation-for-simulation-formal-and-emulation-flows.aspx</id><published>2011-10-05T16:45:00Z</published><updated>2011-10-05T16:45:00Z</updated><content type="html">&lt;p&gt;Everyone can agree that Assertion-Based Verification (ABV) is a powerful methodology for uncovering corner-case bugs, exposing functional coverage holes, and increasing verification observability.&amp;nbsp; HOWEVER, there is often one teeny-tiny issue that inhibits its wider adoption: hand-writing assertions can be a real pain.&amp;nbsp; To overcome this obstacle, assertion synthesis technology has emerged that enables rapid proliferation of ABV by automating the painful process of creating meaningful white-box assertions and functional coverage properties with sufficient capacity to handle complex SoC designs. Without writing any additional code, this technology can help you find additional bugs and improve functional coverage, integrating into your metric-driven verification (MDV) flow.&lt;/p&gt;&lt;p&gt;Great stuff -- but how does it work in reality?&amp;nbsp; In a free webinar &lt;a href="http://www.cadence.com/cadence/events/Pages/event.aspx?eventid=557"&gt;this coming Thursday October 13, 2011 at 9am Pacific&lt;/a&gt;, Team Verify partners with our friends at NextOp Software to show how assertion synthesis works in the real world.&amp;nbsp; In addition to a live demo to reinforce the concepts introduced, we&amp;#39;ll review in detail recent case studies from customer projects.&lt;/p&gt;&lt;p&gt;Register today:&lt;br /&gt;&lt;a href="http://www.cadence.com/cadence/events/Pages/event.aspx?eventid=557"&gt;http://www.cadence.com/cadence/events/Pages/event.aspx?eventid=557&lt;/a&gt;&lt;/p&gt;&lt;p&gt;... and see you on the radio soon!&lt;/p&gt;&lt;p&gt;Team Verify and NextOp&lt;/p&gt;&lt;p&gt;&lt;br /&gt;P.S. &amp;nbsp;Curious about the technical presenter, Yuan Lu of NextOp?&amp;nbsp; As the CTO of a smokin&amp;#39; hot EDA company, he is great at dividing his time between internal development and meeting with customers.&amp;nbsp; Hence, I suspect webinar attendees will recognize his voice from industry events like DAC and DVCon.&amp;nbsp; For example, here is an interview that Team Verify&amp;#39;s editor Joe Hupcey III did with Yuan back at DVCon:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;If the video fails to play, click &lt;a href="http://www.youtube.com/watch?v=jUZgmJzYO0Y"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;A full blog post on this interview is available&amp;nbsp;&lt;a href="http://www.cadence.com/Community/blogs/fv/archive/2011/04/28/video-dvcon-and-dvclub-case-study-nextop-s-bugscope-for-assertion-based-verification-abv.aspx"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cadence.com/Community/aggbug.aspx?PostID=1301460" width="1" height="1"&gt;</content><author><name>TeamVerify</name><uri>http://www.cadence.com/Community/members/TeamVerify.aspx</uri></author><category term="Formal Analysis" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Formal+Analysis/default.aspx" /><category term="DVcon" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/DVcon/default.aspx" /><category term="IES-XL" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/IES-XL/default.aspx" /><category term="Incisive" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Incisive/default.aspx" /><category term="ABV" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/ABV/default.aspx" /><category term="IEV" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/IEV/default.aspx" /><category term="methodology" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/methodology/default.aspx" /><category term="IFV" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/IFV/default.aspx" /><category term="NextOp" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/NextOp/default.aspx" /><category term="assertion synthesis" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/assertion+synthesis/default.aspx" /><category term="assertions" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/assertions/default.aspx" /><category term="formal verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/formal+verification/default.aspx" /><category term="BugScope" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/BugScope/default.aspx" /><category term="assertion-based verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/assertion-based+verification/default.aspx" /><category term="Yuan Lu" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Yuan+Lu/default.aspx" /><category term="Joe Hupcey III" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Joe+Hupcey+III/default.aspx" /><category term="webinar" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/webinar/default.aspx" /><category term="interview" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/interview/default.aspx" /></entry><entry><title>Amazon’s New Kindles: More Steps Toward the Paperback Computer</title><link rel="alternate" type="text/html" href="http://www.cadence.com/Community/blogs/fv/archive/2011/09/28/amazon-s-new-kindles-more-steps-toward-the-paperback-computer.aspx" /><id>http://www.cadence.com/Community/blogs/fv/archive/2011/09/28/amazon-s-new-kindles-more-steps-toward-the-paperback-computer.aspx</id><published>2011-09-28T20:00:00Z</published><updated>2011-09-28T20:00:00Z</updated><content type="html">&lt;p&gt;&lt;a href="http://www.cadence.com/Community/CSSharedFiles/blogs/fv/Joe_Hupcey_III/Kindle.JPG"&gt;&lt;img src="http://www.cadence.com/Community/CSSharedFiles/blogs/fv/Joe_Hupcey_III/Kindle.JPG" align="right" border="0" height="193" hspace="10" width="300" alt="" /&gt;&lt;/a&gt;While I understand that a &lt;a href="http://www.amazon.com/Kindle-Color-Multi-touch-Display-Wi-Fi/dp/B0051VVOB2/ref=amb_link_357575562_7?pf_rd_m=ATVPDKIKX0DER&amp;amp;pf_rd_s=gateway-center-column&amp;amp;pf_rd_r=10HAA5SQGGJ8WVJ78C85&amp;amp;pf_rd_t=101&amp;amp;pf_rd_p=1321411382&amp;amp;pf_rd_i=507846"&gt;new Kindle Fire at $199 MRSP&lt;/a&gt; is significantly more than a dime novel, I assert that today&amp;#39;s launch of the new Amazon tablets takes us one step closer to the &amp;quot;paperback computer&amp;quot; becoming a reality.&amp;nbsp; Here the term paperback computer isn&amp;#39;t just a clever play on words regarding the bookish seller of these devices.&amp;nbsp; Instead, it&amp;#39;s a reference to a conjecture introduced in 1992 by the venerable PBS series &amp;quot;The Machine That Changed the World&amp;quot;. &amp;nbsp;(Yes, a 19 year old reference - just bear with me for a paragraph ...)&lt;/p&gt;&lt;p&gt;You may recall that this series was a comprehensive documentary on the history of computing and information science, and that it also made some impressively accurate predictions of computing&amp;#39;s future.&amp;nbsp; Specifically, &lt;a href="http://waxy.org/2008/06/the_machine_that_changed_the_world_the_paperback_computer/"&gt;Episode 3, literally titled &amp;quot;The Paperback Computer&amp;quot;&lt;/a&gt;, opens with a tour of a historic &amp;quot;chained library&amp;quot;.&amp;nbsp; The books in this library -- both handwritten by monks, and mechanically printed by &amp;quot;gen 1&amp;quot; printing presses -- are literally chained to the shelves to prevent theft.&amp;nbsp; &lt;/p&gt;&lt;p&gt;The narrator goes on to state that because books were so expensive to create, &amp;quot;[at the time] the idea that regular citizens would own books was ludicrous.&amp;quot;&amp;nbsp; Pausing for a second to let the viewer chortle in self-congratulation that they already owned a Macintosh, IBM PC XT, or Amiga, the scene shifted to a contemporary university library where all the computers were chained to the desks to prevent them from walking away.&amp;nbsp; The point was well made: while in 1992 computers had become personal, they were still expensive enough that they needed to be locked down.&lt;/p&gt;&lt;p&gt;Fast forward 19 years, and I assert that today&amp;#39;s launch of the new Kindles shows the paperback computer is close at hand since the Kindles enable instant access to Amazon&amp;#39;s complete catalog of media, and the embedded wireless connection lets users roam free from any chains.&amp;nbsp; Plus: at $199 it&amp;#39;s not the end of the word if the device gets lost, damaged, or stolen.&amp;nbsp; (Of course, the device itself is not the $9.99 range of an &amp;quot;I won&amp;#39;t be heartbroken if it gets lost&amp;quot; paperback book.&amp;nbsp; Indeed, I predict that over the next ~5 years there is much revenue to be harvested -- or at least costs recovered -- from hardware sales before we see a return to the old cellular contract model of a free device with an N year subscription.)&lt;/p&gt;&lt;p&gt;But what does all this mean for our industry?&amp;nbsp; By coincidence, the implications for EDA are well spelled out in &lt;a href="http://eda360insider.wordpress.com/2011/09/26/jim-hogan-coins-%E2%80%9Cjobs-law%E2%80%9D-and-nails-it-to-the-door-of-system-and-soc-realization/"&gt;a recent post by &amp;quot;EDA360 Insider&amp;quot; Steve Leibson&lt;/a&gt; that reviews a bold &lt;a href="http://chipdesignmag.com/sld/vccorner/2011/09/22/jobs-law/"&gt;article by EDA-focused venture capitalist Jim Hogan&lt;/a&gt;.&amp;nbsp; Hogan persuasively argues that EDA must enable customers to make sure &amp;quot;the user experience is never compromised.&amp;quot;&amp;nbsp; This boils down to enabling true SoC design, where:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&amp;quot;SoC 3.0 software is king and programmability is the key, a departure from the hardware-focused era of gates-and-switches chip design. &amp;nbsp;Application software defines the differentiated value of the system for the consumer.&amp;quot; &lt;br /&gt;&lt;/i&gt;&lt;br /&gt;In a nutshell, as Steve Leibson meticulously documents in his review, these new mobile devices are all effective representations of the &lt;a href="http://www.eda360.com"&gt;EDA360 vision of &amp;quot;System Realization&amp;quot;&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;The good news is that I believe Cadence and other industry players are well positioned to help customers make this transition.&amp;nbsp; Speaking for Cadence, witness our parade of deliverables in this space - &lt;a href="http://www.cadence.com/products/sd/Pages/default.aspx"&gt;the Virtual System Platform, Rapid Prototyping Platform, Palladium XP&lt;/a&gt;, &lt;a href="http://www.cadence.com/solutions/hds/Pages/Default.aspx"&gt;Hosted Design Solutions (a/k/a EDA-optimized cloud computing)&lt;/a&gt;, and the &lt;a href="http://www.eetimes.com/electronics-products/ip-eda-products/4228217/Cadence-releases-additions-to-their-Verification-IP-library"&gt;new Verification IPs for emerging mobile standards announced just this week&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;That said, I think &amp;quot;we&amp;quot; (Cadence and the industry) still have a have a long way to go before we completely internalize this sea change.&amp;nbsp; And if we fail to stay ahead of these trends, the consequences could be quite extreme.&amp;nbsp; Specifically, the Hogan article warns that external forces could even force the EDA industry to go back to the future and return to the foundry-owned ASIC tools model of the 80&amp;#39;s and 90&amp;#39;s (yikes!) &amp;nbsp;Thus the question going forward is whether we can evolve our businesses deeper into the systems domain beyond the steps we&amp;#39;re taking today. Time will tell, so for now I welcome you to speculate along with me in the comments below, or 1:1 offline.&lt;/p&gt;&lt;p&gt;Joe Hupcey III&lt;/p&gt;&lt;p&gt;On Twitter: @jhupcey --&amp;nbsp; &lt;a href="http://twitter.com/jhupcey"&gt;http://twitter.com/jhupcey&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;P.S.&amp;nbsp; To put a finer point on the paperback computer end state: &lt;br /&gt;The central premise of this idea is that the device becomes so cheap that you really don&amp;#39;t care if it gets lost.&amp;nbsp; Consequently, assume for the moment all the data you do care about is safe inside some secure cloud computing area.&amp;nbsp; As such, only the loss of physical device itself is at issue and/or local storage will be mirrored in the cloud and wiped from the device remotely in the event of loss.&amp;nbsp; Further set aside the classic &amp;quot;free phone with contract&amp;quot; subsidized business model for a moment.&lt;/p&gt;&lt;p&gt;Hence, what is the ultimate COGS target for a $9.99, &amp;quot;I don&amp;#39;t care if it gets lost&amp;quot; paperback computer?&amp;nbsp; A cursory internet search of vanity publishers turned up the following: 10,000 units of a self-published, standard 288 page 5.5&amp;quot;x 8.5&amp;quot; paperback book, with a single color laminated cover, costs around $1 per unit.&amp;nbsp; To say the least, the EDA industry, IP creators, and system integrators sure have our work cut out!&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;u&gt;Reference Links&lt;br /&gt;&lt;/u&gt;&lt;/b&gt;&lt;a href="http://www.amazon.com/Kindle-Color-Multi-touch-Display-Wi-Fi/dp/B0051VVOB2/ref=amb_link_357575562_7?pf_rd_m=ATVPDKIKX0DER&amp;amp;pf_rd_s=gateway-center-column&amp;amp;pf_rd_r=10HAA5SQGGJ8WVJ78C85&amp;amp;pf_rd_t=101&amp;amp;pf_rd_p=1321411382&amp;amp;pf_rd_i=507846"&gt;Amazon&amp;#39;s new tablets&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://eda360insider.wordpress.com/2011/09/28/what%E2%80%99s-unique-about-the-new-199-android-based-amazon-kindle-fire-tablet/"&gt;EDA360 Insider: What&amp;#39;s unique about the new $199 Android-based Amazon Kindle Fire tablet?&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://eda360insider.wordpress.com/2011/09/26/jim-hogan-coins-%E2%80%9Cjobs-law%E2%80%9D-and-nails-it-to-the-door-of-system-and-soc-realization/"&gt;EDA360 Insider: &amp;quot;Jim Hogan coins &amp;quot;Jobs&amp;#39; Law&amp;quot; and nails it to the door of System and SoC Realization&amp;quot;&lt;br /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://chipdesignmag.com/sld/vccorner/2011/09/22/jobs-law/"&gt;Jim Hogan: &amp;quot;Job&amp;#39;s Law&amp;quot;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.eda360.com"&gt;The EDA360 Vision&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cadence.com/Community/aggbug.aspx?PostID=1301315" width="1" height="1"&gt;</content><author><name>jvh3</name><uri>http://www.cadence.com/Community/members/jvh3.aspx</uri></author><category term="VIP" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/VIP/default.aspx" /><category term="Cadence VIP portfolio" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Cadence+VIP+portfolio/default.aspx" /><category term="EDA" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/EDA/default.aspx" /><category term="SaaS" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/SaaS/default.aspx" /><category term="Palladium XP" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Palladium+XP/default.aspx" /><category term="EDA360" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/EDA360/default.aspx" /><category term="paperback computer" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/paperback+computer/default.aspx" /><category term="Joe Hupcey III" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Joe+Hupcey+III/default.aspx" /><category term="RPP" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/RPP/default.aspx" /><category term="VSP" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/VSP/default.aspx" /><category term="Rapid Prototyping Platform" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Rapid+Prototyping+Platform/default.aspx" /><category term="cloud computing" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/cloud+computing/default.aspx" /><category term="System Realization" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/System+Realization/default.aspx" /><category term="Tablet" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Tablet/default.aspx" /><category term="verification IP" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/verification+IP/default.aspx" /><category term="Amazon" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Amazon/default.aspx" /><category term="Kindle" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Kindle/default.aspx" /><category term="Hosted Design Solutions" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Hosted+Design+Solutions/default.aspx" /><category term="Steve Leibson" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Steve+Leibson/default.aspx" /><category term="Jim Hogan" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Jim+Hogan/default.aspx" /></entry><entry><title>Technical Tip on How to Use HDL Assertions in e</title><link rel="alternate" type="text/html" href="http://www.cadence.com/Community/blogs/fv/archive/2011/09/28/technical-tip-on-how-to-use-hdl-assertions.aspx" /><id>http://www.cadence.com/Community/blogs/fv/archive/2011/09/28/technical-tip-on-how-to-use-hdl-assertions.aspx</id><published>2011-09-28T17:00:00Z</published><updated>2011-09-28T17:00:00Z</updated><content type="html">&lt;p&gt;While assertion callbacks have existed in Specman/e for several years now, several questions on their usage have surfaced recently, so here is a short refresher on their usage.&lt;/p&gt;&lt;p&gt;ABV (Assertion Based Verification) is, more and more, becoming an important aspect of any complete verification.&amp;nbsp; HDL assertions help to detect more bugs earlier in the process and closer to their source.&lt;/p&gt;&lt;p&gt;This feature enables the integration between the HDL assertions and the verification environment in &lt;b&gt;&lt;i&gt;e&lt;/i&gt;&lt;/b&gt; by providing a simple API.&amp;nbsp; The &lt;b&gt;&lt;i&gt;e&lt;/i&gt;&lt;/b&gt; API provides methods to enable call back registration, control and query of HDL assertions that are defined in the RTL.&lt;/p&gt;&lt;p&gt;Registering a callback for an HDL assertion can be done by the following simple steps:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Defining an assertion callback function: &lt;ul&gt;&lt;li&gt;Derive your callback struct from &lt;b&gt;hdl_assertion_cb&lt;/b&gt;, and implement a &lt;b&gt;callback &lt;/b&gt;method&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Calling to one of the methods which register a callback on an assertion instance: &lt;ul&gt;&lt;li&gt;&lt;b&gt;register_regexp_cb()&lt;/b&gt; - Registers a callback with the assertions that match a regular-expression input string&lt;/li&gt;&lt;li&gt;&lt;b&gt;register_asserts_cb()&lt;/b&gt;&lt;b&gt; &lt;/b&gt;- Registers a callback for assertions list input&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;There are also API methods to obtain information about the assertion attributes and to enable/disable assertion checking in the simulator.&lt;/p&gt;&lt;p&gt;Here are a couple of examples that demonstrate how to use the API: &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;u&gt;Registration Callback example:&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Assume you have the following assertion:&lt;/p&gt;&lt;p&gt;&lt;b&gt;property&lt;/b&gt; p1;&lt;br /&gt;&amp;nbsp;@(&lt;b&gt;posedge&lt;/b&gt; clk) event1 |-&amp;gt;&amp;nbsp; ##3 event2;&lt;br /&gt;&lt;b&gt;endproperty&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;assert_p1 : &lt;b&gt;assert&lt;/b&gt; &lt;b&gt;property&lt;/b&gt;(p1);&lt;/i&gt;&lt;/p&gt;&lt;p&gt;This example shows how to register a failure and success callback for this assertion:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;div&gt;&lt;u&gt;Define callback methods for failure/success:&lt;/u&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;blockquote&gt;&lt;p&gt;Derive your callback struct from hdl_assertion_cb, and implement a callback method that will be executed whenever any assertion fires.&lt;/p&gt;&lt;p&gt;. sva_cb_err will be used when &lt;i&gt;assert_p1&lt;/i&gt; failed.&lt;br /&gt;. sva_cb_suc will be used when &lt;i&gt;assert_p1&lt;/i&gt; succeed.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;b&gt;struct&lt;/b&gt; sva_cb_suc &lt;b&gt;like&lt;/b&gt; hdl_assertion_cb&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;callback(assert : hdl_assertion) &lt;b&gt;is&lt;/b&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;//do something&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;};&lt;br /&gt;};&lt;/p&gt;&lt;p&gt;&lt;b&gt;struct&lt;/b&gt; sva_cb_err &lt;b&gt;like&lt;/b&gt; hdl_assertion_cb&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; callback(assert : hdl_assertion) &lt;b&gt;is&lt;/b&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; //do something...&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;br /&gt;};&lt;/p&gt;&lt;ol start="2"&gt;&lt;li&gt;&lt;u&gt;Registering callbacks on&amp;nbsp; the assertion instance:&lt;/u&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ul&gt;&lt;li&gt;&lt;div&gt;Create instances for the callback structs in stage 1.&lt;/div&gt;&lt;/li&gt;&lt;li&gt;Use the assert_mgr method register_regexp_cb to register callbacks with the assertions that match the &amp;quot;*.assert_p1&amp;quot; input string.&lt;br /&gt;(assert_mgr instance provides methods that let you define assertion instances as hdl_assertion types, and register callbacks on them)&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp; run() is also&lt;/b&gt; {&lt;/p&gt;&lt;p&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;&lt;b&gt;var&lt;/b&gt; sva_cb_success: sva_cb_suc = &lt;b&gt;new&lt;/b&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; &lt;b&gt;var&lt;/b&gt; sva_cb_error: sva_cb_err = &lt;b&gt;new&lt;/b&gt;;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;b&gt;compute&lt;/b&gt; &lt;br /&gt;assert_mgr.register_regexp_cb(&amp;quot;*.assert_p1&amp;quot;,sva_cb_error,FAILURE,SVA);&lt;br /&gt;&lt;b&gt;compute&lt;/b&gt; &lt;br /&gt;assert_mgr.register_regexp_cb(&amp;quot;*.assert_p1&amp;quot;,sva_cb_success,SUCCESS,SVA);&lt;br /&gt;...&lt;br /&gt;};&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;b&gt;&lt;u&gt;Query example:&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;At run time, when the callback() function is called, its hdl_assertion argument represents the assertion within the RTL that fired. The output from the callback() method can be customized according to the users needs. &amp;nbsp;For example, you may want to customize the behavior to output the assertion attributes and state of the target assertions. &lt;/p&gt;&lt;p&gt;The following example show an example of how to query an instance for it&amp;#39;s attributes and state:&lt;/p&gt;&lt;p&gt;&lt;b&gt;struct&lt;/b&gt; sva_cb_err &lt;b&gt;like&lt;/b&gt; hdl_assertion_cb&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; callback(assert : hdl_assertion) &lt;b&gt;is&lt;/b&gt; {&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out&lt;/b&gt;(&amp;quot;Assertion name : &amp;quot;,assert.get_instance_name());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;out&lt;/b&gt;(&amp;quot;Assertion instance path: &amp;quot;,assert.get_instance_path());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;b&gt;out&lt;/b&gt;(&amp;quot;Assertion failure count : &amp;quot;,assert.get_failure_count());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;out&lt;/b&gt;(&amp;quot;Assertion reason : &amp;quot;,assert.get_cb_reason());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;};&lt;br /&gt;};&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;u&gt;&lt;br /&gt;Control Example:&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;This example shows how to get all assertions in the design and then disable/enable assertions checking in the simulator.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;The &lt;i&gt;find_assertions&lt;/i&gt; method can use either a specific instance name or a regular expression to find a group of assertions. If the input string is NULL or *, the list will contain an hdl_assertion for every supported assertion in the design.&lt;/li&gt;&lt;li&gt;The disable_assertions/enable_assertions methods; disables/enables all of the assertions in the list.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; verify()@clock &lt;b&gt;is&lt;/b&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; &lt;b&gt;var&lt;/b&gt; assertions_list:= assert_mgr.find_assertions(&amp;quot;*&amp;quot;);&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; assert_mgr.disable_assertions(assertions_list);&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; &lt;b&gt;wait&lt;/b&gt; [5]*&lt;b&gt;cycle&lt;/b&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; assert_mgr.enable_assertions(assertions_list);&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; ....&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;Hope you found this helpful! &lt;br /&gt;Michal Nevo&lt;img src="http://www.cadence.com/Community/aggbug.aspx?PostID=1301041" width="1" height="1"&gt;</content><author><name>teamspecman</name><uri>http://www.cadence.com/Community/members/teamspecman.aspx</uri></author><category term="eRM" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/eRM/default.aspx" /><category term="SVA" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/SVA/default.aspx" /><category term="e" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/e/default.aspx" /><category term="Specman" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Specman/default.aspx" /><category term="OOP" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/OOP/default.aspx" /><category term="AOP" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/AOP/default.aspx" /><category term="IntelliGen" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/IntelliGen/default.aspx" /><category term="verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/verification/default.aspx" /><category term="team specman" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/team+specman/default.aspx" /><category term="Incisive" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Incisive/default.aspx" /><category term="assertions" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/assertions/default.aspx" /><category term="simulation" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/simulation/default.aspx" /><category term="e language" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/e+language/default.aspx" /><category term="assertion-based verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/assertion-based+verification/default.aspx" /><category term="Incisive Enterprise Simulator" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Incisive+Enterprise+Simulator/default.aspx" /></entry><entry><title>Missing Real-World Assertions in Computer-Land</title><link rel="alternate" type="text/html" href="http://www.cadence.com/Community/blogs/fv/archive/2011/09/26/missing-real-world-assertions-in-computer-land.aspx" /><id>http://www.cadence.com/Community/blogs/fv/archive/2011/09/26/missing-real-world-assertions-in-computer-land.aspx</id><published>2011-09-26T16:00:00Z</published><updated>2011-09-26T16:00:00Z</updated><content type="html">I was reviewing the page view statistics on the Cadence
Functional verification blog and noticed that my &lt;a href="http://www.cadence.com/Community/blogs/fv/archive/2011/05/16/sometimes-the-real-world-needs-assertions-too.aspx"&gt;previous&lt;/a&gt; &lt;a href="http://www.cadence.com/Community/blogs/fv/archive/2011/07/12/more-examples-of-missing-real-world-assertions.aspx"&gt;three&lt;/a&gt; &lt;a href="http://www.cadence.com/Community/blogs/fv/archive/2011/08/01/the-return-of-the-son-of-real-world-assertions.aspx?postID=1292547"&gt;posts&lt;/a&gt; about missing
real-world assertions are among the most read. So, in the spirit of milking the
cash cow, I&amp;#39;ve collected a few more incidents that amused me with their utter
illogic. My examples this time all have to do with some aspect of computer programs or
Web sites being out of sync with the times in which we live.

&lt;p&gt;As a member of several airline frequent-flier programs, I
receive lots of email about travel-related sites and offers. I recently
received an invitation to something called the &amp;quot;SkyGuide Executive
Privilege Club&amp;quot; from American Express. It caught my attention because it
promised reimbursement for one-time stays in airline lounges. Most frequent travelers
are members of one airline club but there are times when its lounge is not
convenient. Non-member &amp;quot;day passes&amp;quot; tend to be quite expensive, so the prospect
of someone paying for those sounded good.&lt;/p&gt;



&lt;p&gt;I went to their site and perused the &lt;a href="http://www.skyguideclub.com/info/member_benefits.aspx"&gt;details&lt;/a&gt; of the
offer. Most of the benefits were the usual sort of vague &amp;quot;services&amp;quot; and
discounts that are hard to value. But digging down a bit I found &amp;quot;SkyGuide
Executive Privilege Club members who purchase one-day guest passes at any
health club or airline-run airport lounge will receive a reimbursement for
their visit.&amp;quot; That still sounded good, until I read &amp;quot;Mail us your receipt via
certified mail within 30 days of use.&amp;quot; Certified mail? Seriously? What century
are we in? &lt;/p&gt;



&lt;p&gt;My second example is one that I see frequently in the
Microsoft Outlook client I used to read my email at Cadence. When I sort an
email folder by message size, it groups them into the following rather amusing
categories: &lt;/p&gt;

&lt;ul&gt;&lt;li&gt;Size: Enormous (&amp;gt; 5 MB)&lt;/li&gt;&lt;li&gt;Size: Huge (1 - 5 MB)&lt;/li&gt;&lt;li&gt;Size: Very Large (500 KB -
     1 MB)&lt;/li&gt;&lt;li&gt;Size: Large (100 - 500 KB)&lt;/li&gt;&lt;li&gt;Size: Medium (25 - 100 KB)&lt;/li&gt;&lt;li&gt;Size: Small (10 - 25 KB)&lt;/li&gt;&lt;li&gt;Size: Tiny (&amp;lt; 10 KB)&lt;/li&gt;&lt;/ul&gt;

&lt;p&gt;I&amp;#39;m sure you can see where I&amp;#39;m going with this. When was the
last time you considered a 100 KB file &amp;quot;large?&amp;quot; I have lots of Microsoft
PowerPoint files with only three or four slides that consume more than 500 KB.
The average MP3 audio file is several megabytes, so by Outlook&amp;#39;s definition most
of us have thousands or tens of thousands of &amp;quot;huge&amp;quot; files on our systems. I&amp;#39;m
using Office 2007, but these categories were just as outdated in 2007 as they
are now. I&amp;#39;m not sure I see any reason to include adjectives at all, but I chuckle
every time I sort mail by size.&lt;/p&gt;



&lt;p&gt;This reminds me of the common observation that many of the
icons used in computer programs are anachronisms: desktop telephones,
old-fashioned broadcast microphones, 3.5&amp;quot; floppy discs for &amp;quot;save&amp;quot; and so on. It
is ironic that computer software-as modern an invention as any-so often hangs
on to outdated terminology and iconography. But this is not an original
observation so it doesn&amp;#39;t count as one of my examples. Type &amp;quot;outdated icons
phone floppy&amp;quot; into your favorite search engine for lots of entertaining commentary
on this topic.&lt;/p&gt;



&lt;p&gt;My final example is Web sites that don&amp;#39;t date-stamp much of
their content. In the early days of the Web could look at the HTML properties
to see when a page was last modified, but these days just about all Web content
is dynamically built so that doesn&amp;#39;t work. I ran into this just recently when I
was helping my Accellera colleagues collect links to refresh the &lt;a href="http://www.uvmworld.org/"&gt;UVM World&lt;/a&gt; site. I was searching the Web for
recent UVM articles, papers, presentations, etc. I was amazed at how many
publications and blogs didn&amp;#39;t have a clear dateline. &lt;/p&gt;



&lt;p&gt;&lt;a href="http://www.design-reuse.com/articles/26341/guidelines-for-successful-soc-verification-in-ovm-uvm.html"&gt;Here&lt;/a&gt;
is just one of numerous examples I found. If you happened upon this article via
a Web search as I did or if someone sent you the URL, you would have no idea
when this article was written. That&amp;#39;s important to know since technology
changes very quickly and the date may help you decide whether to read or skip a
particular page. By looking around elsewhere on the sites I was eventually able
to find original publication dates for all of the links of interest but it took
significant extra effort. If this sort of thing bugs you, too, please comment!&lt;/p&gt;

&lt;p&gt;Tom A.&lt;/p&gt;



&lt;p&gt;&lt;i&gt;The truth is out there...sometimes
it&amp;#39;s in a blog.&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;



&lt;img src="http://www.cadence.com/Community/aggbug.aspx?PostID=1301226" width="1" height="1"&gt;</content><author><name>tomacadence</name><uri>http://www.cadence.com/Community/members/tomacadence.aspx</uri></author><category term="Functional Verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Functional+Verification/default.aspx" /><category term="ABV" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/ABV/default.aspx" /><category term="formal" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/formal/default.aspx" /><category term="uvm" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/uvm/default.aspx" /><category term="assertions" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/assertions/default.aspx" /><category term="assertion-based verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/assertion-based+verification/default.aspx" /><category term="outlook" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/outlook/default.aspx" /></entry><entry><title>ARM/Cadence Video: How ACE Coherency Adds Value and Verification Complexity</title><link rel="alternate" type="text/html" href="http://www.cadence.com/Community/blogs/fv/archive/2011/09/19/arm-cadence-video-how-ace-coherency-adds-value-and-verification-complexity.aspx" /><id>http://www.cadence.com/Community/blogs/fv/archive/2011/09/19/arm-cadence-video-how-ace-coherency-adds-value-and-verification-complexity.aspx</id><published>2011-09-19T18:00:00Z</published><updated>2011-09-19T18:00:00Z</updated><content type="html">&lt;p&gt;The number of licensees for ARM&amp;#39;s Cortex-A15 CPU core is growing rapidly, particularly for mobile computing applications.&amp;nbsp; Customers tell us that&amp;#39;s because it provides multiprocessor support and hardware based coherency while consuming only a small amount of power.&amp;nbsp; In our experience the majority of A15 designs are also adopting the new ACE protocol due to their need for a fast and reliable coherency scheme.&amp;nbsp; &lt;/p&gt;&lt;p&gt;To help potential A15 designers learn more about ACE, ARM and Cadence partnered to develop a video about ACE and ACE verification.&amp;nbsp; It&amp;#39;s only about 10 minutes long -- I encourage you to view it.&amp;nbsp; In addition you can see my &lt;a href="http://www.cadence.com/Community/blogs/fv/archive/2011/08/15/verifying-amba-174-4-ace-designs-cadence-is-ready-to-help-now.aspx"&gt;previous blog&lt;/a&gt; discussing the need for hardware based coherency.&amp;nbsp; &lt;/p&gt;&lt;p&gt;While ACE compliance is challenging to verify, the even bigger verification challenge is ensuring the design is actually coherent.&amp;nbsp; This is where Cadence&amp;#39;s complete ACE verification solution provides superior value.&amp;nbsp; We are seeing that nearly all ACE designs also incorporate fabrics such as ARM&amp;#39;s CCI-400 and/or NIC-400.&amp;nbsp; For this type of design it&amp;#39;s necessary to have &lt;b&gt;three verification tools all working in conjunction:&lt;/b&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;div&gt;ACE Verification IP &lt;b&gt;&lt;/b&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;Interconnect Monitor&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;Intelligent ACE Scoreboard&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Only by&amp;nbsp;having&amp;nbsp;the ACE VIP, Interconnect Monitor and Scoreboard working together can you be assured of achieving end-to-end design&amp;nbsp;coherency.&amp;nbsp; Cadence&amp;#39;s solution addresses all the common ACE/coherency verification challenges.&amp;nbsp; For example it will:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Create the necessary scenarios needed to mimic processor and memory behavior including snooping operations&lt;/li&gt;&lt;li&gt;Ensure data coherency (i.e. ensuring that only one copy of any data is valid)&lt;/li&gt;&lt;li&gt;Ensure that all simultaneous write/snoop combinations are managed correctly&lt;/li&gt;&lt;li&gt;Ensure no scenarios create deadlocks&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;You can open the video below or &lt;a href="http://www.youtube.com/watch?v=hhr7tj4vJrw&amp;amp;feature=youtu.be"&gt;click here&lt;/a&gt; to view:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;For more information about ACE verification we encourage you to contact your Cadence field representative.&amp;nbsp; You can also view our &lt;a href="http://www.cadence.com/products/fv/verification_ip/Pages/ambaprotocol.aspx"&gt;AMBA VIP information page&lt;/a&gt;.&amp;nbsp; You&amp;#39;ll find a datasheet there as well.&amp;nbsp; &amp;nbsp;&lt;/p&gt;&lt;p&gt;Pete Heller&lt;/p&gt;&lt;img src="http://www.cadence.com/Community/aggbug.aspx?PostID=1301036" width="1" height="1"&gt;</content><author><name>PeteHeller</name><uri>http://www.cadence.com/Community/members/PeteHeller.aspx</uri></author><category term="Functional Verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Functional+Verification/default.aspx" /><category term="ARM" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/ARM/default.aspx" /><category term="VIP" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/VIP/default.aspx" /><category term="ACE" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/ACE/default.aspx" /><category term="verification IP" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/verification+IP/default.aspx" /><category term="video" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/video/default.aspx" /><category term="interconnect monitor" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/interconnect+monitor/default.aspx" /><category term="Cortex-A15" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Cortex-A15/default.aspx" /><category term="ACE verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/ACE+verification/default.aspx" /><category term="cache coherency" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/cache+coherency/default.aspx" /><category term="coherency" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/coherency/default.aspx" /></entry><entry><title>Tech Tip: The “Show Me” Witness Trace Short-Cut for Design Bring-Up</title><link rel="alternate" type="text/html" href="http://www.cadence.com/Community/blogs/fv/archive/2011/09/19/tech-tip-the-show-me-witness-trace-short-cut-for-design-bring-up.aspx" /><id>http://www.cadence.com/Community/blogs/fv/archive/2011/09/19/tech-tip-the-show-me-witness-trace-short-cut-for-design-bring-up.aspx</id><published>2011-09-19T15:00:00Z</published><updated>2011-09-19T15:00:00Z</updated><content type="html">&lt;p&gt;&lt;a href="https://www.cadence.com:443/Community/CSSharedFiles/blogs/fv/Joe_Hupcey_III/Chris_Komar.JPG"&gt;&lt;img src="https://www.cadence.com:443/Community/CSSharedFiles/blogs/fv/Joe_Hupcey_III/Chris_Komar.JPG" align="right" border="0" height="150" hspace="10" width="120" alt="" /&gt;&lt;/a&gt;In a prior Team Verify post, Application Engineer Bin Ju talked about several applications of &lt;a href="http://www.cadence.com/Community/blogs/fv/archive/2011/07/05/true-stories-of-assertion-driven-simulation-ads-in-the-wild.aspx"&gt;&amp;quot;Assertion Driven Simulation (ADS) in the Wild&amp;quot;&lt;/a&gt;.&amp;nbsp; In the following tech tip, allow me (Chris Komar, right) to focus on a common thread through each of her stories: the need to quickly bring-up a design without having to write any throw-away RTL code.&amp;nbsp; One neat trick that supports this is a handy capability in &lt;a href="http://www.cadence.com/products/fv/formal_verifier"&gt;Incisive Formal&lt;/a&gt; and &lt;a href="http://www.cadence.com/products/fv/enterprise_verifier"&gt;Enterprise Verifier&lt;/a&gt; tools (&amp;quot;IFV&amp;quot; and &amp;quot;IEV&amp;quot;) nicknamed &amp;quot;show me&amp;quot;, where you can set up the tool to click on a signal in the source code viewer, and then have the tool display a cover witness trace for it.&amp;nbsp; &lt;/p&gt;&lt;p&gt;Specifically, you can quickly select a signal in your DUT and ask IFV/IEV to show the signal becoming active.&amp;nbsp; Thus, instead of having to write a testbench and figure out the proper stimulus to assert the signal, you just ask IFV/IEV to show you it going active -- hence the &amp;quot;show me&amp;quot; nickname.&lt;/p&gt;&lt;p&gt;Without exception, every customer that I&amp;#39;ve introduced this &amp;quot;show me&amp;quot; trick to wants to use this feature, and ideally automate its operation.&amp;nbsp; Hence, here is how you can map this capability to its own button on the IFV/IEV GUI for quick access.&lt;/p&gt;&lt;p&gt;1 - Right click in the blank space of toolbar of the IFV/IEV window to open a pop-up menu to modify the toolbar settings.&amp;nbsp; Then click the &amp;quot;Customize&amp;quot; button in the pop menu to bring up the &amp;quot;Customize Toolbars&amp;quot; dialog box.&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.cadence.com:443/Community/CSSharedFiles/blogs/fv/Joe_Hupcey_III/JH3_091911_Fig1.JPG"&gt;&lt;img src="https://www.cadence.com:443/Community/CSSharedFiles/blogs/fv/Joe_Hupcey_III/JH3_091911_Fig1.JPG" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;2 - In the &amp;quot;Customize Toolbars&amp;quot; dialog box that appears, click &amp;quot;New Toolbar&amp;quot; to create a user defined toolbar called &amp;quot;User Toolbar&amp;quot;, then click &amp;quot;New Button&amp;quot; to open the &amp;quot;Create a New Button&amp;quot; window.&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.cadence.com:443/Community/CSSharedFiles/blogs/fv/Joe_Hupcey_III/JH3_091911_Fig2.JPG"&gt;&lt;img src="https://www.cadence.com:443/Community/CSSharedFiles/blogs/fv/Joe_Hupcey_III/JH3_091911_Fig2.JPG" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;3 - In &amp;quot;Edit a Button&amp;quot; window, configure and input the Tcl script as the following figure and click &amp;quot;OK&amp;quot;, which will create a new user button called &amp;quot;Witness Signal&amp;quot; in the IFV/IEV window.&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.cadence.com:443/Community/CSSharedFiles/blogs/fv/Joe_Hupcey_III/JH3_091911_Fig3.JPG"&gt;&lt;img src="https://www.cadence.com:443/Community/CSSharedFiles/blogs/fv/Joe_Hupcey_III/JH3_091911_Fig3.JPG" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;4 - Next, go back and bring-up the source code browser to select a signal, then click on your new button to have IFV/IEV show a waveform that asserts that signal (which in effect utilizes the dynamic/interactive property creation via Tcl).&amp;nbsp;&amp;nbsp;This waveform will honor the constraints defined by your assertion.&lt;/p&gt;&lt;p&gt;Happy &amp;quot;Showing&amp;quot;!&lt;/p&gt;&lt;p&gt;Chris Komar&lt;br /&gt;for Team Verify&lt;/p&gt;&lt;p&gt;On Twitter: &lt;a href="http://twitter.com/teamverify"&gt;http://twitter.com/teamverify&lt;/a&gt;, @teamverify&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cadence.com/Community/aggbug.aspx?PostID=1296981" width="1" height="1"&gt;</content><author><name>TeamVerify</name><uri>http://www.cadence.com/Community/members/TeamVerify.aspx</uri></author><category term="Functional Verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Functional+Verification/default.aspx" /><category term="Formal Analysis" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Formal+Analysis/default.aspx" /><category term="ABV" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/ABV/default.aspx" /><category term="IEV" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/IEV/default.aspx" /><category term="formal" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/formal/default.aspx" /><category term="IFV" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/IFV/default.aspx" /><category term="simulation" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/simulation/default.aspx" /><category term="formal verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/formal+verification/default.aspx" /><category term="Chris Komar" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Chris+Komar/default.aspx" /><category term="assertion-based verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/assertion-based+verification/default.aspx" /><category term="ADS" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/ADS/default.aspx" /><category term="Assertion-Driven Simulation" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Assertion-Driven+Simulation/default.aspx" /><category term="witness trace" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/witness+trace/default.aspx" /><category term="show me" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/show+me/default.aspx" /></entry><entry><title>Rumors of SystemVerilog’s Death Have Been Greatly Exaggerated</title><link rel="alternate" type="text/html" href="http://www.cadence.com/Community/blogs/fv/archive/2011/09/15/rumors-of-systemverilog-s-death-have-been-greatly-exaggerated.aspx" /><id>http://www.cadence.com/Community/blogs/fv/archive/2011/09/15/rumors-of-systemverilog-s-death-have-been-greatly-exaggerated.aspx</id><published>2011-09-15T13:00:00Z</published><updated>2011-09-15T13:00:00Z</updated><content type="html">Our friend and fellow blogger JL Gray recently published a &lt;a href="http://www.coolverification.com/2011/08/uvm-and-the-death-of-systemverilog.html"&gt;post&lt;/a&gt;
with the provocative title &amp;quot;UVM and the Death of SystemVerilog.&amp;quot; That sure
raised some eyebrows here at Cadence and elsewhere, leading to a flurry of &lt;a href="https://twitter.com/#%21/jlgray"&gt;tweets&lt;/a&gt; debating several of JL&amp;#39;s
contentions. I was tempted to join in the fray, but as I re-read his post and
thought more about it, I realized that I had enough to say to write a blog post
myself. JL made a number of statements that got me thinking, and while I don&amp;#39;t
intend to write a point-by-point response I do have some contentions
of my own.

&lt;p&gt;JL&amp;#39;s main argument is that the virtues of a standard methodology (UVM =
Universal Verification Methodology) built in a standard language
(SystemVerilog) are being compromised because both are hard to learn. I can&amp;#39;t really
argue but I think it&amp;#39;s worth separating two aspects of that difficulty.
SystemVerilog is, in truth, a bit of a &amp;quot;Frankensteinian&amp;quot; language. Its many new
constructs on top of Verilog came from several different sources. Further, it
is a dual-purpose language meant to both describe designs and verify them. It lacks
some of the elegance of certain other languages but it does the job, as
evidenced by its wide usage and overall success. It is most surely not dying.&lt;/p&gt;

&lt;p&gt;The second difficulty in learning the UVM and SystemVerilog is the leap in
thinking required to embrace object-oriented programming (OOP) and other
advanced concepts. This same challenge exists for just about every &amp;quot;modern&amp;quot;
language as well as alternative verification and modeling languages such as &lt;b&gt;&lt;i&gt;e&lt;/i&gt;&lt;/b&gt;
and SystemC. JL calls out for the industry to start looking at &amp;quot;other languages
and development frameworks.&amp;quot; I frankly find it hard to imagine that any other
approach would not entail the use of OOP and therefore require a solid
understanding of this programming discipline.&lt;/p&gt;

&lt;p&gt;JL concludes by contending that EDA vendors will not, or perhaps cannot,
produce the level of innovative thinking to define such a new language. His
implication seems to be that both SystemVerilog and the UVM were foisted on the
industry by EDA vendors and that&amp;#39;s the best we can
do. In fact, both of these were produced by standards bodies comprising a mix
of EDA vendors, consulting companies, semiconductor suppliers, and systems
houses. All can claim credit for the wide success of the UVM and SystemVerilog,
while sharing a bit of blame for the less elegant aspects of the language.&lt;/p&gt;

&lt;p&gt;I believe that UVM does represent innovation on the part of the industry as
a whole, with EDA vendors playing a key role. The &lt;a href="http://www.uvmworld.org"&gt;UVM&lt;/a&gt; has done more than any
other single technology to move countless thousands of users to advanced
verification. The upcoming Unified Coverage Interoperability Standard (&lt;a href="http://www.accellera.org/activities/ucis"&gt;UCIS&lt;/a&gt;) is
another innovative industry-wide effort likely to have great benefit for users.
There are many additional examples of ongoing EDA innovation in functional verification:
low-power flows, much faster mixed-signal simulation, multi-core support,
unique blends of simulation and formal techniques, and more. &lt;/p&gt;

&lt;p&gt;But innovation does not imply that we need to rush off and define yet
another language. Sure, someday there will a better verification language than
SystemVerilog and a better methodology than the UVM. However, the reality is
that every new language and methodology requires a huge investment. It takes
EDA vendors three or four years to implement a new standard and by that time
there&amp;#39;s probably a new version ready to be implemented. Users invest billions
of dollars in training and building reusable verification components. Let&amp;#39;s
leverage this investment; there&amp;#39;s a lot of headroom for improved verification
productivity and quality with what we have in hand today: SystemVerilog, &lt;b&gt;&lt;i&gt;e&lt;/i&gt;&lt;/b&gt;,
SystemC models, and multi-language UVM. Let&amp;#39;s run with it!&lt;/p&gt;

&lt;p&gt;Tom A.&lt;/p&gt;



&lt;p&gt;&lt;i&gt;The truth is out there...sometimes
it&amp;#39;s in a blog.&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cadence.com/Community/aggbug.aspx?PostID=1293950" width="1" height="1"&gt;</content><author><name>tomacadence</name><uri>http://www.cadence.com/Community/members/tomacadence.aspx</uri></author><category term="SystemVerilog" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/SystemVerilog/default.aspx" /><category term="accellera" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/accellera/default.aspx" /><category term="uvm" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/uvm/default.aspx" /><category term="uvm world" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/uvm+world/default.aspx" /><category term="universal verification methodology" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/universal+verification+methodology/default.aspx" /><category term="UCIS" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/UCIS/default.aspx" /><category term="JL Gray" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/JL+Gray/default.aspx" /></entry><entry><title>Everything New is Old … Everything Old is New</title><link rel="alternate" type="text/html" href="http://www.cadence.com/Community/blogs/fv/archive/2011/09/09/everything-new-is-old-everything-old-is-new.aspx" /><id>http://www.cadence.com/Community/blogs/fv/archive/2011/09/09/everything-new-is-old-everything-old-is-new.aspx</id><published>2011-09-09T21:05:00Z</published><updated>2011-09-09T21:05:00Z</updated><content type="html">The title of this post is taken from a fairly obscure 1982 record &lt;a href="http://www.robertchristgau.com/get_album.php?id=4753"&gt;album&lt;/a&gt; (yes,
vinyl) on which several classic doo-wop groups performed versions of
then-current songs. It&amp;#39;s achieved a bit of cult status since Joey Ramone
contributed a song called &amp;quot;Doreen is Never Boring&amp;quot; that, as far as I know,
Ramones themselves never recorded. What the heck does this have to do with
functional verification? Well, I was reminded of this title by a recent blog &lt;a href="https://www.cadence.com:443/community/blogs/lp/archive/2011/09/08/low-power-keeps-gate-simulation-forever-young.aspx?postID=1293983"&gt;post&lt;/a&gt;
from my colleague Adam Sherer about the persistence of gate-level simulation.&lt;p&gt;Adam&amp;#39;s observations were triggered by a blog &lt;a href="http://chipdesignmag.com/lpd/mutschler/2011/07/21/aren%E2%80%99t-we-beyond-that/" target="_blank"&gt;post&lt;/a&gt; from Ann
Mutschler that specifically discussed verification of low-power design
structures. She commented &amp;quot;in a small sense, what&amp;#39;s old is new&amp;quot; in
regard to the use of gate-level simulation for low-power verification.
Adam&amp;#39;s quote of her comment is specifically what reminded me of the album
title, but it also led me to think a bit about some other &amp;quot;old&amp;quot; EDA tools and
techniques that show no signs of going away and thus seem to be perpetually
new.&lt;/p&gt;

&lt;p&gt;There was certainly a time when many in the industry felt that gate-level
simulation would go away. As I noted in my most recent &lt;a href="https://www.cadence.com:443/community/blogs/fv/archive/2011/08/23/what-does-systemc-mean-for-design-and-verification.aspx?postID=1293467"&gt;post&lt;/a&gt;,
early logic synthesis users ran lots of gate-level simulations to cross-check the
synthesis process. Once RTL-to-gate logical equivalence checking (LEC) became available, the
amount of gate-level simulation dropped significantly. However, it never went
entirely away since patterns destined for chip testers generally had to be
simulated at the gate level with full back-annotated post-route timing. &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;

&lt;p&gt;As Adam and Ann noted, gate-level simulation is even enjoying somewhat of a
comeback. But it&amp;#39;s not the only &amp;quot;old&amp;quot; technology still around. What about LEC? There used to be talk about &amp;quot;correct-by-construction&amp;quot; logic synthesis
that would always create gates true to the RTL so that cross-checking would no longer be
needed. There was also a notion of correct-by-construction place and route, so
that such techniques as design rule checking (DRC) and layout-versus-schematic (LVS) comparison
would not be needed either. Well, none of those tools shows signs of disappearing anytime soon.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;

&lt;p&gt;Coming back up to functional verification, the advent of constrained-random
stimulus generation seemingly spelled the death of manually written directed tests.
In truth, many project teams still do write some tests to exercise known
corner cases that may be hard to hit automatically. What about simulation
itself? As formal analysis gained in popularity there was some speculation that
it would replace simulation entirely. However, capacity limitations and the
challenges of specifying all intended behavior in the form of assertions have kept
formal in use mostly on portions of a design, but rarely on an entire chip.&lt;/p&gt;

&lt;p&gt;I&amp;#39;m sure that I can think of some more examples, but this seems like the
ideal spot to stop and solicit comments from you, the readers. What EDA tools
and technologies did you think would be obsolete by now? What other examples
can you recall where the predictions of the &amp;quot;experts&amp;quot; turned out to be wrong? What&amp;#39;s
&amp;quot;old&amp;quot; but &amp;quot;new again?&amp;quot; What&amp;#39;s advertised as &amp;quot;new&amp;quot; but really just a rehash of old
technology? I&amp;#39;d love to hear your thoughts!&lt;/p&gt;

&lt;p&gt;Tom A.&lt;/p&gt;



&lt;p&gt;&lt;i&gt;The truth is out there...sometimes
it&amp;#39;s in a blog.&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cadence.com/Community/aggbug.aspx?PostID=1294029" width="1" height="1"&gt;</content><author><name>tomacadence</name><uri>http://www.cadence.com/Community/members/tomacadence.aspx</uri></author><category term="Functional Verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Functional+Verification/default.aspx" /><category term="EDA" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/EDA/default.aspx" /><category term="simulation" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/simulation/default.aspx" /><category term="DRC" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/DRC/default.aspx" /><category term="RTL" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/RTL/default.aspx" /><category term="LVS" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/LVS/default.aspx" /><category term="LEC" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/LEC/default.aspx" /><category term="gate level" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/gate+level/default.aspx" /><category term="old" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/old/default.aspx" /><category term="new" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/new/default.aspx" /><category term="gate-level" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/gate-level/default.aspx" /></entry><entry><title>Can Your Verification Survive “Boot Camp”?</title><link rel="alternate" type="text/html" href="http://www.cadence.com/Community/blogs/fv/archive/2011/08/24/can-your-verification-survive-boot-camp.aspx" /><id>http://www.cadence.com/Community/blogs/fv/archive/2011/08/24/can-your-verification-survive-boot-camp.aspx</id><published>2011-08-24T13:00:00Z</published><updated>2011-08-24T13:00:00Z</updated><content type="html">&lt;p&gt;&lt;a href="http://www.cadence.com/Community/CSSharedFiles/blogs/fv/Joe_Hupcey_III/JH3_08232011.JPG"&gt;&lt;img src="http://www.cadence.com/Community/CSSharedFiles/blogs/fv/Joe_Hupcey_III/JH3_08232011.JPG" align="right" border="0" height="150" hspace="10" width="120" alt="" /&gt;&lt;/a&gt;In Silicon Valley there is a popular fitness program called &amp;quot;Boot Camp&amp;quot; where people volunteer to be run through rigorous exercises by a demanding instructor, analogous to what armies around the world do bring new recruits up to the desired physical fitness standards.&amp;nbsp; Team Verify has a similar &amp;quot;boot camp&amp;quot; program where we rapidly train engineers in Formal and assertion-based verification (ABV) techniques.&amp;nbsp; Like the fitness-oriented boot camp, even people who thought they were in shape before arriving to camp come away impressed, and sometimes humbled, at what the program reveals in themselves and in the blocks and systems they are verifying -- or thought were already verified.&lt;/p&gt;&lt;p&gt;Consider a recent example at a Formal verification boot camp held at a customer in Asia.&amp;nbsp; The client gave us several existing IP blocks to use for training -- familiar blocks were chosen so the focus would be on learning some new Formal and ABV methodologies, and not on having to decode the function of the block itself.&amp;nbsp; As such, expectations for finding bugs were relatively low since all of these blocks had been thoroughly verified by dynamic simulation techniques.&amp;nbsp; Additionally, some IP blocks were from a trusted 3&lt;sup&gt;rd&lt;/sup&gt; party providers, and some were already taped out and in production.&amp;nbsp; &lt;/p&gt;&lt;p&gt;However, within the week of training, previously undiscovered bugs were found in &lt;u&gt;all&lt;/u&gt; of the blocks!&amp;nbsp; Specifically, 10 bugs were found in the 4 selected designs, which came as a big surprise since they were all pre-verified by simulation. &amp;nbsp;In parallel, the engineers learned the whole Formal and ABV flow: from planning and verification strategies, how to target focus areas, and assertion coding.&amp;nbsp; &lt;/p&gt;&lt;p&gt;The moral(s) of the story:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;The engineers learned Formal and ABV on real designs, making the experience personally meaningful, and economically important given the number of new bugs they found.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&amp;nbsp;Even if your simulation-oriented verification is in good shape, Formal and ABV boot camp can build on this foundation to get your verification all &lt;a href="http://onlineslangdictionary.com/meaning-of/diesel"&gt;&amp;quot;diesel&amp;quot;&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;If holding an ABV boot camp at your site is of interest to you, please &lt;a href="http://www.cadence.com/cadence/contact_us/Pages/default.aspx"&gt;contact your local Cadence Field office&lt;/a&gt;, or reach out to Team Verify via the &amp;quot;Contact&amp;quot; link at the top of this page to get in shape today!&lt;/p&gt;&lt;p&gt;Happy Verifying!&lt;/p&gt;&lt;p&gt;Jin Tang&lt;br /&gt;Principal Solutions Engineer&lt;br /&gt;Shenzhen, China&lt;br /&gt;for Team Verify&lt;/p&gt;&lt;p&gt;On Twitter: http://twitter.com/teamverify, @teamverify&lt;/p&gt;&lt;img src="http://www.cadence.com/Community/aggbug.aspx?PostID=1293503" width="1" height="1"&gt;</content><author><name>TeamVerify</name><uri>http://www.cadence.com/Community/members/TeamVerify.aspx</uri></author><category term="Functional Verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Functional+Verification/default.aspx" /><category term="Formal Analysis" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Formal+Analysis/default.aspx" /><category term="Incisive" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Incisive/default.aspx" /><category term="ABV" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/ABV/default.aspx" /><category term="IEV" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/IEV/default.aspx" /><category term="formal" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/formal/default.aspx" /><category term="IFV" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/IFV/default.aspx" /><category term="assertions" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/assertions/default.aspx" /><category term="formal verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/formal+verification/default.aspx" /><category term="assertion-based verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/assertion-based+verification/default.aspx" /><category term="Assertion-Driven Simulation" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Assertion-Driven+Simulation/default.aspx" /><category term="boot camp" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/boot+camp/default.aspx" /></entry><entry><title>What Does SystemC Mean for Design and Verification?</title><link rel="alternate" type="text/html" href="http://www.cadence.com/Community/blogs/fv/archive/2011/08/23/what-does-systemc-mean-for-design-and-verification.aspx" /><id>http://www.cadence.com/Community/blogs/fv/archive/2011/08/23/what-does-systemc-mean-for-design-and-verification.aspx</id><published>2011-08-23T13:00:00Z</published><updated>2011-08-23T13:00:00Z</updated><content type="html">My colleague &lt;a href="https://www.cadence.com:443/community/posts/Jack%20Erickson.aspx"&gt;Jack
Erickson&lt;/a&gt; recently published in the &lt;a href="https://www.cadence.com:443/community/blogs/sd/default.aspx"&gt;Cadence System
Design and Verification Community&lt;/a&gt; a blog &lt;a href="https://www.cadence.com:443/community/blogs/sd/archive/2011/08/12/ip-cannot-be-an-efficient-abstraction-level-without-systemc.aspx?postID=1292853"&gt;post&lt;/a&gt;
entitled &amp;quot;IP Cannot Be an Efficient Abstraction Level without SystemC!&amp;quot; When I
saw the title, my immediate reaction was to write a complementary post called
&amp;quot;SystemC Cannot Be an Efficient Abstraction Level without IP!&amp;quot; This caused me
to think some about the industry momentum toward using SystemC rather than traditional
RTL as a design language.&amp;nbsp; I chose a more
general title because there are three key points I want to hit.

&lt;p&gt;My first comment is that I agree with Jack&amp;#39;s conclusions. Because &lt;a href="https://www.cadence.com:443/products/sd/silicon_compiler/pages/default.aspx"&gt;C-to-Silicon
Compiler&lt;/a&gt;&amp;#39;s high-level synthesis can transform the same design description in different ways for
different applications, SystemC IP is inherently more reusable that RTL IP. I
also agree that SystemC can deliver a significantly higher level of abstraction
than RTL. Sure, it&amp;#39;s possible to write a SystemC design description that&amp;#39;s
nothing more than RTL in another language, but with training designers can
learn how to write untimed, high-level code that enables boosts in abstraction
and reusability.&lt;/p&gt;

&lt;p&gt;Given the advantages of SystemC-based design, why is it not yet universally
adopted? I believe that it&amp;#39;s valid to draw a comparison with the rise of
RTL-based design in the early 90s. I was a pioneer in that transition, taping
out in 1989 what I believe was only the second chip anywhere using a commercial
logic-synthesis tool. RTL for simulation and modeling had been around for a
number of years previously, but the availability of logic synthesis was the key
driver for RTL replacing gate-level schematics for design input.&lt;/p&gt;

&lt;p&gt;There were other enabling technologies, including RTL-to-gates equivalence
checking, RTL-based design rule checkers, and the availability of commercial
RTL design IP. Being able to license proven design IP for a wide array of
standard interfaces was a good reason to move to RTL if not already there. Even
&amp;quot;star IP&amp;quot; providers such as ARM began offering RTL versions of their cores. My
second main point, and the complement to Jack&amp;#39;s title, is that the availability
of SystemC design IP will be a strong incentive for designers to move up from RTL.&lt;/p&gt;

&lt;p&gt;I say &amp;quot;will be&amp;quot; because I don&amp;#39;t see a lot of SystemC design IP out there
yet. I searched the &lt;a href="http://www.chipestimate.com/"&gt;ChipEstimate&lt;/a&gt;
site for the keyword &amp;quot;SystemC&amp;quot; and found only a half-dozen listings, several of
which appear to be RTL designs with SystemC simulation models. I have little
doubt that this will change; logic synthesis was around for several years
before the RTL-based IP industry made a significant impact. I expect a similar
&amp;quot;chicken and egg&amp;quot; effect with the adoption of &lt;a href="https://www.cadence.com:443/products/sd/silicon_compiler/pages/default.aspx"&gt;C-to-Silicon
Compiler&lt;/a&gt; and the availability of SystemC design IP.&lt;/p&gt;

&lt;p&gt;My final topic is what the transition from RTL to SystemC design means for
my world of functional verification. Today, many SystemC designers perform the
bulk of their verification at the RTL level, using the output of high-level
synthesis. Again, there is a clear comparison with the early days of RTL design,
when designers still ran lots of gate-level simulation. This changed over time,
and likewise I expect that verification will become more and more centered on
the SystemC design description.&lt;/p&gt;

&lt;p&gt;Cadence has done a lot of work to ensure that this transition will be
painless for our customers, including:&lt;/p&gt;

&lt;ul class="unIndentedList"&gt;&lt;li&gt;
Extending the Universal Verification Methodology
(&lt;a href="https://www.cadence.com:443/Alliances/languages/Pages/uvm.aspx"&gt;UVM)&lt;/a&gt; to include SystemC models, including SystemC verification IP (VIP)
components&lt;/li&gt;&lt;li&gt;
Ensuring that the same UVM testbenches running
in &lt;a href="https://www.cadence.com:443/products/fv/enterprise_simulator/pages/default.aspx"&gt;Incisive
Enterprise Simulator&lt;/a&gt; can be used for both SystemC and RTL designs&lt;/li&gt;&lt;li&gt;
Using the same underlying technology in SystemC
testbench simulation and in the Cadence &lt;a href="https://www.cadence.com:443/products/sd/virtual_system/pages/default.aspx"&gt;Virtual
System Platform&lt;/a&gt; to ensure consistent behavior &lt;/li&gt;&lt;/ul&gt;





&lt;p&gt;I&amp;#39;ll defer to my colleague Jack to forecast the industry&amp;#39;s move from RTL to
SystemC design in more detail, but it&amp;#39;s clear to me that this is happening and
that it has a lot in common with the gates-to-RTL transition. EDA vendors
worked hard to ensure an easy path for their customers back then, and we&amp;#39;re
equally committed to evolving our tools and methodologies today for customer
success. I&amp;#39;d love to hear from you about SystemC-based design. Are you doing
it? Considering it? If not, why not? What can we do to help? I look forward to
your comments.&lt;/p&gt;

&lt;p&gt;Tom A.&lt;/p&gt;

&lt;i&gt;The truth is out there...sometimes it&amp;#39;s in a
blog&lt;/i&gt;

&amp;nbsp;&lt;img src="http://www.cadence.com/Community/aggbug.aspx?PostID=1293467" width="1" height="1"&gt;</content><author><name>tomacadence</name><uri>http://www.cadence.com/Community/members/tomacadence.aspx</uri></author><category term="Functional Verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Functional+Verification/default.aspx" /><category term="SystemC" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/SystemC/default.aspx" /><category term="IES-XL" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/IES-XL/default.aspx" /><category term="TLM" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/TLM/default.aspx" /><category term="VSP" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/VSP/default.aspx" /><category term="Virtual System Platform" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Virtual+System+Platform/default.aspx" /><category term="uvm world" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/uvm+world/default.aspx" /><category term="C-to-Silicon" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/C-to-Silicon/default.aspx" /><category term="Incisive Enterprise Simulator" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Incisive+Enterprise+Simulator/default.aspx" /></entry><entry><title>If Only Carl Friedrich Gauss had IntelliGen in 1850</title><link rel="alternate" type="text/html" href="http://www.cadence.com/Community/blogs/fv/archive/2011/08/18/if-only-gauss-had-intelligen-in-1850.aspx" /><id>http://www.cadence.com/Community/blogs/fv/archive/2011/08/18/if-only-gauss-had-intelligen-in-1850.aspx</id><published>2011-08-18T15:00:00Z</published><updated>2011-08-18T15:00:00Z</updated><content type="html">&lt;p&gt;The N-queens issue is a challenging but standard puzzle when it comes to the world of constraint solving. It&amp;#39;s a generalization of the 8-queens puzzle, whose description can be found in detail in Wikipedia (&lt;a href="http://en.wikipedia.org/wiki/Eight_queens_puzzle"&gt;http://en.wikipedia.org/wiki/Eight_queens_puzzle&lt;/a&gt;.)&amp;nbsp; The challenge is to place N queens on an NxN chessboard in such a way that no pair of queens can attack each other.&amp;nbsp; For those unfamiliar with chess rules, this means that no two queens can ever be found in the same column, row or diagonal. &lt;/p&gt;&lt;p&gt;Many mathematicians, including the mighty &lt;a href="http://en.wikipedia.org/wiki/Carl_Friedrich_Gauss"&gt;Carl Friedrich Gauss&lt;/a&gt;, have tried, and failed, to find algorithms to solve this challenge.&amp;nbsp; Even today we do not know if the problem can be solved by an efficient algorithm (This is a so-called NP-hard problem in the Theory of Computation) &lt;/p&gt;&lt;p&gt;The solutions of N-queens are rare and irregularly placed in the hyperspace of possible placements.&amp;nbsp; For instance, the case of 8 queens has 92 non-symmetric solutions out of more than 4 billion possible placements.&amp;nbsp; So, the ability of a solver to solve N-queens demonstrates the effectiveness of its search mechanisms.&lt;/p&gt;&lt;p&gt;The Specman IntelliGen solving engine is based on what&amp;#39;s called a finite-domain solver.&amp;nbsp; This has many advantages over other BDD or SAT-based solvers used by our competition.&amp;nbsp; Without getting too deep into details, there are some inherent problems of the BDD/SAT technologies that cause BDD solvers to explode for even small values of N (resources max out at N&amp;gt;=10) and SAT solvers suffer from poor performance (10X slower than IntelliGen for N=40 and simply does not finish for N=100). &amp;nbsp;In contrast, solving a 100 Queens problem takes only seconds in IntelliGen using the following simple nested &lt;b&gt;&lt;i&gt;for each&lt;/i&gt;&lt;/b&gt; constraint solution: &lt;/p&gt;&lt;code&gt;&lt;p&gt;&amp;lt;&amp;#39;&lt;br /&gt;&lt;b&gt;#define&lt;/b&gt; N 20;&lt;/p&gt;&lt;p&gt;&lt;b&gt;extend&lt;/b&gt; &lt;b&gt;sys&lt;/b&gt; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; rows[N] : &lt;b&gt;list of uint&lt;/b&gt;[0..N-1];&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;keep for each&lt;/b&gt; (item_i) &lt;b&gt;using index&lt;/b&gt; (i) &lt;b&gt;in&lt;/b&gt; rows {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;for each&lt;/b&gt; (item_j) &lt;b&gt;using index&lt;/b&gt; (j) &lt;b&gt;in&lt;/b&gt; rows { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i&amp;lt;j =&amp;gt; (item_i != item_j &lt;b&gt;and&lt;/b&gt; &lt;b&gt;abs&lt;/b&gt;(item_j-item_i) != j-i);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;run() is also&lt;/b&gt; {&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for each&lt;/b&gt; (pos) &lt;b&gt;in&lt;/b&gt; rows {&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; &lt;b&gt;for&lt;/b&gt; i &lt;b&gt;from&lt;/b&gt; 0 &lt;b&gt;to&lt;/b&gt; N-1 {&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; &lt;b&gt;if&lt;/b&gt; (i==pos) { &lt;b&gt;outf&lt;/b&gt;(&amp;quot; Q&amp;quot;); }&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; &lt;b&gt;else&lt;/b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;b&gt;outf&lt;/b&gt;(&amp;quot; .&amp;quot;); };&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; };&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; &lt;b&gt;out&lt;/b&gt;(&amp;quot;&amp;quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;br /&gt;};&lt;br /&gt;&amp;#39;&amp;gt;&lt;/p&gt;&lt;/code&gt;&lt;p&gt;What are we doing in the above example?&amp;nbsp;&amp;nbsp; We have chosen to model the problem with a list of N integers in the range [0..N-1]. Each element represents a row. &amp;nbsp;Each value is a column position of a queen in that row. So, the constraints used are:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;div&gt;No queens reside in the same column&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;div&gt;keep i&amp;lt;j =&amp;gt; item_i != item_j&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;No two queens are ever on the same diagonal. Here we use the abs() built in &lt;b&gt;&lt;i&gt;e&lt;/i&gt;&lt;/b&gt; method to grab the absolute value of the difference between the column position of each queen. &lt;ul&gt;&lt;li&gt;keep i&amp;lt;j =&amp;gt; abs(item_j-item_i) != j-i)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;It is sufficient to constraint only the cases i&amp;lt;j; otherwise we would double the constraints.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&amp;nbsp;The run() method is just the pretty-printing. We go over all cells of the chessboard and print &amp;quot;Q&amp;quot; if the cell is occupied and &amp;quot;.&amp;quot; otherwise.&amp;nbsp; Here is an example of the printout:&lt;code&gt;&lt;/code&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;&amp;nbsp;&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;Starting the test ...&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;Running the test ...&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;&amp;nbsp;. . . . . . . . . . . . Q . . . . . . .&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;&amp;nbsp;. Q . . . . . . . . . . . . . . . . . .&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;&amp;nbsp;. . . Q . . . . . . . . . . . . . . . .&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;&amp;nbsp;. . . . . . . . . . . . . . . . . . . Q&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;&amp;nbsp;. . . . . . . . . . . . . Q . . . . . .&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;&amp;nbsp;. . . . . . . . . . Q . . . . . . . . .&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;&amp;nbsp;Q . . . . . . . . . . . . . . . . . . .&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;&amp;nbsp;. . . . . . . . . . . Q . . . . . . . .&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;&amp;nbsp;. . . . . Q . . . . . . . . . . . . . .&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;&amp;nbsp;. . . . . . . . . . . . . . . Q . . . .&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;&amp;nbsp;. . . . . . Q . . . . . . . . . . . . .&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;&amp;nbsp;. . . . . . . . . . . . . . . . . . Q .&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;&amp;nbsp;. . . . . . . . . . . . . . Q . . . . .&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;&amp;nbsp;. . . . . . . . Q . . . . . . . . . . .&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;&amp;nbsp;. . . . . . . . . . . . . . . . . Q . .&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;&amp;nbsp;. . . . Q . . . . . . . . . . . . . . .&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;&amp;nbsp;. . . . . . . Q . . . . . . . . . . . .&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;&amp;nbsp;. . . . . . . . . . . . . . . . Q . . .&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;&amp;nbsp;. . Q . . . . . . . . . . . . . . . . .&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;&amp;nbsp;. . . . . . . . . Q . . . . . . . . . .&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;No actual running requested.&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;Checking the test ...&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;Checking is complete - 0 DUT errors, 0 DUT warnings.&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;&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;&lt;/code&gt;&lt;/p&gt;&lt;p&gt;You might ask yourself, why is this important for verification?&amp;nbsp; Well, the faster IntelliGen can solve a very challenging problem like N Queens, the faster it can solve the complex generation constraints of today&amp;#39;s largest devices.&amp;nbsp; &lt;/p&gt;&lt;p&gt;How fast is your constraint solving engine?&amp;nbsp; Challenge your vendors&amp;#39; tools in this complex generation puzzle and post your results if you can.&lt;/p&gt;&lt;p&gt;Vitaly Lagoon&lt;/p&gt;&lt;p&gt;&lt;i&gt;Vitaly Lagoon is an Architect working on the IntelliGen Generation Engine. Vitaly is a principal designer of IntelliGen&amp;#39;s constraint solver and an expert on constraint solving techniques and tools. He is also a prolific researcher with more than 20 academic publications on constraint solving and program analysis in the leading international conferences and journals.&lt;/i&gt;&lt;/p&gt;&lt;img src="http://www.cadence.com/Community/aggbug.aspx?PostID=1293413" width="1" height="1"&gt;</content><author><name>teamspecman</name><uri>http://www.cadence.com/Community/members/teamspecman.aspx</uri></author><category term="Functional Verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Functional+Verification/default.aspx" /><category term="Testbench simulation" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Testbench+simulation/default.aspx" /><category term="multi-language" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/multi-language/default.aspx" /><category term="e" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/e/default.aspx" /><category term="Specman" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Specman/default.aspx" /><category term="AOP" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/AOP/default.aspx" /><category term="Object Oriented Programming" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Object+Oriented+Programming/default.aspx" /><category term="IntelliGen" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/IntelliGen/default.aspx" /><category term="OVM-e" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/OVM-e/default.aspx" /><category term="specman elite" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/specman+elite/default.aspx" /><category term="team specman" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/team+specman/default.aspx" /><category term="Trailblazer" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Trailblazer/default.aspx" /><category term="simulation" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/simulation/default.aspx" /><category term="Rubik's Cube" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Rubik_2700_s+Cube/default.aspx" /><category term="Gauss" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Gauss/default.aspx" /><category term="N-queens" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/N-queens/default.aspx" /></entry><entry><title>UCIS Coverage Standard -- Innovation Means Business</title><link rel="alternate" type="text/html" href="http://www.cadence.com/Community/blogs/fv/archive/2011/08/17/ucis-innovation-means-business.aspx" /><id>http://www.cadence.com/Community/blogs/fv/archive/2011/08/17/ucis-innovation-means-business.aspx</id><published>2011-08-17T21:00:00Z</published><updated>2011-08-17T21:00:00Z</updated><content type="html">&lt;p&gt;


&lt;a href="http://www.cadence.com/Community/CSSharedFiles/blogs/fv/John/UCIS2.jpg"&gt;&lt;img src="http://www.cadence.com/Community/CSSharedFiles/blogs/fv/John/UCIS2.jpg" align="right" border="0" height="180" hspace="10" width="200" alt="" /&gt;&lt;/a&gt;Open solutions are just curiosities
until the ecosystem figures out how to turn them into money.&amp;nbsp; Java and
Linux are good examples of that.&amp;nbsp; When they first hit the &amp;quot;open&amp;quot;
space, they were interesting technical solutions to interoperability (Java) and
breaking the proprietary operating system monopoly (Linux).&amp;nbsp; It&amp;#39;s only
when companies started wrapping products and services around them that they
really electrified their respective ecosystems.&amp;nbsp; The same thing is
happening right now for the Accellera Unified Coverage Interoperability
Standard (&lt;a href="http://www.accellera.org/activities/ucis"&gt;UCIS&lt;/a&gt;), an open and industry-standard API that promises to facilitate and improve on
verification productivity.&lt;/p&gt;

&lt;p&gt;As coverage is the language of
verification, the openness of UCIS is the jumpstart that our ecosystem needs to
enable new innovation and capabilities for one of the biggest challenge areas in Silicon Realization.&amp;nbsp; UCIS is about bringing together
suppliers, customers, and facilitators to solve some really difficult and
challenging problems in the coverage interoperability space. For years now, customers have had the
difficulty of trying to figure this out on their own -- writing their own
scripts, maintaining their own libraries, devising their own databases, and developing
their own translators to support some level of coverage interoperability.&lt;/p&gt;&lt;p&gt;Most industry initiatives are only partially
balanced among suppliers, customers and facilitators.&amp;nbsp; But the fact that the suppliers for all three of
the major functional verification simulators are jointly and actively participating
brings hope for those customers devising their own schemes, and brings new
business opportunities for the entire ecosystem.&amp;nbsp; Just like Java and Linux
before it, the questions being asked draw facilitators -- those members of the
ecosystem that provide value beyond the suppliers.&amp;nbsp; We can expect to see offers
of training, services, tools, and more in coming years -- which means that yes, UCIS
Innovation Means Business.&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.cadence.com/Community/controlpanel/blogs/data:image/png;base64,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A2aikQcmgpDg5ZAYj+MOMwE1EYkDkBrhNYItQGJA9AboTcgsS/4Hr0B6gHoDUjGYcahHoB2AFpDf1EPQGtAYj/i+6A1Qo0h3gAthngD1BgSjYgdQLwBiUbEGxBvuGC171OLIdF4waq/88CixnBAwysJ7E8i0+3Bc+AKkAXqhrz0GO76DOf+GglIF+QRYAHHclxrLehtBaPdNjpss8M22i2j3TY77GSXney0jQ5bb7eMDjvZaZt+6bCNDttot8yOYAej3fIXzL5S3Flvs/Q2K9XlGO12stNOdtr+l6c6rXSnneqwjLaC2WYl+xbarVSnpbbmtbZCKmOnux29vWB0FMxO/9NK9zgHs66RsbWOgt5Z0DoLepdlZmy901Lb81pH3uwsGO2FZKedztjJLstoL+hteb29YHZa6W7H6LT0zoLeWdA6Cmp73ige66+q7blUt92UKTSd7+30iPvNOkC+/8QHyHAqDlSIc/A8KBuEOPTg5KA1tn7hy6f+bNqpK649M21689Uzz11zw5krrz995XXNV808e9WM45+96sy06S3X3njmqun+cvM1M89cNf301OvOTptx/toFZ6bOPv5nM89MnX3+2oVnr5xz+oobz1w5p/mqeWem3nj8T69qvmpGy7U3npl6/cnPXn122vTmq2acmXrdmSuuO3fVzOarZp6aeu3pK68/d80NLdfccPLPrzlz5fUt185qvnrmic9dfeqKa09fed3pqUE5dcW1p6ded+LPrzn+uatPT51+btoNzVNnnJ82q3nqjHNX3tAybdbZK2Y0T53ZMm1W89SZ566cecHqtBuap85svnJmy7RZ5668YeBq85Uz/f3PTZ15burMM9NuePuaOeeunH/qU9PPTf+ifOIFdLRBWBAeCbr0cosT4BFEMBklUewqSw4cbi/88KUDX16y/msrNt+2tv6bq7fdsW7n7Wt3fHP1tm+t2X772h23ram/Y+0Ov9y2evttq7ffvqb+9jX1d6zdcfvaHbetrb9j3c7b1mz/xqqtd6zbece6nbc/uuO2tfW3ra3/1prt31qz/Y51O29bW+/1994x7qd335s17fWbLt91dbvPrrjO2u23b5y83fWbP+7tfV3rNp6+8ot31mz/XuP7fzuEzv+7okdf/MK997+uVvrNr49ZUbvrl60zdXb7pj3ba/f2b395595fbHtn3r0S23rdv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" height="218" width="246" alt="" /&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="http://www.cadence.com/Community/controlpanel/blogs/data:image/png;base64,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" height="232" width="263" alt="" /&gt; &lt;/p&gt;&lt;p&gt;This year,
we will likely see a UCIS 1.0 standard released from Accellera. It&amp;#39;s the first
big step for coverage interoperability after literally years of working on it. &amp;nbsp;We are already seeing customer, supplier and facilitator
(see diagram, above right) participation increase significantly over the past 6 months. As a
self-avowed UCIS proponent, I participate to help bring the ecosystem together
and get more business flowing for everyone.&amp;nbsp;
If you would like to participate, there is lots more interesting work
to do, and participation is highly encouraged.&amp;nbsp;
Simply join Accellera &lt;a href="http://www.accellera.org/home"&gt;at http://www.accellera.org/home&lt;/a&gt;. &amp;nbsp; &lt;/p&gt;

&lt;p&gt;Metric Driven Verification Advocate
&amp;amp; UCIS Proponent,&lt;/p&gt;

&lt;p&gt;John Brennan&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cadence.com/Community/aggbug.aspx?PostID=1293039" width="1" height="1"&gt;</content><author><name>Team MDV</name><uri>http://www.cadence.com/Community/members/Team-MDV.aspx</uri></author><category term="Functional Verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Functional+Verification/default.aspx" /><category term="Plan and metrics management" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Plan+and+metrics+management/default.aspx" /><category term="Enterprise Manager" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Enterprise+Manager/default.aspx" /><category term="coverage driven verification (CDV)" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/coverage+driven+verification+_2800_CDV_2900_/default.aspx" /><category term="Incisive" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Incisive/default.aspx" /><category term="MDV" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/MDV/default.aspx" /><category term="accellera" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/accellera/default.aspx" /><category term="EDA360" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/EDA360/default.aspx" /><category term="coverage" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/coverage/default.aspx" /><category term="metric driven verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/metric+driven+verification/default.aspx" /><category term="metric-driven" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/metric-driven/default.aspx" /><category term="UCIS" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/UCIS/default.aspx" /></entry><entry><title>What I Learned Traveling Across the Silicon Prairie</title><link rel="alternate" type="text/html" href="http://www.cadence.com/Community/blogs/fv/archive/2011/08/16/what-i-learned-traveling-across-the-silicon-prairie.aspx" /><id>http://www.cadence.com/Community/blogs/fv/archive/2011/08/16/what-i-learned-traveling-across-the-silicon-prairie.aspx</id><published>2011-08-16T14:00:00Z</published><updated>2011-08-16T14:00:00Z</updated><content type="html">&lt;p&gt;Inspired by Brian Fuller&amp;#39;s cross-country &lt;a href="http://www.driveforinnovation.com/"&gt;&amp;quot;Drive for Innovation&amp;quot;&lt;/a&gt;, last week I jumped at an opportunity to head out and visit customers in the heartland of America.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cadence.com/Community/CSSharedFiles/blogs/fv/Joe_Hupcey_III/JH3_08162011.JPG"&gt;&lt;img src="http://www.cadence.com/Community/CSSharedFiles/blogs/fv/Joe_Hupcey_III/JH3_08162011.JPG" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Here were the common themes heard during the trip:&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;u&gt;(1) Discovering Power People Didn&amp;#39;t Know They Already Have&lt;br /&gt;&lt;/u&gt;&lt;/b&gt;A lot of people don&amp;#39;t realize that support for the things they need to do are actually in our products already (in some cases, it&amp;#39;s been there for years).&amp;nbsp; However, because they are frozen on an older configuration, or the methodology to exploit a given set of features in a particular order isn&amp;#39;t immediately obvious, they think they need to buy some other piece of software to get them where they want to go. &amp;nbsp;It&amp;#39;s a real win-win to be able to show them the power already at their fingertips.&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;u&gt;(2) Formal &amp;amp; ABV really is going mainstream&lt;br /&gt;&lt;/u&gt;&lt;/b&gt;&lt;a href="http://www.cadence.com/Community/blogs/fv/archive/2011/06/17/photo-essay-and-comments-on-dac-2011-in-san-diego-ca.aspx"&gt;Echoing my experience at DAC&lt;/a&gt; and other industry events over the past year, at both our Incisive Seminars and direct customer meetings Formal, ABV, and &lt;a href="http://www.cadence.com/Community/blogs/fv/archive/2011/07/05/true-stories-of-assertion-driven-simulation-ads-in-the-wild.aspx"&gt;especially the mixed technology Assertion-Driven Simulation (ADS)&lt;/a&gt; were of high interest.&amp;nbsp; To wit: people actually holstered their smartphones during the ADS segment of the seminar/presentation, and peppered me with questions about it.&amp;nbsp; As per point (1) above, to the delight of several users they were pleasantly surprised they could go back to their desks and try ADS and some other techniques right away.&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;u&gt;(3) EDA360 needs are clear &amp;amp; present&lt;br /&gt;&lt;/u&gt;&lt;/b&gt;I had several people ask me about the EDA360 roadmap.&amp;nbsp; Specifically, the gist of the conversation was an affirmation that the issues raised by the&lt;a href="http://www.cadence.com/eda360"&gt; vision paper&lt;/a&gt; (apps-driven specs &amp;amp; monetization, IP integration vs. creation, etc.) were their day-to-day challenges.&amp;nbsp; In short, they made it clear that the EDA360 initiative was right on the money and advised us [Cadence] not to drop the ball on executing to this strategy.&amp;nbsp; These remarks came from end users at a very competitive account -- so it&amp;#39;s clear that EDA360 principles are resonating with real, front-line users.&lt;br /&gt;&lt;br /&gt;Do these notes square with your summer trip reports?&amp;nbsp; Please share your experiences in the comments below, or contact me offline.&lt;/p&gt;&lt;p&gt;Happy Verifying!&lt;/p&gt;&lt;p&gt;Joe Hupcey III&lt;/p&gt;&lt;p&gt;On Twitter: @jhupcey, &lt;a href="http://twitter.com/jhupcey"&gt;http://twitter.com/jhupcey&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cadence.com/Community/aggbug.aspx?PostID=1292985" width="1" height="1"&gt;</content><author><name>jvh3</name><uri>http://www.cadence.com/Community/members/jvh3.aspx</uri></author><category term="Functional Verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Functional+Verification/default.aspx" /><category term="Formal Analysis" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Formal+Analysis/default.aspx" /><category term="ABV" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/ABV/default.aspx" /><category term="IEV" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/IEV/default.aspx" /><category term="formal" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/formal/default.aspx" /><category term="IFV" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/IFV/default.aspx" /><category term="formal verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/formal+verification/default.aspx" /><category term="assertion-based verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/assertion-based+verification/default.aspx" /><category term="Joe Hupcey III" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Joe+Hupcey+III/default.aspx" /><category term="ADS" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/ADS/default.aspx" /><category term="Assertion-Driven Simulation" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Assertion-Driven+Simulation/default.aspx" /><category term="Silicon Prarie" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Silicon+Prarie/default.aspx" /></entry><entry><title>Verifying AMBA® 4 ACE Designs – Cadence is Ready to Help, Now</title><link rel="alternate" type="text/html" href="http://www.cadence.com/Community/blogs/fv/archive/2011/08/15/verifying-amba-174-4-ace-designs-cadence-is-ready-to-help-now.aspx" /><id>http://www.cadence.com/Community/blogs/fv/archive/2011/08/15/verifying-amba-174-4-ace-designs-cadence-is-ready-to-help-now.aspx</id><published>2011-08-16T01:00:00Z</published><updated>2011-08-16T01:00:00Z</updated><content type="html">&lt;p&gt;ACE is here. Are you ready?&lt;/p&gt;&lt;p&gt;Designers of multimedia smartphones, tablets, and other mobile computing devices face greater challenges than ever. They have to deliver ever more capable and responsive systems, yet must also consume the least amount of power possible -- certainly no more than their competitors.To achieve these goals, designers have been employing multi-processor architectures for many years. However, the need to squeeze the last drop of performance and power out of these compute clusters is now paramount. A big area of opportunity for performance gains/power reductions is through moving software-based cache-coherency management into hardware.&amp;nbsp; ARM introduced the AMBA Coherency Extensions (&lt;b&gt;ACE&lt;/b&gt;) protocol in June 2011 to address these very needs. &lt;/p&gt;&lt;p&gt;But alas, as we all know, there&amp;#39;s no free lunch.&amp;nbsp; Placing such an extensive additional function into hardware significantly expands the functional verification challenge and risk.&amp;nbsp; Cadence recognized this well over a year before the ACE specification became public.&amp;nbsp;&amp;nbsp;In close collaboration with ARM we&amp;nbsp;launched an aggessive development program to deliver a complete ACE verification solution in time for ARM&amp;#39;s lead Cortex-A15 customers to use.&amp;nbsp; That goal was accomplished and enabled Cadence to have mature verification IP (VIP) in time for ARM&amp;#39;s public announcement of ACE. &lt;/p&gt;&lt;p&gt;&lt;b&gt;More Info Available&lt;/b&gt;&lt;/p&gt;&lt;p&gt;The need for ACE and ACE verification as well as Cadence&amp;#39;s VIP solution are discussed in the recently published EE Times article &amp;quot;&lt;a href="http://www.eetimes.com/design/embedded/4218621/Get-control-of-ARM-system-cache-coherency-with-ACE-verification?pageNumber=0" target="_blank"&gt;Get control of ARM system cache coherency with ACE verification&lt;/a&gt;&amp;quot;.&amp;nbsp; I encourage you to take a look.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Get In Touch&lt;/b&gt;&lt;/p&gt;&lt;p&gt;And, as you plan your ACE or AMBA&amp;reg; 4 based system, I recommend that you connect with Cadence, the leading experts in this field.&amp;nbsp; We have the most capable and mature solutions to help.&amp;nbsp; Talk to you soon!&lt;/p&gt;&lt;p&gt;Pete Heller &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cadence.com/Community/aggbug.aspx?PostID=1292983" width="1" height="1"&gt;</content><author><name>PeteHeller</name><uri>http://www.cadence.com/Community/members/PeteHeller.aspx</uri></author><category term="Functional Verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Functional+Verification/default.aspx" /><category term="VIP" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/VIP/default.aspx" /><category term="AMBA" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/AMBA/default.aspx" /><category term="ACE" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/ACE/default.aspx" /><category term="EE Times" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/EE+Times/default.aspx" /><category term="Smartphone" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Smartphone/default.aspx" /><category term="Tablet" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Tablet/default.aspx" /><category term="verification IP" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/verification+IP/default.aspx" /></entry><entry><title>The Return of the Son of Real-World Assertions</title><link rel="alternate" type="text/html" href="http://www.cadence.com/Community/blogs/fv/archive/2011/08/01/the-return-of-the-son-of-real-world-assertions.aspx" /><id>http://www.cadence.com/Community/blogs/fv/archive/2011/08/01/the-return-of-the-son-of-real-world-assertions.aspx</id><published>2011-08-01T20:00:00Z</published><updated>2011-08-01T20:00:00Z</updated><content type="html">I&amp;#39;ve received some nice feedback on my previous &lt;a href="http://www.cadence.com/Community/blogs/fv/archive/2011/05/16/sometimes-the-real-world-needs-assertions-too.aspx?postID=1277027"&gt;two&lt;/a&gt; &lt;a href="http://www.cadence.com/Community/blogs/fv/archive/2011/07/12/more-examples-of-missing-real-world-assertions.aspx?postID=1286032"&gt;posts&lt;/a&gt; about real-world
situations that would benefit from assertions, so I will forge ahead with a few
more examples. Last time I mentioned the DMV clerk who told me that glasses
were required while driving if one eye was below the threshold but not if one
eye was completely devoid of vision. One reason I remember that incident so
clearly is that the clerk apparently failed to see any problems whatsoever with
this line of reasoning. 

&lt;p&gt;That incident reminds of a trip last year when my family and
I missed a connecting United Airlines flight because the first flight was
running late. We ran to the gate and, of course, the plane was still there but
the jet bridge door was closed. A bone-headed gate agent snippily
informed me that we were being denied boarding because we had &amp;quot;not checked in
at the gate&amp;quot; in time. I was dumbfounded. I pointed out that we were on another
United flight and so of course we had not checked in at her gate. There were at
least a half dozen of us trying to make the connection but she absolutely
refused to re-open the door.&lt;/p&gt;



&lt;p&gt;Of course, she knew perfectly well that we were all
connecting and that the first flight was late. Her computer showed her that;
airlines all the time wait a few minutes for connecting passengers from their
own delayed flights. My guess is that the flight was oversold and that she had
given away our seats despite knowing that we were arriving imminently. I could
not believe that I was standing there listening to a presumably sentient human
being scolding us for &amp;quot;not checking in&amp;quot; while we were on another flight on the
same airline. She was missing an assertion for sure, and a lot more to boot.&lt;/p&gt;

&lt;p&gt;In my last blog, I also talked about the closed financial
services office directly customers a half-hour away &amp;quot;to serve you better.&amp;quot; For
another example of a mismatch between distance and convenience, type &amp;quot;cheap
CDs&amp;quot; into your favorite search engine. I did this in an attempt to find some sites
offering new or discounted music that I hadn&amp;#39;t discovered yet. In the very
first page of search results I saw a link for &lt;a href="http://www.prex.com/"&gt;Princeton
Record Exchange&lt;/a&gt;, and upon clicking it I was greeted with: &lt;/p&gt;

&lt;p align="center"&gt;Can&amp;#39;t Find It At&lt;br /&gt;San Jose CD Stores?&lt;br /&gt;Visit us in
Princeton, New Jersey&lt;/p&gt;



&lt;p&gt;That didn&amp;#39;t surprise me; individual record stores all over
the world sell on their own Web sites as well as through the usual channels
(ebay, amazon, GEMM, etc.) But then I saw &amp;quot;We do not currently list
our inventory or sell online&amp;quot; so I realized that when they say &amp;quot;visit&amp;quot; they
really do mean a physical visit. So just for fun I clicked on &amp;quot;Directions&amp;quot; and
requested a map for driving from San Jose to Princeton. I enjoy browsing at record stores, and this looks like a good one, but somehow I don&amp;#39;t think I&amp;#39;m likely
to drive 3,000 miles just to visit.&lt;/p&gt;

&lt;p&gt;My final example for this post will be distressingly familiar.
I had just finished an online purchase at some site or another when I was asked
if I wanted to take an &amp;quot;online shopping cart survey.&amp;quot; I don&amp;#39;t remember which
site I was using, but it was one that I frequented enough to be willing to give
feedback. So I clicked on the link and up popped a page stating &amp;quot;This feature
is currently not available.&amp;quot; This is a good example of where an actual
assertion would have helped: &amp;quot;if the survey is unavailable then don&amp;#39;t ask the
customer about it.&amp;quot;&lt;/p&gt;



&lt;p&gt;At least I didn&amp;#39;t fill out a survey, try to submit it, and
then see a failure. The latest (July 2011) edition of &lt;span style="font-style:italic;"&gt;IEEE Computer&lt;/span&gt; magazine has a
really good commentary on &amp;quot;Programmed Politeness&amp;quot; by Norwegian Professor Kai A.
Olsen. He cites many such examples where programs and Web sites do things that
defy common sense. The article is available from the &lt;a href="http://www.computer.org/portal/web/csdl/doi/10.1109/MC.2011.217"&gt;IEEE&lt;/a&gt;
but it looks as if you have to be a subscriber to access it. If you&amp;#39;re not an
IEEE member, here&amp;#39;s an excuse to join. In the meantime I&amp;#39;ll continue looking
for more of my own examples of real-world assertions.&lt;/p&gt;

&lt;p&gt;Tom A.&lt;/p&gt;

&lt;i&gt;The truth is out there...sometimes it&amp;#39;s in a
blog.&lt;/i&gt;

&amp;nbsp;&lt;img src="http://www.cadence.com/Community/aggbug.aspx?PostID=1292547" width="1" height="1"&gt;</content><author><name>tomacadence</name><uri>http://www.cadence.com/Community/members/tomacadence.aspx</uri></author><category term="Functional Verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/Functional+Verification/default.aspx" /><category term="ABV" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/ABV/default.aspx" /><category term="formal" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/formal/default.aspx" /><category term="assertions" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/assertions/default.aspx" /><category term="assertion-based verification" scheme="http://www.cadence.com/Community/blogs/fv/archive/tags/assertion-based+verification/default.aspx" /></entry><entry><title>Some Reflections on the Development of UVM World</title><link rel="alternate" type="text/html" href="http://www.cadence.com/Community/blogs/fv/archive/2011/07/22/some-reflections-on-the-development-of-uvm-world.aspx" /><id>http://www.cadence.com/Community/blogs/fv/archive/2011/07/22/some-reflections-on-the-development-of-uvm-world.aspx</id><published>2011-07-22T15:00:00Z</published><updated>2011-07-22T15:00:00Z</updated><content type="html">In a
recent blog &lt;a href="http://www.cadence.com/Community/blogs/fv/archive/2011/07/06/celebrating-the-success-of-the-uvm-world-web-site.aspx?postID=1285880"&gt;post&lt;/a&gt;, I
celebrated our &lt;a href="http://www.cadence.com/cadence/newsroom/press_releases/Pages/pr.aspx?xml=062811_uvmworld&amp;amp;CMP=home"&gt;donation&lt;/a&gt;
of the Cadence-developed UVM World community Web site (&lt;a href="http://www.uvmworld.org/"&gt;www.uvmworld.org&lt;/a&gt;) to Accellera, the
standards organization that owns and evolves the Universal Verification
Methodology (UVM). It makes sense for us to work with other Accellera members
to make this site even better and even more comprehensive going forward. As I
celebrated the success of UVM World, I found myself reflecting on the process of
defining and developing it. I think that we made some crucial decisions along
the way that contributed to its success and I&amp;#39;d like to discuss a few in this
post.

&lt;p&gt;One
key decision we made up front is that we would complement, not compete with,
the UVM information available on the Accellera site. Specifically, we decided
not to provide downloads of documents or libraries available from Accellera,
but rather to link to their download area. At least one of our competitors
provided its own downloads for Accellera content; this is permissible under the
Apache open-source licensing. However, we felt that action effectively devalued the
Accellera site, so we linked rather than
copied. This lack of overlap made it easier for Accellera first to endorse UV
