summaryrefslogtreecommitdiffstats
path: root/src/map/mapper/mapperCore.c
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2007-09-30 08:01:00 -0700
committerAlan Mishchenko <alanmi@berkeley.edu>2007-09-30 08:01:00 -0700
commite54d9691616b9a0326e2fdb3156bb4eeb8abfcd7 (patch)
treede3ffe87c3e17950351e3b7d97fa18318bd5ea9a /src/map/mapper/mapperCore.c
parent7d7e60f2dc84393cd4c5db22d2eaf7b1fb1a79b2 (diff)
downloadabc-e54d9691616b9a0326e2fdb3156bb4eeb8abfcd7.tar.gz
abc-e54d9691616b9a0326e2fdb3156bb4eeb8abfcd7.tar.bz2
abc-e54d9691616b9a0326e2fdb3156bb4eeb8abfcd7.zip
Version abc70930
Diffstat (limited to 'src/map/mapper/mapperCore.c')
-rw-r--r--src/map/mapper/mapperCore.c228
1 files changed, 0 insertions, 228 deletions
diff --git a/src/map/mapper/mapperCore.c b/src/map/mapper/mapperCore.c
deleted file mode 100644
index 5d4854e6..00000000
--- a/src/map/mapper/mapperCore.c
+++ /dev/null
@@ -1,228 +0,0 @@
-/**CFile****************************************************************
-
- FileName [mapperCore.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 [$Id: mapperCore.c,v 1.7 2004/10/01 23:41:04 satrajit Exp $]
-
-***********************************************************************/
-
-#include "mapperInt.h"
-//#include "resm.h"
-
-////////////////////////////////////////////////////////////////////////
-/// DECLARATIONS ///
-////////////////////////////////////////////////////////////////////////
-
-////////////////////////////////////////////////////////////////////////
-/// FUNCTION DEFINITIONS ///
-////////////////////////////////////////////////////////////////////////
-
-/**Function*************************************************************
-
- Synopsis [Performs technology mapping for the given object graph.]
-
- Description [The object graph is stored in the mapping manager.
- First, the AND nodes that fanout into POs are collected in the DFS order.
- Two preprocessing steps are performed: the k-feasible cuts are computed
- for each node and the truth tables are computed for each cut. Next, the
- delay-optimal matches are assigned for each node, followed by several
- iterations of area recoveryd: using area flow (global optimization)
- and using exact area at a node (local optimization).]
-
- SideEffects []
-
- SeeAlso []
-
-***********************************************************************/
-int Map_Mapping( Map_Man_t * p )
-{
- int fShowSwitching = 1;
- int fUseAreaFlow = 1;
- int fUseExactArea = !p->fSwitching;
- int fUseExactAreaWithPhase = !p->fSwitching;
- int clk;
-
- //////////////////////////////////////////////////////////////////////
- // perform pre-mapping computations
- // collect the nodes reachable from POs in the DFS order (including the choices)
- p->vAnds = Map_MappingDfs( p, 1 );
- if ( p->fVerbose )
- Map_MappingReportChoices( p );
- Map_MappingSetChoiceLevels( p ); // should always be called before mapping!
-// return 1;
-
- // compute the cuts of nodes in the DFS order
- clk = clock();
- Map_MappingCuts( p );
- p->timeCuts = clock() - clk;
- // derive the truth tables
- clk = clock();
- Map_MappingTruths( p );
- p->timeTruth = clock() - clk;
- //////////////////////////////////////////////////////////////////////
-//PRT( "Truths", clock() - clk );
-
- //////////////////////////////////////////////////////////////////////
- // compute the minimum-delay mapping
- clk = clock();
- p->fMappingMode = 0;
- if ( !Map_MappingMatches( p ) )
- return 0;
- p->timeMatch = clock() - clk;
- // compute the references and collect the nodes used in the mapping
- Map_MappingSetRefs( p );
- p->AreaBase = Map_MappingGetArea( p, p->vMapping );
-if ( p->fVerbose )
-{
-printf( "Delay : %s = %8.2f Flow = %11.1f Area = %11.1f %4.1f %% ",
- fShowSwitching? "Switch" : "Delay",
- fShowSwitching? Map_MappingGetSwitching(p,p->vMapping) : p->fRequiredGlo,
- Map_MappingGetAreaFlow(p), p->AreaBase, 0.0 );
-PRT( "Time", p->timeMatch );
-}
- //////////////////////////////////////////////////////////////////////
-
- if ( !p->fAreaRecovery )
- {
- if ( p->fVerbose )
- Map_MappingPrintOutputArrivals( p );
- return 1;
- }
-
- //////////////////////////////////////////////////////////////////////
- // perform area recovery using area flow
- clk = clock();
- if ( fUseAreaFlow )
- {
- // compute the required times
- Map_TimeComputeRequiredGlobal( p );
- // recover area flow
- p->fMappingMode = 1;
- Map_MappingMatches( p );
- // compute the references and collect the nodes used in the mapping
- Map_MappingSetRefs( p );
- p->AreaFinal = Map_MappingGetArea( p, p->vMapping );
-if ( p->fVerbose )
-{
-printf( "AreaFlow : %s = %8.2f Flow = %11.1f Area = %11.1f %4.1f %% ",
- fShowSwitching? "Switch" : "Delay",
- fShowSwitching? Map_MappingGetSwitching(p,p->vMapping) : p->fRequiredGlo,
- Map_MappingGetAreaFlow(p), p->AreaFinal,
- 100.0*(p->AreaBase-p->AreaFinal)/p->AreaBase );
-PRT( "Time", clock() - clk );
-}
- }
- p->timeArea += clock() - clk;
- //////////////////////////////////////////////////////////////////////
-
- //////////////////////////////////////////////////////////////////////
- // perform area recovery using exact area
- clk = clock();
- if ( fUseExactArea )
- {
- // compute the required times
- Map_TimeComputeRequiredGlobal( p );
- // recover area
- p->fMappingMode = 2;
- Map_MappingMatches( p );
- // compute the references and collect the nodes used in the mapping
- Map_MappingSetRefs( p );
- p->AreaFinal = Map_MappingGetArea( p, p->vMapping );
-if ( p->fVerbose )
-{
-printf( "Area : %s = %8.2f Flow = %11.1f Area = %11.1f %4.1f %% ",
- fShowSwitching? "Switch" : "Delay",
- fShowSwitching? Map_MappingGetSwitching(p,p->vMapping) : p->fRequiredGlo,
- 0.0, p->AreaFinal,
- 100.0*(p->AreaBase-p->AreaFinal)/p->AreaBase );
-PRT( "Time", clock() - clk );
-}
- }
- p->timeArea += clock() - clk;
- //////////////////////////////////////////////////////////////////////
-
- //////////////////////////////////////////////////////////////////////
- // perform area recovery using exact area
- clk = clock();
- if ( fUseExactAreaWithPhase )
- {
- // compute the required times
- Map_TimeComputeRequiredGlobal( p );
- // recover area
- p->fMappingMode = 3;
- Map_MappingMatches( p );
- // compute the references and collect the nodes used in the mapping
- Map_MappingSetRefs( p );
- p->AreaFinal = Map_MappingGetArea( p, p->vMapping );
-if ( p->fVerbose )
-{
-printf( "Area : %s = %8.2f Flow = %11.1f Area = %11.1f %4.1f %% ",
- fShowSwitching? "Switch" : "Delay",
- fShowSwitching? Map_MappingGetSwitching(p,p->vMapping) : p->fRequiredGlo,
- 0.0, p->AreaFinal,
- 100.0*(p->AreaBase-p->AreaFinal)/p->AreaBase );
-PRT( "Time", clock() - clk );
-}
- }
- p->timeArea += clock() - clk;
- //////////////////////////////////////////////////////////////////////
-
- //////////////////////////////////////////////////////////////////////
- // perform area recovery using exact area
- clk = clock();
- if ( p->fSwitching )
- {
- // compute the required times
- Map_TimeComputeRequiredGlobal( p );
- // recover switching activity
- p->fMappingMode = 4;
- Map_MappingMatches( p );
- // compute the references and collect the nodes used in the mapping
- Map_MappingSetRefs( p );
- p->AreaFinal = Map_MappingGetArea( p, p->vMapping );
-if ( p->fVerbose )
-{
-printf( "Switching: %s = %8.2f Flow = %11.1f Area = %11.1f %4.1f %% ",
- fShowSwitching? "Switch" : "Delay",
- fShowSwitching? Map_MappingGetSwitching(p,p->vMapping) : p->fRequiredGlo,
- 0.0, p->AreaFinal,
- 100.0*(p->AreaBase-p->AreaFinal)/p->AreaBase );
-PRT( "Time", clock() - clk );
-}
-
- // compute the required times
- Map_TimeComputeRequiredGlobal( p );
- // recover switching activity
- p->fMappingMode = 4;
- Map_MappingMatches( p );
- // compute the references and collect the nodes used in the mapping
- Map_MappingSetRefs( p );
- p->AreaFinal = Map_MappingGetArea( p, p->vMapping );
-if ( p->fVerbose )
-{
-printf( "Switching: %s = %8.2f Flow = %11.1f Area = %11.1f %4.1f %% ",
- fShowSwitching? "Switch" : "Delay",
- fShowSwitching? Map_MappingGetSwitching(p,p->vMapping) : p->fRequiredGlo,
- 0.0, p->AreaFinal,
- 100.0*(p->AreaBase-p->AreaFinal)/p->AreaBase );
-PRT( "Time", clock() - clk );
-}
- }
- p->timeArea += clock() - clk;
- //////////////////////////////////////////////////////////////////////
-
- // print the arrival times of the latest outputs
- if ( p->fVerbose )
- Map_MappingPrintOutputArrivals( p );
- return 1;
-}