在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 10706|回复: 17

[求助] 请教verilog里变量声明时[7:0]和[0:7]有什么区别呢?

[复制链接]
发表于 2011-11-1 17:07:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
如题,请教verilog里变量声明时[7:0]和[0:7]有什么区别呢?
发表于 2011-11-1 18:27:21 | 显示全部楼层
没什么区别!只是个人习惯
发表于 2011-11-1 20:40:06 | 显示全部楼层
2楼正解,就是没区别,设计风格和一些团队项目规范
发表于 2011-11-2 00:27:34 | 显示全部楼层
没区别的,都用过
发表于 2011-11-2 08:51:57 | 显示全部楼层
当然有区别了。比如:
reg [7:0] a;
reg [0:7] b;
a = 8'h55;
b = 8'h55;
结果是a[0] = 1;b[0] = 0;a==b,但是a[0] != b[0]
发表于 2011-11-2 08:56:49 | 显示全部楼层


只是MSB与LSB的位置不同,a[0]是a的LSB,b[0]是MSB,所以a[0]!=b[0],应该是a[0]==b[7].
本质上并没有什么差别吧。
发表于 2011-11-2 11:26:20 | 显示全部楼层
还是按照一般的来吧,不必要搞那么多花样。
verilog里边的数据都是按照右对齐来的。
发表于 2011-11-3 08:34:42 | 显示全部楼层
本帖最后由 post_design 于 2011-11-3 08:43 编辑


只是MSB与LSB的位置不同,a[0]是a的LSB,b[0]是MSB,所以a[0]!=b[0],应该是a[0]==b[7].
本质上并没有什 ...
Emersondjp 发表于 2011-11-2 08:56



从工程角度看,这个问题非常严重。举例,你的模块有一个输入端口声明为[0:7],那你必须要告知你的上级模块,无形中既增加了工作量又带来大量潜在的bug。
所以,大家普遍使用[7:0]这种风格,因为它符合我们的习惯(从左到右,自高到低)。
更要命的是,[0:7]这种风格和所有的运算法则完全违背。比如上文说的a和b,如果有c=a+b,c本应该是ff,但是实际上却变成aa。显然是用[0:7]除了装酷之外,只会给自己和同事带来无尽的麻烦。
发表于 2011-11-4 08:25:15 | 显示全部楼层
a[7:0] 是小端形式
b[0:7] 是大端形式
发表于 2011-11-4 10:36:32 | 显示全部楼层
5楼讲的到位
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-25 01:48 , Processed in 0.023497 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表