Quantcast
Channel: Cadence Custom IC Skill Forum
Viewing all 5066 articles
Browse latest View live

leZoomToSelSet doesn't work when opening a schematic

$
0
0

Hi guys, I will really appreciate if someone give me a hand.

I have this simple test but I don't know why is not working as expected

        myCell = deOpenCellView(projName cellToOpen "schematic" "" hiGetSessionWindow(hiGetCurrentWindow()) "r")

        myInst=setof(x myCell~>cellView~>instances x~>cellName=="patternName")

        mapcar('geSelectFig myInst)

        leZoomToSelSet()

The idea is to open a schematic(cellToOpen) and find all the instances that match with "patternName". After that, I would like to zoom-in on the instance that was found (if it was just one).

If I run the code line by line it seems to work but I don't know why not when I run it in a row. It seems there is an automatic zoom-to-fit after leZoomToSelSet() call..not sure

Thanks!


How to return from a SKILL procedure

$
0
0

Hi all,

I am writing a SKILL script as mentioned below for some utility, Meanwhile i got some issues. Could you please give me the proper commands to use at the required place?

I want to exit/return from procedure. I tried to use 'return()', ipcCloseProcess(), ipckillAllProcesses(), ipcStopProcess(). But they are throwing evaluation errors. Could you please let me know how to use process ending functions and using the return values from dialog boxes to run another procedure..

procedure(proc_main()

;some definitions and  functions here

proc2(a)

proc3(b)

)

procedure(proc2(a)

a=b+c

x=y+z

if (x then

proc3(b)

else

-- I want to exit the main procedure with a dialogue box

hidisplayAppDBox(?name 'ERROR

                             ?dboxText "Error message")

;;;return command or some other dialog box for further process here.

) ; end if

) ; end proc2

How to change dochecklimit option

$
0
0

Hi,

I have 70+ tests in ADE assembler, and all of them have "dochecklimit = yes" option checked
(Options->Analog->Check->Device Checking Options)

Is there a way in SKILL to change this option to "no" for all of my tests?

using cadence help and google I found this:
envSetVal("spectre.opts" "dochecklimit" 'string "yes")
But it works only for tests created afterwards, not affecting those already created.

Thanks.

Best regards,

Vaclav.

Virtuoso ADE Assembler (or Explorer) - parametric set

$
0
0

Hi.

when trying to simulate a design in ADE Assembler (or Explorer) using parametric set in Global Variables, i have noticed not all of the combinations are applied in certain set of values.

i suspect it happens when a parameter has more than 2 values and some of the values are repeated.

for example, this choice of values seems fine:

i expected  to get 3 simulations, 3 points, so it's ok. but when changing the circled values from '1 2 3' to '1 1 3' i get only 2 simulations:

could that be a bug? or am is missing something?

Thanks.

how to add a trigger when open/close a layout view

$
0
0

For a layout cellview, we are going to add some function before opening the layout view and after closing the cellview.

When we tried to add the trigger before opening the layout view, it means after we double clicking the  cell view in the library manager before the virtuoso show up the layout view .

When we tired to add the trigger after closing the layout view, it means after we clicking the close button in the layout view.

1) For the trigger before opening the layout view , i read the below ticket Andrew posted (https://community.cadence.com/cadence_technology_forums/f/custom-ic-skill/29819/libmanager-edit-trigger-callback/1335387#1335387).Then i tried to write the code like below:


ddRegTrigger("PreObjAccess" 'layoutpreTrigger)

layoutpreTrigger(@optional libName cellName viewName fileName contexID mode)

  if(libName && cellName && viewName then
    printf("libName:%L cellName:%L viewName:%L mode:%L\n" libName cellName viewName mode)
); ** if **

t
); ** let **
); layoutpreTrigger

It printf " libName cellName viewNae mode " when i tried to open the layout.But it also printf the "libName cellName viewName mode" when i tried to close the layout window.That's not what we need.Is there any place i used wrong here?

2) For the trigger after closing the layout view, i have no good idea as so far.Because sometimes we don't make any change on the layout and we needn't save the layout .So i think "dbRegPostSaveTrigger" should not work well here.Do you have any suggestion?

How to dump layout pin name and coordination

$
0
0

Hi,

  I am new to Cadence skill code. I have a layout which use "AP" layer and "pin" as purpose on my very top whole chip bump pad layout.  I try to dump these pin name and its coordination for assembly house as package netlist. Does anyone have skill code to dump that?  Thanks,

casey

dbDumpPcDefinePcell output style

$
0
0
Hi,

I noticed some difference by using the function dbDumpPcDefinePcell for pcell dump.

When a skill function is loaded in the memory then the output result is a c-style representation of the function in the dump file.
e.g. my_function_name(arg1 arg2)

When a skill function is not loaded in the memory then the output result is a lisp-style representation of the function in the dump file.
e.g. (my_function_name arg1 arg2)


Is there a way to force the output style? Does not matter if the function is loaded or not? I would prefer the c-style.

list all methods for specific instance of a class/ instance of a class

$
0
0

Hello all.

In Ruby and Python 3, it is possible for an instance of class/a class, find all methods which are callable by it.

See link for example: ruby-doc.org/.../Object.html

In SKILL++, because it is a functional language, I would be looking for all methods which first argument can be the class that I am referring to.

So, for example, fixnum would yield (among others) plus, but would not yield println, and vice versa for string.

How can this be achievable in SKILL++?

Thanks.


Using fucall or apply on a function with keyed arguments

$
0
0

Hello all. I am showing a small example.

One is using sklint( ?file "foo.ils" )

How can one use apply, or funcall to achieve the same? I could not find any documentation on it.

Thanks.

Traverse hierarchy of config view

$
0
0

Hi,

I try to create a list containing the libraries + corresponding cells of a config view. This should have actually the same functionality as using GUI command: "File -> Save Cell Table Data" but should deliver a list for further postprocessing in skill. I am not sure how to access the config view and generate the data. Could you help to provide a skill code for that ? Thank you.

Automatic start point selection for local optimization

$
0
0

Hello,

I dont know if I miss something, but I think it is a little cumbersome to run a local optimization. Since it require a starting point, here is what I usually do:

1. Save my current maestro setup (only variables and parameters) to 'Optim'

2. Select all my parameters and do 'Set to design value' to get the current values from the schematics

3. Save another maestro setup 'OptimStart' (also only variables and parameters)

4. Load the 'Optim' to get back the parameter ranges

5. Run a local optimization with 'OptimStart' as starting point

After an optimization run I can save the best result to a setup state and use this as the starting point for the next optimization. However, if I add a new parameter I have to do the above steps again, since the optimizer always complains if it can not find a corresponding value in the starting point setup.

Is it possible to automatize this steps somehow? It is always the same procedure, but I could not find the corresponding skill functions to write a procedure for it and bind it to a menu button. All I want is to tell the local optimization to use the current parameters.

Test xl layout connected to schematic

$
0
0

Not sure if I am explaining this correctly.

When I use the bnd* functions and I am in XL mode but the layout is not connected I get this error *Error* bndGetBoundObjects: (BND-3028): 

Is there a way to test when the layout is in XL that the schematic is connected and sees the layout's bindings?

How to connect with skill?

Paul

env variable reEvaluationWhenActiveAndHistroyTestsDiffer

$
0
0

Hi,

I am trying to evaluate an history in maestro on virtuoso and I get the following error because I deleted one of the old tests.

"These tests have been either renamed,removed or disabled.

Set the value of the 'reEvaluationWhenActiveAndHistoryTestsDiffer' env variable to 'removeDeletedTestsFromHistory' or 'persistDeletedTestsInHistory', as required, and re-evaluate the results.

Can you tell me the syntax? I tried something, doesn't work. 

Skill code for operating area checks

$
0
0

Hi,

I am a beginner in skill coding. I have a requirement that needs to be coded in skill. I wish to create a safe operating area check that executes on the terminals of the top level of a block while turning off everything that is inside the block. It would switch off the checks inside the block using "checklimit_skip_insts" and add a line for each terminal where the limits are checked. The code can pop up a form where the designer can input the min and max voltage limits along with the reference voltage for each terminal in the block.

It could be a simple skill script which reads inst~>instTerms~>name, asks for the reference terminal and creates such a file.  And we will need here a disclaimer inside the file and also in the form.

Can you please help me with a code template that I can start with, to implement this requirement?

Regards,

Mayank.

How to change customVia using skill

$
0
0

Hi All,

I'd like to replace a customVia with a different customVia. I'm not able to get the parameters of the old customVia using car(geGetSelSet())~>viaHeader~>overrideParams command, as it returns nil.

Could someone help me on how to get the rows and columns information for customVia and also assign these to a new customVia. 

Thanks,

Prasad


Scribble on layout/Schematic windows -to Assist work from home.

$
0
0

Hi All, 

I wan to do kind of scribbling on the layout/schematic window[Image attached] to assist the work from home options in team meetings. Zoom allow direct scribbling on any window. 

I am able to draw boxes, arrow, line and ellipse and font text using highlight . Unfortunately I am not seeing any option to scribble on the screen. Could you please suggest me how can I do same....

press S-->start scribble mode

press Alt+S -->stop scribble mode 

Regards,

Venkat

Importing GDS data into Virtuoso DF2 and keeping hierarchy

$
0
0

Hello,

I have a GDS with hierarchy in place. When I've imported the GDS into DF2, all that hierarchy is lost and I just get flat polygons. I want to keep all that hierarchy.

Is it possible to import the GDS from the top cell to create the hierarchical cells and keep all the relationships? If so, can you show me how?

Thank you!!   

How to suppress/cancel port mismatch popup window when running vmsUpdateCellViews/ahdlUpdateViewInfo

$
0
0

Hi,

I am doing batch compile of veriloga views, and getting a "Port mismatch" popup window.

I am using currently ahdlUpdateViewInfo function for VerilogA but I tried also vmsUpdateCellViews and getting the same popup

How can I prevent it from appearing or auto-cancel it?

I found this topic:

https://community.cadence.com/cadence_technology_forums/f/custom-ic-skill/36380/suppressing-hdl-parser-warning-and-port-mismatch-warnings/1348507

But setting 

envSetVal("schematic" "disablePortOrderPopup" 'boolean t)
envSetVal("schematic" "vicCheckPinOrder" 'boolean nil)
vmsCrossViewCheck=nil

Does not prevent popup window.

I tried also:

schHdlCrossViewCheck = nil

vmsUpdateSymbolAfterEdit=nil

AHDLUpdateViewInfo=nil

vmsRunningInUI=nil

With no success.

Thanks!

How to create the biggest rectangle inside a Polygon

$
0
0

Hello everyone!

I need a function where the input is a list of points that represent a polygon and the output is a list of 4 points that represent the biggest rectangle that fits inside the original polygon. Does anybody know an existing function for that?

Thanks

Integration with version control system

$
0
0

Hello everyone.

I have been using OrCAD for more than a year now and I think about implementation a version control system. 

So far, I have used gitlab for symbols and footprints and I didn't expect it to work so good. Although symbols are stored in binary files, Gitlab handles them with no problems. There is no issues with creating symbols, pushing and merging. No conflicts at all. Additionaly, I share the libraries with other co-workers. Everyone is capable of commit. That's a plus for Cadence.

But how do you manage your schematic and layout files? Is it any way to do it? I have enough of creating a copy once an hour or more often. 

What's your experience in that topic? What do you think?

Viewing all 5066 articles
Browse latest View live


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