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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 4164|回复: 14

[讨论] HDL代码中X是用还是不用??[已解决]

[复制链接]
发表于 2013-11-18 16:23:45 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 xmffsf 于 2013-11-25 10:14 编辑

最近一直在想一个问题:在写代码的时候是在代码中允许使用X呢?还是不用?比如case语句:假设b位宽为[1:0],case的输出为[1:0] c;我这样写代码:
case(b)
  2'b00:  ....;
  2'b01: .....;
  2'b10: ....;
  2'b11: ....;
  default:c=2'bxx;
endcase
还是
case(b)
  2'b00:  ....;
  2'b01: .....;
  2'b10: ....;
  2'b11: ....;
  default:c=2'b00;
endcase
好?
 楼主| 发表于 2013-11-18 16:57:35 | 显示全部楼层
我个人感觉所有状态写完的话,第一种好,因为X态可以传递下去,如果c输出是X,那么输入就一定是X。。。有利于测试是不是?
发表于 2013-11-19 09:38:21 | 显示全部楼层
我还以为你想用casex呢,casex要谨慎点,
这样写法0或者x都没有问题的,严格来说,与case都没啥关系,只是普通的赋值。
另外,case条件已经写全了,连加不加default都没关系,习惯性地加一下。
发表于 2013-11-24 19:35:05 | 显示全部楼层
最好不用,不利于仿真
发表于 2013-11-24 22:53:23 | 显示全部楼层
全case的话毫无疑问地该用X,有利于前后仿一致。
发表于 2013-11-25 00:04:05 | 显示全部楼层
本帖最后由 Timme 于 2013-11-25 00:07 编辑

要写成X-Propagation,不要写X-Termination或X-Insertion。老生常谈了。。。


你的第一个例子就是X-Propagation,第二个例子是X-Termination。第一个例子如果default以外的条件不全,就是X-Insertion。

X-Propagation:输入有不定态,输出就一定有不定态;输出没有不定态,输出就一定没有不定态
X-Termination:输入有不定态,输出可能没有不定态
X-Insertion: 输入没有不定态,输出可能有不定态
 楼主| 发表于 2013-11-25 10:05:09 | 显示全部楼层
回复 6# Timme


   谢谢,了解了!
发表于 2014-3-19 09:50:39 | 显示全部楼层
本帖最后由 haimo 于 2014-3-19 09:52 编辑

回复 6# Timme
想问一下,如果除default外条件不全时,这时default应该给固定值还是X,如果给X就是X-insertion,那么应该给固定值?即使会带来面积和逻辑复杂度。是这样吗?前辈。
还是说写成default:a<=a;综合为一个latch。
发表于 2014-3-19 11:43:25 | 显示全部楼层
learning
发表于 2014-3-19 20:14:35 | 显示全部楼层




最好的方法:写成最简门级描述。

比如Onehot Mux就写成Sum-of-Product,Onehot to Binary Encoding就写成OR Tree,等等...
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-11-22 06:38 , Processed in 0.022528 second(s), 8 queries , Gzip On, Redis On.

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