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

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

2015-03-05
關(guān)鍵詞: Xilinx 約束技巧 CDC

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

CDC的定義與分類

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

安全的CDC路徑

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

11.png

不安全的CDC路徑

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

22.png

在Vivado中分析CDC

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

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

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

33.png

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

44.png

第二步,可以對"Path Req (WNS)"由小到大進行排序,找到那些數(shù)值特別小(例如小于100ps)或是顯示為"Unexpanded"的CDC路徑,結(jié)合是否共享"Common Primary Clock"來鑒別此類路徑,作出合理的約束。

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

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

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

CDC的設(shè)計與約束

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

簡單同步器

對于單根跨時鐘域路徑,一般采用簡單同步器(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中,對于此類設(shè)計的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

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

Build-in硬核FIFO

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

帶有格雷碼控制的FIFO

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

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

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

77.png

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

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

如果用戶使用Vivado的IP Catalog來產(chǎn)生此類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設(shè)計中普遍存在,不少公司和研發(fā)人員都有自己偏愛的約束方式,這些方式通常有各自適用的環(huán)境,當然也各有利弊。

全部忽略的約束

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

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

● 優(yōu)勢:簡單、快速、執(zhí)行效率高。

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

使用datapath_only約束

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

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

● 優(yōu)勢:簡便、執(zhí)行效率較高。

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

逐條進行時序例外約束

對設(shè)計中的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*]

● 優(yōu)勢:靈活、針對性好、便于時序分析和調(diào)試。

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

小結(jié)

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

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

allyzhou.jpg

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


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
国产精品久久99| 日韩视频精品在线| 欧美日韩国产美| 欧美成人精品福利| 免费不卡视频| 美女主播视频一区| 老司机午夜精品视频在线观看| 久久av二区| 久久久国产精品一区二区三区| 欧美伊人久久| 欧美在线视频一区二区三区| 午夜欧美不卡精品aaaaa| 亚洲色图综合久久| 国产精品99久久久久久有的能看| 99热免费精品在线观看| 日韩一区二区免费高清| 日韩一本二本av| 99视频在线精品国自产拍免费观看| 亚洲三级视频在线观看| 亚洲精品国产精品国自产在线| 亚洲黄色精品| 亚洲日本一区二区| 日韩一级大片| 一区二区日韩精品| 中日韩美女免费视频网站在线观看| 99亚洲视频| 亚洲一区二区三区免费在线观看| 亚洲一区视频在线| 亚洲在线电影| 欧美综合激情网| 久久综合色播五月| 欧美黄色免费网站| 欧美日韩视频专区在线播放 | 激情综合网址| 亚洲国产综合视频在线观看| 日韩视频在线免费| 亚洲午夜高清视频| 羞羞漫画18久久大片| 久久国产黑丝| 亚洲美女诱惑| 亚洲欧美日韩另类精品一区二区三区 | 欧美日韩国产一区| 国产精品大片免费观看| 国产伦精品一区二区三| 红桃视频一区| 亚洲精品男同| 香蕉av777xxx色综合一区| 亚洲国产天堂久久国产91| 一区二区欧美精品| 欧美在线免费视频| 欧美成人精品影院| 国产精品国产三级国产专播品爱网| 国产精品一二三四区| 韩日午夜在线资源一区二区| 亚洲精品国产品国语在线app| 亚洲一区二区三区久久| 久久精品国产在热久久| 一区二区av在线| 久久国产精品毛片| 欧美日本亚洲视频| 国产视频久久久久久久| 亚洲精品久久久久久久久久久久久| 亚洲一二三区精品| 亚洲国产精品女人久久久| 一道本一区二区| 久久久国产一区二区三区| 欧美日韩系列| 狠狠噜噜久久| 一本色道久久加勒比精品| 久久精品91久久久久久再现| 亚洲一区二区三区中文字幕在线| 久久视频一区| 国产精品九九久久久久久久| 亚洲第一福利社区| 亚洲欧美日韩国产综合在线| 日韩午夜av在线| 久久精品国产综合| 欧美视频精品在线| 在线观看成人一级片| 亚洲一区网站| aaa亚洲精品一二三区| 久久久99久久精品女同性| 欧美日韩一区不卡| 影音先锋日韩资源| 羞羞漫画18久久大片| 亚洲一区二区在线免费观看| 欧美成人国产| 国语自产精品视频在线看抢先版结局 | 久久精品91久久香蕉加勒比| 亚洲欧美国产va在线影院| 欧美国产日本在线| 国产一区二区三区免费不卡| 一区二区激情视频| 亚洲美女精品一区| 狼狼综合久久久久综合网 | 在线一区二区三区四区| 米奇777超碰欧美日韩亚洲| 国产欧美精品一区aⅴ影院| 亚洲精品中文在线| 最新高清无码专区| 久久野战av| 国产亚洲综合性久久久影院| 亚洲一区亚洲二区| 亚洲一二三区在线观看| 欧美日本久久| 亚洲欧洲日韩女同| 91久久精品美女高潮| 久久久久九九视频| 国产欧美日韩一区| 亚洲欧美日韩综合aⅴ视频| 亚洲中字黄色| 国产精品www.| 一个人看的www久久| 一本一本大道香蕉久在线精品| 欧美顶级少妇做爰| 亚洲黄色在线| 日韩午夜av电影| 欧美精品久久天天躁| 亚洲国产欧美国产综合一区| 亚洲国产专区| 欧美高清免费| 亚洲精品视频一区| 一区二区av| 国产精品magnet| 亚洲天堂成人在线观看| 亚洲欧美日韩久久精品 | 亚洲麻豆一区| 亚洲永久免费av| 国产精品日韩欧美一区二区| 亚洲午夜激情网页| 欧美一二三视频| 国产日韩精品久久久| 欧美一区影院| 麻豆91精品| 亚洲肉体裸体xxxx137| 夜夜精品视频| 国产精品videosex极品| 亚洲综合色婷婷| 久久精品91久久香蕉加勒比| 狠狠做深爱婷婷久久综合一区| 91久久线看在观草草青青| 欧美激情精品久久久久久免费印度 | 久久精品亚洲一区| 在线成人亚洲| aa级大片欧美| 国产精品成人在线| 午夜日韩激情| 免费亚洲一区二区| 亚洲伦理在线观看| 羞羞视频在线观看欧美| 韩国三级在线一区| 亚洲精品国产精品国自产观看浪潮| 欧美日本在线一区| 亚洲私人影院在线观看| 久久精品免费| 亚洲二区视频在线| 在线亚洲美日韩| 国产日产欧美精品| 91久久亚洲| 国产精品久久久久久久久久久久久久 | 欧美成人免费va影院高清| 99国产精品久久久久老师| 亚洲欧美日韩人成在线播放| 国产一区二区高清视频| 亚洲精品女av网站| 国产精品日韩欧美一区二区三区| 久久成人精品无人区| 欧美人成在线视频| 亚洲欧美影音先锋| 欧美二区视频| 亚洲资源av| 欧美巨乳在线观看| 欧美一区二区三区播放老司机| 欧美激情综合五月色丁香| 亚洲欧美日韩国产综合| 欧美高清在线一区二区| 亚洲视频一区二区在线观看| 久久在线视频在线| 中文av字幕一区| 美国成人毛片| 亚洲无亚洲人成网站77777| 久久综合九色| 亚洲一区二区久久| 欧美激情女人20p| 午夜在线精品偷拍| 欧美日韩午夜剧场| 久久精品首页| 国产精品毛片一区二区三区| 亚洲国产精品精华液网站| 国产精品第2页| 亚洲精品国产拍免费91在线| 国产伦精品一区二区三| 一个人看的www久久| 狠狠色丁香久久婷婷综合丁香 | 欧美一区二区精品| 亚洲精品网址在线观看| 久久婷婷国产综合国色天香| 一区二区三区福利| 欧美高清影院| 久久国产婷婷国产香蕉|