【verilog语法】$clog2(IEEE Std 1364-2005)

一、前言

在进行Verilog设计时,有时需要根据内存大小来计算地址的位宽,或者根据变量的值来确定变量的位宽,这时可以自己编写相关的可综合函数,或者verilog-2005起开始支持的$clog2系统函数。

二、自己编写的function

	function integer log2;
		input  [31:0] value;
		integer		  i;
		begin
			log2 = 1;
			for(i=0;2**i < value;i=i+1)
				log2 = i+1;
		end 	
	endfunction

三、$clog2()系统函数

此处直接粘贴Verilog-2005标准的截图,从图中可以清楚看到该函数以2为底求log,而不是网上有人说的以自然数e为底来求log。

同样从图中也可以看出该函数是向上取整(符合求地址位宽或者向量位宽的需求),且当输入为0时输出也为0.

四、参考资料

IEEE 1364-2005

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值