Wednesday, February 08, 2012     Register | Login | Search | Contact Us
     

Many of you already received communications about the move of the Cadence user community into cadence.com. And many of you have already joined, with over 4000 registrations in the first two weeks.

The new Cadence Community enhances the ability of Cadence users to connect and collaborate. In addition to moving the community into cadence.com -- enabling single sign-on for community, Sourcelink and Cadence events -- the new site is organized around nine technology segments, giving you easy access to product information, training, forums and blogs. Some of the new features include:
  • Ability to respond to posts via e-mail
  • Technology-specific blogs
  • Latest Web 2.0 social networking capabilities
  • Public profile options
  • Private messaging
  • Friends lists
Visit the new Cadence Community today at www.cadence.com/community and join the discussions!

Registration note: Due to the scope of the enhancements and the new SSO registration system, we were not able to migrate existing cdnusers.org member accounts. So new registrations are required, but this enables a broader set of functionality we think you'll enjoy.

Forum note: Under the guidance of forum moderators, we have taken the 20+ cdnusers.org forums and consolidated them into 11 forums on the new site. Posts have been brought over so you can leverage that posting history. CDNusers forums will be set to read only starting 7/30, and cdnusers.org will be redirected to the new community on 8/4.

Best regards,
Mike and Tom

Michael A. Catrambone - Steering Committee Chairman
Distinguished Engineer
PCB/Mechanical
UTStarcom, Inc.

Tom Diederich
Cadence Community Manager
Home
Forums
Subject: passing variable by reference
Posting to forums is available to community members only.
Login or Register
Rate this topic:
   
Author Messages
david.denis
Posts: 2
Online: User is Offline
10/04/2007 1:19 AM  
Hello,

I'm wondering how can a variable be passed by reference instead of value in skill functions ?

Regards,
David
adbeckett
Posts: 248
Online: User is Offline
10/04/2007 2:11 AM  
Hi David,

In fact all variables [u]are [/u] passed by reference in SKILL. This is fairly obvious when passing lists, structures, tables, arrays and so on - but less obvious when passing "atomic" values such as integers, floats and strings - primarly because of the fact that there aren't functions to change a value of an atomic value in place.

The purpose of you asking is probably to allow the function you're calling to change the value of a variable passed in. There are several ways this can be done:

1. If the data passed is a list, structure, table, array, class instance, database object etc, then you can change it already. With lists you'd need to use a destructive operation (e.g. rplaca, rplacd and so on).
2. You could write a macro instead of a function (see sourcelink solution 11025352 for an overview of macros)
3. You could pass the name of the variable to the function. This is sort of equivalent to pointers in other languages. For example:

procedure(MYupdateVar(varName "s")
set(varName symeval(varName)+1)
)

a=1
MYupdateVar('a)
a => 2

Regards,

Andrew.

david.denis
Posts: 2
Online: User is Offline
10/04/2007 3:38 AM  
Thanks for the details.
David
Posting to forums is available to community members only.
Login or Register

Forums > Custom IC > Shared code - SKILL > passing variable by reference


ActiveForums 3.6
     
Copyright 2006 Cadence Design Systems, Inc.