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

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

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

FPGA學(xué)習(xí)-IO延遲的約束方法

FPGA設(shè)計論壇 ? 來源:未知 ? 2023-01-01 11:50 ? 次閱讀

為了對設(shè)計外部的時序情況進(jìn)行精確建模,設(shè)計者必須設(shè)定輸入和輸出端口的時序信息。Vivado只能識別出FPGA器件范圍內(nèi)的時序,因此必須使用set_input_delay和set_output_delay命令來設(shè)置FPGA范圍外的延遲值。兩者在含義、約束命令等方面有很多地方是相似的,只不過一個是輸入,一個是輸出,本文還是分開對兩者進(jìn)行講述;

輸入延遲

set_input_delay命令設(shè)定FPGA的輸入端口上相對于上游芯片接口時鐘邊沿的輸入路徑延遲(不包括FPGA輸入端口到第一個觸發(fā)器數(shù)據(jù)輸入端的延時);輸入延遲既指數(shù)據(jù)從外部芯片經(jīng)過板級傳輸?shù)紽PGA輸入管腳間的相位差,也指相對參考板級時鐘間的相位差;輸入延遲值可以是正的,也可以是負(fù)的,由時鐘和數(shù)據(jù)在FPGA接口處的相對相位決定;

約束時的相對時鐘可以是一個設(shè)計時鐘,也可以是一個虛擬時鐘;輸入延遲命令的選項包括:

-min和-max:-min設(shè)定的值用于最小延遲分析(保持時間、移除時間);-max設(shè)定的值用于最大延遲分析(建立時間、恢復(fù)時間);如果約束命令中沒有使用這兩個選項,輸入延遲值會同時應(yīng)用于min和max;

-clock_fall:用于指定由相對時鐘的下降沿啟動的時序路徑上的輸入延遲約束;如果沒有這個選項,Vivado只假定使用相對時鐘的上升沿;

-add_delay:該選項通常用于約束與多個時鐘沿相關(guān)的輸入端口(比如DDR接口),而且必須已經(jīng)存在一個最大或最小輸入延遲約束,設(shè)計者使用該命令為同一端口設(shè)置其它相對時鐘沿的最大或最小輸入延遲約束;

輸入延遲約束只能應(yīng)用于輸入端口或雙向端口(不包括時鐘輸入端口),不能用于設(shè)計內(nèi)部的管腳,下面給出幾個使用輸入延遲約束的典型例子:

1.示例一

create_clock -name sysClk -period 10 [get_ports CLK0]

set_input_delay -clock sysClk 2 [get_ports DIN]

定義一個主時鐘sysClk作為輸入延遲的相對時鐘,設(shè)定的值同時作為最小值(min)分析和最大值(max)分析;

2.示例二

create_clock -name clk_port_virt -period 10

set_input_delay -clock clk_port_virt 2 [get_ports DIN]

該例子約束目的與上例相同,只是相對時鐘換為一個虛擬時鐘;使用虛擬時鐘的好處是可以在不改變內(nèi)部設(shè)計時鐘的情況下,設(shè)定任意的抖動和延遲 ;

3.示例三

create_clock -name sysClk -period 10 [get_ports CLK0]

set_input_delay -clock sysClk -max 4 [get_ports DIN]

set_input_delay -clock sysClk -min 1 [get_ports DIN]

該例中最小值分析和最大值分析采用不同的輸入延遲值;

4.示例四

create_clock -name sysClk -period 10 [get_ports CLK0]

set_input_delay -clock sysClk 4 [get_ports DIN]

set_output_delay -clock sysClk 1 [get_ports DOUT]

如果兩個I/O端口之間僅有組合邏輯路徑,沒有任何時序單元,必須相對于虛擬時鐘為I/O端口定義輸入與輸出延遲。上例中DIN和DOUT之間的組合邏輯路徑約束為5ns(10-1-4);

5.示例五

create_clock -name clk_ddr -period 6 [get_ports DDR_CLK_IN]

set_input_delay -clock clk_ddr -max 2.1 [get_ports DDR_IN]

set_input_delay -clock clk_ddr -max 1.9 [get_ports DDR_IN] -clock_fall -add_delay

set_input_delay -clock clk_ddr -min 0.9 [get_ports DDR_IN]

set_input_delay -clock clk_ddr -min 1.1 [get_ports DDR_IN] -clock_fall -add_delay

這里相對時鐘為DDR的時鐘,最小值分析和最大值分析采用不同的輸入延遲值;約束的一端是器件外部時鐘的上升沿和下降沿啟動的數(shù)據(jù),另一端是器件內(nèi)部同時對上升沿和下降沿敏感的觸發(fā)器的輸入數(shù)據(jù);

輸出延遲

set_output_delay命令設(shè)定數(shù)據(jù)從FPGA輸出端口上(都是相對于數(shù)據(jù)源的時鐘來說)到下一級芯片輸入端口的輸出路徑延遲;輸出延遲既指數(shù)據(jù)從FPGA的輸出管腳通過板級傳輸?shù)搅硪粋€器件間的相位差,也指相對參考板級時鐘間的相位差;輸出延遲值同樣也可以是正的或負(fù)的,由時鐘和數(shù)據(jù)在FPGA器件外的相對相位決定;

約束時的相對時鐘可以是一個設(shè)計時鐘,也可以是一個虛擬時鐘;輸出延遲命令的選項基本與輸入延遲約束相同,還是陳列如下:

同樣,輸出延遲約束只能應(yīng)用于輸出端口或雙向端口,不能用于設(shè)計內(nèi)部的管腳;下面給出幾個使用輸出延遲約束的典型例子:

-min和-max:-min設(shè)定的值用于最小延遲分析(保持時間、移除時間);-max設(shè)定的值用于最大延遲分析(建立時間、恢復(fù)時間);如果約束命令中沒有使用這兩個選項,輸入延遲值會同時應(yīng)用于min和max;

-clock_fall:用于指定由相對時鐘的下降沿捕獲的時序路徑上的輸出延遲約束;如果沒有這個選項,Vivado只假定使用相對時鐘的上升沿;

-add_delay:該選項通常用于約束與多個時鐘沿相關(guān)的輸出端口(比如DDR接口同時使用上升沿和下降沿,或者輸出端口與幾個使用不同時鐘的器件相連),而且必須已經(jīng)存在一個最大或最小輸入延遲約束,設(shè)計者使用該命令為同一端口設(shè)置其它相對時鐘沿的最大或最小輸入延遲約束;

1.示例一

create_clock -name sysClk -period 10 [get_ports CLK0]

set_output_delay -clock sysClk 6 [get_ports DOUT]

定義一個主時鐘sysClk作為輸出延遲的相對時鐘,設(shè)定的值同時作為最小值(min)分析和最大值(max)分析;

2.示例二

create_clock -name clk_port_virt -period 10

set_output_delay -clock clk_port_virt 6 [get_ports DOUT]

該例子約束目的與上例相同,只是相對時鐘換為一個虛擬時鐘;使用虛擬時鐘的好處是可以在不改變內(nèi)部設(shè)計時鐘的情況下,設(shè)定任意的抖動和延遲;

3.示例三

create_clock -name clk_ddr -period 6 [get_ports DDR_CLK_IN]

set_output_delay -clock clk_ddr -max 2.1 [get_ports DDR_OUT]

set_output_delay -clock clk_ddr -max 1.9 [get_ports DDR_OUT] -clock_fall -add_delay

set_output_delay -clock clk_ddr -min 0.9 [get_ports DDR_OUT]

set_output_delay -clock clk_ddr -min 1.1 [get_ports DDR_OUT] -clock_fall -add_delay

這里相對時鐘為DDR的時鐘,最小值分析和最大值分析采用不同的輸出延遲值;約束的一端是器件外部時鐘的上升沿和下降沿啟動的數(shù)據(jù),另一端是器件內(nèi)部同時對上升沿和下降沿敏感的觸發(fā)器的輸出數(shù)據(jù) ;




精彩推薦



至芯科技12年不忘初心、再度起航12月17日北京中心FPGA工程師就業(yè)班開課、線上線下多維教學(xué)、歡迎咨詢!
AXI DMA收發(fā)數(shù)據(jù)過程和時序關(guān)系
Xilinx FPGA中的基礎(chǔ)邏輯單元
掃碼加微信邀請您加入FPGA學(xué)習(xí)交流群




歡迎加入至芯科技FPGA微信學(xué)習(xí)交流群,這里有一群優(yōu)秀的FPGA工程師、學(xué)生、老師、這里FPGA技術(shù)交流學(xué)習(xí)氛圍濃厚、相互分享、相互幫助、叫上小伙伴一起加入吧!






原文標(biāo)題:FPGA學(xué)習(xí)-IO延遲的約束方法

文章出處:【微信公眾號:FPGA設(shè)計論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

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

    關(guān)注

    1630

    文章

    21777

    瀏覽量

    604733

原文標(biāo)題:FPGA學(xué)習(xí)-IO延遲的約束方法

文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設(shè)計論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    xilinx FPGA IOB約束使用以及注意事項

    采用了IOB約束,那么就可以保證從IO到達(dá)寄存器或者從寄存器到達(dá)IO之間的走線延遲最短,同時由于IO的位置是固定的,即存在于
    的頭像 發(fā)表于 01-16 11:02 ?51次閱讀
    xilinx <b class='flag-5'>FPGA</b> IOB<b class='flag-5'>約束</b>使用以及注意事項

    FPGA加速深度學(xué)習(xí)模型的案例

    FPGA(現(xiàn)場可編程門陣列)加速深度學(xué)習(xí)模型是當(dāng)前硬件加速領(lǐng)域的一個熱門研究方向。以下是一些FPGA加速深度學(xué)習(xí)模型的案例: 一、基于FPGA
    的頭像 發(fā)表于 10-25 09:22 ?295次閱讀

    深度解析FPGA中的時序約束

    建立時間和保持時間是FPGA時序約束中兩個最基本的概念,同樣在芯片電路時序分析中也存在。
    的頭像 發(fā)表于 08-06 11:40 ?756次閱讀
    深度解析<b class='flag-5'>FPGA</b>中的時序<b class='flag-5'>約束</b>

    FPGA學(xué)習(xí)筆記---FPGA的開發(fā)流程

    與通常的單片機應(yīng)用開發(fā)不同,FPGA有自己的開發(fā)流程。但具體上怎樣操作,作為初學(xué)者,沒有一點經(jīng)驗。網(wǎng)站獎勵的清華FPGA需要的開發(fā)軟件,到目前還沒有安裝成功。暫且先看看相關(guān)學(xué)習(xí),慢慢積累這方面的知識
    發(fā)表于 06-23 14:47

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

    完成后, 設(shè)計者要根據(jù)電路板的走線對 FPGA/CPLD 加上引腳位置約束,使 FPGA/CPLD 與電路板正確連接。另外通過約束還可以指定 IO
    發(fā)表于 06-17 17:07

    FPGA學(xué)習(xí)筆記-電源電壓

    。每種電壓都需要通過獨立的電源來提供。實際上,雖然也有FPGA允許核心電壓和IO口電壓保持一致,但由于FPGA是面向低電壓內(nèi)核和高電壓IO設(shè)計的,所以這兩個電壓通常是不一樣的。 內(nèi)核
    發(fā)表于 05-22 18:42

    FPGA學(xué)習(xí)筆記-關(guān)于FPGA資源

    FPGA學(xué)習(xí)。 在學(xué)習(xí)中才發(fā)現(xiàn),FPGA遠(yuǎn)不是門電路那么簡單。FPGA中有各種需要的資源,比如門電路、存儲單元、片內(nèi)RAM、嵌入式乘法器、
    發(fā)表于 05-22 18:27

    Xilinx FPGA編程技巧之常用時序約束詳解

    今天給大俠帶來Xilinx FPGA編程技巧之常用時序約束詳解,話不多說,上貨。 基本的約束方法 為了保證成功的設(shè)計,所有路徑的時序要求必須能夠讓執(zhí)行工具獲取。最普遍的三種路徑以及
    發(fā)表于 05-06 15:51

    FPGA工程的時序約束實踐案例

    詳細(xì)的原時鐘時序、數(shù)據(jù)路徑時序、目標(biāo)時鐘時序的各延遲數(shù)據(jù)如下圖所示。值得注意的是數(shù)據(jù)路徑信息,其中包括Tco延遲和布線延遲,各級累加之后得到總的延遲時間。
    發(fā)表于 04-29 10:39 ?875次閱讀
    <b class='flag-5'>FPGA</b>工程的時序<b class='flag-5'>約束</b>實踐案例

    時序約束實操

    添加約束的目的是為了告訴FPGA你的設(shè)計指標(biāo)及運行情況。在上面的生成約束之后,在Result àxx.sdc中提供約束參考(請注意該文件不能直接添加到工程中,需要熱復(fù)制到別的指定目錄或
    的頭像 發(fā)表于 04-28 18:36 ?2366次閱讀
    時序<b class='flag-5'>約束</b>實操

    電壓探頭延遲計算方法及應(yīng)用

    在電子測試和測量中,電壓探頭是一種常用的工具,用于測量電路中的電壓信號。然而,電壓探頭本身會引入一定的延遲,這可能會對測量結(jié)果產(chǎn)生影響。本文將介紹電壓探頭延遲的計算方法,并探討其在實際應(yīng)用中的重要性
    的頭像 發(fā)表于 04-28 10:28 ?600次閱讀
    電壓探頭<b class='flag-5'>延遲</b>計算<b class='flag-5'>方法</b>及應(yīng)用

    Xilinx FPGA約束設(shè)置基礎(chǔ)

    LOC約束FPGA設(shè)計中最基本的布局約束和綜合約束,能夠定義基本設(shè)計單元在FPGA芯片中的位置,可實現(xiàn)絕對定位、范圍定位以及區(qū)域定位。
    發(fā)表于 04-26 17:05 ?1268次閱讀
    Xilinx <b class='flag-5'>FPGA</b>的<b class='flag-5'>約束</b>設(shè)置基礎(chǔ)

    Xilinx FPGA編程技巧之常用時序約束詳解

    今天給大俠帶來Xilinx FPGA編程技巧之常用時序約束詳解,話不多說,上貨。 基本的約束方法為了保證成功的設(shè)計,所有路徑的時序要求必須能夠讓執(zhí)行工具獲取。最普遍的三種路徑以及
    發(fā)表于 04-12 17:39

    fpga學(xué)習(xí)需要具備哪些課程

    FPGA(Field Programmable Gate Array)學(xué)習(xí)需要具備一系列的課程知識和實踐技能
    的頭像 發(fā)表于 03-14 15:51 ?1252次閱讀

    EtherCAT IO的接線方法和流程是怎樣的?

    EtherCAT IO的接線方法和流程是怎樣的? EtherCAT是一種用于實時以太網(wǎng)通信的開放式通信協(xié)議,具有低延遲和高帶寬的優(yōu)勢。 EtherCAT IO是EtherCAT網(wǎng)絡(luò)中連
    的頭像 發(fā)表于 02-02 16:57 ?2182次閱讀