Main Page | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

oagFpga::FpgaMapper Class Reference

A cut-based mapper. More...

#include <oagFpgaMapper.h>

Collaboration diagram for oagFpga::FpgaMapper:

Collaboration graph
[legend]
List of all members.

Main mapping routines

 FpgaMapper (int cutsPerNode)
void techmapDelay (oa::oaModule *target)
void techmapArea (oa::oaModule *target)
MapperUtils mapUtils

Simulation and matching

void addTrivialGates ()
void initializeSimulation ()
void simulate (oa::oaDesign *design, TableEntry &outResult, AiModRef &out, vector< AiModRef > cut)
int cutsPerNode
unsigned int exhaustiveInputVectors [MAX_CUT_SIZE][TableEntry::MAX_WORDS]

Intermediate Mapping State

double getCumulativeAreaCost (AiModGraph::Cut *cut, TableEntry *choice)
double getCumulativeDelayCost (AiModGraph::Cut *cut, TableEntry *choice)
map< AiModRef, TableEntry * > choice_p
map< AiModRef, TableEntry * > choice_n
map< AiModRef, AiModGraph::Cutcut_p
map< AiModRef, AiModGraph::Cutcut_n
map< AiModRef, double > cost_p
map< AiModRef, double > cost_n
map< AiModRef, oa::oaModBitNet * > mapped
double totalArea
double totalDelay
int gateCount
int seqCount

Library information

void setAreaCosts ()
void setDelayCosts ()
TableEntry notEntry
TableEntry constantZeroEntry

Public Types

enum  TriggerType { POSEDGE, NEGEDGE }

Protected Member Functions

Implementing concrete structures
void implementAll (oa::oaModule *target)
oa::oaModInst * implementSeqNode (AiModRef x)
oa::oaModBitNet * implementNode (AiModRef x)

Detailed Description

A cut-based mapper.

Implements the abstract functionality inside of a module using a set of concrete library cells. The matching is Boolean and cut-based and is accomplished by generating and matching exhaustive truth-tables for the library gates and for small slices of the target design.

First, a set of library cells need to be provided through the addLibraryGate method. These cells should be (i) combinational (ii) have a single output (iii) have at most MAX_CUT_SIZE inputs each. One of the cells must also be an inverter (it will be detected automatically).

Once the library is initialized, the target design can be mapped using one the available techmap() routines.

If the design had any pre-existing hierarchy, it will be left untouched. Only abstract functionality implemented within this module itself will be mapped. If this is not the desired behavior, consider flattening the design first (i.e. oagFpga::collapseAllInstancesAllLevels()).

Definition at line 40 of file oagFpgaMapper.h.


Member Enumeration Documentation

enum oagFpga::FpgaMapper::TriggerType
 

Enumeration values:
POSEDGE 
NEGEDGE 

Definition at line 112 of file oagFpgaMapper.h.


Constructor & Destructor Documentation

oagFpga::FpgaMapper::FpgaMapper int  cutsPerNode  ) 
 


Member Function Documentation

void oagFpga::FpgaMapper::addTrivialGates  )  [protected]
 

double oagFpga::FpgaMapper::getCumulativeAreaCost AiModGraph::Cut cut,
TableEntry *  choice
[protected]
 

double oagFpga::FpgaMapper::getCumulativeDelayCost AiModGraph::Cut cut,
TableEntry *  choice
[protected]
 

void oagFpga::FpgaMapper::implementAll oa::oaModule *  target  )  [protected]
 

oa::oaModBitNet* oagFpga::FpgaMapper::implementNode AiModRef  x  )  [protected]
 

oa::oaModInst* oagFpga::FpgaMapper::implementSeqNode AiModRef  x  )  [protected]
 

void oagFpga::FpgaMapper::initializeSimulation  )  [protected]
 

void oagFpga::FpgaMapper::setAreaCosts  )  [protected]
 

void oagFpga::FpgaMapper::setDelayCosts  )  [protected]
 

void oagFpga::FpgaMapper::simulate oa::oaDesign *  design,
TableEntry &  outResult,
AiModRef out,
vector< AiModRef cut
[protected]
 

void oagFpga::FpgaMapper::techmapArea oa::oaModule *  target  ) 
 

Referenced by oagFpga::lutMap().

void oagFpga::FpgaMapper::techmapDelay oa::oaModule *  target  ) 
 

Referenced by oagFpga::lutMap().


Member Data Documentation

map<AiModRef,TableEntry *> oagFpga::FpgaMapper::choice_n [protected]
 

Definition at line 155 of file oagFpgaMapper.h.

map<AiModRef,TableEntry *> oagFpga::FpgaMapper::choice_p [protected]
 

Definition at line 155 of file oagFpgaMapper.h.

TableEntry oagFpga::FpgaMapper::constantZeroEntry [protected]
 

Definition at line 186 of file oagFpgaMapper.h.

map<AiModRef,double> oagFpga::FpgaMapper::cost_n [protected]
 

Definition at line 157 of file oagFpgaMapper.h.

map<AiModRef,double> oagFpga::FpgaMapper::cost_p [protected]
 

Definition at line 157 of file oagFpgaMapper.h.

map<AiModRef,AiModGraph::Cut> oagFpga::FpgaMapper::cut_n [protected]
 

Definition at line 156 of file oagFpgaMapper.h.

map<AiModRef,AiModGraph::Cut> oagFpga::FpgaMapper::cut_p [protected]
 

Definition at line 156 of file oagFpgaMapper.h.

int oagFpga::FpgaMapper::cutsPerNode [protected]
 

Definition at line 137 of file oagFpgaMapper.h.

unsigned int oagFpga::FpgaMapper::exhaustiveInputVectors[MAX_CUT_SIZE][TableEntry::MAX_WORDS] [protected]
 

Definition at line 147 of file oagFpgaMapper.h.

int oagFpga::FpgaMapper::gateCount [protected]
 

Definition at line 161 of file oagFpgaMapper.h.

map<AiModRef,oa::oaModBitNet*> oagFpga::FpgaMapper::mapped [protected]
 

Definition at line 158 of file oagFpgaMapper.h.

MapperUtils oagFpga::FpgaMapper::mapUtils
 

Definition at line 127 of file oagFpgaMapper.h.

Referenced by oagFpga::lutMap().

TableEntry oagFpga::FpgaMapper::notEntry [protected]
 

Definition at line 185 of file oagFpgaMapper.h.

int oagFpga::FpgaMapper::seqCount [protected]
 

Definition at line 162 of file oagFpgaMapper.h.

double oagFpga::FpgaMapper::totalArea [protected]
 

Definition at line 160 of file oagFpgaMapper.h.

double oagFpga::FpgaMapper::totalDelay [protected]
 

Definition at line 160 of file oagFpgaMapper.h.


The documentation for this class was generated from the following file:
Generated on Mon Jul 9 14:17:22 2007 for OA Gear Fpga by  doxygen 1.3.9.1