phfig(3) mbk physical figure


The phfig is used to describe a hierarchical level of a symbolic layout and may contain any of the legal physical objects needed for a layout but a phfig. All coordinates are symbolic and therefor put on a virtual grid in booth x and y directions.

The declarations needed to work on phfig are available in the header file "/labo/include/mph402.h", where '402' is the actual mbk version.

The following C structure supports the description of the layout view :

typedef struct phfig {
   struct phfig     *NEXT;
   struct chain     *MODELCHAIN;
   struct phseg     *PHSEG;
   struct phvia     *PHVIA;
   struct phref     *PHREF;
   struct phins     *PHINS;
   struct phcon     *PHCON;
   char             *NAME;
   char             MODE;
   long             XAB1, YAB1, XAB2, YAB2;
   struct ptype     *USER;
} phfig_list;
Pointer to the next phfig present in ram.
Name of the figure. It identifies a figure (or model), so it should be unique in order to warranty consistency of cells libraries. In order to ensure this consistency, the NAME field must be filled with the disk file name while parsing, and must be used as file name for driving.
Pointer to the head of the list of instances being used for the model description. See phins(3) for details.
Pointer to the head of the list of connectors (terminals) of the model. See phcon(3) for details.
Pointer to the head of the list of segments (wires) of the model. See phseg(3) for details.
Pointer to the head of the list of contacs and vias of the model. See phvia(3) for details.
Pointer to the head of the list of references of the model. See phref(3) for details.
Coordinates of the bottom left corner of the abutment box of the figure. The abutment box of a model represents the external visibility of a figure and is what reference is made to when instanciating the model. One should well distinguish the abutment box from the bounding box, which is the smallest rectangle that includes all cell descriptors. The size and position of the abutment box is a designer concern, and cannot be computed.
Caracter indicating the status of the figure in memory. This field can take two values :
all the cell is loaded in ram.
only information concerning the model interface is present, that means connectors and the abutment box. All other lists are empty.
Pointer to a chain list, see chain(3) for details, of names. These are the names of the models that are at least instanciated once in the figure.
Pointer to a ptype list, see ptype(3) for details, that is a general purpose pointer used to share informations on the model.
Remark :
mbk's physical view of a cell is releted to it's logical view by means of connector names, that must be identical.