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

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

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

詳解時(shí)序約束的基本方法

FPGA之家 ? 來(lái)源:博客園東海揚(yáng)塵 ? 作者:博客園東海揚(yáng)塵 ? 2022-03-15 10:50 ? 次閱讀

1. 基本的約束方法

為了保證成功的設(shè)計(jì),所有路徑的時(shí)序要求必須能夠讓執(zhí)行工具獲取。最普遍的三種路徑為:

輸入路徑(Input Path),使用輸入約束

寄存器到寄存器路徑(Register-to-Register Path),使用周期約束

輸出路徑(Output Path),使用輸出約束

具體的異常路徑(Path specific exceptions),使用虛假路徑、多周期路徑約束

1.1. 輸入約束Input Constraint

OFFSET IN約束限定了輸入數(shù)據(jù)和輸入時(shí)鐘邊沿的關(guān)系。

1.1.1. 系統(tǒng)同步輸入約束System Synchronous Input

在系統(tǒng)同步接口中,同一個(gè)系統(tǒng)時(shí)鐘既傳輸數(shù)據(jù)也獲取數(shù)據(jù)??紤]到板子路徑延時(shí)和時(shí)鐘抖動(dòng),接口的操作頻率不能太高。

141921207466649.jpg

1?1簡(jiǎn)化的系統(tǒng)同步輸入SDR接口電路圖

141921429813090.jpg

1?2SDR系統(tǒng)同步輸入時(shí)序

上述時(shí)序的約束可寫(xiě)為:

NET "SysClk" TNM_NET = "SysClk";

TIMESPEC "TS_SysClk" = PERIOD "SysClk" 5 ns HIGH 50%;

OFFSET = IN 5 ns VALID 5 ns BEFORE "SysClk";

1.1.2. 源同步輸入約束Source Synchronous Input

在源同步接口中,時(shí)鐘是在源設(shè)備中和數(shù)據(jù)一起產(chǎn)生并傳輸。

141922189657364.jpg

1?3簡(jiǎn)化的源同步輸入DDR接口電路

141922311991526.jpg

1?4DDR源同步輸入時(shí)序

上圖的時(shí)序約束可寫(xiě)為:

NET "SysClk" TNM_NET = "SysClk";

TIMESPEC "TS_SysClk" = PERIOD "SysClk" 5 ns HIGH 50%;

OFFSET = IN 1.25 ns VALID 2.5 ns BEFORE "SysClk" RISING;

OFFSET = IN 1.25 ns VALID 2.5 ns BEFORE "SysClk" FALLING;

1.2. 寄存器到寄存器約束Register-to-Register Constraint

寄存器到寄存器約束往往指的是周期約束,周期約束的覆蓋范圍包括:

覆蓋了時(shí)鐘域的時(shí)序要求

覆蓋了同步數(shù)據(jù)在內(nèi)部寄存器之間的傳輸

分析一個(gè)單獨(dú)的時(shí)鐘域內(nèi)的路徑

分析相關(guān)時(shí)鐘域間的所有路徑

考慮不同時(shí)鐘域間的所有頻率、相位、不確定性差異

1.2.1. 使用DLL, DCM, PLL, and MMCM等時(shí)鐘器件自動(dòng)確定同步關(guān)系

使用這一類時(shí)鐘IP Core,只需指定它們的輸入時(shí)鐘約束,器件將自動(dòng)的根據(jù)用戶生成IP Core時(shí)指定的參數(shù)約束相關(guān)輸出,不需用戶手動(dòng)干預(yù)。

141923154182651.jpg

1?5輸入到DCM的時(shí)鐘約束

上圖的時(shí)序約束可寫(xiě)為:

NET “ClkIn” TNM_NET = “ClkIn”;

TIMESPEC “TS_ClkIn” = PERIOD “ClkIn” 5 ns HIGH 50%;

1.2.2. 手動(dòng)約束相關(guān)聯(lián)的時(shí)鐘域

在某些情況下,工具并不能自動(dòng)確定同步的時(shí)鐘域之間的時(shí)鐘時(shí)序關(guān)系,這個(gè)時(shí)候需要手動(dòng)約束。例如:有兩個(gè)有相位關(guān)系的時(shí)鐘從不同的引腳進(jìn)入FPGA器件,這個(gè)時(shí)候需要手動(dòng)約束這兩個(gè)時(shí)鐘。

141923485594225.jpg

1?6通過(guò)兩個(gè)不同的外部引腳進(jìn)入FPGA的相關(guān)時(shí)鐘

上圖的時(shí)序約束可寫(xiě)為:

NET“Clk1X"TNM_NET=“Clk1X";

NET“Clk2X180"TNM_NET=“Clk2X180";

TIMESPEC"TS_Clk1X"=PERIOD"Clk1X 7 5ns;

TIMESPEC"TS_Clk2X180"=PERIOD"Clk2X180“TS_Clk1X/2PHAS2 +1.25ns;

1.2.3. 異步時(shí)鐘域

異步時(shí)鐘域的發(fā)送和接收時(shí)鐘不依賴于頻率或相位關(guān)系。因?yàn)闀r(shí)鐘是不相關(guān)的,所以不可能確定出建立時(shí)間、保持時(shí)間和時(shí)鐘的最終關(guān)系。因?yàn)檫@個(gè)原因,Xilinx推薦使用適當(dāng)?shù)漠惒皆O(shè)計(jì)技術(shù)來(lái)保證對(duì)數(shù)據(jù)的成功獲取。Xilinx約束系統(tǒng)允許設(shè)計(jì)者在不需考慮源和目的時(shí)鐘頻率、相位的情況下約束數(shù)據(jù)路徑的最大延時(shí)。

異步時(shí)鐘域使用的約束方法的流程為:

為源寄存器定義時(shí)序組

為目的寄存器定義時(shí)序組

使用From-to和DATAPATHDELAY關(guān)鍵字定義寄存器組之間的最大延時(shí)

1.3. 輸出約束Output Constraint

輸出時(shí)序約束約束的是從內(nèi)部同步元件或寄存器到器件管腳的數(shù)據(jù)。

1.3.1. 系統(tǒng)同步輸出約束System Synchronous Output Constraint

系統(tǒng)同步輸出的簡(jiǎn)化模型如圖所示,在系統(tǒng)同步輸出接口中,傳輸和獲取數(shù)據(jù)是基于同一個(gè)時(shí)鐘的。

141924475273310.jpg

1?7系統(tǒng)同步輸出

其時(shí)序約束可寫(xiě)為:

NET "ClkIn" TNM_NET = "ClkIn";

OFFSET = OUT 5 ns AFTER "ClkIn";

1.3.2. 源同步輸出約束Source Synchronous Output Constraint

在源同步輸出接口中,時(shí)鐘是重新產(chǎn)生的并且在某一FPGA時(shí)鐘的驅(qū)動(dòng)下和數(shù)據(jù)一起傳輸至下游器件。

141926126681633.jpg

1?8源同步輸出簡(jiǎn)化電路時(shí)序圖

141926297158691.jpg

1?9源同步小例子時(shí)序圖

小例子的時(shí)序約束可寫(xiě)為:

NET “ClkIn” TNM_NET = “ClkIn”;

OFFSET = OUT AFTER “ClkIn” REFERENCE_PIN “ClkOut” RISING;

OFFSET = OUT AFTER “ClkIn” REFERENCE_PIN “ClkOut” FALLING;

1.3.3. 虛假路徑約束False Path Constraint

令SRC_GRP為一組源寄存器,DST_GRP為一組目的寄存器,如果你確定SRC_GRP到DST_GRP之間的路徑不會(huì)影響時(shí)序性能,那么可以將這一組路徑約束為虛假路徑,工具在進(jìn)行時(shí)序分析的時(shí)候?qū)?huì)跳過(guò)對(duì)這組路徑的時(shí)序分析。這種路徑最常見(jiàn)于不同時(shí)鐘域的寄存器數(shù)據(jù)傳輸,如下圖:

141927063877420.jpg

1?10虛假路徑

其約束可寫(xiě)為:

NET "CLK1" TNM_NET = FFS "GRP_1";

NET "CLK2" TNM_NET = FFS "GRP_2";

TIMESPEC TS_Example = FROM "GRP_1" TO "GRP_2" TIG;

1.3.4. 多周期路徑約束Multi-Cycle Path Constraint

在多周期路徑里,令驅(qū)動(dòng)時(shí)鐘的周期為PERIOD,數(shù)據(jù)可以最大n*PERIOD的時(shí)間的從源同步元件傳輸?shù)侥康耐皆?,這一約束降低工具的布線難度而又不會(huì)影響時(shí)序性能。這種約束通常用在有時(shí)鐘使能控制的同步元件路徑中。

141928291849658.jpg

圖 1-11時(shí)鐘使能控制的寄存器路徑

必須說(shuō)明的是上圖Enable信號(hào)的產(chǎn)生周期必須大于等于n*PERIOD,且每個(gè)Enable傳輸一個(gè)數(shù)據(jù)。假設(shè)上圖的n=2,MC_GRP為時(shí)鐘使能Enable控制的多周期同步元件組,則約束可寫(xiě)為:

NET "CLK1" TNM_NET = "CLK1";

TIMESPEC "TS_CLK1" = PERIOD "CLK1" 5 ns HIGH 50%;

NET "Enable" TNM_NET = FFS "MC_GRP";

TIMESPEC TS_Example = FROM "MC_GRP" TO "MC_GRP" TS_CLK1*2;

隨筆記錄自己從一個(gè)項(xiàng)目立項(xiàng)到最后調(diào)試完成所做的工作,包括調(diào)研選型、關(guān)鍵技術(shù)突破、知識(shí)短板補(bǔ)缺等,隨著時(shí)間的推移,會(huì)不斷地根據(jù)實(shí)踐經(jīng)驗(yàn)反饋完善以前的博文,力求每一個(gè)要論述的問(wèn)題精準(zhǔn)完備,具有高度可信的參考價(jià)值,也希望看我博文的讀者能夠多提意見(jiàn)建議,幫助我成為一個(gè)更優(yōu)秀的項(xiàng)目負(fù)責(zé)人,讓我們一起共同進(jìn)步,謝謝大家!

原文標(biāo)題:1. 基本的約束方法

文章出處:【微信公眾號(hào):FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

審核編輯:湯梓紅

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

    關(guān)注

    31

    文章

    5295

    瀏覽量

    119838
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    8451

    瀏覽量

    150733
  • DCM
    DCM
    +關(guān)注

    關(guān)注

    0

    文章

    157

    瀏覽量

    26390

原文標(biāo)題:1.?? 基本的約束方法

文章出處:【微信號(hào):zhuyandz,微信公眾號(hào):FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    VIVADO時(shí)序約束及STA基礎(chǔ)

    時(shí)序約束的目的就是告訴工具當(dāng)前的時(shí)序狀態(tài),以讓工具盡量?jī)?yōu)化時(shí)序并給出詳細(xì)的分析報(bào)告。一般在行為仿真后、綜合前即創(chuàng)建基本的時(shí)序
    的頭像 發(fā)表于 03-11 14:39 ?9642次閱讀

    FPGA主時(shí)鐘約束詳解 Vivado添加時(shí)序約束方法

    在FPGA設(shè)計(jì)中,時(shí)序約束的設(shè)置對(duì)于電路性能和可靠性都至關(guān)重要。在上一篇的文章中,已經(jīng)詳細(xì)介紹了FPGA時(shí)序約束的基礎(chǔ)知識(shí)。
    發(fā)表于 06-06 18:27 ?1w次閱讀
    FPGA主時(shí)鐘<b class='flag-5'>約束</b><b class='flag-5'>詳解</b> Vivado添加<b class='flag-5'>時(shí)序</b><b class='flag-5'>約束</b><b class='flag-5'>方法</b>

    請(qǐng)教時(shí)序約束方法

    我是一個(gè)FPGA初學(xué)者,關(guān)于時(shí)序約束一直不是很明白,時(shí)序約束有什么用呢?我只會(huì)全局時(shí)鐘的時(shí)序約束
    發(fā)表于 07-04 09:45

    FPGA時(shí)序約束的幾種方法

    控。從最近一段時(shí)間工作和學(xué)習(xí)的成果中,我總結(jié)了如下幾種進(jìn)行時(shí)序約束方法。按照從易到難的順序排列如下:0. 核心頻率約束 這是最基本的,所以標(biāo)號(hào)為0。1. 核心頻率
    發(fā)表于 06-02 15:54

    FPGA時(shí)序約束的幾種方法

    Incremental Compilation。這是造成上述兩種方法容易混淆的原因。5. 核心頻率約束+時(shí)序例外約束+I/O約束+寄存器布局
    發(fā)表于 12-27 09:15

    時(shí)序約束資料包

    好的時(shí)序是設(shè)計(jì)出來(lái)的,不是約束出來(lái)的時(shí)序就是一種關(guān)系,這種關(guān)系的基本概念有哪些?這種關(guān)系需要約束嗎?各自的詳細(xì)情況有哪些?約束
    發(fā)表于 08-01 16:45

    時(shí)序約束時(shí)序分析 ppt教程

    時(shí)序約束時(shí)序分析 ppt教程 本章概要:時(shí)序約束時(shí)序分析基礎(chǔ)常用
    發(fā)表于 05-17 16:08 ?0次下載

    時(shí)序約束用戶指南

    時(shí)序約束用戶指南包含以下章節(jié): ?第一章“時(shí)序約束用戶指南引言” ?第2章“時(shí)序約束
    發(fā)表于 11-02 10:20 ?0次下載

    FPGA時(shí)序約束方法

    FPGA時(shí)序約束方法很好地資料,兩大主流的時(shí)序約束都講了!
    發(fā)表于 12-14 14:21 ?19次下載

    如何使用時(shí)序約束向?qū)?/a>

    了解時(shí)序約束向?qū)绾斡糜凇巴耆?b class='flag-5'>約束您的設(shè)計(jì)。 該向?qū)ё裱璘ltraFast設(shè)計(jì)方法,定義您的時(shí)鐘,時(shí)鐘交互,最后是您的輸入和輸出約束。
    的頭像 發(fā)表于 11-29 06:47 ?2970次閱讀
    如何使用<b class='flag-5'>時(shí)序</b><b class='flag-5'>約束</b>向?qū)? />    </a>
</div>                            <div   id=

    FPGA的約束時(shí)序分析的概念詳解

    A 時(shí)序約束的概念和基本策略 時(shí)序約束主要包括周期約束(FFS到FFS,即觸發(fā)器到觸發(fā)器)和偏移約束
    的頭像 發(fā)表于 10-11 10:23 ?5437次閱讀
    FPGA的<b class='flag-5'>約束</b>、<b class='flag-5'>時(shí)序</b>分析的概念<b class='flag-5'>詳解</b>

    詳解FPGA的時(shí)序input delay約束

    本文章探討一下FPGA的時(shí)序input delay約束,本文章內(nèi)容,來(lái)源于配置的明德?lián)P時(shí)序約束專題課視頻。
    發(fā)表于 05-11 10:07 ?4083次閱讀
    <b class='flag-5'>詳解</b>FPGA的<b class='flag-5'>時(shí)序</b>input delay<b class='flag-5'>約束</b>

    如何在Vivado中添加時(shí)序約束

    前面幾篇文章已經(jīng)詳細(xì)介紹了FPGA時(shí)序約束基礎(chǔ)知識(shí)以及常用的時(shí)序約束命令,相信大家已經(jīng)基本掌握了時(shí)序約束
    的頭像 發(fā)表于 06-23 17:44 ?2239次閱讀
    如何在Vivado中添加<b class='flag-5'>時(shí)序</b><b class='flag-5'>約束</b>

    如何在Vivado中添加時(shí)序約束呢?

    今天介紹一下,如何在Vivado中添加時(shí)序約束,Vivado添加約束方法有3種:xdc文件、時(shí)序約束
    的頭像 發(fā)表于 06-26 15:21 ?3826次閱讀
    如何在Vivado中添加<b class='flag-5'>時(shí)序</b><b class='flag-5'>約束</b>呢?

    淺談時(shí)序設(shè)計(jì)和時(shí)序約束

    ??本文主要介紹了時(shí)序設(shè)計(jì)和時(shí)序約束。
    的頭像 發(fā)表于 07-04 14:43 ?1325次閱讀