Home > Community > Forums > Custom IC SKILL > Plz help in solving the error: *Error* let: local bindings must be a proper list

Email

* Required Fields

Recipients email * (separate multiple addresses with commas)

Your name *

Your email *

Message *

Contact Us

* Required Fields
First Name *

Last Name *

Email *

Company / Institution *

Comments: *

 Plz help in solving the error: *Error* let: local bindings must be a proper list 

Last post Fri, Nov 6 2009 10:51 AM by dmay. 8 replies.
Started by Anupama 04 Nov 2009 09:15 PM. Topic has 8 replies and 1979 views
Page 1 of 1 (9 items)
Sort Posts:
  • Wed, Nov 4 2009 9:15 PM

    • Anupama
    • Not Ranked
    • Joined on Fri, Sep 12 2008
    • Bangalore, Karnataka
    • Posts 3
    • Points 75
    Plz help in solving the error: *Error* let: local bindings must be a proper list Reply
    I am excuting below piece of code. I very new to this skill programming. I am still a beginer. I am stuck at variable declaration.  But I need make this piece of code to work ASAP. So please suggest me what is wrong in this code.?...

    MY ERROR : *Error* let: local bindings must be a proper list - cv

    CODE :

    procedure(CCSPowerPlot(pinlist)
    let(cv layername) cv=geGetEditCellView()foreach(pin pinlistforeach(shape cv~>shapes

    if(pin==shape~>net~>name then

    layername=car(shape~>lpp)

    lelsLayerSelectable(list(layername "drawing") t)

    hiRedraw()
     )     )       )    )

     
    • Post Points: 35
  • Wed, Nov 4 2009 9:21 PM

    • kbhow
    • Top 75 Contributor
    • Joined on Thu, May 7 2009
    • Penang, Pulau Pinang
    • Posts 120
    • Points 2,045
    Re: Plz help in solving the error: *Error* let: local bindings must be a proper list Reply

    Hi Anupama,

    I corrected your code as below:

    procedure(CCSPowerPlot(pinlist)

    let((cv layername)   ;;You miss a bracket here 

        cv =geGetEditCellView()

        foreach(pin pinlist

            foreach(shape cv~>shapes 

                if(pin==shape~>net~>name then

                    layername=car(shape~>lpp)

                    lelsLayerSelectable(list(layername "drawing") t)

                    hiRedraw()

                 );if

           ) ;foreach

        );let 

    );proc

    Please have a try again

    How 

    • Post Points: 5
  • Wed, Nov 4 2009 9:23 PM

    • skillUser
    • Top 10 Contributor
    • Joined on Fri, Sep 19 2008
    • Austin, TX
    • Posts 2,604
    • Points 16,180
    Re: Plz help in solving the error: *Error* let: local bindings must be a proper list Reply

     Hi,

    You appear to be missing a set of parentheses (or more? I have not tested the code below, just inspected it "by hand" as it were)

    procedure(CCSPowerPlot(pinlist)
    let((cv layername)
    cv=geGetEditCellView()
    foreach(pin pinlist
    foreach(shape cv~>shapes
    if(pin==shape~>net~>name then
    layername=car(shape~>lpp)
    lelsLayerSelectable(list(layername "drawing") t)
    hiRedraw()
    );if
    );foreach
    );foreach
    );let
    );procedure

    I hope that this helps,
    Regards,
    Lawrence.

    • Post Points: 5
  • Wed, Nov 4 2009 9:24 PM

    • kbhow
    • Top 75 Contributor
    • Joined on Thu, May 7 2009
    • Penang, Pulau Pinang
    • Posts 120
    • Points 2,045
    Re: Plz help in solving the error: *Error* let: local bindings must be a proper list Reply

    Ophs,

    I miss out a bracket too.

    How

    • Post Points: 20
  • Wed, Nov 4 2009 10:05 PM

    • Anupama
    • Not Ranked
    • Joined on Fri, Sep 12 2008
    • Bangalore, Karnataka
    • Posts 3
    • Points 75
    Re: Plz help in solving the error: *Error* let: local bindings must be a proper list Reply

    Hi All,

     Thanks for the help. The code is executing properly and it is returning "t" value. But it's not showing any changes in my layout. It is not selecting the respective layer.

    I am passing my arguments in this way.

    pinlist='("avdd")

    CCSPowerPlot(pinlist)

    Is this the right way?...

    • Post Points: 20
  • Wed, Nov 4 2009 10:33 PM

    • kbhow
    • Top 75 Contributor
    • Joined on Thu, May 7 2009
    • Penang, Pulau Pinang
    • Posts 120
    • Points 2,045
    Re: Plz help in solving the error: *Error* let: local bindings must be a proper list Reply

    Hi Anupama,

    Ya, from your code, you are passing the correct argument. By the way, may i know what are you trying to do. The Skill code looks nothing for me, it just check on the layer select-ablity on your input net.

    How

    • Post Points: 20
  • Wed, Nov 4 2009 10:41 PM

    Re: Plz help in solving the error: *Error* let: local bindings must be a proper list Reply

    Anupama,

    My guess is that you forgot to add the call:

    geSelectFig(shape)

    where you have the call to leIsLayerSelectable. In fact that function would only return whether the layer is selectable or not, and even then you're passing the second argument wrong (it needs to be a tech file id, or just miss it out since it's optional. Either way, you're doing nothing with the result.  Perhaps you meant to use leSetLayerSelectable? (you'd still need the geSelectFig if you want it to actually select anything).

    Regards,

    Andrew.

    • Post Points: 20
  • Wed, Nov 4 2009 11:20 PM

    • Anupama
    • Not Ranked
    • Joined on Fri, Sep 12 2008
    • Bangalore, Karnataka
    • Posts 3
    • Points 75
    Re: Plz help in solving the error: *Error* let: local bindings must be a proper list Reply

    Yup .. Actually the program is just a small check to know whether the layer is selectable or not.


    Actually , My requirement is : I have a pin list . I want to make visible of the net which is connected to that pin only. And I want other nets( of any metal layer) to be invisible. (And addition to this , I want to make visible of my basic layers: poly, n well, diffusion )


    "Mark net" is a option to mark a net. But it doesn't switch off the other nets. I want to do it. I don't know how difficult to achieve it in skill. But I want to try it out. 
    What I thought is , first I will take the pin- then will read corresponding net, its shape , its respective Metal layers. I want to select these layers and want to make visible of only this net's layer parts.  Not other nets and its layers.


    Can anyone suggest me, how I can achieve this? Is the right way I am going. Or Is there any other alternative or any already available resource is there to get my result..?


    Regards,
    Anu

    • Post Points: 20
  • Fri, Nov 6 2009 10:51 AM

    • dmay
    • Top 25 Contributor
    • Joined on Thu, Jul 17 2008
    • Allen, TX
    • Posts 396
    • Points 7,460
    Re: Plz help in solving the error: *Error* let: local bindings must be a proper list Reply

    You will not be able to turn off the other nets if they are using the same material as your specified net. In other words, there is no way to show metal1 on your specified net and not show metal1 anywhere else. The nice thing about using something like mark-net is that is uses a separate hilight layer. You can then make all of your metals invisible and still see this hilight layer.

    Once you start using Cadence 6.1, you could select the shapes on your net and use the "Dimming" feature on the Display Options form. This allows you to dim all layout except the selected layout. Thus, you could modify your skill code to select the shapes on a net. These shapes would be clearly visible while the rest of the layout was dimmed.

     Derek

    • Post Points: 5
Page 1 of 1 (9 items)
Sort Posts:
Started by Anupama at 04 Nov 2009 09:15 PM. Topic has 8 replies.