<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://www.cadence.com/Community/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>System Design and Verification</title><link>http://www.cadence.com/Community/blogs/sd/default.aspx</link><description>This blog covers topics related to system design and verification including system simulation and analysis, high-level synthesis, acceleration, emulation, HW/SW co-verification, verification IP and system power verification and analysis.</description><dc:language>en</dc:language><generator>CommunityServer 2007.1 (Build: 20917.1142)</generator><item><title>Virtualization and Verification With Posedge Software</title><link>http://www.cadence.com/Community/blogs/sd/archive/2008/11/19/virtualization-and-verification-with-posedge-software.aspx</link><pubDate>Wed, 19 Nov 2008 11:00:00 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:12809</guid><dc:creator>jasona</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.cadence.com/Community/blogs/sd/rsscomments.aspx?PostID=12809</wfw:commentRss><comments>http://www.cadence.com/Community/blogs/sd/archive/2008/11/19/virtualization-and-verification-with-posedge-software.aspx#comments</comments><description>
&lt;p&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&lt;a href="http://www.posedgesoft.com/" target="_blank"&gt;Posedge Software&lt;/a&gt; is a &lt;a href="http://www.cadence.com/Alliances/verificationalliance/Members/Pages/member.aspx?member=Posedge%20Software%20Inc." target="_blank"&gt;Cadence
Verification Alliance Member&lt;/a&gt; with skills in two of my favorite areas:
virtualization and embedded software verification. Posedge has worked with ISX
as far back as 2006. Besides the fact that they are skilled in verification I
must also mention that they are from Minnesota,
mostly to prove that my home state is not a complete wasteland and other smart
people also live here (even though the temperature was 15 degrees Fahrenheit
this morning). I sat down with Henry Von Bank of Posedge to find out more about
his interests in embedded software verification and his previous work with &lt;a href="http://bellard.org/qemu/" target="_blank"&gt;QEMU &lt;/a&gt;and &lt;a href="http://www.ovpworld.org" target="_blank"&gt;Open Virtual Platforms&lt;/a&gt;. &lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;Hi Henry, what does Posedge Software
do?&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&lt;br /&gt;
&lt;br /&gt;
Posedge Software provides consulting services and tools for both hardware and
software verification, in particular using Specman Elite and ISX. We have
experience with software development, hardware verification, and other skills
needed to put together a complete system verification environment&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;When did you become interested in
virtualization?&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&lt;br /&gt;
&lt;br /&gt;
Like many people, I&amp;#39;ve used virtualization to run multiple operating systems on
one PC (usually for running Windows on top of Linux). I&amp;#39;ve also found virtualization
very useful for software development, particularly for device drivers and other
embedded software. Often the only other option is to debug on the real
hardware, which is not ideal.&lt;br /&gt;
&lt;br /&gt;
The other thing that fascinates me with virtualization is that you can stop the
execution and poke and prod at the internals of the hardware or operating
system. There often isn&amp;#39;t another way to do this except by adding lots of
instrumentation to the software and using debuggers and debugging hardware. I
don&amp;#39;t think this aspect of virtualization is being exploited as much as it
could be, but it has a lot of potential.&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;I understand you have worked with QEMU
in the past and more recently Open Virtual Platforms, what do you find most
interesting about them?&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&lt;br /&gt;
&lt;br /&gt;
The interesting thing about these two virtualization technologies is that they
support a variety of target processors, such as ARM and MIPS, while still
maintaining good performance. They also allow a variety of peripherals to be
used in the virtual target, including real hardware attached to the PC, and
emulated hardware. This can be extremely useful for testing and debugging.&lt;br /&gt;
&lt;br /&gt;
While QEMU has more or less a fixed number of platforms it supports, with OVP
you create a custom platform that has any number of processors and peripherals.
The APIs for creating models in OVP are also much better defined and easier to
use.&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;Can you tell us a little about the
performance possible with Virtual Platforms?&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&lt;br /&gt;
&lt;br /&gt;
The goal for virtualization is generally to get as close to native speeds as
possible for the virtual machine. With the clock frequencies and dedicated
virtualization instructions in modern processors, the performance is more than
adequate. When a smaller, embedded processor is the target, you can potentially
run it faster than the real hardware. When doing system verification, anything
that can increase performance and shorten test times is valuable.&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;What type of embedded processors have
you been working with?&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&lt;br /&gt;
&lt;br /&gt;
In the past I&amp;#39;ve done embedded systems development with platforms ranging from
8-bit micro-controllers to high performance DSPs, and also with systems running
embedded Linux. Lately I&amp;#39;ve been working mostly with MIPS processors.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Did you find anything interesting about how OVP models are created or the
interfaces they provide?&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;One interesting thing with OVP models
is the concept of intercepts. An interception library can be created and loaded
into the processor model and can catch specific function calls that are made
and either replace the behavior of that function, or perform other checking and
monitoring. With this you could potentially collect coverage info, and give
visibility into your kernel, without modifying any of the software and without
affecting the state of the system.&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;Tell us about your experience with
Incisive Software Extensions (ISX)?&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;I have worked on several projects using
ISX, creating the mini-adapters and other work interfacing tools with Specman.
While it certainly takes some effort to get the ISX infrastructure in place,
once complete you can treat the software similar to any other component in the
verification environment. Another thing I like about ISX is that it works
independent of the simulator, and really can be used with any type of software
execution environments including things like QEMU and OVP.&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;What kind of problems do you think can
be addressed by the combination of Virtual Platforms and ISX?&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;Software verification has always lagged
behind hardware verification, mostly because of the lower cost of making
changes and providing updates, even as software complexity has increased
greatly. The other issue with performing software verification is that you
often do not have precise control over the platform. For example, when writing
a device driver it might be tested simply by plugging in the real hardware.
This can leave many corner cases untested.&lt;br /&gt;
&lt;br /&gt;
I think hardware verification techniques such as constrained-random testing and
coverage-driven verification can help remedy this. Using Specman with ISX
provides a foundation on which software verification environments can be built.
Virtualization is necessary to handle the complexity of modern software, as it
can be too slow, or otherwise too expensive, to use hardware simulators and
emulation/acceleration to execute the software.&lt;br /&gt;
&lt;br /&gt;
Another problem that I think ISX and virtualization would be good at is
multi-threaded and multi-processor applications. This is a big issue in the
software development world and being able to stop execution and inspect the
state of each process and processor from the testbench would be very helpful
for testing and debugging. &lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;How can readers contact you to get more
information about your work?&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&lt;br /&gt;
&lt;br /&gt;
They can check out the &lt;a href="http://www.posedgesoft.com" target="_blank"&gt;Posedge Software website&lt;/a&gt; at or &lt;a href="mailto:hvonbank@posedgesoft.com" target="_blank"&gt;email me&lt;/a&gt;. &lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;Thanks to Henry for sharing some of his
insight into virtualization and verification. I found the most interesting
topic Henry mentioned to be the &amp;quot;interception functions&amp;quot; in OVP. I
started discussing code instrumentation a bit in &lt;a href="http://www.cadence.com/Community/blogs/sd/archive/2008/10/29/day-2-at-esc-boston.aspx" target="_blank"&gt;a
previous post&lt;/a&gt;, but there is a lot more to cover here. From what I have seen
so far the ability to add code to the simulation that is invoked based on the
execution of the target software is really cool. Maybe in a future post I can
provide more details on this feature of OVP. &lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cadence.com/Community/aggbug.aspx?PostID=12809" width="1" height="1"&gt;</description><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/System+Design+and+Verification/default.aspx">System Design and Verification</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/QEMU/default.aspx">QEMU</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/OVP/default.aspx">OVP</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/open+virtual+platforms/default.aspx">open virtual platforms</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/posedge/default.aspx">posedge</category></item><item><title>Portable Design Names Cadence Incisive Palladium Dynamic Power Analysis its September 2008 Product of the Month</title><link>http://www.cadence.com/Community/blogs/sd/archive/2008/11/04/portable-design-names-cadence-incisive-palladium-dynamic-power-analysis-its-september-2008-product-of-the-month.aspx</link><pubDate>Tue, 04 Nov 2008 21:45:00 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:12418</guid><dc:creator>Ran Avinun</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.cadence.com/Community/blogs/sd/rsscomments.aspx?PostID=12418</wfw:commentRss><comments>http://www.cadence.com/Community/blogs/sd/archive/2008/11/04/portable-design-names-cadence-incisive-palladium-dynamic-power-analysis-its-september-2008-product-of-the-month.aspx#comments</comments><description>&lt;p&gt;In his article in Portable Design, John Donovan wrote: &lt;/p&gt;&lt;p&gt;Palladium Dynamic Power Analysis represents a methodology shift for power budgeting of electronic devices with system-level implications. With a focus on productivity improvement, DPA helps to quickly identify the average and peak power consumption of SoC designs running real software in various operational scenarios. Leveraging Palladium III&amp;rsquo;s built-in memory and RTL Compiler power estimation engine, Cadence provides the first high-performance, cycle-accurate integrated solution delivering full-system power analysis of designs, including both hardware and software.&amp;nbsp;&lt;/p&gt;&lt;p&gt;In recognition of their achievement, Portable Design names Cadence Incisive Palladium Dynamic Power Analysis its September 2008 Product of the Month. &lt;/p&gt;&lt;p&gt;If you want to read more details, please click &lt;a href="http://portabledesign.com/article?article_id=251"&gt;here&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cadence.com/Community/aggbug.aspx?PostID=12418" width="1" height="1"&gt;</description><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/System+Design+and+Verification/default.aspx">System Design and Verification</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/Palladium/default.aspx">Palladium</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/Portable+Design/default.aspx">Portable Design</category></item><item><title>The Power of Cadence System Power Flow vs. Viewing from the Top</title><link>http://www.cadence.com/Community/blogs/sd/archive/2008/10/30/the-power-of-cadence-system-power-flow-vs-viewing-from-the-top.aspx</link><pubDate>Thu, 30 Oct 2008 02:04:00 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:12284</guid><dc:creator>Ran Avinun</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.cadence.com/Community/blogs/sd/rsscomments.aspx?PostID=12284</wfw:commentRss><comments>http://www.cadence.com/Community/blogs/sd/archive/2008/10/30/the-power-of-cadence-system-power-flow-vs-viewing-from-the-top.aspx#comments</comments><description>&lt;p&gt;I feel that I must respond to the following &lt;a href="http://www.synopsysoc.org/viewfromtop/?p=50" title="http://www.synopsysoc.org/viewfromtop/?p=50"&gt;blog&lt;/a&gt; published by Frank Schirrmeister. Virtual prototypes clearly have their value and their place in the SoC design flow (especially as platforms for software development) but they are hardly a substitute for hardware-assisted solutions and you need to find a way to connect them to your implementation and verification flows otherwise what you see may not be what you get.&amp;nbsp; Let me start with some facts:&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; &lt;/p&gt;&lt;p&gt;Both of the tools (&lt;a href="http://www.cadence.com/products/sd/palladium_series/pages/default.aspx"&gt;Palladium&lt;/a&gt; accelerator/emulator and &lt;a href="http://www.cadence.com/products/ld/chip_estimator/pages/default.aspx"&gt;InCyte Chip Estimator&lt;/a&gt;) described at the above blog as &amp;quot;products in question&amp;quot; in fact have very fast ramp-up time and are being used in production by many customers. The &lt;a href="http://www.cadence.com/products/ld/chip_estimator/pages/default.aspx"&gt;InCyte Chip estimator&lt;/a&gt; tool can be brought up by designers in less than an hour and &lt;a href="http://www.cadence.com/products/sd/palladium_series/pages/default.aspx"&gt;Palladium&lt;/a&gt; systems have shown again and again during the last 7 years their ability to bring-up new designs in less than a week with thousands of successful projects taped-out. The addition of power information into these tools can be extracted easily by adding power information (based on a popular industry format - liberty files) into the analysis. &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Let me provide several examples, we have seen recently.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Case A:&lt;/b&gt; A start-up company was looking for a new funding. The company had engaged with Cadence and within less than a couple of weeks brought their full SoC design into &lt;a href="http://www.cadence.com/products/sd/palladium_series/pages/default.aspx"&gt;Palladium&lt;/a&gt;, allowing them to demonstrate it into their VCs. If this company had chosen a Virtual Platform solution, they would have been out of business before the full environment was up and running. If this company had wanted to estimate power consumption accurately pre-silicon with SW applications, only a single solution in the market would allow them to do it - &lt;a href="http://www.cadence.com/products/sd/palladium_dpa/pages/default.aspx"&gt;Palladium Dynamic Power Analysis&lt;/a&gt;. Based on the recent results, one of our customers confirmed 5% accuracy between the dynamic power analysis switching results in &lt;a href="http://www.cadence.com/products/sd/palladium_series/pages/default.aspx"&gt;Palladium&lt;/a&gt; and the real silicon measurement in the lab. By any means, this is what the customers need. Fast and accurate power analysis at early phase of the design.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Case B: &lt;/b&gt;A large size semiconductor company was trying to win a socket with their customer. In order to win, they had to prove this customer the architectural performance improvements they had achieved with their new design. This analysis had to be done very early in the design process. They tried to simulate the environment using virtual platform but the results were not accurate enough so their customer asked them to incorporate a cycle-accurate simulator into the environment. However, this environment would not run fast enough. So, they ported the design into a &lt;a href="http://www.cadence.com/products/sd/palladium_series/pages/default.aspx"&gt;Palladium&lt;/a&gt; system and showed the results to the end-customer helping them to win the desired socket. &lt;a href="http://www.cadence.com/products/sd/palladium_dpa/pages/default.aspx"&gt;Palladium Dynamic Power Analysis&lt;/a&gt; can be easily added and measured with any design. Any new SystemC IP that will be created in this design can be ported to the emulation system within days (and in some cases within hours) using combination of &lt;a href="http://www.cadence.com/products/sd/silicon_compiler/pages/default.aspx"&gt;C-to-Silicon&lt;/a&gt; high-level synthesis tool and Palladium Compiler. &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;b&gt;Case C: &lt;/b&gt;Cisco recently evaluated &lt;a href="http://www.cadence.com/products/ld/chip_estimator/pages/default.aspx"&gt;InCyte Chip Estimator&lt;/a&gt; results (&lt;a href="http://www.chipdesignmag.com/display.php?articleId=424"&gt;see article&lt;/a&gt;) and confirmed 10% die area accuracy compared to real silicon. According to the information we have collected from 130 designs the power estimation provided by &lt;a href="http://www.cadence.com/products/ld/chip_estimator/pages/default.aspx"&gt;InCyte Chip Estimator&lt;/a&gt; is 30% accurate. The input information to the tool can include extraction of data based on dynamic simulation, emulation (or even silicon results) of IPs from previous designs and statistical information.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;/b&gt;&amp;nbsp;In his blog, Frank said: &amp;quot;Now the accuracy is much better and real software can run on the RTL given sufficient hardware support, but &lt;i&gt;the ability to make trade-offs is very, very limited&lt;/i&gt;. The amount of effort it took to first write the RTL, to then verify it and even bring it up on hardware, &lt;i&gt;altogether is so prohibitively expensive that in most cases fundamental architecture changes are hopeless at this point.&amp;quot; &lt;/i&gt;&lt;i&gt;&amp;nbsp;&lt;/i&gt;&lt;i&gt;Although the number of customers running full SoC with embedded software based on commercial virtual platforms is growing, it will take some time until all legacy IPs will be described in high-level of abstraction and I predict that these platforms will continue to operate in parallel and as a hybrid solution to RTL emulation platforms. As was stated above, big reason our customers use RTL emulation platforms is for accuracy, and while virtual platforms can offer certain performance, eventually the need to accuracy becomes critical and can not be overlooked, even for initial performance and power estimation analysis. Frank seems to forget in his statement above that the average bring-up time of new virtual platforms takes 6-12 months while the average bring-up time of many emulated designs takes days.&lt;/i&gt;&lt;i&gt;&amp;nbsp;&lt;/i&gt;As any other flow, the power estimation flow is not an exception. &lt;/p&gt;&lt;p&gt;There is no single tool which can solve all your problems. I agree - Virtual platform seems the &amp;quot;dream comes true&amp;quot; solution, allowing users to make performance and architectural trade-offs as they run their applications and software together early in the design cycle however, it does not come for free. Most customers do not have the models, the infrastructure or the people allowing them to build these platforms. Even if they get these models or experts to build the platform (from the EDA vendor or from their own company), it takes long time to do it and if your design cycle is short, you may miss the mark and not get the platform up and running but only after your RTL is ready. Now, even if you build this platform successfully 9-12 months in advance, how do you know that your virtual platform representing your real design? How do you connect it to your verification and implementation environment and realistic power information? Frank seems to overlook these things.&amp;nbsp;Looking at the analogy of the story described at the blog above, using a system-level platform that is not targeting the actual hardware for performance analysis and power trade-offs guarantees that the Chamelon will become a snake and you will get bitten. This is something even Frank&amp;#39;s 3 year old smart daughter can understand! You must now create a methodology to correlate your discoveries at the system-level for power analysis with those actual results at the RT level or even at silicon... Who will be doing this effort while you are busy working on your next architecture? &amp;nbsp;&lt;/p&gt;&lt;p&gt;Cadence is taking instead, a more pragmatic approach. Our solution is being used today, effectively to solve these issues with a focus on getting feedback from the &amp;quot;real&amp;quot; silicon. ESL&amp;nbsp;is all about discovery but also about connecting to the reality of what you are doing today.... not just about creation of another model that has to be maintained and synced up manually with your implementation. This connection must be there and should automatically get updated as new IPs are being created. Our System power estimation/exploration flow includes the following steps:&amp;nbsp; &lt;/p&gt;&lt;ol&gt;&lt;li&gt;Use &lt;a href="http://www.cadence.com/products/ld/chip_estimator/pages/default.aspx"&gt;InCyte Chip Estimator&lt;/a&gt; to run quickly pre-RTL (pre IP selection) static power estimation for your SoC with 30% accuracy, decide upon your low-power techniques and automatically generate CPF file that carries these techniques and can be used as the input power information through the entire design and implementation flow.&lt;/li&gt;&lt;li&gt;Model your newly created IPs in SystemC and quickly map these to RTL (or gates) with &lt;a href="http://www.cadence.com/products/sd/silicon_compiler/pages/default.aspx"&gt;C-to-Silicon Compiler&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;Run accurate dynamic power estimation at the block-level (with &lt;a href="http://www.cadence.com/products/fv/enterprise_simulator/pages/default.aspx"&gt;Incisive Enterprise Simulator&lt;/a&gt;) and at SoC (with SW) using &lt;a href="http://www.cadence.com/products/sd/palladium_series/pages/default.aspx"&gt;Palladium&lt;/a&gt; emulation.&lt;/li&gt;&lt;li&gt;Get initial SoC (with embedded software) estimated average power results and identify your &amp;quot;interesting&amp;quot; peak power windows using &lt;a href="http://www.cadence.com/products/sd/palladium_dpa/pages/default.aspx"&gt;Palladium Dynamic Power Analysis&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;Get accurate estimation (+/-5%) of your SoC average and peak power results using real stimulus actual embedded SW with &lt;a href="http://www.cadence.com/products/sd/palladium_dpa/pages/default.aspx"&gt;Palladium Dynamic Power Analysis&lt;/a&gt;, leveraging RTL Compiler accurate power analysis engine.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;These 5 steps can be done in matter of days, instead of weeks or even months, as assembling Virtual prototypes would require. A combination of static power analysis, high-level synthesis for newly created IPs and dynamic power analysis with emulation can provide you good SoC power estimation and exploration flow (including hardware and software) even at the early phase of your design.&amp;nbsp; &amp;nbsp;As always, comments are welcome.&amp;nbsp; &lt;/p&gt;&lt;img src="http://www.cadence.com/Community/aggbug.aspx?PostID=12284" width="1" height="1"&gt;</description><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/System+Design+and+Verification/default.aspx">System Design and Verification</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/Frank+Schirrmeister/default.aspx">Frank Schirrmeister</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/power+engineer/default.aspx">power engineer</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/Palladium/default.aspx">Palladium</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/C-to-Silicon/default.aspx">C-to-Silicon</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/Incyte+Chip/default.aspx">Incyte Chip</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/Incisive+Enterprise+Simulator/default.aspx">Incisive Enterprise Simulator</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/Power+Analysis/default.aspx">Power Analysis</category></item><item><title>ESC Boston: Day 2</title><link>http://www.cadence.com/Community/blogs/sd/archive/2008/10/29/day-2-at-esc-boston.aspx</link><pubDate>Wed, 29 Oct 2008 22:21:00 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:12280</guid><dc:creator>jasona</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.cadence.com/Community/blogs/sd/rsscomments.aspx?PostID=12280</wfw:commentRss><comments>http://www.cadence.com/Community/blogs/sd/archive/2008/10/29/day-2-at-esc-boston.aspx#comments</comments><description>&lt;p&gt;This morning before heading to ESC it dawned on me that the park across the street from my hotel&amp;nbsp;was the &lt;a href="http://www.swanboats.com/new/welcome.shtml" target="_blank"&gt;Boston Public Garden&lt;/a&gt;. Maybe it was the swans on the hotel logo, but the ironic thing is that the only way I knew about this park was by reading the book &lt;a href="http://en.wikipedia.org/wiki/Make_Way_for_Ducklings" target="_blank"&gt;Make Way for Ducklings&lt;/a&gt; to my kids. I previously reported&amp;nbsp;that&amp;nbsp;4 weeks ago we had a new baby girl. During the week following the birth,&amp;nbsp;as my wife was recovering, I took over teaching our 5 year old Kindergarten (all our kids are home schooled). I found out that one of the usual Kindergarten tasks is to do something called &lt;a href="http://www.fiveinarow.com/" target="_blank"&gt;Five in a Row&lt;/a&gt; which involves reading the same book to a child five days in a row. The book I was assigned to read was &lt;a href="http://www.amazon.com/gp/product/0670451495?ie=UTF8&amp;amp;tag=coverifica-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0670451495"&gt;Make Way for Ducklings (Viking Kestrel Picture Books)&lt;/a&gt;&lt;img src="http://www.assoc-amazon.com/e/ir?t=coverifica-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0670451495" style="border:medium none;margin:0px;" border="0" height="1" width="1" alt="" /&gt;. My 5 year old was quite excited to hear that I was&amp;nbsp;at the park where the ducklings followed the swan boats and ate peanut shells dropped by the passengers.&amp;nbsp; Below is a picture from my visit to the park&amp;nbsp;on the way to ESC.&lt;/p&gt;&lt;a href="http://s466.photobucket.com/albums/rr22/hamlake/?action=view&amp;amp;current=boston-public-gardens.jpg" target="_blank"&gt;&lt;img src="http://i466.photobucket.com/albums/rr22/hamlake/boston-public-gardens.jpg" alt="Boston Public Garden" border="0" /&gt;&lt;/a&gt; &lt;p&gt;My talk was the last session of the day, but even with the late time slot the attendees were interested in the&amp;nbsp;idea of&amp;nbsp;Coverage Driven Verification for Embedded Software. This was my forth talk at ESC, but first one at the&amp;nbsp;Boston conference. You can take a look at the&amp;nbsp;&lt;a href="http://home.comcast.net/~coverification/ESC-463Slides_Andrews.pdf" target="_blank"&gt;slides&lt;/a&gt; and the &lt;a href="http://home.comcast.net/~coverification/ESC-463Paper_Andrews.pdf" target="_blank"&gt;paper&lt;/a&gt;. Overall, I think the attendees were intrigued by the concept. The majority of attendees seemed to test software on a physical target board and were&amp;nbsp;familiar with&amp;nbsp;writing tests, downloading them to the board, running them, and collecting the results back on the host. The presentation could have used some more details on how to make the physical connection between the host machine and a target board via the mailbox and&amp;nbsp;a hardware&amp;nbsp;channel such as USB, Ethernet, JTAG, etc. &lt;/p&gt;&lt;p&gt;The &lt;a href="https://www.cmpevents.com/ESCe08/a.asp?option=C&amp;amp;V=11&amp;amp;SessID=7629" target="_blank"&gt;session before mine was related to code instrumentation&lt;/a&gt;, a topic that is close to ISX, especially with the introduction of the monitoring features in version 8.2. The talk demonstrated a way to create your own structural coverage tool by using the C preprocessor. I think most attendees were a bit shocked to think about replacing every construct in C with a macro that inserts code to log which statements&amp;nbsp;were executed, but the presenter, Ark Khasin, definitely won some points for creativity. I had seen an article on it previously&amp;nbsp;on embedded.com so I wasn&amp;#39;t as surprised as others might have been. Even if the solution is not completely practical it is worth a look. Attempting to parse C code yourself does take effort so&amp;nbsp;the solution to use the C compiler you already have makes some sense. There is also a &lt;a href="http://www.macroexpressions.com/doc/Cutestss.html" target="_blank"&gt;paper&lt;/a&gt; on the &lt;a href="http://www.macroexpressions.com/" target="_blank"&gt;MacroExpressions website&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;For ISX we have relied on extracting as much information about the embedded software to be verified from debugging information found in&amp;nbsp;object files. I&amp;#39;ll talk more about the pros and cons of code instrumentation in a future post, but there is probably no one size fits all solution.&lt;/p&gt;&lt;p&gt;Ideally, there is no need to instrument source code to collect code coverage, functional coverage, do performance profiling, and more. In order to provide these features on uninstrumented code it&amp;#39;s necessary to not only use a simulator or vitual machine&amp;nbsp;to run the code but it is also necessary to have some detailed knowlege about&amp;nbsp;the processor that is running the&amp;nbsp;software. Tools that provide a simulation engine and models can do a lot of things with uninstrumented code. For example, with VMware you can debug uninstrumented Linux kernel code running in a virtual machine.&lt;/p&gt;&lt;p&gt;From the start ISX was designed not to rely on the details of simulation tools and models. The main reason is that are so many ways to run software and so many combinations of processors and tools that it&amp;#39;s impossible to keep up and users typically don&amp;#39;t really want to hear that they can improve verification, but step one is to replace the models they are using. It also makes things like doing verification with the software running on an actual target board a bit of a problem. As a result ISX uses generic C code to provide the verification connection to embedded software. Working at the source level means the solution is generic and can be used with any processor model and C compiler. &lt;/p&gt;&lt;p&gt;Working at the source level is very flexible but also presents some challenges in the instrumentation area. It means some C code must be added or modified to get the benefits of verification, and sometimes engineers don&amp;#39;t really like to think about modifying the code for verification purposes.&amp;nbsp;After I get back from ESC I&amp;#39;ll cover the details of various approaches to code instrumentation.&lt;/p&gt;&lt;p&gt;It&amp;#39;s good to see the Embedded Systems Conference is still going strong. I&amp;#39;m always amazed by the diversity of the types of products produced by the engineers that attend.&lt;/p&gt;&lt;img src="http://www.cadence.com/Community/aggbug.aspx?PostID=12280" width="1" height="1"&gt;</description><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/System+Design+and+Verification/default.aspx">System Design and Verification</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/ISX/default.aspx">ISX</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/ESC/default.aspx">ESC</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/Coverage+Driven+Verification/default.aspx">Coverage Driven Verification</category></item><item><title>Virtualization Taxonomy</title><link>http://www.cadence.com/Community/blogs/sd/archive/2008/10/29/brain-taxing-virtualization-taxonomy.aspx</link><pubDate>Wed, 29 Oct 2008 00:57:00 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:12253</guid><dc:creator>jasona</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.cadence.com/Community/blogs/sd/rsscomments.aspx?PostID=12253</wfw:commentRss><comments>http://www.cadence.com/Community/blogs/sd/archive/2008/10/29/brain-taxing-virtualization-taxonomy.aspx#comments</comments><description>&lt;p&gt;I arrived safe and sound at the Embedded Systems Conference in Boston today. It&amp;#39;s been a few years since I have attended ESC, but it all came back to me quickly, and is just as I remember it, a lot of small booths&amp;nbsp;with vendors showing small boards&amp;nbsp;doing something (hopefully something interesting and not something small).&lt;/p&gt;&lt;p&gt;The most interesting talk I attended was &lt;a target="_blank" href="https://www.cmpevents.com/ESCe08/a.asp?option=C&amp;amp;V=11&amp;amp;SessID=7606"&gt;Virtualization for Embedded and Real-Time Systems&lt;/a&gt;. Virtualization is one of favorite topics to follow as I&amp;#39;m pretty sure it has many applications in both embedded systems and for EDA tools that have yet to be realized. This talk was a 90 minute session jammed with&amp;nbsp;all things related to virtualization by somebody who clearly has spent years understanding and implementing many types of virtualization. &lt;/p&gt;&lt;p&gt;I found a good&amp;nbsp;&lt;a target="_blank" href="http://en.wikipedia.org/wiki/Platform_virtualization"&gt;wikipedia page that is a good summary of&amp;nbsp;some of the material that was covered&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;One of the primary applications in embedded systems is to use virtualization to run multiple operating systems on a single CPU.&amp;nbsp;This is not&amp;nbsp;unlike server applications in a data center, but in embedded applications the operating systems are heterogeneous. Often times one of the operating systems is a legacy OS and the other is a general purpose OS like Linux. This enables cost reduction of hardware as processors get faster since multiple boards can be replaced by a single board.&amp;nbsp;Another example that seems to be popular among the embedded virtualization vendors is to run the protocol stack for making phone calls on the mobile phone in one virtual machine and the general purpose OS that handles the display, other peripherals,&amp;nbsp;and all the applications in another virtual machine. This way the user cannot download and run poorly behaved applications&amp;nbsp;that might&amp;nbsp;interfere with the core capability of making phone calls. &lt;a target="_blank" href="http://www.trango-vp.com/"&gt;Trango&lt;/a&gt; is another vendor working in this area. The concept sounds very promising&amp;nbsp;to keep the games, e-mail, and web browsing&amp;nbsp;from causing poor call quality.&lt;/p&gt;&lt;p&gt;If you can follow and understand the picture below you have a good start at understanding commonly used virtualization techniques. This is just the first level. For every one of these there are interesting topics such as using &lt;a target="_blank" href="http://replaydebugging.com/"&gt;virtualization to improve software debugging&lt;/a&gt; and to profile software execution.&lt;/p&gt;&lt;p&gt;&lt;a target="_blank" href="http://s466.photobucket.com/albums/rr22/hamlake/?action=view&amp;amp;current=vtax.gif"&gt;&lt;img border="0" src="http://i466.photobucket.com/albums/rr22/hamlake/vtax.gif" alt="Virtualization Taxonomy" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;There are multiple talks on the ESC program about virtualization. It seems to be one of the hot topics in embedded software. This talk definitely helped me understand all of the kinds of virtualization and gave me a better understanding of how many of them work, including the VMware that I use everyday.&lt;/p&gt;&lt;p&gt;I would love to hear about other applications or ideas on how virtualization is being used or could be used.&lt;/p&gt;&lt;img src="http://www.cadence.com/Community/aggbug.aspx?PostID=12253" width="1" height="1"&gt;</description><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/System+Design+and+Verification/default.aspx">System Design and Verification</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/Embedded+Systems+Conference/default.aspx">Embedded Systems Conference</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/taxonomy/default.aspx">taxonomy</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/real-time+systems/default.aspx">real-time systems</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/ESC/default.aspx">ESC</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/VM+ware/default.aspx">VM ware</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/virtualization/default.aspx">virtualization</category></item><item><title>Is Host-Code Execution History?</title><link>http://www.cadence.com/Community/blogs/sd/archive/2008/10/17/is-host-code-execution-history.aspx</link><pubDate>Fri, 17 Oct 2008 07:00:00 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:11991</guid><dc:creator>jasona</dc:creator><slash:comments>5</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.cadence.com/Community/blogs/sd/rsscomments.aspx?PostID=11991</wfw:commentRss><comments>http://www.cadence.com/Community/blogs/sd/archive/2008/10/17/is-host-code-execution-history.aspx#comments</comments><description>&lt;p&gt;Before getting into the details of today&amp;#39;s topic I&amp;#39;m happy to report a brand new baby girl was born on October 1 into the Andrews family of Ham Lake, MN. She is our sixth child, and the forth girl to go along with two boys. Currently, I play a lot of golf with my oldest three kids and&amp;nbsp;with the new baby girl I&amp;#39;m assured&amp;nbsp;the three youngest&amp;nbsp;will form my next foursome after the oldest three grow up and leave home.&lt;/p&gt;&lt;p&gt;My first job in EDA (back when I only had 1 child) was at Simulation Technologies in St. Paul, MN working on a product called Virtual-CPU or just V-CPU for short. The software was developed inside Cisco in San Jose by a consultant named Benny Schnaider for the purpose of early integration of software running with hardware simulations of Cisco routers. Details of V-CPU were first published at the 1996 Design Automation Conference in a paper titled &amp;quot;Software Development in a Hardware Simulation Environment&amp;quot;. I have continued to toil in EDA, but Benny has moved on to many other things including working in another of my favorite areas, virtualization, at a company called &lt;a target="_blank" href="http://www.qumranet.com/about-qumranet/leadership"&gt;Qumranet&lt;/a&gt;. There is even one line in his&amp;nbsp;CEO profile hinting at this V-CPU work at Cisco. &lt;br /&gt;&lt;br /&gt;At the time Cisco used off-the-shelf MIPS processors on boards with custom ASICs to build routers (these were the days before every chip had multiple processors embedded in it). The ASICs were simulated in Verilog-XL (on Sun and HP workstations) and the software was the Cisco operating system,&amp;nbsp;IOS. It was not feasible to obtain any kind of model of the MIPS processors that would run inside Verilog-XL, so Benny implemented a way to run the software on the host machine and use a network socket to connect to the Verilog simulator and drive a MIPS bus functional model. This technique of running software on the host machine at high speeds and only communicating with the simulator when interesting data accesses&amp;nbsp;occurred is called host-code execution. &lt;/p&gt;&lt;p&gt;One of the coolest features of V-CPU was something called &amp;quot;implicit access&amp;quot;. Most companies that are using&amp;nbsp;host-code execution today use &amp;quot;explicit access&amp;quot;. &amp;nbsp;This means they require all places in the code that access the hardware to call read() and write() functions so every hardware access goes through a common set of functions and then they use #ifdef to change the hardware accesses&amp;nbsp;to call the simulator if they are doing verification with host-code execution. If they are running on the target system, then pointer dereferences are used. The&amp;nbsp;code below shows an example of explicit access. This works just fine if software engineers plan for host-code execution and structure the code correctly to access the hardware from&amp;nbsp;a central location.&lt;/p&gt;&lt;a target="_blank" href="http://s466.photobucket.com/albums/rr22/hamlake/?action=view&amp;amp;current=explicit.gif"&gt;&lt;img border="0" src="http://i466.photobucket.com/albums/rr22/hamlake/explicit.gif" alt="Explicit Memory Access" /&gt;&lt;/a&gt; &lt;p&gt;If the planning was not that great or if the code base is just large and uses scattered pointers everywhere, there is no way to go into the code and change every hardware access into a function call. This is where implicit access came in. It provided a way to automatically trap pointer dereferences that were reading and writing to hardware locations and convert the load or store instruction into a simulated read or write. For reads it would put the result into the proper host CPU register and the user had no idea that a line of C code would magically turn into a bus transaction on a Verilog BFM. The code below shows implicit access, of course it&amp;#39;s nothing but regular C code using pointers, but underneath was some nifty low-level programming involving the assembly language of the host machine. In the V-CPU days Cisco ran the software on Sun workstations so the complexity of the load and store instructions on the Sparc RISC processor was much less than the x86 instruction set which is&amp;nbsp;the most common host CPU today. Implicit access made host-code execution feasible for projects that didn&amp;#39;t really plan for it.&lt;/p&gt;&lt;a target="_blank" href="http://s466.photobucket.com/albums/rr22/hamlake/?action=view&amp;amp;current=implicit.gif"&gt;&lt;img border="0" src="http://i466.photobucket.com/albums/rr22/hamlake/implicit.gif" alt="Implicit Memory Access" /&gt;&lt;/a&gt; &lt;p&gt;I still run into host-code execution at companies today. Over time they have figured out how to plan for it or have created something similar to the clever implicit access feature in V-CPU, but I have to wonder if the days of host-code execution are coming to and end. Chris Tice, who is the General Manager of the Cadence emulation group, tells of how he once told a customer that host-code execution didn&amp;#39;t seem that important and they could just do everything with a Palladium emulator.&amp;nbsp;He says it took some time for him to recover because engineers really like the ease-of-use and performance of running software on a host machine. Chris is a sharp guy so I&amp;#39;m sure he understands the benefits now also.&lt;/p&gt;&lt;p&gt;The main reason I&amp;#39;m pondering&amp;nbsp;the end of host-code execution is because of the emergence of new high performance CPU models that execute the instruction set of the embedded processor and run at nearly the speed of the host. Given the hassle of host-code execution&amp;nbsp;I would prefer to cross compile the software and run the target instruction set. Beyond the implicit or explicit access issue, this also eliminates issues with differences in data type sizes, data structure layout, byte order (endianess) and other differences between the&amp;nbsp;host and target processor. New techniques are now available that use code translation to dynamically translate the target instructions into host instructions. These models provide the speed of host-code execution and run the target instruction set.&lt;/p&gt;&lt;p&gt;Recently I have been working with three tools that provide very high performance models of embedded processors. Two commercial ones are the &lt;a target="_blank" href="http://www.arm.com/products/DevTools/SystemGenerator.html"&gt;ARM System Generator&lt;/a&gt; and &lt;a target="_blank" href="http://virtutech.com/products/simics_model_library.html"&gt;Simics from Virtutech&lt;/a&gt;. An open source software that I also work with is &lt;a target="_blank" href="http://bellard.org/qemu/"&gt;QEMU&lt;/a&gt;. Another that I don&amp;#39;t have direct experience with is sponsored&amp;nbsp;by &lt;a target="_blank" href="http://www.ovpworld.org/"&gt;Imperas is&amp;nbsp;OVP&lt;/a&gt;. All of these models provide excellent performance for popular embedded processors. Since details of how the proprietary tools work are harder to come by, here is a link to some &lt;a target="_blank" href="http://wwwse.inf.tu-dresden.de/wiki/images/c/c8/Seminar_ws06_Alessandro_Pereira_qemu.pdf"&gt;info on how QEMU works&lt;/a&gt;, it&amp;#39;s interesting stuff.&amp;nbsp;&lt;/p&gt;&lt;font size="2"&gt;&lt;p&gt;Yesterday I ran a test that booted and ran embedded Linux for 30 seconds of simulation in only 15 seconds of wall clock time.&amp;nbsp;The equivalent speed is greater than 1 GHz (and this is on a not very impressive laptop).&lt;/p&gt;&lt;p&gt;Anybody out there&amp;nbsp;doing interesting things with either host-code execution or with fast CPU models?&lt;/p&gt;&lt;p&gt;Running fast is just the tip of the iceberg, there are lots of other interesting topics related to&amp;nbsp;the Virtual System Prototype or Virtual Platform. The parallels to the workstation and server virtualization industry are also very interesting, since I usually run the embedded system Virtual Platform inside a VMware virtual machine, but these are all topics for another day. The virtual model is quickly becoming the logic simulator for software engineers, and holds great promise to improve embedded software development.&amp;nbsp;Unfortunately, it&amp;#39;s time for me to follow the #1 rule of parenting, &lt;strong&gt;sleep when the baby sleeps&lt;/strong&gt;.&lt;/p&gt;&lt;/font&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cadence.com/Community/aggbug.aspx?PostID=11991" width="1" height="1"&gt;</description><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/System+Design+and+Verification/default.aspx">System Design and Verification</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/QEMU/default.aspx">QEMU</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/Cisco/default.aspx">Cisco</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/MIPS/default.aspx">MIPS</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/ARM/default.aspx">ARM</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/Palladium/default.aspx">Palladium</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/Verilog/default.aspx">Verilog</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/Sun/default.aspx">Sun</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/OVP/default.aspx">OVP</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/Virtutech/default.aspx">Virtutech</category></item><item><title>Early Embedded Systems Conference Coverage</title><link>http://www.cadence.com/Community/blogs/sd/archive/2008/10/13/early-embedded-systems-conference-coverage.aspx</link><pubDate>Mon, 13 Oct 2008 11:36:00 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:11853</guid><dc:creator>jasona</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.cadence.com/Community/blogs/sd/rsscomments.aspx?PostID=11853</wfw:commentRss><comments>http://www.cadence.com/Community/blogs/sd/archive/2008/10/13/early-embedded-systems-conference-coverage.aspx#comments</comments><description>&lt;p&gt;Today,&amp;nbsp;a friend sent me a &lt;a href="http://embedded.com/products/hardwaretools/210800295"&gt;link to an article on embedded.com&lt;/a&gt; that&amp;nbsp;talks about&amp;nbsp;my &lt;a href="http://www.cadence.com/Community/blogs/sd/archive/2008/08/21/embedded-systems-conference-boston-2008.aspx?postID=10859" target="_blank"&gt;upcoming presentation at the Embedded Systems Boston Conference&lt;/a&gt;. I love the title about turning hardware and software design upside down. I guess it&amp;#39;s true that this is what I have been doing for some time.&lt;br /&gt;&lt;br /&gt;The unique thing about it was that was the first time I could remember where an article appeared in a publication or on the web that wasn&amp;#39;t really planned. Most of the time there are meetings with editors and efforts&amp;nbsp;to show them&amp;nbsp;interesting things and&amp;nbsp;feed them material&amp;nbsp;to use&amp;nbsp;in filling publications and websites. This one was completely unplanned and just showed up with no effort or intervention from anybody. A refreshing change. &lt;/p&gt;&lt;p&gt;If you are in the Boston area I encourage you to attend the session and all of the other great sessions going on at ESC. I have presented in both San Jose and Chicago, but this is my first time in Boston. I would be happy to actually meet a real person who is reading the blog activity&amp;nbsp;on cadence.com.&amp;nbsp; &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cadence.com/Community/aggbug.aspx?PostID=11853" width="1" height="1"&gt;</description><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/System+Design+and+Verification/default.aspx">System Design and Verification</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/Embedded+Systems+Boston+Conference/default.aspx">Embedded Systems Boston Conference</category></item><item><title>System-level design and verification - at the center!</title><link>http://www.cadence.com/Community/blogs/sd/archive/2008/10/07/system-level-design-and-verification-the-next-new-wave.aspx</link><pubDate>Tue, 07 Oct 2008 14:09:00 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:11726</guid><dc:creator>Ran Avinun</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.cadence.com/Community/blogs/sd/rsscomments.aspx?PostID=11726</wfw:commentRss><comments>http://www.cadence.com/Community/blogs/sd/archive/2008/10/07/system-level-design-and-verification-the-next-new-wave.aspx#comments</comments><description>&lt;p&gt;This year, Cadence increases its focus on system-level design and verification events. During the latest &lt;b&gt;CDNLive San-Jose&lt;/b&gt; that was held in September, the guest keynote&lt;img src="http://www.flickr.com/photos/31131785@N04/2916132329/" alt="CDNLive Guest Speaker" width="1" border="0" height="1" /&gt; - Dr. Jan Rabaey, Distinguished Professor of Electrical Engineering at the University of California, Berkeley, described the challenges and opportunities facing customers and partners in the years ahead.&lt;br /&gt;&lt;br /&gt;System-level design was the center of his talk. According to Dr. Rabaey: &amp;quot;The moment for true system-level design is finally here&amp;quot;.&lt;br /&gt;&lt;br /&gt;In his presentation, Dr. Rabaey quoted Alberto Sangiovanni-Vincentelli, co-founder and chief technology advisor at Cadence by saying: &amp;quot;Recognition of the common&amp;nbsp;requirements for co-design of hardware and software will&amp;nbsp;create new solutions that eventually will lead into productivity gains, lower cost and first-path design success.&amp;quot;&lt;br /&gt;&lt;br /&gt;Dr Rabaey added: &amp;quot;The semiconductor and the design automation industries focused in the past on &amp;quot;component design&amp;quot;. They need to address the system space in a hollistic way by addressing the following challenges:&lt;/p&gt;&lt;blockquote&gt;A. Complexity and emerging behavior of networked systems&lt;br /&gt;B. System-level matrix-driven design and verification&lt;br /&gt;C. System-level reliability&lt;br /&gt;&lt;/blockquote&gt;&lt;p&gt;The complexity issue can be solved by:&lt;/p&gt;&lt;blockquote&gt;A. Raising the abstraction-model&lt;br /&gt;B. Enabling a &amp;quot;virtual engineering&amp;quot; design methodology&lt;br /&gt;C. A system-level design science development&lt;br /&gt;&lt;/blockquote&gt;&lt;p&gt;&amp;quot;Finally,&amp;quot; said Rabaey. &amp;quot;If you ignore system-level design, you&amp;#39;re toast.&amp;quot;&lt;/p&gt;&lt;p&gt;Many good presentations were delivered by customers&amp;nbsp;in the system-level space at CDNLive San-Jose. If you missed the event, do not worry; Many of these presentations will be published at the community Web site. You also have the opportunity to hear about Cadence system-level solutions&amp;nbsp;during the up-coming events.&lt;/p&gt;&lt;p&gt;&lt;b&gt;ARM Development Conference&lt;/b&gt; -&lt;b&gt; Oct 7th through Oct 9th at the Santa Clara Convention Center&lt;/b&gt;:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;1. Visit Cadence at Booth # 519 &amp;amp; 616&lt;br /&gt;2. Come to hear about a new ARM/CDNS Hardware/Software Co-verification environment on &lt;font size="2"&gt;Tuesday, Oct. 7th&amp;nbsp;at 12:30 p.m. at the&amp;nbsp;Santa Clara Convention Center, Connected Community Theater.&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;font size="+0"&gt;&lt;font size="+0"&gt;&lt;b&gt;&lt;font size="2"&gt;Rapid System-Verification Techtorials:&lt;br /&gt;&lt;/font&gt;&lt;/b&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;The up-coming system-verification techtorial will provide you info about Cadence system-level solutions with the following highlights:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Transaction-level modeling &lt;/li&gt;&lt;li&gt;Transaction-based acceleration &lt;/li&gt;&lt;li&gt;SystemC simulation &lt;/li&gt;&lt;li&gt;In-circuit emulation &lt;/li&gt;&lt;li&gt;Acceleration of constrained-random coverage-driven verification &lt;/li&gt;&lt;li&gt;HW/SW co-verification&lt;/li&gt;&lt;li&gt;Metric-driven methodology/Verification planning and management&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Sign-up for to these techtorials&amp;nbsp;&lt;a href="http://www.secure-register.net/cadence.php?product=3" title="System Verification techtorials"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;/blockquote&gt;&lt;img src="http://www.cadence.com/Community/aggbug.aspx?PostID=11726" width="1" height="1"&gt;</description><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/System+simulation+and+analysis/default.aspx">System simulation and analysis</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/System+Design+and+Verification/default.aspx">System Design and Verification</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/Acceleration/default.aspx">Acceleration</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/Emulation/default.aspx">Emulation</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/Hardware_2F00_software+co-verification/default.aspx">Hardware/software co-verification</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/ESL+handoff/default.aspx">ESL handoff</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/ISX/default.aspx">ISX</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/CDNLive_2100_+Silicon+Valley+2008/default.aspx">CDNLive! Silicon Valley 2008</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/Coverage+Driven+Verification+for+Embedded+Software/default.aspx">Coverage Driven Verification for Embedded Software</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/ESL/default.aspx">ESL</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/embedded+SW+engineer/default.aspx">embedded SW engineer</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/architect/default.aspx">architect</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/embedded+software/default.aspx">embedded software</category></item><item><title>Power Aware Design Now at System Level </title><link>http://www.cadence.com/Community/blogs/sd/archive/2008/10/06/power-aware-design-now-at-system-level.aspx</link><pubDate>Mon, 06 Oct 2008 11:34:00 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:11722</guid><dc:creator>Ran Avinun</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.cadence.com/Community/blogs/sd/rsscomments.aspx?PostID=11722</wfw:commentRss><comments>http://www.cadence.com/Community/blogs/sd/archive/2008/10/06/power-aware-design-now-at-system-level.aspx#comments</comments><description>&lt;p&gt;Several years ago, I have purchased a cell phone with a 2 years contract from one of the major wireless&amp;nbsp;service providers in the US. The battery lifetime between charges of this phone was terrible&amp;nbsp;- 24 hours.&amp;nbsp;The service provider&amp;nbsp;promised me that there will be&amp;nbsp;a firmware upgrade which will improve the battery charge time. 9 months later, I uploaded new firmware which allowed me to double the time between charges. These kind of issues are common within the electronic manufacturers community. &lt;/p&gt;&lt;p&gt;Why is it being discovered so late and by the end-user rather by the designer of the phone? &lt;/p&gt;&lt;p&gt;Why did it take 9 months for the software designers to fix it and provide a new firmware?&lt;/p&gt;&lt;p&gt;A year ago, I had a long discussion about power consumption with an engineer at a major semiconductor company in silicon valley. I have learned that this company is very conservative about power budget since it can not afford to fail. As a result, they were very conservative and had to use higher-cost packages in order to ensure working devices. The same engineer told me that more accurate power estimation will help his company to reduce the margin and lower the cost per device sold.&lt;/p&gt;&lt;p&gt;So, as you make your system power trade-offs, you need to make your assessment and the trade-off between being conservative (i.e. increase price per device) or being aggressive (which could cause you device failures or recalls).&lt;/p&gt;&lt;p&gt;In recent discussions with customers, I have found out that power estimation at the system-level is becoming more and more critical to design engineers.&lt;/p&gt;&lt;p&gt;Cadence has recently introduced two capabilities that help designers to estimate and explore power at the system-level.&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;First, Cadence&amp;reg; InCyte Chip Estimator now offers low-power planning capabilities, including automatic creation of the Common Power Format. InCyte allows designers to perform accurate pre-RTL power estimation and to explore the impact of various low-power techniques. Within seconds, users can quantify the technical and economic impact of these techniques, at the pre-RTL stage in the design cycle. With a design specification as the primary input, users select parameters such as a target manufacturing process, what IP they are considering using within the device, performance targets and amounts of memory. In addition to estimating parameters such as die size, power consumption and cost, the system also enables side-by-side comparison of low-power techniques including multiple power domains, selective block power down, voltage scaling, clock scaling and more. Analysis can be completed in seconds and provide valuable feedback to assist in architectural what-if analysis, planning and feasibility assessments. &lt;/p&gt;&lt;p&gt;&lt;span style="font-size:10pt;color:black;font-family:Arial;"&gt;Second, Palladium&amp;reg; Dynamic Power Analysis helps to quickly identify the average and peak power consumption of SoC designs running with real software and real stimulus in various operational scenarios. In addition, Palladium Dynamic Power Analysis&amp;nbsp;helps designers to compare power consumption among different design instances (i.e. finding &amp;ldquo;hot-spots&amp;rdquo; - which block/IP relatively consumes more/less power) and analysis of power consumption under specific working conditions. &lt;span style="font-size:10pt;font-family:Arial;"&gt;The capability&amp;nbsp;is built on top of a Cadence HW emulation system and software solution that leverages the Cadence RTL Compiler power estimation engine and the SimVision waveform/power browser which is bundled with Palladium Dynamic Power Analysis. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:10pt;color:black;font-family:Arial;"&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&lt;/span&gt;&lt;/span&gt;If you want to read more information, read &lt;a href="http://www.cadence.com/cadence/newsroom/features/pages/feature.aspx?xml=enhanced_lp" title=" "&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;I would also be interested to hear about your system-level power challenges and find out if these capabilities can potentially help you.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cadence.com/Community/aggbug.aspx?PostID=11722" width="1" height="1"&gt;</description><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/System+simulation+and+analysis/default.aspx">System simulation and analysis</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/System+Design+and+Verification/default.aspx">System Design and Verification</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/Acceleration/default.aspx">Acceleration</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/Hardware_2F00_software+co-verification/default.aspx">Hardware/software co-verification</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/Low+power+verification+and+analysis/default.aspx">Low power verification and analysis</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/Verification+Acceleration/default.aspx">Verification Acceleration</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/Simulation+Acceleration/default.aspx">Simulation Acceleration</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/C-to-Silicon+Compiler/default.aspx">C-to-Silicon Compiler</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/debugging/default.aspx">debugging</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/ESL/default.aspx">ESL</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/system+validation_2F00_verification+engineer/default.aspx">system validation/verification engineer</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/embedded+SW+engineer/default.aspx">embedded SW engineer</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/architect/default.aspx">architect</category></item><item><title>The cell world</title><link>http://www.cadence.com/Community/blogs/sd/archive/2008/09/24/the-cell-world.aspx</link><pubDate>Wed, 24 Sep 2008 11:30:00 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:10886</guid><dc:creator>Ran Avinun</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.cadence.com/Community/blogs/sd/rsscomments.aspx?PostID=10886</wfw:commentRss><comments>http://www.cadence.com/Community/blogs/sd/archive/2008/09/24/the-cell-world.aspx#comments</comments><description>Earlier this Summer, I was lucky enough to attend the CDNLive show in Japan. One of the keynote speakers at the show was Mr. Mitsuo Saito, Chief Fellow at Toshiba Corporation Semiconductor Company. Mr. Saito-san delivered a presentation about the 20 years battle for the fastest application-specific processors and the future direction of the semiconductor industry in his mind - dreaming &amp;quot;Cell&amp;quot; world.&lt;br /&gt;&lt;br /&gt;Mr. Saito-san described in his exciting presentation the tremendous efforts have been done in Toshiba by his team to develop an application-specific processor &amp;quot;winner&amp;quot;. A &amp;quot;winner&amp;quot; has been defined by Mr. Saito-san as a processor that has the &amp;quot;right&amp;quot; characteristics from the technology side and the link to a successful business plan so the winning processor design can be translated into a winning product.&lt;br /&gt;&lt;br /&gt;Mr. Saito-san discussed many processors that have been designed by him and his team at Toshiba started in the mid 80&amp;#39;s including the RISC MIPS-based architecture R8000, TX39, &amp;quot;GSP&amp;quot; and many others. Although some of these processor designs were &amp;quot;brilliant&amp;quot; they were all moderately successful in the market. In some cases, as a result of missing the market window, in other cases as a result of lack of connection into the &amp;quot;right&amp;quot; partner in the business side or simply immature market for this type of applications. Mr Saito-san and his team were persistent.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Playstation 1:&lt;/b&gt;&lt;br /&gt;After many failures, they continued to think about the next-generation processor and were trying to &amp;quot;break the ice&amp;quot;. Finally they introduced the processor that became the core of Playstation 1 which was unexpectedly big success with over hundred million sets manufactured and sold. The original business model intent was to make money from the software license. In reality both Sony and Toshiba made money even from hardware, mainly due to the semiconductor cost reduction over time. The performance of the 3D engine was not very good and the emotion of the characters could not be presented well.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Playstation 2: &lt;/b&gt;&lt;br /&gt;The next-generation hardware (targeted for playstation II) was focusing on the graphics. Embedded DRAM technology based graphics was employed. The main processor could not have enough performance and therefore a dedicated graphic processor had to be developed. Toshiba (in collaboration with Sony) developed a new graphic processor (called Emotion Engine) with floating point performance (very important for graphic applications) that was at that time 3X faster compared to the Pentium 2/3 processors. This emotion engine processor had specific superscalar RISC core and special vector units. It displayed 100&amp;#39;s of Millions of vectors per second - 3-5X more than Intel and AMD processors that were available at that time. This processor was introduced late to the market and caused delays to the PS2 introduction that later on (around 2003) became very successful.&lt;br /&gt;&lt;br /&gt;The lessons learned from this project (which I believe can be used in may projects) as described by Saito-san are:&lt;br /&gt;&lt;br /&gt;1. If the development is similar to the previous one, schedule prediction and performance estimation can be accurate however for new concept design (similar to the one here), expect unplanned delays.&lt;br /&gt;2. Keep good relationship and update your partner or customer continuously&lt;br /&gt;3. Hiding the status from your customer is not generally a good idea and recovery is very difficult&lt;br /&gt;4. Too much explanation will cause unnecessary worry to the customer&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Playstation 3:&lt;/b&gt;&lt;br /&gt;Toshiba started to look at their next generation processor in 1999. They did not have to use the same architecture that was used in playstation 2. The requirements were much beyond game console and were looking into home entertainment center. &lt;br /&gt;&lt;br /&gt;The broadband network was perceived to have a big impact for this device. The next generation processor was supposed to address various applications with scalable architecture. The real-time computation was key for gaming and network and the decision was to use a new architecture.&lt;br /&gt;&lt;br /&gt;Toshiba, IBM and Sony have agreed to set-up a joint development team for a next generation processor -- &lt;b&gt;the cell processor. &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;The processor had four building blocks/elements: PowerPC processor, Synergistic processor, memory flow controller and local storage. Playstation 3 was launched successfully in 2006, incorporating the cell processor with key benefits including: media performance and movie quality and became a new hit.&lt;br /&gt;&lt;b&gt;&lt;br /&gt;Beyond Playstation 3:&lt;/b&gt;&lt;br /&gt;After the introduction of Playstation 3, Toshiba started to look at other applications of the cell processor. Some of the unique benefits have been identified in the area of real-time face tracking, hand gesture user interface. &lt;br /&gt;&lt;br /&gt;The cell processor architecture opened the opportunity to provide network transparent model with collaboration of multiple devices. Same program can be applicable to various performance machines while keeping real-time connecting devices as cell phone, computer servers, digital TV and game consoles. As the follow-on to the cell processor, Toshiba has developed a derivative processor called the SpurseEngine with the requirement to support full high-definition digital life. &lt;br /&gt;&lt;br /&gt;According to Mr. Saito-san, high-definition demands break-through to overcome the limitations of conventional PCs. It needs 6 times higher bandwidth than standard definition. Conventional PC architecture of CPU and GPU can only decode HD video. Therefore, CPU will not be capable of real time handling HD Video in the near future. Especially, when you would like to use applications such as authoring, transcoding, editing, indexing and searching. The SpusreEngine was designed to solve this bandwidth issue with much better results for these capabilities compared to nVidia GPU and Intel CPU processors.&lt;br /&gt;&lt;br /&gt;Therefore, Saito-san claims that the next generation PCs will need 3 processors: CPU, GPU and Stream Processor (i.e. the SpursEngine). Toshiba released in Japan on July 14th its first laptop called Qosmio with the SpurseEngine processor. We will see in the future how this new technology will change the computer world.&lt;br /&gt;&lt;b&gt;&lt;br /&gt;Message to the EDA world&lt;/b&gt;&lt;br /&gt;&lt;i&gt;Saito-san final messages were:&lt;/i&gt;&lt;br /&gt;1. The current focus is on SoC with HW/SW co-design of dedicated H/W and S/W.&lt;br /&gt;2. The future (next decade) is about S/W solution. Future designs are going to be software centric designs - i.e. the&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; major focus is moving from hardware to software and systems. &lt;br /&gt;3. The EDA needs to go through a major revolution focusing more on the system-level rather than the IC level.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;My take aways:&lt;/b&gt;&lt;br /&gt;1. Do not give up. You will likely fail several times before you will be successfully as a designer.&lt;br /&gt;2. There is a bright future to embedded SW and system-level design&lt;br /&gt;3. Future system-design and verification tools can help designers to get their design right and eliminate unexpected&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; project delays&lt;br /&gt;4. In the future, we will see more and more application-specific processors therefore there will be more processor&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; design teams in the market. These teams will demand ESL tools and early HW/SW design tools.&lt;br /&gt;&lt;br /&gt;As always, I am interested in your opinion, especially if you are involved in this space.&lt;img src="http://www.cadence.com/Community/aggbug.aspx?PostID=10886" width="1" height="1"&gt;</description><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/Sony/default.aspx">Sony</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/cell+processor/default.aspx">cell processor</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/IBM/default.aspx">IBM</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/Playstation/default.aspx">Playstation</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/Toshiba/default.aspx">Toshiba</category></item><item><title>Embedded Software Bugging and Debugging</title><link>http://www.cadence.com/Community/blogs/sd/archive/2008/09/17/embedded-software-bugging-and-debugging.aspx</link><pubDate>Wed, 17 Sep 2008 12:02:00 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:11327</guid><dc:creator>jasona</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.cadence.com/Community/blogs/sd/rsscomments.aspx?PostID=11327</wfw:commentRss><comments>http://www.cadence.com/Community/blogs/sd/archive/2008/09/17/embedded-software-bugging-and-debugging.aspx#comments</comments><description>&lt;p&gt;In&amp;nbsp;one of my previous posts I&amp;nbsp;introduced an interesting book titled &lt;a href="http://www.cadence.com/Community/blogs/sd/archive/2008/07/10/dreaming-in-code.aspx" target="_blank"&gt;Dreaming in Code&lt;/a&gt;. One of the great quotes from the book pertains to today&amp;#39;s subject, embedded software debugging. If you don&amp;#39;t have the book you can look it up on the &lt;a href="http://www.dreamingincode.com/book-excerpt/" target="_blank"&gt;book excerpt page&lt;/a&gt; of the author&amp;#39;s website for the book.&lt;/p&gt;&lt;p&gt;&lt;i&gt;If you talk with programmers about this, prepare for whiplash. On the one hand, you may hear that things have never looked brighter: We have better tools, better testing, better languages, and better methods than ever before! On the other hand, you will also hear that we haven&amp;rsquo;t really made much headway since the dawn of the computer era. In his memoirs, computing pioneer Maurice Wilkes wrote of the moment in 1949 when, hauling punch cards up the stairs to a primitive computer called EDSAC in Cambridge, England, he saw the future: &amp;ldquo;The realization came over me with full force that a good part of the remainder of my life was going to be spent in finding errors in my own programs.&amp;rdquo; From Wilkes&amp;rsquo;s epiphany to the present, despite a host of innovations, programmers have been stuck with the hard slog of debugging. Their work is one percent inspiration, the rest sweat-drenched detective work; their products are never finished or perfect, just varying degrees of &amp;ldquo;less broken.&amp;rdquo;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;An article I read today from EDN titled &lt;a href="http://www.edn.com/article/CA6590189.html" target="_blank"&gt;&amp;quot;Shedding light on embedded debugging&amp;quot;&lt;/a&gt; confirmed that the situation has not changed much. For the last three years about one third of the respondents identified debugging as the number one thing they would like to improve about embedded software design. The article covers a wide range of debugging technologies that are available such as virtual system prototypes, better host tools, on-chip debugging features, and trace buffers.&amp;nbsp;Even with all this available the survey indicates that all of these have not been able to make a dent in the number of engineers identifying debugging as the main thing they would like to improve.&lt;/p&gt;&lt;p&gt;One of the items discussed in the article is that many embedded systems don&amp;#39;t lend themselves to debugging since they contain hardware like sensors and actuators that are hard to model and make traditional breakpoint based debugging difficult. I don&amp;#39;t recall who told me this info, but about 12 years ago Cygnus (long since acquired by Red Hat) was promoting something in gdb called tracepoints because some engineers had to debug code that was controlling an elevator.&amp;nbsp;Setting a breakpoint in the software as the elevator was on the way up wasn&amp;#39;t a good idea as it may cause the elevator to&amp;nbsp;blow out through the top of the building. I don&amp;#39;t know if the feature is still in use, but it&amp;#39;s still in gdb, just type &amp;quot;help tracepoints&amp;quot; at the gdb prompt.&lt;/p&gt;&lt;p&gt;Unfortunately, I don&amp;#39;t have the solution to all the world&amp;#39;s debugging problems, but I do have a very small feature that may be of interest to some of you. The feature is part of ISX and is called Embedded Software Trace. It&amp;#39;s a plugin for SimVision that helps figure out what embedded software is doing during verification. Like the elevator problem, many engineers doing SoC verification have to deal with software and find that interactive debugging is not always practical in a batch and farm environment. Embedded Software Trace links the hardware debugging environment in SimVision with what is happing in the software running on a model of the CPU in the simulation.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i466.photobucket.com/albums/rr22/hamlake/eswtrace.jpg" width="525" height="336" alt="" /&gt;&lt;/p&gt;&lt;p&gt;The user can move a cursor as normal on the SimVision waveform (or any other SimVision window) and the Source Browser will display the location of the executing software. The Embedded Software Trace toolbar on the Source Browser has some nifty features like next and step (forward and backward) and search for addresses, functions, and combinations of source file and line number. This makes it very easy to find out what is happening in the software at the same time you are debugging the hardware. Below is a screen shot of a Source Browser with the Embedded Software Trace toolbar. The screen shot is also a sneak preview of SimVision 8.2 as regular SimVision users will notice the completely new look and feel for 8.2 that will be released in Q4.&lt;/p&gt;&lt;p&gt;Embedded Software Trace is just another SimVision window type, and&amp;nbsp;you can find it by doing Windows -&amp;gt; New -&amp;gt; Embedded Software Trace or&amp;nbsp;type&amp;nbsp;&amp;quot;window new eswtrace&amp;quot; at the SimVision&amp;gt; prompt. Of course, you need to have Specman installed since ISX is delivered as part of Specman. &lt;/p&gt;&lt;p&gt;One of the great benefits of blogging is the ability to get information about these nifty features directly into the hands of people that need them. When I was working in small companies it was easy to promote such things to users, but in a company the size of Cadence this is a small feature of ISX, and ISX is part&amp;nbsp;of an ESL package, and the ESL package works with the Incisive Simulator, and the Incisive Simulator&amp;nbsp;is actually something users can buy. As the R&amp;amp;D project leader for ISX, blogging&amp;nbsp;is truly&amp;nbsp;the best way to&amp;nbsp;communicate things like Embedded Software Trace to users. &lt;br /&gt;&lt;br /&gt;I hope you like it and feel free to send feedback and ideas on how to improve things.&lt;/p&gt;&lt;img src="http://www.cadence.com/Community/aggbug.aspx?PostID=11327" width="1" height="1"&gt;</description><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/System+Design+and+Verification/default.aspx">System Design and Verification</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/embedded+software/default.aspx">embedded software</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/bugging+and+debugging_2700_/default.aspx">bugging and debugging'</category></item><item><title>CDNLive SJ - system design and verification - don't miss it</title><link>http://www.cadence.com/Community/blogs/sd/archive/2008/09/09/cdnlive-sj-system-design-and-verification-don-t-miss-it.aspx</link><pubDate>Tue, 09 Sep 2008 08:25:00 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:11202</guid><dc:creator>Ran Avinun</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.cadence.com/Community/blogs/sd/rsscomments.aspx?PostID=11202</wfw:commentRss><comments>http://www.cadence.com/Community/blogs/sd/archive/2008/09/09/cdnlive-sj-system-design-and-verification-don-t-miss-it.aspx#comments</comments><description>&lt;p&gt;If you are a system&amp;nbsp;validation/verification engineer, an architect,&amp;nbsp;a power engineer or an embedded SW&amp;nbsp;engineer, you should stop-by and visit us&amp;nbsp;&lt;a href="http://www.cadence.com/cadence/newsroom/features/pages/feature.aspx?xml=cdnlivesv_highlights&amp;amp;CMP=090908_cdnlivehighlight" target="_blank"&gt;at CDNLive&lt;/a&gt;. See below some specific information on what you will be able to see in this domain: Hope to see you there.&lt;/p&gt;&lt;p&gt;- Ran&lt;/p&gt;&lt;p&gt;&lt;b&gt;Day 1 &lt;/b&gt;-&amp;nbsp;Monday - was very exciting with fully packed agenda including a full day of system design and verification techtorial&amp;nbsp;with demos, customers and partners&amp;nbsp;presentations. Thank you for those who attended and presented. Please share what you learned with the ones who did not have chance to be there and if you like us to improve our program for next show, write your comments below. &lt;/p&gt;&lt;p&gt;&lt;b&gt;Day 2&lt;/b&gt; - Tuesday (today)&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 11am - low-power panel at &lt;font size="2"&gt;Salon V on the second floor&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3:55pm - &lt;/font&gt;Track 1 Session 1FV5 &amp;ndash; Using ISX to build a constrained random test environment from directed C-&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; based&amp;nbsp;tests by NXP.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;4:45pm - Track 1 Session 1FV6 &amp;ndash; An HDTV SoC Development Team&amp;rsquo;s first Experience with HW/SW Co-Verification &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; by Genesis Semiconductor&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5:45pm - The recent (July 14th) announced C-to-Silicon Compiler demo at the&amp;nbsp;technology night&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6:15pm - Xtreme (with hot-swap) demo at the technology night&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7:30pm - The recent (Sep 8th) announced Palladium Dynamic Power Analysis demo at the&amp;nbsp;technology night&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8pm - ARM-based HW/SW co-verification demo with a&amp;nbsp;real design&amp;nbsp;at the technology night&lt;/p&gt;&lt;p&gt;&lt;b&gt;Day 3 &lt;/b&gt;- Wednesday &lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10:30am - Track 2 Session 2FV7 &amp;ndash; Maximizing the ROI of Palladium of Palladium HW to validate massively threaded &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CMT processor - by Sun Microsystems&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;11:20 -&amp;nbsp;Track 2 - Transaction-based Acceleration&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4:30pm - Cadence system design and verification overview and roadmap - main stage - 1R11&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Day 4&lt;/b&gt;&amp;nbsp;- Thursday&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;10am - &amp;nbsp;Track 1 Session 1FV12 &amp;ndash; System-level verification of hard disk controller using Specman and ISX&lt;/p&gt;&lt;img src="http://www.cadence.com/Community/aggbug.aspx?PostID=11202" width="1" height="1"&gt;</description><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/system+validation_2F00_verification+engineer/default.aspx">system validation/verification engineer</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/embedded+SW+engineer/default.aspx">embedded SW engineer</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/power+engineer/default.aspx">power engineer</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/architect/default.aspx">architect</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/low+power/default.aspx">low power</category></item><item><title>The Road to Better Software Verification</title><link>http://www.cadence.com/Community/blogs/sd/archive/2008/08/28/the-road-to-better-software-verification.aspx</link><pubDate>Thu, 28 Aug 2008 12:39:00 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:10945</guid><dc:creator>jasona</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.cadence.com/Community/blogs/sd/rsscomments.aspx?PostID=10945</wfw:commentRss><comments>http://www.cadence.com/Community/blogs/sd/archive/2008/08/28/the-road-to-better-software-verification.aspx#comments</comments><description>&lt;p&gt;It seems the&amp;nbsp;debate over&amp;nbsp;the&amp;nbsp;benefits of better software verification is still alive and well. I just read a &lt;a href="http://www.synopsysoc.org/viewfromtop/?p=46"&gt;blog post by Frank Schirrmeister on Software Developer Attitude&lt;/a&gt; and the topic of hardware vs. software methodology. Part of the post brings up the&amp;nbsp;argument that the cost of failure for hardware is very clear. The deadlines are fixed by tape out, and if the&amp;nbsp;device doesn&amp;#39;t work it means major schedule slip, lost revenue, etc. &lt;/p&gt;&lt;p&gt;The result of this high risk is that engineers take great care&amp;nbsp;to avoid&amp;nbsp;such&amp;nbsp;negative consequences. The post reminds us that software is &amp;quot;soft&amp;quot; and can always be fixed by downloading patches, updating to the latest version, or better yet the system automatically downloads the new updates so&amp;nbsp;it is always up to date.&lt;/p&gt;&lt;p&gt;Many of the software engineers I talk to understand that updating software is not so easy. I&amp;#39;m of the opinion that treating software more like hardware would be of great benefit, although I readily admit I don&amp;#39;t always do it myself. I also think hardware verification is probably not as rigorous as we maintain and that the gap between hardware and software quality is really not that big. Hardware verification engineers tell me they just run out of time and cannot verify as much as they would like to.&lt;/p&gt;&lt;p&gt;When I was a hardware designer working in a server company we were designing systems using Intel processors.&amp;nbsp;It was at the time when the Pentium&amp;nbsp;took over from the i486. Although my memory is not that good I do recall getting a book of errata from Intel with each revision of the chip and&amp;nbsp;often changing to the latest sample chips as we developed the processor boards. The book usually contained&amp;nbsp;a list of various functional issues such as&amp;nbsp;don&amp;#39;t run this sequence of instructions, don&amp;#39;t turn on this mode, and of course make sure to have a big heat sink and plenty of fans. Obviously this is very old data, but I&amp;nbsp;was able to find an &lt;a href="http://windowsitpro.com/article/articleid/2796/tricord-a-mainframes-little-sibling.html" target="_blank"&gt;article&amp;nbsp;about the machine from 1996&lt;/a&gt;.&amp;nbsp;I expect&amp;nbsp;somebody out there&amp;nbsp;can tell similar stories about early silicon and actually using approaches that allow for multiple revisions of a chip. &lt;/p&gt;&lt;p&gt;The software world is not that much different. Coding probably takes about 20% of the overall time and testing takes anywhere between 40% and 80% depending on the level of quality required for the application (also from the The Mythical Man Month by Brooks, see link below).&lt;/p&gt;&lt;p&gt;One of the key aspects of software is that the longer it takes to find a bug the more it costs to fix. Currently, I write software at Cadence that goes into Specman. I can tell you that if I find a problem when I&amp;#39;m first developing&amp;nbsp;a feature or during the &amp;quot;development window&amp;quot; I can fix it very easily just by changing the code.&lt;/p&gt;&lt;p&gt; I don&amp;#39;t have to tell anyone, enter anything in the bug tracking system, or fill out any forms of any kind. If I find a problem in&amp;nbsp;the same code after the release reaches beta, I need to enter it in the bug tracking system, prepare a new clearcase view with the fix, tell the release manager that I have a new fix to make, discuss why&amp;nbsp;it&amp;#39;s very much needed, is low risk and won&amp;#39;t disrupt the release by breaking a bunch of other stuff, rerun all 80,000 tests, schedule a day to merge my fix, and do it when I get the&amp;nbsp;go ahead&amp;nbsp;to make the change. &lt;/p&gt;&lt;p&gt;This is a&amp;nbsp;much bigger&amp;nbsp;overhead compared to the first case when I just made the change by myself and was done. If an issue is found by a customer after the product ships&amp;nbsp;the process is similar except there is some additional overhead to communicate with the user and maybe the customer support people about the issue and the solution. I can also tell you that the time from the initial code freeze until the product reaches &lt;a href="http://downloads.cadence.com" target="_blank"&gt;downloads.cadence.com&lt;/a&gt; could be in the 4 to 8 week range, maybe not that much different from the time required to get first samples of a chip. &lt;/p&gt;&lt;p&gt;Sure, there is still some flexibility in case of a major issue may not be there&amp;nbsp;for a chip, but you can see life is not as easy as just finding a bug and fixing it and telling somebody to download the fix.&lt;/p&gt;&lt;p&gt;Also remember, my story is EDA software that runs on an ordinary workstation. Embedded systems usually&amp;nbsp;have more constraints on changes to software. For example, to change firmware in a disk drive may require an entire certification sequence to be run in a lab with a rack of hundreds of drives. &lt;/p&gt;&lt;p&gt;Such certification may take a couple of weeks to&amp;nbsp;complete the required number of usage hours to declare the firmware certified for customer usage. My experience is that any serious software project, especially when it also involves custom hardware is not as easy as &amp;quot;just download service&amp;nbsp;pack 2&amp;quot;. &lt;/p&gt;&lt;p&gt;I would be willing to bet that the number of&amp;nbsp;man hours that went into testing service pack 2 was just as much as testing the original release. In each subsequent update release the improvements to the software shrink and the testing time remains constant.&lt;/p&gt;&lt;p&gt;The key to improving software verification is to be able to put a metric or value on the result of the added verification, especially when it is added early in the process. Most software engineers have good intentions to test early and test often, but in reality nobody is really measuring much except everybody wants to know if the software engineer can get the features done before the code freeze. In this environment, it&amp;#39;s difficult to decide to introduce extra testing that takes more time when the software might just work without it. &lt;/p&gt;&lt;p&gt;The conclusion seems to link back to my previous post on the need to have &lt;a href="http://www.cadence.com/Community/blogs/sd/archive/2008/07/16/is-anybody-out-there-a-software-verification-engineer.aspx?postID=10227" target="_blank"&gt;dedicated engineers assigned to verification&lt;/a&gt;, more metrics on the costs of fixing bugs at various stages in the life cycle, and better ways to eliminate bugs as early as possible. Better scheduling tools based on actual past activity may also help by avoiding the usual rush just before code freeze. &lt;/p&gt;&lt;p&gt;There are people in Cadence working on these issues for our own software, and I believe there are many opportunities to develop products that will help embedded software engineers by providing increased automation to start down the road to better software verification. Happy coding and may all your bugs be found quickly and painlessly.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cadence.com/Community/aggbug.aspx?PostID=10945" width="1" height="1"&gt;</description><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/System+Design+and+Verification/default.aspx">System Design and Verification</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/Frank+Schirrmeister/default.aspx">Frank Schirrmeister</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/Intel/default.aspx">Intel</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/Specman/default.aspx">Specman</category></item><item><title>ESL: The state of the industry and what’s next?</title><link>http://www.cadence.com/Community/blogs/sd/archive/2008/08/25/esl-the-state-of-the-industry-and-what-s-next.aspx</link><pubDate>Mon, 25 Aug 2008 09:05:00 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:10885</guid><dc:creator>Ran Avinun</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.cadence.com/Community/blogs/sd/rsscomments.aspx?PostID=10885</wfw:commentRss><comments>http://www.cadence.com/Community/blogs/sd/archive/2008/08/25/esl-the-state-of-the-industry-and-what-s-next.aspx#comments</comments><description>While ESL continues to remain in its infancy, there are signs within the industry pointing towards eventual mainstream usage. With the rapid migration towards advanced process nodes (high capacity), increased hardware and software complexity, and the pressure to reduce the number of ASIC/ASSP designs (including the need to use the same IP or in some cases the same device for multiple applications) &amp;ndash; it is no wonder ESL is moving faster towards reality.&lt;br /&gt;&lt;br /&gt;If you would like to read more about the current state of ESL and where the current trajectory is going to take us -&lt;a href="http://www.edn.com/article/CA6588565.html??text=ran+avinun" target="_blank"&gt; take a look at this article&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I&amp;rsquo;m interested to hear about your point of view and comments on the article.&lt;br /&gt;&lt;br /&gt;Ran&lt;img src="http://www.cadence.com/Community/aggbug.aspx?PostID=10885" width="1" height="1"&gt;</description><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/System+Design+and+Verification/default.aspx">System Design and Verification</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/advanced+process+nodes/default.aspx">advanced process nodes</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/ESL/default.aspx">ESL</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/ASIC_2F00_ASSP/default.aspx">ASIC/ASSP</category></item><item><title>Embedded Systems Conference Boston 2008</title><link>http://www.cadence.com/Community/blogs/sd/archive/2008/08/21/embedded-systems-conference-boston-2008.aspx</link><pubDate>Thu, 21 Aug 2008 17:26:00 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:10859</guid><dc:creator>jasona</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.cadence.com/Community/blogs/sd/rsscomments.aspx?PostID=10859</wfw:commentRss><comments>http://www.cadence.com/Community/blogs/sd/archive/2008/08/21/embedded-systems-conference-boston-2008.aspx#comments</comments><description>&lt;p&gt;Friday is that last day to get the Early Bird price for the &lt;a target="_blank" href="http://www.cmpegevents.com/web/escb/home"&gt;Embedded Systems Conference&lt;/a&gt; scheduled for October 28-30 at the Hynes Convention Center in Boston. There are a lot of great sessions on embedded software development including a track on Debugging, Verification, and Test that will be anchored by my presentation on CDV for embedded software.&lt;/p&gt;&lt;p&gt;Hope to see you there!&lt;/p&gt;&lt;p&gt;[ESC-463] &lt;b class="subhead"&gt;Coverage Driven Verification for Embedded Software&lt;/b&gt;&lt;br /&gt;&lt;span class="bodytext"&gt;&lt;b&gt;Speaker: &lt;/b&gt;&lt;a href="https://www.cmpevents.com/ESCe08/a.asp?option=G&amp;amp;V=3&amp;amp;id=591826" class="bodytext"&gt;Jason Andrews&lt;/a&gt; (Cadence Design Systems)&lt;/span&gt;&lt;br /&gt;&lt;b&gt;Date/Time: &lt;/b&gt;&lt;a href="https://www.cmpevents.com/ESCe08/a.asp?option=C&amp;amp;V=1&amp;amp;SL=2&amp;amp;GetDaysC=29&amp;amp;SB=4&amp;amp;CPid=224" class="bodytext"&gt;Wednesday&lt;/a&gt; (October 29, 2008) &amp;nbsp; 4:15pm &amp;mdash; 5:45pm&lt;br /&gt;&lt;b&gt;Location (room): &lt;/b&gt;204&lt;br /&gt;&lt;b&gt;Submission Proposal History: &lt;/b&gt;New&lt;br /&gt;&lt;b&gt;Formats: &lt;/b&gt;&lt;a href="https://www.cmpevents.com/ESCe08/a.asp?option=C&amp;amp;V=1&amp;amp;SL=2&amp;amp;scFMTs=1251&amp;amp;SB=4&amp;amp;CPid=224" class="bodytext"&gt;&lt;i&gt;90-Minute &lt;/i&gt;Class&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Key Takeaways&lt;/b&gt;&lt;br /&gt;Attendees will discover how constrained random test generation, checking, and functional coverage provide new confidence as well as expose bugs that are not commonly found using traditional directed testing approaches.&lt;br /&gt;&lt;b&gt;Audience level: &lt;/b&gt;Intermediate&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Prerequisites&lt;/b&gt;&lt;br /&gt;Attendees should be familiar with C programming, methods use to test C code, as well as common test planning and execution methodologies.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Presentation Abstract&lt;/b&gt;&lt;br /&gt;This class uses actual examples of embedded software to describe and discuss the verification technique of coverage driven verification (CDV). The process of planning, regression management, test creation, constrained random generation, checking, and functional coverage for software will be described using examples of embedded software. Topics such as how to define metrics to demonstrate software quality and how to measure such metrics are included. CDV is also compared to other traditional testing techniques.&lt;br /&gt;&lt;b&gt;Track: &lt;/b&gt;&lt;a href="https://www.cmpevents.com/ESCe08/a.asp?option=C&amp;amp;V=1&amp;amp;SL=2&amp;amp;scTKs=2170&amp;amp;SB=4&amp;amp;CPid=224" class="bodytext"&gt;Debugging, Verification &amp;amp; Test&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cadence.com/Community/aggbug.aspx?PostID=10859" width="1" height="1"&gt;</description><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/System+Design+and+Verification/default.aspx">System Design and Verification</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/Coverage+Driven+Verification+for+Embedded+Software/default.aspx">Coverage Driven Verification for Embedded Software</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/Embedded+Systems+Conference+2008/default.aspx">Embedded Systems Conference 2008</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/Jason+Andrews/default.aspx">Jason Andrews</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/debugging/default.aspx">debugging</category><category domain="http://www.cadence.com/Community/blogs/sd/archive/tags/verification/default.aspx">verification</category></item></channel></rss>