SI(signal integrity)中的常见信号质量问题:
A:过冲
分为上过冲跟下过冲。
危害:对器件造成冲击进而损坏器件。
可能原因:相邻信号串扰;器件驱动能力太强;没有匹配或者匹配不当。
解决建议:PCB布线避开干扰源和耦合路径;能够稍微降低器件的驱动能力;增加阻抗匹配。
B:振铃(与过孔相对应):
C:毛刺(噪声):
危害:如若被采样到,将导致错误的结果。
产生原因:PCB走线串扰(例如数据线和时钟线并行走线较长,信号线放置在晶振等干扰源附近);外接干扰(如地线噪声等);逻辑出现竞争冒险;
解决建议:控制器件布局和PCB走线,信号远离干扰源;添加去耦电容或输出滤波,滤波器件尽量靠近信号管脚;逻辑设计中调价冗余项,或者采用同步逻辑设计,避免竞争冒险。
D:回勾(台阶):
危害:对于时钟信号、电源信号、数据信号的影响都是不可忽略的。具体危害还是要看容限跟具体情况。
产生原因:匹配不当,信号反射回来形成回勾。
解决建议:增加合适的匹配。
E:边沿缓慢:
危害:造成采样错误
产生原因:驱动能力不够或者负载过大
解决建议:提高驱动能力;减小负载
F:建立、保持时间(Setup time & Hold time)
建立保持时间是一个时序的概念。通常把单板的数字信号分为控制信号、时钟信号、地址信号、数据信号等,
时序关系就是这些信号间的相互关系。判断时序关系主要有两个指标:建立时间和保持时间。
如下图,建立时间就是指在触发器的采样信号(这个采样信号通常是指时钟)有效之前,数据已经稳定不变的时间;而保持时间是指采样信号有效之后数据保持稳定不变的时间。
类型 | 建立时间 | 保持时间 |
---|---|---|
图例 | ||
缺点(危害) | 建立时间不够,读到的数据会是一个不稳定的数据,可能会采样错误 | 保持时间不够,读写数据处理过程中同样可能读写到错误数据 |
产生原因 | 设计时没有考虑清楚,设计出错。或者没有考虑到设计容限范围,在某些异常情况下(例如温度变化使得器件参数漂移)建立、保持时间不够。 | |
解决建议 | 1、 设计时把时钟从FPGA/CPLD中引出,在设计裕度不够时可以调节;2、 对于时钟边沿采样信号,尽量使得采样时钟边沿在数据的中间,这样尽管器件参数漂移,设计上还是有较大的裕度。 |