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

FPGA時序約束經(jīng)歷之輸出延時約束(set_output_delay)

這篇具有很好參考價值的文章主要介紹了FPGA時序約束經(jīng)歷之輸出延時約束(set_output_delay)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

近期在進行emmc數(shù)據(jù)讀寫程序調(diào)試時,逼迫自己從一個時序小白跨進了時序約束的大門,這里記錄一下供大家學(xué)習參考。

需求

emmc hs200模式下,允許最高時鐘頻率為200M。其中emmc和FPGA之間的引腳有單向EMMC_CLK,雙向CMD和DATA[7:0]。根據(jù)emmc手冊,要求建立時間為1.4ns,保持時間為0.8ns。EMMC_CLK是FPGA提供給emmc的,因此要求發(fā)送命令或數(shù)據(jù)時,CLK和CMD到達emmc芯片時要滿足手冊要求的建立和保持時間。

添加約束

要使輸出的CLK和CMD滿足emmc的建立保持時間,就需要告訴FPGA編譯器,輸出的延遲有多少。因此分兩步:

第一步:添加時鐘約束。

我用的是xilinx ,vivado軟件,可以手寫xdc約束文件,也可采用GUI界面,網(wǎng)上搜索如何進行約束,都是教的用手寫,但遺憾的是,很多文章都是各種抄襲或者寫得籠統(tǒng)粗略,對一個新手來說屬實很難受(因為總出現(xiàn)語法錯誤還不知道原因)。因此這里推薦新手采用GUI添加約束,然后軟件自動寫到xdc文件,自己再去看,等熟練之后再進行手寫。
點擊implementation下的Edit Timing Constraints即添加約束
FPGA時序約束經(jīng)歷之輸出延時約束(set_output_delay)
FPGA時序約束經(jīng)歷之輸出延時約束(set_output_delay)
如圖所示,可以添加時鐘約束,輸入輸出約束等。
這里,我的時鐘是鎖相環(huán)鎖出來的,然后連接到輸出端口EMMC_CLK,因此屬于衍生時鐘,要用create generated clock(鎖相環(huán)鎖出來的或者自己寫個分頻代碼分出來的都屬于衍生時鐘)。

第二步:添加輸出延時。

添加好時鐘后,就要添加我的CMD或者DATA相當于EMMC_CLK的輸出延遲了,輸出延遲的計算網(wǎng)上一搜一大堆,就不講了,考慮PCB板級的走線延遲若為t,那么輸出延遲設(shè)置的值max應(yīng)為t+1.4,min值應(yīng)為t-0.8,也就是輸出延遲最大值應(yīng)該是走線延遲加下級芯片的建立時間,最小值是走線延遲減去下級芯片的保持時間。
約束后的結(jié)果是

create_generated_clock -name CLK100M -source [get_pins pll/clk_in1] -multiply_by 1 -add -master_clock sys_clk [get_pins pll/clk_out2]
create_generated_clock -name emmc_clk -source [get_pins pll/clk_out2] -multiply_by 1 -add -master_clock CLK100M [get_ports emmc_clk]
set_output_delay -clock [get_clocks emmc_clk] -max -add_delay 1.600 [get_ports -filter { NAME =~  "*emmc*" && DIRECTION == "INOUT" }]
set_output_delay -clock [get_clocks emmc_clk] -min -add_delay -1.000 [get_ports -filter { NAME =~  "*emmc*" && DIRECTION == "INOUT" }]

我這里是由于不知道板級延時是多少,因此自己給多加的一點裕量。

現(xiàn)象

這里我用時序報告來給大家講現(xiàn)象,至于時序報告怎么看,我認為這篇文章講得很到位,我也是看這篇文章看懂的。
Vivado下如何閱讀時序報告-知乎
我添加約束后有一個時序違例,報告建立時間裕度為負,也就是WNS為負,來看看報告。
先看保持時間
FPGA時序約束經(jīng)歷之輸出延時約束(set_output_delay)
FPGA時序約束經(jīng)歷之輸出延時約束(set_output_delay)
FPGA時序約束經(jīng)歷之輸出延時約束(set_output_delay)
FPGA時序約束經(jīng)歷之輸出延時約束(set_output_delay)
這里,保持時間的目標時鐘Required Time 為10.223ns,vivado為了滿足保持時間,讓數(shù)據(jù)(Data Path)走了一個最小延遲為7.791ns的路徑。
再看建立時間。
FPGA時序約束經(jīng)歷之輸出延時約束(set_output_delay)
FPGA時序約束經(jīng)歷之輸出延時約束(set_output_delay)
FPGA時序約束經(jīng)歷之輸出延時約束(set_output_delay)
在建立時間中,Data Path數(shù)據(jù)路徑是按最大值計算,這里由于保持時間中已經(jīng)把路徑定了,這里的數(shù)據(jù)路徑延時就是16.115ns,但這直接導(dǎo)致了建立時間不滿足時序了,也就是WNS為負。
我們來看布線圖
FPGA時序約束經(jīng)歷之輸出延時約束(set_output_delay)
途中就是這一條路徑的走線,數(shù)據(jù)寄存器的起點和終點實際都在左上角,卻在途中走了一個大圈。這里我在網(wǎng)上看到一個說法,無法求證,說vivado在編譯的時候就是優(yōu)先保證滿足保持時間,再來滿足建立時間。這個說法在這次實例中我認為得到了證明,這也就是平常WNS為負的情況比WHS為負的情況多的原因,也可以解釋平常的WHS總是很小的現(xiàn)象。

時序優(yōu)化

在這次實例中,我經(jīng)過分析,我認為時序違例的原因是在計算保持時間裕度時,目的時鐘的走線是按最大延遲計算,而這里我用了一個問號冒號語句來切換時鐘,導(dǎo)致目的時鐘算出來的最大延遲較大,所以數(shù)據(jù)路徑被迫去繞一大圈來滿足保持時間。而計算建立時間裕度時,目的時鐘走線按最小延遲計算,我估計問號冒號語句時鐘切換導(dǎo)致其最大延遲和最小延遲相差太大,因此采用了一個時鐘切換小模塊,不會產(chǎn)生毛刺的那種,替換了問號冒號。爾后這個問題就解決了。

總結(jié)

我認為分析時序違例,就得去看他違例的走線路徑是怎么走的,然后分析導(dǎo)致裕度為負他的主要原因可能是哪里。然后再嘗試更改設(shè)計。我是一個時序約束入門小白,若有理解不對,請大家留言指正,歡迎大家一起探討。文章來源地址http://www.zghlxwxcb.cn/news/detail-403655.html

到了這里,關(guān)于FPGA時序約束經(jīng)歷之輸出延時約束(set_output_delay)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • FPGA時序約束與分析(1) --- 時序約束概述

    FPGA時序約束與分析(1) --- 時序約束概述

    本系列參考文獻 — FPGA時序與約束分析-吳厚航 FPGA從綜合到實現(xiàn)需要的過程如下:synth_design - opt_design - place-design - phys_opt_design - route_design 1、時序約束的理解 2、時序約束的基本路徑 3、時序約束的步驟 4、時序約束的主要方法 5、查看相關(guān)時序信息 FPGA的設(shè)計約束分為物理約束

    2024年02月16日
    瀏覽(27)
  • FPGA時序分析與時序約束(二)——時鐘約束

    FPGA時序分析與時序約束(二)——時鐘約束

    目錄 一、時序約束的步驟 二、時序網(wǎng)表和路徑 2.1 時序網(wǎng)表 2.2 時序路徑? 三、時序約束的方式 三、時鐘約束 3.1 主時鐘約束 3.2 虛擬時鐘約束 3.3?衍生時鐘約束 3.4 時鐘組約束 3.5 時鐘特性約束 3.6 時鐘延時約束 ????????上一章了解了時序分析和約束的很多基本概念(FP

    2024年02月03日
    瀏覽(26)
  • FPGA時序約束--實戰(zhàn)篇(Vivado添加時序約束)

    FPGA時序約束--實戰(zhàn)篇(Vivado添加時序約束)

    前面幾篇文章已經(jīng)詳細介紹了FPGA時序約束基礎(chǔ)知識以及常用的時序約束命令,相信大家已經(jīng)基本掌握了時序約束的方法。 今天介紹一下,如何在Vivado中添加時序約束,Vivado添加約束的方法有3種:xdc文件、時序約束向?qū)В–onstraints Wizard)、時序約束編輯器(Edit Timing Constrain

    2024年02月10日
    瀏覽(26)
  • Vivado時序約束之—— set_max_delay、set_min_dealy(最大最小延遲約束)

    Vivado時序約束之—— set_max_delay、set_min_dealy(最大最小延遲約束)

    1. set_max_delay、set_min_delay約束的目的 最大最小延遲約束主要是為了解決異步信號之間的時序路徑進行時序約束的問題。最大延遲約束(set_max_delay)將默認覆蓋建立時間分析中的最大路徑延遲;最小延遲約束(set_min_delay)將默認覆蓋保持時間分析中的最小路徑延遲。所謂的最

    2023年04月09日
    瀏覽(37)
  • FPGA時序分析與約束(2)——時序電路時序

    FPGA時序分析與約束(2)——時序電路時序

    ? ? ? ? 在之前的內(nèi)容中,我們介紹了組合電路的時序問題和可能導(dǎo)致的毛刺,強烈推薦在閱讀前文的基礎(chǔ)上再繼續(xù)閱讀本文,?前文鏈接:FPGA時序分析與約束(1)——組合電路時序 ? ? ? ? 這篇文章中,我們將繼續(xù)介紹FPGA時序分析相關(guān)內(nèi)容,本文介紹的是時序電路的時序

    2024年02月10日
    瀏覽(27)
  • FPGA時序約束(二)利用Quartus18對Altera進行時序約束

    FPGA時序約束(二)利用Quartus18對Altera進行時序約束

    FPGA時序約束(一)基本概念入門及簡單語法 最近由于不懂時序約束,在高速信號采集上面吃了很多虧,不知道系統(tǒng)工作異常的原因是什么。記錄一下查到的資料,有些許自己的理解,可能有誤。(主要是小梅哥及《FPGA時序約束與分析(吳厚航)》) 在程序編譯之后,會出現(xiàn)

    2024年02月05日
    瀏覽(22)
  • 靜態(tài)時序分析:SDC約束命令set_drive詳解

    靜態(tài)時序分析:SDC約束命令set_drive詳解

    相關(guān)閱讀 靜態(tài)時序分析 https://blog.csdn.net/weixin_45791458/category_12567571.html ? ? ? ? 本章將討論使用set_drive命令,它用于對輸入端口的驅(qū)動能力建模。首先需要說明的是,默認情況下,DC在STA時默認輸入端口的轉(zhuǎn)換時間是0,這對于大多數(shù)情況來說過于理想。 ? ? ? ? set_drive命令設(shè)

    2024年02月22日
    瀏覽(20)
  • FPGA時序約束--進階篇(主時鐘約束)

    FPGA時序約束--進階篇(主時鐘約束)

    在FPGA設(shè)計中,時序約束的設(shè)置對于電路性能和可靠性都至關(guān)重要。在上一篇的文章中,已經(jīng)詳細介紹了FPGA時序約束的基礎(chǔ)知識。 本文將重點講解主時鐘約束設(shè)置,給出詳細的約束命令,并介紹了在Vivado中如何寫入主時鐘約束。 主時鐘是FPGA電路中最基礎(chǔ)的時鐘,其穩(wěn)定性和

    2024年02月09日
    瀏覽(23)
  • FPGA時序分析與約束(8)——時序引擎

    FPGA時序分析與約束(8)——時序引擎

    ? ? ? ? 要想進行時序分析和約束,我們需要理解時序引擎究竟是如何進行時序分析的,包括時序引擎如何進行建立分析(setup),保持分析(hold),恢復(fù)時間分析(recovery)和移除時間分析(removal)。 ????????發(fā)起沿(launch edge,源時鐘產(chǎn)生數(shù)據(jù)的有效時鐘沿),捕獲沿(capture

    2024年02月07日
    瀏覽(25)
  • FPGA時序分析與約束(5)——時序路徑

    FPGA時序分析與約束(5)——時序路徑

    ? ? ? ? 在之前的文章中我們分別介紹了組合電路的時序,時序電路的時序和時鐘的時序問題,我們也對于時序分析,時序約束和時序收斂幾個基本概念進行了區(qū)分,在這篇文章中,我們將介紹時序約束相關(guān)的最后一部分基本概念,帶領(lǐng)大家了解什么是時序路徑。 ??????

    2024年02月09日
    瀏覽(21)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包