53 int fShowSwitching = 1;
57 float * pSwitching = NULL;
64 Abc_Print( 0,
"Performing LUT mapping with %d choices.\n", Num );
67 fShowSwitching |= fSwitching;
72 pSwitching = (
float *)vSwitching->pArray;
76 pMan =
Abc_NtkToFpga( pNtk, fRecovery, pSwitching, fLatchPaths, fVerbose );
92 if ( pNtkNew == NULL )
105 printf(
"Abc_NtkFpga: The network check has failed.\n" );
238 printf(
"Duplicated %d gates to decouple the CO drivers.\n", nDupGates );
271 for ( i = 0; i < nLeaves; i++ )
void Fpga_ManSetAreaRecovery(Fpga_Man_t *p, int fAreaRecovery)
Fpga_Node_t ** Fpga_ManReadInputs(Fpga_Man_t *p)
static int Abc_NtkIsStrash(Abc_Ntk_t *pNtk)
typedefABC_NAMESPACE_HEADER_START struct Vec_Ptr_t_ Vec_Ptr_t
INCLUDES ///.
static Abc_Obj_t * Abc_ObjFanin1(Abc_Obj_t *pObj)
void Fpga_CutsCleanSign(Fpga_Man_t *pMan)
void Fpga_NodeSetData0(Fpga_Node_t *p, char *pData)
ABC_DLL Abc_Obj_t * Abc_AigConst1(Abc_Ntk_t *pNtk)
ABC_DLL int Abc_NtkMinimumBase(Abc_Ntk_t *pNtk)
FUNCTION DEFINITIONS ///.
void Fpga_ManSetLatchNum(Fpga_Man_t *p, int nLatches)
void Fpga_NodeSetNextE(Fpga_Node_t *p, Fpga_Node_t *pNextE)
#define Fpga_NotCond(p, c)
static int Abc_ObjFaninC1(Abc_Obj_t *pObj)
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
static int Abc_ObjFanoutNum(Abc_Obj_t *pObj)
void Fpga_ManCleanData0(Fpga_Man_t *pMan)
ABC_DLL char ** Abc_NtkCollectCioNames(Abc_Ntk_t *pNtk, int fCollectCos)
static int Abc_NtkLatchNum(Abc_Ntk_t *pNtk)
ABC_DLL Abc_Obj_t * Abc_NtkCreateNodeConst1(Abc_Ntk_t *pNtk)
static int Abc_ObjFaninC0(Abc_Obj_t *pObj)
ABC_DLL Abc_Ntk_t * Abc_NtkDup(Abc_Ntk_t *pNtk)
static int Abc_NtkCiNum(Abc_Ntk_t *pNtk)
#define Abc_NtkForEachCo(pNtk, pCo, i)
ABC_DLL int Abc_NtkCheck(Abc_Ntk_t *pNtk)
FUNCTION DEFINITIONS ///.
Fpga_Node_t * Fpga_ManReadConst1(Fpga_Man_t *p)
Abc_Ntk_t * Abc_NtkFpga(Abc_Ntk_t *pNtk, float DelayTarget, int fRecovery, int fSwitching, int fLatchPaths, int fVerbose)
FUNCTION DEFINITIONS ///.
void Fpga_NodeSetSwitching(Fpga_Node_t *p, float Switching)
static Abc_Obj_t * Abc_ObjFanin0(Abc_Obj_t *pObj)
ABC_DLL int Abc_NtkGetChoiceNum(Abc_Ntk_t *pNtk)
static int Abc_NtkCoNum(Abc_Ntk_t *pNtk)
void Fpga_ManSetLatchPaths(Fpga_Man_t *p, int fLatchPaths)
ABC_DLL void Abc_NtkDelete(Abc_Ntk_t *pNtk)
ABC_DLL void Abc_ObjAddFanin(Abc_Obj_t *pObj, Abc_Obj_t *pFanin)
static Abc_Obj_t * Abc_NodeFromFpga_rec(Abc_Ntk_t *pNtkNew, Fpga_Node_t *pNodeFpga)
void Fpga_NodeSetRepr(Fpga_Node_t *p, Fpga_Node_t *pRepr)
ABC_DLL Abc_Ntk_t * Abc_NtkStartFrom(Abc_Ntk_t *pNtk, Abc_NtkType_t Type, Abc_NtkFunc_t Func)
ABC_DLL void Abc_NtkDeleteObj(Abc_Obj_t *pObj)
void Fpga_ManSetInputArrivals(Fpga_Man_t *p, float *pArrivals)
Fpga_Cut_t * Fpga_NodeReadCutBest(Fpga_Node_t *p)
int Fpga_ManReadVerbose(Fpga_Man_t *p)
#define ABC_NAMESPACE_IMPL_END
ABC_DLL void Abc_NtkFinalize(Abc_Ntk_t *pNtk, Abc_Ntk_t *pNtkNew)
static ABC_NAMESPACE_IMPL_START Fpga_Man_t * Abc_NtkToFpga(Abc_Ntk_t *pNtk, int fRecovery, float *pSwitching, int fLatchPaths, int fVerbose)
DECLARATIONS ///.
int Fpga_Mapping(Fpga_Man_t *p)
FUNCTION DEFINITIONS ///.
Fpga_Node_t ** Fpga_ManReadOutputs(Fpga_Man_t *p)
static Abc_Ntk_t * Abc_NtkFromFpga(Fpga_Man_t *pMan, Abc_Ntk_t *pNtk)
static void Abc_Print(int level, const char *format,...)
Vec_Int_t * Sim_NtkComputeSwitching(Abc_Ntk_t *pNtk, int nPatterns)
FUNCTION DEFINITIONS ///.
ABC_DLL Vec_Ptr_t * Abc_AigDfs(Abc_Ntk_t *pNtk, int fCollectAll, int fCollectCos)
#define ABC_NAMESPACE_IMPL_START
void Fpga_ManFree(Fpga_Man_t *pMan)
int Fpga_NodeIsAnd(Fpga_Node_t *p)
Fpga_Node_t * Fpga_NodeAnd(Fpga_Man_t *p, Fpga_Node_t *p1, Fpga_Node_t *p2)
ABC_DLL int Abc_NtkLogicMakeSimpleCos(Abc_Ntk_t *pNtk, int fDuplicate)
Fpga_Node_t ** Fpga_CutReadLeaves(Fpga_Cut_t *p)
static int Abc_AigNodeIsChoice(Abc_Obj_t *pNode)
char * Fpga_NodeReadData0(Fpga_Node_t *p)
void Fpga_ManSetDelayTarget(Fpga_Man_t *p, float DelayTarget)
ABC_DLL float * Abc_NtkGetCiArrivalFloats(Abc_Ntk_t *pNtk)
#define Abc_NtkForEachCi(pNtk, pCi, i)
STRUCTURE DEFINITIONS ///.
static int Abc_NtkPiNum(Abc_Ntk_t *pNtk)
void Fpga_ManSetOutputNames(Fpga_Man_t *p, char **ppNames)
int Fpga_CutReadLeavesNum(Fpga_Cut_t *p)
static Abc_Obj_t * Abc_NtkCreateNode(Abc_Ntk_t *pNtk)
Fpga_Man_t * Fpga_ManCreate(int nInputs, int nOutputs, int fVerbose)
FUNCTION DEFINITIONS ///.
ABC_DLL void Abc_NtkCleanCopy(Abc_Ntk_t *pNtk)
void * Fpga_TruthsCutBdd(void *dd, Fpga_Cut_t *pCut)
static void Vec_IntFree(Vec_Int_t *p)
#define Vec_PtrForEachEntry(Type, vVec, pEntry, i)
MACRO DEFINITIONS ///.
void Fpga_ManSetSwitching(Fpga_Man_t *p, int fSwitching)
static int Abc_ObjIsComplement(Abc_Obj_t *p)
#define Fpga_IsComplement(p)
GLOBAL VARIABLES ///.
static void Vec_PtrFree(Vec_Ptr_t *p)