no changes, comment only etc
This commit is contained in:
parent
0c8b6c34d4
commit
08c4ffca8d
|
|
@ -133,6 +133,7 @@ beginPlot(JOB *analysisPtr, CKTcircuit *circuitPtr, char *cktName, char *analNam
|
||||||
/*to resume a run saj
|
/*to resume a run saj
|
||||||
*All it does is reassign the file pointer and return (requires *runp to be NULL if this is not needed)
|
*All it does is reassign the file pointer and return (requires *runp to be NULL if this is not needed)
|
||||||
*/
|
*/
|
||||||
|
/* printf("From outitf.c: BEGIN PLOT --------------------------------------------\n"); holmes: find out when this function call is made relative to lxt2 creation. */
|
||||||
if (dataType == 666 && numNames == 666) {
|
if (dataType == 666 && numNames == 666) {
|
||||||
run = *runp;
|
run = *runp;
|
||||||
run->writeOut = ft_getOutReq(&run->fp, &run->runPlot, &run->binary,
|
run->writeOut = ft_getOutReq(&run->fp, &run->runPlot, &run->binary,
|
||||||
|
|
@ -155,7 +156,7 @@ beginPlot(JOB *analysisPtr, CKTcircuit *circuitPtr, char *cktName, char *analNam
|
||||||
run->windowed = windowed;
|
run->windowed = windowed;
|
||||||
run->numData = 0;
|
run->numData = 0;
|
||||||
|
|
||||||
an_name = spice_analysis_get_name(analysisPtr->JOBtype);
|
an_name = spice_analysis_get_name(analysisPtr->JOBtype); /* holmes: get the analysis name */
|
||||||
ft_curckt->ci_last_an = an_name;
|
ft_curckt->ci_last_an = an_name;
|
||||||
|
|
||||||
/* Now let's see which of these things we need. First toss in the
|
/* Now let's see which of these things we need. First toss in the
|
||||||
|
|
@ -163,12 +164,12 @@ beginPlot(JOB *analysisPtr, CKTcircuit *circuitPtr, char *cktName, char *analNam
|
||||||
* us to save that we can find in the name list. Finally unpack
|
* us to save that we can find in the name list. Finally unpack
|
||||||
* the remaining saves into parameters.
|
* the remaining saves into parameters.
|
||||||
*/
|
*/
|
||||||
numsaves = ft_getSaves(&saves);
|
numsaves = ft_getSaves(&saves); /* holmes: retrieve the "saveable" information. Each saveable thing can come from one or more analyses. */
|
||||||
if (numsaves) {
|
if (numsaves) {
|
||||||
savesused = TMALLOC(bool, numsaves);
|
savesused = TMALLOC(bool, numsaves); /* holmes: looks like an index for tagging which things the user wants saved. */
|
||||||
saveall = FALSE;
|
saveall = FALSE; /* holmes: Start with the lowest cost assumption, not saving anything */
|
||||||
for (i = 0; i < numsaves; i++) {
|
for (i = 0; i < numsaves; i++) {
|
||||||
if (saves[i].analysis && !cieq(saves[i].analysis, an_name)) {
|
if (saves[i].analysis && !cieq(saves[i].analysis, an_name)) { /* holmes: if the saveable things match the current analysis tag it as usable for this analysis. */
|
||||||
/* ignore this one this time around */
|
/* ignore this one this time around */
|
||||||
savesused[i] = TRUE;
|
savesused[i] = TRUE;
|
||||||
continue;
|
continue;
|
||||||
|
|
@ -176,7 +177,7 @@ beginPlot(JOB *analysisPtr, CKTcircuit *circuitPtr, char *cktName, char *analNam
|
||||||
|
|
||||||
/* Check for ".save all" and new synonym ".save allv" */
|
/* Check for ".save all" and new synonym ".save allv" */
|
||||||
|
|
||||||
if (cieq(saves[i].name, "all") || cieq(saves[i].name, "allv")) {
|
if (cieq(saves[i].name, "all") || cieq(saves[i].name, "allv")) { /* holmes: tag all voltages */
|
||||||
saveall = TRUE;
|
saveall = TRUE;
|
||||||
savesused[i] = TRUE;
|
savesused[i] = TRUE;
|
||||||
saves[i].used = 1;
|
saves[i].used = 1;
|
||||||
|
|
@ -185,7 +186,7 @@ beginPlot(JOB *analysisPtr, CKTcircuit *circuitPtr, char *cktName, char *analNam
|
||||||
|
|
||||||
/* And now for the new ".save alli" option */
|
/* And now for the new ".save alli" option */
|
||||||
|
|
||||||
if (cieq(saves[i].name, "alli")) {
|
if (cieq(saves[i].name, "alli")) { /* holmes: tag all voltages */
|
||||||
savealli = TRUE;
|
savealli = TRUE;
|
||||||
savesused[i] = TRUE;
|
savesused[i] = TRUE;
|
||||||
saves[i].used = 1;
|
saves[i].used = 1;
|
||||||
|
|
@ -196,9 +197,9 @@ beginPlot(JOB *analysisPtr, CKTcircuit *circuitPtr, char *cktName, char *analNam
|
||||||
|
|
||||||
/* Pass 0. */
|
/* Pass 0. */
|
||||||
if (refName) {
|
if (refName) {
|
||||||
addDataDesc(run, refName, refType, -1);
|
addDataDesc(run, refName, refType, -1); /* Adding a data description to a particular analysis run */
|
||||||
for (i = 0; i < numsaves; i++)
|
for (i = 0; i < numsaves; i++)
|
||||||
if (!savesused[i] && name_eq(saves[i].name, refName)) {
|
if (!savesused[i] && name_eq(saves[i].name, refName)) { /* holmes: not sure what refName is, simulator reference node, (time?) ac/xfer analysis */
|
||||||
savesused[i] = TRUE;
|
savesused[i] = TRUE;
|
||||||
saves[i].used = 1;
|
saves[i].used = 1;
|
||||||
}
|
}
|
||||||
|
|
@ -209,17 +210,18 @@ beginPlot(JOB *analysisPtr, CKTcircuit *circuitPtr, char *cktName, char *analNam
|
||||||
|
|
||||||
/* Pass 1. */
|
/* Pass 1. */
|
||||||
if (numsaves && !saveall) {
|
if (numsaves && !saveall) {
|
||||||
for (i = 0; i < numsaves; i++) {
|
for (i = 0; i < numsaves; i++) { /* holmes: dataName is from Ngspice process, does not include Xspice process */
|
||||||
printf("saves[%d].name(%s)\n",i,saves[i].name);
|
printf("saves[%d].name(%s)\n",i,saves[i].name);
|
||||||
if (!savesused[i])
|
if (!savesused[i]) {
|
||||||
for (j = 0; j < numNames; j++)
|
for (j = 0; j < numNames; j++)
|
||||||
if (name_eq(saves[i].name, dataNames[j])) {
|
if (name_eq(saves[i].name, dataNames[j])) { /* holmes: if user specifies XSPICE nodes they are ignored */
|
||||||
printf("saves[%d].name(%s) dataNames[%d](%s)\n",i,saves[i].name,j,dataNames[j]); /* holmes: looking for missing digital signals */
|
printf("saves[%d].name(%s) dataNames[%d](%s)\n",i,saves[i].name,j,dataNames[j]); /* holmes: looking for missing digital signals */
|
||||||
addDataDesc(run, dataNames[j], dataType, j);
|
addDataDesc(run, dataNames[j], dataType, j);
|
||||||
savesused[i] = TRUE;
|
savesused[i] = TRUE;
|
||||||
saves[i].used = 1;
|
saves[i].used = 1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
for (i = 0; i < numNames; i++)
|
for (i = 0; i < numNames; i++)
|
||||||
|
|
@ -335,7 +337,7 @@ beginPlot(JOB *analysisPtr, CKTcircuit *circuitPtr, char *cktName, char *analNam
|
||||||
addSpecialDesc(run, saves[i].name, namebuf, parambuf, depind);
|
addSpecialDesc(run, saves[i].name, namebuf, parambuf, depind);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (numsaves) {
|
if (numsaves) { /* holmes: all data descriptions are now attached to the run, so free up scratch pad. */
|
||||||
for (i = 0; i < numsaves; i++) {
|
for (i = 0; i < numsaves; i++) {
|
||||||
tfree(saves[i].analysis);
|
tfree(saves[i].analysis);
|
||||||
tfree(saves[i].name);
|
tfree(saves[i].name);
|
||||||
|
|
@ -385,7 +387,7 @@ addDataDesc(runDesc *run, char *name, int type, int ind)
|
||||||
dataDesc *data;
|
dataDesc *data;
|
||||||
|
|
||||||
if (!run->numData)
|
if (!run->numData)
|
||||||
run->data = TMALLOC(dataDesc, 1);
|
run->data = TMALLOC(dataDesc, 1); /* holmes: a data descriptions is added to the run */
|
||||||
else
|
else
|
||||||
run->data = TREALLOC(dataDesc, run->data, run->numData + 1);
|
run->data = TREALLOC(dataDesc, run->data, run->numData + 1);
|
||||||
|
|
||||||
|
|
@ -459,12 +461,14 @@ OUTpData(runDesc *plotPtr, IFvalue *refValue, IFvalue *valuePtr)
|
||||||
|
|
||||||
if (run->writeOut) {
|
if (run->writeOut) {
|
||||||
|
|
||||||
|
/* printf("OUTpData run->writeout is true\n"); holmes */
|
||||||
if (run->pointCount == 1)
|
if (run->pointCount == 1)
|
||||||
fileInit_pass2(run);
|
fileInit_pass2(run);
|
||||||
|
|
||||||
fileStartPoint(run->fp, run->binary, run->pointCount);
|
fileStartPoint(run->fp, run->binary, run->pointCount);
|
||||||
|
|
||||||
if (run->refIndex != -1) {
|
if (run->refIndex != -1) {
|
||||||
|
/* printf("OUTpData run->refIndex = -1\n"); holmes */
|
||||||
if (run->isComplex) {
|
if (run->isComplex) {
|
||||||
fileAddComplexValue(run->fp, run->binary, refValue->cValue);
|
fileAddComplexValue(run->fp, run->binary, refValue->cValue);
|
||||||
|
|
||||||
|
|
@ -484,6 +488,7 @@ OUTpData(runDesc *plotPtr, IFvalue *refValue, IFvalue *valuePtr)
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
/* And the same for a non-complex value */
|
/* And the same for a non-complex value */
|
||||||
|
/* printf("OUTpData non-complex fileAddRealValue\n"); holmes */
|
||||||
|
|
||||||
fileAddRealValue(run->fp, run->binary, refValue->rValue);
|
fileAddRealValue(run->fp, run->binary, refValue->rValue);
|
||||||
#ifndef HAS_WINGUI
|
#ifndef HAS_WINGUI
|
||||||
|
|
@ -509,9 +514,11 @@ OUTpData(runDesc *plotPtr, IFvalue *refValue, IFvalue *valuePtr)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (run->data[i].regular) {
|
if (run->data[i].regular) {
|
||||||
if (run->data[i].type == IF_REAL)
|
if (run->data[i].type == IF_REAL) {
|
||||||
|
/* printf("OUTpData non-complex fileAddRealValue regular IF_REAL.\n"); holmes */
|
||||||
fileAddRealValue(run->fp, run->binary,
|
fileAddRealValue(run->fp, run->binary,
|
||||||
valuePtr->v.vec.rVec [run->data[i].outIndex]);
|
valuePtr->v.vec.rVec [run->data[i].outIndex]);
|
||||||
|
}
|
||||||
else if (run->data[i].type == IF_COMPLEX)
|
else if (run->data[i].type == IF_COMPLEX)
|
||||||
fileAddComplexValue(run->fp, run->binary,
|
fileAddComplexValue(run->fp, run->binary,
|
||||||
valuePtr->v.vec.cVec [run->data[i].outIndex]);
|
valuePtr->v.vec.cVec [run->data[i].outIndex]);
|
||||||
|
|
@ -555,6 +562,7 @@ OUTpData(runDesc *plotPtr, IFvalue *refValue, IFvalue *valuePtr)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* printf("OUTpData fileEndPoint.\n"); holmes */
|
||||||
fileEndPoint(run->fp, run->binary);
|
fileEndPoint(run->fp, run->binary);
|
||||||
|
|
||||||
/* Check that the write to disk completed successfully, otherwise abort */
|
/* Check that the write to disk completed successfully, otherwise abort */
|
||||||
|
|
@ -890,10 +898,14 @@ fileStartPoint(FILE *fp, bool bin, int num)
|
||||||
static void
|
static void
|
||||||
fileAddRealValue(FILE *fp, bool bin, double value)
|
fileAddRealValue(FILE *fp, bool bin, double value)
|
||||||
{
|
{
|
||||||
if (bin)
|
if (bin) {
|
||||||
rowbuf[column++] = value;
|
rowbuf[column++] = value;
|
||||||
else
|
/* printf("writing data to binary file\n"); holmes: Is this used in dctran? */
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
/* printf("writing data to ascii file\n"); holmes: Is this used in dctran? */
|
||||||
fprintf(fp, "\t%.*e\n", DOUBLE_PRECISION, value);
|
fprintf(fp, "\t%.*e\n", DOUBLE_PRECISION, value);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -404,12 +404,13 @@ com_write(wordlist *wl)
|
||||||
if (wl)
|
if (wl)
|
||||||
names = ft_getpnames(wl, TRUE);
|
names = ft_getpnames(wl, TRUE);
|
||||||
else
|
else
|
||||||
names = ft_getpnames(&all, TRUE);
|
names = ft_getpnames(&all, TRUE); /* holmes: ft_getnames-all not getting event driven names */
|
||||||
|
|
||||||
if (names == NULL)
|
if (names == NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
for (pn = names; pn; pn = pn->pn_next) {
|
for (pn = names; pn; pn = pn->pn_next) {
|
||||||
|
/* printf("n->pn_name(%s)\n", n->pn_name); holmes: print the node name */
|
||||||
d = ft_evaluate(pn);
|
d = ft_evaluate(pn);
|
||||||
if (!d)
|
if (!d)
|
||||||
goto done;
|
goto done;
|
||||||
|
|
@ -453,6 +454,7 @@ com_write(wordlist *wl)
|
||||||
if (vec_eq(d, tpl->pl_scale)) {
|
if (vec_eq(d, tpl->pl_scale)) {
|
||||||
newplot.pl_scale = vv;
|
newplot.pl_scale = vv;
|
||||||
scalefound = TRUE;
|
scalefound = TRUE;
|
||||||
|
/* printf("scalefound = TRUE\n"); holmes: */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -472,21 +474,37 @@ com_write(wordlist *wl)
|
||||||
*/
|
*/
|
||||||
for (;;) {
|
for (;;) {
|
||||||
scalefound = FALSE;
|
scalefound = FALSE;
|
||||||
|
/* printf("--------for;;----------------\n"); holmes: */
|
||||||
for (d = newplot.pl_dvecs; d; d = d->v_next) {
|
for (d = newplot.pl_dvecs; d; d = d->v_next) {
|
||||||
|
/* printf("----------------------------\n"); holmes:
|
||||||
|
printf("d(%p)\n", d);
|
||||||
|
printf("d->v_name(%s)\n", d->v_name);
|
||||||
|
printf("d->v_type(%i)\n", d->v_type);
|
||||||
|
printf("d->v_length(%i)\n", d->v_length);
|
||||||
|
printf("d->v_next(%p)\n", d->v_next);
|
||||||
|
printf("d->v_link2(%p)\n", d->v_link2);
|
||||||
|
printf("d->v_scale(%p)\n", d->v_scale);*/
|
||||||
|
/* if ((d->v_type<2) && d->v_scale) { */
|
||||||
if (d->v_scale) {
|
if (d->v_scale) {
|
||||||
for (vv = newplot.pl_dvecs; vv; vv = vv->v_next) {
|
for (vv = newplot.pl_dvecs; vv; vv = vv->v_next) {
|
||||||
|
/* printf("vv(%p)\n", vv); holmes: */
|
||||||
if (vec_eq(vv, d->v_scale)) {
|
if (vec_eq(vv, d->v_scale)) {
|
||||||
|
/* printf("data equivalent vv(%p) d->v_scale(%p)\n", vv, d->v_scale); holmes: */
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* We have to grab it... */
|
/* We have to grab it... */
|
||||||
if(vv && d->v_scale && vec_eq(vv, d->v_scale)) { /* holmes: */
|
if(vv && d->v_scale && vec_eq(vv, d->v_scale)) { /* holmes: */
|
||||||
|
/* printf("2nd data equivalent vv(%p) d->v_scale(%p)\n", vv, d->v_scale); holmes: */
|
||||||
} /* holmes: */
|
} /* holmes: */
|
||||||
else { /* holmes: */
|
else { /* holmes: */
|
||||||
vv = vec_copy(d->v_scale);
|
vv = vec_copy(d->v_scale);
|
||||||
|
/* printf("copy vv(%p) from d->v_scale(%p)\n", vv, d->v_scale); holmes: */
|
||||||
vv->v_next = newplot.pl_dvecs;
|
vv->v_next = newplot.pl_dvecs;
|
||||||
|
/* printf("move to vv->v_next(%p)\n", vv); holmes: */
|
||||||
newplot.pl_dvecs = vv;
|
newplot.pl_dvecs = vv;
|
||||||
scalefound = TRUE;
|
scalefound = TRUE;
|
||||||
|
/* printf("scalefound\n"); */
|
||||||
} /* holmes: */
|
} /* holmes: */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -41,6 +41,7 @@ CKTdump(CKTcircuit *ckt, double ref, void *plot)
|
||||||
refData.rValue = ref;
|
refData.rValue = ref;
|
||||||
valData.v.numValue = ckt->CKTmaxEqNum-1;
|
valData.v.numValue = ckt->CKTmaxEqNum-1;
|
||||||
valData.v.vec.rVec = ckt->CKTrhsOld+1;
|
valData.v.vec.rVec = ckt->CKTrhsOld+1;
|
||||||
|
/* printf("CKTdump SPfrontEnd->OUTpData(plot,&refData,&valData)\n"); holmes how often is it called? At each break point*/
|
||||||
SPfrontEnd->OUTpData (plot, &refData, &valData);
|
SPfrontEnd->OUTpData (plot, &refData, &valData);
|
||||||
|
|
||||||
#ifdef CIDER
|
#ifdef CIDER
|
||||||
|
|
|
||||||
|
|
@ -162,14 +162,17 @@ DCtran(CKTcircuit *ckt,
|
||||||
g_mif_info.circuit.anal_init = MIF_TRUE;
|
g_mif_info.circuit.anal_init = MIF_TRUE;
|
||||||
/* gtri - end - wbk */
|
/* gtri - end - wbk */
|
||||||
#endif
|
#endif
|
||||||
error = CKTnames(ckt,&numNames,&nameList);
|
error = CKTnames(ckt,&numNames,&nameList); /* holmes: returns a list of all analog signal names */
|
||||||
|
/* holmes: can make function to get list of evt names here */
|
||||||
|
|
||||||
if(error) return(error);
|
if(error) return(error);
|
||||||
SPfrontEnd->IFnewUid (ckt, &timeUid, NULL, "time", UID_OTHER, NULL);
|
SPfrontEnd->IFnewUid (ckt, &timeUid, NULL, "time", UID_OTHER, NULL);
|
||||||
|
/* printf("dctran1 SPfrontEnd->OUTpBeginPlo(t)\n"); holmes: looking at calls */
|
||||||
error = SPfrontEnd->OUTpBeginPlot (ckt, ckt->CKTcurJob,
|
error = SPfrontEnd->OUTpBeginPlot (ckt, ckt->CKTcurJob,
|
||||||
ckt->CKTcurJob->JOBname,
|
ckt->CKTcurJob->JOBname,
|
||||||
timeUid, IF_REAL,
|
timeUid, IF_REAL,
|
||||||
numNames, nameList, IF_REAL,
|
numNames, nameList, IF_REAL,
|
||||||
&(job->TRANplot));
|
&(job->TRANplot)); /* holmes: checks what user typed in to save against what is in the circuit */
|
||||||
tfree(nameList);
|
tfree(nameList);
|
||||||
if(error) return(error);
|
if(error) return(error);
|
||||||
|
|
||||||
|
|
@ -494,8 +497,10 @@ DCtran(CKTcircuit *ckt,
|
||||||
/* gtri - begin - wbk - Update event queues/data for accepted timepoint */
|
/* gtri - begin - wbk - Update event queues/data for accepted timepoint */
|
||||||
/* Note: this must be done AFTER sending results to SI so it can't */
|
/* Note: this must be done AFTER sending results to SI so it can't */
|
||||||
/* go next to CKTaccept() above */
|
/* go next to CKTaccept() above */
|
||||||
if(ckt->evt->counts.num_insts > 0)
|
if(ckt->evt->counts.num_insts > 0) {
|
||||||
|
/* printf("dctran XSPICE EVTaccept is called;\n"); holmes: looking at calls */
|
||||||
EVTaccept(ckt, ckt->CKTtime);
|
EVTaccept(ckt, ckt->CKTtime);
|
||||||
|
}
|
||||||
/* gtri - end - wbk - Update event queues/data for accepted timepoint */
|
/* gtri - end - wbk - Update event queues/data for accepted timepoint */
|
||||||
#endif
|
#endif
|
||||||
ckt->CKTstat->STAToldIter = ckt->CKTstat->STATnumIter;
|
ckt->CKTstat->STAToldIter = ckt->CKTstat->STATnumIter;
|
||||||
|
|
@ -511,6 +516,7 @@ DCtran(CKTcircuit *ckt,
|
||||||
lxt2_end(job->TRANplot);
|
lxt2_end(job->TRANplot);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* printf("dctran XSPICE SPfrontEnd->OUTendPlot(((TRANan*)ckt->CKTcurJob)->TRANplot);\n"); holmes: looking at calls */
|
||||||
SPfrontEnd->OUTendPlot (job->TRANplot);
|
SPfrontEnd->OUTendPlot (job->TRANplot);
|
||||||
job->TRANplot = NULL;
|
job->TRANplot = NULL;
|
||||||
UPDATE_STATS(0);
|
UPDATE_STATS(0);
|
||||||
|
|
|
||||||
|
|
@ -95,6 +95,7 @@ void EVTbackup(
|
||||||
double new_time) /* the time to backup to */
|
double new_time) /* the time to backup to */
|
||||||
{
|
{
|
||||||
|
|
||||||
|
/* printf("From EVTbackup\n"); holmes */
|
||||||
|
|
||||||
/* Backup the node data */
|
/* Backup the node data */
|
||||||
EVTbackup_node_data(ckt, new_time);
|
EVTbackup_node_data(ckt, new_time);
|
||||||
|
|
|
||||||
|
|
@ -66,6 +66,7 @@ void EVTcall_hybrids(
|
||||||
|
|
||||||
int *hybrid_index;
|
int *hybrid_index;
|
||||||
|
|
||||||
|
/* printf("From EVTcall_hybrids\n"); holmes */
|
||||||
|
|
||||||
/* Get needed data for fast access */
|
/* Get needed data for fast access */
|
||||||
num_hybrids = ckt->evt->counts.num_hybrids;
|
num_hybrids = ckt->evt->counts.num_hybrids;
|
||||||
|
|
|
||||||
|
|
@ -76,6 +76,7 @@ void EVTdequeue(
|
||||||
|
|
||||||
/* Take all items on output queue with matching time */
|
/* Take all items on output queue with matching time */
|
||||||
/* and set changed flags in output queue */
|
/* and set changed flags in output queue */
|
||||||
|
/* printf("From EVTdequeue\n"); holmes */
|
||||||
EVTdequeue_output(ckt, time);
|
EVTdequeue_output(ckt, time);
|
||||||
|
|
||||||
/* Take all items on inst queue with matching time */
|
/* Take all items on inst queue with matching time */
|
||||||
|
|
|
||||||
|
|
@ -136,6 +136,7 @@ void EVTdump(
|
||||||
|
|
||||||
Mif_Boolean_t equal;
|
Mif_Boolean_t equal;
|
||||||
|
|
||||||
|
/* printf("From EVTdump\n"); holmes */
|
||||||
|
|
||||||
/* Return immediately if IPC is not enabled */
|
/* Return immediately if IPC is not enabled */
|
||||||
if(! g_ipc.enabled)
|
if(! g_ipc.enabled)
|
||||||
|
|
|
||||||
|
|
@ -112,6 +112,8 @@ int EVTload(
|
||||||
void *value_ptr;
|
void *value_ptr;
|
||||||
|
|
||||||
|
|
||||||
|
/* printf("From EVTload\n"); holmes */
|
||||||
|
|
||||||
/* ***************************** */
|
/* ***************************** */
|
||||||
/* Prepare the code model inputs */
|
/* Prepare the code model inputs */
|
||||||
/* ***************************** */
|
/* ***************************** */
|
||||||
|
|
|
||||||
|
|
@ -67,6 +67,7 @@ double EVTnext_time(
|
||||||
Evt_Inst_Queue_t *inst_queue;
|
Evt_Inst_Queue_t *inst_queue;
|
||||||
Evt_Output_Queue_t *output_queue;
|
Evt_Output_Queue_t *output_queue;
|
||||||
|
|
||||||
|
/* printf("From EVTnext_time\n"); holmes */
|
||||||
|
|
||||||
/* Initialize next time to machine infinity */
|
/* Initialize next time to machine infinity */
|
||||||
next_time = 1e30;
|
next_time = 1e30;
|
||||||
|
|
|
||||||
|
|
@ -156,4 +156,11 @@ void EVTnode_copy(
|
||||||
g_evt_udn_info[udn_index]->copy (from->inverted_value,
|
g_evt_udn_info[udn_index]->copy (from->inverted_value,
|
||||||
here->inverted_value);
|
here->inverted_value);
|
||||||
}
|
}
|
||||||
|
/* holmes
|
||||||
|
if(node_table[node_index]->udn_index == 0) {
|
||||||
|
printf("From EVTnode_copy Name(%s) time(%g) step(%g) value(%d)\n",node_table[node_index]->name,ckt->CKTtime,from->step,*((int *)(from->node_value)));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
printf("From EVTnode_copy Name(%s) time(%g) step(%g) value(%g)\n",node_table[node_index]->name,ckt->CKTtime,from->step,*((double *)(from->node_value)));
|
||||||
|
}*/
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -97,6 +97,8 @@ void EVTqueue_output(
|
||||||
|
|
||||||
NG_IGNORE(udn_index);
|
NG_IGNORE(udn_index);
|
||||||
|
|
||||||
|
/* printf("From EVTqueue_output\n"); holmes */
|
||||||
|
|
||||||
/* Get pointers for fast access */
|
/* Get pointers for fast access */
|
||||||
output_queue = &(ckt->evt->queue.output);
|
output_queue = &(ckt->evt->queue.output);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -99,6 +99,7 @@ int EVTsetup(
|
||||||
|
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
|
/* printf("From EVTsetup\n"); holmes */
|
||||||
|
|
||||||
/* Exit immediately if no event-driven instances in circuit */
|
/* Exit immediately if no event-driven instances in circuit */
|
||||||
if(ckt->evt->counts.num_insts == 0)
|
if(ckt->evt->counts.num_insts == 0)
|
||||||
|
|
@ -459,6 +460,8 @@ static int EVTsetup_jobs(
|
||||||
jobs->msg_data[i] = data->msg;
|
jobs->msg_data[i] = data->msg;
|
||||||
jobs->statistics[i] = data->statistics;
|
jobs->statistics[i] = data->statistics;
|
||||||
|
|
||||||
|
/* printf("From evtsetup.c jobs->job_name[num_jobs(%d)](%s)\n",i,jobs->job_name[i]); holmes: looking at jobs */
|
||||||
|
|
||||||
return(OK);
|
return(OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -132,6 +132,7 @@ void EVTtermInsert(
|
||||||
|
|
||||||
int output_subindex;
|
int output_subindex;
|
||||||
|
|
||||||
|
/* printf("From EVTtermInsert\n"); holmes */
|
||||||
|
|
||||||
/* Get the instance index and create new entry in inst */
|
/* Get the instance index and create new entry in inst */
|
||||||
/* info list if this is a new instance. */
|
/* info list if this is a new instance. */
|
||||||
|
|
@ -188,6 +189,7 @@ static void EVTinst_insert(
|
||||||
|
|
||||||
NG_IGNORE(err_msg);
|
NG_IGNORE(err_msg);
|
||||||
|
|
||||||
|
/* printf("From EVTinst_insert M(%s) I(%s)\n",fast->MIFmodPtr->MIFmodName,fast->MIFname); holmes: Might be the way in for SDF annotation */
|
||||||
|
|
||||||
/* Scan list of instances in event structure to see if already there */
|
/* Scan list of instances in event structure to see if already there */
|
||||||
/* and get the index */
|
/* and get the index */
|
||||||
|
|
@ -260,6 +262,7 @@ static void EVTnode_insert(
|
||||||
Evt_Inst_Index_t *inst;
|
Evt_Inst_Index_t *inst;
|
||||||
Evt_Inst_Index_t **inst_ptr;
|
Evt_Inst_Index_t **inst_ptr;
|
||||||
|
|
||||||
|
/* printf("From EVTnode_insert M(%s) I(%s) N(%s) Type(%s)\n",fast->MIFmodPtr->MIFmodName,fast->MIFname,node_name,type_name); holmes: Might be the way in for SDF annotation */
|
||||||
|
|
||||||
/* *************************************** */
|
/* *************************************** */
|
||||||
/* Get and check the node type information */
|
/* Get and check the node type information */
|
||||||
|
|
@ -417,6 +420,8 @@ static void EVTport_insert(
|
||||||
|
|
||||||
NG_IGNORE(err_msg);
|
NG_IGNORE(err_msg);
|
||||||
|
|
||||||
|
/* printf("From EVTnode_insert M(%s) I(%s) P(%s)\n",fast->MIFmodPtr->MIFmodName,fast->MIFname,node_name); holmes: Might be the way in for SDF annotation */
|
||||||
|
|
||||||
/* Find the end of the port info list */
|
/* Find the end of the port info list */
|
||||||
port = ckt->evt->info.port_list;
|
port = ckt->evt->info.port_list;
|
||||||
port_ptr = &(ckt->evt->info.port_list);
|
port_ptr = &(ckt->evt->info.port_list);
|
||||||
|
|
@ -481,6 +486,8 @@ static void EVToutput_insert(
|
||||||
|
|
||||||
NG_IGNORE(err_msg);
|
NG_IGNORE(err_msg);
|
||||||
|
|
||||||
|
/* printf("From EVTport_insert I(%s)\n",fast->MIFname); holmes: Might be the way in for SDF annotation */
|
||||||
|
|
||||||
/* Find the end of the port info list */
|
/* Find the end of the port info list */
|
||||||
output = ckt->evt->info.output_list;
|
output = ckt->evt->info.output_list;
|
||||||
output_ptr = &(ckt->evt->info.output_list);
|
output_ptr = &(ckt->evt->info.output_list);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue