精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

詳解時序約束的基本方法

FPGA之家 ? 來源:博客園東海揚塵 ? 作者:博客園東海揚塵 ? 2022-03-15 10:50 ? 次閱讀

1. 基本的約束方法

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

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

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

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

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

1.1. 輸入約束Input Constraint

OFFSET IN約束限定了輸入數據和輸入時鐘邊沿的關系。

1.1.1. 系統同步輸入約束System Synchronous Input

在系統同步接口中,同一個系統時鐘既傳輸數據也獲取數據。考慮到板子路徑延時和時鐘抖動,接口的操作頻率不能太高。

141921207466649.jpg

1?1簡化的系統同步輸入SDR接口電路圖

141921429813090.jpg

1?2SDR系統同步輸入時序

上述時序的約束可寫為:

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

在源同步接口中,時鐘是在源設備中和數據一起產生并傳輸。

141922189657364.jpg

1?3簡化的源同步輸入DDR接口電路

141922311991526.jpg

1?4DDR源同步輸入時序

上圖的時序約束可寫為:

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

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

覆蓋了時鐘域的時序要求

覆蓋了同步數據在內部寄存器之間的傳輸

分析一個單獨的時鐘域內的路徑

分析相關時鐘域間的所有路徑

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

1.2.1. 使用DLL, DCM, PLL, and MMCM等時鐘器件自動確定同步關系

使用這一類時鐘IP Core,只需指定它們的輸入時鐘約束,器件將自動的根據用戶生成IP Core時指定的參數約束相關輸出,不需用戶手動干預。

141923154182651.jpg

1?5輸入到DCM的時鐘約束

上圖的時序約束可寫為:

NET “ClkIn” TNM_NET = “ClkIn”;

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

1.2.2. 手動約束相關聯的時鐘域

在某些情況下,工具并不能自動確定同步的時鐘域之間的時鐘時序關系,這個時候需要手動約束。例如:有兩個有相位關系的時鐘從不同的引腳進入FPGA器件,這個時候需要手動約束這兩個時鐘。

141923485594225.jpg

1?6通過兩個不同的外部引腳進入FPGA的相關時鐘

上圖的時序約束可寫為:

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. 異步時鐘域

異步時鐘域的發送和接收時鐘不依賴于頻率或相位關系。因為時鐘是不相關的,所以不可能確定出建立時間、保持時間和時鐘的最終關系。因為這個原因,Xilinx推薦使用適當的異步設計技術來保證對數據的成功獲取。Xilinx約束系統允許設計者在不需考慮源和目的時鐘頻率、相位的情況下約束數據路徑的最大延時。

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

為源寄存器定義時序組

為目的寄存器定義時序組

使用From-to和DATAPATHDELAY關鍵字定義寄存器組之間的最大延時

1.3. 輸出約束Output Constraint

輸出時序約束約束的是從內部同步元件或寄存器到器件管腳的數據。

1.3.1. 系統同步輸出約束System Synchronous Output Constraint

系統同步輸出的簡化模型如圖所示,在系統同步輸出接口中,傳輸和獲取數據是基于同一個時鐘的。

141924475273310.jpg

1?7系統同步輸出

其時序約束可寫為:

NET "ClkIn" TNM_NET = "ClkIn";

OFFSET = OUT 5 ns AFTER "ClkIn";

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

在源同步輸出接口中,時鐘是重新產生的并且在某一FPGA時鐘的驅動下和數據一起傳輸至下游器件。

141926126681633.jpg

1?8源同步輸出簡化電路時序圖

141926297158691.jpg

1?9源同步小例子時序圖

小例子的時序約束可寫為:

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之間的路徑不會影響時序性能,那么可以將這一組路徑約束為虛假路徑,工具在進行時序分析的時候將會跳過對這組路徑的時序分析。這種路徑最常見于不同時鐘域的寄存器數據傳輸,如下圖:

141927063877420.jpg

1?10虛假路徑

其約束可寫為:

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

在多周期路徑里,令驅動時鐘的周期為PERIOD,數據可以最大n*PERIOD的時間的從源同步元件傳輸到目的同步元件,這一約束降低工具的布線難度而又不會影響時序性能。這種約束通常用在有時鐘使能控制的同步元件路徑中。

141928291849658.jpg

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

必須說明的是上圖Enable信號的產生周期必須大于等于n*PERIOD,且每個Enable傳輸一個數據。假設上圖的n=2,MC_GRP為時鐘使能Enable控制的多周期同步元件組,則約束可寫為:

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;

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

原文標題:1. 基本的約束方法

文章出處:【微信公眾號:FPGA之家】歡迎添加關注!文章轉載請注明出處。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 寄存器
    +關注

    關注

    31

    文章

    5325

    瀏覽量

    120054
  • 接口
    +關注

    關注

    33

    文章

    8526

    瀏覽量

    150864
  • DCM
    DCM
    +關注

    關注

    0

    文章

    157

    瀏覽量

    26423

原文標題:1.?? 基本的約束方法

文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    VIVADO時序約束及STA基礎

    時序約束的目的就是告訴工具當前的時序狀態,以讓工具盡量優化時序并給出詳細的分析報告。一般在行為仿真后、綜合前即創建基本的時序
    的頭像 發表于 03-11 14:39 ?9699次閱讀

    FPGA主時鐘約束詳解 Vivado添加時序約束方法

    在FPGA設計中,時序約束的設置對于電路性能和可靠性都至關重要。在上一篇的文章中,已經詳細介紹了FPGA時序約束的基礎知識。
    發表于 06-06 18:27 ?1.1w次閱讀
    FPGA主時鐘<b class='flag-5'>約束</b><b class='flag-5'>詳解</b> Vivado添加<b class='flag-5'>時序</b><b class='flag-5'>約束</b><b class='flag-5'>方法</b>

    請教時序約束方法

    我是一個FPGA初學者,關于時序約束一直不是很明白,時序約束有什么用呢?我只會全局時鐘的時序約束
    發表于 07-04 09:45

    FPGA時序約束的幾種方法

    控。從最近一段時間工作和學習的成果中,我總結了如下幾種進行時序約束方法。按照從易到難的順序排列如下:0. 核心頻率約束 這是最基本的,所以標號為0。1. 核心頻率
    發表于 06-02 15:54

    FPGA時序約束的幾種方法

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

    時序約束資料包

    好的時序是設計出來的,不是約束出來的時序就是一種關系,這種關系的基本概念有哪些?這種關系需要約束嗎?各自的詳細情況有哪些?約束
    發表于 08-01 16:45

    時序約束時序分析 ppt教程

    時序約束時序分析 ppt教程 本章概要:時序約束時序分析基礎常用
    發表于 05-17 16:08 ?0次下載

    時序約束用戶指南

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

    FPGA時序約束方法

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

    如何使用時序約束向導

    了解時序約束向導如何用于“完全”約束您的設計。 該向導遵循UltraFast設計方法,定義您的時鐘,時鐘交互,最后是您的輸入和輸出約束
    的頭像 發表于 11-29 06:47 ?2985次閱讀
    如何使用<b class='flag-5'>時序</b><b class='flag-5'>約束</b>向導

    FPGA的約束時序分析的概念詳解

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

    詳解FPGA的時序input delay約束

    本文章探討一下FPGA的時序input delay約束,本文章內容,來源于配置的明德揚時序約束專題課視頻。
    發表于 05-11 10:07 ?4099次閱讀
    <b class='flag-5'>詳解</b>FPGA的<b class='flag-5'>時序</b>input delay<b class='flag-5'>約束</b>

    如何在Vivado中添加時序約束

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

    如何在Vivado中添加時序約束呢?

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

    淺談時序設計和時序約束

    ??本文主要介紹了時序設計和時序約束
    的頭像 發表于 07-04 14:43 ?1362次閱讀