0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何調(diào)試設(shè)計中的時鐘域交匯問題

思佳訊SkyworksSolutions ? 來源:XILINX開發(fā)者社區(qū) ? 作者:XILINX開發(fā)者社區(qū) ? 2021-08-20 09:32 ? 次閱讀

本篇博文中的分析是根據(jù)客戶真實問題撰寫的,該客戶發(fā)現(xiàn)即使時序已得到滿足的情況下,硬件功能仍出現(xiàn)錯誤。最后發(fā)現(xiàn),問題與時鐘域交匯 (Clock Domain Crossing) 有關(guān),因此,本篇博文介紹了如何調(diào)試設(shè)計中的時鐘域交匯問題。

問題說明:

在此設(shè)計中,用戶生成了比特流并將其用于器件編程,在硬件上進行測試時,用戶發(fā)現(xiàn)少量時鐘域上無法獲得期望的功能。

用戶對行為仿真和實現(xiàn)后仿真進行了測試,發(fā)現(xiàn)信號上可得到正確的結(jié)果。

同時,這些用戶未發(fā)現(xiàn)任何種類的時序違例,所有值均為正值,如“設(shè)計時序匯總 (Design Timing Summary)” 中所示。

注:您可使用以下選項自行檢查設(shè)計的時序匯總信息

■ 在 Vivado GUI 中,轉(zhuǎn)至“報告 (Reports)”選項卡 -》“時序 (Timing)”-》“時序匯總報告 (Report Timing Summary)”

■運行以下 Tcl 命令:

report_timing_summary -file 《filepath》/timingreport.txt

根本原因:

硬件功能問題背后可能存在多種原因。

包括缺少時鐘域交匯 (CDC) 同步器、時鐘拓撲欠優(yōu)化、時鐘結(jié)構(gòu)中使用了組合邏輯、亞穩(wěn)態(tài)以及經(jīng)典的未約束路徑問題。

要檢查與時鐘/架構(gòu)/CDC 等相關(guān)的警告/嚴重警告,可使用方法論報告。

要在 Vivado GUI 中打開方法論報告,請轉(zhuǎn)至“報告 (Report)”選項卡 -》“方法論報告 (Report Methodology)”,或者在 Tcl 控制臺 (Tcl console) 中,使用 report_methodology。

報告打開后,您可能會看到幾條與設(shè)計相關(guān)的警告和嚴重警告,需您進行檢查。

在此示例中,報告中顯示了幾條警告,這些警告與 CDC 相關(guān)的錯誤實踐有關(guān)(這些警告的 ID 為 Timing-9 和 Timing-10),如下所示。

a4422284-00d4-11ec-9bcf-12bb97331649.png

這些警告聲稱工具經(jīng)由約束語句(例如,set_false_path 或 set_clock_groups)的使用,在 2 個時鐘域之間檢測到一個或多個異步時鐘域交匯。

但它在捕獲時鐘端未找到任何雙寄存器邏輯同步器。因此,它建議用戶運行 report_CDC 并對這些 CDC 路徑執(zhí)行進一步分析。

要在 Vivado GUI 中打開 CDC 報告,請轉(zhuǎn)至“報告 (Report)”選項卡 -》 “時序 (Timing)”-》“CDC 報告 (Report CDC)”?;蛘?,您可在 Tcl 控制臺中運行 report_cdc 命令。

請參閱 (UG906) 以獲取有關(guān)閱讀此 CDC 報告的詳細指南。

CDC 報告顯示在發(fā)生硬件功能錯誤的時鐘域內(nèi)存在不安全的未知 CDC 端點(如下所示)。請參閱 (UG906) 以了解此報告命名法。

如何解決這些警告/嚴重警告?

1) (UG906)包含有關(guān)這些警告以及其它時序方法論檢查的詳細說明。請詳查其中提供的示例,以理解每一項警告及其根本原因。您可通過添加適當?shù)耐诫娐罚ㄍㄟ^修改 RTL 或者使用賽靈思可參數(shù)化宏 (XPM))來相應(yīng)改善設(shè)計。

2) 您可能還需要相應(yīng)添加或修改約束,或者在 RTL 源代碼中為 CDC 端點添加 ASYNC_REG 屬性。(您還可參閱(UG906)以便詳細了解 CDC 拓撲結(jié)構(gòu)。)

3) 對于偽靜態(tài)寄存器接口,最好將 CDC 接口豁免,而不是對其進行過度設(shè)計。

如需獲取有關(guān)豁免以及如何創(chuàng)建豁免的更多信息,請參閱 (UG906)。

注:偽靜態(tài) CDC 寄存器接口為包含近似靜態(tài)的配置寄存器的 CDC 路徑。這些路徑初始化后可能不再改變,或者可能僅改變 1 次,因此用戶幾乎可以將其看作是靜態(tài)的。

結(jié)論

對 CDC 路徑完成必要修改后,客戶得以成功通過硬件的功能測試。

編輯:jq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5295

    瀏覽量

    119823
  • RTL
    RTL
    +關(guān)注

    關(guān)注

    1

    文章

    385

    瀏覽量

    59666
  • CDC
    CDC
    +關(guān)注

    關(guān)注

    0

    文章

    57

    瀏覽量

    17747

原文標題:開發(fā)者分享 | 使用方法論報告 1:時序已滿足,但硬件功能出現(xiàn)錯誤

文章出處:【微信號:gh_2d0d1910c28b,微信公眾號:思佳訊SkyworksSolutions】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    FPGA設(shè)計解決跨時鐘的三大方案

    時鐘處理是FPGA設(shè)計中經(jīng)常遇到的問題,而如何處理好跨時鐘間的數(shù)據(jù),可以說是每個FPGA初學(xué)者的必修課。如果是還是在校的學(xué)生,跨時鐘
    的頭像 發(fā)表于 11-21 11:13 ?3815次閱讀
    FPGA設(shè)計<b class='flag-5'>中</b>解決跨<b class='flag-5'>時鐘</b><b class='flag-5'>域</b>的三大方案

    vivado約束案例:跨時鐘路徑分析報告

    時鐘路徑分析報告分析從一個時鐘(源時鐘)跨越到另一個時鐘
    的頭像 發(fā)表于 11-27 11:11 ?5798次閱讀
    vivado約束案例:跨<b class='flag-5'>時鐘</b><b class='flag-5'>域</b>路徑分析報告

    如何處理好FPGA設(shè)計時鐘問題?

    時鐘處理。先利用 ADC 芯片提供的 60MHz 時鐘將 ADC 輸出的數(shù)據(jù)寫入異步雙口 RAM,然后使用 100MHz 的時鐘從 RAM
    發(fā)表于 09-22 10:24

    如何處理好FPGA設(shè)計時鐘間的數(shù)據(jù)

    時鐘處理是FPGA設(shè)計中經(jīng)常遇到的問題,而如何處理好跨時鐘間的數(shù)據(jù),可以說是每個FPGA初學(xué)者的必修課。如果是還是在校的學(xué)生,跨時鐘
    發(fā)表于 07-29 06:19

    基于多時鐘的異步FIFO設(shè)計

    在大規(guī)模集成電路設(shè)計,一個系統(tǒng)包含了很多不相關(guān)的時鐘信號,當其目標時鐘與源時鐘不同時,如何
    發(fā)表于 12-14 10:19 ?14次下載

    關(guān)于FPGA時鐘的問題分析

    時鐘問題(CDC,Clock Domain Crossing )是多時鐘設(shè)計的常見現(xiàn)象。在FPGA領(lǐng)域,互動的異步時鐘
    發(fā)表于 08-19 14:52 ?3305次閱讀

    由于時鐘交匯處理不當所導(dǎo)致罕見的比特翻轉(zhuǎn)

    本篇博文中的分析是根據(jù)真實客戶問題撰寫的,該客戶發(fā)現(xiàn)在現(xiàn)場出現(xiàn)罕見的比特翻轉(zhuǎn), 本篇博文旨在演示用于縮小根本原因范圍以及修復(fù)此問題的部分調(diào)試技巧。 最終發(fā)現(xiàn),此問題是由于時鐘交匯
    的頭像 發(fā)表于 09-10 09:44 ?1369次閱讀

    如何調(diào)試設(shè)計時鐘交匯問題

    本篇博文中的分析是根據(jù)客戶真實問題撰寫的,該客戶發(fā)現(xiàn)即使時序已得到滿足的情況下,硬件功能仍出現(xiàn)錯誤。最后發(fā)現(xiàn),問題與時鐘交匯 (Clock Domain Crossing) 有關(guān),因此,本篇博文介紹了如何
    發(fā)表于 08-02 11:44 ?330次閱讀
    如何<b class='flag-5'>調(diào)試</b>設(shè)計<b class='flag-5'>中</b>的<b class='flag-5'>時鐘</b><b class='flag-5'>域</b><b class='flag-5'>交匯</b>問題

    CDC跨時鐘的基礎(chǔ)概念

    時鐘clock domain:以寄存器捕獲的時鐘來劃分時鐘。 單時鐘
    的頭像 發(fā)表于 08-29 15:11 ?2451次閱讀

    CDC跨時鐘的基礎(chǔ)概念介紹

    時鐘clock domain:以寄存器捕獲的時鐘來劃分時鐘。單時鐘
    的頭像 發(fā)表于 12-26 15:21 ?1670次閱讀

    時鐘CDC之全面解析

    在一些較為簡單的數(shù)字電路,只有一個時鐘,即所有的觸發(fā)器都使用同一個時鐘,那么我們說這個電路只有一個時鐘
    的頭像 發(fā)表于 03-15 13:58 ?3503次閱讀

    時鐘電路設(shè)計總結(jié)

    時鐘操作包括同步跨時鐘操作和異步跨時鐘操作。
    的頭像 發(fā)表于 05-18 09:18 ?694次閱讀
    跨<b class='flag-5'>時鐘</b><b class='flag-5'>域</b>電路設(shè)計總結(jié)

    時鐘處理方式

    ??類似于電源(電源規(guī)劃與時鐘規(guī)劃亦是對應(yīng)的),假如設(shè)計中所有的 D 觸發(fā)器都使用一個全局網(wǎng)絡(luò) GCLK ,比如 FPGA 的主時鐘輸入,那么我們說這個設(shè)計只有一個時鐘
    的頭像 發(fā)表于 06-21 11:53 ?3379次閱讀
    跨<b class='flag-5'>時鐘</b><b class='flag-5'>域</b>處理方式

    fpga跨時鐘通信時,慢時鐘如何讀取快時鐘發(fā)送過來的數(shù)據(jù)?

    fpga跨時鐘通信時,慢時鐘如何讀取快時鐘發(fā)送過來的數(shù)據(jù)? 在FPGA設(shè)計,通常需要跨時鐘
    的頭像 發(fā)表于 10-18 15:23 ?978次閱讀

    如何處理跨時鐘這些基礎(chǔ)問題

    對于數(shù)字設(shè)計人員來講,只要信號從一個時鐘跨越到另一個時鐘,那么就可能發(fā)生亞穩(wěn)態(tài)。我們稱為“跨時鐘
    發(fā)表于 01-08 09:39 ?569次閱讀
    如何處理跨<b class='flag-5'>時鐘</b><b class='flag-5'>域</b>這些基礎(chǔ)問題