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

Config view sweeps - time of netlist creation for all corners in a multi-corner simu;ation

$
0
0

Hello cadence,

In Assembler (ICADV12.30.ISR15).

When using config view sweeps in a multi corner simulation, say a 128 corners for an extreme case, when do ALL the 128 netlists get created ?

  1)  All  start of the simulation ?  or

  2) As the simulation progresses ? In other words when the simulation gets to the around to each corner.

The reason why I ask is because, for a top-level block where many designers are poking around all the time and the simulation can span a few days, the netlist that will be created at the time of the simulation launch may not be the same as the one created a few days later. Obviously this would render the simulation results useless.  

If such is the case, are the settings or environment variables that can force the netlist creation of ALL 1278 corners at the time of the simulation launch ?

Regards,

Frank


make your own dragline?

$
0
0

Is there a way to make a dragline that does not necessarily have anything to do with SDL connectivity?  To be clear, we would be making use of it to basically do SDL, and we do have VLS-XL licenses, but, the burden of maintaining SDL compliance throughout the flow is (naturally and necessarily) pretty high.  Our case is that we have done most of the layout in VLS-L (no connectivity) and now we want to use VLS-XL (SDL with draglines) to finish the top-level hookup.  Is there a way to just draw an initial line of just two vertices, and have each vertex become a child of whatever object it is over, and then have that line behave as a dragline as you move the parent objects?  This type of just-tag-n-drag would make life a lot easier.

Cancel Checkout by Skill

$
0
0

Hi,

Is there a Skill function capable to cancel a checkout over a cell view that was opened by using ddGetObj or dbOpenCellViewByType in append/write mode?

Regards,

Ivick.

Assign voltage source for inherited connection

$
0
0

Dear Cadence Family, 

I am writing a skill code to automate making (kind of) a testbench for a certain device. The testbench (for example) includes voltage sources connected to the terminals of the device. Additionally a voltage source also needs to be added for global connections (inherited nets - if i am not wrong).

1. Picture_1 - Device 

2. Picture_2 - Device terminals connected to voltage source

My question is how can i find name of inherited net (VSS!) from the instance properties and connect a voltage source to it?

Any help in this regards would be much appreciated. 



Regards. 
Haris 

How to check if MPT functions are available in a running environment?

$
0
0

Hi all,

I was wondering if there is a way to determine whether a Virtuoso version is for advanced node technology (ICADVANCE) or not, using SKILL. The purpose is to check if the multi-patterning technology (MPT) SKILL functions are available.

Chris

How to access from skill the psf dirs of a parametric analysis?

$
0
0

Hi there,

How can I access from skill the results directories of a parametric analysis.

Saving it as ocean file the swept variables looks like this

paramAnalysis("Vsel" ?values '(1 2 3 ) ?sweepType 'paramset
paramAnalysis("Vesd" ?values '(2000 2000 4000 ) ?sweepType 'paramset
))
paramRun( ?jobName "job" ?drmsCmd "ifxADEL -tools=mmsim -ncpu=2" )

What I want is that people run a parametric analysis and then a script to automatically identify the psf dirs, to postprocess  spectre.out and eventually to postprocess the 'tran result database from the same dir(based on what we found in spectre.out).

Right now the code looks like this:

sId = asiGetCurrentSession()
topPsfDir = asiGetResultsPsfDir(sId)

and then we parse the runObjFile file from the respective topPsfDir, but there we have some problems.

I hope there is something better than this approach (an API).

virtuoso version v6.1.5+ 

assumption is that the skill script will be run immediately after the parametric analysis (it could be a "Parametric Set" or "Sweep & Ranges").

Best Regards,

Marcel

hiRegCurWindowTrigger usage

$
0
0

Hi,

What is this function hiRegCurWindowTrigger? How to use this? I tried the following

procedure(testPrint(win)

printf("%L\tgot modified", win)

)

hiRegCurWindowTrigger('testPrint)

-Ramakrishnan

ADE XL setup not working properly.

$
0
0

Hi.

I use IC6.1.7 - I've just setup the software, via installscape, and using my institutions license server. All of that is working.

I have a simple schematic that works fine simulating in ADE L , using a DC analysis. I am not using a config view.

I launch ADE-XL , the working tests from ADE-L are imported. However I cannot plot any results, like used to work in ADE-L. 

I get the following messages (in red) in the CDS.log viewer, when I first launch the ADE-XL.

*Error* Cannot copy "" from "/home/andy/cadence/installs/IC617/sims/comparator_tb/spectre/schematic/netlist" to "/home/andy/cadence/installs/IC617/sims/stochasticADC/comparator_tb/adexl/results/data/.tmpADEDir_andy/stochasticADC:comparator_tb:1/stochasticADC_comparator_tb_schematic_spectre/netlist", cpDataDir call returned 0

<<< Stack Trace >>>

(... in _axlTarCopyWrapper ...)

(... in unknown ...)

(... in _axlImportADELTestInADEXL ...)

(... in unknown ...)

(... in _axlImportTestInADEXL ...)

_axlImportTestInADEXL('sevSession25 ?appName "ADE XL" ?tool "ADE")

Then when trying a single simulation run in ADE-XL I get:

*Error* Error during netlisting of design for the point ID (0 1).

("error" 1 t nil ("*Error* Cannot copy \"netlist into run netlist\" from \"/home/andy/cadence/installs/IC617/sims/stochasticADC/comparator_tb/adexl/results/data/Interactive.0/1/stochasticADC:comparator_tb:1/netlist\" to \"/home/andy/cadence/installs/IC617/sims/stochasticADC/comparator_tb/adexl/results/data/Interactive.0/psf/stochasticADC:comparator_tb:1/netlist\", cpDataDir call returned 0"))

ERROR (ADEXL-5025): Preparation to run the simulation is failed for the run Interactive.0, point 1, test stochasticADC:comparator_tb:1, received error:

Error:

------------------------------

Error while preparing to run the simulation.

Cannot copy "netlist into run netlist" from "/home/andy/cadence/installs/IC617/sims/stochasticADC/comparator_tb/adexl/results/data/Interactive.0/1/stochasticADC:comparator_tb:1/netlist" to "/home/andy/cadence/installs/IC617/sims/stochasticADC/comparator_tb/adexl/results/data/Interactive.0/psf/stochasticADC:comparator_tb:1/netlist", cpDataDir call returned 0

For details open log: /home/andy/CDS.log for the point: (0 1)

------------------------------


Plot expressions containing mathematical operations using SKILL

$
0
0

Hello,

I defined the expression " VNPP("/M0" "total") * 2 "  as an output in my assembler view. When extracting the output to a CSV using awvSaveToCSV( .. ), I get the error: *Error* error: basic_string:: _s_construct NULL not valid - nil. This problem happens when arithmetic operators exist in the expression.. Is there a known fix for this problem?

Any hints would be highly appreciated.

Best regards,
Karam

Release memory after a function is completed

$
0
0

Hi all,

Assume that we have a dummy test function which its definition is:

procedure( test() let( (x) x = list( 2 3 ) ) )


If I run the profiler for this procedure I see that the total memory that have been allocated for this function is 96 bytes, while list command needs 48 bytes. Let's say that we need this function to be used 10000 consecutive times for a reason. Profiler reports that the allocated memory for this operation raises up to 468 KByte because of list command which need this much amount of bytes (I guess the numbers may differ in different machines).

Is it possible to reduce the memory that is captured for this operation in any way? Or make that memory available again after the operation is finished? memoryAllocated() function indicates that once my processes are over, the memory remains captive.

Also, I tried to force-use the gc() function but with no results, while operated time was increased.

 

Chris

How to move cells from "Uncategorized" category to other Categories

$
0
0

Hello 

I need to move all the leafcells in "Uncategorized" category in other relevant categories using a skill function.

I am able to get the ID for (my) defined Categories such as "ALLCELLS"  "LEAFCELLS" TOPCELLS" using ddCatFindCat(lib "ALLCELLS" "r") function, but can not get the ID for Everything and Uncategorized categories 

I am using virtuoso version IC6.1.7-64b.500.18

Best Regards

Arvinder

generating pc.db files in a scripted way

$
0
0

anyone know if there is a convenient scriptable way to generate all the pc.db files for a bunch of functional views in a library?  The UNL seems to want to generate these  if they don't exist but that is not so friendly for a library that is not supposed to be writable.

Thanks

-Dan

Partial v. Full select in the layout - how does geTogglePartialSelect() work?

$
0
0

Folks,

This has been having me puzzled for a while..

In the layout, there are 2 types of selections: partial and full, which can be set at least in 3 ways:

(1) envSetVal("layout" "partialSelect" t/nil)

(2) geXLSelectForm->geSelectionMode->value = "Full"

(3) geTogglePartialSelect(), which is equivalent to pressing F4 on keyboard

Question is, what is eventually changed by these different approaches, so that the layout editor knows whether to use partial or full selection?

I tried envGetVal("layout" "partialSelect") and envGetVal("graphic" "partialSelect"), but as their values are changed by (1) above, (2) and (3) does not change their values..

This makes it impossible to infer the current selection mode inside my custom skill program.

Please kindly help!

Daniel 

Removing Temperature from Corner in Maestro using SKILL

$
0
0

Hello,

I have a corner defined with temperature value 20. I would like to disable the temperature variable (perhaps value nil) but I am not able to find a maestro/ADE-XL function for this purpose.

Any pointers would be appreciated.

Best regards,
Karam

Creating EMH compatible net information in a layout view

$
0
0

Hi experts,

I have an extracted layout view that contains connectivity information.

The layout is flat but the instance name information has preserved the original hierarchy.

For example, instances are named xxx|yyy|zzz

Where "|" is the hierarchy delimiter

I would like to Create instances with the name xxx`yyy`zzz. (backtick. Under the Tilda~ key)

In addition, I have signal name with  the format aaa|bbb|ccc[0]

I would like to create nets with the name aaa`bbb'ccc<0>

I believe the netlist would then be EMH (Embedded Module Hierarchy) compatible if I could do this.

But I get the following when trying to rename instances:

( Original name: Logic|LvSh_sleep_n|pres[9]`M0

 Required new name: Logic'LvSh_sleep_n'pres[9]`M0.   (I was going to change "[" and "]" to "< " and ">" later BTW)

I used the dbSetAnyInstName procedure

*WARNING* (DB-220018): dbSetAnyInstName: The specified input name does not support the Logic`LvSh_sleep_n`pres[9]`M0 hierarchical path name. Use another valid name and then try again.

I got similar messages when using dbRenameNet() procedure on the nets.

Background info: net probing using an extracted view instead of the original schematic is failing because of failure to recognize nets.

Any inputs welcome.

Colin


How to delete a repeated object in layout

$
0
0

I am new to skill. is there any  skill code to delete a repeated copy in layout

for example

fills are overlapped with other objects at same interval of distance(20 times). so if I delete at one place other places has to be deleted 

Plot GUI

$
0
0

Dear Cadence Family, 

I am making a GUI using Skill programming. I wish to ask if there is a way to plot certain curves into a window within GUI?


How can i define a certain form for the plot area? and then use its identifier to plot the curves?

Regards, 
Haris 

Is there a similar skill function (or other workaround) to "avExtractedCellViewCallProc" when generating a SPICE output? - during QRC extractions

$
0
0

Hello Cadence folk,

In ICADV12.30.ISR15, QRC tool

When generating layout extractions in SPICE output (not the usual "Extracted" view), is there a way to invoke a (skill or other) procedure at the end of the SPICE generation ?. 

I've noticed that when the output type is "Extracted", there is a "Call procedure" field that appears on the QRC form. However this field is absent when the output type is "Spice". I see per the help documentation, there is a skill function that exists named "avExtractedCellViewCallProc" which is invoked when an extraction of type "Extracted" is generated. I am unclear at the moment if this a user-trigger function that needs to be registered (similar to PVS triggers) or if it simply needs to defined by the user. However, it is clear per the name of the function that it will be invoked for extractions of type "Extracted" -not Spice.

Is there someway to call a procedure to execute actions for extractions of type "Spice" ? -  akin to a POST trigger. 

Thank you

Regards,

Frank

Call backs

$
0
0

Hi All,

I am trying to instantiate a pmos in a schematic with some predefined properties using SKILL, when I put the number of fins(nfin) as 4 and number of fingers(nf) as 2, the tab with total number of fins should be updated to 8. But it is still set to its default value. So I am manually updating it, is there any other way in which the call back associated with this option can be triggered and some tabs be changed on there own?

Here is the snippet which I am using.

cdf_param_pmos=
list(list("nf" "string" sprintf(a_str "%d" a)) list("model" "string" "lvtpfet") list("nfin" "string" sprintf(b_str "%d" b)) list("total_nfin" "string" sprintf(ab_str "%d" a*b)) )
dbCreateParamInstByMasterName(
cv ;; the current cellview's dbId
"libName" ;; the library where the instance comes from
"pmos_b" ;; the name of the cell to be instantiated
"symbol" ;; the viewname of the cell to be instantiated
"I0";; hopefully a unique instance name
0.25:5.35 ;; origin
"R0" ;; orientation
1 ;; number of instances
cdf_param_pmos ) ;; the parameters, types and values

Thanks

Utkarsh

How to change Model Library Setup in Maestro using SKILL

$
0
0

Hello,

I am trying to change my model library setup in maestro. This involves deleting (or disabling) existing model files and adding different model files.

 I found an ADE-XL function axlSetModelFile( .. ) but it seems to set a model file for a corner. Is there a similar function that sets default model files for each test?

Any hints would be appreciated.

Best regards,
Karam

Viewing all 5068 articles
Browse latest View live


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