Commit c16393ff authored by maxeler's avatar maxeler

source commit

parent c5573356
<?xml version="1.0" encoding="UTF-8"?>
<maxCompilerManager version="2">
<enginePart internalEngineSubproject="InferiorOlive_Unrolled_IniFix_EngineCode" isSrcBin="false" isUseDefaultSelected="false" outputLocation="/InferiorOlive_Unrolled_IniFix_EngineCode/bin" projectName="InferiorOlive_Unrolled_IniFix"/>
<cpuPart internalCpuSubproject="InferiorOlive_Unrolled_IniFix_CPUCode"/>
<watchedFiles/>
</maxCompilerManager>
\ No newline at end of file
This diff is collapsed.
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>InferiorOlive_Unrolled_IniFix_CPUCode</name>
<comment></comment>
<manageMaxCompiler>false</manageMaxCompiler>
<manageMaxGenFD>false</manageMaxGenFD>
<manageMaxBlox>false</manageMaxBlox>
<maxelerVersion></maxelerVersion>
<maxelerBuildSystemVersion></maxelerBuildSystemVersion>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
<triggers>clean,</triggers>
<arguments>
<dictionary>
<key>?children?</key>
<value>?name?=outputEntries\|?children?=?name?=entry\\\\\\\|\\\|\||</value>
</dictionary>
<dictionary>
<key>?name?</key>
<value></value>
</dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.append_environment</key>
<value>true</value>
</dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.autoBuildTarget</key>
<value>all</value>
</dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.buildArguments</key>
<value></value>
</dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.buildCommand</key>
<value>make</value>
</dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.cleanBuildTarget</key>
<value>clean</value>
</dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.contents</key>
<value>org.eclipse.cdt.make.core.activeConfigSettings</value>
</dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.enableAutoBuild</key>
<value>false</value>
</dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.enableCleanBuild</key>
<value>true</value>
</dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.enableFullBuild</key>
<value>false</value>
</dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.fullBuildTarget</key>
<value>all</value>
</dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.stopOnError</key>
<value>true</value>
</dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.useDefaultBuildCmd</key>
<value>true</value>
</dictionary>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
<triggers>full,incremental,</triggers>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.cdt.core.cnature</nature>
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
<nature>com.maxeler.maxcompiler.core.MaxCompilerFragmentNature</nature>
</natures>
</projectDescription>
#simSteps iApp #Neuron Output(V_axon)
This diff is collapsed.
#
# This file is managed by MaxIDE. Do NOT change.
#
HEADERS:=
SOURCES:= infoliCpuCode.c
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include "Maxfiles.h"
#include "MaxSLiCInterface.h"
#define SIMTIME 1000// in ms, for when no input file is provided
//Change the Time Mux Factor to change the number of simulated cells in the network
////////------Keep Netwotk size in multiples of 96 cells for channel alignment----////////
#define TIME_MUX_FACTOR 96
///----DO NOT TOUCH defines after this point--///
#define HW_CELLS 1
//Number of parameters for states
#define INI_PARAMETERS 24
//Maximum Number of cells and time-multiplexing
#define MAX_N_SIZE 7680 //Make sure this has the same value in the kernel code (NetMaxSize)
//#define MAX_TIME_MUX 10
#define DELTA 0.05
#define CONDUCTANCE 0.004
//IO network size is IO_NETWORK_DIM1*IO_NETWORK_DIM2 times the TIME_MUX_FACTOR
#define IO_NETWORK_SIZE HW_CELLS*TIME_MUX_FACTOR
typedef unsigned long long timestamp;
//Time stamp function for measuring DFE runtime
static timestamp getTimestamp(){
struct timeval now;
gettimeofday(&now, NULL);
return now.tv_usec + (timestamp)now.tv_sec * 1000000;
}
int main(void)
{
char *outFileName = "InferiorOlive_Output.txt";
FILE *pOutFile;
char temp[100];//warning: this buffer may overflow
long simSteps = 0;
long simTime = 0;
//Timing variables
timestamp t0,t1;
float V,f, IC;
float Facc = 0.0;
float Vacc = 0.0;
printf("Begin execution \n") ;
const int IniVectorSize = INI_PARAMETERS* IO_NETWORK_SIZE;
int sizeBytesFloat = sizeof(float);
float *IniVector = malloc(sizeBytesFloat * IniVectorSize);
float *IniICVector = malloc(sizeBytesFloat * IO_NETWORK_SIZE);
long ticks = 0;
long TimeMuxFactor = TIME_MUX_FACTOR;
long MaxNSize = MAX_N_SIZE;
long NetSize = IO_NETWORK_SIZE;
//long MaxTimeMux = MAX_TIME_MUX;
// Cell Parameters Initialization
float initOneCell[] = {
/*0*/ -60, //V_dend
/*1*/ 0.0112788,// High-threshold calcium_r
/*2*/ 0.0049291,// Calcium-dependent potassium_s
/*3*/ 0.0337836,// H current_q
/*4*/ 3.7152,// Calcium concentration Ca2Plus
/*5*/ 0.5,// High-threshold calcium current I_CaH
//Initial somatic parameters
/*6*/ 0.68, //default arbitrary value but it should be randomized per cell g_CaL
/*7*/ -60, // V_soma
/*8*/ 1.0127807,// Sodium (artificial) Sodium_m
/*9*/ 0.3596066, //Sodium_h
/*10*/ 0.2369847,// Potassium (delayed rectifier) Potassium_n
/*11*/ 0.2369847, // Potassium_p
/*12*/ 0.1,// Potassium (voltage-dependent) Potassium_x_s
/*13*/ 0.7423159,// Low-threshold calcium Calcium_k
/*14*/ 0.0321349,// Calcium_l
// Initial axonal parameters
/*15*/ -60, // v_Axon
//sisaza: Sodium_m_a doesn't have a state, therefore this assignment doesn'thave any effect
/*16*/ 0.003596066,// Sodium (thalamocortical) // Sodium_m_a
/*17*/ 0.9,// Sodium_h_a
/*18*/ 0.2369847,// Potassium (transient) // Potassium_x_a
//filler for channel alignment
0,
0,
0,
0,
0
};
//Create initial state input for all cells
printf("Creating State Initialization Vector\n");
for(long i = 0; i< IniVectorSize ; i=i+INI_PARAMETERS){
for(long j = 0; j<INI_PARAMETERS; j++){
IniVector[i+j] = initOneCell[j];
//printf(" Ini Vector : %ld \n", i+j);
}
}
//Create Initial ICs (Gap Junction Influences)
printf("Creating Initialization Gap Junction Vector\n");
for(long k = 0; k< IO_NETWORK_SIZE ; k++){
for(long l = 0; l< IO_NETWORK_SIZE ; l++){
V = IniVector[k*24] - IniVector[l*24];
f = V * exp(-0.01 * V * V);
Facc = f + Facc;
Vacc = V + Vacc;
}
IC = CONDUCTANCE * (8 * Facc + 2 * Vacc);
IniICVector[k] = IC; //printf("%ld : %.2f ",k, IniICVector[k]);
}
//printf("\n ");
//Create output file
pOutFile = fopen(outFileName,"w");
if(pOutFile==NULL){
printf("Error: Couldn't create %s\n", outFileName);
exit(EXIT_FAILURE);
}
sprintf(temp, "#simSteps iApp #Neuron Output(V_axon)\n");
fputs(temp, pOutFile);
simTime = SIMTIME; // in miliseconds
simSteps = ceil(simTime/DELTA);
ticks = (simSteps * IO_NETWORK_SIZE * IO_NETWORK_SIZE);
//Malloc evoked input memory
float *iApp = malloc(sizeBytesFloat * simSteps * IO_NETWORK_SIZE);
//Initialise iApp trace
printf("Creating Input Trace\n");
for (long i = 0 ; i < simSteps * IO_NETWORK_SIZE ; i++){
if (i > ((20000-1) * IO_NETWORK_SIZE) + IO_NETWORK_SIZE-1 && i < (20500-1) * IO_NETWORK_SIZE){
iApp[i]= 6.0;
}
else{
iApp[i]= 0.0;
}
}
//Malloc output memory
long sizeBytesFloatOut = simSteps*IO_NETWORK_SIZE* sizeBytesFloat;
printf("Mallocing Output Space\n");
float *Out = malloc(sizeBytesFloatOut);
//Write ini state and input memory RAM
printf("Writing Initialization State to LMem.\n");
infoli_writeLMem(INI_PARAMETERS * IO_NETWORK_SIZE, 0, IniVector);
printf("Writing Input Trace State to LMem.\n");
infoli_writeLMem( simSteps*IO_NETWORK_SIZE, INI_PARAMETERS * (MaxNSize), iApp);
printf("Writing IC Initialization Trace State to LMem.\n");
infoli_writeLMem( IO_NETWORK_SIZE, (INI_PARAMETERS * (MaxNSize))+ (simSteps*(MaxNSize)+(simSteps * (MaxNSize))),IniICVector);
//execute kernel
printf("Running on DFE. Net Size = %ld and SimSteps = %ld\n", NetSize, simSteps);
t0 = getTimestamp();
infoli(MaxNSize, ticks, NetSize, simSteps, TimeMuxFactor);
t1 = getTimestamp();
printf("DFE Runtime = %9.7f seconds\n", (t1-t0)/1000000.0 );
printf("Reading memory\n");
fflush(stdout);
infoli_readLMem( simSteps * IO_NETWORK_SIZE ,(INI_PARAMETERS * (MaxNSize))+ (simSteps*(MaxNSize)), Out);
//Write output to file
/* printf("Writing Output File\n");
for (long i=0; i<simSteps ; i++){
sprintf(temp, "%ld %.2f ", i+1, iApp[i* IO_NETWORK_SIZE]);
fputs(temp, pOutFile);
int cell = -1;
for (long j=i*IO_NETWORK_SIZE; j<(i*IO_NETWORK_SIZE)+IO_NETWORK_SIZE; j++){
cell++;
sprintf(temp, " %d : %.8f ",cell, Out[j]);
fputs(temp, pOutFile);
}
sprintf(temp, "\n ");
fputs(temp, pOutFile);
}
*/
//fclose (pOutFile);
printf("Done.\n");
return 0;
}
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include "Maxfiles.h"
#include "MaxSLiCInterface.h"
#define SIMTIME 1000// in ms, for when no input file is provided
//Change the Time Mux Factor to change the number of simulated cells in the network
////////------Keep Netwotk size in multiples of 96 cells for channel alignment----////////
#define TIME_MUX_FACTOR 2112
///----DO NOT TOUCH defines after this point--///
#define HW_CELLS 1
//Number of parameters for states
#define INI_PARAMETERS 24
//Maximum Number of cells and time-multiplexing
#define MAX_N_SIZE 3840 //Make sure this has the same value in the kernel code (NetMaxSize)
//#define MAX_TIME_MUX 10
#define DELTA 0.05
#define CONDUCTANCE 0.004
//IO network size is IO_NETWORK_DIM1*IO_NETWORK_DIM2 times the TIME_MUX_FACTOR
#define IO_NETWORK_SIZE HW_CELLS*TIME_MUX_FACTOR
typedef unsigned long long timestamp;
//Time stamp function for measuring DFE runtime
static timestamp getTimestamp(){
struct timeval now;
gettimeofday(&now, NULL);
return now.tv_usec + (timestamp)now.tv_sec * 1000000;
}
int main(void)
{
char *outFileName = "InferiorOlive_Output.txt";
FILE *pOutFile;
char temp[100];//warning: this buffer may overflow
long simSteps = 0;
long simTime = 0;
//Timing variables
timestamp t0,t1;
float V,f, IC;
float Facc = 0.0;
float Vacc = 0.0;
printf("Begin execution \n") ;
const int IniVectorSize = INI_PARAMETERS* IO_NETWORK_SIZE;
int sizeBytesFloat = sizeof(float);
float *IniVector = malloc(sizeBytesFloat * IniVectorSize);
float *IniICVector = malloc(sizeBytesFloat * IO_NETWORK_SIZE);
long ticks = 0;
long TimeMuxFactor = TIME_MUX_FACTOR;
long MaxNSize = MAX_N_SIZE;
long NetSize = IO_NETWORK_SIZE;
//long MaxTimeMux = MAX_TIME_MUX;
// Cell Parameters Initialization
float initOneCell[] = {
/*0*/ -60, //V_dend
/*1*/ 0.0112788,// High-threshold calcium_r
/*2*/ 0.0049291,// Calcium-dependent potassium_s
/*3*/ 0.0337836,// H current_q
/*4*/ 3.7152,// Calcium concentration Ca2Plus
/*5*/ 0.5,// High-threshold calcium current I_CaH
//Initial somatic parameters
/*6*/ 0.68, //default arbitrary value but it should be randomized per cell g_CaL
/*7*/ -60, // V_soma
/*8*/ 1.0127807,// Sodium (artificial) Sodium_m
/*9*/ 0.3596066, //Sodium_h
/*10*/ 0.2369847,// Potassium (delayed rectifier) Potassium_n
/*11*/ 0.2369847, // Potassium_p
/*12*/ 0.1,// Potassium (voltage-dependent) Potassium_x_s
/*13*/ 0.7423159,// Low-threshold calcium Calcium_k
/*14*/ 0.0321349,// Calcium_l
// Initial axonal parameters
/*15*/ -60, // v_Axon
//sisaza: Sodium_m_a doesn't have a state, therefore this assignment doesn'thave any effect
/*16*/ 0.003596066,// Sodium (thalamocortical) // Sodium_m_a
/*17*/ 0.9,// Sodium_h_a
/*18*/ 0.2369847,// Potassium (transient) // Potassium_x_a
//filler for channel alignment
0,
0,
0,
0,
0
};
//Create initial state input for all cells
printf("Creating State Initialization Vector\n");
for(long i = 0; i< IniVectorSize ; i=i+INI_PARAMETERS){
for(long j = 0; j<INI_PARAMETERS; j++){
IniVector[i+j] = initOneCell[j];
//printf(" Ini Vector : %ld \n", i+j);
}
}
//Create Initial ICs (Gap Junction Influences)
printf("Creating Initialization Gap Junction Vector\n");
for(long k = 0; k< IO_NETWORK_SIZE ; k++){
for(long l = 0; l< IO_NETWORK_SIZE ; l++){
V = IniVector[k*24] - IniVector[l*24];
f = V * exp(-0.01 * V * V);
Facc = f + Facc;
Vacc = V + Vacc;
}
IC = CONDUCTANCE * (8 * Facc + 2 * Vacc);
IniICVector[k] = IC; //printf("%ld : %.2f ",k, IniICVector[k]);
}
//printf("\n ");
//Create output file
pOutFile = fopen(outFileName,"w");
if(pOutFile==NULL){
printf("Error: Couldn't create %s\n", outFileName);
exit(EXIT_FAILURE);
}
sprintf(temp, "#simSteps iApp #Neuron Output(V_axon)\n");
fputs(temp, pOutFile);
simTime = SIMTIME; // in miliseconds
simSteps = ceil(simTime/DELTA);
ticks = (simSteps * IO_NETWORK_SIZE * IO_NETWORK_SIZE);
//Malloc evoked input memory
float *iApp = malloc(sizeBytesFloat * simSteps * IO_NETWORK_SIZE);
//Initialise iApp trace
printf("Creating Input Trace\n");
for (long i = 0 ; i < simSteps * IO_NETWORK_SIZE ; i++){
if (i > ((20000-1) * IO_NETWORK_SIZE) + IO_NETWORK_SIZE-1 && i < (20500-1) * IO_NETWORK_SIZE){
iApp[i]= 6.0;
}
else{
iApp[i]= 0.0;
}
}
//Malloc output memory
long sizeBytesFloatOut = simSteps*IO_NETWORK_SIZE* sizeBytesFloat;
printf("Mallocing Output Space\n");
float *Out = malloc(sizeBytesFloatOut);
//Write ini state and input memory RAM
printf("Writing Initialization State to LMem.\n");
infoli_writeLMem(INI_PARAMETERS * IO_NETWORK_SIZE, 0, IniVector);
printf("Writing Input Trace State to LMem.\n");
infoli_writeLMem( simSteps*IO_NETWORK_SIZE, INI_PARAMETERS * (MaxNSize), iApp);
printf("Writing IC Initialization Trace State to LMem.\n");
infoli_writeLMem( IO_NETWORK_SIZE, (INI_PARAMETERS * (MaxNSize))+ (simSteps*(MaxNSize)+(simSteps * (MaxNSize))),IniICVector);
//execute kernel
printf("Running on DFE. Net Size = %ld and SimSteps = %ld\n", NetSize, simSteps);
t0 = getTimestamp();
infoli(MaxNSize, ticks, NetSize, simSteps, TimeMuxFactor);
t1 = getTimestamp();
printf("DFE Runtime = %9.7f seconds\n", (t1-t0)/1000000.0 );
printf("Reading memory\n");
fflush(stdout);
infoli_readLMem( simSteps * IO_NETWORK_SIZE ,(INI_PARAMETERS * (MaxNSize))+ (simSteps*(MaxNSize)), Out);
//Write output to file
/* printf("Writing Output File\n");
for (long i=0; i<simSteps ; i++){
sprintf(temp, "%ld %.2f ", i+1, iApp[i* IO_NETWORK_SIZE]);
fputs(temp, pOutFile);
int cell = -1;
for (long j=i*IO_NETWORK_SIZE; j<(i*IO_NETWORK_SIZE)+IO_NETWORK_SIZE; j++){
cell++;
sprintf(temp, " %d : %.8f ",cell, Out[j]);
fputs(temp, pOutFile);
}
sprintf(temp, "\n ");
fputs(temp, pOutFile);
}
*/
//fclose (pOutFile);
printf("Done.\n");
return 0;
}
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
<classpathentry kind="lib" path="/opt/maxeler/maxcompiler-2013.2.1/lib/MaxCompiler.jar">
<attributes>
<attribute name="javadoc_location" value="file:/opt/maxeler/maxcompiler-2013.2.1/docs/MaxCompiler-API/"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="bin"/>
</classpath>
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>InferiorOlive_Unrolled_IniFix_EngineCode</name>
<comment></comment>
<manageMaxCompiler>true</manageMaxCompiler>
<manageMaxGenFD>false</manageMaxGenFD>
<manageMaxBlox>false</manageMaxBlox>
<maxelerVersion>1.0</maxelerVersion>
<maxelerBuildSystemVersion></maxelerBuildSystemVersion>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>com.maxeler.maxcompiler.core.MaxCompilerFragmentNature</nature>
</natures>
</projectDescription>
package infoli;
import com.maxeler.maxcompiler.v2.build.EngineParameters;
public class infoliEngineParameters extends EngineParameters {
public infoliEngineParameters(String[] args) {
super(args);
}
//
// Example code to create two engine parameters: 'hasStreamStatus' and
// 'streamFrequency', plus a derived parameter 'twostreamFrequency'.
//
// A build directory name is constructed based on these parameters and
// the default max-file name and target parameters.
//
//
// private static final String s_hasStreamStatus = "hasStreamStatus";
private static final String s_streamFrequency = "streamFrequency";
private static final String i_startMPPRCT = "startMPPRCT";
private static final String i_endMPPRCT = "endMPPRCT";
private static final String i_MPPRThreads = "MPPRThreads";
// private static final String s_twofreq = "twostreamFrequency";
//
//
@Override
protected void declarations() {
// declareParam(s_hasStreamStatus, DataType.BOOL, false);
declareParam(s_streamFrequency, DataType.INT, 230);
declareParam(i_startMPPRCT, DataType.INT, 1);
declareParam(i_endMPPRCT, DataType.INT, 8);
declareParam(i_MPPRThreads, DataType.INT, 2);
// declareDerivedParam(s_twofreq, DataType.INT);
}
//
// @Override
// protected void deriveParameters() {
// deriveParam(s_twofreq, 2 * getStreamFrequency());
// }
//
@Override
protected void validate() {
if (getStreamFrequency() <= 0)
throw new IllegalArgumentException("Stream frequency should be > 0.");
}
//
// public boolean getHasStreamStatus() {
// return getParam(s_hasStreamStatus);
// }
//
public int getStreamFrequency() {
return getParam(s_streamFrequency);
}
public int getMPPRStart() {
return getParam(i_startMPPRCT);
}
public int getMPPREnd() {
return getParam(i_endMPPRCT);
}
public int getMPPRNumThreads() {
return getParam(i_MPPRThreads);
}
//
// public int getTwofreq(){
// return getParam(s_twofreq);
// }
//
@Override
public String getBuildName() {
return getMaxFileName() + "_" + getTarget() + "_ss" + getStreamFrequency();
}
}
This diff is collapsed.
package infoli;
import com.maxeler.maxcompiler.v2.build.EngineParameters;
public class infoliEngineParameters extends EngineParameters {
public infoliEngineParameters(String[] args) {
super(args);
}
//
// Example code to create two engine parameters: 'hasStreamStatus' and
// 'streamFrequency', plus a derived parameter 'twostreamFrequency'.
//
// A build directory name is constructed based on these parameters and
// the default max-file name and target parameters.
//
//
// private static final String s_hasStreamStatus = "hasStreamStatus";
private static final String s_streamFrequency = "streamFrequency";
private static final String i_startMPPRCT = "startMPPRCT";
private static final String i_endMPPRCT = "endMPPRCT";
private static final String i_MPPRThreads = "MPPRThreads";
// private static final String s_twofreq = "twostreamFrequency";
//
//
@Override
protected void declarations() {
// declareParam(s_hasStreamStatus, DataType.BOOL, false);
declareParam(s_streamFrequency, DataType.INT, 220);
declareParam(i_startMPPRCT, DataType.INT, 1);
declareParam(i_endMPPRCT, DataType.INT, 8);
declareParam(i_MPPRThreads, DataType.INT, 2);
// declareDerivedParam(s_twofreq, DataType.INT);
}
//
// @Override
// protected void deriveParameters() {
// deriveParam(s_twofreq, 2 * getStreamFrequency());
// }
//
@Override
protected void validate() {
if (getStreamFrequency() <= 0)
throw new IllegalArgumentException("Stream frequency should be > 0.");
}
//
// public boolean getHasStreamStatus() {
// return getParam(s_hasStreamStatus);
// }
//
public int getStreamFrequency() {
return getParam(s_streamFrequency);
}
public int getMPPRStart() {
return getParam(i_startMPPRCT);
}
public int getMPPREnd() {
return getParam(i_endMPPRCT);
}
public int getMPPRNumThreads() {
return getParam(i_MPPRThreads);
}
//
// public int getTwofreq(){
// return getParam(s_twofreq);
// }
//
@Override
public String getBuildName() {
return getMaxFileName() + "_" + getTarget() + "_ss" + getStreamFrequency();
}
}
package infoli;
import com.maxeler.maxcompiler.v2.build.EngineParameters;
public class infoliEngineParameters extends EngineParameters {
public infoliEngineParameters(String[] args) {
super(args);
}
//
// Example code to create two engine parameters: 'hasStreamStatus' and