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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 6530|回复: 25

[求助] always结构里面的Count0_out[怎么自动变成敏感变量啊

[复制链接]
发表于 2010-3-29 21:42:35 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 wufpga 于 2010-3-31 11:32 编辑

always @(Result_en)
begin
if (Result_en == 1)
    Result <= Count0_out[15:0];
else
   Result <= Count0_out[31:16];
end

这样的话,Count0_out一有更新Result 就跟着变化。但是我也没有把Count0_out作为敏感变量,
实际上我希望result_en跳变一次(上升或者下降沿),result变化一次。

附:其他地方的always都是用的上升沿出发,敢问这会有影响嘛。
发表于 2010-3-29 21:46:17 | 显示全部楼层
为什么要这么写?
发表于 2010-3-29 22:02:07 | 显示全部楼层
这个写的是啥啊?在时序电路中推荐非阻塞,组合逻辑为阻塞
 楼主| 发表于 2010-3-29 22:11:12 | 显示全部楼层
改成阻塞式的,结果还是一样啊

always @(Result_en)
begin
if (Result_en == 1)
    Result = Count0_out[15:0];
else
   Result = Count0_out[31:16];
end

Count0_out一有更新Result 就跟着变化。

附:其他地方的always都是用的上升沿出发,敢问这会有影响嘛
 楼主| 发表于 2010-3-30 11:21:38 | 显示全部楼层
解决不了,自己顶一下
发表于 2010-3-30 13:25:44 | 显示全部楼层
Count0_out一有更新Result 就跟着变化。
这句话怎么解释?
你可以按照组合逻辑的写法,把两个输入都放到always里面
 楼主| 发表于 2010-3-30 13:53:22 | 显示全部楼层
是想对Count0_out进行采样保持。不希望result变的太快
发表于 2010-3-30 19:18:57 | 显示全部楼层
楼主是不是这个意思?见下面的代码。
always @(Result_en,Count0_out)
begin
if (Result_en == 1)
    Result = Count0_out[15:0];
else
   Result = Count0_out[31:16];
end
发表于 2010-3-30 21:35:54 | 显示全部楼层
想采样保持的话,就得用时序电路了,你现在写的是组合逻辑是瞬时变化的,改成时序电路就OK了
always @ (posedge clk or negedge rst_n)
  if (!rst_n)
   Result <= 16'h0;
   else if (Result_en)
      Result <= Count0_out[15:0];
     else
        Result <= Count0_out[31:16];
 楼主| 发表于 2010-3-31 11:29:21 | 显示全部楼层
Count0_out变化的频率比较高,基本上和clk差不多。
这样的clk作为敏感变量的话,使得result的变化频率和clk一样,就起不到采样保持的作用了。

在result_en高电平时候,result还在不断变化
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-12-30 02:49 , Processed in 0.029862 second(s), 9 queries , Gzip On, Redis On.

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