Table of Contents

Name

addrdsfigrec - adds a rectangle to a figure

Origin

This software belongs to the ALLIANCE CAD system from the CAO-VLSI team at ASIM/LIP6/UPMC laboratory.
LIP6/ASIM
University P. et M. Curie 4, place Jussieu 75252 PARIS Cedex 05 FRANCE
Fax : {33/0} 1.44.27.62.86
E-mail support : alliance-support@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

Figure
figure which contains the rectangle to add.
Name
name of the rectangle to add.
Layer
Layer of the rectangle to add.
X,Y,DX,DY
Dimensions of the rectangle to add.

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 !" it's impossible to allocate the memory size desired

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/LIP6/UPMC laboratory, cao-vlsi research team.
We need your feedbak to improve documentation and tools. If you find bugs, please fill-in the form at http://asim.lip6.fr/alliance/support/bug-report/ Thanks for doing this.


Table of Contents

 



Alliance Web Site © 1997, 2002 ASIM/LIP6/UPMC, page maintained by Czo [Olivier Sirol] , last updated on 26 May 2000.