comparison CircuitNetlistCreator.c @ 16:df53f52ef49c

naming conflicts fixed HWSimResults changed, so FakeSim needs an update -> TODO Stefan
author hausers
date Fri, 17 Feb 2012 17:41:12 +0100
parents ddd87abfeefd
children fa277c6ce6f2
comparison
equal deleted inserted replaced
3:29e6d6469f69 4:915b4cc14ff1
8 #include "HWSim__PingPong__HWDef/HWSim__PingPong__HWDef.h" 8 #include "HWSim__PingPong__HWDef/HWSim__PingPong__HWDef.h"
9 9
10 /*'' is an expr resolves to an actual commPath struct instance 10 /*'' is an expr resolves to an actual commPath struct instance
11 */ 11 */
12 #define setCommPathValuesTo( commPath, fromElIdx, outPort, toElIdx, inPort,\ 12 #define setCommPathValuesTo( commPath, fromElIdx, outPort, toElIdx, inPort,\
13 commTimeFnPtr, dataPtr)\ 13 timeFnPtr, dataPtr)\
14 do{\ 14 do{\
15 commPath->idxOfFromElem = fromElIdx; \ 15 commPath->idxOfFromElem = fromElIdx; \
16 commPath->idxOfFromOutPort = fromElIdx; \ 16 commPath->idxOfFromOutPort = fromElIdx; \
17 commPath->idxOfToElem = toElIdx; \ 17 commPath->idxOfToElem = toElIdx; \
18 commPath->idxOfToInPort = inPort; \ 18 commPath->idxOfToInPort = inPort; \
19 commPath->commTimeFnPtr = commTimeFnPtr;\ 19 commPath->commTimeCalcFn = timeFnPtr;\
20 commPath->archSpecCommPathData = dataPtr; \ 20 commPath->archSpecCommPathData = dataPtr; \
21 }while(0); //macro magic for namespace 21 }while(0); //macro magic for namespace
22 22
23 23
24 HWSimActivityType* createPingPongActivityType (); 24 HWSimActivityType* createPingPongActivityType ();
46 { HWSimNetlist *netlist; 46 { HWSimNetlist *netlist;
47 HWSimCommPath **commPaths; 47 HWSimCommPath **commPaths;
48 HWSimElem **elems; 48 HWSimElem **elems;
49 int32 numElems; 49 int32 numElems;
50 int32 numCommPaths; 50 int32 numCommPaths;
51 HWSimActivityType *foo;
52 51
53 netlist = malloc( sizeof(HWSimNetlist) ); 52 netlist = malloc( sizeof(HWSimNetlist) );
54 //declare elems numElems = 2; 53 numElems= 2;
55 elems = malloc( numElems * sizeof(HWSimElem) ); 54 elems = malloc( numElems * sizeof(HWSimElem) );
56 netlist->numElems = numElems; 55 netlist->numElems = numElems;
57 netlist->elems = elems; 56 netlist->elems = elems;
58 netlist->numActivityTypes = 1; 57 netlist->numActivityTypes = 1;
59 netlist->activityTypes = malloc(netlist->numActivityTypes*sizeof(HWSimActivityType*)); 58 netlist->activityTypes = malloc(netlist->numActivityTypes*sizeof(HWSimActivityType*));
76 numCommPaths = 2; 75 numCommPaths = 2;
77 commPaths = malloc( numCommPaths * sizeof(HWSimCommPath) ); 76 commPaths = malloc( numCommPaths * sizeof(HWSimCommPath) );
78 netlist->numCommPaths= numCommPaths; 77 netlist->numCommPaths= numCommPaths;
79 netlist->commPaths= commPaths; 78 netlist->commPaths= commPaths;
80 //TL 0, out-port 0 to TL 1, in-port 0 79 //TL 0, out-port 0 to TL 1, in-port 0
81 setCommPathValuesTo(commPaths[0], 0,0,1,0, &commPath_TimeSpanCalc, NULL); 80 setCommPathValuesTo(commPaths[0],0,0,1,0, commPath_TimeSpanCalc, NULL);
82 //TL 1, out-port 0 to TL 0, in-port 0 81 //TL 1, out-port 0 to TL 0, in-port 0
83 setCommPathValuesTo(commPaths[1], 1,0,0,0, &commPath_TimeSpanCalc, NULL); 82 setCommPathValuesTo(commPaths[1], 1,0,0,0, commPath_TimeSpanCalc, NULL);
84 83
85 //TODO: decide how do in-out bidirectional commPaths -- thinking make it two 84 //TODO: decide how do in-out bidirectional commPaths -- thinking make it two
86 // separate commPaths with guard between in-port and out-port 85 // separate commPaths with guard between in-port and out-port
86
87 return netlist;
87 } 88 }
88 89
89 //Stefan: copy netlist struct with VMS malloc after VMS initialized? 90 //Stefan: copy netlist struct with VMS malloc after VMS initialized?
91 //Sean: yes, otherwise the user has to deal with VMS details.
92 // So we should do this in HWSim__make_netlist_simulatable ?
93 // If so, I can do this
90 HWSimElem * 94 HWSimElem *
91 createAPingPongElem( HWSimNetlist *netlist ) 95 createAPingPongElem( HWSimNetlist *netlist )
92 { HWSimElem *TL; 96 { HWSimElem *TL;
93 TL = malloc( sizeof(HWSimElem) ); 97 TL = malloc( sizeof(HWSimElem) );
94 TL->numInPorts = 1; 98 TL->numInPorts = 1;
95 TL->numOutPorts = 1; 99 TL->numOutPorts = 1;
96 TL->inPorts = HWSim_ext__make_inPortsArray( TL->numInPorts ); 100 TL->inPorts = HWSim_ext__make_inPortsArray( TL->numInPorts );
97 TL->inPorts[-1].triggeredActivityType = IDLE_SPAN; //reset port 101 TL->inPorts[-1].triggeredActivityType = IDLE_SPAN; //reset port
98 TL->inPorts[0].triggeredActivityType = netlist->activityTypes[PING_PONG_TYPE]; 102 TL->inPorts[0].triggeredActivityType = netlist->activityTypes[PING_PONG_TYPE];
103 return TL;
99 } 104 }
100 105
101 HWSimActivityType * 106 HWSimActivityType *
102 createPingPongActivityType( ) 107 createPingPongActivityType( )
103 { HWSimActivityType *pingPongActivityType; 108 { HWSimActivityType *pingPongActivityType;