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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 14910|回复: 39

[求助] sense-amplifier based flip-flop(SAFF) 亚稳态

[复制链接]
发表于 2012-11-12 20:28:30 | 显示全部楼层 |阅读模式

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

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

x
未命名.bmp
sense-amplifier based flip-flop,上半部分为sense-amplifier,下半部分的功能就类似于SR latch。R.B. STASZEWSKI用0.13um工艺进行设计,metastability window为几个ps,可是我用smic0.18um工艺设计metastability window总是在几十个ps的大小,降不下来。有没有人对这个电路的亚稳态问题比较了解,指点一下,谢谢!

我是这么分析的:当CLK为低电平时,Sb和Rb预充到高电平;当CLK跳变为高之后,Sb或Rb放电,得到相应输出。若D和Db在CLK跳变为高之后才跳变,假设D跳变为高,Db同时跳变为低,则Rb先放电;当D跳变为高,Db跳变为低后Rb停止放电,Sb一边导通。若此时Rb较高,则Sb放电,Mp3管将Rb拉高,进一步促进Sb降低;而若Rb足够低,则Sb一路不能导通,或Sb放电所能达到的电平较高,Mp3不导通,Rb维持低电平,Sb维持高电平,这样输出错误。因此我觉得增加Mp2和Mp3的W/L可以降低metastability window,Rb的较小的变化就可以引起Sb的较大变化,但仿真好像没有效果。我也试着增加过尾电流、Mn3和Mn4,但似乎metastability window始终没什么变化。不知道大家是怎么分析的,谢谢!
发表于 2012-11-12 23:00:28 | 显示全部楼层
metastability
发表于 2012-11-13 12:46:24 | 显示全部楼层
你跑的是什么corner?
什么叫做metastability window?
 楼主| 发表于 2012-11-13 13:24:40 | 显示全部楼层
回复 3# vdslafe

    就是跑的TT工艺角,1.8V电源电压。这个都不对,其它的还没跑
    metastability window我看文献中好像就是说,先确定一个延迟允许的最大值,如400或500ps,然后分别让信号在时钟之前和之后跳变,即考虑setup和hold两种情况,找到相应的两个点,当信号跳变沿与时钟跳变沿的距离在这两个点所确定的范围内的时候,延迟超过所允许的最大值。这两个点之间的距离就是metastability window
    一篇文章中的metastability window是这么讲的:Metastability window, delta, can be defined as the period where data transition will not be resolved within a given resolution time (tr).
    R.B. STASZEWSKI用0.13um工艺设计的结果如图
未命名.bmp
这幅图没有详细的解释,我的理解就是左半部分曲线是测setup time情况,右半部分曲线是测hold time情况,不知道正不正确?我现在就想做出类似的结果,但是我的metastability window总是小不下来
发表于 2012-11-13 14:35:11 | 显示全部楼层
你仿真的时候是怎么跑的?
 楼主| 发表于 2012-11-13 15:14:24 | 显示全部楼层
回复 5# vdslafe


    在CLK、D和Db这三个输入端上各加了一个vpwl源,D和Db之间全差动。跑tran仿真,扫描D和CLK上升沿之间的距离,这个距离的扫描范围取0~200ps(D上升沿在CLK上升沿之后),看输出Q。tran仿真跑了2us,后来又试过5us,发现好像只要仿真时间足够长,输出Q总可以得到正确的结果,比如我跑2us,两个上升沿为40ps的时候输出错误,但是跑5us可能发现3、4个us的时候输出又正常了...现在一头雾水啊!
发表于 2012-11-13 15:22:29 | 显示全部楼层
一般看第一个cycle 出错就是出错了。不能看后面的,因为你的reset 不是理想的
 楼主| 发表于 2012-11-13 15:41:26 | 显示全部楼层
回复 7# vdslafe


    我用的不是周期信号源,是vpwl电压源,可以在D和Db上实现一个单独的上升或下降沿。我仿真发现在我扫描的范围内,好像仿真时间足够长,输出就可以得到正确结果,比如仿setup time,D正跳变,Db负跳变,可能跑2us的仿真,输出Q保持低电平,我原来认为是违反了setup time,输出错误,但是把仿真时间增加到5us,发现在3或4个us的时候输出又上升了,弄得我都不敢确定应该仿真多长时间了
发表于 2012-11-13 15:49:09 | 显示全部楼层
把仿真图发出来,要不实在无法理解。
任何comp 只要给足够时间都能翻转。
 楼主| 发表于 2012-11-13 16:25:37 | 显示全部楼层
回复 9# vdslafe


    setup time.bmp
这是setup time仿真情况,D在CLK之后35ps从0跳变到1,Q初始值为0,可以看到CLK跳变之后大约20ns,Q跳变到1。若D的跳变沿再向后,Q可能在几个us处跳变到1,说明Rb刚开始被放电到低电平,最终在20ns甚至几个us后被来回高电平,同时Sb降为低电平。
hold time.bmp
这是hold time仿真情况,D在CLK之后40ps从1跳变到0,Q初始值为0,可以看到Q先跳变到1,这是正确的输出,但是之后又跳变回0,。若D的跳变沿再向后,Q可能在几个us处跳变回0,说明Sb刚开始被放电到低电平,这一低电平甚至足够使Q上升为高电平,但是一段时间后,甚至几个us后,Sb又被拉回高电平,同时Rb降为低电平。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-5-22 15:00 , Processed in 0.030163 second(s), 8 queries , Gzip On, Redis On.

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