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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 6177|回复: 7

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

[复制链接]
发表于 2012-11-19 21:14:13 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 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
QQ截图20121119210632.png
发表于 2012-11-19 22:14:10 | 显示全部楼层
不懂,貌似都成线的赋值了!我觉得也应该是下一个时钟周期才延时5个时钟单位后赋值
帮忙顶一下
发表于 2012-11-19 22:25:50 | 显示全部楼层
5个timescale赋值
发表于 2012-11-19 22:39:42 | 显示全部楼层
这个写法应该表示成了在当前时钟点上过5个timescale的时间后取a,b,cin的值后计算赋给sum_p

如果换成以下可能会满足你的要求
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 ;  
        sum_p <= #5 a + b + cin ;
    end
   end
发表于 2012-11-20 10:31:55 | 显示全部楼层
学习了
发表于 2012-11-20 10:41:47 | 显示全部楼层
你把延时#5放在当前的posedge clk 里面always块里,这样肯定是当前开始延时5个周期啊
 楼主| 发表于 2012-11-20 21:13:27 | 显示全部楼层
回复 4# swordheartsmile


    这样可以,我试过。但就是不明白为什么会出现那张状况?
 楼主| 发表于 2012-11-21 22:49:07 | 显示全部楼层
回复 6# qiudanyi1


    为什么啊,有点不明白,能不能细说一下,请教了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2024-6-7 11:46 , Processed in 0.030913 second(s), 10 queries , Gzip On, Redis On.

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