Verilog定义计算位宽的函数clogb2
Posted 小翁同学
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Verilog定义计算位宽的函数clogb2相关的知识,希望对你有一定的参考价值。
在很多情况下要计算输入输出的位宽,比如你写一个8*8的ram,那么地址需要三位去表示,那么这个函数的方便就体现出来了,你需要使用函数定义就好了。
//位宽计算函数 function integer clogb2 (input integer depth); begin for (clogb2=0; depth>0; clogb2=clogb2+1) depth = depth >>1; end endfunction
举个栗子
parameter p_cnt_max = p_rev_time*p_clk_fre*1000_000 - 1; //翻转时间内所需计数的最大值 //位宽计算函数 function integer clogb2 (input integer depth); begin for (clogb2=0; depth>0; clogb2=clogb2+1) depth = depth >>1; end endfunction wire [clogb2(p_cnt_max)-1:0] w_cnt_max;
以上。
以上是关于Verilog定义计算位宽的函数clogb2的主要内容,如果未能解决你的问题,请参考以下文章
请问在FPGA Verilog设计中,使用关键字parameter定义常数有什么好处?