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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 363|回复: 1

[求助] 上升沿检测和下降沿检测怎么看

[复制链接]
发表于 2024-12-6 15:39:38 | 显示全部楼层 |阅读模式

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

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

x
//这里对上升沿标志和下降沿标志进行了定义,3r为2r的上一状态
assign dq_neg = ~dq_in_2r &  dq_in_3r ;//下降沿检测
assign dq_pos = dq_in_2r &  ~dq_in_3r ; //上升沿检测
//dp_0_cnt为对低电平计数,代码显示未出现下降沿清零,这里很不和逻辑。按理说新出现的电平是高电平,计数应该清零,根据以上定义,对应的2r为
高电平,3r为低电平,应该是对dp_pos进行判断而不是dp_neg
       if (main_state == DIG_MODE) begin
        if (dq_neg) begin
          dq_0_cnt <= 12'h000 ;
        end         
        else if (!dq_in_3r) begin
          if (dq_0_cnt < RST_NUM) begin
            dq_0_cnt <= dq_0_cnt + 12'h001 ;
          end
        end
      end
      else begin
        dq_0_cnt <= 12'h000 ;        
      end
//以下代码为先对高电平进行计数,直至出现低电平时进入下一状态,根据边沿检测定义,对应的2r为低电平,3r为高电平,应该是对dp_pos进行判断。
代码也是按这样推断进行的。
PRESENCE_H : begin//只能由待机状态进入PRE_H状态
              if (dq_neg) begin
                if (dq_1_cnt >= PRE_H_NUM ) begin
                  bus_state <= PRESENCE_L;
                end
                else begin
                  bus_state <= IDLE ;
                end
              end
            end
以上代码都是出自一个veriliog文件
综上:怀疑这里的边沿检测出现了矛盾,有大佬可以解释一下吗,万分感谢!!!






发表于 2024-12-9 11:39:38 | 显示全部楼层
多画画时序就看出来了,dq_in应该是一个低电平很长的信号吧,下降沿清0,然后对低电平进行计数
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-12-25 16:06 , Processed in 0.017248 second(s), 8 queries , Gzip On, Redis On.

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