×

Loading...
Ad by
  • 最优利率和cashback可以申请特批,好信用好收入offer更好。请点链接扫码加微信咨询,Scotiabank -- Nick Zhang 6478812600。
Ad by
  • 最优利率和cashback可以申请特批,好信用好收入offer更好。请点链接扫码加微信咨询,Scotiabank -- Nick Zhang 6478812600。

你这时钟貌似多个板子共享一条时钟线,这是很不好的设计,可能是问题的一个原因。上周末我画了一个图,后来忘了发:(如果你在FPGA CLK IN看到上升沿有一个寄生脉冲,那么这是麻烦,相当于引入附加时钟,这是因为你的时钟送给多个板子,到达板A的时钟在终端反射

如果只有一个板子A,那么这个反射回到源器件,反射回来,这就是over/undershoot,你现在多个板子时钟线连一起,那么A板反射信号会travel到B板FPGA输入,与时钟源来的信号叠加,反射信号有一点延迟,在传输线上电子信号按光速传输,但是对于高速信号,光速在几寸铜线上的延迟也要考虑的,我画在右上角,红线是两个信号叠加的情形,那么如波形所示上跳沿就会吃掉一点,形成一个glitch,这很麻烦,过去的低速FPGA器件,可能对这个glitch不敏感,反应不过来,反而没事,新器件速度高,会把这个glitch当作一个时钟,那么你的电路就误动作了。

更好的(或者说正确的)时钟分配设计是给每个负载(板子)单独的时钟线,布线是point to point,我在图下部画了,用buffer把各个时钟隔离开,74LVT244之类的,buf输入的分叉要很短,把上面所说的反射效应减小最低。Buffer的输出一般驱动能力很强,那么还会出现over/undershoot,这种冲击很不好,除了上面大师说的电磁辐射/干扰EMI需要考虑,这些冲击长期作用接收器件,输入端长期接收高于供电电压或低于地电压的信号,会逐渐损坏,影响寿命。所以在时钟传输线上都要加串行电阻,使得传输线阻抗与负载接收器输入阻抗匹配,减小反射,消除over.undershoot。

我觉得你的时钟可能是优先级较高,需要解决的问题。仅供参考。

俺不在大多地方,打电话不方便,抱歉

Report

Replies, comments and Discussions:

  • 工作学习 / 学科技术讨论 / 请教个硬件的问题。公司原来有个板子用个5V的FPGA,现在芯片淘汰了,用个xilinx的3.3V的XCR3064XL代替,这个芯片接到ISA总线的7Mhz的时钟上,芯片里面对这个时钟进行了分频,
    但是用示波器观察会经常发现这个分频的信号错位,比如说某个脉冲宽度突然增加啦,或者有一两个很小的毛刺,观察了芯片的电源也没看出来什么问题,时钟信号的波形也挺好,现在是想会不会是因为始终信号的上升沿和下降沿(大概30ns)太慢了导致问题产生,有这个可能么?
    • 新的Die(半导体模块)一般比旧的Die速度要快,分频电路中的锁存器 flip-flop输入D与时钟沿有一个hold time,旧片子时钟进入芯片有I/O Buffer,引入较长延迟,这样flip-flop数据D准备好了时钟才来锁存;新die IO buf比较快,数据到时钟来临的hold time太短,数据没准备好
      时钟就latch了,就出现小的毛刺或者干脆锁存不到数据,就是缺脉冲

      如果你能改 FPGA Design,把分频电路时钟从上跳沿触发改下跳沿触发,或者相反,或者重新设计成避免egde竞争的设计,有现成的可以抄的,试试。若不能改电路,基本没招,你可以选一个速度慢的芯片,XCR3064XL后边还应有speed grade吧,选更慢的,比如 -6的改成-10的
      • 谢谢,我们现在用的就是最慢的-10的,不过我没明白,改成下降沿触发有什么区别呢?
        • 借个图说1下。关键,是要时钟的触发沿(rising of falling)躲开输入DA的changing period,DA稳定了,触发输出才是稳定的。你看见的毛刺,说明触发时input (DA) is changing
          • 这个图是两个时钟,我实际上只用一个时钟做了一个8位的计数器,然后把其中的一位作为输出clock信号给其他的. 假设用第5位作为输出吧,那么正常每16个时钟翻转一次,可是我用示波器就捕捉到了17个时钟的时候才翻转。
            • 那张图我也是网上借的,是说明你的计数器输入与时钟之间的时序出现问题,hold time不够。没有你的设计不好具体说了,举个例子,假设你用的同步计数器,你的设计是从0计数到15然后组合逻辑生成清零信号,等下一个时钟沿把计数器清零,继续计数,假如,时钟来得快,这个清零
              信号没有ready,那么下一个时钟(第16个时钟)来了就什么也没发生(继续计数),直到第17个时钟来了,才识别清零信号,把计数器清零,这样你就看到是17个时钟才翻转。——这只是一种可能,如果你有simulation工具,仔细模拟一下,检查计数器各个触发器输入(包括数据D、同步片选CE、清零R、置位S),状态changing的时候与CLK的时序关系,如果很近,有没有被CLK Miss的情况。
          • 前些日子一直用个100Mhz的示波器,看着时钟信号都一样,没啥变化,今天换了个250Mhz的示波器,发现在时钟上升下降沿很抖的时候反而工作更好,就算有1v的over/undershoot都没关系,但是很多板子都用同样的时钟信号,板子多了时钟上升下降变慢,反而不稳定了
            • 你说的触发问题, 原理上讲, 在某个电平以上为高,某个电平以下为低, 不同工艺的电路,即使供电电压相同, 阈值也不一样, 不要说不同的供电电压了; 数字电路, SLOPE 越大越稳定, 所谓过冲那是因为你的电路设计及布线有问题(阻抗不匹配), 也可能是你示波器使用不当引起.
              • 对于“数字电路,slope越大越稳定”的说法不大赞同,请看链接里的white paper from Altera.
                • 楼上说的“SLOPE 越大越稳定“是对的。现在数字电路设计没有不考虑EMI的,脉冲越SHARP,干扰越大,脉冲越SMOOTH,干扰越小。从电路设计来说,高时钟电路脉冲的上升沿(与下降沿无关)决定了Performance and interference两方面,是一对需要兼顾的矛盾。。。
                  • 脉冲越SHARP,高频成分越多,干扰越大,没错。不过现在数字电路的频率越来越高,核心频率都到了RF范围了,这个slope实在是没有多少空间了。还有就是工艺的统计特性也越来越总要。现在的这些高频电路,电路板(都成了电路的一部分了)都需要用EM的软件来分析。
                    • “电路板(都成了电路的一部分了)“,没错!现在手机的CPU主频已经达到1GHz以上,PCB的设计难度已经超越了电路设计,很多Decoupling and shielding even antenna都是由PCB实现的 。BTW,Slope的作用越是高频越明显,任何带宽内的波形你都会找到Slope的。。。
                • 同学, 你真的看懂了这张图吗?还是你没明白我说的什么?图里要表达的就是我说的.
            • 看时钟信号用频谱分析更清晰,建议用Spectrum Analyzer来观察。。。
              • 这个我明天接了看看。thanks
              • 看了一下,公司的频谱分析仪太老了,最高才25.5KHz
            • 你这时钟貌似多个板子共享一条时钟线,这是很不好的设计,可能是问题的一个原因。上周末我画了一个图,后来忘了发:(如果你在FPGA CLK IN看到上升沿有一个寄生脉冲,那么这是麻烦,相当于引入附加时钟,这是因为你的时钟送给多个板子,到达板A的时钟在终端反射

              如果只有一个板子A,那么这个反射回到源器件,反射回来,这就是over/undershoot,你现在多个板子时钟线连一起,那么A板反射信号会travel到B板FPGA输入,与时钟源来的信号叠加,反射信号有一点延迟,在传输线上电子信号按光速传输,但是对于高速信号,光速在几寸铜线上的延迟也要考虑的,我画在右上角,红线是两个信号叠加的情形,那么如波形所示上跳沿就会吃掉一点,形成一个glitch,这很麻烦,过去的低速FPGA器件,可能对这个glitch不敏感,反应不过来,反而没事,新器件速度高,会把这个glitch当作一个时钟,那么你的电路就误动作了。

              更好的(或者说正确的)时钟分配设计是给每个负载(板子)单独的时钟线,布线是point to point,我在图下部画了,用buffer把各个时钟隔离开,74LVT244之类的,buf输入的分叉要很短,把上面所说的反射效应减小最低。Buffer的输出一般驱动能力很强,那么还会出现over/undershoot,这种冲击很不好,除了上面大师说的电磁辐射/干扰EMI需要考虑,这些冲击长期作用接收器件,输入端长期接收高于供电电压或低于地电压的信号,会逐渐损坏,影响寿命。所以在时钟传输线上都要加串行电阻,使得传输线阻抗与负载接收器输入阻抗匹配,减小反射,消除over.undershoot。

              我觉得你的时钟可能是优先级较高,需要解决的问题。仅供参考。

              俺不在大多地方,打电话不方便,抱歉

              • 我这个板子是用在一个系统里,大家共享总线信号(PC104, ISA的一种变化),可能开始没说清楚,实际上只有CPU板和我这个板子的话,分频器工作没问题。总线上有多个板子的时候,某些配置上产生问题,
                以前用一般的示波器看,时钟还不错的样子,也没想到CPU板提供的clock上升沿有那么快,上周用了更好的示波器才想到这个问题,上周五用了一个专门的PC104建议的termination板接在总线上,系统工作的好些,但还是有问题,今天上午在clock和地线之间接了个39ohm和39pc的RC,也算是一种termination 吧,和你说的有些区别。下午测试了两个板子,每个接近2个小时的样子,还没出现问题,其中一个板子准备运行一个晚上看看,如果没问题,基本就这样了。
                • 在负载端接RC也是一种办法,但是用于时钟线接一块,板子插多了仍然互相干扰,在各种组合条件下仔细调整R和C的值,然后检查各个板波形吧,可能比较繁琐。你那个PC104总线规范有建议的设计电路吧?我记得ISA插卡的个数有限制的,在插卡上从连接器输入的信号都经过buffer整形的
                  有可能按照规范recycle PCB吧
                  • 这是个可选项,规范没有强制。As in the P996 specification, the recommended network consists of a resistor-capacitor network of 40-60 ohms in series with 30-70 pF, connected between each bus signal and ground.
                    Whether termination is needed, and where it should be located, is dependent on the specific system configuration and must be determined by the system designer.
                    CPU板是外面买来的,没办法改动,其他的板子公司也不会让随便动的,就是我现在弄的这个板子也是因为原来的FPGA市场上都没货了,才进行更新的。