本篇博文中的分析是根據(jù)真實客戶問題撰寫的,該客戶發(fā)現(xiàn)硬件中存在 DDR4 校準后數(shù)據(jù)錯誤,此問題顯示為與時序有關(guān),但時序報告中并未顯示任何違例,最初并未使用方法論報告 (Methodology report) 來確定問題根源。
本篇博客將為您演示如何使用此報告來幫助加速調(diào)試,甚至完全避免硬件故障,最后確定此問題根本原因是校準完成時出現(xiàn)爭用狀況。出現(xiàn)爭用狀況的原因是由于某個多周期約束所覆蓋的時序例外,由此導(dǎo)致在時序分析報告中并未標記此問題。
這是使用方法論報告系列博文的第 5 部分。如需閱讀整個系列中的所有博文,請點擊下方標題查看。
第1部分:時序以滿足,但硬件功能出現(xiàn)錯誤
第2部分:方法違例對于QoR的影響
第3部分:時序已滿足,但硬件中存在 DDR4 校準失敗
第4部分:罕見的比特翻轉(zhuǎn)
問題說明:
客戶在使用 UltraScale+ DDR4 IP 時,在硬件中遇到校準后數(shù)據(jù)錯誤。
根據(jù)設(shè)計的布線和實現(xiàn),此問題與構(gòu)建有關(guān),換言之,在產(chǎn)品開發(fā)期間對多個構(gòu)建鏡像進行測試時,此問題可能出現(xiàn)而后又消失。此外,此問題可能僅在小部分板上出現(xiàn)。
時序報告顯示沒有任何違例。
調(diào)試方法:
由于重新實現(xiàn)后,此問題可能就會消失,因此無法使用 ILA 調(diào)試。
我們在已布線的 DCP 中使用 ECO 來探測未使用的管腳的信號,通過示波器觀測信號發(fā)現(xiàn)哪個(些)信號開始顯現(xiàn)錯誤。
最終,我們將問題范圍縮小到 1 個特定的信號線,在 DCP 中對該信號線進行重新布線后,故障消失了。
隨后,我們檢查了與此信號線相關(guān)的路徑上的時序分析和時序約束:
1. 經(jīng)過該信號線的路徑的時序報告。在此報告中,我們得知,所涉及的路徑被多周期路徑約束所覆蓋
report_timing -through [get_nets 《net_name》]
2. 打開“Timing Constraints”Wizard,查找對應(yīng)的多周期路徑約束。
工具 (Tools) -》 時序 (Timing) -》 編輯時序約束 (Edit Timing Constraints)
我們在“Timing Constraints”Wizard 中發(fā)現(xiàn)了以下多周期路徑約束:
set_multicycle_path -setup -from [get_pins */u_ddr_cal_top/calDone*/C] 8
set_multicycle_path -hold -end -from [get_pins */u_ddr_cal_top/calDone*/C] 7
基于以上分析,我們判定在這些路徑上存在爭用狀況問題。
這些多周期路徑約束不應(yīng)添加,在此用例中,應(yīng)在每個時鐘周期內(nèi)正確捕獲數(shù)據(jù),以避免出現(xiàn)爭用狀況,因此,這些路徑不屬于多周期路徑。
根本原因分析:
以下就是發(fā)生爭用狀況問題的路徑。
其中 2 個目標都應(yīng)在同一個周期內(nèi)接收到 calDone 信號,因為這兩者緊密相關(guān)。這 2 條路徑屬于不同時序路徑,各自都應(yīng)在不同時鐘周期達成時序收斂(根據(jù)多周期約束,應(yīng)在 1 到 8 個周期內(nèi)達成時序收斂)。這可能導(dǎo)致 calDone 在不同時間線到達目標,導(dǎo)致功能異常。
另一方面,2 個目標都沒有 CE 管腳控制(CE 管腳綁定到 VCC)。因此,未能在同一時鐘周期內(nèi)捕獲 2 條路徑上的數(shù)據(jù),所以這些路徑并非合格的多周期路徑。
此多周期約束違例實際上是由 Methodology Report 捕獲的:
TIMING-46 警告 1
多周期路徑含綁定 CE 管腳
在寄存器
u_mig/inst/u_ddr4_mem_intfc/u_ddr_cal_top/calDone_gated_reg/Q
與寄存器
u_example_tb/init_calib_complete_r_reg/D
之間定義了 1 條或多條多周期路徑,并具有直接連接,且 CE 管腳已連接到 VCC(請參閱 Vivado IDE 中的“時序約束 (Timing Constraint)”窗口中的約束位置 6)。這可能導(dǎo)致路徑要求不準確。
TIMING-46 警告 2
多周期路徑含綁定 CE 管腳
在寄存器
u_mig/inst/u_ddr4_mem_intfc/u_ddr_cal_top/calDone_gated_reg/Q
與寄存器
u_mig/inst/u_ddr4_mem_intfc/u_ddr_mc/u_ddr_mc_periodic/periodic_config_gap_enable_reg/D
之間定義了 1 條或多條多周期路徑,并具有直接連接,且 CE 管腳已連接到 VCC(請參閱 Vivado IDE 中的“時序約束 (Timing Constraint)”窗口中的約束位置 6)。
這可能導(dǎo)致路徑要求不準確。
最好在流程初期階段盡早檢查 Methodology Report。在諸如此類的示例中,它可幫助您捕獲并修復(fù)多周期違例,并避免發(fā)生硬件故障。您還可以在調(diào)試過程中先運行 Methodology Report,并查看警告,其中高亮的違例將有助于加速問題調(diào)查。
解決辦法:
【賽靈思答復(fù)記錄 73068】提供的補丁可用于解決在低于 2020.1 版的版本中發(fā)生的此問題。(請掃碼參閱)
從 2020.1 版起,已移除了多周期路徑約束,并在路徑上添加了流水線階段,以簡化時序收斂,同時確保所有目標都能在同一個互連結(jié)構(gòu)周期內(nèi)達成時序收斂。
結(jié)論:
1. 在設(shè)計流程中盡早運行 Methodology Report 以便捕獲并修復(fù)潛在問題。
2. 請在含綁定到 VCC 的 CE 管腳的路徑上謹慎使用多周期約束。
責任編輯:haq
-
DDR
+關(guān)注
關(guān)注
11文章
715瀏覽量
65448 -
Xilinx
+關(guān)注
關(guān)注
71文章
2171瀏覽量
121924 -
硬件
+關(guān)注
關(guān)注
11文章
3380瀏覽量
66383
原文標題:開發(fā)者分享 | 使用方法論報告5: DDR4 IP 校準后硬件故障,指示存在時序問題,但時序報告中無任何違例
文章出處:【微信號:gh_2d1c7e2d540e,微信公眾號:XILINX開發(fā)者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論