mirror of https://github.com/YosysHQ/abc.git
Functions to compute T-count.
This commit is contained in:
parent
2f149364eb
commit
85c751fbb8
|
|
@ -116,6 +116,43 @@ int ComputeQCostBits( Cube * p )
|
||||||
nLits += nLitsN;
|
nLits += nLitsN;
|
||||||
return QCost[Abc_MinInt(nLits, 7)][Abc_MinInt(nLitsN, 7)];
|
return QCost[Abc_MinInt(nLits, 7)][Abc_MinInt(nLitsN, 7)];
|
||||||
}
|
}
|
||||||
|
int ToffoliGateCount( int controls, int lines )
|
||||||
|
{
|
||||||
|
switch ( controls )
|
||||||
|
{
|
||||||
|
case 0u:
|
||||||
|
case 1u:
|
||||||
|
return 0;
|
||||||
|
break;
|
||||||
|
case 2u:
|
||||||
|
return 1;
|
||||||
|
break;
|
||||||
|
case 3u:
|
||||||
|
return 4;
|
||||||
|
break;
|
||||||
|
case 4u:
|
||||||
|
return ( ( ( lines + 1 ) / 2 ) >= controls ) ? 8 : 10;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
return ( ( ( lines + 1 ) / 2 ) >= controls ) ? 4 * ( controls - 2 ) : 8 * ( controls - 3 );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
int ComputeQCostTcount( Vec_Int_t * vCube )
|
||||||
|
{
|
||||||
|
return 7 * ToffoliGateCount( Vec_IntSize( vCube ), g_CoverInfo.nVarsIn + 1 );
|
||||||
|
}
|
||||||
|
int ComputeQCostTcountBits( Cube * p )
|
||||||
|
{
|
||||||
|
extern varvalue GetVar( Cube* pC, int Var );
|
||||||
|
int v, nLits = 0;
|
||||||
|
for ( v = 0; v < g_CoverInfo.nVarsIn; v++ )
|
||||||
|
if ( GetVar( p, v ) != VAR_ABS )
|
||||||
|
nLits++;
|
||||||
|
return 7 * ToffoliGateCount( nLits, g_CoverInfo.nVarsIn + 1 );
|
||||||
|
|
||||||
|
/* maybe just: 7 * ToffoliGateCount( p->a, g_CoverInfo.nVarsIn + 1 ); */
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**Function*************************************************************
|
/**Function*************************************************************
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue