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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2090|回复: 5

[求助] 请问在if 条件判断语句中可以使用未知态 if(data_in!=4'bx)来进行判定吗

[复制链接]
发表于 2016-12-26 14:11:52 | 显示全部楼层 |阅读模式

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

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

x




  1. always @(posedge clk or posedge rst)
  2. begin
  3. if(rst)
  4.     begin
  5.         temp<=512'h0;
  6.         des<=0;
  7.          length<=64'h0;
  8.         signal<=0;
  9.     end
  10. else if(data_in!=4'bx)
  11.     begin
  12.     temp[0:508]<=temp[4:511];
  13.     temp[508:511]<=data_in;
  14.     length<=length+64'h1;
  15.     end


复制代码
 楼主| 发表于 2016-12-26 14:18:44 | 显示全部楼层
我是用data_in传入数据,每个时钟上升沿传递4个比特,当data_in=4'bx时表示,已经到了数据的末尾。以此来进行条件判断
发表于 2016-12-26 15:37:19 | 显示全部楼层
4'bx表示4位二进制不确定或未知,这种只在仿真时才有用,实际的电路中是没x未知这个状态的,二制进制,要么是0要么是1。
你是想实现一个
data_in => 511 .... 0 => data_out 这样的右移(512位)移位寄存器的功能(可以参考移位寄存器的功能和表示方法)。
首先要明确你的输入是什么,输出是什么,然后在考滤用什么方法去实现。这样你就知道该如何添加条件。
目前你的写法是不可取的。
建议参考一下别人是如何写的。
理解HDL的意义和实际电路,这样你才清楚那些是在仿真是有用,那些是在综合时有用。
发表于 2016-12-26 16:52:11 | 显示全部楼层
你这样写就没有理解数字电路的实质。二楼说的也不对,实际电路中会出现X状态。但是这是要绝对避免的。出现这种状态意味你的电路出现了问题
发表于 2016-12-26 17:38:37 | 显示全部楼层
不行.......
发表于 2016-12-26 19:30:31 | 显示全部楼层
data_in!=4'bx的结果是1'bx,if(1'bx)的结果是不执行,所以你最后那段代码永远不会被执行。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2024-11-16 18:33 , Processed in 0.018644 second(s), 8 queries , Gzip On, Redis On.

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