• 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. Functional Verification
  3. Generate a list of unique numbers

Stats

  • Locked Locked
  • Replies 7
  • Subscribers 64
  • Views 14617
  • 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

Generate a list of unique numbers

archive
archive over 17 years ago

How do you generate a list with unique numbers? Lets say I have a list of n element of type uint. I now want to generate the list with random numbers but the same number are not allowed to be in the list twice.

my_list[n]: list of uint;


Originally posted in cdnusers.org by ryz
  • Cancel
  • archive
    archive over 17 years ago

    This is the way I've been told:

    channels : list of byte;
    keep channels in all_values(byte[0..255]);
    keep channels.size() == 10;

    /Ed


    Originally posted in cdnusers.org by earthur
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • archive
    archive over 17 years ago

    I expect this will also work:

    keep for each in my_list {
    index > 0 => it not in my_list[0..(index-1)];
    };


    Regards,
    Dean


    Originally posted in cdnusers.org by ddmello
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • archive
    archive over 17 years ago

    Dean,

    That one is good for small values of N.

    Above the 'Y should be "[ 0".

    /Ed


    Originally posted in cdnusers.org by earthur
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • archive
    archive over 17 years ago

    Thanks for clarifying Ed. Sounds like you've been down this road before :-)

    BTW the [0 / 'Y thing happened with your post as well; apparently we need to use delimiters to prevent that.

    So for correctness your solution is:

    <code>
    channels : list of byte;
    keep channels in all_values(byte[0..255]);
    keep channels.size() == 10;
    </code>

    Regards,
    Dean


    Originally posted in cdnusers.org by ddmello
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • archive
    archive over 17 years ago

    Thanks for clarifying, Ed. Sounds like you've been down this road before :-) BTW the 'Y problem occurred for your post as well, a note "Posting Code to the Forum" describes how to prevent this when posting code. So for correctness your solution should read: channels : list of byte; keep channels in all_values(byte[0..255]); keep channels.size() == 10; and my code (for small list sizes) should be: keep for each in my_list { index > 0 => it not in my_list[0..(index-1)]; }; Regards, Dean


    Originally posted in cdnusers.org by ddmello
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • archive
    archive over 17 years ago

    Here's anther idea..

    lb: list of byte;
    keep lb.is_a_permutation(all_values(byte[0..9]));


    Yaron


    Originally posted in cdnusers.org by thinkverification
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • archive
    archive over 17 years ago

    Posted By thinkverification on 2/14/2008 12:24 AM
    Here's anther idea..

    lb: list of byte;
    keep lb.is_a_permutation(all_values(byte[0..9]));


    Yaron


    Again: Y === [0 :-)


    Originally posted in cdnusers.org by thinkverification
    • 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