2018-10-18 11:10:01 -05:00
\hypertarget { classKatabatic_ 1_ 1ChipTools} { } \section { Chip\+ Tools Class Reference}
\label { classKatabatic_ 1_ 1ChipTools} \index { Chip\+ Tools@{ Chip\+ Tools} }
2018-06-06 11:42:26 -05:00
Utilities for Chip Level Design.
\subsection * { Public Member Functions}
\begin { DoxyCompactItemize}
\item
2018-10-18 11:10:01 -05:00
\mbox { \hyperlink { classKatabatic_ 1_ 1ChipTools_ a5296f5ccb380869255d774b70e237686} { Chip\+ Tools} } (\textbf { Cell} $ \ast $ )
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
bool \mbox { \hyperlink { classKatabatic_ 1_ 1ChipTools_ ab6b7bc2b47ead460ac00a531451dc9cf} { is\+ Chip} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
\textbf { Cell} $ \ast $ \mbox { \hyperlink { classKatabatic_ 1_ 1ChipTools_ a55a3a88610ef1af9931e634f77f2403b} { get\+ Cell} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
\textbf { Instance} $ \ast $ \mbox { \hyperlink { classKatabatic_ 1_ 1ChipTools_ a8be5c4aecbe9b97ed2eb9557b046b091} { get\+ Core} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
const \textbf { Box} \& \mbox { \hyperlink { classKatabatic_ 1_ 1ChipTools_ ada9182cc0bcdb47b156a29cf42d08651} { get\+ Chip\+ Bb} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
const \textbf { Box} \& \mbox { \hyperlink { classKatabatic_ 1_ 1ChipTools_ aa6b5ac93ecf1ee9f94f5176664dcf4bf} { get\+ Left\+ Pads\+ Bb} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
const \textbf { Box} \& \mbox { \hyperlink { classKatabatic_ 1_ 1ChipTools_ a07e88c4c6a615019e618af327829f4d0} { get\+ Right\+ Pads\+ Bb} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
const \textbf { Box} \& \mbox { \hyperlink { classKatabatic_ 1_ 1ChipTools_ ad31ff1dbfdf55216d684b4032a73db6b} { get\+ Top\+ Pads\+ Bb} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
const \textbf { Box} \& \mbox { \hyperlink { classKatabatic_ 1_ 1ChipTools_ aad46c56aeb14b07fcdfe93b51c554828} { get\+ Bottom\+ Pads\+ Bb} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
const Torus \& \mbox { \hyperlink { classKatabatic_ 1_ 1ChipTools_ a19c65013cccd38e5d4169fc25454b938} { get\+ Corona} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
bool \mbox { \hyperlink { classKatabatic_ 1_ 1ChipTools_ a708cdae658a916324059d321fafeaa7d} { intersect\+ V\+ Pads} } (const \textbf { Box} \& ) const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
bool \mbox { \hyperlink { classKatabatic_ 1_ 1ChipTools_ aeead79862ba27f1219a3cbb3ef6999d2} { intersect\+ H\+ Pads} } (const \textbf { Box} \& ) const
2018-06-06 11:42:26 -05:00
\end { DoxyCompactItemize}
\subsection { Detailed Description}
Utilities for Chip Level Design.
2018-10-18 11:10:01 -05:00
The \mbox { \hyperlink { classKatabatic_ 1_ 1ChipTools} { Chip\+ Tools} } class provides a small set of utilities to ease the managment of a complete chip following the Alliance top hierarchical structure.
2018-06-06 11:42:26 -05:00
\subsection { Constructor \& Destructor Documentation}
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1ChipTools_ a5296f5ccb380869255d774b70e237686} \label { classKatabatic_ 1_ 1ChipTools_ a5296f5ccb380869255d774b70e237686} }
\index { Katabatic\+ ::\+ Chip\+ Tools@{ Katabatic\+ ::\+ Chip\+ Tools} !Chip\+ Tools@{ Chip\+ Tools} }
\index { Chip\+ Tools@{ Chip\+ Tools} !Katabatic\+ ::\+ Chip\+ Tools@{ Katabatic\+ ::\+ Chip\+ Tools} }
\subsubsection { \texorpdfstring { Chip\+ Tools()} { ChipTools()} }
{ \footnotesize \ttfamily \mbox { \hyperlink { classKatabatic_ 1_ 1ChipTools} { Chip\+ Tools} } (\begin { DoxyParamCaption} \item [{\textbf{ Cell} $\ast$}] { cell } \end { DoxyParamCaption} )}
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Create a Chip\+ Tool for { \ttfamily cell} .
References Cell\+ ::get\+ Abutment\+ Box(), Entity\+ ::get\+ Bounding\+ Box(), Data\+ Base\+ ::get\+ D\+ B(), Box\+ ::get\+ Height(), Net\+ ::get\+ Horizontals(), Technology\+ ::get\+ Layer(), Instance\+ ::get\+ Master\+ Cell(), Instance\+ ::get\+ Name(), Cell\+ ::get\+ Name(), Cell\+ ::get\+ Net(), Data\+ Base\+ ::get\+ Technology(), Box\+ ::get\+ Width(), Box\+ ::get\+ X\+ Max(), Box\+ ::get\+ X\+ Min(), Box\+ ::get\+ Y\+ Max(), Box\+ ::get\+ Y\+ Min(), Box\+ ::inflate(), and Chip\+ Tools\+ ::is\+ Chip().
2018-06-06 11:42:26 -05:00
\subsection { Member Function Documentation}
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1ChipTools_ ab6b7bc2b47ead460ac00a531451dc9cf} \label { classKatabatic_ 1_ 1ChipTools_ ab6b7bc2b47ead460ac00a531451dc9cf} }
\index { Katabatic\+ ::\+ Chip\+ Tools@{ Katabatic\+ ::\+ Chip\+ Tools} !is\+ Chip@{ is\+ Chip} }
\index { is\+ Chip@{ is\+ Chip} !Katabatic\+ ::\+ Chip\+ Tools@{ Katabatic\+ ::\+ Chip\+ Tools} }
\subsubsection { \texorpdfstring { is\+ Chip()} { isChip()} }
{ \footnotesize \ttfamily bool is\+ Chip (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
{ \bfseries Returns\+ :} { \bfseries true} if the Cell is truly a top level design. If not, this object is useless and does nothing.
Referenced by Chip\+ Tools\+ ::\+ Chip\+ Tools(), Katabatic\+ Engine\+ ::create\+ Detailed\+ Grid(), and Katabatic\+ Engine\+ ::is\+ Chip().
\mbox { \Hypertarget { classKatabatic_ 1_ 1ChipTools_ a55a3a88610ef1af9931e634f77f2403b} \label { classKatabatic_ 1_ 1ChipTools_ a55a3a88610ef1af9931e634f77f2403b} }
\index { Katabatic\+ ::\+ Chip\+ Tools@{ Katabatic\+ ::\+ Chip\+ Tools} !get\+ Cell@{ get\+ Cell} }
\index { get\+ Cell@{ get\+ Cell} !Katabatic\+ ::\+ Chip\+ Tools@{ Katabatic\+ ::\+ Chip\+ Tools} }
\subsubsection { \texorpdfstring { get\+ Cell()} { getCell()} }
{ \footnotesize \ttfamily \textbf { Cell} $ \ast $ get\+ Cell (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
{ \bfseries Returns\+ :} The top-\/ level design. \mbox { \Hypertarget { classKatabatic_ 1_ 1ChipTools_ a8be5c4aecbe9b97ed2eb9557b046b091} \label { classKatabatic_ 1_ 1ChipTools_ a8be5c4aecbe9b97ed2eb9557b046b091} }
\index { Katabatic\+ ::\+ Chip\+ Tools@{ Katabatic\+ ::\+ Chip\+ Tools} !get\+ Core@{ get\+ Core} }
\index { get\+ Core@{ get\+ Core} !Katabatic\+ ::\+ Chip\+ Tools@{ Katabatic\+ ::\+ Chip\+ Tools} }
\subsubsection { \texorpdfstring { get\+ Core()} { getCore()} }
{ \footnotesize \ttfamily \textbf { Instance} $ \ast $ get\+ Core (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
{ \bfseries Returns\+ :} The instance of the core, that is, the only instance that is { \itshape not} a pad... \mbox { \Hypertarget { classKatabatic_ 1_ 1ChipTools_ ada9182cc0bcdb47b156a29cf42d08651} \label { classKatabatic_ 1_ 1ChipTools_ ada9182cc0bcdb47b156a29cf42d08651} }
\index { Katabatic\+ ::\+ Chip\+ Tools@{ Katabatic\+ ::\+ Chip\+ Tools} !get\+ Chip\+ Bb@{ get\+ Chip\+ Bb} }
\index { get\+ Chip\+ Bb@{ get\+ Chip\+ Bb} !Katabatic\+ ::\+ Chip\+ Tools@{ Katabatic\+ ::\+ Chip\+ Tools} }
\subsubsection { \texorpdfstring { get\+ Chip\+ Bb()} { getChipBb()} }
{ \footnotesize \ttfamily const \textbf { Box} \& get\+ Chip\+ Bb (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
{ \bfseries Returns\+ :} The chip complete bounding box, this $ \ast $ is$ \ast $ simply the Cell bounding box. \mbox { \Hypertarget { classKatabatic_ 1_ 1ChipTools_ aa6b5ac93ecf1ee9f94f5176664dcf4bf} \label { classKatabatic_ 1_ 1ChipTools_ aa6b5ac93ecf1ee9f94f5176664dcf4bf} }
\index { Katabatic\+ ::\+ Chip\+ Tools@{ Katabatic\+ ::\+ Chip\+ Tools} !get\+ Left\+ Pads\+ Bb@{ get\+ Left\+ Pads\+ Bb} }
\index { get\+ Left\+ Pads\+ Bb@{ get\+ Left\+ Pads\+ Bb} !Katabatic\+ ::\+ Chip\+ Tools@{ Katabatic\+ ::\+ Chip\+ Tools} }
\subsubsection { \texorpdfstring { get\+ Left\+ Pads\+ Bb()} { getLeftPadsBb()} }
{ \footnotesize \ttfamily const \textbf { Box} \& get\+ Left\+ Pads\+ Bb (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
{ \bfseries Returns\+ :} The bounding box enclosing all the pads on the left side of the chip.
\begin { DoxyParagraph} { Remark\+ : This box is computed from the chip bounding box and the pad height. }
2018-06-06 11:42:26 -05:00
\end { DoxyParagraph}
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1ChipTools_ a07e88c4c6a615019e618af327829f4d0} \label { classKatabatic_ 1_ 1ChipTools_ a07e88c4c6a615019e618af327829f4d0} }
\index { Katabatic\+ ::\+ Chip\+ Tools@{ Katabatic\+ ::\+ Chip\+ Tools} !get\+ Right\+ Pads\+ Bb@{ get\+ Right\+ Pads\+ Bb} }
\index { get\+ Right\+ Pads\+ Bb@{ get\+ Right\+ Pads\+ Bb} !Katabatic\+ ::\+ Chip\+ Tools@{ Katabatic\+ ::\+ Chip\+ Tools} }
\subsubsection { \texorpdfstring { get\+ Right\+ Pads\+ Bb()} { getRightPadsBb()} }
{ \footnotesize \ttfamily const \textbf { Box} \& get\+ Right\+ Pads\+ Bb (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
{ \bfseries Returns\+ :} The bounding box enclosing all the pads on the right side of the chip.
\begin { DoxyParagraph} { Remark\+ : This box is computed from the chip bounding box and the pad height. }
2018-06-06 11:42:26 -05:00
\end { DoxyParagraph}
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1ChipTools_ ad31ff1dbfdf55216d684b4032a73db6b} \label { classKatabatic_ 1_ 1ChipTools_ ad31ff1dbfdf55216d684b4032a73db6b} }
\index { Katabatic\+ ::\+ Chip\+ Tools@{ Katabatic\+ ::\+ Chip\+ Tools} !get\+ Top\+ Pads\+ Bb@{ get\+ Top\+ Pads\+ Bb} }
\index { get\+ Top\+ Pads\+ Bb@{ get\+ Top\+ Pads\+ Bb} !Katabatic\+ ::\+ Chip\+ Tools@{ Katabatic\+ ::\+ Chip\+ Tools} }
\subsubsection { \texorpdfstring { get\+ Top\+ Pads\+ Bb()} { getTopPadsBb()} }
{ \footnotesize \ttfamily const \textbf { Box} \& get\+ Top\+ Pads\+ Bb (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
{ \bfseries Returns\+ :} The bounding box enclosing all the pads on the top side of the chip.
\begin { DoxyParagraph} { Remark\+ : This box is computed from the chip bounding box and the pad height. }
2018-06-06 11:42:26 -05:00
\end { DoxyParagraph}
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1ChipTools_ aad46c56aeb14b07fcdfe93b51c554828} \label { classKatabatic_ 1_ 1ChipTools_ aad46c56aeb14b07fcdfe93b51c554828} }
\index { Katabatic\+ ::\+ Chip\+ Tools@{ Katabatic\+ ::\+ Chip\+ Tools} !get\+ Bottom\+ Pads\+ Bb@{ get\+ Bottom\+ Pads\+ Bb} }
\index { get\+ Bottom\+ Pads\+ Bb@{ get\+ Bottom\+ Pads\+ Bb} !Katabatic\+ ::\+ Chip\+ Tools@{ Katabatic\+ ::\+ Chip\+ Tools} }
\subsubsection { \texorpdfstring { get\+ Bottom\+ Pads\+ Bb()} { getBottomPadsBb()} }
{ \footnotesize \ttfamily const \textbf { Box} \& get\+ Bottom\+ Pads\+ Bb (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
{ \bfseries Returns\+ :} The bounding box enclosing all the pads on the bottom side of the chip.
\begin { DoxyParagraph} { Remark\+ : This box is computed from the chip bounding box and the pad height. }
2018-06-06 11:42:26 -05:00
\end { DoxyParagraph}
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1ChipTools_ a19c65013cccd38e5d4169fc25454b938} \label { classKatabatic_ 1_ 1ChipTools_ a19c65013cccd38e5d4169fc25454b938} }
\index { Katabatic\+ ::\+ Chip\+ Tools@{ Katabatic\+ ::\+ Chip\+ Tools} !get\+ Corona@{ get\+ Corona} }
\index { get\+ Corona@{ get\+ Corona} !Katabatic\+ ::\+ Chip\+ Tools@{ Katabatic\+ ::\+ Chip\+ Tools} }
\subsubsection { \texorpdfstring { get\+ Corona()} { getCorona()} }
{ \footnotesize \ttfamily const Torus \& get\+ Corona (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
{ \bfseries Returns\+ :} The torus (in term of manhanttan distance) enclosed between the pad area and the core area. \mbox { \Hypertarget { classKatabatic_ 1_ 1ChipTools_ a708cdae658a916324059d321fafeaa7d} \label { classKatabatic_ 1_ 1ChipTools_ a708cdae658a916324059d321fafeaa7d} }
\index { Katabatic\+ ::\+ Chip\+ Tools@{ Katabatic\+ ::\+ Chip\+ Tools} !intersect\+ V\+ Pads@{ intersect\+ V\+ Pads} }
\index { intersect\+ V\+ Pads@{ intersect\+ V\+ Pads} !Katabatic\+ ::\+ Chip\+ Tools@{ Katabatic\+ ::\+ Chip\+ Tools} }
\subsubsection { \texorpdfstring { intersect\+ V\+ Pads()} { intersectVPads()} }
{ \footnotesize \ttfamily bool intersect\+ V\+ Pads (\begin { DoxyParamCaption} \item [{const \textbf{ Box} \&}] { box } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
{ \bfseries Returns\+ :} { \bfseries true} if { \ttfamily box} intersect either the left or right pad box.
References Box\+ ::intersect().
\mbox { \Hypertarget { classKatabatic_ 1_ 1ChipTools_ aeead79862ba27f1219a3cbb3ef6999d2} \label { classKatabatic_ 1_ 1ChipTools_ aeead79862ba27f1219a3cbb3ef6999d2} }
\index { Katabatic\+ ::\+ Chip\+ Tools@{ Katabatic\+ ::\+ Chip\+ Tools} !intersect\+ H\+ Pads@{ intersect\+ H\+ Pads} }
\index { intersect\+ H\+ Pads@{ intersect\+ H\+ Pads} !Katabatic\+ ::\+ Chip\+ Tools@{ Katabatic\+ ::\+ Chip\+ Tools} }
\subsubsection { \texorpdfstring { intersect\+ H\+ Pads()} { intersectHPads()} }
{ \footnotesize \ttfamily bool intersect\+ H\+ Pads (\begin { DoxyParamCaption} \item [{const \textbf{ Box} \&}] { box } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
{ \bfseries Returns\+ :} { \bfseries true} if { \ttfamily box} intersect either the top or bottom pad box.
References Box\+ ::intersect().
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
Chip\+ Tools.\+ h\item
Chip\+ Tools.\+ cpp\item
Chip\+ Tools.\+ dox\end { DoxyCompactItemize}