<html xmlns:xd="http://www.pnp-software.com/XSLTdoc">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Leakage Power</title>
<link rel="stylesheet" type="text/css" href="./resource/css/Basic.css">
<link rel="stylesheet" type="text/css" href="./resource/css/CellLib.css">
<link rel="stylesheet" type="text/css" href="./resource/css/BasicHtml.css">
<link rel="stylesheet" type="text/css" href="./resource/css/CellLibHtml.css">
<script type="text/javascript">
        var openImg = "./resource/image/open_square.gif";
        var closeImg = "./resource/image/close_square.gif";
      </script><script type="text/javascript" src="./resource/js/main.js"></script><script>
        function hidestatus(){
        window.status='';
        return true;
        }
        document.onmouseover=hidestatus;
        document.onmouseout=hidestatus;
      </script>
</head>
<body onLoad="NanInit();">
<a id="PageInfo" RootPath="." CellPath="Cells/" SummName="SP" Corner="LowPowerOpenCellLibrary_slow_ccs_slow" RefNode="" TrgNode="" FileExt=".html" Focus="correlation" RefFile="StaticPowerConsumption_.html" TrgFile="StaticPowerConsumption_.html"></a><table class="navigation" width="100%">
<colgroup>
<col>
<col>
</colgroup>
<tr class="navigation" colspan="2" align="center"></tr>
<tr>
<td align="left"><a href="http://www.nangate.com" target="_blank"><img src="./resource/image/NangateLogo.gif" border="0"></a></td>
<td align="center"><p class="Title">Leakage Power</p></td>
<td align="right"><img src="./resource/image/Logo.png" border="0"></td>
</tr>
</table>
<hr class="navigation_tt">
<table width="100%" summary="Navigation header" class="navigation"><tr>
<td width="33%" align="left"><a href="TotalFullCyclePower_LowPowerOpenCellLibrary_slow_ccs_slow.html">Previous (Total Full-Cycle Power)
      </a></td>
<td width="33%" align="center"><a href="CornerList.html">Up (Table of Contents)
      </a></td>
<td width="33%" align="right"></td>
</tr></table>
<hr class="navigation_tb">
<table class="navigation" width="100%">
<colgroup>
<col>
<col>
</colgroup>
<tr>
<td align="left"><p class="copyright">Databook Build Date: Wednesday Aug 17 19:29 2011</p></td>
<td align="right"><p class="copyright">Copyright © 2004-2010 Nangate Inc.</p></td>
</tr>
</table>
          Datasheet for characterization corner: <span class="bold">LowPowerOpenCellLibrary_slow_ccs_slow</span>
            , library <span class="bold">
"LowPowerOpenCellLibrary"</span>.
        
   
    Eventual numbers in <i>italic</i> show that the values have required interpolations due to internal data manipulation and/or non-matching LUT index templates.

    <p></p>
<p>
      This section presents the 
      <span class="bold"> cell leakage power </span>
      for all cells.
      See <a href="#Notes">notes</a> for additional information.
    </p>
<a name="Table_0"><table class="Caption">
<colgroup>
<col>
<col>
</colgroup>
<tr>
<td onClick="tBr('_Table_0');"><a class="Caption" href="javascript:;"><span id="I_Table_0"><img border="0" src="./resource/image/open_square.gif"></span>  
                </a></td>
<td><a onClick="tBr('_Table_0');" class="Caption" href="javascript:;">
          Leakage Power
        </a></td>
<td>        <span class="extra">  @ strength: 1  </span>
</td>
</tr>
</table>
<span id="_Table_0" eName="Leakage Power"><hr class="Title">
<div ngTable="sumSc" sumSc="12" entries="AON_BUF_X1;[pW];4122.85;;$AON_INV_X1;[pW];2059.95;;$HEADER_OE_X1;[pW];1451877.23;;$HEADER_X1;[pW];1447701.82;;$ISO_FENCE0N_X1;[pW];7891.43;;$ISO_FENCE0_X1;[pW];4635.36;;$ISO_FENCE1N_X1;[pW];4589.30;;$ISO_FENCE1_X1;[pW];8681.27;;$LS_HLEN_X1;[pW];907474.61;;$LS_HL_X1;[pW];906866.74;;$LS_LHEN_X1;[pW];12072.88;;$LS_LH_X1;[pW];8646.74;;$"></div>
<hr class="Title"></span></a><a name="Table_1"><table class="Caption">
<colgroup>
<col>
<col>
</colgroup>
<tr>
<td onClick="tBr('_Table_1');"><a class="Caption" href="javascript:;"><span id="I_Table_1"><img border="0" src="./resource/image/open_square.gif"></span>  
                </a></td>
<td><a onClick="tBr('_Table_1');" class="Caption" href="javascript:;">
          Leakage Power
        </a></td>
<td>        <span class="extra">  @ strength: 2  </span>
</td>
</tr>
</table>
<span id="_Table_1" eName="Leakage Power"><hr class="Title">
<div ngTable="sumSc" sumSc="12" entries="AON_BUF_X2;[pW];6455.06;;$AON_INV_X2;[pW];4391.38;;$HEADER_OE_X2;[pW];3012151.09;;$HEADER_X2;[pW];3005722.28;;$ISO_FENCE0N_X2;[pW];11339.49;;$ISO_FENCE0_X2;[pW];9446.61;;$ISO_FENCE1N_X2;[pW];9457.68;;$ISO_FENCE1_X2;[pW];12874.69;;$LS_HLEN_X2;[pW];909178.43;;$LS_HL_X2;[pW];908972.17;;$LS_LHEN_X2;[pW];13043.65;;$LS_LH_X2;[pW];10117.54;;$"></div>
<hr class="Title"></span></a><a name="Table_2"><table class="Caption">
<colgroup>
<col>
<col>
</colgroup>
<tr>
<td onClick="tBr('_Table_2');"><a class="Caption" href="javascript:;"><span id="I_Table_2"><img border="0" src="./resource/image/open_square.gif"></span>  
                </a></td>
<td><a onClick="tBr('_Table_2');" class="Caption" href="javascript:;">
          Leakage Power
        </a></td>
<td>        <span class="extra">  @ strength: 4  </span>
</td>
</tr>
</table>
<span id="_Table_2" eName="Leakage Power"><hr class="Title">
<div ngTable="sumSc" sumSc="12" entries="AON_BUF_X4;[pW];10853.90;;$AON_INV_X4;[pW];8787.93;;$HEADER_OE_X4;[pW];6129469.01;;$HEADER_X4;[pW];6117250.69;;$ISO_FENCE0N_X4;[pW];22421.00;;$ISO_FENCE0_X4;[pW];18901.98;;$ISO_FENCE1N_X4;[pW];18921.60;;$ISO_FENCE1_X4;[pW];25124.18;;$LS_HLEN_X4;[pW];915666.76;;$LS_HL_X4;[pW];913349.57;;$LS_LHEN_X4;[pW];15733.47;;$LS_LH_X4;[pW];14110.42;;$"></div>
<hr class="Title"></span></a><a name="Notes"><table class="Caption">
<colgroup>
<col>
<col>
</colgroup>
<tr>
<td onClick="tBr('_Notes');"><a class="Caption" href="javascript:;"><span id="I_Notes"><img border="0" src="./resource/image/open_square.gif"></span>  
                </a></td>
<td><a onClick="tBr('_Notes');" class="Caption" href="javascript:;">Notes</a></td>
</tr>
</table>
<span id="_Notes"><ul>
<li>
<li>
<span><a></a></span>Conditions for characterization library 
            <span class="bold">LowPowerOpenCellLibrary</span>, corner 
              <span class="bold">LowPowerOpenCellLibrary_slow_ccs_slow</span>: 
            Vdd=
              <span class="bold">.95</span>V, Tj=
              <span class="bold">125.0</span> deg. C
            .
          <br xmlns:fn="http://www.w3.org/2005/02/xpath-functions">
</li>
</ul></span></a><hr class="navigation_bt">
<table width="100%" summary="Navigation header" class="navigation"><tr>
<td width="33%" align="left"><a href="TotalFullCyclePower_LowPowerOpenCellLibrary_slow_ccs_slow.html">Previous (Total Full-Cycle Power)
      </a></td>
<td width="33%" align="center"><a href="CornerList.html">Up (Table of Contents)
      </a></td>
<td width="33%" align="right"></td>
</tr></table>
<hr class="navigation_bb">
<table class="navigation" width="100%">
<colgroup>
<col>
<col>
</colgroup>
<tr>
<td align="left"><p class="copyright">Databook Build Date: Wednesday Aug 17 19:29 2011</p></td>
<td align="right"><p class="copyright">Copyright © 2004-2010 Nangate Inc.</p></td>
</tr>
</table>
</body>
</html>
