本篇博文中的分析是根據(jù)真實(shí)客戶問題撰寫的,該客戶發(fā)現(xiàn)在現(xiàn)場出現(xiàn)罕見的比特翻轉(zhuǎn), 本篇博文旨在演示用于縮小根本原因范圍以及修復(fù)此問題的部分調(diào)試技巧。
最終發(fā)現(xiàn),此問題是由于時(shí)鐘域交匯 (CDC) 處理不當(dāng)所導(dǎo)致的,在 report_methodology 和 report_cdc 報(bào)告中高亮顯示了相關(guān)處理錯(cuò)誤。
這是使用方法論報(bào)告系列博文的第 4 部分。如需閱讀整個(gè)系列中的所有博文,請點(diǎn)擊如下標(biāo)題查看。
第1部分:時(shí)序以滿足,但硬件功能出現(xiàn)錯(cuò)誤
第2部分:方法違例對于QoR的影響
第3部分:時(shí)序已滿足,但硬件中存在 DDR4 校準(zhǔn)失敗
問題說明:
此客戶在現(xiàn)場部署了數(shù)萬個(gè)基于 Zynq-7000 系列的產(chǎn)品,這些產(chǎn)品都是使用 Vivado 2013.4 開發(fā)的,其最終客戶報(bào)告稱大量卡上出現(xiàn)數(shù)據(jù)包損壞,調(diào)查顯示在所有數(shù)據(jù)包損壞案例中,設(shè)計(jì)中的相同位置都發(fā)生了比特翻轉(zhuǎn)。
根本原因分析:
為了縮小范圍,我們首先要求客戶提供網(wǎng)表中這些寄存器的位置:
我們要求客戶提供 DCP 以便我們使用各項(xiàng)報(bào)告來審查設(shè)計(jì)。
雖然通常隨機(jī)問題是由電源問題所導(dǎo)致的,但我們同時(shí)還要求客戶提供操作期間的 VCCINT/VCCAUX/VCCIO 測量方法,以便測量電平和噪聲,如(賽靈思答復(fù)記錄 62181-點(diǎn)擊閱讀原文可查看)中的硬件調(diào)試最佳實(shí)踐中所述。
我們還要求其提供板級原理圖 (schematic) 以復(fù)查使用的去耦電容是否足夠。
很快我們就把電源問題排除在原因之外。
收到 DCP 后,我們首先使用最新版本的 Vivado 運(yùn)行
report_timing_summary、report_methodology、report_drc 和 report_cdc。
有多個(gè)問題馬上顯現(xiàn)了出來。
最重要的發(fā)現(xiàn)與可疑 FF 相關(guān),report_methodology LUTAR-1 檢查標(biāo)記出了這些可疑 FF:LUT 驅(qū)動異步復(fù)位警告
FF 具有異步復(fù)位,由邏輯級數(shù)深度為 2 的路徑驅(qū)動:
其危險(xiǎn)性在于 LUT(紅色箭頭)可出現(xiàn)毛刺并觸發(fā)意外復(fù)位。
第二項(xiàng)最嚴(yán)重的發(fā)現(xiàn)與時(shí)鐘域交匯和約束有關(guān)。
Report_cdc 發(fā)現(xiàn)約有 40000 條路徑采用非推薦 CDC 架構(gòu):
不安全的時(shí)鐘域交匯可能導(dǎo)致翻轉(zhuǎn) FF 下游或上游出現(xiàn)問題,并且可能成為所觀測到的行為的真正根源。
就約束而言,report_methodology 的“TIMING-24:僅最大延遲數(shù)據(jù)路徑已被覆蓋”檢查發(fā)現(xiàn)多項(xiàng)嚴(yán)重違例。
在移除 set_clock_groups -asynchronous 約束并將其替換為 set_max_delay -datapath_only 和時(shí)鐘對的最小時(shí)鐘周期后,發(fā)現(xiàn)出現(xiàn)了非常嚴(yán)重的時(shí)序違例:-5.8ns,原因是異步時(shí)鐘之間的邏輯級數(shù)達(dá)到 11。
第二輪審查發(fā)現(xiàn)設(shè)計(jì)中幾乎所有復(fù)位上都存在偽路徑約束,這些約束是為了幫助達(dá)成時(shí)序收斂而添加的,根據(jù)經(jīng)驗(yàn),我們知道這是非常危險(xiǎn)的:如果狀態(tài)機(jī)的各個(gè)位在不同時(shí)間脫離復(fù)位,則可能進(jìn)入非法狀態(tài)、無法恢復(fù)并且導(dǎo)致設(shè)計(jì)運(yùn)行錯(cuò)誤。
即使復(fù)位為異步,取消復(fù)位仍需達(dá)成時(shí)序收斂,因此永遠(yuǎn)不能忽略復(fù)位上的時(shí)序收斂,您應(yīng)該盡可能明確自己實(shí)際是否需要復(fù)位,因?yàn)椴皇褂脧?fù)位可節(jié)省寶貴的布線資源,并且使 SR 管腳可用于控制置位的重映射,從而減小設(shè)計(jì)規(guī)模,因?yàn)檫壿嫼瘮?shù)可部分映射到這些 SR 管腳。
修復(fù)所報(bào)告的問題(LUT 驅(qū)動異步復(fù)位、CDC、CDC 約束)并在現(xiàn)場部署一些新固件后,這些罕見的比特翻轉(zhuǎn)就沒有再出現(xiàn)。
結(jié)論:
Vivado 報(bào)告功能(方法論、CDC)的進(jìn)步使我們得以成功調(diào)試并解決罕見的比特翻轉(zhuǎn)問題。
無論何時(shí)遇到任何疑問,都應(yīng)該首先考慮使用最新版本的 Vivado 來重新審查設(shè)計(jì),最新版本的 Vivado 中包含 CDC 分析和最新的方法論檢查,這些都是進(jìn)行原始設(shè)計(jì)所沒有的。
責(zé)任編輯:haq
-
DDR
+關(guān)注
關(guān)注
11文章
712瀏覽量
65318 -
硬件
+關(guān)注
關(guān)注
11文章
3312瀏覽量
66201 -
Xinlix
+關(guān)注
關(guān)注
0文章
6瀏覽量
7998
原文標(biāo)題:開發(fā)者分享 | 使用方法論報(bào)告4: 罕見的比特翻轉(zhuǎn)
文章出處:【微信號:gh_2d1c7e2d540e,微信公眾號:XILINX開發(fā)者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論