色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

XDC約束技巧之CDC篇

FPGA算法工程師 ? 來源:FPGA算法工程師 ? 2023-04-03 11:41 ? 次閱讀

上一篇《XDC 約束技巧之時鐘篇》介紹了 XDC 的優勢以及基本語法,詳細說明了如何根據時鐘結構和設計要求來創建合適的時鐘約束。我們知道 XDC 與 UCF 的根本區別之一就是對跨時鐘域路徑(CDC)的缺省認識不同,那么碰到 FPGA 設計中常見的 CDC 路徑,到底應該怎么約束,在設計上又要注意些什么才能保證時序報告的準確性?

CDC的的定義與分類

CDC 是 Clock DomainCrossing 的簡稱,CDC 時序路徑指的是起點和終點由不同時鐘驅動的路徑。在電路設計中對這些跨時鐘域路徑往往需要進行特別的處理來避免亞穩態的產生,例如使用簡單同步器、握手電路或是 FIFO 來隔離。

安全的CDC路徑

所謂安全的 CDC 路徑是指那些源時鐘和目標時鐘擁有相同的來源,在 FPGA 內部共享部分時鐘網絡的時序路徑。這里的安全指的是時鐘之間的關系對 Vivado來說是全透明可分析的。

dd85dd44-d08d-11ed-bfe3-dac502259ad0.png

不安全的CDC路徑

不安全的 CDC 路徑則表示源時鐘和目標時鐘不同,且由不同的端口進入 FPGA,在芯片內部不共享時鐘網絡。這種情況下,Vivado 的報告也只 是基于端口處創建的主時鐘在約束文件中所描述的相位和頻率關系來分析, 并不能代表時鐘之間真實的關系。

ddc8ff2a-d08d-11ed-bfe3-dac502259ad0.png

在 Vivado 中分析 CDC

在 ISE 中想要快速定位那些需要關注的 CDC 路徑并不容易,特別是要找到不安全的 CDC 時,因為 ISE 缺省認為所有來源不同的時鐘都不相關且不做分析,要報告出這類路徑,需要使用 ISE Timing Analyzer (TRCE) ,并加上 “-u” (表示 unconstrained)這個選項。

在 Vivado 中則容易許多,我們可以使用report_clock_interaction 命令(GUI 支持)來鑒別和報告設計中 所有的時鐘關系。執行命令后會生成一個矩陣圖,其中對角線上的路徑表示源時鐘與目標時鐘相同的時鐘內部路徑,其余都是 CDC 路徑。

Vivado 還會根據網表和已讀入的約束分析出 CDC 路徑的約束情況,并分顏色表示。例如綠色代表有時序約束,紅色代表不安全的 CDC 路徑但是沒有約束時序例外,橙色表示有部分路徑已約束為 false path 的不安 全 CDC 路徑。

ddf510e2-d08d-11ed-bfe3-dac502259ad0.png

矩陣下方是時鐘關系表格,可以就各種條件進行篩選和排序,方便定位 CDC 路徑。建議的做法是:首先,對“Common Primary Clock”排序(顯示為 Yes 或 No),這么做可以快速鑒別出那些安全和不安全的 CDC 路徑,接著觀察對應的“Inter-Clock Constraints”欄內的內容,判斷已讀入的XDC 中是否對這類路徑進行了合理的約束。

de1c99f0-d08d-11ed-bfe3-dac502259ad0.png

第二步,可以對“Path Req (WNS)”由小到大進行排序,找到那些數值特別?。ɡ缧∮?100ps)或是顯示 為“Unexpanded”的 CDC 路徑,結合是否共享“CommonPrimary Clock”來鑒別此類路徑,作出合理的約束。

過小的 Path Req (WNS)一般都表示此類跨時鐘域路徑缺少異步時鐘關系或其它時序例外的約束,如果兩 個時鐘連“Common Primary Clock”也不共享,則 100%可以確認為異步時鐘,應該加上相應的時鐘關系約束。

顯示為“Unexpanded”的時鐘關系,表示 Vivado 在一定長度(缺省為 1000)的周期內都沒有為兩個時鐘的頻率和相位找到固定的關系,則無法推導出相應的 Path Req 約束值。此類 CDC 需要特別留意,也要加上異 步時鐘關系約束。

這個矩陣還支持交互式的時序分析,選中任意一個方框,右鍵顯示下拉菜單:選擇 Report Timing,會報 告出這一格代表的時鐘域(本時鐘域或是跨時鐘域)內最差的時序路徑;選擇Set Clock Groups 則可以設置時鐘關系約束并添加到 XDC 文件中。

CDC 的設計與約束

CDC 路徑在 FPGA 設計中普遍存在,在設置 相應的約束前,必須了解設計中采取了怎樣的方法來處理跨時鐘域路徑。

簡單同步器

對于單根跨時鐘域路徑,一般采用簡單同步器(Simple Synchronizer),就是由至少兩級 CE 端 和 Reset/Clear 端接死的寄存器序列來處理。

de765e86-d08d-11ed-bfe3-dac502259ad0.png

這種情況下,為了更長的平均無故障時間 MTBF(Mean Time Between Failures),需要配合一個 ASYNC_REG的約束,把用作簡單同步器的多個寄存器放入同一個 SLICE,以降低走線延時的不一致和不確定性。

set_property ASYNC_REG TRUE [get_cells [list sync0_reg sync1_reg]]

在 XDC 中,對于此類設計的 CDC 路徑,可以采用 set_clock_groups 來約束。

dea2c372-d08d-11ed-bfe3-dac502259ad0.png

用 FIFO 隔離 CDC

在總線跨時鐘域的設計中,通常會使用異步 FIFO 來隔離。根據 FIFO 的實現方式不同,需要加入不同的 XDC 約束。

Build-in 硬核 FIFO

這種 FIFO 實際上就是用 FPGA 內部的 BRAM 來搭建,所有控制邏輯都在 BRAM 內部,是推薦的 FIFO 實現方式。其所需的 XDC 也相對簡單,只要像上述簡單同步器的時鐘關系約束一樣用 set_clock_groups 將讀寫時鐘約束為異步即可。

帶有格雷碼控制的 FIFO

為了在亞穩態下做讀寫指針抽樣也能正確判斷空滿狀態,設計中也常用一種帶有格雷碼控制的 FIFO 來實現異步時鐘域的隔離。計數器和讀寫指針等需要用 BRAM 外部的邏輯搭建,這樣的結構就不能簡單約束 set_clock_groups,還要考慮這些外部邏輯如何約束。

如下圖所示 FIFO,在存儲器外部有一些用 FPGA 邏輯搭建的寫指針和讀指針控制,分屬不同的時鐘域,存在跨時鐘域的時序路徑。

此時如果僅將讀寫時鐘用 set_clock_groups 約束為異步時鐘,相當于設置從 A 到 B 和從 B 到 A 的路徑全部為 false path。根據《XDC 約束技巧之時鐘篇》所列,false path 的優先級最高,很顯然這么做會導致所有 跨讀寫時鐘域的路徑全部不做時序分析,讀寫指針和相關控制邏輯也就失去了存在的意義。

def40aac-d08d-11ed-bfe3-dac502259ad0.png

所以建議的做法是不設 set_clock_groups 約束,轉而采用 set_max_delay 來約束這些跨時鐘域路徑。以寫入側舉例,一個基本的原則就是約束從 cell1 到 cell2 的路徑之間的延時等于或略小于 cell2 的驅動時鐘一個周期的值。讀出側的約束同理。

set_max_delay $delay –from [get_cells cell1] –to [get_cells cell2] –datapath_only

如果用戶使用 Vivado 的 IP Catalog 來產生此類FIFO,這樣的 XDC 會隨 IP 的源代碼一起輸出(如下所示),使用者僅需注意確保這個 FIFO 的讀寫時鐘域沒有被用戶自己的 XDC 約束為 false path 或是異步 clock groups 。

df2f620a-d08d-11ed-bfe3-dac502259ad0.png

自 2013.4 開始,Vivado 中還提供一個稱作 methodology_checks 的 DRC 檢查,其中包含有對此類異步FIFO 的 max delay 約束與時鐘域 clock groups 約束的沖突檢查。

CDC 約束方案的對比

CDC 路徑在 FPGA 設計中普遍存在,不少公司和研發人員都有自己偏愛的約束方式,這些方式通常有各自適用的環境,當然也各有利弊。

全部忽略的約束

最大化全部忽略 CDC 路徑的約束,即采用 set_clock_groups 或是 set_false_path 對時鐘關系進行約束, 從而對跨時鐘域的路徑全部忽略。

示例:set_clock_groups -asynchronous -group clkA -group clkB

優勢:簡單、快速、執行效率高。

劣勢:會掩蓋時序報告中所有的跨時鐘域路徑,容易誤傷,不利于時序分析。

使用 datapath_only 約束

datapath_only 是從 ISE 時代的 UCF 中繼承過來的約束,在 XDC 中必須作為一個選項跟 set_max_delay 配合使用,可以約束在時鐘之間,也可以對具體路徑進行約束。

示例:set_max_delay 10 -datapath_only -from clkA -to clkB

優勢:簡便、執行效率較高。

劣勢:1) 需要特別留意是否設置了過于嚴格的約束,因為使用者經常會使用較快的時鐘周期來約束跨時鐘域路徑 。2) 注意約束優先級的關系,是否跟設計中其它的約束有沖突。3) set_max_delay 而沒 有配套設置 set_min_delay 的情況下,同一路徑只做 setup 分析而不做 hold 分析。

逐條進行時序例外約束

對設計中的 CDC 路徑分組或逐條分析,采用不同的時序例外約束,如 set_false_path,set_max_delay 和 set_multicycle_path 等來約束。

示例:set_false_path -from [get_cells a/b/c/*_meta*] -to [get_cellsa/b/c/*_sync*]

優勢:靈活、針對性好、便于時序分析和調試。

劣勢:1) 逐條約束會占用大量時間來調試和分析,效率低下。2) 時序例外的優先級比較復雜,多種時序例外約束共存的情況下,很容易產生意想不到的沖突,進一步增加調試時間,降低效率。3) 這么做極容易產生臃腫的 XDC 約束文件,而且時序例外的執行更耗內存,直接導致工具運行時間變長。

小結

CDC 路徑的分析和約束不僅在FPGA 設計中至關重要,也是數字電路設計領域一個非常重要的命題。IP 提供商、EDA 公司都有不少關于 CDC 的技術文檔。Vivado 相比于 Xilinx 上一代產品 ISE,已經在 CDC 的鑒別和分析方面有了很大改進,XDC 相比于 UCF,在 CDC 路徑的約束上也更為高效,覆蓋率更高。

希望本篇短文可以幫助 Vivado 的用戶快速掌握對 FPGA 設計中 CDC 路徑的鑒別、分析和約束方法,提高設計效率。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1637

    文章

    21842

    瀏覽量

    608540
  • 時鐘
    +關注

    關注

    11

    文章

    1759

    瀏覽量

    132206
  • 約束
    +關注

    關注

    0

    文章

    82

    瀏覽量

    12816
  • UCF
    UCF
    +關注

    關注

    0

    文章

    9

    瀏覽量

    9763
  • xdc
    xdc
    +關注

    關注

    1

    文章

    24

    瀏覽量

    5971

原文標題:XDC 約束技巧之CDC篇

文章出處:【微信號:FPGA算法工程師,微信公眾號:FPGA算法工程師】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    關于XDC約束文件,你需要知道的幾點

    作者:?圓宵?FPGA那點事兒 在ISE時代,使用的是UCF約束文件。從Vivado開始,XDC成了唯一支持的約束標準。XDC除了遵循工業界的通行標準SDC(Synopsys Desi
    發表于 02-08 02:10 ?5365次閱讀

    FPGA設計約束技巧XDC約束I/O (上)

    從UCF到XDC的轉換過程中,最具挑戰的可以說便是本文將要討論的I/O約束了。 I/O 約束的語法 XDC 中可以用于 I/O 約束的命令包
    發表于 11-17 18:54 ?1.3w次閱讀
    FPGA設計<b class='flag-5'>約束</b>技巧<b class='flag-5'>之</b><b class='flag-5'>XDC</b><b class='flag-5'>約束</b><b class='flag-5'>之</b>I/O<b class='flag-5'>篇</b> (上)

    FPGA設計約束技巧XDC約束I/O(下)

    討論的I/O約束了。繼《XDC約束技巧I/O(上)》?詳細描述了如何設置Input接口約束
    發表于 11-17 19:01 ?7594次閱讀
    FPGA設計<b class='flag-5'>約束</b>技巧<b class='flag-5'>之</b><b class='flag-5'>XDC</b><b class='flag-5'>約束</b><b class='flag-5'>之</b>I/O<b class='flag-5'>篇</b>(下)

    XDC的時鐘約束及優勢

    Xilinx?的新一代設計套件 Vivado 中引入了全新的約束文件 XDC,在很多規則和技巧上都跟上一代產品 ISE 中支持的 UCF 大不相同,給使用者帶來許多額外挑戰。Xilinx 工具專家
    發表于 11-18 03:59 ?3724次閱讀

    XDC路徑的鑒別、分析和約束方法

    我們知道XDC與UCF的根本區別之一就是對跨時鐘域路徑(CDC)的缺省認識不同,那么碰到FPGA設計中常見的CDC路徑,到底應該怎么約束,在設計上又要注意些什么才能保證時序報告的準確性
    發表于 11-18 04:04 ?6491次閱讀
    <b class='flag-5'>XDC</b>路徑的鑒別、分析和<b class='flag-5'>約束</b>方法

    XDC約束及物理約束的介紹

    觀看視頻,了解和學習有關XDC約束,包括時序,以及物理約束相關知識。
    的頭像 發表于 01-07 07:10 ?6366次閱讀
    <b class='flag-5'>XDC</b><b class='flag-5'>約束</b>及物理<b class='flag-5'>約束</b>的介紹

    如何將Altera的SDC約束轉換為Xilinx XDC約束

    了解如何將Altera的SDC約束轉換為Xilinx XDC約束,以及需要更改或修改哪些約束以使Altera的約束適用于Vivado設計軟件
    的頭像 發表于 11-27 07:17 ?5243次閱讀

    CDC設計和約束技巧

    建議的做法是:首先,對“Common Primary Clock”排序(顯示為Yes 或No),這么做可以快速鑒別出那些安全和不安全的CDC路徑,接著觀察對應的“Inter-Clock Constraints”欄內的內容,判斷已讀入的XDC中是否對這類路徑進行了合理的
    的頭像 發表于 07-24 17:19 ?5716次閱讀
    <b class='flag-5'>CDC</b>設計和<b class='flag-5'>約束</b>技巧

    XDC時鐘約束的三種基本語法

    XDC 是 Xilinx Design Constraints 的簡寫,但其基礎語法來源于業界統一的約束規范SDC。XDC 在本質上就是 Tcl 語言,但其僅支持基本的 Tcl 語法如變量、列表
    的頭像 發表于 01-30 17:29 ?9853次閱讀

    Vivado IDE全面了解XDC文件的約束順序

    Vivado IDE約束管理器將任何已編輯的約束保存回XDC文件中的原始位置,但不會保存在Tcl腳本中。 任何新約束都保存在標記為目標的XDC
    的頭像 發表于 11-13 10:53 ?4365次閱讀
    Vivado IDE全面了解<b class='flag-5'>XDC</b>文件的<b class='flag-5'>約束</b>順序

    FPGA知識xdc約束優先級

    xdc約束優先級 在xdc文件中,按約束的先后順序依次被執行,因此,針對同一個時鐘的不同約束,只有最后一條
    的頭像 發表于 11-16 17:37 ?2035次閱讀

    Vivado中XDC文件的約束順序

    使得問題更加復雜,比如一個設計使用了不同的IP核或者由不同團隊開發的模塊。不管設計者在設計中,使用了一個還是多個XDC文件,Xilinx推薦設計者使用下面的順序來組織約束。XDC文件的約束
    的頭像 發表于 10-13 16:56 ?7076次閱讀

    XDC約束技巧之時鐘

    Xilinx的新一代設計套件Vivado中引入了全新的約束文件 XDC,在很多規則和技巧上都跟上一代產品 ISE 中支持的 UCF 大不相同,給使用者帶來許多額外挑戰。Xilinx 工具專家告訴你,其實用好 XDC 很容易,只需
    的頭像 發表于 03-28 09:51 ?2868次閱讀

    XDC約束技巧I/O(上)

    XDC 約束技巧之時鐘》中曾對 I/O 約束做過簡要概括,相比較而言,XDC 中的 I/O 約束
    的頭像 發表于 04-06 09:53 ?1539次閱讀

    XDC約束技巧I/O(下)

    繼《XDC 約束技巧 I/O (上)》詳細描述了如何設置 Input 接口 約束后,我們接著來聊聊怎樣設置 Output 接口
    的頭像 發表于 04-10 11:00 ?1322次閱讀
    主站蜘蛛池模板: a圾片目录大全 | 国产成人精品永久免费视频 | 99久久精品国产国产毛片 | 欧美精品AV一区二区无码 | 久青草国产在线视频亚瑟影视 | 毛片手机在线观看 | 欧美内射深插日本少妇 | 男女XX00上下抽搐动态图 | 免费的好黄的漫画 | 中文成人在线视频 | 伊人无码高清 | 久久天堂成人影院 | 中国农村真实bbwbbwbbw | 高h原耽肉汁动漫视频 | 日本九九热在线观看官网 | JIZJIZJIZ 日本老师水多 | 亚洲国产韩国欧美在线不卡 | 亚洲国产成人99精品激情在线 | 嫩草影院精品视频在线观看 | 亚洲欧美中文字幕5发布 | 性xxxx直播放免费 | 亚洲 欧美无码原创区 | 99香蕉精品视频在线观看 | 光棍天堂在线a | 亚洲无遮挡无码A片在线 | 在线观看亚洲 日韩 国产 | 国产全肉乱妇杂乱视频 | 轻轻cao | 亚洲麻豆精品成人A在线观看 | 小箩莉奶水四溅小说 | 麻豆免费版 | 国产成人教育视频在线观看 | 国产露脸无码A区久久 | 伊人网久久网 | 久久国产亚洲电影天堂 | 国产免费看片 | 脔到她哭H粗话HWWW男男动漫 | 亚洲精品乱码久久久久久中文字幕 | 国产全部视频列表支持手机 | 国产日韩亚洲精品视频 | 国产色综合久久无码有码 |