changeset 4:2d3505958ca8

TimelineTraces: 1 trace for each timeline contain several Spanrecs for the different spans
author hausers
date Mon, 05 Dec 2011 12:24:44 +0100
parents 0ef08e9afd54
children 648207f2e38f
files src/Application/HWSim__Hello_World_HW/FakeSim.c
diffstat 1 files changed, 100 insertions(+), 0 deletions(-) [+]
line diff
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/src/Application/HWSim__Hello_World_HW/FakeSim.c	Mon Dec 05 12:24:44 2011 +0100
     1.3 @@ -0,0 +1,100 @@
     1.4 +#include "HWSim__Hello_World_HW.h"
     1.5 +
     1.6 +HWSimResults* create_simulation_results__fake(void *simParams,HWSimNetlist *netlist) {
     1.7 +	HWSimResults *simResults;
     1.8 +	HWSimTimeline *pingTimeline,*pongTimeline;
     1.9 +
    1.10 +	
    1.11 +	// 2 timelines
    1.12 +	pingTimeline= malloc(sizeof(HWSimTimeline));
    1.13 +	pingTimeline->animatingVP= malloc(sizeof(VirtProcr));
    1.14 +	pingTimeline->animatingVP->procrID= 0;
    1.15 +
    1.16 +	pongTimeline= malloc(sizeof(HWSimTimeline));
    1.17 +	pongTimeline->animatingVP= malloc(sizeof(VirtProcr));
    1.18 +	pongTimeline->animatingVP->procrID= 1;	
    1.19 +
    1.20 +	simResults= malloc(sizeof(HWSimResults));
    1.21 +
    1.22 +	//--------------- timelineTrace ------------------------------------
    1.23 +	simResults->numTimelines= 2;
    1.24 +	simResults->timelineTraces= malloc(simResults->numTimelines*sizeof(HWSimTimelineTrace));
    1.25 +	
    1.26 +	simResults->timelineTraces[0]->timeline= pingTimeline; 
    1.27 +	simResults->timelineTraces[0]->numSpans= 2;
    1.28 +	simResults->timelineTraces[0]->spanRecs= malloc(simResults->timelineTraces[0]->numSpans*sizeof(HWSimSpanRec));
    1.29 +
    1.30 +	// 2 times a ping span
    1.31 +	// no idle spans included (not required ??)
    1.32 +	simResults->timelineTraces[0]->spanRecs[0]->spanSeqNum= 0; // unique ???
    1.33 +	simResults->timelineTraces[0]->spanRecs[0]->spanType= NULL;
    1.34 +	simResults->timelineTraces[0]->spanRecs[0]->startTime= 1;
    1.35 +	simResults->timelineTraces[0]->spanRecs[0]->endTime=2;
    1.36 +
    1.37 +	simResults->timelineTraces[0]->spanRecs[1]->spanSeqNum= 1;
    1.38 +	simResults->timelineTraces[0]->spanRecs[1]->spanType= NULL;
    1.39 +	simResults->timelineTraces[0]->spanRecs[1]->startTime= 5;
    1.40 +	simResults->timelineTraces[0]->spanRecs[1]->endTime=6;
    1.41 +
    1.42 +	simResults->timelineTraces[1]->timeline= pongTimeline; 
    1.43 +	simResults->timelineTraces[1]->numSpans= 2;
    1.44 +	simResults->timelineTraces[1]->spanRecs= malloc(simResults->timelineTraces[1]->numSpans*sizeof(HWSimSpanRec));
    1.45 +
    1.46 +	// 2 times a pong span
    1.47 +	simResults->timelineTraces[1]->spanRecs[0]->spanSeqNum= 2; // unique ???
    1.48 +	simResults->timelineTraces[1]->spanRecs[0]->spanType= NULL;
    1.49 +	simResults->timelineTraces[1]->spanRecs[0]->startTime= 3;
    1.50 +	simResults->timelineTraces[1]->spanRecs[0]->endTime=4;
    1.51 +
    1.52 +	simResults->timelineTraces[1]->spanRecs[1]->spanSeqNum= 3;
    1.53 +	simResults->timelineTraces[1]->spanRecs[1]->spanType= NULL;
    1.54 +	simResults->timelineTraces[1]->spanRecs[1]->startTime= 7;
    1.55 +	simResults->timelineTraces[1]->spanRecs[1]->endTime=8;
    1.56 +
    1.57 +
    1.58 +	// a HWSimTimeline does not contain any helpful additional information to
    1.59 +	// identify or label a Timeline .
    1.60 +	// But a unique Timeline identifier is disireable. Therefore at the moment the
    1.61 +	// procrID of the anumating Procr ist used
    1.62 +
    1.63 +	// Information about the Span is required, at least a ID.The current
    1.64 +	// spanType doesn't provide it
    1.65 +
    1.66 +
    1.67 +	//--------------------  Coomunication Trace ---------------------
    1.68 +	simResults->numCommTraces= 3;
    1.69 +	simResults->commTrace= malloc(simResults->numCommTraces*sizeof(HWSimWireTrace));
    1.70 +
    1.71 +	//ping to pong 2 - 3 
    1.72 +	simResults->commTrace[0]->fromTimeline= pingTimeline;
    1.73 +	simResults->commTrace[0]->toTimeline= pongTimeline;
    1.74 +	simResults->commTrace[0]->numComms= 1;
    1.75 +	simResults->commTrace[0]->commRecs= malloc(sizeof(HWSimCommRec));
    1.76 +	simResults->commTrace[0]->commRecs->commID= 0;
    1.77 +	simResults->commTrace[0]->commRecs->msgID= 0;
    1.78 +	simResults->commTrace[0]->commRecs->startTime= 2;
    1.79 +	simResults->commTrace[0]->commRecs->endTime= 3;
    1.80 +
    1.81 +	//pong to ping 4 - 5 
    1.82 +	simResults->commTrace[1]->fromTimeline= pongTimeline;
    1.83 +	simResults->commTrace[1]->toTimeline= pingTimeline;
    1.84 +	simResults->commTrace[1]->numComms= 1;
    1.85 +	simResults->commTrace[1]->commRecs= malloc(sizeof(HWSimCommRec));
    1.86 +	simResults->commTrace[1]->commRecs->commID= 1;
    1.87 +	simResults->commTrace[1]->commRecs->msgID= 1;
    1.88 +	simResults->commTrace[1]->commRecs->startTime= 4;
    1.89 +	simResults->commTrace[1]->commRecs->endTime= 5;
    1.90 +
    1.91 +	//ping to pong 6 - 7 
    1.92 +	simResults->commTrace[2]->fromTimeline= pingTimeline;
    1.93 +	simResults->commTrace[2]->toTimeline= pongTimeline;
    1.94 +	simResults->commTrace[2]->numComms= 1;
    1.95 +	simResults->commTrace[2]->commRecs= malloc(sizeof(HWSimCommRec));
    1.96 +	simResults->commTrace[2]->commRecs->commID= 2;
    1.97 +	simResults->commTrace[2]->commRecs->msgID= 0;
    1.98 +	simResults->commTrace[2]->commRecs->startTime= 6;
    1.99 +	simResults->commTrace[2]->commRecs->endTime= 7;
   1.100 +
   1.101 +	return simResults;
   1.102 +
   1.103 +}