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

Forum Post: RE: Symbol not found in PSMPATH or must be "dbdoctor"ed.

$
0
0
I think your only problem is you need to make sure Allegro/Orcad is looking for your footprint in the correct directory. >Edit >User preferences> Paths> Library> psmpath>. You should see a list of directories Allegro knows to look in. My guess is the footprint is in the same directory as your pcb file, in which case, PSMpath needs to have '.' or the dot for your current directory. Same problem could happen with Padpath for the padstacks.

Forum Post: RE: Using the "apply" SKILL function

$
0
0
The good news is that there's (nowadays) a lambda form of the sprintf function which is suitable for use with funcall or apply. This form doesn't have the first argument - it only returns the string rather than sets the variable in the first argument - but you weren't using that anyway (you had nil). So you'd simply do: txt->contents = tconc(txt->contents apply('lsprintf line pfArgs)) That will fix your problem. Regards, Andrew.

Forum Post: RE: Stopping the Escape key from closing my dialog.

$
0
0
You can't define bindkeys for transient forms (only for Window forms - i.e. forms instantiated into window). So the esc key (when the focus is on the form) will cancel the form as built-in behaviour (so I'm not sure what benefit assigning hiFormCancel() to the escape key would have, since that would be a bindkey for over the canvas in a particular application, and it already cancels the form if the focus is on the form anyway). There is a cdsenv var for options forms (i.e. forms associated with an enter function): ui cancelEnterFunHidesOptionForm boolean t which means that esc doesn't cancel but hides the form (on the first press) - the second press does however cancel the command. That's almost certainly not what you wanted though. Andrew.

Forum Post: RE: select all labels inside a (non-rectangular) shape through hierarchy

$
0
0
You could use dbGetOverlaps or dbShapeQuery to find everything (down the hierarchy) in the bounding box of the polygonal shape, and then (transforming the coordinates to the top level), determine whether the bBox of each label (or the xy (origin) if you don't want to use the bBox) is within the polygonal area. You could make that determination using dbPointArrayAnd to do a logical and of the polygon and the rectangle (if a bBox) and see if you get a result - then they overlap. Or you could use something like abPointInPolygon to check whether a point is within a polygon area. Something like that... Regards, Andrew.

Forum Post: RE: Simulation for Ferroelectric Capacitor (Based on VerilogA model) for C-V curve

$
0
0
The same question has been asked (presumably by you, since the pictures look rather similar) and are being answered over on the Designer's Guide forum - here: http://www.designers-guide.org/Forum/YaBB.pl?num=1543487056 Andrew.

Forum Post: RE: Organizing schematics and simulations

$
0
0
You could register a new viewType and an application using deRegApp. You'd also want to register the new view type with the register (creating a file called data.reg and describing the pattern for the master file - maybe "ocean.ocn" or whatever). Then (with the data.reg part) the Design Management tool, and things like copy in the library manager would know how to deal with it, and with the deRegApp part you could have some sensible action when you double click on it in the library manager to run it (or edit it). Search in the articles and app notes on support.cadence.com for "deRegApp" to find some examples. Or if that's too complicated, maybe all you want to do is write a function like this: procedure(CCFrunOceanView(lib cell view "ttt") let((ddId) ddId=ddGetObj(lib cell view "*") if(ddId then load(ddId~>readPath) else error("Could not access %s/%s/%s\n" lib cell view) ) ) ) Then you could just do: CCFrunOceanView("mylib" "my_amp_test" "my_amp_gain_test") Regards, Andrew.

Forum Post: How to copy selected objects from the current schematic window to other schematic window by using SKILL?

$
0
0
Hi All, How to copy selected objects from the current schematic window to other schematic window using SKILL? I used the following code to copy selected objects in the layout window to other layout window, it works perfectly. But when I used it to copy selected oblects from the schematic to other schematic window, there are errors created in the new schematic window, please see the picture below. Please help. /* abCopyToOtherWin.il Author A.D.Beckett Group Custom IC (UK), Cadence Design Systems Ltd. Language SKILL Date Mar 06, 2013 Modified By Put the copy on a bindkey, say: hiSetBindKey("Layout" " F8" "abCopyToOtherWin()") Copies selected objects from the current window to the window you click in when prompted *************************************************** SCCS Info: @(#) abCopyToOtherWin.il 03/06/13.12:16:39 1.1 */ procedure(abCopyToOtherWinCB(srcWin _dont _points) let((destCv) ;---------------------------------------------------------------- ; Since current window will be the destination window, this is correct ;---------------------------------------------------------------- destCv=geGetWindowCellView() foreach(fig geGetSelSet(srcWin) ;------------------------------------------------------------ ; Transformation is effectively null, since want the ; positions to be the same ;------------------------------------------------------------ dbCopyFig(fig destCv list(0:0 "R0" 1)) ) t ) ) procedure(abCopyToOtherWin(@optional (srcWin hiGetCurrentWindow())) unless(windowp(srcWin) error("Must have a valid window to start from")) hiSetCurrentWindow(srcWin) enterMultiRep( ?prompts '("Point to the source window" "Point to the destination window") ?points list(0:0) ?doneProc "abCopyToOtherWinCB" ?dontDraw t ) hiSetBindKey("Layout" " F8" "abCopyToOtherWin()") hiSetBindKey("Schematics" " F8" "abCopyToOtherWin()") ) Best regards, Marben

Forum Post: RE: How to copy selected objects from the current schematic window to other schematic window by using SKILL?

$
0
0
Hi Marben, Do Check->Current CellView (typically the "x" bindkey) or File->Check and Save (typically shift-X) after doing the copy. The issue is that the cdsTerm labels on the transistor symbols can't display the nets because the nets do not get partially extracted after a copy using SKILL and the internal database has not been synchronised. So a better solution might be to change the code as follows (small change in abCopyToOtherWinCB): /* abCopyToOtherWin.il Author A.D.Beckett Group Custom IC (UK), Cadence Design Systems Ltd. Language SKILL Date Mar 06, 2013 Modified Dec 15, 2018 By A.D.Beckett Put the copy on a bindkey, say: hiSetBindKey("Layout" " F8" "abCopyToOtherWin()") Copies selected objects from the current window to the window you click in when prompted Updated in v1.2 to better handle schematics *************************************************** SCCS Info: @(#) abCopyToOtherWin.il 12/15/18.11:45:19 1.2 */ procedure (abCopyToOtherWinCB(srcWin _dont _points) let ((destCv) ;---------------------------------------------------------------- ; Since current window will be the destination window, this is correct ;---------------------------------------------------------------- destCv= geGetWindowCellView() foreach (fig geGetSelSet(srcWin) ;------------------------------------------------------------ ; Transformation is effectively null, since want the ; positions to be the same ;------------------------------------------------------------ dbCopyFig(fig destCv list (0:0 "R0" 1)) ) ;---------------------------------------------------------------- ; Sync the schematic internal database representations ;---------------------------------------------------------------- when (destCv~>cellViewType== "schematic" schSync(list(destCv)) ) t ) ) procedure (abCopyToOtherWin(@optional (srcWin hiGetCurrentWindow())) unless (windowp(srcWin) error ( "Must have a valid window to start from" )) hiSetCurrentWindow(srcWin) enterMultiRep( ?prompts '( "Point to the source window" "Point to the destination window" ) ?points list (0:0) ?doneProc "abCopyToOtherWinCB" ?dontDraw t ) ) Regards, Andrew

Forum Post: RE: How to copy selected objects from the current schematic window to other schematic window by using SKILL?

$
0
0
Hi Andrew, It almost works. All errors display in the copied window is gone. There is only one more problem. The pin net name is not copied. There must be something like "VP", "a" , "y" . . .etc in the target schematic window to which selected objects is to be copied, not " ipin", ipin" "opin" . Best regards, Marben

Forum Post: RE: How to copy selected objects from the current schematic window to other schematic window by using SKILL?

$
0
0
Hi Marben, Whoops! I didn't notice that. Not surprising, because dbCopyFig is only going to copy the figure and not the pin. So I changed the code a little to use schCopy instead when it's a schematic, which should handle the more complex objects. This seems to work: /* abCopyToOtherWin.il Author A.D.Beckett Group Custom IC (UK), Cadence Design Systems Ltd. Language SKILL Date Mar 06, 2013 Modified Dec 15, 2018 By A.D.Beckett Put the copy on a bindkey, say: hiSetBindKey("Layout" " F8" "abCopyToOtherWin()") Copies selected objects from the current window to the window you click in when prompted Updated in v1.2 to better handle schematics. Did it properly in v1.3! *************************************************** SCCS Info: @(#) abCopyToOtherWin.il 12/15/18.13:01:02 1.3 */ procedure (abCopyToOtherWinCB(srcWin _dont _points) let ((destCv isSch) ;---------------------------------------------------------------- ; Since current window will be the destination window, this is correct ;---------------------------------------------------------------- destCv= geGetWindowCellView() isSch=destCv~>cellViewType== "schematic" foreach (fig geGetSelSet(srcWin) ;------------------------------------------------------------ ; Transformation is effectively null, since want the ; positions to be the same ;------------------------------------------------------------ if (isSch then schCopy(fig destCv list (0:0 "R0" 1)) else dbCopyFig(fig destCv list (0:0 "R0" 1)) ) ) t ) ) procedure (abCopyToOtherWin(@optional (srcWin hiGetCurrentWindow())) unless (windowp(srcWin) error ( "Must have a valid window to start from" )) hiSetCurrentWindow(srcWin) enterMultiRep( ?prompts '( "Point to the source window" "Point to the destination window" ) ?points list (0:0) ?doneProc "abCopyToOtherWinCB" ?dontDraw t ) ) Regards, Andrew.

Forum Post: RE: How to copy selected objects from the current schematic window to other schematic window by using SKILL?

$
0
0
Hi Andrew, It is now working perfectly. Thank you very much. Schematic check completed with no errors. Best regards, Marben

Forum Post: Layout editor: quick align "Move/Stretch" mode deprecated in ICADV?

$
0
0
Hi! The "Move/Stretch" mode is not available in my layout editor (L) in ICADV 12.3. Here's a comparison of what I see in IC 6.1.6 (28nm PDK, left) and ICADV 12.3 (16nm PDK, right) : Moreover, the Layout Editor L documentation for ICADV 12.3 still mentions this mode (p.1086 of the user guide)... is my setup (or PDK) broken? has this mode been deprecated? Thanks in advance for any help! Regards, Jorge.

Forum Post: RE: Layout editor: quick align "Move/Stretch" mode deprecated in ICADV?

$
0
0
Hi Jorge, It's just a change in terminology as part of the form simplification and use of progressive disclosure. Move/Stretch is the default, and turning on "Copy Reference" is the same as the old "Copy" choice (so if it's off, it's Move/Align). See this very recent thread in this forum: Bind key for setting to "copy reference" mode in the "Quick Align" window. So nothing has been deprecated in this case. Regards, Andrew.

Forum Post: RE: Layout editor: quick align "Move/Stretch" mode deprecated in ICADV?

$
0
0
Hi Andrew, thanks for your prompt reply! The problem is that for some reason the behavior is not as expected. Indeed, upon opening the tool the mode seems to be " Move/Stretch": leGetEnv("quickAlignMode") "MoveOrStretch" but if I do try to quick-align e.g. the vertical path segment highlighted in the figure I posted, the full path is moved, instead of stretching the horizontal segment to align the vertical one to the chosen reference (target) edge. Any ideas on what could be causing the problem? Thanks and regards, Jorge.

Forum Post: RE: Layout editor: quick align "Move/Stretch" mode deprecated in ICADV?

$
0
0
Hi Jorge, Did you pre-select the entire wire before doing the quick align? If so, that would be expected. If you want to pre-select and only want the one segment, you can either use F4 (or Options->Selection) to go into partial select mode, or on Options->Selection turn off "Spine" which controls whether it will select the entire wire when in full select mode, or just the segment you're over. If that's not it, can you describe precisely what the segments look like and what you've selected in advance, which select mode you're in (maybe a screenshot of the Options->Selection form) and where you clicked and when. If that's not too much to ask! For example, for me - if I didn't pre-select anything, I could click on the segment of the wire I wanted to stretch, and then click on where I wanted to align it to. Regards, Andrew.

Forum Post: RE: Layout editor: quick align "Move/Stretch" mode deprecated in ICADV?

$
0
0
It was the selection mode! (I was totally unaware about its existence--sorry!) Switching to partial-selection mode with F4 yielded the desired behavior Thanks so much for your help, Andrew! Enjoy the weekend, Jorge.

Forum Post: Cant get cutClass type of via from querying the via

$
0
0
Hi, I want to query and see a difference between Vx, VxREC, VxLARGE type of vias. By selecting the via, i have queried like this : geGetSelSet()~>? and i have been to all the inside branches of the above query and cant seem to find that this particular selected via is a Vx, VxREC, or VxLARGE type. I have queried almost everything but there dont seem to be a way where i can get the cutClass name. Thanks, LEO

Forum Post: facing problem with plotting waveforms

$
0
0
Hi, Even after completion of simulation(in output log showing successfully completed), in adexl state its still showing running state. But when i tried to plot those running state plots, im able to plot few signal but not all. Thanks Ashok

Forum Post: variable sweep in ADEXL

$
0
0
I have two variables defined in ADEXL. I want to sweep variable A, with Four values, 1,2,3,4. Then I want to make variable B sweep dependent on A. For instance, when A is 1, then B sweeps from 1 to 3. When A is 2, B sweeps from 3 to 5. When A is 3, then B sweeps to 6 to 9. How can I achieve this? is there a way to use some logic expression in the variable definition? Thanks!

Forum Post: RE: Cant get cutClass type of via from querying the via

$
0
0
I thought this had come up recently - I see you asked a similar question a few months ago: Cant get cutClass type of via from querying the via However, it seems that we didn't really answer the cutClass bit. There is however an older post where i answered this: Re: How to find value of viaCutClass param? As you can see, you can't directly get the cutClass because it's not stored on the via (on the via itself or the viaHeader). Regards, Andrew.
Viewing all 63173 articles
Browse latest View live


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