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

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

3天內不再提示

一文讀懂時序分析與約束

電子工程師 ? 來源:FPGA設計論壇 ? 作者:FPGA設計論壇 ? 2021-06-15 11:24 ? 次閱讀

1.時序分析與約束

1.1 約束是FPGA設計不可或缺的,約束文件分為:

用戶設計文件(.UCF),由用戶輸入

網表約束文件(.NCF),綜合生成

物理約束文件(.PCF),實現生成

約束類型分為:

周期約束、偏移約束、靜態路徑約束;

1.2 高的工作頻率意味著更加強大的處理能力,但帶來了:時序沖突的概率變大以及電路的穩定性降低,為此必須進行時序、面積和負載等多方面的約束。

對于一般的低速設計(處理時鐘不超過50MHz),基本上不需時序方面的處理。

1.3 時序分析貫穿整個FPGA設計,任何階段時序分析不滿足,都需重新修改代碼或者調整時序約束。

2. 動態時序分析與靜態時序分析

動態時序分析需要仿真條件, 需要輸入向量,著重于邏輯功能;

靜態時序分析不需要外部激勵,著重于時序性能分析;

靜態時序分析在分析過程中計算時序路徑上數據信號的到達時間和要求時間的差值,以

判斷是否違反設計規則的錯誤,即Slack (時裕量)= T_required_time(約束時長) – T_arrival_time (實際時延),Slack為正則滿足時序。

3.時鐘的時序特性:偏移(skew)、抖動(jitter)、占空比失真(duty cycle distortion)

時鐘偏移:指同一信號到達兩個不同寄存器之間的時間差值(原因:兩條時鐘路徑長度不同) ,在設計中主要時鐘應走全局時鐘網絡;

37a2058c-ccee-11eb-9e57-12bb97331649.png

時鐘抖動、占空比失真

4.時序裕量

約束文件要求的時鐘周期與實際布局布線后時鐘周期的差值

5.添加約束原則

先附加全局約束,再補充局部約束。目的是在可能的地方盡量放松約束,提高布線成功概率,減少布局布線時間。典型的全局約束包括周期約束和偏移約束。

在添加全局時序約束時,先根據時鐘頻率不同劃分不同的時鐘域,添加各自的周期約束;然后對輸入輸出信號添加偏移約束,對片內邏輯添加附加約束

6.硬件設計電路的最高工作頻率

取決于芯片內部元件固有的建立時間和保持時間,以及同步元件之間的邏輯和布線延遲。即由芯片和代碼共同決定。

7.周期約束

常用的策略是:附加的時鐘周期約束的時長為期望值90%.

語法一:Net “信號名” period = 周期長度 high/low 脈沖持續時間

其中high/low指周期內第一個脈沖是高電平還是低電平,脈沖持續時間即該 脈沖的持續時間。

舉例 Net “clk_100MHz” period = 10 ns High 5ns

指定了信號clk_100MHz的周期為10ns,搞電平持續為5ns,該約束將被添加到clk_100MHz所驅動的元件上。

8.偏移約束

規定了外部時鐘和數據輸入輸出管腳之間的相對時序關系,只能用于端口信號,不能用于內部信號,語法結構:

OFFSET = [IN|OUT] “offset_time” [units] {BEFORE|AFTER} “clk_name” [TIMEGRP “group_name”]

[IN|OUT]:說明約束的是輸入還是輸出

offset_time:數據與有效時鐘沿之間的時間差

[units]:時間差單位,缺省為ns

{BEFORE|AFTER}:表明該時間差實在時鐘沿之前還是之后

“clk_name”:有效時鐘名字

[TIMEGRP “group_name”]:用戶添加的分組信號,缺省時為時鐘“clk_name”所能驅動的所有觸發器

偏移約束通知布局布線器輸入數據的到達時刻,從而可準確調整布局布線的過程,使約束信號建立時間滿足要求

舉例:NET “DATA_IN” OFFSET = IN 10 BEFORE “CLK_50MHz”。

責任編輯:lq6

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

    關注

    5

    文章

    359

    瀏覽量

    37027

原文標題:FPGA學習筆記-時序分析與約束

文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設計論壇】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

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

    Register-to-Register Constraint 寄存器到寄存器約束往往指的是周期約束,周期約束的覆蓋范圍包括: 覆蓋了時鐘域的時序要求 覆蓋了同步數據在內部寄存器
    發表于 05-06 15:51

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

    寄存器到寄存器約束往往指的是周期約束,周期約束的覆蓋范圍包括: 覆蓋了時鐘域的時序要求 覆蓋了同步數據在內部寄存器之間的傳輸 分析
    發表于 04-12 17:39

    FPGA時序約束--基礎理論篇

    FPGA開發過程中,離不開時序約束,那么時序約束是什么?簡單點說,FPGA芯片中的邏輯電路,從輸入到輸出所需要的時間,這個時間必須在設定的時鐘周期內完成,更詳細
    發表于 11-15 17:41

    FPGA的約束設計和時序分析

    FPGA/CPLD的綜合、實現過程中指導邏輯的映射和布局布線。下面主要總結下Xilinx FPGA時序約束設計和分析。
    發表于 09-21 07:45

    FPGA I/O口時序約束講解

    前面講解了時序約束的理論知識FPGA時序約束理論篇,本章講解時序約束實際使用。
    發表于 08-14 18:22 ?1062次閱讀
    FPGA I/O口<b class='flag-5'>時序</b><b class='flag-5'>約束</b>講解

    FPGA時序約束時序路徑和時序模型

    時序路徑作為時序約束時序分析的物理連接關系,可分為片間路徑和片內路徑。
    發表于 08-14 17:50 ?577次閱讀
    FPGA<b class='flag-5'>時序</b><b class='flag-5'>約束</b>之<b class='flag-5'>時序</b>路徑和<b class='flag-5'>時序</b>模型

    請問時序約束文件SDC支持哪些約束?

    時序約束文件SDC支持哪些約束?
    發表于 08-11 09:27

    時序約束連載03~約束步驟總結

    本小節對時序約束做最終的總結
    的頭像 發表于 07-11 17:18 ?443次閱讀
    <b class='flag-5'>時序</b><b class='flag-5'>約束</b>連載03~<b class='flag-5'>約束</b>步驟總結

    時序約束連載02~時序例外

    本文繼續講解時序約束的第四大步驟——時序例外
    的頭像 發表于 07-11 17:17 ?492次閱讀
    <b class='flag-5'>時序</b><b class='flag-5'>約束</b>連載02~<b class='flag-5'>時序</b>例外

    時序約束出現時序違例(Slack為負數),如何處理?

    時序約束出現時序違例(Slack為負數),如何處理?
    的頭像 發表于 07-10 15:47 ?3887次閱讀

    淺談時序設計和時序約束

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

    時序約束怎么用?時序約束到底是要干嘛?

    很多小伙伴開始學習時序約束的時候第一個疑惑就是標題,有的人可能會疑惑很久。不明白時序約束是什么作用,更不明白怎么用。
    的頭像 發表于 06-28 15:10 ?1091次閱讀
    <b class='flag-5'>時序</b><b class='flag-5'>約束</b>怎么用?<b class='flag-5'>時序</b><b class='flag-5'>約束</b>到底是要干嘛?

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

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

    FPGA時序約束的原理是什么?

    FPGA開發過程中,離不開時序約束,那么時序約束是什么?簡單點說,FPGA芯片中的邏輯電路,從輸入到輸出所需要的時間,這個時間必須在設定的時鐘周期內完成,更詳細一點,即需要滿足建立和保
    發表于 06-26 14:42 ?423次閱讀
    FPGA<b class='flag-5'>時序</b><b class='flag-5'>約束</b>的原理是什么?

    如何在Vivado中添加時序約束

    前面幾篇文章已經詳細介紹了FPGA時序約束基礎知識以及常用的時序約束命令,相信大家已經基本掌握了時序約束
    的頭像 發表于 06-23 17:44 ?1575次閱讀
    如何在Vivado中添加<b class='flag-5'>時序</b><b class='flag-5'>約束</b>
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>