使用 Vivado ILA 進(jìn)行復(fù)雜時(shí)序分析的完整流程
1.設(shè)計(jì)準(zhǔn)備
在 HDL 代碼中標(biāo)記待觀測信號(hào),添加(* mark_debug = "true" *)屬性(Verilog)或keep屬性(VHDL)
確保時(shí)鐘域劃分清晰,關(guān)鍵時(shí)序路徑已標(biāo)識(shí)
例化 ILA IP 核,配置參數(shù):
采樣深度:$$ ext{深度} = frac{ ext{待分析時(shí)間窗口}}{ ext{時(shí)鐘周期}} $$
觸發(fā)條件數(shù)量:根據(jù)復(fù)雜時(shí)序關(guān)系確定
信號(hào)位寬:匹配待測信號(hào)
2.工程配置
# Tcl 配置示例create_debug_coreu_ila ilaset_propertyC_DATA_DEPTH1024[get_debug_cores u_ila]set_propertyC_TRIGIN_EN false[get_debug_cores u_ila]
通過 IP Integrator 添加 ILA 核
設(shè)置觸發(fā)條件:
基本觸發(fā):信號(hào)邊沿/電平
高級(jí)觸發(fā):邏輯組合(AND/OR)
順序觸發(fā):多級(jí)狀態(tài)機(jī)觸發(fā)
3.實(shí)現(xiàn)與生成
運(yùn)行綜合與實(shí)現(xiàn)
關(guān)鍵時(shí)序約束:
create_clock-period5.0-name clk[get_ports clk]set_input_delay-clock clk1.5[get_ports data_in]
生成比特流文件(.bit)
4.硬件連接
JTAG 連接配置:
時(shí)鐘頻率:$$ f_{ ext{JTAG}} leq frac{1}{4} f_{ ext{設(shè)計(jì)時(shí)鐘}} $$
電纜驅(qū)動(dòng):安裝 Cable Drivers
FPGA 上電時(shí)序:
先上電 FPGA
后連接 JTAG
5.觸發(fā)設(shè)置
在 Hardware Manager 中:
源時(shí)鐘域信號(hào)作為觸發(fā)條件
目標(biāo)時(shí)鐘域信號(hào)作為觀測對(duì)象
設(shè)置多條件觸發(fā):$$ ext{觸發(fā)} = ( ext{Cond}_A land ext{Cond}_B) lor ext{Cond}_C $$
配置觸發(fā)位置(預(yù)觸發(fā)/后觸發(fā)比例)
時(shí)鐘域交叉分析:
6.數(shù)據(jù)捕獲與分析
執(zhí)行單次/連續(xù)觸發(fā)
波形分析工具:
時(shí)間測量:$$ Delta t = t_{ ext{數(shù)據(jù)有效}} - t_{ ext{時(shí)鐘沿}} $$
建立/保持時(shí)間檢查: $$ t_{ ext{su}} = T_{ ext{clk}} - Delta t_{ ext{max}} $$ $$ t_{ ext{h}} = Delta t_{ ext{min}} $$
跨時(shí)鐘域路徑分析:
timeline title CDC 路徑分析 section源時(shí)鐘域 觸發(fā)事件 : a1: 數(shù)據(jù)變化 section目標(biāo)時(shí)鐘域 觀測點(diǎn) : b1: 同步后數(shù)據(jù) 測量點(diǎn) :c1: 數(shù)據(jù)穩(wěn)定窗口
7.高級(jí)調(diào)試技巧
窗口函數(shù)分析 : $$ W(t) = sum_{n=0}^{N} x[n] cdot e^{-jomega n} $$ 用于檢測周期性時(shí)序違規(guī)
統(tǒng)計(jì)模式 :
建立時(shí)間直方圖
保持時(shí)間分布圖
關(guān)聯(lián)分析 :
將時(shí)序違規(guī)與溫度/電壓波動(dòng)關(guān)聯(lián)
建立時(shí)序余量模型:$$ ext{余量} = k cdot Delta V + c $$
8.結(jié)果導(dǎo)出
導(dǎo)出 CSV 數(shù)據(jù):$$ ext{數(shù)據(jù)集} = { (t_n, ext{data}_n) mid n=1,2,cdots,N } $$
生成時(shí)序報(bào)告:
Violation Type | Frequency | Worst Slack -----------------------------------------Setup | 12% | -0.15 ns Hold | 3% | -0.08 ns
注意事項(xiàng):
采樣深度與存儲(chǔ)資源平衡:$$ ext{所需BRAM} = frac{ ext{位寬} imes ext{深度}}{36 ext{Kb}} $$
對(duì)于亞穩(wěn)態(tài)分析,觸發(fā)條件應(yīng)包含復(fù)位事件
多時(shí)鐘系統(tǒng)需同步 ILA 采樣時(shí)鐘與被測時(shí)鐘域
此流程可有效診斷建立/保持時(shí)間違規(guī)、時(shí)鐘偏斜、跨時(shí)鐘域問題等復(fù)雜時(shí)序故障,需結(jié)合具體設(shè)計(jì)場景調(diào)整參數(shù)。
-
代碼
+關(guān)注
關(guān)注
30文章
4962瀏覽量
73617 -
時(shí)序分析
+關(guān)注
關(guān)注
2文章
130瀏覽量
24187 -
Vivado
+關(guān)注
關(guān)注
19文章
854瀏覽量
70893
原文標(biāo)題:使用 Vivado ILA 進(jìn)行復(fù)雜時(shí)序分析的完整流程
文章出處:【微信號(hào):gh_9d70b445f494,微信公眾號(hào):FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
VIVADO時(shí)序約束及STA基礎(chǔ)
vivado時(shí)序分析相關(guān)經(jīng)驗(yàn)
vivado ILA在線調(diào)試求助
vivado:時(shí)序分析與約束優(yōu)化
Vivado下顯示指定路徑時(shí)序報(bào)告的流程
FPGA入門開發(fā)完整流程(Vivado2020+Verilog)精選資料分享
Vivado邏輯分析儀使用教程
Vivado中的靜態(tài)時(shí)序分析工具Timing Report的使用與規(guī)范
關(guān)于Vivado時(shí)序分析介紹以及應(yīng)用
引入增量編譯流程進(jìn)行調(diào)試的好處與步驟
Xilinx Vivado軟件ILA使用心得
Vivado進(jìn)行時(shí)序約束的兩種方式
使用Vivado ILA進(jìn)行復(fù)雜時(shí)序分析的完整流程
評(píng)論