本篇博客將為您演示如何使用此報(bào)告來幫助加速調(diào)試,甚至完全避免硬件故障,最后確定此問題根本原因是校準(zhǔn)完成時(shí)出現(xiàn)爭用狀況。出現(xiàn)爭用狀況的原因是由于某個(gè)多周期約束所覆蓋的時(shí)序例外,由此導(dǎo)致在時(shí)序分析報(bào)告中并未標(biāo)記此問題。
這是使用方法論報(bào)告系列博文的第 5 部分。如需閱讀整個(gè)系列中的所有博文,請點(diǎn)擊下方標(biāo)題查看。
第1部分:時(shí)序以滿足,但硬件功能出現(xiàn)錯(cuò)誤
第3部分:時(shí)序已滿足,但硬件中存在 DDR4 校準(zhǔn)失敗
問題說明:
客戶在使用 UltraScale+ DDR4 IP 時(shí),在硬件中遇到校準(zhǔn)后數(shù)據(jù)錯(cuò)誤。
根據(jù)設(shè)計(jì)的布線和實(shí)現(xiàn),此問題與構(gòu)建有關(guān),換言之,在產(chǎn)品開發(fā)期間對多個(gè)構(gòu)建鏡像進(jìn)行測試時(shí),此問題可能出現(xiàn)而后又消失。此外,此問題可能僅在小部分板上出現(xiàn)。
時(shí)序報(bào)告顯示沒有任何違例。
調(diào)試方法:
由于重新實(shí)現(xiàn)后,此問題可能就會消失,因此無法使用 ILA 調(diào)試。
我們在已布線的 DCP 中使用 ECO 來探測未使用的管腳的信號,通過示波器觀測信號發(fā)現(xiàn)哪個(gè)(些)信號開始顯現(xiàn)錯(cuò)誤。
最終,我們將問題范圍縮小到 1 個(gè)特定的信號線,在 DCP 中對該信號線進(jìn)行重新布線后,故障消失了。
隨后,我們檢查了與此信號線相關(guān)的路徑上的時(shí)序分析和時(shí)序約束:
1. 經(jīng)過該信號線的路徑的時(shí)序報(bào)告。在此報(bào)告中,我們得知,所涉及的路徑被多周期路徑約束所覆蓋
report_timing -through [get_nets ]
2. 打開“Timing Constraints”Wizard,查找對應(yīng)的多周期路徑約束。
工具 (Tools) -> 時(shí)序 (Timing) -> 編輯時(shí)序約束 (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)在每個(gè)時(shí)鐘周期內(nèi)正確捕獲數(shù)據(jù),以避免出現(xiàn)爭用狀況,因此,這些路徑不屬于多周期路徑。
根本原因分析:
以下就是發(fā)生爭用狀況問題的路徑。
其中 2 個(gè)目標(biāo)都應(yīng)在同一個(gè)周期內(nèi)接收到 calDone 信號,因?yàn)檫@兩者緊密相關(guān)。這 2 條路徑屬于不同時(shí)序路徑,各自都應(yīng)在不同時(shí)鐘周期達(dá)成時(shí)序收斂(根據(jù)多周期約束,應(yīng)在 1 到 8 個(gè)周期內(nèi)達(dá)成時(shí)序收斂)。這可能導(dǎo)致 calDone 在不同時(shí)間線到達(dá)目標(biāo),導(dǎo)致功能異常。
另一方面,2 個(gè)目標(biāo)都沒有 CE 管腳控制(CE 管腳綁定到 VCC)。因此,未能在同一時(shí)鐘周期內(nèi)捕獲 2 條路徑上的數(shù)據(jù),所以這些路徑并非合格的多周期路徑。
此多周期約束違例實(shí)際上是由 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 中的“時(shí)序約束 (Timing Constraint)”窗口中的約束位置 6)。這可能導(dǎo)致路徑要求不準(zhǔn)確。
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 中的“時(shí)序約束 (Timing Constraint)”窗口中的約束位置 6)。
這可能導(dǎo)致路徑要求不準(zhǔn)確。
最好在流程初期階段盡早檢查 Methodology Report。在諸如此類的示例中,它可幫助您捕獲并修復(fù)多周期違例,并避免發(fā)生硬件故障。您還可以在調(diào)試過程中先運(yùn)行 Methodology Report,并查看警告,其中高亮的違例將有助于加速問題調(diào)查。
解決辦法:
【賽靈思答復(fù)記錄 73068】提供的補(bǔ)丁可用于解決在低于 2020.1 版的版本中發(fā)生的此問題。
從 2020.1 版起,已移除了多周期路徑約束,并在路徑上添加了流水線階段,以簡化時(shí)序收斂,同時(shí)確保所有目標(biāo)都能在同一個(gè)互連結(jié)構(gòu)周期內(nèi)達(dá)成時(shí)序收斂。
結(jié)論:
1. 在設(shè)計(jì)流程中盡早運(yùn)行 Methodology Report 以便捕獲并修復(fù)潛在問題。
2. 請?jiān)诤壎ǖ?VCC 的 CE 管腳的路徑上謹(jǐn)慎使用多周期約束。
審核編輯:湯梓紅
-
DDR4
+關(guān)注
關(guān)注
12文章
320瀏覽量
40688 -
時(shí)序
+關(guān)注
關(guān)注
5文章
385瀏覽量
37276
發(fā)布評論請先 登錄
相關(guān)推薦
評論