FPGA设计需注意的方方面面
时间:07-03
来源:互联网
点击:
FPGA设计需注意的方方面面
目前市场上有几百种关于信号完整性和降噪的书。如果你是个新手或者需要一个进修课程,你可以考虑阅读Douglas Brooks编写的“信号完整性问题和PCB设计”。如果需要进行更深入的探讨,可以阅读Howard Johnson编写的“高速数字设计”。
FPGA可能会由于太多的高速SSO而对系统中的信号(或其它FPGA信号)带来严重破坏,因为这会导致称为同时切换噪声(SSN)的噪声。SSN也叫做地反弹或VCC反弹,对于单端标准,SSN是在输出由低到高时提供瞬态电流和由高到低时吸收瞬态电流的过程中,由多个输出驱动器同时切换和导致器件电压与系统电压之间的变化而引起的。
在高到低的转换引起地反弹时,由低到高转换也会导致VCC下降。由于电容通常安放在VCC和接地层之间,因此SSN典型地存在于这两个地方。由低到高转变时地反弹也有可能出现。 于是,SSO变成了干扰信号,它会产生可能耦合到邻近信号的噪声。对于某个区域而言太多SSO可能会导致电源的扰动。由于以下2个原因,SSO已经变成一个必须认真对待的问题:1. 切换时间大幅下降;2. 过孔尺寸和走线宽度的减小加上更大的板厚度已经推高了板极电感,这将大幅增加出现地反弹的可能性。更大的负载电容也可能导致SSN,虽然程度上会轻一点。当有效VCC低于期望值,从而导致I/O缓存的转换速度低于期望速度时,SSN也可能导致时序问题变得突出起来。
有几个方法可以减小SSN。有些器件只需通过限制I/O标准的选择就可简化这个问题,但不是所有器件都能这么做。一些供应商建议将高速总线输出分布到整个裸片上,如果SSN是你唯一关注的问题,那么这绝对是一个很好的建议。不过,如果按照这个建议去做,有2个基本问题将会冒出来。
首先,这可能会带来下游布通性问题,因为将信号散布到整个裸片上经常会引起更多的走线交叉。而这就导致需要更多的信号布线层。其次,大多数设计在散布信号前也要求进行仔细研究,因为当一个总线散布到特定的块或区外时会引起块/区间的兼容性问题。因此,如果你能在考虑布通性的同时,小心地将一个较小的总线分布到一个或两个块/区域内,那么系统将会工作得很好。
如果你被一个具有相邻高速切换输出的设计所困扰,有好几种技术能帮助你解决潜在的SSN问题。首先对你的设计进行合适的布局和去耦合。对于去耦合,使用距离尽可能近的电源和地平面对,中间用一个SMT电容隔开。使用SMT电容进行去耦合也有助于减小电感,而电感是产生系统噪声的一个主要因素。
如果你仍然觉得需要使用去耦电容(为了减小SSN),应该使得这些电容的位置尽可能靠近高速输出引脚。Altera的一项研究发现,如果这些电容到引脚的距离大于1英寸,在使用适当的SMT电容去退耦时,这些电容变得效率极低。其他减小SSN或者其可能产生影响的建议包括:避免将敏感信号(复位、时钟和使能等)位于SSO附近;可能时,使用较小偏移的输出和使用最低电感的过孔;通过在合适位置插入延时使得输出信号交替出现。即使已经完成了PCB的生产,这个建议仍然可以应用。
参考将被连接到FPGA上的器件的相关资料。对于每个器件,确定最大输入低电压门限(单位毫伏)。这是FPGA驱动该器件需要的最大电压,所以该设备仍然可以检测到一个有效逻辑低状态(最大VIL值)。同样,还要确定器件可以容忍且能继续工作的最大输入负脉冲信号(单位毫伏)。
在某些情况下,最大容许的地反弹可能不是或者不仅是以上给出的值。而是要通过获得最大输入低电压门限的最小值、最大输入负脉冲信号、或者所有器件的最大地反弹来确定最大的系统地反弹。
然后,根据具有相似负载特点的网络连接的数目和种类对类似的FPGA总线进行分组。接着研究每个部分、区域或者块的电源和接地引脚数目,还有对于所使用的每个I/O标准,每个电源和接地管脚对所允许的SSO数目。这些数目可以用于计算每个组的总电容负载和每个输出驱动的电容,以确定可以容忍的SSO最大值。
你也应该咨询供应商以确定基于每个块和每一对块你是否超过了推荐的SSO数目,前提是供应商已经研究了这些问题。同时,因为有多个因素会导致SSN,所以最好建立一个具有内置抗噪声性能的鲁棒系统。否则,就使用针对每个引脚限制I/O标准的器件,这样就可以减少可能的SSN问题。
差分信
在FPGA设计中,你可能会发现对差分信号的处理存在最多的争议。类似于SSN,最好从供应商、书籍和用户群获得尽可能多的信息。同时,在确定某个方案前咨询你的布局部门以了解他们推荐的建议和信息。
主要争论开始于差分信号对是否应该采用宽边耦合还是边缘耦合,以及每对之间到底应该存在多少耦合。答案通常是“根据具体情况确定”,所以需要进行具体研究。
如果你不能确定对于一个单端信号为什么需要选择差分I/O标准,答案很简单。使用差分信号,你几乎可以完全控制信号的回路。因为这是信号对的一部分,而且理论上在任何一个接地(或者电源)平面上不应该出现来自信号对的电流。
这里假设走线对具有相等长度,布设在相邻区域且间距不变,走线阻抗恒定且匹配。此外,利用单端信号,你很难控制信号回程,而且测试一个信号的返回也可能徒劳无益。
差分信号的主要缺点是他们需要两根走线彼此临近。当在一个PCB上分配几百个差分信号时这可能是个难点。
以下课程可免费试听C语言、电子、PCB、STM32、Linux、FPGA、JAVA、安卓等。
想学习的你和我联系预约就可以免费听课了。
宋工企鹅号:3524-6590-88 Tel/WX:173--1795--1908
目前市场上有几百种关于信号完整性和降噪的书。如果你是个新手或者需要一个进修课程,你可以考虑阅读Douglas Brooks编写的“信号完整性问题和PCB设计”。如果需要进行更深入的探讨,可以阅读Howard Johnson编写的“高速数字设计”。
FPGA可能会由于太多的高速SSO而对系统中的信号(或其它FPGA信号)带来严重破坏,因为这会导致称为同时切换噪声(SSN)的噪声。SSN也叫做地反弹或VCC反弹,对于单端标准,SSN是在输出由低到高时提供瞬态电流和由高到低时吸收瞬态电流的过程中,由多个输出驱动器同时切换和导致器件电压与系统电压之间的变化而引起的。
在高到低的转换引起地反弹时,由低到高转换也会导致VCC下降。由于电容通常安放在VCC和接地层之间,因此SSN典型地存在于这两个地方。由低到高转变时地反弹也有可能出现。 于是,SSO变成了干扰信号,它会产生可能耦合到邻近信号的噪声。对于某个区域而言太多SSO可能会导致电源的扰动。由于以下2个原因,SSO已经变成一个必须认真对待的问题:1. 切换时间大幅下降;2. 过孔尺寸和走线宽度的减小加上更大的板厚度已经推高了板极电感,这将大幅增加出现地反弹的可能性。更大的负载电容也可能导致SSN,虽然程度上会轻一点。当有效VCC低于期望值,从而导致I/O缓存的转换速度低于期望速度时,SSN也可能导致时序问题变得突出起来。
有几个方法可以减小SSN。有些器件只需通过限制I/O标准的选择就可简化这个问题,但不是所有器件都能这么做。一些供应商建议将高速总线输出分布到整个裸片上,如果SSN是你唯一关注的问题,那么这绝对是一个很好的建议。不过,如果按照这个建议去做,有2个基本问题将会冒出来。
首先,这可能会带来下游布通性问题,因为将信号散布到整个裸片上经常会引起更多的走线交叉。而这就导致需要更多的信号布线层。其次,大多数设计在散布信号前也要求进行仔细研究,因为当一个总线散布到特定的块或区外时会引起块/区间的兼容性问题。因此,如果你能在考虑布通性的同时,小心地将一个较小的总线分布到一个或两个块/区域内,那么系统将会工作得很好。
如果你被一个具有相邻高速切换输出的设计所困扰,有好几种技术能帮助你解决潜在的SSN问题。首先对你的设计进行合适的布局和去耦合。对于去耦合,使用距离尽可能近的电源和地平面对,中间用一个SMT电容隔开。使用SMT电容进行去耦合也有助于减小电感,而电感是产生系统噪声的一个主要因素。
如果你仍然觉得需要使用去耦电容(为了减小SSN),应该使得这些电容的位置尽可能靠近高速输出引脚。Altera的一项研究发现,如果这些电容到引脚的距离大于1英寸,在使用适当的SMT电容去退耦时,这些电容变得效率极低。其他减小SSN或者其可能产生影响的建议包括:避免将敏感信号(复位、时钟和使能等)位于SSO附近;可能时,使用较小偏移的输出和使用最低电感的过孔;通过在合适位置插入延时使得输出信号交替出现。即使已经完成了PCB的生产,这个建议仍然可以应用。
参考将被连接到FPGA上的器件的相关资料。对于每个器件,确定最大输入低电压门限(单位毫伏)。这是FPGA驱动该器件需要的最大电压,所以该设备仍然可以检测到一个有效逻辑低状态(最大VIL值)。同样,还要确定器件可以容忍且能继续工作的最大输入负脉冲信号(单位毫伏)。
在某些情况下,最大容许的地反弹可能不是或者不仅是以上给出的值。而是要通过获得最大输入低电压门限的最小值、最大输入负脉冲信号、或者所有器件的最大地反弹来确定最大的系统地反弹。
然后,根据具有相似负载特点的网络连接的数目和种类对类似的FPGA总线进行分组。接着研究每个部分、区域或者块的电源和接地引脚数目,还有对于所使用的每个I/O标准,每个电源和接地管脚对所允许的SSO数目。这些数目可以用于计算每个组的总电容负载和每个输出驱动的电容,以确定可以容忍的SSO最大值。
你也应该咨询供应商以确定基于每个块和每一对块你是否超过了推荐的SSO数目,前提是供应商已经研究了这些问题。同时,因为有多个因素会导致SSN,所以最好建立一个具有内置抗噪声性能的鲁棒系统。否则,就使用针对每个引脚限制I/O标准的器件,这样就可以减少可能的SSN问题。
差分信
在FPGA设计中,你可能会发现对差分信号的处理存在最多的争议。类似于SSN,最好从供应商、书籍和用户群获得尽可能多的信息。同时,在确定某个方案前咨询你的布局部门以了解他们推荐的建议和信息。
主要争论开始于差分信号对是否应该采用宽边耦合还是边缘耦合,以及每对之间到底应该存在多少耦合。答案通常是“根据具体情况确定”,所以需要进行具体研究。
如果你不能确定对于一个单端信号为什么需要选择差分I/O标准,答案很简单。使用差分信号,你几乎可以完全控制信号的回路。因为这是信号对的一部分,而且理论上在任何一个接地(或者电源)平面上不应该出现来自信号对的电流。
这里假设走线对具有相等长度,布设在相邻区域且间距不变,走线阻抗恒定且匹配。此外,利用单端信号,你很难控制信号回程,而且测试一个信号的返回也可能徒劳无益。
差分信号的主要缺点是他们需要两根走线彼此临近。当在一个PCB上分配几百个差分信号时这可能是个难点。
以下课程可免费试听C语言、电子、PCB、STM32、Linux、FPGA、JAVA、安卓等。
想学习的你和我联系预约就可以免费听课了。
宋工企鹅号:3524-6590-88 Tel/WX:173--1795--1908
FPGA PCB 电流 电压 电容 电感 总线 Altera C语言 电子 STM32 Linux 相关文章:
- 基于FPGA的片上系统的无线保密通信终端(02-16)
- 基于Virtex-5 FPGA设计Gbps无线通信基站(05-12)
- 基于FPGA的DVI/HDMI接口实现(05-13)
- 基于ARM的嵌入式系统中从串配置FPGA的实现(06-09)
- 采用EEPROM对大容量FPGA芯片数据实现串行加载(03-18)
- 赛灵思:可编程逻辑不仅已是大势所趋,而且势不可挡(07-24)