《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 解決方案 > 【Vivado使用誤區與進階】XDC約束技巧——CDC篇

【Vivado使用誤區與進階】XDC約束技巧——CDC篇

2015-03-05
關鍵詞: Xilinx 約束技巧 CDC

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

CDC的定義與分類

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

安全的CDC路徑

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

11.png

不安全的CDC路徑

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

22.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路徑。

33.png

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

44.png

第二步,可以對"Path Req (WNS)"由小到大進行排序,找到那些數值特別?。ɡ缧∮?00ps)或是顯示為"Unexpanded"的CDC路徑,結合是否共享"Common Primary 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端接死的寄存器序列來處理。

55.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來約束。

66.png

       set_clock_groups -asynchronous -group [get_clocks -include_generated_clocks clk_oxo ] \

                                                             -group [get_clocks -include_generated_clocks clk_core ]

用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的優先級最高,很顯然這么做會導致所有跨讀寫時鐘域的路徑全部不做時序分析,讀寫指針和相關控制邏輯也就失去了存在的意義。

77.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 。

88.png

       set_max_delay -from [get_cells …../rd_pntr_gc_reg[*]] -to [get_cells …../Q_reg_reg[*]] \

                                -datapath_only [get_property PERIOD $rd_clock]

       set_max_delay -from [get_cells …../wr_pntr_gc_reg[*]] -to [get_cells …../Q_reg_reg[*]] \

                                -datapath_only [get_property PERIOD $wr_clock]

自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_cells a/b/c/*_sync*]

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

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

小結

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

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

allyzhou.jpg

Ally Zhou 2014-9-28 于Xilinx上海Office


本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          欧美精品麻豆| 欧美一级黄色录像| 亚洲高清久久网| 西西裸体人体做爰大胆久久久| 欧美午夜精品一区二区三区| 欧美日韩国产成人高清视频| 蜜桃精品久久久久久久免费影院| 亚洲天堂视频在线观看| 欧美二区视频| 免费美女久久99| 欧美精品久久久久久久免费观看| 亚洲区国产区| 国产在线视频欧美一区二区三区| 欧美日韩亚洲三区| 欧美激情a∨在线视频播放| 亚洲图片欧美一区| 久久国产精品电影| 国产午夜精品在线观看| 激情综合色综合久久综合| 国产精品www| 一区在线免费观看| 免费在线播放第一区高清av| 亚洲人体大胆视频| 欧美日韩在线一区| 一区二区三区在线视频免费观看| 91久久久久久| 亚洲午夜精品久久久久久app| 欧美激情欧美狂野欧美精品| 欧美一区二区精品久久911| 国产三级欧美三级日产三级99| 国产在线视频欧美一区二区三区| 久久一区免费| 国产精品久久久久久久久动漫| 国内成人自拍视频| 老司机精品福利视频| 国产精品久久婷婷六月丁香| 亚洲国产91色在线| 在线观看一区| 欧美日韩色婷婷| 国自产拍偷拍福利精品免费一| 国产精品福利在线观看| 亚洲六月丁香色婷婷综合久久| 先锋a资源在线看亚洲| 国产精品综合色区在线观看| 樱桃国产成人精品视频| 亚洲欧洲一区二区三区| 欧美aaaaaaaa牛牛影院| 亚洲视屏一区| 欧美日韩在线视频首页| 久久综合免费视频影院| 久久aⅴ国产欧美74aaa| 亚洲一区二区三区久久| 久久综合福利| 亚洲精一区二区三区| 久久久精品国产一区二区三区| 欧美三级日韩三级国产三级| 国产有码一区二区| 欧美日韩午夜剧场| 亚洲国产欧美国产综合一区| 亚洲美女av在线播放| 欧美高清日韩| 国产精品视频福利| 国产精品美女视频网站| 欧美日韩不卡合集视频| 久久免费一区| 欧美阿v一级看视频| 亚洲三级影片| 一区二区精品在线| 性欧美xxxx大乳国产app| 亚洲国产精品成人| 亚洲精品国精品久久99热| 欧美日本精品| 国产精品久久久爽爽爽麻豆色哟哟| 国产日韩精品一区二区浪潮av| 在线亚洲免费视频| 亚洲精品久久久久久久久久久久| 亚洲精品日韩一| 亚洲美女在线一区| 亚洲自啪免费| 免费在线亚洲| 麻豆成人在线| 久久嫩草精品久久久精品| 午夜免费在线观看精品视频| 能在线观看的日韩av| 亚洲国产精品成人久久综合一区| 国产精品一区二区三区观看| 欧美成人首页| 国产精品美女www爽爽爽视频| 欧美色道久久88综合亚洲精品| 亚洲欧美综合国产精品一区| 免费在线观看日韩欧美| 欧美精品一卡二卡| 亚洲主播在线播放| 午夜精品一区二区三区在线视| 久久久亚洲国产美女国产盗摄| 黄色一区二区三区四区| 免费日韩av| 99国产精品国产精品毛片| 韩国三级在线一区| 久久久精彩视频| 欧美大片一区二区三区| 亚洲视频自拍偷拍| 亚洲欧美日本视频在线观看| 在线观看日韩一区| 蜜桃av噜噜一区二区三区| 亚洲一二三区在线| 欧美精品一区二区三区蜜桃| 国产日产高清欧美一区二区三区| 欧美视频精品在线观看| 久久久精品国产99久久精品芒果| 欧美激情第五页| 黑人巨大精品欧美黑白配亚洲| 欧美资源在线观看| 国产精品久久久久影院亚瑟| 欧美在线观看一区二区| 欧美极品aⅴ影院| 亚洲午夜激情网页| 最新国产の精品合集bt伙计| 欧美日韩国产探花| 亚洲电影激情视频网站| 久久一区国产| 欧美国产精品日韩| 国产精品久久久久久户外露出| 欧美国产一区二区| 欧美一区二区性| 国产精品高精视频免费| 欧美成人精品在线播放| 国产综合精品| 欧美大片va欧美在线播放| 日韩午夜精品视频| 国产精品美女www爽爽爽| 国产精品sss| 国产精品福利影院| 久久本道综合色狠狠五月| 一区二区三区国产在线| 欧美日韩一区二区精品| 欧美激情亚洲国产| 欧美午夜精品久久久久久超碰| 亚洲一二三区视频在线观看| 亚洲视频在线观看三级| 国产精品久久久久9999吃药| 国产精品xvideos88| 亚洲手机在线| 亚洲二区视频在线| 国产日韩亚洲欧美综合| 欧美成人精品在线观看| 亚洲午夜影视影院在线观看| 久久久91精品国产| 一区二区三区回区在观看免费视频| 欧美99在线视频观看| 欧美高清在线一区二区| 欧美成人一区二区| 国产精品二区影院| 亚洲激情网址| 国产精品久久久久久久7电影| 亚洲小说欧美另类婷婷| 亚洲精品乱码久久久久久黑人| 亚洲国产精品日韩| 欧美一区二区三区在线观看视频| 国内精品模特av私拍在线观看| 国产精品毛片va一区二区三区| 欧美精品一区二区三区蜜臀| 亚洲国产一区二区在线| 欧美一区二区三区在线| 老色鬼久久亚洲一区二区| 亚洲男女毛片无遮挡| 欧美日韩hd| 久久久久国产精品一区| 国产精品va在线| 中文日韩在线| 国产综合激情| 国产精品久在线观看| 亚洲欧美区自拍先锋| 六月丁香综合| 国内外成人免费激情在线视频网站| 欧美三级资源在线| 一区二区三区日韩在线观看| 两个人的视频www国产精品| 久久久久久自在自线| 精品999在线播放| 91久久国产综合久久| 国产一区二区三区久久悠悠色av| 99成人免费视频| 国产精品扒开腿爽爽爽视频| 欧美日韩一二区| 激情国产一区二区| 国产日韩在线看片| 亚洲狼人综合| 国产欧美一区二区三区视频| 久久久久久**毛片大全| 欧美日韩中文| 久久精品二区三区| 可以看av的网站久久看| 亚洲欧美日韩国产综合精品二区| 亚洲激情一区二区| 亚洲一区国产视频| 亚洲最快最全在线视频| 99一区二区| 久久精品综合网| 亚洲国产成人精品久久久国产成人一区| 欧美激情一区二区三区不卡| 国产日韩欧美中文| 国产精品视频yy9299一区| 亚洲影视中文字幕| 亚洲图色在线| 亚洲一区二区日本| 亚洲精品久久嫩草网站秘色| 久久精品在线视频| 欧美专区福利在线| 在线综合欧美| 国产精品高清免费在线观看| 欧美一级二级三级蜜桃| 欧美经典一区二区| 亚洲综合不卡| 国产精品国产成人国产三级| 狠狠干成人综合网| 国产在线拍偷自揄拍精品| 亚洲一区二区黄| 午夜精品久久久久久久蜜桃app| 欧美精品在线一区二区| 一区二区欧美亚洲| 亚洲天堂av综合网| 欧美伦理视频网站| 国产精品欧美精品| 一色屋精品视频在线看| 另类专区欧美制服同性| 久久久久国产成人精品亚洲午夜| 欧美激情精品久久久久久黑人| 欧美一区国产在线| 国产原创一区二区| 欧美久久一级| 韩曰欧美视频免费观看| 欧美日韩的一区二区| 国产日韩一区二区三区在线播放| 欧美成人r级一区二区三区| 国产亚洲一区二区三区在线播放| 一区二区三区毛片| 美乳少妇欧美精品| 欧美片第一页| 精品福利电影| 国产精品一级久久久| 一区二区三区四区国产精品| 久久阴道视频| 日韩一级视频免费观看在线| 亚洲视频自拍偷拍| 欧美尤物巨大精品爽| 欧美中日韩免费视频| 亚洲制服av| 国产精品美女一区二区在线观看| 欧美日韩色综合| 久久中文字幕导航| 伊人狠狠色丁香综合尤物| 1024精品一区二区三区| 日韩特黄影片| 免费亚洲网站| 欧美激情 亚洲a∨综合| 亚洲欧洲在线一区| 欧美呦呦网站| 午夜伦欧美伦电影理论片| 欧美一二三区在线观看| 欧美成人精品在线播放| 99精品视频免费观看视频| 久久深夜福利免费观看| 欧美波霸影院| 99国产精品99久久久久久| 国产精品私拍pans大尺度在线| 亚洲午夜精品在线| 欧美日韩在线播放三区四区| 亚洲高清视频在线观看| 蜜臀av性久久久久蜜臀aⅴ四虎| 影音先锋亚洲精品| 在线视频免费在线观看一区二区| 欧美精品一区二区蜜臀亚洲| 亚洲毛片在线看| 一区二区三区高清视频在线观看| 欧美激情精品久久久六区热门| 亚洲精一区二区三区| 亚洲一区视频在线观看视频| 久久av一区二区三区漫画| 在线观看欧美日韩国产| 亚洲欧美日韩中文在线制服| 亚洲精品在线看| 国产婷婷色综合av蜜臀av| 久久女同精品一区二区| 国产美女精品免费电影| 欧美色大人视频| 91久久精品一区| 欧美日韩一本到| 久久久国产亚洲精品| 亚洲国产色一区| 久久综合久久综合久久| 欧美激情视频在线播放| 欧美国产在线电影| 欧美α欧美αv大片| 一区二区高清视频在线观看| 在线亚洲一区二区| 在线看欧美日韩| 久久久久久尹人网香蕉| 国产日韩av在线播放| 久久免费国产精品1| 亚洲视频狠狠| 香蕉精品999视频一区二区| 亚洲电影自拍| 国自产拍偷拍福利精品免费一| 欧美激情按摩在线| 国产亚洲在线观看| 国产偷国产偷精品高清尤物| 欧美片第一页| 国产精品久久久久久久久免费樱桃| 欧美韩日一区二区| 欧美性事在线| 亚洲精选视频免费看| 亚洲成人影音| 国产欧美日韩视频一区二区三区| 亚洲一区二区久久| 亚洲欧洲久久| 欧美成人免费在线| 久久爱www| 国产精品白丝av嫩草影院| 欧美一区二区三区四区在线观看| 亚洲国产成人一区| 永久555www成人免费| 欧美日韩视频免费播放| 国产午夜精品一区二区三区欧美| 一本色道久久综合精品竹菊| 亚洲一区二区三区久久| 欧美精品久久99久久在免费线| 国产美女精品人人做人人爽|