summaryrefslogtreecommitdiffstats
path: root/src/map/mapper/mapperMatch.c
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2013-07-29 10:10:21 -0700
committerAlan Mishchenko <alanmi@berkeley.edu>2013-07-29 10:10:21 -0700
commit4c6804c3aea08f6aec693c686ec409191e983ca4 (patch)
treef0153e44ffd69a9e576084157a21929f3e512a53 /src/map/mapper/mapperMatch.c
parenta206287b21632331eb6c433a8c1854a6baecbe40 (diff)
downloadabc-4c6804c3aea08f6aec693c686ec409191e983ca4.tar.gz
abc-4c6804c3aea08f6aec693c686ec409191e983ca4.tar.bz2
abc-4c6804c3aea08f6aec693c686ec409191e983ca4.zip
Improved gate-sizing.
Diffstat (limited to 'src/map/mapper/mapperMatch.c')
-rw-r--r--src/map/mapper/mapperMatch.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/map/mapper/mapperMatch.c b/src/map/mapper/mapperMatch.c
index 6a2ad74a..a59af3d3 100644
--- a/src/map/mapper/mapperMatch.c
+++ b/src/map/mapper/mapperMatch.c
@@ -199,6 +199,9 @@ int Map_MatchNodePhase( Map_Man_t * p, Map_Node_t * pNode, int fPhase )
fWorstLimit = pNode->tRequired[fPhase].Worst;
for ( pCut = pNode->pCuts->pNext; pCut; pCut = pCut->pNext )
{
+ // limit gate sizes based on fanout count
+ if ( (pNode->nRefs > 8 && pCut->nLeaves > 2) || (pNode->nRefs > 4 && pCut->nLeaves > 3) )
+ continue;
pMatch = pCut->M + fPhase;
if ( pMatch->pSupers == NULL )
continue;