我有一个位数组,比方说(src = 0011010)。此数组的(n = 3)位设置为1。
我想获得一个新数组,其中有些位仍设置为1(因此,设置为1的位的数目在0 ... n范围内)。为此,我使用$ urandom:
dest_rnd = $ urandom()&src;
现在,我想创建另一个数组,将其称为dest_onehot,其中src中最初设置为1的位中只有1保持为1,而其他所有位都为零。并选择保持生存的位。
例如:dest_onehot = 0001000(因此,在最初设置为src的src位中,只有第4位保留下来,而所有其他位都将重置)。
是否有SystemVerilog方法可以实现这一目标?
提前感谢您的帮助!