背景

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

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐