我是靠谱客的博主 顺心哈密瓜,这篇文章主要介绍13,Verilog数据的位宽扩展规则,现在分享给大家,希望可以做个参考。

注:学习、交流就在博主的个人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数据内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(130)

评论列表共有 0 条评论

立即
投稿
返回
顶部