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”可以檢視溫度等級。
相關文章
- Vivado使用技巧(19):使用Vivado Simulator
- Vivado使用技巧(27):RAM編寫技巧
- Vivado使用技巧(26):HDL編寫技巧
- Vivado使用技巧(17):建立IBIS模型模型
- Vivado使用技巧(6):Messages視窗管理
- Vivado使用技巧(29):約束功能概述
- Vivado使用技巧(20):Waveform功能詳解ORM
- Vivado使用技巧(18):模擬功能概述
- Vivado使用技巧(33):時序異常
- Vivado使用技巧(25):Block Synthesis技術BloC
- 高斯噪聲模擬
- 感測器噪聲
- Vivado使用技巧(9):COE檔案使用方法
- Vivado使用技巧(4):查詢功能詳解
- Vivado使用技巧(3):Force Up-to-Date功能
- Vivado使用技巧(11):設定FPGA配置模式FPGA模式
- Vivado使用技巧(8):Core Container打包IP核AI
- Vivado使用技巧(34):路徑分割現象
- Vivado使用技巧(28):支援的Verilog語法
- Vivado使用技巧(5):屬性編輯器的使用
- Vivado使用技巧(30):使用時序約束嚮導
- Vivado使用技巧(14):IO規劃方法詳解
- Vivado使用技巧(31):時鐘的約束方法
- Vivado使用技巧(23):綜合執行與OOC
- Vivado使用技巧(21):模擬中的Debug特性
- 視覺化學習 | 如何使用噪聲生成紋理視覺化
- 隨機過程(高斯隨機過程、譜分析、白噪聲)隨機
- 在linux中使用 Pandoc 轉換檔案技巧Linux
- Vivado使用技巧(15):DRC設計規則檢查
- Vivado使用技巧(13):CSV檔案定義IO Ports
- Vivado使用技巧(32):IO延遲的約束方法
- 05 -2 Scipy中 face()新增噪聲、濾波器的使用、
- Shader 中的隨機與噪聲隨機
- 影像噪聲學習記錄(1)
- Mybatis使用小技巧-自定義型別轉換器MyBatis型別
- Vivado使用技巧(7):使用IP核自帶Testbench進行模擬
- Book of Shaders 04 - 網格噪聲:Worley Noise
- Vivado使用技巧(10):編輯與改寫IP核原始檔