I got some error messages from 3-rd party tools like "xichip.xiip.ximid.m3", I wish to write a skill to descend into the last hier level and generate marker on the device m3, I plan to use the geSwitch to switch to the hier.
But when I parse the error message, I found the instance name is not match with the schematic, in schematic, the instance name is like "Ichip", "IIp", "IMID", etc., how to handle this kind of instance name? as you know, the spice netlist is case-insensitive, so the simulation tools always treat anythings as lower-case.
I also tried dbFindAnyInstByName, and found it is also case-sensitive, is there any skill function can read the instance name with case-insensitive? or even wildcard?
No. You'd have to search along cvId~>instances yourself.
Bear in mind that adding markers on the leaf cell may not make much sense if the problem does not occur on every occurence of that leaf cell...
Blues,First you can strip off the "x" prefix:
when(rexMatchp("^[Xx]" instName) instName=substring(instName 2) ;strip off first character (start at index 2) )
Then you can map its case this way:
foreach(inst cv~>instances when(instName == lowerCase(inst~>name) instName = inst~>name instId = inst ) )
If you are using IC61x (IC615, IC616 or ICADV121) then you can use the pcre* functions, the pcreCompile() function accepts an option for caseless matching: PCRE_CASELESS (0x00000001) which you can use perhaps in a single call without needing to strip off the leading 'x'?
Hope this helps.
In reply to skillUser:
Thank you all for the quick reply.
Looks like to search along the instances in cell view is the only solution, I have though it before, but I just afraid of the efficiency when the schematic is huge.