




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上讓 XDC 時(shí)序約束為您效力作者:Adam Taylor e2v 公司首席工程師 時(shí)序和布局約束是實(shí)現(xiàn)設(shè)計(jì)要求的關(guān)鍵因素。本文是介紹其使用方法的入門讀物。完成 RTL 設(shè)計(jì)只是 FPGA 設(shè)計(jì)量產(chǎn)準(zhǔn)備工作中的一部分。接下來的挑戰(zhàn)是確保設(shè)計(jì)滿足芯片內(nèi)的時(shí)序和性能要求。為此,您經(jīng)常需要定義時(shí)序和布局約束。我們了解一下在基于賽靈思 FPGA 和 SoC 設(shè)計(jì)系統(tǒng)時(shí)如何創(chuàng)建和使用這兩種約束。時(shí)序約束最基本的時(shí)序約束定義了系統(tǒng)時(shí)鐘的工作頻率。然而,更高級的約束能建立時(shí)鐘路徑之間的關(guān)系。工程師利用這類約束確定是否有必要對路徑進(jìn)行分析,或者在時(shí)鐘路徑之間不存在有效的時(shí)序關(guān)
2、系時(shí)忽視路徑。默認(rèn)情況下,賽靈思的 Vivado® 設(shè)計(jì)套件會(huì)分析所有關(guān)系。然而,并非設(shè)計(jì)中的所有時(shí)鐘之間都有可以準(zhǔn)確分析的時(shí)序關(guān)系。例如當(dāng)時(shí)鐘是異步的,就無法準(zhǔn)確確定它們的相位,如圖 1 所示。圖 1時(shí)鐘域 CLK1 和 CLK2 相互之間異步。您可通過在約束文件中聲明時(shí)鐘組來管理時(shí)鐘路徑之間的關(guān)系。當(dāng)聲明時(shí)鐘組時(shí),Vivado 工具不會(huì)對組內(nèi)定義的時(shí)鐘之間的任何方向執(zhí)行時(shí)序分析。為了有助于生成時(shí)序約束,Vivado 工具將時(shí)鐘定義為三種類型:同步、異步或不可擴(kuò)展。 同步時(shí)鐘具有可預(yù)測的時(shí)序/相位關(guān)系。通常主時(shí)鐘及其衍生時(shí)鐘符合這種特性,因?yàn)樗鼈兙哂泄驳母鹪春椭芷凇?異步時(shí)鐘之
3、間不具備可預(yù)測的時(shí)序/相位關(guān)系。通常不同的主時(shí)鐘(及其衍生時(shí)鐘)符合這種特性。異步時(shí)鐘有不同的起源。 如果超過1,000個(gè)周期后,仍無法確定公共周期,那么兩個(gè)時(shí)鐘就是不可擴(kuò)展的。如果是這種情況,將使用 1,000 個(gè)周期內(nèi)的最差建立時(shí)間關(guān)系。不過,無法保證這就是實(shí)際的最差情況。使用 Vivado 生成的時(shí)鐘報(bào)告來確定您所處理的時(shí)鐘是哪種類型。該報(bào)告可幫助您識(shí)別異步和不可擴(kuò)展時(shí)鐘。聲明多周期路徑能實(shí)現(xiàn)更合適而且要求放松的時(shí)序分析,從而讓時(shí)序引擎集中處理其它更關(guān)鍵的路徑。識(shí)別出這些時(shí)鐘后,您就可利用“set clock group”約束禁止它們之間的時(shí)序分析。Vivado 套件使用的是賽靈思設(shè)計(jì)約
4、束 (XDC),其基于廣泛使用的 Tcl 約束格式的 Synopsys 設(shè)計(jì)約束 (SDC)。通過 XDC 約束,您可使用以下命令定義時(shí)鐘組:set_clock_groups -name -logically_exclusive -physically_exclusive -asynchronous -group-name 是為組賦予的名稱。-group 選項(xiàng)是定義組成員(即沒有時(shí)序關(guān)系的時(shí)鐘)的位置。當(dāng)有多個(gè)用來驅(qū)動(dòng)時(shí)鐘樹的時(shí)鐘源可供選擇,包括 BUFGMUX 和 BUFGCTL,應(yīng)使用 logically 和 physically exclusive 選項(xiàng)。從而,這些時(shí)鐘不能同時(shí)出現(xiàn)在時(shí)鐘
5、樹上。所以,我們不希望 Vivado 分析這些時(shí)鐘之間的關(guān)系,因?yàn)樗鼈兪腔コ獾?。最后,asynchronous 約束可用來定義異步時(shí)鐘路徑。建立時(shí)序關(guān)系的最后一個(gè)方面是考慮時(shí)鐘的非理想關(guān)系,尤其是抖動(dòng)。您需要考慮兩種形式的抖動(dòng):輸入抖動(dòng)和系統(tǒng)抖動(dòng)。輸入抖動(dòng)出現(xiàn)在主時(shí)鐘輸入上,體現(xiàn)了實(shí)際跳變出現(xiàn)時(shí)間與理想條件下跳變出現(xiàn)時(shí)間之間的差異。系統(tǒng)抖動(dòng)源自設(shè)計(jì)中存在的噪聲。您可以使用 set_input_jitter 約束來定義每個(gè)主輸入時(shí)鐘的抖動(dòng)。同時(shí),使用 set_system_jitter 約束為整個(gè)設(shè)計(jì)(所有時(shí)鐘)設(shè)定系統(tǒng)抖動(dòng)。時(shí)序例外當(dāng)有時(shí)序例外時(shí),您還必須關(guān)注已定義的時(shí)鐘組內(nèi)發(fā)生了什么。然而,
6、什么是時(shí)序例外呢?一種常見的時(shí)序例外是只有每隔一個(gè)時(shí)鐘周期所采樣的結(jié)果。另一種情況是將數(shù)據(jù)從慢時(shí)鐘傳輸?shù)礁斓臅r(shí)鐘(或相反),其中兩個(gè)時(shí)鐘都是同步的。事實(shí)上,這兩種時(shí)序例外一般被稱為多周期路徑,如圖 2 所示。圖 2多周期路徑是一種時(shí)序例外的例子。為這些路徑聲明多周期路徑能實(shí)現(xiàn)更合適而且要求放松的時(shí)序分析,從而讓時(shí)序引擎集中處理其它更關(guān)鍵的路徑。最后的益處是能夠提高結(jié)果質(zhì)量。您可以在 XDC 文件中使用以下 XDC 命令聲明多周期路徑:set_multicycle_path path_ multiplier -setup|-hold-start|-end-from -to
7、;-through當(dāng)您聲明多周期路徑時(shí),實(shí)際上是將建立或保持(或二者皆有)分析要求與 path_mutiplier 相乘。例如在上面的第一個(gè)實(shí)例中,每兩個(gè)時(shí)鐘周期有一次輸出,因此對于建立時(shí)序而言 path_multiplier 是 2。由于多周期路徑既可應(yīng)用到建立時(shí)間又可應(yīng)用到保持時(shí)間,那么您可以選擇其應(yīng)用位置。當(dāng)您聲明建立時(shí)間乘數(shù)時(shí),最佳做法通常是使用下面的公式同時(shí)聲明一個(gè)保持時(shí)間乘數(shù)。保持周期 = 建立乘數(shù) 1 保持乘數(shù)這對于我們所介紹的下列簡單實(shí)例意味著,保持乘數(shù)由下面這個(gè)公式確定:保持乘數(shù) = 建立乘數(shù) 1,當(dāng)使用公共時(shí)鐘時(shí)。為了演示多周期路徑的重要性,我創(chuàng)建了一個(gè)簡單實(shí)例,您可在下載
8、。在 XDC 文件中有一個(gè)實(shí)例包含了建立和保持這兩個(gè)已被同時(shí)聲明的多周期路徑。物理約束最常用的物理約束是 I/O 引腳布局和與 I/O 引腳有關(guān)的參數(shù)定義,例如標(biāo)準(zhǔn)驅(qū)動(dòng)強(qiáng)度。不過,還有其它類型的物理約束,包括布局、布線、I/O 和配置約束等。布局約束能夠定義單元的位置,而布線約束可用來定義信號(hào)的布線。I/O 約束可用來定義 I/O 位置及其參數(shù)。最后,配置約束可用來定義配置方法。同樣,也有一些約束不屬于這幾組約束。Vivado 設(shè)計(jì)套件包含三種這樣的約束,它們主要用于網(wǎng)表中。 DONT_TOUCH 該約束可用來阻止優(yōu)化,這樣當(dāng)實(shí)現(xiàn)安全關(guān)鍵型或高可靠性系統(tǒng)時(shí)該約束會(huì)非常有用。 MARK_DEBU
9、G 該約束可用來保存 RTL信號(hào),以便隨后用于調(diào)試。 CLOCK_DEDICATED_ROUTE 該約束可用來識(shí)別時(shí)鐘布線。最常用的約束與 I/O 布局和 I/O 的配置有關(guān)。將 I/O 放在 FPGA 上,需要使用布局約束找到物理引腳,使用 I/O 約束配置 I/O 標(biāo)準(zhǔn)和斜率等 I/O 屬性。現(xiàn)代化的 FPGA 支持多種單端和差分 I/O 標(biāo)準(zhǔn)。這些均可通過 I/O 約束來進(jìn)行定義。不過,您必須確保遵守 I/O Banking 規(guī)則,這取決于最后的引腳布局。但什么是 I/O Banking 規(guī)則?將 FPGA 中的用戶 I/O 分組為若干個(gè) Bank,每個(gè) Bank 包含多組 I/O。這些
10、 Bank 具有獨(dú)立的電壓源,能支持多種 I/O 標(biāo)準(zhǔn)。在 Zynq®-7000 All Programmable SoC(以及其它 7 系列器件)中,I/O Bank 被進(jìn)一步分為高性能和大范圍這兩個(gè)大的組別。這種類別劃分能進(jìn)一步約束性能,并要求工程師針對接口使用正確的類別。高性能 (HP) 類別針對更高的數(shù)據(jù)速率進(jìn)行了精心優(yōu)化。它使用更低的工作電壓,而且不支持 LVCMOS 3v3 和 2v5。另一個(gè)是大范圍 (HR) 類別,其可處理 HP 不支持的更多 I/O 標(biāo)準(zhǔn)。因此,HR 支持傳統(tǒng)的 3v3 和 2v5 接口。圖 3 給出了這些 Bank。圖 3 賽靈思 7 系列器件上的
11、高性能(左)和大范圍 I/O Bank當(dāng)您決定為信號(hào)使用哪種 Bank 后,仍然可以更改信號(hào)驅(qū)動(dòng)強(qiáng)度和斜率。這些都是硬件設(shè)計(jì)團(tuán)隊(duì)很感興趣的指標(biāo),因?yàn)樗麄円Υ_保單板的信號(hào)完整性達(dá)到最優(yōu)。選擇結(jié)果還會(huì)影響單板設(shè)計(jì)的時(shí)序。為此,您可以使用信號(hào)完整性工具。SI 工具需要 IBIS 模型。當(dāng)您打開了Impelmented Design時(shí),您可使用 File->Export->Export IBIS 模型選項(xiàng)從 Vivado 工具中提取設(shè)計(jì)的 IBIS 模型。然后,使用該文件關(guān)閉解決系統(tǒng)級 SI 問題和最終 PCB 布局的時(shí)序分析。如果設(shè)計(jì)團(tuán)隊(duì)整體上對 SI 性能以及系統(tǒng)的時(shí)序感到滿意,您
12、就會(huì)得到針對設(shè)計(jì)中 I/O 的多個(gè)約束,如下所示。set_property PACKAGE_PIN G17 get_ports dout set_property IOSTAN- DARD LVCMOS33 get_portsdoutset_property SLEW SLOW get_ports doutset_property DRIVE 4 get_ ports dout對于 HP I/O Bank,您還可使用數(shù)控阻抗正確做IO端接并增加系統(tǒng)的 SI,無需使用外部端接方案。如果沒有信號(hào)驅(qū)動(dòng) I/O,例如將 I/O 連接到外部連接器,這時(shí)您還必須考慮 I/O 的影響。這種情況下,您可使用
13、I/O 約束實(shí)現(xiàn)上拉或下拉電阻,以防止由于 FPGA 輸入信號(hào)懸置而導(dǎo)致系統(tǒng)問題。當(dāng)然,您也可以使用物理約束在 I/O block 內(nèi)放置最終的輸出觸發(fā)器,以改善設(shè)計(jì)的時(shí)序。這樣做能縮短clock to out的時(shí)間。您也可以對輸入信號(hào)做相同的處理,以使設(shè)計(jì)滿足引腳到引腳的建立和保持時(shí)間要求。物理約束從布局開始您可能出于多種原因想對布局進(jìn)行約束,例如幫助達(dá)到時(shí)序要求,或者在設(shè)計(jì)的不同區(qū)域間實(shí)現(xiàn)隔離。就此而言,有三種類型的約束很重要: BEL 將網(wǎng)表單元放在 slice 中的基本的邏輯元素。 LOC 將網(wǎng)表的單元放在器件內(nèi)的一個(gè)位置。 PBlock 可使用物理(或“P”)block 將邏輯 bl
14、ock 約束到 FPGA 的一個(gè)區(qū)域。因此,LOC 允許在器件內(nèi)定義一個(gè) slice 或其它位置;BEL 約束可用來定義觸發(fā)器在 slice 中使用的更精細(xì)粒度。當(dāng)對設(shè)計(jì)的大面積區(qū)域進(jìn)行分段時(shí),PBlock 可用來將邏輯集合在一起。PBlock 的另一個(gè)用途是在執(zhí)行部分重配置時(shí)定義邏輯區(qū)域。有些情況下,您需要將較小的邏輯功能放在一組,以確保時(shí)序達(dá)到最佳。盡管可以用 PBlock 來實(shí)現(xiàn),但更常見的方法是使用相對放置的宏命令。相對放置的宏命令(RPM)允許將 DSP、觸發(fā)器、LUT 和 RAM 等設(shè)計(jì)元素在布局中放在一起。與 PBlock 不同,RPM 不會(huì)將這些元素的位置約束在器件的特定區(qū)域(除非您想這樣做),而是在布局時(shí)將這些元素放在一起。將設(shè)計(jì)元素放在一起能實(shí)現(xiàn)兩個(gè)目標(biāo)。這樣能改善資源效率,讓您能夠精細(xì)調(diào)節(jié)互聯(lián)長度,以實(shí)現(xiàn)更好的時(shí)序性能。要將設(shè)計(jì)元素放在一起,可使用三種類型的約束,這些約束用 HDL 源文件進(jìn)行定義。 U_SET 可定義一個(gè)與層級無關(guān)的單元 RPM 集。 HU_SET 可定義有層級的單元 RPM 集 RLOC給定義好的SET分配相對位置。RLOC 約束被定義為 RLOC = XmYm,其中 X
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025黑龍江省旅游投資集團(tuán)有限公司事業(yè)部及共享中心面向社會(huì)招聘15人筆試參考題庫附帶答案詳解
- 2025梅西合同范本
- 2025秋臨川詩詞學(xué)校教師聘用合同
- 人教版九年級化學(xué)上冊-《愛護(hù)水資源》思維導(dǎo)圖課件
- 沈陽五上數(shù)學(xué)期末試卷及答案
- 上海初一期中試卷及答案
- 山東聊城2024會(huì)考試卷及答案
- 雨污水管網(wǎng)系統(tǒng)常用產(chǎn)品及產(chǎn)品介紹
- 2025年中國氟塑料襯里數(shù)據(jù)監(jiān)測報(bào)告
- 稀土金屬壓延加工的精度控制考核試卷
- 甲狀旁腺切除術(shù)后的護(hù)理措施
- 2024慢性鼻竇炎診斷和治療指南解讀課件
- (T8聯(lián)考)2025屆高三部分重點(diǎn)中學(xué)3月聯(lián)合測評生物試卷(含答案詳解)河北版
- 員工入職申請表(完整版)
- T-GDEIIA 56-2024 垂直起降低空航空器起降場基礎(chǔ)設(shè)施配置技術(shù)要求
- 整本書閱讀《林海雪原》【知識(shí)精研】六年級語文下冊 (統(tǒng)編版五四制2024)
- 9《我的戰(zhàn)友邱少云》說課稿-2024-2025學(xué)年六年級語文上冊統(tǒng)編版
- 亞朵酒店前臺(tái)培訓(xùn)
- 大學(xué)假期安全主題班會(huì)課件
- 創(chuàng)業(yè)培訓(xùn)講師手冊
- 威脅情報(bào)評估體系-洞察分析
評論
0/150
提交評論