table of contents
ADDRDSFIGREC(3) | RDS PHYSICAL FUNCTIONS | ADDRDSFIGREC(3) |
NAME¶
addrdsfigrec - adds a rectangle to a figure
ORIGIN¶
This software belongs to the ALLIANCE CAD SYSTEM developed by the ASIM team at LIP6 laboratory of Université Pierre et Marie CURIE, in Paris, France.
Web : http://asim.lip6.fr/recherche/alliance/
E-mail : alliance-users@asim.lip6.fr
SYNOPSYS¶
#include "rdsnnn.h" rdsrec_list ∗addrdsfigrec( Figure, Name, Layer, X, Y, Dx, Dy )
rdsfig_list ∗Figure;
char ∗Name;
char Layer;
long X;
long Y;
long Dx;
long Dy;
PARAMETER¶
DESCRIPTION¶
addrdsfigrec creates an adds a rectangle in the figure
called Figure. The size of the user structure to add next to the
structure rdsrec_list (if it exists) is defined by the field SIZE of
the figure who has to contain the rectangle. The rectangle is added in front
of the list, and becomes itself the list head associated to the defined
layer in parameters of the function. The fields of the rectangle structure
are modified as follows :
The field NAME is set to Name.
The field X is set to X.
The field Y is set to Y.
The field DX is set to Dx.
The field DY is set to Dy.
The field FLAGS is modified with the value Layer.
RETURN VALUE¶
addrdsfigrec returns a pointer to the newly added rectangle.
ERRORS¶
"Rds202: rdsalloc error, can't continue !"
EXAMPLE¶
#include "mutnnn.h" #include "rdsnnn.h" #include "rtlnnn.h"
typedef struct UserStruct
{
char ∗STRING;
void ∗USER1;
} UserStruct;
# define POINTER_STRING(R) \
\
(((UserStruct ∗)((char ∗)(R)+sizeof(rdsrec_list)))->STRING )
main()
{
rdsfig_list ∗RdsFigure;
rdsrec_list ∗Rectangle;
char Layer;
rdsrec_list ∗ScanRec;
mbkenv();
rdsenv();
loadrdsparam();
RdsFigure = addrdsfig ("core",sizeof ( UserStruct ) );
Rectangle = addrdsfigrec (RdsFigure,
"Alu1",RDS_ALU1,
2,4,12,1);
POINTER_STRING(Rectangle) = namealloc ("rectangle_alu1");
...
/∗
print caracteristics of all rectangles of the Rds figure
∗/
for ( Layer = 0 ; Layer < RDS_MAX_LAYER ; Layer ++ )
{
for (
ScanRec = RdsFigure->LAYERTAB[Layer] ;
ScanRec != (rdsrec_list ∗) NULL ;
ScanRec = ScanRec->NEXT
)
{
printf("Rectangle->LAYER = %s\n",
RDS_LAYER_NAME[GetRdsLayer(ScanRec)]);
printf("Rectangle->NAME = %s\n",ScanRec->NAME);
printf("Rectangle->X = %ld\n",ScanRec->X);
printf("Rectangle->Y = %ld\n",ScanRec->Y);
printf("Rectangle->DX = %ld\n",ScanRec->DX);
printf("Rectangle->DY = %ld\n",ScanRec->DY);
printf("Rectangle->STRING = %s\n",POINTER_STRING(ScanRec));
}
}
}
SEE ALSO¶
librds, delrdsfigrec, viewrdsfig
BUG REPORT¶
This tool is under development at the ASIM department of
the LIP6 laboratory.
We need your feedback to improve documentation and tools.
October 1, 1997 | ASIM/LIP6 |