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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 10570|回复: 18

[求助] 如何自动检测毛刺 ?

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

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

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

x
不知道大家在验证中如何检测毛刺的?比如,一个clock分频电路,我需要检查在频率切换时是否有毛刺出现,我一般是肉眼去查看,不知道大家如何实现自动检查的?
发表于 2014-1-7 14:24:05 | 显示全部楼层
以前写过这个checker,但是会导致仿真变慢,我当是依据的原理就是循环的检测两沿之间的时间差,和你能够容忍的最小时间差做比较,当是感觉这个checker不是太好用,也没有想过有没有更好的办法
发表于 2014-1-7 15:00:59 | 显示全部楼层
本帖最后由 A1985 于 2014-1-7 15:04 编辑

回复 1# drysky


   毛刺通常在切换的时候有,你可以监控切换配置的控制脚,然后log,断言或其他方法检查一小段时间即可,这样减少负重。。。
 楼主| 发表于 2014-1-7 15:10:56 | 显示全部楼层
回复 2# dfb211


   我也这么干过,不是很好的办法。    不知道那位大神有好的办法?
发表于 2014-1-7 16:57:49 | 显示全部楼层
这个是要靠设计来保证的,不能靠调试来找毛刺。
如果说一定要找个方法,那么你可以做个计数器,对时钟计数,直接看计数值是不是连续比拿眼睛看毛刺靠谱。

如果想做到自动化, 可以再用一个高倍快速时钟去采样,看看同一计数值持续的时间是不是达标, 有不达标的情况就是有毛刺了。
发表于 2014-1-7 23:21:04 | 显示全部楼层
回复 5# surge


   如果加入一个高倍时钟采样要检测的时钟,这会让仿真的负荷加重吧?
 楼主| 发表于 2014-1-8 09:48:26 | 显示全部楼层
回复 6# dfb211

加高倍时钟的话,光这个频率的选择就是个很头疼的事,比如1GHz的clcok,再弄个几G的clcok,估计仿真就没法仿了。
 楼主| 发表于 2014-1-8 09:52:02 | 显示全部楼层
回复 3# A1985

这个主意还不错~缺点是,需要事先判断毛刺可能出现的位置,这样有可能判断不是那么全面。

感觉systemverilog应该增加一个自动统计高低电平持续周期的内部函数。。通过输出的周期大小与期望值做个比较。
发表于 2014-1-8 11:01:05 | 显示全部楼层
用 systemverilog 的 assertion
property detect_glitch;
time leading;
@(posedge glitch)
(1, leading = $time) |=> (($time - leading) >= duration);
endproperty : detect_glitch

DETECT_GLITCH : assert property (detect_glitch)
else
$display ("ERROR");
 楼主| 发表于 2014-1-8 15:01:54 | 显示全部楼层
回复 9# kuolifeng


   这个不错!thanks
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

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

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