當將SoC的代碼分割到多片FPGA的任務完成,并且所有FPGA的資源利用都很平衡,在建議的范圍50%到70%左右。此外,每個FPGA中被分配到的RTL設計的IO最小化,也就是說分割邊界的IO數量是最小的,但在如此好的工作之后,仍然有可能沒有足夠的FPGA引腳可用于連接所有設計IO,或者更準確地說,一些FPGA之間沒有足夠的板載trace跡線。那這個時候的解決方案是在所用的FPGA之間復用設計信號。多路復用意味著多個兼容的設計信號通過相同的板載trace跡線被組裝和串行化,然后在接收FPGA處被解復用。可以簡單理解為根據時鐘先按照并行轉換串行的方式,將多路信號通過單路傳輸到另一接收的FPGA端,然后在接收的那一端轉換成并行信號與此FPGA中的設計相連接,形成完整的SoC系統功能。
FPGA之間的兩個多路復用信號需要許多組件,包括多路復用器(mux)、解復用器(dmux)、時鐘源和保持所有這些相互同步的方法。
如果我們可以自由更改RTL,那么理論上,可以在每個FPGA邊界手動添加這些元素。我們需要在分區之后添加復用元素,或者從一開始就將元素添加到RTL中,因此預先假設分區邊界的位置。在這兩種情況下,SoC團隊的其他成員可能會認為這與最初的SoC的RTL相距太遠,并引入了太多錯誤機會。
大多數團隊不會考慮對SoC RTL進行如此廣泛的更改,而是依賴于自動化的方式來添加復用,通過腳本化的直接編輯合成后網表,或者根據分區過程給出的方向在合成過程中進行推斷。
無論采用何種方法引入多路復用,該方案的基本要求是在一個設計時鐘內將IO數據值從一個FPGA傳輸到另一個FPGA。為了實現這一點,串行傳輸時鐘(也稱為多路復用時鐘或快速時鐘)必須比設計時鐘更快地對這些數據值進行采樣,以確保在下一個活動設計時鐘邊緣之前接收FPGA中的所有數據都可用。
例如,假設我們有四個IO數據值要在兩個FPGA之間傳輸,這兩個FPGA在單個板上連接上復用,即復用率為4:1。如果設計的這一部分以20MHz運行,那么,為了在設計時鐘周期內傳輸四個設計IO,我們需要比設計時鐘快至少四倍的傳輸時鐘。因此,傳輸時鐘必須至少為80MHz。實際上,對于4:1的多路復用,它需要快四倍以上,因為我們需要確保在數據到達傳輸時鐘,然后在設計時鐘上鎖存到下游邏輯之間滿足設置和保持時間。
在使用多路復用的大多數情況下,它會降低設計的總體速度,并且通常是整個系統速度的控制因素。串行傳輸速度受到通過FPGA IO的最大速度和通過板載軌跡的互連線的傳輸時間的限制。因此,由于這些物理限制,需要優化復用方案,以允許原型以最大速度運行。
多路復用通常由插入多路復用器和多路復用器元件并用合適的信號填充分區工具支持。例如,有兩種不同類型的方案,采用LVDS傳輸或高速時域復用(HSTDM)。
根據傳輸時鐘和設計時鐘的關系,我們可以區分兩種類型的復用。異步復用,其中傳輸時鐘與設計時鐘沒有相位關系,以及同步復用,其中,傳輸時鐘相位與設計時鐘對齊,甚至可能從中導出。
-
FPGA
+關注
關注
1630文章
21796瀏覽量
605999 -
時鐘
+關注
關注
11文章
1746瀏覽量
131799 -
復用器
+關注
關注
1文章
712瀏覽量
28413
原文標題:多片FPGA原型系統:多路復用(TDM)科普
文章出處:【微信號:于博士Jacky,微信公眾號:于博士Jacky】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論