<?xml version="1.0" encoding="UTF-8" ?>

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
			<title>SpringSoft RSS</title>
			<link>http://www.springsoft.com/rss</link>
			<description>SpringSoft RSS</description>
			<language>en</language>
			<copyright>SpringSoft 2006</copyright>
			<ttl>120</ttl><item>
	<title>ADP Hierarchy Editor</title>
	<link>http://www.springsoft.com/community/blog/adp-hierarchy-editor</link>
	<description><![CDATA[ <h1><a name="top"></a>ADP Hierarchy Editor</h1>
<ul>
<li><a href="/rss#concept">Concept/Purpose</a></li>
<li><a href="/rss#usage">Usage</a>
<ul>
<li><a href="/rss#create">Create Configuration View</a></li>
<li><a href="/rss#open">Open Configuration View</a></li>
<li><a href="/rss#set">Set Bindings in the Hierarchy Editor</a></li>
<li><a href="/rss#browse">Browse Design Hierarchies in the Hierarcy Editor</a></li>
</ul>
</li>
</ul>
<h2><a name="concept"></a>Concept/Purpose</h2>
<p>The <em>Hierarchy
Editor</em> window has been introduced in the Laker&trade; Advanced Design
Platform (ADP) to allow easy switching among view types for netlists. Users can create the configuration to specify the binding view for each
cell/instance and then review the binding for the whole design on the cell
level, instance level or each level through the entire hierarchy via the <strong>Table
View</strong> or the hierarchy <strong>Tree View</strong>. The binding configuration is
saved as a <em>config</em> view in ADP.</p>
<p><a href="/rss#top"><em style="font-size: x-small;">Back to top</em></a></p>
<h2><a name="usage"></a>Usage</h2>
<p><a name="create"></a><em><strong>Create Configuration View</strong></em></p>
<p>In the <em>ADP</em>
main window, invoke the <strong>File </strong><strong>&gt;</strong><strong> Open</strong> command to open the <em>Open Cell</em> form. Select a mapped library in the <strong>Library</strong> field, and then select a top cell that you would like to create a configuration view for. The <em>New Cell View</em> form opens after you right-click
on the selected cell and then select the <strong>New</strong>
command from the right mouse button command menu. Click the <strong>View Type </strong>selection<strong> </strong>field to see that the <strong>Configuration</strong>
view type is available. Choose this option and click <strong>OK</strong> to generate a configuration view for the selected cell.</p>
<p style="text-align: center;"><img style="display: block; margin-left: auto; margin-right: auto;" src="assets/images/newsletter/march2011/laker1.gif" alt="" width="330" height="251" /><em>Figure 1: Create New configuration View via New Cell View Form</em></p>
<p>Alternatively, you can select the library and cell
in the <em>Open Cell</em> form, and simply enter
the string <strong>config</strong> in the <strong>View</strong> text field and then click <strong>OK</strong> to create the configuration view.</p>
<p><img style="display: block; margin-left: auto; margin-right: auto;" src="assets/images/newsletter/march2011/laker2.gif" alt="" width="442" height="246" /></p>
<p style="text-align: center;"><em>Figure 2: Create New Configuration View via Open Cell Form</em></p>
<p>After creating the configuration view, a <em>New Configuration</em> form will be opened
for you to specify the global binding rule. The library and cell can also be
changed in this form if needed. </p>
<p><img style="display: block; margin-left: auto; margin-right: auto;" src="assets/images/newsletter/march2011/laker3.gif" alt="" width="285" height="263" /></p>
<p style="text-align: center;"><em>Figure 3: Specify Global Binding Rules</em></p>
<p>The pre-defined templates in ADP can be applied for the global
binding rule. Click the <strong>Template</strong> button to open the <em>Use Template</em> form and then select the template in the <strong>Name</strong> selection
field or specify a template file path in the <strong>From File</strong> text field. Currently
ADP provides 6 templates: <em>AMS, eldo,
hspice, smartspice, spectre</em>, and <em>verilog</em>.
</p>
<p><img style="display: block; margin-left: auto; margin-right: auto;" src="assets/images/newsletter/march2011/laker4.gif" alt="" width="295" height="133" /></p>
<p style="text-align: center;"><em>Figure 4: Specify Pre-defined Templates</em></p>
<p style="text-align: center;"><em><br /></em></p>
<p><a href="/rss#top"><em style="font-size: x-small;">Back to top</em></a></p>
<p><em><strong><a name="open"></a>Open Configuration View</strong></em></p>
<p>After a configuration view has been created, you
can see the configuration view (<em>config</em>)
will be available in the <strong>View</strong> field of
the <em>Open Cell </em>form (invoked from the <strong>File </strong><strong>&gt;</strong><strong> Open</strong> command in the <em>ADP</em> main window). </p>
<p><img style="display: block; margin-left: auto; margin-right: auto;" src="assets/images/newsletter/march2011/laker5.gif" alt="" width="455" height="226" /></p>
<p style="text-align: center;"><em>Figure 5: Open Created Configuration View</em></p>
<p>When opening a created configuration view, an <em>Open Configuration or Top Cell</em> dialog window
will be opened to ask which view you would like
to open. Select <strong>yes</strong> on the <strong>Configuration</strong> option to open the <em>Hierarchy Editor </em>window (refer to Figure 13) for browsing the design hierarchically and defining
binding rules. Select <strong>yes</strong> on the <strong>Top Cell</strong> option to open the <em>Schematic Editor</em> window (refer to Figure 7) for showing the design schematics. </p>
<p><img style="display: block; margin-left: auto; margin-right: auto;" src="assets/images/newsletter/march2011/laker6.gif" alt="" width="274" height="144" /></p>
<p style="text-align: center;"><em>Figure 6: Open Configuration or Top Cell Dialog Window</em></p>
<p>If the <em>Schematic
Editor</em> window is opened in this way, a special icon will be shown on the
design hierarchy top to indicate the design has been configured.</p>
<p><img style="display: block; margin-left: auto; margin-right: auto;" src="assets/images/newsletter/march2011/laker7.gif" alt="" width="482" height="218" /></p>
<p style="text-align: center;"><em>Figure 7: Schematic Editor Window</em></p>
<p style="text-align: center;">&nbsp;</p>
<p><a href="/rss#top"><em style="font-size: x-small;">Back to top</em></a></p>
<p><em><strong><a name="set"></a>Set Bindings in the Hierarcy Editor</strong></em></p>
<p>There are three levels of bindings that can be set
in the <em>Hierarchy Editor</em> window to assist in cell view switching:
<strong>&nbsp;</strong></p>
<blockquote>
<ul>
<li><strong>Global
Bindings</strong>: bindings at the global level. The <strong>View List</strong> information of
global bindings will be inherited by cell and instance bindings as the <strong>Inherited
View List</strong>. The <strong>Stop List</strong> information of global bindings will also be referenced by cell binding
and instance binding. When a cell or instance
is bound to a cell view and the bound cell view is in the <strong>Stop List, </strong>the
cell or instance will be treated as a leaf cell and stop expanding to next
hierarchy.<strong>&nbsp;</strong></li>
<li><strong>Cell
Bindings</strong>: bindings at the cell level. Cell bindings are effective on all
instances which reference the same master cell.<strong>&nbsp;</strong><strong>&nbsp;</strong></li>
<li><strong>Instance
Bindings</strong>: bindings at the instance level. This is only effective on the
instance.</li>
</ul>
</blockquote>
<ul>
</ul>
<ul>
</ul>
<p>At any node of a design hierarchy (e.g. an instance or
a cell) the <strong>View Found</strong> information
shows the binding cell view of the instance or the cell. The <strong>View Found</strong> information can be set by
one of the following three methods:</p>
<blockquote><ol>
<li>Directly enter the view name in the <strong>View to Use</strong> field.</li>
<li>Select the view type under the <strong>Set Cell View </strong>command (invoked by right-clicking
in the targeted cell row in the <strong>Cell Bindings</strong> section on the <strong>Table
View </strong>tab) or select the view
type under the <strong>Set Instance View </strong>command
(invoked by right-clicking in the targeted instance row in the <strong>Instance
Bindings</strong> section of the <strong>Table View </strong>or <strong>Tree View</strong> tabs).</li>
<li>The first view found in the search to the <strong>Inherited View List</strong>. </li>
</ol></blockquote>
<p>Except for the<strong>
Stop List</strong> in the <strong>Global Bindings</strong> pane, a stop point can also be set
manually by selecting the <strong>Add Stop Point</strong> command from the right mouse
button command menu, invoked by right-clicking in the targeted cell row in the <strong>Cell
Bindings</strong> section of the <strong>Table View </strong>tab<strong> </strong>or by right-clicking in the targeted instance row in
the <strong>Instance Bindings</strong> section of the <strong>Table View </strong>or <strong>Tree View </strong>tabs. The <strong>Remove Stop Point</strong>
command can remove the stop point added by the <strong>Add Stop Point</strong> command. </p>
<p style="text-align: center;"><img src="assets/images/newsletter/march2011/laker8.gif" alt="" width="465" height="178" /></p>
<p style="text-align: center;"><em>Figure 8: Add Stop Point</em></p>
<p>You will need to re-compute the whole hierarchy by
clicking the <strong>Update</strong> toolbar icon
when modifying global, cell or instance bindings. The <strong>Update Needed</strong> toolbar icon will be highlighted in red automatically
if re-computing is needed.</p>
<p style="text-align: center;"><img src="assets/images/newsletter/march2011/laker9.gif" alt="" width="427" height="131" /></p>
<p style="text-align: center;"><em>Figure 9: Set Global Bindings</em></p>
<p>To set cell
bindings, you can right-click in the row of the <strong>Cell Bindings</strong> field under the <strong>Table
View</strong> tab, and select the desired view type under the <strong>Set Cell View </strong>command. After clicking the <strong>Update Needed</strong> icon, the binding will be set and reflected to the
design throughout the entire hierarchy. You can see the change when clicking
the <strong>Tree View</strong> tab to see the
instance hierarchy.</p>
<p style="text-align: center;"><img src="assets/images/newsletter/march2011/laker10.gif" alt="" width="470" height="247" /></p>
<p style="text-align: center;"><em>Figure 10: Set Cell Bindings</em></p>
<p>To set
instance bindings, you can right-click in the row of the <strong>Instance Bindings</strong> field under the <strong>Table View</strong> tab (if the option <strong>Show
Instance Bindings</strong> option has been turned on), and select the desired view
type under the <strong>Set Instance View </strong>command.
</p>
<p style="text-align: center;"><img src="assets/images/newsletter/march2011/laker11.gif" alt="" width="457" height="248" /></p>
<p style="text-align: center;"><em>Figure 11: Set Instance Bindings in
Table View</em></p>
<p>
Alternatively, you
can select the <strong>Tree View</strong> tab to view
the complete instance hierarchy, and then right-click on the instance node to
set the view type under the <strong>Set Instance
View </strong>command.</p>
<p style="text-align: center;"><img src="assets/images/newsletter/march2011/laker12.gif" alt="" width="476" height="258" /></p>
<p style="text-align: center;"><em>Figure 12: Set Instance Bindings in
Tree View</em></p>
<p>For both
Cell Bindings and Instance Bindings, if the view type string is marked as blue
then it means the view type is set by users in the <strong>View to Use</strong> field; if
the view type is marked as black then it means the view type is inherited from
the<strong> Inherited View List</strong>;<strong> </strong>if
the view type is marked as red then it means the view type cannot be found. The
priority of the binding is: Instance Bindings &gt; Cell Bindings &gt; Global
Bindings.</p>
<p>&nbsp;After all
bindings are set, select the command <strong>Cell </strong><strong>&gt;</strong><strong>
Save</strong> in the <em>Hierarchy Editor</em> window or click the <strong>Save</strong> toolbar icon to save the
configuration. All changes and bindings will be saved to the opened <strong>config</strong> view.</p>
<p>&nbsp;</p>
<p><a href="/rss#top"><em style="font-size: x-small;">Back to top</em></a></p>
<p><em><strong><a name="browse"></a>Browse Design Hierarchies in the Hierarchy Editor</strong></em></p>
<p>The <em>Hierarchy
Editor</em> window will be opened if you open the configuration view. In the <em>Hierarchy Editor </em>window, select the <strong>Table View</strong> tab to view all cells which
have been used in the specified Top Cell throughout the entire hierarchy in a table
view. Each row shows the <strong>Library</strong>
name, <strong>Cell</strong> name, <strong>View Found</strong>, <strong>View to Use</strong>, and the <strong>Inherited
View List</strong>.&nbsp; The <strong>View Found</strong> column shows the view type that has been actually used
in this cell; the <strong>View to Use</strong> column
is for users to enter the view name manually; the <strong>Inherited View List</strong> column shows the view list which was set by
users or inherited from the<strong> View List</strong> of the Global Bindings.</p>
<p>Enable the <strong>Show
Instance Bindings</strong> option at the bottom of the window to expand the window
with an extra table, which lists all instances under the selected cell in the <strong>Cell
Bindings</strong> table. </p>
<p style="text-align: center;"><img src="assets/images/newsletter/march2011/laker13.gif" alt="" width="413" height="376" /></p>
<p style="text-align: center;"><em>Figure 13: Hierarchy Editor Window - Table View</em></p>
<p>Select the <strong>Tree View</strong> tab of the <em>Hierarchy Editor</em> window to browse the
instance based hierarchy of the cell, which shows all instances which have been
used under the top cell and their hierarchies. Click on the <strong>+</strong> icon or <strong>&ndash;</strong> icon on the hierarchy to expand or collapse the node.</p>
<p style="text-align: center;"><img src="assets/images/newsletter/march2011/laker14.gif" alt="" width="451" height="384" /></p>
<p style="text-align: center;"><em>Figure 14: Hierarchy Editor Window -
Tree View</em></p>
<p style="text-align: center;"><em><br /></em></p>
<p><a href="/rss#top"><em style="font-size: x-small;">Back to top</em></a></p> ]]></description>
	<pubDate>Fri, 11 Mar 2011 15:24:17 -0600</pubDate>
	<guid isPermaLink="false">http://www.springsoft.com/community/blog/adp-hierarchy-editor</guid>
	<dc:creator>SpringSoft</dc:creator>
	
</item><item>
	<title>Use Batch Mode Behavior Analysis (BACOM) to Reduce Time to Bring Up Siloti Session</title>
	<link>http://www.springsoft.com/community/blog/siloti-bacom</link>
	<description><![CDATA[ <h2>Use Batch Mode Behavior Analysis (BACOM) to Reduce Time to Bring Up Siloti
Session</h2>
<p>The <a href="products/visibility-automation/siloti">Siloti&trade; Visibility Automation System</a> (part of the <a href="products/novas-verification-enhancement-solutions">Novas Verification Enhancement Solutions</a>) needs
to perform Behavior Analysis on the related design scopes when the <strong>Data Expansion</strong> command is used for the
first time. When this happens, users need to wait for the Behavior Analysis
process to finish. The waiting period makes the usage of the <strong>Data Expansion</strong> command difficult. </p>
<p>Now users can save
the results of Behavior Analysis to the Behavior Database (BDB) using the batch
mode utility <em>bacom</em>. Then, when the
BDB is loaded into the Novas solution, the lag caused by Behavior Analysis is
greatly reduced.</p>
<p>Here is an example of
the recommended flow with the Siloti system:</p>
<blockquote><ol>
<li>Compile
the design to a library.<br /><em>&gt; vericom -f run.f</em></li>
<li>Indicate
<em>bacom</em> should flatten all array
signals.<br /><em>&gt; setenv FLAT_ALL_ARRAYS 1</em></li>
<li>Use
bacom to run Behavior Analysis and generate the BDB.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br /><em>&gt; bacom &ndash;lib work &ndash;top system</em></li>
<li>Perform
Essential Signal Analysis while loading the work.bdb BDB file.<br /><em>&gt; esa &ndash;lib work <strong>&ndash;bdb_load</strong>
work.lib++/work.bdb &ndash;db es</em><br />where the <strong>&ndash;bdb_load</strong> option is for specifying the
BDB. </li>
<li>Run the
simulation and generate the ES Dump (ESD) file es.fsdb.<br /><em>&gt; simv +vcs+lic+wait <strong>+fsdb+esdb</strong>="es" </em></li>
<li>Invoke
the Siloti system while loading the ESD file, and the BDB file.<br /><em>&gt; siloti -top system -lib work &ndash;esAuto -ssf es.fsdb -bdb_load work.lib++/work.bdb</em></li>
</ol></blockquote>
<p class="1" style="padding-left: 30px;">where the <strong>&ndash;esAuto</strong> option can enable automatic Behavior Analysis and/or
Data Expansion according to the Essential Signal Tag in the FSDB. </p>
<p>Now
with the BDB loaded from the command line, the overhead of <em>Behavior Analysis</em> no longer exists. As a result, you can debug
smoothly with full visibility.</p> ]]></description>
	<pubDate>Fri, 11 Mar 2011 15:23:49 -0600</pubDate>
	<guid isPermaLink="false">http://www.springsoft.com/community/blog/siloti-bacom</guid>
	<dc:creator>SpringSoft</dc:creator>
	
</item><item>
	<title>Fault Dropping Improves Certitude™ Efficiency &amp; Quality of Results</title>
	<link>http://www.springsoft.com/community/blog/certitude-fault-dropping</link>
	<description><![CDATA[ <h2>Fault Dropping Improves Certitude&trade; Efficiency &amp; Quality of Results</h2>
<p>One important goal of the Certitude development team is to
continually improve the quality of the results presented to the user for
analysis.&nbsp; By quality, we mean relevance
to &ldquo;big problems&rdquo; in the user&rsquo;s verification environment and uniqueness &ndash; the
likelihood that any given non-detected (ND) fault from a particular iteration
of the tool points to a problem that is different than the other ND
faults.&nbsp; A related goal is efficiency &ndash; the
quick isolation of a few important problems that should be investigated and
fixed before continuing.&nbsp; One of the
processes that greatly improves both quality of results and efficiency is fault
dropping.</p>
<p><strong>Concept &amp; Benefit<br />
</strong>The motivation for fault dropping is the idea that if a particular fault
cannot be detected (i.e., is ND), then many related faults will not be detected
for the same reason (e.g., missing or weak checker in the verification
environment).&nbsp; Thus, if we can find a
good definition for &ldquo;related faults&rdquo;, then we can present the user with a
single ND that, if addressed, is likely to fix many other potential ND
faults.&nbsp; The benefits to the user are
significantly reduced analysis and debug overhead and overall faster
qualification of the verification environment.&nbsp;
For example, instead of sorting through and investigating 20 ND faults
that together point to the same five checker weaknesses in the user&rsquo;s
verification environment the user is presented with one ND for each of the five
unique weaknesses.&nbsp; </p>
<p>
<strong>Finding Related Faults:&nbsp; Logic Cones<br />
</strong>One
reasonable way to identify related faults is to group faults based on their
proximity from a logical perspective.&nbsp;
More to the point, faults in the combinational cloud of logic that
impact (feed into the data input of) the same register or set of registers can
be said in some ways to be in &ldquo;close proximity&rdquo; to one another and therefore
related.&nbsp; Of course, this is not a
perfect measure, but in practice it turns out to be highly relevant, at least
from a qualification standpoint.&nbsp; In
Certitude, the cone of logic is first calculated forward from the fault to the
impacted registers, and then back through the logic to the previous rank of
driving registers.&nbsp; Figure 1 illustrates
this concept.</p>
<p style="text-align: center;"><img src="assets/images/newsletter/march2011/certitude.gif" alt="" width="253" height="178" /><em><br />Figure 1:&nbsp; Logic cones in Certitude</em></p>
<p><strong>Applying Fault
Dropping for Higher Quality Results &amp; More Efficient Operation</strong><br />
In Certitude, the task of grouping faults by cone falls to the Optimizer, a
process that runs during the model phase and performs a static analysis of the
design.&nbsp; The Optimizer tags faults that
are in the same logic cone.&nbsp; Later,
during the detect phase, when Certitude finds an ND fault, it uses the
information from the Optimizer to drop the related faults.&nbsp; In this case, &ldquo;drop&rdquo; simply means &ldquo;defer the
qualification of these faults until later&rdquo;, with &ldquo;later&rdquo; being after the user
fixes the verification environment and qualifies the initial ND.&nbsp; After the original ND is qualified and
detected (D), Certitude will attempt the qualify the previously-dropped
faults.&nbsp; In the typical case, many of
these faults will now be found to be D due to the same fix.&nbsp; Using this technique, Certitude enables
finding and fixing important problems quickly with a minimum of simulation and
analysis time.</p> ]]></description>
	<pubDate>Fri, 11 Mar 2011 15:23:16 -0600</pubDate>
	<guid isPermaLink="false">http://www.springsoft.com/community/blog/certitude-fault-dropping</guid>
	<dc:creator>SpringSoft</dc:creator>
	
</item><item>
	<title>Visualize Power Intent in Schematic View</title>
	<link>http://www.springsoft.com/community/blog/power-schematic-view</link>
	<description><![CDATA[ <h2><strong>Visualize Power Intent in Schematic View</strong></h2>
<p>The <em>Power Map</em> window can be used to
visualize power intent in a schematic view. Refer to the following figure for
an example of the window.</p>
<p><img style="display: block; margin-left: auto; margin-right: auto;" src="assets/images/newsletter/feb2011/novas1.gif" alt="" width="412" height="298" /></p>
<p>The schematic view
shows the structure of the loaded UPF/CPF power design where the&nbsp;<img style="vertical-align: middle;" src="assets/images/newsletter/feb2011/novas-isolation-icon.gif" alt="" width="35" height="28" /> icon represents an <strong>Isolation</strong> command, the&nbsp;<img style="vertical-align: middle;" src="assets/images/newsletter/feb2011/novas-level-shifter-icon.gif" alt="" width="35" height="28" /> icon represents a <strong>Level-shifter</strong> command, and the&nbsp;<img style="vertical-align: middle;" src="assets/images/newsletter/feb2011/novas-power-switch-icon.gif" alt="" width="34" height="28" /> icon represents a power switch cell.</p>
<p>To invoke the view,
you need to set the environment variable NOVAS_POWER_BETA to 1 as the feature
is currently considered <span style="text-decoration: underline;">beta</span>. For example:</p>
<p style="color: #ff0000; padding-left: 30px;">&gt;
setenv NOVAS_POWER_BETA 1</p>
<p>Then select the <strong>Tools </strong><strong>&gt;</strong><strong> Power Map</strong> command (from <em>nSchema</em> or the <em>Power Manager</em> window) to open the <em>Power Map</em> window (UPF/CPF should be
imported first). </p>
<p>You can use the
window to understand the structure of the power design. Drag any isolation, level-shifter,
or switch cell icons (<img style="vertical-align: middle;" src="assets/images/newsletter/feb2011/novas-isolation-icon.gif" alt="" width="35" height="28" />, <img style="vertical-align: middle;" src="assets/images/newsletter/feb2011/novas-level-shifter-icon.gif" alt="" width="35" height="28" /> , or <img style="vertical-align: middle;" src="assets/images/newsletter/feb2011/novas-power-switch-icon.gif" alt="" width="34" height="28" />) to the <em>Power Manager</em> window
to jump to the definition of the related rules. Similarly, drag any power
domain from the <em>Power Map</em> window to
the <em>Power Manager</em> window to jump to
the power domain&rsquo;s definition.</p>
<p>To check the
related signals of an isolation or level-shifter rule, select the related icon,
then select the <strong>Schematic </strong><strong>&gt;</strong><strong>
Impacted Power Signals </strong>command<strong> </strong>to bring up a form summarizing the
impacted signals of the selected rule. See the
following figure for an example.</p>
<p align="left"><img style="display: block; margin-left: auto; margin-right: auto;" src="assets/images/newsletter/feb2011/novas2.gif" alt="" width="424" height="322" /></p>
<p>The <em>Power Map</em> window can validate whether
all signals between power domains are guarded with isolation rules if a
possibility exists that the domain a signal is coming from (&lsquo;from&rsquo; domain) is
off while the domain the signal is going to (&lsquo;to&rsquo; domain) is not. If this is
the case, unexpected results could propagate through such signals from the &lsquo;from&rsquo;
domain to the &lsquo;to&rsquo; domain. Similarly, signals are suggested to be guarded with
level-shifter rules if the signals&rsquo; &lsquo;from&rsquo; and &lsquo;to&rsquo; domains are both &lsquo;on&rsquo;/&lsquo;standby&rsquo;
states but the domains&rsquo; voltages are different. </p>
<p>The checking is
performed when the <em>Power Map</em> window
is first invoked or when the related checking options (<strong>View </strong><strong>&gt;</strong><strong>
Check non-cover Signals </strong><strong>&gt;</strong><strong>
Check Isolation Signals, View </strong><strong>&gt;</strong><strong>
Check non-cover Signals </strong><strong>&gt;</strong><strong> Check
Level-shifter Signals</strong>; both
default to on) are turned on. The results will be shown as non-covered nets (shown
by dotted lines). A non-covered net contains all non-covered signals on the
path from domain X to domain Y. The red dotted lines represent the non-covered
isolation nets (it is suggested to apply isolation rules); the green dotted
lines represent the non-covered level-shifter nets (it is suggested to apply
level-shifter rules). Refer to the following. <img style="display: block; margin-left: auto; margin-right: auto;" src="assets/images/newsletter/feb2011/novas3.gif" alt="" width="297" height="267" /></p>
<p align="left"><strong>&nbsp;</strong><strong>&nbsp;</strong></p> ]]></description>
	<pubDate>Tue, 15 Feb 2011 17:45:23 -0600</pubDate>
	<guid isPermaLink="false">http://www.springsoft.com/community/blog/power-schematic-view</guid>
	<dc:creator>SpringSoft</dc:creator>
	
</item><item>
	<title>Digital Implementation in the Laker Custom Environment</title>
	<link>http://www.springsoft.com/community/blog/digital-implementation-laker</link>
	<description><![CDATA[ <h2><strong>Digital Implementation in the Laker Custom Environment </strong></h2>
<p>Chances are, if you are the
one doing the digital blocks in a &ldquo;big A , little D&rdquo; (primarily Analog) environment,
you are either handcrafting the digital design from a schematic, or &ndash; for
larger blocks &ndash; sending it out to a megabucks digital place and route tool, and
then modifying it afterwards. Either way, you know the pitfalls of these
approaches first hand &ndash; especially at advanced nodes. </p>
<p><em><span style="text-decoration: underline;"><strong>But what
if you could get both environments in
one system?</strong> (Hint: you can.)</span></em></p>
<p>In 2010 SpringSoft launched
two new controllable automation engines &ndash; the Laker Custom Row Placer and the
Laker Custom Digital Router &ndash; to enable a faster, more efficient custom digital
design flow.&nbsp; Both tools run completely
within the Laker&trade; Custom Layout Automation System.&nbsp; If you can imagine a digital place and route
tool with all of the ability of a high-end layout editor built in, then you get
the idea. </p>
<p><strong>How does that work?</strong> Very well, actually!
The Laker Custom Digital Place and Route tools have been very well received and
are in daily production use for designs down to 28nm at a number of major
semiconductor companies.&nbsp; The flexibility
to automatically or incrementally build up a high-performance custom digital
block using standard cells and to do as much or as little of the job as you
want to by hand is the perfect combination for many of you.</p>
<p><strong>Let&rsquo;s begin at the
beginning:</strong>
Regardless of whether you are working with a SPICE (transistor-level) or
digital (gate-level) netlist, the Laker system can auto-generate a
corresponding schematic for you in the Laker schematic-driven layout (SDL)
environment. The schematic and hierarchy views appear
in the Laker layout window as in analog design. </p>
<p>Prior
to placing any cells, you can use the Custom Row Placer&rsquo;s floorplanning
capabilities to query the design data and estimate the area needed to create a
right-sized block, or you can simply draw any orthogonal-shaped area (or areas)
in which to locate the digital cells. The resulting block may be queried for
the utilization rate to assure successful placement and routing before you
start. In today&rsquo;s mixed-signal designs where dozens of small digital components
may be mixed into an analog block, the convenience of <em>in situ </em>digital block generation is quite attractive. However, when
the exact shape of the digital block is not as critical, you can also specify
any number of variables from utilization rate to height or width dimensions and
let the placer automatically define the actual block size. It doesn&rsquo;t get any
easier than that!</p>
<p>Next, you can use automated Power and Ground (PG)
routing to create the PG rails around the periphery of the block and again, you
have the option to tweak them by hand.</p>
<p>Because Laker knows the desired connectivity
from the schematic, it can automatically generate the pins associated with the
digital block in the row placement area. Of course, in this custom environment
you have the freedom to just move them wherever you want them if you so choose.
</p>
<p><strong>Placing:&nbsp; </strong>With the placement area defined, you could just
let the placer place the entire design. But that&rsquo;s probably not as &ldquo;custom&rdquo; as
you want, so you have the option of using Laker&rsquo;s SDL capabilities to drag
critical cells from the schematic and hand-place them into the digital block. When
a cell is hand-placed in this manner, you will have flight lines to the pins
and previously placed cells to help guide your placement. In addition, when
placing the cell, it will automatically snap to a legal placement in the
relevant row. Even better, as a cell is dragged up or down across rows, it
automatically flips back and forth to match that row's power and ground
signals. </p>
<p>After
you are done placing the critical cells, you can select the remaining cells in
the schematic and instruct the Laker Custom Row Placer to automatically place
them, which it will do following all design rules and constraints while
minimizing wire length. The Custom Row Placer works with the Custom Digital
Router to minimize congestion and assure a routable and DRC-clean placement. It
will perform incremental selection and placement, as well as internal
iterations to pack the placement area. </p>
<p align="center"><img src="assets/images/newsletter/feb2011/laker1.gif" alt="" width="339" height="242" /></p>
<p align="center"><em>The Laker Custom Digital Row Placer</em></p>
<p><strong>But this is only the
start:</strong> You
can use all of the Laker layout system&rsquo;s normal editing functions to move
cells, or hand-route critical nets, for example. Or, if you subsequently import
a modified netlist for a digital block, the Laker system&rsquo;s ECO capabilities
will automatically identify any changes and assist in placing only those
portions of the design. Similarly, if you place a new cell or cells into a
previously placed area, the system can automatically legalize these cells and
shift surrounding cells around to make room.</p>
<p>While
performing its tasks, the Custom Row Placer is constantly aware of routing
issues. If you request a congestion map, the Custom Digital
Router will determine which areas will be difficult to route and highlight those areas.
This gives you the opportunity to use the Laker layout capabilities to move
things around, create blockages and/or routing channels, and to re-check for
potential congestion. This is the kind of interactive, controllable automation
needed for high-productivity custom digital layout.</p>
<p style="text-align: center;"><img style="display: block; margin-left: auto; margin-right: auto;" src="assets/images/newsletter/feb2011/laker2.gif" alt="" width="290" height="295" /><em>Congestion maps check routability</em></p>
<p><strong>When the placement is done: </strong>The Custom Digital
Router performs routing directly in the Laker database &ndash; or in OpenAccess &ndash; and
is fully supported with LEF/DEF import and export capabilities. It is a hybrid
router that can employ both grid- and shape-based routing technologies. The
grid-based router is used for initial routing to provide better performance
(speed), and then the shape-based router takes over to address off-track pin
connections and any remaining design rule violations. The router employs a full
suite of DRC avoidance utilities &ndash; such as support for advanced end-of-line
spacing, min-edge/min-area, and enclosure edge rules &ndash; and offers post-route
yield optimization to remove small notches and jogs and add redundant vias
where possible. Routing is DRC clean down to 28nm.</p>
<p align="center"><img style="display: block; margin-left: auto; margin-right: auto;" src="assets/images/newsletter/feb2011/laker3.gif" alt="" width="381" height="312" /><em>The Laker Custom Digital Router</em></p>
<p><strong>What&rsquo;s custom about this router? </strong>With placement
complete, you can tell the router to route the entire design automatically, but
a custom digital block typically requires some amount of customization or it
wouldn&rsquo;t be custom, right? Because the Custom Digital Router is incremental and
interactive, you can use the various built-in routers in the Laker Layout
system to hand-route critical nets and then complete all or some of the remaining
routing automatically using the Custom Digital Router. At any point in this
process, you can run a global route and review the congestion map to ensure a
successful completion.</p>
<p>The Custom Digital Router also takes design changes
in its stride. Before now, changes to the digital design made after the design was
routed often required a complete rip-up and re-route, causing all of the
painstakingly hand-drawn routes to be lost. Our router will recognize both
floating and added connections and make the necessary corrections without
disturbing existing connected routes. Throughout the process, the seamless
integration of built-in Laker Layout features and Custom Digital Router
features work together to create a far more efficient flow.</p>
<p><strong>Summary: &nbsp;</strong>The Laker Custom Row Placer and Laker Custom Digital Router work in
conjunction with each other to minimize wire lengths and assure routable
placements. These new custom place and routing technologies allow you to work
in a single comprehensive design environment for maximum productivity and
achieve high quality of results (QoR) in a fraction of the time it would take
to place and route the digital blocks by hand. For the first time, there truly
is a "mixed&rdquo; design flow for mixed-signal design that can improve quality,
increase productivity, and accelerate time to market and time to profit.</p> ]]></description>
	<pubDate>Tue, 15 Feb 2011 17:42:27 -0600</pubDate>
	<guid isPermaLink="false">http://www.springsoft.com/community/blog/digital-implementation-laker</guid>
	<dc:creator>SpringSoft</dc:creator>
	
</item><item>
	<title>Conditional Alias for Viewing Waveforms</title>
	<link>http://www.springsoft.com/community/blog/conditional-alias-waveform</link>
	<description><![CDATA[ <h2><strong>Conditional Alias for
Viewing Waveforms</strong></h2>
<p>The waveform<em> </em>view (<em>nWave</em> window) in the Verdi&trade; Automated Debug System provides the
capability to attach an alias to the waveform value which gives a better way to
visualize the waveform. Now the capability has been further improved for adding
conditions, so that the tool can automatically determine which alias table
(when there are multiple tables) should be applied based on user-defined
conditions. The conditions can be created by one-bit signals or logical
expressions which are combined by several signals. The following steps demonstrate how
to create a condition for applying multiple alias tables: </p>
<p>1. In the <em>nWave</em> window, invoke
the <strong>Waveform </strong><strong>&gt;</strong><strong> Signal Value Radix </strong><strong>&gt;</strong><strong> Edit Alias</strong> command to open the <em>Alias Editor </em>form<em>. </em>On the <strong>Alias</strong> tab of the <em>Alias Editor </em>form, create several alias
tables and specify an alias name for each table.</p>
<p><img style="display: block; margin-left: auto; margin-right: auto;" src="assets/images/newsletter/january2011/novas2-1.gif" alt="" width="348" height="286" /></p>
<p>2. Click the <strong>Conditional
Alias/Slice</strong> tab of the <em>Alias Editor</em>
form. Create a <em>Condition Table</em> and
then specify the condition in the <strong>Condition</strong>
column to identify which alias table should be applied under that condition in
the <strong>Alias/Slice</strong> column. </p>
<p><img style="display: block; margin-left: auto; margin-right: auto;" src="assets/images/newsletter/january2011/novas2-2.gif" alt="" width="350" height="287" /></p>
<p>3. The condition can be built by dragging and dropping one-bit signals
from the <em>nWave</em> window &nbsp;or by logical expressions which combine
several signals. Clicking the <strong>Logical
Expression</strong> button of the <em>Alias Editor</em>
form will open the <em>Logical Operation </em>form
for users to create logical expressions. Click the <strong>Add to Wave</strong> button in the <em>Logical
Expressions</em> form to add to the waveform view after the logical expression is
created.</p>
<p><img style="display: block; margin-left: auto; margin-right: auto;" src="assets/images/newsletter/january2011/novas2-3.gif" alt="" width="324" height="197" /></p>
<p class="List1">4. The created logical
expression can be added into the <em>Alias
Editor</em> form by dragging and dropping from the <em>nWave</em> window to the <strong>Conditions</strong>
column. After all conditions are specified, click the <strong>Apply</strong> button in the <em>Alias
Editor</em> form and the alias table will be applied to the waveform view<em> </em>based on the given condition.</p>
<p><img style="display: block; margin-left: auto; margin-right: auto;" src="assets/images/newsletter/january2011/novas2-4.gif" alt="" width="450" height="154" /></p> ]]></description>
	<pubDate>Wed, 02 Feb 2011 11:47:09 -0600</pubDate>
	<guid isPermaLink="false">http://www.springsoft.com/community/blog/conditional-alias-waveform</guid>
	<dc:creator>SpringSoft</dc:creator>
	
</item><item>
	<title>The New Laker ADP Simulation Console </title>
	<link>http://www.springsoft.com/community/blog/laker-adp-console</link>
	<description><![CDATA[ <h2>The New Laker ADP Simulation Console</h2>
<p>The Laker&trade; Advanced Design Platform (ADP) unites the
full-featured Laker schematic editor, open Simulation Console and LakerWave&trade;
waveform analyzer to create a complete circuit design environment. It works
seamlessly with SpringSoft&rsquo;s award-winning Laker Custom IC Layout system and
all of the popular analog simulators to provide a complete solution for the
rapid design of your analog, mixed-signal, memory, and custom digital IC
designs.</p>
<p>In the 2010.11 release of Laker ADP, the Simulation Console
which enables the user to set up and execute most major simulation tools from
within the Laker ADP environment has been completely revamped. The Simulation
Console (invoked by selecting the <em>Tools </em>&rarr; <em>Simulation</em> command in the Schematic Editor window or clicking the
Simulation toolbar icon in the Schematic Editor window) has been redesigned to
enable better third-party tool integration, and the GUI and use models were
restructured and improved to add features that further enhance the Simulation
Console&rsquo;s ease-of-use.</p>
<p>The Simulation Console window consists of the Simulator
Setting and Simulation Tree Browser<strong> </strong>panes.</p>
<p style="text-align: center;"><img style="display: block; margin-left: auto; margin-right: auto;" src="assets/images/newsletter/january2011/laker1-1.gif" alt="" width="467" height="196" /><em>Simulation Console Window</em></p>
<p>
The new Simulation Tree Browser was added for convenient manipulation of the <em>Environment Setting</em>; <em>Model</em> <em>and Include Files</em>; <em>Temperature</em>;
<em>Design Variables</em>; <em>Analyses; Options; Output/Probing</em>; and <em>Others</em> statements.</p>
<p style="text-align: center;"><img style="display: block; margin-left: auto; margin-right: auto;" src="assets/images/newsletter/january2011/laker1-2.gif" alt="" width="198" height="202" /><em>Simulation Tree Browser Pane</em></p>
<p>Key highlights of the new Simulation Console include:</p>
<ul>
<li>&nbsp;
<ul>
<li>New improved QT-based GUI</li>
<li>New Simulation Tree Browser</li>
<li>Support for Spectre&reg; RF analyses such as PSS,
PAC, PNoise, Noise, STB, XF, and SP</li>
<li>A new pick-up operation used to select an
instance, net, or port from the Schematic Editor window and then add the
selected instance, net, or port to the Output/Probing table. Objects that will
be selectable will vary depending on which analysis types and values are
selected.</li>
<li>The
ability to extract design variables from the open schematic view when the <em>Extract
from Design</em> option is turned on</li>
<li>
The Simulation View: Now simulation settings can be saved or opened as a
simulation view (Laker ADP now supports four new views including <em>simulation, Verilog, Veriloga,</em> and <em>SPICE</em> views). The Simulation Console
will be invoked when simulation view is selected in the <em>Open Cell</em> GUI.</li>
</ul>
</li>
</ul>
<p style="text-align: center;"><img style="display: block; margin-left: auto; margin-right: auto;" src="assets/images/newsletter/january2011/laker1-3.gif" alt="" width="242" height="193" /><em>Open Cell GUI Supports 4 New Views</em></p>
<p>The simulation settlings used with the previous Simulation
Console cannot be used in the new Simulation Console because the storage model
had to be changed. In order to reuse settings from previous revisions of Laker
ADP, it is necessary to save the simulation settings again in the new
Simulation Console. However, the original Simulation Console can still be
invoked by designating a keyword <em>InvokeLegacySim</em>
in the [<em>SimCon</em>] section of the <em>laker.rc</em> resource file. For example:</p>
<p style="color: #ff0000;" align="center">[SimCon]
InvokingLegacySim = TRUE</p>
<p>For more details, please refer to the Simulation Console
chapter of the Command Reference Manual. We think that you will find the new
Laker ADP Simulation Console more productive and easier to use than ever.</p>
<p style="font-size: xx-small; font-style: italic;">Laker and LakerWave are trademarks of SpringSoft, Inc. &nbsp;All other trademarks or registered trademarks
are the property of their respective owners.</p> ]]></description>
	<pubDate>Wed, 02 Feb 2011 11:45:47 -0600</pubDate>
	<guid isPermaLink="false">http://www.springsoft.com/community/blog/laker-adp-console</guid>
	<dc:creator>SpringSoft</dc:creator>
	
</item><item>
	<title>Batch Mode Utility to Extract Clock Trees: nClockTree</title>
	<link>http://www.springsoft.com/community/blog/batch-mode-nclock-tree</link>
	<description><![CDATA[ <h2><strong>Batch Mode
Utility to Extract Clock Trees: nClockTree</strong></h2>
<p>The Verdi&trade; Automated Debug System
with the nAnalyzer&trade; Design Analysis module
provides full functions for extracting clock trees and qualifying CTS (Clock
Tree Synthesis) settings. However, the clock tree extraction has to be processed
in the Verdi system with the nAnalyzer module so the debug time may be occupied
especially if the gate level netlist is vast. </p>
<p>To reduce the effort of extracting clock trees every time (especially
when there aren&rsquo;t any changes to the design), the Verdi system provides a batch
mode utility <em>nClockTree</em> to do the
clock tree extraction in batch mode and save the results in a loadable file.
With this one-time effort, users can load the extraction results and all
settings into the Verdi system with nAnalyzer for further CTS qualification. </p>
<p>The following steps demonstrate how to extract clock trees, save the
extracted results as a loadable database (or an Astro format ASCII report), and
then load the loadable database into the Verdi system for further
qualifications:</p>
<p class="List1">1.&nbsp;&nbsp;&nbsp;&nbsp; Execute the <em>nClockTree</em> utility to extract clock
trees:</p>
<p style="padding-left: 60px;">Use the utility <em>nClockTree</em>
under <em>&lt;Novas_install&gt;/bin</em> to
read the design and generate the clock tree extraction results. SDC and CTS
settings can also be imported and converted to nAnalyzer settings, just like
importing these settings in the Verdi system with the nAnalyzer module.</p>
<p style="padding-left: 90px;">a. To extract clock trees and save the results as a loadable database execute the following example:
</p>
<p style="color: #ff0000; padding-left: 120px;">% nClockTree -f run.f -sdcFile sdc_system.sdc -outputFormat Database
-output CTS.db</p>
<p style="padding-left: 90px;">b. To extract clock trees and save the results as
an Astro format file execute the following example:</p>
<p style="color: #ff0000; padding-left: 120px;">% nClockTree -f
run.f -sdcFile sdc_system.sdc -outputFormat Astro -output CTS.astro</p>
<p class="List1">2.&nbsp;&nbsp;&nbsp;&nbsp; Load the
extraction results into the Verdi system for further qualification:</p>
<p style="padding-left: 60px;">The extraction results and settings can be loaded
into the Verdi system through the <em>Save As</em>
form. The form can be invoked in one of three ways:</p>
<p style="padding-left: 90px;">a.&nbsp;&nbsp;&nbsp;&nbsp; In <em>nTrace</em>, invoke the <strong>File </strong><strong>&gt;</strong><strong> Load Clock
Tree Data Base </strong>command.<br />b.&nbsp;&nbsp;&nbsp; In <em>nSchema</em>, invoke the <strong>File </strong><strong>&gt;</strong><strong> Load Clock
Tree Data Base</strong> command.<br />c.&nbsp;&nbsp;&nbsp;&nbsp; In the <em>Clock Tree Browser</em>, invoke the <strong>File </strong><strong>&gt;</strong><strong> Load Clock Tree Data Base </strong>command.</p>
<p class="List1">3.&nbsp;&nbsp;&nbsp;&nbsp; Save the clock
tree extraction and settings to a loadable database from within the Verdi
system:</p>
<p style="padding-left: 60px;">
You may
make modifications or add more settings for the clock trees after qualifying
the extracted clock tree, and then save all of these modifications and settings
into the database again. In the <em>Clock
Tree Browser </em>window, invoke the <strong>File </strong><strong>&gt; Save Clock Tree &gt; Save Clock Tree
Database</strong> command
and then specify a file name for saving another ASCII file. A <strong>&lt;filename&gt;.log</strong> will be
automatically generated and all CTS settings are stored in this file. The
command <strong>File </strong><strong>&gt; Save Clock Tree &gt; Save as Astro Format </strong>is also available in the <em>Clock Tree Browser</em> window for saving the clock tree as an <em>Astro</em> format in the ASCII file.</p> ]]></description>
	<pubDate>Wed, 02 Feb 2011 11:41:49 -0600</pubDate>
	<guid isPermaLink="false">http://www.springsoft.com/community/blog/batch-mode-nclock-tree</guid>
	<dc:creator>SpringSoft</dc:creator>
	
</item><item>
	<title>Certitude™ Non-Detected Faults:  Results Analysis Considerations</title>
	<link>http://www.springsoft.com/community/blog/certitude-results-analysis</link>
	<description><![CDATA[ <h2>Certitude&trade; Non-Detected Faults: Results Analysis Considerations</h2>
<p>If you are a Certitude user, you know that non-detected (ND) faults are the typical starting points for the results analysis process.  An ND fault indicates that Certitude has propagated the effect (incorrect operation) of an injected fault to the boundary (outputs) of the design, but the verification environment (VE) does not detect it.  This typically indicates some deficiency in the VE's checking infrastructure &ndash; perhaps an incomplete or altogether missing checker that can let RTL bugs escape the verification process undetected.  This article considers two important issues to consider when investigating an ND fault:  The "size" of the design change implied by the fault and the origin of the problem that led to the VE weakness.</p>
<p><em>Size of Implied Design Change</em><br />It's possible for any given ND fault to seem unimportant on first inspection.  The deviation of the outputs from the golden reference results may be small or it may be assumed that the related functionality will be tested by others at a later stage of the verification process.  However, before relegating an ND to the "don't care" bucket, it's important to consider the magnitude of the design change implied by the related fault and whether lack of sensitivity to the change is really acceptable at the current stage.  Consider an output stuck-at fault that disconnects and ties a given output to a constant value.  The implication is that all of the logic that uniquely drives this output is removed from the design during verification.  If the resulting ND fault is a "don't care", then why is this logic present?  Can it really be removed from the production design with no impact on functionality and proper operation?  Similar situations exist for reset condition "true" and synchronous control flow faults. The former causes an individual process in the design to be "stuck" in reset mode, essentially removing it during verification.  The latter forces the control flow of an if/else block to always take the "true" or "false" branch, effectively removing the other branch.  If Certitude finds the related fault to be ND, then one must ask whether it's reasonable to fabricate and ship the design with the related logic removed.  If the answer to this question is "no", then there is most likely something to diagnose and fix in the VE checking infrastructure.</p>
<p><em>Origin of the Problem</em><br />Diagnosing and fixing the VE weakness &ndash; adding a missing checker, making an existing checker more robust, fixing the VE scripting infrastructure to be more sensitive to testcases that should be flagged as failing, etc &ndash; is critical.  Only when the fix is made and checked into the regression environment can the VE be made stronger and able to catch more RTL bugs.  At least as important, however, is taking a step back to consider why the problem was present in the first place.  Was the design specification unclear, causing the author of the test plan to miss or incorrectly implement a critical check? Was the testplan simply somehow incomplete, even though the design specification clearly laid out all functionality that needed testing?  Was there a process problem &ndash; for example, a checker that was turned off at some point to enable further testing while a design issue was resolved but was never re-enabled?  Fixing a checker will resolve the problem in the current VE, but identifying and fixing the original cause of the problem &ndash;through additional clarity in design specifications, enhanced review of testplans, or implementation of checks on the process itself &ndash; will maximize the benefit of the functional qualification process and improve the quality of future designs.</p> ]]></description>
	<pubDate>Tue, 16 Nov 2010 17:09:00 -0600</pubDate>
	<guid isPermaLink="false">http://www.springsoft.com/community/blog/certitude-results-analysis</guid>
	<dc:creator>SpringSoft</dc:creator>
	
</item><item>
	<title>Power-aware Debug for Gate Level Designs</title>
	<link>http://www.springsoft.com/community/blog/power-gate-level-design</link>
	<description><![CDATA[ <h2>Power-aware Debug for Gate Level Designs</h2>
<p>When the RTL design is converted to a gate-level design, part of the power intent defined in CPF(CommonPower Format )/UPF(UPF - the IEEE 1801-2009 standard) power files is 'synthesized' either by a synthesis tool or by the designers manually. For example, the isolation, level-shifter and retention rules are implemented by inserting isolation, level-shifters and retention cells during the conversion from RTL to gate level design. Along with the conversion, the content of the CPF/UPF files should be refined by the tool or designers respectively to reflect the changes. For the previously mentioned example, the related isolation/level-shifters/retention power rules should be removed from theCPF/UPF files since they are replaced by the isolation/level-shifters/retention cells respectively (refer to the following figure).</p>
<p><img style="display: block; margin-left: auto; margin-right: auto;" src="assets/images/newsletter/November2010/Novas1.gif" alt="" width="257" height="278" /></p>
<p>The refined CPF/UPF(CPF'/UPF') files and the gate level design needs to be verified to confirm equal functionality to the original CPF/UPF files plus the RTL design. The Verdi&trade; Automated Debug system provides exactly the same power-aware debug capability as in the RTL stage so that users can debug inconsistencies (between RTL and gate level) in the same Verdi environment.</p>
<p>Additionally, the Verdi system can recognize and highlight power cells which are unique to the gate level. The Verdi system can import the power cell information from the Synopsys Liberty files, UPF files (power cell commands) and the Library CPF commands. The power cells can be highlighted which help users to compare the inserted power cells and its related logic with the mapping part in the RTL design. For example, users can inspect whether the location and direction of isolation, switch, or level shifter cells is consistent with the related power rules defined in the RTL stage. Or, users can check whether the inserted retention cells are placed in the right scope and the connection is correct (equivalent to the related rule).</p>
<p>Refer to the following for an example of the highlight and annotation of an isolation cell in the nTrace window.</p>
<p><img style="display: block; margin-left: auto; margin-right: auto;" src="assets/images/newsletter/November2010/Novas2.gif" alt="" /></p> ]]></description>
	<pubDate>Tue, 16 Nov 2010 16:40:54 -0600</pubDate>
	<guid isPermaLink="false">http://www.springsoft.com/community/blog/power-gate-level-design</guid>
	<dc:creator>SpringSoft</dc:creator>
	
</item><item>
	<title>Using Laker-T1 Test Chip Development Platform for DRC Validation</title>
	<link>http://www.springsoft.com/community/blog/laker-t1-drc-validation</link>
	<description><![CDATA[ <h2>Using Laker-T1 Test Chip Development Platform for DRC Validation</h2>
<p>Many Laker customers are familiar with the Laker-T1 TCD (Test Chip Development) platform. After all, it has been used by many of the world's top foundries and fabs for automated test line and test chip development. The simple GUI interfaces in Laker-T1 allow process development engineers with little or no layout experience to develop comprehensive parameterized test suites.</p>
<p>The Parameterized Test Structures built using the Laker T1 GUI are process-independent and can be re-used over and over again. The benefits of this methodology include the ability to create a far more comprehensive suite of tests in much less time, thereby gathering a more statistically significant sample. Additional time savings come from automated documentation generation because documentation typically lags far behind the rest of the process development cycle.</p>
<p style="text-align: center;"><em><img src="assets/images/newsletter/November2010/Laker1.gif" alt="" width="420" height="325" /></em></p>
<p style="text-align: center;"><em>Figure 1. Automated gate measurement documentation</em></p>
<p>So it was little surprise when customers began to use LakerT1 to generate DRC validation test structures for advanced process nodes.  Today, some of the world's top semiconductor companies are among the users of Laker-T1 for DRC validation.</p>
<p><strong>DRC validation issues</strong></p>
<p>During process development, when design rules are still evolving, a fully parameterized DRC validation library can be invaluable in validating the constantly changing design rule deck and can help to minimize the perturbation to cell library and IP development occurring in parallel. Even if evolving design rules are not a problem, some analog companies have literally hundreds of processes, and face similar challenges in keeping up with the DRC validation process.</p>
<p>Fabless companies and IP developers that are on the leading-edge of technology cannot wait for final DRC decks from the foundries and have to - or prefer to - develop their own DRC decks. "Fab-lite" and other companies that design using different layers and methodologies than the foundry design rule manual calls for the need to make their own DRC decks. Some companies even create compromise design rules that can be used in more than one fab so they too have to make their own rule decks.</p>
<p>For these companies and almost any company that writes or modifies DRC decks, the ability to rapidly create a comprehensive validation test suite can be very beneficial.</p>
<p><strong>How Laker-T1 can help</strong></p>
<p>In a simple case, Laker-T1 users can create checks for width and space for every layer and most conditions by drawing a single rectangle or L-shape in the GUI (See Figure 2.) and parameterizing it.  The variable parameters can be set from a spread sheet in the GUI or an external CSV (comma-separated-variable) file from a spreadsheet program to create as many variations and combinations as necessary.</p>
<p>In a 30-layer process, to check a set of simple width and space rules for nominal, nominal minus one grid, and nominal plus one grid would require 180 drawn structures or individually parameterized PCells that somebody has to code. If fat metal rules, corner-to-corner checks, and parallel run length rules are</p>
<p style="text-align: center;"><em><img src="assets/images/newsletter/November2010/Laker2.gif" alt="" width="429" height="324" /></em></p>
<p style="text-align: center;"><em>Figure 2. Simple widthand space test structure</em></p>
<p>added - all incremented above and below nominal by only one grid &ndash; it could easily require 500 or more patterns.</p>
<p>All of this can be done simply and automatically in Laker-T1.  Users can automatically create arrays of validation structures in such a way that the known-good and known bad structures give a quick visual indication of whether the deck is catching known errors, creating false-positives etc.</p>
<p>During validation, stepping through the DRC flags with any of the DRC tools integrated into the Laker Custom Layout system (and therefore Laker-T1) will provide quick analysis due to the ability to provide parameterized, polygonal labels to every structure and/or test line that denote the intended result. In addition, the automatically generated documentation will help describe the rule and location in question.</p>
<p style="text-align: center;"><img src="assets/images/newsletter/November2010/Laker3.gif" alt="" /></p>
<p style="text-align: center;"><em>Figure 3. Transistor structure can be used to validate numerous gate-related DRC checks</em></p>
<p>Using the Laker-T1 Test Chip Development platform for DRC validation checks is one more reason to take a look at Laker products.</p> ]]></description>
	<pubDate>Tue, 16 Nov 2010 16:37:58 -0600</pubDate>
	<guid isPermaLink="false">http://www.springsoft.com/community/blog/laker-t1-drc-validation</guid>
	<dc:creator>SpringSoft</dc:creator>
	
</item><item>
	<title>Apply Signal RC File in Different Scopes</title>
	<link>http://www.springsoft.com/community/blog/apply-signal-rc-file-in-different-scopes</link>
	<description><![CDATA[ <h2>Apply Signal RC File in Different Scopes</h2>
<p>Verdi supports the export of the <em>Signal
RC</em> file for recording signals which have been loaded into <em>nWave</em>, and the rc file can be loaded
back for the next debug session. In previous versions the signal rc file could
also be applied to the FSDB file which contains the same scope. Starting from
Novas 2010.10 onward, a new option has been added when exporting the signal rc
file, so that users can re-use the saved <em>Signal
RC</em> file and apply it to an FSDB file which has a different scope. </p>
<p>Below is a scenario which demonstrates the usage of how to re-use the <em>Signal RC</em> file, when two design teams
are debugging the same design but with different scopes: </p>
<p>&nbsp;Scenario: Assuming Team 1 is debugging a CPU module and the scope is
&ldquo;system/CPU&rdquo;, where Team 2 would like to re-use Team 1&rsquo;s <em>Signal RC</em>
file but the scope is &ldquo;CPU&rdquo;. These two teams can follow the steps below to
re-use the <em>Signal RC</em> file.<ins datetime="2010-10-15T12:28" cite="mailto:Owner"></ins></p>
<p>&nbsp;1.&nbsp;&nbsp;&nbsp;&nbsp;
Team 1
can invoke the <strong>File </strong><strong>&gt;</strong><strong>
Save Signal</strong> command in <em>nWave</em> to open the Save Signal form, and
click the <strong>Option</strong> button to open the <em>Save Signal RC Attributes</em> form. Then,
turn on the last option, <strong>Save Scope with
Macro</strong> and drag and drop the signal (under /system/i_cpu scope) from <em>nWave</em> to the text box. Click <strong>OK and</strong> then export the <em>Signal RC</em> file.</p>
<p><img style="display: block; margin-left: auto; margin-right: auto;" src="assets/images/newsletter/October2010/verdi-2-1.gif" alt="" width="305" height="189" /></p>
<p>&nbsp;2.&nbsp;&nbsp;&nbsp;&nbsp;
The
first several lines of the <em>Signal RC</em>
file will look like the following:</p>
<p style="color: #ff0000; padding-left: 30px;">Revision 2010.10<br />waveDefine RE_TOP&nbsp; "/system/i_cpu&ldquo;<br />addSignal -h 15 ${RE_TOP}/En_A<br />addSignal -h 15
${RE_TOP}/i_ALUB/i_alu/cin</p>
<p>&nbsp;3.&nbsp;&nbsp;&nbsp;&nbsp;
Team 2
can now modify the line &ldquo;<strong>waveDefine
RE_TOP&nbsp; "/system/i_cpu&rdquo;</strong>&rdquo; to &ldquo;<strong>waveDefine RE_TOP&nbsp; "/CPU&rdquo;</strong>&rdquo; since their top scope is &ldquo;/<strong>CPU</strong>&rdquo;. The modified <em>Signal RC</em> file can now be applied to Team 2&rsquo;s design.</p> ]]></description>
	<pubDate>Tue, 26 Oct 2010 12:21:42 -0500</pubDate>
	<guid isPermaLink="false">http://www.springsoft.com/community/blog/apply-signal-rc-file-in-different-scopes</guid>
	<dc:creator>SpringSoft</dc:creator>
	
</item><item>
	<title>Automatic Source Code Folding in nTrace</title>
	<link>http://www.springsoft.com/community/blog/automatic-source-code-folding-in-ntrace</link>
	<description><![CDATA[ <h2>Automatic Source Code Folding in nTrace</h2>
<p>The Verdi system supports the folding of source codes such as
statements, port lists, and comments automatically. Users can enable the
folding capability to fold the source code on nTrace, so that they can just
focus on their area of interest. Starting from Novas 2010.10 onward, this
capability has been further improved, and divided into three options for users
to fold different types of source codes. <ins datetime="2010-10-19T14:49" cite="mailto:kazar"></ins></p>
<p>To enable the folding capability, users can go the <strong>Source Code </strong><strong>&gt;</strong><strong> Code
Folding</strong> page in the <em>Preferences</em> form (which can be invoked
from the <strong>Tools</strong> &gt;
P<strong>references</strong> command). There
are three options on this page: <strong>Automatic
Statement Folding</strong>, <strong>Automatic Comment
Folding</strong>, and <strong>Automatic Port List</strong>
<strong>Folding</strong>. Three kinds of source codes
can be selectively folded by enabling these three options.</p>
<p><img style="display: block; margin-left: auto; margin-right: auto;" src="assets/images/newsletter/October2010/verdi-1-1.gif" alt="" width="397" height="246" /></p>
<p>After enabling the option in the <em>Preferences</em>
form, a &ldquo;+&rdquo; or &ldquo;-&rdquo; icon will be added to the left side of the source code.
Clicking the &ldquo;+&rdquo; icon will expand the source code and clicking the &ldquo;-&rdquo; icon
will collapse it again.</p>
<p><img style="display: block; margin-left: auto; margin-right: auto;" src="assets/images/newsletter/October2010/verdi-1-2.gif" alt="" width="253" height="118" /></p>
<p>At the same time, some additional menu commands will also appear after
turning on the preference setting, to allow users to expand or collapse
different kinds of source codes. See the figure below for these menu commands. </p>
<p><img style="display: block; margin-left: auto; margin-right: auto;" src="assets/images/newsletter/October2010/verdi-1-3.gif" alt="" width="384" height="252" /></p> ]]></description>
	<pubDate>Tue, 26 Oct 2010 12:21:02 -0500</pubDate>
	<guid isPermaLink="false">http://www.springsoft.com/community/blog/automatic-source-code-folding-in-ntrace</guid>
	<dc:creator>SpringSoft</dc:creator>
	
</item><item>
	<title>How to Automatically Dump Forced Signals to Essential Signal FSDB for VCS Simulator</title>
	<link>http://www.springsoft.com/community/blog/auto-dump-forced-signals</link>
	<description><![CDATA[ <h2>How to Automatically Dump Forced Signals to Essential Signal FSDB for
VCS Simulator</h2>
<p>During simulation runtime, some non-essential signals may be dynamically
driven (forced) by Specman, UCLI, or PLI. These &ldquo;force signals&rdquo; should be
included in the Essential Signal (ES) list or dumped to an
ES FSDB dump file such that full visibility can be achieved when Data Expansion
(DE) is performed in the Siloti&trade; Visibility Automation System. </p>
<p>&nbsp;For VCS, the Siloti system can automatically dump the &ldquo;force signals&rdquo; to
a separate &ldquo;force&rdquo; FSDB file which accompanies the Essential Signal Dump (ESD)
FSDB file. Then the Siloti system can perform Data Expansion upon the union of
the ESD FSDB file and the accompanying &ldquo;force&rdquo; FSDB file to achieve full visibility.</p>
<p>&nbsp;Here are the steps to achieve this.</p>
<ul>
<li>You
need to compile the design and link a new object file &ldquo;novas_dll_injection.o&rdquo;
located in the &lt;NOVAS_INST_DIR&gt;/share/PLI/VCS/&lt;PLATFORM&gt;
directory. When the object file is linked, the FSDB
dumper will dump related signals (forced signals and their equivalent nets). For
example,</li>
</ul>
<p style="padding-left: 30px;">%&gt; vcs &ndash;f run.v <strong>&ndash;P</strong> novas.tab novas.a <strong>novas_dll_injection.o</strong><strong> </strong>+vcsd <strong>+vpi</strong>
&hellip;<br />%&gt; simv</p>
<ul>
<li>&nbsp;The &ldquo;force&rdquo; FSDB
file is named &lt;Name of ESD file&gt;<em>_forced</em>.fsdb. For example, if the
name of ESD FSDB is &ldquo;esd.fsdb&rdquo;, then the &ldquo;force&rdquo;
FSDB file name is &ldquo;esd_forced.fsdb&rdquo;. The
&ldquo;force&rdquo; FSDB file name can be configured by setting the environment
variable FSB_FORCED_FSDB_FILE. For example:</li>
</ul>
<p style="padding-left: 30px;">&nbsp;%&gt; setenv FSDB_FORCED_FSDB_FILE my_force.fsdb </p>
<ul>
<li>You
will also need to set the following environment variable to enable the Data Expansion
support before invoking the Siloti system:</li>
</ul>
<p style="padding-left: 30px;">&nbsp;%&gt; setenv NOVAS_DE_EXT_FORCED_FSDB_BETA 1</p>
<ul>
<li>To include the &ldquo;force&rdquo; FSDB file as an input for
Data Expansion, "-extForcedFSDB <em>forced_FSDB_file_name</em>" should
be specified in the &ldquo;-DE&rdquo; option on the Siloti command line. For
example,</li>
</ul>
<p style="padding-left: 30px;">%&gt; siloti -ba -DE <strong>"-extForcedFSDB
novas_forced.fsdb"</strong> <br />
-top meu -bas meu -nologo &ndash;ssf verilog.fsdb </p> ]]></description>
	<pubDate>Mon, 27 Sep 2010 16:01:59 -0500</pubDate>
	<guid isPermaLink="false">http://www.springsoft.com/community/blog/auto-dump-forced-signals</guid>
	<dc:creator>SpringSoft</dc:creator>
	
</item><item>
	<title>Certitude™ Results Analysis:  Recent Improvements Ease Problem Investigation and Isolation</title>
	<link>http://www.springsoft.com/community/blog/certitude-results-analysis</link>
	<description><![CDATA[ <h2>Certitude&trade; Results Analysis:&nbsp;
Recent Improvements Ease Problem Investigation and Isolation</h2>
<p>The most important step in running the Certitude&trade; Functional
Qualification System is analyzing the results to identify problems in the
verification environment that must be fixed to avoid allowing RTL bugs to slip
through the process unnoticed.&nbsp; The
Certitude Report Viewer provides a number of ways to view, sort, and produce
detailed information about faults and fault status, with particular attention
to non-detected (ND) faults that relate directly to likely verification
environment weaknesses.&nbsp; A number of
recent improvements &ndash; available in version 2010.07 and later &ndash; aim to make the
analysis process even more efficient.&nbsp;
This article summarizes a few of the most important improvements.&nbsp; Please see the product release notes and
reference manual for more detailed information.</p>
<p><strong>Support for Manipulation
of Multiple Selected Faults<br />
</strong>Users can easily select and operate on multiple faults during analysis &ndash; enabling,
disabling, and adding/deleting comments associated with several faults with a
few mouse clicks.&nbsp; This makes it much
easier to perform common actions on a related group of faults quickly and with
minimal effort.</p>
<p><strong>Button to Generate
Waveforms for Fault/Test Pairs<br />
</strong>The fault detail window includes a button to generate Verdi&trade; waveforms for
individual fault/test pairs.&nbsp; This is in
addition to the existing command-line capability and allows users to stay in
the report viewer window when requesting waveform details for interesting
faults.</p>
<p><strong>Page with Links to
all Available Waveform Information<br />
</strong>A new &ldquo;waveform page&rdquo; provides links to all available reference and faulty
waveform data for ND, non-propagated (NP), and detected (D) faults.&nbsp; This page consolidates and provides easy access
to previously-generated waveforms during the analysis process.</p>
<p><strong>Report Generation for
Specific List of Faults<br />
</strong>Users can now generate a report for a specific list of faults.&nbsp; The resulting report only lists details and
statistics related to those faults, providing a convenient way to reduce
clutter and focus a given analysis session on the current faults of interest.</p> ]]></description>
	<pubDate>Mon, 27 Sep 2010 16:00:23 -0500</pubDate>
	<guid isPermaLink="false">http://www.springsoft.com/community/blog/certitude-results-analysis</guid>
	<dc:creator>SpringSoft</dc:creator>
	
</item><item>
	<title>Parallel FSDB Dumping Proven to Reduce Runtime </title>
	<link>http://www.springsoft.com/community/blog/fsdb-dumping</link>
	<description><![CDATA[ <h2>Parallel FSDB dumping proven to reduce runtime <strong>&nbsp;</strong></h2>
<p>The FSDB dumper shipped in the Novas 2009.10 release included many
improvements, one of the most important being the new multi-threaded
architecture.&nbsp; This allows FSDB dumping
to be done more efficiently in a parallel fashion when enabled.&nbsp; Parallel FSDB dumping was designed to reduce
dumping runtime and we&rsquo;ve collected data over the past few months as evidence
of its success.</p>
<p>With examples from all 3 major simulators, the parallel dumping mode took
up to 50% less time compared to normal non-parallel dumping.&nbsp; Even in cases where the time for dumping time
was relatively small compared to the total simulation time (&lt; 10%) leaving
little to improve upon, the multi-threaded dumper reduced runtime by a noticeable
amount.&nbsp; These cases demonstrate that the
multi-threaded algorithm has relatively low performance over-head.</p>
<p>There are many factors that influence FSDB dumping performance including
design size, design structure, number of signal dumped, type of dumping tasks,
etc.&nbsp; Our data indicates that the larger
the dump size and the more time that is spent on FSDB dumping, the more
parallel dumping improves performance.</p>
<p>Because of the great improvement in runtime and the lack of negative performance
or other side-effects, we strongly recommend using the multi-threaded dumper
for all runs.&nbsp; The only prerequisites are
to use the updated dumper with the parallel mode enabled and to run the
simulation on a machine with more than one processor (dual and multi-core
systems are also good).</p>
<p>To enable parallel
dumping mode, add the following option to the simulator command-line:</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; +fsdb+parallel=on</p>
<p>or, to enable this
for all future simulations runs, set the following environment variable, <em>NOVAS_FSDB_PARALLEL</em>, to 1.&nbsp; </p>
<p>For example in a UNIX
c-shell of similar environment, set the following before starting simulation:</p>
<ul>
<li>setenv NOVAS_FSDB_PARALLEL 1</li>
</ul> ]]></description>
	<pubDate>Mon, 27 Sep 2010 15:58:34 -0500</pubDate>
	<guid isPermaLink="false">http://www.springsoft.com/community/blog/fsdb-dumping</guid>
	<dc:creator>SpringSoft</dc:creator>
	
</item><item>
	<title>How to Add an Alias to Waveform in nWave?</title>
	<link>http://www.springsoft.com/community/blog/alias-waveform-nwave</link>
	<description><![CDATA[ <h2><strong>How to Add an Alias
to Waveform in nWave?</strong></h2>
<p>To add an alias to
waveform, you can edit an alias table in the <em>nWave</em> window of the Verdi&trade; Automated Debug System to define a set of values (or value ranges) and
their associated alias names. Then apply this table to the selected bus
signals.</p>
<p>To create and add
an alias table, the steps are:</p>
<ol>
<li>Select the <strong>Waveform </strong><strong>&gt;</strong><strong>
Signal Value Radix </strong><strong>&gt;</strong><strong>
Edit Alias </strong>menu<strong> </strong>command in <em>nWave </em>to invoke the<em> Alias
Editor </em>form. </li>
<li>Enter as many records of value, alias name
and background color as you want. </li>
<li>When done, click the <strong>Save As</strong> button to save the table to an alias file for later use.
(You can edit and save more than one alias table in the form.)<br /><img style="display: block; margin-left: auto; margin-right: auto;" src="assets/images/newsletter/August2010/novas-2-1.gif" alt="" width="323" height="260" />The content of the saved alias file will be similar to the following.<br /><img style="display: block; margin-left: auto; margin-right: auto;" src="assets/images/newsletter/August2010/novas-2-2.gif" alt="" width="241" height="129" /></li>
<li>Select the bus signals that you wish to
apply aliases on, and then select the <strong>Waveform </strong><strong>&gt;</strong><strong>
Signal Value Radix </strong><strong>&gt;</strong><strong>
Add Alias from File </strong>command
to load the saved alias file.<br /><br />The first table defined in the alias file
will be applied to the selected signals.<strong><br /><br /></strong>All the loaded alias tables can be found in the menu (see below). You
can apply an alias to more signals by selecting the target table from the menu.</li>
</ol>
<p><img style="display: block; margin-left: auto; margin-right: auto;" src="assets/images/newsletter/August2010/novas-2-3.gif" alt="" width="304" height="207" /></p>
<p>Alternatively, you
can write a c or Perl program that accepts a number and prints out the string
corresponding to that number. <em>nWave</em>
calls this program to obtain the alias string for display.<br />NOTE: Background
color is not supported using this method and the <em>nWave</em> drawing performance will be impacted as the program will be
executed whenever a bus value needs to be drawn.</p>
<p>To add an alias
from program, the steps are:</p>
<ol>
<li>Edit a
c or Perl program. A Perl example is shown below:</li>
</ol>
<p style="padding-left: 60px;">#!/usr/local/bin/perl<br />select(STDOUT);<br />while (&lt;&gt;)<br />{<br />if ($_ == 0){<br /> $|=1; print "zero\n";<br />} elsif ($_ == 1) {<br /> $|=1; print "one\n";<br />} elsif ($_ == 10) {<br /> $|=1; print "two\n";<br />} elsif ($_ == 11) {<br /> $|=1; print "three\n";<br />} elsif ($_ == 100) {<br /> $|=1; print "four\n";<br />}else {<br /> $|=1; print "O.K\n";<br />}<br />open(txt,"&gt;&gt;ab");<br />$|=1;<br />print txt "$_";<br />close(txt);<br />} </p>
<p>
2. Select the <strong>Waveform </strong><strong>&gt;</strong><strong>
Signal Value Radix </strong><strong>&gt;</strong><strong>
Add Alias from Program</strong> menu
command in <em>nWave</em> to load the Perl
grogram. </p>
<ol>
</ol>
<p>The aliases printed from the program will be applied to the selected
signals.</p>
<p><img style="display: block; margin-left: auto; margin-right: auto;" src="assets/images/newsletter/August2010/novas-2-4.gif" alt="" width="346" height="212" /></p>
<p>For complete
details on the usage of aliases, refer to the <em>Signal Value Radix</em> section in the <em>nWave: Waveform Commands</em> chapter of the <em>Verdi and Siloti Command Reference Manual</em> (&lt;NOVAS_INST_DIR&gt;/doc/novas.pdf).</p>
<ol>
</ol>
<ol>
</ol> ]]></description>
	<pubDate>Tue, 31 Aug 2010 11:01:42 -0500</pubDate>
	<guid isPermaLink="false">http://www.springsoft.com/community/blog/alias-waveform-nwave</guid>
	<dc:creator>SpringSoft</dc:creator>
	
</item><item>
	<title>MemoryCanvas™ – A Memory Instance and Compiler Automation Tool</title>
	<link>http://www.springsoft.com/community/blog/memorycanvas</link>
	<description><![CDATA[ <h2>MemoryCanvas<sup>&trade;</sup>
&ndash; A Memory Instance and Compiler Automation Tool</h2>
<p>Using the powerful database and GUI
of the Laker Custom Layout Automation System, Spectral Design and Test Inc has
created a new software application called MemoryCanvas that eliminates the need
to write code to implement a memory compiler or a complex memory instance.
MemoryCanvas uses a unique approach involving the definition of a graphical
floorplan to convey assembly instructions. Any memory type from SRAM, ROM, CAM,
Cache or FLASH can be defined in MemoryCanvas. It provides complete assembly
and netlist generation and incorporates full compiler parameterization as
needed.&nbsp; The efficient Laker database
enables MemoryCanvas to produce a fully expanded schematic of memory instances.
These schematics are functional for netlist generation and are used in LVS and simulation
as well as providing useful guidance to layout designers to see signal flow and
leaf cell adjacencies at the schematic level.&nbsp;
Other commercial compiler tool offerings do not support this capability.
The floorplan and full schematic instances also serve to document the design
and compiler together in one context. </p>
<p style="text-align: center;"><img style="display: block; margin-left: auto; margin-right: auto;" src="assets/images/newsletter/August2010/laker-1.gif" alt="" width="450" height="263" />Sample
MemoryCanvas floorplan showing floorplan blocks with associated leaf cells</p>
<table border="0">
<tbody>
<tr>
<td>
<p><img src="assets/images/newsletter/August2010/laker-2.gif" alt="" width="125" height="336" /></p>
<p style="text-align: center;">Complex patterns such as binary counts for decoders are
simple to specify in MemoryCanvas</p>
</td>
<td>
<p>The layout view is driven
graphically from the schematic floorplan as well. This ensures a tight coupling
between design and layout teams. This method of defining the assembly
essentially ensures a correct-by-construction result between schematic and
layout.&nbsp; MemoryCanvas implements a
schematic driven layout methodology at the memory macro level.</p>
<p><img style="display: block; margin-left: auto; margin-right: auto;" src="assets/images/newsletter/August2010/laker-3.gif" alt="" width="275" height="257" /></p>
<p style="text-align: center;">Fully functional hierarchical
Instance schematic</p>
</td>
</tr>
</tbody>
</table>
<p>MemoryCanvas provides critical
netlists used for Memory characterization and timing view generation. It
supports automatic creation of &ldquo;donut&rdquo; or &ldquo;ringed&rdquo; arrays that can be used to
reduce the device count significantly for timing verification or
characterization. It also supports the automatic reduction of Pi -networks to
even more dramatically reduce the device count for efficient and accurate
timing and power simulations. There are several controls for users to define
the paths that are selected as critical for simulations and yet minimimizes
netlist size. </p>
<p>Support and maintenance of memories
becomes much easier using MemoryCanvas as the graphical nature of the tool
provides immediate feedback to developers about how the memory is constructed
and what the design dependencies are.&nbsp;
MemoryCanvas floorplans are fully process-independent such that migration
of a memory to a new process will not incur any additional effort for assembly.&nbsp; </p>
<p>Using the powerful database and
rich interface feature set provided by the Laker Custom Layout Automation
System, it was very straightforward to implement the highly productive user
paradigm employed in MemoryCanvas.&nbsp; </p>
<p>
For more information about MemoryCanvas or
Spectral Design and Test Inc., contact: <a href="mailto:sales@spectral-dt.com">sales@spectral-dt.com</a>
or visit the Spectral website at <a href="http://www.spectral-dt.com/" target="_blank">www.spectral-dt.com</a></p> ]]></description>
	<pubDate>Tue, 31 Aug 2010 10:59:57 -0500</pubDate>
	<guid isPermaLink="false">http://www.springsoft.com/community/blog/memorycanvas</guid>
	<dc:creator>SpringSoft</dc:creator>
	
</item><item>
	<title>Executing Tcl Scripts in Novas</title>
	<link>http://www.springsoft.com/community/blog/tcl-scripts</link>
	<description><![CDATA[ <h2><strong>Executing Tcl
Scripts in Novas</strong></h2>
<p>Tcl is a general purpose programming language which is widely used in
EDA tools. With Tcl scripts you can extend and customize a tool&rsquo;s capability,
to make your design flow to be more efficient. The Verdi&trade; Automated Debug System has embedded the Tcl
interpreter so that users can easily execute their own Tcl scripts in the Verdi
system. There are various ways to execute the Tcl script in the Verdi system. Following
are some examples demonstrating how to run the Tcl script in Verdi:</p>
<p>&nbsp;<strong>To run the Tcl script from the
Verdi command line:</strong></p>
<p>Use the &ndash;play command line option to replay your Tcl script, for
example:</p>
<p><em>Verdi
&ndash;play your_script.tcl &amp;</em></p>
<p>All your actions in the Verdi GUI will be saved as a Tcl file in <em>./VerdiLog/Verdi.cmd</em>, and you can use
the <strong>&ndash;play</strong> option to replay this Tcl
file in command line when invoking the Verdi system.</p>
<p><strong>To run Tcl command or script
in the Verdi GUI:</strong></p>
<p>In the Verdi GUI, open the <em>Preferences </em>form using the <strong>Tools </strong><strong>&gt;</strong><strong> Preferences</strong> command. Go to the <strong>General</strong> folder
and enable the <strong>Enable TCL Command Entry Form </strong>option. The <em>Command
Entry </em>form will be opened. The setting will
be saved in the <em>novas.rc</em> resource file and the <em>Command Entry</em> form
will be opened automatically next time you invoke the Verdi system. Type Tcl commands
in this <em>Command Entry</em> form to execute
it, and use &ldquo;<em>source</em>&rdquo; command to
execute an existing Tcl script. </p>
<p><img style="display: block; margin-left: auto; margin-right: auto;" src="assets/images/newsletter/August2010/novas-1-1.gif" alt="" width="380" height="225" /></p>
<p><strong>To source the Tcl script
automatically when invoking the Verdi GUI:</strong></p>
<p>There are several ways to source the Tcl script and execute it
automatically when invoking the Verdi system:
</p>
<p>1. Set the <strong>NOVAS_AUTO_SOURCE
     </strong>environment variable and specify the Tcl script before invoking the Verdi
     system. For example: </p>
<ol>
</ol>
<p style="padding-left: 30px;"><em>%
setenv NOVAS_AUTO_SOURCE
your_script.tcl<br />%
verdi &amp;</em>
</p>
<p>2. Modify the <em>novas.rc</em>
     resource file in your working directory. Search for the <strong>TclAutoSource</strong>
     tag in the <strong>[General]</strong> section of the <em>novas.rc</em> resource file,
     and specify your Tcl script for the <strong>TclAutoSource</strong> tag. For example:</p>
<ol>
</ol>
<p style="padding-left: 30px;"><em>[General]<br />TclAutoSource = MyTclScript.tcl</em>
</p>
<p>3. In the Verdi
     GUI, open the <em>Preferences </em>form using the <strong>Tools </strong><strong>&gt;</strong><strong> Preferences</strong> command. Go to the <strong>Auto Source</strong> folder and click the <strong>Browse</strong> button to specify your Tcl
     script file. The script will be executed automatically the next time you
     invoke the Verdi system.</p>
<p><img style="display: block; margin-left: auto; margin-right: auto;" src="assets/images/newsletter/August2010/novas-1-2.gif" alt="" width="405" height="252" /></p>
<p><strong>To register a callback to a specific
Verdi action and execute the script when triggering that action:</strong></p>
<p>You can use the embedded Tcl command <strong>AddEventCallback</strong> to register a callback on a specific Verdi <em>REASON </em>with a Tcl procedure. The Tcl
procedure will be executed when the specified <em>REASON</em> is triggered. For example, if you have created a Tcl
procedure and want to execute it automatically when some action happens in the Verdi
system, add the following Tcl code into your Tcl script and source the script
when invoking the Verdi system: </p>
<p style="padding-left: 30px;"><em>AddEventCallback
[tk appname] AutoLoadSignal wvCreateWindow 1</em></p>
<p>In the above example, the procedure <strong>AutoLoadSIgnal</strong>
will be executed automatically every time a waveform window is created, where <em>wvCreateWindow</em> is an available <em>REASON</em> in the Verdi system. You can
refer to the <em>&lt;Verdi_install&gt;/doc/tcl.pdf</em>
document for all available <em>REASON</em> to
register your Tcl procedure to a specific Verdi action. </p>
<ol>
</ol> ]]></description>
	<pubDate>Tue, 31 Aug 2010 10:57:48 -0500</pubDate>
	<guid isPermaLink="false">http://www.springsoft.com/community/blog/tcl-scripts</guid>
	<dc:creator>SpringSoft</dc:creator>
	
</item><item>
	<title>Certitude™ Methodology Primer:  Early Application Provides Significant Value</title>
	<link>http://www.springsoft.com/community/blog/certitude-primer</link>
	<description><![CDATA[ <h2><strong>Certitude&trade; Methodology Primer:&nbsp;
Early Application Provides Significant Value</strong></h2>
<p>The Certitude&trade; Functional Qualification System identifies
holes and weaknesses in the verification environment that can let RTL bugs slip
through the process undetected.&nbsp; Although
you can apply Certitude at many different points throughout the verification
process, experience has shown that an incremental approach beginning in the
early stages is often best &ndash; providing immediate value and improving the
verification environment over time while balancing resources vs. other
verification activities.</p>
<p><strong>When Should I Start
Running Functional Qualification?<br />
</strong>Functional Qualification requires a reasonably complete and functional RTL
description and a set of simulation tests that exercise the RTL to verify that
it conforms to the functional specification of the design.&nbsp; However, this should not be interpreted as a
requirement that &ldquo;all&rdquo; simulation tests must be available before functional
qualification can begin.&nbsp; In fact, users
can gain valuable insight into the verification environment when only a small
number of tests are available.&nbsp; Consider,
for example, the set of output stuck-at faults injected by Certitude in the
early stages of qualification using its default class-based fault prioritization
algorithm.&nbsp; A verification environment
with a small set of functional tests and the most basic checkers and assertions
in place should probably detect these types of gross errors, even if tests that
exercise the more complex and subtle aspects of the design are yet to be
written.&nbsp; An environment that doesn&rsquo;t
detect these faults is certainly more likely to let serious RTL bugs slip
through the process unnoticed.</p>
<p><strong>So, I&rsquo;ve Qualified
the Basic Aspects of My Environment &ndash; What&rsquo;s Next?</strong><br />
As more tests are written, qualification can proceed incrementally.&nbsp; For example, the completion and use of a
&ldquo;smoke suite&rdquo; of tests &ndash; a set that exercises the major functional aspects of
the design and is used as a first-level sign-off before significant RTL changes
are checked into the design database &ndash; argues for expanded use of functional
qualification to provide a more comprehensive measure of verification
environment quality and identify holes and weaknesses that themselves
invalidate the purpose of the &ldquo;smoke suite&rdquo;.&nbsp;
Again, Certitude&rsquo;s automated fault prioritization process can be applied
to guide the qualification at this stage with an expanded set of faults that
stress-test the maturing verification environment.</p>
<p><strong>Good News:&nbsp; Incremental Qualification Accumulates Results
Over Time<br />
</strong>Functional qualification with Certitude is a cumulative process.&nbsp; As you improve your verification environment,
Certitude ensures that previously undetected faults are detected and then
delves deeper into its prioritized fault list to qualify the more subtle
aspects of your environment.&nbsp; As a user,
you get the benefits of early feedback on your environment &ndash; allowing you to
find and fix problems to ensure that your environment is robust &ndash; and
accumulation of qualification results over time to provide a complete
assessment of the quality of your verification environment.</p> ]]></description>
	<pubDate>Fri, 06 Aug 2010 16:55:52 -0500</pubDate>
	<guid isPermaLink="false">http://www.springsoft.com/community/blog/certitude-primer</guid>
	<dc:creator>SpringSoft</dc:creator>
	
</item><item>
	<title>Using PyCells in the Laker Matching Device Creator and Stick Diagram Window</title>
	<link>http://www.springsoft.com/community/blog/pycells-mdc-sdw</link>
	<description><![CDATA[ <h2>Using PyCells in the Laker Matching Device Creator and Stick Diagram Window</h2>
<p>Beginning in Q3, 2010, the OpenAccess version of Laker Custom Layout System will enable the use of interoperable PyCells&trade; with the popular Laker transistor-level floor planning tools, Matching Device Creator and Stick Diagram window. Previously this unique technology was only available for use with our patented Laker MCells&trade;. WithPyCell "stretch handle" and auto-abut capabilities enabled, PyCell placement results can be optimized in the same way as when using MCells; you no longer have to select and place each PyCell manually.</p>
<p>Following is an example of using PyCells in the Matching Device Creator with a user-defined matching pattern:</p>
<p style="padding-left: 30px;">1. In the <em>Design Browser</em> window of Laker, select the matching transistors and click the <strong>Match Device Creator</strong> icon.</p>
<p style="padding-left: 30px;"><img style="display: block; margin-left: auto; margin-right: auto;" src="assets/images/newsletter/July2010/Laker-1-1.gif" alt="" width="290" height="79" />A window like the one below will appear.</p>
<p style="text-align: center;"><img src="assets/images/newsletter/July2010/Laker-1-2.gif" alt="" /></p>
<p style="padding-left: 30px;">2. Modify the floorplan as desired; you can enable OD sharing if your PyCells support auto-abutment.</p>
<p style="text-align: center;"><img src="assets/images/newsletter/July2010/Laker-1-3.gif" alt="" /></p>
<p style="padding-left: 30px;">3. The Matching Device Router also works with PyCell devices in the Matching Device Creator</p>
<p style="text-align: center;"><img src="assets/images/newsletter/July2010/Laker-1-4.gif" alt="" width="500" height="221" /></p>
<p>To use PyCells in theStick Diagram window, proceed as you would if you were using MCells. The following example uses an existing cell template:</p>
<p style="padding-left: 30px;">1. In the <em>Design Browser</em> window, select transistors and click the <strong>Create</strong> icon to bring up the <em>Stick Diagram</em> window.</p>
<p style="text-align: center;"><img src="assets/images/newsletter/July2010/Laker-1-5.gif" alt="" width="391" height="318" /></p>
<p style="padding-left: 30px;">The features: <em>Merge (for abutable PyCells), swap, split</em> and <em>align</em> work well when using either MCell or PyCell devices.</p>
<p style="padding-left: 30px;">2. With PyCell stretch handles enabled, designers can align the transistor gates to minimize wiring jogs.</p>
<p style="text-align: center;"><img src="assets/images/newsletter/July2010/Laker-1-6.gif" alt="" width="349" height="235" /></p>
<p style="text-align: center;"><em>Figure: Translstor floorplan after Split Gate and Align Gate</em></p>
<p style="padding-left: 30px;">3. As always, you can preview the result in the preview window before instantiating.</p>
<p style="text-align: center;"><img src="assets/images/newsletter/July2010/Laker-1-7.gif" alt="" width="392" height="151" /></p>
<p>When two MCell transistors are abutted and then the gates stretched apart, the contacts will automatically be centered between the gates. Therefore, when using the Stick Diagram and Matching Device Creator the diffusion contacts will remain centered for abutted transistors as the gates are stretched apart for alignment. As you can see in the picture above, this is not an automatic behavior of PyCells. If you want the same contact centering behavior when using PyCells, the PyCells will have to be configured to center the diffusion contacts.</p>
<p>The Matching Device Creator and Stick Diagram placement results from both examples are shown below.The yellow diamonds in the layout represent the stretch handles for thePyCells.</p>
<p style="text-align: center;"><img src="assets/images/newsletter/July2010/Laker-1-8.gif" alt="" width="448" height="232" /></p>
<p>Using PyCells with the core Laker Stick Diagram and Matching Device Creator features will give designers more layout flexibility by offering both Laker MCells and interoperable PyCells from the foundry iPDK. This will open up the unique automation of the Laker Custom Layout system to users who want unparalleled interoperability in custom IC design.</p> ]]></description>
	<pubDate>Fri, 06 Aug 2010 16:54:12 -0500</pubDate>
	<guid isPermaLink="false">http://www.springsoft.com/community/blog/pycells-mdc-sdw</guid>
	<dc:creator>SpringSoft</dc:creator>
	
</item><item>
	<title>Using the cdsLib Plugin from Cadence Design Systems for OpenAccess</title>
	<link>http://www.springsoft.com/community/blog/cdslib-plugin-oa</link>
	<description><![CDATA[ <h2><strong>Using the cdsLib Plugin
from Cadence Design Systems for OpenAccess</strong><strong></strong></h2>
<p>In the 6.14 release of the Virtuoso&reg; Layout and Schematic
Editor from Cadence Design Systems, the library definition map file, lib.defs,
has been replaced by the Cadence&reg;
native library definition map file, cds.lib; therefore, the lib.defs file is no
longer valid for Cadence IC6.14 or later releases. This creates problems when a
user mixes OpenAccess tools from other vendors.</p>
<p>The good news is that Cadence Design Systems offers a
download on their website of a free cdsLib plugin for use with non-Cadence
OpenAccess tools. Customers can also use the same cdsLib plugin to read the
library definition instead of writing their own cds.lib parser. The link to the
plugin is:</p>
<p style="padding-left: 30px;"><a href="http://www.cadence.com/webforms/Pages/cdslibplugin.aspx">http://www.cadence.com/webforms/Pages/cdslibplugin.aspx</a></p>
<p>The cdsLib plugin package redefines the plugin file: <strong>oaLibDefSystem.plg</strong>
to read another plugin file, cdsLib.plg. To ensure your OpenAccess tool can get
the correct laLibDefSystem.plg, you have to be careful about the sequence
assigned to the UNIX environment variable: OA_PLUGIN_PATH. The cdsLib plugin should
be defined at the beginning of the search path of OA_PLUGIN_PATH.</p>
<p>With the Cadence cdsLib plugin, there is no need to develop
a cds.lib parser. Because Cadence IC6.14 only recognizes the new cds.lib file,
the workaround solution is to use the UNIX symbolic link method to link the
cds.lib file to the lib.defs file which allows different OpenAccess tools to
use the same library definition file.</p>
<p style="padding-left: 30px;">%&nbsp;&nbsp; ln&nbsp;
-s&nbsp; cds.lib&nbsp; lib.defs</p>
<p>To maintain interoperability with the Cadence environment,
OpenAccess tools can be extended to recognize either cds.lib or lib.defs.</p>
<p>For more details on
downloading, installing and verifying the cdsLib plugin, refer to the &ldquo;Using
the cdsLib Plugin&rdquo; application note (KB#2864) located in the knowledge base of
the SpringSoft support website (support.springsoft.com). </p> ]]></description>
	<pubDate>Fri, 06 Aug 2010 16:52:23 -0500</pubDate>
	<guid isPermaLink="false">http://www.springsoft.com/community/blog/cdslib-plugin-oa</guid>
	<dc:creator>SpringSoft</dc:creator>
	
</item><item>
	<title>Debug Unknowns with List Power Related X</title>
	<link>http://www.springsoft.com/community/blog/debug-list-power</link>
	<description><![CDATA[ <h2>Debug Unknowns with List Power Related X</h2>
<p>The Verdi&trade; Automated Debug system supports thestandard power formats, Common Power Format (CPF) and Unified Power Format(UPF), as well as the related power-aware debugging capability. <a href="technology/springsoft-newsletter-info/power-aware">This was initially introduced in the 2009.10 newsletter</a>.</p>
<p>To help users debugunknowns and rule out signal unknowns (X value) that are affected by their own power domain being switched off (such unknowns are correct) and focus onunknowns which may be real issues, you can use the <strong>Tools &gt; List Power Related X</strong> command in <em>nWave</em>. The command will highlight the unknowns which may be realissues (either affected by incorrect HDL or power code) in yellow. The power files must be imported into the Verdi system before this command is accessible.</p>
<p>To use the command,you can select several signals in the nWave signal pane first, click the right mouse button and select the <strong>Power &gt; List Power Related X</strong> command. The command will analyze and list all X values of the selected signals in the opened <em>List Power Related X</em> form (refer to Figure 1). The rows that are in yellow are theunknowns which may be real issues.</p>
<p>You can continue totrace these issues by selecting any yellow row and clicking the <strong>Trace Active X</strong> button. Click the <strong>Yes, OK</strong> and <strong>Trace </strong>buttons onthe following forms, and then the trace results will be shown in the <strong>Trace Active X</strong> Results form. See Figure 2 for an example of the trace results. The result concludes that the unknown is caused by a power off from another power domain.</p>
<p style="text-align: center;"><img src="assets/images/newsletter/June2010/novas-3-1.gif" alt="" width="472" height="276" /></p>
<p style="text-align: center;"><em>Figure 1: List Power Related X Form</em></p>
<p style="text-align: center;"><img src="assets/images/newsletter/June2010/novas-3-2.gif" alt="" width="386" height="147" /></p>
<p style="text-align: center;"><em>Figure 2: Trace Active X Results Form</em></p>
<p class="justifyleft">For complete details on the usage of the Power Manager window, refer to the Power Manager chapter of the Verdi and Siloti Command Reference Manual (&lt;NOVAS_INST_DIR&gt;/doc/novas.pdf). For more detailed Power Aware Debug commands and usage, please refer to the "Power Aware Debug" application note (KB#8192-2) located in the knowledge base of the SpringSoft support website (support.springsoft.com).</p> ]]></description>
	<pubDate>Fri, 06 Aug 2010 16:48:54 -0500</pubDate>
	<guid isPermaLink="false">http://www.springsoft.com/community/blog/debug-list-power</guid>
	<dc:creator>SpringSoft</dc:creator>
	
</item><item>
	<title>Report Power Impacted Signals</title>
	<link>http://www.springsoft.com/community/blog/power-impacted-signals</link>
	<description><![CDATA[ <p><strong>Report Power Impacted
Signals</strong><strong>&nbsp;</strong></p>
<p>The Verdi&trade; Automated Debug system supports the
standard power formats, Common Power Format (CPF) and Unified Power Format
(UPF), as well as the related power-aware debugging capability. <a href="technology/springsoft-newsletter-info/power-aware">This was
initially introduced in the 2009.10 newsletter</a>.</p>
<p>Typically,
designers for CPF/UPF power intent files and designers of HDL are not the same.
To help HDL designers quickly grasp which signals are impacted by the power
intent, a <strong>Tools </strong><strong>&gt;</strong><strong>
Report Impacted Signals </strong>command
is provided in the <em>Power Manager</em>
window (invoked via the <strong>File </strong><strong>&gt;</strong><strong> Import
CPF/UPF Files</strong> command in <em>nTrace</em>). When the <strong>Tools </strong><strong>&gt;</strong><strong>
Report Impacted Signals </strong>command
is executed, the <em>Report Power Impacted
Signals</em> form will open. The form
lists all signals which are
impacted by the power intent (imported from the UPF/CPF files). See the
following figure for an example of the form.</p>
<div><img style="display: block; margin-left: auto; margin-right: auto;" src="assets/images/newsletter/June2010/novas-2-1.gif" alt="" width="374" height="250" /></div>
<div>
<p>Each column of the <em>Report Power Impacted Signals</em> form can be sorted by clicking on the heading of
the column. For example, you can turn on the <strong>Show Full Name</strong> option to display signals with full hierarchical
names and click the heading of the <em>Signal</em><strong> </strong>column<strong> </strong>to sort. After sorting, the list will be sorted by hierarchy which
makes it easy to browse by scope. </p>
For complete details on
the usage of the <em>Power Manager</em>
window, refer to the <em>Power Manager</em>
chapter of the <em>Verdi and Siloti Command
Reference Manual</em> (&lt;NOVAS_INST_DIR&gt;/doc/novas.pdf). For more detailed
Power Aware Debug commands and usage, please refer to the &ldquo;Power Aware Debug&rdquo;
application note (KB#8192-2) located in the knowledge base of the SpringSoft support
website (support.springsoft.com).</div>
<div id="_mcePaste" class="mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow: hidden;"><!--[if gte mso 9]><xml>
 <w:WordDocument>
  <w:View>Normal</w:View>
  <w:Zoom>0</w:Zoom>
  <w:TrackMoves />
  <w:TrackFormatting />
  <w:PunctuationKerning />
  <w:ValidateAgainstSchemas />
  <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
  <w:IgnoreMixedContent>false</w:IgnoreMixedContent>
  <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
  <w:DoNotPromoteQF />
  <w:LidThemeOther>EN-US</w:LidThemeOther>
  <w:LidThemeAsian>X-NONE</w:LidThemeAsian>
  <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
  <w:Compatibility>
   <w:BreakWrappedTables />
   <w:SnapToGridInCell />
   <w:WrapTextWithPunct />
   <w:UseAsianBreakRules />
   <w:DontGrowAutofit />
   <w:SplitPgBreakAndParaMark />
   <w:DontVertAlignCellWithSp />
   <w:DontBreakConstrainedForcedTables />
   <w:DontVertAlignInTxbx />
   <w:Word11KerningPairs />
   <w:CachedColBalance />
   <w:UseFELayout />
  </w:Compatibility>
  <m:mathPr>
   <m:mathFont m:val="Cambria Math" />
   <m:brkBin m:val="before" />
   <m:brkBinSub m:val=" " />
   <m:smallFrac m:val="off" />
   <m:dispDef />
   <m:lMargin m:val="0" />
   <m:rMargin m:val="0" />
   <m:defJc m:val="centerGroup" />
   <m:wrapIndent m:val="1440" />
   <m:intLim m:val="subSup" />
   <m:naryLim m:val="undOvr" />
  </m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
 <w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
  DefSemiHidden="true" DefQFormat="false" DefPriority="99"
  LatentStyleCount="267">
  <w:LsdException Locked="false" Priority="0" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Normal" />
  <w:LsdException Locked="false" Priority="9" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="heading 1" />
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2" />
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3" />
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4" />
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5" />
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6" />
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7" />
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8" />
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9" />
  <w:LsdException Locked="false" Priority="39" Name="toc 1" />
  <w:LsdException Locked="false" Priority="39" Name="toc 2" />
  <w:LsdException Locked="false" Priority="39" Name="toc 3" />
  <w:LsdException Locked="false" Priority="39" Name="toc 4" />
  <w:LsdException Locked="false" Priority="39" Name="toc 5" />
  <w:LsdException Locked="false" Priority="39" Name="toc 6" />
  <w:LsdException Locked="false" Priority="39" Name="toc 7" />
  <w:LsdException Locked="false" Priority="39" Name="toc 8" />
  <w:LsdException Locked="false" Priority="39" Name="toc 9" />
  <w:LsdException Locked="false" Priority="0" Name="annotation text" />
  <w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption" />
  <w:LsdException Locked="false" Priority="0" Name="annotation reference" />
  <w:LsdException Locked="false" Priority="10" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Title" />
  <w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font" />
  <w:LsdException Locked="false" Priority="11" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtitle" />
  <w:LsdException Locked="false" Priority="22" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Strong" />
  <w:LsdException Locked="false" Priority="20" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Emphasis" />
  <w:LsdException Locked="false" Priority="59" SemiHidden="false"
   UnhideWhenUsed="false" Name="Table Grid" />
  <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text" />
  <w:LsdException Locked="false" Priority="1" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="No Spacing" />
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading" />
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List" />
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid" />
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1" />
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2" />
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1" />
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2" />
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1" />
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2" />
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3" />
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List" />
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading" />
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List" />
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid" />
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 1" />
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 1" />
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 1" />
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1" />
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1" />
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 1" />
  <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision" />
  <w:LsdException Locked="false" Priority="34" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="List Paragraph" />
  <w:LsdException Locked="false" Priority="29" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Quote" />
  <w:LsdException Locked="false" Priority="30" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Quote" />
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 1" />
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1" />
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1" />
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1" />
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 1" />
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 1" />
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 1" />
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 1" />
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 2" />
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 2" />
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 2" />
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2" />
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2" />
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 2" />
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 2" />
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2" />
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2" />
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2" />
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 2" />
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 2" />
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 2" />
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 2" />
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 3" />
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 3" />
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 3" />
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3" />
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3" />
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 3" />
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 3" />
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3" />
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3" />
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3" />
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 3" />
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 3" />
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 3" />
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 3" />
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 4" />
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 4" />
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 4" />
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4" />
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4" />
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 4" />
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 4" />
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4" />
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4" />
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4" />
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 4" />
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 4" />
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 4" />
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 4" />
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 5" />
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 5" />
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 5" />
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5" />
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5" />
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 5" />
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 5" />
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5" />
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5" />
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5" />
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 5" />
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 5" />
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 5" />
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 5" />
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 6" />
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 6" />
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 6" />
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6" />
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6" />
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 6" />
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 6" />
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6" />
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6" />
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6" />
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 6" />
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 6" />
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 6" />
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 6" />
  <w:LsdException Locked="false" Priority="19" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis" />
  <w:LsdException Locked="false" Priority="21" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis" />
  <w:LsdException Locked="false" Priority="31" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference" />
  <w:LsdException Locked="false" Priority="32" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Reference" />
  <w:LsdException Locked="false" Priority="33" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Book Title" />
  <w:LsdException Locked="false" Priority="37" Name="Bibliography" />
  <w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading" />
 </w:LatentStyles>
</xml><![endif]--><!--[if !supportAnnotations]--><!--
-->
<script type="text/javascript">// <![CDATA[
function msoCommentShow(anchor_id, com_id)
{
	if(msoBrowserCheck()) 
		{
		c = document.all(com_id);
		a = document.all(anchor_id);
		if (null != c && null == c.length && null != a && null == a.length)
			{
			var cw = c.offsetWidth;
			var ch = c.offsetHeight;
			var aw = a.offsetWidth;
			var ah = a.offsetHeight;
			var x  = a.offsetLeft;
			var y  = a.offsetTop;
			var el = a;
			while (el.tagName != "BODY") 
				{
				el = el.offsetParent;
				x = x + el.offsetLeft;
				y = y + el.offsetTop;
				}
			var bw = document.body.clientWidth;
			var bh = document.body.clientHeight;
			var bsl = document.body.scrollLeft;
			var bst = document.body.scrollTop;
			if (x + cw + ah / 2 > bw + bsl && x + aw - ah / 2 - cw >= bsl ) 
				{ c.style.left = x + aw - ah / 2 - cw; }
			else 
				{ c.style.left = x + ah / 2; }
			if (y + ch + ah / 2 > bh + bst && y + ah / 2 - ch >= bst ) 
				{ c.style.top = y + ah / 2 - ch; }
			else 
				{ c.style.top = y + ah / 2; }
			c.style.visibility = "visible";
}	}	}
function msoCommentHide(com_id) 
{
	if(msoBrowserCheck())
		{
		c = document.all(com_id);
		if (null != c && null == c.length)
		{
		c.style.visibility = "hidden";
		c.style.left = -1000;
		c.style.top = -1000;
		} } 
}
function msoBrowserCheck()
{
	ms = navigator.appVersion.indexOf("MSIE");
	vers = navigator.appVersion.substring(ms + 5, ms + 6);
	ie4 = (ms > 0) && (parseInt(vers) >= 4);
	return ie4;
}
if (msoBrowserCheck())
{
	document.styleSheets.dynCom.addRule(".msocomanchor","background: infobackground");
	document.styleSheets.dynCom.addRule(".msocomoff","display: none");
	document.styleSheets.dynCom.addRule(".msocomtxt","visibility: hidden");
	document.styleSheets.dynCom.addRule(".msocomtxt","position: absolute");
	document.styleSheets.dynCom.addRule(".msocomtxt","top: -1000");
	document.styleSheets.dynCom.addRule(".msocomtxt","left: -1000");
	document.styleSheets.dynCom.addRule(".msocomtxt","width: 33%");
	document.styleSheets.dynCom.addRule(".msocomtxt","background: infobackground");
	document.styleSheets.dynCom.addRule(".msocomtxt","color: infotext");
	document.styleSheets.dynCom.addRule(".msocomtxt","border-top: 1pt solid threedlightshadow");
	document.styleSheets.dynCom.addRule(".msocomtxt","border-right: 2pt solid threedshadow");
	document.styleSheets.dynCom.addRule(".msocomtxt","border-bottom: 2pt solid threedshadow");
	document.styleSheets.dynCom.addRule(".msocomtxt","border-left: 1pt solid threedlightshadow");
	document.styleSheets.dynCom.addRule(".msocomtxt","padding: 3pt 3pt 3pt 3pt");
	document.styleSheets.dynCom.addRule(".msocomtxt","z-index: 100");
}
// ]]></script>
<!--[endif]--><!--
 /* Font Definitions */
 @font-face
	{font-family:Wingdings;
	panose-1:5 0 0 0 0 0 0 0 0 0;
	mso-font-charset:2;
	mso-generic-font-family:auto;
	mso-font-pitch:variable;
	mso-font-signature:0 268435456 0 0 -2147483648 0;}
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;
	mso-font-charset:0;
	mso-generic-font-family:roman;
	mso-font-pitch:variable;
	mso-font-signature:-1610611985 1107304683 0 0 159 0;}
@font-face
	{font-family:"Arial Unicode MS";
	panose-1:2 11 6 4 2 2 2 2 2 4;
	mso-font-charset:128;
	mso-generic-font-family:swiss;
	mso-font-pitch:variable;
	mso-font-signature:-134238209 -371195905 63 0 4129279 0;}
@font-face
	{font-family:"\@Arial Unicode MS";
	panose-1:2 11 6 4 2 2 2 2 2 4;
	mso-font-charset:128;
	mso-generic-font-family:swiss;
	mso-font-pitch:variable;
	mso-font-signature:-134238209 -371195905 63 0 4129279 0;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{mso-style-unhide:no;
	mso-style-qformat:yes;
	mso-style-parent:"";
	margin:0in;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:"Arial","sans-serif";
	mso-fareast-font-family:"Arial Unicode MS";
	mso-bidi-font-family:"Times New Roman";}
p.MsoCommentText, li.MsoCommentText, div.MsoCommentText
	{mso-style-noshow:yes;
	mso-style-unhide:no;
	mso-style-link:"Comment Text Char";
	margin:0in;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:"Arial","sans-serif";
	mso-fareast-font-family:"Arial Unicode MS";
	mso-bidi-font-family:"Times New Roman";}
span.MsoCommentReference
	{mso-style-noshow:yes;
	mso-style-unhide:no;
	mso-ansi-font-size:8.0pt;
	mso-bidi-font-size:8.0pt;}
span.CommentTextChar
	{mso-style-name:"Comment Text Char";
	mso-style-noshow:yes;
	mso-style-unhide:no;
	mso-style-locked:yes;
	mso-style-link:"Comment Text";
	font-family:"Arial","sans-serif";
	mso-ascii-font-family:Arial;
	mso-hansi-font-family:Arial;}
.MsoChpDefault
	{mso-style-type:export-only;
	mso-default-props:yes;
	font-size:10.0pt;
	mso-ansi-font-size:10.0pt;
	mso-bidi-font-size:10.0pt;
	mso-fareast-font-family:"Arial Unicode MS";}
@page Section1
	{size:8.5in 11.0in;
	margin:1.0in 1.0in 1.0in 1.0in;
	mso-header-margin:.5in;
	mso-footer-margin:.5in;
	mso-paper-source:0;}
div.Section1
	{page:Section1;}
--><!--[if gte mso 10]>
<mce:style><! 
 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:"Table Normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-priority:99;
	mso-style-qformat:yes;
	mso-style-parent:"";
	mso-padding-alt:0in 5.4pt 0in 5.4pt;
	mso-para-margin:0in;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:"Times New Roman","serif";}
-->
<!--[endif]-->
<p class="MsoNormal"><strong><span style="font-size: 12pt;">Report Power Impacted
Signals</span></strong><strong></strong></p>
<p class="MsoNormal"><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></p>
<p class="MsoNormal"><span>The Verdi</span><span>&trade;</span><span> Automated Debug system supports the
standard power formats, Common Power Format (CPF) and Unified Power Format
(UPF), as well as the related power-aware debugging capability. <a>This was
initially introduced in the 2009.10 newsletter.</a></span><span class="MsoCommentReference"><span style="font-size: 8pt;"><!--[if !supportAnnotations]--><a id="_anchor_1" class="msocomanchor" onmouseover="msoCommentShow('_anchor_1','_com_1')" onmouseout="msoCommentHide('_com_1')" name="_msoanchor_1" href="/rss#_msocom_1">[bc1]</a><!--[endif]--><span>&nbsp;</span></span></span></p>
<p class="MsoNormal"><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></p>
<p class="MsoNormal"><span>Typically,
designers for CPF/UPF power intent files and designers of HDL are not the same.
To help HDL designers quickly grasp which signals are impacted by the power
intent, a <strong>Tools </strong></span><strong><span style="font-family: Wingdings;"><span>&agrave;</span></span></strong><strong><span>
Report Impacted Signals </span></strong><span>command
is provided in the <em>Power Manager</em>
window (invoked via the <strong>File </strong></span><strong><span style="font-family: Wingdings;"><span>&agrave;</span></span></strong><strong><span> Import
CPF/UPF Files</span></strong><span> command in <em>nTrace</em>). When the <strong>Tools </strong></span><strong><span style="font-family: Wingdings;"><span>&agrave;</span></span></strong><strong><span>
Report Impacted Signals </span></strong><span>command
is executed, the </span><em>Report Power Impacted
Signals</em> form <span>will open. The form
lists</span> <span>all signals which are
impacted by the power intent (imported from the UPF/CPF files). See the
following figure<span style="color: blue;"> </span>for an example of the form.</span></p>
<div><!--[if !supportAnnotations]-->

<hr class="msocomoff" size="1" />
<!--[endif]-->
<div><!--[if !supportAnnotations]-->
<div id="_com_1" class="msocomtxt" onmouseover="msoCommentShow('_anchor_1','_com_1')" onmouseout="msoCommentHide('_com_1')"><!--[endif]--><span><!--[if !supportAnnotations]--><a name="_msocom_1"></a><!--[endif]--></span>
<p class="MsoCommentText"><span class="MsoCommentReference"><span style="font-size: 8pt;"><span>&nbsp;<!--[if !supportAnnotations]--><a class="msocomoff" href="/rss#_msoanchor_1">[bc1]</a><!--[endif]--></span></span></span>Karim,
can you put a link to this old article?</p>
<!--[if !supportAnnotations]--></div>
<!--[endif]--></div>
</div>
</div> ]]></description>
	<pubDate>Fri, 06 Aug 2010 16:47:19 -0500</pubDate>
	<guid isPermaLink="false">http://www.springsoft.com/community/blog/power-impacted-signals</guid>
	<dc:creator>SpringSoft</dc:creator>
	
</item><item>
	<title>Upgrade to the New Unified FSDB Dumper with Good Reasons </title>
	<link>http://www.springsoft.com/community/blog/upgrade-fsdb-dumper</link>
	<description><![CDATA[ <h2>Upgrade to the New Unified FSDB Dumper with Good Reasons</h2>
<p>A new breed of FSDB dumper has been provided since Novas 2009.10. Different from previous FSDB dumpers, the new dumper is unified to support a broader range of simulators andversions. Currently, the new dumper can support Cadence IUS 6.2, Synopsys VCS2006.06, Mentor Graphics ModelSim 6.4b and their later versions. <a href="technology/springsoft-newsletter-info/unified-fsdb-feb-2010">This topic was originally introduced in the 2010.02 newsletter.</a></p>
<p>Upgrading to the new dumper (this is recommended if you are using Novas 2010 or later versions) has the following advantages:</p>
<ul>
<li>Supportfor the latest versions of simulators</li>
<li>Simplified list of dumping tasks, command-line options, and environment variables
<ul>
<li>Tasks/options/environmentvariables are now shared across all simulators (Cadence, Mentor, Synopsys)</li>
<li>Consolidated items and functionality</li>
</ul>
</li>
<li>Increased dumping performance with multi-threaded architecture
<ul>
<li>Takes advantage of multi-core or multi-CPU systems</li>
</ul>
</li>
<li>Simplified dumper library naming; simulator version no longer required
<ul>
<li>No needto update invocation scripts with new simulator versions</li>
</ul>
</li>
<li>Simplified support for multiple FSDB files
<ul>
<li>Specify the FSDB file as an option to the $fsdbDumpvars command</li>
</ul>
</li>
<li>Added Siloti ESA and enhanced Siloti ES dumping flows</li>
</ul>
<p>For an overview ofthe new dumper, refer to the "New Unified FSDB Dumper" application note locatedin the knowledge base (KB#8192-18) of the SpringSoft support website (support.springsoft.com).For complete details on the using the new dumpers, refer to the Linking Novas Files with Simulators andEnabling FSDB Dumping (&lt;NOVAS_INST_DIR&gt;/doc/linking_dumping.pdf) manual.</p> ]]></description>
	<pubDate>Fri, 06 Aug 2010 16:43:53 -0500</pubDate>
	<guid isPermaLink="false">http://www.springsoft.com/community/blog/upgrade-fsdb-dumper</guid>
	<dc:creator>SpringSoft</dc:creator>
	
</item><item>
	<title>Use Auto Create Wire to Create Wire Segments for Floating Pins</title>
	<link>http://www.springsoft.com/community/blog/auto-create-wire</link>
	<description><![CDATA[ <h2><strong>Use Auto
Create Wire to Create Wire Segments for Floating Pins </strong></h2>
<p>The Laker<sup>TM</sup> Advanced Design Platform (ADP) unites the
full-featured Laker schematic editor, open simulation console and waveform
analyzer to provide a complete solution for the rapid design of your analog,
mixed-signal, memory, and custom digital IC designs. </p>
<p>Laker ADP provides the unique <strong>Auto Create Wire</strong>
function that enables you to
automatically create wire segments for floating pins of the selected (or all) instances
in the <em>Schematic Editor</em> window.
Therefore, you don't have to select each floating pin and then create a wire
segment for each of them manually. Wire names can be auto-assigned by the tool,
the same as the pin name or created based on a user-specified name pattern
(consisting of the Laker ADP predefined variables). </p>
<p>For example, to create
a user-defined pattern, turn on the <strong>User-defined</strong>
option on the <em>Auto Create Wire</em> form (invoked
by <strong>Create &gt;</strong><strong> Auto
Create Wire</strong>) in the <em>Schematic Editor</em> window. Then use the
three Laker ADP predefined variables: <strong>i</strong>,
<strong>p</strong>, <strong>aw</strong> (case insensitive) to edit the new net name pattern; the
variable <strong>i</strong> represents the instance
name, the variable <strong>p</strong> represents the
port name, and the variable <strong>aw</strong>
represents the value resolved from the preserved Symbol/Instance parameters <strong>aw_L</strong>, <strong>aw_B</strong>, <strong>aw_R</strong>, <strong>aw_T</strong> and <strong>aw_A</strong>. The<strong> aw_L</strong>, <strong>aw_B</strong>, <strong>aw_R</strong> and <strong>aw_T</strong> (case
insensitive) parameters represent the net name for Left, Bottom, Right, and Top
pins respectively. <strong>aw_A</strong> is the
global naming rule for pins in any direction if <strong>aw_L</strong>, <strong>aw_B</strong>, <strong>aw_R</strong>, <strong>aw_T</strong> are not specified particularly.</p>
<p>Here is an example of
automatically creating wires for the selected instance with a user defined net
name pattern:</p>
<ol>
<li>In the <em>Schematic
Editor</em> window, invoke <strong>Create &gt;</strong><strong> Auto
Create Wire</strong> to open the <em>Auto Create Wire</em> form, and turn on the <strong>User-defined</strong> option. </li>
<li>Enter the net name pattern "<em>${I}_${P}${aw}</em>" in the text field next
to the <strong>User-defined</strong> option. </li>
<li>Select the instance <em>i1.</em> Then invoke<em> </em><strong>Query &gt;</strong><strong>
Attribute </strong>to open the instance's
<em>Attribute</em> form.</li>
<li>In the <strong>Parameter</strong>
tab of the <em>Attribute</em> form, add <strong>aw_A</strong> and <strong>aw_L</strong> parameters, and enter the value "<em>_all</em>" and "<em>_Left</em>"
respectively. Then click the <strong>Apply</strong>
button,</li>
<li>Go back to the <em>Auto Create Wire</em> form, click the <strong>OK</strong> button. </li>
<li>Four wire segments are automatically created
and connected to the four floating pins of the instance <em>i1</em>.</li>
</ol>
<blockquote>
<ul>
<li>On
pin <em>A</em> which is on the left of the
instance, the new wire name is assigned "<em>i1_A_Left</em>".
Where "<em>i1"</em> is the instance name, "<em>A"</em> is the port name and "<em>_Left"</em>
is the value of the parameter <strong>aw_L</strong>. </li>
<li>On
pin <em>en_b </em>which is on the top of the
instance, the new wire name is assigned "<em>i1_en_b_all</em>".
Where "<em>i1"</em> is the instance name, "<em>en_b"</em> is the port name and "<em>_all"</em>
is the value of the parameter <strong>aw_A</strong>. Actually,
the <strong>aw</strong> variable should take the value
of <strong>aw_T</strong> first. However, in this
case, the <strong>aw_T</strong> parameter is not
defined. As a result, it takes the value of <strong>aw_A</strong> (<em>_all</em>) instead.</li>
<li>Similar
to pin <em>en_b</em>, the new wire segment
created for the floating pins <em>en</em> and <em>Y </em>are<em>
i1_en_all </em>and<em> i1_Y_all.</em></li>
</ul>
</blockquote>
<p style="text-align: center;"><img src="assets/images/newsletter/May2010/laker-1.gif" alt="" width="450" height="293" /></p>
<p style="text-align: left;">&nbsp;</p> ]]></description>
	<pubDate>Tue, 25 May 2010 16:17:37 -0500</pubDate>
	<guid isPermaLink="false">http://www.springsoft.com/community/blog/auto-create-wire</guid>
	<dc:creator>SpringSoft</dc:creator>
	
</item><item>
	<title>Report Selected Signals in Waveform View </title>
	<link>http://www.springsoft.com/community/blog/report-signal-waveform</link>
	<description><![CDATA[ <h2><strong>Report
Selected Signals in Waveform View</strong><strong> </strong></h2>
<p>The
Verdi system provides a batch mode utility <strong>fsdbreport</strong>
to write out specific signal transitions in a specific time range. However,
sometimes it would be more convenient to generate this report from the GUI -
since you can view and select signals you would like to report from the
intuitive waveform view interactively. Starting from Verdi 2010.04 onward, a
GUI command <strong>File &gt; </strong><strong>Report
Selected Signals</strong> is provided
in the waveform view. You can select desired signals in the waveform view, and
then invoke the command to open the form as shown below to generate an ASCII
report for signal transitions.</p>
<p style="text-align: center;"><img src="assets/images/newsletter/May2010/verdi-2.gif" alt="" width="450" height="199" /></p>
<p>With this command the Verdi system
generates an ASCII report for your selected signals within the specified time
range. All options in the <strong>fsdbreport</strong>
utility can also be specified in this form in the <strong>Options</strong> text field. </p>
<p>&nbsp;</p> ]]></description>
	<pubDate>Tue, 25 May 2010 16:15:58 -0500</pubDate>
	<guid isPermaLink="false">http://www.springsoft.com/community/blog/report-signal-waveform</guid>
	<dc:creator>SpringSoft</dc:creator>
	
</item><item>
	<title>Load Partial Design into Verdi</title>
	<link>http://www.springsoft.com/community/blog/verdi-partial-design</link>
	<description><![CDATA[ <h2><strong>Load Partial Design into Verdi</strong><strong> </strong></h2>
<p><strong>&nbsp;</strong>The Verdi system provides a way
to only load partial designs from a compiled library using the command line
option <strong>-impConf</strong>. To use this option,
you can create a configuration file which includes one or more scopes to be
loaded. For example, the configuration file content could contain the
following:</p>
<p>[Partial_load]<br />System.i_cpu</p>
<p>If you create a configuration file like above and
import it with the command line option <strong>-impConf</strong>,
you will find that only the scope System.i_cpu and all its sub-scopes has been
loaded. Other scopes in this case will be treated and marked as undefined
objects in the Verdi system. </p>
<p>Starting from Verdi 2010.04
onward, the configuration file has been extended to let you specify sub-scopes to
exclude or modules under the partial loaded scope. For example you can specify
a configuration file as below:</p>
<p>[Partial_load]<br />System.i_cpu<br />[Exclude]<br />CCU</p>
<p>After you load the design with <strong>-impConf</strong> option, you will find that the
CCU module has been marked as undefined even though it's under the partial
loaded scope. The following figure demonstrates how it will be shown in the Verdi
system.</p>
<p style="text-align: center;"><img src="assets/images/newsletter/May2010/verdi-1.gif" alt="" width="231" height="212" /></p>
<p style="text-align: left;">Note that both instance names and module names are supported for excluding - if a module name was specified then all its instantiations will be treated as undefined.</p> ]]></description>
	<pubDate>Tue, 25 May 2010 16:13:24 -0500</pubDate>
	<guid isPermaLink="false">http://www.springsoft.com/community/blog/verdi-partial-design</guid>
	<dc:creator>SpringSoft</dc:creator>
	
</item><item>
	<title>SpringSoft Customer Satisfaction Survey Results</title>
	<link>http://www.springsoft.com/community/blog/survey-results</link>
	<description><![CDATA[ <h2><strong>SpringSoft Customer Satisfaction Survey Results</strong></h2>
<p>SpringSoft would like to thank all of those that
participated in our annual Customer Satisfaction Survey. The survey was
conducted by a third-party research firm for objective measurement. The
identities of the survey participants have not been shared with SpringSoft.</p>
<p>As you'll see from the results, our overall web site
(external and support) had a relatively low satisfaction rating.&nbsp; We have
currently put plans in place to upgrade our external and support web site to be
more user friendly.</p>
<p><a href="assets/files/news/Company/2009_Survey_Results.pdf" target="_blank">See results here.</a></p>
<p>&nbsp;</p> ]]></description>
	<pubDate>Fri, 26 Mar 2010 16:14:23 -0500</pubDate>
	<guid isPermaLink="false">http://www.springsoft.com/community/blog/survey-results</guid>
	<dc:creator>SpringSoft</dc:creator>
	
</item><item>
	<title>New and Exciting Solutions at SpringSoft!</title>
	<link>http://www.springsoft.com/community/blog/Q1-2010-news</link>
	<description><![CDATA[ <p>New and Exciting Solutions at SpringSoft!</p>
<p>Have you been paying attention to the new and exciting EDA solutions that SpringSoft has been announcing in 2010?</p>
<p><a href="news-events/news/product-news" target="_blank">Read the news by clicking here.</a></p>
<p><a href="assets/files/news/SpringSoftNewsQ12010.pdf" target="_blank">You can also download and see all the news here.</a></p> ]]></description>
	<pubDate>Mon, 22 Mar 2010 18:23:51 -0500</pubDate>
	<guid isPermaLink="false">http://www.springsoft.com/community/blog/Q1-2010-news</guid>
	<dc:creator>SpringSoft</dc:creator>
	
</item><item>
	<title>Interoperable PCell Standard 1.0 Released by IPL Alliance</title>
	<link>http://www.springsoft.com/community/blog/pcell-ipl-laker</link>
	<description><![CDATA[ <h2>Interoperable PCell Standard 1.0 Released by IPL Alliance</h2>
<p>By now, you may know that the IPL (Interoperable PDK Libraries) Alliance has released the first interoperable PCell standard. What you may not know is that SpringSoft is a founding member of the IPL. The release of the Standard is the culmination of more than two years of effort by the founders and members of the IPL. You can see and download this new Standard on the IPL web site at www.iplnow.com. The download includes a generic 90nm interoperable process design kit (iPDK), reference design, sample PyCell<sup>TM</sup> library (including PyCell source code), User's Guide, and a Developer's Guide that includes information about how to create PCells that are interoperable with most major EDA tools running on OpenAccess.</p>
<p>IPL iPDKs are based on the OpenAccess database and API from Silicon Integration Initiative (Si2), the free Ciranova PyCell Studio<sup>TM</sup> software/API, and use standard scripting languages such as Tcl and Python that enable advanced PCell functionality and unparalleled interoperability. </p>
<p>Today there are more than 20 IPL members, including founding members AWR, Ciranova, SpringSoft, Synopsys and foundries L-foundry, Tower-Jazz and TSMC. The up to date member list is available on the web site. Companies may join at no cost by applying on the site. Members enjoy access to additional technical details of the Standard.</p>
<p>The IPL Alliance, an industry-wide collaborative effort to create and promote standards for interoperable PDKs was announced in April 2007 with the release of the first interoperable PyCell library. Since that time, this sample library has been downloaded more than 1,000 times, which tells us that we were on the right track. By DAC in 2008, TSMC had joined the IPL and the first multi-vendor interoperable PCell-based design was demonstrated by passing design and layout data back and forth among 8 tools from 5 different EDA vendors. This was done in real time, and without any data translation from a single disk file. At DAC in 2009, TSMC announced the world's first commercial iPDK, a comprehensive interoperable 65nm MS/RF PCell library which uses the IPL technology. Support for the TSMC iPDK was announced by every major EDA vendor including SpringSoft, one of the iPDK validation partners. With the release of IPL Standard 1.0, the same capability is now available to everybody who wants to create or use interoperable PDKs.</p>
<p>The IPL interoperable PyCells are written in the open Python scripting language using the free Ciranova PyCell Studio which includes extensive PCell-specific extensions, an interactive environment for PyCell development and the OpenAccess-compatible API. PyCells can enable stretch handles and autoabut capability and all of the most advanced PCell features. Users tell us that PyCells have significantly fewer lines of code, and execute more quickly than comparable PCells in common use today.</p>
<p style="text-align: center;"><img src="assets/images/newsletter/march2010/Laker-1.gif" alt="" width="283" height="175" /></p>
<p style="text-align: center;"><img src="assets/images/newsletter/march2010/Laker-2.gif" alt="" width="398" height="164" /></p>
<p style="text-align: left;">Tools based on OpenAccess, like the S<a href="products/custom-design-and-layout/laker-custom-layout-system">pringSoft  Laker Custom Layout System</a> are able to open, read, and modify schematics and layout for IPL-compatible PyCells that are implemented by the tools of other vendors. Changes implemented in one tool will be reflected in the next tool in the flow because the format has been agreed to by all members. </p>
<p style="text-align: left;">Besides PyCells, the IPL standard includes syntax and methodologies for writing interoperable properties and parameters - often referred to as iCDF (interoperable Component Description Format). iCDF is an interoperable format for a file that describes the parameter names, how they are displayed, which parameters are editable by the user, and the default parameter values for the PyCells. iCDF essentially contains the contents of the form that pops up when a PyCell (layout) or its symbol (schematic) are placed. The forms will look different in different tools, but the values, permissions and naming will be the same because they have been made interoperable.</p>
<p style="text-align: left;">Callbacks are another essential - previously proprietary - part of PCells. Advanced PCells offer the ability to substitute formulas or functions ("callbacks") for some variables so that necessary relationships between the shapes are maintained. At a simple level, the callbacks can not only control the input of legal values (such as width &gt; 0) but can define what the tools should do if an illegal value is entered in the parameter attribute form: should it be a warning message, should it automatically supply the nearest legal value, or both? In addition, callbacks are used to maintain dependent parameters: In the first example above, when the poly gate width is increased by stretching the OD (diffusion) layer, callbacks maintain the poly endcap dimension; make the change symmetrical to the center of the transistor; and adds additional contacts when enough space is created. Callback function names are usually stored in the CDF but the callbacks themselves, like PCells, are written in the scripting language Tcl with an agreed upon syntax so that they will behave identically in all tools.</p>
<p style="text-align: left;">The OA-based version of Laker Custom Layout has undergone extensive interoperability testing during the TSMC iPDK development as well as in independent testing among the IPL partners. Comprehensive testing of advanced PyCell, CDF and callback functions was done to "road test" the standard before release.</p>
<p style="text-align: left;">An interoperable PDK benefits the entire silicon design chain including users, semiconductor companies, foundries and EDA vendors. The standardization of PDKs benefits custom IC designers by removing bottlenecks in multiple-vendor flows and providing access to innovative new tools. iPDKs can reduce PDK development cost and cycle time for foundries and IDMs while providing designers quicker access to new advanced process technologies.</p>
<p style="text-align: left;">The IPL Standard adds full interoperability, the ability to use TSMC iPDKs and is supported by most OpenAccess-compatible EDA tools. Long-time users of Laker will be pleased to know that the familiar Laker MCell<sup>TM</sup> built-in parameterized devices, UDD (User-Defined Device) GUI-driven parameterized devices, Tcl PCells and their related automation features continue to be supported and improved in the OpenAccess-based version of Laker. As always, all Laker parameterized devices are readable in other tools without additional software. In addition, the iPDK PyCells may be mixed and matched with any combination of other Laker devices to optimize your work flow.</p> ]]></description>
	<pubDate>Wed, 17 Mar 2010 11:43:19 -0500</pubDate>
	<guid isPermaLink="false">http://www.springsoft.com/community/blog/pcell-ipl-laker</guid>
	<dc:creator>SpringSoft</dc:creator>
	
</item><item>
	<title>Reducing Memory Usage when Using Simulation Model in Behavior Analysis  </title>
	<link>http://www.springsoft.com/community/blog/memory</link>
	<description><![CDATA[ <h2>Reducing Memory Usage when Using Simulation Model in Behavior Analysis  </h2>
<p>In the previous Behavior Analysis flow, the symbol library mode is recommended over the simulation model to get better performance and memory usage. This is because when the Behavior Analysis engine uses the simulation model, it will look into the library cell to get its equation which consumes a large amount of memory, especially in big gate-level designs. However, the simulation model sometimes has to be used, for example, when the liberty file is not complete, or users would like to maintain the exact behavior of simulation model, etc. To resolve the memory usage issue, SpringSoft has implemented a new technology which can speed up the performance and reduce the memory usage when using the simulation model in Behavior Analysis. The basic idea is to convert the HDL simulation model to an internal symbol library which can be used by Behavior Analysis, in this way the Behavior Analysis does not need to look into each library cell but can still get the correct equation, so that the memory usage will be reduced efficiently. To use this mechanism, users need to import the HDL simulation model with the -y or -v options when compiling the design. The mechanism is transparent to users so users do not need to make any change in the Verdi/Siloti systems. This new technology will be released in the upcoming Novas 2010.04 version.</p>
<p>&nbsp;</p> ]]></description>
	<pubDate>Wed, 17 Mar 2010 11:41:28 -0500</pubDate>
	<guid isPermaLink="false">http://www.springsoft.com/community/blog/memory</guid>
	<dc:creator>SpringSoft</dc:creator>
	
</item><item>
	<title>New Essential Signal Analysis Result Format along with Enhanced Essential Signal Dumping Flow </title>
	<link>http://www.springsoft.com/community/blog/essential-signal-siloti</link>
	<description><![CDATA[ <h2><strong>New Essential Signal Analysis
Result Format along with Enhanced Essential Signal Dumping Flow</strong></h2>
<p>The Essential Signal
analysis and dumping flow in the <a href="products/visibility-automation/siloti">Siloti<sup>TM</sup> Visibility Automation System</a> was refined in the Novas 2010.01 release.
The purpose of the change is to make the usage smoother. It enables users to
dump Essential Signal FSDB files in the full dump environment without having to
touch and recompile the design. Also, the output of Essential Signal Analysis
is changed from a text file to a binary database (ESDB). The ESDB supports setting
most ESA options at simulation run time; therefore, most of the options can be
deferred to simulation run time instead of having to rerun ESA (time consuming)
whenever the required ESA options are different. The new ESDB and ES dumping
flow is considered <span style="text-decoration: underline;">general beta</span> in Novas 2010.01.</p>
<p>Here is an example
showing how to do Essential Signal
Analysis and Essential Signal dumping in the enhanced flow:</p>
<ul class="unIndentedList">
<li>
To dump essential signals to FSDB (ES dumping),
you need to perform Essential Signal Analysis (ESA) on your design. The output
of the ESA is an ESDB binary file which contains the essential signals of the
design.</li>
<li>
You can perform ESA via using the <em>esa</em> utility or the Siloti system;
however, the following environment variable must be set before invoking the
Siloti system or the esa utility.</li>
</ul>
<p style="padding-left: 60px;">&gt; setenv <strong>SILOTI_ESDB</strong> 1 </p>
<ul class="unIndentedList">
<li>
If you use the <em>esa</em> utility to do ESA, then you need to specify the -db option on
the <em>esa</em> utility command line to
indicate the output should be an ESDB file. For example,</li>
</ul>
<p style="padding-left: 60px;">&gt; esa
<strong>-db</strong> es <strong>-top</strong> top</p>
<ul class="unIndentedList">
<li>
Assume your current design contains a <em>$fsdbDumpvars</em> dumping command to dump
signals to FSDB file, for example:</li>
</ul>
<p style="padding-left: 60px;">//test.v</p>
<p style="padding-left: 60px;">initial</p>
<p style="padding-left: 60px;">&nbsp;&nbsp;
begin</p>
<p style="padding-left: 60px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
$fsdbDumpfile("dump.fsdb");</p>
<p style="padding-left: 60px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; $fsdbDumpvars;</p>
<p style="padding-left: 60px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
#12500 $finish;</p>
<p style="padding-left: 60px;">&nbsp;&nbsp; end</p>
<ul class="unIndentedList">
<li>
And your simulation executable is already linked
with the new re-architected dumper
(available in 2010, refer to the
<em>Linking Novas Files with</em><em> Simulators
and Enabling</em><em> FSDB Dumping</em>
document, &lt;NOVAS_INST_DIR&gt;/doc/linking_dumping.pdf) similar to the following VCS/simv
example:</li>
</ul>
<p style="padding-left: 60px;">&gt; vcs -full64 +memcbk +cli+3 -debug_all
+v2k +vpi +vcsd <strong>-LDFLAGS </strong></p>
<p style="padding-left: 60px;"><strong>"-L/$NOVAS_HOME/share/PLI/lib/LINUX64
</strong></p>
<p style="padding-left: 60px;"><strong>-L/$NOVAS_HOME/share/PLI/VCS/LINUX64"&nbsp; </strong></p>
<p style="padding-left: 60px;"><strong>-P
$NOVAS_HOME/share/PLI/VCS/LINUX64/novas.tab
$NOVAS_HOME/share/PLI/VCS/LINUX64/pli.a</strong> +vcs+lic+wait test.v</p>
<ul class="unIndentedList">
<li>
Now, to do ES dumping, you can simply specify
the ESDB file on the simulator command line without modifying code. Because the design is untouched for ES
dumping, there is no need to regenerate the simulator executable <em>simv</em>. That is, the same <em>simv</em> can be used for both full and ES
dumping.</li>
<li>
To dump
ESD FSDB by specifying ESDB in simulator command line, use the following:</li>
</ul>
<p style="padding-left: 60px;">&gt; simv <strong>+fsdb+esdb</strong>="es" +fsdb+esoptions="-xsignalfile
my.list </p>
<p style="padding-left: 60px;">-xscope top"</p>
<ul class="unIndentedList">
<li>
Where <strong>+fsdb+esdb</strong>=esdb_filename
is used to specify the ESDB file name and <strong>+fsdb+esoptions</strong>="option_list"
(optional) is used to specify ESA options.</li>
<li>
When the <strong>+fsdb+esdb</strong>=<em>esdb_filename</em> option is specified, the
Novas dumper would dump the set of essential signals that can achieve the same
visibility (after Data Expansion) as the union of all <em>$fsdbDumpvars</em> commands in design. For instance, if there is one <em>$fsdbDumpvars</em> command <em>$fsdbDumpvars</em>(2, system) specified in
design, the ES dump would result in dumping the minimal set of Essential
Signals that can be expanded to achieve full visibility over 2 levels of scopes
under the system scope.</li>
<li>
You can load the resulting ESD FSDB file that
contains dumping of essential signals only to the Siloti system to debug. The
Siloti system would perform Data Expansion on demand on the Essential Signals
as if you have full visibility.</li>
</ul>
<p>&nbsp;</p> ]]></description>
	<pubDate>Wed, 17 Mar 2010 11:37:58 -0500</pubDate>
	<guid isPermaLink="false">http://www.springsoft.com/community/blog/essential-signal-siloti</guid>
	<dc:creator>SpringSoft</dc:creator>
	
</item><item>
	<title>Integration with Verdi Speeds Certitude Setup and Eases Analysis and Debug</title>
	<link>http://www.springsoft.com/community/blog/verdi-certitude</link>
	<description><![CDATA[ <h2>Integration with Verdi Speeds Certitude Setup and Eases Analysis and Debug</h2>
<p>The <a href="products/functional-qualification/certitude">Certitude<sup>TM</sup> Functional Qualification System</a> identifies holes and weaknesses in the verification environment that can let RTL bugs slip through the process undetected.  With the release of version 2010.04 in April, <a href="products/debug-automation/verdi">Verdi<sup>TM</sup></a> users will be able to leverage their existing Verdi environment to minimize Certitude setup effort and analyze the results of functional qualification quickly and efficiently using Verdi's powerful debug features.</p>
<p>To ease the setup process, the Verdi system provides a new utility called setupCer that operates on the compiled Knowledge Database (KDB) libraries and generates templates for the files needed to run Certitude.  The template files identify the relevant HDL files and locations and ensure that they are listed in the proper order for correct compilation.  Users can modify the templates to mark the HDL files to be qualified and specify additional session-specific information prior to running Certitude.</p>
<p>Links from Certitude's Report Viewer to the Verdi system enable quick and efficient analysis of the functional qualification results in Verdi's familiar and powerful environment.  The integration provides push-button access to waveforms for the original RTL and the RTL with fault inserted and displays the highlighted nTrace source code view with fault location information (Figure 1).</p>
<p style="text-align: center;"><img src="assets/images/newsletter/march2010/verdi-certitude.gif" alt="" width="500" height="203" /></p>
<p style="text-align: center;"><em>Figure 1:  Links from Certitude Report Viewer to Verdi for analysis and debug</em></p>
<p>After jumping to the Verdi environment, users have access to Verdi's powerful debug features to analyze the results and determine the fix (new checker, additional test scenario, etc) required to improve the verification environment.</p>
<p>&nbsp;</p> ]]></description>
	<pubDate>Wed, 17 Mar 2010 11:37:40 -0500</pubDate>
	<guid isPermaLink="false">http://www.springsoft.com/community/blog/verdi-certitude</guid>
	<dc:creator>SpringSoft</dc:creator>
	
</item><item>
	<title>Find Signals with Regular Expression </title>
	<link>http://www.springsoft.com/community/blog/signals-with-expression</link>
	<description><![CDATA[ <h2><strong>Find Signals with
Regular Expression</strong><strong>&nbsp; </strong></h2>
<p>The Verdi system supports searching signals by <em>Regular Expression</em>. This capability
provides a flexible way for users to find signals of interest quickly. The
following steps provide an example for how to use this capability.</p>
<p style="padding-left: 30px;">1.&nbsp;&nbsp;&nbsp;&nbsp;
In <em>nWave</em>
(with a loaded FSDB file), invoke the command <strong>Signal -&gt; </strong><strong>Get Signals</strong> to
open the <em>Get Signals</em> form.</p>
<p style="padding-left: 30px;">2.&nbsp;&nbsp;&nbsp;&nbsp;
In the <em>Get Signals</em> form, click the <strong>Options</strong>
button to open the <em>Options</em> setting
form, turn on the <strong>Search Signals with
Regular Expression</strong> option and then press <strong>Close</strong>.</p>
<p style="padding-left: 30px;">3.&nbsp;&nbsp;&nbsp;&nbsp;
In this example we would like to find a
signal whose name starts from letter <strong>a</strong>
to letter <strong>d</strong>, let's input <strong>^[a-d]</strong> in the <strong>Find Signal</strong> field then press <strong>Enter</strong>.</p>
<p style="padding-left: 30px;">4.&nbsp;&nbsp;&nbsp;&nbsp;
As you can see in the following figure,
signals whose names start from <strong>a</strong> to <strong>d</strong> will be listed. Changing the scope in
the left pane will list signals with the same <em>Regular Expression</em> in other scopes.</p>
<p style="text-align: center;"><img src="assets/images/newsletter/february2010/verdi-2.gif" alt="" width="443" height="291" /></p> ]]></description>
	<pubDate>Thu, 18 Feb 2010 16:10:26 -0600</pubDate>
	<guid isPermaLink="false">http://www.springsoft.com/community/blog/signals-with-expression</guid>
	<dc:creator>SpringSoft</dc:creator>
	
</item><item>
	<title>Select Bit Signal and Display Entire Bus on nWave </title>
	<link>http://www.springsoft.com/community/blog/bus-on-nwave</link>
	<description><![CDATA[ <h2><strong>Select Bit Signal and Display Entire Bus on nWave</strong><strong>&nbsp; </strong></h2>
<p>The Verdi system provides the <strong>Add Full Bus</strong> command in <em>nWave</em> to automatically add the entire
bus when a bit signal is selected. The following steps and figure demonstrates
the usage of this command: </p>
<p style="padding-left: 30px;">1.&nbsp;&nbsp;&nbsp;&nbsp;
Assuming there is a one bit signal <strong>data[2]</strong> in <em>nWave</em>, and it belongs to the 8-bit bus <strong>data[7:0]</strong>.</p>
<p style="padding-left: 30px;">2.&nbsp;&nbsp;&nbsp;&nbsp;
Select this one bit signal in <em>nWave</em>, click the right-mouse-button and
invoke the command <strong>Bus Operations </strong><strong>-&gt;</strong><strong> Add Full Bus</strong>.&nbsp; Note the command will not appear unless you
have selected a bus member.</p>
<p style="padding-left: 30px;">3.&nbsp;&nbsp;&nbsp;&nbsp;
The entire 8-bit bus <strong>data[7:0]</strong> (which the selected signal
belongs to) will be automatically added under the selected signal.</p>
<p style="text-align: center;"><img src="assets/images/newsletter/february2010/verdi-1.gif" alt="" width="450" height="262" /></p> ]]></description>
	<pubDate>Thu, 18 Feb 2010 16:09:20 -0600</pubDate>
	<guid isPermaLink="false">http://www.springsoft.com/community/blog/bus-on-nwave</guid>
	<dc:creator>SpringSoft</dc:creator>
	
</item><item>
	<title>A Unified FSDB Dumper for Cadence IUS, Synopsys VCS and Mentor Graphics ModelSim Simulators </title>
	<link>http://www.springsoft.com/community/blog/fsdb-dumper-simulators</link>
	<description><![CDATA[ <p><!--





-->
<script type="text/javascript"></script>
</p>
<h2><strong>A Unified
FSDB Dumper for Cadence IUS, Synopsys VCS and Mentor Graphics ModelSim Simulators </strong></h2>
<p>A new breed of FSDB
dumper is provided since Novas 2009.10. Different from previous FSDB dumpers,
the new dumper is unified to support a broader range of simulators and
versions. Currently, the new dumper can support Cadence IUS 6.2, Synopsys VCS
2006.06, Mentor Graphics
ModelSim 6.4b and their later versions.</p>
<p>The new unified
dumper is scheduled to replace the old dumpers in the year 2010. However, the
old dumpers are still available for a considerable amount of time. For detailed
usage on the new dumper, refer to the Linking Novas Files with Simulators and Enabling FSDB Dumping document (&lt;NOVAS_INST_DIR&gt;/doc/linking_dumping.pdf). And, for detailed usage on the old
dumper, refer to the Linking Novas Files with Simulators and Enabling
FSDB Dumping document
(&lt;NOVAS_INST_DIR&gt;/doc/linking_dumping_pre-2010.01.pdf). </p>
<p>Here is a short
example showing how to load the unified
Novas FSDB dumper using the
Synopsys VCS simulator:</p>
<p style="padding-left: 30px;">l&nbsp;&nbsp;
Set shared library search path.</p>
<p style="padding-left: 30px;">&gt; setenv LD_LIBRARY_PATH \</p>
<p style="padding-left: 30px;"> <strong>${NOVAS_INST_DIR}/share/PLI/lib/${PLATFORM}:</strong>
\</p>
<p style="padding-left: 30px;"> ...</p>
<p style="padding-left: 30px;">l&nbsp;&nbsp;
Compile the design and run the simulation
command.</p>
<p style="padding-left: 30px;">&gt; vcs -line -debug_all <strong>-P
${NOVAS_INST_DIR}/share/PLI/VCS/${PLATFORM}/novas.tab
${NOVAS_INST_DIR}/share/PLI/VCS/${PLATFORM}/pli.a</strong></p>
<p style="padding-left: 30px;">&gt; simv</p>
<p>
Note that some of the FSDB
dumping commands will also become obsolete in the new unified FSDB dumper.&nbsp; The details about what
is changing for the dump commands can be found in the <a>"A Unified FSDB Dumper</a>" application note
(KB#8192-18) located in the knowledge base of the <a href="support" target="_blank">SpringSoft support website</a>.</p>
<p>&nbsp;</p> ]]></description>
	<pubDate>Thu, 18 Feb 2010 16:08:42 -0600</pubDate>
	<guid isPermaLink="false">http://www.springsoft.com/community/blog/fsdb-dumper-simulators</guid>
	<dc:creator>SpringSoft</dc:creator>
	
</item><item>
	<title>Convert the Laker system’s Layout Window to a White Background</title>
	<link>http://www.springsoft.com/community/blog/convert-laker-background</link>
	<description><![CDATA[ <h2><strong>Convert the Laker system's Layout Window to a White Background</strong></h2>
<p>On occasions where the default black background
is too dark, it is possible to change to a white background color.&nbsp; To do this, follow these steps:</p>
<p>1. Find your Laker install directory. For example:
/tools/laker.</p>
<p>2. Under the subdirectory: etc/, find the
file: leoDsgWnd.fm.</p>
<p>3. Modify the content of file: /tools/laker/etc/leoDsgWnd.fm</p>
<p>&nbsp;&nbsp;&nbsp;
Find the definition as follows and change the line highlighted in red:</p>
<p>&nbsp;</p>
<p style="padding-left: 30px;">PanedWindow WORKINGWINDOW {</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; orientation = vertical;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Form WORKINGPANEWND {</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DrawingAreaContainer ALLDRAWINGAREA
{</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; attachLeft = "Form 0";</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; attachTop = "Form 0";</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; attachRight = "Form 0";</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; attachBottom = "Form
0";</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Frame CONTEXTWND {</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; manage = FALSE;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DrawingArea DRAWINGAREAWND1 {</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; background = black;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; width = 100;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; height = 100;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;scrollbar = float;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; traverse = false;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DrawingArea SCHDRAWINGAREAWND_F {</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; manage = FALSE;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; traverse = false;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; background = black;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; width = 535;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; height = 180;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; attachRight = "Form
0";</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; attachBottom = "Form
0";</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; scrollbar = both;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DrawingArea DRAWINGAREAWND {</p>
<p style="color: #ff0000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; background
= white;&nbsp;&nbsp;&nbsp; &lt;-- Change the color here from black
to white.</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; width = 640;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; height = 640;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; attachLeft = "Form
0";</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; attachTop = "Form
0";</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; attachRight = "Form
0";</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; attachBottom = "Form
0";</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; scrollbar = float;</p>
<p>&nbsp;</p>
<p>After changing the background color, you may also need to
change the color for other features e.g. the select object color is white by
default.</p>
<p><strong>NOTE</strong>: When you
upgrade the Laker version, the modified leoDsgWnd.fm file cannot be reused. You
will need to make the modifications again in the latest Laker installation.</p>
<p>&nbsp;</p> ]]></description>
	<pubDate>Thu, 18 Feb 2010 16:08:14 -0600</pubDate>
	<guid isPermaLink="false">http://www.springsoft.com/community/blog/convert-laker-background</guid>
	<dc:creator>SpringSoft</dc:creator>
	
</item><item>
	<title>Enhanced On-Demand Assertion Debugging Methodology </title>
	<link>http://www.springsoft.com/community/blog/assertion-debug-methodology</link>
	<description><![CDATA[ <p>Assertion-based Verification (ABV) is now a widely used methodology to monitor whether the design's behavior meets the specification intent. For a big design, there may be a dozen or even hundreds of assertions in the design and, as is increasingly more common, the assertions may be spread all over the design hierarchy.  Managing assertions, visualizing results, and debugging assertions becomes a big issue in this type of environment.</p>
<p>In the Verdi<sup>TM</sup> Automated Debug System, the <em>Property Tools</em> window can manage, visualize, and debug assertions and their results.  In addition to visualizing assertion results dumped by simulators, the Verdi system provides a unique Assertion Evaluation Engine which can check assertions against a signal level FSDB trace file for the design.</p>
<p>Starting from the Verdi 2009.10 version, this debugging methodology has been enhanced. The Verdi system provides the <em>On-Demand Property/Sequence Evaluation</em> capability - users can dump assertion signals only (without dumping the associated data such as properties, sequences, and local variables of the assertions) to an FSDB file, then the Verdi system evaluates the associated data on-demand so the users will have smaller assertion dumping results but still keep full debugging capability. </p>
<p>Below is a typical scenario which demonstrates how to use the re-designed <em>Property Tools</em> window to browse assertion results and debug assertion failures:</p>
<p style="padding-left: 30px;">1.	First, load the FSDB file which contains assertions into the Verdi system, and invoke the <strong>Tools &gt; Property Tools</strong> command to open the <em>Property Tools</em> window, which can manage assertions, visualize results, and debug assertions.</p>
<p style="text-align: center;"><img src="assets/images/newsletter/January2010/enhancedassertion1.gif" alt="" width="400" height="381" /></p>
<p style="text-align: left; padding-left: 30px;">2.	You can add assertions/properties to the <em>Property Tools</em> window by dragging and dropping scope nodes from the <em>nTrace</em> window or an assertion/property from the <em>nTrace/nWave</em> windows. Or you can click the <strong>Get Properties</strong>&nbsp;<img style="vertical-align: middle;" src="assets/images/newsletter/January2010/enhancedassertion2.gif" alt="" width="22" height="22" />    icon in the <em>Property Tools</em> window to invoke the <em>Get Properties</em> form to select the properties to add to the window. Or you can drag and drop a selected assertion/property from the <strong>Property Statistics</strong> tab or the <strong>Property Details</strong> section on the right pane to add the assertion/property to the <strong>Tree/Table</strong> tabs of the left pane.</p>
<p style="padding-left: 30px; text-align: left;">3.	To delete the properties shown in the <strong>Tree/Table Tabs</strong>, simply select the nodes/rows to delete and click <strong>Delete</strong> key on the keyboard.</p>
<p style="text-align: center;"><img src="assets/images/newsletter/January2010/enhancedassertion3.gif" alt="" width="400" height="257" /></p>
<p style="padding-left: 30px;">4.	The <strong>Property Detail</strong> section is for browsing the failures, successes and incomplete data details of the selected assertions/properties. There are a couple of ways to add assertions to the <strong>Property Detail</strong> section. You can double-click on an assertion on the <strong>Tree/Table</strong> tab or with one assertion selected on <strong>Tree/Table</strong> tab, select the <strong>Add to Details</strong> command on the right mouse button menu.</p>
<p style="text-align: center;"><img src="assets/images/newsletter/January2010/enhancedassertion4.gif" alt="" width="400" height="158" /></p>
<p style="padding-left: 30px;">5.	Also, you can double-click on a grid cell on the <strong>FSDB Statistic</strong> tab to add the related assertions/properties to the <strong>Property Details</strong> section.</p>
<p style="text-align: center;"><img src="assets/images/newsletter/January2010/enhancedassertion5.gif" alt="" width="400" height="242" /></p>
<p style="padding-left: 30px;">6.	After browsing the success, failure and incomplete records for an assertion/property in the <strong>Property Details</strong> section, you can then identify a record, usually a failure record, to analyze and debug further. <br /><br />To analyze the assertion failure data, click the <strong>Analyze Property</strong> icon&nbsp;<img style="vertical-align: middle;" src="assets/images/newsletter/January2010/enhancedassertion6.gif" alt="" width="19" height="21" />   or select the <strong>Analyze Property</strong> command on the right mouse button menu. Then the analyzed results for the assertion data are shown in the <strong>Analyzer</strong> tab with the time, signal and expression value annotated. You can see easily which expression is contributing to the failure.</p>
<p style="text-align: center;"><img src="assets/images/newsletter/January2010/enhancedassertion7.gif" alt="" width="400" height="240" /></p>
<p style="text-align: left; padding-left: 30px;">7.	You can also make use of the <em>nWave</em> window to display the analyzed results of the assertion data. The analyzed data can be automatically shown in the <em>nWave</em> window if you turn on the <strong>Add Evaluated Signals to nWave Automatically</strong> and <strong>Add Signals with Assertion Expression Grouping</strong> options on the <strong>Analyzer</strong> tab in the <em>Assertion Options</em> form. The form can be invoked from <strong>View &gt; Options</strong> menu in the P<em>roperty Tools</em> window.</p>
<p style="text-align: center;"><img src="assets/images/newsletter/January2010/enhancedassertion8.gif" alt="" width="400" height="213" /></p> ]]></description>
	<pubDate>Mon, 18 Jan 2010 17:34:47 -0600</pubDate>
	<guid isPermaLink="false">http://www.springsoft.com/community/blog/assertion-debug-methodology</guid>
	<dc:creator>SpringSoft</dc:creator>
	
</item>	</channel>
</rss>
