Vivado使用技巧(16):SSN轉換噪聲分析

FPGADesigner發表於2018-08-21

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”可以檢視溫度等級。

相關文章