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

Set leHiMarkNet default settings

$
0
0

How do I set the leHiMarkNet settings to default to settings I set in markNetOptions when I start cadence?

Or what settings/environment variables for leHiMarkNet?

Paul 


Top level ADC testbench

$
0
0

Hi,

I am running simulations on an ADC. I use ADE-L to generate the netlist and the testbench itself is written in skill . 

I have until now used Spectre as simulator and it have worked flawless. I found some AMS configurations however, that could be used to improve simulation speed (which is a major concern). So i decided to change simulator from Spectre to AMS.

The process is that I generate a VAMS netlist from ADE, then the skill testbench picks it up, setting all necessary variables and starts the simulation. When changing simulator, the simulation does not even start so i assume there are some errors in the configuration.

The following errors is shown in the log.

*Error* putprop: first arg must be either symbol, list, defstruct or user type – nil

and some of the following errors, for different variables

I dont really know were to start debugging, so i would appreciate any hints or ideas :)

Thanks,
Tobias

Find the center of a polygon segment

$
0
0

Methodology of how to find the center of a segment on a polygon.

I want to center objects, vias or labels, on a particular part of a polygon; for example, a "C", "H" or "Z" shaped polygon.

1) Should I chopped the object to find the polygons segments or is there a better method?

2) How or where to chop the polygon, should I do the edits in the cellview or a scratch view.

Paul

Auto Highlight in scroll Region

$
0
0

Hi,

I have a GUI in which a scroll region displays the many layer purpose pairs as shown in the fig. 

  

Here instead of scrolling down and selecting a layer, I want to type the layer name in the stringField text box and automatically the layer purpose pair should get highlighted like the way it does in Virtuoso Library Manager.

I've searched the SKILL documentation regarding this, and found hiHighlightField() function. 

Can anyone suggest any method or Is it the function that serves my purpose?

Regards

Teja.

Cannot overwrite EnterFunction Command for default bindkey definition

$
0
0

Dears,


Minor problem, but I cannot overwrite the default bindkey definition with my own SKILL command.
By default, the layout command for "Ctrl <Btn4>" is geScroll(nil "n" nil) with the EnterFunction Command weScrollOrCycleUpWireViaAlignment().

If I try to change the bindkey command to hiZoomInAtMouse(), (loaded via .cdsinit or even through the Bindkey Editor), the EnterFunction command is not removed from the previous definition, and the bindkey doesn't work properly.

This is the Skill command I introduced in my .cdsinit.


hiSetBindKey("Layout" "Ctrl<Btn4Down>" "hiZoomInAtMouse()")

Any hints?

The virtuoso version is IC6.1.6-64b.500.7

Advanced Boolean Engine: Is it safe for Pcells?

$
0
0

ABE functions cannot be used in SKILL code for creating Pcells.

--Virtuoso Layout Suite SKILL Reference, Chapter 18


 

When you create SKILL routines within Pcells, use only the following functions:

The SKILL functions documented in the Cadence SKILL Language Reference; for example, carifforeachsprintfwhile.
SKILL functions from the following families:
db      dd      cdf
rod     tech    abe
cst     tx

--Virtuoso Parameterized Cell SKILL Reference, Chapter 1


 

So is ABE safe for Pcells or not??

Virtuoso Analog Distributed Processing options default

$
0
0

Hello,

I would like to set a default (skill commands in .cdsinit?) on the Analog Distributed Processing form:

1. "reuse job name after completion"

2. "remove data before job submission"

3. "command"    OR    "queueName"    AND   "LSF resource string"

Do you have a solution? Is it documented?

Thank you

Aldo

prboundary display issues

$
0
0

Hello,

I have some skill code that sets the visibility of selected sets of layers.  Here's an example:

procedure(OnlyC4()
leSetEntryLayer(`("C4" "drawing"))
leSetAllLayerVisible(nil)
ShowC4(t)
)

The problem with this is that the "leSetAllLayerVisible(nil)" command is turning off the display of my prboundary objects.  When I look at the Objects palette, the prboundary objects are set to "visible", but they are not displayed.  There must be a display layer associated with prboundary objects that is being turned off.  Is there a way to prevent this behavior?

Thanks,

Rob


C++ Pcells

$
0
0

Not sure if this is the right forum for this question, but I'm sure I can be directed there from here.    Are C++ Pcells a viable alternative now for running within Virtuoso?   I have no interest in all that interoperable/iPDK stuff.   I'm just looking at this as a possible way to IP-protect my Pcells, and maybe get them to render more quickly in Virtuoso, and in any custom-made OpenAccess applications I may have.   Plus code reusability between other OA C++ applications (similar to how you can reuse SKILL code between Pcells and other SKILL utilities which draw shapes).  

thanks!

how to get net for particular terminal

$
0
0

HI, 

I want to get the net connected to a specific Term using skill, especially if the terminal is a bus (say IN<12:0>) and net connected to it is not in proper bit format. See figure below.

when i run  :inst is db id of instance Test_1

inst~>instTerms~>net~>name  => ("IN_STDBY" "ABC_SET" "TRANSs<12:8>,<*2>VSS,VDD,<*2>VSS,T1,TRANS<1:0>" "ABC<36:27>" "En_2" "STOPBY" "STOPPWR")

inst~>instTerms~>term~>name  => ("STDBY" "SET" "IN<12:0>" "OUT<36:27>" "En" "En1" "En2")

 

However can somebody tell me if there is any code of function which can give  net for each bit directly ?  eg : IN<7> is connected to VSS etc

Syntax_rules in Skill++

$
0
0

I read a forum post from a few years ago where a user mentioned that syntax_rules was partially implemented in Skill++. Just wondering if anyone knows if it's more stable these days and can be used?

It seems like a fairly core part of scheme so it's a bit odd to not include it.

How do I run an OCEAN script from ADE/ADE XL GUI

$
0
0

Hi,

I was wondering if there is any way of loading an OCEAN script into the ADE/ADE XL GUI and running it as one would run an saved state. I understand that this might be an unusual request, but I need it to be able to modify an ADE state by exporting it as an OCEAN script and then hopefully reload it into the ADE (/XL) GUI and run the simulation. In other words, is it possible to convert an OCEAN script into an ADE (/XL) state, assuming it has all the necessary ingredients?

I am using Virtuoso 6.1.6-64b.

Thanks in advance

how to cut an array of rectangles in a big rectangle if the the widths and lengths of small rectangle are defined as the variables?

$
0
0

Hi All,

I am a newbie to SKILL programming and need help on the following question that seems simple yet getting me stuck for a while. Any help will be appreciated!!

What I am trying to do is simple: I would like to cut several repeated rectangle holes in a rectangle. I define the widths and lengths of small rectangle and the gap between big rectangle and small rectangle as the variables.

However,  the gap between big rectangle and small rectangle are not symmetrical to both rectangular side.

Access to the DRC markers.

$
0
0

Hi all!

I understand, that this question has already been raised several times. But I could not find the answer.

A lot of time we need to have access (or transfer to the layer or have access to the coordinates) to the DRC error markers after Assura, PVS or Calibre check.

But no any *hilight functions or another skill function doesn't help.

Can anyone help how to solve this problem?

SKILL code to get Cadence License Server Host Id .

$
0
0

Hi All,
How to get Cadence License Server Host Id using SKILL ?
Because, I want to subscribe in cadence online support(https://support.cadence.com) .
I am using IC5141.


Best regards,
Marben


Skill regex pcre {} quantifiers

$
0
0

Hello folks,
 I'm trying to come up with a pcre pattern that would match at least 4 times (4 or more)  a given substring from parent string. Reading through Cadence documentation I found exactly what I need in sklangref.pdf on page 169. The example written there is this:

comPat3 = pcreCompile( "z{1,5}" ) => pcreobj@0x27d120
pcreExecute( comPat3 "zzzzz" ) => t

From my understanding, pcreExecute() should return => t  when "z"  is found at least 1 but not more than 5 times into given string. Is that correct ? I do have some perl background so I might be biased. So, If this assumption is correct the following piece of code should return nil

Theoretically:
comPat3 = pcreCompile( "z{1,5}" ) => pcreobj@0x27d120
pcreExecute( comPat3 "zzzzzzz" ) => nil
comPat3 = pcreCompile( "z{2,5}" ) => pcreobj@0x27d120
pcreExecute( comPat3 "z" ) => nil

However, when put to the test, the result is t


Practically:
comPat3 = pcreCompile( "z{1,5}" ) => pcreobj@0x27d120
pcreExecute( comPat3 "zzzzzzz" ) => t
comPat3 = pcreCompile( "z{2,5}" ) => pcreobj@0x27d120
pcreExecute( comPat3 "z" ) => t

Is there a piece of information I've missed on {} quantifiers or this is some sort of a bug?

And finally, this is how I end up asking this question. I am facing the following problem. I have a string with variables, which all have same prefix. I want to be sure that this string has at least 4 variables in it with "Don" prefix. Example:
str1 =  "  Don1 Don1_x Don1_y Don1_l Don1_w"
comPat1 = pcreCompile( "Don{4,}" )
pcreExecute(comPat1 str1) => (theoretically should return t, but it returns - nil)

str1 =  "  Don1 Don1_x Don1_y Don1_l"
comPat1 = pcreCompile( "Don{4,}" )
pcreExecute(comPat1 str1) => (theoretically should return t, but it returns - nil)

str1 =  "  Don1 Don1_x Don1_y"
comPat1 = pcreCompile( "Don{4,}" )
pcreExecute(comPat1 str1) => (theoretically should return nil. Practically it really does - nil)

how to create netlist from schematic in ultrasim simulator netlist format hspice with ocean script

$
0
0

hi,

i tried with this script.

simulator( 'UltraSim)
design( "libname" "cellname" "schematic")
createNetlist(?recreateAll t)

but its creating spectra netlist format not hspice format.

how to do that?

Instance does not give cdf parameter to fill in

$
0
0

Hi, I am trying to use pPar to import R value eg. into the schematic from the symbol instance. After I did cdf edit etc as instructed then I instantiate the symbol but it does not have a box for me to fill in the value....please advice.

Also in cdf edit when I click add button it does not pop up something as I see from many threads, it is like the one below :

Can dbOpenCellViewByType Open a Config View?

$
0
0

I am trying to check that a schematic and config view exists for a specific cell and display a custom error message if it doesn't exist.  However the dbOpenCellViewByType call I am using seems to work for the schematic view but not for the config view.  Is there a better way of checking for the existence of a config cell view?  (or for the schematic for that matter)

Here is the code I have tried:  ( The first check on the schematic does not cause an error, whereas the config check does.  Both the schematic and the config views exist.

; Check that the test bench schematic view exists
schemCellObj = dbOpenCellViewByType("pk1126_sky77366_5_CR_mayberc" "pk1126_demo_TB" "schematic")
if(schemCellObj == nil
then
error("The schematic view must be created before the ADEXL view is imported. Please makse sure the testbench schematic and config views have been created and try importing the adexl view again.")
else
dbClose(schemCellObj));

; Check that the test bench config view exists
configCellObj = dbOpenCellViewByType("pk1126_sky77366_5_CR_mayberc" "pk1126_demo_TB" "config")
if(configCellObj == nil
then
error("The config view must be created before the ADEXL view is imported. Please makse sure the testbench schematic and config views have been created and try importing the adexl view again.")
else
dbClose(configCellObj));

Here is the error I get:

*WARNING* (DB-270211): dbOpenCellViewByType: Failed to open cellview (pk1126_demo_TB config) from lib (pk1126_sky77366_5_CR_mayberc) in 'r' mode because cellview does not exist, or cellview type is not recognized by dbOpenCellViewByType.
*Error* The config view must be created before the ADEXL view is imported. Please makse sure the testbench schematic and config views have been created and try importing the adexl view again.
*Error* load: error while loading file - "/prj/crdc_dev/mayberc/Github/SkyVer_sandbox/tbx/doc/examples/SKY77366_pk1126/pk1126_demo_TB_test.il" at line 34

I am using IC6.17-64b.500.8

custom "ports" in layouts

$
0
0

I do a lot of custom layout in Skill generating fairly sophisticated curvilinear shapes. I would like to add "ports" to these P-Cells in a way that will extend to being able to create schematic symbols with the pin names matching the ports on the layout. The characteristics of a port are:

1) a port name that is a string
2) an (X,Y) coordinate pair that is the location of the port
3) another (X,Y) coordinate pair where the vector between the location coordinate pair and this pair encodes directionality
4) the physical width of the port (e.g. the width of the underlying shape)


I currently use the dbCreateHierProp() procedure to make a "ports" property for P-Cell layouts that have a list of ports with the above information encoded in it. I then have custom procedures that create shapes and text that display where the ports are and their names. However, this text and shapes are not really linked to the "ports" property after they are created. So, hiding, showing, and updating the port text and shapes is not as clean as I would like it to be. Also, as I mentioned, I would like to use these ports as a basis for creating pins in a schematic and eventually running LVS. So, to summarize, the functionality I am trying to build is: 

1) have "ports" attached to layouts
2) some of the ports will correspond to pins in schematics
3) be able to easily toggle on/off the port information in layout view

Questions: 

1) is dbCreateHierProp() the right way to go about this? Or am I reinventing the wheel and am missing some functionality that is already built-in? 
2) what is the recommended way to create a custom layout symbol and text that displays the port information? Ideally, it would have a shape representing where the port is and its directionality as well as text that has the port name, directionality, and width
3) what is a good way to toggle on and off the shapes and info from question #2? 
4) what is a good way to derive pins that will correspond to schematic pins from the port information? 

I have decent experience writing custom Skill for layouts, but I haven't written functionality to toggle shapes/information in layout view. And, I haven't written any functionality to relate layout views with schematic views. So, being pointed in the right direction would be greatly appreciated. Thanks in advance!

Viewing all 5074 articles
Browse latest View live


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