Quantcast
Channel: Cadence Technology Forums
Viewing all 63175 articles
Browse latest View live

Forum Post: RE: line continuation symbol for the cds.lib file

$
0
0
Hi Aldo, No. The same question was asked recently in this post . Regards, Andrew.

Forum Post: RE: customizing ViVA result browser traces default settings

$
0
0
If it works in the .cdsinit via an envSetVal call, it should work in a .cdsenv file (assuming you've got the syntax right). You didn't say what you were putting in your .cdsenv so can't comment on the correctness of what you've done. Also, by default the .cdsenv file is looked for in your home directory and not in the working directory. Where have you placed the .cdsenv file? Regards, Andrew.

Forum Post: RE: How to properly handle wave family in custom calculator function

$
0
0
There are also plenty of examples in the Custom IC Calculator SKILL Function Library (there will be more as I update a number of my articles on Cadence Online Support to use the new calculator GUI template that was introduced in IC617).

Forum Post: RE: Current carrying Capacity of filled vias

$
0
0
Hi, Doing a conductive fill wont achieve the same level of current handling as plating shut a via. It basically cant because conductive fill is an epoxy loaded with silver, not a solid wire. When the epoxy cures you still have resistance as it is not a perfect conductor. Paul

Forum Post: RE: line continuation symbol for the cds.lib file

Forum Post: Change Pins from VSS to DVDD and vice versa in the Schematic

$
0
0
Hi All, I am trying to change the pin names and the net names in the schematic. I am trying the following code for changing the pin name:- cv=geGetWindowCellView() allPins=setof(x cv~>shapes x~>pin) foreach(x1 allPins if(rexMatchp("VSS" x1~>pin~>name) then rexCompile( "^[A-Z]$") rexReplace( x1~>pin~>name "DVDD" 0))) This is working fine for the layout but in Schematic it is not changing anything. Can anyone please suggest something, Any other approach will also work. Thanks Utkarsh

Forum Post: RE: Change Pins from VSS to DVDD and vice versa in the Schematic

$
0
0
In Schematic I am using cv~>instances approach to get allPins, Still it doesnt work Thanks Utkarsh

Forum Post: RE: Change Pins from VSS to DVDD and vice versa in the Schematic

$
0
0
Well, that code wouldn't work in the layout either. There are several things at issue here: You're searching for the pin name - which almost certainly doesn't matter. You probably want to be changing the terminal name as that is what affects the connectivity. The pin name itself is pretty arbitrary - can be anything and doesn't really affect the behaviour (about the only place it matters is for VLS XL abutment within a pcell). Your rexCompile and rexReplace won't do anything because it's looking for a name that is a single character long - and since you've just matched any pin name that contains VSS (note, this could be MYVSS or VSS3), it clearly has more than one character. Even if you'd commented out the rexCompile line (the pattern in the rexMatch is still active, so probably you don't need it), you don't do anything with the result of the rexReplace - so the pin name (had that been what you wanted to change) would be unaffected. You'd have to do x1~>pin~>name= rexReplace( x1~>pin~>name "DVDD" 0))) for it to work. Now, assuming you really wanted to change the terminal name, the following code would work in both schematic and layout: cv=geGetEditCellView() foreach(term cv~>terminals when(rexMatchp("VSS" term~>name) term~>name=rexReplace(term~>name "DVDD" 0) ) ) That would replace MYVSS with MYDVDD if that's what you wanted. If you only want an exact match for VSS, don't need the pattern matching: cv=geGetEditCellView() foreach(term cv~>terminals when(term~>name=="VSS" term~>name="DVDD" ) ) Regards, Andrew.

Forum Post: RE: Library Manager display settings

$
0
0
Aldo, They're saved in .cadence/libManager/displayPrefs (which is an XML file). Because it's in .cadence the libManager/displayPrefs will be searched for in .cadence directories that are in the "setup.loc" locations (i.e. using the "Cadence Search File" mechanism). So it will use the merge of all the displayPrefs files found using (the UNIX command): cdswhich -all .cadence/libManager/displayPrefs Regards, Andrew.

Forum Post: RE: Custom "window"-ed form, assign "Enter" for specific callback.

$
0
0
[quote userid="377136" url="~/cadence_technology_forums/f/custom-ic-skill/38309/custom-window--ed-form-assign-enter-for-specific-callback/1353733#1353733"]There should be way to trigger a CB in window form when those two criteria are met: 1) Field in focus & 2) Main Enter Key is pressed [/quote] There isn't though (regardless of whether it's a window form or a standard form) - there's no field-specific enter callback. On standard (non-window) forms, enter (or return) triggers the form callback (can't double check as I don't have a numeric keypad on my keyboard), and for window forms it doesn't do anything unless you define a bindkey - which can't be field-specific. However, one approach you could possibly take is to define a bindkey for your window form and then use: hiGetKeyboardFocusField(yourForm) to retrieve the name of the current focus field. Then you can do a specific action based on which field is in focus in the callback (e.g. with a case() function) Does that solve it for you? Regards, Andrew

Forum Post: How to find frequency for ring oscillator in Monte-Carlo analysis?

$
0
0
Hi How to find frequency for ring oscillator in Monte-Carlo analysis? thanks

Forum Post: RE: How to find frequency for ring oscillator in Monte-Carlo analysis?

$
0
0
Really? That's a pretty broad question and it's not clear what you don't know. Well, you need to set up your basic simulation - either: Use PSS analysis (in oscillator mode) and then use the Direct Plot form after simulation to add an output expression with the harmonic frequency that you wanted (probably the first harmonic). You typically would need to allow enough stabilisation time for the oscillator to start, but this should work pretty well. Use tran analysis and run for enough time that the oscillator is stable, and then use the frequency function on a clipped part of the waveform (clip the end part of the simulation) to give you the average frequency over a few cycles. This is then your output expression. Then run Monte Carlo in ADE XL, Explorer or Assembler. If you need more specific help (for a start, you didn't say which tools you were using, which versions, or what you've tried so far), please give more details on what you're using and what you've tried. Regards, Andrew

Forum Post: RE: Change Pins from VSS to DVDD and vice versa in the Schematic

$
0
0
Hi Andrew Thanks a lot for the answer, (I will try this code and will come back if I face any issue) I have a little doubt, The reason why I have not used rexReplace in this fashion "term~>name=rexReplace(term~>name "DVDD" 0)" was that I was considering it to work like schReplaceProperty() function which does not require any variable to assign. Can you please tell me the difference between these two functions or the way they should be used. Thanks Utkarsh

Forum Post: bindkey to toggle between leHiMarkNet() and leHiUnmarkNet()

$
0
0
Hi all, I want to implement a (only 1) bindkey to toggle between leHiMarkNet() and leHiUnmarkNet(). I am not sure how to find out whether or not the current cell view has a net that is being mark by leHiMarkNet(). I have a idea, but not sure if it will work. Please share your thought and idea if you have another one. 1. check if previous cmd is leHiMarkNet() 2. if yes, then do leHiUnmarkNet(), if no then do leHiMarkNet() but i am not sure how to find out previous cmd used. If you have any other idea, please share. Many thanks

Forum Post: RE: bindkey to toggle between leHiMarkNet() and leHiUnmarkNet()

$
0
0
Hi, If the current window does not have a flag set with markNets then you can set it by yourself. if(hiGetCurrentWindow()~>markedNets then hiGetCurrentWindow()~>markedNets = nil leHiMarkNet() else hiGetCurrentWindow()~>markedNets = t leHiUnmarkNet() ) -Ramakrishnan

Forum Post: RE: bindkey to toggle between leHiMarkNet() and leHiUnmarkNet()

$
0
0
Ramakrishnan's suggestion of using a flag on the window object to keep track of the toggle state is the best you can do given that there isn't really something to tell you whether anything is marked or not. However, the request is a bit odd. The functions both prompt you to click on a net to mark (or unmark) - so they're not really opposites. What if you don't click on a net and hit escape? What if you've marked two nets and then only one when you're in "unmark" mode of the toggle? That would be a rather odd use model. I could (almost) understand it if you wanted to toggle between leHiMarkNet() and leHiUnmarkNetAll() - that makes (slightly) more sense. Of course, if you use the menu instead of your bindkey, it would get out of sync with the toggle status, but that would mean you just need to press the bindkey again to get back in sync. Regards, Andrew

Forum Post: RE: PhysConfig: force to descend

$
0
0
That would be cphSetInstForceDescend. You'd need to have an open physConfig (e.g. using cphFindOpenConfig or cphOpenConfig). There are also APIs to set force descend on cells and occurrences too. Search for any function that begins with "cph" in cdsFinder and then you can hit the "More Info" button (in IC617/ICADV122 onwards) to take you to the full documentation for the function. Regards, Andrew

Forum Post: RE: controlling mismatch & other related queries.

$
0
0
Some attempts at answers: Yes, although the variation probably isn't "the same statistical variation". The standard deviation is likely to be different for mismatch and process variation. The approaches that you describe are not just for current mode circuits; it's any time you need the behaviour of the devices to be as consistent as possible. I'm not sure there are any different techniques that you'd apply just because the device is in a different region. Note, I should point out that mismatch analysis in Monte Carlo is really to analyse the remaining random variation and is not about the variation caused by poor layout matching practices. Of course, if you're looking at a circuit that is sensitive to mismatch of certain devices then the ones you need to focus on are likely to be the same as those which show up as significant contributors based on their random variation. Can't answer this, sorry. Regards, Andrew.

Forum Post: RE: Assura LVS Parameter Mismatch Error

$
0
0
Jim, auLvs and auCdl are two different netlisting approaches. auLvs was originally a netlister for Diva - for Assura it doesn't actually produce an "auLvs" netlist, but uses the same CDF information to control which parameters are read for LVS. auCdl produces a "CDL" (Component Description Language, a SPICE-like format which originated with Dracula and has been extended considerably by various LVS tools since). Both are means of providing the input to the schematic side of LVS. For the second part, this is controlled by the filterDevice and filterOptions functions in the rules. Look in the Assura Physical Verification Command Reference manual for more details. Regards, Andrew.

Forum Post: RE: How to properly handle wave family in custom calculator function

$
0
0
Andrew, Thank you for replay. I have two additional questions: 1. I saw examples of famMap usage like you described. I checked manual for function famMap. It says "Applies a function with a set of arguments to each member of a family". It is not clear if an argument can be family too. In my case, pointsWave can be family of plots exactly like sourceWave, and resampleByWave should be applied to appropriate pairs. So will famMap work properly if used like you proposed? 2. How can I copy past code with indentation? I tried a couple of formattings but in each case spaces at the beginning of line removed. Alex.
Viewing all 63175 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>