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

本文介绍了SSN(同时切换噪声)分析的基本概念及其在FPGA设计中的应用。SSN分析能够帮助设计人员评估I/O Bank中输出状态转换时对其他输出端口产生的干扰,并通过调整设计参数来优化噪声性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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”可以查看温度等级。

智能网联汽车的安全员高级考试涉及多个方面的专业知识,包括但不限于自动驾驶技术原理、车辆传感器融合、网络安全防护以及法律法规等内容。以下是针对该主题的一些核心知识解析: ### 关于智能网联车安全员高级考试的核心内容 #### 1. 自动驾驶分级标准 国际自动机工程师学会(SAE International)定义了六个级别的自动驾驶等级,从L0到L5[^1]。其中,L3及以上级别需要安全员具备更高的应急处理能力。 #### 2. 车辆感知系统的组成与功能 智能网联车通常配备多种传感器,如激光雷达、毫米波雷达、摄像头和超声波传感器等。这些设备协同工作以实现环境感知、障碍物检测等功能[^2]。 #### 3. 数据通信与网络安全 智能网联车依赖V2X(Vehicle-to-Everything)技术进行数据交换,在此过程中需防范潜在的网络攻击风险,例如中间人攻击或恶意软件入侵[^3]。 #### 4. 法律法规要求 不同国家和地区对于无人驾驶测试及运营有着严格的规定,考生应熟悉当地交通法典中有关自动化驾驶部分的具体条款[^4]。 ```python # 示例代码:模拟简单决策逻辑 def decide_action(sensor_data): if sensor_data['obstacle'] and not sensor_data['emergency']: return 'slow_down' elif sensor_data['pedestrian_crossing']: return 'stop_and_yield' else: return 'continue_driving' example_input = {'obstacle': True, 'emergency': False, 'pedestrian_crossing': False} action = decide_action(example_input) print(f"Action to take: {action}") ``` 需要注意的是,“同学”作为特定平台上的学习资源名称,并不提供官方认证的标准答案集;建议通过正规渠道获取教材并参加培训课程来准备此类资格认证考试
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值