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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2103|回复: 2

[讨论] 请教大家818下面的问题的。-------版主-------在哪里?

[复制链接]
发表于 2012-12-3 22:19:00 | 显示全部楼层 |阅读模式

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

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

x
always
本帖最后由 hhc789 于 2012-12-3 22:17 编辑

always @(posedge clk or negedge rst_n) begin
    if(!rst_n) begin
     sum  <= 0 ;
     cout <= 0 ;
     sum_p <= 0 ;
  end
  else begin
      {cout,sum} <= a + b + cin ;  
        #5 sum_p <= a + b + cin ;
    end
   end




为什么在sum_p前面加一个延迟,结果在当拍延迟5个时间单位就出来,我觉得应该在下一拍延迟5个时间单位出来,我想的和仿真的结果不一样,求高人解答啊?

QQ截图20121119210632.png(6.74 KB)


下载次数:0
2012-11-19 21:10





                               
登录/注册后可看大图

QQ截图20121119210632.png(6.74 KB)


下载次数:0
2012-11-19 21:13





                               
登录/注册后可看大图
发表于 2012-12-3 23:06:50 | 显示全部楼层
#5这个操作已经是结束当前拍事务队列之后的操作了,所以非阻塞赋值的作用起不到应有的效果,此时的<=理论上应该和=是一样的结构。尤其是#5这个时间是小于时钟周期宽度的时候,就说明等待当前时钟沿对应的事务队列完毕后5ns执行这条语句,所以不是下一拍出现。不知道这么解释你明白吗?简单来说:#操作破坏了非阻塞赋值的作用。呵呵
发表于 2012-12-4 09:52:16 | 显示全部楼层
Move the "#5" after the "<=" then you will get what you want.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-11-15 02:11 , Processed in 0.020794 second(s), 8 queries , Gzip On, Redis On.

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