asic设计:位宽不匹配
1. 对于长位宽赋值给短位宽的情况,无论左操作数、右操作数是有符号数还是无符号数,都是直接截断高位,而左操作数二进制所表示的实际十进制数据要看左操作数是无符号数还是有符号数,如果左操作数是无符号数,直接转换成十进制即可,如果是有符号数,则看成2的补码解释成十进制数,这也是实际计算机系统中有符号数的表示方法
2. 对于短位宽赋值给长位宽的情况,需要对高位进行位扩展,具体是扩展1还是扩展0,记住:完全依据右操作数!,具体如下:
1)右操作数是无符号数,则无论左操作数是什么类型,高位都扩展成0;
2)右操作数是有符号数,则要看右操作数的符号位,按照右操作数的符号位扩展,符号位是1就扩展1,是0就扩展0;
3)位扩展后的左操作按照是无符号数还是有符号数解释成对应的十进制数值,如果是无符号数,则直接转换成十进制数值,如果是有符号数,则看成2的补码解释成十进制数;
4)从上面4种情况看出,有符号数赋值成无符号数会出现数据错误的情况,因此要避免这种赋值,而其他情况都是可以保证数据正确的。
3. 运算和赋值是分开进行的,所以这两个过程可以分开对待。
4. 位宽不匹配
wire b[4:0];
reg a;
assign b = 5'ha;
always @(*) begin
if(b)begin
a = 1;
end
end
此段代码本意是想判断若b不为5’b0则将a赋值为1。但由于verilog的判断只对1位数据有效,因此取最低位0判断为无效。有两种解决办法:
1、用比较运算符取代:如使用if(b != 5’b0)代替
2、用规约运算符:如使用if(|b)代替
asic设计:位宽不匹配相关推荐
- IC设计错误案例001:位宽不匹配的错误
1.位宽不匹配 Verilog编码中,常见的位宽不匹配错误,有赋值左右位宽不匹配(<=,=),比较位宽(>,<,>=,<=)不匹配,计算位宽(+,-)不匹配 位宽不匹配会 ...
- Verilog设计中如何匹配变量的位宽?($clog2系统函数)
1.位宽太小 在FPGA设计中,我们经常需要用寄存器来寄存某些"数量类"的变量,比如FIFO的深度啦.或者计数器的最大值啦:又或者输入输出信号也需要将位宽用parameter参数化 ...
- verilog 常见位宽问题集合
verilog 常见的位宽问题集合 1. 位宽不等 wire b[31:0]; assign b = 5'b0; 这种错误常见于赋值操作中. 2. 保留最低位 wire b; assign b = 3 ...
- 【Verilog 语法】~ if-else、case、for、generate、函数 function、任务 task、过程块、位宽计算、阻塞/非阻塞、时间尺度、存储器设计、
文章目录 1. if-else 1.1 设计要点 2. case 2.1 概述 2.2 语法 2.3 注意事项 3. for 3.1 区别与其它语言的for循环 3.2 注意事项 4. generat ...
- 异构计算 软硬协同设计_优雅的设计CNN并行架构-软硬协同之位宽设置(2)
前言:既然涉及到计算,那么浮点数定点数的选择和位宽的选择是逃不开的.一般来说,定点数和低位宽的组合是低功耗和低资源消耗的,也就是硬件友好型的. 首先简单的说明一下浮点数和定点数的区别. 1. 浮点数的 ...
- 【设计经验】3、ISE中烧录QSPI Flash以及配置mcs文件的加载速度与传输位宽
一.软件与硬件平台 软件平台: 操作系统:Windows 7 64-bit 开发套件:ISE14.7 硬件平台: FPGA型号:XC6SLX45-CSG324 QSPI Flash型号:W25Q128 ...
- (42)System Verilog接口变量数据位宽扩展
(42)System Verilog接口变量数据位宽扩展 1.1 目录 1)目录 2)FPGA简介 3)System Verilog简介 4)System Verilog接口变量数据位宽扩展 5)结语 ...
- (43)System Verilog模块变量数据位宽扩展
(43)System Verilog模块变量数据位宽扩展 1.1 目录 1)目录 2)FPGA简介 3)System Verilog简介 4)System Verilog模块变量数据位宽扩展 5)结语 ...
- 多级NUMA:AMD EPYC互连速率、位宽与功耗的关系
几天前我发过一篇<AMD EPYC服务器OS兼容注意事项>,正好又看到份资料,引发了我的一些思考.由规格参数倒推CPU的设计不见得是种高效的方式,但分享给大家可能也是个有意思的过程,如果我 ...
最新文章
- EDIUS输出到文件
- keepoutlayer设定_AD的keepout层是做什么用的,如何使用
- Table还是CSS,请您说说您的见解
- orcale的rank(排名函数)实例
- Jerry入职SAP成都研究院14周年纪念日
- python中space_漫谈Python的Namespace
- 参考文献的类型及标识
- Atitit 函数调用的原理与本质attilax总结 stdcall cdecl区别
- Shawn's 杂记
- 大专计算机应用技术毕业生登记表自我鉴定,大专毕业生登记表的自我鉴定(精选5篇)...
- oracle查询同一天生日的,关于date生日判断的问题
- Android平台招商银行“一网通”支付对接采坑记
- android仿美团评论
- jrebel java.lang.ClassCastException: org.springframework.boot.actuate.endpoint.annotation
- linux的SIGCHLD信号
- Web前端第三阶段学习
- Ubuntu Linux开机黑屏的永久解决办法
- 【Matlab人脸识别】BP神经网络人脸识别(含识别率)【含GUI源码 891期】
- 辰视将携3D视觉技术及各领域解决方案参加华南工博会国际机器视觉展
- 爬虫入门(五)抓取网页数据
热门文章
- python调用linuxapi_Linux上使用python调用WPS二次开发接口
- 逆战网络连接断开连接服务器超时_逆战服务器连接断开 与服务器连接断开的原因...
- 基于VLC实现RTSP推流视频
- CSS之自定义原生checkbox样式
- 宗地,图斑,线状地物,零星地物
- 第20 章 Docker Swarm 集群实践
- 2020年大数据行业就业如何,大数据开发工程师需求大吗?
- 终端滑模matlab程序,机器人轨迹跟踪控制方法研究(含MATLAB程序)
- urv中保研碰撞测试结果_中保研碰撞测试结果出炉,奔驰GLC在安全性方面获优秀评价...
- MySQL文本类型 存储大小,及各种数据类型在Java中用什么接收