Cadence® system design and verification solutions, integrated under our System Development Suite, provide the simulation, acceleration, emulation, and management capabilities.
System Development Suite Related Products A-Z
Cadence® digital design and signoff solutions provide a fast path to design closure and better predictability, helping you meet your power, performance, and area (PPA) targets.
Full-Flow Digital Solution Related Products A-Z
Cadence® custom, analog, and RF design solutions can help you save time by automating many routine tasks, from block-level and mixed-signal simulation to routing and library characterization.
Overview Related Products A-Z
Driving efficiency and accuracy in advanced packaging, system planning, and multi-fabric interoperability, Cadence® package implementation products deliver the automation and accuracy.
Cadence® PCB design solutions enable shorter, more predictable design cycles with greater integration of component design and system-level simulation for a constraint-driven flow.
An open IP platform for you to customize your app-driven SoC design.
Comprehensive solutions and methodologies.
Helping you meet your broader business goals.
A global customer support infrastructure with around-the-clock help.
24/7 Support - Cadence Online Support
Locate the latest software updates, service request, technical documentation, solutions and more in your personalized environment.
Cadence offers various software services for download. This page describes our offerings, including the Allegro FREE Physical Viewer.
Get the most out of your investment in Cadence technologies through a wide range of training offerings.
This course combines our Allegro PCB Editor Basic Techniques, followed by Allegro PCB Editor Intermediate Techniques.
Virtuoso Analog Design Environment Verifier 16.7
Learn learn to perform requirements-driven analog verification using the Virtuoso ADE Verifier tool.
Exchange ideas, news, technical information, and best practices.
The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information.
It's not all about the technlogy. Here we exchange ideas on the Cadence Academic Network and other subjects of general interest.
Cadence is a leading provider of system design tools, software, IP, and services.
I recently figured out how to enable strokes in Virtuoso, and was wondering if there is a Skill function that will descend into a block that a given set of coordinates is contained within? I searched the Skill help manual for "descend", but couldn't find any functions that do what I am describing. How can I descend into a block using a downward mouse stroke whose endpoint is inside the block?
Also, is it possible to define new strokes?
You would need a series of commands to do what you want, one of the edit in place commands (possibly leHiEditInPlace) but first you must enter the last stroke point before executing the command:
preXY( hiGetStrokeLastPt()) leHiEditInPlace()
Look in dfII/etc/sted for more info on how to set up the procedures to be called by the strokes.
The stroke editor - sted - is supported on Solaris but not on Linux in IC6.1. Start sted in a shell window to define your own strokes.
In reply to Austin CAD Guy:
I am very new to Skill coding. I understand that the hiGetStrokeLastPt() function is returning the endpoint of the mouse stroke, but what exactly is the preXY function doing?
In reply to MOSFET:
preXY is a method to cache a point to feed the next command. This usually eliminates the prompting for an additional point. It should work with the HI version of the command.
So the steps would be as follows:
1. save the coordinates of the endpoint of the mouse stroke using preXY(hiGetStrokeLastPt())
2. use a function to select the instance that contains the point saved in step 1.
3. use leHiEditInPlace() to descend into the instance selected in step 2.
What function will accomplish step 2?
No need for function for step 2. leHiEditInPlace will automatically select the cell under the point and pushes into it. See the help file on leHiEditInPlace to determine how it calculates which cell to choose based on overlapping shapes.
Is there a function like leHiEditInPlace() for schematics that will let me descend into a schematic block?
According to cdsFinder and the documentation, use schHiEditInPlace.
There is schHiDescend([w_windowid]) which will invoke the descend in the current mode (read/edit), or you can force the mode using either schHiDescendEdit() or schHiDescendRead()
Hope this is what you are looking for.
In reply to skillUser:
Thanks for the help. This code seems to accomplish my goal. A downward stroke into a block will descend into it, and an upward stroke will return one level up the hierarchy. The schHiDescend() function is what I was looking for, as opposed to the schHiEditInPlace() function.
firstPt = hiGetStrokeFirstPt()lastPt = hiGetStrokeLastPt() firstPt_yCoord = (cadr firstPt)lastPt_yCoord = (cadr lastPt) (cond ((lastPt_yCoord > firstPt_yCoord) schReturn())((lastPt_yCoord < firstPt_yCoord) preXY(lastPt) schHiDescend())(else (printf "Error determining direction of stroke\n")))
EDIT: It appears that schReturn() is not a valid function, even though leReturn() is a valid function. It also appears that leReturn() also works in schematics. Is there an equivalent leReturn() function for schematics, or should I just use the leReturn() function?
Austin CAD GuyThe stroke editor - sted - is supported on Solaris but not on Linux in IC6.1. Start sted in a shell window to define your own strokes. Ted
We are using IC126.96.36.1990.12 on linux, but we also have available Solaris machines to log into. If I am logged in to a Solaris machine, can I run the sted program, even though the other Cadence tools we have are for Linux? Where exactly is the sted executable located?
First, I'm glad to see you are on IC6.1.
Set your path to the software on Solaris, it can be IC5141 or an older software as the strokes editor has not changed. It is in the <CDS_INST_DIR>/tools/bin directory - in my case /net/redneck/cds/sun4v/IC5141USR6/tools/bin. The resulting file (your def.strokes file) and other SKILL necessary to support the strokes should be in your home directory or your .cadence directory. Your .cdsinit should load it from where ever it is.
Austin CAD Guy First, I'm glad to see you are on IC6.1.Set your path to the software on Solaris, it can be IC5141 or an older software as the strokes editor has not changed. It is in the <CDS_INST_DIR>/tools/bin directory - in my case /net/redneck/cds/sun4v/IC5141USR6/tools/bin. The resulting file (your def.strokes file) and other SKILL necessary to support the strokes should be in your home directory or your .cadence directory. Your .cdsinit should load it from where ever it is. Ted
I think I found the sted executable here:
However, when I run "./sted", I receive the following error:
"Can't initialize the selected window system".
I am using rsh to connect to the Solaris machine from my Linux machine. What do I need to do to run sted?
I would suspect that the rsh window does not have the display properly set. Use the command: echo $DISPLAY to show the display and make sure it is set to your system display. Rsh usually does not reset the display.
If this does not work, you need to run a thin client which uses the native Solaris windows system. Use VNC or some other Solaris based thin client to display back to your screen.
Austin CAD GuyI would suspect that the rsh window does not have the display properly set. Use the command: echo $DISPLAY to show the display and make sure it is set to your system display. Rsh usually does not reset the display.If this does not work, you need to run a thin client which uses the native Solaris windows system. Use VNC or some other Solaris based thin client to display back to your screen.
I did a "setenv DISPLAY <myIP>:0.0", and now when I run "./sted", it just says "Segmentation fault". How can I debug this?
I usually run VNC on my systems to handle the displays so is anyone who can answer the question:
How do I get a Solaris based tool to display on a Linux box?