国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

一文弄懂Verilog靜態(tài)時(shí)序分析中的建立時(shí)間和保持時(shí)間

這篇具有很好參考價(jià)值的文章主要介紹了一文弄懂Verilog靜態(tài)時(shí)序分析中的建立時(shí)間和保持時(shí)間。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

? ? ? ?在對(duì)Verilog代碼進(jìn)行靜態(tài)時(shí)序分析的時(shí)候,建立時(shí)間和保持時(shí)間是需要我們重點(diǎn)關(guān)注的指標(biāo)。

1.建立時(shí)間和保持時(shí)間的是什么?

建立時(shí)間(Setup Time):指采樣時(shí)鐘邊沿到來之前,數(shù)據(jù)需要保持穩(wěn)定的時(shí)間。如果數(shù)據(jù)在采樣時(shí)鐘的邊沿到來之前的建立時(shí)間內(nèi)這段時(shí)間變化,可能會(huì)造成時(shí)鐘采樣的數(shù)據(jù)在0和1之間跳變,使得寄存器進(jìn)入亞穩(wěn)態(tài)(亞穩(wěn)態(tài):可以理解為不穩(wěn)定的狀態(tài))。

保持時(shí)間(Hold Time):指采樣時(shí)鐘邊沿到來之后,數(shù)據(jù)需要保持穩(wěn)定的時(shí)間。如果數(shù)據(jù)在采樣時(shí)鐘的邊沿到來之后的建立時(shí)間內(nèi)這段時(shí)間變化,可能會(huì)造成寄存器進(jìn)入亞穩(wěn)態(tài),寄存器內(nèi)的數(shù)據(jù)采樣數(shù)據(jù)可能無法正確存儲(chǔ)。

? ? ? ? 建立時(shí)間和保持時(shí)間,總的來說就是,采樣時(shí)鐘跳變沿到來的前一段時(shí)間和后一段時(shí)間,被采樣數(shù)據(jù)都不能變化,要保持穩(wěn)定,如果在采樣時(shí)鐘跳變沿來之前的一小段時(shí)間內(nèi)變化,則可能無法正確對(duì)數(shù)據(jù)進(jìn)行采樣,如果在采樣時(shí)鐘跳變沿來之后的一小段時(shí)間內(nèi)變化,則可能出現(xiàn)采樣了之后但數(shù)據(jù)沒有正確地保存在寄存器里面。

? ? ? ?下面,舉一個(gè)例子來說明時(shí)鐘和建立時(shí)間以及保持時(shí)間的關(guān)系。想象一下你(數(shù)據(jù))坐公交(時(shí)鐘)從你家到學(xué)校,公交車每隔10分鐘來一趟(相當(dāng)于某一時(shí)鐘頻率)。假設(shè)公交車每天的8:00am會(huì)到你家附近的公交站(時(shí)鐘的采樣沿),如果你8點(diǎn)踩點(diǎn)去公交站,那你有可能會(huì)錯(cuò)過那一趟公交車(數(shù)據(jù)在時(shí)鐘跳變沿來之前還沒穩(wěn)定),因?yàn)楣卉嚳赡軙?huì)來早點(diǎn)或者來晚一點(diǎn)。那么,怎么能確保你一定坐上8:00am那一趟公交車呢?答案很明顯,就是提前幾分鐘過去公交站等(這個(gè)等待的時(shí)間就是建立時(shí)間)。而你上車之后,可能要坐10分鐘的車,3個(gè)站,但是時(shí)間還沒到,你就提前一個(gè)站下車,那你就無法準(zhǔn)時(shí)到達(dá)學(xué)校(不考慮你下車后叫司機(jī)來接你的情況)。也就是說,你必須要在車上待足夠長(zhǎng)的時(shí)間(這個(gè)等待的時(shí)間就是保持時(shí)間),否則,公交車無法將你送到學(xué)校(寄存器數(shù)據(jù)可能無法正確保存)。

2.建立時(shí)間和保持時(shí)間的作用是什么?

? ? ? ?在對(duì)Verilog代碼進(jìn)行靜態(tài)時(shí)序分析的時(shí)候,建立時(shí)間和保持時(shí)間是需要我們重點(diǎn)關(guān)注的指標(biāo)。它們關(guān)系到代碼能否正常地在FPGA中的運(yùn)行。Verilog代碼使用Vivado,Quartus等開發(fā)套件編譯完成后,都可以看到靜態(tài)時(shí)序分析報(bào)告。在時(shí)序分析報(bào)告中,通常出現(xiàn)的是setup time slack(建立時(shí)間裕量)和hold time slack(保持時(shí)間裕量),即建立時(shí)間和保持時(shí)間還有多少余量,如果setup time slack為正值,則表示建立時(shí)間裕量還有空余,意味著該路徑可以運(yùn)行在更高的時(shí)鐘頻率下;而setup time slack為負(fù)值時(shí),則表示建立時(shí)間不滿足要求,意味著該路徑無法在該時(shí)鐘頻率下穩(wěn)定運(yùn)行,需要做時(shí)序優(yōu)化。至于hold time slack,一般都不用管,幾乎遇不到會(huì)出現(xiàn)保持時(shí)間違例的情況。(本人對(duì)保持時(shí)間違例的情況了解甚少,需要學(xué)習(xí))

一文弄懂Verilog靜態(tài)時(shí)序分析中的建立時(shí)間和保持時(shí)間,fpga開發(fā),信號(hào)處理

? ? ? ?上圖是一個(gè) 經(jīng)典的時(shí)序分析圖,展示的是一個(gè)寄存器到寄存器的路徑。一般來說,絕大部分的靜態(tài)時(shí)序分析都是在分析寄存器到寄存器之間的路徑。接下來用一段簡(jiǎn)短的代碼來輔助說明一下。

//========= code 1 ========
    reg  in ;
    reg  out;
always@(posedge clk or negedge rst_n)
    if(!rst_n)
       out <= 1'd0;
    else
       out <= ~in;

//========= code 2 ========
    reg  [ 7: 0] in ;
    reg  [17: 0] out;
always@(posedge clk or negedge rst_n)
    if(!rst_n)
       out <= 1'd0;
    else
       out <= (~in + 1'b1) * (~in + 1'b1);

以上兩段代碼,都是從寄存器到寄存器的路徑,唯一的區(qū)別就是,從in到out的計(jì)算不一樣,第一段只是將in取反就送給out了,而第二段既做了取反,還做了加法和乘法,計(jì)算相對(duì)第一段明顯復(fù)雜了。這個(gè)時(shí)候,我們思考這樣一個(gè)問題:上面這兩段代碼中的時(shí)鐘clk到底支持多高的頻率?100MHz,200MHz還是300MHz?

一文弄懂Verilog靜態(tài)時(shí)序分析中的建立時(shí)間和保持時(shí)間,fpga開發(fā),信號(hào)處理

計(jì)算最大工作頻率的公式如上,其中,Tco為發(fā)端寄存器從時(shí)鐘到達(dá)直至數(shù)據(jù)到達(dá)Q端的時(shí)間,Tlogic為組合邏輯延遲,Tnet為兩級(jí)寄存器之間的布線延遲,Tsetup為收端寄存器建立時(shí)間,Tskew兩級(jí)寄存器的時(shí)間skew,其值等于時(shí)鐘同一邊沿到達(dá)兩個(gè)寄存器時(shí)鐘端口的時(shí)間差。在FPGA中,對(duì)于同步設(shè)計(jì),Tskew可以忽略,Tco和Tsetup取決于芯片工藝,通常越先進(jìn)的工藝,Tco和Tsetup越小。因此,一旦芯片型號(hào)選定只能通過Tlogic和Tnet來改善最大頻率。對(duì)于FPGA來說,由于布局布線的過程一般都是自動(dòng)完成的(除非你加了額外的約束),Tnet也不是我們能決定的因素。

? ? ? ?因此,上面的代碼支持的最大頻率主要由Tlogic決定,亦即如果想代碼運(yùn)行得快一點(diǎn),那就得縮短Tlogic,這個(gè)關(guān)系到時(shí)序優(yōu)化的方法,內(nèi)容很多,以后我有時(shí)間會(huì)再寫一篇關(guān)于時(shí)序優(yōu)化的文章,和大家一起學(xué)習(xí)一下。

? ? ? ?總結(jié)一下,建立時(shí)間和保持時(shí)間,是靜態(tài)時(shí)序分析中的重要一環(huán),通常以建立時(shí)間裕量和保持時(shí)間裕量的形式出現(xiàn),來評(píng)價(jià)Verilog設(shè)計(jì)的電路是否符合要求。而靜態(tài)時(shí)序分析,又是評(píng)價(jià)Verilog代碼能否在硬件載體中穩(wěn)定運(yùn)行得一個(gè)重要手段,是上板調(diào)試前的必要步驟,因此初學(xué)者應(yīng)該充分理解其含義,為后續(xù)的深入學(xué)習(xí)打下基礎(chǔ)。以上內(nèi)容僅為個(gè)人的學(xué)習(xí)分享,如果錯(cuò)誤,還望指正。文章來源地址http://www.zghlxwxcb.cn/news/detail-794642.html

到了這里,關(guān)于一文弄懂Verilog靜態(tài)時(shí)序分析中的建立時(shí)間和保持時(shí)間的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 時(shí)序分析、時(shí)序約束和時(shí)序收斂(8)--關(guān)于時(shí)序路徑、時(shí)鐘悲觀度和建立時(shí)間/保持時(shí)間的一些問題

    目錄 寫在前面 1、為什么同一條時(shí)序路徑在報(bào)表里的值不一樣?

    2024年02月08日
    瀏覽(22)
  • FPGA的時(shí)序分析、約束和收斂(8)----關(guān)于時(shí)序路徑、時(shí)鐘悲觀度和建立時(shí)間/保持時(shí)間的一些問題

    目錄 寫在前面 1、為什么同一條時(shí)序路徑在報(bào)表里的值不一樣?

    2024年02月12日
    瀏覽(30)
  • 一文弄懂Python中的內(nèi)存管理

    Python是一種解釋性語言,這意味著它在運(yùn)行之前不需要編譯。當(dāng)Python程序運(yùn)行時(shí),它會(huì)動(dòng)態(tài)地為所有變量和對(duì)象分配相應(yīng)的內(nèi)存。這意味著Python的內(nèi)存管理是自動(dòng)處理的,使得開發(fā)人員能夠?qū)W⒂诰帉懘a,而不用擔(dān)心相關(guān)內(nèi)存分配和釋放。本文就Python的內(nèi)存管理進(jìn)行詳述,

    2023年04月15日
    瀏覽(18)
  • Mybatis中的緩存機(jī)制(一文帶你弄懂)

    Mybatis中的緩存機(jī)制(一文帶你弄懂)

    緩存的作?:通過減少IO的?式,來提?程序的執(zhí)?效率。 緩存就是指存在內(nèi)存中的臨時(shí)數(shù)據(jù),使用緩存能夠減少和數(shù)據(jù)庫交互的次數(shù),提高效率。將相同查詢條件的sql語句執(zhí)行一遍后得到的結(jié)果存在內(nèi)存或者某種緩存介質(zhì)中,當(dāng)下次遇到一模一樣的查詢sql時(shí)候不在執(zhí)行sql與

    2024年02月11日
    瀏覽(18)
  • 靜態(tài)時(shí)序分析與時(shí)序約束

    靜態(tài)時(shí)序分析與時(shí)序約束

    理性的時(shí)鐘模型是一個(gè)占空比為50%且周期固定的方波: ?實(shí)際電路中輸入給FPGA的晶振時(shí)鐘信號(hào)是正弦波: Clock Jitter,時(shí)鐘抖動(dòng),相對(duì)于理想時(shí)鐘沿,實(shí)際時(shí)鐘存在不隨時(shí)鐘存在積累的、時(shí)而超前、時(shí)而滯后的偏移。 Clock Skew:時(shí)鐘偏差,同一個(gè)時(shí)鐘域內(nèi)的時(shí)鐘信號(hào)到達(dá)數(shù)字電

    2024年02月12日
    瀏覽(20)
  • 靜態(tài)時(shí)序分析(STA)

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

    靜態(tài)時(shí)序分析原理 什么是STA 分析(計(jì)算)design是否滿足timing約束的要求 DFF(sequential cell—有clk的器件)setup/hold需求 復(fù)位/設(shè)置信號(hào) 信號(hào)脈沖寬度 門控時(shí)鐘信號(hào) 計(jì)算design是否滿足DRC的要求 max_capacitance—節(jié)點(diǎn)電容 max_transition—信號(hào)爬升時(shí)間 max_fanout—負(fù)載能力有多少 如上圖所

    2024年01月23日
    瀏覽(18)
  • 靜態(tài)時(shí)序分析STA基礎(chǔ)

    靜態(tài)時(shí)序分析STA基礎(chǔ)

    @ 目錄 一、TCL語言和synopsys TCL語言入門 1.1 TCL基本指令 1.2 synopsys TCL常用語言 二、STA基本概念 2.1 時(shí)序?。═iming Arc)與線延遲、單元延遲 2.2 建立時(shí)間與保持時(shí)間 2.3 時(shí)序路徑(Timing path) 2.4時(shí)鐘域(Clock Domains) 2.5 操作條件(Operating Conditions)和 PVT(Process Voltage Temperature)

    2024年02月15日
    瀏覽(21)
  • [靜態(tài)時(shí)序分析簡(jiǎn)明教程(八)]虛假路徑

    [靜態(tài)時(shí)序分析簡(jiǎn)明教程(八)]虛假路徑

    一個(gè) 數(shù)字芯片工程師 的 核心競(jìng)爭(zhēng)力 是什么?不同的工程師可能給出不同的答復(fù),有些人可能提到 硬件描述語言 ,有些人可能會(huì)提到對(duì)于 特定算法和協(xié)議的理解 ,有些人或許會(huì)提到 對(duì)于軟硬件的結(jié)合劃分 ,作者想說,這些說法, 其實(shí)對(duì)也不對(duì) ,硬件描述語言,翻來覆去

    2024年02月02日
    瀏覽(24)
  • 靜態(tài)時(shí)序分析 第三章 標(biāo)準(zhǔn)單元庫

    靜態(tài)時(shí)序分析 第三章 標(biāo)準(zhǔn)單元庫

    ? ?本章將介紹時(shí)序信息在 單元庫(library cell) 中是如何描述的。這個(gè)單元可以是1個(gè) 標(biāo)準(zhǔn)單元(standard cell) 、1個(gè) IO緩存器( IO buffer) ,或者 復(fù)雜的IP(ItellectualProperty,知識(shí)產(chǎn)權(quán))核 ,比如 USB核( USB core) 。 ? ?除了時(shí)序信息,單元庫還包括了其他一些屬性 attributes ,比如 單元

    2024年01月16日
    瀏覽(35)
  • 靜態(tài)時(shí)序分析 第二章 基礎(chǔ)知識(shí)

    靜態(tài)時(shí)序分析 第二章 基礎(chǔ)知識(shí)

    目錄 1. 邏輯門單元 2. 門單元的時(shí)序計(jì)算參數(shù) ??????? 2.1 信號(hào)轉(zhuǎn)換延時(shí)(transition delay) ???????? 2.2 邏輯門延時(shí)(logic gate delay) 3.? 時(shí)序單元相關(guān)約束 ??????? 3.1 建立時(shí)間(setup time) ??????? 3.2 保持時(shí)間(hold time) ??????? 3.3 恢復(fù)時(shí)間 ??????? 3.4 移除時(shí)間 ?????

    2023年04月13日
    瀏覽(29)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包