.\" $Id: polarablexpr.3,v 1.1 2002/03/18 11:06:16 ludo Exp $ .\" @(#)polarablexpr.2 2.7 96/07/02 ; Labo masi cao-vlsi; Author : Jacomme Ludovic .TH POLARABLEXPR 3 "October 1, 1997" "ASIM/LIP6" "ABL FUNCTIONS" .SH NAME polarablexpr \- moves inverters to the atomic level. .so jessie/alliance/alc_origin.1.en.gz .SH SYNOPSYS .nf .if n \{\ .ft B \} .if t \{\ .ft CR \} #include "abl101.h" chain_list \(**polarablexpr( Expr, Polar ) chain_list \(**Expr; int Polar; .ft R .fi .SH PARAMETERS .TP 20 \fIExpr\fP Expression to modify. .TP \fIPolar\fP Expression polarity. .SH DESCRIPTION \fBpolarablexpr\fP modifies \fIExpr\fP by moving down the inverters to the atomic level. \fBpolarablexpr\fP applies the Morgan's laws. If \fIPolar\fP is equal to ABL_POLAR_NEGATIVE the function returns the modified expression after having complemented it. The expression pointer \fIExpr\fP MUSTN'T be used after the call to this function. .SH RETURN VALUE \fBpolarablexpr\fP returns the modified expression. .SH EXAMPLE .ta 3n 6n 9n 12n 15n 18n 21n .nf .if n \{\ .ft B \} .if t \{\ .ft CR \} #include "abl101.h" chain_list \(**Expr1; chain_list \(**Expr2; Expr1 = createabloper( ABL_NOT ); Expr2 = createabloper( ABL_NOT ); addablhexpr( Expr1, createablatom( "a" ) ); addablhexpr( Expr2, Expr1 ); Expr1 = polarablexpr( Expr2, ABL_POLAR_POSITIVE ); /* displays a */ viewablexpr( Expr1, ABL_VIEW_VHDL ); .ft R .fi .SH SEE ALSO .BR abl (1) .so jessie/alliance/alc_bug_report.1.en.gz