當將SoC的代碼分割到多片FPGA的任務完成,并且所有FPGA的資源利用都很平衡,在建議的范圍50%到70%左右。此外,每個FPGA中被分配到的RTL設計的IO最小化,也就是說分割邊界的IO數(shù)量是最小的,但在如此好的工作之后,仍然有可能沒有足夠的FPGA引腳可用于連接所有設計IO,或者更準確地說,一些FPGA之間沒有足夠的板載trace跡線。那這個時候的解決方案是在所用的FPGA之間復用設計信號。多路復用意味著多個兼容的設計信號通過相同的板載trace跡線被組裝和串行化,然后在接收FPGA處被解復用。可以簡單理解為根據(jù)時鐘先按照并行轉(zhuǎn)換串行的方式,將多路信號通過單路傳輸?shù)搅硪唤邮盏腇PGA端,然后在接收的那一端轉(zhuǎn)換成并行信號與此FPGA中的設計相連接,形成完整的SoC系統(tǒng)功能。
FPGA之間的兩個多路復用信號需要許多組件,包括多路復用器(mux)、解復用器(dmux)、時鐘源和保持所有這些相互同步的方法。

如果我們可以自由更改RTL,那么理論上,可以在每個FPGA邊界手動添加這些元素。我們需要在分區(qū)之后添加復用元素,或者從一開始就將元素添加到RTL中,因此預先假設分區(qū)邊界的位置。在這兩種情況下,SoC團隊的其他成員可能會認為這與最初的SoC的RTL相距太遠,并引入了太多錯誤機會。
大多數(shù)團隊不會考慮對SoC RTL進行如此廣泛的更改,而是依賴于自動化的方式來添加復用,通過腳本化的直接編輯合成后網(wǎng)表,或者根據(jù)分區(qū)過程給出的方向在合成過程中進行推斷。
無論采用何種方法引入多路復用,該方案的基本要求是在一個設計時鐘內(nèi)將IO數(shù)據(jù)值從一個FPGA傳輸?shù)搅硪粋€FPGA。為了實現(xiàn)這一點,串行傳輸時鐘(也稱為多路復用時鐘或快速時鐘)必須比設計時鐘更快地對這些數(shù)據(jù)值進行采樣,以確保在下一個活動設計時鐘邊緣之前接收FPGA中的所有數(shù)據(jù)都可用。
例如,假設我們有四個IO數(shù)據(jù)值要在兩個FPGA之間傳輸,這兩個FPGA在單個板上連接上復用,即復用率為4:1。如果設計的這一部分以20MHz運行,那么,為了在設計時鐘周期內(nèi)傳輸四個設計IO,我們需要比設計時鐘快至少四倍的傳輸時鐘。因此,傳輸時鐘必須至少為80MHz。實際上,對于4:1的多路復用,它需要快四倍以上,因為我們需要確保在數(shù)據(jù)到達傳輸時鐘,然后在設計時鐘上鎖存到下游邏輯之間滿足設置和保持時間。
在使用多路復用的大多數(shù)情況下,它會降低設計的總體速度,并且通常是整個系統(tǒng)速度的控制因素。串行傳輸速度受到通過FPGA IO的最大速度和通過板載軌跡的互連線的傳輸時間的限制。因此,由于這些物理限制,需要優(yōu)化復用方案,以允許原型以最大速度運行。
多路復用通常由插入多路復用器和多路復用器元件并用合適的信號填充分區(qū)工具支持。例如,有兩種不同類型的方案,采用LVDS傳輸或高速時域復用(HSTDM)。
根據(jù)傳輸時鐘和設計時鐘的關系,我們可以區(qū)分兩種類型的復用。異步復用,其中傳輸時鐘與設計時鐘沒有相位關系,以及同步復用,其中,傳輸時鐘相位與設計時鐘對齊,甚至可能從中導出。
-
FPGA
+關注
關注
1663文章
22491瀏覽量
638816 -
時鐘
+關注
關注
11文章
1999瀏覽量
135214 -
復用器
+關注
關注
1文章
799瀏覽量
30093
原文標題:多片F(xiàn)PGA原型系統(tǒng):多路復用(TDM)科普
文章出處:【微信號:于博士Jacky,微信公眾號:于博士Jacky】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
一文掌握多片FPGA的多路復用
多路復用ICSP引腳如何控制開關?
如何在Mx1051的FlexCAN1中配置簡單信號多路復用和擴展信號多路復用?
多路復用與數(shù)字復接
非多路復用與多路復用總線轉(zhuǎn)換橋的設計與實現(xiàn)
基于多片F(xiàn)PGA多路復用(TDM)科普
評論