• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Community Forums
  2. Custom IC SKILL
  3. Query with forms

Stats

  • Locked Locked
  • Replies 4
  • Subscribers 143
  • Views 14430
  • Members are here 0
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Query with forms

ank0888
ank0888 over 13 years ago
Hi all

 I am trying to create a very simple form where a part of the operation involves selecting an instance from the layout and having it displayed in the String box field

Flow as below:

instSelField = hiCreateCyclicField(

      ?name           'instSelField

      ?choices        list("None" "Select from EV View")

      ?prompt         "Select from"

      ?defValue        "None"

      ?callback        "GetCellInstance()"

       

);inpSelTypeField

 

instDisplayField = hiCreateStringField(

      ?name          'instDisplayField

      ?prompt         "Instance Name"

      ?value          "none"

      ?defValue        value

      ?editable        t

      )

 
value=GetCellInstance()

  procedure(GetCellInstance(f)

  prog((cell_view xx)

  cell_view=geGetEditCellView()

  if(frmSel="Select from V

  xx=car(geGetSelSet()~>name)  

  println(xx)

  return(xx)

  )

  )

    
RNetFileForm =hiCreateAppForm(

?name `RNetFileForm

?formTitle "Create R network Schematic"

?callback `RNetFileFormCB

?fields list(inpSelTypeField instSelField instDisplayField)

?help " "

?unmapAfterCB t

)

hiDisplayForm(RNetFileForm)

 
What I want to have is the following:

1. After selecting "Select from EV View", from instSelField, I want to be able to select the instance from the Layout view (Extracted view or layout)

2. The selected instance name should appear on the instDisplayField

I tried assigning the return value of the procedure that gets the instane name to defValue in instDisplayField but it never gets assigned.

I also need to be able to do this instance selection only when "Select from EV view" is clicked.

Any help?

Thanks
  • Cancel
  • ank0888
    ank0888 over 13 years ago
    Correction in the procedure: procedure(GetCellInstance(f) prog((cell_view xx) cell_view=geGetEditCellView() xx=car(geGetSelSet()~>name) println(xx) return(xx) ) )
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • ank0888
    ank0888 over 13 years ago

    Hello

     I am working on an application where I need to be able to do the following:

     Steps:

    1. I have created a form where with a Cyclic field -Field 1 (choice ->None and Select from Layout)

    2. After clicking "Select from Layout",  I select the instance from the layout view.

    3. I want the instance name to be immediately populated in a string field in the form -Field2

     

    I have put a procedure in the Callback in Field1 that gets the Instance name. However, the trouble is that the instance name gets populated in Field 2 only after an additional click on Field 1 (Ie change choice from Select from Layout to None). Clearly this  should not be the flow .

     I realize that the callback from Field1 is called immediately on click and the procedure is executed fully. Hence a second selection is required to enable transfer of data (geGetSelSet()) from layout to form.

     Is there a way to overcome this.

     What I want to finally have is something like what is present in cadence tools. Eg : Cadence ADE  ->Select Net from Schematic -> (On selecting net from schematic)--> Net name is populated in ADE form

      Skeleton code as below:

    ; FIELD1

     

    pinSelField = hiCreateCyclicField(

          ?name           'pinSelField

          ?choices        list("None" "Select from EV View")

          ?prompt         "Select Pin"

          ?defValue        "None"

          ?callback        "GetPinInstance()"

           

    );inpSelTypeField

    ;)

     

     

    ;PROCEDURE TO GET CELL NAME

    procedure(GetCellInstance(frm frmSel)

    prog((cell_view xx)

       cellSelect=geGetSelSet()

       cellName=car(cellSelect~>name) 

         if(!cellName then cellName ="none")

       RNetFileForm->instDisplayField->value =cellName

      ...

      )

     )

    )

     

     

    ;FIELD 2 (Display Instance Name

    instDisplayField = hiCreateStringField(

          ?name          'instDisplayField

          ?prompt         "Instance Name"

          ?value          "none" 

          ?defValue      "none"        

          ?editable       t

          )

     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • dmay
    dmay over 13 years ago

    I have just a couple of observations from your code in your post:

    1. You said in step 2 that "After clicking "Select from Layout",  I select the instance from the layout view". Your callback runs as soon as you toggle that cyclic field. At that time, it looks to see what is currently selected. If you want to select the instance after you toggle the cyclic field, you'll need to use an enter function like "enterPoint" and process the instances under the point. This would be better implemented with a button since toggling the cyclic field back to "none" would be the only way to get the callback to run again. As the code is now, you can have the user select an instance in the layout first and then press a button on the form that calls the callback and that would work without need for an enter function.

    2. Your pinSelField callback calls GetPinInstance. The callback you posted is named GetCellInstance.

    Derek

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • ank0888
    ank0888 over 13 years ago
    Hi Derek

    Sorry for the delayed response.

    I got this resolved. Resorted to usage of buttons and fixed the problem as usage of enterPoint would not fully satisfy my requirement(double toggle)

    Thanks for the guidance. I do not see the post on the community forum. Hence the reply

    Thanks

    Anukul
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. 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. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information