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

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

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

一文詳解FPGA編程技巧輸入輸出偏移約束

Hx ? 作者:工程師陳翠 ? 2018-07-14 07:14 ? 次閱讀

1. 偏移約束的作用

偏移約束(Offset Constraint)用來定義一個(gè)外部時(shí)鐘引腳(Pad)和數(shù)據(jù)輸入輸出引腳之間的時(shí)序關(guān)系,這種時(shí)序關(guān)系也被稱為器件上的Pad-to-Setup或Clock-to-Out路徑這些約束對(duì)與外部元器件相連的接口十分重要,在這里,需要解釋兩個(gè)術(shù)語(yǔ):

Pad-to-Setup:也被稱為OFFSET IN BEFORE約束,是用來保證外部輸入時(shí)鐘和外部輸入數(shù)據(jù)的時(shí)序滿足FPGA內(nèi)部觸發(fā)器的建立時(shí)間要求的如下圖TIN_BEFORE約束使得FPGA在進(jìn)行DATA_IN和CLK_SYS布線時(shí)努力保證DATA_IN相對(duì)于CLK_SYS的延時(shí)小于TIN_BEFORE

Clock-to-Out:也被稱為OFFSET OUT AFTER約束,是用來滿足下游器件建立保持(setup/hold)要求或輸出時(shí)鐘和數(shù)據(jù)之間時(shí)序要求的

OFFSET IN BEFORE 或OFFSET OUT AFTER約束允許用戶指定外部輸入或輸出引腳相對(duì)于時(shí)鐘邊沿到內(nèi)部數(shù)據(jù)的延時(shí)

一文詳解FPGA編程技巧輸入輸出偏移約束

1.1輸入偏移約束時(shí)序參考圖

一文詳解FPGA編程技巧輸入輸出偏移約束

1.2輸出偏移約束時(shí)序參考圖

Xilinx FPGA有三個(gè)層次的約束:

Global OFFSET:為所有輸入或輸出指定相對(duì)某個(gè)特定時(shí)鐘的約束;

Group OFFSET:為一組輸入或者輸出指定相對(duì)驅(qū)動(dòng)他們的時(shí)鐘的約束

Net-Specific OFFSET:為某個(gè)特定的輸入或者輸出指定相對(duì)其驅(qū)動(dòng)時(shí)鐘的約束;

在進(jìn)行約束的詳細(xì)講解之前,必須明確兩個(gè)概念:

建立時(shí)間setup time

指在觸發(fā)器始終上升沿到來之前,數(shù)據(jù)必須保持穩(wěn)定的時(shí)間,如果建立時(shí)間不夠,數(shù)據(jù)將不能被打入觸發(fā)器;

保持時(shí)間hold time

指觸發(fā)器的時(shí)鐘上升沿到來之后數(shù)據(jù)必須穩(wěn)定不變的時(shí)間,如果保持時(shí)間不夠,數(shù)據(jù)不能被打入觸發(fā)器;

一文詳解FPGA編程技巧輸入輸出偏移約束

1.3建立保持時(shí)間時(shí)序圖

2. OFFSET IN約束

OFFSET IN約束用來設(shè)定Pad-to-Setup時(shí)序要求OFFSET IN是對(duì)數(shù)據(jù)時(shí)鐘關(guān)系的一種說明它當(dāng)分析建立時(shí)間要求(data_delay+setup-clock_delay-clock_arrival要求滿足約束條件)的時(shí)候,需要考慮時(shí)鐘延時(shí)(clock delay)、時(shí)鐘邊沿(clock edge)、DLL/DCM引入的時(shí)鐘相位

2.1. OFFSET IN BEFORE 約束

OFFSET IN BEFORE約束限定了數(shù)據(jù)從引腳傳播到同步元件并在同步元件建立起來的所需的時(shí)間比如 “OFFSET = IN 2 ns BEFORE clock_pad”這個(gè)約束,限定數(shù)據(jù)必須在下一個(gè)時(shí)鐘邊沿到來之前2ns內(nèi)讀取,因此FPGA會(huì)規(guī)劃使得數(shù)據(jù)相對(duì)時(shí)鐘邊沿的超前2ns之內(nèi)

一文詳解FPGA編程技巧輸入輸出偏移約束

2.1OFFSET IN BEFORE約束帶校準(zhǔn)功能的電路

上圖FPGA在布線時(shí)會(huì)盡力去滿足如下不等式:

TData + TSetup - TClock 《= Toffset_IN_BEFORE;

2.1.1. VALID約束

OFFSET IN約束往往和VALID約束一起使用OFFSET IN約束在建立時(shí)間分析中作為建立時(shí)間要求使用,而VALID約束在保持時(shí)間約束中作為保持時(shí)間要求使用VALID約束指定了輸入數(shù)據(jù)的持續(xù)時(shí)間在默認(rèn)情況下,F(xiàn)PGA指定VALID和OFFSET的值相等,也即FPGA在默認(rèn)情況下認(rèn)為保持時(shí)間為0

一文詳解FPGA編程技巧輸入輸出偏移約束

2.2帶有VALID約束的輸入偏移約束

2.1.2. OFFSET IN約束的一個(gè)簡(jiǎn)單例子

FPGA的分析工具在綜合時(shí)經(jīng)常會(huì)用到一個(gè)詞:Slack,即松弛時(shí)間,當(dāng)Slack》0時(shí),該路徑設(shè)計(jì)滿足時(shí)序要求;當(dāng)Slack《0時(shí),該路徑不滿足時(shí)序要求

Slack = (Requirement - (Data Path - Clock Path - Clock Arrival))

一文詳解FPGA編程技巧輸入輸出偏移約束

2.3OFFSET IN的簡(jiǎn)單例子時(shí)序

該約束為:

TIMESPEC TS_clock = PERIOD clock_grp 10 ns HIGH 50%;

OFFSET = IN 3 ns BEFORE clock;

一文詳解FPGA編程技巧輸入輸出偏移約束

2.4OFFSET IN約束時(shí)序報(bào)告

從時(shí)序約束報(bào)告的Slack的值可以看出,Data不能被Clock成功打入觸發(fā)器FF0.

2.2. OFFSET IN AFTER約束

OFFSET IN AFTER和OFFSET IN BEFORE在本質(zhì)上是一樣的,只是形式上不一樣,其約束效果是完全一樣的OFFSET IN AFTER的約束公司如下:

TData + TSetup - TClock 《= TPeriod – Toffset_IN_AFTER;

3. OFFSET OUT約束

OFFSET OUT約束用來定義clock-to-pad時(shí)序要求OFFSET OUT約束是對(duì)外部clock-to-data的說明并且必須考慮clock_delay、clock edge和DLL/DCM時(shí)鐘相位等

3.1. OFFSET OUT AFTER約束

OFFSET OUT AFTER約束定義了數(shù)據(jù)從同步元件傳播到管腳最長(zhǎng)允許時(shí)間可以形象地理解為時(shí)鐘邊沿到達(dá)器件邊界時(shí)數(shù)據(jù)離開器件邊界的時(shí)間“OFFSET = OUT 2 ns AFTER clock_pad”約束意思是從FPGA數(shù)據(jù)端口傳輸?shù)较掠纹骷臄?shù)據(jù)在參考時(shí)鐘2ns之后一定可讀

一文詳解FPGA編程技巧輸入輸出偏移約束

3.1OFFSET OUT AFTER約束帶校準(zhǔn)功能的電路

下面公式規(guī)定了數(shù)據(jù)時(shí)鐘的這種關(guān)系:

TQ + TClock2Out + TClock 《= Toffset_OUT_AFTER;

OFFSET OUT AFTER約束沿著參考時(shí)鐘路徑和數(shù)據(jù)路徑的最大延時(shí)不超過偏移值

3.1.1. OFFSET OUT AFTER約束的一個(gè)簡(jiǎn)單例子

同樣的,OFFSET OUT的Slack也定義了輸出約束的松弛時(shí)間:

Slack = (Requirement - (Clock Arrival + Clock Path + Data Path))

一文詳解FPGA編程技巧輸入輸出偏移約束

3.2OFFSET OUT 約束的簡(jiǎn)單例子

其約束應(yīng)寫為:

TIMESPEC TS_clock = PERIOD clock_grp 10 ns HIGH 50%;

OFFSET = OUT 3 ns AFTER clock;

一文詳解FPGA編程技巧輸入輸出偏移約束

3.3OFFSET OUT 時(shí)序約束報(bào)告

時(shí)序報(bào)告中Slack=-0.865ns,不滿足時(shí)序約束要求

3.2. OFFSET OUT BEFORE約束

同樣地,OFFSET OUT BEFORE和OFFSET OUT AFTER約束本質(zhì)上沒有什么不同,只是形式上的不一樣的,其約束效果完全一樣

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

    關(guān)注

    1620

    文章

    21510

    瀏覽量

    598879
  • fpga編程
    +關(guān)注

    關(guān)注

    0

    文章

    3

    瀏覽量

    4617
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Xilinx FPGA編程技巧之常用時(shí)序約束詳解

    今天給大俠帶來Xilinx FPGA編程技巧之常用時(shí)序約束詳解,話不多說,上貨。 基本的約束方法為了保證成功的設(shè)計(jì),所有路徑的時(shí)序要求
    發(fā)表于 04-12 17:39

    Xilinx FPGA編程技巧之常用時(shí)序約束詳解

    今天給大俠帶來Xilinx FPGA編程技巧之常用時(shí)序約束詳解,話不多說,上貨。 基本的約束方法 為了保證成功的設(shè)計(jì),所有路徑的時(shí)序要求
    發(fā)表于 05-06 15:51

    視頻打印機(jī)的輸入輸出

    視頻打印機(jī)的輸入輸出            輸入輸出指的是產(chǎn)品輸入輸出視頻信號(hào)的端口,比較常見的是S端子和復(fù)合視頻端口。
    發(fā)表于 12-31 10:38 ?1455次閱讀

    FPGA開發(fā)之時(shí)序約束(周期約束

    時(shí)序約束可以使得布線的成功率的提高,減少ISE布局布線時(shí)間。這時(shí)候用到的全局約束就有周期約束偏移約束。周期
    發(fā)表于 02-09 02:56 ?672次閱讀

    添加時(shí)序約束的技巧分析

    。 在添加全局時(shí)序約束時(shí),需要根據(jù)時(shí)鐘頻率劃分不同的時(shí)鐘域,添加各自的周期約束;然后對(duì)輸入輸出端口信號(hào)添加偏移約束,對(duì)片內(nèi)邏輯添加附加
    發(fā)表于 11-25 09:14 ?2521次閱讀

    什么是輸入輸出模塊_輸入輸出模塊有什么作用

    輸入輸出模塊也稱為控制模塊,在有控制要求時(shí)可以輸出信號(hào),或者提供個(gè)開關(guān)量信號(hào),使被控設(shè)備動(dòng)作,同時(shí)可以接收設(shè)備的反饋信號(hào),以向主機(jī)報(bào)告,是火災(zāi)報(bào)警聯(lián)動(dòng)系統(tǒng)中重要的組成部分。市場(chǎng)上的輸入輸出
    發(fā)表于 05-21 10:28 ?11.9w次閱讀

    使用Labview編程完成計(jì)數(shù)器/IO輸入/輸出編程

    使用Labview編程完成計(jì)數(shù)器輸入,IO輸入輸出編程
    的頭像 發(fā)表于 08-05 06:01 ?7188次閱讀

    STM32的8種GPIO輸入輸出模式

    STM32的8種GPIO輸入輸出模式參考文章“STM32的8種GPIO輸入輸出模式深入詳解”和“STM32中GPIO的8種工作模式!”輸入模式- 浮空
    發(fā)表于 11-26 17:06 ?16次下載
    STM32的8種GPIO<b class='flag-5'>輸入輸出</b>模式

    GPIO通用輸入輸出

    GPIO通用輸入輸出、GPIO的功能概述用途:GPIO是通用輸入輸出(General Purpose I/O)的簡(jiǎn)稱,主要用于工業(yè)現(xiàn)場(chǎng)需要用到數(shù)字量輸入/
    發(fā)表于 12-20 18:58 ?6次下載
    GPIO通用<b class='flag-5'>輸入輸出</b>

    FPGA設(shè)計(jì)之時(shí)序約束

    篇《FPGA時(shí)序約束分享01_約束四大步驟》中,介紹了時(shí)序
    發(fā)表于 03-18 10:29 ?1553次閱讀
    <b class='flag-5'>FPGA</b>設(shè)計(jì)之時(shí)序<b class='flag-5'>約束</b>

    創(chuàng)建輸入輸出接口時(shí)序約束的竅門

    輸入輸出接口的約束,整理出了套非常實(shí)用的InputDelay/Output Delay Constraints Language Templates。
    的頭像 發(fā)表于 08-02 09:54 ?2316次閱讀
    創(chuàng)建<b class='flag-5'>輸入輸出</b>接口時(shí)序<b class='flag-5'>約束</b>的竅門

    Logos系列FPGA輸入輸出接口(IO)用戶指南

    電子發(fā)燒友網(wǎng)站提供《Logos系列FPGA輸入輸出接口(IO)用戶指南.pdf》資料免費(fèi)下載
    發(fā)表于 09-26 10:19 ?5次下載
    Logos系列<b class='flag-5'>FPGA</b><b class='flag-5'>輸入輸出</b>接口(IO)用戶指南

    FPGA編程技巧系列之輸入輸出偏移約束詳解

    Pad-to-Setup:也被稱為OFFSET IN BEFORE約束,是用來保證外部輸入時(shí)鐘和外部輸入數(shù)據(jù)的時(shí)序滿足FPGA內(nèi)部觸發(fā)器的建立時(shí)間要求的。如下圖TIN_BEFORE
    的頭像 發(fā)表于 02-15 11:52 ?1774次閱讀

    CW32通用輸入輸出端口詳解

    CW32通用輸入輸出端口詳解
    的頭像 發(fā)表于 10-30 17:33 ?879次閱讀
    CW32通用<b class='flag-5'>輸入輸出</b>端口<b class='flag-5'>詳解</b>

    plc帶模擬量輸入輸出和不帶模擬量輸入輸出有什么區(qū)別???

    plc帶模擬量輸入輸出和不帶模擬量輸入輸出有什么區(qū)別?。?PLC是種廣泛應(yīng)用的自動(dòng)化控制器,它可通過輸入輸出控制信號(hào)來管理各種自動(dòng)化過程
    的頭像 發(fā)表于 10-17 16:44 ?1432次閱讀