通常情况下,我们在实际工程中会遇到数据位宽扩展的问题(比如一个数是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数据的位宽扩展规则相关推荐

  1. (42)System Verilog接口变量数据位宽扩展

    (42)System Verilog接口变量数据位宽扩展 1.1 目录 1)目录 2)FPGA简介 3)System Verilog简介 4)System Verilog接口变量数据位宽扩展 5)结语 ...

  2. (43)System Verilog模块变量数据位宽扩展

    (43)System Verilog模块变量数据位宽扩展 1.1 目录 1)目录 2)FPGA简介 3)System Verilog简介 4)System Verilog模块变量数据位宽扩展 5)结语 ...

  3. 【方法】Verilog取变量位宽的时候含有变量怎么办

    在Verilog里面,一般用reg来存储字符串.例如要存储4个字符的字符串,变量应该声明为reg [31:0] str.因为每个字符的宽度为8位,4个字符一共32位.最高位为第31位,最低位为第0位. ...

  4. 【Verilog】不同位宽操作数的按位操作

    不同位宽操作数按位与,低位的未定义位会自动补0 ---IEEE Standard for Verilog® Hardware Description Language 例子: 测试代码 module ...

  5. Verilog定义计算位宽的函数clogb2

    在很多情况下要计算输入输出的位宽,比如你写一个8*8的ram,那么地址需要三位去表示,那么这个函数的方便就体现出来了,你需要使用函数定义就好了. //位宽计算函数 function integer c ...

  6. Verilog基础:表达式位宽的确定(位宽拓展)

    相关文章 Verilog基础:位宽拓展和有符号数运算的联系 Verilog基础:表达式符号的确定 Verilog基础:数据类型 表达式位宽 如果想要在计算表达式时获得和谐一致的结果,那么控制表达式中的 ...

  7. 【FPGA】定点数 数据位宽 运算 位宽截取

    在FPGA中,经常使用定点数表示小数,在进行各种运算时,定点数的位宽会发生变化,并且需要在适当地时候对数据的位宽进行截取. 运算要求和引起的位宽变化 假设存在两个数A.B,假定A位宽为m,小数位宽为a ...

  8. 符号位处理方式 c语言,C语言位域解析符号位扩展规则

    从一个例子说起: int main(void){ union{ int i; struct{ char a : ; char b : ; char c : ; }bits; }num; printf( ...

  9. verilog 常见位宽问题集合

    verilog 常见的位宽问题集合 1. 位宽不等 wire b[31:0]; assign b = 5'b0; 这种错误常见于赋值操作中. 2. 保留最低位 wire b; assign b = 3 ...

最新文章

  1. iOS 网络编程(二)UDP协议小结
  2. 制作一个表格,显示班级的学生信息。
  3. Ubuntu + pip + Python3 + CPU版本 PaddlePaddle 安装
  4. 阿里《Java开发手册》中的 1 个bug!
  5. Oracle入门(三B)之11G新特性 SYSASM 角色用来管理ASM
  6. Redis之Ubuntu开机启动
  7. java集合框架总结(一)
  8. HashMap底层实现及原理
  9. mysql 左右值算法详解_无限分类左右值算法的常规操作逻辑
  10. 问答知识图谱还缺少什么信息?
  11. HDU-3401 Trade 单调队列优化DP
  12. java反编译工具jd-gui下载与使用
  13. 非计算机专业计算机教学考试,论非计算机专业的计算机教学与等级考试
  14. html百度地图导航起点默认定位位置,百度地图API的自动定位路线查询
  15. 如何设置使谷歌浏览器打开链接自动跳转到新标签页而不是覆盖当前页面?
  16. 最佳实践|如何写出简单高效的 Flink SQL?
  17. 基于BP人工神经网络的手写英文字符识别
  18. 一个程序员多年的收藏
  19. el-input-number 默认值设置失效
  20. Linux调试工具2

热门文章

  1. 从英文变形规则计算到Restful Api设计
  2. mantis软件缺陷管理工具安装使用教程
  3. 剑指offer编程试题Java实现--64.滑动窗口的最大值
  4. 访问页面要看什么数据包_白板送票 | 我们为什么要看音乐节?
  5. 机房收费系统—报表建立
  6. Faster-RCNN预测过程详解
  7. web前端开发技术实验与实践(第三版)储久良编著 课外拓展训练3
  8. java datediff_JAVA中的时间操作(附DATEDIFF函数用法)
  9. Axure教程 | 初级电子商务网站设计
  10. 万丈高楼平地起——写在前面的话