以下文章來(lái)源于OpenFPGA,作者碎碎思
你有沒(méi)有遇過(guò)這種情況:系統(tǒng)里有兩塊 FPGA 或者 FPGA + CPU + FPGA,需要它們之間高速、低延遲、可靠地互傳數(shù)據(jù),甚至需要像訪問(wèn)本地內(nèi)存那樣訪問(wèn)對(duì)方的寄存器與 BRAM?這時(shí)候傳統(tǒng)的 SPI / UART /以太網(wǎng)通信帶來(lái)的延遲、帶寬與開(kāi)銷就顯得捉襟見(jiàn)肘。
什么是 Chip2Chip + Aurora 通信?
先說(shuō)兩個(gè)組件:
Aurora 協(xié)議:Xilinx 提供的一種輕量級(jí)串行高速鏈路協(xié)議,適合 FPGA 間用高速串行收發(fā)器(GT 或 GTY / SERDES)連接。好處是延遲低、鏈路效率高。
Chip2Chip IP 核:Chip2Chip(AXI Chip2Chip)是一款由 Xilinx (AMD) 公司提供 的低引腳數(shù)、高性能AXI協(xié)議軟核IP,主要用于實(shí)現(xiàn)多設(shè)備SoC系統(tǒng)中的FPGA與SoC之間的高效通信。它通過(guò)通道復(fù)用、數(shù)據(jù)寬度轉(zhuǎn)換和支持多種物理層接口(如SelectIO和Aurora),能夠?qū)XI4和AXI4-Lite接口透明地橋接起來(lái),可以讓一個(gè) FPGA 向另一個(gè) FPGA(或一個(gè)擁有對(duì)應(yīng) IP 的芯片)發(fā)起 AXI 或 AXI-Lite 總線訪問(wèn),就好像對(duì)方走在自己的地址圖里那樣,讀寫(xiě)對(duì)方的內(nèi)存或寄存器。
接下來(lái)我們就使用Chip2Chip + Aurora 實(shí)現(xiàn)一個(gè)簡(jiǎn)單的DEMO。
實(shí)際用例
在這個(gè)例子里,用的是 Aurora 64b/66b,速率 10.3125Gbps。
Chip2Chip 的 主端會(huì)對(duì)外提供 AXI 接口(如果啟用了,還會(huì)有 AXI-Lite 接口)。這樣一來(lái),不管是片上的處理器、MicroBlaze,還是其他的 AXI master,都能通過(guò)這個(gè) IP 發(fā)起讀寫(xiě)操作,去訪問(wèn)對(duì)端設(shè)備的 AXI 地址空間。
把 Chip2Chip IP 接到 Aurora 上其實(shí)很簡(jiǎn)單,主要就是連上復(fù)位、初始化邏輯,還有一些狀態(tài)信號(hào)(比如 channel_up)。
在測(cè)試的時(shí)候,主端這邊掛了一個(gè) AXI Traffic Generator 來(lái)制造讀寫(xiě)流量,通過(guò) Chip2Chip 傳過(guò)去。
在 從端這邊,隨便接個(gè) BRAM,讓它當(dāng)成內(nèi)存映射的目標(biāo)。
時(shí)鐘這塊,兩邊的配置保持一致:初始化時(shí)鐘 50MHz,AXI 時(shí)鐘 200MHz,GT 參考時(shí)鐘用的是 156.25MHz。
這些子模塊(BDCs)最后會(huì)組合在頂層 IP Integrator 里,里面還會(huì)連收發(fā)器(GTs)和時(shí)鐘管理模塊(比如 Clocking Wizard 之類的)。
要注意的一點(diǎn)是:主從兩邊的地址映射一定要對(duì)齊,否則互相訪問(wèn)時(shí)就會(huì)錯(cuò)位。
這種架構(gòu)可以直接拿來(lái)仿真,不用真的接兩塊板子。仿真的時(shí)候你能看到:
先在主端這邊發(fā)起 AXI 寫(xiě)操作
過(guò)一小會(huì)兒,就能在從端那邊看到對(duì)應(yīng)的寫(xiě)入
開(kāi)源鏈接
https://github.com/ATaylorCEngFIET/mz616
小結(jié)
我比較喜歡這個(gè) IP,原因是有些場(chǎng)景確實(shí)很實(shí)用。比如在工業(yè)應(yīng)用里,經(jīng)常需要不同模塊之間保持電氣隔離,這時(shí)候用光纖 + Aurora + Chip2Chip 就特別合適,可以很方便地在設(shè)備之間傳數(shù)據(jù)。
它讓我們不必把所有交互都扔給軟件來(lái)完成,也不必忍受傳統(tǒng)通信方式那么多中間層的折損。對(duì)于追求低延遲、高確定性、模塊化重用的工程項(xiàng)目,這一對(duì)組合確實(shí)能“提速不少”。
-
FPGA
+關(guān)注
關(guān)注
1650文章
22203瀏覽量
626639 -
以太網(wǎng)
+關(guān)注
關(guān)注
41文章
5861瀏覽量
178543 -
cpu
+關(guān)注
關(guān)注
68文章
11186瀏覽量
221158 -
通信
+關(guān)注
關(guān)注
18文章
6259瀏覽量
139037 -
Xilinx
+關(guān)注
關(guān)注
73文章
2190瀏覽量
128708
原文標(biāo)題:FPGA世界里的“芯片對(duì)芯片”通信:Chip2Chip IP 核帶來(lái)的效率提升
文章出處:【微信號(hào):FPGA研究院,微信公眾號(hào):FPGA研究院】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
esp8266 FREERTOS 3.3中沒(méi)有提供CHIP_ID函數(shù),怎么實(shí)現(xiàn)獲取CHIP_ID的功能?
Micro chip官網(wǎng)現(xiàn)在沒(méi)有DEMO源碼嗎?
CHIP1是如何知道掃描發(fā)生的?
Chip Monolithic Ceramic Capaci
LED CHIP IQC檢驗(yàn)規(guī)范

評(píng)論