博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
verilog 基础原理1 - RTL中对数据位宽的管理
阅读量:4189 次
发布时间:2019-05-26

本文共 250 字,大约阅读时间需要 1 分钟。

我们通常非常清楚,对于每一个数据都必须定义其位宽,如:

reg [7:0]  a;

reg [19:0] b;

但进行计算时我们通常会忽视中间结果的位宽从而出现难以理解的仿真错误。如

wire  [19:0]  c;

assign   c = a*b >> 8; 

仿真发现c并非我们想要的结果。原因可能是仿真工具认为a*b的计算值的位宽为a和b中最大的位宽,即20位。

正确的方式是:

wire  [27:0] c_tmp;

assign c_tmp = a*b;

assign c = c_tmp[19:8];

转载地址:http://oksoi.baihongyu.com/

你可能感兴趣的文章
Ubuntu Navicat for MySQL安装以及破解方案
查看>>
在C++中如何实现模板函数的外部调用
查看>>
HTML5学习之——HTML 5 应用程序缓存
查看>>
HTML5学习之——HTML 5 服务器发送事件
查看>>
mysql中用命令行复制表结构的方法
查看>>
hbase shell出现ERROR: org.apache.hadoop.hbase.ipc.ServerNotRunningYetException
查看>>
解决Rhythmbox乱码
查看>>
豆瓣爱问共享资料插件发布啦
查看>>
kermit的安装和配置
查看>>
linux中cat命令使用详解
查看>>
java中的异常机制
查看>>
商务智能-基本方法-数据钻取
查看>>
openstack-instance-high-availability-Evacuate
查看>>
evacuate-instance-automatically
查看>>
pycharm常用设置(keymap设置及eclipse常用快捷键总结)
查看>>
关于在openstack的环境变量.bashrc自定自己简化命令
查看>>
Openstack Heat Project介绍(转)
查看>>
How to Perform an Upgrade from Icehouse to Juno(ice升级到juno)
查看>>
高扩展性网站的50条原则(转)-思维导图
查看>>
解决openstack novnc一段时间后自动挂断登录不上问题,novncproxy dead but pid file exists
查看>>