背景

0-7 共8种情况,应该使用多少位宽的reg来表示? 3bit位宽

0-8 共9种情况,应该使用多少位宽的reg来表示? 4bit位宽

0-9 共10种情况,应该使用多少位宽的reg来表示? 4bit位宽

方法一

使用系统函数 $clog2(x)是将x取以2为底的对数并且向上取整。
clog2(0) = 0(特殊规定)
clog2(1)= 0(因log2(1)=0)
clog2(2) = 1
clog2(3)=clog(4) = 2(向上取整)
clog2(8)=3
clog2(9)=clog(16)=4
clog2(10)=clog(16)=4

方法二

自己写一个function

代码

function integer clog2(input integer n);
  n = n - 1;
  for (clog2 = 0; n > 0; clog2 = clog2 + 1)
    n = n >> 1;
endfunction
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐