時序約束例項詳解
本篇部落格結合之前的內容,然後實打實的做乙個約束例項,通過本例項讀者應該會實用timequest去分析相關的例項。本例項以vga實驗為基礎,介紹如何去做時序約束。
首先vga這種情況屬於供源時鐘情況,不明白供源時鐘的可以參看之前部落格講解。首先檢視adv7123的資料手冊,檢視其時序圖。如下圖所示,是建立時間和保持時間要求。
下圖是時序圖,可見t1和t2在時鐘上公升沿的位置,資料在時鐘的上公升沿進行採集。
對於vga實驗來說,fpga是傳送端,adv7123是接收端,如果傳輸的速率比較高的話,資料和時鐘上公升沿的嚴格對齊就要依靠pll產生可調相位的時鐘訊號來保證,不過對於對於25mhz時鐘通過較好的時序約束和分析後,則不必動用pll。
接下來需要產生虛擬時鐘,對於reg2reg路徑的分析,其時鐘都是fpga內部,不用產生虛擬時鐘,但是對於pin2reg或者reg2pin這種情況,需要產生乙個虛擬時鐘,作為pin端的時鐘來分析時序。如下圖中的標註所示。
所以adv7123和fpga進行時鐘相關的訊號就是adv7123的驅動時鐘,明白這個訊號之後,需要設定其虛擬時鐘約束,如下圖所示。
開啟altium designer,然後檢視vga模組的走線長度如下圖1所示,長度大約是11.589mm。
圖1 vga模組走線長度
在fpga核心板(筆者設計的一款學習板)上面的lcd_dclk的走線長度如下圖2所示。長度大約是41.4mm。
圖2 核心板走線長度
根據上述的計算,所以lcd_dclk總得走線長度 = 52.989mm。
同樣的道理,資料走線長度如下圖3所示,此走線長度是vga模組上面的長度,長度大約在7.72~43.152mm,那麼對於核心板上面的走線模組長度如圖4所示,大概長度約為28.65 ~ 53.32mm,總的長度為36.37mm~96.472mm,根據0.17ns/25.4mm,lcd_clk走線延遲0.35ns,資料匯流排延遲0.24ns~0.646ns。
圖3 各訊號走線延遲
圖4 核心板各訊號走線延遲
若是不考慮時鐘偏移,那麼進行時序分析得到的餘量如圖5所示。
圖5 建立和保持餘量
上述是計算完了fpga到外部ic的延遲,但是還有時鐘偏斜沒有計算,那麼需要用到set max/min delay 命令,對於lcd_dclk先估計乙個範圍,如0~5ns即可,這個範圍肯定是滿足要求,但是可能會不能夠留有更多的餘量。然後在將有時鐘偏移的延遲時間代入set output delay的表示式中,此處利用公式將lcd_dclk 最大延遲設為3ns,lcd_dclk最小延遲設為1ns,那麼考慮時鐘偏斜的輸出最大值 = 0.646 + 0.2 -3 = -2.154ns;輸出最小值 = 0.24 - 1.5 - 1 = -2.26ns;
圖6是約束後的建立餘量和保持餘量,可以看到滿足時序要求,並保有很大的時序餘量。
圖6 建立餘量和保持餘量
**:密碼:fgtb
FPGA時序分析1 FPGA結構
記錄學習,記錄成長 介紹fpga的基本結構並說明fpga如何實現可程式設計功能。為什麼要了解fpga基本結構呢?了解這些後,在進行fpga設計時,可以大概知道電路在fpga上是如何實現的。在進行時序約束或者提高時鐘頻率時,知其然更知其所以然。目錄 1.fpga介紹 2.fpga組成三要素 2.1 c...
FPGA系列5 時序分析(時序模型)
該時序模型的要求為 tclk tco tlogic trouting tsetup tskew 其中,tco為發端暫存器時鐘到輸出時間 tlogic為組合邏輯延遲 trouting為兩級暫存器之間的佈線延遲 tsetup為收端暫存器建立時間 tskew為兩級暫存器的時鐘歪斜,其值等於時鐘同邊沿到達兩...
FPGA時序分析的一些理解
2014 12 02 19 29 1048人閱讀收藏 舉報 fpga基礎知識 39 最開始看的一些資料,大家其實講得都差不多,但是我卻看得雲裡霧裡的,應該是還沒真正理解這個東西。今天心血來潮又把 七天玩轉altrea之時序篇 拿出來看了看,應該有些豁然開朗的感覺,在下實屬愚笨,想透徹理解乙個東西太慢...