時(shí)序約束系統(tǒng)學(xué)習(xí)發(fā)布時(shí)間:2010-06-03 12:02:42
一直對(duì)時(shí)序約束沒(méi)有什么明確的概念,故詳細(xì)了解各方面資料,對(duì)時(shí)序約束有一個(gè)全面的從無(wú)到有的學(xué)習(xí),記錄如下筆記: 時(shí)序約束的概念和基本策略: 約束的基本作用有3: 另外通過(guò)區(qū)域約束還能在FPGA上規(guī)劃各個(gè)模塊的實(shí)現(xiàn)區(qū)域,通過(guò)物理布局布線約束,完成模塊化設(shè)計(jì)等。 時(shí)序約束在Xilinx中用Setup to Clock(edge),Clock(edge) to hold等表示。在Altera里常用tsu (Input Setup Times)、th (Input Hold Times)、tco (Clock to Out Delays)來(lái)表示。很多其它時(shí)序工具直接用setup和hold表示。其實(shí)他們所要描述的是同一個(gè)問(wèn)題,僅僅是時(shí)間節(jié)點(diǎn)的定義上略有不同。 常用時(shí)序約束的概念: 周期:如圖1是周期示意圖,當(dāng)計(jì)算出Tperiod,那么當(dāng)然fmax=1/Tperiod,fmax是顯示設(shè)計(jì)最重要的性能指標(biāo)之一。 時(shí)鐘建立時(shí)間:時(shí)鐘建立時(shí)間的計(jì)算方法 Tsu = datadelay - clkdelay + Microsetup Clock Setup Time (tsu),時(shí)鐘建立時(shí)間 tsu示意圖 注:這里定義Setup時(shí)間是站在同步時(shí)序整個(gè)路徑上的,需要區(qū)別的是另一個(gè)概念Micro tsu。 Micro tsu指的是一個(gè)觸發(fā)器內(nèi)部的建立時(shí)間,它是觸發(fā)器的固有屬性,一般典型值小于1~2ns。在Xilinx等的時(shí)序概念中,稱Altera的Microtsu為setup時(shí)間,用Tsetup表示,請(qǐng)大家區(qū)分一下。 時(shí)鐘保持時(shí)間:計(jì)算Th=clkdelay-datadelay+Microhold 注意:前兩個(gè)公式中提到的Microsetup 和Microhold一般均是一個(gè)小于1ns的常量。 Clock Hold Time tH,時(shí)鐘保持時(shí)間 時(shí)鐘保持時(shí)間是只能保證有效時(shí)鐘沿正確采到的數(shù)據(jù)和使能信號(hào)的最小穩(wěn)定時(shí)間。如下圖所示。 tH示意圖 定義的公式為: Clock-to-Output Delay(tco)時(shí)鐘輸出延遲Tco: 指在時(shí)鐘有效到數(shù)據(jù)有效的最大時(shí)鐘間隔。 Tco=clkdelay+datadelay+Microco 這個(gè)時(shí)間指的是當(dāng)時(shí)鐘有效沿變化后,將數(shù)據(jù)推倒同步時(shí)序路徑的輸出端的最小時(shí)間間隔。如圖8所示。 tco示意圖 Pin to Pin Delay (tpd),管腳延時(shí) tpd指輸入管腳通過(guò)純組合邏輯到達(dá)輸出管腳這段路徑的延時(shí),特別需要說(shuō)明的是,要求輸入到輸出之間只有組合邏輯,才是tpd延時(shí)。 slack:表示設(shè)計(jì)是否滿足時(shí)序的一個(gè)稱謂:正的slack表示滿足時(shí)序,負(fù)的slack表示不滿足時(shí)序。保持時(shí)間slack是一個(gè)重要的概念,引起不滿足的主要原因是時(shí)鐘偏斜大于數(shù)據(jù)路徑的偏斜。 slack示意圖 Clock Skew 周期(PERIOD)的含義 周期的定義
Altera的周期定義如圖所示,公式描述如下: Altera 的 Period 示意圖
Fmax
常用的三種時(shí)序約束設(shè)置方法: 1 通過(guò)Assignment/timing settings 2 Assignment/timing wiard tool 3 Assignment/Assignment editor 選擇在圖形界面下完成對(duì)設(shè)計(jì)的時(shí)序約束。一般情況下前兩種是做全局的時(shí)序約束,后一種是做局部的時(shí)序約束,另外還可以通過(guò)修改.qsf文件來(lái)實(shí)現(xiàn)。 時(shí)序約束思想:時(shí)序約束一般都是先全局后個(gè)別,如果沖突則個(gè)別的優(yōu)先級(jí)更高。 一、將編繹器設(shè)置為時(shí)序驅(qū)動(dòng)編繹,即是指讓編繹過(guò)程盡量向著滿足時(shí)序約束方向努力!assignment/settings/fitter setting. 二、全局時(shí)鐘設(shè)置如果在設(shè)計(jì)中只有一個(gè)全局時(shí)鐘,或者所有的時(shí)鐘同頻,可以在Quartus2中只設(shè)置一個(gè)全局時(shí)鐘約束。 Assignment/timing settings 三、時(shí)序向?qū)?在對(duì)時(shí)序約束設(shè)置不熟悉的情況下,可以選擇使用向?qū)А?Assignment/classic timing analyser wizards. 四、可以設(shè)置獨(dú)立時(shí)鐘與衍生時(shí)鐘,衍生時(shí)鐘是由獨(dú)立時(shí)鐘變化而來(lái)的,他是由獨(dú)立時(shí)鐘分頻,倍頻,移相等變化而來(lái)的,可以在設(shè)置中確定二者的關(guān)系 Assignment/settings/timing analyse setting/classic timing analyse setting/individual clock。 五、通過(guò)assignment editor 設(shè)置個(gè)別時(shí)鐘約束 各部分延遲的計(jì)算: 在FPGA設(shè)計(jì)工具中包含有4種路徑:從輸入端口到寄存器,從寄存器到寄存器,從寄存器到輸出,從輸入到輸出的純組合邏輯。通常,需要對(duì)這幾種路徑分別進(jìn)行約束,以便使設(shè)計(jì)工具能夠得到最優(yōu)化的結(jié)果。下面對(duì)這幾種路徑分別進(jìn)行討論。 1. 從輸入端口到寄存器: 這種路徑的約束是為了讓FPGA設(shè)計(jì)工具能夠盡可能的優(yōu)化從輸入端口到第一級(jí)寄存器之間的路徑延遲,使其能夠保證系統(tǒng)時(shí)鐘可靠的采到從外部芯片到FPGA的信號(hào)。 約束名稱:input delay。 約束條件的影響主要有4個(gè)因素:外部芯片的Tco,電路板上信號(hào)延遲Tpd,F(xiàn)PGA的Tsu, 時(shí)鐘延遲Tclk. Tco的參數(shù)通常需要查外部芯片的數(shù)據(jù)手冊(cè)。計(jì)算公式:input delay = Tco+Tpd+Tsu-Tclk。FPGA的Tsu也需要查FPGA芯片的手冊(cè)。 FPGA速度等級(jí)不同,這個(gè)參數(shù)也不同。Tpd和Tclk需要根據(jù)電路板實(shí)際的參數(shù)來(lái)計(jì)算。通常,每10cm的線長(zhǎng)可以按照1ns來(lái)計(jì)算。例如:系統(tǒng)時(shí)鐘100MHz,電路板上最大延遲2ns,時(shí)鐘最大延遲1.7ns,Tco 3ns,F(xiàn)PGA的Tsu為0.2ns。那么輸入延遲的值:max Input delay = 2+3+0.2-1.7=3.5ns. 這個(gè)參數(shù)的含義是指讓FPGA的設(shè)計(jì)工具把FPGA的輸入端口到第一級(jí)寄存器之間的路徑延遲(包括門(mén)延遲和線延遲)控制在10ns-3.5ns=6.5ns 以內(nèi)。 2. 寄存器到寄存器: 這種路徑的約束是為了讓FPGA設(shè)計(jì)工具能夠優(yōu)化FPGA內(nèi)寄存器到寄存器之間的路徑,使其延遲時(shí)間必須小于時(shí)鐘周期,這樣才能確保信號(hào)被可靠的傳遞。 由于這種路徑只存在于FPGA內(nèi)部,通常通過(guò)設(shè)定時(shí)鐘頻率的方式就可以對(duì)其進(jìn)行約束。對(duì)于更深入的優(yōu)化方法,還可以采用對(duì)寄存器的輸入和寄存器的輸出加入適當(dāng)?shù)募s束,來(lái)使邏輯綜合器和布線器能夠?qū)δ硹l路徑進(jìn)行特別的優(yōu)化。還可以通過(guò)設(shè)定最大扇出數(shù)來(lái)迫使工具對(duì)其進(jìn)行邏輯復(fù)制,減少扇出數(shù)量,提高性能。 3. 寄存器到輸出: 這種路徑的約束是為了讓FPGA設(shè)計(jì)工具能夠優(yōu)化FPGA內(nèi)部從最后一級(jí)寄存器到輸出端口的路徑,確保其輸出的信號(hào)能夠被下一級(jí)芯片正確的采到。 約束的名稱: output delay。 約束條件的影響主要有3個(gè)因素:外部芯片的Tsu,電路板上信號(hào)延遲Tpd,時(shí)鐘延遲Tclk。Tsu的參數(shù)通常需要查外部芯片的數(shù)據(jù)手冊(cè)。計(jì)算公式:output delay = Tsu+Tpd-Tclk。例如:系統(tǒng)時(shí)鐘100MHz,電路板上最大延遲2ns,時(shí)鐘最大延遲 1.7ns,Tsu 1ns,輸出延遲的值:max output delay = 1+2-1.7=1.3ns。這個(gè)參數(shù)的含義是指讓FPGA的設(shè)計(jì)工具把最后一級(jí)寄存器到輸出端口之間的路徑延遲(包括門(mén)延遲和線延遲)控制在 10ns-1.3ns=8.7ns 以內(nèi)。 4. 從輸入端口到輸出端口: 這種路徑是指組合邏輯的延遲,指信號(hào)從輸入到輸出沒(méi)有經(jīng)過(guò)任何寄存器。給這種路徑加約束條件,需要虛擬一個(gè)時(shí)鐘,然后通過(guò)約束來(lái)指定哪些路徑是要受該虛擬時(shí)鐘的約束。在Synplifypro和Precision中都有相應(yīng)的約束來(lái)處理這種路徑。 |
|
來(lái)自: zhangquanling > 《FPGA_混飯吃的》