Scroll to navigation

ADDLOSIG(3) MBK LOGICAL FUNCTIONS ADDLOSIG(3)

NAME

addlosig - create a logical signal

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

PARAMETERS

Pointer to the figure in which the signal should be added
Signal index
List of names of the signal
Signal type

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 :

The signal is attached to at least one connector of the figure.
The signal is only attached to instance or transistor connector.
The index and type arguments fill the INDEX and TYPE 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 "mlo.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);
	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 department of the LIP6 laboratory.
We need your feedback to improve documentation and tools.

October 1, 1997 ASIM/LIP6