FPGA時序約束 -- 學習筆記

1. 什麼情況下FPGA需要時序約束?

在簡單電路中,當頻率較低時,數字信號的邊沿時間可以忽略時,無需考慮時序約束。但在複雜電路中,為了減少系統中各部分延時,使系統協同工作,提高運行頻率,需要進行時序約束。通常當頻率高於50MHz時,需要考慮時序約束。

2. 限制FPGA最大頻率的因素有哪些?

  • 組合邏輯延時

越多的門電路,所構成的組合邏輯延時越大,FPGA實際上是用四輸入查找表(LUT, Look-Up-Tables)的方式實現門電路的,變數數目小於4的所有組合邏輯延時相同,大於4時需要多個查找表組合,延時增加。

  • 信號路徑延時

路徑延時是所有延時中最需要考慮的,甚至可以佔到總延時的一半以上,一般EDA工具不會尋找最快的路徑,需要施加時序約束。

  • 時鐘偏移、抖動和延時

時鐘傳到每個觸發器的時間會由於距離時鐘源路徑長度不同而有偏移,時鐘偏移可以通過H tree的結構解決。時鐘抖動是由於溫度分布,信號串擾等因素使得晶振、PLL等產生的時鐘信號周期不會嚴格相等而造成的。

  • 觸發器建立時間、保持時間

輸入管腳的數據必須在時鐘有效之前提前出現的時間稱為建立時間Tsu;保持時間Th是指在時鐘上跳沿後,數據必須保持的最小時間。

  • 觸發器時鐘到輸出時間

在時鐘有效後,D的數據並不能立即傳到Q端,這段等待的時間就是觸發器的時鐘到輸出時間。

  • 功耗

合理的時序約束可以提高運行頻率,但往往會使得功耗增加, P=(C_{Load}+C_{pd})fV^{2}_{DD} ,在性能要求不高的移動設備中,需要綜合考慮。

參考

Stanford EE183

靜態時序分析

推薦閱讀:

電路到底改不改?怎麼改既實用又省錢?

TAG:現場可編輯邏輯門陣列FPGA | 數字電路 |