1. 適用范圍
本文檔理論適用于Actel FPGA并且采用Libero軟件進(jìn)行靜態(tài)時(shí)序分析(寄存器到寄存器)。
2. 應(yīng)用背景
靜態(tài)時(shí)序分析簡(jiǎn)稱(chēng)STA,它是一種窮盡的分析方法,它按照同步電路設(shè)計(jì)的要求,根據(jù)電路網(wǎng)表的拓?fù)浣Y(jié)構(gòu),計(jì)算并檢查電路中每一個(gè)DFF(觸發(fā)器)的建立和保持時(shí)間以及其他基于路徑的時(shí)延要求是否滿(mǎn)足。STA作為FPGA設(shè)計(jì)的主要驗(yàn)證手段之一,不需要設(shè)計(jì)者編寫(xiě)測(cè)試向量,由軟件自動(dòng)完成分析,驗(yàn)證時(shí)間大大縮短,測(cè)試覆蓋率可達(dá)100%。
靜態(tài)時(shí)序分析的前提就是設(shè)計(jì)者先提出要求,然后時(shí)序分析工具才會(huì)根據(jù)特定的時(shí)序模型進(jìn)行分析,給出正確是時(shí)序報(bào)告。
進(jìn)行靜態(tài)時(shí)序分析,主要目的就是為了提高系統(tǒng)工作主頻以及增加系統(tǒng)的穩(wěn)定性。對(duì)很多數(shù)字電路設(shè)計(jì)來(lái)說(shuō),提高工作頻率非常重要,因?yàn)楦吖ぷ黝l率意味著高處理能力。通過(guò)附加約束可以控制邏輯的綜合、映射、布局和布線,以減小邏輯和布線延時(shí),從而提高工作頻率。
3. 理論分析
3.1 靜態(tài)時(shí)序分析的理論基礎(chǔ)知識(shí)
在進(jìn)行正確的時(shí)序分析前,我們必須具備基本的靜態(tài)時(shí)序的基本知識(shí)點(diǎn),不然看著編譯器給出的時(shí)序分析報(bào)告猶如天書(shū)。如圖3.1所示,為libero軟件給出的寄存器到寄存器模型的時(shí)序分析報(bào)告的截取,接下來(lái)我們會(huì)弄清楚每個(gè)欄目的數(shù)據(jù)變量的含義,以及計(jì)算方法。
圖3.1 libero靜態(tài)時(shí)序分析報(bào)告
3.1.1 固定參數(shù)launch edge、latch edge、Tsu、Th、Tco概念
1. launch edge
時(shí)序分析起點(diǎn)(launch edge):第一級(jí)寄存器數(shù)據(jù)變化的時(shí)鐘邊沿,也是靜態(tài)時(shí)序分析的起點(diǎn)。
2. latch edge
時(shí)序分析終點(diǎn)(latch edge):數(shù)據(jù)鎖存的時(shí)鐘邊沿,也是靜態(tài)時(shí)序分析的終點(diǎn)。
3. Clock Setup Time (Tsu)
建立時(shí)間(Tsu):是指在時(shí)鐘沿到來(lái)之前數(shù)據(jù)從不穩(wěn)定到穩(wěn)定所需的時(shí)間,如果建立的時(shí)間不滿(mǎn)足要求那么數(shù)據(jù)將不能在這個(gè)時(shí)鐘上升沿被穩(wěn)定的打入觸發(fā)器。如圖3.2所示:
圖3.2 建立時(shí)間圖解
4. Clock Hold Time (Th)
保持時(shí)間(Th):是指數(shù)據(jù)穩(wěn)定后保持的時(shí)間,如果保持時(shí)間不滿(mǎn)足要求那么數(shù)據(jù)同樣也不能被穩(wěn)定的打入觸發(fā)器。保持時(shí)間示意圖如圖3.3所示:
圖3.3 保持時(shí)間圖解
5. Clock-to-Output Delay(tco)
數(shù)據(jù)輸出延時(shí)(Tco):這個(gè)時(shí)間指的是當(dāng)時(shí)鐘有效沿變化后,數(shù)據(jù)從輸入端到輸出端的最小時(shí)間間隔。
3.1.2 Clock skew
時(shí)鐘偏斜(clock skew):是指一個(gè)時(shí)鐘源到達(dá)兩個(gè)不同寄存器時(shí)鐘端的時(shí)間偏移,如圖3.4所示:
圖3.4 時(shí)鐘偏斜
時(shí)鐘偏斜計(jì)算公式如下:
Tskew = Tclk2 - Tclk1 ?。ü?-1)
3.1.3 Data Arrival Time
數(shù)據(jù)到達(dá)時(shí)間(Data Arrival Time):輸入數(shù)據(jù)在有效時(shí)鐘沿后到達(dá)所需要的時(shí)間。主要分為三部分:時(shí)鐘到達(dá)寄存器時(shí)間(Tclk1),寄存器輸出延時(shí)(Tco)和數(shù)據(jù)傳輸延時(shí)(Tdata),如圖3.5所示
圖3.5 數(shù)據(jù)到達(dá)時(shí)間
數(shù)據(jù)到達(dá)時(shí)間計(jì)算公式如下:
Data Arrival Time = Launch edge + Tclk1 +Tco + Tdata ?。ü?-2)
3.1.4 Clock Arrival Time
時(shí)鐘到達(dá)時(shí)間(Clock Arrival Time):時(shí)鐘從latch邊沿到達(dá)鎖存寄存器時(shí)鐘輸入端所消耗的時(shí)間為時(shí)鐘到達(dá)時(shí)間,如圖3.6所示
圖3.6 時(shí)鐘到達(dá)時(shí)間
時(shí)鐘到達(dá)時(shí)間計(jì)算公式如下:
Clock Arrival Time = Lacth edge + Tclk2 ?。ü?-3)
3.1.5 Data Required Time(setup/hold)
數(shù)據(jù)需求時(shí)間(Data Required Time):在時(shí)鐘鎖存的建立時(shí)間和保持時(shí)間之間數(shù)據(jù)必須穩(wěn)定,從源時(shí)鐘起點(diǎn)達(dá)到這種穩(wěn)定狀態(tài)需要的時(shí)間即為數(shù)據(jù)需求時(shí)間。如圖3.7所示:
圖3.7 數(shù)據(jù)需求時(shí)間
(建立)數(shù)據(jù)需求時(shí)間計(jì)算公式如下:
Data Required Time = Clock Arrival Time - Tsu ?。ü?-4)
(保持)數(shù)據(jù)需求時(shí)間計(jì)算公式如下:
Data Required Time = Clock Arrival Time + Th (公式3-5)
3.1.6 Setup slack
建立時(shí)間余量(setup slack):當(dāng)數(shù)據(jù)需求時(shí)間大于數(shù)據(jù)到達(dá)時(shí)間時(shí),就說(shuō)時(shí)間有余量,Slack是表示設(shè)計(jì)是否滿(mǎn)足時(shí)序的一個(gè)稱(chēng)謂。
圖3.8 建立時(shí)間余量
如圖3.8所示,建立時(shí)間余量的計(jì)算公式如下:
Setup slack = Data Required Time - Data Arrival Time ?。ü?-6)
由公式可知,正的slack表示數(shù)據(jù)需求時(shí)間大于數(shù)據(jù)到達(dá)時(shí)間,滿(mǎn)足時(shí)序(時(shí)序的余量),負(fù)的slack表示數(shù)據(jù)需求時(shí)間小于數(shù)據(jù)到達(dá)時(shí)間,不滿(mǎn)足時(shí)序(時(shí)序的欠缺量)。
3.1.7 時(shí)鐘最小周期
時(shí)鐘最小周期:系統(tǒng)時(shí)鐘能運(yùn)行的最高頻率。
1. 當(dāng)數(shù)據(jù)需求時(shí)間大于數(shù)據(jù)到達(dá)時(shí)間時(shí),時(shí)鐘具有余量;
2. 當(dāng)數(shù)據(jù)需求時(shí)間小于數(shù)據(jù)到達(dá)時(shí)間時(shí),不滿(mǎn)足時(shí)序要求,寄存器經(jīng)歷亞穩(wěn)態(tài)或者不能正確獲得數(shù)據(jù);
3. 當(dāng)數(shù)據(jù)需求時(shí)間等于數(shù)據(jù)到達(dá)時(shí)間時(shí),這是最小時(shí)鐘運(yùn)行頻率,剛好滿(mǎn)足時(shí)序。
從以上三點(diǎn)可以得出最小時(shí)鐘周期為數(shù)據(jù)到達(dá)時(shí)間等于數(shù)據(jù)需求時(shí)間,的運(yùn)算公式如下:
Data Required Time = Data Arrival Time ?。ü?-7)
由上式推出如下公式:
Tmin + Latch edge + Tclk2 - Tsu = Launch edge + Tclk1 + Tco + Tdata
最終推出最小時(shí)鐘周期為:
Tmin = Tco + Tdata + Tsu - Tskew ?。ü?-8)
4. 應(yīng)用分析
4.1 設(shè)置時(shí)鐘主頻約束
所有的靜態(tài)時(shí)序分析都是在有約束的情況下編譯器才給出分析報(bào)告,所以進(jìn)行時(shí)序分析的第一步就是設(shè)置約束。
Libero軟件設(shè)置時(shí)鐘約束的途徑三種,單時(shí)鐘約束,多時(shí)鐘約束和在Designer里面進(jìn)行約束。
4.1.1 單時(shí)鐘約束
有時(shí)我們系統(tǒng)所有模塊都采用同一個(gè)時(shí)鐘,這種方式最為簡(jiǎn)單,直接在Synplify主界面上有個(gè)設(shè)置時(shí)鐘約束的,如圖4.1中紅框所示:
圖4.1 單時(shí)鐘設(shè)置
設(shè)置完成后,編譯,通過(guò)Synplify時(shí)鐘報(bào)告看初步時(shí)鐘運(yùn)行頻率能否達(dá)到要求,時(shí)鐘報(bào)告如圖4.2所示,設(shè)定100Mhz,能運(yùn)行102.7Mhz,滿(mǎn)足時(shí)序。
圖4.2 時(shí)序報(bào)告
4.2 多時(shí)鐘約束
當(dāng)系統(tǒng)內(nèi)部模塊采用了多個(gè)時(shí)鐘時(shí),那就需要進(jìn)行多時(shí)鐘約束了。首先需要打開(kāi)設(shè)置界面,在Synplify中選擇:File-》New-》Constraint File建立SDC文件,選擇時(shí)鐘約束如圖4.3所示:
圖4.3 多時(shí)鐘約束
對(duì)時(shí)鐘進(jìn)行如下約束后保存SDC文件,約束如圖4.4所示
圖4.4 多時(shí)鐘約束完成
4.3 Designer SmartTime時(shí)鐘約束
時(shí)鐘約束除了在Synplify中可以約束外,還可以在Designer SmartTime中設(shè)置時(shí)鐘約束,打開(kāi)Designer Constraint,選擇Clock進(jìn)行針對(duì)每個(gè)使用時(shí)鐘的設(shè)置,如圖4.5所示:
圖4.5 Designer時(shí)序約束
4.4 時(shí)序報(bào)告分析
4.4.1 Synplify時(shí)序報(bào)告
當(dāng)約束了時(shí)序后,需要觀察時(shí)序報(bào)告,看時(shí)鐘能否達(dá)到我們需要的時(shí)鐘,首先觀察Synplify綜合報(bào)告。以多時(shí)鐘約束為例子,從Synplify得到的時(shí)序報(bào)告如圖4.6所示:
圖4.6 多時(shí)鐘約束時(shí)序報(bào)告
由上圖可知時(shí)序都滿(mǎn)足約束,未出現(xiàn)違規(guī),可以在下面的報(bào)告中查看最差路徑,如圖4.7所示是clk2的最差路徑。
圖4.7 最差路徑
4.4.2 Designer SmartTime時(shí)序分析報(bào)告
當(dāng)設(shè)計(jì)經(jīng)過(guò)Synplify綜合給出網(wǎng)表文件后,還需要Designer進(jìn)行布局布線,通過(guò)布局布線優(yōu)化后的時(shí)序會(huì)有變化,因此,還需要分析布局布線后的時(shí)序,打開(kāi)Designer-》Timing Analyzer查閱整體時(shí)序分析報(bào)告如圖4.8所示:
圖4.8 布局布線后時(shí)序報(bào)告
由Synplify綜合后的報(bào)告和Designer進(jìn)行布局布線后的報(bào)告可以看出,布局布線后優(yōu)化了一些時(shí)序,特別是clk2時(shí)鐘,通過(guò)布局布線后優(yōu)化到了184Mhz,完全滿(mǎn)足時(shí)序。
4.4.3 詳細(xì)時(shí)序報(bào)告圖
通過(guò)Synplify綜合后的和Designer進(jìn)行布局布線都只是看到了一個(gè)大體的時(shí)序報(bào)告,當(dāng)我們需要分析時(shí)序時(shí)候必須觀察仔細(xì)的時(shí)序報(bào)告,在SmartTime中提供這種報(bào)告功能,以clk2分析為例,在Timing Analyzer找到如下區(qū)域。
圖4.9 時(shí)序報(bào)告選擇
如圖4.9所示,選擇寄存器到寄存器進(jìn)行分析時(shí)鐘主頻。
圖4.10 寄存器到寄存器分析
如圖4.10所示,時(shí)序報(bào)告中給出了數(shù)據(jù)延時(shí),時(shí)序余量,數(shù)據(jù)到達(dá)時(shí)間,數(shù)據(jù)需求時(shí)間,數(shù)據(jù)建立時(shí)間,以及最小周期和時(shí)鐘偏斜等信息,有了上一節(jié)的時(shí)序分析基礎(chǔ)知識(shí),我們完全能看懂這些數(shù)據(jù)代表的意義,這樣對(duì)我們時(shí)序分析就知己知彼,進(jìn)一步雙擊其中一條路徑,還會(huì)給出這條路徑的硬件電路圖,如圖4.11所示,有了這些詳細(xì)的時(shí)序報(bào)告,對(duì)設(shè)計(jì)進(jìn)行調(diào)整更加清晰。
圖4.11 硬件路徑
評(píng)論