abc-master
|
#include "mapperInt.h"
Go to the source code of this file.
Data Structures | |
struct | Map_CutTableStrutct_t |
Macros | |
#define | MAP_CUTS_MAX_COMPUTE 1000 |
DECLARATIONS ///. More... | |
#define | MAP_CUTS_MAX_USE 250 |
#define | Map_ListForEachCut(pList, pCut) |
#define | Map_ListForEachCutSafe(pList, pCut, pCut2) |
Typedefs | |
typedef struct Map_CutTableStrutct_t | Map_CutTable_t |
Variables | |
static int | s_HashPrimes [10] = { 109, 499, 557, 619, 631, 709, 797, 881, 907, 991 } |
#define MAP_CUTS_MAX_COMPUTE 1000 |
DECLARATIONS ///.
CFile****************************************************************
FileName [mapperCut.c]
PackageName [MVSIS 1.3: Multi-valued logic synthesis system.]
Synopsis [Generic technology mapping engine.]
Author [MVSIS Group]
Affiliation [UC Berkeley]
Date [Ver. 2.0. Started - June 1, 2004.]
Revision [
]
Definition at line 29 of file mapperCut.c.
#define MAP_CUTS_MAX_USE 250 |
Definition at line 31 of file mapperCut.c.
#define Map_ListForEachCut | ( | pList, | |
pCut | |||
) |
Definition at line 74 of file mapperCut.c.
#define Map_ListForEachCutSafe | ( | pList, | |
pCut, | |||
pCut2 | |||
) |
Definition at line 78 of file mapperCut.c.
typedef struct Map_CutTableStrutct_t Map_CutTable_t |
Definition at line 34 of file mapperCut.c.
Function*************************************************************
Synopsis [Moves the nodes from the array into the list.]
Description []
SideEffects []
SeeAlso []
Definition at line 1056 of file mapperCut.c.
|
static |
Function*************************************************************
Synopsis [Checks whether the given cut belongs to the list.]
Description [This procedure takes most of the runtime in the cut computation.]
SideEffects []
SeeAlso []
Definition at line 717 of file mapperCut.c.
|
static |
Function*************************************************************
Synopsis [Computes the cuts for one node.]
Description []
SideEffects []
SeeAlso []
Definition at line 225 of file mapperCut.c.
|
static |
Function*************************************************************
Synopsis [Computes the truth table of the 5-input cut.]
Description []
SideEffects []
SeeAlso []
Definition at line 1086 of file mapperCut.c.
|
static |
Function*************************************************************
Synopsis [Filter the cuts using dominance.]
Description []
SideEffects []
SeeAlso []
Definition at line 295 of file mapperCut.c.
Function*************************************************************
Synopsis [Moves the nodes from the list into the array.]
Description []
SideEffects []
SeeAlso []
Definition at line 1037 of file mapperCut.c.
|
static |
Function*************************************************************
Synopsis [Prints the cuts in the list.]
Description []
SideEffects []
SeeAlso []
Definition at line 744 of file mapperCut.c.
|
static |
Function*************************************************************
Synopsis [Prints the cuts in the list.]
Description []
SideEffects []
SeeAlso []
Definition at line 766 of file mapperCut.c.
|
static |
Function*************************************************************
Synopsis [Merges two lists of cuts.]
Description []
SideEffects []
SeeAlso []
Definition at line 345 of file mapperCut.c.
Map_Cut_t* Map_CutMergeLists2 | ( | Map_Man_t * | p, |
Map_CutTable_t * | pTable, | ||
Map_Cut_t * | pList1, | ||
Map_Cut_t * | pList2, | ||
int | fComp1, | ||
int | fComp2 | ||
) |
Function*************************************************************
Synopsis [Merges two lists of cuts.]
Description []
SideEffects []
SeeAlso []
Definition at line 522 of file mapperCut.c.
|
static |
Function*************************************************************
Synopsis [Merges two cuts.]
Description [Returns the number of nodes in the resulting cut, or 0 if the cut is infeasible. Returns the resulting nodes in the array ppNodes[].]
SideEffects []
SeeAlso []
Definition at line 589 of file mapperCut.c.
|
static |
Function*************************************************************
Synopsis [Prints the cut.]
Description []
SideEffects []
SeeAlso []
Definition at line 788 of file mapperCut.c.
|
static |
Function*************************************************************
Synopsis [Sorts the cuts by average arrival time.]
Description []
SideEffects []
SeeAlso []
Definition at line 1000 of file mapperCut.c.
Function*************************************************************
Synopsis [Compares the cuts by the number of leaves and then by delay.]
Description []
SideEffects []
SeeAlso []
Definition at line 980 of file mapperCut.c.
|
static |
Function*************************************************************
Synopsis [Starts the hash table to canonicize cuts.]
Description [Considers addition of the cut to the hash table.]
SideEffects []
SeeAlso []
Definition at line 919 of file mapperCut.c.
|
static |
Function*************************************************************
Synopsis [Computes the hash value of the cut.]
Description []
SideEffects []
SeeAlso []
Definition at line 864 of file mapperCut.c.
|
static |
Function*************************************************************
Synopsis [Looks up the table for the available cut.]
Description [Returns -1 if the same cut is found. Returns the index of the cell where the cut should be added, if it does not exist.]
SideEffects []
SeeAlso []
Definition at line 886 of file mapperCut.c.
|
static |
Function*************************************************************
Synopsis [Prepares the table to be used with other cuts.]
Description [Restarts the table by cleaning the info about cuts stored when the previous node was considered.]
SideEffects []
SeeAlso []
Definition at line 956 of file mapperCut.c.
|
static |
Function*************************************************************
Synopsis [Starts the hash table to canonicize cuts.]
Description []
SideEffects []
SeeAlso []
Definition at line 816 of file mapperCut.c.
|
static |
Function*************************************************************
Synopsis [Stops the hash table.]
Description []
SideEffects []
SeeAlso []
Definition at line 843 of file mapperCut.c.
Function*************************************************************
Synopsis [Computes the union of the two lists of cuts.]
Description []
SideEffects []
SeeAlso []
Definition at line 690 of file mapperCut.c.
int Map_MappingCountAllCuts | ( | Map_Man_t * | pMan | ) |
FUNCTION DEFINITIONS ///.
Function*************************************************************
Synopsis [Counts all the cuts.]
Description []
SideEffects []
SeeAlso []
Definition at line 100 of file mapperCut.c.
void Map_MappingCuts | ( | Map_Man_t * | p | ) |
GLOBAL VARIABLES ///.
FUNCTION DEFINITIONS ///
Definition at line 172 of file mapperCut.c.
void Map_MappingCutsInput | ( | Map_Man_t * | p, |
Map_Node_t * | pNode | ||
) |
Function*************************************************************
Synopsis [Computes the cuts for each node in the object graph.]
Description [The cuts are computed in one sweep over the mapping graph. First, the elementary cuts, which include the node itself, are assigned to the PI nodes. The internal nodes are considered in the DFS order. Each node is two-input AND-gate. So to compute the cuts at a node, we need to merge the sets of cuts of its two predecessors. The merged set contains only unique cuts with the number of inputs equal to k or less. Finally, the elementary cut, composed of the node itself, is added to the set of cuts for the node.
This procedure is pretty fast for 5-feasible cuts, but it dramatically slows down on some "dense" networks when computing 6-feasible cuts. The problem is that there are too many cuts in this case. We should think how to heuristically trim the number of cuts in such cases, to have reasonable runtime.]
SideEffects []
SeeAlso []
Definition at line 158 of file mapperCut.c.
|
static |
Definition at line 47 of file mapperCut.c.