讓XDC時(shí)序約束為您效力_第1頁
讓XDC時(shí)序約束為您效力_第2頁
讓XDC時(shí)序約束為您效力_第3頁
讓XDC時(shí)序約束為您效力_第4頁
讓XDC時(shí)序約束為您效力_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

讓-XDC-時(shí)序拘束為您效勞讓-XDC-時(shí)序拘束為您效勞讓-XDC-時(shí)序拘束為您效勞讓XDC時(shí)序拘束為您效勞AdamTaylore2v企業(yè)首席工程師aptaylor@時(shí)序和布局拘束是實(shí)現(xiàn)設(shè)計(jì)要求的重點(diǎn)要素。本文是介紹其使用方法的入門讀物。達(dá)成RTL設(shè)計(jì)不過FPGA設(shè)計(jì)量產(chǎn)準(zhǔn)備工作中的一局部。接下來的挑戰(zhàn)是保證設(shè)計(jì)知足芯片內(nèi)的時(shí)序和性能要求。為此,您常常需要定義時(shí)序和布局拘束。我們認(rèn)識一下在鑒于賽靈思FPGA和SoC設(shè)計(jì)系統(tǒng)時(shí)怎樣創(chuàng)辦和使用這兩種拘束。時(shí)序拘束最根本的時(shí)序拘束定義了系統(tǒng)時(shí)鐘的工作頻次。但是,更高級的拘束能成即刻鐘路徑之間的關(guān)系。工程師利用這種拘束確立能否有必需對路徑進(jìn)行剖析,或許在時(shí)鐘路徑之間不存在有效的時(shí)序關(guān)系時(shí)忽視路徑。默認(rèn)狀況下,賽靈思的Vivado?設(shè)計(jì)套件會剖析所相關(guān)系。但是,并不是設(shè)計(jì)中的全部時(shí)鐘之間都有能夠正確剖析的時(shí)序關(guān)系。比如當(dāng)時(shí)鐘是異步的,就沒法正確確立它們的相位,如圖1所示。文檔圖1–時(shí)鐘域CLK1和CLK2互相之間異步。您可經(jīng)過在拘束文件中申明時(shí)鐘組來管理時(shí)鐘路徑之間的關(guān)系。當(dāng)申明時(shí)鐘組時(shí),Vivado工具不會對組內(nèi)定義的時(shí)鐘之間的任何方向履行時(shí)序剖析。為了有助于生成時(shí)序拘束,Vivado工具將時(shí)鐘定義為三種種類:同步、異步或不行擴(kuò)展。同步時(shí)鐘擁有可展望的時(shí)序/相位關(guān)系。往常主時(shí)鐘及其衍生時(shí)鐘切合這種特征,因?yàn)樗鼈儞碛泄驳母l(fā)源和周期。?異步時(shí)鐘之間不具備可展望的時(shí)序/相位關(guān)系。往常不一樣的主時(shí)鐘〔及其衍生時(shí)鐘)切合這種特征。異步時(shí)鐘有不一樣的發(fā)源。?假如超出1,000個(gè)周期后,仍沒法確立公共周期,那么兩個(gè)時(shí)鐘就是不行擴(kuò)展的。假如是這種狀況,將使用1,000個(gè)周期內(nèi)的最差成即刻間關(guān)系??墒牵瑳]法保證這就是實(shí)質(zhì)的最差狀況。使用Vivado生成的時(shí)鐘報(bào)告來確立您所辦理的時(shí)鐘是哪一種種類。該報(bào)告可幫助您辨別異步和不行擴(kuò)展時(shí)鐘。申明多周期路徑能實(shí)現(xiàn)更適合并且要求放松的時(shí)序剖析,進(jìn)而讓時(shí)序引擎集中辦理其余更關(guān)鍵的路徑。文檔辨別出這些時(shí)鐘后,您便可利用“setclockgroup〞拘束嚴(yán)禁它們之間的時(shí)序剖析。Vivado套件使用的是賽靈思設(shè)計(jì)拘束(XDC),其鑒于寬泛使用的Tcl拘束格式的Synopsys設(shè)計(jì)拘束(SDC)。經(jīng)過XDC拘束,您可使用以下命令定義時(shí)鐘組:set_clock_groups-name-logically_exclusive-physically_exclusive-asynchronous-group-name是為組給予的名稱。-group選項(xiàng)是定義構(gòu)成員〔即沒有時(shí)序關(guān)系的時(shí)鐘〕的地點(diǎn)。當(dāng)有多個(gè)用來驅(qū)動時(shí)鐘樹的時(shí)鐘源可供選擇,包含BUFGMUX和BUFGCTL,應(yīng)使用logically和physicallyexclusive選項(xiàng)。進(jìn)而,這些時(shí)鐘不可以同時(shí)出此刻時(shí)鐘樹上。所以,我們不希望Vivado剖析這些時(shí)鐘之間的關(guān)系,因?yàn)樗鼈兪腔コ獾?。最后,–asynchronous拘束可用來定義異步時(shí)鐘路徑。成即刻序關(guān)系的最后一個(gè)方面是考慮時(shí)鐘的非理想關(guān)系,特別是顫動。您需要考慮兩種形式的顫動:輸入顫動和系統(tǒng)顫動。輸入顫動出此刻主時(shí)鐘輸入上,表達(dá)了實(shí)質(zhì)跳變出現(xiàn)時(shí)間與理想條件下跳變出現(xiàn)時(shí)間之間的差別。系統(tǒng)顫動源自設(shè)計(jì)中存在的噪聲。您能夠使用set_input_jitter拘束來定義每個(gè)主輸入時(shí)鐘的顫動。同時(shí),使用set_system_jitter拘束為整個(gè)設(shè)計(jì)(全部時(shí)鐘)設(shè)定系統(tǒng)顫動。時(shí)序例外當(dāng)有時(shí)序例外時(shí),您還一定關(guān)注已定義的時(shí)鐘組內(nèi)發(fā)生了什么。但是,什么是時(shí)序例外呢?一種常有的時(shí)序例外是只有每隔一個(gè)時(shí)鐘周期所采樣的結(jié)果。另一種狀況是將數(shù)據(jù)從慢時(shí)鐘傳輸?shù)礁斓臅r(shí)鐘〔或相反),此中兩個(gè)時(shí)鐘都是同步的。事實(shí)上,這兩種時(shí)序例外一般被稱為多周期路徑,如圖2所示。文檔圖2–多周期路徑是一種時(shí)序例外的例子。為這些路徑申明多周期路徑能實(shí)現(xiàn)更適合并且要求放松的時(shí)序剖析,進(jìn)而讓時(shí)序引擎集中處理其余更重點(diǎn)的路徑。最后的好處是能夠提升結(jié)果質(zhì)量。您能夠在XDC文件中使用以下XDC命令申明多周期路徑:set_multicycle_pathpath_multiplier[-setup|-hold][-start|-end][-from][-to][-through]當(dāng)您申明多周期路徑時(shí),其實(shí)是將成立或保持(或兩者皆有)剖析要求與path_mutiplier相乘。比如在上邊的第一個(gè)實(shí)例中,每兩個(gè)時(shí)鐘周期有一次輸出,所以關(guān)于成即刻序而言path_multiplier是2。因?yàn)槎嘀芷诼窂郊瓤蓱?yīng)用到成即刻間又可應(yīng)用到保持時(shí)間,那么您能夠選擇其應(yīng)用地點(diǎn)。當(dāng)您申明成即刻間乘數(shù)時(shí),最正確做法往常是使用下邊的公式同時(shí)申明一個(gè)保持時(shí)間乘數(shù)。保持周期=成立乘數(shù)–1–保持乘數(shù)文檔這關(guān)于我們所介紹的以下簡單實(shí)例意味著,保持乘數(shù)由下邊這個(gè)公式確立:保持乘數(shù)=成立乘數(shù)–1,當(dāng)使用公共時(shí)鐘時(shí)。為了演示多周期路徑的重要性,我創(chuàng)辦了一個(gè)簡單實(shí)例,您可在這里下載。在XDC文件中有一個(gè)實(shí)例包含了成立和保持這兩個(gè)已被同時(shí)申明的多周期路徑。物理拘束最常用的物理拘束是I/O引腳布局和與I/O引腳相關(guān)的參數(shù)定義,比如標(biāo)準(zhǔn)驅(qū)動強(qiáng)度??墒牵€有其余種類的物理拘束,包含布局、布線、I/O和配置拘束等。布局拘束能夠定義單元的地點(diǎn),而布線拘束可用來定義信號的布線。I/O拘束可用來定義I/O地點(diǎn)及其參數(shù)。最后,配置拘束可用來定義配置方法。相同,也有一些拘束不屬于這幾組拘束。Vivado設(shè)計(jì)套件包含三種這樣的拘束,它們主要用于網(wǎng)表中。DONT_TOUCH–該拘束可用來阻擋優(yōu)化,這樣當(dāng)實(shí)現(xiàn)安全重點(diǎn)型或高靠譜性系統(tǒng)時(shí)該拘束會特別實(shí)用。?MARK_DEBUG–該拘束可用來保留RTL信號,以便隨后用于調(diào)試。?CLOCK_DEDICATED_ROUTE–該拘束可用來辨別時(shí)鐘布線。最常用的拘束與I/O布局和I/O的配置相關(guān)。將I/O放在FPGA上,需要使用布局約束找到物理引腳,使用I/O拘束配置I/O標(biāo)準(zhǔn)和斜率等I/O屬性?,F(xiàn)代化的FPGA支持多種單端和差分I/O標(biāo)準(zhǔn)。這些均可經(jīng)過I/O拘束來進(jìn)行定義。不過,您一定保證恪守I/OBanking規(guī)那么,這取決于最后的引腳布局。文檔但什么是I/OBanking規(guī)那么?將FPGA中的用戶I/O分組為假定干個(gè)Bank,每個(gè)Bank包含多組I/O。這些Bank擁有獨(dú)立的電壓源,能支持多種I/O標(biāo)準(zhǔn)。在Zynq?-7000AllProgrammableSoC〔以及其余7系列器件)中,I/OBank被進(jìn)一步分為高性能和大范圍這兩個(gè)大的組別。這種類型區(qū)分能進(jìn)一步拘束性能,并要求工程師針對接口使用正確的類型。高性能(HP)類型針對更高的數(shù)據(jù)速率進(jìn)行了精心優(yōu)化。它使用更低的工作電壓,并且不支持LVCMOS3v3和2v5。另一個(gè)是大范圍(HR)類型,其可辦理HP不支持的更多I/O標(biāo)準(zhǔn)。所以,HR支持傳統(tǒng)的3v3和2v5接口。圖3給出了這些Bank。文檔圖3–賽靈思7系列器件上的高性能(左)和大范圍I/OBank當(dāng)您決定為信號使用哪一種Bank后,仍舊能夠改正信號驅(qū)動強(qiáng)度和斜率。這些都是硬件設(shè)計(jì)團(tuán)隊(duì)很感興趣的指標(biāo),因?yàn)樗麄円ΡWC單板的信號完好性抵達(dá)最優(yōu)。選擇結(jié)果還會影響單板設(shè)計(jì)的時(shí)序。為此,您能夠使用信號完好性工具。SI工具需要IBIS模型。當(dāng)您打開了ImpelmentedDesign時(shí),您可使用File->Export->ExportIBIS模型選項(xiàng)從Vivado工具中提取設(shè)計(jì)的IBIS模型。而后,使用該文件封閉解決系統(tǒng)級SI問題和最后PCB布局的時(shí)序剖析。文檔假如設(shè)計(jì)團(tuán)隊(duì)整體上對SI性能以及系統(tǒng)的時(shí)序感覺滿意,您就會獲取針對設(shè)計(jì)中I/O的多個(gè)拘束,以下所示。set_propertyPACKAGE_PING17[get_ports{dout}]set_propertyIOSTAN-DARDLVCMOS33[get_ports{dout}]set_propertySLEWSLOW[get_ports{dout}]set_propertyDRIVE4[get_ports{dout}]關(guān)于HPI/OBank,您還可使用數(shù)控阻抗正確做IO端接并增添系統(tǒng)的SI,無需使用外面端接方案。假如沒有信號驅(qū)動I/O,比如將I/O連結(jié)到外面連結(jié)器,這時(shí)您還一定考慮I/O的影響。這種狀況下,您可使用I/O拘束實(shí)現(xiàn)上拉或下拉電阻,以防備因?yàn)镕PGA輸入信號懸置而致使系統(tǒng)問題。自然,您也能夠使用物理拘束在I/Oblock內(nèi)擱置最后的輸出觸發(fā)器,以改良設(shè)計(jì)的時(shí)序。這樣做能縮短clocktoout的時(shí)間。您也能夠?qū)斎胄盘栕鱿嗤霓k理,以使設(shè)計(jì)知足引腳到引腳的成立和保持時(shí)間要求。物理拘束從布局開始您可能出于多種原由想對布局進(jìn)行拘束,比如幫助抵達(dá)時(shí)序要求,或許在設(shè)計(jì)的不一樣地區(qū)間實(shí)現(xiàn)隔絕。就此而言,有三種種類的拘束很重要:BEL–將網(wǎng)表單元放在slice中的根本的邏輯元素。LOC–將網(wǎng)表的單元放在器件內(nèi)的一個(gè)地點(diǎn)。PBlock–可使用物理(或“P〞)block將邏輯block拘束到FPGA的一個(gè)地區(qū)。文檔所以,LOC同意在器件內(nèi)定義一個(gè)slice或其余地點(diǎn);BEL拘束可用來定義觸發(fā)器在slice中使用的更精美粒度。當(dāng)對設(shè)計(jì)的大面積地區(qū)進(jìn)行分段時(shí),PBlock可用來將邏輯會合在一起。PBlock的另一個(gè)用途是在履行局部重配置時(shí)定義邏輯地區(qū)。有些狀況下,您需要將較小的邏輯功能放在一組,以保證時(shí)序抵達(dá)最正確。只管能夠用PBlock來實(shí)現(xiàn),但更常有的方法是使用相對擱置的宏命令。相對擱置的宏命令(RPM)同意將DSP、觸發(fā)器、LUT和RAM等設(shè)計(jì)元素在布局中放在一起。與PBlock不一樣,RPM不會將這些元素的地點(diǎn)拘束在器件的特定地區(qū)(除非您想這樣做),而是在布局時(shí)將這些元素放在一同。將設(shè)計(jì)元素放在一同能實(shí)現(xiàn)兩個(gè)目標(biāo)。這樣能改良資源效率,讓您能夠精美調(diào)理互聯(lián)長度,以實(shí)現(xiàn)更好的時(shí)序性能。要將設(shè)計(jì)元素放在一同,可使用三種種類的拘束,這些拘束用HDL源文件進(jìn)行定義。?U_SET可定義一個(gè)與層級沒關(guān)的單元RPM集。HU_SET可定義有層級的單元RPM集RLOC給定義好的SET分派相對地點(diǎn)。RLOC拘束被定義為RLOC=X

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論