mirror of https://github.com/YosysHQ/abc.git
Change to BENCH reader to read DFF with four inputs.
This commit is contained in:
parent
0923d543ad
commit
e06c04a3ef
|
|
@ -121,14 +121,37 @@ Abc_Ntk_t * Io_ReadBenchNetwork( Extra_FileReader_t * p )
|
||||||
pType = (char *)vTokens->pArray[1];
|
pType = (char *)vTokens->pArray[1];
|
||||||
if ( strncmp(pType, "DFF", 3) == 0 ) // works for both DFF and DFFRSE
|
if ( strncmp(pType, "DFF", 3) == 0 ) // works for both DFF and DFFRSE
|
||||||
{
|
{
|
||||||
pNode = Io_ReadCreateLatch( pNtk, (char *)vTokens->pArray[2], (char *)vTokens->pArray[0] );
|
if ( Vec_PtrSize(vTokens) == 6 )
|
||||||
// Abc_LatchSetInit0( pNode );
|
{
|
||||||
if ( pType[3] == '0' )
|
// create primary input to represent flop output
|
||||||
Abc_LatchSetInit0( pNode );
|
char pNetName[1000]; char * pName; int i;
|
||||||
else if ( pType[3] == '1' )
|
char * pFlopOut = (char *)vTokens->pArray[0];
|
||||||
Abc_LatchSetInit1( pNode );
|
Abc_Obj_t * pNet = Abc_NtkFindOrCreateNet( pNtk, pFlopOut );
|
||||||
|
Abc_Obj_t * pTerm = Abc_NtkCreatePi( pNtk );
|
||||||
|
Abc_ObjAddFanin( pNet, pTerm );
|
||||||
|
// create four primary outputs to represent flop inputs
|
||||||
|
Vec_PtrForEachEntryStart( char *, vTokens, pName, i, 2 )
|
||||||
|
{
|
||||||
|
sprintf( pNetName, "%s_%s", pFlopOut, pName );
|
||||||
|
pNet = Abc_NtkFindOrCreateNet( pNtk, pName );
|
||||||
|
pTerm = Abc_NtkCreateNodeBuf( pNtk, pNet );
|
||||||
|
pNet = Abc_NtkFindOrCreateNet( pNtk, pNetName );
|
||||||
|
Abc_ObjAddFanin( pNet, pTerm );
|
||||||
|
pTerm = Abc_NtkCreatePo( pNtk );
|
||||||
|
Abc_ObjAddFanin( pTerm, pNet );
|
||||||
|
}
|
||||||
|
}
|
||||||
else
|
else
|
||||||
Abc_LatchSetInitDc( pNode );
|
{
|
||||||
|
pNode = Io_ReadCreateLatch( pNtk, (char *)vTokens->pArray[2], (char *)vTokens->pArray[0] );
|
||||||
|
// Abc_LatchSetInit0( pNode );
|
||||||
|
if ( pType[3] == '0' )
|
||||||
|
Abc_LatchSetInit0( pNode );
|
||||||
|
else if ( pType[3] == '1' )
|
||||||
|
Abc_LatchSetInit1( pNode );
|
||||||
|
else
|
||||||
|
Abc_LatchSetInitDc( pNode );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if ( strcmp(pType, "LUT") == 0 )
|
else if ( strcmp(pType, "LUT") == 0 )
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue