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

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

FPGA 高級(jí)設(shè)計(jì):時(shí)序分析和收斂

05/06 12:50
2283
閱讀需 14 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

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

今天給大俠帶來(lái)FPGA 高級(jí)設(shè)計(jì):時(shí)序分析和收斂,話不多說(shuō),上貨。

這里超鏈接一篇之前的STA的文章,僅供各位大俠參考。

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

什么是靜態(tài)時(shí)序分析?靜態(tài)時(shí)序分析就是Static Timing Analysis,簡(jiǎn)稱 STA。它可以簡(jiǎn)單的定義為:設(shè)計(jì)者提出一些特定的時(shí)序要求(或者說(shuō)是添加特定的時(shí)序約束),套用特定的時(shí)序模型,針對(duì)特定的電路進(jìn)行分析。分析的最終結(jié)果當(dāng)然是要求系統(tǒng)時(shí)序滿足設(shè)計(jì)者提出的要求。

下面舉一個(gè)最簡(jiǎn)單的例子來(lái)說(shuō)明時(shí)序分析的基本概念。

假設(shè)信號(hào)需要從輸入到輸出在FPGA 內(nèi)部經(jīng)過(guò)一些邏輯延時(shí)和路徑延時(shí)。我們的系統(tǒng)要求這個(gè)信號(hào)在 FPGA 內(nèi)部的延時(shí)不 能超過(guò) 15ns,而開(kāi)發(fā)工具在執(zhí)行過(guò)程中找到了如圖 1 所示的一些可能的布局布線方式。

那么,怎樣的布局布線能夠達(dá)到我們的要求呢?仔細(xì)分析一番,發(fā)現(xiàn)所有路徑的延時(shí)可能為 14ns、14ns、16ns、17ns、18ns,有兩條路徑能夠滿足要求,布局布線就會(huì)選擇滿足要求的兩條路徑之一。

圖 1 靜態(tài)時(shí)序分析模型

因此,有些說(shuō)法是錯(cuò)誤的,不分什么情況就說(shuō)時(shí)序不收斂,其實(shí)在不加約束的情況下談 時(shí)序約束是沒(méi)有意義的。

附加約束的基本作用:

1、提高設(shè)計(jì)的工作頻率

對(duì)很多數(shù)字電路設(shè)計(jì)來(lái)說(shuō),提高工作頻率非常重要,因?yàn)楦吖ぷ黝l率意味著高處理能力。 通過(guò)附加約束可以控制邏輯的綜合、映射、布局和布線,以減小邏輯和布線延時(shí),從而提高 工作頻率。

2、獲得正確的時(shí)序分析報(bào)告

幾乎所有的 FPGA 設(shè)計(jì)平臺(tái)都包含靜態(tài)時(shí)序分析工具,利用這類工具可以獲得映射或 布局布線后的時(shí)序分析報(bào)告,從而對(duì)設(shè)計(jì)的性能做出評(píng)估。靜態(tài)時(shí)序分析工具以約束作為判斷時(shí)序是否滿足設(shè)計(jì)要求的標(biāo)準(zhǔn),因此要求設(shè)計(jì)者正確輸入約束,以便靜態(tài)時(shí)序分析工具輸 出正確的時(shí)序分析報(bào)告。

3、指定 FPGA/CPLD 引腳位置與電氣標(biāo)準(zhǔn)

FPGA/CPLD 的可編程特性使電路板設(shè)計(jì)加工和 FPGA/CPLD 設(shè)計(jì)可以同時(shí)進(jìn)行,而不必等 FPGA/CPLD 引腳位置完全確定,從而節(jié)省了系統(tǒng)開(kāi)發(fā)時(shí)間。這樣,電路板加工完成后, 設(shè)計(jì)者要根據(jù)電路板的走線對(duì) FPGA/CPLD 加上引腳位置約束,使 FPGA/CPLD 與電路板正確連接。另外通過(guò)約束還可以指定 IO 引腳所支持的接口標(biāo)準(zhǔn)和其他電氣特性。為了滿足日 新月異的通信發(fā)展,Xilinx 新型 FPGA/CPLD 可以通過(guò) IO 引腳約束設(shè)置支持諸如 AGP、 BLVDS、CTT、GTL、GTLP、HSTL、LDT、LVCMOS、LVDCI、LVDS、LVPECL、LVDSEXT、 LVTTL、PCI、PCIX、SSTL、ULVDS 等豐富的 IO 接口標(biāo)準(zhǔn)。另外通過(guò)區(qū)域約束還能在 FPGA上規(guī)劃各個(gè)模塊的實(shí)現(xiàn)區(qū)域,通過(guò)物理布局布線約束,完成模塊化設(shè)計(jì)等。

靜態(tài)時(shí)序分析中使用的各個(gè)模型分析:

1、周期(PERIOD)的含義

周期的含義是時(shí)序中最簡(jiǎn)單也是最重要的含義,其它很多時(shí)序概念會(huì)因?yàn)?a class="article-link" target="_blank" href="/tag/%E8%BD%AF%E4%BB%B6/">軟件商不同略有差異,而周期的概念確是最通用的,周期的概念是 FPGA/ASIC 時(shí)序定義的基礎(chǔ)概念。后面要講到的其它時(shí)序約束都是建立在周期約束的基礎(chǔ)上的,很多其它時(shí)序公式,可以用周期公式推導(dǎo)。周期約束是一個(gè)基本時(shí)序和綜合約束,它附加在時(shí)鐘網(wǎng)線上,時(shí)序分析工具根據(jù)PERIOD 約束檢查時(shí)鐘域內(nèi)所有同步元件的時(shí)序是否滿足要求。PERIOD 約束會(huì)自動(dòng)處理寄存器時(shí)鐘端的反相問(wèn)題,如果相鄰?fù)皆r(shí)鐘相位相反,那么它們之間的延遲將被默認(rèn)限制為 PERIOD 約束值的一半,如圖 2 所示

圖 2 周期定義

時(shí)鐘的最小周期為:

TCLK = TCKO + TLOGIC + TNET + TSETUP - TCLK_SKEW

TCLK_SKEW = TCD1 - TCD2(穩(wěn)定時(shí)為負(fù)的)

其中 TCKO 為時(shí)鐘輸出時(shí)間,TLOGIC 為同步元件之間的組合邏輯延遲,TNET 為網(wǎng)線 延遲,TSETUP 為同步元件的建立時(shí)間,TCLK_SKEW 為時(shí)鐘信號(hào) TCD2 和 TCD1 延遲的差別。

2、關(guān)于輸入到達(dá)時(shí)間

圖 3 輸入到達(dá)時(shí)間示意圖

定義的含義是輸入數(shù)據(jù)在有效時(shí)鐘沿之后的 TARRIVAL 時(shí)刻到達(dá)。則

TARRIVAL = TCKO + TOUTPUT + TLOGIC(1)

根據(jù)上面介紹的周期(Period)公式,我們可以得到:

Tcko + Toutput + Tlogic + Tinput + Tsetup - Tclk_skew = Tclk(2)

將公式 1 代入公式 2:Tarrival + Tinput + Tsetup - Tclk_skew = Tclk,而 Tclk_skew 滿足時(shí)序關(guān)系后為負(fù),所以?TARRIVAL + TINPUT + TSETUP < Tclk(3)。

這就是 Tarrival 應(yīng)該滿足的時(shí)序關(guān)系。其中 TINPUT 為輸入端的組合邏輯、網(wǎng)線和 PAD的延遲之和,TSETUP 為輸入同步元件的建立時(shí)間。

3、數(shù)據(jù)延時(shí)和數(shù)據(jù)到達(dá)時(shí)間的關(guān)系

圖 4 數(shù)據(jù)延時(shí)和數(shù)據(jù)到達(dá)時(shí)間的關(guān)系

TDELAY 為要求的芯片內(nèi)部輸入延遲,其最大值 TDELAY_MAX 與輸入數(shù)據(jù)到達(dá)時(shí)間 TARRIVAL 的關(guān)系如圖 4 所示。也就是說(shuō):

TDELAY_MAX + TARRIVAL = TPERIOD(4)

所以:

TDELAY < TDELAY_MAX = TPERIOD - TARRIVAL(5)

4、要求輸出的穩(wěn)定時(shí)間

從下一級(jí)輸入端的延遲可以計(jì)算出當(dāng)前設(shè)計(jì)輸出的數(shù)據(jù)必須在何時(shí)穩(wěn)定下來(lái),根據(jù)這個(gè) 數(shù)據(jù)對(duì)設(shè)計(jì)輸出端的邏輯布線進(jìn)行約束,以滿足下一級(jí)的建立時(shí)間要求,保證下一級(jí)采樣的 數(shù)據(jù)是穩(wěn)定的。計(jì)算要求的輸出穩(wěn)定時(shí)間如圖 5 所示:

圖 5 要求的輸出穩(wěn)定時(shí)間示意圖

公式的推導(dǎo)如下:

定義:TSTABLE = TLOGIC + TINPUT + TSETUP

從前面介紹的周期(Period)公式,可以得到(其中 TCLK_SKEW = TCLK1 - TCLK2):

TCLK = TCKO + TOUTPUT + TLOGIC + TINPUT + TSETUP + TCLK_SKEW

將 TSTABLE 的定義代入到周期公式,可以得到:

TCLK = TCKO + TOUTPUT + TSTABLE + TCLK_SKEW

所以:TCKO + TOUTPUT + TSTABLE < TCLK

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

下面闡述的是上面的時(shí)序概念對(duì)應(yīng)于 Altera 中的幾個(gè)重要的時(shí)序問(wèn)題。

下面主要介紹 Altera 對(duì)應(yīng)的這些時(shí)序概念和約束方法。前面首先介紹的第一個(gè)時(shí)序概念周期(Period),這個(gè)概念是 FPGA/ASIC 通用的一個(gè)概念,各方的定義相當(dāng)統(tǒng)一,至多是描 述方式不同罷了,所有的 FPGA 設(shè)計(jì)都首先要進(jìn)行周期約束,這樣做的好處除了在綜合與 布局布線時(shí)給出規(guī)定目標(biāo)外,還能讓時(shí)序分析工具考察整個(gè)設(shè)計(jì)的 Fmax 等。

Altera 的周期定義如圖 6 所示,公式描述如下:

圖 6 Altera-clock period?

Clock Period = Clk – to – out + Data Delay + Setup Time - Clk Skew,

即: Tclk = Tco + B + Tsu - (E-C) Fmax =1/Tclk

對(duì)比一下前面的介紹,只要理解了 B 包含了兩級(jí)寄存器之間的所有 logic 和 net 的延時(shí) 就會(huì)發(fā)現(xiàn)與前面公式完全一致。

 

其他一些重要的概念:

1、Clock Setup Time(tsu)?

要想正確采樣數(shù)據(jù),就必須使數(shù)據(jù)和使能信號(hào)在有效時(shí)鐘沿到達(dá)前就準(zhǔn)備好,所謂時(shí)鐘建立時(shí)間就是指時(shí)鐘到達(dá)前,數(shù)據(jù)和使能已經(jīng)準(zhǔn)備好的最小時(shí)間間隔。如圖 7 所示:

圖 7 tsu 示意圖

這里定義Setup時(shí)間是站在同步時(shí)序整個(gè)路徑上的,需要區(qū)別的是另一個(gè)概念Micro tsu。Micro tsu 指的是一個(gè)觸發(fā)器內(nèi)部的建立時(shí)間,它是觸發(fā)器的固有屬性,一般典型值小于1~2ns。在 Xilinx 等的時(shí)序概念中,稱 Altera 的 Micro tsu 為 setup 時(shí)間,用 Tsetup 表示,請(qǐng) 大家區(qū)分一下。

回到 Altera 的時(shí)序概念,Altera 的 tsu 定義如下:

tsu = Data Delay – Clock Delay + Micro tsu

2、Clock Hold Time(tH)?

時(shí)鐘保持時(shí)間是只能保證有效時(shí)鐘沿正確采用的數(shù)據(jù)和使能信號(hào)的最小穩(wěn)定時(shí)間。其定 義如圖 8 所示:

圖 8 tH示意圖

時(shí)鐘保持時(shí)間是只能保證有效時(shí)鐘沿正確采用的數(shù)據(jù)和使能信號(hào)的最小穩(wěn)定時(shí)間。其定 義如下圖所示:定義的公式為:tH = Clock Delay – Data Delay + Micro tH 注:其中 Micro tH 是指寄存器內(nèi)部的固有保持時(shí)間,同樣是寄存器的一個(gè)固有參數(shù), 典型值小于 1~2ns。

3、Clock-to-Output Delay(tco)?

這個(gè)時(shí)間指的是當(dāng)時(shí)鐘有效沿變化后,將數(shù)據(jù)推倒同步時(shí)序路徑的輸出端的最小時(shí)間間隔。如圖 9 所示:

圖 9 tco 示意圖

定義:tco = Clock Delay + Micro tco + Data Delay

注:其中 Micor tco 也是一個(gè)寄存器的固有屬性,指的是寄存器相應(yīng)時(shí)鐘有效沿,將數(shù) 據(jù)送到輸出端口的內(nèi)部時(shí)間參數(shù)。它與 Xilinx 的時(shí)序定義中,有一個(gè)概念叫 Tcko 是同一個(gè)概念。

4、Pin to Pin Delay(tpd)?

tpd 指輸入管腳通過(guò)純組合邏輯到達(dá)輸出管腳這段路徑的延時(shí),特別需要說(shuō)明的是,要求輸入到輸出之間只有組合邏輯,才是 tpd 延時(shí)。

5、Slack

Slack 是表示設(shè)計(jì)是否滿足時(shí)序的一個(gè)稱謂,正的 Slack 表示滿足時(shí)序(時(shí)序的余量),負(fù)的 Slack 表示不滿足時(shí)序(時(shí)序的欠缺量)。

Slack 的定義和圖形如圖 10?所示:

圖 10 Slack 示意圖

Slack = Required clock period – Actual clock period Slack = Slack clock period – ( Micro tCO + Data Delay + Micro tSU )

6、始終偏斜

Clock Skew 指一個(gè)同源時(shí)鐘到達(dá)兩個(gè)不同的寄存器時(shí)鐘端的時(shí)間偏移,如圖 11?所示:

圖 11 clock skew 示意圖

推薦器件

更多器件
器件型號(hào) 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊(cè) ECAD模型 風(fēng)險(xiǎn)等級(jí) 參考價(jià)格 更多信息
A3P250-FG256I 1 Microchip Technology Inc Field Programmable Gate Array, 6144 CLBs, 250000 Gates, 350MHz, CMOS, PBGA256
$27.48 查看
EP4CE55F23I8LN 1 Altera Corporation Field Programmable Gate Array, 3491 CLBs, 362MHz, 55856-Cell, PBGA484, 23 X 23 MM, 1 MM PITCH, LEAD FREE, FBGA-484
$173.1 查看
ATF22V10C-15PU 1 Microchip Technology Inc IC PLD 10MC 15NS 24DIP

ECAD模型

下載ECAD模型
$1.85 查看

相關(guān)推薦

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

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