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

Probing more signals with one color ?

$
0
0

Hi,

Does anybody know how to change set of colour in probing function via skill

I would like to probe first signal with one color and rest from list with another but same color at the same time.

reason> first one is sensitiv signal other are aggressors.

example:

selection=("net2" "out3" "out2" "ib1")

lxProbeForm->probeNetBoxItem->value=selection


a simulation problem...

$
0
0

hi 

in cadence i build a model(actually a npn transistor) but i can't simulate that...

it's nodes are not known in cadence...

i think that it should be defined to simulation.i mean  that i should make a simulation profile.

how can i do that?

Skill to grep Net names for a particular instance.

$
0
0

Hi,

Can anyone please help me on this?

I am trying to grep all the net names in the current cellview. For example i'm have a schematic with N,N-1,N-2,N-3 hierarchy level. I need to grep all the net names in N-2 level, which should print like N/N-1/N-2/net1;     N/N-1/N-2/net2. Please help me on this.

Thanks & Regards,

Karthik

various calSpecialFunction* questions

$
0
0

Hello,


I have a small handful of questions related to user defined waveform calculator functions.  I've written a number and only registered a few and was going to go back and register a bunch to make them easier to find.  Some of the questions I have are:

1) When I make a change to the form creation code, and reload my skill file and access the form again I find that the new code didn't get run.  I have to keep changing the name of the form in calCreateSpecialFunctionsForm() and calCreateSpecialFunction().  Makes debug slow.  Maybe there is a way to flush/delete/purge the old form to force recreating it?

2) Experimentally I found that ahiCreateBooleanButton and ahiCreateCyclicField exist but they do not seem to be documented anywhere.

3) My form pops up as a standalone window while forms for builtin functions appear in a window docked in the calculator.  Is there a flag maybe to calCreateSpecialFunctionsForm() which would make mine be docked too?

4) Is there a way to have the calSpecialFunctionInput() procedure work with functions that use @key?  For example, I'd like to be able to call myFn(?sig1 STACK ?sig2 STACK ?someOpt t ?someOtherOpt 3.2 ?andAnother "foo") or some such thing.  Is there maybe a more powerful/capable way of interfacing to the calculator than the simple example given in the manual?  If I had to I could go back an rewrite some of the underlying functions to use arguments by order instead of @key but I do prefer @key.  Also the (undocumented) ahiCreateBooleanButton seems to not interact well with calSpecialFunctionInput when the box is unchecked (passes a value of nil).

Thanks

-Dan

Skill code to highlight/zoom to coordinates in layout window

$
0
0

Hi, 

       I have written a code to get coordinates of all pins in the layout. Can you please help me build a GUI, so that when the user clicks on these coordinates, it will highlight/zoom to that particular pin in the layout window? 

Can we highlight to the pins just using a text file or should we have a form for this?

Regards,

Roshan

*Error* defstruct and *Error* putprop:

$
0
0

please guide me with less complexity and more details since i am rookie with unix and cadence products and i want to give betters feedback to you to solve my problems. thank you very much.

when i open a new cell view in my library that a  technology has been attached to it, in log windows the error

Error* defstruct: master/instance mismatch - hiMenuItem
*WARNING* (DEBASE-102079): A Skill error occurred in function trFDKPostInstallTrigger

appears. in addition when i open ADE L to a perform a analysis, in log window i see 

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

however i can run a tran or dc analysis and plot a result. also toolbar in Schematic Editor L Editing disappears.

Sincerely yours

How to setup SVS comparison flow?

$
0
0

Hello Experts,

I want to compare two schematics using Virtuoso Schematic Editor : PVS -> Run SVS:

- same/different library but different cells

- same library, same cell but different view names

Appreciate a step-by-step approach. 

Thanks & Regards,

Ravi 

Add Toolbar in CIW window?

$
0
0

Hello,


I want to add Toolbar in CIW window,in which i will give string eg :- "/proj/projects/workarea/skill_work/assignment.il" and it will automatically load that file. I want that because i dont want to type again loadi"...." command



Regards,


cadence skill action while pressing middle mouse button?

$
0
0

I am not able to find Function while we press middle mouse button?,What is mean by this command "_leTbCommand("_leTbUnID()")"

and is it possible to do this in new version of cadence.."get the data into the variable which is stored in the mouse pointer"

This is old post of 2010,i thought now this feature might be there?

related to this post :- www.community.cadence.com/cadence_technology_forums/f/48/t/14625

Regards,

Chiranshu

set modgen member spacing using skill

$
0
0

I have created a modgen constraint on layout instances using

mgCreateModgenConstraintAsLayout()

now I want to set the spacing between modgen members to a specific value using skill.

Please help me find a function using which I can set member spacing in modgen.

Thanks

Jagrut

Using SKILL to draw over the PCB design

$
0
0

Hello, I'm new to Allegro and SKILL, and am currently looking into using SKILL scripts to draw graphics over the board design.  I've looked at the example script included with Allegro (axlform.il), where the axlGRPDrw* functions are used to draw on a separate form, but have not been able to modify that code to draw in the main view.  So, I was wondering if what I am trying to do is possible, and if so where could I find some documentation and/or examples on how to do this.

Thanks,

-Sergei

How to create automatic gate contacts?

$
0
0

Hi


If i select a mos and press bindkey then gate contacts should be inserted. How to do that?

Loading a directory to .cdsinit and looping through list of strings

$
0
0

Hi,

my initial idea was to load a directory of custom SKILL routines to .cdsinit

then I found out load function can't load a directory (like for instance you can do in EMACS with load function...)

so, I searched a bit through examples and saw that people load custom .il/.ils routines by loading up a single loadSkill.il file which contains then a list of load(...) functions...

Then I wanted to make the loadSkill.il file with a procedure that actually reads the files in the specified directory and then loads them up...

For that purpose I've dug up the getDirFiles(t_path) function so I get my list of files as strings

What I wanted to do was to filter through that list of strings and remove the directories and "." and ".."

But for some reason when I use foreach function on that list of strings - the first element is skipped.

for example:

routines = getDirFiles(getShellEnvVar("SKILLDIR"))

foreach(element routines

unless(rexMatchp(".il$" element) || rexMatchp(".ils$" element) remd(element routines))

);foreach

routines = ("practice_SKILL" "cleanFrame.il" "test.il" "dummy.test" "123test" "toplevel.ils")

=> ("practice_SKILL" "cleanFrame.il" "test"il" "toplevel.ils")

I've tried with if's and for's too... when I get them right, for some reason the first string element in that list prevails.

So I have two questions:

Is there a better way to load a directory of custom SKILL routines to .cdsinit?

And what am I doing wrong with strings here?

skill for creating label using the stream number and stream data type

$
0
0

Hi All,

Is there's a equivalent commands now in IC6.1.6 for the following commands that used to work before in old versions?

techGetStreamLayer

techGetStreamLayers

techGetStreamNumber

I need to to create a label in skill using the Stream Number and Stream data type only (0 0)
and the one that i can only see now in creating label is the dbCreateLable and it requires a layername or a layer number only.

Do you have any suggestions?

Thanks,

Joren

linread command error out when trying to read in complex lines

$
0
0

Hi,

Im using lineread command to read in from an input port .

Im reading the verilog si log file m which contain line such as ( start with):

/p/virtuoso/blabla

and also:

*/sdf/bla

the command lineread error out with syntax error, maybe because it is intended to parse things more than read in complex list ( which is what the  line is)

i tried other commands as well : read , linereadstring.  also sprintf("" %L lineread(line)) doesnt help..

what can be done is such cases?

thx

meny


update progress bar in real time

$
0
0

Hi,

im using ipcBeginProcess commands to launch two external process, and trying to update a progress bar :

the first process run generate  verilog netlist .

the second one phrase the log file of the generation process and update a progress bar accordingly.

I have two problem 

1. the progress bar got freeze out while the first process is running.

2. the first process exit code become alive only if i use ipcwait(first_process)

this is what i do :

procedure(simTerm(cid1 exit)
printf("Simulator expired with exit status = %L\n" exit)
exitCode=exit
)
procedure(handler(cid1 data)
printf("\n Date:%s\n" data)
)
procedure( simErr(cid1 err)
printf("Error %L Msg: %s\n" cid1 err)
)
procedure(handler2(cid2 data)
myvar=data;
printf("\n%s\n" data)
)

exitCode=nil

myvar=nil

cid1=ipcBeginProcess(strcat( pwd "/libFlow/" libname "/" cellname "/verilog/" "si.csh") "" "handler" "simErr" "simTerm" )
ipcSleep(1)
cid2=ipcBeginProcess(strcat( pwd "/readSiLogFile.pl") "" "handler2")

ipcSleep(1)

;; now launching the progress  bar

hiDisplayProgressBox(
?name 'myBar
?banner "verilog progress"
?text "Run completed.. "
?callback "printf(\"Done\n\")"
?totalSteps 10
?autoClose t
)

;; now running a while loop to check when exit status  cid1 

while(!exitCode

  while( myvar

do something - update progress bar -hihiSetProgressAndText....

        )

)

this make the progress bar freeze, and the while loop is endless( the exitCode variable never get "alive").

i guess this is because SKILL dont see the any exitCode/myvar variable  while its inside the loop, even though the cid1 process was launched

with communication channels. 

but if I do :

while(!exitCode

  ipcWait(cid1)

        )

.

.

.

;;and  only now  update the progress bar with hihiSetProgressAndText(myBar 4 "running") 

this loop run and terminate but :

1. virtuoso is freeze as long the while loop running

2. the progress bar is freeze and blank out

3. it is impossible to update the progress bar in real time , only after the verilog netlist process was terminated.

i couldn't find any real example/explanation on the progress bar. should it be execute with ipcbeginProcess?

thx

meny

Launching Layout GXL from a layout window opened in L and vice versa

$
0
0

Hi,

I have opened a layout window in Layout L.

How to change the existing window to Layout GXL/XL using SKILL.

Regards,

Srimant

Is there a quick way to extract results from runSimulation? (like

$
0
0

Hi,

My runSimulation File is like this:

spectre -env artist5.1.0 +escchars  -format sst2 -raw ../psf +lqtimeout 900 -maxw 5 -maxn 5 inputTest.scs (Results are in psf/.)

I tried to use ocean script to read results. It is good if  the ocean command are only manually called few times. The call can lead to huge delays if it is called in an iterative manner in a program. (by the way I ran multiply programs at the same time and it keep taking time complaining CDS.log.* locks thing)

I have listed out few time consuming operations in the ocean command and attached the logs from running " ocean < xxx.ocn " as well as the main contents in xxx.ocn file.

I know there are different format for output to /psf, like: nutbin, nutascii, wsfbin, wsfascii, psfbin, psfascii, psfbinf, psfxl, awb, sst2, fsdb, wdf, uwi, and tr0ascii. Is there one that is easy to read results from.

Is there a -fast- way to extract /psf data to a .txt file? (For example: LNA gain in my example; the results are in ../psf/resultsSpectre.txt)

Maybe one suggested method you know  is working compatible-ly with one of the listed "-format" ! Thanks!!!!


xxx.ocn:

 ;updated on the local account to make it universal by Alex.

 openResults("../../simulation/LNA_test_tb/spectre/schematic/psf/")

p=outfile("../../simulation/LNA_test_tb/spectre/schematic/psf/resultsSpectre.txt" "w")

 fprintf(p, "Hello World!\n" )

 fprintf(p, "Hello World!\n" )

 ;selectResult('sp_noise)

 ;selectResult('sp)

fprintf(p, "Gain:\n" )

Gain=value(db(sp(2 1 ?result "sp")) 4.6e9)

fprintf(p, "End Write!\n" )

close(p)

exit


Time Consuming in order  most -> least

1st: between ocean> Loading oasis.cxt  Loading analog.cxt [ 2-3 sec]

2nd: checking CDS.log [if multiple iterative programs are executed simultaneously [usually < 1s, but can be crazily long, if even CDS.9 is being locked and run out the index of CDS.log.*, say 10 is the limit]

3rd: quit ocean mode [the exit command in the xxx.ocn]

4th: first loading ocean command:  awd.exe


Ocean command running Log:

*WARNING* file /home/tl4528_loc/CDS.log File is already locked by some other process.
*WARNING* file /home/tl4528_loc/CDS.log.1 File is already locked by some other process.
Program:                @(#)$CDS: awd.exe version 5.1.0 10/28/2008 10:21 (cicln03) $
Hierarchy:              /users/vlsi/CMC/tools/cadence/IC5141USR6_lnx86/tools.lnx86/dfII/
Sub version:            sub-version 5.10.41_USR6.127.29 (32-bit addresses)
Host name (type):       cadlams2.engr.mun.ca (x86_64)
Operating system:       Linux 2.6.32-431.17.1.el6.x86_64 #1 SMP Fri Apr 11 17:27:00 EDT 2014
X display name: localhost:14.0
X server:               Moba/X
Depth of Visual (Root): 24 (24)
Number of Planes Used:  24
X version:              11.0 (vendor release 11405000)
Window Manager: other
User Name:              tl4528_loc
Working Directory:      cadlams2.engr.mun.ca:/home/tl4528_loc/workspace/ LNA_Small
Process Id:             613
 
COPYRIGHT 1992-2008  CADENCE DESIGN SYSTEMS INC.  ALL RIGHTS RESERVED.
          1992-2008  UNIX SYSTEMS Laboratories INC.,
                         Reproduced with permission.
 
This Cadence Design Systems program and online documentation are
proprietary/confidential information and may be disclosed/used only
as authorized in a license agreement controlling such use and disclosure.
 
          RESTRICTED RIGHTS NOTICE (SHORT FORM)
Use/reproduction/disclosure is subject to restriction
set forth at FAR 1252.227-19 or its equivalent.
8-bit PseudoColor Visual is not available (default Visual option).
Using 24-bit TrueColor Visual.
The program xdpyinfo can be used to verify the Visuals available
for your display.
Loading auCore.cxt
Loading acv.cxt
*WARNING* envCyclicStringToIndex: variable 'autoPlot' in tool[.partition] 'asimenv.plotting'
        must be of type cyclic
Loading awv.cxt
Loading ciwMenu.cxt
          Type ocnHelp() for help on OCEAN commands.
          Look in .../tools/dfII/samples/artist/OCEAN for example
          OCEAN scripts.
*WARNING* envSetVal: type mismatch for variable 'autoPlot'
        in tool[.partition] 'asimenv.plotting'.
nil
ocean> Loading oasis.cxt
 
Loading analog.cxt
Loading asimenv.cxt
Loading spectrei.cxt
*WARNING* envSetVal: type mismatch for variable 'printComments'
        in tool[.partition] 'spectre.envOpts'.
"../../simulation/LNA_test_tb/spectre/schematic/psf/"
*WARNING* envSetVal: Can't set the value of variable 'value1',
        in tool[.partition] 'spectre.opts' - it has not been registered.
ocean> port:"../../simulation/LNA_test_tb/spectre/schematic/psf/resultsSpectre.txt"
ocean> t
ocean> ocean> ocean> ocean> t
ocean> 19.53664

ocean> t

*WARNING* file /home/tl4528_loc/CDS.log File is already locked by some other process.
*WARNING* file /home/tl4528_loc/CDS.log.1 File is already locked by some other process.
Program:                @(#)$CDS: awd.exe version 5.1.0 10/28/2008 10:21 (cicln03) $
Hierarchy:              /users/vlsi/CMC/tools/cadence/IC5141USR6_lnx86/tools.lnx86/dfII/
Sub version:            sub-version 5.10.41_USR6.127.29 (32-bit addresses)
Host name (type):       cadlams2.engr.mun.ca (x86_64)
Operating system:       Linux 2.6.32-431.17.1.el6.x86_64 #1 SMP Fri Apr 11 17:27:00 EDT 2014
X display name: localhost:14.0
X server:               Moba/X
Depth of Visual (Root): 24 (24)
Number of Planes Used:  24
X version:              11.0 (vendor release 11405000)
Window Manager: other
User Name:              tl4528_loc
Working Directory:      cadlams2.engr.mun.ca:/home/tl4528_loc/workspace/ LNA_Small
Process Id:             613
 
COPYRIGHT 1992-2008  CADENCE DESIGN SYSTEMS INC.  ALL RIGHTS RESERVED.
          1992-2008  UNIX SYSTEMS Laboratories INC.,
                         Reproduced with permission.
 
This Cadence Design Systems program and online documentation are
proprietary/confidential information and may be disclosed/used only
as authorized in a license agreement controlling such use and disclosure.
 
          RESTRICTED RIGHTS NOTICE (SHORT FORM)
Use/reproduction/disclosure is subject to restriction
set forth at FAR 1252.227-19 or its equivalent.
8-bit PseudoColor Visual is not available (default Visual option).
Using 24-bit TrueColor Visual.
The program xdpyinfo can be used to verify the Visuals available
for your display.
Loading auCore.cxt
Loading acv.cxt
*WARNING* envCyclicStringToIndex: variable 'autoPlot' in tool[.partition] 'asimenv.plotting'
        must be of type cyclic
Loading awv.cxt
Loading ciwMenu.cxt
          Type ocnHelp() for help on OCEAN commands.
          Look in .../tools/dfII/samples/artist/OCEAN for example
          OCEAN scripts.
*WARNING* envSetVal: type mismatch for variable 'autoPlot'
        in tool[.partition] 'asimenv.plotting'.
nil
ocean> Loading oasis.cxt
 
 
Loading analog.cxt
Loading asimenv.cxt
Loading spectrei.cxt
*WARNING* envSetVal: type mismatch for variable 'printComments'
        in tool[.partition] 'spectre.envOpts'.
"../../simulation/LNA_Reza_tb/spectre/schematic/psf/"
*WARNING* envSetVal: Can't set the value of variable 'value1',
        in tool[.partition] 'spectre.opts' - it has not been registered.
ocean> port:"../../simulation/LNA_Reza_tb/spectre/schematic/psf/resultsSpectre.txt"
ocean> t
ocean> ocean> ocean> ocean> t
ocean> 19.53664
ocean> t

Hooks in to ADE-XL spec summary and datasheet creation

$
0
0

Is there a way in skill to hook into the ADE-XL spec summary creation and also datasheet creation?

I'm looking for a way to export both of these to LaTeX instead of .csv for the spec summary and xml for the datasheet.

Barring a direct way, I can't even seem to find an API to let me generate the spec summary CSV file via skill.  Also I noticed that what I get in the CSV file is not the same as what I get on the screen. In particular, the model files on the screen are semi-helpful (but could be better):

CornerModels=high,low,typ


but the corner name I had used in the corner setup is not listed.  Also those sections are of course different for the different model files.  In the CSV file I have stuff like:

CornerModels=(file1.scs,<unspecified section>),(file2,<unspecified section>),(res.scs,high),(cap.scs,low).....

which is a pain because I will have to convert the big model lists to the corner name.

Yet another mystery is that I can't seem how to tell via skill if a model file is included in a corner.

   corners = axlGetCorners( sdb )
   foreach( corner  cadr( corners )
       printf( "Corner:  %L\n", corner )
       cid = axlGetCorner( sdb, corner )
       models = axlGetModels( cid )
       foreach( model cadr( models )
          mid = axlGetModel( cid, model )
          section = axlGetModelSection( mid )
          printf( "\t(%L,%L)\n",model, section )

          ;; HOW TO TELL IF A MODEL IS INCLUDED IN THIS CORNER? 

          ;; THE ATTACHED SKILL CODE LISTS EVEN DISABLED MODELS

      ) ;; foreach model

   ) ;; foreach corner

 

 

One thing which would be great is a way to define skill code for the formatting in the output files.  For example the .csv export of the spec summary.  If I could define skill code to control this, perhaps I could write out LaTeX directly instead of trying to convert the csv and xml files over.  Also I'd maybe have a chance at converting long model file strings into something useful (like corner names).

Unable to to add pull-down menu to the schematic window

$
0
0

Hi,

I am trying to add pull-down menu to the schematic window.

procedure( CCSCreateSchematicMyToolsPulldownMenu()
let(()
if( boundp( 'CCSSchMyToolsMenu )
then CCSSchMyToolsMenu
else
hiCreatePulldownMenu(
'CCSSchMyToolsMenu ; Item name
"My Tools" ; Item text
list(
hiCreateMenuItem(
?name 'GetListOfSelectedPins
?itemText "Print list of selected pins"
?callback "GetListOfSelectedPins()"
);hiCreateMenuItem

hiCreateMenuItem(
?name 'CreateAMSNetlist
?itemText "Create AMS netlist"
?callback "CreateAmsNetlistFromCurrentCell()"
);hiCreateMenuItem
);list
);hiCreatePulldownMenu
);if
) ; let
) ; CCSSchematicMenuTrigger


procedure( CCSSchematicMenuTrigger(@optional (triggerArgs getCurrentWindow()))
let(( banner window )

; Determine if the argument is a trigger argument list or a window.
if( typep( triggerArgs ) == 'list then
window = triggerArgs->window
else
window = triggerArgs
)

banner=hiGetBannerMenus( window )
unless( member( 'CCSSchMyToolsMenu banner )
printf("Creating custom menu in window %L\n" window)
CCSCreateSchematicMyToolsPulldownMenu()
hiInsertBannerMenu( window CCSSchMyToolsMenu length(banner)-3 )
);unless
);let
) ; procedure

deRegUserTriggers("schematic" nil nil 'CCSSchematicMenuTrigger)
deRegUserTriggers("schematicXL" nil nil 'CCSSchematicMenuTrigger)

If i am opening schematic view directly or if i am opening schematic inside ADE-XL and running CCSSchematicMenuTrigger procedure manually menu is added. But when I am opening schematic from ADE-XL (open design in tab) the menu is not added. What am I doing wrong?

Thank you.

Viewing all 5073 articles
Browse latest View live