# HG changeset patch # User hausers # Date 1329496872 -3600 # Node ID df53f52ef49c9ad6f266c4bd510062154b152214 # Parent 8d9d367e96f9945cfb2208e811ed47b51dbc5194 naming conflicts fixed HWSimResults changed, so FakeSim needs an update -> TODO Stefan diff -r 8d9d367e96f9 -r df53f52ef49c CircuitNetlistCreator.c --- a/CircuitNetlistCreator.c Sun Feb 12 01:47:58 2012 -0800 +++ b/CircuitNetlistCreator.c Fri Feb 17 17:41:12 2012 +0100 @@ -10,13 +10,13 @@ /*'' is an expr resolves to an actual commPath struct instance */ #define setCommPathValuesTo( commPath, fromElIdx, outPort, toElIdx, inPort,\ - commTimeFnPtr, dataPtr)\ + timeFnPtr, dataPtr)\ do{\ commPath->idxOfFromElem = fromElIdx; \ commPath->idxOfFromOutPort = fromElIdx; \ commPath->idxOfToElem = toElIdx; \ commPath->idxOfToInPort = inPort; \ - commPath->commTimeFnPtr = commTimeFnPtr;\ + commPath->commTimeCalcFn = timeFnPtr;\ commPath->archSpecCommPathData = dataPtr; \ }while(0); //macro magic for namespace @@ -48,10 +48,9 @@ HWSimElem **elems; int32 numElems; int32 numCommPaths; - HWSimActivityType *foo; netlist = malloc( sizeof(HWSimNetlist) ); - //declare elems numElems = 2; + numElems= 2; elems = malloc( numElems * sizeof(HWSimElem) ); netlist->numElems = numElems; netlist->elems = elems; @@ -78,15 +77,20 @@ netlist->numCommPaths= numCommPaths; netlist->commPaths= commPaths; //TL 0, out-port 0 to TL 1, in-port 0 - setCommPathValuesTo(commPaths[0], 0,0,1,0, &commPath_TimeSpanCalc, NULL); + setCommPathValuesTo(commPaths[0],0,0,1,0, commPath_TimeSpanCalc, NULL); //TL 1, out-port 0 to TL 0, in-port 0 - setCommPathValuesTo(commPaths[1], 1,0,0,0, &commPath_TimeSpanCalc, NULL); + setCommPathValuesTo(commPaths[1], 1,0,0,0, commPath_TimeSpanCalc, NULL); //TODO: decide how do in-out bidirectional commPaths -- thinking make it two // separate commPaths with guard between in-port and out-port + + return netlist; } //Stefan: copy netlist struct with VMS malloc after VMS initialized? + //Sean: yes, otherwise the user has to deal with VMS details. + // So we should do this in HWSim__make_netlist_simulatable ? + // If so, I can do this HWSimElem * createAPingPongElem( HWSimNetlist *netlist ) { HWSimElem *TL; @@ -96,6 +100,7 @@ TL->inPorts = HWSim_ext__make_inPortsArray( TL->numInPorts ); TL->inPorts[-1].triggeredActivityType = IDLE_SPAN; //reset port TL->inPorts[0].triggeredActivityType = netlist->activityTypes[PING_PONG_TYPE]; + return TL; } HWSimActivityType * diff -r 8d9d367e96f9 -r df53f52ef49c HWSim__PingPong__HWDef/FakeSim.c --- a/HWSim__PingPong__HWDef/FakeSim.c Sun Feb 12 01:47:58 2012 -0800 +++ b/HWSim__PingPong__HWDef/FakeSim.c Fri Feb 17 17:41:12 2012 +0100 @@ -38,18 +38,18 @@ checkMalloc(simResults->elemTraces[i]); simResults->elemTraces[i]->activityRecs= malloc(sizeof(HWSimActivityRec)); } - - simResults->numCommTraces= nrComms; - simResults->commTraces= - malloc(simResults->numCommTraces*sizeof(HWSimCommPathTrace *)); - checkMalloc(simResults->commTraces); - for (i= 0; inumCommTraces; i++) { - simResults->commTraces[i]= malloc(sizeof(HWSimCommPathTrace)); - checkMalloc(simResults->commTraces[i]); - // FRAGILE -> valgrind - simResults->commTraces[i]->commRecs= malloc(sizeof(HWSimCommRec)); - checkMalloc(simResults->commTraces[i]->commRecs); - } +//Stefan: adapt to new structure +// simResults->numCommTraces= nrComms; +// simResults->commTraces= +// malloc(simResults->numCommTraces*sizeof(HWSimCommPathTrace *)); +// checkMalloc(simResults->commTraces); +// for (i= 0; inumCommTraces; i++) { +// simResults->commTraces[i]= malloc(sizeof(HWSimCommPathTrace)); +// checkMalloc(simResults->commTraces[i]); +// // FRAGILE -> valgrind +// simResults->commTraces[i]->commRecs= malloc(sizeof(HWSimCommRec)); +// checkMalloc(simResults->commTraces[i]->commRecs); +// } return simResults; } @@ -95,32 +95,32 @@ //-------------------- Coomunication Trace --------------------- //ping to pong 2 - 3 - simResults->commTraces[0]->fromElem= netlist->elems[0]; - simResults->commTraces[0]->toElem= netlist->elems[1]; - simResults->commTraces[0]->numComms= 1; - simResults->commTraces[0]->commRecs->commID= 0; - simResults->commTraces[0]->commRecs->msgID= 0; - simResults->commTraces[0]->commRecs->startTime= 2; - simResults->commTraces[0]->commRecs->endTime= 3; - - //pong to ping 4 - 5 - simResults->commTraces[1]->fromElem= netlist->elems[1]; - simResults->commTraces[1]->toElem= netlist->elems[0]; - simResults->commTraces[1]->numComms= 1; - simResults->commTraces[1]->commRecs->commID= 1; - simResults->commTraces[1]->commRecs->msgID= 1; - simResults->commTraces[1]->commRecs->startTime= 4; - simResults->commTraces[1]->commRecs->endTime= 5; - - //ping to pong 6 - 7 - simResults->commTraces[2]->fromElem= netlist->elems[0]; - simResults->commTraces[2]->toElem= netlist->elems[1]; - simResults->commTraces[2]->numComms= 1; - simResults->commTraces[2]->commRecs= malloc(sizeof(HWSimCommRec)); - simResults->commTraces[2]->commRecs->commID= 2; - simResults->commTraces[2]->commRecs->msgID= 0; - simResults->commTraces[2]->commRecs->startTime= 6; - simResults->commTraces[2]->commRecs->endTime= 7; +// simResults->commTraces[0]->fromElem= netlist->elems[0]; +// simResults->commTraces[0]->toElem= netlist->elems[1]; +// simResults->commTraces[0]->numComms= 1; +// simResults->commTraces[0]->commRecs->commID= 0; +// simResults->commTraces[0]->commRecs->msgID= 0; +// simResults->commTraces[0]->commRecs->startTime= 2; +// simResults->commTraces[0]->commRecs->endTime= 3; +// +// //pong to ping 4 - 5 +// simResults->commTraces[1]->fromElem= netlist->elems[1]; +// simResults->commTraces[1]->toElem= netlist->elems[0]; +// simResults->commTraces[1]->numComms= 1; +// simResults->commTraces[1]->commRecs->commID= 1; +// simResults->commTraces[1]->commRecs->msgID= 1; +// simResults->commTraces[1]->commRecs->startTime= 4; +// simResults->commTraces[1]->commRecs->endTime= 5; +// +// //ping to pong 6 - 7 +// simResults->commTraces[2]->fromElem= netlist->elems[0]; +// simResults->commTraces[2]->toElem= netlist->elems[1]; +// simResults->commTraces[2]->numComms= 1; +// simResults->commTraces[2]->commRecs= malloc(sizeof(HWSimCommRec)); +// simResults->commTraces[2]->commRecs->commID= 2; +// simResults->commTraces[2]->commRecs->msgID= 0; +// simResults->commTraces[2]->commRecs->startTime= 6; +// simResults->commTraces[2]->commRecs->endTime= 7; return simResults; } diff -r 8d9d367e96f9 -r df53f52ef49c HWSim__PingPong__HWDef/HWSim__PingPong__HWDef.h --- a/HWSim__PingPong__HWDef/HWSim__PingPong__HWDef.h Sun Feb 12 01:47:58 2012 -0800 +++ b/HWSim__PingPong__HWDef/HWSim__PingPong__HWDef.h Fri Feb 17 17:41:12 2012 +0100 @@ -34,6 +34,9 @@ uint64 pingPongElem_PingActivity_timing( void * dataFromBehaviorFn ); +HWSimTimeSpan +commPath_TimeSpanCalc( HWSimCommPath *commPath, HWSimActivityInst *sendingActivity ); + //======================== Simulation Fake ================================== #ifdef FAKE HWSimResults* create_simulation_results__fake(void *simParams,HWSimNetlist *netlist); diff -r 8d9d367e96f9 -r df53f52ef49c main.c --- a/main.c Sun Feb 12 01:47:58 2012 -0800 +++ b/main.c Fri Feb 17 17:41:12 2012 +0100 @@ -10,13 +10,12 @@ #include "SimParams.h" #include "HWSim__PingPong__HWDef/HWSim__PingPong__HWDef.h" -//Stefan: name conflict here -- MC_shared version of params is in HWSim__PingPong__HWDef.h, but need normal C version here #include "../C_Libraries/ParamHelper/Param.h" char __ProgrammName[] = "HWSim Hello World"; char __DataSet[255]; -char __Scheduler[]; +char __Scheduler[1]; /* * @@ -47,7 +46,8 @@ #endif //HWSim - HWSim__generate_paraver_output(argv[2], simResults, netlist); + //HWSim__generate_paraver_output(argv[2], simResults, netlist); //Stefan: my version + HWSim__generate_paraver_output(simResults); //HWSim__generate_vcd_output( simResults ); exit(0); //cleans up