FPGA時序約束理解記錄

最近整理了一下時序約束的內容,順便發出來分享記錄一下。性能

任何硬件想要工做正常,均需知足創建和保持時間,至於這個概念再也不陳述。3d

下面將重點介紹兩個概念:創建餘量和保持餘量。FPGA內部進行時序分析無非就是計算這兩個餘量,爲正,則時序知足要求,不然不知足。blog

FPGA在與外部期間打交道時,端口若是爲輸入則與input delay約束相關,若是最爲輸出則output delay,這兩種約束的值到底是什麼涵義,下文input

我也會重點刨析,可是前提是須要理解圖1和圖2創建餘量和保持餘量。硬件

創建餘量:不考慮clk_skew,數據在regA 的發射沿(即第一個上升沿)通過Tco+Tdata則會一直保持不變,等待着接受沿採集,接收沿只需知足的創建時間,餘量=T-Tco-Tdata即紅色區所示。方法

 

保持餘量im

藍色是第一個數據,第一個上升沿是藍色數據的發射沿,第二個上升沿是藍色數據的接收沿d3

紫色是第二個數據,第二個上升沿是紫色數據的發射沿,第三個上升沿是紫色數據接收沿(圖中未畫)數據

意思是什麼?第一個藍色數據通過發射沿後延遲Tco+Tdata的時間就一直保持不變,直到紫色的數據在其發射沿來後通過Tco+Tdata時間將藍色數據代替,藍色數據只須要在其接收沿後停留的時間大於等於保持時間便可被正常採集,可是藍色數據實際上可以停留多久是由Tco+Tdata決定的,所以Tco+Tdata的值決定了其在接受沿後的壽命,即Tco+Tdata>=Th就能夠知足保持時間,保持餘量=Tco+Tdata-Th,保持時間和時鐘週期T無關,由於他的壽命是由Tco+Tdata決定的。img

 

 

 

 input delay 和output delay

對於input /output delay的保持餘量和創建餘量的計算方法和前面講的是同樣的,區別在於前面的例子中REGA和REGB均是在FPGA內部的,計算餘量的全部參數FPGA自身是知道的,他本身能夠完成整個計算分析,可是一旦涉及到input delay和output delay,即FPGA做爲是接收端或者發送端與其餘器件交互時,有些計算的參數FPGA本身知道,有的計算的參數是外部器件知道,爲了完成餘量的計算,那麼就要經過約束把FPGA不知道的量告訴FPGA。

用input delay舉例說明 見下圖 

創建餘量=T-Tco-Tdata-Tsu,FPGA做爲接收端Tsu,Th是知道的,可是其他兩個量不知道,Tco與外部器件性能相關,能夠從其數據手冊中獲取這個量,Tdata也許和你PCB的佈線延遲等有關,爲了完成計算,只須要把Tdata+Tco的最告訴fpga便可,max參數是與創建參數相關,min與保持餘量相關,其最大值爲 input delay max爲Tco+Tdata的最大值,最小值爲input delay min爲Tco+Tdata的最小值。

output delay見下圖,紅色表明FPGA本身知道的量,其他須要經過約束告知

因此max 爲Tdata+Tsu

       min爲Tdata-Th

下面是我作的記錄

SDR和DDR的概念:S是單沿觸發,D是雙沿,雙沿又分中心對齊和邊沿對齊,見圖

 

 

 

下圖是input delay 的DDR中心對齊,其中黑色方框框起來的是理想狀況下的數據,藍色是數據總體左偏移,紅色是數據總體右偏移,來回抖動的範圍,圖示中XXXX則表示的數據不穩定的區域,對於上升沿,最小值就是到藍色框dv_are的大小,最大值就是到紅色框邊沿T/2-dv_bfe.降低沿再也不贅述。

對於DDR邊沿對齊,對上升沿來說,黑色數據框是理想狀況,紅色是向右偏移,藍色則是向左偏移,在第三個紅色框那裏,延遲已經等於0,再進一步左移則爲負,藍色所示。對上升沿來說,max爲skew_are,min爲 負-skew_bre。

相關文章
相關標籤/搜索