一文掌握多片FPGA的多路復用_全球報資訊

2023-06-06 10:14:23 來源:芯播客

多片FPGA之間的互連,經常提到多路復用的概念,也經常提到TDM的概念,正確理解多路復用在多片FPGA原型驗證系統中的機理,尤其是時序機制,對于我們正確看待和理解多片FPGA原型系統的性能有很好的促進作用。下圖是一個使用多路復用器后接采樣FF的多路復用解決方案的示例。


(資料圖片僅供參考)

在FPGA-A中,我們有一些觸發器的設計,我們稱為FF(Flip_Flop),然后是一些組合邏輯設計,在FPGA中的Design這個模塊,可以認為是移植成功的SoC的RTL設計,在這里抽象為一部分組合邏輯和時序邏輯FF的簡單連接,實際上,我們的設計中也是組合邏輯和時序邏輯的結合,只是要比圖示要復雜的多。FPGA_A中要輸出的IO的值被饋送到發送級所謂的發送級并不是SoC所擁有的RTL代碼,而是為了正確傳輸這些IO所額外設計的文件,該級包含一個復用器,該復用器依次選擇每個設計信號和一個輸出FF,我們將其稱為FFMO。FFMO可以被放置在FPGA A的IO FF中,以改善輸出時序。

在兩個FPGA之間,我們為多路復用信號使用單端連接(在圖中顯示為多路復用器)。為了保證信號完整性,我們必須確保在發送FFMO和接收FF(我們稱之為FFMI)之間的一個傳輸時鐘周期內接收多路復用樣本并將其鎖存到目的FF。

當多路復用的信號被逐個采樣到FPGA-B中的FFMI時,而后它們被存儲在一組捕獲FF中,我們稱之為FFMC。這些FF確保樣本在設計時鐘的下一個時鐘邊緣之前都是穩定的。我們的示例還顯示了FPGA_B接收端的一些組合設計邏輯(被分割在FPGA-B中的SoC的邏輯)。

那么,如何計算最大傳輸頻率以及傳輸時鐘與設計時鐘之間的比率呢?我們的約束是在FFMO和FFMI之間的傳輸時鐘周期內傳輸數據值。路徑上的延遲如下:

這是信號可以在FPGA之間傳遞的理論速率,但我們使用的是單端信令,并且FPGA之間可能存在一些時鐘不確定性或抖動,我們也應該給容差留出一些空間。因此,根據我們的經驗,我們應該添加Ttolerances = 1到2ns的安全裕度,這取決于我們對電路板上時鐘分布質量的信心。對于此示例,讓我們假設

最大時鐘頻率100MHz(或10ns的周期)必須作為FPGA合成和放置和路由期間傳輸時鐘的約束條件。

現在讓我們更仔細地考慮多路復用器和dmux組件是如何工作的,以便計算傳輸時鐘和設計時鐘之間的比率。我們必須考慮兩種可能的用例。第一種情況是傳輸時鐘和設計時鐘是相互同步的,即,它們來自一個時鐘源,并且它們是相位對準的。第二種情況是,傳輸時鐘和設計時鐘是異步的,在這種情況下,我們不知道數據值的傳輸是從哪個傳輸時鐘周期開始的,我們必須設置正確的約束以確保其正常工作。

從同步情況開始,我們從框圖中看到,需要一些傳輸時鐘周期,才能將數據從發送設計FFS通過復用寄存器FFMO、FFMI、FFMC傳送到接收設計寄存器FFR。

此外,即使這兩個時鐘是同步的,我們也必須重視發送和接收端的設計時鐘和傳輸時鐘之間的延遲。這些延遲在方框圖中標記為發送側的Tdesign?to?mux和接收側的Tdmux?to?design。對于以下時鐘比率的計算,我們假設這些延遲具有恒定值,并且我們必須將這些假設作為綜合布局布線的約束條件。對于我們這里的示例,我們將假設這些延遲最大為一個傳輸時鐘周期,這是極端的,最大為10ns。下表顯示了基于以上假設的設計信號如何通過復用傳輸。

考慮在設計寄存器FFS中有效的新數據DA。一個傳輸時鐘周期后,第一位DA1被捕獲到FFMO中。這是使用我們的假設,即設計時鐘和傳輸時鐘之間的延遲是最大一個傳輸時鐘周期,并且時鐘是相位同步的。表中帶陰影的條目顯示了捕獲的數據位如何通過多路復用器和dmux傳輸,并被計時到接收FFR中。我們在首都強調了鏈中每個FF都有新數據的地方。正如我們從選項卡的第一列中看到的,設計時鐘和傳輸時鐘之間的比率是7,這意味著設計時鐘必須比傳輸時鐘慢7倍才能保證正確的操作。

現在,計算我們的同步復用示例的最大設計時鐘頻率很簡單:

因此,對于這一設計,即在100MHz下使用4:1復用器比率復用信號,我們可以在14.28MHz以上的最壞情況下運行我們的設計,而不是我們可能從4:1比率中猜測的25MHz。

我們現在已經看到了傳輸時鐘和設計時鐘是同步的情況,但讓我們考慮異步復用方案中的差異。最大傳輸時鐘頻率相同,但我們不知道設計和傳輸時鐘的有效邊緣之間的偏差。因此,我們必須在發送和接收端增加額外的同步時間,以確保滿足設計和傳輸時鐘之間的設置和保持時間。這在發送端和接收端都增加了額外的傳輸時鐘周期。異步復用的最大設計頻率計算如下:

我們可以看到,異步情況以較低的設計頻率運行,但異步多路復用的優點是,我們不需要同步設計和傳輸時鐘,而且我們可以更自由地從何處獲取傳輸時鐘。

為了總結這個例子,我們應該記住用復用來約束設計的重要事項是:

基于FPGAIO技術、板上延遲和容差計算傳輸時鐘的正確最大頻率。

考慮同步或異步復用之間的差異,計算設計和傳輸時鐘之間的正確比率。

為傳輸時鐘和設計時鐘提供正確的合成和FPGA位置和路線限制。

為傳輸時鐘和設計時鐘之間的延遲提供正確的合成時鐘和FPGA位置和路徑限制。

考慮了FPGA之間使用正常單端信令的不同類型的復用,我們可以做什么來獲得更高的復用率,但仍然保持高系統速度?答案在于提高最大轉移使用FPGA的內置串行IP和更強大的信令技術。

審核編輯:湯梓紅

標簽:

上一篇:天天實時:Docker容器和Kubernetes退出碼中文指南
下一篇:最后一頁