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

Find nested commands

$
0
0

 Is there a way to find the nested commands?


open cell with maximize window

$
0
0

When I open a cell from library manager, it always was a small windown and not on top level,

is there any way to open a cell with maximize window and on top level? At least on top level ! Thanks

*Error* fprintf/sprintf: illegal format spec. - " $monitor(\"Time: %t, Control Variable %f\\n\",$time,Ctrl_1_);\n"

$
0
0

 Hello,

Try to Create a Cadence view from the verilog file. Here is my section of the skill that it is having problem with.  If somebody has a easier way to create a Cadence view from a file let me know as well. I know what the problem here is but do not know the solution yet.

       if((ddGetObj(libName cellName viewName fileN nil "r") != nil) then
      CCScopyWrealCV(libName cellName viewName copyViewName)   
      ddDeleteObj(ddGetObj(libName cellName viewName fileN nil "r"))
      fileId = ddGetObj(libName cellName viewName fileN nil "w")
      WfileName = fileId~>readPath
      oPort  = outfile(WfileName)
      fileOut = infile(fileName)
      while(gets(string fileOut)
          fprintf(oPort string)          
      )
      close(fileOut)
      close(oPort)

Thanks

leSearchHierarchy property search syntax

$
0
0

What is the syntax for leSearchHierarchy to search for a property on a shape

 leSearchHierarchy(cv cv~>bBox 0 "any shape"
                list(    list("property" ???

 property name = "regen"

property value = t

Thanks

Using for loop inside hiCreateAppForm fields

$
0
0
Hi,
I am encountering an error while using a for loop inside hiCreateAppForm fields. Here is the error message:
*Error* hiCreateAppForm: not all fields have 2D attributes specified, and/or illegal attribute values 
 
However if I comment out the for loop then error goes away. 
 
hiCreateAppForm(
?name 'Form
?formTitle "test form"
?fields
list(
      
       list(label 0:0 600:30 200)
list(all 10:30 600:30 20)
list(none 10:60 600:30 20)
list(cellviewFrame 0:90 600:30 200)
for(i 1 count 
  list(cellview[i] 10:90+(i*30) 600:30 20)
);for  
      );list
);hi createAppForm
       
hiDisplayForm(Form)
 
Any help would be appreciated.
P.S. cellview has been declared as an arry in earlier part of the code (declare(cellview[2]) ) 
 
Regards,
Sandeep 

About the viewing of the information of the nodal voltage between schematic and Layout Editor

$
0
0

Hi, everyone

What I used: Cadence IC51.41.151 /// Spectre 10.1.1.412.isr23 

After running the Spectre to extract the nodal voltage, Can we print this information

to the Layout XL(Layout Editor) on the polygon(Such as metal1/metal2/via etc.)?

 

This information already printed on the Cadence Schmatic view.

But as the circuit is huge, it's difficult to trace back the nodal voltage on the specific metal line in Layout Editor .

Can we acheive that?

thanks 

 

 

 

Reading a parametrized cdf parameter

$
0
0

Hi, 

I am trying to read the CDF parameters of a FET.

My problem is that some of them refer to other CDF parameters via iPar().

So if I do: p1=cdfGetInstCDF(inst)~>parameters

v1=car(parameters)~>value 

Then I get v1="iPar("\width\")", instead of the numerical value.

This is fair enough and expected, but I was wondering if there is an easy way to get the evaluated value of the parameter returned rather than the string?

I could write a function to do this iterating through the parameters, but I am currently extracting the values of several parameters via lists (setof) and so if there is a built-in function to do this it would be more convenient. 

 

Thanks for the help.

Kostas 

symbols of my pcell nmos/pmos transistors

$
0
0

Dear all, 

I created my required pcell layouts of the pmos/nmos transistors, but i also need to produce the symbols for them.

So i easily copy the standard symbols from "analogLib" library to my own library.

When I try to simulate my schematic using these two symbols, the spectre simulator complains :

Error found by spectre during hierarchy flattening.
    ERROR (CMI-2116): M0: Too few terminals given (0 < 4).

I CHECK the schmatic netlist and found there are NO terminals for my transistors.

Do you have any good idea to solve this error ? 

Thanks


define arrayed contacts in techfile

$
0
0

The DRC rules require different spacings for two single contacts and an arrayed contacts. For example, when there are only two V1 vias, the spacing is 0.21. If the vias form an 4x4 array, the spacing should be 0.25 instead.

In the technology file, we can create symbolic contacts which can be called when you press "o" ( or use menu "create Contacts..."). But the spacings can't change if rows and columns are > 4. Although the user can change the pitch manually, it's a little tedious.

So we want to change the definition of the symbolic contacts to make spacing change automatically. In the spacingRules (one subclass of physicalRules class) we defined "viaSpacing  "V1" list(4 0.25 0.25)". But it doesn't work. We can write skill codes to do this, but that seems overkill.

Dose anybody know a simple way to modify the technology file to make it?

Thanks,

Howel

Problem with create Auto Via option.

$
0
0

Hi All,

I am using Cadence tool IC6.1.5 version . In the technology library there are different types of vias like (M2_M1a, M2_M1_FBD,M2_M1_PBD, etc,.) .  If I use auto contact between M2 and M1 with option under Via Definition as "M2_M1_FBD" or "M2_M1_PBD". It will place the via with via Definition as "M2_M1_FBD" or "M2_M1_PBD" , but has the parameters as Minimum Rules which is for "M2_M1a" .

I want the selected vias with corresponding Viasdefs not the minimum rule parameters.

Please tell me how to overcome this issue.

Thanks ,

srinivas

Filter Path from Selected set of shapes

$
0
0

Hei,

Is there a command to filter paths from a selected set of shapes.

Thanks in advance.

Ajesh 

GUI: How to change the default value of a field depending on options selected in the same form.

$
0
0

Hi,

I wanted my default field value to change, when i change one of my other field options.

For Ex: if i have two fields one of radio(ex vdd option --- 1v ... 2v .. 3v) and other of float. I want my float field to change its default values depending upon vdd option selected from radio field.

Regards

Neeraj  

 

Add custom include file in netlist when doing NEtlist and Run from ADE

$
0
0
Is there a way to add custom include files in the netlist when user does Netlist and Run in a ADE session

Print Alphabets in Skill

$
0
0

Hello all,

 Could you please help me of how to print Alphabets in Skill.  I tried using the formatted output "%c" but it is not working (as in "C" language %c would print the corresponding ascii value) but here it was printing only the first character of a string.

Thank you very much in advance.

 

Regards,

Sri.

 

Copy text from file to another using SKILL

$
0
0

Hello all,

Is there a way to copy certain text from one file to another using Skill?. It seems that ccpCopy() function only copies library, cell, or view files. Am i missing something?.

Thanks

Taher 


How to change fixnum type into a string type

$
0
0

Hi everyone!

How can I change a fixnum type (100.00) into a string type (“100.00”) ?

THX !!

Movings pins in layout view

$
0
0

Hello,

 I have been using the 'dbMoveFig' command in order to move instances in a specified layout. Now I am trying to do the same with pins, however using the same function results in an error saying 'Invalid Figure'. Is there a different function I should be using in order to move pins?

 Thanks,

Elizabeth

Updating MPP Guardring in Skill

$
0
0

Hi All.

I have been using Cadence IC Layout ( Both 5.1.4.1 and 6.1.5 ) tools for the last 6 years and am now diving into Skill Programming.

Occasionally, when I "Flip" a MPP Guardring that have multiple rings, they get turned inside-out.

I have created a Bindkey/Skill procedure to fix the "justification", but am noticing that the update only applies my changes to one of the "subParts"... If I go into the "Edit ROD Multipart Path Properties" menu and select "Subpart" and then click on the "Edit" button, then all my SKILL changes are applied and the MPP Guardring is as I intended.

First I select the MPP Guardring to modify

Here is my code:

procedure(fixHVRingR()
MPPath=car(selectedSet())
myShp=rodGetObj(MPPath)
mySubParts=myShp~>subParts
foreach(myLayer mySubParts
case(myLayer~>justification
      ("left" myLayer~>justification="right")
     )
     )
)

I also have a version for "right" -> ""left"

When I open the Edit ROD Subpart dialog, all of the changes are shown but not on the actual MPP Guardring until I click on "Edit". 

Any help would be appreciated...

BTW... I am currently using Layout Suite XL in 6.1.5 for this issue.

Control Layout smart snap ruler

$
0
0

Not to post it here or in the  Custom IC Design. 

I would prefer a  skill method to control the ruler to what layers and edges, centerlines, etc.

Is there an environment variable to turn off smart snap or a way to control what edge the ruler snaps?

 

Thanks

SKILL command to get the netlist.cir file (IC6.1.5.500.132 and eldo 12.1_1)

$
0
0

Hi there,

First of all, I want to thank people in this forum for their voluntary support and suggestion, which has helped me a lot in learning SKILL. I am still a newbie, so please bear with me, as this is my first post!

Coming to the question: I want the netlist.cir file for the current schematic which is drawn, so that I can copy it somewhere else and do some further manipulation and run similations. 

Research done till now: I have searched this forum and found the following code closest to the solution, but it has some limitations:

isession=sevSession(hiGetCurrentWindow())  

cirFilePath=car(sevNetlistFile(isession'display))

Limitations:

-While calling the  sevNetlistFile() I am always greeted with an AMS output window showing the netlist, which is not desirable for a script running in the background.

-The sevNetlistFile() shows the circuit file path only when called with 'display switch. Hence everytime a change is done in the netlist, I will have to call sevNetlistFile(isession 'create) followed by sevNetlistFile(isession 'display), which will end up showing the AMS windows to the user twice.

So any other approach, in which I can get the updated netlist file from schematic in the background without bothering the user, will be highly appreciated.

Thanks in advance!

-Atul 

Viewing all 5094 articles
Browse latest View live


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