当前位置: 首页>>代码示例>>C++>>正文


C++ PiSDFGraph::addInputIf方法代码示例

本文整理汇总了C++中PiSDFGraph::addInputIf方法的典型用法代码示例。如果您正苦于以下问题:C++ PiSDFGraph::addInputIf方法的具体用法?C++ PiSDFGraph::addInputIf怎么用?C++ PiSDFGraph::addInputIf使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在PiSDFGraph的用法示例。


在下文中一共展示了PiSDFGraph::addInputIf方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: CREATE

PiSDFGraph* test6_sub(Archi* archi, Stack* stack){
	PiSDFGraph* graph = CREATE(stack, PiSDFGraph)(
			/*Edges*/ 	2,
			/*Params*/	0,
			/*InIf*/	1,
			/*OutIf*/	1,
			/*Config*/	0,
			/*Normal*/	1,
			archi,
			stack);

	// Parameters.

	// Configure vertices

	// Interfaces
	PiSDFVertex *ifIn = graph->addInputIf(
			"in",
			0 /*Par*/);
	PiSDFVertex *ifOut = graph->addOutputIf(
			"out",
			0 /*Par*/);

	// Other vertices
	PiSDFVertex *vxH = graph->addBodyVertex(
			"H", /*Fct*/ 24,
			/*In*/ 1, /*Out*/ 1,
			/*Par*/ 0);

	// Edges.
	graph->connect(
			/*Src*/ ifIn, /*SrcPrt*/ 0, /*Prod*/ "2",
			/*Snk*/ vxH, /*SnkPrt*/ 0, /*Cons*/ "1",
			/*Delay*/ "0", 0);

	graph->connect(
			/*Src*/ vxH, /*SrcPrt*/ 0, /*Prod*/ "1",
			/*Snk*/ ifOut, /*SnkPrt*/ 0, /*Cons*/ "2",
			/*Delay*/ "0", 0);

	// Timings
	vxH->isExecutableOnAllPE();
	vxH->setTimingOnType(0, "10", stack);

	// Subgraphs

	return graph;
}
开发者ID:louisbob,项目名称:Spider,代码行数:48,代码来源:PiSDFTest_6.cpp

示例2: DispComp

// Method building PiSDFGraphDispComp
PiSDFGraph* DispComp(Archi* archi, Stack* stack) {
    PiSDFGraph* graph = CREATE(stack, PiSDFGraph)(
                            /*Edges*/    10,
                            /*Params*/   8,
                            /*InputIf*/  5,
                            /*OutputIf*/ 1,
                            /*Config*/   0,
                            /*Body*/     3,
                            /*Archi*/    archi,
                            /*Stack*/    stack);

    /* Parameters */
    PiSDFParam *param_height = graph->addHeritedParam("height", 0);
    PiSDFParam *param_width = graph->addHeritedParam("width", 1);
    PiSDFParam *param_nIter = graph->addHeritedParam("nIter", 2);
    PiSDFParam *param_scale = graph->addHeritedParam("scale", 3);
    PiSDFParam *param_minDisp = graph->addHeritedParam("minDisp", 4);
    PiSDFParam *param_maxDisp = graph->addHeritedParam("maxDisp", 5);
    PiSDFParam *param_size = graph->addDependentParam("size", "height*width");
    PiSDFParam *param_nDisp = graph->addDependentParam("nDisp", "maxDisp-minDisp+1");

    /* Vertices */
    PiSDFVertex* bo_AggregateCost = graph->addBodyVertex(
                                        /*Name*/    "AggregateCost",
                                        /*FctId*/   DISPCOMP_AGGREGATECOST_FCT,
                                        /*InData*/  4,
                                        /*OutData*/ 1,
                                        /*InParam*/ 3);
    bo_AggregateCost->addInParam(0, param_height);
    bo_AggregateCost->addInParam(1, param_width);
    bo_AggregateCost->addInParam(2, param_nIter);
//	bo_AggregateCost->isExecutableOnPE(CORE_ARM0);
    bo_AggregateCost->isExecutableOnPE(CORE_DSP0);
    bo_AggregateCost->isExecutableOnPE(CORE_DSP1);
    bo_AggregateCost->isExecutableOnPE(CORE_DSP2);
    bo_AggregateCost->isExecutableOnPE(CORE_DSP3);
    bo_AggregateCost->isExecutableOnPE(CORE_DSP4);
    bo_AggregateCost->isExecutableOnPE(CORE_DSP5);
    bo_AggregateCost->isExecutableOnPE(CORE_DSP6);
    bo_AggregateCost->isExecutableOnPE(CORE_DSP7);
    bo_AggregateCost->setTimingOnType(CORE_TYPE_C6X, "127693715", stack);
    bo_AggregateCost->setTimingOnType(CORE_TYPE_ARM, "255956368", stack);

    PiSDFVertex* bo_DisparitySelect = graph->addBodyVertex(
                                          /*Name*/    "DisparitySelect",
                                          /*FctId*/   DISPCOMP_DISPARITYSELECT_FCT,
                                          /*InData*/  4,
                                          /*OutData*/ 2,
                                          /*InParam*/ 5);
    bo_DisparitySelect->addInParam(0, param_height);
    bo_DisparitySelect->addInParam(1, param_width);
    bo_DisparitySelect->addInParam(2, param_scale);
    bo_DisparitySelect->addInParam(3, param_minDisp);
    bo_DisparitySelect->addInParam(4, param_maxDisp);
//	bo_DisparitySelect->isExecutableOnPE(CORE_ARM0);
    bo_DisparitySelect->isExecutableOnPE(CORE_DSP0);
    bo_DisparitySelect->isExecutableOnPE(CORE_DSP1);
    bo_DisparitySelect->isExecutableOnPE(CORE_DSP2);
    bo_DisparitySelect->isExecutableOnPE(CORE_DSP3);
    bo_DisparitySelect->isExecutableOnPE(CORE_DSP4);
    bo_DisparitySelect->isExecutableOnPE(CORE_DSP5);
    bo_DisparitySelect->isExecutableOnPE(CORE_DSP6);
    bo_DisparitySelect->isExecutableOnPE(CORE_DSP7);
    bo_DisparitySelect->setTimingOnType(CORE_TYPE_C6X, "43926345", stack);
    bo_DisparitySelect->setTimingOnType(CORE_TYPE_ARM, "177962862", stack);

    PiSDFVertex* bo_Br_Disp = graph->addSpecialVertex(
                                  /*Type*/    PISDF_SUBTYPE_BROADCAST,
                                  /*InData*/  1,
                                  /*OutData*/ 2,
                                  /*InParam*/ 1);
    bo_Br_Disp->addInParam(0, param_size);

    PiSDFVertex* if_rawDisparity = graph->addOutputIf(
                                       /*Name*/    "if_rawDisparity",
                                       /*InParam*/ 1);
    if_rawDisparity->addInParam(0, param_size);

    PiSDFVertex* if_offsets = graph->addInputIf(
                                  /*Name*/    "if_offsets",
                                  /*InParam*/ 2);
    if_offsets->addInParam(0, param_nDisp);
    if_offsets->addInParam(1, param_nIter);

    PiSDFVertex* if_vWeights = graph->addInputIf(
                                   /*Name*/    "if_vWeights",
                                   /*InParam*/ 2);
    if_vWeights->addInParam(0, param_size);
    if_vWeights->addInParam(1, param_nIter);

    PiSDFVertex* if_hWeights = graph->addInputIf(
                                   /*Name*/    "if_hWeights",
                                   /*InParam*/ 2);
    if_hWeights->addInParam(0, param_size);
    if_hWeights->addInParam(1, param_nIter);

    PiSDFVertex* if_dispIx = graph->addInputIf(
                                 /*Name*/    "if_dispIx",
                                 /*InParam*/ 1);
//.........这里部分代码省略.........
开发者ID:preesm,项目名称:spider,代码行数:101,代码来源:pi_stereo.cpp

示例3: CREATE

// Method building PiSDFGraphRadix2_Stage
PiSDFGraph* Radix2_Stage(Archi* archi, Stack* stack){
	PiSDFGraph* graph = CREATE(stack, PiSDFGraph)(
		/*Edges*/    8,
		/*Params*/   5,
		/*InputIf*/  2,
		/*OutputIf*/ 1,
		/*Config*/   1,
		/*Body*/     4,
		/*Archi*/    archi,
		/*Stack*/    stack);

	/* Parameters */
	PiSDFParam *param_N1 = graph->addHeritedParam("N1", 0);
	PiSDFParam *param_N2 = graph->addHeritedParam("N2", 1);
	PiSDFParam *param_n1 = graph->addHeritedParam("n1", 2);
	PiSDFParam *param_p = graph->addDynamicParam("p");
	PiSDFParam *param_nDFT2 = graph->addDependentParam("nDFT2", "N2*N1/n1/2");

	/* Vertices */
	PiSDFVertex* bo_DFT_2 = graph->addBodyVertex(
		/*Name*/    "DFT_2",
		/*FctId*/   RADIX2_STAGE_DFT_2_FCT,
		/*InData*/  3,
		/*OutData*/ 2,
		/*InParam*/ 4);
	bo_DFT_2->addInParam(0, param_n1);
	bo_DFT_2->addInParam(1, param_p);
	bo_DFT_2->addInParam(2, param_N1);
	bo_DFT_2->addInParam(3, param_N2);
//	bo_DFT_2->isExecutableOnPE(CORE_ARM1);
//	bo_DFT_2->isExecutableOnPE(CORE_ARM0);
	bo_DFT_2->isExecutableOnPE(CORE_DSP0);
	bo_DFT_2->isExecutableOnPE(CORE_DSP1);
	bo_DFT_2->isExecutableOnPE(CORE_DSP2);
	bo_DFT_2->isExecutableOnPE(CORE_DSP3);
	bo_DFT_2->isExecutableOnPE(CORE_DSP4);
	bo_DFT_2->isExecutableOnPE(CORE_DSP5);
	bo_DFT_2->isExecutableOnPE(CORE_DSP6);
	bo_DFT_2->isExecutableOnPE(CORE_DSP7);
	bo_DFT_2->setTimingOnType(CORE_TYPE_C6X, "100", stack);
	bo_DFT_2->setTimingOnType(CORE_TYPE_ARM, "100", stack);

	PiSDFVertex* if_pValue = graph->addInputIf(
		/*Name*/    "if_pValue",
		/*InParam*/ 0);

	PiSDFVertex* if_in = graph->addInputIf(
		/*Name*/    "if_in",
		/*InParam*/ 2);
	if_in->addInParam(0, param_N1);
	if_in->addInParam(1, param_N2);

	PiSDFVertex* if_out = graph->addOutputIf(
		/*Name*/    "if_out",
		/*InParam*/ 2);
	if_out->addInParam(0, param_N1);
	if_out->addInParam(1, param_N2);

	PiSDFVertex* bo_F = graph->addSpecialVertex(
		/*Type*/    PISDF_SUBTYPE_FORK,
		/*InData*/  1,
		/*OutData*/ 2,
		/*InParam*/ 2);
	bo_F->addInParam(0, param_N2);
	bo_F->addInParam(1, param_p);

	PiSDFVertex* bo_J = graph->addSpecialVertex(
		/*Type*/    PISDF_SUBTYPE_JOIN,
		/*InData*/  2,
		/*OutData*/ 1,
		/*InParam*/ 2);
	bo_J->addInParam(0, param_N2);
	bo_J->addInParam(1, param_p);

	PiSDFVertex* cf_cfg = graph->addConfigVertex(
		/*Name*/    "cfg",
		/*FctId*/   RADIX2_STAGE_CFG_FCT,
		/*SubType*/ PISDF_SUBTYPE_NORMAL,
		/*InData*/  1,
		/*OutData*/ 0,
		/*InParam*/ 0,
		/*OutParam*/1);
	cf_cfg->addOutParam(0, param_p);
	cf_cfg->isExecutableOnPE(CORE_ARM0);
//	cf_cfg->isExecutableOnPE(CORE_ARM1);
//	cf_cfg->isExecutableOnPE(CORE_ARM2);
//	cf_cfg->isExecutableOnPE(CORE_ARM3);
	cf_cfg->setTimingOnType(CORE_TYPE_C6X, "100", stack);
	cf_cfg->setTimingOnType(CORE_TYPE_ARM, "100", stack);

	PiSDFVertex* bo_genIx = graph->addBodyVertex(
		/*Name*/    "genIx",
		/*FctId*/   RADIX2_STAGE_GENIX_FCT,
		/*InData*/  0,
		/*OutData*/ 1,
		/*InParam*/ 1);
	bo_genIx->addInParam(0, param_nDFT2);
//	bo_genIx->isExecutableOnPE(CORE_ARM0);
	bo_genIx->isExecutableOnPE(CORE_ARM1);
//.........这里部分代码省略.........
开发者ID:preesm,项目名称:spider,代码行数:101,代码来源:pi_Radix2_fft.cpp

示例4: costParallel

// Method building PiSDFGraphcostParallel
PiSDFGraph* costParallel(Archi* archi, Stack* stack) {
    PiSDFGraph* graph = CREATE(stack, PiSDFGraph)(
                            /*Edges*/    18,
                            /*Params*/   9,
                            /*InputIf*/  5,
                            /*OutputIf*/ 1,
                            /*Config*/   0,
                            /*Body*/     9,
                            /*Archi*/    archi,
                            /*Stack*/    stack);

    /* Parameters */
    PiSDFParam *param_nIter = graph->addHeritedParam("nIter", 0);
    PiSDFParam *param_height = graph->addHeritedParam("height", 1);
    PiSDFParam *param_width = graph->addHeritedParam("width", 2);
    PiSDFParam *param_maxDisp = graph->addHeritedParam("maxDisp", 3);
    PiSDFParam *param_minDisp = graph->addHeritedParam("minDisp", 4);
    PiSDFParam *param_truncValue = graph->addHeritedParam("truncValue", 5);
    PiSDFParam *param_scale = graph->addHeritedParam("scale", 6);
    PiSDFParam *param_size = graph->addDependentParam("size", "height*width");
    PiSDFParam *param_nDisp = graph->addDependentParam("nDisp", "maxDisp-minDisp+1");

    /* Vertices */
    PiSDFVertex* if_cenL = graph->addInputIf(
                               /*Name*/    "if_cenL",
                               /*InParam*/ 1);
    if_cenL->addInParam(0, param_size);

    PiSDFVertex* if_cenR = graph->addInputIf(
                               /*Name*/    "if_cenR",
                               /*InParam*/ 1);
    if_cenR->addInParam(0, param_size);

    PiSDFVertex* if_grayL = graph->addInputIf(
                                /*Name*/    "if_grayL",
                                /*InParam*/ 1);
    if_grayL->addInParam(0, param_size);

    PiSDFVertex* if_grayR = graph->addInputIf(
                                /*Name*/    "if_grayR",
                                /*InParam*/ 1);
    if_grayR->addInParam(0, param_size);

    PiSDFVertex* if_rgb = graph->addInputIf(
                              /*Name*/    "if_rgb",
                              /*InParam*/ 1);
    if_rgb->addInParam(0, param_size);

    PiSDFVertex* bo_Br_rgb = graph->addSpecialVertex(
                                 /*Type*/    PISDF_SUBTYPE_BROADCAST,
                                 /*InData*/  1,
                                 /*OutData*/ 2,
                                 /*InParam*/ 1);
    bo_Br_rgb->addInParam(0, param_size);

    PiSDFVertex* bo_GenIx = graph->addBodyVertex(
                                /*Name*/    "GenIx",
                                /*FctId*/   COSTPARALLEL_GENIX_FCT,
                                /*InData*/  0,
                                /*OutData*/ 1,
                                /*InParam*/ 1);
    bo_GenIx->addInParam(0, param_nIter);
    bo_GenIx->isExecutableOnPE(CORE_ARM0);
    bo_GenIx->setTimingOnType(CORE_TYPE_ARM, "3330", stack);

    PiSDFVertex* bo_GenDisp = graph->addBodyVertex(
                                  /*Name*/    "GenDisp",
                                  /*FctId*/   COSTPARALLEL_GENDISP_FCT,
                                  /*InData*/  0,
                                  /*OutData*/ 1,
                                  /*InParam*/ 2);
    bo_GenDisp->addInParam(0, param_minDisp);
    bo_GenDisp->addInParam(1, param_maxDisp);
    bo_GenDisp->isExecutableOnPE(CORE_ARM0);
    bo_GenDisp->setTimingOnType(CORE_TYPE_ARM, "4025", stack);

    PiSDFVertex* bo_VWeights = graph->addBodyVertex(
                                   /*Name*/    "VWeights",
                                   /*FctId*/   COSTPARALLEL_VWEIGHTS_FCT,
                                   /*InData*/  2,
                                   /*OutData*/ 1,
                                   /*InParam*/ 2);
    bo_VWeights->addInParam(0, param_height);
    bo_VWeights->addInParam(1, param_width);
//	bo_VWeights->isExecutableOnPE(CORE_ARM0);
    bo_VWeights->isExecutableOnPE(CORE_DSP0);
    bo_VWeights->isExecutableOnPE(CORE_DSP1);
    bo_VWeights->isExecutableOnPE(CORE_DSP2);
    bo_VWeights->isExecutableOnPE(CORE_DSP3);
    bo_VWeights->isExecutableOnPE(CORE_DSP4);
    bo_VWeights->isExecutableOnPE(CORE_DSP5);
    bo_VWeights->isExecutableOnPE(CORE_DSP6);
    bo_VWeights->isExecutableOnPE(CORE_DSP7);
    bo_VWeights->setTimingOnType(CORE_TYPE_C6X, "58039643", stack);
    bo_VWeights->setTimingOnType(CORE_TYPE_ARM, "219177142", stack);

    PiSDFVertex* bo_HWeight = graph->addBodyVertex(
                                  /*Name*/    "HWeight",
                                  /*FctId*/   COSTPARALLEL_HWEIGHT_FCT,
//.........这里部分代码省略.........
开发者ID:preesm,项目名称:spider,代码行数:101,代码来源:pi_stereo.cpp


注:本文中的PiSDFGraph::addInputIf方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。