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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 4937|回复: 10

求助: 如何使x时输出0?

[复制链接]
发表于 2009-6-16 23:13:41 | 显示全部楼层 |阅读模式

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

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

x
求助各位大侠,

16位reg型变量a,b;
reg [15:0] a;
reg [15:0] b;

verilog代码, 如何通过简单 “位操作” 实现下面功能?
a[n]     b[n]
0          0
1           1
x           0


对于a的每一位,当为0时, b的相应位输出0;
                    当为1时,                  输出1;
                     当为x时,                 输出0。

[ 本帖最后由 cola588 于 2009-6-17 00:02 编辑 ]
 楼主| 发表于 2009-6-17 00:01:28 | 显示全部楼层
由于
x | 0   = x
x&1   = x

简单的位操作  看来无法实现,  大家有什么其他办法?
发表于 2009-6-17 11:13:40 | 显示全部楼层
???
a的0、1都指定了,x状态如何理解呢?
发表于 2009-6-17 23:27:20 | 显示全部楼层
可以采用条件判断,当a[n]=1时,b[n]=1,否则b[n]=0。包括a为高阻态时,b也为0。
代码自己写。
发表于 2009-6-18 13:55:40 | 显示全部楼层
你可以试试下面的写法

if (a[n] === 1'b1)
          b[n]=1'b1;
else
          b[n]=1'b0;
发表于 2009-6-18 15:05:45 | 显示全部楼层
发表于 2009-7-31 10:03:54 | 显示全部楼层
把x变成0...you probably canot synthesize this design...
发表于 2009-8-16 11:28:43 | 显示全部楼层
直接指定为0就可以了.不过写出来和电路做出来还是有区别的,建议去看看管级电路的实现手段
发表于 2009-8-17 00:37:30 | 显示全部楼层
why do you want this??

suggestions:
1) always @(*) begin
if(a[0] === 1'bx) begin
a[0] = 1'b0;
end else begin
  b[0] = a[0];
end
end
2) run simulations in 2 states then.
发表于 2009-8-22 21:55:15 | 显示全部楼层
pull low
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2025-1-8 13:38 , Processed in 0.026699 second(s), 6 queries , Gzip On, Redis On.

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