coriolis/katabatic/doc/html/classKatabatic_1_1Katabatic...

1439 lines
82 KiB
HTML

<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.0//EN'>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Katabatic Documentation</title>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="SoC.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head>
<h1 id="pagetop" class="header">Katabatic - Routing Toolbox</h1>
<!--
<center class="header">
<table class="header">
<tr>
<td><a href="customSummary.html">Summary</a></td>
<td><a href="namespaces.html">Namespaces</a></td>
<td><a href="customHierarchy.html">Class Hierarchy</a></td>
<td><a href="annotated.html">Classes</a></td>
<td><a href="functions.html">Member Index</a></td>
</tr>
</table>
</center>
-->
<br>
<body onload="javascript:toggleLevel(1)">
<!-- Generated by Doxygen 1.8.14 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',false,false,'search.php','Search');
});
/* @license-end */</script>
<div id="main-nav"></div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespaceKatabatic.html">Katabatic</a></li><li class="navelem"><a class="el" href="classKatabatic_1_1KatabaticEngine.html">KatabaticEngine</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="classKatabatic_1_1KatabaticEngine-members.html">List of all members</a> &#124;
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> </div>
<div class="headertitle">
<div class="title">KatabaticEngine Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>The <a class="el" href="namespaceKatabatic.html" title="The namespace dedicated to Katabatic. ">Katabatic</a> Tool.
<a href="classKatabatic_1_1KatabaticEngine.html#details">More...</a></p>
<div class="dynheader">
Inheritance diagram for KatabaticEngine:</div>
<div class="dyncontent">
<div class="center"><img src="classKatabatic_1_1KatabaticEngine__inherit__graph.png" border="0" usemap="#KatabaticEngine_inherit__map" alt="Inheritance graph"/></div>
<map name="KatabaticEngine_inherit__map" id="KatabaticEngine_inherit__map">
<area shape="rect" id="node2" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/crlcore/doc/crlcore/html/crlcore.tag:../crlcore/" href="../crlcore/classCRL_1_1ToolEngine.html" title="ToolEngine" alt="" coords="22,80,116,107"/>
<area shape="rect" id="node3" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1DBo.html" title="DBo" alt="" coords="45,5,93,32"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a92ed88f9aecd2f195089c4029fa8bcc7"><td class="memItemLeft" align="right" valign="top">typedef set&lt; <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Net.html">Net</a> *, NetCompareByName &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1KatabaticEngine.html#a92ed88f9aecd2f195089c4029fa8bcc7">NetSet</a></td></tr>
<tr class="separator:a92ed88f9aecd2f195089c4029fa8bcc7"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a83a7793270669d2669222eac2caa7f93"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1KatabaticEngine.html#a83a7793270669d2669222eac2caa7f93">isGMetal</a> (const <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Layer.html">Layer</a> *) const</td></tr>
<tr class="separator:a83a7793270669d2669222eac2caa7f93"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab6b7bc2b47ead460ac00a531451dc9cf"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1KatabaticEngine.html#ab6b7bc2b47ead460ac00a531451dc9cf">isChip</a> () const</td></tr>
<tr class="separator:ab6b7bc2b47ead460ac00a531451dc9cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0141bff96a4778a806d4eba5d256c32a"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1KatabaticEngine.html#a0141bff96a4778a806d4eba5d256c32a">isInDemoMode</a> () const</td></tr>
<tr class="separator:a0141bff96a4778a806d4eba5d256c32a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9dec164d53fdee77f0f008133ecbd97f"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1KatabaticEngine.html#a9dec164d53fdee77f0f008133ecbd97f">doWarnOnGCellOverload</a> () const</td></tr>
<tr class="separator:a9dec164d53fdee77f0f008133ecbd97f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6bb0ac3c0ec9720a3519d43491939f97"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1KatabaticEngine.html#a6bb0ac3c0ec9720a3519d43491939f97">doDestroyBaseContact</a> () const</td></tr>
<tr class="separator:a6bb0ac3c0ec9720a3519d43491939f97"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a54d58d645317d43371f6b0bec1815e6b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1KatabaticEngine.html#a54d58d645317d43371f6b0bec1815e6b">doDestroyBaseSegment</a> () const</td></tr>
<tr class="separator:a54d58d645317d43371f6b0bec1815e6b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a867e6dbfea5e5895a01ef71c66398b26"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1KatabaticEngine.html#a867e6dbfea5e5895a01ef71c66398b26">doDestroyTool</a> () const</td></tr>
<tr class="separator:a867e6dbfea5e5895a01ef71c66398b26"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9e76ae5cee9320b65251387419c9432b"><td class="memItemLeft" align="right" valign="top">virtual const <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Name.html">Name</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1KatabaticEngine.html#a9e76ae5cee9320b65251387419c9432b">getName</a> () const</td></tr>
<tr class="separator:a9e76ae5cee9320b65251387419c9432b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a878e8b694aa243a767c2f232799ec9b3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceKatabatic.html#ab9e409db5feff0bdbc85e90e2a029cda">EngineState</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1KatabaticEngine.html#a878e8b694aa243a767c2f232799ec9b3">getState</a> () const</td></tr>
<tr class="separator:a878e8b694aa243a767c2f232799ec9b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7132cd3f405dc24b3897b4396c8ecc92"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1KatabaticEngine.html#a7132cd3f405dc24b3897b4396c8ecc92">getFlags</a> (unsigned int mask) const</td></tr>
<tr class="separator:a7132cd3f405dc24b3897b4396c8ecc92"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adccd6ceec2c68234d3a824ad7ae3954e"><td class="memItemLeft" align="right" valign="top">Configuration *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1KatabaticEngine.html#adccd6ceec2c68234d3a824ad7ae3954e">getKatabaticConfiguration</a> ()</td></tr>
<tr class="separator:adccd6ceec2c68234d3a824ad7ae3954e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9a7fbadfe526875680f698c76adfb128"><td class="memItemLeft" align="right" valign="top">virtual Configuration *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1KatabaticEngine.html#a9a7fbadfe526875680f698c76adfb128">getConfiguration</a> ()</td></tr>
<tr class="separator:a9a7fbadfe526875680f698c76adfb128"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a171ed6fac01ac5067d4f1b770cc419cf"><td class="memItemLeft" align="right" valign="top"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/crlcore/doc/crlcore/html/crlcore.tag:../crlcore/" href="../crlcore/classCRL_1_1RoutingGauge.html">RoutingGauge</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1KatabaticEngine.html#a171ed6fac01ac5067d4f1b770cc419cf">getRoutingGauge</a> () const</td></tr>
<tr class="separator:a171ed6fac01ac5067d4f1b770cc419cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0b7c308ac7fccc21dd0401c6ce70a586"><td class="memItemLeft" align="right" valign="top"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/crlcore/doc/crlcore/html/crlcore.tag:../crlcore/" href="../crlcore/classCRL_1_1RoutingLayerGauge.html">RoutingLayerGauge</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1KatabaticEngine.html#a0b7c308ac7fccc21dd0401c6ce70a586">getLayerGauge</a> (size_t depth) const</td></tr>
<tr class="separator:a0b7c308ac7fccc21dd0401c6ce70a586"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afa7ea850397e87889733ac959833b49f"><td class="memItemLeft" align="right" valign="top">const <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Layer.html">Layer</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1KatabaticEngine.html#afa7ea850397e87889733ac959833b49f">getRoutingLayer</a> (size_t depth) const</td></tr>
<tr class="separator:afa7ea850397e87889733ac959833b49f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4c4549515aef37e81f2cc6537b931edc"><td class="memItemLeft" align="right" valign="top"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Layer.html">Layer</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1KatabaticEngine.html#a4c4549515aef37e81f2cc6537b931edc">getContactLayer</a> (size_t depth) const</td></tr>
<tr class="separator:a4c4549515aef37e81f2cc6537b931edc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9a56286f633fddd702d66563de457a4a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classKatabatic_1_1GCellGrid.html">GCellGrid</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1KatabaticEngine.html#a9a56286f633fddd702d66563de457a4a">getGCellGrid</a> () const</td></tr>
<tr class="separator:a9a56286f633fddd702d66563de457a4a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8f661928f8f709552c8486d68ac33c55"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classKatabatic_1_1KatabaticEngine.html#a92ed88f9aecd2f195089c4029fa8bcc7">NetSet</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1KatabaticEngine.html#a8f661928f8f709552c8486d68ac33c55">getRoutingNets</a> () const</td></tr>
<tr class="separator:a8f661928f8f709552c8486d68ac33c55"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a094b479155d3f30ec54e252c35dcffa3"><td class="memItemLeft" align="right" valign="top"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1KatabaticEngine.html#a094b479155d3f30ec54e252c35dcffa3">getGlobalThreshold</a> () const</td></tr>
<tr class="separator:a094b479155d3f30ec54e252c35dcffa3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a44d2c1fbd97dd09b102b461e906367a0"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1KatabaticEngine.html#a44d2c1fbd97dd09b102b461e906367a0">getSaturateRatio</a> () const</td></tr>
<tr class="separator:a44d2c1fbd97dd09b102b461e906367a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a61977cc1fd981e7f1c6125189ed20509"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1KatabaticEngine.html#a61977cc1fd981e7f1c6125189ed20509">getSaturateRp</a> () const</td></tr>
<tr class="separator:a61977cc1fd981e7f1c6125189ed20509"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad9072cfa6215c92c9a9842270cf677c5"><td class="memItemLeft" align="right" valign="top"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1KatabaticEngine.html#ad9072cfa6215c92c9a9842270cf677c5">getExtensionCap</a> () const</td></tr>
<tr class="separator:ad9072cfa6215c92c9a9842270cf677c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a423f5f2214c8b9fe73da9a86b6f6d9b9"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classKatabatic_1_1ChipTools.html">ChipTools</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1KatabaticEngine.html#a423f5f2214c8b9fe73da9a86b6f6d9b9">getChipTools</a> () const</td></tr>
<tr class="separator:a423f5f2214c8b9fe73da9a86b6f6d9b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aecbe8bdcc61024a7539de3ea932c5e06"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1KatabaticEngine.html#aecbe8bdcc61024a7539de3ea932c5e06">xmlWriteGCellGrid</a> (ostream &amp;)</td></tr>
<tr class="separator:aecbe8bdcc61024a7539de3ea932c5e06"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a78394ac380a0fa462f268dcc2becc50e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1KatabaticEngine.html#a78394ac380a0fa462f268dcc2becc50e">xmlWriteGCellGrid</a> (const string &amp;)</td></tr>
<tr class="separator:a78394ac380a0fa462f268dcc2becc50e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2391b9bfcb773398b9661b5ac0ef1a30"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1KatabaticEngine.html#a2391b9bfcb773398b9661b5ac0ef1a30">setState</a> (<a class="el" href="namespaceKatabatic.html#ab9e409db5feff0bdbc85e90e2a029cda">EngineState</a> state)</td></tr>
<tr class="separator:a2391b9bfcb773398b9661b5ac0ef1a30"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeb14f94914af58657a0dc2f50ec98df5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1KatabaticEngine.html#aeb14f94914af58657a0dc2f50ec98df5">setFlags</a> (unsigned int)</td></tr>
<tr class="separator:aeb14f94914af58657a0dc2f50ec98df5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1a6fac115cb81db48e3ac9ffa0721bb5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1KatabaticEngine.html#a1a6fac115cb81db48e3ac9ffa0721bb5">unsetFlags</a> (unsigned int)</td></tr>
<tr class="separator:a1a6fac115cb81db48e3ac9ffa0721bb5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1bd1e0104b73d4c558b0e121002796a6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1KatabaticEngine.html#a1bd1e0104b73d4c558b0e121002796a6">setGlobalThreshold</a> (<a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a>)</td></tr>
<tr class="separator:a1bd1e0104b73d4c558b0e121002796a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac2b780e06975ce8a0d6ca96f20cb971f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1KatabaticEngine.html#ac2b780e06975ce8a0d6ca96f20cb971f">setSaturateRatio</a> (float)</td></tr>
<tr class="separator:ac2b780e06975ce8a0d6ca96f20cb971f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ade227e828b8c8fbfce478e353ca3ca59"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1KatabaticEngine.html#ade227e828b8c8fbfce478e353ca3ca59">setSaturateRp</a> (size_t)</td></tr>
<tr class="separator:ade227e828b8c8fbfce478e353ca3ca59"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2ea4b4fc379fb85a13890db451cbf93a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1KatabaticEngine.html#a2ea4b4fc379fb85a13890db451cbf93a">printMeasures</a> (const string &amp;) const</td></tr>
<tr class="separator:a2ea4b4fc379fb85a13890db451cbf93a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1e9bb62be35c6a415a1950c72c1964ef"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1KatabaticEngine.html#a1e9bb62be35c6a415a1950c72c1964ef">refresh</a> (unsigned int flags=<a class="el" href="namespaceKatabatic.html#a2af2ad6b6441614038caf59d04b3b217af314588109fcc5f5ee1c42e5fd4d0ed5">KbOpenSession</a>)</td></tr>
<tr class="separator:a1e9bb62be35c6a415a1950c72c1964ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1b7d8ed09a198f7afd6e3ac911f6eb37"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1KatabaticEngine.html#a1b7d8ed09a198f7afd6e3ac911f6eb37">createDetailedGrid</a> ()</td></tr>
<tr class="separator:a1b7d8ed09a198f7afd6e3ac911f6eb37"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaba3b9450c85634131146fb507089f2d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1KatabaticEngine.html#aaba3b9450c85634131146fb507089f2d">makePowerRails</a> ()</td></tr>
<tr class="separator:aaba3b9450c85634131146fb507089f2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a583925cfe4bbadcc1c24fe619debce09"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1KatabaticEngine.html#a583925cfe4bbadcc1c24fe619debce09">loadGlobalRouting</a> (unsigned int method)</td></tr>
<tr class="separator:a583925cfe4bbadcc1c24fe619debce09"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a145b36b18fc9149980c5d6bd4bd10e0d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1KatabaticEngine.html#a145b36b18fc9149980c5d6bd4bd10e0d">slackenBorder</a> (<a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Box.html">Box</a> bb, <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Layer.html#af5277c670637bd5d910237e7afe01a91">Layer::Mask</a>, unsigned int flags)</td></tr>
<tr class="separator:a145b36b18fc9149980c5d6bd4bd10e0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac40754d4a9bd0cf327b5fa088e993897"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1KatabaticEngine.html#ac40754d4a9bd0cf327b5fa088e993897">slackenBlockIos</a> (<a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Instance.html">Instance</a> *core)</td></tr>
<tr class="separator:ac40754d4a9bd0cf327b5fa088e993897"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac934a049003c9d5d2380f44ff393e458"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1KatabaticEngine.html#ac934a049003c9d5d2380f44ff393e458">moveUpNetTrunk</a> (<a class="el" href="classKatabatic_1_1AutoSegment.html">AutoSegment</a> *, set&lt; <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Net.html">Net</a> *&gt; &amp;globalNets, <a class="el" href="classKatabatic_1_1GCell.html#aacb1c215b203bfba5729f135b3221d40">GCell::SetIndex</a> &amp;invalidateds)</td></tr>
<tr class="separator:ac934a049003c9d5d2380f44ff393e458"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a77833ce938a430785ba869eedbc2300c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1KatabaticEngine.html#a77833ce938a430785ba869eedbc2300c">layerAssign</a> (unsigned int method)</td></tr>
<tr class="separator:a77833ce938a430785ba869eedbc2300c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6957a5830a4d6f1b2daf83a7d98df601"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1KatabaticEngine.html#a6957a5830a4d6f1b2daf83a7d98df601">computeNetConstraints</a> (<a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Net.html">Net</a> *)</td></tr>
<tr class="separator:a6957a5830a4d6f1b2daf83a7d98df601"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad6b9f7d94ee4a88f12c485e48d1e644a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1KatabaticEngine.html#ad6b9f7d94ee4a88f12c485e48d1e644a">toOptimals</a> (<a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Net.html">Net</a> *)</td></tr>
<tr class="separator:ad6b9f7d94ee4a88f12c485e48d1e644a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a468eddb683c04cfeea1c5124a39e1f86"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1KatabaticEngine.html#a468eddb683c04cfeea1c5124a39e1f86">finalizeLayout</a> ()</td></tr>
<tr class="separator:a468eddb683c04cfeea1c5124a39e1f86"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:ab877a64c314024602cfb04631ebfbfc4"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classKatabatic_1_1KatabaticEngine.html">KatabaticEngine</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1KatabaticEngine.html#ab877a64c314024602cfb04631ebfbfc4">create</a> (<a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Cell.html">Cell</a> *)</td></tr>
<tr class="separator:ab877a64c314024602cfb04631ebfbfc4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a802eee6265da8d536db52d412f8a4afd"><td class="memItemLeft" align="right" valign="top">static const <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Name.html">Name</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1KatabaticEngine.html#a802eee6265da8d536db52d412f8a4afd">staticGetName</a> ()</td></tr>
<tr class="separator:a802eee6265da8d536db52d412f8a4afd"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>The <a class="el" href="namespaceKatabatic.html" title="The namespace dedicated to Katabatic. ">Katabatic</a> Tool. </p>
<h1><a class="anchor" id="secEngineStates"></a>
States of KatabaticEngine</h1>
<p>During it's lifecycle, the engine go through a serie of states. It only can go forward between states.</p><ul>
<li><b>EngineCreation</b> : just after C++ object creation until the global routing is loaded.</li>
<li><b>EngineGlobalLoaded</b> : <em>after</em> the global routing has been done. This state must be set by an external tool, <a class="el" href="namespaceKatabatic.html" title="The namespace dedicated to Katabatic. ">Katabatic</a> cannot know by itself when the global routing has been done (see Kite).</li>
<li><b>EngineActive</b> : <em>after</em> the global routing has been converted into the <a class="el" href="namespaceKatabatic.html" title="The namespace dedicated to Katabatic. ">Katabatic</a> data structure. At this point the tool is ready to run.</li>
<li><b>EngineDriving</b> : <em>during</em> the stage of stripping all the decorations the tool has added over the Hurricane data structure (mostly: <a class="el" href="classKatabatic_1_1AutoContact.html" title="Abstract base class for AutoContact. ">AutoContact</a> &amp; <a class="el" href="classKatabatic_1_1AutoSegment.html" title="Abstract base class for AutoSegment. ">AutoSegment</a>).</li>
<li><b>EngineGutted</b> : <em>after</em> the tool decorations have been removed. The tool is now useless and can only be destroyed.</li>
<li><b>EnginePreDestroying</b> : this special state is reached when going straight from EngineActive to the destructor, that is, skipping the EngineDriving state. That means we <em>do not</em> want to save whatever routing has been done. In that case, not only the tool decorations are destroyeds, but also the Hurricane data-structures they relies on (Contact, Segments).</li>
</ul>
<h1><a class="anchor" id="secEngineImpl"></a>
KatabaticEngine Implementation Details</h1>
<p>Due to the size of the code and the fact that the main body of some methods do not need to be present in the class, the implementation of <a class="el" href="classKatabatic_1_1KatabaticEngine.html" title="The Katabatic Tool. ">KatabaticEngine</a> is split in several files. The list below summarize them:</p><ul>
<li><code>KatabaticEngine.cpp</code> : the core of the class, methods that really need their bodies here.</li>
<li><code>PowerRails.cpp</code> : utilities to construct an abstract from all the power rails through the hierarchy.</li>
<li><code>LayerAssign.cpp</code> : layer assignement related methods and helpers.</li>
<li><code>LoadGrByNet.cpp</code> : global routing loader, transform global routing into <a class="el" href="namespaceKatabatic.html" title="The namespace dedicated to Katabatic. ">Katabatic</a> data-structure.</li>
<li><code>NetConstraints.cpp</code> : compute the topological constraints of all AutoSegment/AutoContact of a Net.</li>
<li><code>NetOptimals.cpp</code> : compute the optimal positions of all <a class="el" href="classKatabatic_1_1AutoSegment.html" title="Abstract base class for AutoSegment. ">AutoSegment</a> of a Net. </li>
</ul>
</div><h2 class="groupheader">Member Typedef Documentation</h2>
<a id="a92ed88f9aecd2f195089c4029fa8bcc7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a92ed88f9aecd2f195089c4029fa8bcc7">&#9670;&nbsp;</a></span>NetSet</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">set&lt; <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Net.html">Net</a> *, NetCompareByName &gt; <a class="el" href="classKatabatic_1_1KatabaticEngine.html#a92ed88f9aecd2f195089c4029fa8bcc7">NetSet</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set of Net to be routed, alphabetically sorteds. </p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="ab877a64c314024602cfb04631ebfbfc4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab877a64c314024602cfb04631ebfbfc4">&#9670;&nbsp;</a></span>create()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classKatabatic_1_1KatabaticEngine.html">KatabaticEngine</a> * create </td>
<td>(</td>
<td class="paramtype"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Cell.html">Cell</a> *&#160;</td>
<td class="paramname"><em>cell</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Create a <a class="el" href="classKatabatic_1_1KatabaticEngine.html" title="The Katabatic Tool. ">KatabaticEngine</a> on <code>cell</code>. </p>
</div>
</div>
<a id="a802eee6265da8d536db52d412f8a4afd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a802eee6265da8d536db52d412f8a4afd">&#9670;&nbsp;</a></span>staticGetName()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Name.html">Name</a> &amp; staticGetName </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> The unique string identifier for the <a class="el" href="classKatabatic_1_1KatabaticEngine.html" title="The Katabatic Tool. ">KatabaticEngine</a> class of ToolEngine. </p>
</div>
</div>
<a id="a83a7793270669d2669222eac2caa7f93"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a83a7793270669d2669222eac2caa7f93">&#9670;&nbsp;</a></span>isGMetal()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool isGMetal </td>
<td>(</td>
<td class="paramtype">const <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Layer.html">Layer</a> *&#160;</td>
<td class="paramname"><em>layer</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> <b>true</b> if <code>layer</code> is one of the special (fake) metals used to build the global routing. </p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1AutoSegment.html#ab0cc9e57beeceec519cd4bd3e415569e">AutoSegment::create()</a>.</p>
</div>
</div>
<a id="ab6b7bc2b47ead460ac00a531451dc9cf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab6b7bc2b47ead460ac00a531451dc9cf">&#9670;&nbsp;</a></span>isChip()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool isChip </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> <b>true</b> if the hierarchy top-level of the Cell matches the one of a complete design (i.e. pads and one core instance). </p>
<p class="reference">References <a class="el" href="classKatabatic_1_1ChipTools.html#ab6b7bc2b47ead460ac00a531451dc9cf">ChipTools::isChip()</a>.</p>
</div>
</div>
<a id="a0141bff96a4778a806d4eba5d256c32a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0141bff96a4778a806d4eba5d256c32a">&#9670;&nbsp;</a></span>isInDemoMode()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool isInDemoMode </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> <b>true</b> if the tool is in demo mode, that is suppress almost all warning and debug messages. </p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1Session.html#a037c7ec3b18ec43973f2e6fe3a172000">Session::isInDemoMode()</a>.</p>
</div>
</div>
<a id="a9dec164d53fdee77f0f008133ecbd97f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9dec164d53fdee77f0f008133ecbd97f">&#9670;&nbsp;</a></span>doWarnOnGCellOverload()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool doWarnOnGCellOverload </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> <b>true</b> if the tool should issue a warning when a <a class="el" href="classKatabatic_1_1GCell.html" title="Routing Global Cell. ">GCell</a> is overloaded (overload could be transient). </p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1Session.html#ad41e6fb02bd7bb01c27fb6aae36f0ddc">Session::doWarnGCellOverload()</a>.</p>
</div>
</div>
<a id="a6bb0ac3c0ec9720a3519d43491939f97"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6bb0ac3c0ec9720a3519d43491939f97">&#9670;&nbsp;</a></span>doDestroyBaseContact()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool doDestroyBaseContact </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> <b>true</b> if the EngineDestroyBaseContact is set, meaning that when an <a class="el" href="classKatabatic_1_1AutoContact.html" title="Abstract base class for AutoContact. ">AutoContact</a> is destroyed, the Contact it decorates is destroyed altogether. </p>
</div>
</div>
<a id="a54d58d645317d43371f6b0bec1815e6b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a54d58d645317d43371f6b0bec1815e6b">&#9670;&nbsp;</a></span>doDestroyBaseSegment()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool doDestroyBaseSegment </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> <b>true</b> if the EngineDestroyBaseSegment is set, meaning that when an <a class="el" href="classKatabatic_1_1AutoSegment.html" title="Abstract base class for AutoSegment. ">AutoSegment</a> is destroyed, the Segment it decorates is destroyed altogether. </p>
</div>
</div>
<a id="a867e6dbfea5e5895a01ef71c66398b26"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a867e6dbfea5e5895a01ef71c66398b26">&#9670;&nbsp;</a></span>doDestroyTool()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool doDestroyTool </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> <b>true</b> if the tool state is beyond EngineStateGutted, that is, only waits for <code><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1DBo.html#a67febf5bf9c8b322674648688639728b">destroy()</a></code> to be called. </p>
<p class="reference">References <a class="el" href="namespaceKatabatic.html#ab9e409db5feff0bdbc85e90e2a029cdaafb5f961d4cad2bb9fbda71204061c877">Katabatic::EngineGutted</a>.</p>
</div>
</div>
<a id="a9e76ae5cee9320b65251387419c9432b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9e76ae5cee9320b65251387419c9432b">&#9670;&nbsp;</a></span>getName()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Name.html">Name</a> &amp; getName </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> The unique string identifier for the <a class="el" href="classKatabatic_1_1KatabaticEngine.html" title="The Katabatic Tool. ">KatabaticEngine</a> class of ToolEngine. </p>
<p>Implements <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/crlcore/doc/crlcore/html/crlcore.tag:../crlcore/" href="../crlcore/classCRL_1_1ToolEngine.html#a98c8fd84e7ea36d25287c08b75e9d5e7">ToolEngine</a>.</p>
</div>
</div>
<a id="a878e8b694aa243a767c2f232799ec9b3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a878e8b694aa243a767c2f232799ec9b3">&#9670;&nbsp;</a></span>getState()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespaceKatabatic.html#ab9e409db5feff0bdbc85e90e2a029cda">EngineState</a> getState </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> The state the tool is currently in. </p>
</div>
</div>
<a id="a7132cd3f405dc24b3897b4396c8ecc92"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7132cd3f405dc24b3897b4396c8ecc92">&#9670;&nbsp;</a></span>getFlags()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">unsigned int getFlags </td>
<td>(</td>
<td class="paramtype">unsigned int&#160;</td>
<td class="paramname"><em>mask</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> The <em>anded</em> combination of the tool flags and <code>mask</code>. </p>
</div>
</div>
<a id="adccd6ceec2c68234d3a824ad7ae3954e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adccd6ceec2c68234d3a824ad7ae3954e">&#9670;&nbsp;</a></span>getKatabaticConfiguration()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">Configuration * getKatabaticConfiguration </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> The Configuration of <a class="el" href="namespaceKatabatic.html" title="The namespace dedicated to Katabatic. ">Katabatic</a>. In this class it is redundant with <a class="el" href="classKatabatic_1_1KatabaticEngine.html#a9a7fbadfe526875680f698c76adfb128">getConfiguration()</a>, but may be useful in derived classes. </p>
</div>
</div>
<a id="a9a7fbadfe526875680f698c76adfb128"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9a7fbadfe526875680f698c76adfb128">&#9670;&nbsp;</a></span>getConfiguration()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">Configuration * getConfiguration </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> The Configuration of the current ToolEngine. </p>
</div>
</div>
<a id="a171ed6fac01ac5067d4f1b770cc419cf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a171ed6fac01ac5067d4f1b770cc419cf">&#9670;&nbsp;</a></span>getRoutingGauge()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/crlcore/doc/crlcore/html/crlcore.tag:../crlcore/" href="../crlcore/classCRL_1_1RoutingGauge.html">RoutingGauge</a> * getRoutingGauge </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> The RoutingGauge (Configuration shortcut). </p>
</div>
</div>
<a id="a0b7c308ac7fccc21dd0401c6ce70a586"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0b7c308ac7fccc21dd0401c6ce70a586">&#9670;&nbsp;</a></span>getLayerGauge()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/crlcore/doc/crlcore/html/crlcore.tag:../crlcore/" href="../crlcore/classCRL_1_1RoutingLayerGauge.html">RoutingLayerGauge</a> * getLayerGauge </td>
<td>(</td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>depth</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> The RoutingLayerGauge associated to <code>depth</code> (Configuration shortcut). </p>
</div>
</div>
<a id="afa7ea850397e87889733ac959833b49f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afa7ea850397e87889733ac959833b49f">&#9670;&nbsp;</a></span>getRoutingLayer()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Layer.html">Layer</a> * getRoutingLayer </td>
<td>(</td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>depth</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> The routing Layer associated to <code>depth</code> (Configuration shortcut). </p>
</div>
</div>
<a id="a4c4549515aef37e81f2cc6537b931edc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4c4549515aef37e81f2cc6537b931edc">&#9670;&nbsp;</a></span>getContactLayer()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Layer.html">Layer</a> * getContactLayer </td>
<td>(</td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>depth</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> The contact Layer associated to <code>depth</code> (Configuration shortcut). </p>
</div>
</div>
<a id="a9a56286f633fddd702d66563de457a4a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9a56286f633fddd702d66563de457a4a">&#9670;&nbsp;</a></span>getGCellGrid()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classKatabatic_1_1GCellGrid.html">GCellGrid</a> * getGCellGrid </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> The <a class="el" href="classKatabatic_1_1GCellGrid.html" title="GCell Grid. ">GCellGrid</a>. </p>
<p class="reference">Referenced by <a class="el" href="group__LoadGlobalRouting.html#ga60edeea78b56db072fc26a58a7afbcd4">GCellTopology::doRp_AccessPad()</a>, <a class="el" href="group__LoadGlobalRouting.html#gae9cae408ea16a3f7c77c3d75f0242f19">GCellTopology::doRp_AutoContacts()</a>, and <a class="el" href="group__LoadGlobalRouting.html#ga3973291866b39c10cea5ca17f7d174fb">anonymous_namespace{LoadGrByNet.cpp}::singleGCell()</a>.</p>
</div>
</div>
<a id="a8f661928f8f709552c8486d68ac33c55"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8f661928f8f709552c8486d68ac33c55">&#9670;&nbsp;</a></span>getRoutingNets()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="classKatabatic_1_1KatabaticEngine.html#a92ed88f9aecd2f195089c4029fa8bcc7">NetSet</a> &amp; getRoutingNets </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> The set of nets to be routeds. </p>
</div>
</div>
<a id="a094b479155d3f30ec54e252c35dcffa3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a094b479155d3f30ec54e252c35dcffa3">&#9670;&nbsp;</a></span>getGlobalThreshold()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a> getGlobalThreshold </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> The length above which a global wire is moved up in the layer assignment stage (Configuration shortcut). </p>
</div>
</div>
<a id="a44d2c1fbd97dd09b102b461e906367a0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a44d2c1fbd97dd09b102b461e906367a0">&#9670;&nbsp;</a></span>getSaturateRatio()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">float getSaturateRatio </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> The ratio above which a <a class="el" href="classKatabatic_1_1GCell.html" title="Routing Global Cell. ">GCell</a> is considered to be saturated (Configuration shortcut). </p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1Session.html#a266a4079ca235e8fdb622ef4996d324d">Session::getSaturateRatio()</a>.</p>
</div>
</div>
<a id="a61977cc1fd981e7f1c6125189ed20509"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a61977cc1fd981e7f1c6125189ed20509">&#9670;&nbsp;</a></span>getSaturateRp()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">size_t getSaturateRp </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> The number of RoutingPad above which a <a class="el" href="classKatabatic_1_1GCell.html" title="Routing Global Cell. ">GCell</a> is saturated, causing extras global segments to be moved up. (Configuration shortcut). </p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1Session.html#adfdaa8b3e81de14fce1f99444b35fcda">Session::getSaturateRp()</a>.</p>
</div>
</div>
<a id="ad9072cfa6215c92c9a9842270cf677c5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad9072cfa6215c92c9a9842270cf677c5">&#9670;&nbsp;</a></span>getExtensionCap()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a> getExtensionCap </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> The wires extension cap, same for all layers for the time beeing (Configuration shortcut). </p>
</div>
</div>
<a id="a423f5f2214c8b9fe73da9a86b6f6d9b9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a423f5f2214c8b9fe73da9a86b6f6d9b9">&#9670;&nbsp;</a></span>getChipTools()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="classKatabatic_1_1ChipTools.html">ChipTools</a> &amp; getChipTools </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> The chip tools (for whole designs). </p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1KatabaticEngine.html#a1b7d8ed09a198f7afd6e3ac911f6eb37">KatabaticEngine::createDetailedGrid()</a>.</p>
</div>
</div>
<a id="aecbe8bdcc61024a7539de3ea932c5e06"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aecbe8bdcc61024a7539de3ea932c5e06">&#9670;&nbsp;</a></span>xmlWriteGCellGrid() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void xmlWriteGCellGrid </td>
<td>(</td>
<td class="paramtype">ostream &amp;&#160;</td>
<td class="paramname"><em>o</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Write in a stream all informations on the GCells in XML format. </p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1KatabaticEngine.html#a78394ac380a0fa462f268dcc2becc50e">KatabaticEngine::xmlWriteGCellGrid()</a>.</p>
</div>
</div>
<a id="a78394ac380a0fa462f268dcc2becc50e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a78394ac380a0fa462f268dcc2becc50e">&#9670;&nbsp;</a></span>xmlWriteGCellGrid() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void xmlWriteGCellGrid </td>
<td>(</td>
<td class="paramtype">const string &amp;&#160;</td>
<td class="paramname"><em>fileName</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Write in a file all informations on the GCells in XML format. </p>
<p class="reference">References <a class="el" href="classKatabatic_1_1KatabaticEngine.html#aecbe8bdcc61024a7539de3ea932c5e06">KatabaticEngine::xmlWriteGCellGrid()</a>.</p>
</div>
</div>
<a id="a2391b9bfcb773398b9661b5ac0ef1a30"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2391b9bfcb773398b9661b5ac0ef1a30">&#9670;&nbsp;</a></span>setState()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void setState </td>
<td>(</td>
<td class="paramtype"><a class="el" href="namespaceKatabatic.html#ab9e409db5feff0bdbc85e90e2a029cda">EngineState</a>&#160;</td>
<td class="paramname"><em>state</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Force the state of the tool. Must be used with caution, as no sanity checks are performeds. This method is normally invoked from inside the <a class="el" href="classKatabatic_1_1KatabaticEngine.html" title="The Katabatic Tool. ">KatabaticEngine</a> various methods. </p>
</div>
</div>
<a id="aeb14f94914af58657a0dc2f50ec98df5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aeb14f94914af58657a0dc2f50ec98df5">&#9670;&nbsp;</a></span>setFlags()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void setFlags </td>
<td>(</td>
<td class="paramtype">unsigned int&#160;</td>
<td class="paramname"><em>flags</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Set the flags given in <code>flags</code>. </p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1Session.html#af9919aefa1db2478b3d1813c1872d175">Session::setKatabaticFlags()</a>.</p>
</div>
</div>
<a id="a1a6fac115cb81db48e3ac9ffa0721bb5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1a6fac115cb81db48e3ac9ffa0721bb5">&#9670;&nbsp;</a></span>unsetFlags()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void unsetFlags </td>
<td>(</td>
<td class="paramtype">unsigned int&#160;</td>
<td class="paramname"><em>flags</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Reset the flags given in <code>flags</code>. </p>
</div>
</div>
<a id="a1bd1e0104b73d4c558b0e121002796a6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1bd1e0104b73d4c558b0e121002796a6">&#9670;&nbsp;</a></span>setGlobalThreshold()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void setGlobalThreshold </td>
<td>(</td>
<td class="paramtype"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a>&#160;</td>
<td class="paramname"><em>threshold</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>(Configuration shortcut). </p>
</div>
</div>
<a id="ac2b780e06975ce8a0d6ca96f20cb971f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac2b780e06975ce8a0d6ca96f20cb971f">&#9670;&nbsp;</a></span>setSaturateRatio()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void setSaturateRatio </td>
<td>(</td>
<td class="paramtype">float&#160;</td>
<td class="paramname"><em>ratio</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>(Configuration shortcut). </p>
</div>
</div>
<a id="ade227e828b8c8fbfce478e353ca3ca59"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ade227e828b8c8fbfce478e353ca3ca59">&#9670;&nbsp;</a></span>setSaturateRp()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void setSaturateRp </td>
<td>(</td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>threshold</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>(Configuration shortcut). </p>
</div>
</div>
<a id="a2ea4b4fc379fb85a13890db451cbf93a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2ea4b4fc379fb85a13890db451cbf93a">&#9670;&nbsp;</a></span>printMeasures()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void printMeasures </td>
<td>(</td>
<td class="paramtype">const string &amp;&#160;</td>
<td class="paramname"><em>tag</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Print memory &amp; time measurement on ``cmess1``. If <code>tag</code> is not empty, also adds the measurement to the internal table (with <code>tag</code> as label). </p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1KatabaticEngine.html#a468eddb683c04cfeea1c5124a39e1f86">KatabaticEngine::finalizeLayout()</a>.</p>
</div>
</div>
<a id="a1e9bb62be35c6a415a1950c72c1964ef"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1e9bb62be35c6a415a1950c72c1964ef">&#9670;&nbsp;</a></span>refresh()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void refresh </td>
<td>(</td>
<td class="paramtype">unsigned int&#160;</td>
<td class="paramname"><em>flags</em> = <code><a class="el" href="namespaceKatabatic.html#a2af2ad6b6441614038caf59d04b3b217af314588109fcc5f5ee1c42e5fd4d0ed5">KbOpenSession</a></code></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>In case the tool is associated with a graphic display, trigger a full redraw of the Cell. Slow the router but allow to see work in progress... If <code>flags</code> <em>do not</em> contains <code>KbOpenSession</code> the refresh operation will not be enclosed inside it's own session. This assumes that a session is already opened. </p>
<p class="reference">References <a class="el" href="classKatabatic_1_1GCellGrid.html#a032d6eb23f92e3a41a020d18c6bbc02d">GCellGrid::updateContacts()</a>.</p>
</div>
</div>
<a id="a1b7d8ed09a198f7afd6e3ac911f6eb37"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1b7d8ed09a198f7afd6e3ac911f6eb37">&#9670;&nbsp;</a></span>createDetailedGrid()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void createDetailedGrid </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Allocate the <a class="el" href="classKatabatic_1_1GCellGrid.html" title="GCell Grid. ">GCellGrid</a>. </p>
<p class="reference">References <a class="el" href="classKatabatic_1_1GCellGrid.html#a19a45b2e6c6b9ca8898b2fde035d1827">GCellGrid::create()</a>, <a class="el" href="classKatabatic_1_1KatabaticEngine.html#a423f5f2214c8b9fe73da9a86b6f6d9b9">KatabaticEngine::getChipTools()</a>, <a class="el" href="classKatabatic_1_1BaseGrid.html#aeaf0dae788f4c997e6172f9c734e3a91">BaseGrid::getColumns()</a>, <a class="el" href="classKatabatic_1_1Grid.html#aa8d0393323104d48c089a8429b254689">Grid&lt; GCellT &gt;::getGCellsColumn()</a>, <a class="el" href="classKatabatic_1_1Grid.html#a35e2075302cdb696945f05c5bcc817a0">Grid&lt; GCellT &gt;::getGCellsRow()</a>, <a class="el" href="classKatabatic_1_1BaseGrid.html#a4bad6abc58473d953258a3230506291a">BaseGrid::getRows()</a>, <a class="el" href="classKatabatic_1_1ChipTools.html#ab6b7bc2b47ead460ac00a531451dc9cf">ChipTools::isChip()</a>, and <a class="el" href="classKatabatic_1_1Session.html#a4da9e28432c1fdb0c754717487d9cc83">Session::revalidate()</a>.</p>
</div>
</div>
<a id="aaba3b9450c85634131146fb507089f2d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaba3b9450c85634131146fb507089f2d">&#9670;&nbsp;</a></span>makePowerRails()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void makePowerRails </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Detect all the aligned segments of same width that compose power rails, unificate them and copy them at the design top level. </p>
</div>
</div>
<a id="a583925cfe4bbadcc1c24fe619debce09"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a583925cfe4bbadcc1c24fe619debce09">&#9670;&nbsp;</a></span>loadGlobalRouting()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void loadGlobalRouting </td>
<td>(</td>
<td class="paramtype">unsigned int&#160;</td>
<td class="paramname"><em>method</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">method</td><td>the loading algorithm </td></tr>
<tr><td class="paramname">nets</td><td>the set of nets to route.</td></tr>
</table>
</dd>
</dl>
<p>Convert the global routing into the initial detailed routing. For the time beeing, only one loading algorithm is available: <em>net by net</em> (EngineLoadGrByNet). Only Net given in <code>nets</code> are routeds. If <code>nets</code> is empty then all ordinary nets are routeds. In either cases the set of nets to route is pruned from any power, ground or clock signals.</p>
<dl class="section user"><dt>Remark: The tool state must be <b>EngineGlobalLoaded</b> <em>before</em> calling this method</dt><dd>and will be set to <b>EngineActive</b> on exit. </dd></dl>
<p class="reference">References <a class="el" href="namespaceKatabatic.html#ab9e409db5feff0bdbc85e90e2a029cdaad4f7e86648b59223202a64bde4eda4c7">Katabatic::EngineActive</a>, and <a class="el" href="namespaceKatabatic.html#ab9e409db5feff0bdbc85e90e2a029cdaa5e262eba2c323c8ab5365b5e1364fc1e">Katabatic::EngineGlobalLoaded</a>.</p>
</div>
</div>
<a id="a145b36b18fc9149980c5d6bd4bd10e0d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a145b36b18fc9149980c5d6bd4bd10e0d">&#9670;&nbsp;</a></span>slackenBorder()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void slackenBorder </td>
<td>(</td>
<td class="paramtype"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Box.html">Box</a>&#160;</td>
<td class="paramname"><em>bb</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Layer.html#af5277c670637bd5d910237e7afe01a91">Layer::Mask</a>&#160;</td>
<td class="paramname"><em>mask</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned int&#160;</td>
<td class="paramname"><em>flags</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">bb</td><td>The bounding box, defines the edges. </td></tr>
<tr><td class="paramname">mask</td><td>Consider only layers that are fully included in that mask. </td></tr>
<tr><td class="paramname">flags</td><td>Consider only segment in that direction.</td></tr>
</table>
</dd>
</dl>
<p>Perform a preventive break on all global segments going through the <em>vertical</em> left and right edges of the <code>bb</code> box. The set of global segments to be broken could be further restricted using <code>mask</code> and <code>flags</code>.</p>
<p><span class="red">The Semantic of <code>flags</code> is not clear, must review the code more closely.</span> </p>
<p class="reference">References <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Box.html#a77b9db757080544fcede3e670cee8c5c">Box::getXMax()</a>, <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Box.html#ad5122ef7dda8a58c1dacddb57cd4ccfb">Box::getXMin()</a>, <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Box.html#a06e1a86a06dacfca6d3403c16affc7e8">Box::getYMax()</a>, and <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Box.html#a542c383466845aeca0e32f51b77c7439">Box::getYMin()</a>.</p>
</div>
</div>
<a id="ac40754d4a9bd0cf327b5fa088e993897"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac40754d4a9bd0cf327b5fa088e993897">&#9670;&nbsp;</a></span>slackenBlockIos()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void slackenBlockIos </td>
<td>(</td>
<td class="paramtype"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Instance.html">Instance</a> *&#160;</td>
<td class="paramname"><em>core</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Perform a preventive break on horizontal segments in the <a class="el" href="classKatabatic_1_1GCell.html" title="Routing Global Cell. ">GCell</a> immediatly <em>outside</em> the instance <code>core</code> area in the routing layer of index <code>1</code>.</p>
<p><span class="red">This method is too much hardwired to the <code>SxLib</code> gauge. It's effect is to break all <b>METAL2</b> outside the core (in a chip).</span> </p>
<p class="reference">References <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Entity.html#ad834f8ce33a08a13e2a88446696e63e7">Entity::getBoundingBox()</a>, <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Instance.html#aa48280b4d7127d283c89983cf7a42c23">Instance::getName()</a>, <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/crlcore/doc/crlcore/html/crlcore.tag:../crlcore/" href="../crlcore/namespaceConstant.html#ac081a99f2b64361919ed5d9f37c0f9afa7a545ff2d744fe30bfac294dfe9d03db">Constant::Horizontal</a>, and <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Box.html#a90207e7ca8044a6afc72674cc6ae366e">Box::inflate()</a>.</p>
</div>
</div>
<a id="ac934a049003c9d5d2380f44ff393e458"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac934a049003c9d5d2380f44ff393e458">&#9670;&nbsp;</a></span>moveUpNetTrunk()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool moveUpNetTrunk </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classKatabatic_1_1AutoSegment.html">AutoSegment</a> *&#160;</td>
<td class="paramname"><em>seed</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">set&lt; <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Net.html">Net</a> *&gt; &amp;&#160;</td>
<td class="paramname"><em>globalNets</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classKatabatic_1_1GCell.html#aacb1c215b203bfba5729f135b3221d40">GCell::SetIndex</a> &amp;&#160;</td>
<td class="paramname"><em>invalidateds</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">seed</td><td>The <a class="el" href="classKatabatic_1_1AutoSegment.html" title="Abstract base class for AutoSegment. ">AutoSegment</a> to take the net from. </td></tr>
<tr><td class="paramname">globalNets</td><td>The set of nets that has been moved up. </td></tr>
<tr><td class="paramname">invalidateds</td><td>The set of GCells that have been invalidated. <b>Returns:</b> <b>true</b> if the net trunk have been moved up.</td></tr>
</table>
</dd>
</dl>
<p>Try to move up a whole net trunk. The net is supplied through the <code>seed</code> argument (the segment that triggers the move). If the net is actually moved up, it is added to <code>globalNets</code> and all GCells that have been invalidateds are added to <code>invalidateds</code>.</p>
<p><span class="red">An individual <a class="el" href="classKatabatic_1_1AutoSegment.html" title="Abstract base class for AutoSegment. ">AutoSegment</a> of the net is moved up if it's length is greater that <code>150</code> lambdas, that is, three times the side of a <a class="el" href="classKatabatic_1_1GCell.html" title="Routing Global Cell. ">GCell</a>. This is hard-wired and should be parametrized in the future.</span> </p>
</div>
</div>
<a id="a77833ce938a430785ba869eedbc2300c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a77833ce938a430785ba869eedbc2300c">&#9670;&nbsp;</a></span>layerAssign()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void layerAssign </td>
<td>(</td>
<td class="paramtype">unsigned int&#160;</td>
<td class="paramname"><em>method</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Perform the layer assignment. The global routing loading stage uses only the two bottom most layers, this method spread them on all the availables routing layers, according to <a class="el" href="classKatabatic_1_1GCell.html" title="Routing Global Cell. ">GCell</a> and RoutingPad density criterions.</p>
<p>Two algorithms are availables:</p><ul>
<li><b>EngineLayerAssignByLength</b> : the global wires are moved up one by one.</li>
<li><b>EngineLayerAssignByTrunk</b> : if one global wire of a net is to be moved up, then all the global trunk of the net is moved along. This methods gives the best results for now. </li>
</ul>
</div>
</div>
<a id="a6957a5830a4d6f1b2daf83a7d98df601"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6957a5830a4d6f1b2daf83a7d98df601">&#9670;&nbsp;</a></span>computeNetConstraints()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void computeNetConstraints </td>
<td>(</td>
<td class="paramtype"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Net.html">Net</a> *&#160;</td>
<td class="paramname"><em>net</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Compute the box constraints on AutoContacts (and therefore those applied to AutoSegments). Constraints comes from AutoContacts anchoreds on RoutingPads and transmitted through <a class="el" href="classKatabatic_1_1AutoContactHTee.html" title="AutoContact H-Tee (two H, one V) ">AutoContactHTee</a> or <a class="el" href="classKatabatic_1_1AutoContactVTee.html" title="AutoContact V-Tee (one H, two V) ">AutoContactVTee</a>. Constraints are applied to all AutoContacts of an aligned set.</p>
<dl class="section user"><dt>Remark: The <code>net</code> must have been canonized before this function to be called. </dt><dd></dd></dl>
</div>
</div>
<a id="ad6b9f7d94ee4a88f12c485e48d1e644a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad6b9f7d94ee4a88f12c485e48d1e644a">&#9670;&nbsp;</a></span>toOptimals()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void toOptimals </td>
<td>(</td>
<td class="paramtype"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Net.html">Net</a> *&#160;</td>
<td class="paramname"><em>net</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Move all <a class="el" href="classKatabatic_1_1AutoSegment.html" title="Abstract base class for AutoSegment. ">AutoSegment</a> of <code>net</code> so that their axis are inside their optimals interval. If a <a class="el" href="classKatabatic_1_1AutoSegment.html" title="Abstract base class for AutoSegment. ">AutoSegment</a> is already inside the interval is not moved, otherwise it is put on the nearest bound of the optimal interval. </p>
</div>
</div>
<a id="a468eddb683c04cfeea1c5124a39e1f86"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a468eddb683c04cfeea1c5124a39e1f86">&#9670;&nbsp;</a></span>finalizeLayout()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void finalizeLayout </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Transform the <a class="el" href="namespaceKatabatic.html" title="The namespace dedicated to Katabatic. ">Katabatic</a> wires into the Hurricane data-structure. Mostly by removing the AutoSegment/AutoContact <em>without</em> removing their Hurricane conterparts. May also fill gaps that may have appeared.</p>
<dl class="section user"><dt>Remark: The tool state must be <b>EngineActive</b> <em>before</em> calling this method</dt><dd>and will be set to <b>EngineGutted</b> on exit. </dd></dl>
<p class="reference">References <a class="el" href="namespaceKatabatic.html#ab9e409db5feff0bdbc85e90e2a029cdaae21d68495c3c349ad351ba9692b40bd1">Katabatic::EngineDriving</a>, <a class="el" href="namespaceKatabatic.html#ab9e409db5feff0bdbc85e90e2a029cdaafb5f961d4cad2bb9fbda71204061c877">Katabatic::EngineGutted</a>, and <a class="el" href="classKatabatic_1_1KatabaticEngine.html#a2ea4b4fc379fb85a13890db451cbf93a">KatabaticEngine::printMeasures()</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="KatabaticEngine_8h_source.html">KatabaticEngine.h</a></li>
<li>ChipTools.cpp</li>
<li>LoadGrByNet.cpp</li>
<li>KatabaticEngine.cpp</li>
<li>KatabaticEngine.dox</li>
</ul>
</div><!-- contents -->
<br>
<hr>
<table class="footer1">
<tr>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Sun Nov 21 2021</small></td>
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
</tr>
</table>
<table class="footer2">
<tr>
<td class="LFooter">Katabatic - Routing Toolbox</td>
<td class="RFooter"><small>Copyright &#169; 2008-2020 Sorbonne Universite. All rights reserved</small></td>
</tr>
</table>
</body>
</html>