mirror of https://github.com/YosysHQ/abc.git
Adding box library.
This commit is contained in:
parent
8355eb1d41
commit
5eedc74a15
10
abclib.dsp
10
abclib.dsp
|
|
@ -2279,6 +2279,10 @@ SOURCE=.\src\map\if\if.h
|
||||||
# End Source File
|
# End Source File
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
|
||||||
|
SOURCE=.\src\map\if\ifCom.c
|
||||||
|
# End Source File
|
||||||
|
# Begin Source File
|
||||||
|
|
||||||
SOURCE=.\src\map\if\ifCore.c
|
SOURCE=.\src\map\if\ifCore.c
|
||||||
# End Source File
|
# End Source File
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
|
@ -2303,7 +2307,11 @@ SOURCE=.\src\map\if\ifDec16.c
|
||||||
# End Source File
|
# End Source File
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
|
||||||
SOURCE=.\src\map\if\ifLib.c
|
SOURCE=.\src\map\if\ifLibBox.c
|
||||||
|
# End Source File
|
||||||
|
# Begin Source File
|
||||||
|
|
||||||
|
SOURCE=.\src\map\if\ifLibLut.c
|
||||||
# End Source File
|
# End Source File
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -233,8 +233,8 @@ static int Abc_CommandAttach ( Abc_Frame_t * pAbc, int argc, cha
|
||||||
static int Abc_CommandSuperChoice ( Abc_Frame_t * pAbc, int argc, char ** argv );
|
static int Abc_CommandSuperChoice ( Abc_Frame_t * pAbc, int argc, char ** argv );
|
||||||
static int Abc_CommandSuperChoiceLut ( Abc_Frame_t * pAbc, int argc, char ** argv );
|
static int Abc_CommandSuperChoiceLut ( Abc_Frame_t * pAbc, int argc, char ** argv );
|
||||||
|
|
||||||
static int Abc_CommandFpga ( Abc_Frame_t * pAbc, int argc, char ** argv );
|
//static int Abc_CommandFpga ( Abc_Frame_t * pAbc, int argc, char ** argv );
|
||||||
static int Abc_CommandFpgaFast ( Abc_Frame_t * pAbc, int argc, char ** argv );
|
//static int Abc_CommandFpgaFast ( Abc_Frame_t * pAbc, int argc, char ** argv );
|
||||||
static int Abc_CommandIf ( Abc_Frame_t * pAbc, int argc, char ** argv );
|
static int Abc_CommandIf ( Abc_Frame_t * pAbc, int argc, char ** argv );
|
||||||
static int Abc_CommandIfif ( Abc_Frame_t * pAbc, int argc, char ** argv );
|
static int Abc_CommandIfif ( Abc_Frame_t * pAbc, int argc, char ** argv );
|
||||||
|
|
||||||
|
|
@ -694,8 +694,8 @@ void Abc_Init( Abc_Frame_t * pAbc )
|
||||||
Cmd_CommandAdd( pAbc, "SC mapping", "superc", Abc_CommandSuperChoice, 1 );
|
Cmd_CommandAdd( pAbc, "SC mapping", "superc", Abc_CommandSuperChoice, 1 );
|
||||||
Cmd_CommandAdd( pAbc, "SC mapping", "supercl", Abc_CommandSuperChoiceLut, 1 );
|
Cmd_CommandAdd( pAbc, "SC mapping", "supercl", Abc_CommandSuperChoiceLut, 1 );
|
||||||
|
|
||||||
Cmd_CommandAdd( pAbc, "FPGA mapping", "fpga", Abc_CommandFpga, 1 );
|
// Cmd_CommandAdd( pAbc, "FPGA mapping", "fpga", Abc_CommandFpga, 1 );
|
||||||
Cmd_CommandAdd( pAbc, "FPGA mapping", "ffpga", Abc_CommandFpgaFast, 1 );
|
// Cmd_CommandAdd( pAbc, "FPGA mapping", "ffpga", Abc_CommandFpgaFast, 1 );
|
||||||
Cmd_CommandAdd( pAbc, "FPGA mapping", "if", Abc_CommandIf, 1 );
|
Cmd_CommandAdd( pAbc, "FPGA mapping", "if", Abc_CommandIf, 1 );
|
||||||
Cmd_CommandAdd( pAbc, "FPGA mapping", "ifif", Abc_CommandIfif, 1 );
|
Cmd_CommandAdd( pAbc, "FPGA mapping", "ifif", Abc_CommandIfif, 1 );
|
||||||
|
|
||||||
|
|
@ -14241,6 +14241,7 @@ usage:
|
||||||
SeeAlso []
|
SeeAlso []
|
||||||
|
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
|
#if 0
|
||||||
int Abc_CommandFpga( Abc_Frame_t * pAbc, int argc, char ** argv )
|
int Abc_CommandFpga( Abc_Frame_t * pAbc, int argc, char ** argv )
|
||||||
{
|
{
|
||||||
char Buffer[100];
|
char Buffer[100];
|
||||||
|
|
@ -14518,6 +14519,7 @@ usage:
|
||||||
Abc_Print( -2, "\t-h : prints the command usage\n");
|
Abc_Print( -2, "\t-h : prints the command usage\n");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/**Function*************************************************************
|
/**Function*************************************************************
|
||||||
|
|
||||||
|
|
@ -27335,7 +27337,7 @@ int Abc_CommandAbc9If( Abc_Frame_t * pAbc, int argc, char ** argv )
|
||||||
if ( pAbc->pLibLut == NULL )
|
if ( pAbc->pLibLut == NULL )
|
||||||
{
|
{
|
||||||
Abc_Print( -1, "LUT library is not given. Using default LUT library.\n" );
|
Abc_Print( -1, "LUT library is not given. Using default LUT library.\n" );
|
||||||
pAbc->pLibLut = If_SetSimpleLutLib( 6 );
|
pAbc->pLibLut = If_LutLibSetSimple( 6 );
|
||||||
}
|
}
|
||||||
Extra_UtilGetoptReset();
|
Extra_UtilGetoptReset();
|
||||||
while ( ( c = Extra_UtilGetopt( argc, argv, "KCFAGDEWSqaflepmrsdbgyojikcvh" ) ) != EOF )
|
while ( ( c = Extra_UtilGetopt( argc, argv, "KCFAGDEWSqaflepmrsdbgyojikcvh" ) ) != EOF )
|
||||||
|
|
|
||||||
|
|
@ -96,6 +96,7 @@ extern ABC_DLL Abc_Frame_t * Abc_FrameReadGlobalFrame();
|
||||||
extern ABC_DLL Vec_Ptr_t * Abc_FrameReadStore();
|
extern ABC_DLL Vec_Ptr_t * Abc_FrameReadStore();
|
||||||
extern ABC_DLL int Abc_FrameReadStoreSize();
|
extern ABC_DLL int Abc_FrameReadStoreSize();
|
||||||
extern ABC_DLL void * Abc_FrameReadLibLut();
|
extern ABC_DLL void * Abc_FrameReadLibLut();
|
||||||
|
extern ABC_DLL void * Abc_FrameReadLibBox();
|
||||||
extern ABC_DLL void * Abc_FrameReadLibGen();
|
extern ABC_DLL void * Abc_FrameReadLibGen();
|
||||||
extern ABC_DLL void * Abc_FrameReadLibGen2();
|
extern ABC_DLL void * Abc_FrameReadLibGen2();
|
||||||
extern ABC_DLL void * Abc_FrameReadLibSuper();
|
extern ABC_DLL void * Abc_FrameReadLibSuper();
|
||||||
|
|
@ -122,6 +123,7 @@ extern ABC_DLL int Abc_FrameReadCexFrame( Abc_Frame_t * p );
|
||||||
extern ABC_DLL void Abc_FrameSetNtkStore( Abc_Ntk_t * pNtk );
|
extern ABC_DLL void Abc_FrameSetNtkStore( Abc_Ntk_t * pNtk );
|
||||||
extern ABC_DLL void Abc_FrameSetNtkStoreSize( int nStored );
|
extern ABC_DLL void Abc_FrameSetNtkStoreSize( int nStored );
|
||||||
extern ABC_DLL void Abc_FrameSetLibLut( void * pLib );
|
extern ABC_DLL void Abc_FrameSetLibLut( void * pLib );
|
||||||
|
extern ABC_DLL void Abc_FrameSetLibBox( void * pLib );
|
||||||
extern ABC_DLL void Abc_FrameSetLibGen( void * pLib );
|
extern ABC_DLL void Abc_FrameSetLibGen( void * pLib );
|
||||||
extern ABC_DLL void Abc_FrameSetLibGen2( void * pLib );
|
extern ABC_DLL void Abc_FrameSetLibGen2( void * pLib );
|
||||||
extern ABC_DLL void Abc_FrameSetLibSuper( void * pLib );
|
extern ABC_DLL void Abc_FrameSetLibSuper( void * pLib );
|
||||||
|
|
|
||||||
|
|
@ -51,6 +51,7 @@ static Abc_Frame_t * s_GlobalFrame = NULL;
|
||||||
Vec_Ptr_t * Abc_FrameReadStore() { return s_GlobalFrame->vStore; }
|
Vec_Ptr_t * Abc_FrameReadStore() { return s_GlobalFrame->vStore; }
|
||||||
int Abc_FrameReadStoreSize() { return Vec_PtrSize(s_GlobalFrame->vStore); }
|
int Abc_FrameReadStoreSize() { return Vec_PtrSize(s_GlobalFrame->vStore); }
|
||||||
void * Abc_FrameReadLibLut() { return s_GlobalFrame->pLibLut; }
|
void * Abc_FrameReadLibLut() { return s_GlobalFrame->pLibLut; }
|
||||||
|
void * Abc_FrameReadLibBox() { return s_GlobalFrame->pLibBox; }
|
||||||
void * Abc_FrameReadLibGen() { return s_GlobalFrame->pLibGen; }
|
void * Abc_FrameReadLibGen() { return s_GlobalFrame->pLibGen; }
|
||||||
void * Abc_FrameReadLibGen2() { return s_GlobalFrame->pLibGen2; }
|
void * Abc_FrameReadLibGen2() { return s_GlobalFrame->pLibGen2; }
|
||||||
void * Abc_FrameReadLibSuper() { return s_GlobalFrame->pLibSuper; }
|
void * Abc_FrameReadLibSuper() { return s_GlobalFrame->pLibSuper; }
|
||||||
|
|
@ -71,6 +72,7 @@ int Abc_FrameReadCexPo( Abc_Frame_t * p ) { return s_GlobalFr
|
||||||
int Abc_FrameReadCexFrame( Abc_Frame_t * p ) { return s_GlobalFrame->pCex->iFrame; }
|
int Abc_FrameReadCexFrame( Abc_Frame_t * p ) { return s_GlobalFrame->pCex->iFrame; }
|
||||||
|
|
||||||
void Abc_FrameSetLibLut( void * pLib ) { s_GlobalFrame->pLibLut = pLib; }
|
void Abc_FrameSetLibLut( void * pLib ) { s_GlobalFrame->pLibLut = pLib; }
|
||||||
|
void Abc_FrameSetLibBox( void * pLib ) { s_GlobalFrame->pLibBox = pLib; }
|
||||||
void Abc_FrameSetLibGen( void * pLib ) { s_GlobalFrame->pLibGen = pLib; }
|
void Abc_FrameSetLibGen( void * pLib ) { s_GlobalFrame->pLibGen = pLib; }
|
||||||
void Abc_FrameSetLibGen2( void * pLib ) { s_GlobalFrame->pLibGen2 = pLib; }
|
void Abc_FrameSetLibGen2( void * pLib ) { s_GlobalFrame->pLibGen2 = pLib; }
|
||||||
void Abc_FrameSetLibSuper( void * pLib ) { s_GlobalFrame->pLibSuper = pLib; }
|
void Abc_FrameSetLibSuper( void * pLib ) { s_GlobalFrame->pLibSuper = pLib; }
|
||||||
|
|
|
||||||
|
|
@ -36,8 +36,8 @@ extern void Io_Init( Abc_Frame_t * pAbc );
|
||||||
extern void Io_End ( Abc_Frame_t * pAbc );
|
extern void Io_End ( Abc_Frame_t * pAbc );
|
||||||
extern void Cmd_Init( Abc_Frame_t * pAbc );
|
extern void Cmd_Init( Abc_Frame_t * pAbc );
|
||||||
extern void Cmd_End ( Abc_Frame_t * pAbc );
|
extern void Cmd_End ( Abc_Frame_t * pAbc );
|
||||||
extern void Fpga_Init( Abc_Frame_t * pAbc );
|
extern void If_Init( Abc_Frame_t * pAbc );
|
||||||
extern void Fpga_End ( Abc_Frame_t * pAbc );
|
extern void If_End ( Abc_Frame_t * pAbc );
|
||||||
extern void Map_Init( Abc_Frame_t * pAbc );
|
extern void Map_Init( Abc_Frame_t * pAbc );
|
||||||
extern void Map_End ( Abc_Frame_t * pAbc );
|
extern void Map_End ( Abc_Frame_t * pAbc );
|
||||||
extern void Mio_Init( Abc_Frame_t * pAbc );
|
extern void Mio_Init( Abc_Frame_t * pAbc );
|
||||||
|
|
@ -78,7 +78,7 @@ void Abc_FrameInit( Abc_Frame_t * pAbc )
|
||||||
Cmd_CommandExecute( pAbc, "set checkread" );
|
Cmd_CommandExecute( pAbc, "set checkread" );
|
||||||
Io_Init( pAbc );
|
Io_Init( pAbc );
|
||||||
Abc_Init( pAbc );
|
Abc_Init( pAbc );
|
||||||
Fpga_Init( pAbc );
|
If_Init( pAbc );
|
||||||
Map_Init( pAbc );
|
Map_Init( pAbc );
|
||||||
Mio_Init( pAbc );
|
Mio_Init( pAbc );
|
||||||
Super_Init( pAbc );
|
Super_Init( pAbc );
|
||||||
|
|
@ -112,7 +112,7 @@ void Abc_FrameEnd( Abc_Frame_t * pAbc )
|
||||||
Abc_End( pAbc );
|
Abc_End( pAbc );
|
||||||
Io_End( pAbc );
|
Io_End( pAbc );
|
||||||
Cmd_End( pAbc );
|
Cmd_End( pAbc );
|
||||||
Fpga_End( pAbc );
|
If_End( pAbc );
|
||||||
Map_End( pAbc );
|
Map_End( pAbc );
|
||||||
Mio_End( pAbc );
|
Mio_End( pAbc );
|
||||||
Super_End( pAbc );
|
Super_End( pAbc );
|
||||||
|
|
|
||||||
|
|
@ -87,6 +87,7 @@ struct Abc_Frame_t_
|
||||||
DdManager * dd; // temporary BDD package
|
DdManager * dd; // temporary BDD package
|
||||||
// libraries for mapping
|
// libraries for mapping
|
||||||
void * pLibLut; // the current LUT library
|
void * pLibLut; // the current LUT library
|
||||||
|
void * pLibBox; // the current box library
|
||||||
void * pLibGen; // the current genlib
|
void * pLibGen; // the current genlib
|
||||||
void * pLibGen2; // the current genlib
|
void * pLibGen2; // the current genlib
|
||||||
void * pLibSuper; // the current supergate library
|
void * pLibSuper; // the current supergate library
|
||||||
|
|
|
||||||
|
|
@ -312,6 +312,23 @@ struct If_And_t_
|
||||||
unsigned Delay : 16; // delay
|
unsigned Delay : 16; // delay
|
||||||
};
|
};
|
||||||
|
|
||||||
|
typedef struct If_Box_t_ If_Box_t;
|
||||||
|
struct If_Box_t_
|
||||||
|
{
|
||||||
|
char * pName;
|
||||||
|
int Id;
|
||||||
|
int fWhite;
|
||||||
|
int nPis;
|
||||||
|
int nPos;
|
||||||
|
int * pDelays;
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef struct If_LibBox_t_ If_LibBox_t;
|
||||||
|
struct If_LibBox_t_
|
||||||
|
{
|
||||||
|
Vec_Ptr_t * vBoxes;
|
||||||
|
};
|
||||||
|
|
||||||
static inline If_Obj_t * If_Regular( If_Obj_t * p ) { return (If_Obj_t *)((ABC_PTRUINT_T)(p) & ~01); }
|
static inline If_Obj_t * If_Regular( If_Obj_t * p ) { return (If_Obj_t *)((ABC_PTRUINT_T)(p) & ~01); }
|
||||||
static inline If_Obj_t * If_Not( If_Obj_t * p ) { return (If_Obj_t *)((ABC_PTRUINT_T)(p) ^ 01); }
|
static inline If_Obj_t * If_Not( If_Obj_t * p ) { return (If_Obj_t *)((ABC_PTRUINT_T)(p) ^ 01); }
|
||||||
static inline If_Obj_t * If_NotCond( If_Obj_t * p, int c ) { return (If_Obj_t *)((ABC_PTRUINT_T)(p) ^ (c)); }
|
static inline If_Obj_t * If_NotCond( If_Obj_t * p, int c ) { return (If_Obj_t *)((ABC_PTRUINT_T)(p) ^ (c)); }
|
||||||
|
|
@ -481,9 +498,17 @@ extern void If_LutLibFree( If_Lib_t * pLutLib );
|
||||||
extern void If_LutLibPrint( If_Lib_t * pLutLib );
|
extern void If_LutLibPrint( If_Lib_t * pLutLib );
|
||||||
extern int If_LutLibDelaysAreDiscrete( If_Lib_t * pLutLib );
|
extern int If_LutLibDelaysAreDiscrete( If_Lib_t * pLutLib );
|
||||||
extern int If_LutLibDelaysAreDifferent( If_Lib_t * pLutLib );
|
extern int If_LutLibDelaysAreDifferent( If_Lib_t * pLutLib );
|
||||||
extern If_Lib_t * If_SetSimpleLutLib( int nLutSize );
|
extern If_Lib_t * If_LutLibSetSimple( int nLutSize );
|
||||||
extern float If_LutLibFastestPinDelay( If_Lib_t * p );
|
extern float If_LutLibFastestPinDelay( If_Lib_t * p );
|
||||||
extern float If_LutLibSlowestPinDelay( If_Lib_t * p );
|
extern float If_LutLibSlowestPinDelay( If_Lib_t * p );
|
||||||
|
/*=== ifLibBox.c =============================================================*/
|
||||||
|
extern If_LibBox_t * If_LibBoxStart();
|
||||||
|
extern void If_LibBoxFree( If_LibBox_t * p );
|
||||||
|
extern If_Box_t * If_LibBoxReadBox( If_LibBox_t * p, int Id );
|
||||||
|
extern void If_LibBoxAdd( If_LibBox_t * p, If_Box_t * pBox );
|
||||||
|
extern If_LibBox_t * If_LibBoxRead( char * pFileName );
|
||||||
|
extern void If_LibBoxPrint( FILE * pFile, If_LibBox_t * p );
|
||||||
|
extern void If_LibBoxWrite( char * pFileName, If_LibBox_t * p );
|
||||||
/*=== ifMan.c =============================================================*/
|
/*=== ifMan.c =============================================================*/
|
||||||
extern If_Man_t * If_ManStart( If_Par_t * pPars );
|
extern If_Man_t * If_ManStart( If_Par_t * pPars );
|
||||||
extern void If_ManRestart( If_Man_t * p );
|
extern void If_ManRestart( If_Man_t * p );
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,366 @@
|
||||||
|
/**CFile****************************************************************
|
||||||
|
|
||||||
|
FileName [ifCom.c]
|
||||||
|
|
||||||
|
SystemName [ABC: Logic synthesis and verification system.]
|
||||||
|
|
||||||
|
PackageName [FPGA mapping based on priority cuts.]
|
||||||
|
|
||||||
|
Synopsis [Command handlers.]
|
||||||
|
|
||||||
|
Author [Alan Mishchenko]
|
||||||
|
|
||||||
|
Affiliation [UC Berkeley]
|
||||||
|
|
||||||
|
Date [Ver. 1.0. Started - November 21, 2006.]
|
||||||
|
|
||||||
|
Revision [$Id: ifCom.c,v 1.00 2006/11/21 00:00:00 alanmi Exp $]
|
||||||
|
|
||||||
|
***********************************************************************/
|
||||||
|
|
||||||
|
#include "if.h"
|
||||||
|
#include "base/main/main.h"
|
||||||
|
|
||||||
|
ABC_NAMESPACE_IMPL_START
|
||||||
|
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////
|
||||||
|
/// DECLARATIONS ///
|
||||||
|
////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
static int If_CommandReadLut ( Abc_Frame_t * pAbc, int argc, char **argv );
|
||||||
|
static int If_CommandPrintLut( Abc_Frame_t * pAbc, int argc, char **argv );
|
||||||
|
static int If_CommandReadBox ( Abc_Frame_t * pAbc, int argc, char **argv );
|
||||||
|
static int If_CommandPrintBox( Abc_Frame_t * pAbc, int argc, char **argv );
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////
|
||||||
|
/// FUNCTION DEFINITIONS ///
|
||||||
|
////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
/**Function*************************************************************
|
||||||
|
|
||||||
|
Synopsis [Package initialization procedure.]
|
||||||
|
|
||||||
|
Description []
|
||||||
|
|
||||||
|
SideEffects []
|
||||||
|
|
||||||
|
SeeAlso []
|
||||||
|
|
||||||
|
***********************************************************************/
|
||||||
|
void If_Init( Abc_Frame_t * pAbc )
|
||||||
|
{
|
||||||
|
// set the default library
|
||||||
|
If_Lib_t s_LutLib = { "lutlib", 4, 0, {0,1,1,1,1}, {{0},{1},{1},{1},{1}} };
|
||||||
|
Abc_FrameSetLibLut( If_LutLibDup(&s_LutLib) );
|
||||||
|
|
||||||
|
Cmd_CommandAdd( pAbc, "FPGA mapping", "read_lut", If_CommandReadLut, 0 );
|
||||||
|
Cmd_CommandAdd( pAbc, "FPGA mapping", "print_lut", If_CommandPrintLut, 0 );
|
||||||
|
|
||||||
|
Cmd_CommandAdd( pAbc, "FPGA mapping", "read_box", If_CommandReadBox, 0 );
|
||||||
|
Cmd_CommandAdd( pAbc, "FPGA mapping", "print_box", If_CommandPrintBox, 0 );
|
||||||
|
}
|
||||||
|
|
||||||
|
/**Function*************************************************************
|
||||||
|
|
||||||
|
Synopsis [Package ending procedure.]
|
||||||
|
|
||||||
|
Description []
|
||||||
|
|
||||||
|
SideEffects []
|
||||||
|
|
||||||
|
SeeAlso []
|
||||||
|
|
||||||
|
***********************************************************************/
|
||||||
|
void If_End( Abc_Frame_t * pAbc )
|
||||||
|
{
|
||||||
|
If_LutLibFree( (If_Lib_t *) Abc_FrameReadLibLut() );
|
||||||
|
If_LibBoxFree( (If_LibBox_t *)Abc_FrameReadLibBox() );
|
||||||
|
}
|
||||||
|
|
||||||
|
/**Function*************************************************************
|
||||||
|
|
||||||
|
Synopsis [Command procedure to read LUT libraries.]
|
||||||
|
|
||||||
|
Description []
|
||||||
|
|
||||||
|
SideEffects []
|
||||||
|
|
||||||
|
SeeAlso []
|
||||||
|
|
||||||
|
***********************************************************************/
|
||||||
|
int If_CommandReadLut( Abc_Frame_t * pAbc, int argc, char **argv )
|
||||||
|
{
|
||||||
|
FILE * pFile;
|
||||||
|
FILE * pOut, * pErr;
|
||||||
|
If_Lib_t * pLib;
|
||||||
|
Abc_Ntk_t * pNet;
|
||||||
|
char * FileName;
|
||||||
|
int fVerbose;
|
||||||
|
int c;
|
||||||
|
|
||||||
|
pNet = Abc_FrameReadNtk(pAbc);
|
||||||
|
pOut = Abc_FrameReadOut(pAbc);
|
||||||
|
pErr = Abc_FrameReadErr(pAbc);
|
||||||
|
|
||||||
|
// set the defaults
|
||||||
|
fVerbose = 1;
|
||||||
|
Extra_UtilGetoptReset();
|
||||||
|
while ( (c = Extra_UtilGetopt(argc, argv, "vh")) != EOF )
|
||||||
|
{
|
||||||
|
switch (c)
|
||||||
|
{
|
||||||
|
case 'v':
|
||||||
|
fVerbose ^= 1;
|
||||||
|
break;
|
||||||
|
case 'h':
|
||||||
|
goto usage;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
goto usage;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( argc != globalUtilOptind + 1 )
|
||||||
|
goto usage;
|
||||||
|
|
||||||
|
// get the input file name
|
||||||
|
FileName = argv[globalUtilOptind];
|
||||||
|
if ( (pFile = fopen( FileName, "r" )) == NULL )
|
||||||
|
{
|
||||||
|
fprintf( pErr, "Cannot open input file \"%s\". ", FileName );
|
||||||
|
if ( (FileName = Extra_FileGetSimilarName( FileName, ".genlib", ".lib", ".gen", ".g", NULL )) )
|
||||||
|
fprintf( pErr, "Did you mean \"%s\"?", FileName );
|
||||||
|
fprintf( pErr, "\n" );
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
fclose( pFile );
|
||||||
|
|
||||||
|
// set the new network
|
||||||
|
pLib = If_LutLibRead( FileName );
|
||||||
|
if ( pLib == NULL )
|
||||||
|
{
|
||||||
|
fprintf( pErr, "Reading LUT library has failed.\n" );
|
||||||
|
goto usage;
|
||||||
|
}
|
||||||
|
// replace the current library
|
||||||
|
If_LutLibFree( (If_Lib_t *)Abc_FrameReadLibLut() );
|
||||||
|
Abc_FrameSetLibLut( pLib );
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
usage:
|
||||||
|
fprintf( pErr, "\nusage: read_lut [-vh]\n");
|
||||||
|
fprintf( pErr, "\t read the LUT library from the file\n" );
|
||||||
|
fprintf( pErr, "\t-v : toggles enabling of verbose output [default = %s]\n", (fVerbose? "yes" : "no") );
|
||||||
|
fprintf( pErr, "\t-h : print the command usage\n");
|
||||||
|
fprintf( pErr, "\t \n");
|
||||||
|
fprintf( pErr, "\t File format for a LUT library:\n");
|
||||||
|
fprintf( pErr, "\t (the default library is shown)\n");
|
||||||
|
fprintf( pErr, "\t \n");
|
||||||
|
fprintf( pErr, "\t # The area/delay of k-variable LUTs:\n");
|
||||||
|
fprintf( pErr, "\t # k area delay\n");
|
||||||
|
fprintf( pErr, "\t 1 1 1\n");
|
||||||
|
fprintf( pErr, "\t 2 2 2\n");
|
||||||
|
fprintf( pErr, "\t 3 4 3\n");
|
||||||
|
fprintf( pErr, "\t 4 8 4\n");
|
||||||
|
fprintf( pErr, "\t 5 16 5\n");
|
||||||
|
fprintf( pErr, "\t 6 32 6\n");
|
||||||
|
return 1; /* error exit */
|
||||||
|
}
|
||||||
|
|
||||||
|
/**Function*************************************************************
|
||||||
|
|
||||||
|
Synopsis [Command procedure to read LUT libraries.]
|
||||||
|
|
||||||
|
Description []
|
||||||
|
|
||||||
|
SideEffects []
|
||||||
|
|
||||||
|
SeeAlso []
|
||||||
|
|
||||||
|
***********************************************************************/
|
||||||
|
int If_CommandPrintLut( Abc_Frame_t * pAbc, int argc, char **argv )
|
||||||
|
{
|
||||||
|
FILE * pOut, * pErr;
|
||||||
|
Abc_Ntk_t * pNet;
|
||||||
|
int fVerbose;
|
||||||
|
int c;
|
||||||
|
|
||||||
|
pNet = Abc_FrameReadNtk(pAbc);
|
||||||
|
pOut = Abc_FrameReadOut(pAbc);
|
||||||
|
pErr = Abc_FrameReadErr(pAbc);
|
||||||
|
|
||||||
|
// set the defaults
|
||||||
|
fVerbose = 1;
|
||||||
|
Extra_UtilGetoptReset();
|
||||||
|
while ( (c = Extra_UtilGetopt(argc, argv, "vh")) != EOF )
|
||||||
|
{
|
||||||
|
switch (c)
|
||||||
|
{
|
||||||
|
case 'v':
|
||||||
|
fVerbose ^= 1;
|
||||||
|
break;
|
||||||
|
case 'h':
|
||||||
|
goto usage;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
goto usage;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( argc != globalUtilOptind )
|
||||||
|
goto usage;
|
||||||
|
|
||||||
|
// set the new network
|
||||||
|
If_LutLibPrint( (If_Lib_t *)Abc_FrameReadLibLut() );
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
usage:
|
||||||
|
fprintf( pErr, "\nusage: print_lut [-vh]\n");
|
||||||
|
fprintf( pErr, "\t print the current LUT library\n" );
|
||||||
|
fprintf( pErr, "\t-v : toggles enabling of verbose output [default = %s]\n", (fVerbose? "yes" : "no") );
|
||||||
|
fprintf( pErr, "\t-h : print the command usage\n");
|
||||||
|
return 1; /* error exit */
|
||||||
|
}
|
||||||
|
|
||||||
|
/**Function*************************************************************
|
||||||
|
|
||||||
|
Synopsis []
|
||||||
|
|
||||||
|
Description []
|
||||||
|
|
||||||
|
SideEffects []
|
||||||
|
|
||||||
|
SeeAlso []
|
||||||
|
|
||||||
|
***********************************************************************/
|
||||||
|
int If_CommandReadBox( Abc_Frame_t * pAbc, int argc, char **argv )
|
||||||
|
{
|
||||||
|
FILE * pFile;
|
||||||
|
FILE * pOut, * pErr;
|
||||||
|
If_LibBox_t * pLib;
|
||||||
|
Abc_Ntk_t * pNet;
|
||||||
|
char * FileName;
|
||||||
|
int fVerbose;
|
||||||
|
int c;
|
||||||
|
|
||||||
|
pNet = Abc_FrameReadNtk(pAbc);
|
||||||
|
pOut = Abc_FrameReadOut(pAbc);
|
||||||
|
pErr = Abc_FrameReadErr(pAbc);
|
||||||
|
|
||||||
|
// set the defaults
|
||||||
|
fVerbose = 1;
|
||||||
|
Extra_UtilGetoptReset();
|
||||||
|
while ( (c = Extra_UtilGetopt(argc, argv, "vh")) != EOF )
|
||||||
|
{
|
||||||
|
switch (c)
|
||||||
|
{
|
||||||
|
case 'v':
|
||||||
|
fVerbose ^= 1;
|
||||||
|
break;
|
||||||
|
case 'h':
|
||||||
|
goto usage;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
goto usage;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( argc != globalUtilOptind + 1 )
|
||||||
|
goto usage;
|
||||||
|
|
||||||
|
// get the input file name
|
||||||
|
FileName = argv[globalUtilOptind];
|
||||||
|
if ( (pFile = fopen( FileName, "r" )) == NULL )
|
||||||
|
{
|
||||||
|
fprintf( pErr, "Cannot open input file \"%s\". ", FileName );
|
||||||
|
if ( (FileName = Extra_FileGetSimilarName( FileName, ".genlib", ".lib", ".gen", ".g", NULL )) )
|
||||||
|
fprintf( pErr, "Did you mean \"%s\"?", FileName );
|
||||||
|
fprintf( pErr, "\n" );
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
fclose( pFile );
|
||||||
|
|
||||||
|
// set the new network
|
||||||
|
pLib = If_LibBoxRead( FileName );
|
||||||
|
if ( pLib == NULL )
|
||||||
|
{
|
||||||
|
fprintf( pErr, "Reading LUT library has failed.\n" );
|
||||||
|
goto usage;
|
||||||
|
}
|
||||||
|
// replace the current library
|
||||||
|
If_LibBoxFree( (If_LibBox_t *)Abc_FrameReadLibBox() );
|
||||||
|
Abc_FrameSetLibBox( pLib );
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
usage:
|
||||||
|
fprintf( pErr, "\nusage: read_box [-vh]\n");
|
||||||
|
fprintf( pErr, "\t read the box library from the file\n" );
|
||||||
|
fprintf( pErr, "\t-v : toggles enabling of verbose output [default = %s]\n", (fVerbose? "yes" : "no") );
|
||||||
|
fprintf( pErr, "\t-h : print the command usage\n");
|
||||||
|
return 1; /* error exit */
|
||||||
|
}
|
||||||
|
|
||||||
|
/**Function*************************************************************
|
||||||
|
|
||||||
|
Synopsis [Command procedure to read LUT libraries.]
|
||||||
|
|
||||||
|
Description []
|
||||||
|
|
||||||
|
SideEffects []
|
||||||
|
|
||||||
|
SeeAlso []
|
||||||
|
|
||||||
|
***********************************************************************/
|
||||||
|
int If_CommandPrintBox( Abc_Frame_t * pAbc, int argc, char **argv )
|
||||||
|
{
|
||||||
|
FILE * pOut, * pErr;
|
||||||
|
Abc_Ntk_t * pNet;
|
||||||
|
int fVerbose;
|
||||||
|
int c;
|
||||||
|
|
||||||
|
pNet = Abc_FrameReadNtk(pAbc);
|
||||||
|
pOut = Abc_FrameReadOut(pAbc);
|
||||||
|
pErr = Abc_FrameReadErr(pAbc);
|
||||||
|
|
||||||
|
// set the defaults
|
||||||
|
fVerbose = 1;
|
||||||
|
Extra_UtilGetoptReset();
|
||||||
|
while ( (c = Extra_UtilGetopt(argc, argv, "vh")) != EOF )
|
||||||
|
{
|
||||||
|
switch (c)
|
||||||
|
{
|
||||||
|
case 'v':
|
||||||
|
fVerbose ^= 1;
|
||||||
|
break;
|
||||||
|
case 'h':
|
||||||
|
goto usage;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
goto usage;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( argc != globalUtilOptind )
|
||||||
|
goto usage;
|
||||||
|
|
||||||
|
// set the new network
|
||||||
|
If_LibBoxPrint( stdout, (If_LibBox_t *)Abc_FrameReadLibBox() );
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
usage:
|
||||||
|
fprintf( pErr, "\nusage: print_box [-vh]\n");
|
||||||
|
fprintf( pErr, "\t print the current box library\n" );
|
||||||
|
fprintf( pErr, "\t-v : toggles enabling of verbose output [default = %s]\n", (fVerbose? "yes" : "no") );
|
||||||
|
fprintf( pErr, "\t-h : print the command usage\n");
|
||||||
|
return 1; /* error exit */
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////
|
||||||
|
/// END OF FILE ///
|
||||||
|
////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
ABC_NAMESPACE_IMPL_END
|
||||||
|
|
||||||
|
|
@ -0,0 +1,254 @@
|
||||||
|
/**CFile****************************************************************
|
||||||
|
|
||||||
|
FileName [ifLibBox.c]
|
||||||
|
|
||||||
|
SystemName [ABC: Logic synthesis and verification system.]
|
||||||
|
|
||||||
|
PackageName [FPGA mapping based on priority cuts.]
|
||||||
|
|
||||||
|
Synopsis [Box library.]
|
||||||
|
|
||||||
|
Author [Alan Mishchenko]
|
||||||
|
|
||||||
|
Affiliation [UC Berkeley]
|
||||||
|
|
||||||
|
Date [Ver. 1.0. Started - November 21, 2006.]
|
||||||
|
|
||||||
|
Revision [$Id: ifLibBox.c,v 1.00 2006/11/21 00:00:00 alanmi Exp $]
|
||||||
|
|
||||||
|
***********************************************************************/
|
||||||
|
|
||||||
|
#include "if.h"
|
||||||
|
#include "misc/extra/extra.h"
|
||||||
|
|
||||||
|
ABC_NAMESPACE_IMPL_START
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////
|
||||||
|
/// DECLARATIONS ///
|
||||||
|
////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#define If_LibBoxForEachBox( p, pBox, i ) \
|
||||||
|
Vec_PtrForEachEntry( If_Box_t *, p->vBoxes, pBox, i ) if ( pBox == NULL ) {} else
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////
|
||||||
|
/// FUNCTION DEFINITIONS ///
|
||||||
|
////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
/**Function*************************************************************
|
||||||
|
|
||||||
|
Synopsis []
|
||||||
|
|
||||||
|
Description []
|
||||||
|
|
||||||
|
SideEffects []
|
||||||
|
|
||||||
|
SeeAlso []
|
||||||
|
|
||||||
|
***********************************************************************/
|
||||||
|
If_Box_t * If_BoxStart( char * pName, int Id, int fWhite, int nPis, int nPos )
|
||||||
|
{
|
||||||
|
If_Box_t * p;
|
||||||
|
p = ABC_CALLOC( If_Box_t, 1 );
|
||||||
|
p->pName = pName; // consumes memory
|
||||||
|
p->Id = Id;
|
||||||
|
p->fWhite = fWhite;
|
||||||
|
p->nPis = nPis;
|
||||||
|
p->nPos = nPos;
|
||||||
|
p->pDelays = ABC_CALLOC( int, nPis * nPos );
|
||||||
|
return p;
|
||||||
|
}
|
||||||
|
If_Box_t * If_BoxDup( If_Box_t * p )
|
||||||
|
{
|
||||||
|
If_Box_t * pNew = NULL;
|
||||||
|
return pNew;
|
||||||
|
}
|
||||||
|
void If_BoxFree( If_Box_t * p )
|
||||||
|
{
|
||||||
|
ABC_FREE( p->pDelays );
|
||||||
|
ABC_FREE( p->pName );
|
||||||
|
ABC_FREE( p );
|
||||||
|
}
|
||||||
|
|
||||||
|
/**Function*************************************************************
|
||||||
|
|
||||||
|
Synopsis []
|
||||||
|
|
||||||
|
Description []
|
||||||
|
|
||||||
|
SideEffects []
|
||||||
|
|
||||||
|
SeeAlso []
|
||||||
|
|
||||||
|
***********************************************************************/
|
||||||
|
If_LibBox_t * If_LibBoxStart()
|
||||||
|
{
|
||||||
|
If_LibBox_t * p;
|
||||||
|
p = ABC_CALLOC( If_LibBox_t, 1 );
|
||||||
|
p->vBoxes = Vec_PtrAlloc( 100 );
|
||||||
|
return p;
|
||||||
|
}
|
||||||
|
If_LibBox_t * If_LibBoxDup( If_Box_t * p )
|
||||||
|
{
|
||||||
|
If_LibBox_t * pNew = NULL;
|
||||||
|
return pNew;
|
||||||
|
}
|
||||||
|
void If_LibBoxFree( If_LibBox_t * p )
|
||||||
|
{
|
||||||
|
If_Box_t * pBox;
|
||||||
|
int i;
|
||||||
|
if ( p == NULL )
|
||||||
|
return;
|
||||||
|
If_LibBoxForEachBox( p, pBox, i )
|
||||||
|
If_BoxFree( pBox );
|
||||||
|
Vec_PtrFree( p->vBoxes );
|
||||||
|
ABC_FREE( p );
|
||||||
|
}
|
||||||
|
|
||||||
|
/**Function*************************************************************
|
||||||
|
|
||||||
|
Synopsis []
|
||||||
|
|
||||||
|
Description []
|
||||||
|
|
||||||
|
SideEffects []
|
||||||
|
|
||||||
|
SeeAlso []
|
||||||
|
|
||||||
|
***********************************************************************/
|
||||||
|
If_Box_t * If_LibBoxReadBox( If_LibBox_t * p, int Id )
|
||||||
|
{
|
||||||
|
return (If_Box_t *)Vec_PtrEntry( p->vBoxes, Id );
|
||||||
|
}
|
||||||
|
void If_LibBoxAdd( If_LibBox_t * p, If_Box_t * pBox )
|
||||||
|
{
|
||||||
|
if ( pBox->Id >= Vec_PtrSize(p->vBoxes) )
|
||||||
|
Vec_PtrFillExtra( p->vBoxes, 2 * pBox->Id + 10, NULL );
|
||||||
|
assert( Vec_PtrEntry( p->vBoxes, pBox->Id ) == NULL );
|
||||||
|
Vec_PtrWriteEntry( p->vBoxes, pBox->Id, pBox );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**Function*************************************************************
|
||||||
|
|
||||||
|
Synopsis []
|
||||||
|
|
||||||
|
Description []
|
||||||
|
|
||||||
|
SideEffects []
|
||||||
|
|
||||||
|
SeeAlso []
|
||||||
|
|
||||||
|
***********************************************************************/
|
||||||
|
char * If_LibBoxGetToken( FILE * pFile )
|
||||||
|
{
|
||||||
|
static char pBuffer[1000];
|
||||||
|
char c, * pTemp = pBuffer;
|
||||||
|
while ( (c = fgetc(pFile)) != EOF )
|
||||||
|
{
|
||||||
|
if ( c == '#' )
|
||||||
|
{
|
||||||
|
while ( (c = fgetc(pFile)) != EOF )
|
||||||
|
if ( c == '\n' )
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if ( c == ' ' || c == '\t' || c == '\n' || c == '\r' )
|
||||||
|
{
|
||||||
|
if ( pTemp > pBuffer )
|
||||||
|
break;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
*pTemp++ = c;
|
||||||
|
}
|
||||||
|
*pTemp = 0;
|
||||||
|
return pTemp > pBuffer ? pBuffer : NULL;
|
||||||
|
}
|
||||||
|
If_LibBox_t * If_LibBoxRead( char * pFileName )
|
||||||
|
{
|
||||||
|
FILE * pFile;
|
||||||
|
If_LibBox_t * p;
|
||||||
|
If_Box_t * pBox;
|
||||||
|
char * pToken;
|
||||||
|
char * pName;
|
||||||
|
int i, Id, fWhite, nPis, nPos;
|
||||||
|
pFile = fopen( pFileName, "rb" );
|
||||||
|
if ( pFile == NULL )
|
||||||
|
{
|
||||||
|
printf( "Cannot open file \"%s\".\n", pFileName );
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
// get the library name
|
||||||
|
pToken = If_LibBoxGetToken( pFile );
|
||||||
|
if ( pToken == NULL )
|
||||||
|
{
|
||||||
|
printf( "Cannot read library name from file \"%s\".\n", pFileName );
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
// create library
|
||||||
|
p = If_LibBoxStart();
|
||||||
|
while ( pToken )
|
||||||
|
{
|
||||||
|
// save name
|
||||||
|
pName = Abc_UtilStrsav(pToken);
|
||||||
|
// save ID
|
||||||
|
pToken = If_LibBoxGetToken( pFile );
|
||||||
|
Id = atoi( pToken );
|
||||||
|
// save white/black
|
||||||
|
pToken = If_LibBoxGetToken( pFile );
|
||||||
|
fWhite = atoi( pToken );
|
||||||
|
// save PIs
|
||||||
|
pToken = If_LibBoxGetToken( pFile );
|
||||||
|
nPis = atoi( pToken );
|
||||||
|
// save POs
|
||||||
|
pToken = If_LibBoxGetToken( pFile );
|
||||||
|
nPos = atoi( pToken );
|
||||||
|
// create box
|
||||||
|
pBox = If_BoxStart( pName, Id, fWhite, nPis, nPos );
|
||||||
|
If_LibBoxAdd( p, pBox );
|
||||||
|
// read the table
|
||||||
|
for ( i = 0; i < nPis * nPos; i++ )
|
||||||
|
{
|
||||||
|
pToken = If_LibBoxGetToken( pFile );
|
||||||
|
pBox->pDelays[i] = (pToken[0] == '-') ? -1 : atoi(pToken);
|
||||||
|
}
|
||||||
|
// extract next name
|
||||||
|
pToken = If_LibBoxGetToken( pFile );
|
||||||
|
}
|
||||||
|
fclose( pFile );
|
||||||
|
return p;
|
||||||
|
}
|
||||||
|
void If_LibBoxPrint( FILE * pFile, If_LibBox_t * p )
|
||||||
|
{
|
||||||
|
If_Box_t * pBox;
|
||||||
|
int i, j, k;
|
||||||
|
fprintf( pFile, "# Box library written by ABC on %s.\n", Extra_TimeStamp() );
|
||||||
|
If_LibBoxForEachBox( p, pBox, i )
|
||||||
|
{
|
||||||
|
fprintf( pFile, "%s %d %d %d %d\n", pBox->pName, pBox->Id, pBox->fWhite, pBox->nPis, pBox->nPos );
|
||||||
|
for ( j = 0; j < pBox->nPos; j++, printf("\n") )
|
||||||
|
for ( k = 0; k < pBox->nPis; k++ )
|
||||||
|
if ( pBox->pDelays[j * pBox->nPis + k] == -1 )
|
||||||
|
fprintf( pFile, " - " );
|
||||||
|
else
|
||||||
|
fprintf( pFile, "%5d ", pBox->pDelays[j * pBox->nPis + k] );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
void If_LibBoxWrite( char * pFileName, If_LibBox_t * p )
|
||||||
|
{
|
||||||
|
FILE * pFile;
|
||||||
|
pFile = fopen( pFileName, "wb" );
|
||||||
|
if ( pFile == NULL )
|
||||||
|
{
|
||||||
|
printf( "Cannot open file \"%s\".\n", pFileName );
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
If_LibBoxPrint( pFile, p );
|
||||||
|
fclose( pFile );
|
||||||
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////
|
||||||
|
/// END OF FILE ///
|
||||||
|
////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
ABC_NAMESPACE_IMPL_END
|
||||||
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
/**CFile****************************************************************
|
/**CFile****************************************************************
|
||||||
|
|
||||||
FileName [ifLib.c]
|
FileName [ifLibLut.c]
|
||||||
|
|
||||||
SystemName [ABC: Logic synthesis and verification system.]
|
SystemName [ABC: Logic synthesis and verification system.]
|
||||||
|
|
||||||
|
|
@ -14,7 +14,7 @@
|
||||||
|
|
||||||
Date [Ver. 1.0. Started - November 21, 2006.]
|
Date [Ver. 1.0. Started - November 21, 2006.]
|
||||||
|
|
||||||
Revision [$Id: ifLib.c,v 1.00 2006/11/21 00:00:00 alanmi Exp $]
|
Revision [$Id: ifLibLut.c,v 1.00 2006/11/21 00:00:00 alanmi Exp $]
|
||||||
|
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
|
|
||||||
|
|
@ -276,7 +276,7 @@ int If_LutLibDelaysAreDifferent( If_Lib_t * pLutLib )
|
||||||
SeeAlso []
|
SeeAlso []
|
||||||
|
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
If_Lib_t * If_SetSimpleLutLib( int nLutSize )
|
If_Lib_t * If_LutLibSetSimple( int nLutSize )
|
||||||
{
|
{
|
||||||
If_Lib_t s_LutLib10= { "lutlib",10, 0, {0,1,1,1,1,1,1,1,1,1,1}, {{0},{1},{1},{1},{1},{1},{1},{1},{1},{1},{1}} };
|
If_Lib_t s_LutLib10= { "lutlib",10, 0, {0,1,1,1,1,1,1,1,1,1,1}, {{0},{1},{1},{1},{1},{1},{1},{1},{1},{1},{1}} };
|
||||||
If_Lib_t s_LutLib9 = { "lutlib", 9, 0, {0,1,1,1,1,1,1,1,1,1}, {{0},{1},{1},{1},{1},{1},{1},{1},{1},{1}} };
|
If_Lib_t s_LutLib9 = { "lutlib", 9, 0, {0,1,1,1,1,1,1,1,1,1}, {{0},{1},{1},{1},{1},{1},{1},{1},{1},{1}} };
|
||||||
|
|
@ -1,10 +1,12 @@
|
||||||
SRC += src/map/if/ifCore.c \
|
SRC += src/map/if/ifCom.c \
|
||||||
|
src/map/if/ifCore.c \
|
||||||
src/map/if/ifCut.c \
|
src/map/if/ifCut.c \
|
||||||
src/map/if/ifDec07.c \
|
src/map/if/ifDec07.c \
|
||||||
src/map/if/ifDec08.c \
|
src/map/if/ifDec08.c \
|
||||||
src/map/if/ifDec10.c \
|
src/map/if/ifDec10.c \
|
||||||
src/map/if/ifDec16.c \
|
src/map/if/ifDec16.c \
|
||||||
src/map/if/ifLib.c \
|
src/map/if/ifLibBox.c \
|
||||||
|
src/map/if/ifLibLut.c \
|
||||||
src/map/if/ifMan.c \
|
src/map/if/ifMan.c \
|
||||||
src/map/if/ifMap.c \
|
src/map/if/ifMap.c \
|
||||||
src/map/if/ifReduce.c \
|
src/map/if/ifReduce.c \
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue