I like comp.cad.cadence, it reminds me of home.
Hi, This often happens if you already have a schematic and a symbol view of your cell and you manually modify your terminals in the schematic and then to have the correspondence also in your symbol. If you do this manually which means not use the create cellview form cellview command your component description format CDF for this cell gets not updated and as a result you will see this warning. So use the create cellview form cellview to update your symbol and the the modify option or you have to update your CDF also manually according to your terminal changes. Bernd
Also happens when you copy (move) a cell to another library and (of course by default) or "add" a terminal, edit a pin name, dick with the terminal netlisting order .. add code to change thi instance name (the infamous poymophic device .... ) .... the required CDF gets left behind ... another framework blunder .... but you can "fix" it by doing a CDF copy .... rant mode on ... what a load of .$%^&* CDF is .. Istill remember when netlisting/terminal info was visible as properties on cells ..... (hint hint ) .. but then again I was around when the framework was called SDA & I knew Jim. oh well .. rant mode off YMMV -- Gerry
Barry: There is an option you can set in IC5141 to update the termOrder property when the symbol is checked and saved: envSetVal("auCore.misc" "updateCDFtermOrder" 'boolean t) In IC5033 it is: envSetVal("asimenv.misc" "updateCDFtermOrder" 'boolean t) The SKILL command to update the CDF simInfo section is: artGenerateHierSymbolCDF(cv_dbid) The artGenerateHierSymbolCDF function opens up a pop up box asking if you want to overwrite the base CDF. You could instead update the termOrder list as follows instead of using artGenerateHierSymbolCDF(): ;*** cdf_dbid = cdfGetBaseCellCDF(cv_dbid~>cell) ;get and alphabatize terminal list atoz_terminal_list = sort(cv_dbid~>terminals~>name nil) ;generate string list of simulators simulator_list = cdf_dbid->simInfo->? foreach(simulator simulator_list if(get(cdf_dbid->simInfo simulator)->termOrder != atoz_terminal_list then get(cdf_dbid->simInfo simulator)->termOrder = atoz_terminal_list printf("[INFO] Updated %-9s simInfo termOrder to %L\n" simulator atoz_terminal_list) ) ; if ) ; foreach cdfSaveCDF(cdf_dbid) ;*** Note that veriloga has a section called viewInfo similar to termOrder which can be updated with the following function: ahdlUpdateViewInfo(cv_dbid~>libName ?cell cv_dbid~>cellName ?view view) I have a fundamental question that I can't get anyone at Cadence to answer. Why does create cellview from cellview add the termOrder property (it would netlist fine without it, correct)? All the termOrder property does is create grief as it might not get updated properly as terminals are added and deleted and create this mismatch which causes confusion and wastes our time... What is the reason for this property and what is the valid use case?
Erik, Good question indeed. You can supress the CDF generation when you do schematic CV to symbol. Just mess up with schCvToCvTriggers->triggers You can probably even define you own trigger that will delete the termOrder CDF. If you try it, tell me if that has no nasty effect further in the flow. It would not be so surprising that some tool expects termOrder.