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

Using LayoutXL in SKILL without Window/GUI

$
0
0

Hi.  I am using version IC6.1.6.

Somewhat new at SKILL code.  We open Schematic view.  From that Schematic window, we do "Launch -> Layout XL"  and open layout.

From that Layout XL window, we run some SKILL procedure thru small GUI form we created.

That procedure sets layout view pointer as:

cvId_layout = hiGetCurrentWindow()~>cellView

I want to achieve same functionality without any GUI/window.  How do I achieve this?

I am trying to run that skill procedure in "batch" mode with something like:

virtuoso -nograph -log myTest.log -replay myTest.il

In my SKILL procedure I replaced cvId_layout as below, but everything else remains same.

cvId_layout = dbOpenCellViewByType("myLib" "myCell" "layout" "" "a")

and operate on cvId_layout object, but result is different when running with and without GUI/window.

Any help or suggestion on starting layoutXL without GUI/window? Thank you.


how to parse/print a variable number of arguments

$
0
0

Hi,

I have a list with the names of the signals I want to parse to a function and also to print to a file (using fprintf). My problem is that the number of signals is not fixed; it can be only 3 or it could be 18. Any suggestions on how I could implement such function and also how to print when I don't know the number of arguments to print?

Thanks very much in advance.

Best regards,

Control or set the size of hiShowListBox

$
0
0

Is there a way to set the size of the hiShowListBox?
When I look at the variables, I dont see the form size parameters.

Paul

Skill mode editing of groups and Synchronous Copies

$
0
0

Hi Everyone,

Good Day.  

I am using virtuoso IC6.1.6, and my problems is that if I do some editing inside of a Group or Synchronous Copy  like. changing layer or Copying in skillmode,  the new/edited object is separated from the group, i.e it is not a member of the group which I am editing.  How should I do the copy command in skill and ensure that the new object becomes part of the Group?

Many thanks in advance for any suggestions.

BR  ~lrlsk

Create MPP using custom template

$
0
0

Hello,

I would like to start creating an MPP with a pre-selected template using SKILL. So instead of clicking "Create MPP" and then changing the template the user could start drawing using the custom template that was created earlier.

When launching the lxHiCreateMPP() it starts an enter function so it is impossible to change the value of the template field using SKILL once its running.

Only solution I can think of is to create the form that is used for the MPP(leRodMppForm) in the background and change the value of the field that specifies the template used(rodMPPTemplate).

Is there a way to create this form without starting the enter function? Or is there a different approach that can be used to solve this problem?

Thanks,

Denis

Search Schematic Hierarchy for user added net property and return hierarchy path

$
0
0

My goal is to open a top level schematic and scan through all of it's hierarchy and look for any cells that contain a specific user added property. When the property is found, the code would return the exact hierarchy path back to the top cell (/Xchip/Xbandgap/Xosc/XcellA). Where cellA would be the cell that a prop was found in.

Write String to a File question

$
0
0

Dear all,

This is a simple question.

I am using a form to collect data entered by the user. I would like to store this data into a text file, separating each field into different lines in the text file.

I have come up with a solution that is far away from being the best. I have stored all the information into a string and then I've parsed into a list. After that each element of list is written into the file in separate lines.

Please find my code below. In this case I am already passing the list and not the string.

Thanks in advance,

Pedro

procedure(WriteToFile(myPath myList)
let((myPort FileExists txtStr delimiter)
FileExists=isFileName(myPath) ; Test if the file exists

; Check if config file exists
if((FileExists==t) then
printf("File Exists !")
else
myPort=outfile( myPath ) ; open file for write
for( i 0 length(myList)-1 ; loop through the list
str=nth(i myList)
fprintf(myPort "%s\n" str) ; write string to file
)
close( myPort ) ; close file
printf("File Created !")
); end if
); End let
); End procedure

 

converting ADEXL datasheets to PDF

$
0
0

HI,

I was wondering if it would be possible to convert the HTML documents/folders created using Create->Datasheet to a single PDF document (with hyperlinks to the different sections).


thanks in advance.


ASSURA DRC- ERROR

$
0
0

Hi,

I am exploring two stage CMOS OP AMP in Cadence.

I managed to make the schematic and layout but i am stuck in ASSURA DRC . I have tried to remove the error but it is not resolved.

Error is shown in the picture.

Please help me how can i remove this error.

Regards.

Error with getAsciiWave() in Cadence Virtuoso

$
0
0

I tried the command: plot(getAsciiWave("test.txt" 1 2)) however I get the following error:

"File /filepath/ is not readable. In order to proceed with creation of waveform object ensure that the specified file is in readable mode."

I have a text file with two large columns of data, and I want to be able to plot the data in ViVa and then plot the results of my simulation to compare the graphs.

Any help will be appreciated.

Thanks.  

How to use dbLaterOr/dbLayerAnd/dbLayer... function hierarchically

$
0
0

I have a SKILL program to delete duplicated labels, make sure there only one label for one hierarchically connected net.

Currently I am using DIVA geomGetPurpose("M1" "drawing" 0 30) to get a annotate layer and then delete the extra labels.

Since there is a huge amount of labels, my SKILL program is running more than 4 hours.

I read solution 11237840 ( Lawrence suggested). It is a GUI base and it seems copy all layers... Is there any other way to solve me problem make the program faster?

Thanks!

Bonnie

question about geAddHilightRectangle

$
0
0

Hi All,

I would like to use "geAddHilightRectangle" to create a rectangle in Virtuoso based on the criteria. I need 10 different colors for highlight layer.

How do I know how many highlight layers are defined and supported by Virtuso techfile ? Is there any document for it ?

Thanks,

ManChak 

Skill code to add decaps/fillers in empty spaces

$
0
0

Hi all,


I am just new to skill code and my knowledge is not that broad for now. I want to test something, adding some cells (decaps or dummies to any empty areas in my top level). I tried using the leLayerAndNot in which I used the prboundaries for my lists.. but I think this function could not detect shapes or objects inside a cell, only flatten ones..

thanks and regards,

wuntzang

Include file in spectre

$
0
0

I have a very simple question.
I am trying to include a file in spectre. I have the simplest setup possible.
I am using an empty netlist (only entry is simulator lang=spectre) and using a stimulus file, where I have only one include statement:
include "RefClk.txt"
The RefClk.txt file has a pwl voltage source in spectre syntax (simulator lang=spectre at the top of the file). 
The issue is this: When I have a very low number of time/voltage pairs (e.g. 50) then the file is included and the simulation completes correctly.
When I try to include a more realistic pwl waveform with ~1000 time/voltage pairs, the simulations hangs.
Has anyone seen anything like that?
Thanks.

question about adding a property to y0 drawing

$
0
0

Hi All,

I would like to draw a polygon/rectangle over a region and attach the property "resistance" to this layer.  Could I attach the property to "y0-8" "drawing" ? I got a SKILL code from Cadence support site, which could display the properties of the layer when I select the polygon in the layout. However, I only see "OD" "drawing" in LSW but not "y0" "drawing". I could select "OD" drawing.   Is "y0" "drawing" selectable ?

cv=geGetEditCellView()
rec_id = dbCreateRect(cv list("y0" "drawing") list(-4.63:0.7 -1.2:3.51))

rec_id->resistance=0.5

Thanks,

ManChak


Export Waveform to CSV Fille in OCEAN Script

$
0
0

Hello, 

After plotting a waveform in ViVA, I am aware that you can export the waveform points into a CSV file. However, I am performing a Parametric Analysis and I am running many simulations. I am only interested in exporting the data for a signal into a CSV file, not plotting it. Is there a method I can in use in my OCEAN script that will export a CSV file for every simulation [or export one giant CSV for all the simulations]? 

SKILL code to set y0 as valid layer

$
0
0

Hi All,

Is there any SKILL code to set y0 valid instead of using the instruction below ? The instruction below works, but I would like to set y0-y8 as valid layers by default when designers run my SKILL program. 

"Anyway, use the right mouse button menu in the palette (e.g. just to the right of the bit where you have the Valid, Used, Routing checkboxes) and pick Edit Valid Layers. You'll then see a "v" (lowercase) and "m" column appear in the main palette and a bunch of layers in red (make sure you turn off the "Used" checkbox too otherwise you may not see it - although if you've created the shape with SKILL, it would be in the cellView so it may be OK). Any of the non-valid layers will be in red - you can turn on the "v" checkbox and then do RMB->Edit Valid Layers again to exit the mode where you're editing the valid layers. It should now show up in the normal palette (you can of course filter for "y0" when in the edit valid layers mode)."

Thanks,

ManChak

How to save a list of Viva Windows as images?

$
0
0

Hi Folks,

I'm trying to save a number of open Viva Windows at one time w/o clicking on each one and have an issue as only the displayed one is save w/ the right content while the other stay dark.

Using the following code:

path = "/home/user/"
foreach( win awvGetWindowList()
        wTitle = awvGetWindowTitle(win)
        wTitle = strcat( path wTitle ".jpg")
        saveGraphImage(?window win ?fileName wTitle ?exactCopy t ?quality 100)
        )


Any ideas and/or hints how I could activate the related window before firing the save image command?


Thanks and best regards,

Norbert

Returning value from a function

$
0
0

Dear all,

I have written the function below, which only checks if a given file exists or not, and I would like it to return the value stored into retValue.

As far as I know, SKILL returns the value of the last line of code (is this correct ?).

If I write the code as below, I will get the error:

*** Error in routine eval:
Message: *Error* eval: unbound variable - retValue

However, if I replace retValue by retValue=isFileName(myFilePath) it will work,but, from my point of view, this is an example of ugly code, since I am evaluating the function twice. Is there another way to do this ?

If the variable retValue retains always the correct value, why does it get unbound after the if instruction end ?

Thanks in advance,

José

procedure(fileExists(myFilePath)
                   let((retValue)
                   retValue=isFileName(myFilePath) ; Test if the file exists

                   ; Check if config file exists
                   if((retValue==t) then
                          printf("fileExists: File Exists !")
                   else
                         printf("fileExists: File does not Exist !")
                   ); end if
                   ); End letmypath
                   retValue                              ; Return Value
); End procedure

Information box

$
0
0

Dear all,

When I hover my mouse cursor over  some Library/Cell/View item on the library manager, it displays a a little piece of text, with the name of the item.

Is there a way to change/add the text in/to this box ?

Best regards,

José

Viewing all 5071 articles
Browse latest View live


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