发现$ceil($clog2(N)/$clog2(R))没有得到一个对的结果,进而发现$clog2(N)/$clog2(R)得到的竟然也不是一个小数,查了下
The $clog2
function in SystemVerilog returns an integer value representing the ceiling of the base-2 logarithm of its argument.
也就是说$clog2返回的是int类型,而int在sv中的除法得到的也是int,要得到小数的话得用$itor转成real再开始除法
所以最终是用了$ceil($itor($clog2(N)) / $itor($clog2(R)))
另一个问题是有一个本地参数localparam bit,在参与计算时算不出对的结果,后来才发现它是bit不是int就不行,要先用int'转换一波