0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Vivado時(shí)序報(bào)表問(wèn)題分析

FPGA十年老鳥(niǎo) ? 來(lái)源:FPGA十年老鳥(niǎo) ? 2024-10-24 15:36 ? 次閱讀

前言

記得我第一次到xilinx的官方論壇去問(wèn)問(wèn)題,因?yàn)槟菚r(shí)有一個(gè)問(wèn)題困擾著我,以前沒(méi)怎么注意的地方。以前我關(guān)注時(shí)序報(bào)表一般也就看setup summary,很少關(guān)注hold suammay。前兩天突然想去看看hold suammay。以為應(yīng)該和setup summary一樣沒(méi)啥疑問(wèn)。結(jié)果卻發(fā)現(xiàn)幾乎每個(gè)節(jié)點(diǎn)的時(shí)延兩個(gè)表都不一樣!

問(wèn)題描述

我們看這個(gè)時(shí)序模型

wKgaomcZ-UqAIIONAAKZrn6L66Q252.png

不管我們?nèi)シ治鰏etup slack還是hold slack 都是基于共同的路徑來(lái)的,那理論上來(lái)說(shuō)source clock path、data path、destination clock path 的時(shí)延數(shù)值在setup summary和hold suammay都應(yīng)該一模一樣才對(duì)。

但是,當(dāng)我找到同一條路徑進(jìn)行分析的時(shí)候。卻發(fā)現(xiàn)幾乎每個(gè)節(jié)點(diǎn)的時(shí)延都不一樣。

這是setup summary:

wKgaomcZ-UqAD-u4AAG3ZAeyO8w547.png

這是hold summary:

wKgZomcZ-UqACwGtAAITOOfM0h8166.png

看上面這些紅色框框,兩個(gè)表每個(gè)節(jié)點(diǎn)的延時(shí)都不一樣。所以感覺(jué)很莫名其妙,但為了能夠找到答案呢,我就用我純正的chinese English到xilinx官方論壇去發(fā)帖詢(xún)問(wèn)了。

以下是我提的問(wèn)題:

the same path in setup summary and hold summary ,why is the data path delay different


here are two pictures,source is the same, destination is the same . the first pic is setup summary ,the second is hold summary.I don't know why the data path delay is different?
and the source clock path is also different ?

6ce36924-9087-11ef-a511-92fbcf53809c.png

欣慰的是,很快有了回復(fù),也解答了我的疑惑。

STA is performed using a timing model called "slow corner" for setup and "fast corner" for hold, so even if path is the same, the path delay is different.
These factors are essential to guarantee operation over the process variation (P), operating voltage range (V), and operating temperature range (T).



slow corner、fast corner、PVT。這些陌生的名詞似乎為我打開(kāi)了一扇不熟悉的窗口

既然上面那位專(zhuān)家已經(jīng)提點(diǎn)了我這些名詞,自然要搜索一番能夠搞明白一點(diǎn)

wKgZomcZ-V-Ae2w9AAB0FEFUerw348.png

時(shí)序模型

1、OCV與PVT

即便是同一種FF,在同一個(gè)芯片上不同操作條件下的延時(shí)都不盡相同,我們稱(chēng)這種現(xiàn)象為OCV(on-chip variation)。OCV表示的是芯片內(nèi)部的時(shí)序偏差,雖然很細(xì)小,但是也必須嚴(yán)格考慮到時(shí)序分析中去。

產(chǎn)生OCV的原因主要有PVT(Process / Voltage / Temperature)三個(gè)方面,而STA要做的就是針對(duì)不同工藝角(Process Corner)下特定的時(shí)序模型來(lái)分析時(shí)序路徑,從而保證設(shè)計(jì)在任何條件下都能滿(mǎn)足時(shí)序要求,可以正常工作。

通常PVT對(duì)芯片性能的影響如下圖所示,

wKgZomcZ-V-AdXiOAADp5_5fSR0770.png

不同的PVT條件組成了不同的corner,另外在數(shù)字電路設(shè)計(jì)中還要考慮RC corner的影響,排列組合后就可能有超過(guò)十種的corner要分析。但是在FPGA設(shè)計(jì)中的靜態(tài)時(shí)序分析一般僅考慮Best Case和Worst Case,也稱(chēng)作Fast Process Corner 和Slow Process Corner,分別對(duì)應(yīng)極端的PVT條件。

wKgaomcZ-V-AONTyAAHZfkRZ3v4140.png

2、Multi-Corner

Vivado中的STA支持多角時(shí)序分析(Multi-Corner Timing Analysis),會(huì)對(duì)以上兩種corner下的時(shí)序同時(shí)進(jìn)行分析,然后報(bào)告最差的情況。因?yàn)槊總€(gè)corner下的延時(shí)也會(huì)有一定的變化范圍,所以時(shí)序分析還會(huì)考慮每種corner下的最大延時(shí)和最小延時(shí)。

wKgZomcZ-V-AfLpaAADQV8qVMRw524.png

如果一個(gè)設(shè)計(jì)在Best Case和Worst Case下都能滿(mǎn)足時(shí)序要求,則可以推算這個(gè)設(shè)計(jì)在其允許的任何操作條件下都能保持正常工作。

這里要提醒大家,不要被corner的名字誤導(dǎo),實(shí)際上,同樣一條路徑可能在Slow Corner中滿(mǎn)足時(shí)序卻在Fast Corner中有時(shí)序違例。但是你在Vivado中看到的時(shí)序報(bào)告只會(huì)顯示其對(duì)兩種corner并行分析后選出的最差情況。

wKgZomcZ-V-AMaTSAAQRGaNEYnk758.png

有特殊需要的情況下,可以在Vivado中通過(guò)config_timing_corners -corner -delay_type 來(lái)選擇將某種corner應(yīng)用于setup和/或hold的分析。在Report Timing Summary 和Report Timing的圖形化界面也可以通過(guò)Timer Setting對(duì)corner做調(diào)整,具體界面詳見(jiàn)稍后描述。

這樣最大化考慮OCV的時(shí)序分析方法在處理同一條路徑的共同時(shí)鐘路徑時(shí)也會(huì)應(yīng)用不同的延時(shí)數(shù)據(jù),從而會(huì)得出更為悲觀的數(shù)據(jù)。為了真實(shí)反映路徑延時(shí)情況,這部分延時(shí)必須被糾正,這就是CRPR(Clock Reconvergence Pessimism Removal)。

仔細(xì)觀察時(shí)序報(bào)告便可以發(fā)現(xiàn)在報(bào)告路徑的Slack之前有一行顯示clock pessimism已經(jīng)被考慮在內(nèi),在進(jìn)行Setup Check時(shí)會(huì)加上一定的clock pessimism,而Hold Check時(shí)則會(huì)減去一定的clock pessimism。

下圖顯示了CRPR的來(lái)源以及在Vivado時(shí)序報(bào)告中的具體體現(xiàn)。

wKgaomcZ-WGAJynvAAJHzoznLEw630.png

總結(jié)

現(xiàn)在我想想好像之前在quartus平臺(tái)的時(shí)序分析的時(shí)候看到過(guò)類(lèi)似于slow corner、fast corner的字眼,但之前應(yīng)該也搜索過(guò)這些是什么意思,但完全沒(méi)有印象。

此次是我?guī)е鴨?wèn)題來(lái)進(jìn)行了解,突然感覺(jué)理解多了。

Setup分析的時(shí)候使用的是Slow Corner模型

wKgaomcZ-WGAQgrNAADUvuXMRyo757.png

Hold分析的時(shí)候使用的是Fast Corner模型

wKgZomcZ-V-AVv6RAADGMcjIa2g491.png

這兩個(gè)模型是兩個(gè)極端條件下模型。

實(shí)際上時(shí)序報(bào)表上也有一個(gè)提示,只是一開(kāi)始沒(méi)注意到

wKgaomcZ-WGAJtyXAAAUqmKp91A671.pngwKgaomcZ-WGAZnENAAAS69JyNmQ884.png

報(bào)表中已經(jīng)提到了Slow Process Corner 和Fast Process Corner這兩個(gè)名詞了

所以Setup報(bào)表分析分析的是max at slow process corner。在slow process corner模型下所有節(jié)點(diǎn)的時(shí)延都是最大的。在這種情況下如果能滿(mǎn)足setup時(shí)間的話,那么在其他模型就都可以滿(mǎn)足

同樣的,Hold報(bào)表分析分析的是min at fast process corner。在fast process corner模型下所有節(jié)點(diǎn)的時(shí)延都是最小的。在這種情況下如果能滿(mǎn)足hold時(shí)間的話,那么在其他模型就都可以滿(mǎn)足。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1624

    文章

    21568

    瀏覽量

    600565
  • Xilinx
    +關(guān)注

    關(guān)注

    71

    文章

    2147

    瀏覽量

    120712
  • 時(shí)序
    +關(guān)注

    關(guān)注

    5

    文章

    381

    瀏覽量

    37231
  • 模型
    +關(guān)注

    關(guān)注

    1

    文章

    3065

    瀏覽量

    48578

原文標(biāo)題:FPGA知識(shí)查漏補(bǔ)缺——為什么setup summary和hold suammay的data path延時(shí)不一致

文章出處:【微信號(hào):FPGA十年老鳥(niǎo),微信公眾號(hào):FPGA十年老鳥(niǎo)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    VIVADO時(shí)序約束及STA基礎(chǔ)

    時(shí)序約束的目的就是告訴工具當(dāng)前的時(shí)序狀態(tài),以讓工具盡量?jī)?yōu)化時(shí)序并給出詳細(xì)的分析報(bào)告。一般在行為仿真后、綜合前即創(chuàng)建基本的時(shí)序約束。
    的頭像 發(fā)表于 03-11 14:39 ?9591次閱讀

    如何在Vitis中把設(shè)置信息傳遞到底層的Vivado

    在Vitis完成這個(gè)過(guò)程的底層,實(shí)際調(diào)用的是Vivado。Vitis會(huì)指定默認(rèn)的Vivado策略來(lái)執(zhí)行綜合和實(shí)現(xiàn)的步驟。當(dāng)默認(rèn)的Vivado策略無(wú)法達(dá)到預(yù)期的時(shí)序要求時(shí),我們需要在
    發(fā)表于 08-02 08:03 ?1270次閱讀
    如何在Vitis中把設(shè)置信息傳遞到底層的<b class='flag-5'>Vivado</b>

    vivado時(shí)序分析與約束優(yōu)化

    轉(zhuǎn)自:VIVADO時(shí)序分析練習(xí)時(shí)序分析在FPGA設(shè)計(jì)中是分析工程很重要的手段,
    發(fā)表于 08-22 11:45

    可以在Vivado時(shí)序分析器工具中指定溫度和電壓值來(lái)估算設(shè)計(jì)時(shí)序嗎?

    嗨,我們正在嘗試使用Vivado工具鏈?zhǔn)謩?dòng)路由FPGA,并想知道應(yīng)該使用什么工具來(lái)手動(dòng)路由Virtex 7 FPGA。還可以在Vivado時(shí)序分析器工具中指定溫度和電壓值來(lái)估算設(shè)計(jì)
    發(fā)表于 10-25 15:20

    vivado時(shí)序分析相關(guān)的用戶(hù)指南嗎?

    嗨,您能告訴我與vivado時(shí)序分析相關(guān)的用戶(hù)指南嗎?謝謝
    發(fā)表于 03-16 08:14

    時(shí)序約束與時(shí)序分析 ppt教程

    時(shí)序約束與時(shí)序分析 ppt教程 本章概要:時(shí)序約束與時(shí)序分析基礎(chǔ)常用
    發(fā)表于 05-17 16:08 ?0次下載

    Vivado中的靜態(tài)時(shí)序分析工具Timing Report的使用與規(guī)范

    過(guò)程必須以滿(mǎn)足XDC中的約束為目標(biāo)來(lái)進(jìn)行。那么: 如何驗(yàn)證實(shí)現(xiàn)后的設(shè)計(jì)有沒(méi)有滿(mǎn)足時(shí)序要求? 如何在開(kāi)始布局布線前判斷某些約束有沒(méi)有成功設(shè)置? 如何驗(yàn)證約束的優(yōu)先級(jí)? 這些都需要用到Vivado中的靜態(tài)時(shí)序
    發(fā)表于 11-17 18:03 ?3.6w次閱讀
    <b class='flag-5'>Vivado</b>中的靜態(tài)<b class='flag-5'>時(shí)序</b><b class='flag-5'>分析</b>工具Timing Report的使用與規(guī)范

    時(shí)序約束資料包】培訓(xùn)課程Timing VIVADO

    維持嗎? 1、Vivado基本操作流程 2、時(shí)序基本概念 3、時(shí)序基本約束和流程 4、Baselining時(shí)序約束 5、CDC時(shí)序約束 6、
    發(fā)表于 08-06 15:08 ?513次閱讀

    關(guān)于Vivado時(shí)序分析介紹以及應(yīng)用

    時(shí)序分析在FPGA設(shè)計(jì)中是分析工程很重要的手段,時(shí)序分析的原理和相關(guān)的公式小編在這里不再介紹,這篇文章是小編在練習(xí)
    發(fā)表于 09-15 16:38 ?6732次閱讀
    關(guān)于<b class='flag-5'>Vivado</b><b class='flag-5'>時(shí)序</b><b class='flag-5'>分析</b>介紹以及應(yīng)用

    Vivado報(bào)告命令的了解

    了解report_design_analysis,這是一個(gè)新的Vivado報(bào)告命令,可以獨(dú)特地了解時(shí)序和復(fù)雜性特征,這些特性對(duì)于分析時(shí)序收斂問(wèn)題很有價(jià)值。
    的頭像 發(fā)表于 11-26 07:01 ?3561次閱讀

    Vivado進(jìn)行時(shí)序約束的兩種方式

    上面我們講的都是xdc文件的方式進(jìn)行時(shí)序約束,Vivado中還提供了兩種圖形界面的方式,幫我們進(jìn)行時(shí)序約束:時(shí)序約束編輯器(Edit Timing Constraints )和
    的頭像 發(fā)表于 03-08 17:17 ?2w次閱讀
    <b class='flag-5'>Vivado</b>進(jìn)行<b class='flag-5'>時(shí)序</b>約束的兩種方式

    如何讀懂Vivado時(shí)序報(bào)告

    FPGA開(kāi)發(fā)過(guò)程中,vivado和quartus等開(kāi)發(fā)軟件都會(huì)提供時(shí)序報(bào)告,以方便開(kāi)發(fā)者判斷自己的工程時(shí)序是否滿(mǎn)足時(shí)序要求。
    的頭像 發(fā)表于 06-23 17:44 ?1128次閱讀
    如何讀懂<b class='flag-5'>Vivado</b><b class='flag-5'>時(shí)序</b>報(bào)告

    如何在Vivado中添加時(shí)序約束呢?

    今天介紹一下,如何在Vivado中添加時(shí)序約束,Vivado添加約束的方法有3種:xdc文件、時(shí)序約束向?qū)В–onstraints Wizard)、
    的頭像 發(fā)表于 06-26 15:21 ?3601次閱讀
    如何在<b class='flag-5'>Vivado</b>中添加<b class='flag-5'>時(shí)序</b>約束呢?

    如何讀懂FPGA開(kāi)發(fā)過(guò)程中的Vivado時(shí)序報(bào)告?

    FPGA開(kāi)發(fā)過(guò)程中,vivado和quartus等開(kāi)發(fā)軟件都會(huì)提供時(shí)序報(bào)告,以方便開(kāi)發(fā)者判斷自己的工程時(shí)序是否滿(mǎn)足時(shí)序要求。
    發(fā)表于 06-26 15:29 ?900次閱讀
    如何讀懂FPGA開(kāi)發(fā)過(guò)程中的<b class='flag-5'>Vivado</b><b class='flag-5'>時(shí)序</b>報(bào)告?

    Vivado時(shí)序問(wèn)題分析

    有些時(shí)候在寫(xiě)完代碼之后呢,Vivado時(shí)序報(bào)紅,Timing一欄有很多時(shí)序問(wèn)題。
    的頭像 發(fā)表于 01-05 10:18 ?1664次閱讀