使用aurora核的點(diǎn)對(duì)點(diǎn)通信應(yīng)用設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
總線分類(lèi)
總線是一個(gè)被用來(lái)連接兩個(gè)或多個(gè)模塊和設(shè)備的設(shè)計(jì)組成。下圖展示了不同總線的分類(lèi)。
01
點(diǎn)對(duì)點(diǎn)
只連接兩個(gè)設(shè)備或模塊的一種總線。點(diǎn)對(duì)點(diǎn)總線的優(yōu)勢(shì)在于更好的信號(hào)完整性。
02
點(diǎn)對(duì)多
連接至兩個(gè)以上的模塊或設(shè)備的總線。點(diǎn)對(duì)多總線的優(yōu)勢(shì)在于由于低數(shù)量軌跡帶來(lái)的低引腳數(shù)量和更簡(jiǎn)化的板級(jí)設(shè)計(jì)。
03
單向
被單一模塊和設(shè)備驅(qū)動(dòng)的總線連接至另一個(gè)總線。單向總線的優(yōu)勢(shì)在于更簡(jiǎn)便的執(zhí)行,以及更簡(jiǎn)便的板級(jí)終端方案。
04
雙向
可被任何設(shè)備或模塊驅(qū)動(dòng)的總線連接至另一總線。其優(yōu)勢(shì)在于由于共用相同總線信號(hào)帶來(lái)的更低的引腳數(shù)量。
05
源同步時(shí)鐘
是一種在一總線上產(chǎn)生伴隨數(shù)據(jù)的時(shí)鐘的技術(shù)。這一方法的一個(gè)優(yōu)勢(shì)在于它簡(jiǎn)化了系統(tǒng)的時(shí)鐘設(shè)計(jì),并且將總線驅(qū)動(dòng)從接收方分離開(kāi)。這一時(shí)鐘方案被用在幾個(gè)高速接口,如spi和pci接口。時(shí)鐘信號(hào)可以被分開(kāi),或嵌入到數(shù)據(jù)中,并且在接收端恢復(fù)。
06
系統(tǒng)同步時(shí)鐘
設(shè)備和模塊連接到一個(gè)總線并使用一個(gè)單一時(shí)鐘,不像源同步時(shí)鐘方法,系統(tǒng)同步時(shí)鐘方案不需要在接收端分離時(shí)鐘域。
07
并行總線
并行總線一般被用于中低頻總線中,對(duì)于中低頻的組成并沒(méi)有明確的定義,但經(jīng)驗(yàn)法則認(rèn)為低于100MHz為低頻。100-300MHz為中頻。
Xilinx 提供了幾個(gè)可以被用來(lái)設(shè)計(jì)并行總線的元素:
1.IDDR:
一個(gè)專(zhuān)用寄存器,可在FPGA架構(gòu)中將雙速率數(shù)據(jù)轉(zhuǎn)換為單速率數(shù)據(jù)輸出。
2.ODDR:
一個(gè)專(zhuān)用寄存器,可將輸入單速率數(shù)據(jù)轉(zhuǎn)換為雙速率外部輸出。
3.IODELAY:
被用來(lái)給輸入數(shù)據(jù)提供一個(gè)固定或可調(diào)節(jié)的延遲或給輸出數(shù)據(jù)提供一個(gè)固定延遲的設(shè)計(jì)元件。IODELAY主要被用來(lái)做輸入與輸出數(shù)據(jù)的對(duì)齊。
4. IDELAYCTRL:
與IODELAY一起用于控制延遲邏輯。 其中一個(gè)IDELAYCTRL輸入是一個(gè)參考時(shí)鐘,它必須是200MHz才能保證IODELAY中的分接頭延遲精度。在高頻率校準(zhǔn)并行總線的時(shí)候需要調(diào)整輸入與輸出的延時(shí)。調(diào)整過(guò)程是動(dòng)態(tài)的,在電路板加電之后并在操作過(guò)程中定期執(zhí)行。執(zhí)行動(dòng)態(tài)總線校準(zhǔn)有幾個(gè)原因。 例如,溫度和電壓波動(dòng)會(huì)影響信號(hào)延遲。 此外,由于制造工藝的差異,PCB上和FPGA內(nèi)部的跟蹤延遲也會(huì)有所不同。 由于不同信號(hào)上的可變延遲,并行總線數(shù)據(jù)可能會(huì)偏斜。
08
串行總線
并行總線不能擴(kuò)展到更高的運(yùn)行頻率和總線寬度。設(shè)計(jì)一個(gè)高頻率的并行總線是有挑戰(zhàn)性的因?yàn)槎鄠€(gè)數(shù)據(jù)信號(hào)之間的偏差,嚴(yán)格的時(shí)間預(yù)算,以及需要執(zhí)行所有總線信號(hào)的長(zhǎng)度匹配的更復(fù)雜的電路板布局。為了克服這些挑戰(zhàn),許多系統(tǒng)和幾個(gè)眾所周知的通信協(xié)議已經(jīng)從并行遷移到串行接口。其中兩個(gè)例子是Serial ATA,它是ATA或并行ATA的串行版本,PCI Express是下一代并行PCI。
串行總線的另一個(gè)優(yōu)點(diǎn)是引腳數(shù)量較少。 串行總線的一個(gè)缺點(diǎn)是它的PCB設(shè)計(jì)要求更高。 高速串行鏈路通常以數(shù)千兆位的速度運(yùn)行。 結(jié)果,它們產(chǎn)生更多的電磁干擾(EMI)并消耗更多的功率。
外部串行數(shù)據(jù)流通常轉(zhuǎn)換為FPGA內(nèi)部的并行數(shù)據(jù)。 這個(gè)被稱(chēng)為SerDes(串行器/解串器)的模塊。 串行器將并行數(shù)據(jù)并行轉(zhuǎn)換為串行輸出,速率更高。 相反,解串器將高速串行輸入轉(zhuǎn)換為并行輸出。 由于執(zhí)行串行化和反序列化所需的額外步驟,使用SerDes的缺點(diǎn)是額外的通信延遲; 更復(fù)雜的初始化和定期的鏈路訓(xùn)練; 和更大的邏輯大小。
下圖顯示了實(shí)現(xiàn)為兩個(gè)SerDes模塊的全雙工串行總線。
1.ISERDES
一個(gè)專(zhuān)用的串行到并行數(shù)據(jù)轉(zhuǎn)換器,以促進(jìn)高速源同步數(shù)據(jù)采集。 它具有SDR和DDR數(shù)據(jù)選項(xiàng)和2到6位數(shù)據(jù)寬度。
2.GTP/GTX
一些Virtex和Spartan FPGA中的嵌入式收發(fā)器模塊。 它是一個(gè)復(fù)雜的模塊,高度可配置,并與FPGA邏輯資源緊密集成。
下圖顯示了Virtex-6 GTX收發(fā)器的框圖。
3.Aurora
Aurora 是一個(gè)很高效的低延遲點(diǎn)對(duì)點(diǎn)的串行協(xié)議,它使用了GTP收發(fā)器。它旨在隱藏GTP的接口細(xì)節(jié)和開(kāi)銷(xiāo)。Xilinx 提供一個(gè)擁有執(zhí)行aurora協(xié)議的用戶(hù)友好接口的ip核。核心提供的功能包括不同數(shù)量的GTP通道,單工和雙工操作,流量控制,可配置線路速率和用戶(hù)時(shí)鐘頻率。
下圖展示了使用了aurora核的點(diǎn)對(duì)點(diǎn)通信。