FPGA中的時序分析(四)


常用約束語句說明

關於Fmax

wps243B.tmp     上述是實現Fmax的計算公式,clock skew delay的計算如下圖,wps24F8.tmp

  就是兩個時鍾的差值。到頭來,影響Fmax的值的大小就是組合邏輯,而Fmax是針對最差勁的節點給出的最高頻率,而且Tsu會影響Fmax的大小。

  那么提高Fmax可以通過兩種方法解決:(1)將兩個時序邏輯之間的大組合邏輯分為兩個小的邏輯,即采用流水線設計方法 ;(可以在組合邏輯的兩端加上寄存器,這樣可以增加時序余量) ;(2)更改時序約束或者更改一些綜合或者實現選項,讓開發工具去解決問題,如下圖進行相關設置。

wps2528.tmp

  如下圖是一個實現乘法器的操作,那么我們可以將有40ns壓力的組合邏輯分成多個小的的模塊,即流水線形式,這樣可以提高數據的吞吐量。

wps2538.tmp

wps2539.tmp

 

關於PLL約束

  首先altera內部的PLL之間是相互關聯的,在對PLL進行約束時,derive pll clocks是驅動所有的PLL的輸出.

wps2E97.tmp

  上述是與pll相關的時序約束,其中只要設定wps2EE6.tmp約束,就可以實現自動對PLL的輸出時鍾信號進行約束。

wps2EE7.tmp

  用於交互時鍾,內部時鍾,和IO接口的不確定時間的自動檢測,一般只用在FPGA芯片中,一般此命令需要加入到時序約束中。

wps2EF8.tmp此部分也是非常的重要的部分,其中report all summaries 是把所有情況列出來,report top failing paths 是列出所有違規的路徑,此路徑默認深度是200,可以手動去更改,report all core timings是列出所有核心的路徑,默認是1000,如果需要可以去更改。

  對於PLL的輸出時鍾,分為有數據交換和無數據交換兩部分。對於無數據交換,約束比較簡單,set false path加上PLL的輸出時鍾名稱,約定PLL的輸出時鍾之間無數據交換。

關於供源時鍾

wpsCDFB.tmp

  如上圖所示,供源時鍾就是從FPGA中的fpga_clk輸入,然后經過某個管腳直接輸出,然后供給ic1和ic2來實現,還是fpga_clk的時鍾頻率。

wpsCE2A.tmp

  對於上圖是FPGA和某IC之間的通信,這種情況是建立不了時序約束的,他們沒有彼此的獨立時鍾源,反而觀之下圖可以實現與內部寄存器相類似的約束功能

wpsCE3B.tmp

延遲源分析

  對於延遲方面,分為內部和外部延遲,如圖1所示。圖2是內部延遲,寄存器之間的一些延遲也是屬於內部延遲,外部延遲如圖3所示

wpsCE4C.tmp

圖1延遲分析

wpsCE5C.tmp

圖2 內部延遲

wpsCE6D.tmp

圖3 外部延遲

輸入輸出延遲分析

  IC2FPGA模型來講的。參照下圖:

wpsCE7E.tmp 與其相關的公式:

wpsCE8E.tmp

wpsCE9F.tmp

wpsCEAF.tmp

wpsCEC0.tmp

wpsCED1.tmp

set max/min delay

  對於上一節需要計算時鍾偏斜,所以需要計算延時的最大值和最小值,即set max/min delay的參數設置。這個參數的設置具體需要根據實例中先估計一個大概值,然后再精確,留足余量。

//=======================================================================

更多詳細的資料下載可以登錄筆者百度網盤:

網址:http://pan.baidu.com/s/1bnwLaqF

密碼:fgtb

//=======================================================================


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM