1.不使用randc来实现同样的随机效果
注意点:sum() 的结果位宽与数组元素的表达式位宽有关,如果只有 1 bit,求和可能发生截断。

2.不使用 unique 实现数组元素互异

3.动态数组长度、范围与求和约束
编写一个 SystemVerilog class,满足以下条件:
只能使用 constraint 实现。
定义 rand int data[] 动态数组。
数组长度固定为 10。
每个元素的取值范围为 1~20。
所有元素之和必须等于 100。
所有元素必须是偶数。

注意点:1.constraint内不能用begin end 2.动态数组用 new[10] 分配,随机约束用 size() == 10 限定长度。
4.条件约束 + dist 随机分布


5.数组中恰好有 3 个元素为 1

6.冒泡排序

冒泡排序的核心是双重循环,比较相邻元素并交换。每轮将当前未排序部分的最大值放到末尾。
