Add two macros TSTEP and TSTOP to XSPICE
This commit is contained in:
parent
1caee7903e
commit
e2f397f9b5
|
|
@ -333,6 +333,8 @@ typedef struct Mif_Circ_Data_s {
|
||||||
double frequency; /* Current analysis frequency */
|
double frequency; /* Current analysis frequency */
|
||||||
double temperature; /* Current analysis temperature */
|
double temperature; /* Current analysis temperature */
|
||||||
double t[8]; /* History of last 8 analysis times t[0]=time */
|
double t[8]; /* History of last 8 analysis times t[0]=time */
|
||||||
|
double tstep; /* tran simulation tstep */
|
||||||
|
double tstop; /* tran simulation tstop */
|
||||||
|
|
||||||
} Mif_Circ_Data_t;
|
} Mif_Circ_Data_t;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -102,6 +102,8 @@ TIME {return TOK_TIME;}
|
||||||
RAD_FREQ {return TOK_RAD_FREQ;}
|
RAD_FREQ {return TOK_RAD_FREQ;}
|
||||||
TEMPERATURE {return TOK_TEMPERATURE;}
|
TEMPERATURE {return TOK_TEMPERATURE;}
|
||||||
T {return TOK_T;}
|
T {return TOK_T;}
|
||||||
|
TSTEP {return TOK_TSTEP;}
|
||||||
|
TSTOP {return TOK_TSTOP;}
|
||||||
LOAD {return TOK_LOAD;}
|
LOAD {return TOK_LOAD;}
|
||||||
TOTAL_LOAD {return TOK_TOTAL_LOAD;}
|
TOTAL_LOAD {return TOK_TOTAL_LOAD;}
|
||||||
MESSAGE {return TOK_MESSAGE;}
|
MESSAGE {return TOK_MESSAGE;}
|
||||||
|
|
|
||||||
|
|
@ -337,6 +337,8 @@ static void append (char *str)
|
||||||
%token TOK_RAD_FREQ
|
%token TOK_RAD_FREQ
|
||||||
%token TOK_TEMPERATURE
|
%token TOK_TEMPERATURE
|
||||||
%token TOK_T
|
%token TOK_T
|
||||||
|
%token TOK_TSTEP
|
||||||
|
%token TOK_TSTOP
|
||||||
%token TOK_PARAM
|
%token TOK_PARAM
|
||||||
%token TOK_PARAM_SIZE
|
%token TOK_PARAM_SIZE
|
||||||
%token TOK_PARAM_NULL
|
%token TOK_PARAM_NULL
|
||||||
|
|
@ -437,6 +439,10 @@ macro : TOK_INIT
|
||||||
{fprintf (mod_yyout, "mif_private->circuit.call_type");}
|
{fprintf (mod_yyout, "mif_private->circuit.call_type");}
|
||||||
| TOK_TIME
|
| TOK_TIME
|
||||||
{fprintf (mod_yyout, "mif_private->circuit.time");}
|
{fprintf (mod_yyout, "mif_private->circuit.time");}
|
||||||
|
| TOK_TSTEP
|
||||||
|
{fprintf (mod_yyout, "mif_private->circuit.tstep");}
|
||||||
|
| TOK_TSTOP
|
||||||
|
{fprintf (mod_yyout, "mif_private->circuit.tstop");}
|
||||||
| TOK_RAD_FREQ
|
| TOK_RAD_FREQ
|
||||||
{fprintf (mod_yyout, "mif_private->circuit.frequency");}
|
{fprintf (mod_yyout, "mif_private->circuit.frequency");}
|
||||||
| TOK_TEMPERATURE
|
| TOK_TEMPERATURE
|
||||||
|
|
|
||||||
|
|
@ -194,6 +194,8 @@ MIFload(
|
||||||
/* otherwise, set the times to zero */
|
/* otherwise, set the times to zero */
|
||||||
if(anal_type == MIF_TRAN) {
|
if(anal_type == MIF_TRAN) {
|
||||||
cm_data.circuit.time = ckt->CKTtime;
|
cm_data.circuit.time = ckt->CKTtime;
|
||||||
|
cm_data.circuit.tstep = ckt->CKTstep;
|
||||||
|
cm_data.circuit.tstop = ckt->CKTfinalTime;
|
||||||
cm_data.circuit.t[0] = ckt->CKTtime;
|
cm_data.circuit.t[0] = ckt->CKTtime;
|
||||||
for(i = 1; i < 8; i++) {
|
for(i = 1; i < 8; i++) {
|
||||||
cm_data.circuit.t[i] = cm_data.circuit.t[i-1] - ckt->CKTdeltaOld[i-1];
|
cm_data.circuit.t[i] = cm_data.circuit.t[i-1] - ckt->CKTdeltaOld[i-1];
|
||||||
|
|
@ -203,6 +205,8 @@ MIFload(
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
cm_data.circuit.time = 0.0;
|
cm_data.circuit.time = 0.0;
|
||||||
|
cm_data.circuit.tstep = 0.0;
|
||||||
|
cm_data.circuit.tstop = 0.0;
|
||||||
for(i = 0; i < 8; i++) {
|
for(i = 0; i < 8; i++) {
|
||||||
cm_data.circuit.t[i] = 0.0;
|
cm_data.circuit.t[i] = 0.0;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue