欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

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

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

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

Vivado使用進(jìn)階:讀懂用好Timing Report

FPGA算法工程師 ? 來源:FPGA算法工程師 ? 2023-05-04 11:20 ? 次閱讀

本篇是《Vivado使用誤區(qū)與進(jìn)階》系列的最后一章,關(guān)于FPGA的時序分析。

《XDC 約束技巧》系列中討論了XDC 約束的設(shè)置方法、約束思路和一些容易混淆的地方。我們提到過約束是為了設(shè)計(jì)服務(wù),寫入 Vivado中 的 XDC 實(shí)際上就是用戶設(shè)定的目標(biāo),Vivado對 FPGA 設(shè)計(jì)的實(shí)現(xiàn)過程必須以滿足 XDC 中的約束為目標(biāo)進(jìn)行。那我們?nèi)绾悟?yàn)證實(shí)現(xiàn)后的設(shè)計(jì)有沒有滿足時序要求?又如何在開始布局布線前判斷某些約束有沒有成功設(shè)置?或是驗(yàn)證約束的優(yōu)先級?這些都要用到 Vivado 中的靜態(tài)時序分析工具。

靜態(tài)時序分析

靜態(tài)時序分析(Static Timing Analysis)簡稱 STA,采用窮盡的分析 方法來提取出整個電路存在的所有時序路徑,計(jì)算信號在這些路徑上的傳播延時,檢查信號的建立和保持時間是否滿足時序要求,通過對最大路徑延時和最小路徑延時的分析,找出違背時序約束的錯誤并報(bào)告。 STA 不需要輸入向量就能窮盡所有的路徑,且運(yùn)行速度很快、占用內(nèi)存較少、覆蓋率極高,不僅可以對芯片設(shè)計(jì)進(jìn)行全面的時序功能檢查,而且還可以利用時序分析的結(jié)果來優(yōu)化設(shè)計(jì)。所以 STA 不僅是數(shù)字集成電路設(shè)計(jì) Timing Sign-off 的必備手段,也越來越多地被用到設(shè)計(jì)的驗(yàn)證調(diào)試工 作中。 STA 在 FPGA 設(shè)計(jì)中也一樣重要,但不同于一般數(shù)字集成電路的設(shè)計(jì),F(xiàn)PGA 設(shè)計(jì)中的靜態(tài)時序分析工具一般都整合在芯片廠商提供的實(shí)現(xiàn)工具中。在 Vivado 中甚至沒有一個獨(dú)立的界面,而是通過幾個特定的時序 報(bào)告命令來實(shí)現(xiàn)。

OCV與PVT

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

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

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

7996e904-e7da-11ed-ab56-dac502259ad0.png

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

79a4c786-e7da-11ed-ab56-dac502259ad0.png

Multi-Corner

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

79b753ec-e7da-11ed-ab56-dac502259ad0.png

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

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

79cc26fa-e7da-11ed-ab56-dac502259ad0.png

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

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

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

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

79d60102-e7da-11ed-ab56-dac502259ad0.png

79e26c08-e7da-11ed-ab56-dac502259ad0.png

時序命令與報(bào)告

Vivado 中用于時序分析的命令主要有以下兩條,且都有對應(yīng)的圖形化設(shè)置界面。

report_timing_summary 主要用于實(shí)現(xiàn)后的 timing sigh-off

report_timing 主要用于交互式的約束驗(yàn)證以及更細(xì)致具體的時序報(bào)告與分析

report_timing_summary

我們先看看 report_timing_summary,實(shí)際上,不僅在布局布線后,在綜合后甚至是更具體的實(shí)現(xiàn)過程中 的每一小步之后都可以運(yùn)行,從而得到一個全局的時序報(bào)告。

在 Vivado IDE 中點(diǎn)擊 Report Timing Summary 后可以改變報(bào)告的內(nèi)容,例如每個時鐘域報(bào)告的路徑條數(shù),是否 setup 和 hold 全都報(bào)告等等。每改變一個選項(xiàng)都可以看到窗口下方的 Command 一欄顯示出對應(yīng)的 Tcl 命令。修改完設(shè)置后可以直接按 OK 鍵確認(rèn)執(zhí)行,也可以拷貝 Command 欄顯示的命令到 Tcl 腳本中稍后執(zhí)行。

7a036016-e7da-11ed-ab56-dac502259ad0.png

這里有個小竅門,通過-name 指定一個名字,就可以在 Vivado IDE 中新開一個窗口顯示這條命令的執(zhí)行 結(jié)果,這個窗口還可以用來跟其他諸如 Device View 或是 Schematic View 等窗口之間 cross probing。這一點(diǎn)也同樣適用于包括 report_timing 在內(nèi)的絕大部分 Vivado 中的 report 命令。

在設(shè)置窗口中還有 Timer Settings 一欄(report_timing 中也有),可以用來改變報(bào)告時采用的具體 corner、速度等級以及計(jì)算布線延時的方式。很多時候我們可以借助 Timer 的設(shè)置來快速驗(yàn)證和調(diào)試設(shè)計(jì)需求。

7a17cbf0-e7da-11ed-ab56-dac502259ad0.png

舉例來說,在實(shí)現(xiàn)后的報(bào)告中顯示時序違例比較嚴(yán)重,我們可以直接在 Timer 設(shè)置中改變速度等級后重新 報(bào)告時序,來驗(yàn)證把當(dāng)前這個已經(jīng)布局布線完畢的設(shè)計(jì)切換到更快一檔的芯片中是否可以滿足時序要求。

另外,在布局布線后的設(shè)計(jì)上報(bào)告時序,往往不能更直觀地發(fā)現(xiàn)那些扇出較大或是邏輯級數(shù)較高的路徑。此時我們可以修改連線模型為 estimated,報(bào)告出布局后布線前的時序而無需另外打開對應(yīng)階段的 DCP 并重 新運(yùn)行時序報(bào)告命令來操作,這么做節(jié)約時間的同時,也更容易找到那些高扇出路徑以及由于布局不佳而導(dǎo)致的時序違例。我們也可以修改連線模型為 none,這樣可以快速報(bào)告出那些邏輯延時較大以及邏輯級數(shù)較高的路徑。以上這些改變 Timer 設(shè)置的方法可以幫助我們快速定位設(shè)計(jì)中可能存在的問題和缺陷。

report_timing_summary 實(shí)際上隱含了 report_timing、report_clocks 、check_timing 以及部分的 report_clock_interaction 命令,所以我們最終看到的報(bào)告中也包含了這幾部分的內(nèi)容。另外自 2014.3 版起,打開實(shí)現(xiàn)后的結(jié)果時會直接打開一個預(yù)先產(chǎn)生好的報(bào)告。

7a202dfe-e7da-11ed-ab56-dac502259ad0.png

Timing Summary 報(bào)告把路徑按照時鐘域分類,每個組別下缺省會報(bào)告 Setup、Hold 以及 Pulse Width 檢 查最差的各 10 條路徑,還可以看到每條路徑的具體延時報(bào)告,并支持與 Device View、Schematic View 等窗 口之間的交互。

每條路徑具體的報(bào)告會分為 Summary、Source Clock Path、Data Path 和 Destination Clock Path 幾部分,詳細(xì)報(bào)告每部分的邏輯延時與連線延時。用戶首先要關(guān)注的就是 Summary 中的幾部分內(nèi)容,發(fā)現(xiàn)問題后 再根據(jù)具體情況來檢查詳細(xì)的延時數(shù)據(jù)。其中,Slack 顯示路徑是否有時序違例,Source 和 Destination 顯示 源驅(qū)動時鐘和目的驅(qū)動時鐘及其時鐘頻率, Requirement 顯示這條路徑的時序要求是多少,Data Path 顯示數(shù)據(jù)路徑上的延時,Logic Level 顯示這條路徑的邏輯級數(shù),而 Clock Path Skew 和 Clock Uncertainty 則顯示時鐘路徑上的不確定性。

7a2afffe-e7da-11ed-ab56-dac502259ad0.png

以上圖這條路徑來舉例,通過 Summary 我們可以得到這樣的信息:這是一條 clk 時鐘域內(nèi)的路徑,時鐘周期為 3.125ns,這條路徑有 0.268ns 的時序違例。違例的主要原因是邏輯級數(shù)較高導(dǎo)致的數(shù)據(jù)鏈路延時較大,但連線延時的比例也較高,所以可以仔細(xì)看看這條路徑的數(shù)據(jù)路徑上有沒有可能改進(jìn)布局、降低扇出或者是減少邏輯級數(shù)的優(yōu)化方向。

report_timing

report_timing 是更具體的時序報(bào)告命令,經(jīng)常用來報(bào)告某一條或是某些共享特定節(jié)點(diǎn)的路徑。用戶可以在設(shè)計(jì)的任何階段使用 report_timing,甚至是一邊設(shè)置 XDC,一邊用其來驗(yàn)證約束的可行性與優(yōu)先級。在 Vivado IDE 中可以由 Tools > Timing > ReportTiming 調(diào)出其圖形化設(shè)置窗口。

與 report_timing_summary 類似,調(diào)整選項(xiàng)后對應(yīng)的Tcl 命令也會在 Command 欄生成,在 Targets 一欄 還可以設(shè)置需要報(bào)告路徑的起始點(diǎn)/途經(jīng)點(diǎn)/結(jié)束點(diǎn),可以三個都設(shè)置或是僅設(shè)置其中任何一項(xiàng),每一項(xiàng)都支持通配符匹配甚至是正則表達(dá)式查找。report_timing 報(bào)告出的路徑延時與 report_timing_summary 中具體到每根 路徑上的報(bào)告一致,可以以此為依據(jù)幫助我們定位時序失敗的原因。

7a4cf6a4-e7da-11ed-ab56-dac502259ad0.png

用 report_timing 來報(bào)告時序其實(shí)還有一些更常見的應(yīng)用場景,用來幫助我們設(shè)置和驗(yàn)證約束,尤其是那些時 序例外約束。

舉例來說,在設(shè)計(jì)過程中我們約束了一條或數(shù)條多周期約束,不同于 UCF 必須讀入約束后重跑設(shè)計(jì),我們可以直接在 Tcl Console 中輸入這條 XDC,無需重跑設(shè)計(jì),直接用 report_timing 來驗(yàn)證。在隨之顯示的時序報(bào)告 Summary 部分可以看到 Timing Exception 后列出這條路徑被設(shè)置了怎樣的時序例外約束(注意,不加額外 option 時,以下兩條命令都僅針對 setup check) 。

7a614906-e7da-11ed-ab56-dac502259ad0.png

單純的一條多周期約束沒有什么特別,但是如果使用了通配符后的時序例外有重疊的情況下,Vivado 會根據(jù) 優(yōu)先級來決定對某條路徑應(yīng)用怎樣的約束。當(dāng)設(shè)計(jì)較大,XDC 較多時,一邊設(shè)置 XDC 一邊用 report_timing 來驗(yàn) 證就變得尤其重要。

另外,僅僅輸入 report_timing 而不加任何 option,Vivado 便會報(bào)告出時序違例最嚴(yán)重的那條路徑,方便我們快速了解當(dāng)前設(shè)計(jì)的 WNS,找到最差的那條路徑。在驗(yàn)證 I/O 約束時也常常用到 report_timing,只要指定-from 某個輸入或是-to 某個輸出便可以快速驗(yàn)證當(dāng)前設(shè)計(jì)在接口上的時序。

get_timing_paths

7a702642-e7da-11ed-ab56-dac502259ad0.png

除了上述兩個大家比較熟悉的時序報(bào)告命令,Vivado 中還提供一個 get_timing_paths 的命令,可以根據(jù)指定 的條件找到一些特定的路徑。我們可以利用其返回值中的一些屬性來快速定位設(shè)計(jì)中的問題。

例如邏輯級數(shù)這個影響 FPGA 性能的一大因素,因?yàn)榻?jīng)常隱藏在時序報(bào)告后很難被發(fā)現(xiàn)。在 Vivado 中,除了借助綜合后的報(bào)告來找到那些可能因?yàn)檫壿嫾墧?shù)較高而導(dǎo)致的時序難滿足的路徑外,還有一個更直接的辦法,可以一次性報(bào)告出設(shè)計(jì)中那些高邏輯級數(shù)的路徑,方便我們有針對性的深入分析和優(yōu)化。

下圖這個例子報(bào)告了時序最差的 10 條路徑的邏輯級數(shù)。需要注意的是,在綜合后和在布局布線后用一樣的腳本報(bào)告出的結(jié)果會稍有不同,對邏輯級數(shù)較為關(guān)注的情況,還是建議以綜合后的結(jié)果為主要依據(jù)。

7a7c17ae-e7da-11ed-ab56-dac502259ad0.png

小結(jié)

本文可以視為對《XDC 約束技巧》系列文章的補(bǔ)充,希望可以幫助大家了解 FPGA 設(shè)計(jì)中的時序分析方法,學(xué)會使用 Vivado 中的靜態(tài)時序分析工具來驗(yàn)證時序,定位問題,快速找到問題和解決方案。

《Vivado使用誤區(qū)與進(jìn)階》系列,到此篇便結(jié)束了,更多關(guān)于Vivado設(shè)計(jì)集成環(huán)境的應(yīng)用,可參考Xilinx官網(wǎng)的UG和在工程開發(fā)中體會。

審核編輯:湯梓紅

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

    關(guān)注

    1630

    文章

    21800

    瀏覽量

    606272
  • FPGA設(shè)計(jì)
    +關(guān)注

    關(guān)注

    9

    文章

    428

    瀏覽量

    26639
  • 時序分析
    +關(guān)注

    關(guān)注

    2

    文章

    127

    瀏覽量

    22618
  • 靜態(tài)時序
    +關(guān)注

    關(guān)注

    0

    文章

    20

    瀏覽量

    6964
  • Vivado
    +關(guān)注

    關(guān)注

    19

    文章

    815

    瀏覽量

    66914

原文標(biāo)題:Vivado使用進(jìn)階:讀懂用好Timing Report

文章出處:【微信號:FPGA算法工程師,微信公眾號:FPGA算法工程師】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    玩轉(zhuǎn)VivadoTiming Constraints

    玩轉(zhuǎn)VivadoTiming Constraints特權(quán)同學(xué),版權(quán)所有最近在熟悉Xilinx已經(jīng)推出好幾年的Vivado,雖然特權(quán)同學(xué)之前已經(jīng)著手玩過這個新開發(fā)工具,但只是簡單的玩玩,沒有深入
    發(fā)表于 01-11 16:55

    ISE Timing Anlayzer report

    ISE Timing Anlayzer report 是看post-map 還是 post-place&route我現(xiàn)在有個工程 post-map 有錯post-place&route 通過這該以哪個為準(zhǔn)
    發(fā)表于 08-24 14:15

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

    report clock可以查看全局時鐘樹的情況 三:通過report timing summary可以看到出現(xiàn)了12個時序問題,總的時序問題達(dá)到9個ns多,說明時序問題已經(jīng)比較糟糕了 四:在
    發(fā)表于 08-22 11:45

    無法通過Vivado GUI在OOC模式下運(yùn)行實(shí)現(xiàn)

    report actual utilization and timing,write checkpoint design,run drc,write verilog和xdc out route_design
    發(fā)表于 10-23 10:30

    Vivado 2017.4和2018.2不同的Linux和Windows之間的實(shí)現(xiàn)結(jié)果

    not report congestion issues and was able to close timing.How can I replicate the Windows results
    發(fā)表于 11-14 10:04

    Vivado下顯示指定路徑時序報(bào)告的流程

      Vivado運(yùn)行Report Timing Summary時,只顯示各個子項(xiàng)目最差的十條路徑,很可能并不包含你最關(guān)心的路近,這個時候顯示指定路徑的時序報(bào)告就顯得很重要了,下面就簡單介紹一下
    發(fā)表于 01-15 16:57

    Vivado使用誤區(qū)與進(jìn)階

    Vivado使用誤區(qū)與進(jìn)階》電子書匯集了賽靈思專家團(tuán)隊(duì)在客戶支持時所碰見的諸多實(shí)際案例,以及相對應(yīng)的解決方案;還有多年總結(jié)下來的設(shè)計(jì)技巧與代碼參數(shù)詳解。是您學(xué)習(xí)和掌握Vivado開發(fā)套件的一本不可多得的實(shí)戰(zhàn)指導(dǎo)資料。
    發(fā)表于 08-03 19:37 ?84次下載

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

    《XDC約束技巧》系列中討論了XDC約束的設(shè)置方法、約束思路和一些容易混淆的地方。我們提到過約束是為了設(shè)計(jì)服務(wù),寫入Vivado中的XDC實(shí)際上就是用戶設(shè)定的目標(biāo) ,Vivado對FPGA設(shè)計(jì)的實(shí)現(xiàn)
    發(fā)表于 11-17 18:03 ?3.7w次閱讀
    <b class='flag-5'>Vivado</b>中的靜態(tài)時序分析工具<b class='flag-5'>Timing</b> <b class='flag-5'>Report</b>的使用與規(guī)范

    Report QoR Suggestions助力解決Vivado設(shè)計(jì)問題

    Report QoR Suggestions (RQS) 可識別設(shè)計(jì)問題,并提供工具開關(guān)和可影響工具行為的設(shè)計(jì)單元屬性的解決方案,即便在無法自動執(zhí)行解決方案的情況下也可提供文本修改建議。
    的頭像 發(fā)表于 01-24 17:27 ?3089次閱讀
    <b class='flag-5'>Report</b> QoR Suggestions助力解決<b class='flag-5'>Vivado</b>設(shè)計(jì)問題

    時序分析的小工具——Global Timing Debugger

    然后會出現(xiàn)如下窗口, 使用GTD前, 需要有一個machine readable格式的timing report文件, 該文件可以通過report_timing -machine_readable
    的頭像 發(fā)表于 05-19 16:14 ?8283次閱讀
    時序分析的小工具——Global <b class='flag-5'>Timing</b> Debugger

    Vivado時序案例分析之解脈沖寬度違例

    脈沖寬度違例的詳情,請?jiān)?Vivado GUI 中打開脈沖寬度違例報(bào)告(單擊Reports - Timing - Report Pulse Width)或使用以下 Tcl 命令打開此報(bào)
    的頭像 發(fā)表于 11-19 13:48 ?5769次閱讀
    <b class='flag-5'>Vivado</b>時序案例分析之解脈沖寬度違例

    VIVADO中時序報(bào)告中WNS、WHS、TNS、THS有什么含義

    VIVADO中時序報(bào)告中WNS,WHS,TNS,THS含義運(yùn)行“report_timing”或“report_timing_summary”命令后,會注意到 WNS、TNS、WHS 和 THS
    的頭像 發(fā)表于 10-21 14:32 ?2.5w次閱讀
    <b class='flag-5'>VIVADO</b>中時序報(bào)告中WNS、WHS、TNS、THS有什么含義

    report_timing報(bào)告格式如何個性化配置?

    默認(rèn)report_timing中會出現(xiàn)換行的情況,如下圖所示,如何避免換行呢?
    的頭像 發(fā)表于 04-15 10:20 ?3707次閱讀

    用TCL定制Vivado設(shè)計(jì)實(shí)現(xiàn)流程

    今天推出Xilinx已發(fā)布的《Vivado使用誤區(qū)與進(jìn)階》系列:用TCL定制Vivado設(shè)計(jì)實(shí)現(xiàn)流程。
    的頭像 發(fā)表于 05-05 09:44 ?1145次閱讀
    用TCL定制<b class='flag-5'>Vivado</b>設(shè)計(jì)實(shí)現(xiàn)流程

    Vivado時序問題分析

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