FPGA時序約束與時序_第1頁
FPGA時序約束與時序_第2頁
FPGA時序約束與時序_第3頁
FPGA時序約束與時序_第4頁
FPGA時序約束與時序_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、FPGA設(shè)計之時序設(shè)計FPGA設(shè)計一個很重要的設(shè)計是時序設(shè)計,而時序設(shè)計的實質(zhì)就是滿足每一個觸發(fā)器的建立(Setup)/保持(Hold)時間的要求。 建立時間(Setup Time):是指在觸發(fā)器的時鐘信號上升沿到來以前,數(shù)據(jù)穩(wěn)定不變的時間,如果建立時間不夠,數(shù)據(jù)將不能在這個時鐘上升沿被打入觸發(fā)器; 保持時間(Hold Time):是指在觸發(fā)器的時鐘信號上升沿到來以后,數(shù)據(jù)穩(wěn)定不變的時間, 如果保持時間不夠,數(shù)據(jù)同樣不能被打入觸發(fā)器。 FPGA設(shè)計分為異步電路設(shè)計和同步電路設(shè)計,然而很多異步電路設(shè)計都可以轉(zhuǎn)化為同步電路設(shè)計,在設(shè)計時盡量采用同步電路進行設(shè)計。對于同步電路可以轉(zhuǎn)化的邏輯必須轉(zhuǎn)化,

2、不能轉(zhuǎn)化的邏輯,應(yīng)將異步的部分減到最小,而其前后級仍然應(yīng)該采用同步設(shè)計。 為了讓同步電路可靠地運行,就要對時鐘偏差進行控制,以使時鐘偏差減小到可用的范圍。影響時鐘偏差的主要有以下幾個因素:o 用于連接時鐘樹的連線o 鐘樹的拓撲結(jié)構(gòu)o 時鐘的驅(qū)動o 時鐘線的負載o 時鐘的上升及下降時間在通常的FPGA設(shè)計中對時鐘偏差的控制主要有以下幾種方法:o 控 制時鐘信號盡量走可編程器件的的全局時鐘網(wǎng)絡(luò)。在可編程器件中一般都有專門的時鐘驅(qū)動器及全局時鐘網(wǎng)絡(luò),不同種類、型號的可編程器件,它們中的全局時鐘網(wǎng) 絡(luò)數(shù)量不同,因此要根據(jù)不同的設(shè)計需要選擇含有合適數(shù)量全局時鐘網(wǎng)絡(luò)的可編程器件。一般來說,走全局時鐘網(wǎng)絡(luò)的

3、時鐘信號到各使用端的延時小,時鐘偏差很 小,基本可以忽略不計。o 若設(shè)計中時鐘信號數(shù)量很多,無法讓所有的信號都走全局時鐘網(wǎng)絡(luò),那么可以通過在設(shè)計中加約束的方法,控制不能走全局時鐘網(wǎng)絡(luò)的時鐘信號的時鐘偏差。o 異步接口時序裕度要足夠大。局部同步電路之間接口都可以看成是異步接口,比較典型的是設(shè)計中的高低頻電路接口、I/O接口,那么接口電路中后一級觸發(fā)器的建立-保持時間要滿足要求,時序裕度要足夠大。o 在系統(tǒng)時鐘大于30MHz時,設(shè)計難度有所加大,建議采用流水線等設(shè)計方法。采用流水線處理方式可以達到提高時序電路的速度,但使用的器件資源也成倍增加。o 要保證電路設(shè)計的理論最高工作頻率大于電路的實際工作

4、頻率。A 時序約束的概念和基本策略時序約束主要包括周期約束(FFS到FFS,即觸發(fā)器到觸發(fā)器)和偏移約束(IPAD到FFS、FFS到OPAD)以及靜態(tài)路徑約束(IPAD到 OPAD)等3種。通過附加約束條件可以使綜合布線工具調(diào)整映射和布局布線過程,使設(shè)計達到時序要求。例如用OFFSET_IN_BEFORE約束可以告 訴綜合布線工具輸入信號在時鐘之前什么時候準(zhǔn)備好,綜合布線工具就可以根據(jù)這個約束調(diào)整與IPAD相連的Logic Circuitry的綜合實現(xiàn)過程,使結(jié)果滿足FFS的建立時間要求。附加時序約束的一般策略是先附加全局約束,然后對快速和慢速例外路徑附加專門約束。附加全局約束時,首先定義設(shè)計

5、的所有時鐘,對各時鐘域內(nèi)的同步元件進行 分組,對分組附加周期約束,然后對FPGA/CPLD輸入輸出PAD附加偏移約束、對全組合邏輯的PAD TO PAD路徑附加約束。附加專門約束時,首先約束分組之間的路徑,然后約束快、慢速例外路徑和多周期路徑,以及其他特殊路徑。B 附加約束的基本作用1. 提高設(shè)計的工作頻率對很多數(shù)字電路設(shè)計來說,提高工作頻率非常重要,因為高工作頻率意味著高處理能力。通過附加約束可以控制邏輯的綜合、映射、布局和布線,以減小邏輯和布線延時,從而提高工作頻率。 2. 獲得正確的時序分析報告幾乎所有的FPGA設(shè)計平臺都包含靜態(tài)時序分析工具,利用這類工具可以獲得映射或布局布線后的時序分

6、析報告,從而對設(shè)計的性能做出評估。靜態(tài)時序分析工具以約束作為判斷時序是否滿足設(shè)計要求的標(biāo)準(zhǔn),因此要求設(shè)計者正確輸入約束,以便靜態(tài)時序分析工具輸出正確的時序分析報告。 3. 指定FPGA/CPLD引腳位置與電氣標(biāo)準(zhǔn)FPGA/CPLD的可編程特性使電路板設(shè)計加工和FPGA/CPLD設(shè)計可以同時進行,而不必等FPGA/CPLD引腳位置完全確定,從而節(jié)省了系統(tǒng)開發(fā)時間。這樣,電路板加工完成后,設(shè)計者要根據(jù)電路板的走線對FPGA/CPLD加上引腳位置約束,使FPGA/CPLD與電路板正確連接。另外通過約束還可以指定IO引腳所支持的接口標(biāo)準(zhǔn)和其他電氣特性。為了滿足日新月異的通信發(fā)展,Xilinx新型FPG

7、A/CPLD可以通過IO引腳約束設(shè)置支持諸如 AGP、BLVDS、CTT、GTL、GTLP、HSTL、LDT、LVCMOS、LVDCI、LVDS、LVPECL、LVDSEXT、LVTTL、 PCI、PCIX、SSTL、ULVDS等豐富的IO接口標(biāo)準(zhǔn)。另外通過區(qū)域約束還能在FPGA上規(guī)劃各個模塊的實現(xiàn)區(qū)域,通過物理布局布線約束,完成模 塊化設(shè)計等。 C 周期(PERIOD)的含義周期的含義是時序中最簡單也是最重要的含義,其它很多時序概念會因為軟件商不同略有差異,而周期的概念確是最通用的,周期的概念是FPGA/ASIC時序定義的基礎(chǔ)概念。后面要講到的其它時序約束都是建立在周期約束的基礎(chǔ)上的,很多其

8、它時序公式,可以用周期公式推導(dǎo)。周期約束是一個基本時序和綜合約束,它附加在時鐘網(wǎng)線上,時序分析工具根據(jù)PERIOD約束檢查時鐘域內(nèi)所有同步元件的時序是否滿足要求。PERIOD約束會自動處理寄存器時鐘端的反相問題, 如果相鄰?fù)皆r鐘相位相反,那么它們之間的延遲將被默認(rèn)限制為PERIOD約束值的一半。如下圖所示,圖1 周期的定義 時鐘的最小周期為:TCLK = TCKO +TLOGIC +TNET +TSETUP TCLK_SKEWTCLK_SKEW =TCD2 TCD1其中TCKO為時鐘輸出時間,TLOGIC為同步元件之間的組合邏輯延遲,TNET為網(wǎng)線延遲,TSETUP為同步元件的建立時間,

9、TCLK_SKEW為時鐘信號TCD2和TCD1延遲的差別。D 數(shù)據(jù)和時鐘之間的約束為了確保芯片數(shù)據(jù)采樣可靠和下級芯片之間正確地交換數(shù)據(jù),需要約束外部時鐘和數(shù)據(jù)輸入輸出引腳之間的時序關(guān)系(或者內(nèi)部時鐘和外部輸入/輸出數(shù)據(jù)之間的關(guān)系,這僅僅是從采用了不同的參照系罷了)。約束的內(nèi)容為告訴綜合器、布線器輸入數(shù)據(jù)到達的時刻,或者輸出數(shù)據(jù)穩(wěn)定的時刻,從而保證與下一級電路的時序關(guān)系。這種時序約束在Xilinx中用Setup to Clock(edge),Clock(edge) to hold等表示。在Altera里常用tsu (Input Setup Times)、th (Input Hold Times)

10、、tco (Clock to Out Delays)來表示。很多其它時序工具直接用setup和hold表示。其實他們所要描述的是同一個問題,僅僅是時間節(jié)點的定義上略有不同。下面依次介 紹。E 關(guān)于輸入到達時間Xilinx的輸入到達時間的計算時序描述如下圖所示:圖2 輸入到達時間示意圖 定義的含義是輸入數(shù)據(jù)在有效時鐘沿之后的TARRIVAL時刻到達。則,TARRIVAL=TCKO+TOUTPUT+TLOGIC 公式1 根據(jù)上面介紹的周期(Period)公式,我們可以得到:Tcko+Toutput+Tlogic+Tinput+Tsetup-Tclk_skew=Tclk; 公式2 將公式1代入公式2

11、: Tarrival+Tinput+Tsetup-Tclk_skew=Tclk, 而Tclk_skew滿足時序關(guān)系后為負,所以TARRIVAL +TINPUT+TSETUP TCLK 公式3 這就是Tarrival應(yīng)該滿足的時序關(guān)系。其中TINPUT為輸入端的組合邏輯、網(wǎng)線和PAD的延遲之和,TSETUP為輸入同步元件的建立時間。F 數(shù)據(jù)延時和數(shù)據(jù)到達時間的關(guān)系圖3 數(shù)據(jù)延時和數(shù)據(jù)到達時間示意圖TDELAY為要求的芯片內(nèi)部輸入延遲,其最大值TDELAY_MAX與輸入數(shù)據(jù)到達時間TARRIVAL的關(guān)系如上圖所示。也就是說: TDELAY_MAX+TARRIVAL=TPERIOD 公式4 所以:T

12、DELAYTDELAY_MAX=TPERIODTARRIVALG 要求輸出的穩(wěn)定時間從下一級輸入端的延遲可以計算出當(dāng)前設(shè)計輸出的數(shù)據(jù)必須在何時穩(wěn)定下來,根據(jù)這個數(shù)據(jù)對設(shè)計輸出端的邏輯布線進行約束,以滿足下一級的建立時間要求,保證下一級采樣的數(shù)據(jù)是穩(wěn)定的。計算要求的輸出穩(wěn)定時間如下圖所示:圖4 要求的輸出穩(wěn)定時間示意圖公式的推導(dǎo)如下: 定義:TSTABLE = TLOGIC +TINPUT +TSETUP 從前面帖子介紹的周期(Period)公式,可以得到(其中TCLK_SKEWTCLK1TCLK2):TCLKTCKOTOUTPUT+TLOGIC+TINPUT+TSETUP+TCLK_SKEW將

13、TSTABLE的定義代入到周期公式,可以得到:TCLK=TCKO+TOUTPUT+TSTABLE+TCLK_SKEW 所以:TCKO +TOUTPUT+TSTABLETCLK 這個公式就是TSTABLE必須要滿足的基本時序關(guān)系,即本級的輸出應(yīng)該保持怎么樣的穩(wěn)定狀態(tài),才能保證下級芯片的采樣穩(wěn)定。有時我們也稱這個約束關(guān)系是 輸出數(shù)據(jù)的保持時間的時序約束關(guān)系。只要滿足上述關(guān)系,當(dāng)前芯片輸出端的數(shù)據(jù)比時鐘上升沿提早TSTABLE 時間穩(wěn)定下來,下一級就可以正確地采樣數(shù)據(jù)。其中TOUTPUT為設(shè)計中連接同步元件輸出端的組合邏輯、網(wǎng)線和PAD的延遲之和,TCKO為同步元件時鐘輸出時間。H 實施時序約束的方

14、法和命令 實施上述約束的基本方法是,根據(jù)已知時序信息,推算需要約束的時間值,實施約束。具體地說是這樣的,首先對于一般設(shè)計,首先掌握的是TCLK,這個對于設(shè)計者來說是個已知量。前面介紹公式和圖中的TCKO和TSETUP(注:有的工具軟件對TCKO和TSETUP的定義與前面圖形不同,還包含了到達同步器件的一段logic的時延)是器件內(nèi)部固有的一個時間量,一般我們選取典型值,對于FPGA,這個量值比較小,一般不大于12ns。比較難以確定的是TINPUT和TOUTPUT兩個時間量。約束輸入時間偏移,需要知道TINPUT,TINPUT為輸入端的組合邏輯、網(wǎng)線和PAD的延遲之和,PAD的延時也根據(jù)器件型號

15、也有典型值可選,但是到 達輸入端的組合邏輯電路和網(wǎng)線的延時就比較難以確定了,只能通過靜態(tài)時序分析工具分析,或者通過底層布局布線工具量取,有很大的經(jīng)驗和試探的成分在里面。 約束輸出時間偏移,需要知道TOUTPUT,TOUTPUT為設(shè)計中連接同步元件輸出端的組合邏輯、網(wǎng)線和PAD的延遲之和,仍然是到達輸出端的組合邏輯 電路和網(wǎng)線的延時就比較難以確定,需要通過靜態(tài)時序分析工具分析,或者通過底層布局布線工具量取,有很大的經(jīng)驗和試探的成分在里面。約束的具體命令根據(jù)約束工具不同而異,首先說使用Xilinx器件的情況下,實施上述約束的命令和方法。Xilinx把上述約束統(tǒng)稱為:OFFSET約束 (偏移約束),

16、一共有4個相關(guān)約束屬性:OFFSET_IN_BEFORE、OFFSET_IN_AFTER、OFFSET_OUT_BEFORE和 OFFSET_OUT_AFTER。其中前兩個屬性叫做輸入偏移(OFFSET_IN)約束,基本功能相似,僅僅是約束取的參考對象不同而已。后兩個屬性 叫做輸出偏移(OFFSET_OUT)約束,基本功能相似,也是約束取的參考對象不同而已。為了便于理解,舉例說明。輸入偏移約束:時鐘周期為20ns,前級寄存器的TCKO選擇1ns,前級輸出邏輯延時TOUTPUT為3ns,中間邏輯TLOGIC的延時為10ns, 那么TARRIVAL=14ns,于是可以在數(shù)據(jù)輸入引腳附加NET DA

17、TA_IN OFFET=IN 14ns AFTER CLK約束,也可以使用OFFSET_IN_BEFORE對芯片內(nèi)部的輸入邏輯進行約束,其語法如下:NET DATA_IN OFFET=IN TDELAY BEFORE CLK 其中TDELAY為要求的芯片內(nèi)部輸入延遲,其最大值與輸入數(shù)據(jù)到達時間TARRIVAL的關(guān)系:TDELAY_MAX + TARRIVAL = TPERIOD,所以TDELAY TPERIOD - TARRIVAL = 20 - 14 =6 ns。輸出偏移約束:設(shè)時鐘周期為20ns,后級輸入邏輯延時TINPUT為4ns、建立時間TSETUP為1ns,中間邏輯TLOGIC的延時

18、為10ns,那 么TSTABLE=15ns,于是可以在數(shù)據(jù)輸入引腳附加NET DATA_OUT OFFET=OUT 15ns BEFORE CLK約束,也可以直接對芯片內(nèi)部的輸出邏輯直接進行約束,NET DATA_OUT OFFET=OUT TOUTPUT_DELAY AFTER CLK,其中TOUTPUT_DELAY為要求的芯片內(nèi)部輸出延遲,其最大值與要求的輸出數(shù)據(jù)穩(wěn)定時間TSTABLE的關(guān)系為:TOUTPUT_DELAY_MAX+TSTABLE= TPERIOD。 TOUT_DELAY TPERIOD - TSTABLE = 20 - 15 = 5nsI Altera對應(yīng)的時序概念下面主要

19、介紹Altera對應(yīng)的這些時序概念和約束方法。 前面首先介紹的第一個時序概念是周期(Period),這個概念是FPGA/ASIC通用的一個概念,各方的定義相當(dāng)統(tǒng)一,至多是描述方式不同罷了,所有 的FPGA設(shè)計都首先要進行周期約束,這樣做的好處除了在綜合與布局布線時給出規(guī)定目標(biāo)外,還能讓時序分析工具考察整個設(shè)計的Fmax等。 Altera的周期定義如下圖所示,公式描述如下: 圖5 Altera 的 Period 示意圖Clock Period = Clk-to-out + Data Delay + Setup Time - Clk Skew即,Tclk= Tco+ B + Tsu-(E-C) F

20、max =1/Tclk 對比一下前面的介紹,只要理解了B 包含了兩級寄存器之間的所有 logic 和 net 的延時就會發(fā)現(xiàn)與前面公式完全一致。J Altera的其他基本時序概念Clock Setup Time (tsu) 要想正確采樣數(shù)據(jù),就必須使數(shù)據(jù)和使能信號在有效時鐘沿到達前就準(zhǔn)備好,所謂時鐘建立時間就是指時鐘到達前,數(shù)據(jù)和使能已經(jīng)準(zhǔn)備好的最小時間間隔。如下圖所示:圖6 tsu示意圖(注:這里定義Setup時間是站在同步時序整個路徑上的,需要區(qū)別的是另一個概念Micro tsu。Micro tsu指的是一個觸發(fā)器內(nèi)部的建立時間,它是觸發(fā)器的固有屬性,一般典型值小于12ns。在Xilinx

21、等的時序概念中,稱Altera的Micro tsu為setup時間,用Tsetup表示,請大家區(qū)分一下。 回到Altera的時序概念,Altera的tsu定義如下: tsu = Data Delay Clock Delay + Micro tsu)Clock Hold Time (tH) 時鐘保持時間是只能保證有效時鐘沿正確采用的數(shù)據(jù)和使能信號的最小穩(wěn)定時間。其定義如下圖所示:圖7 tH示意圖 定義的公式為: tH= Clock Delay Data Delay + Micro tH注:其中Micro tH是指寄存器內(nèi)部的固有保持時間,同樣是寄存器的一個固有參數(shù),典型值小于12ns。Clock

22、-to-Output Delay(tco) 這個時間指的是當(dāng)時鐘有效沿變化后,將數(shù)據(jù)推倒同步時序路徑的輸出端的最小時間間隔。如下圖所示:圖8 tco示意圖tco Clock Delay + Micro tco + Data Delay(注:其中 Micor tco也是一個寄存器的固有屬性,指的是寄存器相應(yīng)時鐘有效沿,將數(shù)據(jù)送到輸出端口的內(nèi)部時間參數(shù)。它與Xilinx的時序定義中,有一個概念叫Tcko是同一個概念。)Pin to Pin Delay (tpd) tpd指輸入管腳通過純組合邏輯到達輸出管腳這段路徑的延時,特別需要說明的是,要求輸入到輸出之間只有組合邏輯,才是tpd延時。Slack是

23、表示設(shè)計是否滿足時序的一個稱謂,正的slack表示滿足時序(時序的余量),負的slack表示不滿足時序(時序的欠缺量)。slack的定義和圖形如下圖所示。圖9 slack示意圖 Slack = Required clock period Actual clock period Slack = Slack clock period (Micro tCO+ Data Delay + Micro tSU)Clock Skew指一個同源時鐘到達兩個不同的寄存器時鐘端的時間偏移,如下圖所示。圖10 clock skew示意圖基于FPGA的時序及同步設(shè)計2010-06-07 22:25數(shù)字電路中,時鐘是整

24、個電路最重要、最特殊的信號。第一, 系統(tǒng)內(nèi)大部分器件的動作都是在時鐘的跳變沿上進行, 這就要求時鐘信號時延差要非常小, 否則就可能造成時序邏輯狀態(tài)出錯.第二, 時鐘信號通常是系統(tǒng)中頻率最高的信號.第三, 時鐘信號通常是負載最重的信號, 所以要合理分配負載。出于這樣的考慮在FPGA這類可編程器件內(nèi)部一般都設(shè)有數(shù)量不等的專門用于系統(tǒng)時鐘驅(qū)動的全局時鐘網(wǎng)絡(luò)。這類網(wǎng)絡(luò)的特點是:一、負載 能力特別強, 任何一個全局時鐘驅(qū)動線都可以驅(qū)動芯片內(nèi)部的觸發(fā)器; 二是時延差特別小; 三是時鐘信號波形畸變小, 工作可靠性好。因此, 在FPGA設(shè)計中最好的時鐘方案是: 由專用的全局時鐘輸入引腳驅(qū)動單個主時鐘去控制設(shè)計

25、項目中的每一個觸發(fā)器。CPLD/FPGA都具有專門的全局時鐘引腳,它直接連到器件中的每一個寄存 器。這種全局時鐘提供器件中最短的時鐘到輸出的延時。同步設(shè)計時, 全局時鐘輸入一般都接在器件的時鐘端, 否則會使其性能受到影響。對于需要多時鐘的時序電路, 最好選用一個頻率是它們的時鐘頻率公倍數(shù)的高頻主時鐘。 各個功能模塊要使用統(tǒng)一的復(fù)位電路。在使用帶時鐘的觸發(fā)器、計數(shù)器等有復(fù)位端的庫器件時, 一般應(yīng)盡量使用有同步復(fù)位的器件。注意復(fù)位時保證各個器件都能復(fù)位, 以避免某些寄存器的初始狀態(tài)不確定而引起系統(tǒng)工作不可靠。時鐘設(shè)計過程中,不可缺少的要涉及到數(shù)據(jù)的建立時間和保持時間的概念,深刻理解這兩個概念有助于

26、我們設(shè)計出優(yōu)良餓時鐘網(wǎng)絡(luò)。異步信號輸入總是無法滿 足數(shù)據(jù)的建立保持時間,所以建議大家把所有異步輸入都先經(jīng)過雙觸發(fā)器進行同步化。在許多應(yīng)用中只將異步信號同步化還是不夠的,當(dāng)系統(tǒng)中有兩個或兩個以上非 同源時鐘的時候,數(shù)據(jù)的建立和保持時間很難得到保證,我們將面臨復(fù)雜的時間問題,那么這個時候怎么辦呢?最好的方法是將所有非同源時鐘同步化,那么又怎么 樣將非同源時鐘同步化呢?我們可以使用帶使能端的D觸發(fā)器,并引入一個高頻時鐘(頻率高于系統(tǒng)中的所有源時鐘),便可以達到使系統(tǒng)中所有源時鐘同步的效 果。如下面的這個例子:系統(tǒng)有兩個不同源時鐘,一個為3MHz,一個為5MHz,不同的觸發(fā)器使用不同的時鐘。為了系統(tǒng)穩(wěn)定,假

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論