• 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. handling list , finding keyword match then adding first...

Stats

  • Locked Locked
  • Replies 5
  • Subscribers 143
  • Views 14712
  • 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

handling list , finding keyword match then adding first element in the final ouput.

varun kumar D
varun kumar D over 10 years ago

Hello,

We have the following list saved in the variable INPUT

(("TM_P7" "gnd_SF!" "TM" "P7_OUT" "P7_OUT_TM")
("PROGA" "vdd_SF!" "P8_INOUT" "P7_OUT" "P9_OUT"
"P8_INOUT#P7_OUT#P9_OUT"
)
("EN_P7" "gnd_SF!" "EN" "P7_OUT" "P7_OUT_EN")
("PROGB" "vdd_SF!" "P8_INOUT" "P7_OUT" "P9_OUT"
"P8_INOUT#P7_OUT#P9_OUT"
)


Out put intended 

("P7_OUT_TM", "P8_INOUT_PROGA" "P7_OUT_PROGA" "P9_OUT_PROGA","P7_OUT_EN",P8_INOUT_PROGB" "P7_OUT_PROGB" "P9_OUT_PROGB")

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 10 years ago

    You've given no indication as to the criteria by which you are determining what ends up in the output list. I'm guessing there is some kind of combination of the names in the lists (since there is no "P9_OUT_PROGA" (or various others) in the first list.

    Just providing one random input list and another output list with no description of the algorithm by which to get from input to output (especially when it's really not obvious from the above) is not likely to get you any suggestions as to how to implement this secret algorithm!

    Kindest Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • varun kumar D
    varun kumar D over 10 years ago
    like I have to match with pinsListInput=
    ("P7_OUT" "P9_OUT" "PROT_rpporpocdm_5k" "P8_INOUT" "P11_IN"
    "P12_OUT" "P24_OUT" "P62_OUT" "P61_OUT" "P63_OUT"
    "P64_OUT" "COMPENSATION_1V8_3V3" "P25_OUT" "P26_OUT" "P27_IN"
    "P39_OUT" "P40_IN" "P41_OUT" "P47_OUT" "P46_OUT"
    "P48_OUT" "P45_OUT" "P52_OUT" "P55_OUT" "P50_OUT"
    "P51_OUT" "P49_OUT" "P58_OUT" "P59_IN" "P60_OUT"
    ) Example if I find the P7_OUT from this (pinsListInput) to the previous INPUT list which is present in first list then it should add the P7_OUT_TM_P7 . then for second list there will 3 match P7_OUT ,P9_OUT,P8_OUT now it shoudl add the first element of that list ie P7_OUT_PROGA, P9_OUT_PROGA, P8_OUT_PROGA then all appended in one file and gives the output.
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 10 years ago

    I still had to read it several times - and also what you said in the first post wasn't quite correct (if I've understood it properly) - because you missed out the trailing "_P7" for those that end in "TM" in your case.

    Anyway, with this code:

    procedure(CCFdoSomeStuff(inputList pinsList)
        let((suffix)
            foreach(mapcan data inputList
                suffix=strcat("_" car(data))
                foreach(mapcar matchedPin
                    setof(pin cdr(data)
                        member(pin pinsList)
                    )
                    strcat(matchedPin suffix)
                )
            )
        )
    )

    I can then do:

    inputList='(("TM_P7" "gnd_SF!" "TM" "P7_OUT" "P7_OUT_TM")
        ("PROGA" "vdd_SF!" "P8_INOUT" "P7_OUT" "P9_OUT"
            "P8_INOUT#P7_OUT#P9_OUT"
        )
        ("EN_P7" "gnd_SF!" "EN" "P7_OUT" "P7_OUT_EN")
        ("PROGB" "vdd_SF!" "P8_INOUT" "P7_OUT" "P9_OUT"
            "P8_INOUT#P7_OUT#P9_OUT"
        )
    )

    pinsListInput='("P7_OUT" "P9_OUT" "PROT_rpporpocdm_5k" "P8_INOUT" "P11_IN"
    "P12_OUT" "P24_OUT" "P62_OUT" "P61_OUT" "P63_OUT"
    "P64_OUT" "COMPENSATION_1V8_3V3" "P25_OUT" "P26_OUT" "P27_IN"
    "P39_OUT" "P40_IN" "P41_OUT" "P47_OUT" "P46_OUT"
    "P48_OUT" "P45_OUT" "P52_OUT" "P55_OUT" "P50_OUT"
    "P51_OUT" "P49_OUT" "P58_OUT" "P59_IN" "P60_OUT"
    )

    and then:

    CCFdoSomeStuff(inputList pinsListInput)

    which returns:

    ("P7_OUT_TM_P7" "P8_INOUT_PROGA" "P7_OUT_PROGA" "P9_OUT_PROGA" "P7_OUT_EN_P7"
        "P8_INOUT_PROGB" "P7_OUT_PROGB" "P9_OUT_PROGB"
    )

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • varun kumar D
    varun kumar D over 10 years ago
    yes thats solved my issue, One more I Problem i am facing in that say i have list LLIST= ("EN_P58" "vdd_SF!" "EN" "P58_OUT" "P58_OUT_EN") Now if two string in a list has one comon word then I want to filter like P58_OUT_EN and EN has one common word EN so I want to print only (P58_OUT_EN) ...so I want two compare each list of element two another list of the element with some common word and base on that i want two create new list , How to create ?
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 10 years ago

    You really are going to have to learn to ask your questions more clearly. I have absolutely no idea what you are asking here.

    Andrew.

    • 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