对输入信号边沿检测有什么好办法没
目前片子的问题貌似是边沿检测不稳定,时好时坏
怎么个时好时坏,描述一下?
输入信号是sync信号吗?生成的是单个cycle的脉冲?
后端timing情况看过吗?
呵呵
你说的是对的
对数字处理来讲
但是lz遇到的情况,我猜不是这个样子的
具体出了什么问题,得让lz自己才能说清楚
标题和你想表达的意思不符啊 ,是否是应该逻辑正确的边沿检测在芯片表现异常
逻辑没错的话 p&r后的sta查一下 再后仿看看timing
如果可以换个仪器做clock源试试
我认为可能逻辑上正确是一回事,实际片子上能不能工作是另一回事,理论和实际之间总是有点差别的,所以想问问实际电路中要实现边沿检测有没有特别要注意的;时序应该没有问题,同步电路,就一个时钟信号,32k晶振来的。回头换信号源外加时钟试试
你是不是检测这个外加的输入信号的边沿,然后利用这个沿做处理?其他信号与这个沿的关系是怎么样的?
最好画个图把你问题描述清楚,这样大家才好给你出主意
里面带PLL吗?
工作时钟就是32k的话,timing轻易不会有问题的
建议你从下面几个地方检测一下:
1.这个边沿检测是不是受寄存器控制,若受控看是不是寄存器值在发生跳变
2.是不是测试方法的问题,有时候板子上阻抗问题处理不好,测试探头对你的输入信号也有影响
3.看是不是电路系统板上的设计问题,如晶振不稳定、ESD等等
没有PLL,结构很简单,输入信号进两级触发器,结果做异或输出。昨天试了一下,如果我用芯片的其他输出信号返回来作为这个输入信号,则一定能检测到边沿。因为之前不稳定时,外加的输入信号是手动给的,所以我怀疑是和输入信号的同步异步有关,难道要多打几拍?
你是哪两级信号做的异或?
外部信号进来至少要两拍之后的信号才可以用。
如果你要检测边沿,至少要用第二拍和第三拍出来的信号异或
1. 保证同步正确
2. 增加去抖动逻辑,增加鲁棒性
3. 排除IO,板级等外部因素
估计是异步信号进来没有先做同步就直接异或了
我是直接用第一级和第二级的信号了,目前看来,大概是这个问题了,有待后面详细的验证分析;
多问一句,如果是这样的话,所有的输入信号,只要不是来自同步时钟,岂不是都存在这个问题?难道都要打两拍?
多谢。看来是同步性的问题;去抖动逻辑是指板上的还是,如果是板上,那已经做过了,外面有电容滤波;板子较简单,除非是电路的IO那除了毛病,不过因为是成熟的工艺,常用的IO结构,几个片子都存在这个现象,IO上出问题的可能性太小。
也得分情况
比如外部输入的信号也有同一时钟域的
再比如外部输入不怎么变化的电平控制信号
检测边沿的,内部不同时钟域的,也得打两拍吧
更何况外部输入的,由异步处理不当导致的问题太多了
了解了,看来还是要对敏感信号特别处理才行。
应该是这个原因了
芯片外部的进来的异步信号都打两拍再用;头一拍的数据处于亚稳态概率很高,所以会有你遇到的这种问题。