Table of Contents

Name

addlosig - create a logical signal

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 mlo404.h"
losig_list *addlosig(ptfig, index, namechain, type, capa) lofig_list *ptfig;
long index;
chain_list *namechain;
char type;
float capa;

Parameters

ptfig
Pointer to the figure in which the signal should be added
index
Signal index
namechain
List of names of the signal
type
Signal type
capa
Total capacitance attached to the signal

Description

addlosig creates a new signal, and adds it to the list of signals pointed to by ptfig->LOSIG. The new signal is added in front of the list, and becomes itself the list head.
The type parameter can take two values :

EXTERNAL
The signal is attached to at least one connector of the figure.
INTERNAL
The signal is only attached to instance or transistor connector. The index, type and capa arguments fill the INDEX, TYPE and CAPA fields of the losig(3) structure. The index is the signal identifier, so it should be unique at a given hierarchical level. The namechain argument is a list of names, given in a chain_list. See chain(3) for details.

Return Value

addlosig returns a pointer to the newly created signal.

Errors

*** mbk error *** addlosig impossible signal index already exist in figure ptfig->NAME"
The index is already used in an other signal, and since it's the signal identifier, it can't be.

Example

#include mlo404.h"
losig_list *merge_and_create(pt, s0, s1) /* merge two signal in a third */ lofig_list *pt;
losig_list *s0, *s1;
{
chain_list *c;
losig_list *s;
long max_index;
/* merge names */
for (c = s0->NAMECHAIN; c; c = c->NEXT) s1->NAMECHAIN = addchain(s1->NAMECHAIN, c); /* find maximum index */
for (s = pt->LOSIG; s; s = s->NEXT) if (max_index < s->INDEX)
max_index = s->INDEX;
s = addlosig(pt, ++max_index, s1->NAMECHAIN, s0->TYPE == EXTERNAL || s1->TYPE == EXTERNAL ? EXTERNAL : INTERNAL,
s1->CAPA + s0->CAPA);
dellosig(pt, s0);
dellosig(pt, s1);
return s;
}

See Also

mbk(1) , lofig(3) , losig(3) , getlosig(3) , dellosig(3) .

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.