Mouse bindkey with button 8 and 9
accessing hiCreateToggleField individual values
Hello, I have been struggling for a long time trying to figure out how this hiCreateToggleField works. I can't seem to figure out how to access individual items that are actually selected by the user. I put together a little testcase that I think will help me understand if you could modify it to "only" print what is selected in the form?
procedure(serdes_pop()
let((popWhat singleLib allLib libChoice labelField lib)
mylist=list( list( 'MT1 "MT1" ) list( 'MT2 "MT2" ) )
popWhat = hiCreateToggleField(
?name 'popWhat
?prompt "Populate:"
?choices mylist
?itemsPerRow 1
)
labelField = hiCreateLabel(
?name 'myLabel
?labelText "_________________________________________________"
)
popForm=hiCreateAppForm(
?name 'popFormdcr
?formTitle "Populate cadencelibs"
?callback 'popLib16CB
?fields list(popWhat labelField)
?unmapAfterCB t
)
hiDisplayForm(popForm)
);endlet
);endprocedure
procedure(popLib16CB(popForm)
prog((singleLib)
when(popForm
foreach(a popForm->popWhat->_toggleItems
print(symbolToString(a))
)
)
return(t)
))
Change colors for rules in IC61 Cadence
How to get Transform data of elements within a Mosaic
I am using dbGetTrueOverlaps to extract data under my cursor through all levels of hierarchy. Ultimately I am striving to get the closest vertex of a path embeded down in the hierarchy to my current (top level) cursor location. I have no problem getting this resolved through all levels of hierarchy with one exception, Mosaics. I currently use dbGetHierPathTransform to transform the data up to my top level but if the elements are within a Mosaic then it always transforms the element data to be where it exists within the original (column 1 row 1) array instance. So if, for example, my cursor is over a path within row 2 column 5 instance of the array I do not get the location I need. It always returns col 1 row 1 equivalent. Is there some way to use dbGetHierPathTransform to get accurate mosiac data specific to the instance location within the array? Or am I going to have to just do the math and multiply the offsets by the number of rows and columns?
Ron
how to check from command line if a directory is a valid OA library
Hi *,
Is there any command line to tell me if a specific directory is a valid OA library ?
I'm not interested if the directory has an entry in cds.lib or not.
My first intention was to check the existance of ".oalib" and "cdsinfo.tag" files, but I'm not sure if it is enough.
A skill script could also help, if there is no other option.
BR,
Marcel
corner simulations in ocnXL while saving the space
Hi,
I would like to do corner sims with ocnXL, save only the output of each run in a data file and nothing else. Basically I would like to delete all the the rest of sim data . In ocn ADE I could do it by each time selcting a model file and doing "run" in a loop. How could I possibly do it in OcnXL. Thanks much.
Shaf
Get a .txt file as output in ADE-XL
Hi All,
I'm looking to display a .txt file as output in ADE-XL. I'm running an Ocean script on each corner which creates a text file (noise summary) that I can print directly (eg. ipcBeginProcess(strcat("nedit " outFile "&"))).
Actually, I'd like these files to be linked as outputs in ADE-XL, not being displayed automatically (that is, I'd like to open only the text files corresponding to the worst corners - having 20 or 30 report text files opened at the same time is pretty cumbersome).
It'd be better to only have to click on an output field of a specific corner to have it displayed. When using the above expression as output ('outFile' is the path of the output file, defined as a string output with axlOutputResults()), I only get a waveform window with a dot at (0 0) displayed when clicking on the output field.
I've also tried adding another ADE-XL output to the script, but I got an MPS_ERROR with ipcUT (couldn't understand its meaning):
axlOutputResult(ipcBeginProcess(strcat("nedit " outFile " &")) "nsum.txt")
or
axlOutputResult(evalstring("ipcBeginProcess(strcat(\"nedit \" outFile \" &\"))") "nsum.txt")
By the way, when running the simulation without the script and reevaluating with the script afterwards, I get no error and clicking on an output field gives me back the waveform window (0,0) AND the text file... unfortunately, it's not very convenient to run the simulation and enable+reevaluate the script afterwards each time...
Thanks for your input,
Best regards,
Matthieu
The edge is hilighted when the cursor is close to, how to use skill to achieve it.
how to remove repeat element in a list
Hi
I want to remove repeated element that in a list, but I can't find the related function for this.
I try to use hash table to solve it , but the order of this list will be changed
does any other function for this ??
ex:
change to
aa= list("AA" "AA" "AA" "BB" "BB") -----------------> aa = list("AA" "BB)
Moving over to 6.1.4
Hi Cadence Community
I am having a bit of a problem transitioning existing layout designs from Cadence’s Virtuoso 5.10.4 to Virtuoso 6.1.4. Using the Conversion Tool Box feature CDB to OpenAccess Translator that is provided. The design transition over to 6.1.4 is relatively smooth, lvs checks are clean. However, in running the Design Rule Check the following error message is trigger when running top level hierarchy cellview check which includes the seal ring and bondpads. All sub-cells DRC checks are clean.
[2044] offGridShapeErrors: GRCE001: CHIPEDEG x and y dimensions must be an even number of grid points
I hope there is a fix or a work around for this challenge.
Any help or insight will be greatly appreciated
Johnny
Block execution in SKILL file while a form is on the screen
Dear SKILL experts
I tried to write a SKILL function that shows a form created by hiCreateAppForm() on the screen and blocks execution until the form is removed from the screen by the user with a OK or Cancel.
In the form I have a listBoxField. The user selects ONE item in the listBox. When OK is pressed the SKILL function that showed the form returns the selected item, when Cancel was selected the function returns nil.
I tried the argument: ?dialogStyle 'modal but the form does not block the execution.
The code is in one SKILL file that I load but the execution of the SKILL statements in the file is not blocked while the form is on the screen.
Here is the code:
file listBox.il:
; Create the application form
hiCreateAppForm(
?name 'VARselectListForm
?formTitle "Title"
?dialogStyle 'modal
?initialSize t
?buttonLayout 'OKCancel
?fields list(
list(
hiCreateListBoxField(
?name 'VARselectListFormListBox
?choices nil
?value nil
?prompt "Nodes"
) ; hiCreateListBoxField
list(0 0)
list(150 400)
50
) ; list
) ; list
) ; hiCreateAppForm
procedure(SHOWselectListBoxForm(title choices)
when(and(boundp('VARselectListForm)
hiIsForm(VARselectListForm))
VARselectListForm->title = title
VARselectListForm->VARselectListFormListBox->choices=choices
hiDisplayForm(VARselectListForm)
VARselectListForm->VARselectListFormListBox->value
) ; when
) ; SHOWselectListBoxForm
And the the file that uses this:
load("listBox.il")
choices = '("aaa" "bbb" "ccc" "ddd" "eee")
title = "Form title"
printf("Before the box\n")
choice = SHOWselectListBoxForm(title choices)
printf("After the box: %L\n" choice)
The message After the box............. already appears while the form is on the screen.
I want a blocking solution. The dialog style systemModal is gone.
Of course I can make a wait loop with global variables, but is there a better way?
Hans Kok
Type annotation syntax/tools for SKILL/SKILL++?
Hi,
I have been adding type annotations to SKILL doc comments lately, using a syntax of my own. It’s JSDoc-inspired, and looks like this:
;; Frobs Structs.
;;
;; @param {MyStruct} s - The Struct to frob.
;; @param (or fixnum null) n - A frobbing count, defaults to 1.
;; @param (or
;; (lambda () string)
;; port) with - The source of frobbing data.
;; @return {symbol} Always t.
procedure( FrobAStruct(s with @key n)…
)
My question is about the type specifiers, and other SKILL type specification mechanisms that people may be using. My (minimal) parser supports the following forms:
foo
: A named type;(or foo bar)
: Either afoo
or abar
;(lambda ...)
: A function.
I have written up about their use, current syntax, and a few things that would make them even more useful—but before I go too far in that direction, could somebody point me to:
Other SKILL type annotation or documentation mechanisms they think I should look at. I have seen a couple of old
comp.cad.cadence
threads and SKILL2Dox, but nothing regarding types;Examples (or—gasp!—documentation) of their usage.
Purely accidental differences in notation don’t bring much to the table, and it would be nice to converge towards a well-established (and possibly even sound!) optional typing mechanism for the language.
My write-up is available at:
http://crosstwine.com/misc/letters/2013/11/19/SKILL-Type-Specifier-Syntax/
Feel free to comment on the document, too, in particular regarding the somewhat bizarre use of null, range, and arrayref. Oh, and to pick & improve on some of these ideas!
Thanks,
Damien Diederen, dd@crosstwine.com
–
http://crosstwine.com
tel: +49 89 2189 2939
cell: +49 174 3489 428
“Strong Opinions, Weakly Held” — Bob Johansen
how to change the default wire width of layers
How to count the number of instances which are named by bus style
how to use "sprintf" correctly with "foreach"
i have written a script and got what i wanted like below:
*****The original script***** port=outfile("/home/user/test" "w")fprintf(port "%s\n" "test1")fprintf(port "%s\n" "test2")close(port) *****The ideal output in /home/user/test*****test1test2 i would like to simplify the above script but i have gotten what i didn't expect like below *****the simplified script***** testlist=list("test1" "test2") foreach(testele testlist outfile("/home/user/test" "w") fprintf(port "%s\n" testele) close(port) *****The bad output in /home/user/test*****
test2
would you please help me to do someting in the simplified script and get what i want?
Thanks:)
problem with viewing schematic
I am using IC 6.1.3 . I am facing some problem with viewing the schematic. When I am making some layers in the LSW visible only, the schematic is not visible. Say I am making visible only metal1 . At this time if I open the schematic it will not show anything.
But If I make all layer visible then I can view the schematic fine. Is it possible to make the schematic view independent of the schematic ?
I also have all set all layer valid form LSW. May I need to change some layer to non-valid?
How to get the actual PathForm number in IC 6.1
Skill code to get devices connected to probed net in sch
Skill code to get devices connected to probed net in sch instances with respect to top level.
if net1 is probed in sch which is connected to mn1 in inst1 at top level and mp1 in inst2 in lower level.
i want the output in file with below contents
inst1/mn1
inst1/inst2/mp1
immediate help is appreciated.