常用約束語句說明
關於Fmax
上述是實現Fmax的計算公式,clock skew delay的計算如下圖,
就是兩個時鍾的差值。到頭來,影響Fmax的值的大小就是組合邏輯,而Fmax是針對最差勁的節點給出的最高頻率,而且Tsu會影響Fmax的大小。
那么提高Fmax可以通過兩種方法解決:(1)將兩個時序邏輯之間的大組合邏輯分為兩個小的邏輯,即采用流水線設計方法 ;(可以在組合邏輯的兩端加上寄存器,這樣可以增加時序余量) ;(2)更改時序約束或者更改一些綜合或者實現選項,讓開發工具去解決問題,如下圖進行相關設置。
如下圖是一個實現乘法器的操作,那么我們可以將有40ns壓力的組合邏輯分成多個小的的模塊,即流水線形式,這樣可以提高數據的吞吐量。
關於PLL約束
首先altera內部的PLL之間是相互關聯的,在對PLL進行約束時,derive pll clocks是驅動所有的PLL的輸出.
上述是與pll相關的時序約束,其中只要設定約束,就可以實現自動對PLL的輸出時鍾信號進行約束。
用於交互時鍾,內部時鍾,和IO接口的不確定時間的自動檢測,一般只用在FPGA芯片中,一般此命令需要加入到時序約束中。
此部分也是非常的重要的部分,其中report all summaries 是把所有情況列出來,report top failing paths 是列出所有違規的路徑,此路徑默認深度是200,可以手動去更改,report all core timings是列出所有核心的路徑,默認是1000,如果需要可以去更改。
對於PLL的輸出時鍾,分為有數據交換和無數據交換兩部分。對於無數據交換,約束比較簡單,set false path加上PLL的輸出時鍾名稱,約定PLL的輸出時鍾之間無數據交換。
關於供源時鍾
如上圖所示,供源時鍾就是從FPGA中的fpga_clk輸入,然后經過某個管腳直接輸出,然后供給ic1和ic2來實現,還是fpga_clk的時鍾頻率。
對於上圖是FPGA和某IC之間的通信,這種情況是建立不了時序約束的,他們沒有彼此的獨立時鍾源,反而觀之下圖可以實現與內部寄存器相類似的約束功能
延遲源分析
對於延遲方面,分為內部和外部延遲,如圖1所示。圖2是內部延遲,寄存器之間的一些延遲也是屬於內部延遲,外部延遲如圖3所示
圖1延遲分析
圖2 內部延遲
圖3 外部延遲
輸入輸出延遲分析
IC2FPGA模型來講的。參照下圖:
set max/min delay
對於上一節需要計算時鍾偏斜,所以需要計算延時的最大值和最小值,即set max/min delay的參數設置。這個參數的設置具體需要根據實例中先估計一個大概值,然后再精確,留足余量。
//=======================================================================
更多詳細的資料下載可以登錄筆者百度網盤:
網址:http://pan.baidu.com/s/1bnwLaqF
密碼:fgtb
//=======================================================================