exclude circuits with XSPICE 'A' devices from using 'savesnap'
(XSPICE data storage is not not yet implemented)
This commit is contained in:
parent
bbb1ecc6a8
commit
0be035fcf9
|
|
@ -1335,7 +1335,7 @@ void com_loadsnap(wordlist *wl)
|
||||||
CKTcircuit *my_ckt, *ckt;
|
CKTcircuit *my_ckt, *ckt;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Phesudo code:
|
Pseudo code:
|
||||||
|
|
||||||
source(file_name);
|
source(file_name);
|
||||||
This should setup all the device structs, voltage nodes, etc.
|
This should setup all the device structs, voltage nodes, etc.
|
||||||
|
|
@ -1373,10 +1373,7 @@ void com_loadsnap(wordlist *wl)
|
||||||
/* so it resumes ... */
|
/* so it resumes ... */
|
||||||
ft_curckt->ci_inprogress = TRUE;
|
ft_curckt->ci_inprogress = TRUE;
|
||||||
|
|
||||||
|
|
||||||
/* now load the binary file */
|
/* now load the binary file */
|
||||||
|
|
||||||
|
|
||||||
ckt = ft_curckt->ci_ckt;
|
ckt = ft_curckt->ci_ckt;
|
||||||
|
|
||||||
file = fopen(wl->wl_next->wl_word,"rb");
|
file = fopen(wl->wl_next->wl_word,"rb");
|
||||||
|
|
@ -1464,7 +1461,9 @@ void com_loadsnap(wordlist *wl)
|
||||||
_t(CKTfixLimit);
|
_t(CKTfixLimit);
|
||||||
_t(CKTnoOpIter);
|
_t(CKTnoOpIter);
|
||||||
_t(CKTisSetup);
|
_t(CKTisSetup);
|
||||||
|
#ifdef XSPICE
|
||||||
|
_t(CKTadevFlag);
|
||||||
|
#endif
|
||||||
_t(CKTtimeListSize);
|
_t(CKTtimeListSize);
|
||||||
_t(CKTtimeIndex);
|
_t(CKTtimeIndex);
|
||||||
_t(CKTsizeIncr);
|
_t(CKTsizeIncr);
|
||||||
|
|
@ -1485,14 +1484,14 @@ do {\
|
||||||
fread(&__i,sizeof(int),1,file);\
|
fread(&__i,sizeof(int),1,file);\
|
||||||
if(__i) {\
|
if(__i) {\
|
||||||
if(name)\
|
if(name)\
|
||||||
tfree(name);\
|
tfree(name);\
|
||||||
name = (type *)tmalloc(__i);\
|
name = (type *)tmalloc(__i);\
|
||||||
fread(name,1,__i,file);\
|
fread(name,1,__i,file);\
|
||||||
} else {\
|
} else {\
|
||||||
fprintf(cp_err, "size for vector " #name " is 0\n");\
|
fprintf(cp_err, "size for vector " #name " is 0\n");\
|
||||||
}\
|
}\
|
||||||
if((_size) != -1 && __i != (_size) * sizeof(type)) {\
|
if((_size) != -1 && __i != (_size) * (int)sizeof(type)) {\
|
||||||
fprintf(cp_err,"expected %ld, but got %d for "#name"\n",(long)(_size)*sizeof(type),__i);\
|
fprintf(cp_err,"expected %ld, but got %d for "#name"\n",(_size)*(long)sizeof(type),__i);\
|
||||||
}\
|
}\
|
||||||
} while(0)
|
} while(0)
|
||||||
|
|
||||||
|
|
@ -1545,6 +1544,8 @@ do {\
|
||||||
((TRANan *)ft_curckt->ci_curTask->jobs)->TRANplot = NULL;
|
((TRANan *)ft_curckt->ci_curTask->jobs)->TRANplot = NULL;
|
||||||
|
|
||||||
_foo(ckt->CKTstat,STATistics,1);
|
_foo(ckt->CKTstat,STATistics,1);
|
||||||
|
/* cannot load STATdevNum, so set to zero (needed for 'reset' command) */
|
||||||
|
ckt->CKTstat->STATdevNum = NULL;
|
||||||
|
|
||||||
|
|
||||||
#ifdef XSPICE
|
#ifdef XSPICE
|
||||||
|
|
@ -1607,6 +1608,14 @@ void com_savesnap(wordlist *wl)
|
||||||
|
|
||||||
ckt = ft_curckt->ci_ckt;
|
ckt = ft_curckt->ci_ckt;
|
||||||
|
|
||||||
|
#ifdef XSPICE
|
||||||
|
if (ckt->CKTadevFlag == 1) {
|
||||||
|
fprintf(cp_err, "Warning: savesnap not implemented for XSPICE A devices.\n");
|
||||||
|
fprintf(cp_err, " Command 'savesnap' will be ingnored!\n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
task = ft_curckt->ci_curTask;
|
task = ft_curckt->ci_curTask;
|
||||||
|
|
||||||
if(task->jobs->JOBtype != 4) {
|
if(task->jobs->JOBtype != 4) {
|
||||||
|
|
@ -1704,7 +1713,11 @@ void com_savesnap(wordlist *wl)
|
||||||
|
|
||||||
_foo(ckt->CKTstat,STATistics,1);
|
_foo(ckt->CKTstat,STATistics,1);
|
||||||
|
|
||||||
|
/* FIXME struct ckt->CKTstat->STATdevNum is not stored */
|
||||||
|
|
||||||
#ifdef XSPICE
|
#ifdef XSPICE
|
||||||
|
/* FIXME struct ckt->evt->data and others are not stored
|
||||||
|
thus savesnap, loadsnap not compatible with XSPICE code models*/
|
||||||
_foo(ckt->evt,Evt_Ckt_Data_t,1);
|
_foo(ckt->evt,Evt_Ckt_Data_t,1);
|
||||||
_foo(ckt->enh,Enh_Ckt_Data_t,1);
|
_foo(ckt->enh,Enh_Ckt_Data_t,1);
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue