Vivado使用技巧(16)——SSN转换噪声分析

SSN概述
SSN(Simultaneously Switching Noise)分析可以估计I/O Bank中管脚在同时转换输出状态时对其它输出端口造成的干扰。这是一个常见的问题,许多总线有大量的位宽,当总线数据有多位同时变化时,很容易在其它I/O上产生噪声。比如数字电路设计中倾向于使用格雷码编码,正是因为两个相邻的数字用格雷码表示时只有1bit的差异,使得同时转换噪声最小。

SSN分析会将I/O Bank的规格电气特性考虑在估算中,以获得更准确的模型封装对SSN的影响。我们知道FPGA中将I/O隔离地分布在多个I/O Bank中,每个I/O Bank都有独立的电源分布和独立的同时转换响应。并且,不同的电源分布网络对噪声有不同的响应,因此设计者需要理解不同I/O标准、设计中用到的I/O数量、FPGA电源系统对转换响应的影响。

Xilinx通过三维提取和仿真刻画了所有Bank的特征,这些信息会用于SSN分析中,预测转换对系统电源网络和I/O Bank中其它输出管脚的影响。SSN分析仅分析输出信号和双向端口的输出状态,计算中会忽略输入信号。SSN分析可以帮助设计者发现设计中潜在的噪声问题。

运行SSN分析
不是所有的FPGA都支持SSN分析,使用下面Tcl命令可以参看支持情况:
get_property SSN_REPORT [get_property PART [current_design]]
#查看当前打开的设计是否支持SSN分析
get_parts -filter "FAMILY == [get_property FAMILY [get_property PART [current_design]]] && SSN_REPORT"
#列出当前打开设计使用的FPGA系列支持SSN分析的所有型号

打开实现后设计,点击Tools->Report->Report Noise或Flow Navigator中 的Report Noise,弹出如下窗口:

Export to file可以将分析结果导入到外部CSV、HTML或TXT文件中。选中“Phase”,会在分析过程中考虑设计中可用的时钟信息(使用create_clock、create_generated_clock创建的时钟),以获得更精确的SSN噪声报告。分析完成后,结果显示在Noise窗口中:

左边的目录中选择查看哪种信息,如I/O Bank Details中包含如下信息:
Name:显示FPGA中可用的I/O Bank,图标显示了该I/O Bank中端口的使用量。如果分析不通过会显示红圈;
Port:显示用户I/O在FPGA设计中的名称;
I/O Std,Vcco,Slew,Drive Strength:显示I/O端口的参数值;
Off-Chip Termination:显示每个I/O标准的默认端接。比如FP_VTT_50表示远端并联50Ω的VTT端接类型;HSTL_1表示远端并联40Ω的VTT端口类型。具体的端接类型可以在ug471(7系列)和ug571(UltraScale系列)中查看;
Remaining Margin %:显示Bank中剩余的噪声裕量;
Notes:显示与I/O Bank相关的信息。

点击某一个 I/O Bank,可以在属性窗口中查看详细信息。如果SSN结果中有违规出现,可以尝试如下方法来改善SSN结果:
增加Phase信息进行分析;
将失败的I/O的电平标准更换为具有更低SSN影响的I/O标准。减小驱动强度,使用并行端接的DCI I/O标准,或者更换为更低的驱动等级都可以改善SSN结果,比如将SSTL Class II标准更换为SSTL Class I;
将失败的管脚分散在多个Bank中,可以减少在同一个Bank中多个输出管脚同时对电源系统造成影响;
将失败的管脚分散在多个同步阶段中(即所有输出端口不会同时转换)。

SSN分析中添加相位/温度信息
在SSN分析中加入相位信息,可以增加一些裕量。默认情况下,SSN分析所有的输出端口同步转换,这样覆盖了最坏的情况,得到最悲观情况下的SSN报告。如果假如了设计中的时钟信息,SSN分析可以报告更精确的SSN噪声。

时钟信息必须在约束中用create_clock和**create_generated_cloc**k定义,定义中需要提供相群(phase group)、周期、占空比、相移这些信息。如果在SSN分析时启用了Phase功能,相关信息会显示在报告窗口的Phase列中。但是增加了Phase功能后,会增加SSN分析的运行时间。

对于7系列和Zynq-7000系列的FPGA,还可以通过规定温度等级来提高SSN分析的精度。设置时注意选择与目标器件相符的温度等级。可以使用如下命令添加温度等级信息后,再运行SSN分析。
set_operating_conditions -grade Commercial
set_operating_conditions -grade Industrial
set_operating_conditions -grade Military
set_operating_conditions -grade Q-Grade
set_operating_conditions -grade Extended

UltraScale架构的FPGA芯片的名称已经包含了温度等级信息,因此再运行SSN分析时会自动调用。使用“report_operating_conditions -grade”可以查看温度等级。

文章来源:FPGADesigner的博客
*本文由作者授权转发,如需转载请联系作者本人

推荐阅读