Plotting frequency with time...

Frederic,

I used the local function with the lambda binding for years already. It is
not necessary to 'funcall' the local function. You can use the local
function as a normal function within a function.

So:

let((mylocalFunc)
myLocalFunc=lambda((arg1 arg2 ...) body...)
; and then call it as usuall
myLocalFunc( arg1 arg2 ...)
; or
test = myLocalFunc(arg1 arg2 ...)
)

Untested but I guess it will work, you can use again 'let' to define local
variables within the local function body (and define again local
functions!)

See the skill language user guide, 'advanced topics', 'assigning a New
Function Binding' to get an idea.


Rob Peters


"Andrew Beckett" <andrewb@DELETETHISBITcadence.com> schreef in bericht
news:3dg5g054kdklu59osfj9nss907hdmise47@4ax.com...
Frederic,

This is exactly what SKILL++ is for. I suggest you do it in SKILL++ rather
than trying to find a tortuous way of doing it in SKILL. In SKILL you can
assign
function objects to variables in let statements:

let((mylocalFunc)
myLocalFunc=lambda((arg list) body...)
; and then call them using funcall:
funcall(myLocalFunc arg1 arg2)
)

but in SKILL++ it's cleaner:

let((local vars)
procedure(myLocalFunc(arg list) body...)
; and then call them
myLocalFunc(arg1 arg2)
) ; let

For a quick intro to SKILL++ look at my article:

http://sourcelink.cadence.com/docs/files/FFF/199/skillpp.html

Regards,

Andrew.

On Fri, 23 Jul 2004 19:05:22 +0200, fogh <adff@CUTTHIS.xs4all.nl> wrote:

Hi All,

Does anyone know how I can define functions locally ?
I would need something like a letfun() macro that will unbind the
function outside the letfun()
In skill,that is. I suppose it is easy to do in skill++

--
Andrew Beckett
Senior Technical Leader
Custom IC Solutions
Cadence Design Systems Ltd
 
Hi guys, thanks for all the suggestions! I've talked to a bunch of other
grad students at other schools and this is a real problem with Cadence and
the Analog Environment. The license files were suspects. For now I'm going
to try out all the suggestions and see what happens.

Marc

"Erik Wanta" <erikwanta@starband.net> wrote in message
news:84018314.0407261533.b61fb56@posting.google.com...
Dee:
We have 4 license paths in $CDS_LIC_FILE. I have seen the case where
one license server goes down and it takes 5 minutes for icfb to come
up. Have you opened a SR with Cadence to improve the license file
parsing?
---
Erik

thezedd@hotmail.com (Dee) wrote in message
news:<bbe0beb3.0407260937.3b17a291@posting.google.com>...
A while back, there was a post about spectre (via ADE in interactive
mode) not using the new netlist when changing component values on the
schematic. The workaround was to use spectre in batch mode,
resulting in longer simulation load times when only changing variables
in ADE.

The fix:

Check to see that there is only one entry per license file in the
environment variables LM_LICENSE_FILE or CDS_LIC_FILE. ex:
CDS_LIC_FILE={path}/cadence_license
LM_LICENSE_FILE={path}/cadence_license:{other license files}
For speediest performance, unset LM_LICENSE_FILE. Even though the
docs claim that CDS_LIC_FILE has precedence over LM_LICENSE_FILE, we
found that the latter is still parsed when icfb loads.

The length of CDS_LIC_FILE/LM_LICENSE_FILE also affects how long it
takes icfb to load. In my case, there was an order of magnitude
improvement for the time it takes the CIW window to come up. Another
positive side effect is that ADE->Simulation->Netlist and Run (with
spectre) is be MUCH quicker.

The why:

The cause of netlist problem has to do with license checking causing
interprocess communication timing problems between spectre and ADE.
Depending on how/where one's environment variables are set,
LM_LICENSE_FILE or CDS_LIC_FILE may have duplicate entries for license
files. ex:


LM_LICENSE_FILE={path}/cadence_license:{path}/synopsys_license:{path}/cadenc
e_license:{path}/synopsys_license:{path}/cadence_license:{path}/synopsys_lic
ense
After much debugging, we discovered that Cadence spends time checking
through EVERY license file that is listed in the environment variables
even though the Cadence license file is listed first. This happens
for IC446, IC5.0.33 on both solaris and linux platforms.
The time taken to parse every listed (duplicated!) license file makes
many parts of cadence slow to load (spectre, icfb, ocean scripts)

This slowness is exacerbated if both CDS_LIC_FILE and LM_LICENSE_FILE
are set and a non-cadence license file which has many features is
listed multiple times (in my case, another tool with over 400
entries). I was waiting upwards of 20 seconds before spectre would
even *start running* after 'Netlist & Run' on a ~20 transistor
schematic (as a single user on a linux dual 3GHz cpu, 2Gig RAM
machine!). Now, the same simulation FINISHES in under 10 seconds.

I'm not sure why Cadence checks the other license files once it finds
its own. (or even whether this is a feature or a bug!)

Dee.
 
Hi Frederic,

This won't work even if you use SKILL++. The reason is because gePointQuery
expects a function name, and is evaluated in the global scope - so it wouldn't
find a locally scoped function.

The solution would be if it accepted a function object, as you say. The trouble
is that this function pre-dates when function objects were created by SKILL.
However, it could be retrofitted.

Log a service request, and this enhancement can be requested.

After reading it, I tried to use skill++ in this way:
toplevel('ils)
let(()
procedure(mythrowawayfilter(arg) ...)
...
gePointQuery( arg1 arg2 "mythrowawayfilter")
...
);let
resume()

But it seems my procedure does not "finish" properly, I still have a prompt of "ILS".
You can't put toplevel('ils) and resume() in code files - it doesn't work like
that. toplevel starts a new top level. The best way to have SKILL++ code is
to give the file a .ils suffix. If you just want to use SKILL++ for a smal
region of code, you can use:

inScheme(
let(()
procedure(myLocalFunc(...) ...)
...
) ; let
) ; inScheme

But that's not going to help here.

Call me stubborn,but...would foresee any problem with a letfun(arg1 argrest) macro that would unquote argrest and then do something-like
mapcar(lambda((f) putd(f nil) ) arg1)
?
But the putd wouldn't make it local. It doesn't work like that. Each symbol in
SKILL has a function slot, a value slot, and a property list slot. The value
slot is effectively a stack (which is how dynamic scoping in SKILL is
implemented). However, the function slot is a single global slot.

In SKILL++ you have the concept of environments, which contain variable
bindings. When you define a function, it has associated with it the lexical
environment in place at define time. Then when you call the function, it
restores the environment which was there at definition time, so variable lookup
is lexically scoped (this is rather an abbreviated definition). Functions are
stored as variables (in essence), so a function call just looks up the
function object in the variable with the same name as the function call, and
then calls that.


Regards,

Andrew.


--
Andrew Beckett
Senior Technical Leader
Custom IC Solutions
Cadence Design Systems Ltd
 
Fogh,

I used long ago this link to translate a layout to VRML format :
http://www.sfu.ca/~rjohnsto/ciftoansys.html
It starts from CIF, and it is quite old now. I haven't found
something similar starting from GDSII.

We have our internal tools wrote in Pascal to manipulate directly
GDSII files. But unfortunately they are not available for outside.

Regards,
=================
Kholdoun TORKI
http://cmp.imag.fr
==================



fogh wrote:
Kholdoun,
do you know also a program that is open source ?
I found so far:
- a perl module that is unreadable to mere mortals
- a C program that is too restricted (expects stream data that is not
compulsory and crashes when it s not there).

I made a few tests to turn GDS2 to openGL code, compile and run, and
that looks OK ; but I still rely on a proprietary GDS2 stream-to-text
converter.

torki wrote:


Try this free program "GdsDump" from Neanderthal Design.
It translate GDSII to human-readable text.
http://www.neander.com/GdsDump.html

=================
Kholdoun TORKI
http://cmp.imag.fr
==================

Manju Arasaiah wrote:

Is there any unix command or utility that gives out the topcellname
given a GDS2 file? I do not want to open any GUI.

Thanks, Manju
 
There is also a CIF2VRML code source at :

http://www.ece.ncsu.edu/erl/erl_software.html

Regards,
=================
Kholdoun TORKI
http://cmp.imag.fr
==================

torki wrote:

Fogh,

I used long ago this link to translate a layout to VRML format :
http://www.sfu.ca/~rjohnsto/ciftoansys.html
It starts from CIF, and it is quite old now. I haven't found
something similar starting from GDSII.

We have our internal tools wrote in Pascal to manipulate directly
GDSII files. But unfortunately they are not available for outside.

Regards,
=================
Kholdoun TORKI
http://cmp.imag.fr
==================



fogh wrote:

Kholdoun,
do you know also a program that is open source ?
I found so far:
- a perl module that is unreadable to mere mortals
- a C program that is too restricted (expects stream data that is not
compulsory and crashes when it s not there).

I made a few tests to turn GDS2 to openGL code, compile and run, and
that looks OK ; but I still rely on a proprietary GDS2 stream-to-text
converter.

torki wrote:


Try this free program "GdsDump" from Neanderthal Design.
It translate GDSII to human-readable text.
http://www.neander.com/GdsDump.html

=================
Kholdoun TORKI
http://cmp.imag.fr
==================

Manju Arasaiah wrote:

Is there any unix command or utility that gives out the topcellname
given a GDS2 file? I do not want to open any GUI.

Thanks, Manju
 
Rob,
it doesn t work for me:
let( (mf) mf=lambda(nil printf("Hi, galaxy.\n")) mf() )
gives an
"error eval: undefined function mf"

Do you use an environment where = is overloaded or are you doing skill++ ?

Andrew Beckett wrote:
Rob,

I'm sorry, but this doesn't work with SKILL. I don't know why you think it does.
I'm prepared to be surprised, but I can't see how this can work in SKILL.

With SKILL++, it would work (do you have a .ils suffix for your source files?).

From the manual reference you give, I assume you're actually doing:

let((myLocalFunc)
putd('myLocalFunc lambda(....))
myLocalFunc(args)
)

However, the putd() would not be storing a local function definition. As I
mentioned in a previous post, the function slot of a symbol is global. And
putd writes into the function slot, and so the function is global. In SKILL,
the function slot and value slot of a symbol are distinct.

Andrew.

On Tue, 27 Jul 2004 00:09:39 +0200, "Rob Peters" <R0B.Peters@chello.nl> wrote:


Frederic,

I used the local function with the lambda binding for years already. It is
not necessary to 'funcall' the local function. You can use the local
function as a normal function within a function.

So:

let((mylocalFunc)
myLocalFunc=lambda((arg1 arg2 ...) body...)
; and then call it as usuall
myLocalFunc( arg1 arg2 ...)
; or
test = myLocalFunc(arg1 arg2 ...)
)

Untested but I guess it will work, you can use again 'let' to define local
variables within the local function body (and define again local
functions!)

See the skill language user guide, 'advanced topics', 'assigning a New
Function Binding' to get an idea.


Rob Peters


--
Andrew Beckett
Senior Technical Leader
Custom IC Solutions
Cadence Design Systems Ltd
 
Hi Jim,

On Wed, 28 Jul 2004 07:08:27 +0200, Jim Newton <jimka@rdrop.com> wrote:

Hi andrew, how should i define functions which
i only want to be visible inside another function?
whould i define them with let/setq or with
procedure?

defmethod( mymethod ()
procedure( (myLocalFunc1 arg1 arg2) ...)
procedure( (myLocalFunc2 arg1 arg2) ...)

...
let( ( x y )
x = myLocalFunc1( 1 2)
y = myLocalFunc2( 3 4)
myLocalFunc1( x y)
))
You can put them inside a defmethod() or a procedure(), and
they will be local. Put here, they seem to be created locally, but they don't
seem to have the method or procedure's argument list in their
lexical environment though (I've not experimented enough).
I must admit, I never create local functions this way in my code, so I've not
really played with this form enough (except just now to try it out).

Or should I put the procedure definitions inside the let?
And should I declare myLocalFunc1 and myLocalFunc2
inside the let?

That's indeed what I would always do - put the procedure definitions within the
let. There is no need to list the procedure names in the list of local variables
for the let - this gets done automagically by SKILL++.

Or should i declare the variables myLocalFunc1 and myLocalFunc2
and assign their values with lambda?

defmethod( mymethod ()
let( ( myLocalFunc1 lambda( ( arg1 arg2) ...))
( myLocalFunc2 lambda( ( arg1 arg2) ...))
x
y )
x = myLocalFunc1( 1 2)
y = myLocalFunc2( 3 4)
myLocalFunc1( x y) ))
You can do this, but there's no particular benefit in doing so.

I suspect that if i put the procedure inside the function def
it is more computation intensive in that it redefines
the procedure everytime the function is called, but that
somehow the lambda is optimized. Is that true or are
they equivalent?
It does not redefine the procedure every time you call the parent method or
function.

You should be aware that you can't put defmethod() or defgeneric() within a
let() and expect these to be local - the CLOS aspects of SKILL++ don't entirely
mix smoothly with the scheme aspects - so you can't have local classes and
generic functions; these are always global.

Regards,

Andrew.

--
Andrew Beckett
Senior Technical Leader
Custom IC Solutions
Cadence Design Systems Ltd
 
Have you read the documentation on AMS Designer?

There is a tutorial included as well (may not use VHDL-AMS, but Verilog-AMS, but
you should be able to get the point).

Andrew.

On 27 Jul 2004 18:43:30 -0700, prw@ecs.soton.ac.uk (Peter Wilson) wrote:

Hi,

I would like to simulate a schematic/layout generated in Cadence using
VHDL-AMS models. How do I set this up using IC5.0/LDV5.0 and how do I
run simulations?

Also, how can I run the simulations from the command line as in
Spectre or VerilogAMS?

Thanks in advance,
Peter Wilson
--
Andrew Beckett
Senior Technical Leader
Custom IC Solutions
Cadence Design Systems Ltd
 
Hi Harry, I do that routinely, but the changes still don't stick. I've read
it could have something to do with the license file for reasons that beat
me.

I don't know what the startup.txt file is. I do have a .cdsenv file...

Marc

"harry" <hsingh@ece.pdx.edu> wrote in message
news:20b57af6.0407281336.440bae1c@posting.google.com...
HI,
I had that problem once while using spectre for analog cmos
designs.Since we didnot have a startupfile ,I was having same problem
as yours.
what I did to overcome the problem was,I did "check and save" the
design after I modified it.Then from simulation dropdown list ,select
"netlist and run".This will most probably solve your problems.
If u have to use a "source startup.txt " make sure u use it before
running simulations.
Regards
harry
"Spaceghost" <nospam@postingroup.com> wrote in message
news:<VbdNc.83121$Np3.3989116@ursa-nb00s0.nbnet.nb.ca>...
I believe it's 5.0.32...off the top of my head.

Marc

"Andrew Beckett" <andrewb@DELETETHISBITcadence.com> wrote in message
news:l3c2g09tct3ma7icpiftlohmi287364rnl@4ax.com...
What version are you using? I've not seen this problem for some
considerable
time...

Andrew (trying to be constructive rather than just Cadence-bashing).

On Fri, 23 Jul 2004 13:46:37 GMT, "Spaceghost"
nospam@postingroup.com
wrote:

Yes, I checked and saved. Like I said, it appears to netlist and run
through simulation. I did look at the input.scs file and the netlist
was
changed. For example, a line was in there to run the AC sim, but
nothing
happened.

Other members of our group had the problem but didn't fix it. :(

I'll look into the system clock idea mentioned earlier.

svenn.are@bjerkem.de> wrote in message
news:5fb00e69.0407230516.65ff90aa@posting.google.com...
"Spaceghost" <nospam@postingroup.com> wrote in message
news:<oHTLc.81417$Np3.3857908@ursa-nb00s0.nbnet.nb.ca>...
Hi all, when I use Cadence, I will run a simulation, make a
change to
my
schematic, or simulation, and then do a new 'netlist and
simulate'.
Well, I
nearly went crazy the other day trying to find out why my changes
weren't
producing the changes I thought they should.

Cadence will go through the motions, perform a simulation, and
the
results
will not change. You can close down the Analog Environment,
restart
it,
and
run the simulation successfully. This is not the way things
should
be
though. Even adding another simulation such as AC will not
produce
any
AC
results if you started out running DC or transient.

So, any ideas on what is causing this problem? Again, if I
change
the
schematic and try re-running the simulation, it seems to be
running
the
old
one over again. I am checking and saving my schematic, and I am
creating a
new netlist...!

Do you check and save your toplevel schematic before starting
simulation?
Are you changing any referenced libraries?
Check the input.scs file in the netlist directory in your Project
directory to see if its date change.
Do you have any saved simulation data that accidentally get viewed
instead of your new ones?
Are you creating the netlist or are you recreating the netlist?

--
Svenn


--
Andrew Beckett
Senior Technical Leader
Custom IC Solutions
Cadence Design Systems Ltd
 
This does indeed seem to be the case. It tries primitives first. Also, models
in MODELPATH get higher priority.

This may well be documented somewhere - I just tried it quickly though
to prove this.

Andrew.


On 27 Jul 2004 13:49:54 -0700, bond911@juno.com (aznaragorn) wrote:

It seems to me that if you have verilog modules of the same name as
spectre built in primitives the NC verilog elaborater searchs the
spectre primitives first. This means that you can't use any module
names that have spectre built in primitives associated with them
(resistor, capacitor)? Maybe i'm wrong, if so what is the priority for
where the simulator looks to resolve module instantions: does it go to
the spectre primitives that are built in and specifed by MODELPATH and
then go the working library or vice versa?
--
Andrew Beckett
Senior Technical Leader
Custom IC Solutions
Cadence Design Systems Ltd
 
In article <c2e6dd86.0402160820.46d7bd1b@posting.google.com>,
borodenkov@hotmail.com (Alexey Borodenkov) wrote:

*Error* fprintf/sprintf: format spec. incompatible with data - nil

Have you been defining any graphical stimuli in your design? I know that
Cadence give you this error message if you replace a schematic pin that
has an attached graphical stimuli with a real source. Solution is to go
into the graphical stimuli editor and check what signals have schematic
pins and who has not.

If this doesn't help, I have no further clue.

--
Svenn
 
Unfortunately that error message can be from almost anywhere.

It is caused by some code doing something like this:

sprintf(nil "testing 123 %s\n" myvar)

where myvar was nil instead of being the expected string. Since
printf/fprintf/sprintf is rather widely used in both Cadence and customer code,
and there are so many possibilities for this, it's hard to track down.
In an ideal world, error checking in the code would spot the problem
before it resulted in a low level error such as this, and report it
gracefully. However, in the real world, code does not always do all the error
checking that it should...

One approach to track it down is to do:

sstatus(stacktrace 20)

which will force an automatic stacktrace whenever such an error occurs - this
might reveal at which point it is failing, althought it may not help you as an
end user without help from Cadence (it might though...)

Andrew.

On Mon, 02 Aug 2004 20:48:55 +0200, Svenn Are Bjerkem <spam@bjerkem.de> wrote:

In article <c2e6dd86.0402160820.46d7bd1b@posting.google.com>,
borodenkov@hotmail.com (Alexey Borodenkov) wrote:


*Error* fprintf/sprintf: format spec. incompatible with data - nil



Have you been defining any graphical stimuli in your design? I know that
Cadence give you this error message if you replace a schematic pin that
has an attached graphical stimuli with a real source. Solution is to go
into the graphical stimuli editor and check what signals have schematic
pins and who has not.

If this doesn't help, I have no further clue.
--
Andrew Beckett
Senior Technical Leader
Custom IC Solutions
Cadence Design Systems Ltd
 
If you turn off the options pop-ups and want to have it occasionnaly,
you can have it by pressing the key F3.

=================
Kholdoun TORKI
http://cmp.imag.fr
==================

fogh wrote:
Patrick,
For this you can better look into your window manager configuration,
rather than cadence.
Note that the label dialog is necessary while the strectch or move
dialogs are optional. Have a look into "CIW->options->user prefs" for
disabling systematic popup of optional forms.

Patrick Mulder wrote:

Hi all,

I am using Virtuoso and the Schematic composer and I am looking for
the optimum bindkeys configuration : One common problem is that while
assigning net labels in the Composer (with the "l" stroke) the
gui-window doesnot automatically pop-up in the foreground (above all
windows), whereas the Stretch and Move command ("s" and "m" in
Virtuoso) ALWAYS popups in the foreground which is quite annoying....
as I don't speak too much SKILL at the moment, it would be nice if
someone could point me out, how to turn the window behavior
vice-versa.
 
In article <271df6a9.0408031426.237b96a0@posting.google.com> edacad_1@yahoo.com (Bob Moore) writes:
hi...

How can I force the Left Mouse Button to be in a mouseAddPt() mode, from my skill
code.

I optimistically called mouseAddPt() but it doesn't do the trick.

F.ex after I select a menu item it's mode switches to mouseAddPt().
After I click once in window it goes back to mouseSingleSelectPt() mode.

I want to switch it to mouseAddPt() without selecting the menu item again.

Is this possible ????????????????????????????????????????
mouseAddPt() is specifically for adding points when you are in an enter
function, so I think what you are asking for is for the enter function to
automatically restart?

-Pete Zakel
(phz@seeheader.nospam)

Katz' Law:
Man and nations will act rationally when all other
possibilities have been exhausted.
 
Hi Bob,

I don't believe there's a way of doing this with a public SKILL functions (I can
think of ways of doing it with private functions, but that's not going to help
you).

You can of course do this with OCEAN, as the run() function will by default wait
for the job to finish - or with distributed runs you can use the wait()
function, or you can run in blocking mode.

What are you trying to achieve here?

One trick you can do is to make the SKILL function one of your output
expressions (in the output pane), and so if you have the option to automatically
plot the outputs, it will be triggered at the end of the simulation ;-)

Andrew.

On 1 Aug 2004 12:05:56 -0700, edacad_1@yahoo.com (Bob Moore) wrote:

Hello,

I have Analog Artist running, I start a simulation (Spectre).
I have a SKILL source code file loaded.

This is what I want to happen:

Once the Spectre simulation is over I want to trigger a function in my
skill source code to get executed automatically.

Can anyone help me with that?

Bob
--
Andrew Beckett
Senior Technical Leader
Custom IC Solutions
Cadence Design Systems Ltd
 
Adrian,

Assuming you're using Diva (I wish people would say which tool they are using,
since there are often alternatives. Here it could have been Diva, Assura,
Dracula or non-Cadence tools like Calibre), then one thing you could do
is to ensure that all your abstract views have a cellView property called
ivIncludeValue, with a value of (say) 2. Then run Diva DRC (flat) with the
inclusion limit set to less than that value (say 1).

Then it will omit checking any of the cells with an ivIncludeValue greater
than the specified inclusion limit value, and you'd just be checking the
routing.

Andrew.


--
Andrew Beckett
Senior Technical Leader
Custom IC Solutions
Cadence Design Systems Ltd
 
Check how you biased the bulk connection of your
PMOS. it has to be connected to vdd!, not gnd!

this is not related to the models, at first sight
at least.

stéphane


Robin wrote:
Hello,

Has anyone gotten the TSMC 0.18 Spectre model files to work on Spectre
5.0? I managed to simulate all NMOS's, including the 3.3V I/O devices,
but when I try to simulate PMOS's, spectre complains:

Warning from spectre at dc = 0 V during DC analysis 'dc'.
M1: The bulk-source junction current exceeds 'imax'

The circuit only has one transistor and I am just running the Id/Vds
characterization curves. It is not a problem with my circuit because
it works when I simulate with SpectreS.

The complementary circuit for NMOS works perfectly fine with the
model.

Any comment appreciated,

Is it a bug?

Thanks in advance,

Robin Tsang

Student from UT Austin
 
While Andrew's solution does work, it does not check for problems
between the routing and the cell content. Every layer in the abstract
view should have keepout shapes that represent the area occupied by the
internal shapes without actually being those shapes. This lets you check
for DRC violations between the cell and the routing.

As for parasitics, you can have the abstract view switch to a schematic
or symbol view during netlisting for the simulator. Assuming the
schematic or symbol have the appropriate information, the simulator
should have everything it needs without any annotation on your part.

On 4 Aug 2004 12:58:30 -0700, yxl4444@louisiana.edu (Lee) wrote:

Andrew,

This solution definitely works. Thanks.

One more question. If I do DRC in this way, how can I extract
parasistics for post-layout simulation?

I am thinking one way: extract the wire parasistics and replace
wireload models in Synopsys by annotating the parasistics to the
design in Synopsys.Is it right?Or better way exist?

Best regards,


Andrew Beckett <andrewb@DELETETHISBITcadence.com> wrote in message news:<uep0h05bfca3l2jrtjikpkfmc2h2egga73@4ax.com>...
Adrian,

Assuming you're using Diva (I wish people would say which tool they are using,
since there are often alternatives. Here it could have been Diva, Assura,
Dracula or non-Cadence tools like Calibre), then one thing you could do
is to ensure that all your abstract views have a cellView property called
ivIncludeValue, with a value of (say) 2. Then run Diva DRC (flat) with the
inclusion limit set to less than that value (say 1).

Then it will omit checking any of the cells with an ivIncludeValue greater
than the specified inclusion limit value, and you'd just be checking the
routing.

Andrew.
 
Bob Moore wrote:
hi...

How can I force the Left Mouse Button to be in a mouseAddPt() mode, from my skill
code.

I optimistically called mouseAddPt() but it doesn't do the trick.

F.ex after I select a menu item it's mode switches to mouseAddPt().
After I click once in window it goes back to mouseSingleSelectPt() mode.

I want to switch it to mouseAddPt() without selecting the menu item again.

Is this possible ????????????????????????????????????????


My window is Virtuoso Schematic Editing window.
Not exactly what you ask but you can try these:
-options->editor "modal" on
-right click to repeat last command
 
Hi,

not sure at all what you're willing to do.

mouseAddPt() is a function you set as a bindkey.
When bound to a key, pressing this key acts as
pressing the mouse button. "staying in mouseAddPt
mode" doesn't make any sense to me, as you have to
move the mouse to a point before calling mouseAddPt
to input that point.

if you want to collect points user enters with the
mouse, you should use enterPoints() instead or any
other enterFunction.

stéphane

Bob Moore wrote:

hi...

How can I force the Left Mouse Button to be in a mouseAddPt() mode, from my skill
code.

I optimistically called mouseAddPt() but it doesn't do the trick.

F.ex after I select a menu item it's mode switches to mouseAddPt().
After I click once in window it goes back to mouseSingleSelectPt() mode.

I want to switch it to mouseAddPt() without selecting the menu item again.

Is this possible ????????????????????????????????????????


My window is Virtuoso Schematic Editing window.
 

Welcome to EDABoard.com

Sponsor

Back
Top