概述
注:学习、交流就在博主的个人weixin公众号 “FPGA动力联盟” 留言或直接+博主weixin “fpga_start” 私信~
通常情况下,我们在实际工程中会遇到数据位宽扩展的问题(比如一个数是4bit,需要扩展为8bit),而且该数据既可能是有符号数,也可能是无符号数,此时我们该如何扩展呢?这就需要用到前面说到的拼接运算符了!
对于无符号数,很容易理解。即扩展位补零即可。这里对于有符号数来说有一个万能公式:即对于一个用n位表示的有符号数据data1,比如:
wire signed [n-1:0] data1;//有符号wire型变量
reg signed [n-1:0] data1;//有符号reg型变量
我们可以举例验证一下:
我们想要将data1扩展为m位表示的data2(m>n),data2表示成如下:
{ {(m-n){data1[n-1]}}, data1[n-1,0] }
假设data1是有符号的4bit位宽数据+7(4’b0111),需要扩展为8bit位宽data2,代入上述公式后,data2为8’b0000_0111,确实还是+7。
假设data1是有符号的4bit位宽数据-7(4’b1001),需要扩展为8bit位宽data2,代入上述公式后,data2为8’b1111_1001,确实还是-7。
参考文献:
1,verilog传奇——从电路出发的HDL代码设计
2,verilog编程艺术
最后
以上就是顺心哈密瓜为你收集整理的13,Verilog数据的位宽扩展规则的全部内容,希望文章能够帮你解决13,Verilog数据的位宽扩展规则所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复