00001
00002 #if !defined(oagFpga_P)
00003 #define oagFpga_P
00004
00005 #include "oaDesignDB.h"
00006 #include "oagFpgaObserver.h"
00007 #include "oagFpgaDebug.h"
00008 #include "oagFpga.h"
00009 #include <list>
00010
00011 namespace oagFpga {
00012
00013 class ModRef;
00014 class OccRef;
00015
00016
00017
00018
00019
00020
00021
00022 extern oa::oaVarDataAppDef<oa::oaDesign> *streamAppDef;
00023 extern oa::oaVoidPointerAppDef<oa::oaDesign> *managerAppDef;
00024 extern oa::oaIntAppDef<oa::oaModBitNet> *bbRefAppDef;
00025 extern oa::oaIntAppDef<oa::oaModBitNet> *AiRefAppDef;
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038 void initialize();
00039
00042
00043 void readVerilog(oa::oaLib *library,
00044 const char *filename );
00045 void readVerilog(oa::oaLib *library,
00046 const oa::oaScalarName &viewName,
00047 const char *filename );
00048 void writeVerilog(oa::oaLib *library, oa::oaView *view,
00049 const char *filename );
00050 void writeVerilog(oa::oaDesign *design,
00051 const char *filename );
00052 void lutMap(oa::oaLib* curLib, oa::oaView* curView,
00053 oa::oaDesign *targetDesign,
00054 int lutSize, int cutsPerNode,
00055 bool flatten, char* clockNetName,
00056 char* clockTriggerName,
00057 char* resetNetName,
00058 char* resetTriggerName,
00059 char* objectiveName);
00060
00061
00062
00063
00064
00065
00066
00067
00068
00072
00073
00074
00075
00076
00081
00082
00083
00084
00085
00086
00087 inline oa::oaModBitNet* toBitNet(oa::oaModNet *net) {
00092 assert(net);
00093 assert(net->getSingleBitMembers().getCount() == 1);
00094 return net->getBit(0);
00095 }
00096
00097
00098
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113
00117
00118
00119
00120
00121
00122
00123
00125
00126 extern Observer *observer;
00127
00128 #ifdef YU_TEST
00129
00130 extern oa::oaLib* YuTestCurLib;
00131 extern oa::oaView* YuTestCurView;
00132 extern void YuTest(oa::oaLib* curLib, oa::oaView* curView, oa::oaModule* currentModule);
00133
00134 #endif // #ifdef YU_TEST
00135
00136 }
00137
00138 #endif