世界熱消息:FPGA時序約束的基礎知識

2023-06-06 18:23:56 來源:FPGA入門到精通

FPGA開發過程中,離不開時序約束,那么時序約束是什么?簡單點說,FPGA芯片中的邏輯電路,從輸入到輸出所需要的時間,這個時間必須在設定的時鐘周期內完成,更詳細一點,即需要滿足建立和保持時間。

時序約束可以讓VIvado和Quartus等FPGA開發軟件,在布線時檢測綜合出來的邏輯電路是否滿足這個時序要求,并生成時序報告。

一、建立/保持時間


(相關資料圖)

1、基本概念

設定時序約束的目的就是為了滿足建立時間和保持時間,所以理解“建立時間和保持時間”這兩個概念非常重要。

建立時間:在時鐘上升沿到來之前,輸入信號需要提前一個最小時間里“預先準備好”,這個最小時間量就是建立時間;

保持時間:在時鐘上升沿到來之后,輸入信號必須保持一個最小時間量“不能變化”,這樣這個最小時間量就是保持時間。

只有滿足建立時間和保持時間,這樣才能準確捕獲到這個輸入信號,下一級電路邏輯才能正常接收到正確的信號。

建立和保持時間是由FPGA芯片器件特性決定,也就是制程工藝決定的,以Xilinx FPGA K7芯片為例,setup time為0.04ns,hold time為0.2ns,具體可以查對應芯片手冊的setup time和hold time。

2、時鐘抖動

實際的時鐘信號是存在時鐘抖動的,時鐘抖動( Clock Jitter)是實際時鐘存在隨著時間積累的、時而超前、時而滯后的偏移,如下圖所示。

3、時鐘偏差

時鐘偏差(Clock Skew)表示在同一個時鐘域內時鐘信號到達各個寄存器用時的差異。時鐘信號在FPGA芯片中也是需要走線的,所以也存在布線延遲。

時鐘的不確定性,就是由時鐘抖動和時鐘偏差組成的。

二、時序路徑

時序路徑是指從FPGA輸入到輸出的所有邏輯路徑組成的路徑。當存在時序路徑時,需要考慮時序約束以確保正確的邏輯功能和時序性能。

時序路徑中的關鍵元素包括:

(1) 路徑起點(即時鐘觸發器輸入端口)

(2)路徑終點(即輸出端口的寄存器或查找表單元)

(3)邏輯電路和邏輯器件

有了這些元素,就可以構建完整的時序路徑。在實踐中,我們可以使用FPGA工具來分析、優化和修復時序路徑。

時序路徑對于設計的正確性和時序性能來說都是非常重要的。為了最大程度地提高性能并避免瓶頸,我們必須對時序路徑進行詳細的分析和優化。

三、時序模型

一個基本的時序路徑包括源時鐘路徑、數據路徑和目的時鐘路徑,如下圖所示:

各部分對應的延時計算如下圖所示:

時序約束的公式為:Tclk ≥ Tco + Tlogic+ Trouting + Tsetup - Tskew

說明:Tclk表示系統時鐘周期;Tco表示發送端寄存器時鐘到輸出時間;Tlogic表示組合邏輯延遲時間;Trouting為兩級寄存器之間的布線延遲;Tsetup為接收端寄存器的建立時間;Tskew為時鐘偏差。

Tlogic與我們寫的HDL代碼有直接關系,Trouting是FPGA開發軟件綜合布線根據FPGA內部資源情況進行布線產生的延時。

四、總結

本文介紹了FPGA時序約束的基礎理論知識,希望通過閱讀本文,大家能夠更好地理解時序約束原理,并在實際工作中運用這些原理提高設計效率和準確性。

標簽:

上一篇:熱頭條丨FPGA主時鐘約束詳解 Vivado添加時序約束方法
下一篇:最后一頁