估计是callback的问题:
写了一个map文件如下:
-- Device Mapping file generated from SpiceIn GUI
devSelect := pch_mac pch_mac
propMatch := subtype pch_mac
propMap := M simM L l W w
devSelect := nch_mac nch_mac
propMatch := subtype nch_mac
propMap := M simM L l W w
devSelect := pch_lvt_mac pch_lvt_mac
propMatch := subtype pch_lvt_mac
propMap := M simM L l W w
devSelect := nch_lvt_mac nch_lvt_mac
propMatch := subtype nch_lvt_mac
propMap := M simM L l W w
devSelect := pch_18ud15_mac pch_18ud15_mac
propMatch := subtype pch_18ud15_mac
propMap := M simM L l W w
devSelect := nch_18ud15_mac nch_18ud15_mac
propMatch := subtype nch_18ud15_mac
propMap := M simM L l W w
devSelect := nch_18_mac nch_18_mac
propMatch := subtype nch_18_mac
propMap := M simM L l W w
devSelect := pch_18_mac pch_18_mac
propMatch := subtype pch_18_mac
propMap := M simM L l W w
然后使用了eetop上的一个*il 脚本刷新就ok了。针对tsmc脚本进行了小修改。
/*
Description??Update the schematics' callback.
Usage:
In CIW, load this file;
Type CallbackLib("library_name") to handle one library.
Type CallbackCell("library_name" "cell_name") to handle one cell.
*/
/*********************One library*********************************************/
procedure(CallbackLib(lib)
foreach(cellID ddGetObj(lib)->cells
cell=cellID->name
CallbackCell(lib cell) ;This function is defined below.
);end foreach cellID
printf(" ^_^ Library \"%s\" is finished. \n" lib)
);end procedure CallbackLib
/*********************One cell***********************************************/
procedure(CallbackCell(lib cell)
printf(" ^_^ Cell \"%s\" begins! \n" cell)
when(cv=dbOpenCellViewByType(lib cell "schematic" "" "a")
foreach(instID cv->instances
cdfgData=cdfGetInstCDF(instID)
/* We can add the CDF parameters here for callback. */
paramType=cdfFindParamByName(cdfgData "w")
when(paramType~>callback evalstring(paramType~>callback))
paramType=cdfFindParamByName(cdfgData "l")
when(paramType~>callback evalstring(paramType~>callback))
paramType=cdfFindParamByName(cdfgData "simM")
when(paramType~>callback evalstring(paramType~>callback))
cdfUpdateInstParam(instID)
);end foreach instID
;schCheck(cv) ;check & save may output too many warnings.
dbSave(cv)
dbClose(cv)
);end when cv
);end procedure CallbackCell