2018-10-18 11:10:01 -05:00
\hypertarget { classKatabatic_ 1_ 1GCell} { } \section { G\+ Cell Class Reference}
\label { classKatabatic_ 1_ 1GCell} \index { G\+ Cell@{ G\+ Cell} }
2018-06-06 11:42:26 -05:00
Routing Global Cell.
2018-10-18 11:10:01 -05:00
Inherits Extension\+ Go.
2018-06-06 11:42:26 -05:00
\subsection * { Classes}
\begin { DoxyCompactItemize}
\item
2018-10-18 11:10:01 -05:00
class \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ 1_ 1CompareByDensity} { Compare\+ By\+ Density} }
\begin { DoxyCompactList} \small \item \em \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } Density Comparison Functor. \end { DoxyCompactList} \item
class \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ 1_ 1CompareByIndex} { Compare\+ By\+ Index} }
\begin { DoxyCompactList} \small \item \em \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } Index Comparison Functor. \end { DoxyCompactList} \item
class \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ 1_ 1Key} { Key} }
\begin { DoxyCompactList} \small \item \em \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ 1_ 1Key} { Key} } -\/ Density Cache. \end { DoxyCompactList} \end { DoxyCompactItemize}
2018-06-06 11:42:26 -05:00
\subsection * { Public Types}
\begin { DoxyCompactItemize}
\item
2018-10-18 11:10:01 -05:00
typedef set$ < $ \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } $ \ast $ , \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ 1_ 1CompareByIndex} { Compare\+ By\+ Index} } $ > $ \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ aacb1c215b203bfba5729f135b3221d40} { Set\+ Index} }
2018-06-06 11:42:26 -05:00
\end { DoxyCompactItemize}
\subsection * { Public Member Functions}
\begin { DoxyCompactItemize}
\item
2018-10-18 11:10:01 -05:00
virtual const \textbf { Name} \& \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ a9e76ae5cee9320b65251387419c9432b} { get\+ Name} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
bool \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ a9f274f17cf9166e997d306b120618fdf} { is\+ Saturated} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
bool \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ a49b7bd2f05abd94436177558fd0f97d8} { is\+ Saturated} } (unsigned int depth) const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
bool \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ a5bc2a781be2586924afce4e4a4ea6697} { is\+ Valid} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
bool \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ a0e0a7b382b06e230051965bcb78ed21c} { is\+ Above\+ Density} } (float threshold) const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
bool \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ ac2275a015db51cc12dd53fb13d22ca4f} { has\+ Free\+ Track} } (size\+ \_ \+ t depth, float reserve) const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
\mbox { \hyperlink { classKatabatic_ 1_ 1GCellGrid} { G\+ Cell\+ Grid} } $ \ast $ \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ a9a56286f633fddd702d66563de457a4a} { get\+ G\+ Cell\+ Grid} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
unsigned int \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ a6c4d9081746b8daa3e45e5e3dd185b60} { get\+ Depth} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
unsigned int \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ a762de91e7869ca544ff034b99fc2e0a6} { get\+ Index} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
unsigned int \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ ad26f8bcf642c2620ac525cc04c8376c0} { get\+ Row} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
unsigned int \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ ac5b1a776c3eafa7f68d31292615011fa} { get\+ Column} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
\mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } $ \ast $ \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ a633722329744550b6da94c3b6fb97484} { get\+ Left} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
\mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } $ \ast $ \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ abdeb6b4a351f8b292894d3f0c24f105d} { get\+ Right} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
\mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } $ \ast $ \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ a335506a314a2330b5a354906e798e60c} { get\+ Up} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
\mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } $ \ast $ \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ ae448c9d6d028e967d7bd5a1bfdd05311} { get\+ Down} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
virtual void \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ a819f3ffbba69e4de2a19c827676b5aee} { translate} } (const \textbf { Db\+ U\+ ::\+ Unit} \& , const \textbf { Db\+ U\+ ::\+ Unit} \& )
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
virtual \textbf { Box} \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ ab5d8bf98ab5af6fcfebea1b9f446d5d7} { get\+ Bounding\+ Box} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
\textbf { Db\+ U\+ ::\+ Unit} \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ a00b8f54c8171f6699e57de1b8c18eeb1} { getX} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
\textbf { Db\+ U\+ ::\+ Unit} \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ a4580de6b074712e400d5d238ce3af054} { getY} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
\textbf { Db\+ U\+ ::\+ Unit} \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ aaf7ff16cd2fd5a3fa4c5221efb9b9b76} { get\+ X\+ Max} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
\textbf { Db\+ U\+ ::\+ Unit} \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ a096a92c18156eac4268efb50496a2d18} { get\+ Y\+ Max} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
\textbf { Interval} \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ a10f3dd5001b2015e34a9aacdacf6eae6} { get\+ Side} } (unsigned int) const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
float \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ ad0dda8d59162b90040263fc55d7da714} { get\+ H\+ Capacity} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
float \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ a3994e204ebccf8aa12899e0c5ef4112b} { get\+ V\+ Capacity} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
float \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ ad31c16c87377e164728a0df55e21f96b} { get\+ Density} } (unsigned int flags=0) const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
float \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ ae56b981fad5960835faef809ec282cfa} { get\+ C\+ Density} } (unsigned int flags=0) const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
float \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ aa64538731e911c60eeaea557be1c7740} { get\+ W\+ Density} } (unsigned int depth, unsigned int flags=0) const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
\textbf { Db\+ U\+ ::\+ Unit} \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ ab37ffda5a2e1ba60931d32c29237bd33} { get\+ Blockage} } (unsigned int depth) const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
float \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ a44ec8d16030b5900bd0ccc02652b727f} { get\+ Fragmentation} } (unsigned int depth) const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
float \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ a14feed45699c8dc406251519dc08bc79} { get\+ Feedthroughs} } (unsigned int depth) const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
float \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ a4785bcc49da76fc38f6940f5b1cc5b17} { get\+ Globals\+ Count} } (unsigned int depth) const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
const vector$ < $ \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } $ \ast $ $ > $ \& \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ a81575302a8794958c310dc101807e9c5} { get\+ H\+ Segments} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
const vector$ < $ \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } $ \ast $ $ > $ \& \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ ac3c357d72a24990494758dcc216e3b1e} { get\+ V\+ Segments} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
const vector$ < $ \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\+ Contact} } $ \ast $ $ > $ \& \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ aacf50ce6dcef3a7523453725af7feeae} { get\+ Contacts} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
\mbox { \hyperlink { namespaceKatabatic_ a2221b0ddbc24f331809fc86f98e38041} { Auto\+ Segments} } \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ a79668a41675e9ba0ca59d4b91e3b70be} { get\+ H\+ Start\+ Segments} } ()
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
\mbox { \hyperlink { namespaceKatabatic_ a2221b0ddbc24f331809fc86f98e38041} { Auto\+ Segments} } \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ acbd17a4441905a4f5bc33a26bb338d0a} { get\+ V\+ Start\+ Segments} } ()
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
\mbox { \hyperlink { namespaceKatabatic_ a2221b0ddbc24f331809fc86f98e38041} { Auto\+ Segments} } \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ a77beccf65527a330f15bed2aba4f9dea} { get\+ H\+ Stop\+ Segments} } ()
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
\mbox { \hyperlink { namespaceKatabatic_ a2221b0ddbc24f331809fc86f98e38041} { Auto\+ Segments} } \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ a2f0f038f5700b7b55f22829c5d43aa07} { get\+ V\+ Stop\+ Segments} } ()
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
\mbox { \hyperlink { namespaceKatabatic_ a2221b0ddbc24f331809fc86f98e38041} { Auto\+ Segments} } \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ a1f92568d22b1384a8cdf328340fb9160} { get\+ Start\+ Segments} } (unsigned int direction)
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
\mbox { \hyperlink { namespaceKatabatic_ a2221b0ddbc24f331809fc86f98e38041} { Auto\+ Segments} } \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ a80ad0f9e79bccf6aed4fb69b4b795005} { get\+ Stop\+ Segments} } (unsigned int direction)
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
size\+ \_ \+ t \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ a3bda8c3dbb2896a0e6e57f974d0c1cad} { get\+ Routing\+ Pads} } (set$ < $ \textbf { Routing\+ Pad} $ \ast $ $ > $ \& )
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
const \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ 1_ 1Key} { Key} } \& \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ ade1e79e88bf4f4c173ffd083dd5470c9} { get\+ Key} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
size\+ \_ \+ t \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ a88208864ba2268689946a8cb7a86fcb2} { check\+ Density} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
bool \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ af4dcc99733b7ea77e8c3c7da9ac3cd3c} { check\+ Edge\+ Saturation} } (size\+ \_ \+ t hreserved, size\+ \_ \+ t vreserved) const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
void \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ a1270eab34ac57f21c0286a5455044a0d} { add\+ Blockage} } (unsigned int depth, \textbf { Db\+ U\+ ::\+ Unit} )
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
void \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ a4aad7d6f7357fd7963aab91bc2019a1b} { add\+ H\+ Segment} } (\mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } $ \ast $ )
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
void \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ a8aa815e9e99df8187e628f6ec9e9da77} { add\+ V\+ Segment} } (\mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } $ \ast $ )
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
void \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ a2b84aab620bfca1064e988e94e7b9c59} { add\+ Contact} } (\mbox { \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\+ Contact} } $ \ast $ )
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
void \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ abe128484d8aa063198292a88c63f2bba} { remove\+ V\+ Segment} } (\mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } $ \ast $ )
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
void \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ aff76aa96214c0efcf13186b8b3e5c852} { remove\+ H\+ Segment} } (\mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } $ \ast $ )
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
void \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ aa052a9427fbd4185f00567a97770f80b} { remove\+ Contact} } (\mbox { \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\+ Contact} } $ \ast $ )
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
void \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ aa0beea2ceaa543503346967085036d1a} { update\+ Contacts} } ()
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
size\+ \_ \+ t \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ a9b3455dce10eb98d0496175dd586528c} { update\+ Density} } ()
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
void \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ a11beff0f0bec06d0f3e080969516dfc3} { update\+ Key} } (unsigned int depth)
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
void \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ a11f07f57cc33fcd4b2d310145c778801} { rp\+ Desaturate} } (set$ < $ \textbf { Net} $ \ast $ $ > $ \& )
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
bool \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ a5ae4d250ebecf59aa98fb068d848be14} { step\+ Desaturate} } (unsigned int depth, set$ < $ \textbf { Net} $ \ast $ $ > $ \& , \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } $ \ast $ \& moved, unsigned int flags=0)
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
bool \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ abe4cf4a81bb78e9b479992336a999a07} { step\+ Net\+ Desaturate} } (unsigned int depth, set$ < $ \textbf { Net} $ \ast $ $ > $ \& global\+ Nets, \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ aacb1c215b203bfba5729f135b3221d40} { Set\+ Index} } \& invalidateds)
2018-06-06 11:42:26 -05:00
\end { DoxyCompactItemize}
\subsection * { Static Public Member Functions}
\begin { DoxyCompactItemize}
\item
2018-10-18 11:10:01 -05:00
static size\+ \_ \+ t \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ a91c8bc1a6bdb1b15c3c084ebfd38af47} { get\+ Allocateds} } ()
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
static \textbf { Db\+ U\+ ::\+ Unit} \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ ac594cb2832ee7ef410c89499258d38fd} { get\+ Top\+ Right\+ Shrink} } ()
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
static const \textbf { Name} \& \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ a00e56270cfb31f56e52e31afbc33ba71} { get\+ Static\+ Name} } ()
2018-06-06 11:42:26 -05:00
\end { DoxyCompactItemize}
\subsection { Detailed Description}
Routing Global Cell.
2018-10-18 11:10:01 -05:00
\hypertarget { classKatabatic_ 1_ 1GCell_ secGCellDescription} { } \subsection { G\+ Cell Description} \label { classKatabatic_ 1_ 1GCell_ secGCellDescription}
Please note that there are two kind of Global Cells (or \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } for short)\+ :
2018-06-06 11:42:26 -05:00
\begin { DoxyItemize}
2018-10-18 11:10:01 -05:00
\item The \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } used by the global router Knik.
\item The \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } used by the detailed router (\mbox { \hyperlink { namespaceKatabatic} { Katabatic} } \& Kite). Although the information they hold is obviously related, they are two separate kind of objects.
2018-06-06 11:42:26 -05:00
\end { DoxyItemize}
2018-10-18 11:10:01 -05:00
The area of the design to be routed is divided in a regular grid of rectangular area, the \mbox { \hyperlink { classKatabatic_ 1_ 1GCellGrid} { G\+ Cell\+ Grid} } . Each rectangular area is a \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } .
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
The \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } contains the following informations\+ :
2018-06-06 11:42:26 -05:00
\begin { DoxyItemize}
2018-10-18 11:10:01 -05:00
\item The Auto\+ Segments that begins or ends in it. The list of segments is not avalaible directly but through the Auto\+ Contacts that are owned by the \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } .
\item The Auto\+ Segments that go straight { \itshape through} it (or { \itshape over} it). Horizontal \& Vertical segments are stored in two separeted list. Those two lists are sorted by layer depth (the deepest layers first).
\item A lot of synthetic information about the density of tracks used in the \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } .
2018-06-06 11:42:26 -05:00
\end { DoxyItemize}
2018-10-18 11:10:01 -05:00
Auto\+ Contacts are affected to G\+ Cells, the area of the \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } is the one into which the \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\+ Contact} } is allowed to be placed. It is this that way that the respect of the global routing choosen by Knik is enforced. See the \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\+ Contact} } constraint box.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
When tracks are aligned with the \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } boundaries they one exactly on the boundary can belong to the \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } on either side of the boundary. But we want a clear and mutually exclusive ownership of each \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } area. So, we choose that one \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } do not own the topmost and rightmost track. And to implement it, we shrink top and right coordinates by the amount of \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ ac594cb2832ee7ef410c89499258d38fd} { G\+ Cell\+ ::get\+ Top\+ Right\+ Shrink()} } , which must be less than the track spacing.\hypertarget { classKatabatic_ 1_ 1GCell_ secGCellDensity} { } \subsubsection { Saturation \& Density Computation} \label { classKatabatic_ 1_ 1GCell_ secGCellDensity}
At any depth (i.\+ e. layer), in the preferred routing direction, a \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } can pass a finite length of wire. For example on an horizontal preferred layer\+ : \[ WL _ { max } = width ( GCell ) \times Htracks ( GCell ) \] Then the density, is the ratio between $ WL _ { max } $ and the actually used wirelength\+ : \[ Wdensity ( depth ) = \frac { WL _ { used } ( depth ) } { WL _ { max } ( depth ) } \] Normally, the ratio musn\textquotesingle { } t exceed 1.\+ 0, but the occupied wire length computation, for now, doesn\textquotesingle { } t merge overlapping wires belonging to the same net, so the ratio may be slightly inaccurate. Thus in some pathological cases may be greater than 1.\+ 0 whithout truly been overloaded.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
A Cell is considered as { \itshape saturated} if the overall density is above the saturation ratio given by \mbox { \hyperlink { classKatabatic_ 1_ 1Session_ a266a4079ca235e8fdb622ef4996d324d} { Session\+ ::get\+ Saturate\+ Ratio()} } .
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Contact density is calculated as follow\+ : \[ Cont _ { density } = \frac { |Contacts| } { Htracks \times Vtracks \times 4 } \] It is a ratio over the number of actual contacts in the \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } and the maximal number. The maximal number being the product of the number of tracks in both direction and 4 stands for the hardwired number of layers (the depth).
2018-06-06 11:42:26 -05:00
Should not be hardwired... { \itshape To be corrected in future versions.} \hypertarget { classKatabatic_ 1_ 1GCell_ secGCellFeedthrough} { } \subsubsection { Feedthrough Computation} \label { classKatabatic_ 1_ 1GCell_ secGCellFeedthrough}
2018-10-18 11:10:01 -05:00
The feedtrough value is an estimate is of how many complete tracks have been used on a given layer of the \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } . It varies between zero and the number of track on the \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } (complete saturation). As an estimate, it doesn\textquotesingle { } t tell you the actual number of free track, but how many you { \itshape may expect} assuming the routing is reasonably well done.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Computation is done as follow\+ : \tabulinesep =1mm
\begin { longtabu} spread 0pt [c]{ *{ 2} { |X[-1]} |}
2018-06-06 11:42:26 -05:00
\hline
2018-10-18 11:10:01 -05:00
\rowcolor { \tableheadbgcolor } \textbf { Wire type} & \textbf { Estimated Cost } \\ \cline { 1-2}
\endfirsthead
\hline
\endfoot
\hline
\rowcolor { \tableheadbgcolor } \textbf { Wire type} & \textbf { Estimated Cost } \\ \cline { 1-2}
\endhead
Straight wire (feedthrough) & { \bfseries 1.\+ 0} \\ \cline { 1-2}
Beginning or ending global wire & { \bfseries 0.\+ 5} \\ \cline { 1-2}
2018-06-06 11:42:26 -05:00
Local wire. & { \bfseries 1/3} \\ \cline { 1-2}
Blockage wire & The exact percentage of the track \\ \cline { 1-2}
2018-10-18 11:10:01 -05:00
\end { longtabu}
2018-06-06 11:42:26 -05:00
\hypertarget { classKatabatic_ 1_ 1GCell_ secGCellTrackComputation} { } \subsubsection { Track Computation} \label { classKatabatic_ 1_ 1GCell_ secGCellTrackComputation}
2018-10-18 11:10:01 -05:00
The number of track that can go through a \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } in the horizontal direction is computed as follow\+ : \[ Htracks = \frac { heigth ( GCell ) } { Vpitch } + 1 \]
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
The pitch is assumed to be the same for every layer and is hardwired to 5.\+ 0 lambda.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
This is a bad architectural choice. The informations pertaining to routing should be held at Kite level, not be hardwired and the pitch should be made variable with the layer... { \itshape To be corrected in future versions} .\hypertarget { classKatabatic_ 1_ 1GCell_ secGCellLazyEvaluation} { } \subsection { G\+ Cell Lazy Evaluation} \label { classKatabatic_ 1_ 1GCell_ secGCellLazyEvaluation}
To save processing time, the densities are not recomputed every time a segment is modified (added, removed or moved). Instead a lazy evaluation mechanism is used. Densities are recomputed each time a density is queried { \itshape and} the lazy evaluation { \itshape not} explicitly disabled (flag No\+ Update).\hypertarget { classKatabatic_ 1_ 1GCell_ secGCellSortingKey} { } \subsection { G\+ Cell Sorting Key} \label { classKatabatic_ 1_ 1GCell_ secGCellSortingKey}
In order to perform a lexicographical sort on the tuple $ ( density ( depth ) ,id ) $ of a \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } , a specific slave object \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ 1_ 1Key} { G\+ Cell\+ ::\+ Key} } is introduced. It is the density on one specific depth, not the average density.\hypertarget { classKatabatic_ 1_ 1GCell_ secGCellDesaturation} { } \subsection { G\+ Cell Desaturation / Layer Assignment} \label { classKatabatic_ 1_ 1GCell_ secGCellDesaturation}
In addition to it\textquotesingle { } s geometrical and density functionality, the \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } provides { \itshape desaturation} capabilities. Desaturation is the operation of moving up feedthough \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } from the bottom layers towards the upper ones in order to balance the densities in the different densities. Thoses operations provides building blocks for the layer assignment stage which is provided by the Kabatic tool.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Two strategies are avalaibles, moving one global \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } at a time with \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ a5ae4d250ebecf59aa98fb068d848be14} { G\+ Cell\+ ::step\+ Desaturate()} } or, when one \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } is moved up, move up the whole net trunk with \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ abe4cf4a81bb78e9b479992336a999a07} { G\+ Cell\+ ::step\+ Net\+ Desaturate()} } .\hypertarget { classKatabatic_ 1_ 1GCell_ secGCellImplantation} { } \subsection { G\+ Cell Implantation} \label { classKatabatic_ 1_ 1GCell_ secGCellImplantation}
\mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } derives from Hurricane\+ ::\+ Extension\+ Go to allow a graphical rendering of the routing density.
2018-06-06 11:42:26 -05:00
\subsection { Member Typedef Documentation}
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1GCell_ aacb1c215b203bfba5729f135b3221d40} \label { classKatabatic_ 1_ 1GCell_ aacb1c215b203bfba5729f135b3221d40} }
\index { Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} !Set\+ Index@{ Set\+ Index} }
\index { Set\+ Index@{ Set\+ Index} !Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} }
\subsubsection { \texorpdfstring { Set\+ Index} { SetIndex} }
{ \footnotesize \ttfamily typedef set$ < $ \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } $ \ast $ , \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ 1_ 1CompareByIndex} { Compare\+ By\+ Index} } $ > $ \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ aacb1c215b203bfba5729f135b3221d40} { Set\+ Index} } }
Shorthand for a set of \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } sorted on their index.
2018-06-06 11:42:26 -05:00
\subsection { Member Function Documentation}
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1GCell_ a91c8bc1a6bdb1b15c3c084ebfd38af47} \label { classKatabatic_ 1_ 1GCell_ a91c8bc1a6bdb1b15c3c084ebfd38af47} }
\index { Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} !get\+ Allocateds@{ get\+ Allocateds} }
\index { get\+ Allocateds@{ get\+ Allocateds} !Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} }
\subsubsection { \texorpdfstring { get\+ Allocateds()} { getAllocateds()} }
{ \footnotesize \ttfamily size\+ \_ \+ t get\+ Allocateds (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [static]} }
{ \bfseries Returns\+ :} The number of allocated G\+ Cells. \mbox { \Hypertarget { classKatabatic_ 1_ 1GCell_ ac594cb2832ee7ef410c89499258d38fd} \label { classKatabatic_ 1_ 1GCell_ ac594cb2832ee7ef410c89499258d38fd} }
\index { Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} !get\+ Top\+ Right\+ Shrink@{ get\+ Top\+ Right\+ Shrink} }
\index { get\+ Top\+ Right\+ Shrink@{ get\+ Top\+ Right\+ Shrink} !Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} }
\subsubsection { \texorpdfstring { get\+ Top\+ Right\+ Shrink()} { getTopRightShrink()} }
{ \footnotesize \ttfamily \textbf { Db\+ U\+ ::\+ Unit} get\+ Top\+ Right\+ Shrink (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [static]} }
{ \bfseries Returns\+ :} The amount of shrink on the top and right boundaries. \mbox { \Hypertarget { classKatabatic_ 1_ 1GCell_ a00e56270cfb31f56e52e31afbc33ba71} \label { classKatabatic_ 1_ 1GCell_ a00e56270cfb31f56e52e31afbc33ba71} }
\index { Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} !get\+ Static\+ Name@{ get\+ Static\+ Name} }
\index { get\+ Static\+ Name@{ get\+ Static\+ Name} !Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} }
\subsubsection { \texorpdfstring { get\+ Static\+ Name()} { getStaticName()} }
{ \footnotesize \ttfamily const \textbf { Name} \& get\+ Static\+ Name (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [static]} }
{ \bfseries Returns\+ :} The name of the Go slice\+ : { \ttfamily \char `\" { } \+ Katabatic\+ ::\+ G\+ Cell\char `\" { } } .
\begin { DoxySeeAlso} { See also}
Hurricane\+ ::\+ Extension\+ Go
2018-06-06 11:42:26 -05:00
\end { DoxySeeAlso}
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1GCell_ a9e76ae5cee9320b65251387419c9432b} \label { classKatabatic_ 1_ 1GCell_ a9e76ae5cee9320b65251387419c9432b} }
\index { Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} !get\+ Name@{ get\+ Name} }
\index { get\+ Name@{ get\+ Name} !Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} }
\subsubsection { \texorpdfstring { get\+ Name()} { getName()} }
{ \footnotesize \ttfamily const \textbf { Name} \& get\+ Name (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [virtual]} }
{ \bfseries Returns\+ :} The name of the Go slice\+ : { \ttfamily \char `\" { } \+ Katabatic\+ ::\+ G\+ Cell\char `\" { } } .
\begin { DoxySeeAlso} { See also}
Hurricane\+ ::\+ Extension\+ Go
2018-06-06 11:42:26 -05:00
\end { DoxySeeAlso}
2018-10-18 11:10:01 -05:00
Referenced by G\+ Cell\+ ::check\+ Density().
\mbox { \Hypertarget { classKatabatic_ 1_ 1GCell_ a9f274f17cf9166e997d306b120618fdf} \label { classKatabatic_ 1_ 1GCell_ a9f274f17cf9166e997d306b120618fdf} }
\index { Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} !is\+ Saturated@{ is\+ Saturated} }
\index { is\+ Saturated@{ is\+ Saturated} !Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} }
\subsubsection { \texorpdfstring { is\+ Saturated()} { isSaturated()} \hspace { 0.1cm} { \footnotesize \ttfamily [1/2]} }
{ \footnotesize \ttfamily bool is\+ Saturated (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
{ \bfseries Returns\+ :} { \bfseries true} if at least one layer exceed a saturation of { \ttfamily 1.\+ 0} (more wirelength that it can hold).
Referenced by G\+ Cell\+ ::check\+ Density(), G\+ Cell\+ ::step\+ Desaturate(), and G\+ Cell\+ ::update\+ Density().
\mbox { \Hypertarget { classKatabatic_ 1_ 1GCell_ a49b7bd2f05abd94436177558fd0f97d8} \label { classKatabatic_ 1_ 1GCell_ a49b7bd2f05abd94436177558fd0f97d8} }
\index { Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} !is\+ Saturated@{ is\+ Saturated} }
\index { is\+ Saturated@{ is\+ Saturated} !Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} }
\subsubsection { \texorpdfstring { is\+ Saturated()} { isSaturated()} \hspace { 0.1cm} { \footnotesize \ttfamily [2/2]} }
{ \footnotesize \ttfamily bool is\+ Saturated (\begin { DoxyParamCaption} \item [{unsigned int}] { depth } \end { DoxyParamCaption} ) const}
{ \bfseries Returns\+ :} { \bfseries true} if the saturation ratio of layer { \ttfamily depth} is over the threshold defined for the G\+ Cells.
References G\+ Cell\+ ::get\+ Density(), and Session\+ ::get\+ Saturate\+ Ratio().
\mbox { \Hypertarget { classKatabatic_ 1_ 1GCell_ a5bc2a781be2586924afce4e4a4ea6697} \label { classKatabatic_ 1_ 1GCell_ a5bc2a781be2586924afce4e4a4ea6697} }
\index { Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} !is\+ Valid@{ is\+ Valid} }
\index { is\+ Valid@{ is\+ Valid} !Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} }
\subsubsection { \texorpdfstring { is\+ Valid()} { isValid()} }
{ \footnotesize \ttfamily bool is\+ Valid (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
{ \bfseries Returns\+ :} { \bfseries true} if all the Auto\+ Contact/\+ Auto\+ Segment of the \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } are valids.
Referenced by G\+ Cell\+ ::check\+ Density(), G\+ Cell\+ ::get\+ C\+ Density(), G\+ Cell\+ ::get\+ Density(), G\+ Cell\+ ::get\+ Feedthroughs(), G\+ Cell\+ ::get\+ Fragmentation(), G\+ Cell\+ ::get\+ Globals\+ Count(), G\+ Cell\+ ::get\+ W\+ Density(), G\+ Cell\+ ::has\+ Free\+ Track(), G\+ Cell\+ ::is\+ Above\+ Density(), and G\+ Cell\+ ::update\+ Density().
\mbox { \Hypertarget { classKatabatic_ 1_ 1GCell_ a0e0a7b382b06e230051965bcb78ed21c} \label { classKatabatic_ 1_ 1GCell_ a0e0a7b382b06e230051965bcb78ed21c} }
\index { Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} !is\+ Above\+ Density@{ is\+ Above\+ Density} }
\index { is\+ Above\+ Density@{ is\+ Above\+ Density} !Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} }
\subsubsection { \texorpdfstring { is\+ Above\+ Density()} { isAboveDensity()} }
{ \footnotesize \ttfamily bool is\+ Above\+ Density (\begin { DoxyParamCaption} \item [{float}] { threshold } \end { DoxyParamCaption} ) const}
{ \bfseries Returns\+ :} { \bfseries true} if the overall saturation ratio greater than { \ttfamily threshold} .
References G\+ Cell\+ ::get\+ Density(), G\+ Cell\+ ::is\+ Valid(), and G\+ Cell\+ ::update\+ Density().
\mbox { \Hypertarget { classKatabatic_ 1_ 1GCell_ ac2275a015db51cc12dd53fb13d22ca4f} \label { classKatabatic_ 1_ 1GCell_ ac2275a015db51cc12dd53fb13d22ca4f} }
\index { Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} !has\+ Free\+ Track@{ has\+ Free\+ Track} }
\index { has\+ Free\+ Track@{ has\+ Free\+ Track} !Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} }
\subsubsection { \texorpdfstring { has\+ Free\+ Track()} { hasFreeTrack()} }
{ \footnotesize \ttfamily bool has\+ Free\+ Track (\begin { DoxyParamCaption} \item [{size\+\_\+t}] { depth, } \item [{float}] { reserve } \end { DoxyParamCaption} ) const}
{ \bfseries Returns\+ :} { \bfseries true} if there should be enough wire length to pass a wire completly trough this \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } .
References G\+ Cell\+ ::get\+ H\+ Capacity(), G\+ Cell\+ ::get\+ Index(), Routing\+ Gauge\+ ::get\+ Layer\+ Depth(), Layer\+ ::get\+ Name(), Session\+ ::get\+ Routing\+ Gauge(), Routing\+ Gauge\+ ::get\+ Routing\+ Layer(), G\+ Cell\+ ::get\+ V\+ Capacity(), G\+ Cell\+ ::is\+ Valid(), Katabatic\+ ::\+ Kb\+ Horizontal, Katabatic\+ ::\+ Kb\+ Vertical, and G\+ Cell\+ ::update\+ Density().
\mbox { \Hypertarget { classKatabatic_ 1_ 1GCell_ a9a56286f633fddd702d66563de457a4a} \label { classKatabatic_ 1_ 1GCell_ a9a56286f633fddd702d66563de457a4a} }
\index { Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} !get\+ G\+ Cell\+ Grid@{ get\+ G\+ Cell\+ Grid} }
\index { get\+ G\+ Cell\+ Grid@{ get\+ G\+ Cell\+ Grid} !Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} }
\subsubsection { \texorpdfstring { get\+ G\+ Cell\+ Grid()} { getGCellGrid()} }
{ \footnotesize \ttfamily \mbox { \hyperlink { classKatabatic_ 1_ 1GCellGrid} { G\+ Cell\+ Grid} } $ \ast $ get\+ G\+ Cell\+ Grid (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
{ \bfseries Returns\+ :} The \mbox { \hyperlink { classKatabatic_ 1_ 1Grid} { Grid} } of which \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } is part of.
Referenced by G\+ Cell\+ ::check\+ Edge\+ Saturation(), G\+ Cell\+ ::get\+ Density(), G\+ Cell\+ ::get\+ Down(), G\+ Cell\+ ::get\+ Left(), G\+ Cell\+ ::get\+ Right(), G\+ Cell\+ ::get\+ Up(), and G\+ Cell\+ ::step\+ Net\+ Desaturate().
\mbox { \Hypertarget { classKatabatic_ 1_ 1GCell_ a6c4d9081746b8daa3e45e5e3dd185b60} \label { classKatabatic_ 1_ 1GCell_ a6c4d9081746b8daa3e45e5e3dd185b60} }
\index { Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} !get\+ Depth@{ get\+ Depth} }
\index { get\+ Depth@{ get\+ Depth} !Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} }
\subsubsection { \texorpdfstring { get\+ Depth()} { getDepth()} }
{ \footnotesize \ttfamily unsigned int get\+ Depth (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
{ \bfseries Returns\+ :} The depth (i.\+ e. number of routing layers) of the \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } . \mbox { \Hypertarget { classKatabatic_ 1_ 1GCell_ a762de91e7869ca544ff034b99fc2e0a6} \label { classKatabatic_ 1_ 1GCell_ a762de91e7869ca544ff034b99fc2e0a6} }
\index { Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} !get\+ Index@{ get\+ Index} }
\index { get\+ Index@{ get\+ Index} !Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} }
\subsubsection { \texorpdfstring { get\+ Index()} { getIndex()} }
{ \footnotesize \ttfamily unsigned int get\+ Index (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
{ \bfseries Returns\+ :} The linear index of the \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } in the \mbox { \hyperlink { classKatabatic_ 1_ 1GCellGrid} { G\+ Cell\+ Grid} } vector.
\begin { DoxySeeAlso} { See also}
\mbox { \hyperlink { classKatabatic_ 1_ 1GCellGrid} { G\+ Cell\+ Grid} } for the meaning of the index.
2018-08-19 06:27:09 -05:00
\end { DoxySeeAlso}
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Segment\+ ::can\+ Move\+ Up(), G\+ Cell\+ ::has\+ Free\+ Track(), and G\+ Cell\+ ::step\+ Desaturate().
\mbox { \Hypertarget { classKatabatic_ 1_ 1GCell_ ad26f8bcf642c2620ac525cc04c8376c0} \label { classKatabatic_ 1_ 1GCell_ ad26f8bcf642c2620ac525cc04c8376c0} }
\index { Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} !get\+ Row@{ get\+ Row} }
\index { get\+ Row@{ get\+ Row} !Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} }
\subsubsection { \texorpdfstring { get\+ Row()} { getRow()} }
{ \footnotesize \ttfamily unsigned int get\+ Row (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const}
{ \bfseries Returns\+ :} The row of the \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } in the \mbox { \hyperlink { classKatabatic_ 1_ 1GCellGrid} { G\+ Cell\+ Grid} } .
References Base\+ Grid\+ ::get\+ Row().
Referenced by G\+ Cell\+ ::check\+ Density(), and Auto\+ Segment\+ ::compute\+ Optimal().
\mbox { \Hypertarget { classKatabatic_ 1_ 1GCell_ ac5b1a776c3eafa7f68d31292615011fa} \label { classKatabatic_ 1_ 1GCell_ ac5b1a776c3eafa7f68d31292615011fa} }
\index { Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} !get\+ Column@{ get\+ Column} }
\index { get\+ Column@{ get\+ Column} !Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} }
\subsubsection { \texorpdfstring { get\+ Column()} { getColumn()} }
{ \footnotesize \ttfamily unsigned int get\+ Column (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const}
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
{ \bfseries Returns\+ :} The Column of the \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } in the \mbox { \hyperlink { classKatabatic_ 1_ 1GCellGrid} { G\+ Cell\+ Grid} } .
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
References Base\+ Grid\+ ::get\+ Column().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Referenced by G\+ Cell\+ ::check\+ Density(), and Auto\+ Segment\+ ::compute\+ Optimal().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1GCell_ a633722329744550b6da94c3b6fb97484} \label { classKatabatic_ 1_ 1GCell_ a633722329744550b6da94c3b6fb97484} }
\index { Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} !get\+ Left@{ get\+ Left} }
\index { get\+ Left@{ get\+ Left} !Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} }
\subsubsection { \texorpdfstring { get\+ Left()} { getLeft()} }
{ \footnotesize \ttfamily \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } $ \ast $ get\+ Left (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const}
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
{ \bfseries Returns\+ :} The left neighbor of the \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } ({ \ttfamily N\+ U\+ LL} if it is the leftmost \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } ).
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
References G\+ Cell\+ ::get\+ G\+ Cell\+ Grid(), and Grid$ < $ G\+ Cell\+ T $ > $ \+ ::get\+ G\+ Cell\+ Left().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Vertical\+ ::can\+ Move\+ U\+ Left(), and Auto\+ Vertical\+ ::move\+ U\+ Left().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1GCell_ abdeb6b4a351f8b292894d3f0c24f105d} \label { classKatabatic_ 1_ 1GCell_ abdeb6b4a351f8b292894d3f0c24f105d} }
\index { Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} !get\+ Right@{ get\+ Right} }
\index { get\+ Right@{ get\+ Right} !Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} }
\subsubsection { \texorpdfstring { get\+ Right()} { getRight()} }
{ \footnotesize \ttfamily \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } $ \ast $ get\+ Right (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const}
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
{ \bfseries Returns\+ :} The right neighbor of the \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } ({ \ttfamily N\+ U\+ LL} if it is the rightmost \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } ).
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
References G\+ Cell\+ ::get\+ G\+ Cell\+ Grid(), and Grid$ < $ G\+ Cell\+ T $ > $ \+ ::get\+ G\+ Cell\+ Right().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Horizontal\+ ::\+ \_ \+ make\+ Dogleg(), Auto\+ Horizontal\+ ::\+ \_ \+ post\+ Create(), Auto\+ Horizontal\+ ::\+ \_ \+ pre\+ Destroy(), Auto\+ Horizontal\+ ::can\+ Move\+ U\+ Left(), Auto\+ Horizontal\+ ::can\+ Move\+ U\+ Right(), Auto\+ Vertical\+ ::can\+ Move\+ U\+ Right(), G\+ Cell\+ ::check\+ Edge\+ Saturation(), Auto\+ Horizontal\+ ::get\+ G\+ Cells(), Auto\+ Segment\+ ::make\+ Dogleg(), Auto\+ Horizontal\+ ::move\+ U\+ Left(), Auto\+ Horizontal\+ ::move\+ U\+ Right(), and Auto\+ Vertical\+ ::move\+ U\+ Right().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1GCell_ a335506a314a2330b5a354906e798e60c} \label { classKatabatic_ 1_ 1GCell_ a335506a314a2330b5a354906e798e60c} }
\index { Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} !get\+ Up@{ get\+ Up} }
\index { get\+ Up@{ get\+ Up} !Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} }
\subsubsection { \texorpdfstring { get\+ Up()} { getUp()} }
{ \footnotesize \ttfamily \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } $ \ast $ get\+ Up (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const}
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
{ \bfseries Returns\+ :} The top neighbor of the \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } ({ \ttfamily N\+ U\+ LL} if it is the topmost \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } ).
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
References G\+ Cell\+ ::get\+ G\+ Cell\+ Grid(), and Grid$ < $ G\+ Cell\+ T $ > $ \+ ::get\+ G\+ Cell\+ Up().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Vertical\+ ::\+ \_ \+ make\+ Dogleg(), Auto\+ Vertical\+ ::\+ \_ \+ post\+ Create(), Auto\+ Vertical\+ ::\+ \_ \+ pre\+ Destroy(), Auto\+ Vertical\+ ::can\+ Move\+ U\+ Left(), Auto\+ Horizontal\+ ::can\+ Move\+ U\+ Right(), Auto\+ Vertical\+ ::can\+ Move\+ U\+ Right(), G\+ Cell\+ ::check\+ Edge\+ Saturation(), Auto\+ Vertical\+ ::get\+ G\+ Cells(), Auto\+ Segment\+ ::make\+ Dogleg(), Auto\+ Vertical\+ ::move\+ U\+ Left(), Auto\+ Horizontal\+ ::move\+ U\+ Right(), and Auto\+ Vertical\+ ::move\+ U\+ Right().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1GCell_ ae448c9d6d028e967d7bd5a1bfdd05311} \label { classKatabatic_ 1_ 1GCell_ ae448c9d6d028e967d7bd5a1bfdd05311} }
\index { Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} !get\+ Down@{ get\+ Down} }
\index { get\+ Down@{ get\+ Down} !Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} }
\subsubsection { \texorpdfstring { get\+ Down()} { getDown()} }
{ \footnotesize \ttfamily \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } $ \ast $ get\+ Down (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const}
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
{ \bfseries Returns\+ :} The bottom neighbor of the \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } ({ \ttfamily N\+ U\+ LL} if it is the bottommost \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } ).
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
References Grid$ < $ G\+ Cell\+ T $ > $ \+ ::get\+ G\+ Cell\+ Down(), and G\+ Cell\+ ::get\+ G\+ Cell\+ Grid().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Horizontal\+ ::can\+ Move\+ U\+ Left(), and Auto\+ Horizontal\+ ::move\+ U\+ Left().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1GCell_ a819f3ffbba69e4de2a19c827676b5aee} \label { classKatabatic_ 1_ 1GCell_ a819f3ffbba69e4de2a19c827676b5aee} }
\index { Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} !translate@{ translate} }
\index { translate@{ translate} !Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} }
\subsubsection { \texorpdfstring { translate()} { translate()} }
{ \footnotesize \ttfamily void translate (\begin { DoxyParamCaption} \item [{const \textbf{ Db\+U\+::\+Unit} \&}] { , } \item [{const \textbf{ Db\+U\+::\+Unit} \&}] { } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [virtual]} }
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Required to exists as a \textbf { Hurricane\+ ::\+ Go} derived class. But must never be used... \mbox { \Hypertarget { classKatabatic_ 1_ 1GCell_ ab5d8bf98ab5af6fcfebea1b9f446d5d7} \label { classKatabatic_ 1_ 1GCell_ ab5d8bf98ab5af6fcfebea1b9f446d5d7} }
\index { Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} !get\+ Bounding\+ Box@{ get\+ Bounding\+ Box} }
\index { get\+ Bounding\+ Box@{ get\+ Bounding\+ Box} !Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} }
\subsubsection { \texorpdfstring { get\+ Bounding\+ Box()} { getBoundingBox()} }
{ \footnotesize \ttfamily \textbf { Box} get\+ Bounding\+ Box (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [virtual]} }
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
{ \bfseries Returns\+ :} The bounding box of the \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } , with the top right shrink applied.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Segment\+ ::\+ Auto\+ Segment(), Auto\+ Segment\+ ::compute\+ Optimal(), and Auto\+ Contact\+ Terminal\+ ::get\+ Native\+ Constraint\+ Box().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1GCell_ a00b8f54c8171f6699e57de1b8c18eeb1} \label { classKatabatic_ 1_ 1GCell_ a00b8f54c8171f6699e57de1b8c18eeb1} }
\index { Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} !getX@{ getX} }
\index { getX@{ getX} !Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} }
\subsubsection { \texorpdfstring { get\+ X()} { getX()} }
{ \footnotesize \ttfamily \textbf { Db\+ U\+ ::\+ Unit} getX (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
{ \bfseries Returns\+ :} The lower left X coordinate of the \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } box.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
References Box\+ ::get\+ X\+ Min().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Horizontal\+ ::\+ \_ \+ make\+ Dogleg(), Auto\+ Horizontal\+ ::\+ \_ \+ post\+ Create(), Auto\+ Horizontal\+ ::\+ \_ \+ pre\+ Destroy(), Auto\+ Contact\+ ::get\+ C\+ B\+ X\+ Max(), Auto\+ Contact\+ ::get\+ C\+ B\+ X\+ Min(), Auto\+ Segment\+ ::get\+ Origin(), Auto\+ Contact\+ ::set\+ C\+ B\+ X\+ Max(), and Auto\+ Contact\+ ::set\+ C\+ B\+ X\+ Min().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1GCell_ a4580de6b074712e400d5d238ce3af054} \label { classKatabatic_ 1_ 1GCell_ a4580de6b074712e400d5d238ce3af054} }
\index { Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} !getY@{ getY} }
\index { getY@{ getY} !Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} }
\subsubsection { \texorpdfstring { get\+ Y()} { getY()} }
{ \footnotesize \ttfamily \textbf { Db\+ U\+ ::\+ Unit} getY (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
{ \bfseries Returns\+ :} The lower left Y coordinate of the \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } box.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
References Box\+ ::get\+ Y\+ Min().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Vertical\+ ::\+ \_ \+ make\+ Dogleg(), Auto\+ Vertical\+ ::\+ \_ \+ post\+ Create(), Auto\+ Vertical\+ ::\+ \_ \+ pre\+ Destroy(), Auto\+ Contact\+ ::get\+ C\+ B\+ Y\+ Max(), Auto\+ Contact\+ ::get\+ C\+ B\+ Y\+ Min(), Auto\+ Segment\+ ::get\+ Origin(), Auto\+ Contact\+ ::set\+ C\+ B\+ Y\+ Max(), and Auto\+ Contact\+ ::set\+ C\+ B\+ Y\+ Min().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1GCell_ aaf7ff16cd2fd5a3fa4c5221efb9b9b76} \label { classKatabatic_ 1_ 1GCell_ aaf7ff16cd2fd5a3fa4c5221efb9b9b76} }
\index { Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} !get\+ X\+ Max@{ get\+ X\+ Max} }
\index { get\+ X\+ Max@{ get\+ X\+ Max} !Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} }
\subsubsection { \texorpdfstring { get\+ X\+ Max()} { getXMax()} }
{ \footnotesize \ttfamily \textbf { Db\+ U\+ ::\+ Unit} get\+ X\+ Max (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
{ \bfseries Returns\+ :} The upper right X coordinate of the \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } box (top right shrink applied).
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
References Box\+ ::get\+ X\+ Max().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Horizontal\+ ::\+ \_ \+ make\+ Dogleg(), Auto\+ Segment\+ ::get\+ Extremity(), and Auto\+ Contact\+ ::set\+ C\+ B\+ X\+ Max().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1GCell_ a096a92c18156eac4268efb50496a2d18} \label { classKatabatic_ 1_ 1GCell_ a096a92c18156eac4268efb50496a2d18} }
\index { Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} !get\+ Y\+ Max@{ get\+ Y\+ Max} }
\index { get\+ Y\+ Max@{ get\+ Y\+ Max} !Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} }
\subsubsection { \texorpdfstring { get\+ Y\+ Max()} { getYMax()} }
{ \footnotesize \ttfamily \textbf { Db\+ U\+ ::\+ Unit} get\+ Y\+ Max (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
{ \bfseries Returns\+ :} The upper right Y coordinate of the \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } box (top right shrink applied).
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
References Box\+ ::get\+ Y\+ Max().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Vertical\+ ::\+ \_ \+ make\+ Dogleg(), Auto\+ Segment\+ ::get\+ Extremity(), and Auto\+ Contact\+ ::set\+ C\+ B\+ Y\+ Max().
\mbox { \Hypertarget { classKatabatic_ 1_ 1GCell_ a10f3dd5001b2015e34a9aacdacf6eae6} \label { classKatabatic_ 1_ 1GCell_ a10f3dd5001b2015e34a9aacdacf6eae6} }
\index { Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} !get\+ Side@{ get\+ Side} }
\index { get\+ Side@{ get\+ Side} !Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} }
\subsubsection { \texorpdfstring { get\+ Side()} { getSide()} }
{ \footnotesize \ttfamily \textbf { Interval} get\+ Side (\begin { DoxyParamCaption} \item [{unsigned int}] { direction } \end { DoxyParamCaption} ) const}
{ \bfseries Returns\+ :} The interval corresponding to the side position of the \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } box, in { \ttfamily direction} .
References Box\+ ::get\+ X\+ Max(), Box\+ ::get\+ X\+ Min(), Box\+ ::get\+ Y\+ Max(), Box\+ ::get\+ Y\+ Min(), Katabatic\+ ::\+ Kb\+ Horizontal, and Katabatic\+ ::\+ Kb\+ Vertical.
Referenced by Auto\+ Horizontal\+ ::\+ \_ \+ can\+ Slacken(), Auto\+ Vertical\+ ::\+ \_ \+ can\+ Slacken(), Auto\+ Segment\+ ::make\+ Dogleg(), Auto\+ Horizontal\+ ::move\+ U\+ Left(), Auto\+ Vertical\+ ::move\+ U\+ Left(), Auto\+ Horizontal\+ ::move\+ U\+ Right(), Auto\+ Vertical\+ ::move\+ U\+ Right(), and Auto\+ Segment\+ ::to\+ Constraint\+ Axis().
\mbox { \Hypertarget { classKatabatic_ 1_ 1GCell_ ad0dda8d59162b90040263fc55d7da714} \label { classKatabatic_ 1_ 1GCell_ ad0dda8d59162b90040263fc55d7da714} }
\index { Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} !get\+ H\+ Capacity@{ get\+ H\+ Capacity} }
\index { get\+ H\+ Capacity@{ get\+ H\+ Capacity} !Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} }
\subsubsection { \texorpdfstring { get\+ H\+ Capacity()} { getHCapacity()} }
{ \footnotesize \ttfamily float get\+ H\+ Capacity (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const}
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\begin { DoxyReturn} { Returns}
2018-10-18 11:10:01 -05:00
The number of track that can go through the \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } in the horizontal direction. For a detailed explanation of the computation see \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ secGCellTrackComputation} { Track Computation} } .
2018-08-19 06:27:09 -05:00
\end { DoxyReturn}
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
References Box\+ ::get\+ Height().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Referenced by G\+ Cell\+ ::has\+ Free\+ Track(), and G\+ Cell\+ ::update\+ Density().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1GCell_ a3994e204ebccf8aa12899e0c5ef4112b} \label { classKatabatic_ 1_ 1GCell_ a3994e204ebccf8aa12899e0c5ef4112b} }
\index { Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} !get\+ V\+ Capacity@{ get\+ V\+ Capacity} }
\index { get\+ V\+ Capacity@{ get\+ V\+ Capacity} !Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} }
\subsubsection { \texorpdfstring { get\+ V\+ Capacity()} { getVCapacity()} }
{ \footnotesize \ttfamily float get\+ V\+ Capacity (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const}
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\begin { DoxyReturn} { Returns}
2018-10-18 11:10:01 -05:00
The number of track that can go through the \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } in the vertical direction. For a detailed explanation of the computation see \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ secGCellTrackComputation} { Track Computation} } .
2018-08-19 06:27:09 -05:00
\end { DoxyReturn}
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
References Box\+ ::get\+ Width().
Referenced by G\+ Cell\+ ::has\+ Free\+ Track(), and G\+ Cell\+ ::update\+ Density().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1GCell_ ad31c16c87377e164728a0df55e21f96b} \label { classKatabatic_ 1_ 1GCell_ ad31c16c87377e164728a0df55e21f96b} }
\index { Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} !get\+ Density@{ get\+ Density} }
\index { get\+ Density@{ get\+ Density} !Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} }
\subsubsection { \texorpdfstring { get\+ Density()} { getDensity()} }
{ \footnotesize \ttfamily float get\+ Density (\begin { DoxyParamCaption} \item [{unsigned int}] { flags = { \ttfamily 0} } \end { DoxyParamCaption} ) const}
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
{ \bfseries Returns\+ :} The average density of the \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } , for all the depths.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ secGCellDensity} { Saturation \& Density Computation} } , \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ secGCellLazyEvaluation} { G\+ Cell Lazy Evaluation} } .
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
References G\+ Cell\+ Grid\+ ::\+ Average\+ H\+ Density, G\+ Cell\+ Grid\+ ::\+ Average\+ H\+ V\+ Density, G\+ Cell\+ Grid\+ ::\+ Average\+ V\+ Density, G\+ Cell\+ Grid\+ ::get\+ Density\+ Mode(), G\+ Cell\+ ::get\+ G\+ Cell\+ Grid(), G\+ Cell\+ ::is\+ Valid(), G\+ Cell\+ Grid\+ ::\+ Max\+ Density, G\+ Cell\+ Grid\+ ::\+ Max\+ H\+ Density, G\+ Cell\+ Grid\+ ::\+ Max\+ H\+ V\+ Density, G\+ Cell\+ Grid\+ ::\+ Max\+ V\+ Density, and G\+ Cell\+ ::update\+ Density().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Referenced by G\+ Cell\+ ::is\+ Above\+ Density(), and G\+ Cell\+ ::is\+ Saturated().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1GCell_ ae56b981fad5960835faef809ec282cfa} \label { classKatabatic_ 1_ 1GCell_ ae56b981fad5960835faef809ec282cfa} }
\index { Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} !get\+ C\+ Density@{ get\+ C\+ Density} }
\index { get\+ C\+ Density@{ get\+ C\+ Density} !Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} }
\subsubsection { \texorpdfstring { get\+ C\+ Density()} { getCDensity()} }
{ \footnotesize \ttfamily float get\+ C\+ Density (\begin { DoxyParamCaption} \item [{unsigned int}] { flags = { \ttfamily 0} } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
{ \bfseries Returns\+ :} The density of contacts.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ secGCellDensity} { Saturation \& Density Computation} } , \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ secGCellLazyEvaluation} { G\+ Cell Lazy Evaluation} } .
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
References G\+ Cell\+ ::is\+ Valid(), and G\+ Cell\+ ::update\+ Density().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1GCell_ aa64538731e911c60eeaea557be1c7740} \label { classKatabatic_ 1_ 1GCell_ aa64538731e911c60eeaea557be1c7740} }
\index { Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} !get\+ W\+ Density@{ get\+ W\+ Density} }
\index { get\+ W\+ Density@{ get\+ W\+ Density} !Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} }
\subsubsection { \texorpdfstring { get\+ W\+ Density()} { getWDensity()} }
{ \footnotesize \ttfamily float get\+ W\+ Density (\begin { DoxyParamCaption} \item [{unsigned int}] { depth, } \item [{unsigned int}] { flags = { \ttfamily 0} } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
{ \bfseries Returns\+ :} The density of wires at { \ttfamily depth} .
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ secGCellDensity} { Saturation \& Density Computation} } , \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ secGCellLazyEvaluation} { G\+ Cell Lazy Evaluation} } .
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
References G\+ Cell\+ ::is\+ Valid(), and G\+ Cell\+ ::update\+ Density().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Horizontal\+ ::can\+ Move\+ U\+ Left(), Auto\+ Vertical\+ ::can\+ Move\+ U\+ Left(), Auto\+ Horizontal\+ ::can\+ Move\+ U\+ Right(), and Auto\+ Vertical\+ ::can\+ Move\+ U\+ Right().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1GCell_ ab37ffda5a2e1ba60931d32c29237bd33} \label { classKatabatic_ 1_ 1GCell_ ab37ffda5a2e1ba60931d32c29237bd33} }
\index { Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} !get\+ Blockage@{ get\+ Blockage} }
\index { get\+ Blockage@{ get\+ Blockage} !Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} }
\subsubsection { \texorpdfstring { get\+ Blockage()} { getBlockage()} }
{ \footnotesize \ttfamily \textbf { Db\+ U\+ ::\+ Unit} get\+ Blockage (\begin { DoxyParamCaption} \item [{unsigned int}] { depth } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
{ \bfseries Returns\+ :} The total length of blockage wire on layer at { \ttfamily depth} . \mbox { \Hypertarget { classKatabatic_ 1_ 1GCell_ a44ec8d16030b5900bd0ccc02652b727f} \label { classKatabatic_ 1_ 1GCell_ a44ec8d16030b5900bd0ccc02652b727f} }
\index { Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} !get\+ Fragmentation@{ get\+ Fragmentation} }
\index { get\+ Fragmentation@{ get\+ Fragmentation} !Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} }
\subsubsection { \texorpdfstring { get\+ Fragmentation()} { getFragmentation()} }
{ \footnotesize \ttfamily float get\+ Fragmentation (\begin { DoxyParamCaption} \item [{unsigned int}] { depth } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
{ \bfseries Returns\+ :} The longest free fragment size on layer { \ttfamily depth} (in percent).
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
References G\+ Cell\+ ::is\+ Valid(), and G\+ Cell\+ ::update\+ Density().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Segment\+ ::can\+ Move\+ Up().
\mbox { \Hypertarget { classKatabatic_ 1_ 1GCell_ a14feed45699c8dc406251519dc08bc79} \label { classKatabatic_ 1_ 1GCell_ a14feed45699c8dc406251519dc08bc79} }
\index { Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} !get\+ Feedthroughs@{ get\+ Feedthroughs} }
\index { get\+ Feedthroughs@{ get\+ Feedthroughs} !Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} }
\subsubsection { \texorpdfstring { get\+ Feedthroughs()} { getFeedthroughs()} }
{ \footnotesize \ttfamily float get\+ Feedthroughs (\begin { DoxyParamCaption} \item [{unsigned int}] { depth } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
{ \bfseries Returns\+ :} The estimate number of { \itshape occupied} tracks on layer { \ttfamily depth} .
\begin { DoxySeeAlso} { See also}
\mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ secGCellFeedthrough} { Feedthrough Computation} }
2018-08-19 06:27:09 -05:00
\end { DoxySeeAlso}
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
References G\+ Cell\+ ::is\+ Valid(), and G\+ Cell\+ ::update\+ Density().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1GCell_ a4785bcc49da76fc38f6940f5b1cc5b17} \label { classKatabatic_ 1_ 1GCell_ a4785bcc49da76fc38f6940f5b1cc5b17} }
\index { Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} !get\+ Globals\+ Count@{ get\+ Globals\+ Count} }
\index { get\+ Globals\+ Count@{ get\+ Globals\+ Count} !Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} }
\subsubsection { \texorpdfstring { get\+ Globals\+ Count()} { getGlobalsCount()} }
{ \footnotesize \ttfamily float get\+ Globals\+ Count (\begin { DoxyParamCaption} \item [{unsigned int}] { depth } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
{ \bfseries Returns\+ :} The number of global wires that go completly through the \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } at layer { \ttfamily depth} . This do not includes the global wires that begins or ends in the \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } .
References G\+ Cell\+ ::is\+ Valid(), and G\+ Cell\+ ::update\+ Density().
\mbox { \Hypertarget { classKatabatic_ 1_ 1GCell_ a81575302a8794958c310dc101807e9c5} \label { classKatabatic_ 1_ 1GCell_ a81575302a8794958c310dc101807e9c5} }
\index { Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} !get\+ H\+ Segments@{ get\+ H\+ Segments} }
\index { get\+ H\+ Segments@{ get\+ H\+ Segments} !Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} }
\subsubsection { \texorpdfstring { get\+ H\+ Segments()} { getHSegments()} }
{ \footnotesize \ttfamily const vector$ < $ \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } $ \ast $ $ > $ \& get\+ H\+ Segments (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
2018-06-06 11:42:26 -05:00
\begin { DoxyReturn} { Returns}
2018-10-18 11:10:01 -05:00
The vector of all horizontal Auto\+ Segments that completly goes through the \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } .
2018-06-06 11:42:26 -05:00
\end { DoxyReturn}
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1GCell_ ac3c357d72a24990494758dcc216e3b1e} \label { classKatabatic_ 1_ 1GCell_ ac3c357d72a24990494758dcc216e3b1e} }
\index { Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} !get\+ V\+ Segments@{ get\+ V\+ Segments} }
\index { get\+ V\+ Segments@{ get\+ V\+ Segments} !Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} }
\subsubsection { \texorpdfstring { get\+ V\+ Segments()} { getVSegments()} }
{ \footnotesize \ttfamily const vector$ < $ \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } $ \ast $ $ > $ \& get\+ V\+ Segments (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
2018-06-06 11:42:26 -05:00
\begin { DoxyReturn} { Returns}
2018-10-18 11:10:01 -05:00
The vector of all vertical Auto\+ Segments that completly goes through the \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } .
2018-06-06 11:42:26 -05:00
\end { DoxyReturn}
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1GCell_ aacf50ce6dcef3a7523453725af7feeae} \label { classKatabatic_ 1_ 1GCell_ aacf50ce6dcef3a7523453725af7feeae} }
\index { Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} !get\+ Contacts@{ get\+ Contacts} }
\index { get\+ Contacts@{ get\+ Contacts} !Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} }
\subsubsection { \texorpdfstring { get\+ Contacts()} { getContacts()} }
{ \footnotesize \ttfamily const vector$ < $ \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\+ Contact} } $ \ast $ $ > $ \& get\+ Contacts (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
2018-06-06 11:42:26 -05:00
\begin { DoxyReturn} { Returns}
2018-10-18 11:10:01 -05:00
The vector of all Auto\+ Contacts owned by the \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } .
2018-06-06 11:42:26 -05:00
\end { DoxyReturn}
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1GCell_ a79668a41675e9ba0ca59d4b91e3b70be} \label { classKatabatic_ 1_ 1GCell_ a79668a41675e9ba0ca59d4b91e3b70be} }
\index { Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} !get\+ H\+ Start\+ Segments@{ get\+ H\+ Start\+ Segments} }
\index { get\+ H\+ Start\+ Segments@{ get\+ H\+ Start\+ Segments} !Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} }
\subsubsection { \texorpdfstring { get\+ H\+ Start\+ Segments()} { getHStartSegments()} }
{ \footnotesize \ttfamily \mbox { \hyperlink { namespaceKatabatic_ a2221b0ddbc24f331809fc86f98e38041} { Auto\+ Segments} } get\+ H\+ Start\+ Segments (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} )}
2018-06-06 11:42:26 -05:00
\begin { DoxyReturn} { Returns}
2018-10-18 11:10:01 -05:00
A Collection of the horizontal Auto\+ Segments that starts from this \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } .
2018-06-06 11:42:26 -05:00
\end { DoxyReturn}
2018-10-18 11:10:01 -05:00
References Katabatic\+ ::\+ Kb\+ Horizontal, and Katabatic\+ ::\+ Kb\+ Source.
2018-08-19 06:27:09 -05:00
2018-10-18 11:10:01 -05:00
Referenced by G\+ Cell\+ ::get\+ Start\+ Segments().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1GCell_ acbd17a4441905a4f5bc33a26bb338d0a} \label { classKatabatic_ 1_ 1GCell_ acbd17a4441905a4f5bc33a26bb338d0a} }
\index { Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} !get\+ V\+ Start\+ Segments@{ get\+ V\+ Start\+ Segments} }
\index { get\+ V\+ Start\+ Segments@{ get\+ V\+ Start\+ Segments} !Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} }
\subsubsection { \texorpdfstring { get\+ V\+ Start\+ Segments()} { getVStartSegments()} }
{ \footnotesize \ttfamily \mbox { \hyperlink { namespaceKatabatic_ a2221b0ddbc24f331809fc86f98e38041} { Auto\+ Segments} } get\+ V\+ Start\+ Segments (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} )}
2018-06-06 11:42:26 -05:00
\begin { DoxyReturn} { Returns}
2018-10-18 11:10:01 -05:00
A Collection of the vertical Auto\+ Segments that starts from this \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } .
2018-06-06 11:42:26 -05:00
\end { DoxyReturn}
2018-10-18 11:10:01 -05:00
References Katabatic\+ ::\+ Kb\+ Source, and Katabatic\+ ::\+ Kb\+ Vertical.
2018-08-19 06:27:09 -05:00
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Referenced by G\+ Cell\+ ::get\+ Start\+ Segments().
\mbox { \Hypertarget { classKatabatic_ 1_ 1GCell_ a77beccf65527a330f15bed2aba4f9dea} \label { classKatabatic_ 1_ 1GCell_ a77beccf65527a330f15bed2aba4f9dea} }
\index { Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} !get\+ H\+ Stop\+ Segments@{ get\+ H\+ Stop\+ Segments} }
\index { get\+ H\+ Stop\+ Segments@{ get\+ H\+ Stop\+ Segments} !Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} }
\subsubsection { \texorpdfstring { get\+ H\+ Stop\+ Segments()} { getHStopSegments()} }
{ \footnotesize \ttfamily \mbox { \hyperlink { namespaceKatabatic_ a2221b0ddbc24f331809fc86f98e38041} { Auto\+ Segments} } get\+ H\+ Stop\+ Segments (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} )}
2018-06-06 11:42:26 -05:00
\begin { DoxyReturn} { Returns}
2018-10-18 11:10:01 -05:00
A Collection of the horizontal Auto\+ Segments that stops in this \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } .
2018-06-06 11:42:26 -05:00
\end { DoxyReturn}
2018-10-18 11:10:01 -05:00
References Katabatic\+ ::\+ Kb\+ Horizontal, and Katabatic\+ ::\+ Kb\+ Target.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Referenced by G\+ Cell\+ ::get\+ Stop\+ Segments().
2018-08-19 06:27:09 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1GCell_ a2f0f038f5700b7b55f22829c5d43aa07} \label { classKatabatic_ 1_ 1GCell_ a2f0f038f5700b7b55f22829c5d43aa07} }
\index { Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} !get\+ V\+ Stop\+ Segments@{ get\+ V\+ Stop\+ Segments} }
\index { get\+ V\+ Stop\+ Segments@{ get\+ V\+ Stop\+ Segments} !Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} }
\subsubsection { \texorpdfstring { get\+ V\+ Stop\+ Segments()} { getVStopSegments()} }
{ \footnotesize \ttfamily \mbox { \hyperlink { namespaceKatabatic_ a2221b0ddbc24f331809fc86f98e38041} { Auto\+ Segments} } get\+ V\+ Stop\+ Segments (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} )}
2018-08-19 06:27:09 -05:00
2018-06-06 11:42:26 -05:00
\begin { DoxyReturn} { Returns}
2018-10-18 11:10:01 -05:00
A Collection of the vertical Auto\+ Segments that stops in this \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } .
2018-06-06 11:42:26 -05:00
\end { DoxyReturn}
2018-10-18 11:10:01 -05:00
References Katabatic\+ ::\+ Kb\+ Target, and Katabatic\+ ::\+ Kb\+ Vertical.
2018-08-19 06:27:09 -05:00
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Referenced by G\+ Cell\+ ::get\+ Stop\+ Segments().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1GCell_ a1f92568d22b1384a8cdf328340fb9160} \label { classKatabatic_ 1_ 1GCell_ a1f92568d22b1384a8cdf328340fb9160} }
\index { Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} !get\+ Start\+ Segments@{ get\+ Start\+ Segments} }
\index { get\+ Start\+ Segments@{ get\+ Start\+ Segments} !Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} }
\subsubsection { \texorpdfstring { get\+ Start\+ Segments()} { getStartSegments()} }
{ \footnotesize \ttfamily \mbox { \hyperlink { namespaceKatabatic_ a2221b0ddbc24f331809fc86f98e38041} { Auto\+ Segments} } get\+ Start\+ Segments (\begin { DoxyParamCaption} \item [{unsigned int}] { direction } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [inline]} }
2018-08-19 06:27:09 -05:00
2018-06-06 11:42:26 -05:00
\begin { DoxyReturn} { Returns}
2018-10-18 11:10:01 -05:00
A Collection of the horizontal or vertical Auto\+ Segments that starts from this \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } according to { \ttfamily direction} .
2018-06-06 11:42:26 -05:00
\end { DoxyReturn}
2018-10-18 11:10:01 -05:00
References G\+ Cell\+ ::get\+ H\+ Start\+ Segments(), G\+ Cell\+ ::get\+ V\+ Start\+ Segments(), and Katabatic\+ ::\+ Kb\+ Horizontal.
\mbox { \Hypertarget { classKatabatic_ 1_ 1GCell_ a80ad0f9e79bccf6aed4fb69b4b795005} \label { classKatabatic_ 1_ 1GCell_ a80ad0f9e79bccf6aed4fb69b4b795005} }
\index { Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} !get\+ Stop\+ Segments@{ get\+ Stop\+ Segments} }
\index { get\+ Stop\+ Segments@{ get\+ Stop\+ Segments} !Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} }
\subsubsection { \texorpdfstring { get\+ Stop\+ Segments()} { getStopSegments()} }
{ \footnotesize \ttfamily \mbox { \hyperlink { namespaceKatabatic_ a2221b0ddbc24f331809fc86f98e38041} { Auto\+ Segments} } get\+ Stop\+ Segments (\begin { DoxyParamCaption} \item [{unsigned int}] { direction } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [inline]} }
2018-06-06 11:42:26 -05:00
\begin { DoxyReturn} { Returns}
2018-10-18 11:10:01 -05:00
A Collection of the horizontal or vertical Auto\+ Segments that stops in this \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } according to { \ttfamily direction} .
2018-06-06 11:42:26 -05:00
\end { DoxyReturn}
2018-10-18 11:10:01 -05:00
References G\+ Cell\+ ::get\+ H\+ Stop\+ Segments(), G\+ Cell\+ ::get\+ V\+ Stop\+ Segments(), and Katabatic\+ ::\+ Kb\+ Horizontal.
\mbox { \Hypertarget { classKatabatic_ 1_ 1GCell_ a3bda8c3dbb2896a0e6e57f974d0c1cad} \label { classKatabatic_ 1_ 1GCell_ a3bda8c3dbb2896a0e6e57f974d0c1cad} }
\index { Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} !get\+ Routing\+ Pads@{ get\+ Routing\+ Pads} }
\index { get\+ Routing\+ Pads@{ get\+ Routing\+ Pads} !Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} }
\subsubsection { \texorpdfstring { get\+ Routing\+ Pads()} { getRoutingPads()} }
{ \footnotesize \ttfamily size\+ \_ \+ t get\+ Routing\+ Pads (\begin { DoxyParamCaption} \item [{set$<$ \textbf{ Routing\+Pad} $\ast$$>$ \&}] { rps } \end { DoxyParamCaption} )}
2018-06-06 11:42:26 -05:00
\begin { DoxyReturn} { Returns}
2018-10-18 11:10:01 -05:00
The size of the Routing\+ Pad set.
2018-06-06 11:42:26 -05:00
\end { DoxyReturn}
2018-10-18 11:10:01 -05:00
Fills the { \ttfamily rps} set with all the Routing\+ Pads that appears in this \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } . (looks at all the anchors of the owned \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\+ Contact} } )
Referenced by G\+ Cell\+ ::rp\+ Desaturate().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1GCell_ ade1e79e88bf4f4c173ffd083dd5470c9} \label { classKatabatic_ 1_ 1GCell_ ade1e79e88bf4f4c173ffd083dd5470c9} }
\index { Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} !get\+ Key@{ get\+ Key} }
\index { get\+ Key@{ get\+ Key} !Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} }
\subsubsection { \texorpdfstring { get\+ Key()} { getKey()} }
{ \footnotesize \ttfamily const \mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ 1_ 1Key} { Key} } \& get\+ Key (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
2018-06-06 11:42:26 -05:00
\begin { DoxyReturn} { Returns}
2018-10-18 11:10:01 -05:00
The sorting key of the \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } .
2018-06-06 11:42:26 -05:00
\end { DoxyReturn}
2018-10-18 11:10:01 -05:00
\begin { DoxySeeAlso} { See also}
\mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ secGCellSortingKey} { G\+ Cell Sorting Key} }
2018-06-06 11:42:26 -05:00
\end { DoxySeeAlso}
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1GCell_ a88208864ba2268689946a8cb7a86fcb2} \label { classKatabatic_ 1_ 1GCell_ a88208864ba2268689946a8cb7a86fcb2} }
\index { Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} !check\+ Density@{ check\+ Density} }
\index { check\+ Density@{ check\+ Density} !Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} }
\subsubsection { \texorpdfstring { check\+ Density()} { checkDensity()} }
{ \footnotesize \ttfamily size\+ \_ \+ t check\+ Density (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const}
2018-06-06 11:42:26 -05:00
\begin { DoxyReturn} { Returns}
2018-10-18 11:10:01 -05:00
{ \ttfamily 1} if the \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } is saturated, 0 otherwise.
2018-06-06 11:42:26 -05:00
\end { DoxyReturn}
2018-10-18 11:10:01 -05:00
Check, if the \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } is saturated, layer by layer. Issue a warning if that is the case.
References Session\+ ::do\+ Warn\+ G\+ Cell\+ Overload(), G\+ Cell\+ ::get\+ Column(), G\+ Cell\+ ::get\+ Name(), Session\+ ::get\+ Routing\+ Gauge(), G\+ Cell\+ ::get\+ Row(), Session\+ ::is\+ In\+ Demo\+ Mode(), G\+ Cell\+ ::is\+ Saturated(), G\+ Cell\+ ::is\+ Valid(), and G\+ Cell\+ ::update\+ Density().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Referenced by G\+ Cell\+ ::update\+ Density().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1GCell_ af4dcc99733b7ea77e8c3c7da9ac3cd3c} \label { classKatabatic_ 1_ 1GCell_ af4dcc99733b7ea77e8c3c7da9ac3cd3c} }
\index { Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} !check\+ Edge\+ Saturation@{ check\+ Edge\+ Saturation} }
\index { check\+ Edge\+ Saturation@{ check\+ Edge\+ Saturation} !Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} }
\subsubsection { \texorpdfstring { check\+ Edge\+ Saturation()} { checkEdgeSaturation()} }
{ \footnotesize \ttfamily bool check\+ Edge\+ Saturation (\begin { DoxyParamCaption} \item [{size\+\_\+t}] { hreserved, } \item [{size\+\_\+t}] { vreserved } \end { DoxyParamCaption} ) const}
2018-06-06 11:42:26 -05:00
\begin { DoxyReturn} { Returns}
2018-10-18 11:10:01 -05:00
{ \bfseries true} if the Up/\+ Right edge is over the { \ttfamily threshold} .
2018-06-06 11:42:26 -05:00
\end { DoxyReturn}
2018-10-18 11:10:01 -05:00
Check if the number of Auto\+ Segments crossing the Up \& Right edges of the \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } exceed { \ttfamily threshold} . The { \ttfamily thresold} must be expressed as a percentage of the full capacity of the edges. The overload is computed as a whole and not depth by depth.
References G\+ Cell\+ ::get\+ G\+ Cell\+ Grid(), G\+ Cell\+ Grid\+ ::get\+ H\+ Edge\+ Capacity(), G\+ Cell\+ ::get\+ Right(), G\+ Cell\+ ::get\+ Up(), G\+ Cell\+ Grid\+ ::get\+ V\+ Edge\+ Capacity(), Auto\+ Segment\+ ::is\+ Local(), and Session\+ ::lookup().
\mbox { \Hypertarget { classKatabatic_ 1_ 1GCell_ a1270eab34ac57f21c0286a5455044a0d} \label { classKatabatic_ 1_ 1GCell_ a1270eab34ac57f21c0286a5455044a0d} }
\index { Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} !add\+ Blockage@{ add\+ Blockage} }
\index { add\+ Blockage@{ add\+ Blockage} !Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} }
\subsubsection { \texorpdfstring { add\+ Blockage()} { addBlockage()} }
{ \footnotesize \ttfamily void add\+ Blockage (\begin { DoxyParamCaption} \item [{unsigned int}] { depth, } \item [{\textbf{ Db\+U\+::\+Unit}}] { length } \end { DoxyParamCaption} )}
2018-06-06 11:42:26 -05:00
Adds { \ttfamily length} of wire blockage to layer { \ttfamily depth} .
2018-10-18 11:10:01 -05:00
References Db\+ U\+ ::get\+ Value\+ String().
\mbox { \Hypertarget { classKatabatic_ 1_ 1GCell_ a4aad7d6f7357fd7963aab91bc2019a1b} \label { classKatabatic_ 1_ 1GCell_ a4aad7d6f7357fd7963aab91bc2019a1b} }
\index { Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} !add\+ H\+ Segment@{ add\+ H\+ Segment} }
\index { add\+ H\+ Segment@{ add\+ H\+ Segment} !Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} }
\subsubsection { \texorpdfstring { add\+ H\+ Segment()} { addHSegment()} }
{ \footnotesize \ttfamily void add\+ H\+ Segment (\begin { DoxyParamCaption} \item [{\mbox{\hyperlink{classKatabatic_1_1AutoSegment}{Auto\+Segment}} $\ast$}] { segment } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [inline]} }
2018-06-06 11:42:26 -05:00
Adds { \ttfamily segment} to the list of horizontal feedthroughs.
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Horizontal\+ ::\+ \_ \+ post\+ Create(), Auto\+ Vertical\+ ::move\+ U\+ Left(), and Auto\+ Vertical\+ ::move\+ U\+ Right().
\mbox { \Hypertarget { classKatabatic_ 1_ 1GCell_ a8aa815e9e99df8187e628f6ec9e9da77} \label { classKatabatic_ 1_ 1GCell_ a8aa815e9e99df8187e628f6ec9e9da77} }
\index { Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} !add\+ V\+ Segment@{ add\+ V\+ Segment} }
\index { add\+ V\+ Segment@{ add\+ V\+ Segment} !Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} }
\subsubsection { \texorpdfstring { add\+ V\+ Segment()} { addVSegment()} }
{ \footnotesize \ttfamily void add\+ V\+ Segment (\begin { DoxyParamCaption} \item [{\mbox{\hyperlink{classKatabatic_1_1AutoSegment}{Auto\+Segment}} $\ast$}] { segment } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [inline]} }
2018-06-06 11:42:26 -05:00
Adds { \ttfamily segment} to the list of vertical feedthroughs.
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Vertical\+ ::\+ \_ \+ post\+ Create(), Auto\+ Horizontal\+ ::move\+ U\+ Left(), and Auto\+ Horizontal\+ ::move\+ U\+ Right().
\mbox { \Hypertarget { classKatabatic_ 1_ 1GCell_ a2b84aab620bfca1064e988e94e7b9c59} \label { classKatabatic_ 1_ 1GCell_ a2b84aab620bfca1064e988e94e7b9c59} }
\index { Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} !add\+ Contact@{ add\+ Contact} }
\index { add\+ Contact@{ add\+ Contact} !Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} }
\subsubsection { \texorpdfstring { add\+ Contact()} { addContact()} }
{ \footnotesize \ttfamily void add\+ Contact (\begin { DoxyParamCaption} \item [{\mbox{\hyperlink{classKatabatic_1_1AutoContact}{Auto\+Contact}} $\ast$}] { contact } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [inline]} }
Adds { \ttfamily contact} to the list of contacts owned by this \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } .
Referenced by Auto\+ Contact\+ ::set\+ G\+ Cell().
\mbox { \Hypertarget { classKatabatic_ 1_ 1GCell_ abe128484d8aa063198292a88c63f2bba} \label { classKatabatic_ 1_ 1GCell_ abe128484d8aa063198292a88c63f2bba} }
\index { Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} !remove\+ V\+ Segment@{ remove\+ V\+ Segment} }
\index { remove\+ V\+ Segment@{ remove\+ V\+ Segment} !Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} }
\subsubsection { \texorpdfstring { remove\+ V\+ Segment()} { removeVSegment()} }
{ \footnotesize \ttfamily void remove\+ V\+ Segment (\begin { DoxyParamCaption} \item [{\mbox{\hyperlink{classKatabatic_1_1AutoSegment}{Auto\+Segment}} $\ast$}] { segment } \end { DoxyParamCaption} )}
2018-06-06 11:42:26 -05:00
Removes { \ttfamily segment} to the list of vertical feedthroughs.
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Vertical\+ ::\+ \_ \+ make\+ Dogleg(), Auto\+ Vertical\+ ::\+ \_ \+ pre\+ Destroy(), Auto\+ Horizontal\+ ::move\+ U\+ Left(), and Auto\+ Horizontal\+ ::move\+ U\+ Right().
\mbox { \Hypertarget { classKatabatic_ 1_ 1GCell_ aff76aa96214c0efcf13186b8b3e5c852} \label { classKatabatic_ 1_ 1GCell_ aff76aa96214c0efcf13186b8b3e5c852} }
\index { Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} !remove\+ H\+ Segment@{ remove\+ H\+ Segment} }
\index { remove\+ H\+ Segment@{ remove\+ H\+ Segment} !Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} }
\subsubsection { \texorpdfstring { remove\+ H\+ Segment()} { removeHSegment()} }
{ \footnotesize \ttfamily void remove\+ H\+ Segment (\begin { DoxyParamCaption} \item [{\mbox{\hyperlink{classKatabatic_1_1AutoSegment}{Auto\+Segment}} $\ast$}] { segment } \end { DoxyParamCaption} )}
2018-06-06 11:42:26 -05:00
Removes { \ttfamily segment} to the list of horizontal feedthroughs.
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Horizontal\+ ::\+ \_ \+ make\+ Dogleg(), Auto\+ Horizontal\+ ::\+ \_ \+ pre\+ Destroy(), Auto\+ Vertical\+ ::move\+ U\+ Left(), and Auto\+ Vertical\+ ::move\+ U\+ Right().
\mbox { \Hypertarget { classKatabatic_ 1_ 1GCell_ aa052a9427fbd4185f00567a97770f80b} \label { classKatabatic_ 1_ 1GCell_ aa052a9427fbd4185f00567a97770f80b} }
\index { Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} !remove\+ Contact@{ remove\+ Contact} }
\index { remove\+ Contact@{ remove\+ Contact} !Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} }
\subsubsection { \texorpdfstring { remove\+ Contact()} { removeContact()} }
{ \footnotesize \ttfamily void remove\+ Contact (\begin { DoxyParamCaption} \item [{\mbox{\hyperlink{classKatabatic_1_1AutoContact}{Auto\+Contact}} $\ast$}] { contact } \end { DoxyParamCaption} )}
Removes { \ttfamily contact} to the list of contacts owned by this \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } .
References Auto\+ Contact\+ ::base().
\mbox { \Hypertarget { classKatabatic_ 1_ 1GCell_ aa0beea2ceaa543503346967085036d1a} \label { classKatabatic_ 1_ 1GCell_ aa0beea2ceaa543503346967085036d1a} }
\index { Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} !update\+ Contacts@{ update\+ Contacts} }
\index { update\+ Contacts@{ update\+ Contacts} !Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} }
\subsubsection { \texorpdfstring { update\+ Contacts()} { updateContacts()} }
{ \footnotesize \ttfamily void update\+ Contacts (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} )}
Force a geometry update on all the \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\+ Contact} } of the \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } . \mbox { \Hypertarget { classKatabatic_ 1_ 1GCell_ a9b3455dce10eb98d0496175dd586528c} \label { classKatabatic_ 1_ 1GCell_ a9b3455dce10eb98d0496175dd586528c} }
\index { Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} !update\+ Density@{ update\+ Density} }
\index { update\+ Density@{ update\+ Density} !Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} }
\subsubsection { \texorpdfstring { update\+ Density()} { updateDensity()} }
{ \footnotesize \ttfamily size\+ \_ \+ t update\+ Density (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} )}
{ \bfseries Returns\+ :} { \bfseries true} if the \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } is saturated.
Update the various densities of the \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } . No actual computation is performed if the \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } is { \itshape not} invalidated.
References G\+ Cell\+ ::check\+ Density(), G\+ Cell\+ ::get\+ H\+ Capacity(), Box\+ ::get\+ Height(), Routing\+ Gauge\+ ::get\+ Layer\+ Depth(), Session\+ ::get\+ Routing\+ Gauge(), G\+ Cell\+ ::get\+ V\+ Capacity(), Box\+ ::get\+ Width(), Box\+ ::get\+ X\+ Max(), Box\+ ::get\+ X\+ Min(), Box\+ ::get\+ Y\+ Max(), Box\+ ::get\+ Y\+ Min(), G\+ Cell\+ ::is\+ Saturated(), G\+ Cell\+ ::is\+ Valid(), Katabatic\+ ::\+ Kb\+ Horizontal, and Katabatic\+ ::\+ Kb\+ Vertical.
Referenced by G\+ Cell\+ ::check\+ Density(), G\+ Cell\+ ::get\+ C\+ Density(), G\+ Cell\+ ::get\+ Density(), G\+ Cell\+ ::get\+ Feedthroughs(), G\+ Cell\+ ::get\+ Fragmentation(), G\+ Cell\+ ::get\+ Globals\+ Count(), G\+ Cell\+ ::get\+ W\+ Density(), G\+ Cell\+ ::has\+ Free\+ Track(), G\+ Cell\+ ::is\+ Above\+ Density(), G\+ Cell\+ ::step\+ Desaturate(), and G\+ Cell\+ ::step\+ Net\+ Desaturate().
\mbox { \Hypertarget { classKatabatic_ 1_ 1GCell_ a11beff0f0bec06d0f3e080969516dfc3} \label { classKatabatic_ 1_ 1GCell_ a11beff0f0bec06d0f3e080969516dfc3} }
\index { Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} !update\+ Key@{ update\+ Key} }
\index { update\+ Key@{ update\+ Key} !Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} }
\subsubsection { \texorpdfstring { update\+ Key()} { updateKey()} }
{ \footnotesize \ttfamily void update\+ Key (\begin { DoxyParamCaption} \item [{unsigned int}] { depth } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [inline]} }
Update the \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } key with the new density at layer { \ttfamily depth} .
\begin { DoxySeeAlso} { See also}
\mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ secGCellSortingKey} { G\+ Cell Sorting Key} } .
2018-06-06 11:42:26 -05:00
\end { DoxySeeAlso}
2018-10-18 11:10:01 -05:00
References G\+ Cell\+ ::\+ Key\+ ::update().
\mbox { \Hypertarget { classKatabatic_ 1_ 1GCell_ a11f07f57cc33fcd4b2d310145c778801} \label { classKatabatic_ 1_ 1GCell_ a11f07f57cc33fcd4b2d310145c778801} }
\index { Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} !rp\+ Desaturate@{ rp\+ Desaturate} }
\index { rp\+ Desaturate@{ rp\+ Desaturate} !Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} }
\subsubsection { \texorpdfstring { rp\+ Desaturate()} { rpDesaturate()} }
{ \footnotesize \ttfamily bool rp\+ Desaturate (\begin { DoxyParamCaption} \item [{set$<$ \textbf{ Net} $\ast$$>$ \&}] { nets } \end { DoxyParamCaption} )}
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
If the number of Routing\+ Pad in the first routing layer exceed the \mbox { \hyperlink { classKatabatic_ 1_ 1Session_ adfdaa8b3e81de14fce1f99444b35fcda} { Session\+ ::get\+ Saturate\+ Rp()} } threshold, force a desaturation of layer { \ttfamily depth} 1 until it is below 0.\+ 5.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\begin { DoxySeeAlso} { See also}
\mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ secGCellDesaturation} { G\+ Cell Desaturation / Layer Assignment} }
2018-06-06 11:42:26 -05:00
\end { DoxySeeAlso}
2018-10-18 11:10:01 -05:00
References Session\+ ::get\+ Routing\+ Layer(), G\+ Cell\+ ::get\+ Routing\+ Pads(), Session\+ ::get\+ Saturate\+ Rp(), Katabatic\+ ::\+ Kb\+ Force\+ Move, and G\+ Cell\+ ::step\+ Desaturate().
\mbox { \Hypertarget { classKatabatic_ 1_ 1GCell_ a5ae4d250ebecf59aa98fb068d848be14} \label { classKatabatic_ 1_ 1GCell_ a5ae4d250ebecf59aa98fb068d848be14} }
\index { Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} !step\+ Desaturate@{ step\+ Desaturate} }
\index { step\+ Desaturate@{ step\+ Desaturate} !Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} }
\subsubsection { \texorpdfstring { step\+ Desaturate()} { stepDesaturate()} }
{ \footnotesize \ttfamily bool step\+ Desaturate (\begin { DoxyParamCaption} \item [{unsigned int}] { depth, } \item [{set$<$ \textbf{ Net} $\ast$$>$ \&}] { global\+ Nets, } \item [{\mbox{\hyperlink{classKatabatic_1_1AutoSegment}{Auto\+Segment}} $\ast$\&}] { moved, } \item [{unsigned int}] { flags = { \ttfamily 0} } \end { DoxyParamCaption} )}
2018-06-06 11:42:26 -05:00
\begin { DoxyParams} { Parameters}
{ \em depth} & The depth to desaturate. \\
\hline
2018-10-18 11:10:01 -05:00
{ \em global\+ Nets} & The set of Nets of which at least one segment has been moved up. \\
2018-06-06 11:42:26 -05:00
\hline
2018-10-18 11:10:01 -05:00
{ \em moved} & The moved up \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } . \\
2018-06-06 11:42:26 -05:00
\hline
2018-10-18 11:10:01 -05:00
{ \em flags} & If Kb\+ Force\+ Move is set, force one \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } to move up, event if the \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } is not saturated in the relevant depth.\\
2018-06-06 11:42:26 -05:00
\hline
\end { DoxyParams}
2018-10-18 11:10:01 -05:00
{ \bfseries Returns\+ :} { \bfseries true} if an \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } has actually been moved up.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Perform the atomic desaturation, that is move up one \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } from layer { \ttfamily depth} to layer { \ttfamily depth+2} , longuests Auto\+ Segments are moved first. Only global feedthrough Auto\+ Segments are candidates to be moved up. The Net owning the moved up segment is added to the { \ttfamily global\+ Nets} set. If the \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } is not saturated on layer { \ttfamily depth} , nothing is done. If the { \ttfamily forced} flag is set, one global \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } is moved up regardless of the saturation status.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\begin { DoxySeeAlso} { See also}
\mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ secGCellDesaturation} { G\+ Cell Desaturation / Layer Assignment} }
2018-06-06 11:42:26 -05:00
\end { DoxySeeAlso}
2018-10-18 11:10:01 -05:00
References G\+ Cell\+ ::get\+ Index(), Routing\+ Gauge\+ ::get\+ Layer\+ Depth(), Session\+ ::get\+ Routing\+ Gauge(), G\+ Cell\+ ::is\+ Saturated(), Katabatic\+ ::\+ Kb\+ Force\+ Move, Katabatic\+ ::\+ Kb\+ Horizontal, Katabatic\+ ::\+ Kb\+ Vertical, and G\+ Cell\+ ::update\+ Density().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Referenced by G\+ Cell\+ ::rp\+ Desaturate().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1GCell_ abe4cf4a81bb78e9b479992336a999a07} \label { classKatabatic_ 1_ 1GCell_ abe4cf4a81bb78e9b479992336a999a07} }
\index { Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} !step\+ Net\+ Desaturate@{ step\+ Net\+ Desaturate} }
\index { step\+ Net\+ Desaturate@{ step\+ Net\+ Desaturate} !Katabatic\+ ::\+ G\+ Cell@{ Katabatic\+ ::\+ G\+ Cell} }
\subsubsection { \texorpdfstring { step\+ Net\+ Desaturate()} { stepNetDesaturate()} }
{ \footnotesize \ttfamily bool step\+ Net\+ Desaturate (\begin { DoxyParamCaption} \item [{unsigned int}] { depth, } \item [{set$<$ \textbf{ Net} $\ast$$>$ \&}] { global\+ Nets, } \item [{\mbox{\hyperlink{classKatabatic_1_1GCell_aacb1c215b203bfba5729f135b3221d40}{G\+Cell\+::\+Set\+Index}} \&}] { invalidateds } \end { DoxyParamCaption} )}
2018-06-06 11:42:26 -05:00
\begin { DoxyParams} { Parameters}
{ \em depth} & The depth to desaturate. \\
\hline
2018-10-18 11:10:01 -05:00
{ \em global\+ Nets} & The set of Nets of which at least one segment has been moved up. \\
2018-06-06 11:42:26 -05:00
\hline
2018-10-18 11:10:01 -05:00
{ \em invalidateds} & The set of \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } ids that have been invalidateds.\\
2018-06-06 11:42:26 -05:00
\hline
\end { DoxyParams}
2018-10-18 11:10:01 -05:00
{ \bfseries Returns\+ :} { \bfseries true} if a Net has been moved up.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Perform a desaturation by whole Net trunk. Select the longest feedthrough \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } in layer { \ttfamily depth} , then attempt to move up the whole Net (all it\textquotesingle { } s global Auto\+ Segments are moved up).
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\begin { DoxySeeAlso} { See also}
\mbox { \hyperlink { classKatabatic_ 1_ 1GCell_ secGCellDesaturation} { G\+ Cell Desaturation / Layer Assignment} }
2018-06-06 11:42:26 -05:00
\end { DoxySeeAlso}
2018-10-18 11:10:01 -05:00
References G\+ Cell\+ ::get\+ G\+ Cell\+ Grid(), Routing\+ Gauge\+ ::get\+ Layer\+ Depth(), Session\+ ::get\+ Routing\+ Gauge(), Katabatic\+ ::\+ Kb\+ Horizontal, Katabatic\+ ::\+ Kb\+ Vertical, and G\+ Cell\+ ::update\+ Density().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
The documentation for this class was generated from the following files\+ :\begin { DoxyCompactItemize}
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
G\+ Cell.\+ h\item
G\+ Cell.\+ cpp\item
G\+ Cell.\+ dox\end { DoxyCompactItemize}