加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
    • 一、概述
    • 二、 應(yīng)用背景
    • 三、理論分析
    • 四、應(yīng)用分析
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

FPGA STA(靜態(tài)時(shí)序分析)

04/30 13:44
2539
閱讀需 27 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

大俠好,歡迎來到FPGA技術(shù)江湖,江湖偌大,相見即是緣分。大俠可以關(guān)注FPGA技術(shù)江湖,在“闖蕩江湖”、"行俠仗義"欄里獲取其他感興趣的資源,或者一起煮酒言歡。

今天給大俠帶來FPGA STA(靜態(tài)時(shí)序分析),話不多說,上貨。

一、概述

1.1? 概述

在快速系統(tǒng)中FPGA時(shí)序約束不止包含內(nèi)部時(shí)鐘約束,還應(yīng)包含完整的IO時(shí)序約束和時(shí)序例外約束才能實(shí)現(xiàn)PCB板級的時(shí)序收斂。因此。FPGA時(shí)序約束中IO口時(shí)序約束也是一個(gè)重點(diǎn)。僅僅有約束正確才能在快速情況下保證FPGA和外部器件通信正確。

1.2? FPGA總體概念

因?yàn)镮O口時(shí)序約束分析是針對于電路板整個(gè)系統(tǒng)進(jìn)行時(shí)序分析,所以FPGA需要作為一個(gè)總體分析,當(dāng)中包含F(xiàn)PGA的建立時(shí)間、保持時(shí)間以及傳輸延時(shí)。傳統(tǒng)的建立時(shí)間、保持時(shí)間以及傳輸延時(shí)都是針對寄存器形式的分析。針對整個(gè)系統(tǒng)FPGA的建立時(shí)間保持時(shí)間能夠簡化。下圖為FPGA總體時(shí)序圖

如圖上圖所示,分解的FPGA內(nèi)部寄存器的性能參數(shù):

(1) Tdin為從FPGA的IO口到FPGA內(nèi)部寄存器輸入端的延時(shí);

(2) Tclk為從FPGA的IO口到FPGA內(nèi)部寄存器時(shí)鐘端的延時(shí);

(3) Tus/Th為FPGA內(nèi)部寄存器的建立時(shí)間和保持時(shí)間;

(4) Tco為FPGA內(nèi)部寄存器傳輸時(shí)間;

(5) Tout為從FPGA寄存器輸出到IO口輸出的延時(shí)。

對于整個(gè)FPGA系統(tǒng)分析,能夠又一次定義這些參數(shù):FPGA建立時(shí)間能夠定義為:

(1) FPGA建立時(shí)間:FTsu = Tdin + Tsu – Tclk;

(2) FPGA保持時(shí)間:FTh = Th + Tclk。

(3) FPGA傳輸數(shù)據(jù)時(shí)間:FTco = Tclk + Tco + Tout;

由上分析當(dāng)FPGA成為一個(gè)系統(tǒng)后就可以進(jìn)行IO時(shí)序分析了。FPGA模型變?yōu)槿缦聢D所示,為FPGA系統(tǒng)參數(shù):

1.3?輸入最大最小延時(shí)

外部器件發(fā)送數(shù)據(jù)到FPGA系統(tǒng)模型如圖1.3所看到的。

對FPGA的IO口進(jìn)行輸入最大最小延時(shí)約束是為了讓FPGA設(shè)計(jì)工具可以盡可能的優(yōu)化從輸入port到第一級寄存器之間的路徑延遲,使其可以保證系統(tǒng)時(shí)鐘可靠的採到從外部芯片到FPGA的信號。下圖為FPGA數(shù)據(jù)輸入模型:

輸入延時(shí)即為從外部器件發(fā)出數(shù)據(jù)到FPGA輸入port的延時(shí)時(shí)間。

當(dāng)中包含時(shí)鐘源到FPGA延時(shí)和到外部器件延時(shí)之差、經(jīng)過外部器件的數(shù)據(jù)發(fā)送Tco。再加上PCB板上的走線延時(shí)。如圖1.4所看到的,為外部器件和FPGA接口時(shí)序。下圖為外部器件和FPGA接口時(shí)序:

(1). 最大輸入延時(shí)

最大輸入延時(shí)(input delay max)為當(dāng)從數(shù)據(jù)發(fā)送時(shí)鐘沿(lanuch edge)經(jīng)過最大外部器件時(shí)鐘偏斜(Tclk1),最大的器件數(shù)據(jù)輸出延時(shí)(Tco),再加上最大的PCB走線延時(shí)(Tpcb)。減去最小的FPGA時(shí)鐘偏移(FTsu)的情況下還能保證時(shí)序滿足的延時(shí)。這樣才能保證FPGA的建立時(shí)間,準(zhǔn)確采集到本次數(shù)據(jù)值,即為setup slack必須為正。如圖1.1的所看到的。計(jì)算公式如下所示:

Setup slack =(Tclk + Tclk2(min))–(Tclk1(max)?+Tco(max)?+Tpcb(max)?+FTsu)≥0

推出以下公式:

Tclk1(max)?+ Tco(max)?+ Tpcb(max)?–Tclk2(min)?≤ Tclk + FTsu

由Altera官方數(shù)據(jù)手冊得知:

input delay max = Board Delay?(max)?– Board clock skew?(min)?+ Tco(max)

結(jié)合本系統(tǒng)參數(shù)公式為:

input delay max = Tpcb(max)?– (Tclk2(min)–Tclk1(max)) + Tco(max)

(2).?最小輸入延時(shí)

最小輸入延時(shí)(input delay min)為當(dāng)從數(shù)據(jù)發(fā)送時(shí)鐘沿(lanuch edge)經(jīng)過最小外部器件時(shí)鐘偏斜(Tclk1),最小器件數(shù)據(jù)輸出延時(shí)(Tco),再加上最小PCB走線延時(shí)(Tpcb),此時(shí)的時(shí)間總延時(shí)值一定要大于FPGA的最大時(shí)鐘延時(shí)和建立時(shí)間之和。這樣才能不破壞FPGA上一次數(shù)據(jù)的保持時(shí)間。即為hold slack必須為正,如圖1.1的所看到的,計(jì)算公式例如以下式所看到的:

Hold slack=(Tclk1(min)?+ Tco(min)?+ Tpcb(min))–(FTh + Tclk2(max))≥ 0

推出例如以下公式:

Tclk1(min)+Tco(min)+Tpcb(min)–Tclk2(max)?≥ FTh

由Altera官方數(shù)據(jù)手冊得知:

input delay max = Board Delay?(min)?- Board clock skew?(min)?+ Tco(min)

結(jié)合本系統(tǒng)參數(shù)公式為

input delay max=Tpcb(min)?– (Tclk2(max)–Tclk1(min)) + Tco(min)

進(jìn)行輸入最大最小延時(shí)的計(jì)算,我們需要估算4個(gè)值:

    外部器件輸出數(shù)據(jù)通過PCB板到達(dá)FPGAport的最大值和最小值Tpcb,PCB延時(shí)經(jīng)驗(yàn)值為600mil/ns。1mm = 39.37mil;外部器件接收到時(shí)鐘信號后輸出數(shù)據(jù)延時(shí)的最大值和最小值Tco。時(shí)鐘源到達(dá)外部器件的最大、最小時(shí)鐘偏斜Tclk1;時(shí)鐘源到達(dá)FPGA的最大、最小時(shí)鐘偏斜Tclk2;

當(dāng)外部器件時(shí)鐘為FPGA提供的時(shí)候。Tclk1和Tclk2即合成Tshew,如圖下圖所示,為FPGA輸出時(shí)鐘模型:

1.4? 輸出最大最小延時(shí)

FPGA輸出數(shù)據(jù)給外部器件模型如下圖所示。對FPGA的IO口進(jìn)行輸出最大最小延時(shí)約束是為了讓FPGA設(shè)計(jì)工具可以盡可能的優(yōu)化從第一級寄存器到輸出port之間的路徑延遲。使其可以保證讓外部器件能準(zhǔn)確的採集到FPGA的輸出數(shù)據(jù)。下圖為FPGA輸出延時(shí)模型:

輸出延時(shí)即為從FPGA輸出數(shù)據(jù)后到達(dá)外部器件的延時(shí)時(shí)間。

當(dāng)中包含時(shí)鐘源到FPGA延時(shí)和到外部器件延時(shí)之差、PCB板上的走線延時(shí)以及外部器件的數(shù)據(jù)建立和保持時(shí)間。如圖所看到的,為FPGA和外部器件接口時(shí)序圖。下圖為FPGA輸出延時(shí):

(1). 最大輸出延時(shí)

由Altera官方數(shù)據(jù)手冊得知:

Output delay max = Board Delay (max) – Board clock skew (min) + Tsu

由公式得知。最大輸出延時(shí)(output delay max)為當(dāng)從FPGA數(shù)據(jù)發(fā)出后經(jīng)過最大的PCB延時(shí)、最小的FPGA和器件時(shí)鐘偏斜,再加上外部器件的建立時(shí)間。約束最大輸出延時(shí),是為了約束IO口輸出,從而使外部器件的數(shù)據(jù)建立時(shí)間。即為setup slack必須為正,計(jì)算公式例如以下式所看到的:

Setup slack =(Tclk + Tclk2(min))–(Tclk1(max)?+FTco(max)?+Tpcb(max)?+Tsu)≥0

推導(dǎo)出例如以下公式:

FTco(max)?+ Tpcb(max)?–(Tclk2(min)?– Tclk1(max))+Tsu ≤Tclk

再次推導(dǎo),得到例如以下公式:

FTco(max)?+ Output delay max ≤Tclk

由此可見,約束輸出最大延時(shí)。即為通知編譯器FPGA的FTco最大值為多少。依據(jù)這個(gè)值做出正確的綜合結(jié)果。

(2).?輸出最小延時(shí)

由Altera官方數(shù)據(jù)手冊得知:

Output delay min = Board Delay (min) – Board clock skew (max) –Th

由公式得知,最小輸出延時(shí)(output delay min)為當(dāng)從FPGA數(shù)據(jù)發(fā)出后經(jīng)過最小的PCB延時(shí)、最大的FPGA和器件時(shí)鐘偏斜,再減去外部器件的建立時(shí)間。約束最小輸出延時(shí),是為了約束IO口輸出。從而使IO口輸出有個(gè)最小延時(shí)值,防止輸出過快,破壞了外部器件上一個(gè)時(shí)鐘的數(shù)據(jù)保持時(shí)間。導(dǎo)致hlod slack為負(fù)值。不能正確的鎖存到數(shù)據(jù)。最小輸出延時(shí)的推導(dǎo)計(jì)算公式例如以下式所看到的:

Hold slack = (Tclk1(min)?+ FTco(min)?+ Tpcb(min))–(Th + Tclk2(max))≥ 0

推導(dǎo)出例如以下公式:

FTco(min)?+ Tpcb(min)?– (Tclk2(max)?– Tclk1(min))– Th ≥ 0

再次推導(dǎo),得出例如以下公式:

FTco(min)?+ Output delay min ≥ 0

由公式得知,約束輸出最大延時(shí),即為通知編譯器FPGA的FTco最小值為多少。依據(jù)這個(gè)值做出正確的綜合結(jié)果。

由公式得知,進(jìn)行輸出最大最小延時(shí)的計(jì)算,我們需要估算4個(gè)值:

    FPGA輸出數(shù)據(jù)通過PCB板到達(dá)外部器件輸入port的最大值和最小值Tpcb,PCB延時(shí)經(jīng)驗(yàn)值為600mil/ns,1mm = 39.37mil。時(shí)鐘源到達(dá)外部器件的最大、最小時(shí)鐘偏斜Tclk2;時(shí)鐘源到達(dá)FPGA的最大、最小時(shí)鐘偏斜Tclk1;外部器件的建立時(shí)間Tsu和保持時(shí)間Th;

當(dāng)外部器件時(shí)鐘為FPGA提供的時(shí)候,Tclk1和Tclk2即合成Tshew。如下圖所示,為FPGA提供時(shí)鐘模型:

1.5 使用范圍

通過作者使用總結(jié)情況,IO口時(shí)序約束主要使用在下面情況:

1.?數(shù)據(jù)交換頻率較高

因?yàn)镮O時(shí)序約束一般計(jì)算值都是在幾納秒。當(dāng)FPGA和外部數(shù)據(jù)交換頻率較低,如FPGA操作640*480的TFT液晶進(jìn)行刷屏,傳輸數(shù)據(jù)頻率只24Mhz,一個(gè)數(shù)據(jù)時(shí)鐘都有41.666ns,全然不用約束都能滿足時(shí)序要求。

可是當(dāng)操作SDRAM執(zhí)行到120M時(shí)候,因?yàn)橐粋€(gè)數(shù)據(jù)變換周期才8ns。因此IO口的少量延時(shí)都會影響到SDRAM數(shù)據(jù)。因此這樣的情況下需要對輸入輸出進(jìn)行完整的IO口時(shí)序約束。而且分析正確,才干消除傳輸數(shù)據(jù)不穩(wěn)定過的情況。

2.代碼已經(jīng)比較優(yōu)化

當(dāng)數(shù)據(jù)交換頻率較高,可是時(shí)序約束還是不滿足時(shí)序要求的時(shí)候。我們都需要對代碼進(jìn)行分析,好的時(shí)序都是設(shè)計(jì)出來的,不是約束出來的。如程序清單 1.1所看到的。首先hcount_r 和vcount_r 都為10位計(jì)數(shù)器,這種代碼TFT的三色輸出的port就會有非常大的延時(shí)。由于dat_act的膠合邏輯太多。輸出路徑太長導(dǎo)致。

這種情況下應(yīng)該不是首先做時(shí)序約束,應(yīng)該改動代碼,盡量做到寄存器直接輸出。僅僅有當(dāng)代碼比較優(yōu)化的情況,再做時(shí)序約束這樣才干得到較好的結(jié)果。

演示樣例程序如下:

assign dat_act  =    ((hcount_r >= hdat_begin) && (hcount_r < hdat_end))                           ?&&?((vcount_r?>=?vdat_begin)?&&?(vcount_r?<?vdat_end));assign tft_r    =    (dat_act) ? {rgb16_dat[15:11], 3'b111} : 8'h00;assign tft_g    =    (dat_act) ? {rgb16_dat[10:5],  3'b111} : 8'h00;  assign tft_b    =    (dat_act) ? {rgb16_dat[4:0],   3'b111} : 8'h00;

1.6? 總結(jié)

本篇主要是對FPGA的IO口時(shí)序約束進(jìn)行對應(yīng)的分析,并未做實(shí)際的使用分析,興許以后將會結(jié)合軟件,以及實(shí)際案例對IO口時(shí)序約束進(jìn)行具體的使用介紹。最后附上一個(gè)Altera官方的IO時(shí)序約束分析樣例。如圖下圖所示,為Altera官方例程:

FPGA設(shè)計(jì)過程中所遇到的路徑有輸入到觸發(fā)器,觸發(fā)器到觸發(fā)器,觸發(fā)器到輸出,例如下圖所示,下圖就是典型的同步時(shí)序路徑:

二、 應(yīng)用背景

靜態(tài)時(shí)序分析簡稱STA,它是一種窮盡的分析方法。它依照同步電路設(shè)計(jì)的要求。依據(jù)電路網(wǎng)表的拓?fù)浣Y(jié)構(gòu),計(jì)算并檢查電路中每個(gè)DFF(觸發(fā)器)的建立和保持時(shí)間以及其它基于路徑的時(shí)延要求是否滿足。

STA作為FPGA設(shè)計(jì)的主要驗(yàn)證手段之中的一個(gè),不需要設(shè)計(jì)者編寫測試向量,由軟件自己主動完畢分析,驗(yàn)證時(shí)間大大縮短,測試覆蓋率可達(dá)100%。

靜態(tài)時(shí)序分析的前提就是設(shè)計(jì)者先提出要求,然后時(shí)序分析工具才會依據(jù)特定的時(shí)序模型進(jìn)行分析,給出正確是時(shí)序報(bào)告。

進(jìn)行靜態(tài)時(shí)序分析。主要目的就是為了提高系統(tǒng)工作主頻以及添加系統(tǒng)的穩(wěn)定性。

對非常多數(shù)字電路設(shè)計(jì)來說,提高工作頻率非常重要,由于高工作頻率意味著高處理能力。通過附加約束能夠控制邏輯的綜合、映射、布局和布線,以減小邏輯和布線延時(shí)。從而提高工作頻率。

三、理論分析

1. 靜態(tài)時(shí)序分析的理論基礎(chǔ)知識

在進(jìn)行正確的時(shí)序分析前。我們必須具備主要的靜態(tài)時(shí)序的基本知識點(diǎn),不然看著編譯器給出的時(shí)序分析報(bào)告宛如天書。如圖所示,為libero軟件給出的寄存器到寄存器模型的時(shí)序分析報(bào)告的截取,接下來我們會弄清楚每一個(gè)欄目的數(shù)據(jù)變量的含義以及計(jì)算方法。

下圖為libero靜態(tài)時(shí)序分析報(bào)告:

1.1 固定參數(shù) launch edge、latch edge、Tsu、Th、Tco概念

(1). launch edge

時(shí)序分析起點(diǎn)(launch edge):第一級寄存器數(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í)鐘沿到來之前數(shù)據(jù)從不穩(wěn)定到穩(wěn)定所需的時(shí)間,假設(shè)建立的時(shí)間不滿足要求那么數(shù)據(jù)將不能在這個(gè)時(shí)鐘上升沿被穩(wěn)定的打入觸發(fā)器。如 下圖所示,下圖為建立時(shí)間圖解:

(4). Clock Hold Time (Th)

保持時(shí)間(Th):是指數(shù)據(jù)穩(wěn)定后保持的時(shí)間。假設(shè)保持時(shí)間不滿足要求那么數(shù)據(jù)相同也不能被穩(wěn)定的打入觸發(fā)器。保持時(shí)間示意圖如下圖所示,下圖為保持時(shí)間圖解:

(5). Clock-to-Output Delay(tco)

數(shù)據(jù)輸出延時(shí)(Tco):這個(gè)時(shí)間指的是當(dāng)時(shí)鐘有效沿變化后,數(shù)據(jù)從輸入端到輸出端的最小時(shí)間間隔。

1.2?Clock skew

時(shí)鐘偏斜(clock skew):是指一個(gè)時(shí)鐘源到達(dá)兩個(gè)不同寄存器時(shí)鐘端的時(shí)間偏移。如下圖所示,下圖為時(shí)鐘偏斜:

時(shí)鐘偏斜計(jì)算公式如下:Tskew = Tclk2 -Tclk1

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),如下圖所示,為數(shù)據(jù)到達(dá)的時(shí)間:

數(shù)據(jù)到達(dá)時(shí)間計(jì)算公式如下:Data Arrival Time = Launch edge?+ Tclk1 +Tco + Tdata

1.4?Clock Arrival Time

時(shí)鐘到達(dá)時(shí)間(Clock Arrival Time):時(shí)鐘從latch邊沿到達(dá)鎖存寄存器時(shí)鐘輸入端所消耗的時(shí)間為時(shí)鐘到達(dá)時(shí)間,如下圖所示,為時(shí)鐘到達(dá)時(shí)間:

時(shí)鐘到達(dá)時(shí)間計(jì)算公式如下:Clock Arrival Time = Lacth edge + Tclk2

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í)間。如下圖所示,為數(shù)據(jù)需求時(shí)間:

(建立)數(shù)據(jù)需求時(shí)間計(jì)算公式例如以下:Data Required Time = Clock Arrival Time - Tsu

(保持)數(shù)據(jù)需求時(shí)間計(jì)算公式例如以下:Data Required Time = Clock Arrival Time?+ Th

1.6 Setup slack

建立時(shí)間余量(setup slack):當(dāng)數(shù)據(jù)需求時(shí)間大于數(shù)據(jù)到達(dá)時(shí)間時(shí),就說時(shí)間有余量,Slack是表示設(shè)計(jì)是否滿足時(shí)序的一個(gè)稱謂。下圖為建立時(shí)間余量:

建立時(shí)間余量的計(jì)算公式例如以下:Setup slack = Data Required Time - Data Arrival Time

由公式可知。正的slack表示數(shù)據(jù)需求時(shí)間大于數(shù)據(jù)到達(dá)時(shí)間,滿足時(shí)序(時(shí)序的余量)。負(fù)的slack表示數(shù)據(jù)需求時(shí)間小于數(shù)據(jù)到達(dá)時(shí)間,不滿足時(shí)序(時(shí)序的欠缺量)。

1.7 時(shí)鐘最小周期

時(shí)鐘最小周期:系統(tǒng)時(shí)鐘能執(zhí)行的最高頻率。

    當(dāng)數(shù)據(jù)需求時(shí)間大于數(shù)據(jù)到達(dá)時(shí)間時(shí),時(shí)鐘具有余量;當(dāng)數(shù)據(jù)需求時(shí)間小于數(shù)據(jù)到達(dá)時(shí)間時(shí),不滿足時(shí)序要求,寄存器經(jīng)歷亞穩(wěn)態(tài)或者不能正確獲得數(shù)據(jù)。當(dāng)數(shù)據(jù)需求時(shí)間等于數(shù)據(jù)到達(dá)時(shí)間時(shí)。這是最小時(shí)鐘執(zhí)行頻率。剛好滿足時(shí)序。

從以上三點(diǎn)能夠得出最小時(shí)鐘周期為數(shù)據(jù)到達(dá)時(shí)間等于數(shù)據(jù)需求時(shí)間的運(yùn)算公式如下:Data Required Time?= Data Arrival Time

由上式推出如下公式:

Tmin + Latch edge + Tclk2 - Tsu = Launch edge + Tclk1 + Tco + Tdata

最后推出最小時(shí)鐘周期為:

Tmin = Tco + Tdata + Tsu - Tskew

四、應(yīng)用分析

1. 設(shè)置時(shí)鐘主頻約束

全部的靜態(tài)時(shí)序分析都是在有約束的情況下編譯器才給出分析報(bào)告,所以進(jìn)行時(shí)序分析的第一步就是設(shè)置約束。

Libero軟件設(shè)置時(shí)鐘約束的途徑三種,單時(shí)鐘約束,多時(shí)鐘約束和在Designer里面進(jìn)行約束。

1.1 單時(shí)鐘約束

有時(shí)我們系統(tǒng)全部模塊都採用同一個(gè)時(shí)鐘,這樣的方式最為簡單,直接在Synplify主界面上有個(gè)設(shè)置時(shí)鐘約束的。如下圖紅框所看到的,下圖為單時(shí)鐘設(shè)置:

設(shè)置完畢后,編譯。通過Synplify時(shí)鐘報(bào)告看初步時(shí)鐘執(zhí)行頻率是否能達(dá)到要求,時(shí)鐘報(bào)告如圖4.2所看到的,設(shè)定100Mhz,能執(zhí)行102.7Mhz。滿足時(shí)序。下圖為時(shí)序報(bào)告:

1.2?時(shí)鐘約束

當(dāng)系統(tǒng)內(nèi)部模塊採用了多個(gè)時(shí)鐘時(shí)。那就需要進(jìn)行多時(shí)鐘約束了。

首先需要打開設(shè)置界面。在Synplify中選擇:File->New->Constraint File建立SDC文件,選擇時(shí)鐘約束如下圖所示,為多時(shí)鐘約束:

對時(shí)鐘進(jìn)行例如以下約束后保存SDC文件,約束如下圖所示,為多時(shí)鐘約束完畢:

1.2?Designer SmartTime時(shí)鐘約束

時(shí)鐘約束除了在Synplify中能夠約束外。還能夠在Designer SmartTime中設(shè)置時(shí)鐘約束,打開Designer Constraint,選擇Clock進(jìn)行針對每一個(gè)使用時(shí)鐘的設(shè)置,如下圖所示,為Designer時(shí)序約束:

1.3?時(shí)序報(bào)告分析

(1)Synplify時(shí)序報(bào)告

當(dāng)約束了時(shí)序后,需要觀察時(shí)序報(bào)告,看時(shí)鐘是否能達(dá)到我們需要的時(shí)鐘,首先觀察Synplify綜合報(bào)告。以多時(shí)鐘約束為樣例,從Synplify得到的時(shí)序報(bào)告如下圖所示,為多時(shí)鐘約束時(shí)序報(bào)告:

由上圖可知時(shí)序都滿足約束,未出現(xiàn)違規(guī)。能夠在以下的報(bào)告中查看最差路徑,如圖4.7所看到的是clk2的最差路徑。下圖為最差路徑:

(2)Designer SmartTime時(shí)序分析報(bào)告

當(dāng)設(shè)計(jì)經(jīng)過Synplify綜合給出網(wǎng)表文件后,還須要Designer進(jìn)行布局布線,通過布局布線優(yōu)化后的時(shí)序會有變化,因此,還須要分析布局布線后的時(shí)序,打開Designer->Timing Analyzer查閱總體時(shí)序分析報(bào)告如下圖所示,為布局布線后時(shí)序報(bào)告:

由Synplify綜合后的報(bào)告和Designer進(jìn)行布局布線后的報(bào)告能夠看出。布局布線后優(yōu)化了一些時(shí)序。特別是clk2時(shí)鐘,通過布局布線后優(yōu)化到了184Mhz,全然滿足時(shí)序。

(3)具體時(shí)序報(bào)告圖

通過Synplify綜合后的和Designer進(jìn)行布局布線都僅僅是看到了一個(gè)大體的時(shí)序報(bào)告。當(dāng)我們需要分析時(shí)序時(shí)候必須觀察細(xì)致的時(shí)序報(bào)告,在SmartTime中提供這樣的報(bào)告功能,以clk2分析為例,在Timing Analyzer找到例如以下區(qū)域,下圖為?時(shí)序報(bào)告選擇。

如上圖所示,選擇寄存器到寄存器進(jìn)行分析時(shí)鐘主頻。寄存器到寄存器分析。

如上圖所示,時(shí)序報(bào)告中給出了數(shù)據(jù)延時(shí)。時(shí)序余量,數(shù)據(jù)到達(dá)時(shí)間,數(shù)據(jù)需求時(shí)間。數(shù)據(jù)建立時(shí)間,以及最小周期和時(shí)鐘偏斜等信息,有了上一節(jié)的時(shí)序分析基礎(chǔ)知識,我們?nèi)荒芸炊@些數(shù)據(jù)代表的意義。這樣對我們時(shí)序分析就知己知彼,進(jìn)一步雙擊當(dāng)中一條路徑,還會給出這條路徑的硬件電路圖,如下圖硬件電路圖所示。有了這些具體的時(shí)序報(bào)告。對設(shè)計(jì)進(jìn)行調(diào)整更加清晰。

 

推薦器件

更多器件
器件型號 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊 ECAD模型 風(fēng)險(xiǎn)等級 參考價(jià)格 更多信息
EP4CE40F23C7N 1 Altera Corporation Field Programmable Gate Array, 2475 CLBs, 472.5MHz, 39600-Cell, PBGA484, 23 X 23 MM, 1 MM PITCH, LEAD FREE, FBGA-484
$640.28 查看
EPM1270T144I5N 1 Altera Corporation Flash PLD, 10ns, 980-Cell, CMOS, PQFP144, 22 X 22 MM, 0.50 MM PITCH, LEAD FREE, TQFP-144

ECAD模型

下載ECAD模型
$145.11 查看
EPM3128ATI100-10N 1 Altera Corporation EE PLD, 10ns, 128-Cell, CMOS, PQFP100, TQFP-100
$17.54 查看

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

任何技術(shù)的學(xué)習(xí)就好比一個(gè)江湖,對于每一位俠客都需要不斷的歷練,從初入江湖的小白到歸隱山林的隱世高人,需要不斷的自我感悟自己修煉,讓我們一起仗劍闖FPGA乃至更大的江湖。